aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2014-09-02Fixing bug #3136.Pierre-Marie Pédrot
Second-order pattern-matching now respect variable abstraction order.
2014-09-02Another fix than 19a7a5789c to avoid descend_in_conjunction to useHugo Herbelin
fresh names interferring with names later generated in intropatterns (as introduced in 72498d6d68ac which passed "clenv_refine_in continued by pattern introduction" to descend_in_conjunction while only a pure clenv_refine was passed before). The 72498d6d68ac version was generating fresh names in the wrong order (morally-private names for descend_in_conjunction before user-level names in clenv_refine_in). The 19a7a5789c fix was introducing expressions not handled by the refine from logic.ml. In particular, this fixes RelationAlgebra.
2014-09-02An apply test.Hugo Herbelin
2014-09-02Fixup introduction of coqworkmgrPierre Boutillier
2014-09-02Removing [revert] tactic from the AST.Pierre-Marie Pédrot
2014-09-02stm: use xlabel insted of label in dot (debug) outputEnrico Tassi
2014-09-02coqworkmgrEnrico Tassi
2014-09-02Fix Declaremods.end_library (Closes: #3536)Enrico Tassi
2014-09-01Removing the 'inductive' parameter from tacexpr AST.Pierre-Marie Pédrot
It was actually useless, because its only use was in the moved away decompose tactic.
2014-09-01Moving the decompose tactic out of the AST.Pierre-Marie Pédrot
2014-09-01In evarconv, do first-order unification of LetIn's properly, ensuring we ↵Matthieu Sozeau
compare bodies of convertible types! Bug found by B. Ziliani.
2014-09-01Coqide prints succesive hyps of the same type on 1 linePierre Boutillier
This revert somehow f5d7b2b1eda550f5bf0965286d449112acbbadde about "Hypotheses don't respect Barendregt convention".
2014-09-01Code cleaning in Tacintern.Pierre-Marie Pédrot
2014-08-31Getting rid of atomic tactics in Tacenv.Pierre-Marie Pédrot
ML tactics that may be used as simple identifiers are now declared as a true Ltac entry pertaining to the module that contains the Declare ML Module statement.
2014-08-31Moving code of tactic interpretation from Tacenv to Vernacentries.Pierre-Marie Pédrot
This allows to directly register globtactics in the Tacenv API, without having to resort to any internalization function.
2014-08-30Simplify even further the declaration of primitive projections,Matthieu Sozeau
now done entirely using declare_mind, which declares the associated constants for primitive records. This avoids a hack related to elimination schemes and ensures that the forward references to constants in the mutual inductive entry are properly declared just after the inductive. This also clarifies (and simplifies) the code of term_typing for constants which does not have to deal with building or checking projections anymore. Also fix printing of universes showing the de Bruijn encoding in a few places.
2014-08-29Type-safe version of genarg list / pair / opt functions.Pierre-Marie Pédrot
2014-08-29Simplification of Genarg unpackers.Pierre-Marie Pédrot
Instead of having a version of unpackers for each level, we use a dummy argument to force unification of types.
2014-08-29Not using a "cut" in descend_in_conjunctions induced more success. WeHugo Herbelin
at least remove the successes obtained by trivial unification of a meta with the goal, so as to avoid surprising results. We generalize this to variables which will only eventually be replaced by metas.
2014-08-29Fixing commit 50237af2.Pierre-Marie Pédrot
Indeed, generalized binders are unnamed, because their name is generated on the fly.
2014-08-29Add test-suite file. Compute the name for the record binder in theMatthieu Sozeau
eta-expanded version of a projection as before.
2014-08-29Fix bug when defining primitive projections mixing defined and abstracts fields.Matthieu Sozeau
2014-08-28Fixing bug #3528.Pierre-Marie Pédrot
2014-08-28Simplification of the tclCHECKINTERRUPT tactic.Pierre-Marie Pédrot
2014-08-28Change the way primitive projections are declared to the kernel.Matthieu Sozeau
Now kernel/indtypes builds the corresponding terms (has to be trusted) while translate_constant just binds a constant name to the already entered projection body, avoiding the dubious "check" of user given terms. "case" Pattern-matching on primitive records is now disallowed, and the default scheme is implemented using projections and eta (all elimination tactics now use projections as well). Elaborate "let (x, y) := p in t" using let bindings for the projections of p too.
2014-08-28Fix bugs #3484 and #3546.Matthieu Sozeau
The unification oracle now prefers unfolding the eta-expanded form of a projection over the primitive projection, and allows first-order unification on applications of constructors of primitive records, in case eta-conversion fails (disabled by previous patch on eta).
2014-08-28There are some occurs-check cases that can be handled by imitation (using ↵Matthieu Sozeau
pruning), hence do not entirely prevent solve_simple_eqn in case of apparent occurs-check but backtrack to eqappr on OccurCheck failures (problem found in Ssreflect).
2014-08-28Fixing an unnatural selection of subterms larger than expected in theHugo Herbelin
presence of let-ins.
2014-08-28Cleaning and documenting a bit the Proofview.Refine module.Pierre-Marie Pédrot
2014-08-28Adding test-suite for bug #3212.Pierre-Marie Pédrot
2014-08-28Fixing bug #3541.Pierre-Marie Pédrot
All superscript numbers are now symbols instead of parts of identifiers. This disallows some identifiers, but hopefully not a lot of people were using superscripts as part of identifiers, weren't they?
2014-08-27Protect against "it's unifiable, if you solve some unsolvable constraints" ↵Matthieu Sozeau
behavior of evar_conv_x, getting more common after patch on evars and eta. The main problem is that ?X = C[?X] problems get postponed now, when they failed earlier before (rendering the algorithm incomplete, e.g. on ?X = \y. ?X y). A notion of "rigid/strongly rigid" occurrences would give a better fix.
2014-08-27Removing spurious tclWITHHOLES.Pierre-Marie Pédrot
Indeed [tclWITHHOLES false tac sigma x] is equivalent to [tclEVARS sigma <*> tac x] and we should try to reduce the use of this tactical, because it is mostly a legacy tactic.
2014-08-27Fixing bug #3493.Pierre-Marie Pédrot
Coq now accepts the [Universes u1 ... un] syntax.
2014-08-26Add a regression test for 3427Jason Gross
2014-08-26Prove forall extensionalityJason Gross
2014-08-26Add t-jagro to .mailmapJason Gross
2014-08-26Distributed binaries under MacOS are signed.Pierre Boutillier
2014-08-26Configure.ml creates metadata to annotate MacOS binariesPierre Boutillier
2014-08-26Debug RAKAMPierre Boutillier
2014-08-26sed s'/_one_var/_on/g'Jason Gross
For consistency with ChoiceFacts
2014-08-26Generalize EqdepFactsJason Gross
The generalized versions are names *_one_var. We preserve backwards compatibility by defining the old versions in terms of the generalized ones. This closes the rest of Bug 3019, and closes pull request #6.
2014-08-26Do not pass "-batch" or "-load-vernac-source" to slaves, avoiding errors inMatthieu Sozeau
stm test-suite files.
2014-08-26Make evarconv and unification able to handle eta for records in presenceMatthieu Sozeau
of metas/evars
2014-08-26Fix compilation error due to commented code in previous commit by Hugo.Matthieu Sozeau
2014-08-25Fixing bug #3377 by giving env and sigma to constrMathching. Now it's possibleMatthieu Sozeau
to match on a primitive projection application c.(p) using "?f _", binding f to (fun x => x.(p)) with the correct typing.
2014-08-25Fix computation of dangling constraints at the end of a proof (bug #3531).Matthieu Sozeau
2014-08-25Fixing the essence of naming bug #3204: use same strategy for namingHugo Herbelin
cases pattern variables than for naming forall/fun binders (but still avoiding constructor names). Note in passing: such as it is implemented, the general strategy is in O(n²) in the number of nested binders, because, when computing the name for each 'fun x => c" (or forall, or a pattern name), the names from the outside c and visibly occurring in c are computed.
2014-08-25Add an is_cofix tacticJason Gross
Should we also add is_* tactics for other things? is_rel, is_meta, is_sort, is_cast, is_prod, is_lambda, is_letin, is_app, is_const, is_ind, is_constructor, is_case, is_proj?
2014-08-25Prerequisite to fix stm test-suite when not in -localPierre Boutillier