Theory Tarski
chapter ‹Abstract Formulation of Tarski's Theorems›
text ‹We prove Tarski's proof-theoretic and semantic theorems about the
non-definability and respectively non-expressiveness (in the standard model) of truth›
theory Tarski
imports Goedel_Formula Standard_Model_More
begin
section ‹Non-Definability of Truth›
context Goedel_Form
begin
context
fixes T :: 'fmla
assumes T[simp,intro!]: "T ∈ fmla"
and Fvars_T[simp]: "Fvars T = {xx}"
and prv_T: "⋀φ. φ ∈ fmla ⟹ Fvars φ = {} ⟹ prv (eqv (subst T ⟨φ⟩ xx) φ)"
begin
definition φT :: 'fmla where "φT ≡ diag (neg T)"
lemma φT[simp,intro!]: "φT ∈ fmla" and
Fvars_φT[simp]: "Fvars φT = {}"
unfolding φT_def PP_def by auto
lemma bprv_φT_eqv:
"bprv (eqv φT (neg (subst T ⟨φT⟩ xx)))"
unfolding φT_def using bprv_diag_eqv[of "neg T"] by simp
lemma prv_φT_eqv:
"prv (eqv φT (neg (subst T ⟨φT⟩ xx)))"
using d_dwf.bprv_prv'[OF _ bprv_φT_eqv, simplified] .
lemma φT_prv_fls: "prv fls"
using prv_eqv_eqv_neg_prv_fls2[OF _ _ prv_T[OF φT Fvars_φT] prv_φT_eqv] by auto
end
theorem Tarski_proof_theoretic:
assumes "T ∈ fmla" "Fvars T = {xx}"
and "⋀φ. φ ∈ fmla ⟹ Fvars φ = {} ⟹ prv (eqv (subst T ⟨φ⟩ xx) φ)"
shows "¬ consistent"
using φT_prv_fls[OF assms] consistent_def by auto
end
section ‹Non-Expressiveness of Truth›
text ‹This follows as a corollary of the syntactic version, after taking prv
to be isTrue on sentences.Indeed, this is a virtue of our abstract treatment
of provability: We don't work with a particular predicate, but with any predicate
that is closed under some rules --- which could as well be a semantic notion of truth (for sentences).›
locale Goedel_Form_prv_eq_isTrue =
Goedel_Form
var trm fmla Var num FvarsT substT Fvars subst
eql cnj imp all exi
fls
prv bprv
enc
P
S
for
var :: "'var set" and trm :: "'trm set" and fmla :: "'fmla set"
and Var num FvarsT substT Fvars subst
and eql cnj imp all exi
and fls
and prv bprv
and enc (‹⟨_⟩›)
and S
and P
+
fixes isTrue :: "'fmla ⇒ bool"
assumes prv_eq_isTrue: "⋀ φ. φ ∈ fmla ⟹ Fvars φ = {} ⟹ prv φ = isTrue φ"
begin
theorem Tarski_semantic:
assumes 0: "T ∈ fmla" "Fvars T = {xx}"
and 1: "⋀φ. φ ∈ fmla ⟹ Fvars φ = {} ⟹ isTrue (eqv (subst T ⟨φ⟩ xx) φ)"
shows "¬ consistent"
using assms prv_eq_isTrue[of "eqv (subst T ⟨_⟩ xx) _"]
by (intro Tarski_proof_theoretic[OF 0]) auto
text ‹NB: To instantiate the semantic version of Tarski's theorem for a truth predicate
isTruth on sentences, one needs to extend it to a predicate "prv" on formulas and verify
that "prv" satisfies the rules of intuitionistic logic.›
end
end