Commit 156cbaba authored by Ralf Jung's avatar Ralf Jung
Browse files

Merge branch 'ci/primproj' into 'master'

use primitive projections for our mixins

See merge request FP/iris-coq!69
parents 7db2fb65 a19d201e
......@@ -39,7 +39,9 @@ Notation "x ≼{ n } y" := (includedN n x y)
Instance: Params (@includedN) 4.
Hint Extern 0 (_ {_} _) => reflexivity.
Record CMRAMixin A `{Dist A, Equiv A, PCore A, Op A, Valid A, ValidN A} := {
Section mixin.
Local Set Primitive Projections.
Record CMRAMixin A `{Dist A, Equiv A, PCore A, Op A, Valid A, ValidN A} := {
(* setoids *)
mixin_cmra_op_ne (x : A) : NonExpansive (op x);
mixin_cmra_pcore_ne n x y cx :
......@@ -59,7 +61,8 @@ Record CMRAMixin A `{Dist A, Equiv A, PCore A, Op A, Valid A, ValidN A} := {
mixin_cmra_extend n x y1 y2 :
{n} x x {n} y1 y2
z1 z2, x z1 z2 z1 {n} y1 z2 {n} y2
}.
}.
End mixin.
(** Bundeled version *)
Structure cmraT := CMRAT' {
......
......@@ -33,11 +33,14 @@ Tactic Notation "ofe_subst" :=
| H:@dist ?A ?d ?n _ ?x |- _ => symmetry in H;setoid_subst_aux (@dist A d n) x
end.
Record OfeMixin A `{Equiv A, Dist A} := {
Section mixin.
Local Set Primitive Projections.
Record OfeMixin A `{Equiv A, Dist A} := {
mixin_equiv_dist x y : x y n, x {n} y;
mixin_dist_equivalence n : Equivalence (dist n);
mixin_dist_S n x y : x {S n} y x {n} y
}.
}.
End mixin.
(** Bundeled version *)
Structure ofeT := OfeT' {
......
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