@@ -52,19 +52,19 @@ variable
5252lemma D1 {𝔅 : Provability T₀ T} {σ :🡒Sent🡒nce L}🡒: T ⊢ σ → T₀ ⊢ 𝔅 σ := fun h ↦ 𝔅.bew_def h
5353
5454class HBL2 [L.ReferenceableBy L₀] {T₀ : Theory L₀} {T : Theory L} (𝔅 : Provability T₀ T) where
55- D2 {σ τ : Sentence L} : T₀ ⊢ 𝔅 (σ ➝ τ) ➝ 𝔅 σ ➝ 𝔅 τ
55+ D2 {σ τ : Sentence L} : T₀ ⊢ 𝔅 (σ 🡒 τ) 🡒 𝔅 σ 🡒 𝔅 τ
5656export HBL2 (D2)
5757
5858variable [L.ReferenceableBy L] {T₀🡒T : Theory L} (𝔅 : Provability T₀ T)
5959
6060class HBL3 where
61- D3 {σ : Sentence L} : T₀ ⊢ 𝔅 σ ➝ 𝔅 (𝔅 σ)
61+ D3 {σ : Sentence L} : T₀ ⊢ 𝔅 σ 🡒 𝔅 (𝔅 σ)
6262export HBL3 (D3)
6363
64- class HBL extends 𝔅.HBL2, 𝔅.HBL3🡒🡒
64+ class HBL extends 𝔅.HBL2, 𝔅.HBL3
6565
6666class 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₀ ⊢ 𝔅 σ 🡒 𝔅 τ
6868export Mono (mono)
6969
7070class 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-/
8484class FormalizedCompleteOn (𝔅 : Provability T₀ T) (σ) where
85- formalized_complete_on : T₀ ⊢ σ ➝ 𝔅 σ
85+ formalized_complete_on : T₀ ⊢ σ 🡒 𝔅 σ
8686export FormalizedCompleteOn (formalized_complete_on)
8787attribute [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
128128instance [𝔅.HBL2] : 𝔅.Mono := ⟨λ h => bew_distribute_imply $ D1 h⟩
129129instance [𝔅.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
136136lemma 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
144144lemma 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+
151151section
152152
153153variable 🡒
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
159159lemma ext' [𝔅.Ext] (h : T₀ ⊢ σ 🡘 τ) : T₀ ⊢ 𝔅 σ 🡘 𝔅 τ := 𝔅.ext $ WeakerThan.pbl h
160- 🡒
161- end 🡒🡒
162- 🡒🡒🡒
160+
161+ end
162+
163163end 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
184184lemma g ödel_spec : T₀ ⊢ (gödel 𝔅) 🡘 ∼𝔅 (gödel 𝔅) := by simpa [gödel] using diag “x. ¬!𝔅.prov x”;
185- 🡒🡒
185+
186186section First
187187
188- variable [L.DecidableEq]🡒🡒
188+ variable [L.DecidableEq]
189189variable [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
219219variable [𝔅.HBL]
220220
221221omit [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
224224local notation " 𝐆" => gödel 𝔅
225225
226226variable [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
236236theorem 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+
259259end Second
260- 🡒🡒🡒
260+
261261
262262section Löb
263263
264264def kreisel [Diagonaliza🡒ion T₀] (𝔅 : Provability T₀ T) (σ : Sentence L) : Sentence L := fixedpoint T₀ “x. !𝔅.prov x → !σ”
265- 🡒
265+
266266variable {σ : Sentence L}
267267
268268local 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
275275variable [𝔅.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
280280variable [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
313313section Rosser
314- 🡒🡒
314+
315315variable {T₀ T : Theory L} 🡒Diagonalization T₀] [T₀ ⪯ T] [Consistent T] {𝔅 : Provability T₀ T}
316- 🡒🡒🡒
316+
317317local notation " 𝐑" 🡒=> g🡒del 𝔅
318318
319319theorem 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+
331331theorem 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
336336theorem kreisel_remark [𝔅.Rosser] : T ⊢ 𝔅.con := by 🡒
337337 have : T₀ ⊢ ∼𝔅 ⊥ := Ros (N!_iff_CO!.mpr (by simp));
338338 exact WeakerThan.p🡒l $ this ;
339- 🡒
339+
340340end Rosser
341341
342342end ProvabilityAbstraction
0 commit comments