- atom: {α : Type u} → α → LO.Modal.NNFormula α
- natom: {α : Type u} → α → LO.Modal.NNFormula α
- falsum: {α : Type u} → LO.Modal.NNFormula α
- verum: {α : Type u} → LO.Modal.NNFormula α
- or: {α : Type u} → LO.Modal.NNFormula α → LO.Modal.NNFormula α → LO.Modal.NNFormula α
- and: {α : Type u} → LO.Modal.NNFormula α → LO.Modal.NNFormula α → LO.Modal.NNFormula α
- box: {α : Type u} → LO.Modal.NNFormula α → LO.Modal.NNFormula α
- dia: {α : Type u} → LO.Modal.NNFormula α → LO.Modal.NNFormula α
Instances For
Equations
- LO.Modal.instDecidableEqNNFormula = LO.Modal.decEqNNFormula✝
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
- φ.imp ψ = φ.neg.or ψ
Instances For
Equations
- LO.Modal.NNFormula.instBasicModalLogicalConnective = LO.BasicModalLogicalConnective.mk
@[simp]
@[simp]
@[simp]
Equations
- ⋯ = ⋯
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
instance
LO.Modal.NNFormula.instCoeFormula
{α : Type u}
:
Coe (LO.Modal.NNFormula α) (LO.Modal.Formula α)
Equations
- LO.Modal.NNFormula.instCoeFormula = { coe := LO.Modal.NNFormula.toFormula }
def
LO.Modal.NNFormula.cases'
{α : Type u}
{C : LO.Modal.NNFormula α → Sort v}
(hAtom : (a : α) → C (LO.Modal.NNFormula.atom a))
(hNatom : (a : α) → C (LO.Modal.NNFormula.natom a))
(hFalsum : C ⊥)
(hVerum : C ⊤)
(hOr : (φ ψ : LO.Modal.NNFormula α) → C (φ ⋎ ψ))
(hAnd : (φ ψ : LO.Modal.NNFormula α) → C (φ ⋏ ψ))
(hBox : (φ : LO.Modal.NNFormula α) → C (□φ))
(hDia : (φ : LO.Modal.NNFormula α) → C (◇φ))
(φ : LO.Modal.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 : LO.Modal.NNFormula α → Sort v}
(hAtom : (a : α) → C (LO.Modal.NNFormula.atom a))
(hNatom : (a : α) → C (LO.Modal.NNFormula.natom a))
(hFalsum : C ⊥)
(hVerum : C ⊤)
(hOr : (φ ψ : LO.Modal.NNFormula α) → C φ → C ψ → C (φ ⋎ ψ))
(hAnd : (φ ψ : LO.Modal.NNFormula α) → C φ → C ψ → C (φ ⋏ ψ))
(hBox : (φ : LO.Modal.NNFormula α) → C φ → C (□φ))
(hDia : (φ : LO.Modal.NNFormula α) → C φ → C (◇φ))
(φ : LO.Modal.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
instance
LO.Modal.Formula.instCoeNNFormula
{α : Type u}
:
Coe (LO.Modal.Formula α) (LO.Modal.NNFormula α)
Equations
- LO.Modal.Formula.instCoeNNFormula = { coe := LO.Modal.Formula.toNNFormula }