aboutsummaryrefslogtreecommitdiffhomepage
path: root/test-suite
Commit message (Collapse)AuthorAge
* Patterns in binders: functional testsGravatar Arnaud Spiwack2016-06-27
|
* Adding ability to put any pattern in binders, prefixed by a quote.Gravatar Daniel de Rauglaudre2016-06-27
| | | | Cf CHANGES for details.
* Fixing #4854 (regression introduced in 4d25b224 in relation with #4592).Gravatar Hugo Herbelin2016-06-24
|
* Test-suite fix to 1744e37 (injection in context).Gravatar Hugo Herbelin2016-06-18
| | | | | Preserve a compatibility whether the Structural Injection flag is on or not.
* Adding an "as" clause to specialize.Gravatar Hugo Herbelin2016-06-18
| | | | | | | | | | | | | | | | | | | | | | | | Comments -------- - The tactic specialize conveys a somehow intuitive reasoning concept and I would support continuing maintaining it even if the design comes in my opinion with some oddities. (Note that the experience of MathComp and SSReflect also suggests that specialize is an interesting concept in itself). There are two variants to specialize: - specialize (H args) with H an hypothesis looks natural: we specialize H with extra arguments and the "as pattern" clause comes naturally as an extension of it, destructuring the result using the pattern. - specialize term with bindings makes the choice of fully applying the term filling missing expressions with bindings and to then behave as generalize. Wouldn't we like a more fine-grained approach and the result to remain in the context? In this second case, the "as" clause works as if the term were posed in the context with "pose proof".
* Giving a more natural semantics to injection by default.Gravatar Hugo Herbelin2016-06-18
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | There were three versions of injection: 1. "injection term" without "as" clause: was leaving hypotheses on the goal in reverse order 2. "injection term as ipat", first version: was introduction hypotheses using ipat in reverse order without checking that the number of ipat was the size of the injection (activated with "Unset Injection L2R Pattern Order") 3. "injection term as ipat", second version: was introduction hypotheses using ipat in left-to-right order checking that the number of ipat was the size of the injection and clearing the injecting term by default if an hypothesis (activated with "Set Injection L2R Pattern Order", default one from 8.5) There is now: 4. "injection term" without "as" clause, new version: introducing the components of the injection in the context in left-to-right order using default intro-patterns "?" and clearing the injecting term by default if an hypothesis (activated with "Set Structural Injection") The new versions 3. and 4. are the "expected" ones in the sense that they have the following good properties: - introduction in the context is in the natural left-to-right order - "injection" behaves the same with and without "as", always introducing the hypotheses in the goal what corresponds to the natural expectation as the changes I made in the proof scripts for adaptation confirm - clear the "injection" hypothesis when an hypothesis which is the natural expectation as the changes I made in the proof scripts for adaptation confirm The compatibility can be preserved by "Unset Structural Injection" or by calling "simple injection". The flag is currently off.
* Exporting a generic argument induction_arg. As a consequence,Gravatar Hugo Herbelin2016-06-18
| | | | | simplifying and generalizing the grammar entries for injection, discriminate and simplify_eq.
* par: like all: but in parallelGravatar Enrico Tassi2016-06-17
| | | | | | | | | | | | | This commit documents par:, fixes its semantics so that is behaves like all:, supports (toplevel) abstract and optimizes toplevel solve. `par: solve [tac]` is equivalent to `Ltac tac1 := solve[tac]...par: tac1` but is optimized for failures: if one goal fails all are aborted immediately. `par: abstract tac` runs abstract on the generated proof terms. Nested abstract calls are not supported.
* proof mode: print unification constraintsGravatar Matthieu Sozeau2016-06-16
| | | | along with goals, with nice formatting.
* Tentative fix of test-suite file to avoid loopGravatar Matthieu Sozeau2016-06-16
| | | | | Looping on jenkins only, couldn't reproduce locally. To be investigated further.
* Cleanup and refactoringGravatar Matthieu Sozeau2016-06-16
|
* Revise syntax of Hint CutGravatar Matthieu Sozeau2016-06-16
| | | | | As noticed by C. Cohen it was confusingly different from standard notation.
* Example given at DeepSpec workshopGravatar Matthieu Sozeau2016-06-16
|
* Purely refactoring and code/API cleanup.Gravatar Matthieu Sozeau2016-06-16
| | | | Fix test-suite files
* eauto: fix test-suite fileGravatar Matthieu Sozeau2016-06-16
| | | | Now that typeclasses eauto uses the new eauto.
* bteauto: a Proofview.tactic for multiple goalsGravatar Matthieu Sozeau2016-06-16
| | | | | | | Add an option to force backtracking at toplevel, which is used by default when calling typeclasses eauto on a set of goals. They might be depended on by other subgoals, so the tactic should be backtracking by default, a once can make it not backtrack.
* Fix iterative deepening strategy failing too earlyGravatar Matthieu Sozeau2016-06-16
| | | | | | Report limit exceeded on _any_ branch so that we pursue search if it was reached at least once. Add example by N. Tabareau in test-suite.
* Implement limited proof search and iterative deepening.Gravatar Matthieu Sozeau2016-06-16
| | | | Fix typo in proofview
* Typeclasses eauto based on new proof engine,Gravatar Matthieu Sozeau2016-06-16
| | | | with full backtracking across multiple goals.
* Refine 9cc95f5, unification of Let-In's, bug #3929Gravatar Matthieu Sozeau2016-06-16
| | | | | | | We unify types of let-ins in FO heuristic before their bodies, using cumulativity in either direction. This maintains the invariant that we are comparing terms in related types throughout unification. Also adapt test-suite file for bug #3929.
* Not taking arguments given by name or position into account whenGravatar Hugo Herbelin2016-06-16
| | | | | | | | | | computing the arguments which allows to decide which list of implicit arguments to consider when several such lists are available. For instance, "eq_refl (A:=nat)" is now interpreted as "@eq_refl nat _", the same way as if we had said: Arguments eq_refl {A} {x}.
* Merge 'pr/191' into trunkGravatar Enrico Tassi2016-06-16
|\
* \ Merge branch 'pr/146' into trunkGravatar Enrico Tassi2016-06-16
|\ \
* | | Fix test-suite for opened bug #4813.Gravatar Pierre-Marie Pédrot2016-06-15
| | |
| * | Merge branch 'pr/146' into trunkGravatar Enrico Tassi2016-06-15
|/| |
| * | ssrmatching: simple test for Ltac APIGravatar Enrico Tassi2016-06-15
| | |
* | | fix test-suite/ide Makefile (stupid typo)Gravatar Enrico Tassi2016-06-15
|/ /
* | test-suiet: run fake_id as before pr/173 was mergedGravatar Enrico Tassi2016-06-14
| |
* | Merge remote-tracking branch 'origin/pr/173' into trunkGravatar Enrico Tassi2016-06-14
|\ \ | | | | | | | | | This is the "error resiliency" mode for STM
| | * Ident selectors cannot be used inside an Ltac expression.Gravatar Cyprien Mangin2016-06-14
| | | | | | | | | | | | They can still be used at the toplevel.
| | * Goal selectors are now tacticals and can be used as such.Gravatar Cyprien Mangin2016-06-14
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This allows to write things like this: split; 2: intro _; exact I or like this: eexists ?[x]; ?[x]: exact 0; trivial This has the side-effect on making the '?' before '[x]' mandatory.
| | * Remove the need for brackets in goal selectors.Gravatar Cyprien Mangin2016-06-14
| | |
| | * Add test-suite file for goal selectors.Gravatar Cyprien Mangin2016-06-14
| |/ |/|
* | Merge branch "LtacProf for trunk" (PR #165).Gravatar Pierre-Marie Pédrot2016-06-14
|\ \
* | | Univs: more robust Universe/Constraint decls #4816Gravatar Matthieu Sozeau2016-06-13
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This fixes the declarations of constraints, universes and assumptions: - global constraints can refer to global universes only, - polymorphic universes, constraints and assumptions can only be declared inside sections, when all the section's variables/universes are polymorphic as well. - monomorphic assumptions may only be declared in section contexts which are not parameterized by polymorphic universes/assumptions. Add fix for part 1 of bug #4816
* | | Merge branch 'v8.5'Gravatar Pierre-Marie Pédrot2016-06-13
|\ \ \
* | | | For the record, an example one would like to see working.Gravatar Hugo Herbelin2016-06-12
| | | |
| * | | Another fix to #4782 (a typing error not captured when dealing with bindings).Gravatar Hugo Herbelin2016-06-12
| | | | | | | | | | | | | | | | | | | | | | | | The tentative fix in f9695eb4b (which I was afraid it might be too strong, since it was implying failing more often) indeed broke other things (see #4813).
| * | | Fixing #4782 (a typing error not captured when dealing with bindings).Gravatar Hugo Herbelin2016-06-11
| | | | | | | | | | | | | | | | | | | | | | | | Trying to now catch all unification errors, but without a clear view at whether some errors could be tolerated at the point of checking the type of the binding.
* | | | Merge branch 'v8.5'Gravatar Pierre-Marie Pédrot2016-06-09
|\| | |
| * | | Fixing #4644 (regression of unification on evar-evar problems with a match).Gravatar Hugo Herbelin2016-06-09
| | | | | | | | | | | | | | | | | | | | Typically, a problem of the form "?x args = match ?y with ... end" was a failure even if miller-unification was applicable.
* | | | Test for #4787.Gravatar Hugo Herbelin2016-06-07
| | | |
| | | * Error box detection run only on errorGravatar Enrico Tassi2016-06-06
| | | | | | | | | | | | | | | | | | | | Advantage: 0 cost if no error occurs Disadvantage: a box *must* end with the error absorbing command
| | | * STM: proof block detection made optional + simple testGravatar Enrico Tassi2016-06-06
| | | |
* | | | About printing of traces of failures while calling ltac code.Gravatar Hugo Herbelin2016-06-06
| |_|/ |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | An Ltac trace printing mechanism was introduced in 8.4 which was inadvertedly modified by a series of commits such as 8e10368c3, 91f44f1da7a, ... It was also sometimes buggy, iirc, when entering ML tactics which themselves were calling ltac code. It got really bad in 8.5 as in: Tactic Notation "f" constr(x) := apply x. Ltac g x := f x. Goal False. idtac; f I. (* bad location reporting *) g I. (* was referring to tactic name "Top.Top#<>#1" *) which this commit fixes. I don't have a clear idea of what would be the best ltac tracing mechanism, but to avoid it to be broken without being noticed, I started to add some tests. Eventually, it might be worth that an Ltac expert brainstrom on it!
| | * Improve a comment in the test suiteGravatar Jason Gross2016-06-05
| | |
| | * Make Ltac Profiling an settingGravatar Jason Gross2016-06-05
| | |
| | * LtacProf for Coq trunkGravatar Jason Gross2016-06-05
| |/ |/| | | | | | | | | This add LtacProfiling. Much of the code was written by Tobias Tebbi (@tebbi), and Paul A. Steckler was invaluable in porting the code to Coq v8.5 and Coq trunk.
* | Removing "exact" from the tactic AST.Gravatar Pierre-Marie Pédrot2016-06-03
| |
* | Update primitive coinductive test-suite.Gravatar Matthieu Sozeau2016-06-02
| |