aboutsummaryrefslogtreecommitdiffhomepage
Commit message (Collapse)AuthorAge
* In evarconv, do first-order unification of LetIn's properly, ensuring we ↵Gravatar Matthieu Sozeau2014-09-01
| | | | | | compare bodies of convertible types! Bug found by B. Ziliani.
* Coqide prints succesive hyps of the same type on 1 lineGravatar Pierre Boutillier2014-09-01
| | | | | This revert somehow f5d7b2b1eda550f5bf0965286d449112acbbadde about "Hypotheses don't respect Barendregt convention".
* Code cleaning in Tacintern.Gravatar Pierre-Marie Pédrot2014-09-01
|
* Getting rid of atomic tactics in Tacenv.Gravatar Pierre-Marie Pédrot2014-08-31
| | | | | | 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.
* Moving code of tactic interpretation from Tacenv to Vernacentries.Gravatar Pierre-Marie Pédrot2014-08-31
| | | | | This allows to directly register globtactics in the Tacenv API, without having to resort to any internalization function.
* Simplify even further the declaration of primitive projections,Gravatar Matthieu Sozeau2014-08-30
| | | | | | | | | | | 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.
* Type-safe version of genarg list / pair / opt functions.Gravatar Pierre-Marie Pédrot2014-08-29
|
* Simplification of Genarg unpackers.Gravatar Pierre-Marie Pédrot2014-08-29
| | | | | Instead of having a version of unpackers for each level, we use a dummy argument to force unification of types.
* Not using a "cut" in descend_in_conjunctions induced more success. WeGravatar Hugo Herbelin2014-08-29
| | | | | | 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.
* Fixing commit 50237af2.Gravatar Pierre-Marie Pédrot2014-08-29
| | | | | Indeed, generalized binders are unnamed, because their name is generated on the fly.
* Add test-suite file. Compute the name for the record binder in theGravatar Matthieu Sozeau2014-08-29
| | | | eta-expanded version of a projection as before.
* Fix bug when defining primitive projections mixing defined and abstracts fields.Gravatar Matthieu Sozeau2014-08-29
|
* Fixing bug #3528.Gravatar Pierre-Marie Pédrot2014-08-28
|
* Simplification of the tclCHECKINTERRUPT tactic.Gravatar Pierre-Marie Pédrot2014-08-28
|
* Change the way primitive projections are declared to the kernel.Gravatar Matthieu Sozeau2014-08-28
| | | | | | | | | | | 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.
* Fix bugs #3484 and #3546.Gravatar Matthieu Sozeau2014-08-28
| | | | | | | 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).
* There are some occurs-check cases that can be handled by imitation (using ↵Gravatar Matthieu Sozeau2014-08-28
| | | | | | | 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).
* Fixing an unnatural selection of subterms larger than expected in theGravatar Hugo Herbelin2014-08-28
| | | | presence of let-ins.
* Cleaning and documenting a bit the Proofview.Refine module.Gravatar Pierre-Marie Pédrot2014-08-28
|
* Adding test-suite for bug #3212.Gravatar Pierre-Marie Pédrot2014-08-28
|
* Fixing bug #3541.Gravatar Pierre-Marie Pédrot2014-08-28
| | | | | | 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?
* Protect against "it's unifiable, if you solve some unsolvable constraints" ↵Gravatar Matthieu Sozeau2014-08-27
| | | | | | | | 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.
* Removing spurious tclWITHHOLES.Gravatar Pierre-Marie Pédrot2014-08-27
| | | | | | 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.
* Fixing bug #3493.Gravatar Pierre-Marie Pédrot2014-08-27
| | | | Coq now accepts the [Universes u1 ... un] syntax.
* Add a regression test for 3427Gravatar Jason Gross2014-08-26
|
* Prove forall extensionalityGravatar Jason Gross2014-08-26
|
* Add t-jagro to .mailmapGravatar Jason Gross2014-08-26
|
* Distributed binaries under MacOS are signed.Gravatar Pierre Boutillier2014-08-26
|
* Configure.ml creates metadata to annotate MacOS binariesGravatar Pierre Boutillier2014-08-26
|
* Debug RAKAMGravatar Pierre Boutillier2014-08-26
|
* sed s'/_one_var/_on/g'Gravatar Jason Gross2014-08-26
| | | | For consistency with ChoiceFacts
* Generalize EqdepFactsGravatar Jason Gross2014-08-26
| | | | | | | | 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.
* Do not pass "-batch" or "-load-vernac-source" to slaves, avoiding errors inGravatar Matthieu Sozeau2014-08-26
| | | | stm test-suite files.
* Make evarconv and unification able to handle eta for records in presenceGravatar Matthieu Sozeau2014-08-26
| | | | of metas/evars
* Fix compilation error due to commented code in previous commit by Hugo.Gravatar Matthieu Sozeau2014-08-26
|
* Fixing bug #3377 by giving env and sigma to constrMathching. Now it's possibleGravatar Matthieu Sozeau2014-08-25
| | | | | to match on a primitive projection application c.(p) using "?f _", binding f to (fun x => x.(p)) with the correct typing.
* Fix computation of dangling constraints at the end of a proof (bug #3531).Gravatar Matthieu Sozeau2014-08-25
|
* Fixing the essence of naming bug #3204: use same strategy for namingGravatar Hugo Herbelin2014-08-25
| | | | | | | | | | 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.
* Add an is_cofix tacticGravatar Jason Gross2014-08-25
| | | | | | 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?
* Prerequisite to fix stm test-suite when not in -localGravatar Pierre Boutillier2014-08-25
|
* "allows to", like "allowing to", is improperGravatar Jason Gross2014-08-25
| | | | | | | | | | | It's possible that I should have removed more "allows", as many instances of "foo allows to bar" could have been replaced by "foo bars" (e.g., "[Qed] allows to check and save a complete proof term" could be "[Qed] checks and saves a complete proof term"), but not always (e.g., "the optional argument allows to ignore universe polymorphism" should not be "the optional argument ignores universe polymorphism" but "the optional argument allows the caller to instruct Coq to ignore universe polymorphism" or something similar).
* instanciation is French, instantiation is EnglishGravatar Jason Gross2014-08-25
|
* Clean up a comment in plugins/romega/ReflOmegaCoreGravatar Jason Gross2014-08-25
| | | | Based on suggestion by @gasche.
* Grammar: "avoiding to" isn't proper, eitherGravatar Jason Gross2014-08-25
|
* Grammar: "allowing to" is not proper EnglishGravatar Jason Gross2014-08-25
| | | | | | | | | | | I'm not quite sure why, but I'm pretty sure it's not. Rather, in "allowing for foo" and "allowing to foo", "foo" modifies the sense in which someting is allowed, rather than it being "foo" that's allowed. "Allowing fooing" generally works, though it can sound a bit awkward. "Allowing one to foo" (or "Allowing {him,her,it,Coq} to foo") is always acceptable, in-as-much as it's ok to use "one". I haven't touched the older instances of it in the CHANGES file.
* Correct a spelling mistakeGravatar Jason Gross2014-08-25
|
* factored out require_modifiers + bug fix.Gravatar Gregory Malecha2014-08-25
| | | | | Conflicts: tools/coqdep_lexer.mll
* coqdep comments counter is in the stackGravatar Pierre Boutillier2014-08-25
|
* a comment about the new state.Gravatar Gregory Malecha2014-08-25
|
* Support for Timeout n and From ..Gravatar Gregory Malecha2014-08-25
| | | | | - The state machine gets kind of complex maybe it should become a parser at some point?