| Commit message (Collapse) | Author | Age |
|\
| |
| |
| | |
tricks available to users
|
|\ \ |
|
| |/
|/| |
|
| | |
|
|\ \ |
|
|\ \ \ |
|
|\ \ \ \ |
|
| |_|/ /
|/| | | |
|
|\ \ \ \ |
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
Otherwise [(fun x => x) (Type : Type@{_})] becomes
[(fun x : Type@{i+1} => x) (Type@{i} : Type@{i+1})]
breaking the invariant that terms do not contain algebraic universes
(at the lambda abstraction).
|
| | | | |
| | | | |
| | | | |
| | | | | |
The addition to the test suite showcases the usage.
|
|\ \ \ \ \
| |/ / / /
|/| | | | |
|
| | | | |\
| | | | | |
| | | | | |
| | | | | | |
with evars).
|
| | | | |\ \ |
|
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | | |
- Fixing a typo introduced in 31dbba5f.
- Adapting to computation of universe constraints in pretyping.
- Adding a regression test.
|
| | | | |/ / |
|
| | | | |/
| | | | |
| | | | |
| | | | |
| | | | | |
The cause was a missing evar/evar clause in ltac pattern-matching
function (constr_matching.ml).
|
|\ \ \ \ \
| | | | | |
| | | | | |
| | | | | | |
let-ins
|
| |_|_|/ /
|/| | | | |
|
|\ \ \ \ \
| | |_|_|/
| |/| | | |
|
| | | | | |
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
To use the generic combinator, we introduce a side effect. I believe
that we have more to gain from a short code than from being purely
functional.
This also fixes the expected semantics since the variables binding the
return type in "match" were not taking into account.
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
Binding generalizable_vars_of_glob_constr, occur_glob_constr,
free_glob_vars, and bound_glob_vars on it.
Most of the functions of which it factorizes the code were bugged with
respect to bindings in the return clause of "match" and in either the
types or the bodies of "fix/cofix".
|
|\ \ \ \ \
| |_|_|_|/
|/| | | |
| | | | | |
record fields.
|
| |_|_|/
|/| | |
| | | |
| | | | |
Also remove obvious comments.
|
|\ \ \ \ |
|
| | | | | |
|
| | | | |
| | | | |
| | | | |
| | | | | |
This is a test for commit 9d1230d484a2cf519f9cd76dc0f37815f3c6339b.
|
| | | | |
| | | | |
| | | | |
| | | | | |
in the presence of let-ins.
|
|\ \ \ \ \
| | |_|_|/
| |/| | | |
|
| |\ \ \ \ |
|
| | | | | |\
| | | | | | |
| | | | | | |
| | | | | | | |
Was needed to be done for a while.
|
| | |/ / / /
| |/| | | | |
|
|\| | | | | |
|
| |\ \ \ \ \
| | | |_|/ /
| | |/| | | |
|
| | | | | | |
|
|\| | | | | |
|
| | |_|/ /
| |/| | | |
|
| |\| | | |
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
Fixes Coq bug 5345 (https://coq.inria.fr/bugs/show_bug.cgi?id=5345):
Cannot use names bound in matches inside Ltac definitions.
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
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.
|
| |\| | | |
|
| | |/ /
| |/| |
| | | |
| | | |
| | | | |
This commit removes from the source tree plugins/decl_mode,
its chapter in the reference manual and related tests.
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
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).
|
| | | | |
|
| | | | |
|
|\ \ \ \ |
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
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.
|
| |/ / /
| | | |
| | | |
| | | | |
In particular, this closes bug 2417.
|
| |\| | |
|