Skip to content
Snippets Groups Projects
Commit a2dab2fb authored by Ralf Jung's avatar Ralf Jung
Browse files

make coercions explicit to improve readability

parent 598b8449
No related branches found
No related tags found
No related merge requests found
...@@ -505,16 +505,19 @@ Hint Mode IntoEmbed + + + ! - : typeclass_instances. ...@@ -505,16 +505,19 @@ Hint Mode IntoEmbed + + + ! - : typeclass_instances.
No Hint Modes are declared here. The appropriate one would be No Hint Modes are declared here. The appropriate one would be
[Hint Mode - ! -], but the fact that Coq ignores primitive [Hint Mode - ! -], but the fact that Coq ignores primitive
projections for hints modes would make this fail.*) projections for hints modes would make this fail.*)
Class AsEmpValid {PROP : bi} (φ : Prop) (P : PROP) := as_emp_valid : φ P. Class AsEmpValid {PROP : bi} (φ : Prop) (P : PROP) :=
as_emp_valid : φ bi_emp_valid P.
Arguments AsEmpValid {_} _%type _%I. Arguments AsEmpValid {_} _%type _%I.
Class AsEmpValid0 {PROP : bi} (φ : Prop) (P : PROP) := Class AsEmpValid0 {PROP : bi} (φ : Prop) (P : PROP) :=
as_emp_valid_here : AsEmpValid φ P. as_emp_valid_here : AsEmpValid φ P.
Arguments AsEmpValid0 {_} _%type _%I. Arguments AsEmpValid0 {_} _%type _%I.
Existing Instance as_emp_valid_here | 0. Existing Instance as_emp_valid_here | 0.
Lemma as_emp_valid_1 (φ : Prop) {PROP : bi} (P : PROP) `{!AsEmpValid φ P} : φ P. Lemma as_emp_valid_1 (φ : Prop) {PROP : bi} (P : PROP) `{!AsEmpValid φ P} :
φ bi_emp_valid P.
Proof. by apply as_emp_valid. Qed. Proof. by apply as_emp_valid. Qed.
Lemma as_emp_valid_2 (φ : Prop) {PROP : bi} (P : PROP) `{!AsEmpValid φ P} : P φ. Lemma as_emp_valid_2 (φ : Prop) {PROP : bi} (P : PROP) `{!AsEmpValid φ P} :
bi_emp_valid P φ.
Proof. by apply as_emp_valid. Qed. Proof. by apply as_emp_valid. Qed.
(* Input: [P]; Outputs: [N], (* Input: [P]; Outputs: [N],
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment