aboutsummaryrefslogtreecommitdiffhomepage
Commit message (Collapse)AuthorAge
...
* Fix interpretation bug in [uconstr].Gravatar Arnaud Spiwack2014-08-05
| | | Substitution of the Ltac variables would only occur if the internalised [uconstr] was of the form [glob, Some expr], which is the case only in tactics defined inside a proof, but not in tactics defined in [Ltac].
* The [refine] tactic now accepts [uconstr].Gravatar Arnaud Spiwack2014-08-05
| | | Arguments of refine can hence be built by tactics instead of given in their entirety in one go.
* Small refactoring: use [uconstr] instead of [constr] when relevant in ↵Gravatar Arnaud Spiwack2014-08-05
| | | | grammar rules.
* Properly declare uconstr as an argument for TACTIC EXTEND.Gravatar Arnaud Spiwack2014-08-05
|
* Fix [uconstr] name for argextend.Gravatar Arnaud Spiwack2014-08-05
|
* Better fix of e5c025Gravatar Pierre Boutillier2014-08-05
|
* One more optimization for guard checking of cofixpoints.Gravatar Maxime Dénès2014-08-04
| | | | | | In check_one_cofix, we now avoid calling dest_subterms each time we meet a constructor by storing both the current tree (needed for the new criterion) and a precomputed array of trees for subterms.
* More optimization in guard checking.Gravatar Maxime Dénès2014-08-04
| | | | | When dynamically computing the recarg tree, we now prune it according to the inferred tree. Compilation of CompCert is now ok.
* Fix an exponential behavior in guard checker for cofixpoints.Gravatar Maxime Dénès2014-08-04
| | | | | I had introduced it by mistake due to my OCaml dyslexia :) Thanks to Enrico and Arnaud for saving my day!
* Fixing semantics of Univ.Level.equal.Gravatar Pierre-Marie Pédrot2014-08-04
|
* STM: when looking up in the cache catch Expired excGravatar Carst Tankink2014-08-04
|
* STM: generate Feedback message for parsing errorsGravatar Enrico Tassi2014-08-04
|
* STM: use a real priority queueGravatar Enrico Tassi2014-08-04
|
* STM: encapsulate Pp.message in Feedback.feedbackGravatar Carst Tankink2014-08-04
|
* STM: VtQuery holds the id of the state it refers toGravatar Carst Tankink2014-08-04
|
* Some comments in the interface of Proofview_monad.Gravatar Arnaud Spiwack2014-08-04
|
* Cleaning the new implementation of the tactic monad continued.Gravatar Arnaud Spiwack2014-08-04
| | | | Remove proofview_gen, which was the repository of the extracted code, and move it to proofview_monad, which has the actual interface used by the [Proofview] module to implement tactics.
* Cleaning of the new implementation of the tactic monad.Gravatar Arnaud Spiwack2014-08-04
| | | | | | | | | * Add comments in the code (mostly imported from Monad.v) * Inline duplicated module * Clean up some artifacts due to the extracted code. * [NonLogical.new_ref] -> [NonLogical.ref] (I don't even remember why I chose this name originally) * Remove the now superfluous [Proof_errors] module (which was used to define exceptions to be used in the extracted code). * Remove Monad.v
* Fix to make Coq compile, I think this should still be accepted.Gravatar Matthieu Sozeau2014-08-03
|
* Fix infer conv using the wrong universe conversion flexibility informationGravatar Matthieu Sozeau2014-08-03
| | | | | for constants that are not unfolded during conversion. Fix discharge of polymorphic section variables over inductive types.
* - Fix handling of opaque polymorphic definitions which were turned transparent.Gravatar Matthieu Sozeau2014-08-03
| | | | - Decomment code in reductionops forgotten after debugging.
* Move to a representation of universe polymorphic constants using indices for ↵Gravatar Matthieu Sozeau2014-08-03
| | | | | | | variables. Simplifies instantiation of constants/inductives, requiring less allocation and Map.find's. Abstraction by variables is handled mostly inside the kernel but could be moved outside.
* - Fix has_undefined_evars not using its or_sorts argument anymore.Gravatar Matthieu Sozeau2014-08-03
| | | | | | - Allow apply's unification to use conversion even if some polymorphic constants appear in the goal (consistent with occur_meta_or_evar, and evarconv in general).
* Chapter 4: Fixing ambiguity about whether the return predicate refersGravatar Hugo Herbelin2014-08-03
| | | | | explicitly or implicitly to the variables in the as and in clauses + formatting.
* Fixing #3483 (graceful failing with notations to non-constructors in "match").Gravatar Hugo Herbelin2014-08-03
|
* Better struture for Ltac internalization environments in Constrintern.Gravatar Pierre-Marie Pédrot2014-08-02
|
* Faster uconstr.Gravatar Arnaud Spiwack2014-08-01
| | | Detyping was called on every typed constr in the Ltac context which was costly as most of the context is likely not to be refered to in a particular uconstr. This commit calls detyping lazily instead.
* CHANGES: [>…].Gravatar Arnaud Spiwack2014-08-01
|
* Document [> … ].Gravatar Arnaud Spiwack2014-08-01
|
* New tactical [> t1…tn] to apply tactics t1…tn to the corresponding goal.Gravatar Arnaud Spiwack2014-08-01
| | | | | | | Differs from the usual t;[t1…tn] in two ways: * It can be used without a preceding tactic * It counts every focused subgoal, rather than considering independently the goals generated by the application of the preceding tactic on individual goals. In other words t;[t1…tn] is [> t;[>t1…tn].. ].
* Fix English spelling -> American spelling in doc.Gravatar Arnaud Spiwack2014-08-01
|
* CHANGES: [numgoals] and [guard].Gravatar Arnaud Spiwack2014-08-01
|
* Document [numgoals] and [guard].Gravatar Arnaud Spiwack2014-08-01
|
* Add [guard] tactic.Gravatar Arnaud Spiwack2014-08-01
| | | | | | | | The [guard] tactic accepts simple tests (on integers) as argument, succeeds if the test passes and fails if the test fails. Together with [numgoal] can be used to fork on the number of goals of a tactic. The syntax is not very robust (in particular [guard n<=1] is correct but not [guard (n<=1)]). Maybe tests should be moved to the general parser to allow for more flexibility.
* Add [numgoal] to Ltac.Gravatar Arnaud Spiwack2014-08-01
|
* Add primtive [num_goal] to Proofview.Gravatar Arnaud Spiwack2014-08-01
| | | | The [num_goal] tactic counts the number of focused goals.
* Untyped terms in ltac: simplify [coerce_to_uconstr].Gravatar Arnaud Spiwack2014-08-01
| | | | Following advice by Hugo Herbelin.
* Remove spurious [1] in equality.ml.Gravatar Arnaud Spiwack2014-08-01
| | | | Introduced in a4043608f
* Clean outdated comment in Proofview.Notations.Gravatar Arnaud Spiwack2014-08-01
|
* Fix typo in cf04daec997.Gravatar Arnaud Spiwack2014-08-01
|
* micromega : vm_compute; reflexivity -> vm_cast_no_check (eq_refl true)Gravatar Frédéric Besson2014-08-01
| | | | * Thanks to G. Melquiond for pointing out that 'abstract' already performs type-checking
* Compatibility for compilation with ocaml 3.12 (at least).Gravatar Hugo Herbelin2014-08-01
|
* micromega : improve efficiency/termination of type-checkingGravatar Frédéric Besson2014-08-01
| | | | | * unused terms are generalised * proof is abstract
* Continuing (incomplete) cleaning of Inductiveops.Gravatar Hugo Herbelin2014-08-01
|
* A tentative uniform naming policy in module Inductiveops.Gravatar Hugo Herbelin2014-08-01
| | | | | | | | | | | | - realargs: refers either to the indices of an inductive, or to the proper args of a constructor - params: refers to parameters (which are common to inductive and constructors) - allargs = params + realargs - realdecls: refers to the defining context of indices or proper args of a constructor (it includes letins) - paramdecls: refers to the defining context of params (it includes letins) - alldecls = paramdecls + realdecls
* Removing more tactic compatibility layer.Gravatar Pierre-Marie Pédrot2014-08-01
|
* Removing some tactic compatibility layer.Gravatar Pierre-Marie Pédrot2014-08-01
|
* Useless export of Instance.eqeq. We hashcons everything before calling thisGravatar Pierre-Marie Pédrot2014-07-31
| | | | function, so plain pointer equality is sufficient.
* Making the error message about bullets more precise.Gravatar Pierre Courtieu2014-07-31
| | | | Suggests in some cases the right bullet to use.
* Removing the call to Weak.get_copy in hashsets.Gravatar Pierre-Marie Pédrot2014-07-31
| | | | | | | | | | | | The rationale for its use comes from OCaml weak maps, and is justified by the fact that Weak.get may prevent its return value to be collected by the GC during the next slice even though nobody points to it. In our case, this is vastly irrelevant because hashconsed values are not expected to be collected whatsoever (save for exceptional cases). But Weak.get_copy is rather costly actually, at least strictly more than the plain Weak.get. Experimentally, I observe diminution of compilation time and even diminution of memory consumption (!) after this patch, so I assume it is a net gain.