aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2015-02-25STM: proof state also includes meta countersEnrico Tassi
Workers send back incomplete system states (only the proof part). Such part must include the meta/evar counter.
2015-02-25Not building the doc by default.Maxime Dénès
Should make the compilation of Coq more robust against LaTeX errors. See e.g. #4091.
2015-02-25Fix phony targets. (Fix for bug #4083)Guillaume Melquiond
2015-02-25Reorder the steps of the easy tactic. (Fix for bug #2630)Guillaume Melquiond
Due to the way it was laid out, the tactic could prove neither (Zle x x) nor (P /\ Q -> P) nor (P |- P /\ True) yet it could prove (Zle x x /\ True) and (P /\ Q |- P).
2015-02-25Another test for a variant of complexity problem #4076 (thanks to A. Mortberg).Hugo Herbelin
2015-02-25Still continuing cf6a68b45, d64b5766a and 2734891ab7e on integratingHugo Herbelin
ensure_evar_independent into is_constrainable_in (a simpler approach closest to what existed before cf6a68b45).
2015-02-25Optimizing noccur_evar wrt expansion of let-ins (fix for variant of #4076).Hugo Herbelin
2015-02-25An optimization on filtering evar instances with let-ins suggested byHugo Herbelin
inefficiency #4076. In an evar context like this one x:X, y:=f(x), z:Z(x,y) |- ?x : T(x,y,z) with unification problem a:A, b:=f(t(a)) |- ?x[x:=t(a);y:=b;z:=u(a,b)] = v(a,b,c) we now keep y after filtering, iff the name b occurs effectively in v(a,b,c), while before, we kept it as soon as its expansion f(t(a)) had free variables in v(a,b,c), which was more often, but useless since the point in keeping a let-in in the instance is precisely to reuse the name of the let-in while unifying with a right-hand side which mentions this name.
2015-02-24Other tests for decl mode, coming from reference manual.Hugo Herbelin
2015-02-24Calling coq references lazily in plugin cc so as to support static linking ↵Hugo Herbelin
of plugins.
2015-02-24[Proofview.tclPROGRESS]: do not consider that trivial goal instantiation is ↵Arnaud Spiwack
progress. Also compare goals up to evar instantiation (otherwise no progress would be observed when only unification occurs, unless some [nf_evar] is done). Performance look unchanged so far. Some code from [Evd] which was used only in [tclPROGRESS] have been moved out (and [progress_evar_map] was now dead, so I killed it). Fixes bugs (one reported directly on coqdev, and #3412).
2015-02-24New function [Constr.equal_with] to compare terms up to variants of ↵Arnaud Spiwack
[kind_of_term]. To be able to write equality up to evar instantiation instantiation. Generalises the main function of [eq] constr over the variant of [kind_of_term] it uses. It prevents some optimisation of [Array.equal] where two physically equal arrays are considered (less or) equal. But it does not seem to have appreciable effects on efficiency.
2015-02-24Refactoring in [Constr].Arnaud Spiwack
[compare_head_gen] defined in terms of [compare_head_gen_leq]. Remove an unused argument from [compare_head_gen_leq].
2015-02-24[info_auto] & [info_trivial]: warning message to help users find [Info].Arnaud Spiwack
2015-02-24[info] tactical warning: do not suggest [info_auto] and [info_trivial].Arnaud Spiwack
Since they don't work anymore.
2015-02-24CHANGES: Info command + info_auto currently broken.Arnaud Spiwack
2015-02-24Another bug (de Bruijn) in continuing cf6a68b45 and d64b5766a onHugo Herbelin
integrating ensure_evar_independent into is_constrainable_in.
2015-02-24Update the list of phony targets produced by coq_makefile. (Fix for bug #4084)Guillaume Melquiond
Also make uninstall_me.sh a real target with proper dependencies.
2015-02-24Univs: Fix Check calling the kernel to retype in the wrong environment.Matthieu Sozeau
Fixes bug #4089.
2015-02-23Compensating 6fd763431 on postponing subtyping evar-evar problems.Hugo Herbelin
Pushing pending problems had the side-effect of later solving them in the opposite order as they arrived, resulting on different complexity (see e.g. #4076). We now take care of pushing them in reverse order so that they are treated in the same order.
2015-02-23Fixing cf6a68b45 on integrating ensure_evar_independent into ↵Hugo Herbelin
is_constrainable_in.
2015-02-23Fixed doc of fresh (was already outdated before fixing #3233).Pierre Courtieu
2015-02-23Fixed 3233 (fresh does not work with a qualid).Pierre Courtieu
fresh now accepts a qualid, and behaves as if given the short name. Since fresh used to accept an id, supporting qualid is IMO not a new feature but just a fix. Hence the fix in v8.5.
2015-02-23Merge branch 'v8.5' into trunkEnrico Tassi
2015-02-23Fix some typos in comments.Guillaume Melquiond
2015-02-23Test for #3953 (subst in evar instances).Hugo Herbelin
2015-02-23Less compatibility layer in Eauto.Pierre-Marie Pédrot
2015-02-23Fixing rewrite/subst when the subterm to rewrite is argument of an Evar.Hugo Herbelin
This was broken by the attempt to use the same algorithm for rewriting closed subterms than for rewriting subterms with evars: the algorithm to find subterms (w_unify_to_subterm) did not go through evars. But what to do when looking say, for a pattern "S ?n" in a goal "S ?x[a:=S ?y]"? Should we unify ?x[a:=S ?y] with ?n or consider ?x as rigid and look in the instance? If we adopt the first approach, then, what to do when looking for "S ?n" in a goal "?x[a:=S ?y]"? Failing? Looking in the instance? Is it normal that an evar behaves as a rigid constant when it cannot be unified with the pattern?
2015-02-23Fixing occur-check which was too strong in unification.ml.Hugo Herbelin
2015-02-23Fixing 934761875 about optimizing Import of several libraries at once ↵Hugo Herbelin
(thanks to Enrico for noticing a bug).
2015-02-23Fixing test #2830.Pierre-Marie Pédrot
2015-02-23Fixing test for bug #3071.Pierre-Marie Pédrot
2015-02-23Partially porting eauto to the new tactic API.Pierre-Marie Pédrot
2015-02-23Merge branch 'v8.5'Pierre-Marie Pédrot
2015-02-21Moving test for bug #3071.Pierre-Marie Pédrot
2015-02-21Fixing bug #3071.Pierre-Marie Pédrot
2015-02-21Documenting the caveat of assumption printing in the mli.Pierre-Marie Pédrot
2015-02-21Import (module): Do not force constraints if not ready (Close #4066)Enrico Tassi
2015-02-21Future: human readable name for delegated (Close #4065)Enrico Tassi
2015-02-21Test for bug #4078.Pierre-Marie Pédrot
2015-02-21Tentative fix for bug #4078.Pierre-Marie Pédrot
2015-02-21More resilient implementation of Print Assumptions.Pierre-Marie Pédrot
Instead of registering all the transitive dependencies of a term in one go, we rather recursively build the graph of direct dependencies of this term. This is finer-grained and offers a better API. The traversal now uses the standard term fold operation, and also registers inductives and constructors encountered in the traversal.
2015-02-21Continuing experimentation on what part of the instance of an evarHugo Herbelin
to display by default (see bc8a5357889 - 17 Oct 2014): - not printing instances for let-in anymore even when expanded (since they are canonical up to conversion) - still printing x:=x in [x:=x;x':=x] when x is directly an instance of another var, but not in [x:=x;x':=S x] This can be discussed, but if ever this is to be changed, it should not be printed in [x:=x;x:=?n] with ?n implicitly depending on x (otherwise said, variables which are not displayed in instances of internal evars should not contribute to the decision of writing x:=x in the instance).
2015-02-21Removing need for ensure_evar_independent by passing a force flag to ↵Hugo Herbelin
is_constrainable_in to do the job of ensuring that ?p does not belong to the ti while solving ?p[...]:=?n[t1..tn].
2015-02-21Better English for #4070 implicit arguments message (thanks to Jason for his ↵Hugo Herbelin
help).
2015-02-21Removed tests for #3900 and #3944 as open bugs.Hugo Herbelin
2015-02-20An answer to #4070 (message for implicit arguments of inl not clear).Hugo Herbelin
2015-02-20Fixing bug #4073.Pierre-Marie Pédrot
2015-02-20Fixing error message when H already exists in tactic subexpression eqn:H.Hugo Herbelin
2015-02-20A fix for #3993 (not fully applied term to destruct when eqn is given).Hugo Herbelin