aboutsummaryrefslogtreecommitdiffhomepage
path: root/test-suite
Commit message (Collapse)AuthorAge
* Merge branch 'trunk' into pr379Gravatar Maxime Dénès2017-04-04
|\
| * Merge branch 'v8.6' into trunkGravatar Maxime Dénès2017-04-03
| |\
| | * Instances should obey universe binders even when defined by tactics.Gravatar Gaetan Gilbert2017-04-03
| | |
| * | Merge PR#417: No cast surgery in let inGravatar Maxime Dénès2017-04-03
| |\ \
| | | * Add test file for #4957.Gravatar Maxime Dénès2017-04-03
| | | | | | | | | | | | | | | | | | | | Bug #4957 was "unify cannot directly unify universes with evars, but can do so indirectly".
| * | | Merge branch 'v8.6' into trunkGravatar Maxime Dénès2017-03-30
| |\ \ \ | | | |/ | | |/|
| | * | Run non-tactic comands without resilient_commandGravatar Tej Chajed2017-03-29
| | | |
* | | | Merge branch 'trunk' into pr379Gravatar Maxime Dénès2017-03-24
|\| | |
| | | * Applying same convention as in Definition for printing type in a let in.Gravatar Hugo Herbelin2017-03-24
| | |/ | |/| | | | | | | | | | | | | | | | | | | | | | 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 *)
| * | Merge branch 'v8.6' into trunkGravatar Maxime Dénès2017-03-23
| |\|
| | * Merge PR#507: Intern names bound in match patternsGravatar Maxime Dénès2017-03-23
| | |\
| | | * Intern names bound in match patternsGravatar Tej Chajed2017-03-23
| | | | | | | | | | | | | | | | | | | | Fixes Coq bug 5345 (https://coq.inria.fr/bugs/show_bug.cgi?id=5345): Cannot use names bound in matches inside Ltac definitions.
| * | | Merge branch 'v8.6' into trunkGravatar Maxime Dénès2017-03-23
| |\| |
| * | | Make IZR use a compact representation of integers.Gravatar Guillaume Melquiond2017-03-22
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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.
| | * | funind: Ignore missing info for current functionGravatar Tej Chajed2017-03-22
| | |/ | | | | | | | | | | | | | | | 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".
| * | Merge branch 'v8.6'Gravatar Pierre-Marie Pédrot2017-03-22
| |\|
| * | [pp] Make feedback the only logging mechanism.Gravatar Emilio Jesus Gallego Arias2017-03-21
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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.
| | * Merge PR#429: Don't require printing-only notation to be productiveGravatar Maxime Dénès2017-03-17
| | |\
| * | | Report missing tactic arguments in error messageGravatar Tej Chajed2017-03-14
| | | | | | | | | | | | | | | | | | | | | | | | 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).
| | * | Merge PR#359: Fix bug 4969, autoapply was not tagging shelved subgoals ↵Gravatar Maxime Dénès2017-03-10
| | |\ \ | | | | | | | | | | | | | | | correctly as…
| * | \ \ Merge PR#395: Allow hintdb to be parameters in a Ltac definition orGravatar Maxime Dénès2017-02-27
| |\ \ \ \ | | | | | | | | | | | | | | | | | | Tactic Notation
| * \ \ \ \ Merge branch 'v8.6'Gravatar Pierre-Marie Pédrot2017-02-22
| |\ \ \ \ \ | | | |/ / / | | |/| | |
| * | | | | Moving the Ltac plugin to a pack-based one.Gravatar Pierre-Marie Pédrot2017-02-17
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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.
| | | | | * reject notations that are both 'only printing' and 'only parsing'Gravatar Ralf Jung2017-02-16
| | | | | |
| | | | | * don't require printing-only notation to be productiveGravatar Ralf Jung2017-02-16
| | | |_|/ | | |/| |
* | | | | Merge branch 'master'.Gravatar Pierre-Marie Pédrot2017-02-14
|\| | | |
* | | | | Quick hack to fix interpretation of patterns in Ltac.Gravatar Pierre-Marie Pédrot2017-02-14
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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.
* | | | | Namegen primitives now apply on evar constrs.Gravatar Pierre-Marie Pédrot2017-02-14
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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.
| * | | | Merge PR#253: Sort Search results by relevanceGravatar Maxime Dénès2017-02-14
| |\ \ \ \
| | * | | | Test-suite: output of SearchGravatar Arnaud Spiwack2017-02-14
| |/ / / / |/| | | | | | | | | | | | | | | | | | | Fix the ordering of the results in the output of Search to correspond to the "priority" ordering.
| | * | | Fixing bug #5346 (an unimplemented application of 'pat).Gravatar Hugo Herbelin2017-02-09
| | | | |
| | | * | Add test-suite files for hintdb variables in Ltac.Gravatar Théo Zimmermann2017-02-07
| | |/ / | |/| | | | | | | | | | In particular, this closes bug 2417.
| * | | Merge branch 'v8.6'Gravatar Pierre-Marie Pédrot2017-02-01
| |\| |
| | * | Merge branch 'v8.5' into v8.6Gravatar Pierre-Marie Pédrot2017-02-01
| | |\ \
| | | * | Fixing #5311 (anomaly on unexpected intro pattern).Gravatar Hugo Herbelin2017-01-31
| | | | | | | | | | | | | | | | | | | | | | | | | This was introduced in 8.5 while reorganizing the structure of intro-patterns.
| | * | | Merge branch 'v8.5' into v8.6Gravatar Pierre-Marie Pédrot2017-01-23
| | |\| |
| | | * | Fixing unification regression #5323.Gravatar Hugo Herbelin2017-01-23
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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).
| | * | | Fixing bugs in typing "match" (regressions #5322 and #5324 + bugs with let-ins).Gravatar Hugo Herbelin2017-01-22
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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.
| | | * | Fixing a little bug in printing cofix with no arguments.Gravatar Hugo Herbelin2017-01-05
| | | | |
| * | | | Fixing #5277 (Scheme Equality not robust wrt choice of names).Gravatar Hugo Herbelin2016-12-22
| | | | | | | | | | | | | | | | | | | | This is only a quick fix, as hinted by Jason.
| * | | | Fixing injection in the presence of let-in in constructors.Gravatar Hugo Herbelin2016-12-22
| | | | | | | | | | | | | | | | | | | | This also fixes decide equality, discriminate, ... (see e.g. #5279).
| * | | | Merge branch 'v8.6'Gravatar Pierre-Marie Pédrot2016-12-07
| |\| | |
| | * | | Merge remote-tracking branch 'github/pr/366' into v8.6Gravatar Maxime Dénès2016-12-04
| | |\ \ \ | | | | | | | | | | | | | | | | | | Was PR#366: Univs: fix bug 5208
| | * \ \ \ Merge remote-tracking branch 'github/pr/378' into v8.6Gravatar Maxime Dénès2016-12-04
| | |\ \ \ \ | | | | | | | | | | | | | | | | | | | | | Was PR#378: Univs: fix bug #5188
| | * | | | | Fix test-suite after change in "context" printing.Gravatar Maxime Dénès2016-12-02
| | | | | | |
| | * | | | | Merge remote-tracking branch 'github/pr/377' into v8.6Gravatar Maxime Dénès2016-12-02
| | |\ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | Was PR#377: Univs: fix bug #5180
| | | | * | | | Univs: fix bug #5188Gravatar Matthieu Sozeau2016-12-02
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Parameter was implemented the wrong way trying to separate the universes of the telescope.
| | * | | | | | Fix typeclasses eauto shelving.Gravatar Théo Zimmermann2016-11-30
| | | |/ / / / | | |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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.
| | | * | | | Univs: fix bug #5180Gravatar Matthieu Sozeau2016-11-30
| | |/ / / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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.
| | | * / / Fix UGraph.check_eq!Gravatar Matthieu Sozeau2016-11-30
| | |/ / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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