Use `SProp` to obtain better definitional equality for `pmap`, `gmap`, `gset`, `Qp`, and `coPset`
- Sep 06, 2021
-
-
Robbert Krebbers authored242cef88
-
Robbert Krebbers authored77d7a09c
-
Ralf Jung authoredab2f61dd
-
Robbert Krebbers authored8dd6ba82
-
Robbert Krebbers authored8d18a771
-
Robbert Krebbers authoredad2f0a93
-
Robbert Krebbers authoredfd23a783
-
Robbert Krebbers authored
This should ensure that `coqchk` no longer reports axioms.
dc9a589c -
Robbert Krebbers authored048dc54e
-
Robbert Krebbers authored8c81e4f8
-
Robbert Krebbers authoredb8ee7f6b
-
Robbert Krebbers authored
1. Improve naming 2. Make `wf_` proofs of `gmap` and `pmap` opaque 3. Avoid `bind` and `fmap` combinators for `SProp` 4. Drop `simpl` tests Items 2-3 are crucial for performance, otherwise each operation checks if the map is still well-formed, which destroys log(n) complexity of map operations. Why 3 is needed is subtle: The `bind` and `fmap` lemmas for `SProp` contain Booleans as implicit arguments, which are eagerly evaluated by `vm_compute`. As a result of 2-3, `simpl` will not normalize proofs to `stt`, and `simpl` tests do not give a desirable result.
39e479ce -
Tej Chajed authored6c6267a2
-
Tej Chajed authored73b4ee3b
-
Tej Chajed authored1a98fc89
-