aboutsummaryrefslogtreecommitdiff
path: root/engine
AgeCommit message (Collapse)Author
2017-01-23Merge branch 'v8.5' into v8.6Pierre-Marie Pédrot
2016-12-02Document changesMatthieu Sozeau
2016-11-30Fix UGraph.check_eq!Matthieu Sozeau
Universes are kept in normal form w.r.t. equality but not the <= relation, so the previous check worked almost always but was actually too strict! In cases like (max(Set,u) = u) when u is declared >= Set it was failing to find an equality. Applying the KISS principle: u = v <-> u <= v /\ v <= u. Fix invariant breakage that triggered the discovery of the check_eq bug as well. No algebraic universes should appear in a term position (on the left of a colon in a typing judgment), this was not the case when an algebraic universe instantiated an evar that appeared in the term. We force their universe variable status to change in refresh_universes to avoid this. Fix ind sort inference: Use syntactic universe equality for inductive sort inference instead of check_leq (which now correctly takes constraints into account) and simplify code
2016-11-07Merge remote-tracking branch 'github/pr/339' into v8.6Maxime Dénès
Was PR#339: Documenting type class options, typeclasses eauto
2016-11-07Fixes to compile with ocaml 4.01Matthieu Sozeau
2016-11-07Merge commit 'e6edb33' into v8.6Maxime Dénès
Was PR#331: Solve_constraints and Set Use Unification Heuristics
2016-10-28Merge remote-tracking branch 'github/pr/321' into v8.6Maxime Dénès
Was PR#321: Handling of section variables in hints
2016-10-26Merge branch 'v8.5' into v8.6Pierre-Marie Pédrot
2016-10-22Unification constraint handling (#4763, #5149)Matthieu Sozeau
Refine fix for bug #4763, fixing #5149 Tactic [Refine.solve_constraints] and global option Adds a new multi-goal tactic [Refine.solve_constraints] that forces solving of unification constraints and evar candidates to be solved. run_tactic now calls [solve_constraints] at every [.], preserving (mostly) the 8.4/8.5 behavior of tactics. The option allows to unset the forced solving unification constraints at each ".", letting the user control the places where the use of heuristics is done. Fix test-suite files too.
2016-10-21Oops, my bad, didn't expect a merge issue!Matthieu Sozeau
2016-10-21Merge remote-tracking branch 'gforge/v8.5' into v8.6Matthieu Sozeau
2016-10-21sections/hints: prevent Not_found in get_type_ofMatthieu Sozeau
due to cleared/reverted section variables. This fixes the get_type_of but requires keeping information around about the section hyps available in goals during resolution. It's optimized for the non-section case (should incur no cost there), and the case where no section variables are cleared.
2016-10-15Fix bug #5145: Anomaly: index to an anonymous variable.Pierre-Marie Pédrot
When printing evar constraints, we ensure that every variable from the rel context has a name.
2016-10-12Merge branch 'v8.5' into v8.6Pierre-Marie Pédrot
2016-10-12Merge branch 'v8.5' into v8.6Pierre-Marie Pédrot
2016-10-03Merge remote-tracking branch 'github/pr/263' into v8.6Maxime Dénès
Was PR#263: Fast lookup in named contexts
2016-09-16Adding variants enter_one and refine_one which assume that exactly oneHugo Herbelin
goal is under focus and which support returning a relevant output.
2016-09-09Tracking careless uses of slow name lookup.Pierre-Marie Pédrot
2016-09-05Fast path in push_rel_context_to_named_context.Pierre-Marie Pédrot
Essentially, we do not reconstruct the named_context_val when the rel_context is empty.
2016-09-02Fast path in whd_evar.Pierre-Marie Pédrot
Before computing the whd_evar-form of the arguments of an evar, we first check that it is indeed defined.
2016-09-01Short documentation, filling TODO's in evd.mli.Hugo Herbelin
2016-08-25Do not export an internal function in Namegen.Pierre-Marie Pédrot
2016-08-17Two protections against failures when printing evar_map.Hugo Herbelin
Delimit the scope of the failure to ease potential need for debugging the debugging printer. Protect against one of the causes of failure (calling get_family_sort_of with non-synchronized sigma).
2016-08-17Fixing printing in debugger (no global env in debugger).Hugo Herbelin
2016-08-16Efficiently generate the pretyping contexts.Pierre-Marie Pédrot
We used to recompute all fresh named contexts for evars before this patch in the push_rel_context_to_named_context function. This was incurring a linear penalty and a memory explosion due to the reallocation of many arrays. Now, we rather remember the context between evar creations by sharing it in the pretyping environment. This can be considered as a fix for bug #4964 even though we might do better.
2016-08-10Remove unused optional "predicative" argument.Guillaume Melquiond
2016-08-06Using a dedicated kind of substitutions in evar name generation.Pierre-Marie Pédrot
This saves a quadratic allocation by replacing arrays with maps.
2016-08-05Using the extended contexts in pretyping.Pierre-Marie Pédrot
In addition to sharing, we also delay the computation of the environment in a by-need fashion.
2016-08-04Use sets instead of lists for names to avoid in evar generation.Pierre-Marie Pédrot
2016-08-04Simplifying code in evar generation.Pierre-Marie Pédrot
We remove in particular a dubious use of an environment in fresh name generation. The code was using the wrong environment in a function only depending on the rel context which was resetted most of the time. This might change the generated names in extremely rare occurences.
2016-08-04Exporting the renaming API for evar declaration.Pierre-Marie Pédrot
2016-07-08Fixing #4906 (regression in printing an error message).Hugo Herbelin
2016-07-03errors.ml renamed into cErrors.ml (avoid clash with an OCaml compiler-lib ↵Pierre Letouzey
module) For the moment, there is an Error module in compilers-lib/ocamlbytecomp.cm(x)a
2016-06-29Univ: Use loc even if there are more unbound levelsMatthieu Sozeau
2016-06-29Univs: add source locations of levelsMatthieu Sozeau
For better error messages. The API change is backwards compatible, using a new optional argument.
2016-06-24Optmimize the subst tactic.Pierre-Marie Pédrot
Take advantage that the provided term is always a variable in Equality.is_eq_x.
2016-06-24Optimize the clear tactic.Pierre-Marie Pédrot
We do not allocate a closure in the main loop, and do so only when needed.
2016-06-24Optimize the clear tactic.Pierre-Marie Pédrot
We do not check for presence of a variable in a global definition when we know that this variable was not present in the section.
2016-06-23Better algorithm for variable deambiguation in term printing.Pierre-Marie Pédrot
We do not recompute shortest name identifier for global references that were already traversed. Furthermore, we share the computation of identifiers between invokations of the name generating function. This drastically speeds up detyping for huge goals, further mitigating the shortcomings of the fix for bug #4777.
2016-06-16Document new Hint Mode option.Matthieu Sozeau
2016-06-16Proofview: extensions for backtracking eautoMatthieu Sozeau
unshelve_goals is used to correctly register dependent subgoals that have to be solved. Resolution may fail to do so using hints, so we have to put them back as goals in that case. The shelf is a good interface for doing that. unifiable can be used outside proofview to detect dependencies between goals. This might be better in another module.
2016-06-16Implement limited proof search and iterative deepening.Matthieu Sozeau
Fix typo in proofview
2016-06-16Merge 'pr/191' into trunkEnrico Tassi
2016-06-14Merge remote-tracking branch 'origin/pr/173' into trunkEnrico Tassi
This is the "error resiliency" mode for STM
2016-06-14Fix a typo in proofs/proofview.mli.Cyprien Mangin
2016-06-14Fix usage of Pervasives in goal selectors.Cyprien Mangin
2016-06-14Add a comment about the use of a zipper, for clarity.Cyprien Mangin
2016-06-14Add a [CList.partitioni] function.Cyprien Mangin
2016-06-14Add goal range selectors.Cyprien Mangin
You can now write [[1, 3-5]:tac.] to apply [tac] on the subgoals numbered 1 and 3 to 5.
2016-06-09Adding a bit of documentation in the mli.Pierre-Marie Pédrot