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
∀ p. ∀ n. ∀ qb. ∀ qc. ∀ db. ∀ dc. ∀ l. ¬p = 0 → BetaAt(qb,qc,0,n) ∧ (∀ x. Lt(x,l) → ∃ y. ∃ z. ∃ m. BetaAt(qb,qc,x,y) ∧ (BetaAt(qb,qc,S x,z) ∧ (BetaAt(db,dc,x,m) ∧ DivRem(y,p,z,m)))) → ∃ x. ∃ y. ∃ z. ∃ m. BetaAt(x,y,0,n) ∧ (∀ k. Lt(k,S l) → ∃ i. ∃ j. ∃ u. BetaAt(x,y,k,i) ∧ (BetaAt(x,y,S k,j) ∧ (BetaAt(z,m,k,u) ∧ DivRem(i,p,j,u))))Every purple notation token opens its conservative definition. This reading surface never changes the unchanged intuitionistic kernel or confers checked-use authority.
Definitions used by this theorem
In the theorem statement
In local proof propositions
Exact expanded first-order statement
forall p n qb qc db dc l. ~(p = 0) -> (((((exists ff_h_lmd_extend_source_initial. ff_h_lmd_extend_source_initial + S (n) = S ((S (0)) * qc)) /\ exists ff_q_lmd_extend_source_initial. qb = ff_q_lmd_extend_source_initial * S ((S (0)) * qc) + (n))) /\ forall lmd_index_extend_source. (exists lmd_gap_extend_source_index. lmd_gap_extend_source_index + S (lmd_index_extend_source) = (l)) -> exists lmd_current_extend_source lmd_successor_extend_source lmd_digit_extend_source. ((((exists ff_h_lmd_extend_source_current. ff_h_lmd_extend_source_current + S (lmd_current_extend_source) = S ((S (lmd_index_extend_source)) * qc)) /\ exists ff_q_lmd_extend_source_current. qb = ff_q_lmd_extend_source_current * S ((S (lmd_index_extend_source)) * qc) + (lmd_current_extend_source))) /\ ((((exists ff_h_lmd_extend_source_successor. ff_h_lmd_extend_source_successor + S (lmd_successor_extend_source) = S ((S (S lmd_index_extend_source)) * qc)) /\ exists ff_q_lmd_extend_source_successor. qb = ff_q_lmd_extend_source_successor * S ((S (S lmd_index_extend_source)) * qc) + (lmd_successor_extend_source))) /\ ((((exists ff_h_lmd_extend_source_digit. ff_h_lmd_extend_source_digit + S (lmd_digit_extend_source) = S ((S (lmd_index_extend_source)) * dc)) /\ exists ff_q_lmd_extend_source_digit. db = ff_q_lmd_extend_source_digit * S ((S (lmd_index_extend_source)) * dc) + (lmd_digit_extend_source))) /\ ((lmd_current_extend_source = (p) * (lmd_successor_extend_source) + (lmd_digit_extend_source)) /\ (exists lmd_gap_extend_source_digit_bound. lmd_gap_extend_source_digit_bound + S (lmd_digit_extend_source) = (p)))))))) -> exists z t u v. (((((exists ff_h_lmd_extend_result_initial. ff_h_lmd_extend_result_initial + S (n) = S ((S (0)) * t)) /\ exists ff_q_lmd_extend_result_initial. z = ff_q_lmd_extend_result_initial * S ((S (0)) * t) + (n))) /\ forall lmd_index_extend_result. (exists lmd_gap_extend_result_index. lmd_gap_extend_result_index + S (lmd_index_extend_result) = (S l)) -> exists lmd_current_extend_result lmd_successor_extend_result lmd_digit_extend_result. ((((exists ff_h_lmd_extend_result_current. ff_h_lmd_extend_result_current + S (lmd_current_extend_result) = S ((S (lmd_index_extend_result)) * t)) /\ exists ff_q_lmd_extend_result_current. z = ff_q_lmd_extend_result_current * S ((S (lmd_index_extend_result)) * t) + (lmd_current_extend_result))) /\ ((((exists ff_h_lmd_extend_result_successor. ff_h_lmd_extend_result_successor + S (lmd_successor_extend_result) = S ((S (S lmd_index_extend_result)) * t)) /\ exists ff_q_lmd_extend_result_successor. z = ff_q_lmd_extend_result_successor * S ((S (S lmd_index_extend_result)) * t) + (lmd_successor_extend_result))) /\ ((((exists ff_h_lmd_extend_result_digit. ff_h_lmd_extend_result_digit + S (lmd_digit_extend_result) = S ((S (lmd_index_extend_result)) * v)) /\ exists ff_q_lmd_extend_result_digit. u = ff_q_lmd_extend_result_digit * S ((S (lmd_index_extend_result)) * v) + (lmd_digit_extend_result))) /\ ((lmd_current_extend_result = (p) * (lmd_successor_extend_result) + (lmd_digit_extend_result)) /\ (exists lmd_gap_extend_result_digit_bound. lmd_gap_extend_result_digit_bound + S (lmd_digit_extend_result) = (p))))))))Proof neighborhood
Direct theorem prerequisites
Direct theorem dependents
Definition-aware tactic body
Only propositions whose conservative expansion has been checked for exact first-order equivalence are compacted. Every changed line retains its immutable exact replay 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.
01Fix variables and assumptionsL1–9
02Separate the logical casesL10–10
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L10
cases hchain
03Establish hlastL11–15
Establish this local claim before using it. It is not an additional assumption.
- L11
have hlast : ∃ q. BetaAt(qb,qc,l,q)Definitions: BetaAt(qb,qc,l,q)Original native command in the exact edition - L12
specialize beta_at_exists qb - L13
specialize beta_at_exists qc - L14
specialize beta_at_exists l - L15
exact beta_at_exists
04Separate the logical casesL16–16
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L16
cases hlast
05Establish hdivisionL17–21
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply division remainder exists.
- L17
have hdivision : ∃ Q. ∃ d. DivRem(x,p,Q,d)Definitions: DivRem(x,p,Q,d)Original native command in the exact edition - L18
specialize division_remainder_exists p - L19
specialize division_remainder_exists x - L20
apply division_remainder_exists - L21
exact hnonzero
06Separate the logical casesL22–24
07Establish hqextendL25–30
Establish this local claim before using it. It is not an additional assumption.
- L25
have hqextend : ∃ z. ∃ t. BetaAt(z,t,S l,x1) ∧ (∀ x. ∀ y. Lt(x,S l) → BetaAt(qb,qc,x,y) → BetaAt(z,t,x,y))Definitions: BetaAt(z,t,S l,x1)Lt(x,S l)BetaAt(qb,qc,x,y)BetaAt(z,t,x,y)Original native command in the exact edition - L26
specialize beta_prefix_extend (S l) - L27
specialize beta_prefix_extend qb - L28
specialize beta_prefix_extend qc - L29
specialize beta_prefix_extend x1 - L30
exact beta_prefix_extend
08Separate the logical casesL31–33
09Establish hdextendL34–39
Establish this local claim before using it. It is not an additional assumption.
- L34
have hdextend : ∃ u. ∃ v. BetaAt(u,v,l,x2) ∧ (∀ x. ∀ y. Lt(x,l) → BetaAt(db,dc,x,y) → BetaAt(u,v,x,y))Definitions: BetaAt(u,v,l,x2)Lt(x,l)BetaAt(db,dc,x,y)BetaAt(u,v,x,y)Original native command in the exact edition - L35
specialize beta_prefix_extend l - L36
specialize beta_prefix_extend db - L37
specialize beta_prefix_extend dc - L38
specialize beta_prefix_extend x2 - L39
exact beta_prefix_extend
10Separate the logical casesL40–42
11Construct an explicit witnessL43–46
12Separate the logical casesL47–47
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L47
split
13Use earlier factsL48–50
14Construct an explicit witnessL51–51
Supply the displayed value, then prove that it has the required property.
- L51
exists l
15Calculate and transport equalitiesL52–52
Carry out the recorded arithmetic or equality steps; inspect the exact commands for their direction and premises.
- L52
simp
16Use earlier factsL53–53
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L53
exact hchain_left
17Fix variables and assumptionsL54–55
18Establish hsplitL56–60
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply finite lt succ eq or lt.
19Separate the logical casesL61–61
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L61
cases hsplit
20Calculate and transport equalitiesL62–67
21Construct an explicit witnessL68–70
22Separate the logical casesL71–71
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L71
split
23Use earlier factsL72–74
24Construct an explicit witnessL75–75
Supply the displayed value, then prove that it has the required property.
- L75
exists 0
25Use earlier factsL76–77
26Separate the logical casesL78–78
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L78
split
27Use earlier factsL79–79
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L79
exact hqextend_witness_witness_left
28Separate the logical casesL80–80
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L80
split
29Use earlier factsL81–81
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L81
exact hdextend_witness_witness_left
30Separate the logical casesL82–82
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L82
split
31Use earlier factsL83–84
32Establish hpreviousL85–88
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply hchain right.
- L85
have hprevious : ∃ q. ∃ Q. ∃ d. BetaAt(qb,qc,i,q) ∧ (BetaAt(qb,qc,S i,Q) ∧ (BetaAt(db,dc,i,d) ∧ DivRem(q,p,Q,d)))Definitions: BetaAt(qb,qc,i,q)BetaAt(qb,qc,S i,Q)BetaAt(db,dc,i,d)DivRem(q,p,Q,d)Original native command in the exact edition - L86
specialize hchain_right i - L87
apply hchain_right - L88
exact hsplit_right
33Separate the logical casesL89–95
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
34Establish hipreserveL96–103
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply lt of lt of le.
35Establish hnextpreserveL104–108
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply succ le succ.
- L104
have hnextpreserve : Lt(S i,S l)Definitions: Lt(S i,S l)Original native command in the exact edition - L105
specialize succ_le_succ (S i) - L106
specialize succ_le_succ l - L107
apply succ_le_succ - L108
exact hsplit_right
36Construct an explicit witnessL109–111
37Separate the logical casesL112–112
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L112
split
38Use earlier factsL113–117
39Separate the logical casesL118–118
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L118
split
40Use earlier factsL119–123
41Separate the logical casesL124–124
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L124
split
42Use earlier factsL125–129
Instantiate or apply named facts and discharge the corresponding proof obligations.
43Separate the logical casesL130–130
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L130
split
Original defined command ledger · 132 lines
- 0001
intro p - 0002
intro n - 0003
intro qb - 0004
intro qc - 0005
intro db - 0006
intro dc - 0007
intro l - 0008
intro hnonzero - 0009
intro hchain - 0010
cases hchain - 0011
have hlast : ∃ q. BetaAt(qb,qc,l,q)Exact native replay line
have hlast : exists q. (((exists ff_h_lmd_last_old. ff_h_lmd_last_old + S (q) = S ((S (l)) * qc)) /\ exists ff_q_lmd_last_old. qb = ff_q_lmd_last_old * S ((S (l)) * qc) + (q))) - 0012
specialize beta_at_exists qb - 0013
specialize beta_at_exists qc - 0014
specialize beta_at_exists l - 0015
exact beta_at_exists - 0016
cases hlast - 0017
have hdivision : ∃ Q. ∃ d. DivRem(x,p,Q,d)Exact native replay line
have hdivision : exists Q d. ((x = p * Q + d) /\ (exists lmd_gap_new_digit_bound. lmd_gap_new_digit_bound + S (d) = (p))) - 0018
specialize division_remainder_exists p - 0019
specialize division_remainder_exists x - 0020
apply division_remainder_exists - 0021
exact hnonzero - 0022
cases hdivision - 0023
cases hdivision_witness - 0024
cases hdivision_witness_witness - 0025
have hqextend : ∃ z. ∃ t. BetaAt(z,t,S l,x1) ∧ (∀ x. ∀ y. Lt(x,S l) → BetaAt(qb,qc,x,y) → BetaAt(z,t,x,y))Exact native replay line
have hqextend : exists z t. ((((exists ff_h_lmd_quotient_new. ff_h_lmd_quotient_new + S (x1) = S ((S (S l)) * t)) /\ exists ff_q_lmd_quotient_new. z = ff_q_lmd_quotient_new * S ((S (S l)) * t) + (x1))) /\ forall i y. (exists lmd_gap_quotient_preserve_bound. lmd_gap_quotient_preserve_bound + S (i) = (S l)) -> (((exists ff_h_lmd_quotient_preserve_old. ff_h_lmd_quotient_preserve_old + S (y) = S ((S (i)) * qc)) /\ exists ff_q_lmd_quotient_preserve_old. qb = ff_q_lmd_quotient_preserve_old * S ((S (i)) * qc) + (y))) -> (((exists ff_h_lmd_quotient_preserve_new. ff_h_lmd_quotient_preserve_new + S (y) = S ((S (i)) * t)) /\ exists ff_q_lmd_quotient_preserve_new. z = ff_q_lmd_quotient_preserve_new * S ((S (i)) * t) + (y)))) - 0026
specialize beta_prefix_extend (S l) - 0027
specialize beta_prefix_extend qb - 0028
specialize beta_prefix_extend qc - 0029
specialize beta_prefix_extend x1 - 0030
exact beta_prefix_extend - 0031
cases hqextend - 0032
cases hqextend_witness - 0033
cases hqextend_witness_witness - 0034
have hdextend : ∃ u. ∃ v. BetaAt(u,v,l,x2) ∧ (∀ x. ∀ y. Lt(x,l) → BetaAt(db,dc,x,y) → BetaAt(u,v,x,y))Exact native replay line
have hdextend : exists u v. ((((exists ff_h_lmd_digit_new. ff_h_lmd_digit_new + S (x2) = S ((S (l)) * v)) /\ exists ff_q_lmd_digit_new. u = ff_q_lmd_digit_new * S ((S (l)) * v) + (x2))) /\ forall i y. (exists lmd_gap_digit_preserve_bound. lmd_gap_digit_preserve_bound + S (i) = (l)) -> (((exists ff_h_lmd_digit_preserve_old. ff_h_lmd_digit_preserve_old + S (y) = S ((S (i)) * dc)) /\ exists ff_q_lmd_digit_preserve_old. db = ff_q_lmd_digit_preserve_old * S ((S (i)) * dc) + (y))) -> (((exists ff_h_lmd_digit_preserve_new. ff_h_lmd_digit_preserve_new + S (y) = S ((S (i)) * v)) /\ exists ff_q_lmd_digit_preserve_new. u = ff_q_lmd_digit_preserve_new * S ((S (i)) * v) + (y)))) - 0035
specialize beta_prefix_extend l - 0036
specialize beta_prefix_extend db - 0037
specialize beta_prefix_extend dc - 0038
specialize beta_prefix_extend x2 - 0039
exact beta_prefix_extend - 0040
cases hdextend - 0041
cases hdextend_witness - 0042
cases hdextend_witness_witness - 0043
exists x3 - 0044
exists x4 - 0045
exists x5 - 0046
exists x6 - 0047
split - 0048
specialize hqextend_witness_witness_right 0 - 0049
specialize hqextend_witness_witness_right n - 0050
apply hqextend_witness_witness_right - 0051
exists l - 0052
simp - 0053
exact hchain_left - 0054
intro i - 0055
intro hi - 0056
have hsplit : i = l ∨ Lt(i,l)Exact native replay line
have hsplit : i = l \/ exists gap. gap + S i = l - 0057
specialize finite_lt_succ_eq_or_lt l - 0058
specialize finite_lt_succ_eq_or_lt i - 0059
apply finite_lt_succ_eq_or_lt - 0060
exact hi - 0061
cases hsplit - 0062
rewrite hsplit_left - 0063
rewrite hsplit_left - 0064
rewrite hsplit_left - 0065
rewrite hsplit_left - 0066
rewrite hsplit_left - 0067
rewrite hsplit_left - 0068
exists x - 0069
exists x1 - 0070
exists x2 - 0071
split - 0072
specialize hqextend_witness_witness_right l - 0073
specialize hqextend_witness_witness_right x - 0074
apply hqextend_witness_witness_right - 0075
exists 0 - 0076
apply zero_add - 0077
exact hlast_witness - 0078
split - 0079
exact hqextend_witness_witness_left - 0080
split - 0081
exact hdextend_witness_witness_left - 0082
split - 0083
exact hdivision_witness_witness_left - 0084
exact hdivision_witness_witness_right - 0085
have hprevious : ∃ q. ∃ Q. ∃ d. BetaAt(qb,qc,i,q) ∧ (BetaAt(qb,qc,S i,Q) ∧ (BetaAt(db,dc,i,d) ∧ DivRem(q,p,Q,d)))Exact native replay line
have hprevious : exists q Q d. ((((exists ff_h_lmd_old_current. ff_h_lmd_old_current + S (q) = S ((S (i)) * qc)) /\ exists ff_q_lmd_old_current. qb = ff_q_lmd_old_current * S ((S (i)) * qc) + (q))) /\ ((((exists ff_h_lmd_old_next. ff_h_lmd_old_next + S (Q) = S ((S (S i)) * qc)) /\ exists ff_q_lmd_old_next. qb = ff_q_lmd_old_next * S ((S (S i)) * qc) + (Q))) /\ ((((exists ff_h_lmd_old_digit. ff_h_lmd_old_digit + S (d) = S ((S (i)) * dc)) /\ exists ff_q_lmd_old_digit. db = ff_q_lmd_old_digit * S ((S (i)) * dc) + (d))) /\ ((q = p * Q + d) /\ (exists lmd_gap_old_bound. lmd_gap_old_bound + S (d) = (p)))))) - 0086
specialize hchain_right i - 0087
apply hchain_right - 0088
exact hsplit_right - 0089
cases hprevious - 0090
cases hprevious_witness - 0091
cases hprevious_witness_witness - 0092
cases hprevious_witness_witness_witness - 0093
cases hprevious_witness_witness_witness_right - 0094
cases hprevious_witness_witness_witness_right_right - 0095
cases hprevious_witness_witness_witness_right_right_right - 0096
have hipreserve : Lt(i,S l)Exact native replay line
have hipreserve : exists gap. gap + S i = S l - 0097
specialize lt_of_lt_of_le i - 0098
specialize lt_of_lt_of_le l - 0099
specialize lt_of_lt_of_le (S l) - 0100
apply lt_of_lt_of_le - 0101
exact hsplit_right - 0102
specialize le_succ_self l - 0103
exact le_succ_self - 0104
have hnextpreserve : Lt(S i,S l)Exact native replay line
have hnextpreserve : exists gap. gap + S (S i) = S l - 0105
specialize succ_le_succ (S i) - 0106
specialize succ_le_succ l - 0107
apply succ_le_succ - 0108
exact hsplit_right - 0109
exists x7 - 0110
exists x8 - 0111
exists x9 - 0112
split - 0113
specialize hqextend_witness_witness_right i - 0114
specialize hqextend_witness_witness_right x7 - 0115
apply hqextend_witness_witness_right - 0116
exact hipreserve - 0117
exact hprevious_witness_witness_witness_left - 0118
split - 0119
specialize hqextend_witness_witness_right (S i) - 0120
specialize hqextend_witness_witness_right x8 - 0121
apply hqextend_witness_witness_right - 0122
exact hnextpreserve - 0123
exact hprevious_witness_witness_witness_right_left - 0124
split - 0125
specialize hdextend_witness_witness_right i - 0126
specialize hdextend_witness_witness_right x9 - 0127
apply hdextend_witness_witness_right - 0128
exact hsplit_right - 0129
exact hprevious_witness_witness_witness_right_right_left - 0130
split - 0131
exact hprevious_witness_witness_witness_right_right_right_left - 0132
exact hprevious_witness_witness_witness_right_right_right_right