Current library: Alpha v34, 4,223 checked-use theorems; Stable remains 432. Historical first admissions, original proof editions, and non-admitted aliases are preserved. Exact original first-admission records.
Exact theorem in conservative defined notation
∀ b. ∀ c. ∀ t. ∀ l. ∀ n. ∀ u. ∀ v. ∀ m. ∀ w. ∀ d. Beta(u,v,0,0) ∧ (Beta(u,v,l,n) ∧ (∀ x. Lt(x,l) → ∃ y. ∃ z. ∃ k. Beta(b,c,x,y) ∧ (Beta(u,v,x,z) ∧ (Beta(u,v,S x,k) ∧ k = z · t + y)))) → Beta(w,d,0,0) ∧ (Beta(w,d,l,m) ∧ (∀ x. Lt(x,l) → ∃ y. ∃ z. ∃ k. Beta(b,c,x,y) ∧ (Beta(w,d,x,z) ∧ (Beta(w,d,S x,k) ∧ k = z · t + y)))) → n = m
Every linked abbreviation expands hygienically to the identical original native formula.
Definition DAG
Actual proof prerequisites
Complete unchanged native tactic proof
All 160 lines are the exact independently kernel-checked original script.
Read the argument
Proof checkpoints
This is a reading aid, not a new proof or a proof-tree certificate. Checkpoint groups are consecutive commands, not inferred branch boundaries. Every step links to the preserved script.
01Fix variables and assumptionsL1–3
02Induction on lL4–12
03Separate the logical casesL13–16
04Establish hnL17–25
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply beta at unique.
05Establish hmL26–35
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply beta at unique.
06Use earlier factsL36–36
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L36
exact hn
07Calculate and transport equalitiesL37–37
Carry out the recorded arithmetic or equality steps; inspect the exact commands for their direction and premises.
- L37
symm
08Use earlier factsL38–38
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L38
exact hm
09Fix variables and assumptionsL39–46
10Separate the logical casesL47–50
11Establish hstep1L51–55
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply h1 right right.
12Separate the logical casesL56–61
13Establish hstep2L62–66
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply h2 right right.
14Separate the logical casesL67–72
15Establish hnL73–81
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply beta at unique.
16Establish hmL82–90
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply beta at unique.
17Establish haL91–99
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply beta at unique.
18Establish hsum1L100–100
Establish this local claim before using it. It is not an additional assumption.
- L100
have hsum1 : Beta(u,v,0,0) ∧ (Beta(u,v,l,x1) ∧ (∀ x. Lt(x,l) → ∃ y. ∃ z. ∃ n. Beta(b,c,x,y) ∧ (Beta(u,v,x,z) ∧ (Beta(u,v,S x,n) ∧ n = z · t + y))))Definitions: BetaLtOriginal native command in the exact edition
19Separate the logical casesL101–101
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L101
split
20Use earlier factsL102–102
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L102
exact h1_left
21Separate the logical casesL103–103
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L103
split
22Use earlier factsL104–104
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L104
exact hstep1_witness_witness_witness_right_left
23Fix variables and assumptionsL105–106
24Use earlier factsL107–112
25Establish hsum2L113–113
Establish this local claim before using it. It is not an additional assumption.
- L113
have hsum2 : Beta(w,d,0,0) ∧ (Beta(w,d,l,x4) ∧ (∀ x. Lt(x,l) → ∃ y. ∃ z. ∃ n. Beta(b,c,x,y) ∧ (Beta(w,d,x,z) ∧ (Beta(w,d,S x,n) ∧ n = z · t + y))))Definitions: BetaLtOriginal native command in the exact edition
26Separate the logical casesL114–114
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L114
split
27Use earlier factsL115–115
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L115
exact h2_left
28Separate the logical casesL116–116
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L116
split
29Use earlier factsL117–117
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L117
exact hstep2_witness_witness_witness_right_left
30Fix variables and assumptionsL118–119
31Use earlier factsL120–125
32Establish hprevL126–135
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply IH.
33Establish haddL136–145
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply add congr.
34Use earlier factsL146–147
35Calculate and transport equalitiesL148–148
Carry out the recorded arithmetic or equality steps; inspect the exact commands for their direction and premises.
- L148
refl
36Use earlier factsL149–149
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L149
exact ha
37Calculate and transport equalitiesL150–150
Carry out the recorded arithmetic or equality steps; inspect the exact commands for their direction and premises.
- L150
trans x2
38Use earlier factsL151–151
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L151
exact hn
39Calculate and transport equalitiesL152–152
Carry out the recorded arithmetic or equality steps; inspect the exact commands for their direction and premises.
- L152
trans x1 * t + x
40Use earlier factsL153–153
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L153
exact hstep1_witness_witness_witness_right_right_right
41Calculate and transport equalitiesL154–154
Carry out the recorded arithmetic or equality steps; inspect the exact commands for their direction and premises.
- L154
trans x4 * t + x3
42Use earlier factsL155–155
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L155
exact hadd
43Calculate and transport equalitiesL156–157
44Use earlier factsL158–158
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L158
exact hstep2_witness_witness_witness_right_right_right
45Calculate and transport equalitiesL159–159
Carry out the recorded arithmetic or equality steps; inspect the exact commands for their direction and premises.
- L159
symm
46Use earlier factsL160–160
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L160
exact hm
Original defined command ledger · 160 lines
- 0001
intro b - 0002
intro c - 0003
intro t - 0004
induction l - 0005
intro n - 0006
intro u - 0007
intro v - 0008
intro m - 0009
intro w - 0010
intro d - 0011
intro h1 - 0012
intro h2 - 0013
cases h1 - 0014
cases h1_right - 0015
cases h2 - 0016
cases h2_right - 0017
have hn : n = 0 - 0018
specialize beta_at_unique u - 0019
specialize beta_at_unique v - 0020
specialize beta_at_unique 0 - 0021
specialize beta_at_unique n - 0022
specialize beta_at_unique 0 - 0023
apply beta_at_unique - 0024
exact h1_right_left - 0025
exact h1_left - 0026
have hm : m = 0 - 0027
specialize beta_at_unique w - 0028
specialize beta_at_unique d - 0029
specialize beta_at_unique 0 - 0030
specialize beta_at_unique m - 0031
specialize beta_at_unique 0 - 0032
apply beta_at_unique - 0033
exact h2_right_left - 0034
exact h2_left - 0035
trans 0 - 0036
exact hn - 0037
symm - 0038
exact hm - 0039
intro n - 0040
intro u - 0041
intro v - 0042
intro m - 0043
intro w - 0044
intro d - 0045
intro h1 - 0046
intro h2 - 0047
cases h1 - 0048
cases h1_right - 0049
cases h2 - 0050
cases h2_right - 0051
have hstep1 : exists a r s. ((((exists fs_h_functional_step1_factor. fs_h_functional_step1_factor + S (a) = S ((S (l)) * c)) /\ exists fs_q_functional_step1_factor. b = fs_q_functional_step1_factor * S ((S (l)) * c) + (a))) /\ ((((exists fs_h_functional_step1_partial. fs_h_functional_step1_partial + S (r) = S ((S (l)) * v)) /\ exists fs_q_functional_step1_partial. u = fs_q_functional_step1_partial * S ((S (l)) * v) + (r))) /\ ((((exists fs_h_functional_step1_successor. fs_h_functional_step1_successor + S (s) = S ((S (S l)) * v)) /\ exists fs_q_functional_step1_successor. u = fs_q_functional_step1_successor * S ((S (S l)) * v) + (s))) /\ s = r * t + a))) - 0052
specialize h1_right_right l - 0053
apply h1_right_right - 0054
specialize le_refl (S l) - 0055
exact le_refl - 0056
cases hstep1 - 0057
cases hstep1_witness - 0058
cases hstep1_witness_witness - 0059
cases hstep1_witness_witness_witness - 0060
cases hstep1_witness_witness_witness_right - 0061
cases hstep1_witness_witness_witness_right_right - 0062
have hstep2 : exists a r s. ((((exists fs_h_functional_step2_factor. fs_h_functional_step2_factor + S (a) = S ((S (l)) * c)) /\ exists fs_q_functional_step2_factor. b = fs_q_functional_step2_factor * S ((S (l)) * c) + (a))) /\ ((((exists fs_h_functional_step2_partial. fs_h_functional_step2_partial + S (r) = S ((S (l)) * d)) /\ exists fs_q_functional_step2_partial. w = fs_q_functional_step2_partial * S ((S (l)) * d) + (r))) /\ ((((exists fs_h_functional_step2_successor. fs_h_functional_step2_successor + S (s) = S ((S (S l)) * d)) /\ exists fs_q_functional_step2_successor. w = fs_q_functional_step2_successor * S ((S (S l)) * d) + (s))) /\ s = r * t + a))) - 0063
specialize h2_right_right l - 0064
apply h2_right_right - 0065
specialize le_refl (S l) - 0066
exact le_refl - 0067
cases hstep2 - 0068
cases hstep2_witness - 0069
cases hstep2_witness_witness - 0070
cases hstep2_witness_witness_witness - 0071
cases hstep2_witness_witness_witness_right - 0072
cases hstep2_witness_witness_witness_right_right - 0073
have hn : n = x2 - 0074
specialize beta_at_unique u - 0075
specialize beta_at_unique v - 0076
specialize beta_at_unique (S l) - 0077
specialize beta_at_unique n - 0078
specialize beta_at_unique x2 - 0079
apply beta_at_unique - 0080
exact h1_right_left - 0081
exact hstep1_witness_witness_witness_right_right_left - 0082
have hm : m = x5 - 0083
specialize beta_at_unique w - 0084
specialize beta_at_unique d - 0085
specialize beta_at_unique (S l) - 0086
specialize beta_at_unique m - 0087
specialize beta_at_unique x5 - 0088
apply beta_at_unique - 0089
exact h2_right_left - 0090
exact hstep2_witness_witness_witness_right_right_left - 0091
have ha : x = x3 - 0092
specialize beta_at_unique b - 0093
specialize beta_at_unique c - 0094
specialize beta_at_unique l - 0095
specialize beta_at_unique x - 0096
specialize beta_at_unique x3 - 0097
apply beta_at_unique - 0098
exact hstep1_witness_witness_witness_left - 0099
exact hstep2_witness_witness_witness_left - 0100
have hsum1 : ((((exists fs_h_ph_prefix_left_start. fs_h_ph_prefix_left_start + S (0) = S ((S (0)) * v)) /\ exists fs_q_ph_prefix_left_start. u = fs_q_ph_prefix_left_start * S ((S (0)) * v) + (0))) /\ ((((exists fs_h_ph_prefix_left_terminal. fs_h_ph_prefix_left_terminal + S (x1) = S ((S (l)) * v)) /\ exists fs_q_ph_prefix_left_terminal. u = fs_q_ph_prefix_left_terminal * S ((S (l)) * v) + (x1))) /\ forall ff_i_ph_prefix_left_steps. (exists ph_bound_prefix_left_steps. ph_bound_prefix_left_steps + S ff_i_ph_prefix_left_steps = l) -> exists ff_coefficient_ph_prefix_left_steps ff_previous_ph_prefix_left_steps ff_current_ph_prefix_left_steps. ((((exists fs_h_ph_prefix_left_steps_coefficient. fs_h_ph_prefix_left_steps_coefficient + S (ff_coefficient_ph_prefix_left_steps) = S ((S (ff_i_ph_prefix_left_steps)) * c)) /\ exists fs_q_ph_prefix_left_steps_coefficient. b = fs_q_ph_prefix_left_steps_coefficient * S ((S (ff_i_ph_prefix_left_steps)) * c) + (ff_coefficient_ph_prefix_left_steps))) /\ ((((exists fs_h_ph_prefix_left_steps_before. fs_h_ph_prefix_left_steps_before + S (ff_previous_ph_prefix_left_steps) = S ((S (ff_i_ph_prefix_left_steps)) * v)) /\ exists fs_q_ph_prefix_left_steps_before. u = fs_q_ph_prefix_left_steps_before * S ((S (ff_i_ph_prefix_left_steps)) * v) + (ff_previous_ph_prefix_left_steps))) /\ ((((exists fs_h_ph_prefix_left_steps_after. fs_h_ph_prefix_left_steps_after + S (ff_current_ph_prefix_left_steps) = S ((S (S ff_i_ph_prefix_left_steps)) * v)) /\ exists fs_q_ph_prefix_left_steps_after. u = fs_q_ph_prefix_left_steps_after * S ((S (S ff_i_ph_prefix_left_steps)) * v) + (ff_current_ph_prefix_left_steps))) /\ ff_current_ph_prefix_left_steps = ff_previous_ph_prefix_left_steps * t + ff_coefficient_ph_prefix_left_steps))))) - 0101
split - 0102
exact h1_left - 0103
split - 0104
exact hstep1_witness_witness_witness_right_left - 0105
intro i - 0106
intro hi - 0107
specialize h1_right_right i - 0108
apply h1_right_right - 0109
specialize le_succ (S i) - 0110
specialize le_succ l - 0111
apply le_succ - 0112
exact hi - 0113
have hsum2 : ((((exists fs_h_ph_prefix_right_start. fs_h_ph_prefix_right_start + S (0) = S ((S (0)) * d)) /\ exists fs_q_ph_prefix_right_start. w = fs_q_ph_prefix_right_start * S ((S (0)) * d) + (0))) /\ ((((exists fs_h_ph_prefix_right_terminal. fs_h_ph_prefix_right_terminal + S (x4) = S ((S (l)) * d)) /\ exists fs_q_ph_prefix_right_terminal. w = fs_q_ph_prefix_right_terminal * S ((S (l)) * d) + (x4))) /\ forall ff_i_ph_prefix_right_steps. (exists ph_bound_prefix_right_steps. ph_bound_prefix_right_steps + S ff_i_ph_prefix_right_steps = l) -> exists ff_coefficient_ph_prefix_right_steps ff_previous_ph_prefix_right_steps ff_current_ph_prefix_right_steps. ((((exists fs_h_ph_prefix_right_steps_coefficient. fs_h_ph_prefix_right_steps_coefficient + S (ff_coefficient_ph_prefix_right_steps) = S ((S (ff_i_ph_prefix_right_steps)) * c)) /\ exists fs_q_ph_prefix_right_steps_coefficient. b = fs_q_ph_prefix_right_steps_coefficient * S ((S (ff_i_ph_prefix_right_steps)) * c) + (ff_coefficient_ph_prefix_right_steps))) /\ ((((exists fs_h_ph_prefix_right_steps_before. fs_h_ph_prefix_right_steps_before + S (ff_previous_ph_prefix_right_steps) = S ((S (ff_i_ph_prefix_right_steps)) * d)) /\ exists fs_q_ph_prefix_right_steps_before. w = fs_q_ph_prefix_right_steps_before * S ((S (ff_i_ph_prefix_right_steps)) * d) + (ff_previous_ph_prefix_right_steps))) /\ ((((exists fs_h_ph_prefix_right_steps_after. fs_h_ph_prefix_right_steps_after + S (ff_current_ph_prefix_right_steps) = S ((S (S ff_i_ph_prefix_right_steps)) * d)) /\ exists fs_q_ph_prefix_right_steps_after. w = fs_q_ph_prefix_right_steps_after * S ((S (S ff_i_ph_prefix_right_steps)) * d) + (ff_current_ph_prefix_right_steps))) /\ ff_current_ph_prefix_right_steps = ff_previous_ph_prefix_right_steps * t + ff_coefficient_ph_prefix_right_steps))))) - 0114
split - 0115
exact h2_left - 0116
split - 0117
exact hstep2_witness_witness_witness_right_left - 0118
intro i - 0119
intro hi - 0120
specialize h2_right_right i - 0121
apply h2_right_right - 0122
specialize le_succ (S i) - 0123
specialize le_succ l - 0124
apply le_succ - 0125
exact hi - 0126
have hprev : x1 = x4 - 0127
specialize IH x1 - 0128
specialize IH u - 0129
specialize IH v - 0130
specialize IH x4 - 0131
specialize IH w - 0132
specialize IH d - 0133
apply IH - 0134
exact hsum1 - 0135
exact hsum2 - 0136
have hadd : x1 * t + x = x4 * t + x3 - 0137
specialize add_congr (x1 * t) - 0138
specialize add_congr (x4 * t) - 0139
specialize add_congr x - 0140
specialize add_congr x3 - 0141
apply add_congr - 0142
specialize mul_congr x1 - 0143
specialize mul_congr x4 - 0144
specialize mul_congr t - 0145
specialize mul_congr t - 0146
apply mul_congr - 0147
exact hprev - 0148
refl - 0149
exact ha - 0150
trans x2 - 0151
exact hn - 0152
trans x1 * t + x - 0153
exact hstep1_witness_witness_witness_right_right_right - 0154
trans x4 * t + x3 - 0155
exact hadd - 0156
trans x5 - 0157
symm - 0158
exact hstep2_witness_witness_witness_right_right_right - 0159
symm - 0160
exact hm