Documentation

Iris.Std.BigOp

def Iris.Std.bigOp {PROP : Type u_1} (f : PROPPROPPROP) (unit : PROP) :
List PROPPROP

Fold a binary operator f over a list of PROPs. If the list is empty, unit is returned.

Equations
Instances For
    class Iris.Std.LawfulBigOp {PROP : Sort u_1} (f : PROPPROPPROP) (unit : outParam PROP) (eq : outParam (PROPPROPProp)) :
    • refl {a : PROP} : eq a a
    • symm {a b : PROP} : eq a beq b a
    • trans {a b c : PROP} : eq a beq b ceq a c
    • comm {a b : PROP} : eq (f a b) (f b a)
    • assoc {a b c : PROP} : eq (f (f a b) c) (f a (f b c))
    • left_id {a : PROP} : eq (f unit a) a
    • congr_l {a a' b : PROP} : eq a a'eq (f a b) (f a' b)
    Instances
      theorem Iris.Std.LawfulBigOp.right_id {PROP : Sort u_1} {f : PROPPROPPROP} {unit : PROP} {eq : PROPPROPProp} {a : PROP} [LawfulBigOp f unit eq] :
      eq (f a unit) a
      theorem Iris.Std.LawfulBigOp.congr_r {PROP : Sort u_1} {f : PROPPROPPROP} {unit : PROP} {eq : PROPPROPProp} {b b' a : PROP} [LawfulBigOp f unit eq] (h : eq b b') :
      eq (f a b) (f a b')
      theorem Iris.Std.bigOp_nil {PROP : Type u_1} {f : PROPPROPPROP} {unit : PROP} :
      bigOp f unit [] = unit
      theorem Iris.Std.bigOp_cons {PROP : Type u_1} {eq : PROPPROPProp} {P : PROP} {Ps : List PROP} {f : PROPPROPPROP} {unit : PROP} [LawfulBigOp f unit eq] :
      eq (bigOp f unit (P :: Ps)) (f P (bigOp f unit Ps))