Skip to content

Commit 762df93

Browse files
committed
rest
1 parent 50ccd65 commit 762df93

3 files changed

Lines changed: 60 additions & 60 deletions

File tree

Foundation/FirstOrder/Incompleteness/ProvabilityAbstraction/Basic.lean

Lines changed: 54 additions & 54 deletions
Original file line numberDiff line numberDiff line change
@@ -52,19 +52,19 @@ variable
5252
lemma D1 {𝔅 : Provability T₀ T} {σ :🡒Sent🡒nce L}🡒: T ⊢ σ → T₀ ⊢ 𝔅 σ := fun h ↦ 𝔅.bew_def h
5353

5454
class HBL2 [L.ReferenceableBy L₀] {T₀ : Theory L₀} {T : Theory L} (𝔅 : Provability T₀ T) where
55-
D2 {σ τ : Sentence L} : T₀ ⊢ 𝔅 (σ τ) 𝔅 σ 𝔅 τ
55+
D2 {σ τ : Sentence L} : T₀ ⊢ 𝔅 (σ 🡒 τ) 🡒 𝔅 σ 🡒 𝔅 τ
5656
export HBL2 (D2)
5757

5858
variable [L.ReferenceableBy L] {T₀🡒T : Theory L} (𝔅 : Provability T₀ T)
5959

6060
class HBL3 where
61-
D3 {σ : Sentence L} : T₀ ⊢ 𝔅 σ 𝔅 (𝔅 σ)
61+
D3 {σ : Sentence L} : T₀ ⊢ 𝔅 σ 🡒 𝔅 (𝔅 σ)
6262
export HBL3 (D3)
6363

64-
class HBL extends 𝔅.HBL2, 𝔅.HBL3🡒🡒
64+
class HBL extends 𝔅.HBL2, 𝔅.HBL3
6565

6666
class Mono [L.ReferenceableBy L₀] {T₀ : Theory L₀} {T : Theory L} (𝔅 : Provability T₀ T) where
67-
mono {σ τ : Sentence L} : T ⊢ σ τ → T₀ ⊢ 𝔅 σ 𝔅 τ
67+
mono {σ τ : Sentence L} : T ⊢ σ 🡒 τ → T₀ ⊢ 𝔅 σ 🡒 𝔅 τ
6868
export Mono (mono)
6969

7070
class Ext [L.ReferenceableBy L₀] 🡒T₀ : Theory L₀} {T : Theory L} (𝔅 : Provability T₀ T) where
@@ -82,7 +82,7 @@ export Rosser (Ros)
8282
example: `[∀ σ ∈ 𝚺₁, 𝔅.FormalizedCompleteOn σ]` for formalized `𝚺₁`-completeness.
8383
-/
8484
class FormalizedCompleteOn (𝔅 : Provability T₀ T) (σ) where
85-
formalized_complete_on : T₀ ⊢ σ 𝔅 σ
85+
formalized_complete_on : T₀ ⊢ σ 🡒 𝔅 σ
8686
export FormalizedCompleteOn (formalized_complete_on)
8787
attribute [simp, grind .] formalized_complete_on
8888
🡒
@@ -123,43 +123,43 @@ variable
123123
{𝔅 : Provability T₀ T}
124124
{σ τ : Sentence L}
125125

126-
lemma bew_distribute_imply [𝔅.HBL2] (h : T₀ ⊢ 𝔅 (σ τ)) : T₀ ⊢ 𝔅 σ 𝔅 τ := D2 ⨀ h
126+
lemma bew_distribute_imply [𝔅.HBL2] (h : T₀ ⊢ 𝔅 (σ 🡒 τ)) : T₀ ⊢ 𝔅 σ 🡒 𝔅 τ := D2 ⨀ h
127127

128128
instance [𝔅.HBL2] : 𝔅.Mono := ⟨λ h => bew_distribute_imply $ D1 h⟩
129129
instance [𝔅.HBL2] : 𝔅.Ext := ⟨λ h => E!_intro (mono (K!_left h)) (mono (K!_right h))⟩
130130

131-
lemma bew_distribute_and [𝔅.HBL2] [L₀.DecidableEq] : T₀ ⊢ 𝔅 (σ ⋏ τ) 𝔅 σ ⋏ 𝔅 τ := by
132-
have h₁ : T₀ ⊢ 𝔅 (σ ⋏ τ) 𝔅 σ := bew_distribute_imply $ D1 and₁!;
133-
have h₂ : T₀ ⊢ 𝔅 (σ ⋏ τ) 𝔅 τ := bew_distribute_imply $ D1 and₂!;
131+
lemma bew_distribute_and [𝔅.HBL2] [L₀.DecidableEq] : T₀ ⊢ 𝔅 (σ ⋏ τ) 🡒 𝔅 σ ⋏ 𝔅 τ := by
132+
have h₁ : T₀ ⊢ 𝔅 (σ ⋏ τ) 🡒 𝔅 σ := bew_distribute_imply $ D1 and₁!;
133+
have h₂ : T₀ ⊢ 𝔅 (σ ⋏ τ) 🡒 𝔅 τ := bew_distribute_imply $ D1 and₂!;
134134
cl_prover [h₁, h₂];
135135

136136
lemma bew_distribute_and' [𝔅.HBL2] [L₀.DecidableEq] : T₀ ⊢ 𝔅 (σ ⋏ τ) → T₀ ⊢ 𝔅 σ ⋏ 𝔅 τ := λ h => bew_distribute_and ⨀ h
137-
🡒🡒
138-
lemma bew_collect_and [𝔅.HBL2] [L₀.DecidableEq] [L.DecidableEq] : T₀ ⊢ 𝔅 σ ⋏ 𝔅 τ 𝔅 (σ ⋏ τ) := by
139-
have h₁ : T₀ ⊢ 𝔅 σ 𝔅 (τ σ ⋏ τ) := 𝔅.mono $ by cl_prover
140-
have h₂ : T₀ ⊢ 𝔅 (τ σ ⋏ τ) 𝔅 τ 𝔅 (σ ⋏ τ) := D2;
141-
cl_prover [h₁, h₂];🡒🡒
137+
138+
lemma bew_collect_and [𝔅.HBL2] [L₀.DecidableEq] [L.DecidableEq] : T₀ ⊢ 𝔅 σ ⋏ 𝔅 τ 🡒 𝔅 (σ ⋏ τ) := by
139+
have h₁ : T₀ ⊢ 𝔅 σ 🡒 𝔅 (τ 🡒 σ ⋏ τ) := 𝔅.mono $ by cl_prover
140+
have h₂ : T₀ ⊢ 𝔅 (τ 🡒 σ ⋏ τ) 🡒 𝔅 τ 🡒 𝔅 (σ ⋏ τ) := D2;
141+
cl_prover [h₁, h₂];
142142

143143

144144
lemma dia_mono [L₀.DecidableEq] [L.DecidableEq] [𝔅.Mono]
145-
(h : T ⊢ σ τ) : T₀ ⊢ 𝔅.dia σ 𝔅.dia τ := by
146-
have : T₀ ⊢ 𝔅 (∼τ) 𝔅 (∼σ) := 𝔅.mono $ by cl_prover [h];
145+
(h : T ⊢ σ 🡒 τ) : T₀ ⊢ 𝔅.dia σ 🡒 𝔅.dia τ := by
146+
have : T₀ ⊢ 𝔅 (∼τ) 🡒 𝔅 (∼σ) := 𝔅.mono $ by cl_prover [h];
147147
cl_prover [this]
148148

149-
end🡒🡒
150-
🡒
149+
end
150+
151151
section
152152

153153
variable🡒
154154
[L.ReferenceableBy L] {T₀ 🡒 : Theory L} [T₀ ⪯ T]
155155
{𝔅 : Provability T₀ T}🡒
156156
{σ τ : Sentence L}
157157

158-
lemma mono' [𝔅.Mono] (h : T₀ ⊢ σ τ) : T₀ ⊢ 𝔅 σ 𝔅 τ := 𝔅.mono $ WeakerThan.pbl h
158+
lemma mono' [𝔅.Mono] (h : T₀ ⊢ σ 🡒 τ) : T₀ ⊢ 𝔅 σ 🡒 𝔅 τ := 𝔅.mono $ WeakerThan.pbl h
159159
lemma ext' [𝔅.Ext] (h : T₀ ⊢ σ 🡘 τ) : T₀ ⊢ 𝔅 σ 🡘 𝔅 τ := 𝔅.ext $ WeakerThan.pbl h
160-
🡒
161-
end🡒🡒
162-
🡒🡒🡒
160+
161+
end
162+
163163
end Provability
164164

165165

@@ -182,13 +182,13 @@ def gödel [L.ReferenceableBy L] {T₀ T : Theory L} [Diagonalization T₀] (
182182
fixedpoint T₀ “x. ¬!𝔅.prov x”🡒
183183

184184
lemma gödel_spec : T₀ ⊢ (gödel 𝔅) 🡘 ∼𝔅 (gödel 𝔅) := by simpa [gödel] using diag “x. ¬!𝔅.prov x”;
185-
🡒🡒
185+
186186
section First
187187

188-
variable [L.DecidableEq]🡒🡒
188+
variable [L.DecidableEq]
189189
variable [T₀ ⪯ T] [Consistent T]
190190

191-
theorem unprovable_gödel : T ⊬ (gödel 𝔅) := by🡒🡒
191+
theorem unprovable_gödel : T ⊬ (gödel 𝔅) := by
192192
intro h;
193193
have h₁ : T ⊢ 𝔅 (gödel 𝔅) := WeakerThan.pbl $ D1 h;
194194
have h₂ : T ⊢ (gödel 𝔅) 🡘 ∼𝔅 (gödel 𝔅) := WeakerThan.pbl $ gödel_spec;
@@ -219,23 +219,23 @@ section Second
219219
variable [𝔅.HBL]
220220

221221
omit [Diagonalization T₀] in
222-
lemma formalized_consistent_of_existance_unprovable [L.DecidableEq] : T₀ ⊢ ∼𝔅 σ 𝔅.con := contra! $ mdp! D2 $ D1 efq!
222+
lemma formalized_consistent_of_existance_unprovable [L.DecidableEq] : T₀ ⊢ ∼𝔅 σ 🡒 𝔅.con := contra! $ mdp! D2 $ D1 efq!
223223

224224
local notation "𝐆" => gödel 𝔅
225225

226226
variable [L.DecidableEq] [T₀ ⪯ T]
227227

228228
/-- Formalized First Incompleteness Theorem -/
229-
theorem formalized_unprovable_gödel : T₀ ⊢ 𝔅.con ∼𝔅 𝐆 := by
230-
suffices T₀ ⊢ ∼𝔅 ⊥ ∼𝔅 𝐆 from this
231-
have h₁ : T₀ ⊢ 𝔅 𝐆 𝔅 (𝔅 𝐆) := D3
232-
have h₂ : T₀ ⊢ 𝔅 𝐆 𝔅 (𝔅 𝐆 ⊥) := 𝔅.mono' $ by cl_prover [gödel_spec (T₀ := T₀)]
233-
have h₃ : T₀ ⊢ 𝔅 (𝔅 𝐆 ⊥) 𝔅 (𝔅 𝐆) 𝔅 ⊥ := D2
229+
theorem formalized_unprovable_gödel : T₀ ⊢ 𝔅.con 🡒 ∼𝔅 𝐆 := by
230+
suffices T₀ ⊢ ∼𝔅 ⊥ 🡒 ∼𝔅 𝐆 from this
231+
have h₁ : T₀ ⊢ 𝔅 𝐆 🡒 𝔅 (𝔅 𝐆) := D3
232+
have h₂ : T₀ ⊢ 𝔅 𝐆 🡒 𝔅 (𝔅 𝐆 🡒 ⊥) := 𝔅.mono' $ by cl_prover [gödel_spec (T₀ := T₀)]
233+
have h₃ : T₀ ⊢ 𝔅 (𝔅 𝐆 🡒 ⊥) 🡒 𝔅 (𝔅 𝐆) 🡒 𝔅 ⊥ := D2
234234
cl_prover [h₁, h₂, h₃]
235235

236236
theorem gödel_iff_con : T₀ ⊢ 𝐆 🡘 𝔅.con := by
237-
have h₁ : T₀ ⊢ ∼𝔅 𝐆 𝔅.con := formalized_consistent_of_existance_unprovable
238-
have h₂ : T₀ ⊢ 𝔅.con ∼𝔅 𝐆 := formalized_unprovable_gödel
237+
have h₁ : T₀ ⊢ ∼𝔅 𝐆 🡒 𝔅.con := formalized_consistent_of_existance_unprovable
238+
have h₂ : T₀ ⊢ 𝔅.con 🡒 ∼𝔅 𝐆 := formalized_unprovable_gödel
239239
have h₃ : T₀ ⊢ 𝐆 🡘 ∼𝔅 𝐆 := gödel_spec
240240
cl_prover [h₁, h₂, h₃];
241241

@@ -255,51 +255,51 @@ theorem con_independent [Consistent T] [𝔅.Kreisel] : Independent T 𝔅.con :
255255
constructor🡒
256256
. apply con_unprovab🡒e
257257
. apply con_unrefutab🡒e
258-
🡒🡒
258+
259259
end Second
260-
🡒🡒🡒
260+
261261

262262
section Löb
263263

264264
def kreisel [Diagonaliza🡒ion T₀] (𝔅 : Provability T₀ T) (σ : Sentence L) : Sentence L := fixedpoint T₀ “x. !𝔅.prov x → !σ”
265-
🡒
265+
266266
variable {σ : Sentence L}
267267

268268
local notation "𝐊" => kreisel 𝔅
269269

270-
lemma kreisel_spec : T₀ ⊢ (𝐊 σ) 🡘 (𝔅 (𝐊 σ) σ) := by
270+
lemma kreisel_spec : T₀ ⊢ (𝐊 σ) 🡘 (𝔅 (𝐊 σ) 🡒 σ) := by
271271
simpa [kreisel, Rew.subst_comp_subst, ←TransitiveRewriting.comp_app] using diag “x. !𝔅.prov x → !σ”;
272272

273-
private lemma kreisel_specAux₂ : T₀ ⊢ (𝔅 (𝐊 σ) σ) (𝐊 σ) := K!_right kreisel_spec
273+
private lemma kreisel_specAux₂ : T₀ ⊢ (𝔅 (𝐊 σ) 🡒 σ) 🡒 (𝐊 σ) := K!_right kreisel_spec
274274

275275
variable [𝔅.HBL]
276276

277-
private lemma kreisel_specAux₁ [L.DecidableEq] [T₀ ⪯ T] : T₀ ⊢ 𝔅 (𝐊 σ) 𝔅 σ :=
277+
private lemma kreisel_specAux₁ [L.DecidableEq] [T₀ ⪯ T] : T₀ ⊢ 𝔅 (𝐊 σ) 🡒 𝔅 σ :=
278278
Entailment.mdp₁! (C!_trans (mdp! D2 (D1 (WeakerThan.pbl <| K!_left (kreisel_spec)))) D2) D3
279279

280280
variable [L.DecidableEq] [T₀ ⪯ T]
281281

282-
theorem löb_theorem (H : T ⊢ 𝔅 σ σ) : T ⊢ σ := by
283-
have d₁ : T ⊢ 𝔅 (𝐊 σ) σ := C!_trans (WeakerThan.pbl kreisel_specAux₁) H;
282+
theorem löb_theorem (H : T ⊢ 𝔅 σ 🡒 σ) : T ⊢ σ := by
283+
have d₁ : T ⊢ 𝔅 (𝐊 σ) 🡒 σ := C!_trans (WeakerThan.pbl kreisel_specAux₁) H;
284284
have d₂ : T ⊢ 𝔅 (𝐊 σ) := WeakerThan.pbl $ D1 $ WeakerThan.pbl kreisel_specAux₂ ⨀ d₁;
285285
exact d₁ ⨀ d₂;
286286

287-
theorem formalized_löb_theorem : T₀ ⊢ 𝔅 (𝔅 σ σ) 𝔅 σ := by
288-
have h₁ : T₀ ⊢ 𝔅 (𝐊 σ) 𝔅 σ := kreisel_specAux₁;
289-
have h₂ : T₀ ⊢ (𝔅 σ σ) (𝔅 (𝐊 σ) σ) := CCC!_of_C!_left h₁;
290-
have h₃ : T ⊢ (𝔅 σ σ) 𝐊 σ := WeakerThan.pbl $ C!_trans (CCC!_of_C!_left h₁) kreisel_specAux₂;
287+
theorem formalized_löb_theorem : T₀ ⊢ 𝔅 (𝔅 σ 🡒 σ) 🡒 𝔅 σ := by
288+
have h₁ : T₀ ⊢ 𝔅 (𝐊 σ) 🡒 𝔅 σ := kreisel_specAux₁;
289+
have h₂ : T₀ ⊢ (𝔅 σ 🡒 σ) 🡒 (𝔅 (𝐊 σ) 🡒 σ) := CCC!_of_C!_left h₁;
290+
have h₃ : T ⊢ (𝔅 σ 🡒 σ) 🡒 𝐊 σ := WeakerThan.pbl $ C!_trans (CCC!_of_C!_left h₁) kreisel_specAux₂;
291291
exact C!_trans (D2 ⨀ (D1 h₃)) h₁;
292292

293-
lemma formalized_unprovable_not_con [Consistent T] [𝔅.Kreisel] : T ⊬ 𝔅.con ∼𝔅 (∼𝔅.con) := by
293+
lemma formalized_unprovable_not_con [Consistent T] [𝔅.Kreisel] : T ⊬ 𝔅.con 🡒 ∼𝔅 (∼𝔅.con) := by
294294
by_contra hC;
295295
have : T ⊢ ∼𝔅.con := löb_theorem $ CN!_of_C🡒!_right hC;
296296
have : T ⊬ ∼𝔅.con := con_unrefutable;
297297
contradiction;
298-
🡒🡒
299-
lemma formalized_unrefutable_gödel [Consistent T] [𝔅.Kreisel] : T ⊬ 𝔅.con ∼𝔅 (∼(gödel 𝔅)) := by
298+
299+
lemma formalized_unrefutable_gödel [Consistent T] [𝔅.Kreisel] : T ⊬ 𝔅.con 🡒 ∼𝔅 (∼(gödel 𝔅)) := by
300300
by_contra hC;
301-
have : T ⊬ 𝔅.con ∼𝔅 (∼𝔅.con) := formalized_unprovable_not_con;
302-
have : T ⊢ 𝔅.con ∼𝔅 (∼𝔅.con) := C!_trans hC🡒
301+
have : T ⊬ 𝔅.con 🡒 ∼𝔅 (∼𝔅.con) := formalized_unprovable_not_con;
302+
have : T ⊢ 𝔅.con 🡒 ∼𝔅 (∼𝔅.con) := C!_trans hC🡒
303303
$ WeakerThan.pbl
304304
$ K!_left $ ENN!_of_E!
305305
$ 𝔅.ext
@@ -311,9 +311,9 @@ end Löb
311311

312312

313313
section Rosser
314-
🡒🡒
314+
315315
variable {T₀ T : Theory L} 🡒Diagonalization T₀] [T₀ ⪯ T] [Consistent T] {𝔅 : Provability T₀ T}
316-
🡒🡒🡒
316+
317317
local notation "𝐑"🡒=> g🡒del 𝔅
318318

319319
theorem unrefutable_rosser [𝔅.Rosser] : T ⊬ ∼𝐑 := by
@@ -327,7 +327,7 @@ theorem rosser_independent [L.DecidableEq] [𝔅.Rosser] : Independent T 𝐑 :=
327327
constructor
328328
. apply unprovable_gödel
329329
. apply unrefutable_rosser
330-
🡒
330+
331331
theorem rosser_first_incompleteness [L.DecidableEq] (𝔅 : Provability T₀ T) [𝔅.Rosser] : Incomplete T :=
332332
incomplete_def.mpr ⟨gödel 𝔅, rosser_independent⟩
333333

@@ -336,7 +336,7 @@ omit [Diagonalization T₀] [Consistent T] in
336336
theorem kreisel_remark [𝔅.Rosser] : T ⊢ 𝔅.con := by🡒
337337
have : T₀ ⊢ ∼𝔅 ⊥ := Ros (N!_iff_CO!.mpr (by simp));
338338
exact WeakerThan.p🡒l $ this;
339-
🡒
339+
340340
end Rosser
341341

342342
end ProvabilityAbstraction

Foundation/FirstOrder/Incompleteness/ProvabilityAbstraction/Height.lean

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -35,9 +35,9 @@ lemma boxBot_monotone [T₀ ⪯ T] [𝔅.HBL] : n ≤ m → T ⊢ 𝔅^[n] ⊥
3535
match n with
3636
| 0 => simp;
3737
| n + 1 =>
38-
have : T ⊢ 𝔅 ((𝔅)^[n] 🡒) 𝔅 (𝔅 ((𝔅)^[n] ⊥)) := Entailment.WeakerThan.pbl $ 𝔅.D3;
38+
have : T ⊢ 𝔅 ((𝔅)^[n] 🡒) 🡒 𝔅 (𝔅 ((𝔅)^[n] ⊥)) := Entailment.WeakerThan.pbl $ 𝔅.D3;
3939
simpa only [Function.iterate_succ_apply'] using this
40-
have b₁ : T ⊢ 𝔅 (𝔅^[n] ⊥) 𝔅 (𝔅^[n + k] ⊥) := Entailment.WeakerThan.pbl $ 𝔅.mono ih;
40+
have b₁ : T ⊢ 𝔅 (𝔅^[n] ⊥) 🡒 𝔅 (𝔅^[n + k] ⊥) := Entailment.WeakerThan.pbl $ 𝔅.mono ih;
4141
cl_prover [b₀, b₁]
4242

4343
lemma iIncon_unprovable_of_sigma1_sound [𝔅.Kreisel] [Entailment.Consistent T] : ∀ n, T ⊬ 𝔅^[n] ⊥

Foundation/FirstOrder/Incompleteness/StandardProvability.lean

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -67,9 +67,9 @@ theorem provable_D3 [𝗣𝗔⁻ ⪯ T] {σ : Sentence ℒₒᵣ} :
6767

6868
open LO.Entailment LO.Entailment.FiniteContext
6969

70-
lemma provable_D2_context [𝗜𝚺₁ ⪯ U] {Γ σ π} (hσπ : Γ ⊢[U] □(σ π)) (hσ : Γ ⊢[U] □σ) :
70+
lemma provable_D2_context [𝗜𝚺₁ ⪯ U] {Γ σ π} (hσπ : Γ ⊢[U] □(σ 🡒 π)) (hσ : Γ ⊢[U] □σ) :
7171
Γ ⊢[U] □π := FiniteContext.of'! (weakening inferInstance provable_D2) ⨀! hσπ ⨀! hσ
72-
🡒
72+
7373
lemma provable_D3_context [𝗣𝗔⁻ ⪯ T] [𝗜𝚺₁ ⪯ U] {Γ σ} (hσπ : Γ ⊢[U] □σ) :
7474
Γ ⊢[U] □□σ := FiniteContext.of'! (weakening inferInstance provable_D3) ⨀! hσπ
7575

@@ -89,10 +89,10 @@ instance [T.SoundOnHierarchy 𝚺 1] : T.standardProvability.Kreisel := ⟨fun h
8989
open LO.Entailment in
9090
/--
9191
If `π` is equivalent to some 𝚺₁ sentence `σ`,
92-
then `π □π` is provable in `T` (note: not `𝗜𝚺₁`, compare `provable_sigma_one_complete`)
92+
then `π 🡒 □π` is provable in `T` (note: not `𝗜𝚺₁`, compare `provable_sigma_one_complete`)
9393
-/
9494
lemma prov🡒ble_sigma_one_complete_of_E {σ π} [𝗜𝚺₁ ⪯ T]
95-
(hσ : Hierarchy 𝚺 1 σ) (hσπ : 𝗜𝚺₁ ⊢ σ 🡘 π) : 𝗜𝚺₁ ⊢ π □π := by
95+
(hσ : Hierarchy 𝚺 1 σ) (hσπ : 𝗜𝚺₁ ⊢ σ 🡘 π) : 𝗜𝚺₁ ⊢ π 🡒 □π := by
9696
apply C!_replace ?_ ?_ $ provable_sigma_one_complete (T := T) $ hσ;
9797
. cl_prover [hσπ];🡒
9898
. apply T.standardProvability.mono';

0 commit comments

Comments
 (0)