aboutsummaryrefslogtreecommitdiff
path: root/test-suite
AgeCommit message (Collapse)Author
2017-04-03Add test file for #4957.Maxime Dénès
Bug #4957 was "unify cannot directly unify universes with evars, but can do so indirectly".
2017-03-30Merge branch 'v8.6' into trunkMaxime Dénès
2017-03-29Run non-tactic comands without resilient_commandTej Chajed
2017-03-24Merge branch 'trunk' into pr379Maxime Dénès
2017-03-24Applying same convention as in Definition for printing type in a let in.Hugo Herbelin
Also adding spaces around ":=" and ":" when printed as "(x : t := c)". Example: Check fun y => let x : True := I in fun z => z+y=0. (* λ (y : nat) (x : True := I) (z : nat), z + y = 0 : nat → nat → Prop *)
2017-03-23Supporting arbitrary binders in record fields, including e.g. patterns.Hugo Herbelin
2017-03-23A test checking for non-collision of name in irrefutable patterns.Hugo Herbelin
2017-03-23Merge branch 'v8.6' into trunkMaxime Dénès
2017-03-23Merge PR#507: Intern names bound in match patternsMaxime Dénès
2017-03-23Intern names bound in match patternsTej Chajed
Fixes Coq bug 5345 (https://coq.inria.fr/bugs/show_bug.cgi?id=5345): Cannot use names bound in matches inside Ltac definitions.
2017-03-23Merge branch 'v8.6' into trunkMaxime Dénès
2017-03-22Make IZR use a compact representation of integers.Guillaume Melquiond
That way, (IZR 5) is no longer reduced to 2 + 1 + 1 + 1 (which is not convertible to 5) but instead to 1 + 2 * 2 (which is). Moreover, it means that, after reduction, real constants no longer exponentially blow up. Note that I was not able to fix the test-suite for the declarative mode, so the missing proof terms have been admitted.
2017-03-22funind: Ignore missing info for current functionTej Chajed
Fixes [Coq bug #5372](https://coq.inria.fr/bugs/show_bug.cgi?id=5372) "Anomaly: Not a valid information when defining mutual fixpoints that are not mutual with Function".
2017-03-22Merge branch 'v8.6'Pierre-Marie Pédrot
2017-03-21[pp] Make feedback the only logging mechanism.Emilio Jesus Gallego Arias
Previously to this patch, Coq featured to distinct logging paths: the console legacy one, based on `Pp.std_ppcmds` and Ocaml's `Format` module, and the `Feedback` one, intended to encapsulate message inside a more general, GUI-based feedback protocol. This patch removes the legacy logging path and makes feedback canonical. Thus, the core of Coq has no dependency on console code anymore. Additionally, this patch resolves the duplication of "document" formats present in the same situation. The original console-based printing code relied on an opaque datatype `std_ppcmds`, (mostly a reification of `Format`'s format strings) that could be then rendered to the console. However, the feedback path couldn't reuse this type due to its opaque nature. The first versions just embedded rending of `std_ppcmds` to a string, however in 8.5 a new "rich printing" type, `Richpp.richpp` was introduced. The idea for this type was to be serializable, however it brought several problems: it didn't have proper document manipulation operations, its format was overly verbose and didn't preserve the full layout, and it still relied on `Format` for generation, making client-side rendering difficult. We thus follow the plan outlined in CEP#9, that is to say, we take a public and refactored version of `std_ppcmds` as the canonical "document type", and move feedback to be over there. The toplevel now is implemented as a feedback listener and has ownership of the console. `richpp` is now IDE-specific, and only used for legacy rendering. It could go away in future versions. `std_ppcmds` carries strictly more information and is friendlier to client-side rendering and display control. Thus, the new panorama is: - `Feedback` has become a very module for event dispatching. - `Pp` contains a target-independent box-based document format. It also contains the `Format`-based renderer. - All console access lives in `toplevel`, with console handlers private to coqtop. _NOTE_: After this patch, many printing parameters such as printing width or depth should be set client-side. This works better IMO, clients don't need to notify Coq about resizing anywmore. Indeed, for box-based capable backends such as HTML or LaTeX, the UI can directly render and let the engine perform the word breaking work. _NOTE_: Many messages could benefit from new features of the output format, however we have chosen not to alter them to preserve output. A Future commits will move console tag handling in `Pp_style` to `toplevel/`, where it logically belongs. The only change with regards to printing is that the "Error:" header was added to console output in several different positions, we have removed some of this duplication, now error messages should be a bit more consistent.
2017-03-17Merge PR#429: Don't require printing-only notation to be productiveMaxime Dénès
2017-03-14Report missing tactic arguments in error messageTej Chajed
Augments "A fully applied tactic is expected" with the list of missing arguments to the tactic. Addresses [bug 5344](https://coq.inria.fr/bugs/show_bug.cgi?id=5344).
2017-03-10Merge PR#359: Fix bug 4969, autoapply was not tagging shelved subgoals ↵Maxime Dénès
correctly as…
2017-03-07Farewell decl_modeEnrico Tassi
This commit removes from the source tree plugins/decl_mode, its chapter in the reference manual and related tests.
2017-02-27Merge PR#395: Allow hintdb to be parameters in a Ltac definition orMaxime Dénès
Tactic Notation
2017-02-23Fixing a little bug in using the "where" clause for inductive types.Hugo Herbelin
This was not working when the inductive type had implicit parameters. This could still be improved. E.g. the following still does not work: Reserved Notation "#". Inductive I {A:Type} := C : # where "#" := I. But it should be made working by taking care of adding the mandatory implicit argument A at the time # is interpreted as [@I _] (i.e., technically speaking, using expl_impls in interp_notation).
2017-02-22Merge branch 'v8.6'Pierre-Marie Pédrot
2017-02-17Moving the Ltac plugin to a pack-based one.Pierre-Marie Pédrot
This is cumbersome, because now code may fail at link time if it's not referring to the correct module name. Therefore, one has to add corresponding open statements a the top of every file depending on a Ltac module. This includes seemingly unrelated files that use EXTEND statements.
2017-02-16reject notations that are both 'only printing' and 'only parsing'Ralf Jung
2017-02-16don't require printing-only notation to be productiveRalf Jung
2017-02-14Merge branch 'master'.Pierre-Marie Pédrot
2017-02-14Quick hack to fix interpretation of patterns in Ltac.Pierre-Marie Pédrot
Interpretation of patterns in Ltac is essentially flawed. It does a roundtrip through the pretyper, and relies on suspicious flagging of evars in the evar source field to recognize original pattern holes. After the pattern_of_constr function was made evar-insensitive, it expanded evars that were solved by magical side-effects of the pretyper, even if it hadn't been asked to perform any heuristics. We backtrack on the insensitivity of the pattern_of_constr function. This may have a performance penalty in other dubious code, e.g. hints. In the long run we should get rid of the pattern_of_constr function.
2017-02-14Namegen primitives now apply on evar constrs.Pierre-Marie Pédrot
Incidentally, this fixes a printing bug in output/inference.v where the displayed name of an evar was the wrong one because its type was not evar-expanded enough.
2017-02-14Merge PR#253: Sort Search results by relevanceMaxime Dénès
2017-02-14Test-suite: output of SearchArnaud Spiwack
Fix the ordering of the results in the output of Search to correspond to the "priority" ordering.
2017-02-09Fixing bug #5346 (an unimplemented application of 'pat).Hugo Herbelin
2017-02-07Add test-suite files for hintdb variables in Ltac.Théo Zimmermann
In particular, this closes bug 2417.
2017-02-01Merge branch 'v8.6'Pierre-Marie Pédrot
2017-02-01Merge branch 'v8.5' into v8.6Pierre-Marie Pédrot
2017-01-31Fixing #5311 (anomaly on unexpected intro pattern).Hugo Herbelin
This was introduced in 8.5 while reorganizing the structure of intro-patterns.
2017-01-23Merge branch 'v8.5' into v8.6Pierre-Marie Pédrot
2017-01-23Fixing unification regression #5323.Hugo Herbelin
Tracking conversion problems to reconsider was lost for evars subject to restriction (field last_mods was not updated and conversion problems not considered to be changed).
2017-01-22Fixing bugs in typing "match" (regressions #5322 and #5324 + bugs with let-ins).Hugo Herbelin
A cleaning done in ade2363e35 (Dec 2015) was hinting at bugs in typing a matching over a "catch-all" variable, when let-ins occur in the arity. However ade2363e35 failed to understand what was the correct fix, introducing instead the regressions mentioned in #5322 and #5324. This fixes all of #5322 and #5324, as well as the handling of let-ins in the arity. Thanks to Jason for helping in diagnosing the problem.
2017-01-05Fixing a little bug in printing cofix with no arguments.Hugo Herbelin
2016-12-22Fixing #5277 (Scheme Equality not robust wrt choice of names).Hugo Herbelin
This is only a quick fix, as hinted by Jason.
2016-12-22Fixing injection in the presence of let-in in constructors.Hugo Herbelin
This also fixes decide equality, discriminate, ... (see e.g. #5279).
2016-12-07Merge branch 'v8.6'Pierre-Marie Pédrot
2016-12-04Merge remote-tracking branch 'github/pr/366' into v8.6Maxime Dénès
Was PR#366: Univs: fix bug 5208
2016-12-04Merge remote-tracking branch 'github/pr/378' into v8.6Maxime Dénès
Was PR#378: Univs: fix bug #5188
2016-12-02Fix test-suite after change in "context" printing.Maxime Dénès
2016-12-02Merge remote-tracking branch 'github/pr/377' into v8.6Maxime Dénès
Was PR#377: Univs: fix bug #5180
2016-12-02Univs: fix bug #5188Matthieu Sozeau
Parameter was implemented the wrong way trying to separate the universes of the telescope.
2016-11-30Fix typeclasses eauto shelving.Théo Zimmermann
A file in the test-suite had to be modified. It was supposed to reproduce a behavior in intuistionistic-nuprl but it did not really. This commit is not supposed to break intuistionistic-nuprl.
2016-11-30Univs: fix bug #5180Matthieu Sozeau
In the kernel's generic conversion, backtrack on UniverseInconsistency for the unfolding heuristic (single backtracking point in reduction). This exception can be raised in the univ_compare structure to produce better error messages when the generic conversion function is called from higher level code in reductionops.ml, which itself is called during unification in evarconv.ml. Inside the kernel, the infer and check variants of conversion never raise UniverseInconsistency though, so this does not change the behavior of the kernel.
2016-11-30Fix UGraph.check_eq!Matthieu Sozeau
Universes are kept in normal form w.r.t. equality but not the <= relation, so the previous check worked almost always but was actually too strict! In cases like (max(Set,u) = u) when u is declared >= Set it was failing to find an equality. Applying the KISS principle: u = v <-> u <= v /\ v <= u. Fix invariant breakage that triggered the discovery of the check_eq bug as well. No algebraic universes should appear in a term position (on the left of a colon in a typing judgment), this was not the case when an algebraic universe instantiated an evar that appeared in the term. We force their universe variable status to change in refresh_universes to avoid this. Fix ind sort inference: Use syntactic universe equality for inductive sort inference instead of check_leq (which now correctly takes constraints into account) and simplify code