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 r d u v q l. (forall ff_index_mdm_prefix_prefix_before. (exists ff_gap_mdm_lt_prefix_before_index_bound. ff_gap_mdm_lt_prefix_before_index_bound + S (ff_index_mdm_prefix_prefix_before) = (l)) -> exists ff_row_mdm_prefix_prefix_before ff_column_mdm_prefix_prefix_before ff_value_mdm_prefix_prefix_before. (ff_index_mdm_prefix_prefix_before = (q) * ff_row_mdm_prefix_prefix_before + ff_column_mdm_prefix_prefix_before /\ ((exists ff_gap_mdm_lt_prefix_before_column_bound. ff_gap_mdm_lt_prefix_before_column_bound + S (ff_column_mdm_prefix_prefix_before) = (q)) /\ ((exists ff_row_mdm_cell_prefix_before_cell ff_column_mdm_cell_prefix_before_cell. (((((exists ff_gap_mdm_lt_prefix_before_cell_row_before. ff_gap_mdm_lt_prefix_before_cell_row_before + S (ff_row_mdm_prefix_prefix_before) = (r)) /\ ff_row_mdm_cell_prefix_before_cell = ff_row_mdm_prefix_prefix_before) \/ ((exists ff_gap_mdm_le_prefix_before_cell_row_after. ff_gap_mdm_le_prefix_before_cell_row_after + (r) = (ff_row_mdm_prefix_prefix_before)) /\ ff_row_mdm_cell_prefix_before_cell = S ff_row_mdm_prefix_prefix_before))) /\ (((((exists ff_gap_mdm_lt_prefix_before_cell_column_before. ff_gap_mdm_lt_prefix_before_cell_column_before + S (ff_column_mdm_prefix_prefix_before) = (d)) /\ ff_column_mdm_cell_prefix_before_cell = ff_column_mdm_prefix_prefix_before) \/ ((exists ff_gap_mdm_le_prefix_before_cell_column_after. ff_gap_mdm_le_prefix_before_cell_column_after + (d) = (ff_column_mdm_prefix_prefix_before)) /\ ff_column_mdm_cell_prefix_before_cell = S ff_column_mdm_prefix_prefix_before))) /\ (((exists ff_h_mdm_prefix_before_cell_source. ff_h_mdm_prefix_before_cell_source + S (ff_value_mdm_prefix_prefix_before) = S ((S ((ff_row_mdm_cell_prefix_before_cell) * (w) + (ff_column_mdm_cell_prefix_before_cell))) * c)) /\ exists ff_q_mdm_prefix_before_cell_source. b = ff_q_mdm_prefix_before_cell_source * S ((S ((ff_row_mdm_cell_prefix_before_cell) * (w) + (ff_column_mdm_cell_prefix_before_cell))) * c) + (ff_value_mdm_prefix_prefix_before)))))) /\ (((exists ff_h_mdm_prefix_before_target. ff_h_mdm_prefix_before_target + S (ff_value_mdm_prefix_prefix_before) = S ((S (ff_index_mdm_prefix_prefix_before)) * v)) /\ exists ff_q_mdm_prefix_before_target. u = ff_q_mdm_prefix_before_target * S ((S (ff_index_mdm_prefix_prefix_before)) * v) + (ff_value_mdm_prefix_prefix_before))))))) -> (exists ff_row_mdm_point_prefix_last ff_column_mdm_point_prefix_last ff_value_mdm_point_prefix_last. (l = (q) * ff_row_mdm_point_prefix_last + ff_column_mdm_point_prefix_last /\ ((exists ff_gap_mdm_lt_prefix_last_column_bound. ff_gap_mdm_lt_prefix_last_column_bound + S (ff_column_mdm_point_prefix_last) = (q)) /\ (exists ff_row_mdm_cell_prefix_last_cell ff_column_mdm_cell_prefix_last_cell. (((((exists ff_gap_mdm_lt_prefix_last_cell_row_before. ff_gap_mdm_lt_prefix_last_cell_row_before + S (ff_row_mdm_point_prefix_last) = (r)) /\ ff_row_mdm_cell_prefix_last_cell = ff_row_mdm_point_prefix_last) \/ ((exists ff_gap_mdm_le_prefix_last_cell_row_after. ff_gap_mdm_le_prefix_last_cell_row_after + (r) = (ff_row_mdm_point_prefix_last)) /\ ff_row_mdm_cell_prefix_last_cell = S ff_row_mdm_point_prefix_last))) /\ (((((exists ff_gap_mdm_lt_prefix_last_cell_column_before. ff_gap_mdm_lt_prefix_last_cell_column_before + S (ff_column_mdm_point_prefix_last) = (d)) /\ ff_column_mdm_cell_prefix_last_cell = ff_column_mdm_point_prefix_last) \/ ((exists ff_gap_mdm_le_prefix_last_cell_column_after. ff_gap_mdm_le_prefix_last_cell_column_after + (d) = (ff_column_mdm_point_prefix_last)) /\ ff_column_mdm_cell_prefix_last_cell = S ff_column_mdm_point_prefix_last))) /\ (((exists ff_h_mdm_prefix_last_cell_source. ff_h_mdm_prefix_last_cell_source + S (ff_value_mdm_point_prefix_last) = S ((S ((ff_row_mdm_cell_prefix_last_cell) * (w) + (ff_column_mdm_cell_prefix_last_cell))) * c)) /\ exists ff_q_mdm_prefix_last_cell_source. b = ff_q_mdm_prefix_last_cell_source * S ((S ((ff_row_mdm_cell_prefix_last_cell) * (w) + (ff_column_mdm_cell_prefix_last_cell))) * c) + (ff_value_mdm_point_prefix_last))))))))) -> exists z e. (forall ff_index_mdm_prefix_prefix_after. (exists ff_gap_mdm_lt_prefix_after_index_bound. ff_gap_mdm_lt_prefix_after_index_bound + S (ff_index_mdm_prefix_prefix_after) = (S l)) -> exists ff_row_mdm_prefix_prefix_after ff_column_mdm_prefix_prefix_after ff_value_mdm_prefix_prefix_after. (ff_index_mdm_prefix_prefix_after = (q) * ff_row_mdm_prefix_prefix_after + ff_column_mdm_prefix_prefix_after /\ ((exists ff_gap_mdm_lt_prefix_after_column_bound. ff_gap_mdm_lt_prefix_after_column_bound + S (ff_column_mdm_prefix_prefix_after) = (q)) /\ ((exists ff_row_mdm_cell_prefix_after_cell ff_column_mdm_cell_prefix_after_cell. (((((exists ff_gap_mdm_lt_prefix_after_cell_row_before. ff_gap_mdm_lt_prefix_after_cell_row_before + S (ff_row_mdm_prefix_prefix_after) = (r)) /\ ff_row_mdm_cell_prefix_after_cell = ff_row_mdm_prefix_prefix_after) \/ ((exists ff_gap_mdm_le_prefix_after_cell_row_after. ff_gap_mdm_le_prefix_after_cell_row_after + (r) = (ff_row_mdm_prefix_prefix_after)) /\ ff_row_mdm_cell_prefix_after_cell = S ff_row_mdm_prefix_prefix_after))) /\ (((((exists ff_gap_mdm_lt_prefix_after_cell_column_before. ff_gap_mdm_lt_prefix_after_cell_column_before + S (ff_column_mdm_prefix_prefix_after) = (d)) /\ ff_column_mdm_cell_prefix_after_cell = ff_column_mdm_prefix_prefix_after) \/ ((exists ff_gap_mdm_le_prefix_after_cell_column_after. ff_gap_mdm_le_prefix_after_cell_column_after + (d) = (ff_column_mdm_prefix_prefix_after)) /\ ff_column_mdm_cell_prefix_after_cell = S ff_column_mdm_prefix_prefix_after))) /\ (((exists ff_h_mdm_prefix_after_cell_source. ff_h_mdm_prefix_after_cell_source + S (ff_value_mdm_prefix_prefix_after) = S ((S ((ff_row_mdm_cell_prefix_after_cell) * (w) + (ff_column_mdm_cell_prefix_after_cell))) * c)) /\ exists ff_q_mdm_prefix_after_cell_source. b = ff_q_mdm_prefix_after_cell_source * S ((S ((ff_row_mdm_cell_prefix_after_cell) * (w) + (ff_column_mdm_cell_prefix_after_cell))) * c) + (ff_value_mdm_prefix_prefix_after)))))) /\ (((exists ff_h_mdm_prefix_after_target. ff_h_mdm_prefix_after_target + S (ff_value_mdm_prefix_prefix_after) = S ((S (ff_index_mdm_prefix_prefix_after)) * e)) /\ exists ff_q_mdm_prefix_after_target. z = ff_q_mdm_prefix_after_target * S ((S (ff_index_mdm_prefix_prefix_after)) * e) + (ff_value_mdm_prefix_prefix_after)))))))Constructive proof overview
Generated structural guide
Extend one exact row-major beta-coded cofactor minor while preserving every earlier skipped-source entry.
The unchanged tactic script uses 2 declared prerequisites and contains 70 exact native proof lines.
Alpha v34 checked-use · first admitted v24 · 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–11
Work with arbitrary variables or the premises of the current implication.
- L11
intro hpoint
03Separate the logical casesL12–16
04Use earlier factsL17–20
05Separate the logical casesL21–23
06Construct an explicit witnessL24–25
07Fix variables and assumptionsL26–27
08Establish hsplitL28–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.
09Separate the logical casesL33–33
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L33
cases hsplit
10Construct an explicit witnessL34–36
11Separate the logical casesL37–37
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L37
split
12Calculate and transport equalitiesL38–38
Carry out the recorded arithmetic or equality steps; inspect the exact commands for their direction and premises.
- L38
rewrite hsplit_left
13Use earlier factsL39–39
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L39
exact hpoint_witness_witness_witness_left
14Separate the logical casesL40–40
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L40
split
15Use earlier factsL41–41
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L41
exact hpoint_witness_witness_witness_right_left
16Separate the logical casesL42–42
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L42
split
17Use earlier factsL43–43
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L43
exact hpoint_witness_witness_witness_right_right
18Calculate and transport equalitiesL44–45
19Use earlier factsL46–46
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L46
exact beta_prefix_extend_witness_witness_left
20Establish holdL47–50
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply hprevious.
21Separate the logical casesL51–56
22Construct an explicit witnessL57–59
23Separate the logical casesL60–60
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L60
split
24Use earlier factsL61–61
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L61
exact hold_witness_witness_witness_left
25Separate the logical casesL62–62
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L62
split
26Use earlier factsL63–63
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L63
exact hold_witness_witness_witness_right_left
27Separate the logical casesL64–64
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L64
split
28Use earlier factsL65–70
Instantiate or apply named facts and discharge the corresponding proof obligations.
Original exact command ledger · 70 lines
- 0001
intro b - 0002
intro c - 0003
intro w - 0004
intro r - 0005
intro d - 0006
intro u - 0007
intro v - 0008
intro q - 0009
intro l - 0010
intro hprevious - 0011
intro hpoint - 0012
cases hpoint - 0013
cases hpoint_witness - 0014
cases hpoint_witness_witness - 0015
cases hpoint_witness_witness_witness - 0016
cases hpoint_witness_witness_witness_right - 0017
specialize beta_prefix_extend l - 0018
specialize beta_prefix_extend u - 0019
specialize beta_prefix_extend v - 0020
specialize beta_prefix_extend x2 - 0021
cases beta_prefix_extend - 0022
cases beta_prefix_extend_witness - 0023
cases beta_prefix_extend_witness_witness - 0024
exists x3 - 0025
exists x4 - 0026
intro k - 0027
intro hk - 0028
have hsplit : k = l \/ exists gap. gap + S k = l - 0029
specialize finite_lt_succ_eq_or_lt l - 0030
specialize finite_lt_succ_eq_or_lt k - 0031
apply finite_lt_succ_eq_or_lt - 0032
exact hk - 0033
cases hsplit - 0034
exists x - 0035
exists x1 - 0036
exists x2 - 0037
split - 0038
rewrite hsplit_left - 0039
exact hpoint_witness_witness_witness_left - 0040
split - 0041
exact hpoint_witness_witness_witness_right_left - 0042
split - 0043
exact hpoint_witness_witness_witness_right_right - 0044
rewrite hsplit_left - 0045
rewrite hsplit_left - 0046
exact beta_prefix_extend_witness_witness_left - 0047
have hold : exists i j z. (k = q * i + j /\ ((exists ff_gap_mdm_lt_extend_old_column. ff_gap_mdm_lt_extend_old_column + S (j) = (q)) /\ ((exists ff_row_mdm_cell_extend_old_cell ff_column_mdm_cell_extend_old_cell. (((((exists ff_gap_mdm_lt_extend_old_cell_row_before. ff_gap_mdm_lt_extend_old_cell_row_before + S (i) = (r)) /\ ff_row_mdm_cell_extend_old_cell = i) \/ ((exists ff_gap_mdm_le_extend_old_cell_row_after. ff_gap_mdm_le_extend_old_cell_row_after + (r) = (i)) /\ ff_row_mdm_cell_extend_old_cell = S i))) /\ (((((exists ff_gap_mdm_lt_extend_old_cell_column_before. ff_gap_mdm_lt_extend_old_cell_column_before + S (j) = (d)) /\ ff_column_mdm_cell_extend_old_cell = j) \/ ((exists ff_gap_mdm_le_extend_old_cell_column_after. ff_gap_mdm_le_extend_old_cell_column_after + (d) = (j)) /\ ff_column_mdm_cell_extend_old_cell = S j))) /\ (((exists ff_h_mdm_extend_old_cell_source. ff_h_mdm_extend_old_cell_source + S (z) = S ((S ((ff_row_mdm_cell_extend_old_cell) * (w) + (ff_column_mdm_cell_extend_old_cell))) * c)) /\ exists ff_q_mdm_extend_old_cell_source. b = ff_q_mdm_extend_old_cell_source * S ((S ((ff_row_mdm_cell_extend_old_cell) * (w) + (ff_column_mdm_cell_extend_old_cell))) * c) + (z)))))) /\ (((exists ff_h_mdm_extend_old_output. ff_h_mdm_extend_old_output + S (z) = S ((S (k)) * v)) /\ exists ff_q_mdm_extend_old_output. u = ff_q_mdm_extend_old_output * S ((S (k)) * v) + (z)))))) - 0048
specialize hprevious k - 0049
apply hprevious - 0050
exact hsplit_right - 0051
cases hold - 0052
cases hold_witness - 0053
cases hold_witness_witness - 0054
cases hold_witness_witness_witness - 0055
cases hold_witness_witness_witness_right - 0056
cases hold_witness_witness_witness_right_right - 0057
exists x5 - 0058
exists x6 - 0059
exists x7 - 0060
split - 0061
exact hold_witness_witness_witness_left - 0062
split - 0063
exact hold_witness_witness_witness_right_left - 0064
split - 0065
exact hold_witness_witness_witness_right_right_left - 0066
specialize beta_prefix_extend_witness_witness_right k - 0067
specialize beta_prefix_extend_witness_witness_right x7 - 0068
apply beta_prefix_extend_witness_witness_right - 0069
exact hsplit_right - 0070
exact hold_witness_witness_witness_right_right_right
Separate complete second-wave branches: Full T13 proof · Alpha v27.