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 expanded first-order arithmetic statement
forall b c w rb rc cb cc q ub uc l a. (forall mdr_i_prefix_previous. (exists mdr_gap_prefix_previousbound. mdr_gap_prefix_previousbound + S (mdr_i_prefix_previous) = (l)) -> exists mdr_a_prefix_previous. (((exists mdr_r_prefix_previouspoint mdr_s_prefix_previouspoint mdr_u_prefix_previouspoint mdr_v_prefix_previouspoint. ((mdr_i_prefix_previous = (q) * mdr_r_prefix_previouspoint + mdr_s_prefix_previouspoint) /\ ((exists mdr_gap_prefix_previouspointcolumn. mdr_gap_prefix_previouspointcolumn + S (mdr_s_prefix_previouspoint) = (q)) /\ ((((exists ff_h_mdr_prefix_previouspointrow_index. ff_h_mdr_prefix_previouspointrow_index + S (mdr_u_prefix_previouspoint) = S ((S (mdr_r_prefix_previouspoint)) * rc)) /\ exists ff_q_mdr_prefix_previouspointrow_index. rb = ff_q_mdr_prefix_previouspointrow_index * S ((S (mdr_r_prefix_previouspoint)) * rc) + (mdr_u_prefix_previouspoint))) /\ ((((exists ff_h_mdr_prefix_previouspointcolumn_index. ff_h_mdr_prefix_previouspointcolumn_index + S (mdr_v_prefix_previouspoint) = S ((S (mdr_s_prefix_previouspoint)) * cc)) /\ exists ff_q_mdr_prefix_previouspointcolumn_index. cb = ff_q_mdr_prefix_previouspointcolumn_index * S ((S (mdr_s_prefix_previouspoint)) * cc) + (mdr_v_prefix_previouspoint))) /\ (((exists ff_h_mdr_prefix_previouspointsource. ff_h_mdr_prefix_previouspointsource + S (mdr_a_prefix_previous) = S ((S ((mdr_u_prefix_previouspoint) * (w) + (mdr_v_prefix_previouspoint))) * c)) /\ exists ff_q_mdr_prefix_previouspointsource. b = ff_q_mdr_prefix_previouspointsource * S ((S ((mdr_u_prefix_previouspoint) * (w) + (mdr_v_prefix_previouspoint))) * c) + (mdr_a_prefix_previous)))))))) /\ (((exists ff_h_mdr_prefix_previousoutput. ff_h_mdr_prefix_previousoutput + S (mdr_a_prefix_previous) = S ((S (mdr_i_prefix_previous)) * uc)) /\ exists ff_q_mdr_prefix_previousoutput. ub = ff_q_mdr_prefix_previousoutput * S ((S (mdr_i_prefix_previous)) * uc) + (mdr_a_prefix_previous)))))) -> (exists mdr_r_prefix_last mdr_s_prefix_last mdr_u_prefix_last mdr_v_prefix_last. ((l = (q) * mdr_r_prefix_last + mdr_s_prefix_last) /\ ((exists mdr_gap_prefix_lastcolumn. mdr_gap_prefix_lastcolumn + S (mdr_s_prefix_last) = (q)) /\ ((((exists ff_h_mdr_prefix_lastrow_index. ff_h_mdr_prefix_lastrow_index + S (mdr_u_prefix_last) = S ((S (mdr_r_prefix_last)) * rc)) /\ exists ff_q_mdr_prefix_lastrow_index. rb = ff_q_mdr_prefix_lastrow_index * S ((S (mdr_r_prefix_last)) * rc) + (mdr_u_prefix_last))) /\ ((((exists ff_h_mdr_prefix_lastcolumn_index. ff_h_mdr_prefix_lastcolumn_index + S (mdr_v_prefix_last) = S ((S (mdr_s_prefix_last)) * cc)) /\ exists ff_q_mdr_prefix_lastcolumn_index. cb = ff_q_mdr_prefix_lastcolumn_index * S ((S (mdr_s_prefix_last)) * cc) + (mdr_v_prefix_last))) /\ (((exists ff_h_mdr_prefix_lastsource. ff_h_mdr_prefix_lastsource + S (a) = S ((S ((mdr_u_prefix_last) * (w) + (mdr_v_prefix_last))) * c)) /\ exists ff_q_mdr_prefix_lastsource. b = ff_q_mdr_prefix_lastsource * S ((S ((mdr_u_prefix_last) * (w) + (mdr_v_prefix_last))) * c) + (a)))))))) -> exists vb vc. (forall mdr_i_prefix_successor. (exists mdr_gap_prefix_successorbound. mdr_gap_prefix_successorbound + S (mdr_i_prefix_successor) = (S l)) -> exists mdr_a_prefix_successor. (((exists mdr_r_prefix_successorpoint mdr_s_prefix_successorpoint mdr_u_prefix_successorpoint mdr_v_prefix_successorpoint. ((mdr_i_prefix_successor = (q) * mdr_r_prefix_successorpoint + mdr_s_prefix_successorpoint) /\ ((exists mdr_gap_prefix_successorpointcolumn. mdr_gap_prefix_successorpointcolumn + S (mdr_s_prefix_successorpoint) = (q)) /\ ((((exists ff_h_mdr_prefix_successorpointrow_index. ff_h_mdr_prefix_successorpointrow_index + S (mdr_u_prefix_successorpoint) = S ((S (mdr_r_prefix_successorpoint)) * rc)) /\ exists ff_q_mdr_prefix_successorpointrow_index. rb = ff_q_mdr_prefix_successorpointrow_index * S ((S (mdr_r_prefix_successorpoint)) * rc) + (mdr_u_prefix_successorpoint))) /\ ((((exists ff_h_mdr_prefix_successorpointcolumn_index. ff_h_mdr_prefix_successorpointcolumn_index + S (mdr_v_prefix_successorpoint) = S ((S (mdr_s_prefix_successorpoint)) * cc)) /\ exists ff_q_mdr_prefix_successorpointcolumn_index. cb = ff_q_mdr_prefix_successorpointcolumn_index * S ((S (mdr_s_prefix_successorpoint)) * cc) + (mdr_v_prefix_successorpoint))) /\ (((exists ff_h_mdr_prefix_successorpointsource. ff_h_mdr_prefix_successorpointsource + S (mdr_a_prefix_successor) = S ((S ((mdr_u_prefix_successorpoint) * (w) + (mdr_v_prefix_successorpoint))) * c)) /\ exists ff_q_mdr_prefix_successorpointsource. b = ff_q_mdr_prefix_successorpointsource * S ((S ((mdr_u_prefix_successorpoint) * (w) + (mdr_v_prefix_successorpoint))) * c) + (mdr_a_prefix_successor)))))))) /\ (((exists ff_h_mdr_prefix_successoroutput. ff_h_mdr_prefix_successoroutput + S (mdr_a_prefix_successor) = S ((S (mdr_i_prefix_successor)) * vc)) /\ exists ff_q_mdr_prefix_successoroutput. vb = ff_q_mdr_prefix_successoroutput * S ((S (mdr_i_prefix_successor)) * vc) + (mdr_a_prefix_successor))))))Constructive proof overview
Generated structural guide
Append one actual selected parent entry while preserving every earlier selected entry in the same new beta code.
The unchanged tactic script uses 2 declared prerequisites and contains 54 exact native proof lines.
Alpha v34 checked-use · first admitted v27 · independently kernel and Lean verified; not Stable
Proof neighborhood
Direct dependencies
beta_prefix_extend Stable theorem; checked-use authorized finite_lt_succ_eq_or_lt Stable theorem; checked-use authorizedDirect dependents
Formal native tactic body
Dependencies are introduced as named hypotheses before line 1. Local theorem links identify exact declared prerequisites. This exact body belongs to a complete independently kernel-checked constructive proof bundle and has Alpha checked-use authority; it does not imply Stable membership.
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–10
02Fix variables and assumptionsL11–14
03Establish hcodeL15–20
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply beta prefix extend.
04Separate the logical casesL21–23
05Construct an explicit witnessL24–25
06Fix variables and assumptionsL26–27
07Establish hindexL28–32
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply finite lt succ eq or lt.
08Separate the logical casesL33–33
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L33
cases hindex
09Construct an explicit witnessL34–34
Supply the displayed value, then prove that it has the required property.
- L34
exists a
10Separate the logical casesL35–35
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L35
split
11Calculate and transport equalitiesL36–36
Carry out the recorded arithmetic or equality steps; inspect the exact commands for their direction and premises.
- L36
rewrite hindex_left
12Use earlier factsL37–37
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L37
exact hpoint
13Calculate and transport equalitiesL38–39
14Use earlier factsL40–40
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L40
exact hcode_witness_witness_left
15Establish holdL41–44
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply hprevious.
16Separate the logical casesL45–46
17Construct an explicit witnessL47–47
Supply the displayed value, then prove that it has the required property.
- L47
exists x2
18Separate the logical casesL48–48
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L48
split
19Use earlier factsL49–54
Original exact command ledger · 54 lines
- 0001
intro b - 0002
intro c - 0003
intro w - 0004
intro rb - 0005
intro rc - 0006
intro cb - 0007
intro cc - 0008
intro q - 0009
intro ub - 0010
intro uc - 0011
intro l - 0012
intro a - 0013
intro hprevious - 0014
intro hpoint - 0015
have hcode : exists vb vc. ((((exists ff_h_mdr_new_entry. ff_h_mdr_new_entry + S (a) = S ((S (l)) * vc)) /\ exists ff_q_mdr_new_entry. vb = ff_q_mdr_new_entry * S ((S (l)) * vc) + (a))) /\ (forall mdr_i_old_entries mdr_a_old_entries. (exists mdr_gap_old_entriesb. mdr_gap_old_entriesb + S (mdr_i_old_entries) = (l)) -> (((exists ff_h_mdr_old_entrieso. ff_h_mdr_old_entrieso + S (mdr_a_old_entries) = S ((S (mdr_i_old_entries)) * uc)) /\ exists ff_q_mdr_old_entrieso. ub = ff_q_mdr_old_entrieso * S ((S (mdr_i_old_entries)) * uc) + (mdr_a_old_entries))) -> (((exists ff_h_mdr_old_entriesn. ff_h_mdr_old_entriesn + S (mdr_a_old_entries) = S ((S (mdr_i_old_entries)) * vc)) /\ exists ff_q_mdr_old_entriesn. vb = ff_q_mdr_old_entriesn * S ((S (mdr_i_old_entries)) * vc) + (mdr_a_old_entries))))) - 0016
specialize beta_prefix_extend (l) - 0017
specialize beta_prefix_extend (ub) - 0018
specialize beta_prefix_extend (uc) - 0019
specialize beta_prefix_extend (a) - 0020
apply beta_prefix_extend - 0021
cases hcode - 0022
cases hcode_witness - 0023
cases hcode_witness_witness - 0024
exists x - 0025
exists x1 - 0026
intro i - 0027
intro hi - 0028
have hindex : i = l \/ (exists mdr_gap_old_index. mdr_gap_old_index + S (i) = (l)) - 0029
specialize finite_lt_succ_eq_or_lt (l) - 0030
specialize finite_lt_succ_eq_or_lt (i) - 0031
apply finite_lt_succ_eq_or_lt - 0032
exact hi - 0033
cases hindex - 0034
exists a - 0035
split - 0036
rewrite hindex_left - 0037
exact hpoint - 0038
rewrite hindex_left - 0039
rewrite hindex_left - 0040
exact hcode_witness_witness_left - 0041
have hold : exists z. ((exists mdr_r_old_point mdr_s_old_point mdr_u_old_point mdr_v_old_point. ((i = (q) * mdr_r_old_point + mdr_s_old_point) /\ ((exists mdr_gap_old_pointcolumn. mdr_gap_old_pointcolumn + S (mdr_s_old_point) = (q)) /\ ((((exists ff_h_mdr_old_pointrow_index. ff_h_mdr_old_pointrow_index + S (mdr_u_old_point) = S ((S (mdr_r_old_point)) * rc)) /\ exists ff_q_mdr_old_pointrow_index. rb = ff_q_mdr_old_pointrow_index * S ((S (mdr_r_old_point)) * rc) + (mdr_u_old_point))) /\ ((((exists ff_h_mdr_old_pointcolumn_index. ff_h_mdr_old_pointcolumn_index + S (mdr_v_old_point) = S ((S (mdr_s_old_point)) * cc)) /\ exists ff_q_mdr_old_pointcolumn_index. cb = ff_q_mdr_old_pointcolumn_index * S ((S (mdr_s_old_point)) * cc) + (mdr_v_old_point))) /\ (((exists ff_h_mdr_old_pointsource. ff_h_mdr_old_pointsource + S (z) = S ((S ((mdr_u_old_point) * (w) + (mdr_v_old_point))) * c)) /\ exists ff_q_mdr_old_pointsource. b = ff_q_mdr_old_pointsource * S ((S ((mdr_u_old_point) * (w) + (mdr_v_old_point))) * c) + (z)))))))) /\ (((exists ff_h_mdr_old_output. ff_h_mdr_old_output + S (z) = S ((S (i)) * uc)) /\ exists ff_q_mdr_old_output. ub = ff_q_mdr_old_output * S ((S (i)) * uc) + (z)))) - 0042
specialize hprevious (i) - 0043
apply hprevious - 0044
exact hindex_right - 0045
cases hold - 0046
cases hold_witness - 0047
exists x2 - 0048
split - 0049
exact hold_witness_left - 0050
specialize hcode_witness_witness_right (i) - 0051
specialize hcode_witness_witness_right (x2) - 0052
apply hcode_witness_witness_right - 0053
exact hindex_right - 0054
exact hold_witness_right