- atom {α : Type u} : α → Formula α
- verum {α : Type u} : Formula α
- falsum {α : Type u} : Formula α
- neg {α : Type u} : Formula α → Formula α
- and {α : Type u} : Formula α → Formula α → Formula α
- or {α : Type u} : Formula α → Formula α → Formula α
- imp {α : Type u} : Formula α → Formula α → Formula α
Instances For
instance
LO.IntProp.instDecidableEqFormula
{α✝ : Type u_1}
[DecidableEq α✝]
:
DecidableEq (Formula α✝)
Equations
- LO.IntProp.Formula.verum.toStr = "\top"
- LO.IntProp.Formula.falsum.toStr = "\bot"
- (LO.IntProp.Formula.atom a).toStr = "{" ++ toString a ++ "}"
- φ.neg.toStr = "\lnot " ++ φ.toStr
- (φ.and ψ).toStr = "\left(" ++ φ.toStr ++ " \land " ++ ψ.toStr ++ "\right)"
- (φ.or ψ).toStr = "\left(" ++ φ.toStr ++ " \lor " ++ ψ.toStr ++ "\right)"
- (φ.imp ψ).toStr = "\left(" ++ φ.toStr ++ " \rightarrow " ++ ψ.toStr ++ "\right)"
Instances For
Equations
- LO.IntProp.Formula.instRepr = { reprPrec := fun (t : LO.IntProp.Formula α) (x : ℕ) => Std.Format.text t.toStr }
Equations
- LO.IntProp.Formula.instToString = { toString := LO.IntProp.Formula.toStr }
Equations
- (LO.IntProp.Formula.atom a).complexity = 0
- LO.IntProp.Formula.verum.complexity = 0
- LO.IntProp.Formula.falsum.complexity = 0
- φ.neg.complexity = φ.complexity + 1
- (φ.imp ψ).complexity = φ.complexity ⊔ ψ.complexity + 1
- (φ.and ψ).complexity = φ.complexity ⊔ ψ.complexity + 1
- (φ.or ψ).complexity = φ.complexity ⊔ ψ.complexity + 1
Instances For
@[simp]
def
LO.IntProp.Formula.cases'
{α : Type u_1}
{C : Formula α → Sort w}
(hfalsum : C ⊥)
(hverum : C ⊤)
(hatom : (a : α) → C (atom a))
(hneg : (φ : Formula α) → C (∼φ))
(himp : (φ ψ : Formula α) → C (φ ➝ ψ))
(hand : (φ ψ : Formula α) → C (φ ⋏ ψ))
(hor : (φ ψ : Formula α) → C (φ ⋎ ψ))
(φ : Formula α)
:
C φ
Equations
- LO.IntProp.Formula.cases' hfalsum hverum hatom hneg himp hand hor LO.IntProp.Formula.falsum = hfalsum
- LO.IntProp.Formula.cases' hfalsum hverum hatom hneg himp hand hor LO.IntProp.Formula.verum = hverum
- LO.IntProp.Formula.cases' hfalsum hverum hatom hneg himp hand hor (LO.IntProp.Formula.atom a) = hatom a
- LO.IntProp.Formula.cases' hfalsum hverum hatom hneg himp hand hor φ.neg = hneg φ
- LO.IntProp.Formula.cases' hfalsum hverum hatom hneg himp hand hor (φ.imp ψ) = himp φ ψ
- LO.IntProp.Formula.cases' hfalsum hverum hatom hneg himp hand hor (φ.and ψ) = hand φ ψ
- LO.IntProp.Formula.cases' hfalsum hverum hatom hneg himp hand hor (φ.or ψ) = hor φ ψ
Instances For
def
LO.IntProp.Formula.rec'
{α : Type u_1}
{C : Formula α → Sort w}
(hfalsum : C ⊥)
(hverum : C ⊤)
(hatom : (a : α) → C (atom a))
(hneg : (φ : Formula α) → C φ → C (∼φ))
(himp : (φ ψ : Formula α) → C φ → C ψ → C (φ ➝ ψ))
(hand : (φ ψ : Formula α) → C φ → C ψ → C (φ ⋏ ψ))
(hor : (φ ψ : Formula α) → C φ → C ψ → C (φ ⋎ ψ))
(φ : Formula α)
:
C φ
Equations
- One or more equations did not get rendered due to their size.
- LO.IntProp.Formula.rec' hfalsum hverum hatom hneg himp hand hor LO.IntProp.Formula.falsum = hfalsum
- LO.IntProp.Formula.rec' hfalsum hverum hatom hneg himp hand hor LO.IntProp.Formula.verum = hverum
- LO.IntProp.Formula.rec' hfalsum hverum hatom hneg himp hand hor (LO.IntProp.Formula.atom a) = hatom a
- LO.IntProp.Formula.rec' hfalsum hverum hatom hneg himp hand hor φ.neg = hneg φ (LO.IntProp.Formula.rec' hfalsum hverum hatom hneg himp hand hor φ)
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- (LO.IntProp.Formula.atom a).toNat = Nat.pair 0 (Encodable.encode a) + 1
- LO.IntProp.Formula.verum.toNat = Nat.pair 1 0 + 1
- LO.IntProp.Formula.falsum.toNat = Nat.pair 2 0 + 1
- φ.neg.toNat = Nat.pair 3 φ.toNat + 1
- (φ.imp ψ).toNat = Nat.pair 4 (Nat.pair φ.toNat ψ.toNat) + 1
- (φ.and ψ).toNat = Nat.pair 5 (Nat.pair φ.toNat ψ.toNat) + 1
- (φ.or ψ).toNat = Nat.pair 6 (Nat.pair φ.toNat ψ.toNat) + 1
Instances For
@[irreducible]
Equations
- One or more equations did not get rendered due to their size.
- LO.IntProp.Formula.ofNat 0 = none
Instances For
Equations
- LO.IntProp.Formula.instEncodable = { encode := LO.IntProp.Formula.toNat, decode := LO.IntProp.Formula.ofNat, encodek := ⋯ }
Equations
- LO.IntProp.Formula.subst s (LO.IntProp.Formula.atom a) = s a
- LO.IntProp.Formula.subst s LO.IntProp.Formula.verum = ⊤
- LO.IntProp.Formula.subst s LO.IntProp.Formula.falsum = ⊥
- LO.IntProp.Formula.subst s φ.neg = ∼LO.IntProp.Formula.subst s φ
- LO.IntProp.Formula.subst s (φ.imp ψ) = LO.IntProp.Formula.subst s φ ➝ LO.IntProp.Formula.subst s ψ
- LO.IntProp.Formula.subst s (φ.and ψ) = LO.IntProp.Formula.subst s φ ⋏ LO.IntProp.Formula.subst s ψ
- LO.IntProp.Formula.subst s (φ.or ψ) = LO.IntProp.Formula.subst s φ ⋎ LO.IntProp.Formula.subst s ψ
Instances For
@[reducible, inline]
Equations
Instances For
@[reducible, inline]