- pcore : α → Option α
- op : α → α → α
- Valid : α → Prop
- op_ne {x : α} : OFE.NonExpansive (op x)
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 : α)
:
Reduction of pcore_op_mono to regular monotonicity
Equations
- Iris.CMRA.«term_•_» = Lean.ParserDescr.trailingNode `Iris.CMRA.«term_•_» 60 61 (Lean.ParserDescr.binary `andthen (Lean.ParserDescr.symbol " • ") (Lean.ParserDescr.cat `term 61))
Instances For
Equations
- Iris.CMRA.«term_≼_» = Lean.ParserDescr.trailingNode `Iris.CMRA.«term_≼_» 50 51 (Lean.ParserDescr.binary `andthen (Lean.ParserDescr.symbol " ≼ ") (Lean.ParserDescr.cat `term 51))
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- Iris.CMRA.«term_•?_» = Lean.ParserDescr.trailingNode `Iris.CMRA.«term_•?_» 60 61 (Lean.ParserDescr.binary `andthen (Lean.ParserDescr.symbol " •? ") (Lean.ParserDescr.cat `term 61))
Instances For
Equations
- Iris.CMRA.«term✓_» = Lean.ParserDescr.node `Iris.CMRA.«term✓_» 50 (Lean.ParserDescr.binary `andthen (Lean.ParserDescr.symbol "✓ ") (Lean.ParserDescr.cat `term 50))
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- Iris.CMRA.core x = (Iris.CMRA.pcore x).getD x
Instances For
Instances
Instances
Op #
Validity #
Core #
Exclusive elements #
theorem
Iris.OFE.Dist.exclusive
{α : Type u_1}
[CMRA α]
{x₁ x₂ : α}
:
Equiv x₁ x₂ → (CMRA.Exclusive x₁ ↔ CMRA.Exclusive x₂)
Order #
theorem
Iris.CMRA.discrete_inc_l
{α : Type u_1}
[CMRA α]
{x y : α}
[HD : OFE.DiscreteE x]
(Hv : ✓{0} y)
(Hle : x ≼{0} y)
:
instance
Iris.CMRA.discrete_op
{α : Type u_1}
[CMRA α]
{x y : α}
(Hv : ✓{0} x • y)
[Hx : OFE.DiscreteE x]
[Hy : OFE.DiscreteE y]
:
OFE.DiscreteE (x • y)
instance
Iris.CMRA.cancelable_op
{α : Type u_1}
[CMRA α]
{x y : α}
[Cancelable x]
[Cancelable y]
:
Cancelable (x • y)
theorem
Iris.CMRA.Cancelable.of_eqv
{α : Type u_1}
[CMRA α]
{x₁ x₂ : α}
(e : OFE.Equiv x₁ x₂)
(h : Cancelable x₁)
:
Cancelable x₂
theorem
Iris.OFE.Equiv.cancelable
{α : Type u_1}
[CMRA α]
{x₁ x₂ : α}
:
Equiv x₁ x₂ → (CMRA.Cancelable x₁ ↔ CMRA.Cancelable x₂)
theorem
Iris.OFE.Equiv.idFree
{α : Type u_1}
[CMRA α]
{x₁ x₂ : α}
:
Equiv x₁ x₂ → (CMRA.IdFree x₁ ↔ CMRA.IdFree x₂)
theorem
Iris.CMRA.pcore_op_left_L
{α : Type u_1}
[CMRA α]
[OFE.Leibniz α]
{x cx : α}
(h : pcore x = some cx)
:
theorem
Iris.CMRA.pcore_op_right_L
{α : Type u_1}
[CMRA α]
[OFE.Leibniz α]
{x cx : α}
(h : pcore x = some cx)
:
theorem
Iris.CMRA.pcore_op_self_L
{α : Type u_1}
[CMRA α]
[OFE.Leibniz α]
{x cx : α}
(h : pcore x = some cx)
:
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]
:
A morphism between CMRAs, written α -C> β, is defined to be a non-expansive function which
preserves validN, pcore and op.
Equations
- Iris.CMRA.«term_-C>_» = Lean.ParserDescr.trailingNode `Iris.CMRA.«term_-C>_» 25 26 (Lean.ParserDescr.binary `andthen (Lean.ParserDescr.symbol " -C> ") (Lean.ParserDescr.cat `term 25))
Instances For
Equations
- Iris.CMRA.Hom.id = { toHom := Iris.OFE.Hom.id, validN := ⋯, pcore := ⋯, op := ⋯ }
Instances For
- map_id {α : Type u_1} {β : Type u_2} [OFE α] [OFE β] (x : F α β) : OFE.Equiv ((map OFE.Hom.id OFE.Hom.id).f x) x
Instances
class
Iris.RFunctorContractive
(F : COFE.OFunctorPre)
extends Iris.RFunctor F :
Type (max (max (u_1 + 1) (u_2 + 1)) u_3)
- map_id {α : Type u_1} {β : Type u_2} [OFE α] [OFE β] (x : F α β) : OFE.Equiv ((map OFE.Hom.id OFE.Hom.id).f x) x
- map_contractive {α₁ α₂ : Type u_1} {β₁ β₂ : Type u_2} [OFE α₁] [OFE α₂] [OFE β₁] [OFE β₂] : OFE.Contractive (Function.uncurry RFunctor.map)
Instances
Equations
- Iris.RFunctor.ap F T = F T T
Instances For
Equations
- One or more equations did not get rendered due to their size.
instance
Iris.RFunctorContractive.toOFunctorContractive
{F : COFE.OFunctorPre}
[RFunctorContractive F]
:
Equations
- Iris.RFunctorContractive.toOFunctorContractive = { toOFunctor := Iris.RFunctor.toOFunctor, map_contractive := ⋯ }
- map_id {α : Type u_1} {β : Type u_2} [OFE α] [OFE β] (x : F α β) : OFE.Equiv ((map OFE.Hom.id OFE.Hom.id).f x) x
Instances
class
Iris.URFunctorContractive
(F : COFE.OFunctorPre)
extends Iris.URFunctor F :
Type (max (max (u_1 + 1) (u_2 + 1)) u_3)
- map_id {α : Type u_1} {β : Type u_2} [OFE α] [OFE β] (x : F α β) : OFE.Equiv ((map OFE.Hom.id OFE.Hom.id).f x) x
- map_contractive {α₁ α₂ : Type u_1} {β₁ β₂ : Type u_2} [OFE α₁] [OFE α₂] [OFE β₁] [OFE β₂] : OFE.Contractive (Function.uncurry URFunctor.map)
Instances
Equations
- One or more equations did not get rendered due to their size.
instance
Iris.URFunctorContractive.toRFunctorContractive
{F : COFE.OFunctorPre}
[URFunctorContractive F]
:
Equations
- Iris.URFunctorContractive.toRFunctorContractive = { toRFunctor := Iris.URFunctor.toRFunctor, map_contractive := ⋯ }
Equations
- Iris.OFunctor.constOF_RFunctorContractive = { toRFunctor := Iris.COFE.OFunctor.constOF_RFunctor, map_contractive := ⋯ }
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
- Iris.ucmraDiscreteFunO β = { toCMRA := Iris.cmraDiscreteFunO β, unit := fun (x : α) => Iris.UCMRA.unit, unit_valid := ⋯, unit_left_id := ⋯, pcore_unit := ⋯ }
instance
Iris.urFunctorDiscreteFunOF
{C : Type u_1}
(F : C → COFE.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 : C → COFE.OFunctorPre)
[HURF : (c : C) → URFunctorContractive (F c)]
:
Equations
- Iris.DiscreteFunOF_URFC F = { toURFunctor := Iris.urFunctorDiscreteFunOF F, map_contractive := ⋯ }
Equations
Instances For
Equations
- Iris.optionOp (some x') (some y') = some (x' • y')
- Iris.optionOp none y = y
- Iris.optionOp x none = x
Instances For
Equations
- Iris.optionValid (some y) = (✓ y)
- Iris.optionValid none = True
Instances For
Equations
- Iris.ucmraOption = { toCMRA := Iris.cmraOption, unit := none, unit_valid := True.intro, unit_left_id := ⋯, pcore_unit := ⋯ }
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.
Equations
- Iris.urFunctorContractiveOptionOF F = { toURFunctor := Iris.urFunctorOptionOF F, map_contractive := ⋯ }
@[reducible, inline]
Equations
- Iris.GenMapOF C F = Iris.DiscreteFunOF fun (x : C) => Iris.OptionOF F