Formulas of first-order logic #
This file defines the formulas of first-order logic.
φ : Semiformula L ξ n
is a (semi-)formula of language L
with bounded variables of Fin n
and free variables of ξ
.
The quantification is represented by de Bruijn index.
- verum {L : Language} {ξ : Type u_1} {n : ℕ} : Semiformula L ξ n
- falsum {L : Language} {ξ : Type u_1} {n : ℕ} : Semiformula L ξ n
- rel {L : Language} {ξ : Type u_1} {n arity : ℕ} : L.Rel arity → (Fin arity → Semiterm L ξ n) → Semiformula L ξ n
- nrel {L : Language} {ξ : Type u_1} {n arity : ℕ} : L.Rel arity → (Fin arity → Semiterm L ξ n) → Semiformula L ξ n
- and {L : Language} {ξ : Type u_1} {n : ℕ} : Semiformula L ξ n → Semiformula L ξ n → Semiformula L ξ n
- or {L : Language} {ξ : Type u_1} {n : ℕ} : Semiformula L ξ n → Semiformula L ξ n → Semiformula L ξ n
- all {L : Language} {ξ : Type u_1} {n : ℕ} : Semiformula L ξ (n + 1) → Semiformula L ξ n
- ex {L : Language} {ξ : Type u_1} {n : ℕ} : Semiformula L ξ (n + 1) → Semiformula L ξ n
Instances For
- LO.FirstOrder.Arith.instReprSemiformulaORing_arithmetization
- LO.FirstOrder.Arith.instToStringSemiformulaORing_arithmetization
- LO.FirstOrder.Semiformula.Operator.instCoeConst
- LO.FirstOrder.Semiformula.encodable
- LO.FirstOrder.Semiformula.instCoeORing
- LO.FirstOrder.Semiformula.instDeMorgan
- LO.FirstOrder.Semiformula.instInjMapRewriting
- LO.FirstOrder.Semiformula.instLogicalConnective
- LO.FirstOrder.Semiformula.instQuantifier
- LO.FirstOrder.Semiformula.instReflectiveRewriting
- LO.FirstOrder.Semiformula.instRepr
- LO.FirstOrder.Semiformula.instRewriting
- LO.FirstOrder.Semiformula.instToString
- LO.FirstOrder.Semiformula.instTransitiveRewriting
@[reducible, inline]
Equations
- LO.FirstOrder.Formula L ξ = LO.FirstOrder.Semiformula L ξ 0
@[reducible, inline]
Equations
@[reducible, inline]
Equations
Instances For
- LO.FirstOrder.Arith.HierarchySymbol.Semiformula.instCoeSemisentenceDeltaOneSemisentenceORing
- LO.FirstOrder.Arith.HierarchySymbol.Semiformula.instCoeSemisentenceDeltaZeroSemisentenceORing
- LO.FirstOrder.Arith.HierarchySymbol.Semiformula.instCoeSemisentencePiOneSemisentenceORing
- LO.FirstOrder.Arith.HierarchySymbol.Semiformula.instCoeSemisentencePiZeroSemisentenceORing
- LO.FirstOrder.Arith.HierarchySymbol.Semiformula.instCoeSemisentenceSigmaOneSemisentenceORing
- LO.FirstOrder.Arith.HierarchySymbol.Semiformula.instCoeSemisentenceSigmaZeroSemisentenceORing
- LO.FirstOrder.Semiformula.instCoeSemisentenceSyntacticSemiformula
@[reducible, inline]
Equations
@[reducible, inline]
Equations
Instances For
- LO.FirstOrder.Derivation.instAxiomatizedSyntacticFormulaTheory
- LO.FirstOrder.Derivation.instCutSyntacticFormulaTheory
- LO.FirstOrder.Derivation.instTaitSyntacticFormulaTheory
- LO.FirstOrder.Semiformula.goedelQuoteSyntacticFormulaToCodedFormula
- LO.FirstOrder.instCollectionSyntacticFormulaTheory
- LO.FirstOrder.instOneSidedSyntacticFormulaTheory
- LO.FirstOrder.instSemanticsSyntacticFormulaStruc
def
LO.FirstOrder.Semiformula.neg
{L : Language}
{ξ : Type u_1}
{n : ℕ}
:
Semiformula L ξ n → Semiformula L ξ n
Equations
- LO.FirstOrder.Semiformula.verum.neg = LO.FirstOrder.Semiformula.falsum
- LO.FirstOrder.Semiformula.falsum.neg = LO.FirstOrder.Semiformula.verum
- (LO.FirstOrder.Semiformula.rel r v).neg = LO.FirstOrder.Semiformula.nrel r v
- (LO.FirstOrder.Semiformula.nrel r v).neg = LO.FirstOrder.Semiformula.rel r v
- (φ.and ψ).neg = φ.neg.or ψ.neg
- (φ.or ψ).neg = φ.neg.and ψ.neg
- φ.all.neg = φ.neg.ex
- φ.ex.neg = φ.neg.all
theorem
LO.FirstOrder.Semiformula.neg_neg
{L : Language}
{ξ : Type u_1}
{n : ℕ}
(φ : Semiformula L ξ n)
:
φ.neg.neg = φ
instance
LO.FirstOrder.Semiformula.instLogicalConnective
{L : Language}
{ξ : Type u_1}
{n : ℕ}
:
LogicalConnective (Semiformula L ξ n)
instance
LO.FirstOrder.Semiformula.instDeMorgan
{L : Language}
{ξ : Type u_1}
{n : ℕ}
:
DeMorgan (Semiformula L ξ n)
instance
LO.FirstOrder.Semiformula.instQuantifier
{L : Language}
{ξ : Type u_1}
:
Quantifier (Semiformula L ξ)
def
LO.FirstOrder.Semiformula.toStr
{L : Language}
{ξ : Type u_1}
[(k : ℕ) → ToString (L.Func k)]
[(k : ℕ) → ToString (L.Rel k)]
[ToString ξ]
{n : ℕ}
:
Semiformula L ξ n → String
Equations
- LO.FirstOrder.Semiformula.verum.toStr = "\top"
- LO.FirstOrder.Semiformula.falsum.toStr = "\bot"
- (LO.FirstOrder.Semiformula.rel r a).toStr = "{" ++ toString r ++ "}"
- (LO.FirstOrder.Semiformula.rel r v).toStr = ("{" ++ toString r ++ "} \left(" ++ String.vecToStr fun (i : Fin (n_1 + 1)) => toString (v i)) ++ "\right)"
- (LO.FirstOrder.Semiformula.nrel r a).toStr = "\lnot {" ++ toString r ++ "}"
- (LO.FirstOrder.Semiformula.nrel r v).toStr = ("\lnot {" ++ toString r ++ "} \left(" ++ String.vecToStr fun (i : Fin (n_1 + 1)) => toString (v i)) ++ "\right)"
- (φ.and ψ).toStr = "\left(" ++ φ.toStr ++ " \land " ++ ψ.toStr ++ "\right)"
- (φ.or ψ).toStr = "\left(" ++ φ.toStr ++ " \lor " ++ ψ.toStr ++ "\right)"
- φ.all.toStr = "(\forall x_{" ++ toString n ++ "}) " ++ φ.toStr
- φ.ex.toStr = "(\exists x_{" ++ toString n ++ "}) " ++ φ.toStr
instance
LO.FirstOrder.Semiformula.instRepr
{L : Language}
{ξ : Type u_1}
{n : ℕ}
[(k : ℕ) → ToString (L.Func k)]
[(k : ℕ) → ToString (L.Rel k)]
[ToString ξ]
:
Repr (Semiformula L ξ n)
Equations
- LO.FirstOrder.Semiformula.instRepr = { reprPrec := fun (t : LO.FirstOrder.Semiformula L ξ n) (x : ℕ) => Std.Format.text t.toStr }
instance
LO.FirstOrder.Semiformula.instToString
{L : Language}
{ξ : Type u_1}
{n : ℕ}
[(k : ℕ) → ToString (L.Func k)]
[(k : ℕ) → ToString (L.Rel k)]
[ToString ξ]
:
ToString (Semiformula L ξ n)
Equations
- LO.FirstOrder.Semiformula.instToString = { toString := LO.FirstOrder.Semiformula.toStr }
@[simp]
theorem
LO.FirstOrder.Semiformula.neg_neg'
{L : Language}
{ξ : Type u_1}
{n : ℕ}
(φ : Semiformula L ξ n)
:
theorem
LO.FirstOrder.Semiformula.neg_eq
{L : Language}
{ξ : Type u_1}
{n : ℕ}
(φ : Semiformula L ξ n)
:
theorem
LO.FirstOrder.Semiformula.imp_eq
{L : Language}
{ξ : Type u_1}
{n : ℕ}
(φ ψ : Semiformula L ξ n)
:
@[reducible, inline]
abbrev
LO.FirstOrder.Semiformula.rel!
{ξ : Type u_1}
{n : ℕ}
(L : Language)
(k : ℕ)
(r : L.Rel k)
(v : Fin k → Semiterm L ξ n)
:
Semiformula L ξ n
Equations
@[reducible, inline]
abbrev
LO.FirstOrder.Semiformula.nrel!
{ξ : Type u_1}
{n : ℕ}
(L : Language)
(k : ℕ)
(r : L.Rel k)
(v : Fin k → Semiterm L ξ n)
:
Semiformula L ξ n
Equations
def
LO.FirstOrder.Semiformula.complexity
{L : Language}
{ξ : Type u_1}
{n : ℕ}
:
Semiformula L ξ n → ℕ
Equations
- LO.FirstOrder.Semiformula.verum.complexity = 0
- LO.FirstOrder.Semiformula.falsum.complexity = 0
- (LO.FirstOrder.Semiformula.rel r v).complexity = 0
- (LO.FirstOrder.Semiformula.nrel r v).complexity = 0
- (φ.and ψ).complexity = φ.complexity ⊔ ψ.complexity + 1
- (φ.or ψ).complexity = φ.complexity ⊔ ψ.complexity + 1
- φ.all.complexity = φ.complexity + 1
- φ.ex.complexity = φ.complexity + 1
@[simp]
theorem
LO.FirstOrder.Semiformula.complexity_and
{L : Language}
{ξ : Type u_1}
{n : ℕ}
(φ ψ : Semiformula L ξ n)
:
@[simp]
theorem
LO.FirstOrder.Semiformula.complexity_and'
{L : Language}
{ξ : Type u_1}
{n : ℕ}
(φ ψ : Semiformula L ξ n)
:
@[simp]
theorem
LO.FirstOrder.Semiformula.complexity_or
{L : Language}
{ξ : Type u_1}
{n : ℕ}
(φ ψ : Semiformula L ξ n)
:
@[simp]
theorem
LO.FirstOrder.Semiformula.complexity_or'
{L : Language}
{ξ : Type u_1}
{n : ℕ}
(φ ψ : Semiformula L ξ n)
:
@[simp]
theorem
LO.FirstOrder.Semiformula.complexity_all
{L : Language}
{ξ : Type u_1}
{n : ℕ}
(φ : Semiformula L ξ (n + 1))
:
@[simp]
theorem
LO.FirstOrder.Semiformula.complexity_all'
{L : Language}
{ξ : Type u_1}
{n : ℕ}
(φ : Semiformula L ξ (n + 1))
:
@[simp]
theorem
LO.FirstOrder.Semiformula.complexity_ex
{L : Language}
{ξ : Type u_1}
{n : ℕ}
(φ : Semiformula L ξ (n + 1))
:
@[simp]
theorem
LO.FirstOrder.Semiformula.complexity_ex'
{L : Language}
{ξ : Type u_1}
{n : ℕ}
(φ : Semiformula L ξ (n + 1))
:
def
LO.FirstOrder.Semiformula.cases'
{L : Language}
{ξ : Type u_1}
{C : (n : ℕ) → Semiformula L ξ n → Sort w}
(hverum : {n : ℕ} → C n ⊤)
(hfalsum : {n : ℕ} → C n ⊥)
(hrel : {n k : ℕ} → (r : L.Rel k) → (v : Fin k → Semiterm L ξ n) → C n (rel r v))
(hnrel : {n k : ℕ} → (r : L.Rel k) → (v : Fin k → Semiterm L ξ n) → C n (nrel r v))
(hand : {n : ℕ} → (φ ψ : Semiformula L ξ n) → C n (φ ⋏ ψ))
(hor : {n : ℕ} → (φ ψ : Semiformula L ξ n) → C n (φ ⋎ ψ))
(hall : {n : ℕ} → (φ : Semiformula L ξ (n + 1)) → C n (∀' φ))
(hex : {n : ℕ} → (φ : Semiformula L ξ (n + 1)) → C n (∃' φ))
{n : ℕ}
(φ : Semiformula L ξ n)
:
C n φ
Equations
- LO.FirstOrder.Semiformula.cases' hverum hfalsum hrel hnrel hand hor hall hex LO.FirstOrder.Semiformula.verum = hverum
- LO.FirstOrder.Semiformula.cases' hverum hfalsum hrel hnrel hand hor hall hex LO.FirstOrder.Semiformula.falsum = hfalsum
- LO.FirstOrder.Semiformula.cases' hverum hfalsum hrel hnrel hand hor hall hex (LO.FirstOrder.Semiformula.rel r v) = hrel r v
- LO.FirstOrder.Semiformula.cases' hverum hfalsum hrel hnrel hand hor hall hex (LO.FirstOrder.Semiformula.nrel r v) = hnrel r v
- LO.FirstOrder.Semiformula.cases' hverum hfalsum hrel hnrel hand hor hall hex (φ.and ψ) = hand φ ψ
- LO.FirstOrder.Semiformula.cases' hverum hfalsum hrel hnrel hand hor hall hex (φ.or ψ) = hor φ ψ
- LO.FirstOrder.Semiformula.cases' hverum hfalsum hrel hnrel hand hor hall hex φ.all = hall φ
- LO.FirstOrder.Semiformula.cases' hverum hfalsum hrel hnrel hand hor hall hex φ.ex = hex φ
def
LO.FirstOrder.Semiformula.rec'
{L : Language}
{ξ : Type u_1}
{C : (n : ℕ) → Semiformula L ξ n → Sort w}
(hverum : {n : ℕ} → C n ⊤)
(hfalsum : {n : ℕ} → C n ⊥)
(hrel : {n k : ℕ} → (r : L.Rel k) → (v : Fin k → Semiterm L ξ n) → C n (rel r v))
(hnrel : {n k : ℕ} → (r : L.Rel k) → (v : Fin k → Semiterm L ξ n) → C n (nrel r v))
(hand : {n : ℕ} → (φ ψ : Semiformula L ξ n) → C n φ → C n ψ → C n (φ ⋏ ψ))
(hor : {n : ℕ} → (φ ψ : Semiformula L ξ n) → C n φ → C n ψ → C n (φ ⋎ ψ))
(hall : {n : ℕ} → (φ : Semiformula L ξ (n + 1)) → C (n + 1) φ → C n (∀' φ))
(hex : {n : ℕ} → (φ : Semiformula L ξ (n + 1)) → C (n + 1) φ → C n (∃' φ))
{n : ℕ}
(φ : Semiformula L ξ n)
:
C n φ
Equations
- One or more equations did not get rendered due to their size.
- LO.FirstOrder.Semiformula.rec' hverum hfalsum hrel hnrel hand hor hall hex LO.FirstOrder.Semiformula.verum = hverum
- LO.FirstOrder.Semiformula.rec' hverum hfalsum hrel hnrel hand hor hall hex LO.FirstOrder.Semiformula.falsum = hfalsum
- LO.FirstOrder.Semiformula.rec' hverum hfalsum hrel hnrel hand hor hall hex (LO.FirstOrder.Semiformula.rel r v) = hrel r v
- LO.FirstOrder.Semiformula.rec' hverum hfalsum hrel hnrel hand hor hall hex (LO.FirstOrder.Semiformula.nrel r v) = hnrel r v
@[simp]
theorem
LO.FirstOrder.Semiformula.complexity_neg
{L : Language}
{ξ : Type u_1}
{n : ℕ}
(φ : Semiformula L ξ n)
:
def
LO.FirstOrder.Semiformula.hasDecEq
{L : Language}
{ξ : Type u_1}
[(k : ℕ) → DecidableEq (L.Func k)]
[(k : ℕ) → DecidableEq (L.Rel k)]
[DecidableEq ξ]
{n : ℕ}
(φ ψ : Semiformula L ξ n)
:
instance
LO.FirstOrder.Semiformula.instDecidableEq
{L : Language}
{ξ : Type u_1}
{n : ℕ}
[(k : ℕ) → DecidableEq (L.Func k)]
[(k : ℕ) → DecidableEq (L.Rel k)]
[DecidableEq ξ]
:
DecidableEq (Semiformula L ξ n)
Quantifier Rank
Equations
- LO.FirstOrder.Semiformula.verum.qr = 0
- LO.FirstOrder.Semiformula.falsum.qr = 0
- (LO.FirstOrder.Semiformula.rel r v).qr = 0
- (LO.FirstOrder.Semiformula.nrel r v).qr = 0
- (φ.and ψ).qr = φ.qr ⊔ ψ.qr
- (φ.or ψ).qr = φ.qr ⊔ ψ.qr
- φ.all.qr = φ.qr + 1
- φ.ex.qr = φ.qr + 1
@[simp]
theorem
LO.FirstOrder.Semiformula.qr_and
{L : Language}
{ξ : Type u_1}
{n : ℕ}
(φ ψ : Semiformula L ξ n)
:
@[simp]
theorem
LO.FirstOrder.Semiformula.qr_or
{L : Language}
{ξ : Type u_1}
{n : ℕ}
(φ ψ : Semiformula L ξ n)
:
@[simp]
theorem
LO.FirstOrder.Semiformula.qr_all
{L : Language}
{ξ : Type u_1}
{n : ℕ}
(φ : Semiformula L ξ (n + 1))
:
@[simp]
theorem
LO.FirstOrder.Semiformula.qr_ex
{L : Language}
{ξ : Type u_1}
{n : ℕ}
(φ : Semiformula L ξ (n + 1))
:
@[simp]
theorem
LO.FirstOrder.Semiformula.qr_neg
{L : Language}
{ξ : Type u_1}
{n : ℕ}
(φ : Semiformula L ξ n)
:
@[simp]
theorem
LO.FirstOrder.Semiformula.qr_imply
{L : Language}
{ξ : Type u_1}
{n : ℕ}
(φ ψ : Semiformula L ξ n)
:
@[simp]
theorem
LO.FirstOrder.Semiformula.qr_iff
{L : Language}
{ξ : Type u_1}
{n : ℕ}
(φ ψ : Semiformula L ξ n)
:
Open (Semi-)Formula
@[simp]
theorem
LO.FirstOrder.Semiformula.open_and
{L : Language}
{ξ : Type u_1}
{n : ℕ}
{φ ψ : Semiformula L ξ n}
:
@[simp]
theorem
LO.FirstOrder.Semiformula.open_or
{L : Language}
{ξ : Type u_1}
{n : ℕ}
{φ ψ : Semiformula L ξ n}
:
@[simp]
theorem
LO.FirstOrder.Semiformula.not_open_all
{L : Language}
{ξ : Type u_1}
{n : ℕ}
{φ : Semiformula L ξ (n + 1)}
:
@[simp]
theorem
LO.FirstOrder.Semiformula.not_open_ex
{L : Language}
{ξ : Type u_1}
{n : ℕ}
{φ : Semiformula L ξ (n + 1)}
:
@[simp]
theorem
LO.FirstOrder.Semiformula.open_neg
{L : Language}
{ξ : Type u_1}
{n : ℕ}
{φ : Semiformula L ξ n}
:
@[simp]
theorem
LO.FirstOrder.Semiformula.open_imply
{L : Language}
{ξ : Type u_1}
{n : ℕ}
{φ ψ : Semiformula L ξ n}
:
@[simp]
theorem
LO.FirstOrder.Semiformula.open_iff
{L : Language}
{ξ : Type u_1}
{n : ℕ}
{φ ψ : Semiformula L ξ n}
:
Free Variables
def
LO.FirstOrder.Semiformula.freeVariables
{L : Language}
{ξ : Type u_1}
[DecidableEq ξ]
{n : ℕ}
:
Semiformula L ξ n → Finset ξ
Equations
- (LO.FirstOrder.Semiformula.rel a v).freeVariables = Finset.univ.biUnion fun (i : Fin arity) => (v i).freeVariables
- (LO.FirstOrder.Semiformula.nrel a v).freeVariables = Finset.univ.biUnion fun (i : Fin arity) => (v i).freeVariables
- LO.FirstOrder.Semiformula.verum.freeVariables = ∅
- LO.FirstOrder.Semiformula.falsum.freeVariables = ∅
- (φ.and ψ).freeVariables = φ.freeVariables ∪ ψ.freeVariables
- (φ.or ψ).freeVariables = φ.freeVariables ∪ ψ.freeVariables
- φ.all.freeVariables = φ.freeVariables
- φ.ex.freeVariables = φ.freeVariables
theorem
LO.FirstOrder.Semiformula.freeVariables_rel
{L : Language}
{ξ : Type u_1}
{n : ℕ}
[DecidableEq ξ]
{k : ℕ}
(r : L.Rel k)
(v : Fin k → Semiterm L ξ n)
:
(rel r v).freeVariables = Finset.univ.biUnion fun (i : Fin k) => (v i).freeVariables
theorem
LO.FirstOrder.Semiformula.freeVariables_nrel
{L : Language}
{ξ : Type u_1}
{n : ℕ}
[DecidableEq ξ]
{k : ℕ}
(r : L.Rel k)
(v : Fin k → Semiterm L ξ n)
:
(nrel r v).freeVariables = Finset.univ.biUnion fun (i : Fin k) => (v i).freeVariables
@[simp]
theorem
LO.FirstOrder.Semiformula.freeVariables_verum
{L : Language}
{ξ : Type u_1}
{n : ℕ}
[DecidableEq ξ]
:
@[simp]
theorem
LO.FirstOrder.Semiformula.freeVariables_falsum
{L : Language}
{ξ : Type u_1}
{n : ℕ}
[DecidableEq ξ]
:
@[simp]
theorem
LO.FirstOrder.Semiformula.freeVariables_and
{L : Language}
{ξ : Type u_1}
{n : ℕ}
[DecidableEq ξ]
(φ ψ : Semiformula L ξ n)
:
@[simp]
theorem
LO.FirstOrder.Semiformula.freeVariables_or
{L : Language}
{ξ : Type u_1}
{n : ℕ}
[DecidableEq ξ]
(φ ψ : Semiformula L ξ n)
:
@[simp]
theorem
LO.FirstOrder.Semiformula.freeVariables_all
{L : Language}
{ξ : Type u_1}
{n : ℕ}
[DecidableEq ξ]
(φ : Semiformula L ξ (n + 1))
:
@[simp]
theorem
LO.FirstOrder.Semiformula.freeVariables_ex
{L : Language}
{ξ : Type u_1}
{n : ℕ}
[DecidableEq ξ]
(φ : Semiformula L ξ (n + 1))
:
@[simp]
theorem
LO.FirstOrder.Semiformula.freeVariables_not
{L : Language}
{ξ : Type u_1}
{n : ℕ}
[DecidableEq ξ]
(φ : Semiformula L ξ n)
:
@[simp]
theorem
LO.FirstOrder.Semiformula.freeVariables_imp
{L : Language}
{ξ : Type u_1}
{n : ℕ}
[DecidableEq ξ]
(φ ψ : Semiformula L ξ n)
:
@[simp]
theorem
LO.FirstOrder.Semiformula.freeVariables_univClosure
{L : Language}
{ξ : Type u_1}
{n : ℕ}
[DecidableEq ξ]
(φ : Semiformula L ξ n)
:
@[simp]
theorem
LO.FirstOrder.Semiformula.freeVariables_sentence
{L : Language}
{n : ℕ}
{ο : Type u_5}
[IsEmpty ο]
(φ : Semiformula L ο n)
:
@[reducible, inline]
abbrev
LO.FirstOrder.Semiformula.FVar?
{L : Language}
{ξ : Type u_1}
{n : ℕ}
[DecidableEq ξ]
(φ : Semiformula L ξ n)
(x : ξ)
:
@[simp]
theorem
LO.FirstOrder.Semiformula.fvar?_top
{L : Language}
{ξ : Type u_1}
{n : ℕ}
[DecidableEq ξ]
(x : ξ)
:
@[simp]
theorem
LO.FirstOrder.Semiformula.fvar?_falsum
{L : Language}
{ξ : Type u_1}
{n : ℕ}
[DecidableEq ξ]
(x : ξ)
:
@[simp]
theorem
LO.FirstOrder.Semiformula.fvar?_and
{L : Language}
{ξ : Type u_1}
{n : ℕ}
[DecidableEq ξ]
(x : ξ)
(φ ψ : Semiformula L ξ n)
:
@[simp]
theorem
LO.FirstOrder.Semiformula.fvar?_or
{L : Language}
{ξ : Type u_1}
{n : ℕ}
[DecidableEq ξ]
(x : ξ)
(φ ψ : Semiformula L ξ n)
:
@[simp]
theorem
LO.FirstOrder.Semiformula.fvar?_all
{L : Language}
{ξ : Type u_1}
{n : ℕ}
[DecidableEq ξ]
(x : ξ)
(φ : Semiformula L ξ (n + 1))
:
@[simp]
theorem
LO.FirstOrder.Semiformula.fvar?_ex
{L : Language}
{ξ : Type u_1}
{n : ℕ}
[DecidableEq ξ]
(x : ξ)
(φ : Semiformula L ξ (n + 1))
:
@[simp]
theorem
LO.FirstOrder.Semiformula.fvar?_univClosure
{L : Language}
{ξ : Type u_1}
{n : ℕ}
[DecidableEq ξ]
(x : ξ)
(φ : Semiformula L ξ n)
:
Equations
theorem
LO.FirstOrder.Semiformula.lt_fvSup_of_fvar?
{L : Language}
{n m : ℕ}
{φ : SyntacticSemiformula L n}
:
theorem
LO.FirstOrder.Semiformula.not_fvar?_of_lt_fvSup
{L : Language}
{n m : ℕ}
(φ : SyntacticSemiformula L n)
(h : fvSup φ ≤ m)
:
@[simp]
theorem
LO.FirstOrder.Semiformula.not_fvar?_fvSup
{L : Language}
{n : ℕ}
(φ : SyntacticSemiformula L n)
:
theorem
LO.FirstOrder.Semiformula.List.maximam?_some_of_not_nil
{α : Type u_5}
[LinearOrder α]
{l : List α}
(h : l ≠ [])
:
theorem
LO.FirstOrder.Semiformula.List.maximam?_eq_some
{α : Type u_5}
[LinearOrder α]
{l : List α}
{a : α}
(h : l.max? = some a)
(x : α)
:
theorem
LO.FirstOrder.Semiformula.ne_of_ne_complexity
{L : Language}
{ξ : Type u_1}
{n : ℕ}
{φ ψ : Semiformula L ξ n}
(h : φ.complexity ≠ ψ.complexity)
:
φ ≠ ψ
@[simp]
theorem
LO.FirstOrder.Semiformula.ne_or_left
{L : Language}
{ξ : Type u_1}
{n : ℕ}
(φ ψ : Semiformula L ξ n)
:
@[simp]
theorem
LO.FirstOrder.Semiformula.ne_or_right
{L : Language}
{ξ : Type u_1}
{n : ℕ}
(φ ψ : Semiformula L ξ n)
:
def
LO.FirstOrder.Semiformula.lMapAux
{L₁ : Language}
{L₂ : Language}
{ξ : Type u_5}
(Φ : L₁.Hom L₂)
{n : ℕ}
:
Semiformula L₁ ξ n → Semiformula L₂ ξ n
Equations
- LO.FirstOrder.Semiformula.lMapAux Φ LO.FirstOrder.Semiformula.verum = ⊤
- LO.FirstOrder.Semiformula.lMapAux Φ LO.FirstOrder.Semiformula.falsum = ⊥
- LO.FirstOrder.Semiformula.lMapAux Φ (LO.FirstOrder.Semiformula.rel r v) = LO.FirstOrder.Semiformula.rel (Φ.rel r) (LO.FirstOrder.Semiterm.lMap Φ ∘ v)
- LO.FirstOrder.Semiformula.lMapAux Φ (LO.FirstOrder.Semiformula.nrel r v) = LO.FirstOrder.Semiformula.nrel (Φ.rel r) (LO.FirstOrder.Semiterm.lMap Φ ∘ v)
- LO.FirstOrder.Semiformula.lMapAux Φ (φ.and ψ) = LO.FirstOrder.Semiformula.lMapAux Φ φ ⋏ LO.FirstOrder.Semiformula.lMapAux Φ ψ
- LO.FirstOrder.Semiformula.lMapAux Φ (φ.or ψ) = LO.FirstOrder.Semiformula.lMapAux Φ φ ⋎ LO.FirstOrder.Semiformula.lMapAux Φ ψ
- LO.FirstOrder.Semiformula.lMapAux Φ φ.all = ∀' LO.FirstOrder.Semiformula.lMapAux Φ φ
- LO.FirstOrder.Semiformula.lMapAux Φ φ.ex = ∃' LO.FirstOrder.Semiformula.lMapAux Φ φ
def
LO.FirstOrder.Semiformula.lMap
{L₁ : Language}
{L₂ : Language}
{ξ : Type u_5}
(Φ : L₁.Hom L₂)
{n : ℕ}
:
Semiformula L₁ ξ n →ˡᶜ Semiformula L₂ ξ n
Equations
- LO.FirstOrder.Semiformula.lMap Φ = { toTr := LO.FirstOrder.Semiformula.lMapAux Φ, map_top' := ⋯, map_bot' := ⋯, map_neg' := ⋯, map_imply' := ⋯, map_and' := ⋯, map_or' := ⋯ }
@[simp]
theorem
LO.FirstOrder.Semiformula.lMap_rel₂
{n : ℕ}
{L₁ : Language}
{L₂ : Language}
{ξ : Type u_5}
{Φ : L₁.Hom L₂}
(r : L₁.Rel 2)
(t₁ t₂ : Semiterm L₁ ξ n)
:
(lMap Φ) (rel r ![t₁, t₂]) = rel (Φ.rel r) ![Semiterm.lMap Φ t₁, Semiterm.lMap Φ t₂]
@[simp]
theorem
LO.FirstOrder.Semiformula.lMap_nrel₂
{n : ℕ}
{L₁ : Language}
{L₂ : Language}
{ξ : Type u_5}
{Φ : L₁.Hom L₂}
(r : L₁.Rel 2)
(t₁ t₂ : Semiterm L₁ ξ n)
:
(lMap Φ) (nrel r ![t₁, t₂]) = nrel (Φ.rel r) ![Semiterm.lMap Φ t₁, Semiterm.lMap Φ t₂]
@[simp]
theorem
LO.FirstOrder.Semiformula.freeVariables_lMap
{n : ℕ}
{L₁ : Language}
{L₂ : Language}
{ξ : Type u_5}
[DecidableEq ξ]
(Φ : L₁.Hom L₂)
(φ : Semiformula L₁ ξ n)
:
@[reducible, inline]
Equations
Instances For
- LO.FirstOrder.Derivation.instAxiomatizedSyntacticFormulaTheory
- LO.FirstOrder.Derivation.instCutSyntacticFormulaTheory
- LO.FirstOrder.Derivation.instTaitSyntacticFormulaTheory
- LO.FirstOrder.Semiformula.instCoeTheoryORing
- LO.FirstOrder.Theory.instAdd
- LO.FirstOrder.instCollectionSyntacticFormulaTheory
- LO.FirstOrder.instOneSidedSyntacticFormulaTheory
@[reducible, inline]
Equations
Instances For
instance
LO.FirstOrder.instCollectionSentenceClosedTheory
{L : Language}
:
Collection (Sentence L) (ClosedTheory L)
def
LO.FirstOrder.Theory.lMap
{L₁ : Language}
{L₂ : Language}
(Φ : L₁.Hom L₂)
(T : Theory L₁)
:
Theory L₂
Equations
Equations
- LO.FirstOrder.Theory.instAdd = { add := fun (x1 x2 : LO.FirstOrder.Theory L) => x1 ∪ x2 }