aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2014-08-04STM: use a real priority queueEnrico Tassi
2014-08-04STM: encapsulate Pp.message in Feedback.feedbackCarst Tankink
2014-08-04STM: VtQuery holds the id of the state it refers toCarst Tankink
2014-08-04Some comments in the interface of Proofview_monad.Arnaud Spiwack
2014-08-04Cleaning the new implementation of the tactic monad continued.Arnaud Spiwack
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.
2014-08-04Cleaning of the new implementation of the tactic monad.Arnaud Spiwack
* 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
2014-08-03Fix to make Coq compile, I think this should still be accepted.Matthieu Sozeau
2014-08-03Fix infer conv using the wrong universe conversion flexibility informationMatthieu Sozeau
for constants that are not unfolded during conversion. Fix discharge of polymorphic section variables over inductive types.
2014-08-03- Fix handling of opaque polymorphic definitions which were turned transparent.Matthieu Sozeau
- Decomment code in reductionops forgotten after debugging.
2014-08-03Move to a representation of universe polymorphic constants using indices for ↵Matthieu Sozeau
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.
2014-08-03- Fix has_undefined_evars not using its or_sorts argument anymore.Matthieu Sozeau
- 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).
2014-08-03Chapter 4: Fixing ambiguity about whether the return predicate refersHugo Herbelin
explicitly or implicitly to the variables in the as and in clauses + formatting.
2014-08-03Fixing #3483 (graceful failing with notations to non-constructors in "match").Hugo Herbelin
2014-08-02Better struture for Ltac internalization environments in Constrintern.Pierre-Marie Pédrot
2014-08-01Faster uconstr.Arnaud Spiwack
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.
2014-08-01CHANGES: [>…].Arnaud Spiwack
2014-08-01Document [> … ].Arnaud Spiwack
2014-08-01New tactical [> t1…tn] to apply tactics t1…tn to the corresponding goal.Arnaud Spiwack
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].. ].
2014-08-01Fix English spelling -> American spelling in doc.Arnaud Spiwack
2014-08-01CHANGES: [numgoals] and [guard].Arnaud Spiwack
2014-08-01Document [numgoals] and [guard].Arnaud Spiwack
2014-08-01Add [guard] tactic.Arnaud Spiwack
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.
2014-08-01Add [numgoal] to Ltac.Arnaud Spiwack
2014-08-01Add primtive [num_goal] to Proofview.Arnaud Spiwack
The [num_goal] tactic counts the number of focused goals.
2014-08-01Untyped terms in ltac: simplify [coerce_to_uconstr].Arnaud Spiwack
Following advice by Hugo Herbelin.
2014-08-01Remove spurious [1] in equality.ml.Arnaud Spiwack
Introduced in a4043608f
2014-08-01Clean outdated comment in Proofview.Notations.Arnaud Spiwack
2014-08-01Fix typo in cf04daec997.Arnaud Spiwack
2014-08-01micromega : vm_compute; reflexivity -> vm_cast_no_check (eq_refl true)Frédéric Besson
* Thanks to G. Melquiond for pointing out that 'abstract' already performs type-checking
2014-08-01Compatibility for compilation with ocaml 3.12 (at least).Hugo Herbelin
2014-08-01micromega : improve efficiency/termination of type-checkingFrédéric Besson
* unused terms are generalised * proof is abstract
2014-08-01Continuing (incomplete) cleaning of Inductiveops.Hugo Herbelin
2014-08-01A tentative uniform naming policy in module Inductiveops.Hugo Herbelin
- 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
2014-08-01Removing more tactic compatibility layer.Pierre-Marie Pédrot
2014-08-01Removing some tactic compatibility layer.Pierre-Marie Pédrot
2014-07-31Useless export of Instance.eqeq. We hashcons everything before calling thisPierre-Marie Pédrot
function, so plain pointer equality is sufficient.
2014-07-31Making the error message about bullets more precise.Pierre Courtieu
Suggests in some cases the right bullet to use.
2014-07-31Removing the call to Weak.get_copy in hashsets.Pierre-Marie Pédrot
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.
2014-07-31micromega : refification recognises @eq T for T convertible with Z or RFrédéric Besson
2014-07-31Typos.Hugo Herbelin
2014-07-31Finish fixes on notations and primitive projections, add test-suite files ↵Matthieu Sozeau
for closed bugs
2014-07-31Consistent pretty-printing of primitive projections and their expanded forms.Matthieu Sozeau
2014-07-31Add an option to solve typeclass goals generated by apply which can't beMatthieu Sozeau
catched otherwise due to the discrepancy between evars and metas.
2014-07-31Adding a generalized version of fold_Equal to FMapFacts.Pierre Courtieu
This commit should be refactored by Pierre L. if he thinks this should replace the previous version of fold_Equal, for now it is a different lemma fold_Equal2. Same for the Section addded to SetoiList, it should maybe replace the previous one.
2014-07-31Optimize check of new subterm relation on match.Maxime Dénès
If the return predicate is not dependent, we avoid dynamically regenerating the regular tree of the corresponding inductive type. This includes the commutative cut rule. Should solve some performance issues observed in Compcert and Paco at Qed time.
2014-07-31Improve intersection of regular trees.Maxime Dénès
For better efficiency, we try to preserve the shape of mutually recursive trees.
2014-07-31Fix dynamic computation of recargs for mutual inductives.Maxime Dénès
Used by the new guard criterion compatible with type isomorphisms.
2014-07-30Add test-suite file for bug #3439.Matthieu Sozeau
2014-07-30Avoid hconsing instances during appends and conversions from/to arrays.Matthieu Sozeau
2014-07-30Fix discrimination net which was not recognizing primitive projections.Matthieu Sozeau