diff options
| author | Enrico Tassi | 2015-05-29 14:44:10 +0200 |
|---|---|---|
| committer | Enrico Tassi | 2015-05-29 14:59:42 +0200 |
| commit | c47916933025a4853ed0b397d7476b844bb894a4 (patch) | |
| tree | 904eb97b0301b6ce15cb011dbbc5855ea208e601 /kernel/nativecode.ml | |
| parent | 5e873be3cdbdff6b9bad782ce88d2206b9053e14 (diff) | |
STM/Univ: save initial univs (the ones in the statement) in Proof.proof
This makes the treatment of universe constraints/normalization more
understandable in the Sync/Async case:
- if one has to keep the constraints of the body and the type of
a lemma separate, then equations coming from the body are kept
(see: 866c41 )
- if they can be merge then the equations (substituted on both the
body and type) can be removed (one of the sides occurs nowhere)
The result is that, semantically, the constraints of a lemma do not
depend on weather it was produced asynchronously (v->vio->vo, or in
a CoqIDE session) or synchronously (v->vo).
Still the internal representation of the constraints changes to
accommodate an optimization (to reduce the size of the constraint set):
- in the synchronous case (some) equations are substituted (in both the
type and body), hence they can be completely dropped from the constraint
set
- in the asynchronous case (some) equations are substituted in the body
only (the type is fixed once and for all before the equations are
discovered/generated), hence these equations are necessary to relate
the type and the (optimized) body and are hence kept in the constraint
set
Diffstat (limited to 'kernel/nativecode.ml')
0 files changed, 0 insertions, 0 deletions
