Commit 9c68a663 by Jacques-Henri Jourdan

### Move stuff around.

parent e2e8748f
 ... ... @@ -329,33 +329,6 @@ Coercion sbi_valid {PROP : sbi} : PROP → Prop := bi_valid. Arguments bi_valid {_} _%I : simpl never. Typeclasses Opaque bi_valid. (* Typically, embeddings are used to *define* the destination BI. Hence we cannot ask B to be a BI. *) Class BiEmbedding (A B : Type) := bi_embedding : A → B. Arguments bi_embedding {_ _ _} _%I : simpl never. Notation "⎡ P ⎤" := (bi_embedding P) : bi_scope. Instance: Params (@bi_embedding) 3. Typeclasses Opaque bi_embedding. Class BiMorphism {PROP1 PROP2 : bi} (f : PROP1 → PROP2) := { bi_mor_ne :> NonExpansive f; bi_mor_mono :> Proper ((⊢) ==> (⊢)) f; bi_mor_emp : f emp ⊣⊢ emp; bi_mor_impl_2 P Q : (f P → f Q)%I ⊢ f (P → Q)%I; bi_mor_forall_2 A (Φ : A → PROP1) : (∀ x, f (Φ x)) ⊢ f (∀ x, Φ x); bi_mor_exist_1 A (Φ : A → PROP1) : f (∃ x, Φ x) ⊢ ∃ x, f (Φ x); bi_mor_internal_eq_1 (A : ofeT) (x y : A) : f (x ≡ y) ⊢ (x ≡ y); bi_mor_sep P Q : f (P ∗ Q) ⊣⊢ (f P ∗ f Q); bi_mor_wand_2 P Q : (f P -∗ f Q) ⊢ f (P -∗ Q); bi_mor_plainly P : f (bi_plainly P) ⊣⊢ bi_plainly (f P); bi_mor_persistently P : f (bi_persistently P) ⊣⊢ bi_persistently (f P) }. Class SbiMorphism {PROP1 PROP2 : sbi} (f : PROP1 → PROP2) := { sbi_mor_bi_mor :> BiMorphism f; sbi_mor_later P : f (▷ P) ⊣⊢ ▷ f P }. Module bi. Section bi_laws. Context {PROP : bi}. ... ... @@ -551,3 +524,30 @@ Proof. eapply sbi_mixin_later_false_em, sbi_sbi_mixin. Qed. End sbi_laws. End bi. (* Typically, embeddings are used to *define* the destination BI. Hence we cannot ask B to be a BI. *) Class BiEmbedding (A B : Type) := bi_embedding : A → B. Arguments bi_embedding {_ _ _} _%I : simpl never. Notation "⎡ P ⎤" := (bi_embedding P) : bi_scope. Instance: Params (@bi_embedding) 3. Typeclasses Opaque bi_embedding. Class BiMorphism {PROP1 PROP2 : bi} (f : PROP1 → PROP2) := { bi_mor_ne :> NonExpansive f; bi_mor_mono :> Proper ((⊢) ==> (⊢)) f; bi_mor_emp : f emp ⊣⊢ emp; bi_mor_impl_2 P Q : (f P → f Q)%I ⊢ f (P → Q)%I; bi_mor_forall_2 A (Φ : A → PROP1) : (∀ x, f (Φ x)) ⊢ f (∀ x, Φ x); bi_mor_exist_1 A (Φ : A → PROP1) : f (∃ x, Φ x) ⊢ ∃ x, f (Φ x); bi_mor_internal_eq_1 (A : ofeT) (x y : A) : f (x ≡ y) ⊢ (x ≡ y); bi_mor_sep P Q : f (P ∗ Q) ⊣⊢ (f P ∗ f Q); bi_mor_wand_2 P Q : (f P -∗ f Q) ⊢ f (P -∗ Q); bi_mor_plainly P : f (bi_plainly P) ⊣⊢ bi_plainly (f P); bi_mor_persistently P : f (bi_persistently P) ⊣⊢ bi_persistently (f P) }. Class SbiMorphism {PROP1 PROP2 : sbi} (f : PROP1 → PROP2) := { sbi_mor_bi_mor :> BiMorphism f; sbi_mor_later P : f (▷ P) ⊣⊢ ▷ f P }.
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment