Fix issue #98.
We used to normalize the goal, and then checked whether it was of a certain shape. Since `uPred_valid P` normalized to `True ⊢ P`, there was no way of making a distinction between the two, hence `True ⊢ P` was treated as `uPred_valid P`. In this commit, I use type classes to check whether the goal is of a certain shape. Since we declared `uPred_valid` as `Typeclasses Opaque`, we can now make a distinction between `True ⊢ P` and `uPred_valid P`.
Showing
- theories/base_logic/lib/invariants.v 1 addition, 1 deletiontheories/base_logic/lib/invariants.v
- theories/base_logic/primitive.v 2 additions, 0 deletionstheories/base_logic/primitive.v
- theories/heap_lang/adequacy.v 1 addition, 1 deletiontheories/heap_lang/adequacy.v
- theories/heap_lang/lib/barrier/proof.v 1 addition, 1 deletiontheories/heap_lang/lib/barrier/proof.v
- theories/heap_lang/lib/counter.v 2 additions, 2 deletionstheories/heap_lang/lib/counter.v
- theories/heap_lang/lifting.v 1 addition, 1 deletiontheories/heap_lang/lifting.v
- theories/program_logic/adequacy.v 4 additions, 4 deletionstheories/program_logic/adequacy.v
- theories/proofmode/tactics.v 24 additions, 20 deletionstheories/proofmode/tactics.v
- theories/tests/barrier_client.v 1 addition, 1 deletiontheories/tests/barrier_client.v
Loading
Please register or sign in to comment