Refactor.
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.
Showing
- tests/gmap.ref 1 addition, 1 deletiontests/gmap.ref
- tests/gmap.v 71 additions, 34 deletionstests/gmap.v
- theories/coPset.v 7 additions, 4 deletionstheories/coPset.v
- theories/gmap.v 8 additions, 11 deletionstheories/gmap.v
- theories/pmap.v 35 additions, 25 deletionstheories/pmap.v
- theories/sprop.v 12 additions, 62 deletionstheories/sprop.v
Loading
Please register or sign in to comment