- atom {α : Type u} : α → NNFormula α
 - natom {α : Type u} : α → NNFormula α
 - falsum {α : Type u} : NNFormula α
 - verum {α : Type u} : NNFormula α
 - or {α : Type u} : NNFormula α → NNFormula α → NNFormula α
 - and {α : Type u} : NNFormula α → NNFormula α → NNFormula α
 - box {α : Type u} : NNFormula α → NNFormula α
 - dia {α : Type u} : NNFormula α → NNFormula α
 
Instances For
instance
LO.Modal.instDecidableEqNNFormula
{α✝ : Type u_1}
[DecidableEq α✝]
 :
DecidableEq (NNFormula α✝)
Equations
- (LO.Modal.NNFormula.atom a).neg = LO.Modal.NNFormula.natom a
 - (LO.Modal.NNFormula.natom a).neg = LO.Modal.NNFormula.atom a
 - LO.Modal.NNFormula.falsum.neg = LO.Modal.NNFormula.verum
 - LO.Modal.NNFormula.verum.neg = LO.Modal.NNFormula.falsum
 - (φ.or ψ).neg = φ.neg.and ψ.neg
 - (φ.and ψ).neg = φ.neg.or ψ.neg
 - φ.box.neg = φ.neg.dia
 - φ.dia.neg = φ.neg.box
 
Instances For
Equations
- (LO.Modal.NNFormula.atom a).toStr = toString "+" ++ toString a ++ toString ""
 - (LO.Modal.NNFormula.natom a).toStr = toString "-" ++ toString a ++ toString ""
 - LO.Modal.NNFormula.falsum.toStr = "⊥"
 - LO.Modal.NNFormula.verum.toStr = "⊤"
 - (φ.or ψ).toStr = toString "(" ++ toString φ.toStr ++ toString " ∨ " ++ toString ψ.toStr ++ toString ")"
 - (φ.and ψ).toStr = toString "(" ++ toString φ.toStr ++ toString " ∧ " ++ toString ψ.toStr ++ toString ")"
 - φ.box.toStr = toString "□" ++ toString φ.toStr ++ toString ""
 - φ.dia.toStr = toString "◇" ++ toString φ.toStr ++ toString ""
 
Instances For
Equations
- LO.Modal.NNFormula.instRepr = { reprPrec := fun (t : LO.Modal.NNFormula α) (x : ℕ) => Std.Format.text t.toStr }
 
Equations
- (LO.Modal.NNFormula.atom a).toFormula = LO.Modal.Formula.atom a
 - (LO.Modal.NNFormula.natom a).toFormula = ∼LO.Modal.Formula.atom a
 - LO.Modal.NNFormula.falsum.toFormula = ⊥
 - LO.Modal.NNFormula.verum.toFormula = ⊤
 - (φ.or ψ).toFormula = φ.toFormula ⋎ ψ.toFormula
 - (φ.and ψ).toFormula = φ.toFormula ⋏ ψ.toFormula
 - φ.box.toFormula = □φ.toFormula
 - φ.dia.toFormula = ◇φ.toFormula
 
Instances For
Equations
@[simp]
@[simp]
theorem
LO.Modal.NNFormula.toFormula_natom
{α : Type u}
(a : α)
 :
(natom a).toFormula = ∼Formula.atom a
def
LO.Modal.NNFormula.cases'
{α : Type u}
{C : NNFormula α → Sort v}
(hAtom : (a : α) → C (atom a))
(hNatom : (a : α) → C (natom a))
(hFalsum : C ⊥)
(hVerum : C ⊤)
(hOr : (φ ψ : NNFormula α) → C (φ ⋎ ψ))
(hAnd : (φ ψ : NNFormula α) → C (φ ⋏ ψ))
(hBox : (φ : NNFormula α) → C (□φ))
(hDia : (φ : NNFormula α) → C (◇φ))
(φ : NNFormula α)
 :
C φ
Equations
- LO.Modal.NNFormula.cases' hAtom hNatom hFalsum hVerum hOr hAnd hBox hDia (LO.Modal.NNFormula.atom a) = hAtom a
 - LO.Modal.NNFormula.cases' hAtom hNatom hFalsum hVerum hOr hAnd hBox hDia (LO.Modal.NNFormula.natom a) = hNatom a
 - LO.Modal.NNFormula.cases' hAtom hNatom hFalsum hVerum hOr hAnd hBox hDia LO.Modal.NNFormula.falsum = hFalsum
 - LO.Modal.NNFormula.cases' hAtom hNatom hFalsum hVerum hOr hAnd hBox hDia LO.Modal.NNFormula.verum = hVerum
 - LO.Modal.NNFormula.cases' hAtom hNatom hFalsum hVerum hOr hAnd hBox hDia (φ.or ψ) = hOr φ ψ
 - LO.Modal.NNFormula.cases' hAtom hNatom hFalsum hVerum hOr hAnd hBox hDia (φ.and ψ) = hAnd φ ψ
 - LO.Modal.NNFormula.cases' hAtom hNatom hFalsum hVerum hOr hAnd hBox hDia φ.box = hBox φ
 - LO.Modal.NNFormula.cases' hAtom hNatom hFalsum hVerum hOr hAnd hBox hDia φ.dia = hDia φ
 
Instances For
def
LO.Modal.NNFormula.rec'
{α : Type u}
{C : NNFormula α → Sort v}
(hAtom : (a : α) → C (atom a))
(hNatom : (a : α) → C (natom a))
(hFalsum : C ⊥)
(hVerum : C ⊤)
(hOr : (φ ψ : NNFormula α) → C φ → C ψ → C (φ ⋎ ψ))
(hAnd : (φ ψ : NNFormula α) → C φ → C ψ → C (φ ⋏ ψ))
(hBox : (φ : NNFormula α) → C φ → C (□φ))
(hDia : (φ : NNFormula α) → C φ → C (◇φ))
(φ : NNFormula α)
 :
C φ
Equations
- One or more equations did not get rendered due to their size.
 - LO.Modal.NNFormula.rec' hAtom hNatom hFalsum hVerum hOr hAnd hBox hDia (LO.Modal.NNFormula.atom a) = hAtom a
 - LO.Modal.NNFormula.rec' hAtom hNatom hFalsum hVerum hOr hAnd hBox hDia (LO.Modal.NNFormula.natom a) = hNatom a
 - LO.Modal.NNFormula.rec' hAtom hNatom hFalsum hVerum hOr hAnd hBox hDia LO.Modal.NNFormula.falsum = hFalsum
 - LO.Modal.NNFormula.rec' hAtom hNatom hFalsum hVerum hOr hAnd hBox hDia LO.Modal.NNFormula.verum = hVerum
 - LO.Modal.NNFormula.rec' hAtom hNatom hFalsum hVerum hOr hAnd hBox hDia φ.box = hBox φ (LO.Modal.NNFormula.rec' hAtom hNatom hFalsum hVerum hOr hAnd hBox hDia φ)
 - LO.Modal.NNFormula.rec' hAtom hNatom hFalsum hVerum hOr hAnd hBox hDia φ.dia = hDia φ (LO.Modal.NNFormula.rec' hAtom hNatom hFalsum hVerum hOr hAnd hBox hDia φ)
 
Instances For
Equations
- LO.Modal.NNFormula.falsum.toNat = Nat.pair 0 0 + 1
 - LO.Modal.NNFormula.verum.toNat = Nat.pair 1 0 + 1
 - (LO.Modal.NNFormula.atom a).toNat = Nat.pair 2 (Encodable.encode a) + 1
 - (LO.Modal.NNFormula.natom a).toNat = Nat.pair 3 (Encodable.encode a) + 1
 - (φ.or ψ).toNat = Nat.pair 4 (Nat.pair φ.toNat ψ.toNat) + 1
 - (φ.and ψ).toNat = Nat.pair 5 (Nat.pair φ.toNat ψ.toNat) + 1
 - φ.box.toNat = Nat.pair 6 φ.toNat + 1
 - φ.dia.toNat = Nat.pair 7 φ.toNat + 1
 
Instances For
@[irreducible]
Equations
- One or more equations did not get rendered due to their size.
 - LO.Modal.NNFormula.ofNat 0 = none
 
Instances For
Equations
- LO.Modal.NNFormula.instEncodable = { encode := LO.Modal.NNFormula.toNat, decode := LO.Modal.NNFormula.ofNat, encodek := ⋯ }
 
Equations
- (LO.Modal.Formula.atom a).toNNFormula = LO.Modal.NNFormula.atom a
 - LO.Modal.Formula.falsum.toNNFormula = LO.Modal.NNFormula.falsum
 - (φ.imp ψ).toNNFormula = φ.toNNFormula.neg ⋎ ψ.toNNFormula
 - φ.box.toNNFormula = □φ.toNNFormula
 
Instances For
Equations
@[simp]
theorem
LO.Modal.Formula.toNNFormula_atom
{α : Type u}
(a : α)
 :
(atom a).toNNFormula = NNFormula.atom a