aboutsummaryrefslogtreecommitdiffhomepage
path: root/test-suite
Commit message (Collapse)AuthorAge
* Merge branch 'v8.5' into v8.6Gravatar Pierre-Marie Pédrot2016-07-07
|\
* \ Merge remote-tracking branch 'github/bug4653' into v8.6Gravatar Matthieu Sozeau2016-07-07
|\ \
* | | Program: fix #4873: transparency option not usedGravatar Matthieu Sozeau2016-07-07
| | |
| | * Update csdp.cache.Gravatar Maxime Dénès2016-07-06
| | |
* | | Fixed bug #4622.Gravatar Matthieu Sozeau2016-07-06
| | |
* | | Disallow dependent case on prim records w/o etaGravatar Matthieu Sozeau2016-07-06
| | |
| | * Merge remote-tracking branch 'github/pr/199' into v8.5Gravatar Maxime Dénès2016-07-06
| | |\ | | | | | | | | | | | | Was PR#199: Unbreak singleton list-like notation (-compat 8.4)
| * | | Fix test-suite file 3690Gravatar Matthieu Sozeau2016-07-06
|/ / /
| * | congruence fix: test-suite code and update CHANGESGravatar Matthieu Sozeau2016-07-05
| | | | | | | | | | | | This fixes bugs #4069 (not 4609 as mentionned in the git log) and #4718.
* | | Merge branch 'v8.5' into trunkGravatar Maxime Dénès2016-07-04
|\ \ \
| | * | congruence: Restrict refreshing to SetGravatar Matthieu Sozeau2016-07-04
| | | | | | | | | | | | | | | | | | | | | | | | Because refreshing Prop is not semantics-preserving, the new universe is >= Set, so cannot be minimized to Prop afterwards.
| | * | congruence/univs: properly refresh (fix #4609)Gravatar Matthieu Sozeau2016-07-04
| |/ / | | | | | | | | | | | | | | | | | | In congruence, refresh universes including the Set/Prop ones so that congruence works with cumulativity, not restricting itself to the inferred types of terms that are manipulated but allowing them to be used at more general types. This fixes bug #4609.
| * | test-suite: test checking of libraries checksum.Gravatar Maxime Dénès2016-07-04
| | |
* | | Adding test for #4811.Gravatar Hugo Herbelin2016-07-02
| | |
| * | Fixing #4882 (anomaly with Declare Implicit Tactic on hole of type with evars).Gravatar Hugo Herbelin2016-07-01
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | But there are still bugs with Declare Implicit Tactic, which should probably rather be reimplemented with ltac:(tac). Indeed, it does support evars in the type of the term, and solve_by_implicit_tactic should transfer universe constraints to the main goal. E.g., the following still fails, at Qed time. Definition Foo {T}{a : T} : T := a. Declare Implicit Tactic eassumption. Goal forall A (x : A), A. intros. apply Foo. Qed.
* | | Fixing #4865 (deciding on which arguments to recompute scopes was not robust).Gravatar Hugo Herbelin2016-06-29
| | | | | | | | | | | | See 4865.v for details.
* | | Univs: Fix bug #4726Gravatar Matthieu Sozeau2016-06-29
| | | | | | | | | | | | | | | When using Record and an explicit sort constraint, the universe was wrongly made flexible and minimized.
* | | Fix issues in test-suite revealed by warnings.Gravatar Maxime Dénès2016-06-29
| | |
* | | Adding a test-suite for the only printing flag.Gravatar Pierre-Marie Pédrot2016-06-28
| | |
| * | Univs: allowing notations to take univ instancesGravatar Matthieu Sozeau2016-06-27
| | | | | | | | | | | | They can apply to the head reference under a notation.
| * | Forbidding silently dropped universes instances inGravatar Matthieu Sozeau2016-06-27
| | | | | | | | | | | | | | | | | | internalization. Patch by PMP, test-suite fix by MS.
* | | Shrink Proofs/Obligations by default and deprecateGravatar Matthieu Sozeau2016-06-27
| | | | | | | | | | | | | | | | | | | | | | | | | | | Fix bug in Shrink obligations with Program in the process. Fix implementation of shrink for abstract proofs - Update doc in term.mli to reflect the fact that let-in's are part of what is returned by [decompose_lam_assum].
* | | Merge branch 'v8.5'Gravatar Pierre-Marie Pédrot2016-06-27
|\| |
* | | Patterns in binders: printing testsGravatar Arnaud Spiwack2016-06-27
| | |
* | | 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.
| * | More on f9695eb4b, 827663982 on resolving #4782, #4813 (typing "with" clause).Gravatar Hugo Herbelin2016-06-27
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When typing a "with clause fails, type classes are used to possibly help to insert coercions. If this heuristic fails, do not consider it anymore to be the best failure since it has made type classes choices which may be inconsistent with other constraints and on which no backtracking is possible anymore (see new example in test suite file 4782.v). This does not mean that using type classes at this point is good. It may find an instance which help to find a coercion, but which might still be a choice of instance and coercion which is incompatible with other constraints. I tend to think that a convenient way to go to deal with the absence of backtracking in inserting coercions would be to have special For the record, here is a some comments of what happens regarding f9695eb4b and 827663982. In the presence of an instance (x:=t) given in a "with" clause, with t:T, and x expected of type T', the situation is the following: Before f9695eb4b: - If T and T' are closed and T <= T' is not satisfiable (no coercion or not convertible), the test for possible insertion of a coercion is postponed to w_merge, even though there is no way to get more information since T ant T' are closed. As a result, t may be ill-typed and the unification may try to unify ill-formed terms, leading to #4872. - If T and T' are not closed and contains evars of type a type class, inference of type classes is tried. If it fails, e.g. because a wrong type class instance is found, it was postponed to w_merge as above, and the test for coercion is retried now interleaved with type classes. After f9695eb4b and 827663982e: - If T and T' are closed and T <= T' is not satisfiable (no coercion or not convertible), the test for possible insertion of a coercion is an immediate failure. This fixes #4872. - However, If T and T' are not closed and contains evars of type a type class, inference of type classes is tried. If it gives closed terms and fails, this is immediate failure without backtracking on type classes, resulting in the problem added here to file 4872.v. The current fix does not consider the result of the use of type classes while trying to insert a coercion to be the last word on it. So, it fails with an error which is not the error for conversion of closed terms (ConversionFailed), therefore in a way expected by f9695eb4b and 827663982e, and the "with" typing problem is then postponed again.
* | | 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
|/| | | |