You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardexpand all lines: GoldbachTm/Tm25/Content.lean
+15-15
Original file line number
Diff line number
Diff line change
@@ -1,20 +1,20 @@
1
-
import GoldbachTm.Tm26.TuringMachine26
2
-
import GoldbachTm.Tm26.Search0
3
-
import GoldbachTm.Tm26.PBP
1
+
import GoldbachTm.Tm25.TuringMachine25
2
+
import GoldbachTm.Tm25.Search0
3
+
import GoldbachTm.Tm25.PBP
4
4
import Mathlib.Data.Nat.Prime.Defs
5
5
6
-
namespaceTm26
6
+
namespaceTm25
7
7
8
-
theoremlemma_22 (n : ℕ) (i : ℕ)
8
+
theoremlemma_21 (n : ℕ) (i : ℕ)
9
9
(even_n : Even (n+2))
10
10
(g :
11
-
nth_cfg i = some ⟨⟨22, by omega⟩, ⟨Γ.zero, Turing.ListBlank.mk (List.replicate (n+4) Γ.one), Turing.ListBlank.mk []⟩⟩ )
11
+
nth_cfg i = some ⟨⟨21, by omega⟩, ⟨Γ.zero, Turing.ListBlank.mk (List.replicate (n+4) Γ.one), Turing.ListBlank.mk []⟩⟩ )
12
12
( hpp : Goldbach (n+4)) :
13
-
∃ j>i, nth_cfg j = some ⟨⟨22, by omega⟩, ⟨Γ.zero, Turing.ListBlank.mk (List.replicate (n+4+2) Γ.one), Turing.ListBlank.mk []⟩⟩
13
+
∃ j>i, nth_cfg j = some ⟨⟨21, by omega⟩, ⟨Γ.zero, Turing.ListBlank.mk (List.replicate (n+4+2) Γ.one), Turing.ListBlank.mk []⟩⟩
14
14
:= by
15
15
forward g
16
16
repeat rw [← List.replicate_succ] at g
17
-
apply (leap_18 _ _ 0) at g
17
+
apply (leap_17 _ _ 0) at g
18
18
any_goals omega
19
19
any_goals assumption
20
20
refine (?_ ∘ g) ?_
@@ -40,7 +40,7 @@ refine (?_ ∘ g) ?_
40
40
41
41
lemmanever_halt_step (n : ℕ) :
42
42
(∀ i < n, Goldbach (2*i+4)) ->
43
-
∃ j, nth_cfg j = some ⟨⟨22, by omega⟩, ⟨Γ.zero, Turing.ListBlank.mk (List.replicate (2*n+4) Γ.one), Turing.ListBlank.mk []⟩⟩
43
+
∃ j, nth_cfg j = some ⟨⟨21, by omega⟩, ⟨Γ.zero, Turing.ListBlank.mk (List.replicate (2*n+4) Γ.one), Turing.ListBlank.mk []⟩⟩
44
44
:= by
45
45
induction n with
46
46
| zero =>
@@ -54,7 +54,7 @@ refine (?_ ∘ induction_step) ?_
54
54
. intros g
55
55
obtain ⟨j, g⟩ := g
56
56
specialize h n (by omega)
57
-
apply lemma_22 at g
57
+
apply lemma_21 at g
58
58
. specialize g h
59
59
obtain ⟨k, g⟩ := g
60
60
use k
@@ -73,7 +73,7 @@ apply never_halt_step at IH
73
73
obtain ⟨j, g⟩ := IH
74
74
forward g
75
75
repeat rw [← List.replicate_succ] at g
76
-
apply (leap_18_halt _ _ 0) at g
76
+
apply (leap_17_halt _ _ 0) at g
77
77
any_goals omega
78
78
by_contra! h
79
79
refine (?_ ∘ g) ?_
@@ -88,10 +88,10 @@ refine (?_ ∘ g) ?_
88
88
89
89
theoremhalt_lemma_rev' (h : ∀ n, Goldbach (2*n+4)) :
90
90
∀ i, nth_cfg i ≠ none := by
91
-
apply propagating_induction (fun i => nth_cfg i ≠ none) (fun i n => nth_cfg i = some ⟨⟨22, by omega⟩, ⟨Γ.zero, Turing.ListBlank.mk (List.replicate (2*n+4) Γ.one), Turing.ListBlank.mk []⟩⟩) 45
91
+
apply propagating_induction (fun i => nth_cfg i ≠ none) (fun i n => nth_cfg i = some ⟨⟨21, by omega⟩, ⟨Γ.zero, Turing.ListBlank.mk (List.replicate (2*n+4) Γ.one), Turing.ListBlank.mk []⟩⟩) 45
92
92
. simp [cfg45]; tauto
93
93
. intros i n g
94
-
apply (lemma_22 (2*n)) at g
94
+
apply (lemma_21 (2*n)) at g
95
95
. specialize g (h _)
96
96
obtain ⟨j, g⟩ := g
97
97
use j
@@ -120,7 +120,7 @@ by rw [← Mathlib.Tactic.PushNeg.not_not_eq (Goldbach (2*i+4))]
0 commit comments