aboutsummaryrefslogtreecommitdiffhomepage
path: root/engine
Commit message (Collapse)AuthorAge
* Merge PR#713: Bump year in headers.Gravatar Maxime Dénès2017-06-15
|\
* \ Merge PR#440: Univs: fix bug #5365, generation of u+k <= v constraintsGravatar Maxime Dénès2017-06-15
|\ \
| * | Univs: fix bug #5365, generation of u+k <= v constraintsGravatar Matthieu Sozeau2017-06-05
| | | | | | | | | | | | Use an explicit label ~algebraic for make_flexible_variable as well.
| | * Bump year in headers.Gravatar Maxime Dénès2017-06-01
| |/ |/|
* | Fix an optimization failure in tclPROGRESS.Gravatar Pierre-Marie Pédrot2017-04-25
|/ | | | | | Due to code reworking, a fastpath got anihilated because the slow path was computed altogether. We now only compute the slow check whenever the quick one fails.
* Merge branch 'v8.5' into v8.6Gravatar Pierre-Marie Pédrot2017-01-23
|
* Document changesGravatar Matthieu Sozeau2016-12-02
|
* Fix UGraph.check_eq!Gravatar Matthieu Sozeau2016-11-30
| | | | | | | | | | | | | | | | | 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
* Merge remote-tracking branch 'github/pr/339' into v8.6Gravatar Maxime Dénès2016-11-07
|\ | | | | | | Was PR#339: Documenting type class options, typeclasses eauto
| * Fixes to compile with ocaml 4.01Gravatar Matthieu Sozeau2016-11-07
| |
* | Merge commit 'e6edb33' into v8.6Gravatar Maxime Dénès2016-11-07
|\ \ | |/ |/| | | Was PR#331: Solve_constraints and Set Use Unification Heuristics
* | Merge remote-tracking branch 'github/pr/321' into v8.6Gravatar Maxime Dénès2016-10-28
|\ \ | | | | | | | | | Was PR#321: Handling of section variables in hints
* | | Merge branch 'v8.5' into v8.6Gravatar Pierre-Marie Pédrot2016-10-26
| | |
| | * Unification constraint handling (#4763, #5149)Gravatar Matthieu Sozeau2016-10-22
| |/ |/| | | | | | | | | | | | | | | | | | | | | | | | | | | 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.
* | Oops, my bad, didn't expect a merge issue!Gravatar Matthieu Sozeau2016-10-21
| |
* | Merge remote-tracking branch 'gforge/v8.5' into v8.6Gravatar Matthieu Sozeau2016-10-21
| |
| * sections/hints: prevent Not_found in get_type_ofGravatar Matthieu Sozeau2016-10-21
|/ | | | | | | | 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.
* Fix bug #5145: Anomaly: index to an anonymous variable.Gravatar Pierre-Marie Pédrot2016-10-15
| | | | | When printing evar constraints, we ensure that every variable from the rel context has a name.
* Merge branch 'v8.5' into v8.6Gravatar Pierre-Marie Pédrot2016-10-12
|
* Merge branch 'v8.5' into v8.6Gravatar Pierre-Marie Pédrot2016-10-12
|
* Merge remote-tracking branch 'github/pr/263' into v8.6Gravatar Maxime Dénès2016-10-03
|\ | | | | | | Was PR#263: Fast lookup in named contexts
* | Adding variants enter_one and refine_one which assume that exactly oneGravatar Hugo Herbelin2016-09-16
| | | | | | | | goal is under focus and which support returning a relevant output.
| * Tracking careless uses of slow name lookup.Gravatar Pierre-Marie Pédrot2016-09-09
|/
* Fast path in push_rel_context_to_named_context.Gravatar Pierre-Marie Pédrot2016-09-05
| | | | | Essentially, we do not reconstruct the named_context_val when the rel_context is empty.
* Fast path in whd_evar.Gravatar Pierre-Marie Pédrot2016-09-02
| | | | | Before computing the whd_evar-form of the arguments of an evar, we first check that it is indeed defined.
* Short documentation, filling TODO's in evd.mli.Gravatar Hugo Herbelin2016-09-01
|
* Do not export an internal function in Namegen.Gravatar Pierre-Marie Pédrot2016-08-25
|
* Two protections against failures when printing evar_map.Gravatar Hugo Herbelin2016-08-17
| | | | | | | | 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).
* Fixing printing in debugger (no global env in debugger).Gravatar Hugo Herbelin2016-08-17
|
* Efficiently generate the pretyping contexts.Gravatar Pierre-Marie Pédrot2016-08-16
|\ | | | | | | | | | | | | | | | | | | 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.
* | Remove unused optional "predicative" argument.Gravatar Guillaume Melquiond2016-08-10
| |
| * Using a dedicated kind of substitutions in evar name generation.Gravatar Pierre-Marie Pédrot2016-08-06
| | | | | | | | This saves a quadratic allocation by replacing arrays with maps.
| * Using the extended contexts in pretyping.Gravatar Pierre-Marie Pédrot2016-08-05
| | | | | | | | | | In addition to sharing, we also delay the computation of the environment in a by-need fashion.
| * Use sets instead of lists for names to avoid in evar generation.Gravatar Pierre-Marie Pédrot2016-08-04
| |
| * Simplifying code in evar generation.Gravatar Pierre-Marie Pédrot2016-08-04
| | | | | | | | | | | | | | 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.
| * Exporting the renaming API for evar declaration.Gravatar Pierre-Marie Pédrot2016-08-04
|/
* Fixing #4906 (regression in printing an error message).Gravatar Hugo Herbelin2016-07-08
|
* errors.ml renamed into cErrors.ml (avoid clash with an OCaml compiler-lib ↵Gravatar Pierre Letouzey2016-07-03
| | | | | | module) For the moment, there is an Error module in compilers-lib/ocamlbytecomp.cm(x)a
* Univ: Use loc even if there are more unbound levelsGravatar Matthieu Sozeau2016-06-29
|
* Univs: add source locations of levelsGravatar Matthieu Sozeau2016-06-29
| | | | | For better error messages. The API change is backwards compatible, using a new optional argument.
* Optmimize the subst tactic.Gravatar Pierre-Marie Pédrot2016-06-24
| | | | Take advantage that the provided term is always a variable in Equality.is_eq_x.
* Optimize the clear tactic.Gravatar Pierre-Marie Pédrot2016-06-24
| | | | We do not allocate a closure in the main loop, and do so only when needed.
* Optimize the clear tactic.Gravatar Pierre-Marie Pédrot2016-06-24
| | | | | 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.
* Better algorithm for variable deambiguation in term printing.Gravatar Pierre-Marie Pédrot2016-06-23
| | | | | | | | | 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.
* Document new Hint Mode option.Gravatar Matthieu Sozeau2016-06-16
|
* Proofview: extensions for backtracking eautoGravatar Matthieu Sozeau2016-06-16
| | | | | | | | | | 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.
* Implement limited proof search and iterative deepening.Gravatar Matthieu Sozeau2016-06-16
| | | | Fix typo in proofview
* Merge 'pr/191' into trunkGravatar Enrico Tassi2016-06-16
|\
* \ Merge remote-tracking branch 'origin/pr/173' into trunkGravatar Enrico Tassi2016-06-14
|\ \ | | | | | | | | | This is the "error resiliency" mode for STM
| | * Fix a typo in proofs/proofview.mli.Gravatar Cyprien Mangin2016-06-14
| | |