Equations
- Fin.embedAt 0 = 0
- Fin.embedAt k.succ = (Fin.embedAt k).succ
Instances For
Equations
- Fin.insertAt 0 x_2 = x_2.succ
- Fin.insertAt k.succ x_2 = Fin.cases 0 (fun (x : Fin (n.add k)) => (Fin.insertAt k x).succ) x_2
Instances For
Equations
Instances For
Equations
Instances For
Equations
Instances For
Equations
- FirstOrder.Language.Subst.insertAt 0 σ x✝ = x✝ ∷ᵥ σ
- FirstOrder.Language.Subst.insertAt k.succ σ x✝ = Vec.head σ ∷ᵥ FirstOrder.Language.Subst.insertAt k (Vec.tail σ) x✝
Instances For
Equations
- FirstOrder.Language.Term.invConst k (#x_2) x✝ = #(Fin.insertAt k x_2)
- FirstOrder.Language.Term.invConst k (f ⬝ᶠ a) x✝ = if f = x✝ then #(Fin.embedAt k) else f ⬝ᶠ []ᵥ
- FirstOrder.Language.Term.invConst k (f ⬝ᶠ v) x✝ = f ⬝ᶠ fun (i : Fin (n_1 + 1)) => FirstOrder.Language.Term.invConst k (v i) x✝
Instances For
@[irreducible]
Equations
- FirstOrder.Language.Formula.invConst k (r ⬝ʳ v) x✝ = r ⬝ʳ fun (i : Fin m) => FirstOrder.Language.Term.invConst k (v i) x✝
- FirstOrder.Language.Formula.invConst k (t₁ ≐ t₂) x✝ = FirstOrder.Language.Term.invConst k t₁ x✝ ≐ FirstOrder.Language.Term.invConst k t₂ x✝
- FirstOrder.Language.Formula.invConst k FirstOrder.Language.Formula.false x✝ = ⊥
- FirstOrder.Language.Formula.invConst k (p.imp q) x✝ = FirstOrder.Language.Formula.invConst k p x✝ ⇒ FirstOrder.Language.Formula.invConst k q x✝
- FirstOrder.Language.Formula.invConst k (∀' p) x✝ = ∀' FirstOrder.Language.Formula.invConst (k + 1) p x✝
Instances For
@[irreducible]
@[irreducible]
theorem
FirstOrder.Language.Axiom.inv_const
{L : Language}
{n k : ℕ}
{Γ : L.FormulaSet (n + k + 1)}
{c : L.Const}
{p : L.Formula (n + k)}
:
p ∈ L.Axiom → Γ ⊢ Formula.invConst k p c
theorem
FirstOrder.Language.Proof.inv_const
{L : Language}
{n k : ℕ}
{Γ : L.FormulaSet (n + k)}
{c : L.Const}
{p : L.Formula (n + k)}
(h₁ : ∀ p ∈ Γ, c ∉ p.consts)
:
Γ ⊢ p → (fun (x : L.Formula (n + k)) => x[Subst.shiftAt k]ₚ) '' Γ ⊢ Formula.invConst k p c
Equations
- L.henkinStep n = { Func := FirstOrder.Language.henkinStep.Func L n, Rel := L.Rel }
Instances For
def
FirstOrder.Language.henkinStep.wit
{L : Language}
{n : ℕ}
(p : L.Formula (n + 1))
:
(L.henkinStep n).Const
Instances For
Equations
- FirstOrder.Language.henkinStep.hom = { onFunc := fun {n_1 : ℕ} (f : L.Func n_1) => FirstOrder.Language.henkinStep.Func.inj f, onRel := fun {n : ℕ} (r : L.Rel n) => r }
Instances For
@[irreducible]
Equations
- FirstOrder.Language.henkinStep.invTerm x✝ #x_2 = #(Fin.insertAt x✝ x_2)
- FirstOrder.Language.henkinStep.invTerm x✝ (FirstOrder.Language.henkinStep.Func.inj f ⬝ᶠ v) = f ⬝ᶠ fun (i : Fin m_1) => FirstOrder.Language.henkinStep.invTerm x✝ (v i)
- FirstOrder.Language.henkinStep.invTerm x✝ (FirstOrder.Language.henkinStep.Func.wit a ⬝ᶠ a_1) = #(Fin.embedAt x✝)
Instances For
theorem
FirstOrder.Language.henkinStep.invTerm_subst
{L : Language}
{n m k m' k' : ℕ}
{t : (L.henkinStep n).Term (m + k)}
{σ : (L.henkinStep n).Subst (m + k) (m' + k')}
:
invTerm k' t[σ]ₜ = (invTerm k t)[Subst.insertAt k ((fun (x : (L.henkinStep n).Term (m' + k')) => invTerm k' x) ∘ σ) #(Fin.embedAt k')]ₜ
@[irreducible]
Equations
- FirstOrder.Language.henkinStep.invFormula x✝ (r ⬝ʳ v) = r ⬝ʳ fun (i : Fin m_1) => FirstOrder.Language.henkinStep.invTerm x✝ (v i)
- FirstOrder.Language.henkinStep.invFormula x✝ (t₁ ≐ t₂) = FirstOrder.Language.henkinStep.invTerm x✝ t₁ ≐ FirstOrder.Language.henkinStep.invTerm x✝ t₂
- FirstOrder.Language.henkinStep.invFormula x✝ FirstOrder.Language.Formula.false = ⊥
- FirstOrder.Language.henkinStep.invFormula x✝ (p.imp q) = FirstOrder.Language.henkinStep.invFormula x✝ p ⇒ FirstOrder.Language.henkinStep.invFormula x✝ q
- FirstOrder.Language.henkinStep.invFormula x✝ (∀' p) = ∀' FirstOrder.Language.henkinStep.invFormula (x✝ + 1) p
Instances For
@[simp]
@[simp]
theorem
FirstOrder.Language.henkinStep.invFormula_imp
{L : Language}
{n m k : ℕ}
{p q : (L.henkinStep n).Formula (m + k)}
:
@[simp]
theorem
FirstOrder.Language.henkinStep.invFormula_neg
{k : ℕ}
{L✝ : Language}
{n✝ a✝ : ℕ}
{p : (L✝.henkinStep n✝).Formula (a✝ + k)}
:
theorem
FirstOrder.Language.henkinStep.invFormula_andN
{L : Language}
{n m k l : ℕ}
{v : Vec ((L.henkinStep n).Formula (m + k)) l}
:
@[irreducible]
theorem
FirstOrder.Language.henkinStep.invFormula_homFormula
{L : Language}
{k n a✝ : ℕ}
{p : L.Formula (a✝ + k)}
:
@[irreducible]
theorem
FirstOrder.Language.henkinStep.invFormula_subst
{L : Language}
{n m k m' k' : ℕ}
{p : (L.henkinStep n).Formula (m + k)}
{σ : (L.henkinStep n).Subst (m + k) (m' + k')}
:
invFormula k' p[σ]ₚ = (invFormula k
p)[Subst.insertAt k ((fun (x : (L.henkinStep n).Term (m' + k')) => invTerm k' x) ∘ σ) #(Fin.embedAt k')]ₚ
theorem
FirstOrder.Language.henkinStep.invFormula_shift
{k : ℕ}
{L✝ : Language}
{n✝ a✝ : ℕ}
{p : (L✝.henkinStep n✝).Formula (a✝.add k)}
:
theorem
FirstOrder.Language.henkinStep.invFormula_subst_single
{k : ℕ}
{L✝ : Language}
{n✝ a✝ : ℕ}
{p : (L✝.henkinStep n✝).Formula (a✝ + k + 1)}
{t : (L✝.henkinStep n✝).Term (a✝ + k)}
:
@[irreducible]
theorem
FirstOrder.Language.henkinStep.inv_axiom
{L : Language}
{n m k : ℕ}
{Γ : L.FormulaSet (m + k + 1)}
{p : (L.henkinStep n).Formula (m + k)}
:
p ∈ (L.henkinStep n).Axiom → Γ ⊢ invFormula k p
theorem
FirstOrder.Language.henkinStep.inv_proof
{L✝ : Language}
{a✝ : ℕ}
{Δ : Set (L✝.Formula a✝)}
{n✝ : ℕ}
{p : (L✝.henkinStep n✝).Formula a✝}
:
hom.onFormula '' Δ ⊢ p → Δ ⊢ ∀' invFormula 0 p
theorem
FirstOrder.Language.henkinStep.hom_consistent
{L : Language}
{m n : ℕ}
{Γ : L.FormulaSet m}
(h : Γ ⊢ ∃' ⊤)
:
Consistent Γ → Consistent (hom.onFormula '' Γ)
def
FirstOrder.Language.FormulaSet.henkinStep
{L : Language}
{n : ℕ}
(Γ : L.FormulaSet n)
:
(L.henkinStep n).FormulaSet n
Equations
Instances For
theorem
FirstOrder.Language.FormulaSet.henkinStep.consistent
{L✝ : Language}
{n✝ : ℕ}
{Γ : L✝.FormulaSet n✝}
(h : Γ ⊢ ∃' ⊤)
:
Consistent Γ → Consistent Γ.henkinStep
Equations
- L.henkinChain n 0 = L
- L.henkinChain n k.succ = (L.henkinChain n k).henkinStep n
Instances For
Equations
- L.henkinize n = (FirstOrder.Language.DirectedSystem.ofChain (L.henkinChain n) fun (x : ℕ) => FirstOrder.Language.henkinStep.hom).directLimit
Instances For
def
FirstOrder.Language.FormulaSet.henkinChain
{L : Language}
{n : ℕ}
(Γ : L.FormulaSet n)
(i : ℕ)
:
(L.henkinChain n i).FormulaSet n
Equations
- Γ.henkinChain 0 = Γ
- Γ.henkinChain k.succ = (Γ.henkinChain k).henkinStep
Instances For
def
FirstOrder.Language.FormulaSet.henkinize
{L : Language}
{n : ℕ}
(Γ : L.FormulaSet n)
:
(L.henkinize n).FormulaSet n
Equations
- One or more equations did not get rendered due to their size.
Instances For
theorem
FirstOrder.Language.FormulaSet.henkinize.supset_henkin
{n : ℕ}
{L : Language}
{Γ : L.FormulaSet n}
{Δ : (L.henkinize n).FormulaSet n}
:
theorem
FirstOrder.Language.FormulaSet.henkinChain.nontrivial
{n : ℕ}
{L : Language}
{Γ : L.FormulaSet n}
(h₁ : Γ ⊢ ∃' ⊤)
{i : ℕ}
:
Γ.henkinChain i ⊢ ∃' ⊤
theorem
FirstOrder.Language.FormulaSet.henkinChain.consistent
{n : ℕ}
{L : Language}
{Γ : L.FormulaSet n}
(h₁ : Γ ⊢ ∃' ⊤)
(h₂ : Consistent Γ)
{i : ℕ}
:
Consistent (Γ.henkinChain i)
theorem
FirstOrder.Language.FormulaSet.henkinize.consistent
{n : ℕ}
{L : Language}
{Γ : L.FormulaSet n}
(h₁ : Γ ⊢ ∃' ⊤)
(h₂ : Consistent Γ)
: