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.
Statement with defined notation
∀ b. ∀ c. ∀ i. ∀ s. ∀ k. Lt(i,k) → ∃ x. ∃ y. BetaAt(x,y,i,s) ∧ (∀ z. ∀ n. Lt(z,k) → ¬z = i → BetaAt(b,c,z,n) → BetaAt(x,y,z,n))Every purple notation token opens its conservative definition. This is a reading surface; the compiler expands the statement before the unchanged kernel checks it.
Definitions used by this theorem
In the theorem statement
5 occurrences
In local proof propositions
8 occurrences
Exact expanded native-PA statement
forall b c i s k. (exists h. h + S i = k) -> exists z d. ((((exists ff_h_replace_entry. ff_h_replace_entry + S (s) = S ((S (i)) * d)) /\ exists ff_q_replace_entry. z = ff_q_replace_entry * S ((S (i)) * d) + (s))) /\ forall j a. (exists h. h + S j = k) -> ~(j = i) -> (((exists ff_h_replace_old. ff_h_replace_old + S (a) = S ((S (j)) * c)) /\ exists ff_q_replace_old. b = ff_q_replace_old * S ((S (j)) * c) + (a))) -> (((exists ff_h_replace_new. ff_h_replace_new + S (a) = S ((S (j)) * d)) /\ exists ff_q_replace_new. z = ff_q_replace_new * S ((S (j)) * d) + (a))))Proof neighborhood
Direct theorem prerequisites
PA0004 add_eq_zero_right PA0005 succ_ne_zero PA003D finite_lt_succ_eq_or_lt PA002X beta_prefix_extend PA0029 beta_at_exists PA002F beta_at_uniqueDirect theorem dependents
Definition-aware tactic body
Only local propositions introduced by have or suffices are compacted. The untrusted compiler re-expands each one before the original tactic script is replayed; defined notation is never accepted by the kernel. Open the exact replay line beneath every changed command.
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.
Named ingredients (6)
01Fix variables and assumptionsL1–4
02Induction on kL5–6
03Separate the logical casesL7–8
04Establish hsiL9–17
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply add eq zero right.
05Establish hisplitL18–22
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply finite lt succ eq or lt.
06Separate the logical casesL23–23
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L23
cases hisplit
07Use earlier factsL24–27
08Separate the logical casesL28–30
09Construct an explicit witnessL31–32
10Separate the logical casesL33–33
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L33
split
11Calculate and transport equalitiesL34–35
12Use earlier factsL36–36
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L36
exact beta_prefix_extend_witness_witness_left
13Fix variables and assumptionsL37–41
14Establish hjsplitL42–46
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply finite lt succ eq or lt.
15Separate the logical casesL47–48
16Use earlier factsL49–49
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L49
apply hji
17Calculate and transport equalitiesL50–50
Carry out the recorded arithmetic or equality steps; inspect the exact commands for their direction and premises.
- L50
trans k
18Use earlier factsL51–51
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L51
exact hjsplit_left
19Calculate and transport equalitiesL52–52
Carry out the recorded arithmetic or equality steps; inspect the exact commands for their direction and premises.
- L52
symm
20Use earlier factsL53–58
Instantiate or apply named facts and discharge the corresponding proof obligations.
21Establish hreplacedL59–61
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply IH.
- L59
have hreplaced : ∃ z. ∃ d. BetaAt(z,d,i,s) ∧ (∀ x. ∀ y. Lt(x,k) → ¬x = i → BetaAt(b,c,x,y) → BetaAt(z,d,x,y))Definitions: BetaAt(z,d,i,s)Lt(x,k)BetaAt(b,c,x,y)BetaAt(z,d,x,y)Original native command in the exact edition - L60
apply IH - L61
exact hisplit_right
22Separate the logical casesL62–64
23Use earlier factsL65–67
24Separate the logical casesL68–68
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L68
cases beta_at_exists
25Use earlier factsL69–72
26Separate the logical casesL73–75
27Construct an explicit witnessL76–77
28Separate the logical casesL78–78
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L78
split
29Use earlier factsL79–83
Instantiate or apply named facts and discharge the corresponding proof obligations.
30Fix variables and assumptionsL84–88
31Establish hjsplitL89–93
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply finite lt succ eq or lt.
32Separate the logical casesL94–94
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L94
cases hjsplit
33Establish haxL95–104
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply beta at unique.
34Use earlier factsL105–105
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L105
exact beta_at_exists_witness
35Calculate and transport equalitiesL106–109
36Use earlier factsL110–110
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L110
exact beta_prefix_extend_witness_witness_left
37Establish hmiddleL111–120
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply hreplaced witness witness right.
- L111
have hmiddle : BetaAt(x,x1,j,a)Definitions: BetaAt(x,x1,j,a)Original native command in the exact edition - L112
specialize hreplaced_witness_witness_right j - L113
specialize hreplaced_witness_witness_right a - L114
apply hreplaced_witness_witness_right - L115
exact hjsplit_right - L116
exact hji - L117
exact hold - L118
specialize beta_prefix_extend_witness_witness_right j - L119
specialize beta_prefix_extend_witness_witness_right a - L120
apply beta_prefix_extend_witness_witness_right
Original defined command ledger · 122 lines
- 0001
intro b - 0002
intro c - 0003
intro i - 0004
intro s - 0005
induction k - 0006
intro hi - 0007
exfalso - 0008
cases hi - 0009
have hsi : S i = 0 - 0010
specialize add_eq_zero_right x - 0011
specialize add_eq_zero_right (S i) - 0012
apply add_eq_zero_right - 0013
exact hi_witness - 0014
specialize succ_ne_zero i - 0015
apply succ_ne_zero - 0016
exact hsi - 0017
intro hi - 0018
have hisplit : i = k ∨ Lt(i,k)Exact native replay line
have hisplit : i = k \/ exists h. h + S i = k - 0019
specialize finite_lt_succ_eq_or_lt k - 0020
specialize finite_lt_succ_eq_or_lt i - 0021
apply finite_lt_succ_eq_or_lt - 0022
exact hi - 0023
cases hisplit - 0024
specialize beta_prefix_extend k - 0025
specialize beta_prefix_extend b - 0026
specialize beta_prefix_extend c - 0027
specialize beta_prefix_extend s - 0028
cases beta_prefix_extend - 0029
cases beta_prefix_extend_witness - 0030
cases beta_prefix_extend_witness_witness - 0031
exists x - 0032
exists x1 - 0033
split - 0034
rewrite hisplit_left - 0035
rewrite hisplit_left - 0036
exact beta_prefix_extend_witness_witness_left - 0037
intro j - 0038
intro a - 0039
intro hj - 0040
intro hji - 0041
intro hold - 0042
have hjsplit : j = k ∨ Lt(j,k)Exact native replay line
have hjsplit : j = k \/ exists h. h + S j = k - 0043
specialize finite_lt_succ_eq_or_lt k - 0044
specialize finite_lt_succ_eq_or_lt j - 0045
apply finite_lt_succ_eq_or_lt - 0046
exact hj - 0047
cases hjsplit - 0048
exfalso - 0049
apply hji - 0050
trans k - 0051
exact hjsplit_left - 0052
symm - 0053
exact hisplit_left - 0054
specialize beta_prefix_extend_witness_witness_right j - 0055
specialize beta_prefix_extend_witness_witness_right a - 0056
apply beta_prefix_extend_witness_witness_right - 0057
exact hjsplit_right - 0058
exact hold - 0059
have hreplaced : ∃ z. ∃ d. BetaAt(z,d,i,s) ∧ (∀ x. ∀ y. Lt(x,k) → ¬x = i → BetaAt(b,c,x,y) → BetaAt(z,d,x,y))Exact native replay line
have hreplaced : exists z d. (((exists h. h + S s = S ((S i) * d)) /\ exists q. z = q * S ((S i) * d) + s) /\ forall j a. (exists h. h + S j = k) -> ~(j = i) -> ((exists h. h + S a = S ((S j) * c)) /\ exists q. b = q * S ((S j) * c) + a) -> ((exists h. h + S a = S ((S j) * d)) /\ exists q. z = q * S ((S j) * d) + a)) - 0060
apply IH - 0061
exact hisplit_right - 0062
cases hreplaced - 0063
cases hreplaced_witness - 0064
cases hreplaced_witness_witness - 0065
specialize beta_at_exists b - 0066
specialize beta_at_exists c - 0067
specialize beta_at_exists k - 0068
cases beta_at_exists - 0069
specialize beta_prefix_extend k - 0070
specialize beta_prefix_extend x - 0071
specialize beta_prefix_extend x1 - 0072
specialize beta_prefix_extend x2 - 0073
cases beta_prefix_extend - 0074
cases beta_prefix_extend_witness - 0075
cases beta_prefix_extend_witness_witness - 0076
exists x3 - 0077
exists x4 - 0078
split - 0079
specialize beta_prefix_extend_witness_witness_right i - 0080
specialize beta_prefix_extend_witness_witness_right s - 0081
apply beta_prefix_extend_witness_witness_right - 0082
exact hisplit_right - 0083
exact hreplaced_witness_witness_left - 0084
intro j - 0085
intro a - 0086
intro hj - 0087
intro hji - 0088
intro hold - 0089
have hjsplit : j = k ∨ Lt(j,k)Exact native replay line
have hjsplit : j = k \/ exists h. h + S j = k - 0090
specialize finite_lt_succ_eq_or_lt k - 0091
specialize finite_lt_succ_eq_or_lt j - 0092
apply finite_lt_succ_eq_or_lt - 0093
exact hj - 0094
cases hjsplit - 0095
have hax : a = x2 - 0096
specialize beta_at_unique b - 0097
specialize beta_at_unique c - 0098
specialize beta_at_unique k - 0099
specialize beta_at_unique a - 0100
specialize beta_at_unique x2 - 0101
apply beta_at_unique - 0102
rewrite hjsplit_left at hold - 0103
rewrite hjsplit_left at hold - 0104
exact hold - 0105
exact beta_at_exists_witness - 0106
rewrite hjsplit_left - 0107
rewrite hjsplit_left - 0108
rewrite hax - 0109
rewrite hax - 0110
exact beta_prefix_extend_witness_witness_left - 0111
have hmiddle : BetaAt(x,x1,j,a)Exact native replay line
have hmiddle : ((exists h. h + S a = S ((S j) * x1)) /\ exists q. x = q * S ((S j) * x1) + a) - 0112
specialize hreplaced_witness_witness_right j - 0113
specialize hreplaced_witness_witness_right a - 0114
apply hreplaced_witness_witness_right - 0115
exact hjsplit_right - 0116
exact hji - 0117
exact hold - 0118
specialize beta_prefix_extend_witness_witness_right j - 0119
specialize beta_prefix_extend_witness_witness_right a - 0120
apply beta_prefix_extend_witness_witness_right - 0121
exact hjsplit_right - 0122
exact hmiddle