Hide the proof mode entailment behind a definition.
This solves issue #100: the proof mode notation is sometimes not printed. As Ralf discovered, the problem is that there are two overlapping notations: ```coq Notation "P ⊢ Q" := (uPred_entails P Q). ``` And the "proof mode" notation: ``` Notation "Γ '--------------------------------------' □ Δ '--------------------------------------' ∗ Q" := (of_envs (Envs Γ Δ) ⊢ Q%I). ``` These two notations overlap, so, when having a "proof mode" goal of the shape `of_envs (Envs Γ Δ) ⊢ Q%I`, how do we know which notation is Coq going to pick for pretty printing this goal? As we have seen, this choice depends on the import order (since both notations appear in different files), and as such, Coq sometimes (unintendedly) uses the first notation instead of the latter. The idea of this commit is to wrap `of_envs (Envs Γ Δ) ⊢ Q%I` into a definition so that there is no ambiguity for the pretty printer anymore.
Showing
- theories/base_logic/base_logic.v 1 addition, 1 deletiontheories/base_logic/base_logic.v
- theories/base_logic/big_op.v 2 additions, 5 deletionstheories/base_logic/big_op.v
- theories/base_logic/lib/fancy_updates.v 1 addition, 1 deletiontheories/base_logic/lib/fancy_updates.v
- theories/heap_lang/proofmode.v 43 additions, 28 deletionstheories/heap_lang/proofmode.v
- theories/proofmode/coq_tactics.v 197 additions, 137 deletionstheories/proofmode/coq_tactics.v
- theories/proofmode/notation.v 5 additions, 4 deletionstheories/proofmode/notation.v
- theories/proofmode/tactics.v 51 additions, 45 deletionstheories/proofmode/tactics.v
- theories/tests/proofmode.v 1 addition, 1 deletiontheories/tests/proofmode.v
Loading
Please register or sign in to comment