| Commit message (Collapse) | Author | Age |
| |
|
|
|
|
|
|
|
|
|
|
| |
While we were adding a new field into `QuestionMark`, we
decided to go ahead and refactor the constructor to hold
an actual record. This record now holds the name, obligations, and
whether the evar represents a missing record field.
This is used to provide better error messages on missing record
fields.
|
|\ |
|
|\ \ |
|
| |/
|/|
| |
| |
| |
| | |
In #7607, dead code that used to handle non-dependent return predicates
was removed. This made the reification branch expecting non-functions
in predicates dead code. We fix this by using an assert instead.
|
|\ \ |
|
| | | |
|
| | | |
|
| | |
| | |
| | |
| | | |
(Universes and Evd)
|
|\ \ \
| |/ /
|/| |
| | | |
compilers
|
|\ \ \
| | | |
| | | |
| | | | |
constr in Constr
|
| | | | |
|
| |/ /
|/| |
| | |
| | |
| | | |
I believe this is legacy code due to a previous, more complex
representation of return predicates in the kernel.
|
|\ \ \ |
|
| |/ /
|/| |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
This shall eventually allow to use contexts of declarations in the
definition of the "Case" constructor.
Basically, this means that Constr now includes Context and that the
"t" types of Context which were specialized on constr are not defined
in Constr (unfortunately using a heavy boilerplate).
|
| | | |
|
|/ / |
|
|\ \ |
|
| | |
| | |
| | |
| | |
| | | |
This brings more compatibility with handling of mutual primitive records
in the kernel.
|
| | |
| | |
| | |
| | |
| | | |
This is a first step towards the acceptance of mutual record types in the
kernel.
|
| | |
| | |
| | |
| | |
| | |
| | | |
It seems that lifting a term with a negative index is not equivalent to
strengthening it by applying to a dummy substitution. This looks suspicious
at best.
|
| |/
|/| |
|
|\ \ |
|
|\ \ \ |
|
|\ \ \ \
| | | | |
| | | | |
| | | | | |
induction schemes
|
|\ \ \ \ \ |
|
| |_|_|/ /
|/| | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
reference was defined as Ident or Qualid, but the qualid type already
permits empty paths. So we had effectively two representations for
unqualified names, that were not seen as equal by eq_reference.
We remove the reference type and replace its uses by qualid.
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
This was completely wrong, such a term could not even be type-checked by
the kernel as it was internally using a match construct over a negative
record. They were luckily only used in upper layers, namley printing
and extraction.
Recomputing the projection body might be costly in detyping, but this only
happens when the compatibility flag is turned on, which is not the default.
Such flag is probably bound to disappear anyways.
Extraction should be fixed though so as to define directly primitive
projections, similarly to what has been done in native compute.
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
This field was not used inside the kernel and not used in
performance-critical code where caching is essential, so we extrude
the code that computes it out of the kernel.
|
|/ / / / |
|
| |/ /
|/| |
| | |
| | |
| | | |
This ensures that computations are shared as much as possible, mimicking
the "positive" records computational behavior if possible.
|
| |/
|/|
| |
| | |
Avoid adding the same unification problem twice, module evar instantiation.
|
| | |
|
|\ \
| | |
| | |
| | | |
to anomaly)
|
|\ \ \
| | | |
| | | |
| | | | |
in unification
|
|\ \ \ \
| | | | |
| | | | |
| | | | | |
names" warnings
|
| |_|_|/
|/| | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
Currently, if one of the inductives is non recursive, it defaults to a
case analysis schems taking fewer predicates and methods just for that
inductive. This irregularity prevents doing a combined scheme afterwards
to gather all eliminators into one, as combined scheme expects all the
eliminators to have the same predicates and methods. I have a use case
in building function graphs in Equations where some of the inductives
might not be recursive but I expect many other use cases could exist.
|
| | | |
| | | |
| | | |
| | | | |
We move the last 3 types to more adequate places.
|
| | | |
| | | |
| | | |
| | | |
| | | | |
We move the "flag types" to its use place, and mark some arguments
with named parameters better.
|
| | | |
| | | |
| | | |
| | | |
| | | | |
- move_location to proofs/logic.
- intro_pattern_naming to Namegen.
|
| | | | |
|
| | | | |
|
| |/ /
|/| | |
|
|\ \ \ |
|
|\ \ \ \ |
|
|\ \ \ \ \
| | | | | |
| | | | | |
| | | | | | |
vm_compute and native_compute (partial fix to #7068; also fixes #7076))
|
| |_|/ / /
|/| | | |
| | | | |
| | | | |
| | | | |
| | | | | |
Instead of having a constant-based compilation of projections, we
generate them at the compilation time of the inductive block to which
they pertain.
|
|\ \ \ \ \ |
|
| |_|/ / /
|/| | | |
| | | | |
| | | | |
| | | | | |
When called by auto, `simple apply` still does not respect `Opaque`
because of compatibility issues.
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
Note that the normalization of the context of the return predicate was
not done by the native compilation but by the lazy machine. The patch
also "fixes" an anomaly in the case of an arity which was not in
canonical form as in:
Inductive A : nat -> id (nat->Type) := .
Eval native_compute in fun x => match x in A y z return y = z with end.
|