PDL programs form a Kleene Algebra #
This file provides RelProp.kleeneAlgebra
.
It shows that the semantic quotient of PDL Program
s as RelProp
s forms a KleeneAlgebra
.
Equations
- instAddSemigroupRelProp = { toAdd := instAddRelProp, add_assoc := instAddSemigroupRelProp._proof_2 }
Equations
- instAddZeroClassRelProp = { toZero := instZeroRelProp, toAdd := instAddRelProp, zero_add := instAddZeroClassRelProp._proof_3, add_zero := instAddZeroClassRelProp._proof_4 }
Equations
- Program.Repeat 0 x✝ = (?'⊥)
- Program.Repeat n.succ x✝ = (x✝;'Program.Repeat n x✝)
Instances For
Equations
- RelProp.Repeat 0 x✝ = 0
- RelProp.Repeat n.succ x✝ = RelProp.Repeat n x✝ + x✝
Instances For
Equations
- One or more equations did not get rendered due to their size.
Equations
- instMulZeroClassRelProp = { toMul := RelProp.mul, toZero := instZeroRelProp, zero_mul := instMulZeroClassRelProp._proof_7, mul_zero := instMulZeroClassRelProp._proof_8 }
Equations
- instDistribRelProp = { toMul := RelProp.mul, toAdd := instAddRelProp, left_distrib := instDistribRelProp._proof_9, right_distrib := instDistribRelProp._proof_10 }
Equations
- instAddCommMonoidRelProp = { toAddMonoid := RelProp.addMonoid, add_comm := instAddCommMonoidRelProp._proof_11 }
Equations
- instNonUnitalNonAssocSemiringRelProp = { toAddCommMonoid := instAddCommMonoidRelProp, toMul := RelProp.mul, left_distrib := ⋯, right_distrib := ⋯, zero_mul := ⋯, mul_zero := ⋯ }
Equations
- instNonUnitalSemiringRelProp = { toNonUnitalNonAssocSemiring := instNonUnitalNonAssocSemiringRelProp, mul_assoc := instNonUnitalSemiringRelProp._proof_12 }
Equations
- One or more equations did not get rendered due to their size.
Equations
- relImp_strict α β = ((∀ (W : Type) (M : KripkeModel W) (v w : W), relate M α v w → relate M β v w) ∧ ¬∀ (W : Type) (M : KripkeModel W) (v w : W), relate M β v w → relate M α v w)
Instances For
Equations
Instances For
Instances For
Equations
- One or more equations did not get rendered due to their size.
Equations
- RelProp.partialOrder = { toPreorder := RelProp.instPreorder, le_antisymm := RelProp.partialOrder._proof_26 }
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
- One or more equations did not get rendered due to their size.