Propositional natural deduction
DefinitionTruth-table evaluation#✓fully proved
Given a Boolean valuation \(v\) of the atoms, the truth value of a proposition is computed recursively: an atom \(x\) has value \(v(x)\), \(A \wedge B\) is true iff both \(A\) and \(B\) are, \(A \vee B\) is true iff at least one of them is, and \(A \to B\) is true iff \(A\) is false or \(B\) is true. Falsum \(\bot\), when present, is itself an atom, so its value \(v(\bot)\) is part of the valuation and need not be false.
def Proposition.evalBool (v : Atom → Bool) : Proposition Atom → Bool
| atom x => v x
| and A B => A.evalBool v && B.evalBool v
| or A B => A.evalBool v || B.evalBool v
| imp A B => !A.evalBool v || B.evalBool v
Used by 38
→ and ⊥ · Truth-table consequence · Satisfiable sets of propositions · Model existence for propositional natural deduction · Compactness · Soundness of natural deduction for truth tables · Completeness for truth tables · Soundness and completeness for classical theories, with ⊥ false · Strong completeness of classical propositional natural deduction · Truth lemma for propositional natural deduction · Truth value of a negation · Classical derivability implies truth under valuations with false falsum · Intuitionistic derivability implies truth under valuations with false falsum · Double-negation elimination is true when falsum is false · Ex falso is true when falsum is false · Classical logic proves no atom · Consistency of classical propositional logic · Value of a proposition read off the atom variables · Equisatisfiability of the Tseitin transformation · Tseitin correctness · Correctness invariant of the Tseitin encodingTheoremTruth value of a negation#✓fully proved
Suppose the atoms include a distinguished atom \(\bot\), and let \(v\) be a Boolean valuation of the atoms with \(v(\bot) = \mathrm{false}\). Then for every proposition \(A\), the truth-table value under \(v\) of \(\neg A\), defined as \(A \to \bot\), is the Boolean negation of the truth-table value of \(A\) under \(v\).
theorem evalBool_neg [Bot Atom] (hv : v ⊥ = false) :
(¬A : Proposition Atom).evalBool v = !A.evalBool v
Uses 1 · Used by 2
DefinitionTruth-table consequence#✓fully proved
Let \(T\) be a theory (a set of propositions), \(\Gamma\) a context (a finite set of propositions) and \(A\) a proposition. Then \(A\) is a truth-table consequence of \(\Gamma\) in \(T\) when every Boolean valuation of the atoms under which all members of \(T\) and all members of \(\Gamma\) evaluate to true also makes \(A\) evaluate to true.
def Theory.BoolEntails (T : Theory Atom) (Γ : Ctx Atom) (A : Proposition Atom) : Prop :=
∀ v : Atom → Bool, (∀ B ∈ T, B.evalBool v = true) → (∀ B ∈ Γ, B.evalBool v = true) →
A.evalBool v = true
Uses 1 · Used by 3
TheoremSoundness of natural deduction for truth tables#✓fully proved
Let \(T\) be a theory, \(\Gamma\) a context and \(A\) a proposition. For every natural-deduction derivation of \(\Gamma \vdash A\) with axioms from \(T\), every Boolean valuation of the atoms that makes all members of \(T\) and of \(\Gamma\) true makes \(A\) true.
theorem Theory.Derivation.boolSound {Γ : Ctx Atom} {A : Proposition Atom}
(D : T.Derivation Γ A) : T.BoolEntails Γ A
Uses 2 · Used by 1
TheoremTruth-table soundness of derivability#✓fully proved
Let \(T\) be a theory, \(\Gamma\) a context and \(A\) a proposition. If the sequent \(\Gamma \vdash A\) is derivable in natural deduction with axioms from \(T\), then \(A\) is a truth-table consequence of \(\Gamma\) in \(T\): every Boolean valuation of the atoms that makes all members of \(T\) and of \(\Gamma\) true makes \(A\) true.
theorem DerivableIn.boolSound {Γ : Ctx Atom} {A : Proposition Atom}
(h : DerivableIn T (Γ ⊢ A)) : T.BoolEntails Γ A
Uses 2 · Used by 4
TheoremEx falso is true when falsum is false#✓fully proved
Suppose the atoms include a distinguished atom \(\bot\), and let \(v\) be a Boolean valuation of the atoms with \(v(\bot) = \mathrm{false}\). Then every instance \(\bot \to B\) of ex falso, that is every axiom of intuitionistic propositional logic, is true under \(v\).
theorem evalBool_of_mem_ipl (hv : v ⊥ = false) {A : Proposition Atom}
(hA : A ∈ IPL Atom) : A.evalBool v = true
Uses 1 · Used by 1
TheoremDouble-negation elimination is true when falsum is false#✓fully proved
Suppose the atoms include a distinguished atom \(\bot\), and let \(v\) be a Boolean valuation of the atoms with \(v(\bot) = \mathrm{false}\). Then every instance \(\neg\neg B \to B\) of double-negation elimination, that is every axiom of classical propositional logic, is true under \(v\).
theorem evalBool_of_mem_cpl (hv : v ⊥ = false) {A : Proposition Atom}
(hA : A ∈ CPL Atom) : A.evalBool v = true
Uses 1 · Used by 2
TheoremClassical derivability implies truth under valuations with false falsum#✓fully proved
Suppose the atoms include a distinguished atom \(\bot\), and let \(v\) be a Boolean valuation of the atoms with \(v(\bot) = \mathrm{false}\). If the sequent \(\Gamma \vdash A\) is derivable in classical propositional logic (natural deduction whose axioms are all instances \(\neg\neg B \to B\) of double-negation elimination) and every member of \(\Gamma\) is true under \(v\), then \(A\) is true under \(v\).
theorem DerivableIn.evalBool_of_cpl {Γ : Ctx Atom} {A : Proposition Atom}
(h : DerivableIn (CPL Atom) (Γ ⊢ A)) (hv : v ⊥ = false)
(hΓ : ∀ B ∈ Γ, B.evalBool v = true) : A.evalBool v = true
Uses 3 · Used by 3
TheoremIntuitionistic derivability implies truth under valuations with false falsum#✓fully proved
Suppose the atoms include a distinguished atom \(\bot\), and let \(v\) be a Boolean valuation of the atoms with \(v(\bot) = \mathrm{false}\). If the sequent \(\Gamma \vdash A\) is derivable in intuitionistic propositional logic (natural deduction whose axioms are all instances \(\bot \to B\) of ex falso) and every member of \(\Gamma\) is true under \(v\), then \(A\) is true under \(v\).
theorem DerivableIn.evalBool_of_ipl {Γ : Ctx Atom} {A : Proposition Atom}
(h : DerivableIn (IPL Atom) (Γ ⊢ A)) (hv : v ⊥ = false)
(hΓ : ∀ B ∈ Γ, B.evalBool v = true) : A.evalBool v = true
Uses 3
TheoremConsistency of classical propositional logic#✓fully proved
For every type of atoms with a designated atom \(\bot\), the proposition \(\bot\) is not derivable from the empty context in natural deduction over the classical theory, whose axioms are all instances \(\neg\neg A \to A\) of double-negation elimination, where \(\neg A\) abbreviates \(A \to \bot\).
theorem not_derivableIn_cpl_bot : ¬ DerivableIn (CPL Atom) (⊥ : Proposition Atom)
TheoremClassical logic proves no atom#✓fully proved
Suppose the atoms include a distinguished atom \(\bot\). For every atom \(x\), including \(\bot\), the proposition \(x\) is not derivable from the empty context in classical propositional logic (natural deduction whose axioms are all instances \(\neg\neg B \to B\) of double-negation elimination).
theorem not_derivableIn_cpl_atom (x : Atom) :
¬ DerivableIn (CPL Atom) (atom x : Proposition Atom)
DefinitionSatisfiable sets of propositions#✓fully proved
A set \(S\) of propositions is satisfiable when some Boolean valuation \(v\) of the atoms with \(v(\bot) = \mathrm{false}\) makes every member of \(S\) true.
def BoolSatisfiable [Bot Atom] (S : Set (Proposition Atom)) : Prop :=
∃ v : Atom → Bool, v ⊥ = false ∧ ∀ A ∈ S, A.evalBool v = true
Uses 1 · Used by 3
DefinitionConsistency relative to a theory#✓fully proved
Let \(T\) be a theory, that is, a set of propositions. A set \(S\) of propositions is consistent relative to \(T\) when there is no finite set \(\Gamma \subseteq S\) such that the sequent \(\Gamma \vdash \bot\) is derivable in natural deduction from \(T\).
def Theory.ConsistentWith (T : Theory Atom) (S : Set (Proposition Atom)) : Prop :=
∀ Γ : Ctx Atom, (Γ : Set (Proposition Atom)) ⊆ S → ¬ DerivableIn T (Γ ⊢ ⊥)
Used by 9
TheoremLindenbaum's lemma for propositional natural deduction#✓fully proved
Let \(T\) be a theory. Every set \(S\) of propositions that is consistent relative to \(T\) is contained in a set \(M\) that is consistent relative to \(T\) and not properly contained in any other set consistent relative to \(T\).
theorem Theory.exists_maximal_consistentWith {S : Set (Proposition Atom)}
(hS : T.ConsistentWith S) : ∃ M, S ⊆ M ∧ Maximal T.ConsistentWith M
Uses 1 · Used by 1
TheoremPropositions outside a maximal consistent set are refuted by it#✓fully proved
Let \(T\) be a theory and \(M\) a maximal set of propositions consistent relative to \(T\). If a proposition \(A\) is not in \(M\), then there is a finite set \(\Gamma \subseteq M\) such that the sequent \(\Gamma \cup \{A\} \vdash \bot\) is derivable in natural deduction from \(T\).
TheoremMaximal consistent sets are deductively closed in propositional natural deduction#✓fully proved
Let \(T\) be a theory and \(M\) a maximal set of propositions consistent relative to \(T\). If \(\Gamma\) is a finite subset of \(M\) and the sequent \(\Gamma \vdash A\) is derivable in natural deduction from \(T\), then \(A \in M\).
theorem mem_of_derivableIn {Γ : Ctx Atom} {A : Proposition Atom}
(hΓ : (Γ : Set (Proposition Atom)) ⊆ M) (hder : DerivableIn T (Γ ⊢ A)) : A ∈ M
Uses 2 · Used by 3
TheoremA maximal consistent set contains its theory#✓fully proved
Let \(T\) be a theory and \(M\) a maximal set of propositions consistent relative to \(T\). Then every proposition of \(T\) belongs to \(M\), that is, \(T \subseteq M\).
theorem subset_theory : T ⊆ M
Uses 2 · Used by 1
TheoremEach proposition or its negation lies in a maximal consistent set#✓fully proved
Let \(T\) be a theory and \(M\) a maximal set of propositions consistent relative to \(T\). Then for every proposition \(A\), either \(A \in M\) or \(\neg A \in M\), where \(\neg A\) is the proposition \(A \to \bot\).
theorem mem_or_neg_mem (A : Proposition Atom) : A ∈ M ∨ (¬A : Proposition Atom) ∈ M
TheoremTruth lemma for propositional natural deduction#✓fully proved
Let \(T\) be an intuitionistic theory, that is, one that derives \(\bot \to B\) for every proposition \(B\). Let \(M\) be a set of propositions that is consistent relative to \(T\) and not properly contained in any other set consistent relative to \(T\), and let \(v_M\) be the valuation that makes an atom \(x\) true exactly when the atomic proposition \(x\) belongs to \(M\). Then a proposition \(A\) evaluates to true under \(v_M\) iff \(A \in M\).
theorem evalBool_eq_true_iff [IsIntuitionistic Atom T] (A : Proposition Atom) :
A.evalBool (fun x ↦ @decide (atom x ∈ M) (Classical.dec _)) = true ↔ A ∈ M
Uses 4 · Used by 1
TheoremModel existence for propositional natural deduction#✓fully proved
Let \(T\) be an intuitionistic theory, that is, one that derives \(\bot \to B\) for every proposition \(B\). If a set \(S\) of propositions is consistent relative to \(T\), then \(T \cup S\) is satisfiable: some Boolean valuation \(v\) of the atoms with \(v(\bot) = \mathrm{false}\) makes every member of \(T\) and every member of \(S\) true.
theorem Theory.ConsistentWith.boolSatisfiable [IsIntuitionistic Atom T]
{S : Set (Proposition Atom)} (hS : T.ConsistentWith S) : BoolSatisfiable (T ∪ S)
def BoolSatisfiable [Bot Atom] (S : Set (Proposition Atom)) : Prop :=
∃ v : Atom → Bool, v ⊥ = false ∧ ∀ A ∈ S, A.evalBool v = true
CSLibExt/Logics/Propositional/NaturalDeduction/Completeness.lean:69
TheoremStrong completeness of classical propositional natural deduction#✓fully proved
Let \(T\) be a classical theory, that is, one that derives \(\neg\neg B \to B\) for every proposition \(B\), where \(\neg B\) abbreviates \(B \to \bot\). Let \(\Gamma\) be a finite set of propositions and \(A\) a proposition. If every Boolean valuation \(v\) of the atoms with \(v(\bot) = \mathrm{false}\) that makes every member of \(T\) and every member of \(\Gamma\) true also makes \(A\) true, then the sequent \(\Gamma \vdash A\) is derivable from \(T\).
theorem Theory.derivableIn_of_forall_evalBool [IsClassical Atom T] {Γ : Ctx Atom}
{A : Proposition Atom}
(h : ∀ v : Atom → Bool, v ⊥ = false → (∀ B ∈ T, B.evalBool v = true) →
(∀ B ∈ Γ, B.evalBool v = true) → A.evalBool v = true) :
DerivableIn T (Γ ⊢ A)
Uses 5 · Used by 2
TheoremSoundness and completeness for classical theories, with ⊥ false#✓fully proved
Let \(T\) be a classical theory, that is, one that derives \(\neg\neg B \to B\) for every proposition \(B\), where \(\neg B\) abbreviates \(B \to \bot\). For every finite set \(\Gamma\) of propositions and every proposition \(A\), the sequent \(\Gamma \vdash A\) is derivable from \(T\) iff every Boolean valuation \(v\) of the atoms with \(v(\bot) = \mathrm{false}\) that makes every member of \(T\) and every member of \(\Gamma\) true also makes \(A\) true.
theorem Theory.derivableIn_iff_forall_evalBool [IsClassical Atom T] {Γ : Ctx Atom}
{A : Proposition Atom} :
DerivableIn T (Γ ⊢ A) ↔ ∀ v : Atom → Bool, v ⊥ = false →
(∀ B ∈ T, B.evalBool v = true) → (∀ B ∈ Γ, B.evalBool v = true) → A.evalBool v = true
Uses 3 · Used by 1
TheoremSoundness and completeness for classical theories#✓fully proved
Let \(T\) be a classical theory, that is, one that derives \(\neg\neg B \to B\) for every proposition \(B\), where \(\neg B\) abbreviates \(B \to \bot\). For every finite set \(\Gamma\) of propositions and every proposition \(A\), the sequent \(\Gamma \vdash A\) is derivable from \(T\) iff every Boolean valuation of the atoms that makes every member of \(T\) and every member of \(\Gamma\) true also makes \(A\) true.
Here \(\bot\) is a distinguished atom, and these valuations may make it true or false.
theorem Theory.derivableIn_iff_boolEntails [IsClassical Atom T] {Γ : Ctx Atom}
{A : Proposition Atom} : DerivableIn T (Γ ⊢ A) ↔ T.BoolEntails Γ A
Uses 3
TheoremCompleteness for truth tables#✓fully proved
Let \(\Gamma\) be a finite set of propositions and \(A\) a proposition. The sequent \(\Gamma \vdash A\) is derivable in classical propositional logic (natural deduction with every instance of \(\neg\neg B \to B\) as an axiom, where \(\neg B\) abbreviates \(B \to \bot\)) iff every Boolean valuation \(v\) of the atoms with \(v(\bot) = \mathrm{false}\) that makes every member of \(\Gamma\) true also makes \(A\) true.
theorem derivableIn_cpl_iff {Γ : Ctx Atom} {A : Proposition Atom} :
DerivableIn (CPL Atom) (Γ ⊢ A) ↔
∀ v : Atom → Bool, v ⊥ = false → (∀ B ∈ Γ, B.evalBool v = true) →
A.evalBool v = true
Uses 3 · Used by 2
TheoremCompactness#✓fully proved
A set of propositions is satisfiable, with ⊥ false, iff each of its
finite subsets is.
theorem boolSatisfiable_iff_forall_finset {S : Set (Proposition Atom)} :
BoolSatisfiable S ↔
∀ F : Finset (Proposition Atom), (F : Set (Proposition Atom)) ⊆ S →
BoolSatisfiable (F : Set (Proposition Atom))
def BoolSatisfiable [Bot Atom] (S : Set (Proposition Atom)) : Prop :=
∃ v : Atom → Bool, v ⊥ = false ∧ ∀ A ∈ S, A.evalBool v = true
CSLibExt/Logics/Propositional/NaturalDeduction/Completeness.lean:69
Loading dependency explorer…
The dependency explorer needs JavaScript and its graph data.