aboutsummaryrefslogtreecommitdiffhomepage
path: root/pretyping
Commit message (Collapse)AuthorAge
* - Fix bug #3368, due to wrong use of the Cst_stack for projections.Gravatar Matthieu Sozeau2014-06-11
| | | | | - Monomorphize Cst_stack to 'a = constr. - Add corresponding debug printer.
* In generalized rewrite, avoid retyping completely and constantly the ↵Gravatar Matthieu Sozeau2014-06-11
| | | | | | | conclusion, and results of unifying the lemma with subterms. Using Retyping.get_type_of instead results in 3x speedup in Ncring_polynom.
* Compute the trace of a universe inconsistency only when explicitly requiredGravatar Pierre-Marie Pédrot2014-06-10
| | | | by the printing options (i.e. when "Print Universes" is set).
* Made explanations for universe inconsistencies optional. They are only usedGravatar Pierre-Marie Pédrot2014-06-10
| | | | by the printer anyway.
* - Fix substitution of universes which needlessly hashconsed existing universes.Gravatar Matthieu Sozeau2014-06-10
| | | | - More cleanup. remove unneeded functions in universes
* Cleanup in Univ, moving code for UniverseConstraints outside the kernel in ↵Gravatar Matthieu Sozeau2014-06-10
| | | | | | | | Universes. Needed to exponse compare_head_gen(_leq) so that it could be reused in Universes. Remove unused functions from univ as well and refactor a little bit. Changed the syntax to Type@{} for explicit universe level specs, following the WG decision.
* Fix canonical structure resolution in unification (bug found in Ssreflect).Gravatar Matthieu Sozeau2014-06-08
|
* Make kernel reduction code parametric over the handling of universes,Gravatar Matthieu Sozeau2014-06-06
| | | | | | | | | | | allowing fast conversion to be used during unification while respecting the semantics of unification w.r.t universes. - Inside kernel, checked_conv is used mainly, it just does checking, while infer_conv is used for module subtyping. - Outside, infer_conv is wrapped in Reductionops to register the right constraints in an evarmap. - In univ, add a flag to universes to cache the fact that they are >= Set, the most common constraints, resulting in an 4x speedup in some cases (e.g. HigmanS).
* Collecting in Namegen those conventional default names that are used in ↵Gravatar Hugo Herbelin2014-06-04
| | | | different places
* Fix canonical structure resolution (makes test-suite files go through again).Gravatar Matthieu Sozeau2014-06-04
|
* - Allow parsing of @const@{instance} for specifying universe instances of ↵Gravatar Matthieu Sozeau2014-06-04
| | | | | | polymorphic constants.
* - Force every universe level to be >= Prop, so one cannot "go under" it anymore.Gravatar Matthieu Sozeau2014-06-04
| | | | - Finish the change to level-to-level substitutions, in the checker.
* - Fix hashing of levels to get the "right" order in universe contexts etc...Gravatar Matthieu Sozeau2014-06-04
| | | | | | | - Add a tentative syntax for specifying universes: Type{"i"} and foo@{Type{"i"},Type{"j"}}. These are always rigid. - Use level-to-level substitutions where the more general level-to-universe substitutions were previously used.
* - Keep all <= constraints during refinement, otherwise we might miss ↵Gravatar Matthieu Sozeau2014-06-04
| | | | | | | collapsed universes. - Fix normalization with universe substitutions during refinement being inconsistent with the one in the kernel.
* cbn understand ! Arguments directiveGravatar Pierre Boutillier2014-06-04
| | | | | Of course, this is an under approximation of the expected behavior : unfolding a constant iff a leaf of its underlying split-tree is reached.
* Use of "H"-based names for propositional hypotheses obtained byGravatar Hugo Herbelin2014-06-01
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | destruction of schemes in Type such as sumbool. Added an option "Set Standard Proposition Elimination Names" for governing this strategy (activated by default). This provides names supposingly more uniform than before for those who like to have names automatically generated, at least in the first phase of the development process of proofs. Examples: *** Non dependent case *** Goal {True}+{False}-> True. intros [|]. Before: t : True ============================ True and f : False ============================ True After: H : True ============================ True H : False ============================ True *** Dependent case *** Goal forall x:{True}+{False}, x=x. intros [|]. Before: t : True ============================ left t = left t f : False ============================ right f = right f After: HTrue : True ============================ left HTrue = left HTrue HFalse : False ============================ right HFalse = right HFalse
* Dead code + typo.Gravatar Hugo Herbelin2014-05-31
|
* - Fix for commit 15999903f875f4b5dbb3d5240d2ca39acc3cd777 which disallowed someGravatar Matthieu Sozeau2014-05-28
| | | | | | cases of Type (* Prop *) <= Set. - Do check types of metavariables at the end of apply's unification, if it failed at the beginning (otherwise universe constraints can be incomplete).
* Cbn reduces Pos.compare p~1 q~1 to Pos.compare p qGravatar Pierre Boutillier2014-05-26
| | | | (refolding of cbn is smarter)
* Reduction.Stack.Fix/Case stores Cst_stack.tGravatar Pierre Boutillier2014-05-26
|
* Cst_stack before stack (abstraction leak in whd_gen)Gravatar Pierre Boutillier2014-05-26
|
* cbn: args list instead of arg numberGravatar Pierre Boutillier2014-05-26
|
* Reductionops.Stack.map & Reduction.iterate_whd_genGravatar Pierre2014-05-26
|
* - Fix in kernel conversion not folding the universe constraintsGravatar Matthieu Sozeau2014-05-26
| | | | | | | | | correctly when comparing stacks. - Disallow Type i <= Prop/Set constraints, that would otherwise allow constraints that make a universe lower than Prop. - Fix stm/lemmas that was pushing constraints to the global context, it is done depending on the constant/variable polymorphic status now. - Adapt generalized rewriting in Type code to these fixes.
* More fixes of unification with primitive projections (missed cases during ↵Gravatar Matthieu Sozeau2014-05-16
| | | | | | the merge). Obligations are not necessarily opaque.
* Fix unification of non-unfoldable primitive projections in evarconv.Gravatar Matthieu Sozeau2014-05-16
|
* Refresh universes for Ltac's type_of, as the term can be used anywhere,Gravatar Matthieu Sozeau2014-05-09
| | | | fixing two opened bugs from HoTT/coq.
* Fix second-order matching to properly check that the predicate found byGravatar Matthieu Sozeau2014-05-09
| | | | | abstraction has the right type. Fixes bug# 3306. Add test-suite files for bugs 3305 and 3306.
* Reuse universe level substitutions for template polymorphism, fixing performanceGravatar Matthieu Sozeau2014-05-09
| | | | problem with hashconsing at the same time. This fixes bug# 3302.
* Cleanup code in pretyping/evarutilGravatar Matthieu Sozeau2014-05-08
|
* Fix performance problem with unification in presence of universes (bug ↵Gravatar Matthieu Sozeau2014-05-08
| | | | | | | #3302) by considering Type i a ground term even when "i" is a flexible universe variable, using the infer_conv function to do the unification of universes.
* - Add a primitive tclEVARUNIVERSECONTEXT to reset the universe context of an ↵Gravatar Matthieu Sozeau2014-05-08
| | | | | | | | evar_map in tactics, avoiding useless and potentially costly merge's of constraints. - Implement revert and generalize using the new tactics (not bound to syntax though, as they are not backwards-compatible yet).
* Moving Dnet-related code to tactics/.Gravatar Pierre-Marie Pédrot2014-05-08
|
* - Fix treatment of global universe constraints which should be passed alongGravatar Matthieu Sozeau2014-05-06
| | | | | | | | | in the Evd of proofs (Evd.from_env). - Allow to set the Store.t value of new evars, e.g. to set constraint evars as unresolvable in rewrite.ml. - Fix a HUGE performance problem in the processing of constraints, which was remerging all the previous constraints with the ambient global universes at each new constraint addition. Performance is now back to (or better than) normal.
* Find a more efficient fix for dealing with template universes:Gravatar Matthieu Sozeau2014-05-06
| | | | | | | eagerly solve l <= k constraints as k := l when k is a fresh variable coming from a template type. This has the effect of fixing the variable at the first instantiation of the parameters of template polymorphic inductive and avoiding to generate useless <= constraints that need to be minimized afterwards.
* Try a new way of handling template universe levelsGravatar Matthieu Sozeau2014-05-06
|
* - Add back some compatibility functions to avoid rewriting plugins.Gravatar Matthieu Sozeau2014-05-06
| | | | | - Fix in canonical structure inferce, we have to check that the heads are convertible and keep universe information around.
* Keep track of universes on coercion applications even if they're not ↵Gravatar Matthieu Sozeau2014-05-06
| | | | polymorphic (fixes bug #3043).
* Refresh some universes in cases.ml as they might appear in the term.Gravatar Matthieu Sozeau2014-05-06
|
* Correct universe handling in program coercions (bug #2378).Gravatar Matthieu Sozeau2014-05-06
|
* Fix set_leq_sort refusing max(u,Set) <= Set when u is flexible.Gravatar Matthieu Sozeau2014-05-06
|
* - Fix arity handling in retyping (de Bruijn bug!)Gravatar Matthieu Sozeau2014-05-06
| | | | | | - Enforce that no u <= Prop/Set can be added for u introduced by the user in Evd.process_constraints. (Needs to be enforced in the kernel as well, but that's the main entry point). - Fix a test-suite script and remove a regression comment, it's just as before now.
* Allow records whose sort is defined by a constant.Gravatar Matthieu Sozeau2014-05-06
|
* - Fixes for canonical structure resolution (check that the initial term ↵Gravatar Matthieu Sozeau2014-05-06
| | | | | | | | indeed unifies with the projected term, keeping track of universes). - Fix the [unify] tactic to fail properly. - Fix unification to disallow lowering a global Type(i) universe to Prop or Set.
* - Fix eq_constr_universes restricted to Sorts.equalGravatar Matthieu Sozeau2014-05-06
| | | | | | - Fix passing of universe contexts through definitions/proofs, abstract is ok now, even in presence of polymorphism - Correctly mark unresolvable the evars made by the Simple abstraction.
* Remove postponed constraints (unused)Gravatar Matthieu Sozeau2014-05-06
|
* - Fix bug preventing apply from unfolding Fixpoints.Gravatar Matthieu Sozeau2014-05-06
| | | | | | | | | | | | | | | | | | - Remove Universe Polymorphism flags everywhere. - Properly infer, discharge template arities and fix substitution inside them (kernel code to check for correctness). - Fix tactics that were supposing universe polymorphic constants/inductives to be parametric on that status. Required to make interp_constr* return the whole evar universe context now. - Fix the univ/level/instance hashconsing to respect the fact that marshalling doesn't preserve sharing, sadly losing most of its benefits. Short-term solution is to add hashes to these for faster comparison, longer term requires rewriting all serialization code. Conflicts: kernel/univ.ml tactics/tactics.ml theories/Logic/EqdepFacts.v
* Adapt universe polymorphic branch to new handling of futures for delayed proofs.Gravatar Matthieu Sozeau2014-05-06
|
* Honor the Opaque flag for projections in simpl.Gravatar Matthieu Sozeau2014-05-06
|
* In case two constants/vars/rels are _not_ defined, force unification of ↵Gravatar Matthieu Sozeau2014-05-06
| | | | | | | | | universes (better semantics for axioms, opaque constants). Conflicts: pretyping/evarconv.ml