| Commit message (Collapse) | Author | Age |
... | |
| |
| |
| |
| | |
proofs.
|
| |
| |
| |
| | |
whd_evar in refresh_universes.
|
| | |
|
| |
| |
| |
| | |
inconsistent).
|
| |
| |
| |
| |
| | |
When refreshing a type variable, always use a rigid universe to force the most
general universe constraint, as in 8.4.
|
| |
| |
| |
| | |
is buggy in general.
|
| | |
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Now doing
```coq
Tactic Notation "left" "~" := left.
Tactic Notation "left" "*" := left.
```
will no longer break the `left` tactic in Coq 8.4.
List obtained via
```
grep -o '^ \[[^]]*\]' tactics/coretactics.ml4 | sed s'/^ \[ \(.*\) \]/Tactic Notation \1 := \1./g' | sed s'/\(:=.*\)"/\1/g' | sed s'/\(:=.*\)"/\1/g' | sed s'/\(:=.*\)"/\1/g' | sed s'/\(:=.*\)"/\1/g' | sed s'/\(:=.*\) \(constr\|bindings\|constr_with_bindings\|quantified_hypothesis\|ne_hyp_list\)(\([^)]*\))/\1 \3/g'
```
|
| | |
|
| | |
|
| |
| |
| |
| | |
make them rigid to disallow minimization.
|
| | |
|
| | |
|
| |
| |
| |
| | |
its main interest!
|
| |
| |
| |
| | |
The "master" label used to be reset to the wrong id
|
| | |
|
|\| |
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
When a future is fully forced (joined), the fix_exn is dropped,
since joined futures are values (hence they cannot raise exceptions).
When a future for a transparent definition enters the environment
it is joined. If one needs to pick its fix_exn, he should do it
before that.
|
| |
| |
| |
| | |
(Fix bug #3654)
|
| |
| |
| |
| | |
involving Futures.
|
| | |
|
| | |
|
| |
| |
| |
| | |
universes are declared correctly in the enclosing proofs evar_map's.
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| |
| |
| |
| |
| | |
Without this expansion, camlp4 fails to properly factor a user notation
starting with either "trivial" or "auto".
|
| |
| |
| |
| |
| | |
It is too bad that OCaml does not warn when catching an exception over a
closure rather than inside it.
|
| |
| |
| |
| |
| |
| | |
presence of hints modifying the context and of a "using" clause.
Incidentally opening Hints by default in debugger.
|
| | |
|
|\| |
|
| | |
|
| |
| |
| |
| |
| | |
Keep user-side information on the names used in instances of universe
polymorphic references and use them for printing.
|
| | |
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Side effects are now an opaque data type, called private_constant, you can
only obtain from safe_typing. When add_constant is called on a
definition_entry that contains private constants, they are either
- inlined in the main proof term but not re-checked
- declared globally without re-checking them
As a safety measure, the opaque data type contains a pointer to the
revstruct (an internal field of safe_env that changes every time a new
constant is added), and such pointer is compared with the current value
store in safe_env when the private_constant is inlined. Only when the
comparison is successful the private_constant is not re-checked. Otherwise
else it is. In short, we accept into the kernel private constant only
when they arrive in the very same order and on top of the very same env
they arrived when we fist checked them.
Note: private_constants produced by workers never pass the safety
measure (the revstruct pointer is an Ephemeron). Sending back the
entire revstruct is possible but: 1. we lack a way to quickly compare
two revstructs, 2. it can be large.
|
| |
| |
| |
| |
| |
| |
| | |
For discharging it is important that constants occur in the libstack
in an order that respects the dependencies among them. This is
impossible to achieve for private constants when they are exported globally
without this (ugly IMO) api.
|
| | |
|
| |
| |
| |
| |
| |
| | |
Universe instances for constructors were not always correct, for instance in:
[cons _ list (nil _)] with a polymorphic [list] type, [nil] was receiving an
empty instance.
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
- Universes are now represented in the VM by a structured constant containing the
global levels. This constant is applied to local level variables if any.
- When reading back a universe, we perform the union of these levels and return
a [Vsort].
- Fixed a bug: structured constants could contain local universe variables in
constructor arguments, which has to be prevented.
Was showing up for instance when evaluating [cons _ list (nil _)] with
a polymorphic [list] type.
- Fixed a bug: polymorphic inductive types can have an empty stack.
Was showing up when evaluating [bool] with a polymorphic [bool] type.
- Made a few cosmetic changes.
Patch written with Benjamin Grégoire.
|
| |
| |
| |
| |
| | |
Was showing up when comparing e.g. prod Type Type with prod Type Type (!) with
a polymorphic prod.
|
| | |
|
| | |
|
| |
| |
| |
| |
| |
| |
| |
| | |
polymorphic definitions.
- This implementation passes universes in separate arguments and does not
eagerly instanitate polymorphic definitions.
- This means that it pays no cost on monomorphic definitions.
|
| | |
|
| | |
|
| |
| |
| |
| | |
After all, let's target 8.6.
|
| |
| |
| |
| |
| | |
This makes sense probably on Windows too, to be evaluated, maybe .exe
suffix should be added.
|
| |
| |
| |
| |
| |
| |
| |
| | |
Since the functions of this plugin exit by raising exceptions, globing
was never restarted. This prevented coqdoc from generating a proper
output whenever some feature of this plugin was used. There does not seem
to be any parsing of dynamic expressions, so pausing globing does not make
much sense in the first place.
|