Derivation2 #
Different characterizations of proof.
inductive
LO.FirstOrder.Derivation2
{L : LO.FirstOrder.Language}
[(k : ℕ) → DecidableEq (L.Func k)]
[(k : ℕ) → DecidableEq (L.Rel k)]
(T : LO.FirstOrder.Theory L)
:
Finset (LO.FirstOrder.SyntacticFormula L) → Type u_1
- closed: {L : LO.FirstOrder.Language} → [inst : (k : ℕ) → DecidableEq (L.Func k)] → [inst_1 : (k : ℕ) → DecidableEq (L.Rel k)] → {T : LO.FirstOrder.Theory L} → (Δ : Finset (LO.FirstOrder.SyntacticFormula L)) → (φ : LO.FirstOrder.SyntacticFormula L) → φ ∈ Δ → ∼φ ∈ Δ → LO.FirstOrder.Derivation2 T Δ
- root: {L : LO.FirstOrder.Language} → [inst : (k : ℕ) → DecidableEq (L.Func k)] → [inst_1 : (k : ℕ) → DecidableEq (L.Rel k)] → {T : LO.FirstOrder.Theory L} → {Δ : Finset (LO.FirstOrder.SyntacticFormula L)} → (φ : LO.FirstOrder.SyntacticFormula L) → φ ∈ T → φ ∈ Δ → LO.FirstOrder.Derivation2 T Δ
- verum: {L : LO.FirstOrder.Language} → [inst : (k : ℕ) → DecidableEq (L.Func k)] → [inst_1 : (k : ℕ) → DecidableEq (L.Rel k)] → {T : LO.FirstOrder.Theory L} → {Δ : Finset (LO.FirstOrder.SyntacticFormula L)} → ⊤ ∈ Δ → LO.FirstOrder.Derivation2 T Δ
- and: {L : LO.FirstOrder.Language} → [inst : (k : ℕ) → DecidableEq (L.Func k)] → [inst_1 : (k : ℕ) → DecidableEq (L.Rel k)] → {T : LO.FirstOrder.Theory L} → {Δ : Finset (LO.FirstOrder.SyntacticFormula L)} → {φ ψ : LO.FirstOrder.SyntacticFormula L} → φ ⋏ ψ ∈ Δ → LO.FirstOrder.Derivation2 T (insert φ Δ) → LO.FirstOrder.Derivation2 T (insert ψ Δ) → LO.FirstOrder.Derivation2 T Δ
- or: {L : LO.FirstOrder.Language} → [inst : (k : ℕ) → DecidableEq (L.Func k)] → [inst_1 : (k : ℕ) → DecidableEq (L.Rel k)] → {T : LO.FirstOrder.Theory L} → {Δ : Finset (LO.FirstOrder.SyntacticFormula L)} → {φ ψ : LO.FirstOrder.SyntacticFormula L} → φ ⋎ ψ ∈ Δ → LO.FirstOrder.Derivation2 T (insert φ (insert ψ Δ)) → LO.FirstOrder.Derivation2 T Δ
- all: {L : LO.FirstOrder.Language} → [inst : (k : ℕ) → DecidableEq (L.Func k)] → [inst_1 : (k : ℕ) → DecidableEq (L.Rel k)] → {T : LO.FirstOrder.Theory L} → {Δ : Finset (LO.FirstOrder.SyntacticFormula L)} → {φ : LO.FirstOrder.SyntacticSemiformula L 1} → ∀' φ ∈ Δ → LO.FirstOrder.Derivation2 T (insert (LO.FirstOrder.Rewriting.free φ) (Finset.image LO.FirstOrder.Rewriting.shift Δ)) → LO.FirstOrder.Derivation2 T Δ
- ex: {L : LO.FirstOrder.Language} → [inst : (k : ℕ) → DecidableEq (L.Func k)] → [inst_1 : (k : ℕ) → DecidableEq (L.Rel k)] → {T : LO.FirstOrder.Theory L} → {Δ : Finset (LO.FirstOrder.SyntacticFormula L)} → {φ : LO.FirstOrder.SyntacticSemiformula L 1} → ∃' φ ∈ Δ → (t : LO.FirstOrder.SyntacticTerm L) → LO.FirstOrder.Derivation2 T (insert (φ/[t]) Δ) → LO.FirstOrder.Derivation2 T Δ
- wk: {L : LO.FirstOrder.Language} → [inst : (k : ℕ) → DecidableEq (L.Func k)] → [inst_1 : (k : ℕ) → DecidableEq (L.Rel k)] → {T : LO.FirstOrder.Theory L} → {Δ Γ : Finset (LO.FirstOrder.SyntacticFormula L)} → LO.FirstOrder.Derivation2 T Δ → Δ ⊆ Γ → LO.FirstOrder.Derivation2 T Γ
- shift: {L : LO.FirstOrder.Language} → [inst : (k : ℕ) → DecidableEq (L.Func k)] → [inst_1 : (k : ℕ) → DecidableEq (L.Rel k)] → {T : LO.FirstOrder.Theory L} → {Δ : Finset (LO.FirstOrder.SyntacticFormula L)} → LO.FirstOrder.Derivation2 T Δ → LO.FirstOrder.Derivation2 T (Finset.image LO.FirstOrder.Rewriting.shift Δ)
- cut: {L : LO.FirstOrder.Language} → [inst : (k : ℕ) → DecidableEq (L.Func k)] → [inst_1 : (k : ℕ) → DecidableEq (L.Rel k)] → {T : LO.FirstOrder.Theory L} → {Δ : Finset (LO.FirstOrder.SyntacticFormula L)} → {φ : LO.FirstOrder.SyntacticFormula L} → LO.FirstOrder.Derivation2 T (insert φ Δ) → LO.FirstOrder.Derivation2 T (insert (∼φ) Δ) → LO.FirstOrder.Derivation2 T Δ
Instances For
Equations
- LO.FirstOrder.«term_⊢₂_» = Lean.ParserDescr.trailingNode `LO.FirstOrder.«term_⊢₂_» 45 46 (Lean.ParserDescr.binary `andthen (Lean.ParserDescr.symbol " ⊢₂ ") (Lean.ParserDescr.cat `term 46))
Instances For
@[reducible, inline]
abbrev
LO.FirstOrder.Derivable2
{L : LO.FirstOrder.Language}
[(k : ℕ) → DecidableEq (L.Func k)]
[(k : ℕ) → DecidableEq (L.Rel k)]
(T : LO.FirstOrder.Theory L)
(Γ : Finset (LO.FirstOrder.SyntacticFormula L))
:
Equations
Instances For
Equations
- LO.FirstOrder.«term_⊢₂!_» = Lean.ParserDescr.trailingNode `LO.FirstOrder.«term_⊢₂!_» 45 46 (Lean.ParserDescr.binary `andthen (Lean.ParserDescr.symbol " ⊢₂! ") (Lean.ParserDescr.cat `term 46))
Instances For
@[reducible, inline]
abbrev
LO.FirstOrder.Derivable2SingleConseq
{L : LO.FirstOrder.Language}
[(k : ℕ) → DecidableEq (L.Func k)]
[(k : ℕ) → DecidableEq (L.Rel k)]
(T : LO.FirstOrder.Theory L)
(φ : LO.FirstOrder.SyntacticFormula L)
:
Equations
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
theorem
LO.FirstOrder.shifts_toFinset_eq_image_shift
{L : LO.FirstOrder.Language}
[(k : ℕ) → DecidableEq (L.Func k)]
[(k : ℕ) → DecidableEq (L.Rel k)]
(Δ : LO.FirstOrder.Sequent L)
:
(LO.FirstOrder.Rewriting.shifts Δ).toFinset = Finset.image LO.FirstOrder.Rewriting.shift (List.toFinset Δ)
def
LO.FirstOrder.Derivation.toDerivation2
{L : LO.FirstOrder.Language}
[(k : ℕ) → DecidableEq (L.Func k)]
[(k : ℕ) → DecidableEq (L.Rel k)]
(T : LO.FirstOrder.Theory L)
{Γ : LO.FirstOrder.Sequent L}
:
T ⟹ Γ → LO.FirstOrder.Derivation2 T (List.toFinset Γ)
Equations
- One or more equations did not get rendered due to their size.
- LO.FirstOrder.Derivation.toDerivation2 T (LO.FirstOrder.Derivation.root h) = LO.FirstOrder.Derivation2.root φ h ⋯
- LO.FirstOrder.Derivation.toDerivation2 T (LO.FirstOrder.Derivation.verum Δ) = LO.FirstOrder.Derivation2.verum ⋯
- LO.FirstOrder.Derivation.toDerivation2 T (dp.and dq) = LO.FirstOrder.Derivation2.and ⋯ ((LO.FirstOrder.Derivation.toDerivation2 T dp).wk ⋯) ((LO.FirstOrder.Derivation.toDerivation2 T dq).wk ⋯)
- LO.FirstOrder.Derivation.toDerivation2 T dpq.or = LO.FirstOrder.Derivation2.or ⋯ ((LO.FirstOrder.Derivation.toDerivation2 T dpq).wk ⋯)
- LO.FirstOrder.Derivation.toDerivation2 T dp.all = LO.FirstOrder.Derivation2.all ⋯ ((LO.FirstOrder.Derivation.toDerivation2 T dp).wk ⋯)
- LO.FirstOrder.Derivation.toDerivation2 T (LO.FirstOrder.Derivation.ex t dp) = LO.FirstOrder.Derivation2.ex ⋯ t ((LO.FirstOrder.Derivation.toDerivation2 T dp).wk ⋯)
- LO.FirstOrder.Derivation.toDerivation2 T (d.wk h) = (LO.FirstOrder.Derivation.toDerivation2 T d).wk ⋯
- LO.FirstOrder.Derivation.toDerivation2 T (d₁.cut d₂) = ((LO.FirstOrder.Derivation.toDerivation2 T d₁).wk ⋯).cut ((LO.FirstOrder.Derivation.toDerivation2 T d₂).wk ⋯)
Instances For
noncomputable def
LO.FirstOrder.Derivation2.toDerivation
{L : LO.FirstOrder.Language}
[(k : ℕ) → DecidableEq (L.Func k)]
[(k : ℕ) → DecidableEq (L.Rel k)]
{T : LO.FirstOrder.Theory L}
{Γ : Finset (LO.FirstOrder.SyntacticFormula L)}
:
LO.FirstOrder.Derivation2 T Γ → T ⟹ Γ.toList
Instances For
theorem
LO.FirstOrder.derivable_iff_derivable2
{L : LO.FirstOrder.Language}
[(k : ℕ) → DecidableEq (L.Func k)]
[(k : ℕ) → DecidableEq (L.Rel k)]
{T : LO.FirstOrder.Theory L}
{Γ : List (LO.FirstOrder.SyntacticFormula L)}
:
T ⟹! Γ ↔ LO.FirstOrder.Derivable2 T Γ.toFinset
def
LO.FirstOrder.provable_iff_derivable2
{L : LO.FirstOrder.Language}
[(k : ℕ) → DecidableEq (L.Func k)]
[(k : ℕ) → DecidableEq (L.Rel k)]
{T : LO.FirstOrder.Theory L}
{φ : LO.FirstOrder.SyntacticFormula L}
:
T ⊢! φ ↔ LO.FirstOrder.Derivable2SingleConseq T φ
Equations
- ⋯ = ⋯