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 pb pc nb nc w rb rc cb cc q Rb Rc Cb Cc ub uc vb vc. (forall mdr_i_signed_rows mdr_a_signed_rows. (exists mdr_gap_signed_rowsb. mdr_gap_signed_rowsb + S (mdr_i_signed_rows) = (q)) -> (((exists ff_h_mdr_signed_rowso. ff_h_mdr_signed_rowso + S (mdr_a_signed_rows) = S ((S (mdr_i_signed_rows)) * rc)) /\ exists ff_q_mdr_signed_rowso. rb = ff_q_mdr_signed_rowso * S ((S (mdr_i_signed_rows)) * rc) + (mdr_a_signed_rows))) -> (((exists ff_h_mdr_signed_rowsn. ff_h_mdr_signed_rowsn + S (mdr_a_signed_rows) = S ((S (mdr_i_signed_rows)) * Rc)) /\ exists ff_q_mdr_signed_rowsn. Rb = ff_q_mdr_signed_rowsn * S ((S (mdr_i_signed_rows)) * Rc) + (mdr_a_signed_rows)))) -> (forall mdr_i_signed_columns mdr_a_signed_columns. (exists mdr_gap_signed_columnsb. mdr_gap_signed_columnsb + S (mdr_i_signed_columns) = (q)) -> (((exists ff_h_mdr_signed_columnso. ff_h_mdr_signed_columnso + S (mdr_a_signed_columns) = S ((S (mdr_i_signed_columns)) * cc)) /\ exists ff_q_mdr_signed_columnso. cb = ff_q_mdr_signed_columnso * S ((S (mdr_i_signed_columns)) * cc) + (mdr_a_signed_columns))) -> (((exists ff_h_mdr_signed_columnsn. ff_h_mdr_signed_columnsn + S (mdr_a_signed_columns) = S ((S (mdr_i_signed_columns)) * Cc)) /\ exists ff_q_mdr_signed_columnsn. Cb = ff_q_mdr_signed_columnsn * S ((S (mdr_i_signed_columns)) * Cc) + (mdr_a_signed_columns)))) -> (((forall mdr_i_signed_selected_sourcepositive. (exists mdr_gap_signed_selected_sourcepositivebound. mdr_gap_signed_selected_sourcepositivebound + S (mdr_i_signed_selected_sourcepositive) = ((q) * (q))) -> exists mdr_a_signed_selected_sourcepositive. (((exists mdr_r_signed_selected_sourcepositivepoint mdr_s_signed_selected_sourcepositivepoint mdr_u_signed_selected_sourcepositivepoint mdr_v_signed_selected_sourcepositivepoint. ((mdr_i_signed_selected_sourcepositive = (q) * mdr_r_signed_selected_sourcepositivepoint + mdr_s_signed_selected_sourcepositivepoint) /\ ((exists mdr_gap_signed_selected_sourcepositivepointcolumn. mdr_gap_signed_selected_sourcepositivepointcolumn + S (mdr_s_signed_selected_sourcepositivepoint) = (q)) /\ ((((exists ff_h_mdr_signed_selected_sourcepositivepointrow_index. ff_h_mdr_signed_selected_sourcepositivepointrow_index + S (mdr_u_signed_selected_sourcepositivepoint) = S ((S (mdr_r_signed_selected_sourcepositivepoint)) * rc)) /\ exists ff_q_mdr_signed_selected_sourcepositivepointrow_index. rb = ff_q_mdr_signed_selected_sourcepositivepointrow_index * S ((S (mdr_r_signed_selected_sourcepositivepoint)) * rc) + (mdr_u_signed_selected_sourcepositivepoint))) /\ ((((exists ff_h_mdr_signed_selected_sourcepositivepointcolumn_index. ff_h_mdr_signed_selected_sourcepositivepointcolumn_index + S (mdr_v_signed_selected_sourcepositivepoint) = S ((S (mdr_s_signed_selected_sourcepositivepoint)) * cc)) /\ exists ff_q_mdr_signed_selected_sourcepositivepointcolumn_index. cb = ff_q_mdr_signed_selected_sourcepositivepointcolumn_index * S ((S (mdr_s_signed_selected_sourcepositivepoint)) * cc) + (mdr_v_signed_selected_sourcepositivepoint))) /\ (((exists ff_h_mdr_signed_selected_sourcepositivepointsource. ff_h_mdr_signed_selected_sourcepositivepointsource + S (mdr_a_signed_selected_sourcepositive) = S ((S ((mdr_u_signed_selected_sourcepositivepoint) * (w) + (mdr_v_signed_selected_sourcepositivepoint))) * pc)) /\ exists ff_q_mdr_signed_selected_sourcepositivepointsource. pb = ff_q_mdr_signed_selected_sourcepositivepointsource * S ((S ((mdr_u_signed_selected_sourcepositivepoint) * (w) + (mdr_v_signed_selected_sourcepositivepoint))) * pc) + (mdr_a_signed_selected_sourcepositive)))))))) /\ (((exists ff_h_mdr_signed_selected_sourcepositiveoutput. ff_h_mdr_signed_selected_sourcepositiveoutput + S (mdr_a_signed_selected_sourcepositive) = S ((S (mdr_i_signed_selected_sourcepositive)) * uc)) /\ exists ff_q_mdr_signed_selected_sourcepositiveoutput. ub = ff_q_mdr_signed_selected_sourcepositiveoutput * S ((S (mdr_i_signed_selected_sourcepositive)) * uc) + (mdr_a_signed_selected_sourcepositive)))))) /\ (forall mdr_i_signed_selected_sourcenegative. (exists mdr_gap_signed_selected_sourcenegativebound. mdr_gap_signed_selected_sourcenegativebound + S (mdr_i_signed_selected_sourcenegative) = ((q) * (q))) -> exists mdr_a_signed_selected_sourcenegative. (((exists mdr_r_signed_selected_sourcenegativepoint mdr_s_signed_selected_sourcenegativepoint mdr_u_signed_selected_sourcenegativepoint mdr_v_signed_selected_sourcenegativepoint. ((mdr_i_signed_selected_sourcenegative = (q) * mdr_r_signed_selected_sourcenegativepoint + mdr_s_signed_selected_sourcenegativepoint) /\ ((exists mdr_gap_signed_selected_sourcenegativepointcolumn. mdr_gap_signed_selected_sourcenegativepointcolumn + S (mdr_s_signed_selected_sourcenegativepoint) = (q)) /\ ((((exists ff_h_mdr_signed_selected_sourcenegativepointrow_index. ff_h_mdr_signed_selected_sourcenegativepointrow_index + S (mdr_u_signed_selected_sourcenegativepoint) = S ((S (mdr_r_signed_selected_sourcenegativepoint)) * rc)) /\ exists ff_q_mdr_signed_selected_sourcenegativepointrow_index. rb = ff_q_mdr_signed_selected_sourcenegativepointrow_index * S ((S (mdr_r_signed_selected_sourcenegativepoint)) * rc) + (mdr_u_signed_selected_sourcenegativepoint))) /\ ((((exists ff_h_mdr_signed_selected_sourcenegativepointcolumn_index. ff_h_mdr_signed_selected_sourcenegativepointcolumn_index + S (mdr_v_signed_selected_sourcenegativepoint) = S ((S (mdr_s_signed_selected_sourcenegativepoint)) * cc)) /\ exists ff_q_mdr_signed_selected_sourcenegativepointcolumn_index. cb = ff_q_mdr_signed_selected_sourcenegativepointcolumn_index * S ((S (mdr_s_signed_selected_sourcenegativepoint)) * cc) + (mdr_v_signed_selected_sourcenegativepoint))) /\ (((exists ff_h_mdr_signed_selected_sourcenegativepointsource. ff_h_mdr_signed_selected_sourcenegativepointsource + S (mdr_a_signed_selected_sourcenegative) = S ((S ((mdr_u_signed_selected_sourcenegativepoint) * (w) + (mdr_v_signed_selected_sourcenegativepoint))) * nc)) /\ exists ff_q_mdr_signed_selected_sourcenegativepointsource. nb = ff_q_mdr_signed_selected_sourcenegativepointsource * S ((S ((mdr_u_signed_selected_sourcenegativepoint) * (w) + (mdr_v_signed_selected_sourcenegativepoint))) * nc) + (mdr_a_signed_selected_sourcenegative)))))))) /\ (((exists ff_h_mdr_signed_selected_sourcenegativeoutput. ff_h_mdr_signed_selected_sourcenegativeoutput + S (mdr_a_signed_selected_sourcenegative) = S ((S (mdr_i_signed_selected_sourcenegative)) * vc)) /\ exists ff_q_mdr_signed_selected_sourcenegativeoutput. vb = ff_q_mdr_signed_selected_sourcenegativeoutput * S ((S (mdr_i_signed_selected_sourcenegative)) * vc) + (mdr_a_signed_selected_sourcenegative)))))))) -> (((forall mdr_i_signed_selected_targetpositive. (exists mdr_gap_signed_selected_targetpositivebound. mdr_gap_signed_selected_targetpositivebound + S (mdr_i_signed_selected_targetpositive) = ((q) * (q))) -> exists mdr_a_signed_selected_targetpositive. (((exists mdr_r_signed_selected_targetpositivepoint mdr_s_signed_selected_targetpositivepoint mdr_u_signed_selected_targetpositivepoint mdr_v_signed_selected_targetpositivepoint. ((mdr_i_signed_selected_targetpositive = (q) * mdr_r_signed_selected_targetpositivepoint + mdr_s_signed_selected_targetpositivepoint) /\ ((exists mdr_gap_signed_selected_targetpositivepointcolumn. mdr_gap_signed_selected_targetpositivepointcolumn + S (mdr_s_signed_selected_targetpositivepoint) = (q)) /\ ((((exists ff_h_mdr_signed_selected_targetpositivepointrow_index. ff_h_mdr_signed_selected_targetpositivepointrow_index + S (mdr_u_signed_selected_targetpositivepoint) = S ((S (mdr_r_signed_selected_targetpositivepoint)) * Rc)) /\ exists ff_q_mdr_signed_selected_targetpositivepointrow_index. Rb = ff_q_mdr_signed_selected_targetpositivepointrow_index * S ((S (mdr_r_signed_selected_targetpositivepoint)) * Rc) + (mdr_u_signed_selected_targetpositivepoint))) /\ ((((exists ff_h_mdr_signed_selected_targetpositivepointcolumn_index. ff_h_mdr_signed_selected_targetpositivepointcolumn_index + S (mdr_v_signed_selected_targetpositivepoint) = S ((S (mdr_s_signed_selected_targetpositivepoint)) * Cc)) /\ exists ff_q_mdr_signed_selected_targetpositivepointcolumn_index. Cb = ff_q_mdr_signed_selected_targetpositivepointcolumn_index * S ((S (mdr_s_signed_selected_targetpositivepoint)) * Cc) + (mdr_v_signed_selected_targetpositivepoint))) /\ (((exists ff_h_mdr_signed_selected_targetpositivepointsource. ff_h_mdr_signed_selected_targetpositivepointsource + S (mdr_a_signed_selected_targetpositive) = S ((S ((mdr_u_signed_selected_targetpositivepoint) * (w) + (mdr_v_signed_selected_targetpositivepoint))) * pc)) /\ exists ff_q_mdr_signed_selected_targetpositivepointsource. pb = ff_q_mdr_signed_selected_targetpositivepointsource * S ((S ((mdr_u_signed_selected_targetpositivepoint) * (w) + (mdr_v_signed_selected_targetpositivepoint))) * pc) + (mdr_a_signed_selected_targetpositive)))))))) /\ (((exists ff_h_mdr_signed_selected_targetpositiveoutput. ff_h_mdr_signed_selected_targetpositiveoutput + S (mdr_a_signed_selected_targetpositive) = S ((S (mdr_i_signed_selected_targetpositive)) * uc)) /\ exists ff_q_mdr_signed_selected_targetpositiveoutput. ub = ff_q_mdr_signed_selected_targetpositiveoutput * S ((S (mdr_i_signed_selected_targetpositive)) * uc) + (mdr_a_signed_selected_targetpositive)))))) /\ (forall mdr_i_signed_selected_targetnegative. (exists mdr_gap_signed_selected_targetnegativebound. mdr_gap_signed_selected_targetnegativebound + S (mdr_i_signed_selected_targetnegative) = ((q) * (q))) -> exists mdr_a_signed_selected_targetnegative. (((exists mdr_r_signed_selected_targetnegativepoint mdr_s_signed_selected_targetnegativepoint mdr_u_signed_selected_targetnegativepoint mdr_v_signed_selected_targetnegativepoint. ((mdr_i_signed_selected_targetnegative = (q) * mdr_r_signed_selected_targetnegativepoint + mdr_s_signed_selected_targetnegativepoint) /\ ((exists mdr_gap_signed_selected_targetnegativepointcolumn. mdr_gap_signed_selected_targetnegativepointcolumn + S (mdr_s_signed_selected_targetnegativepoint) = (q)) /\ ((((exists ff_h_mdr_signed_selected_targetnegativepointrow_index. ff_h_mdr_signed_selected_targetnegativepointrow_index + S (mdr_u_signed_selected_targetnegativepoint) = S ((S (mdr_r_signed_selected_targetnegativepoint)) * Rc)) /\ exists ff_q_mdr_signed_selected_targetnegativepointrow_index. Rb = ff_q_mdr_signed_selected_targetnegativepointrow_index * S ((S (mdr_r_signed_selected_targetnegativepoint)) * Rc) + (mdr_u_signed_selected_targetnegativepoint))) /\ ((((exists ff_h_mdr_signed_selected_targetnegativepointcolumn_index. ff_h_mdr_signed_selected_targetnegativepointcolumn_index + S (mdr_v_signed_selected_targetnegativepoint) = S ((S (mdr_s_signed_selected_targetnegativepoint)) * Cc)) /\ exists ff_q_mdr_signed_selected_targetnegativepointcolumn_index. Cb = ff_q_mdr_signed_selected_targetnegativepointcolumn_index * S ((S (mdr_s_signed_selected_targetnegativepoint)) * Cc) + (mdr_v_signed_selected_targetnegativepoint))) /\ (((exists ff_h_mdr_signed_selected_targetnegativepointsource. ff_h_mdr_signed_selected_targetnegativepointsource + S (mdr_a_signed_selected_targetnegative) = S ((S ((mdr_u_signed_selected_targetnegativepoint) * (w) + (mdr_v_signed_selected_targetnegativepoint))) * nc)) /\ exists ff_q_mdr_signed_selected_targetnegativepointsource. nb = ff_q_mdr_signed_selected_targetnegativepointsource * S ((S ((mdr_u_signed_selected_targetnegativepoint) * (w) + (mdr_v_signed_selected_targetnegativepoint))) * nc) + (mdr_a_signed_selected_targetnegative)))))))) /\ (((exists ff_h_mdr_signed_selected_targetnegativeoutput. ff_h_mdr_signed_selected_targetnegativeoutput + S (mdr_a_signed_selected_targetnegative) = S ((S (mdr_i_signed_selected_targetnegative)) * vc)) /\ exists ff_q_mdr_signed_selected_targetnegativeoutput. vb = ff_q_mdr_signed_selected_targetnegativeoutput * S ((S (mdr_i_signed_selected_targetnegative)) * vc) + (mdr_a_signed_selected_targetnegative))))))))Constructive proof overview
Generated structural guide
Both signed component matrices transport across complete finite selector recoding.
The unchanged tactic script uses 1 declared prerequisite and contains 59 exact native proof lines.
Alpha v34 checked-use · first admitted v27 · independently kernel and Lean verified; not Stable
Proof neighborhood
Direct dependencies
Direct 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.
Named ingredients (1)
01Fix variables and assumptionsL1–10
02Fix variables and assumptionsL11–20
03Fix variables and assumptionsL21–21
Work with arbitrary variables or the premises of the current implication.
- L21
intro hselected
04Separate the logical casesL22–23
05Use earlier factsL24–33
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L24
specialize matrix_rank_selected_prefix_selector_transport (pb) - L25
specialize matrix_rank_selected_prefix_selector_transport (pc) - L26
specialize matrix_rank_selected_prefix_selector_transport (w) - L27
specialize matrix_rank_selected_prefix_selector_transport (rb) - L28
specialize matrix_rank_selected_prefix_selector_transport (rc) - L29
specialize matrix_rank_selected_prefix_selector_transport (cb) - L30
specialize matrix_rank_selected_prefix_selector_transport (cc) - L31
specialize matrix_rank_selected_prefix_selector_transport (q) - L32
specialize matrix_rank_selected_prefix_selector_transport (Rb) - L33
specialize matrix_rank_selected_prefix_selector_transport (Rc)
06Use earlier factsL34–43
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L34
specialize matrix_rank_selected_prefix_selector_transport (Cb) - L35
specialize matrix_rank_selected_prefix_selector_transport (Cc) - L36
specialize matrix_rank_selected_prefix_selector_transport (ub) - L37
specialize matrix_rank_selected_prefix_selector_transport (uc) - L38
apply matrix_rank_selected_prefix_selector_transport - L39
exact hrows - L40
exact hcolumns - L41
exact hselected_left - L42
specialize matrix_rank_selected_prefix_selector_transport (nb) - L43
specialize matrix_rank_selected_prefix_selector_transport (nc)
07Use earlier factsL44–53
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L44
specialize matrix_rank_selected_prefix_selector_transport (w) - L45
specialize matrix_rank_selected_prefix_selector_transport (rb) - L46
specialize matrix_rank_selected_prefix_selector_transport (rc) - L47
specialize matrix_rank_selected_prefix_selector_transport (cb) - L48
specialize matrix_rank_selected_prefix_selector_transport (cc) - L49
specialize matrix_rank_selected_prefix_selector_transport (q) - L50
specialize matrix_rank_selected_prefix_selector_transport (Rb) - L51
specialize matrix_rank_selected_prefix_selector_transport (Rc) - L52
specialize matrix_rank_selected_prefix_selector_transport (Cb) - L53
specialize matrix_rank_selected_prefix_selector_transport (Cc)
08Use earlier factsL54–59
Instantiate or apply named facts and discharge the corresponding proof obligations.
Original exact command ledger · 59 lines
- 0001
intro pb - 0002
intro pc - 0003
intro nb - 0004
intro nc - 0005
intro w - 0006
intro rb - 0007
intro rc - 0008
intro cb - 0009
intro cc - 0010
intro q - 0011
intro Rb - 0012
intro Rc - 0013
intro Cb - 0014
intro Cc - 0015
intro ub - 0016
intro uc - 0017
intro vb - 0018
intro vc - 0019
intro hrows - 0020
intro hcolumns - 0021
intro hselected - 0022
cases hselected - 0023
split - 0024
specialize matrix_rank_selected_prefix_selector_transport (pb) - 0025
specialize matrix_rank_selected_prefix_selector_transport (pc) - 0026
specialize matrix_rank_selected_prefix_selector_transport (w) - 0027
specialize matrix_rank_selected_prefix_selector_transport (rb) - 0028
specialize matrix_rank_selected_prefix_selector_transport (rc) - 0029
specialize matrix_rank_selected_prefix_selector_transport (cb) - 0030
specialize matrix_rank_selected_prefix_selector_transport (cc) - 0031
specialize matrix_rank_selected_prefix_selector_transport (q) - 0032
specialize matrix_rank_selected_prefix_selector_transport (Rb) - 0033
specialize matrix_rank_selected_prefix_selector_transport (Rc) - 0034
specialize matrix_rank_selected_prefix_selector_transport (Cb) - 0035
specialize matrix_rank_selected_prefix_selector_transport (Cc) - 0036
specialize matrix_rank_selected_prefix_selector_transport (ub) - 0037
specialize matrix_rank_selected_prefix_selector_transport (uc) - 0038
apply matrix_rank_selected_prefix_selector_transport - 0039
exact hrows - 0040
exact hcolumns - 0041
exact hselected_left - 0042
specialize matrix_rank_selected_prefix_selector_transport (nb) - 0043
specialize matrix_rank_selected_prefix_selector_transport (nc) - 0044
specialize matrix_rank_selected_prefix_selector_transport (w) - 0045
specialize matrix_rank_selected_prefix_selector_transport (rb) - 0046
specialize matrix_rank_selected_prefix_selector_transport (rc) - 0047
specialize matrix_rank_selected_prefix_selector_transport (cb) - 0048
specialize matrix_rank_selected_prefix_selector_transport (cc) - 0049
specialize matrix_rank_selected_prefix_selector_transport (q) - 0050
specialize matrix_rank_selected_prefix_selector_transport (Rb) - 0051
specialize matrix_rank_selected_prefix_selector_transport (Rc) - 0052
specialize matrix_rank_selected_prefix_selector_transport (Cb) - 0053
specialize matrix_rank_selected_prefix_selector_transport (Cc) - 0054
specialize matrix_rank_selected_prefix_selector_transport (vb) - 0055
specialize matrix_rank_selected_prefix_selector_transport (vc) - 0056
apply matrix_rank_selected_prefix_selector_transport - 0057
exact hrows - 0058
exact hcolumns - 0059
exact hselected_right