Documentation

Iris.Algebra.CMRA

class Iris.CMRA (α : Type u_1) extends Iris.OFE α :
Type u_1
Instances
    theorem Iris.pcore_op_mono_of_core_op_mono {α : Type u_1} [OFE α] (op : ααα) (pcore : αOption α) (h : ∀ (x cx y : α), ( (z : α), OFE.Equiv y (op x z)) → pcore x = some cx (cy : α), pcore y = some cy (z : α), OFE.Equiv cy (op cx z)) (x cx : α) (e : pcore x = some cx) (y : α) :
    (cy : α), OFE.Equiv (pcore (op x y)) (some (op cx cy))

    Reduction of pcore_op_mono to regular monotonicity

    def Iris.CMRA.Included {α : Type u_1} [CMRA α] (x y : α) :
    Equations
    Instances For
      def Iris.CMRA.IncludedN {α : Type u_1} [CMRA α] (n : Nat) (x y : α) :
      Equations
      Instances For
        Equations
        • One or more equations did not get rendered due to their size.
        Instances For
          def Iris.CMRA.op? {α : Type u_1} [CMRA α] (x : α) :
          Option αα
          Equations
          Instances For
            Equations
            • One or more equations did not get rendered due to their size.
            Instances For
              class Iris.CMRA.CoreId {α : Type u_1} [CMRA α] (x : α) :
              Instances
                class Iris.CMRA.Exclusive {α : Type u_1} [CMRA α] (x : α) :
                Instances
                  class Iris.CMRA.Cancelable {α : Type u_1} [CMRA α] (x : α) :
                  Instances
                    class Iris.CMRA.IdFree {α : Type u_1} [CMRA α] (x : α) :
                    Instances
                      class Iris.CMRA.IsTotal (α : Type u_1) [CMRA α] :
                      Instances
                        def Iris.CMRA.core {α : Type u_1} [CMRA α] (x : α) :
                        α
                        Equations
                        Instances For
                          class Iris.CMRA.Discrete (α : Type u_1) [CMRA α] extends Iris.OFE.Discrete α :
                          Instances
                            class Iris.UCMRA (α : Type u_1) extends Iris.CMRA α :
                            Type u_1
                            Instances
                              theorem Iris.CMRA.coreId_of_eqv {α : Type u_1} [CMRA α] {x₁ x₂ : α} (e : OFE.Equiv x₁ x₂) (h : CoreId x₁) :
                              CoreId x₂
                              theorem Iris.CMRA.coreId_iff {α : Type u_1} [CMRA α] {x₁ x₂ : α} (e : OFE.Equiv x₁ x₂) :
                              CoreId x₁ CoreId x₂

                              Op #

                              theorem Iris.CMRA.op_right_eqv {α : Type u_1} [CMRA α] (x : α) {y z : α} (e : OFE.Equiv y z) :
                              OFE.Equiv (x y) (x z)
                              theorem Iris.OFE.Equiv.op_r {α : Type u_1} [CMRA α] {x y z : α} :
                              Equiv y zEquiv (x y) (x z)
                              theorem Iris.CMRA.op_right_dist {α : Type u_1} [CMRA α] {n : Nat} (x : α) {y z : α} (e : OFE.Dist n y z) :
                              OFE.Dist n (x y) (x z)
                              theorem Iris.OFE.Dist.op_r {α : Type u_1} [CMRA α] {n : Nat} {x y z : α} :
                              Dist n y zDist n (x y) (x z)
                              theorem Iris.CMRA.op_commN {α : Type u_1} [CMRA α] {n : Nat} {x y : α} :
                              OFE.Dist n (x y) (y x)
                              theorem Iris.CMRA.op_assocN {α : Type u_1} [CMRA α] {n : Nat} {x y z : α} :
                              OFE.Dist n (x (y z)) ((x y) z)
                              theorem Iris.CMRA.op_left_eqv {α : Type u_1} [CMRA α] {x y : α} (z : α) (e : OFE.Equiv x y) :
                              OFE.Equiv (x z) (y z)
                              theorem Iris.OFE.Equiv.op_l {α : Type u_1} [CMRA α] {x y z : α} :
                              Equiv x yEquiv (x z) (y z)
                              theorem Iris.CMRA.op_left_dist {α : Type u_1} [CMRA α] {n : Nat} {x y : α} (z : α) (e : OFE.Dist n x y) :
                              OFE.Dist n (x z) (y z)
                              theorem Iris.OFE.Dist.op_l {α : Type u_1} [CMRA α] {n : Nat} {x y z : α} :
                              Dist n x yDist n (x z) (y z)
                              theorem Iris.OFE.Dist.op {α : Type u_1} [CMRA α] {n : Nat} {x x' y y' : α} (ex : Dist n x x') (ey : Dist n y y') :
                              Dist n (x y) (x' y')
                              theorem Iris.CMRA.op_eqv {α : Type u_1} [CMRA α] {x x' y y' : α} (ex : OFE.Equiv x x') (ey : OFE.Equiv y y') :
                              OFE.Equiv (x y) (x' y')
                              theorem Iris.OFE.Equiv.op {α : Type u_1} [CMRA α] {x x' y y' : α} :
                              Equiv x x'Equiv y y'Equiv (x y) (x' y')
                              theorem Iris.CMRA.op_proper2 {α : Type u_1} [CMRA α] {x₁ x₂ y₁ y₂ : α} (H1 : OFE.Equiv x₁ x₂) (H2 : OFE.Equiv y₁ y₂) :
                              OFE.Equiv (x₁ y₁) (x₂ y₂)
                              theorem Iris.OFE.Dist.opM {α : Type u_1} [CMRA α] {n : Nat} {x₁ x₂ : α} {y₁ y₂ : Option α} (H1 : Dist n x₁ x₂) (H2 : Dist n y₁ y₂) :
                              Dist n (x₁ •? y₁) (x₂ •? y₂)
                              theorem Iris.OFE.Equiv.opM {α : Type u_1} [CMRA α] {x₁ x₂ : α} {y₁ y₂ : Option α} (H1 : Equiv x₁ x₂) (H2 : Equiv y₁ y₂) :
                              Equiv (x₁ •? y₁) (x₂ •? y₂)
                              theorem Iris.CMRA.opM_left_eqv {α : Type u_1} [CMRA α] {x y : α} (z : Option α) (e : OFE.Equiv x y) :
                              OFE.Equiv (x •? z) (y •? z)
                              theorem Iris.CMRA.opM_right_eqv {α : Type u_1} [CMRA α] (x : α) {y z : Option α} (e : OFE.Equiv y z) :
                              OFE.Equiv (x •? y) (x •? z)
                              theorem Iris.CMRA.opM_left_dist {α : Type u_1} [CMRA α] {n : Nat} {x y : α} (z : Option α) (e : OFE.Dist n x y) :
                              OFE.Dist n (x •? z) (y •? z)
                              theorem Iris.CMRA.opM_right_dist {α : Type u_1} [CMRA α] {n : Nat} (x : α) {y z : Option α} (e : OFE.Dist n y z) :
                              OFE.Dist n (x •? y) (x •? z)
                              theorem Iris.CMRA.op_opM_assoc {α : Type u_1} [CMRA α] (x y : α) (mz : Option α) :
                              OFE.Equiv ((x y) •? mz) (x (y •? mz))
                              theorem Iris.CMRA.op_opM_assoc_dist {α : Type u_1} [CMRA α] {n : Nat} (x y : α) (mz : Option α) :
                              OFE.Dist n ((x y) •? mz) (x (y •? mz))

                              Validity #

                              theorem Iris.CMRA.Valid.validN {α : Type u_1} [CMRA α] {x : α} {n : Nat} :
                              x✓{n} x
                              theorem Iris.CMRA.valid_mapN {α : Type u_1} [CMRA α] {x y : α} (f : ∀ (n : Nat), ✓{n} x✓{n} y) (v : x) :
                              y
                              theorem Iris.CMRA.validN_of_eqv {α : Type u_1} [CMRA α] {n : Nat} {x y : α} :
                              OFE.Equiv x y✓{n} x✓{n} y
                              theorem Iris.CMRA.validN_iff {α : Type u_1} [CMRA α] {n : Nat} {x y : α} (e : OFE.Dist n x y) :
                              theorem Iris.OFE.Dist.validN {α : Type u_1} [CMRA α] {n : Nat} {x y : α} :
                              Dist n x y → (✓{n} x ✓{n} y)
                              theorem Iris.CMRA.valid_of_eqv {α : Type u_1} [CMRA α] {x y : α} :
                              OFE.Equiv x y x y
                              theorem Iris.CMRA.valid_iff {α : Type u_1} [CMRA α] {x y : α} (e : OFE.Equiv x y) :
                              x y
                              theorem Iris.OFE.Equiv.valid {α : Type u_1} [CMRA α] {x y : α} :
                              Equiv x y → ( x y)
                              theorem Iris.CMRA.validN_of_le {α : Type u_1} [CMRA α] {n n' : Nat} {x : α} :
                              n' n✓{n} x✓{n'} x
                              theorem Iris.CMRA.valid0_of_validN {α : Type u_1} [CMRA α] {n : Nat} {x : α} :
                              ✓{n} x✓{0} x
                              theorem Iris.CMRA.validN_op_right {α : Type u_1} [CMRA α] {n : Nat} {x y : α} :
                              ✓{n} x y✓{n} y
                              theorem Iris.CMRA.valid_op_right {α : Type u_1} [CMRA α] (x y : α) :
                              x y y
                              theorem Iris.CMRA.valid_op_left {α : Type u_1} [CMRA α] {x y : α} :
                              x y x
                              theorem Iris.CMRA.validN_opM {α : Type u_1} [CMRA α] {n : Nat} {x : α} {my : Option α} :
                              ✓{n} x •? my✓{n} x
                              theorem Iris.CMRA.valid_opM {α : Type u_1} [CMRA α] {x : α} {my : Option α} :
                              x •? my x
                              theorem Iris.CMRA.validN_op_opM_left {α : Type u_1} [CMRA α] {n : Nat} {x y : α} {mz : Option α} :
                              ✓{n} (x y) •? mz✓{n} x •? mz
                              theorem Iris.CMRA.validN_op_opM_right {α : Type u_1} [CMRA α] {n : Nat} {x y : α} {mz : Option α} (h : ✓{n} (x y) •? mz) :
                              ✓{n} y •? mz

                              Core #

                              theorem Iris.CMRA.pcore_proper {α : Type u_1} [CMRA α] {x y : α} (cx : α) (e : OFE.Equiv x y) (ps : pcore x = some cx) :
                              (cy : α), pcore y = some cy OFE.Equiv cx cy
                              theorem Iris.CMRA.pcore_proper' {α : Type u_1} [CMRA α] {x y : α} (e : OFE.Equiv x y) :
                              theorem Iris.CMRA.pcore_op_left' {α : Type u_1} [CMRA α] {x cx : α} (e : OFE.Equiv (pcore x) (some cx)) :
                              OFE.Equiv (cx x) x
                              theorem Iris.CMRA.pcore_op_right {α : Type u_1} [CMRA α] {x cx : α} (e : pcore x = some cx) :
                              OFE.Equiv (x cx) x
                              theorem Iris.CMRA.pcore_op_right' {α : Type u_1} [CMRA α] {x cx : α} (e : OFE.Equiv (pcore x) (some cx)) :
                              OFE.Equiv (x cx) x
                              theorem Iris.CMRA.pcore_idem' {α : Type u_1} [CMRA α] {x cx : α} (e : OFE.Equiv (pcore x) (some cx)) :
                              OFE.Equiv (pcore cx) (some cx)
                              theorem Iris.CMRA.pcore_op_self {α : Type u_1} [CMRA α] {x cx : α} (e : pcore x = some cx) :
                              OFE.Equiv (cx cx) cx
                              theorem Iris.CMRA.pcore_op_self' {α : Type u_1} [CMRA α] {x cx : α} (e : OFE.Equiv (pcore x) (some cx)) :
                              OFE.Equiv (cx cx) cx
                              theorem Iris.CMRA.pcore_validN {α : Type u_1} [CMRA α] {n : Nat} {x cx : α} (e : pcore x = some cx) (v : ✓{n} x) :
                              ✓{n} cx
                              theorem Iris.CMRA.pcore_valid {α : Type u_1} [CMRA α] {x cx : α} (e : pcore x = some cx) :
                              x cx

                              Exclusive elements #

                              theorem Iris.CMRA.not_valid_exclN_op_left {α : Type u_1} [CMRA α] {n : Nat} {x : α} [Exclusive x] {y : α} :
                              theorem Iris.CMRA.not_valid_exclN_op_right {α : Type u_1} [CMRA α] {n : Nat} {x : α} [Exclusive x] {y : α} :
                              theorem Iris.CMRA.not_valid_excl_op_left {α : Type u_1} [CMRA α] {x : α} [Exclusive x] {y : α} :
                              theorem Iris.CMRA.not_excl_op_right {α : Type u_1} [CMRA α] {x : α} [Exclusive x] {y : α} :
                              theorem Iris.CMRA.none_of_excl_valid_op {α : Type u_1} [CMRA α] {n : Nat} {x : α} [Exclusive x] {my : Option α} :
                              ✓{n} x •? mymy = none
                              theorem Iris.CMRA.not_valid_of_exclN_inc {α : Type u_1} [CMRA α] {n : Nat} {x : α} [Exclusive x] {y : α} :
                              x ≼{n} y¬✓{n} y
                              theorem Iris.CMRA.not_valid_of_excl_inc {α : Type u_1} [CMRA α] {x : α} [Exclusive x] {y : α} :
                              x y¬ y
                              theorem Iris.CMRA.Exclusive.of_eqv {α : Type u_1} [CMRA α] {x₁ x₂ : α} (e : OFE.Equiv x₁ x₂) (h : Exclusive x₁) :
                              theorem Iris.CMRA.exclusive_iff {α : Type u_1} [CMRA α] {x₁ x₂ : α} (e : OFE.Equiv x₁ x₂) :
                              theorem Iris.OFE.Dist.exclusive {α : Type u_1} [CMRA α] {x₁ x₂ : α} :
                              Equiv x₁ x₂ → (CMRA.Exclusive x₁ CMRA.Exclusive x₂)

                              Order #

                              theorem Iris.CMRA.inc_of_eqv_of_inc {α : Type u_1} [CMRA α] {a b c : α} (e : OFE.Equiv a b) :
                              b ca c
                              theorem Iris.CMRA.inc_of_inc_of_eqv {α : Type u_1} [CMRA α] {a b c : α} :
                              a bOFE.Equiv b ca c
                              theorem Iris.CMRA.incN_of_incN_of_dist {α : Type u_1} [CMRA α] {n : Nat} {a b c : α} :
                              a ≼{n} bOFE.Dist n b ca ≼{n} c
                              theorem Iris.CMRA.incN_of_dist_of_incN {α : Type u_1} [CMRA α] {n : Nat} {a b c : α} (e : OFE.Dist n a b) :
                              b ≼{n} ca ≼{n} c
                              theorem Iris.CMRA.incN_of_inc {α : Type u_1} [CMRA α] (n : Nat) {x y : α} :
                              x yx ≼{n} y
                              theorem Iris.CMRA.Included.incN {α : Type u_1} [CMRA α] {n : Nat} {x y : α} :
                              x yx ≼{n} y
                              theorem Iris.CMRA.inc_iff_left {α : Type u_1} [CMRA α] {a b c : α} (e : OFE.Equiv a b) :
                              a c b c
                              theorem Iris.OFE.Equiv.inc_l {α : Type u_1} [CMRA α] {a b c : α} :
                              Equiv a b → (a c b c)
                              theorem Iris.CMRA.inc_iff_right {α : Type u_1} [CMRA α] {b c a : α} (e : OFE.Equiv b c) :
                              a b a c
                              theorem Iris.OFE.Equiv.inc_r {α : Type u_1} [CMRA α] {b c a : α} :
                              Equiv b c → (a b a c)
                              theorem Iris.CMRA.inc_iff {α : Type u_1} [CMRA α] {a a' b b' : α} (ea : OFE.Equiv a a') (eb : OFE.Equiv b b') :
                              a b a' b'
                              theorem Iris.OFE.Equiv.inc {α : Type u_1} [CMRA α] {a a' b b' : α} :
                              Equiv a a'Equiv b b' → (a b a' b')
                              theorem Iris.CMRA.incN_iff_left {α : Type u_1} [CMRA α] {n : Nat} {a b c : α} (e : OFE.Dist n a b) :
                              a ≼{n} c b ≼{n} c
                              theorem Iris.OFE.Dist.incN_l {α : Type u_1} [CMRA α] {n : Nat} {a b c : α} :
                              Dist n a b → (a ≼{n} c b ≼{n} c)
                              theorem Iris.CMRA.incN_iff_right {α : Type u_1} [CMRA α] {n : Nat} {b c a : α} (e : OFE.Dist n b c) :
                              a ≼{n} b a ≼{n} c
                              theorem Iris.OFE.Dist.incN_r {α : Type u_1} [CMRA α] {n : Nat} {b c a : α} :
                              Dist n b c → (a ≼{n} b a ≼{n} c)
                              theorem Iris.CMRA.incN_iff {α : Type u_1} [CMRA α] {n : Nat} {a a' b b' : α} (ea : OFE.Dist n a a') (eb : OFE.Dist n b b') :
                              a ≼{n} b a' ≼{n} b'
                              theorem Iris.OFE.Dist.incN {α : Type u_1} [CMRA α] {n : Nat} {a a' b b' : α} :
                              Dist n a a'Dist n b b' → (a ≼{n} b a' ≼{n} b')
                              theorem Iris.CMRA.inc_trans {α : Type u_1} [CMRA α] {x y z : α} :
                              x yy zx z
                              theorem Iris.CMRA.Included.trans {α : Type u_1} [CMRA α] {x y z : α} :
                              x yy zx z
                              theorem Iris.CMRA.incN_trans {α : Type u_1} [CMRA α] {n : Nat} {x y z : α} :
                              x ≼{n} yy ≼{n} zx ≼{n} z
                              theorem Iris.CMRA.IncludedN.trans {α : Type u_1} [CMRA α] {n : Nat} {x y z : α} :
                              x ≼{n} yy ≼{n} zx ≼{n} z
                              instance Iris.CMRA.instTransIncludedN {α : Type u_1} [CMRA α] {n : Nat} :
                              Equations
                              theorem Iris.CMRA.valid_of_inc {α : Type u_1} [CMRA α] {x y : α} :
                              x y y x
                              theorem Iris.CMRA.validN_of_incN {α : Type u_1} [CMRA α] {n : Nat} {x y : α} :
                              x ≼{n} y✓{n} y✓{n} x
                              theorem Iris.CMRA.IncludedN.validN {α : Type u_1} [CMRA α] {n : Nat} {x y : α} :
                              x ≼{n} y✓{n} y✓{n} x
                              theorem Iris.CMRA.validN_of_inc {α : Type u_1} [CMRA α] {n : Nat} {x y : α} :
                              x y✓{n} y✓{n} x
                              theorem Iris.CMRA.Included.validN {α : Type u_1} [CMRA α] {n : Nat} {x y : α} :
                              x y✓{n} y✓{n} x
                              theorem Iris.CMRA.incN_of_incN_le {α : Type u_1} [CMRA α] {n n' : Nat} {x y : α} (l1 : n' n) :
                              x ≼{n} yx ≼{n'} y
                              theorem Iris.CMRA.inc0_of_incN {α : Type u_1} [CMRA α] {n : Nat} {x y : α} :
                              x ≼{n} yx ≼{0} y
                              theorem Iris.CMRA.IncludedN.le {α : Type u_1} [CMRA α] {n n' : Nat} {x y : α} :
                              n' nx ≼{n} yx ≼{n'} y
                              theorem Iris.CMRA.incN_of_incN_succ {α : Type u_1} [CMRA α] {n : Nat} {x y : α} :
                              x ≼{n.succ} yx ≼{n} y
                              theorem Iris.CMRA.IncludedN.succ {α : Type u_1} [CMRA α] {n : Nat} {x y : α} :
                              x ≼{n.succ} yx ≼{n} y
                              theorem Iris.CMRA.incN_op_left {α : Type u_1} [CMRA α] (n : Nat) (x y : α) :
                              x ≼{n} x y
                              theorem Iris.CMRA.inc_op_left {α : Type u_1} [CMRA α] (x y : α) :
                              x x y
                              theorem Iris.CMRA.inc_op_right {α : Type u_1} [CMRA α] (x y : α) :
                              y x y
                              theorem Iris.CMRA.incN_op_right {α : Type u_1} [CMRA α] (n : Nat) (x y : α) :
                              y ≼{n} x y
                              theorem Iris.CMRA.pcore_mono {α : Type u_1} [CMRA α] {cx x y : α} :
                              x ypcore x = some cx (cy : α), pcore y = some cy cx cy
                              theorem Iris.CMRA.pcore_mono' {α : Type u_1} [CMRA α] {x y cx : α} (le : x y) (e : OFE.Equiv (pcore x) (some cx)) :
                              (cy : α), pcore y = some cy cx cy
                              theorem Iris.CMRA.pcore_monoN' {α : Type u_1} [CMRA α] {n : Nat} {x y cx : α} :
                              x ≼{n} yOFE.Dist n (pcore x) (some cx) (cy : α), pcore y = some cy cx ≼{n} cy
                              theorem Iris.CMRA.pcore_inc_self {α : Type u_1} [CMRA α] {x cx : α} (e : pcore x = some cx) :
                              cx x
                              theorem Iris.CMRA.op_mono_right {α : Type u_1} [CMRA α] {x y : α} (z : α) :
                              x yz x z y
                              theorem Iris.CMRA.op_monoN_right {α : Type u_1} [CMRA α] {n : Nat} {x y : α} (z : α) :
                              x ≼{n} yz x ≼{n} z y
                              theorem Iris.CMRA.op_monoN_left {α : Type u_1} [CMRA α] {n : Nat} {x y : α} (z : α) (h : x ≼{n} y) :
                              x z ≼{n} y z
                              theorem Iris.CMRA.op_mono_left {α : Type u_1} [CMRA α] {x y : α} (z : α) (h : x y) :
                              x z y z
                              theorem Iris.CMRA.op_monoN {α : Type u_1} [CMRA α] {n : Nat} {x x' y y' : α} (hx : x ≼{n} x') (hy : y ≼{n} y') :
                              x y ≼{n} x' y'
                              theorem Iris.CMRA.op_mono {α : Type u_1} [CMRA α] {x x' y y' : α} (hx : x x') (hy : y y') :
                              x y x' y'
                              theorem Iris.CMRA.op_self {α : Type u_1} [CMRA α] (x : α) [CoreId x] :
                              OFE.Equiv (x x) x
                              theorem Iris.CMRA.op_core_right_of_inc {α : Type u_1} [CMRA α] {x y : α} [CoreId x] :
                              x yOFE.Equiv (x y) y
                              theorem Iris.CMRA.included_dist_l {α : Type u_1} [CMRA α] {n : Nat} {x1 x2 x1' : α} :
                              x1 x2OFE.Dist n x1' x1 (x2' : α), x1' x2' OFE.Dist n x2' x2
                              theorem Iris.CMRA.op_core_left_of_inc {α : Type u_1} [CMRA α] {x y : α} [CoreId x] (le : x y) :
                              OFE.Equiv (y x) y
                              theorem Iris.CMRA.CoreId.of_pcore_eq_some {α : Type u_1} [CMRA α] {x y : α} (e : pcore x = some y) :
                              theorem Iris.CMRA.pcore_eq_core {α : Type u_1} [CMRA α] [IsTotal α] (x : α) :
                              theorem Iris.CMRA.op_core {α : Type u_1} [CMRA α] [IsTotal α] (x : α) :
                              theorem Iris.CMRA.core_op {α : Type u_1} [CMRA α] [IsTotal α] (x : α) :
                              theorem Iris.CMRA.op_core_dist {α : Type u_1} [CMRA α] [IsTotal α] {n : Nat} (x : α) :
                              OFE.Dist n (x core x) x
                              theorem Iris.CMRA.core_op_dist {α : Type u_1} [CMRA α] [IsTotal α] {n : Nat} (x : α) :
                              OFE.Dist n (core x x) x
                              theorem Iris.CMRA.core_op_core {α : Type u_1} [CMRA α] [IsTotal α] {x : α} :
                              theorem Iris.CMRA.validN_core {α : Type u_1} [CMRA α] [IsTotal α] {n : Nat} {x : α} (v : ✓{n} x) :
                              theorem Iris.CMRA.valid_core {α : Type u_1} [CMRA α] [IsTotal α] {x : α} (v : x) :
                              instance Iris.CMRA.instCoreIdCore {α : Type u_1} [CMRA α] [IsTotal α] (y : α) :
                              theorem Iris.OFE.Dist.core {α : Type u_1} [CMRA α] [CMRA.IsTotal α] {n : Nat} {x₁ x₂ : α} :
                              Dist n x₁ x₂Dist n (CMRA.core x₁) (CMRA.core x₂)
                              theorem Iris.OFE.Equiv.core {α : Type u_1} [CMRA α] [CMRA.IsTotal α] {x₁ x₂ : α} :
                              Equiv x₁ x₂Equiv (CMRA.core x₁) (CMRA.core x₂)
                              theorem Iris.CMRA.core_eqv_self {α : Type u_1} [CMRA α] [IsTotal α] (x : α) [CoreId x] :
                              theorem Iris.CMRA.coreId_iff_core_eqv_self {α : Type u_1} [CMRA α] [IsTotal α] {x : α} :
                              theorem Iris.CMRA.core_idem {α : Type u_1} [CMRA α] [IsTotal α] (x : α) :
                              theorem Iris.CMRA.inc_refl {α : Type u_1} [CMRA α] [IsTotal α] (x : α) :
                              x x
                              theorem Iris.CMRA.Included.rfl {α : Type u_1} [CMRA α] [IsTotal α] {x : α} :
                              x x
                              theorem Iris.CMRA.incN_refl {α : Type u_1} [CMRA α] [IsTotal α] {n : Nat} (x : α) :
                              x ≼{n} x
                              theorem Iris.CMRA.IncludedN.rfl {α : Type u_1} [CMRA α] [IsTotal α] {n : Nat} {x : α} :
                              x ≼{n} x
                              theorem Iris.CMRA.core_inc_self {α : Type u_1} [CMRA α] [IsTotal α] {x : α} [CoreId x] :
                              core x x
                              theorem Iris.CMRA.core_incN_core {α : Type u_1} [CMRA α] [IsTotal α] {n : Nat} {x y : α} (inc : x ≼{n} y) :
                              theorem Iris.CMRA.core_op_mono {α : Type u_1} [CMRA α] [IsTotal α] (x y : α) :
                              core x core (x y)
                              theorem Iris.CMRA.core_mono {α : Type u_1} [CMRA α] [IsTotal α] {x y : α} (Hinc : x y) :
                              theorem Iris.CMRA.discrete_inc_l {α : Type u_1} [CMRA α] {x y : α} [HD : OFE.DiscreteE x] (Hv : ✓{0} y) (Hle : x ≼{0} y) :
                              x y
                              theorem Iris.CMRA.discrete_inc_r {α : Type u_1} [CMRA α] {x y : α} [HD : OFE.DiscreteE y] :
                              x ≼{0} yx y
                              instance Iris.CMRA.discrete_op {α : Type u_1} [CMRA α] {x y : α} (Hv : ✓{0} x y) [Hx : OFE.DiscreteE x] [Hy : OFE.DiscreteE y] :
                              theorem Iris.CMRA.valid_iff_validN' {α : Type u_1} [CMRA α] [Discrete α] (n : Nat) {x : α} :
                              theorem Iris.CMRA.valid_0_iff_validN {α : Type u_1} [CMRA α] [Discrete α] (n : Nat) {x : α} :
                              theorem Iris.CMRA.inc_iff_incN {α : Type u_1} [CMRA α] [OFE.Discrete α] (n : Nat) {x y : α} :
                              x y x ≼{n} y
                              theorem Iris.CMRA.inc_0_iff_incN {α : Type u_1} [CMRA α] [OFE.Discrete α] (n : Nat) {x y : α} :
                              x ≼{0} y x ≼{n} y
                              theorem Iris.CMRA.cancelable {α : Type u_1} [CMRA α] {x y z : α} [Cancelable x] (v : x y) (e : OFE.Equiv (x y) (x z)) :
                              theorem Iris.CMRA.discrete_cancelable {α : Type u_1} [CMRA α] {x : α} [Discrete α] (H : ∀ {y z : α}, x yOFE.Equiv (x y) (x z)OFE.Equiv y z) :
                              instance Iris.CMRA.cancelable_op {α : Type u_1} [CMRA α] {x y : α} [Cancelable x] [Cancelable y] :
                              instance Iris.CMRA.exclusive_cancelable {α : Type u_1} [CMRA α] {x : α} [Exclusive x] :
                              theorem Iris.CMRA.Cancelable.of_eqv {α : Type u_1} [CMRA α] {x₁ x₂ : α} (e : OFE.Equiv x₁ x₂) (h : Cancelable x₁) :
                              theorem Iris.CMRA.cancelable_iff {α : Type u_1} [CMRA α] {x₁ x₂ : α} (e : OFE.Equiv x₁ x₂) :
                              theorem Iris.OFE.Equiv.cancelable {α : Type u_1} [CMRA α] {x₁ x₂ : α} :
                              Equiv x₁ x₂ → (CMRA.Cancelable x₁ CMRA.Cancelable x₂)
                              theorem Iris.CMRA.op_opM_cancel_dist {α : Type u_1} [CMRA α] {n : Nat} {mw : Option α} {x y z : α} [Cancelable x] (vxy : ✓{n} x y) (h : OFE.Dist n (x y) ((x z) •? mw)) :
                              OFE.Dist n y (z •? mw)
                              theorem Iris.CMRA.IdFree.of_dist {α : Type u_1} [CMRA α] {x₁ x₂ : α} {n : Nat} (e : OFE.Dist n x₁ x₂) (h : IdFree x₁) :
                              IdFree x₂
                              theorem Iris.OFE.Dist.idFree {α : Type u_1} [CMRA α] {n : Nat} {x₁ x₂ : α} (e : Dist n x₁ x₂) :
                              theorem Iris.CMRA.IdFree.of_eqv {α : Type u_1} [CMRA α] {x₁ x₂ : α} (e : OFE.Equiv x₁ x₂) (h : IdFree x₁) :
                              IdFree x₂
                              theorem Iris.CMRA.idFree_iff {α : Type u_1} [CMRA α] {x₁ x₂ : α} (e : OFE.Equiv x₁ x₂) :
                              IdFree x₁ IdFree x₂
                              theorem Iris.OFE.Equiv.idFree {α : Type u_1} [CMRA α] {x₁ x₂ : α} :
                              Equiv x₁ x₂ → (CMRA.IdFree x₁ CMRA.IdFree x₂)
                              theorem Iris.CMRA.id_freeN_r {α : Type u_1} [CMRA α] {n n' : Nat} {x : α} [IdFree x] {y : α} (v : ✓{n} x) :
                              ¬OFE.Dist n' (x y) x
                              theorem Iris.CMRA.id_freeN_l {α : Type u_1} [CMRA α] {n n' : Nat} {x : α} [IdFree x] {y : α} (v : ✓{n} x) :
                              ¬OFE.Dist n' (y x) x
                              theorem Iris.CMRA.id_free_r {α : Type u_1} [CMRA α] {x : α} [IdFree x] {y : α} (v : x) :
                              theorem Iris.CMRA.id_free_l {α : Type u_1} [CMRA α] {x : α} [IdFree x] {y : α} (v : x) :
                              theorem Iris.CMRA.discrete_id_free {α : Type u_1} [CMRA α] {x : α} [Discrete α] (H : ∀ (y : α), x¬OFE.Equiv (x y) x) :
                              instance Iris.CMRA.idFree_op_r {α : Type u_1} [CMRA α] {x y : α} [IdFree y] [Cancelable x] :
                              IdFree (x y)
                              instance Iris.CMRA.idFree_op_l {α : Type u_1} [CMRA α] {x y : α} [IdFree x] [Cancelable y] :
                              IdFree (x y)
                              instance Iris.CMRA.exclusive_idFree {α : Type u_1} [CMRA α] {x : α} [Exclusive x] :
                              theorem Iris.CMRA.unit_validN {α : Type u_1} [UCMRA α] {n : Nat} :
                              theorem Iris.CMRA.incN_unit {α : Type u_1} [UCMRA α] {n : Nat} {x : α} :
                              theorem Iris.CMRA.inc_unit {α : Type u_1} [UCMRA α] {x : α} :
                              theorem Iris.CMRA.unit_left_id_dist {α : Type u_1} [UCMRA α] {n : Nat} (x : α) :
                              OFE.Dist n (unit x) x
                              theorem Iris.CMRA.unit_right_id {α : Type u_1} [UCMRA α] {x : α} :
                              theorem Iris.CMRA.unit_right_id_dist {α : Type u_1} [UCMRA α] {n : Nat} (x : α) :
                              OFE.Dist n (x unit) x
                              instance Iris.CMRA.unit_total {α : Type u_1} [UCMRA α] :
                              theorem Iris.OFE.Dist.to_incN {α : Type u_1} [UCMRA α] {n : Nat} {x y : α} (H : Dist n x y) :
                              x ≼{n} y
                              theorem Iris.CMRA.assoc_L {α : Type u_1} [CMRA α] [OFE.Leibniz α] {x y z : α} :
                              x (y z) = (x y) z
                              theorem Iris.CMRA.comm_L {α : Type u_1} [CMRA α] [OFE.Leibniz α] {x y : α} :
                              x y = y x
                              theorem Iris.CMRA.pcore_op_left_L {α : Type u_1} [CMRA α] [OFE.Leibniz α] {x cx : α} (h : pcore x = some cx) :
                              cx x = x
                              theorem Iris.CMRA.pcore_idem_L {α : Type u_1} [CMRA α] [OFE.Leibniz α] {x cx : α} (h : pcore x = some cx) :
                              pcore cx = some cx
                              theorem Iris.CMRA.op_opM_assoc_L {α : Type u_1} [CMRA α] [OFE.Leibniz α] {x y : α} {mz : Option α} :
                              (x y) •? mz = x (y •? mz)
                              theorem Iris.CMRA.pcore_op_right_L {α : Type u_1} [CMRA α] [OFE.Leibniz α] {x cx : α} (h : pcore x = some cx) :
                              x cx = x
                              theorem Iris.CMRA.pcore_op_self_L {α : Type u_1} [CMRA α] [OFE.Leibniz α] {x cx : α} (h : pcore x = some cx) :
                              cx cx = cx
                              theorem Iris.CMRA.core_id_dup_L {α : Type u_1} [CMRA α] [OFE.Leibniz α] {x : α} [CoreId x] :
                              x x = x
                              theorem Iris.CMRA.op_core_L {α : Type u_1} [CMRA α] [OFE.Leibniz α] {x : α} [IsTotal α] :
                              x core x = x
                              theorem Iris.CMRA.core_op_L {α : Type u_1} [CMRA α] [OFE.Leibniz α] {x : α} [IsTotal α] :
                              core x x = x
                              theorem Iris.CMRA.core_idem_L {α : Type u_1} [CMRA α] [OFE.Leibniz α] {x : α} [IsTotal α] :
                              core (core x) = core x
                              theorem Iris.CMRA.core_op_core_L {α : Type u_1} [CMRA α] [OFE.Leibniz α] {x : α} [IsTotal α] :
                              theorem Iris.CMRA.coreId_iff_core_eq_self {α : Type u_1} [CMRA α] [OFE.Leibniz α] {x : α} [IsTotal α] :
                              theorem Iris.CMRA.core_eq_self {α : Type u_1} [CMRA α] [OFE.Leibniz α] {x : α} [IsTotal α] [c : CoreId x] :
                              core x = x
                              theorem Iris.CMRA.unit_left_id_L {α : Type u_1} [UCMRA α] [OFE.Leibniz α] {x : α} :
                              unit x = x
                              theorem Iris.CMRA.unit_right_id_L {α : Type u_1} [UCMRA α] [OFE.Leibniz α] {x : α} :
                              x unit = x
                              structure Iris.CMRA.Hom (α : Type u_1) (β : Type u_2) [CMRA α] [CMRA β] extends α -n> β :
                              Type (max u_1 u_2)

                              A morphism between CMRAs, written α -C> β, is defined to be a non-expansive function which preserves validN, pcore and op.

                              Instances For
                                theorem Iris.CMRA.Hom.ext_iff {α : Type u_1} {β : Type u_2} {inst✝ : CMRA α} {inst✝¹ : CMRA β} {x y : α -C> β} :
                                x = y x.f = y.f
                                theorem Iris.CMRA.Hom.ext {α : Type u_1} {β : Type u_2} {inst✝ : CMRA α} {inst✝¹ : CMRA β} {x y : α -C> β} (f : x.f = y.f) :
                                x = y

                                A morphism between CMRAs, written α -C> β, is defined to be a non-expansive function which preserves validN, pcore and op.

                                Equations
                                Instances For
                                  instance Iris.CMRA.instCoeFunHomForall {α : Type u_1} [CMRA α] {β : Type u_2} [CMRA β] :
                                  CoeFun (α -C> β) fun (x : α -C> β) => αβ
                                  Equations
                                  instance Iris.CMRA.instOFEHom {α : Type u_1} [CMRA α] {β : Type u_2} [CMRA β] :
                                  OFE (α -C> β)
                                  Equations
                                  • One or more equations did not get rendered due to their size.
                                  def Iris.CMRA.Hom.id {α : Type u_1} [CMRA α] :
                                  α -C> α
                                  Equations
                                  Instances For
                                    theorem Iris.CMRA.Hom.eqv {α : Type u_2} [CMRA α] {β : Type u_1} [CMRA β] (f : α -C> β) {x₁ x₂ : α} (X : OFE.Equiv x₁ x₂) :
                                    OFE.Equiv (f.f x₁) (f.f x₂)
                                    theorem Iris.CMRA.Hom.core {α : Type u_2} [CMRA α] {β : Type u_1} [CMRA β] (f : α -C> β) {x : α} :
                                    OFE.Equiv (core (f.f x)) (f.f (core x))
                                    theorem Iris.CMRA.Hom.mono {α : Type u_2} [CMRA α] {β : Type u_1} [CMRA β] (f : α -C> β) {x₁ x₂ : α} :
                                    x₁ x₂f.f x₁ f.f x₂
                                    theorem Iris.CMRA.Hom.monoN {α : Type u_2} [CMRA α] {β : Type u_1} [CMRA β] (f : α -C> β) (n : Nat) {x₁ x₂ : α} :
                                    x₁ ≼{n} x₂f.f x₁ ≼{n} f.f x₂
                                    theorem Iris.CMRA.Hom.valid {α : Type u_2} [CMRA α] {β : Type u_1} [CMRA β] (f : α -C> β) {x : α} (H : x) :
                                    f.f x
                                    class Iris.RFunctor (F : COFE.OFunctorPre) :
                                    Type (max (max (u_1 + 1) (u_2 + 1)) u_3)
                                    Instances
                                      class Iris.RFunctorContractive (F : COFE.OFunctorPre) extends Iris.RFunctor F :
                                      Type (max (max (u_1 + 1) (u_2 + 1)) u_3)
                                      Instances
                                        def Iris.RFunctor.ap (F : COFE.OFunctorPre) (T : Type u_1) [RFunctor F] [OFE T] :
                                        Type u_2
                                        Equations
                                        Instances For
                                          Equations
                                          • One or more equations did not get rendered due to their size.
                                          class Iris.URFunctor (F : COFE.OFunctorPre) :
                                          Type (max (max (u_1 + 1) (u_2 + 1)) u_3)
                                          Instances
                                            class Iris.URFunctorContractive (F : COFE.OFunctorPre) extends Iris.URFunctor F :
                                            Type (max (max (u_1 + 1) (u_2 + 1)) u_3)
                                            Instances
                                              Equations
                                              • One or more equations did not get rendered due to their size.
                                              Equations
                                              • One or more equations did not get rendered due to their size.
                                              instance Iris.cmraDiscreteFunO {α : Type u_1} (β : αType u_2) [(x : α) → CMRA (β x)] [∀ (x : α), CMRA.IsTotal (β x)] :
                                              CMRA ((x : α) → β x)
                                              Equations
                                              • One or more equations did not get rendered due to their size.
                                              instance Iris.ucmraDiscreteFunO {α : Type u_1} (β : αType u_2) [(x : α) → UCMRA (β x)] :
                                              UCMRA ((x : α) → β x)
                                              Equations
                                              instance Iris.urFunctorDiscreteFunOF {C : Type u_1} (F : CCOFE.OFunctorPre) [(c : C) → URFunctor (F c)] :
                                              Equations
                                              • One or more equations did not get rendered due to their size.
                                              instance Iris.DiscreteFunOF_URFC {C : Type u_1} (F : CCOFE.OFunctorPre) [HURF : (c : C) → URFunctorContractive (F c)] :
                                              Equations
                                              def Iris.optionCore {α : Type u_1} [CMRA α] (x : Option α) :
                                              Equations
                                              Instances For
                                                def Iris.optionOp {α : Type u_1} [CMRA α] (x y : Option α) :
                                                Equations
                                                Instances For
                                                  def Iris.optionValidN {α : Type u_1} [CMRA α] (n : Nat) :
                                                  Option αProp
                                                  Equations
                                                  Instances For
                                                    def Iris.optionValid {α : Type u_1} [CMRA α] :
                                                    Option αProp
                                                    Equations
                                                    Instances For
                                                      instance Iris.cmraOption {α : Type u_1} [CMRA α] :
                                                      Equations
                                                      • One or more equations did not get rendered due to their size.
                                                      instance Iris.ucmraOption {α : Type u_1} [CMRA α] :
                                                      Equations
                                                      theorem Iris.CMRA.equiv_of_some_equiv_some {α : Type u_1} [CMRA α] {x y : α} (h : OFE.Equiv (some x) (some y)) :
                                                      theorem Iris.CMRA.dist_of_some_dist_some {α : Type u_1} [CMRA α] {n : Nat} {x y : α} (h : OFE.Dist n (some x) (some y)) :
                                                      OFE.Dist n x y
                                                      theorem Iris.CMRA.op_some_opM_assoc {α : Type u_1} [CMRA α] (x y : α) (mz : Option α) :
                                                      OFE.Equiv ((x y) •? mz) (x •? (some y mz))
                                                      theorem Iris.CMRA.op_some_opM_assoc_dist {α : Type u_1} [CMRA α] {n : Nat} (x y : α) (mz : Option α) :
                                                      OFE.Dist n ((x y) •? mz) (x •? (some y mz))
                                                      theorem Iris.CMRA.some_inc_some_of_dist_opM {α : Type u_1} [CMRA α] {n : Nat} {x y : α} {mz : Option α} (h : OFE.Dist n x (y •? mz)) :
                                                      theorem Iris.CMRA.inc_of_some_inc_some {α : Type u_1} [CMRA α] [IsTotal α] {x y : α} (h : some y some x) :
                                                      y x
                                                      theorem Iris.CMRA.incN_of_some_incN_some {α : Type u_1} [CMRA α] {n : Nat} [IsTotal α] {x y : α} :
                                                      some y ≼{n} some xy ≼{n} x
                                                      theorem Iris.CMRA.exists_op_some_eqv_some {α : Type u_1} [CMRA α] (x : Option α) (y : α) :
                                                      (z : α), OFE.Equiv (x some y) (some z)
                                                      theorem Iris.CMRA.exists_op_some_dist_some {α : Type u_1} [CMRA α] {n : Nat} (x : Option α) (y : α) :
                                                      (z : α), OFE.Dist n (x some y) (some z)
                                                      theorem Iris.not_valid_some_exclN_op_left {α : Type u_1} [CMRA α] {n : Nat} {x : α} [CMRA.Exclusive x] {y : α} :
                                                      theorem Iris.validN_op_unit {α : Type u_1} [CMRA α] {n : Nat} {x : Option α} (vx : ✓{n} x) :
                                                      Equations
                                                      • One or more equations did not get rendered due to their size.
                                                      @[reducible, inline]
                                                      abbrev Iris.Prod.pcore {α : Type u_1} {β : Type u_2} [CMRA α] [CMRA β] (x : α × β) :
                                                      Option (α × β)
                                                      Equations
                                                      Instances For
                                                        @[reducible, inline]
                                                        abbrev Iris.Prod.op {α : Type u_1} {β : Type u_2} [CMRA α] [CMRA β] (x y : α × β) :
                                                        α × β
                                                        Equations
                                                        Instances For
                                                          @[reducible, inline]
                                                          abbrev Iris.Prod.ValidN {α : Type u_1} {β : Type u_2} [CMRA α] [CMRA β] (n : Nat) (x : α × β) :
                                                          Equations
                                                          Instances For
                                                            @[reducible, inline]
                                                            abbrev Iris.Prod.Valid {α : Type u_1} {β : Type u_2} [CMRA α] [CMRA β] (x : α × β) :
                                                            Equations
                                                            Instances For
                                                              instance Iris.Prod.cmraProd {α : Type u_1} {β : Type u_2} [CMRA α] [CMRA β] :
                                                              CMRA (α × β)
                                                              Equations
                                                              • One or more equations did not get rendered due to their size.
                                                              theorem Iris.Prod.valid_fst {α : Type u_1} {β : Type u_2} [CMRA α] [CMRA β] {x : α × β} (h : x) :
                                                              theorem Iris.Prod.valid_snd {α : Type u_1} {β : Type u_2} [CMRA α] [CMRA β] {x : α × β} (h : x) :
                                                              theorem Iris.Prod.validN_fst {α : Type u_1} {β : Type u_2} [CMRA α] [CMRA β] {n : Nat} {x : α × β} (h : ✓{n} x) :
                                                              theorem Iris.Prod.validN_snd {α : Type u_1} {β : Type u_2} [CMRA α] [CMRA β] {n : Nat} {x : α × β} (h : ✓{n} x) :
                                                              Equations
                                                              • One or more equations did not get rendered due to their size.
                                                              @[reducible, inline]
                                                              abbrev Iris.GenMap (α : Type u_1) (β : Type u_2) :
                                                              Type (max u_1 u_2)
                                                              Equations
                                                              Instances For
                                                                @[reducible, inline]
                                                                Equations
                                                                Instances For