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 ub uc vb vc Ub Uc Vb Vc. (((forall mdr_i_first_selectedpositive. (exists mdr_gap_first_selectedpositivebound. mdr_gap_first_selectedpositivebound + S (mdr_i_first_selectedpositive) = ((q) * (q))) -> exists mdr_a_first_selectedpositive. (((exists mdr_r_first_selectedpositivepoint mdr_s_first_selectedpositivepoint mdr_u_first_selectedpositivepoint mdr_v_first_selectedpositivepoint. ((mdr_i_first_selectedpositive = (q) * mdr_r_first_selectedpositivepoint + mdr_s_first_selectedpositivepoint) /\ ((exists mdr_gap_first_selectedpositivepointcolumn. mdr_gap_first_selectedpositivepointcolumn + S (mdr_s_first_selectedpositivepoint) = (q)) /\ ((((exists ff_h_mdr_first_selectedpositivepointrow_index. ff_h_mdr_first_selectedpositivepointrow_index + S (mdr_u_first_selectedpositivepoint) = S ((S (mdr_r_first_selectedpositivepoint)) * rc)) /\ exists ff_q_mdr_first_selectedpositivepointrow_index. rb = ff_q_mdr_first_selectedpositivepointrow_index * S ((S (mdr_r_first_selectedpositivepoint)) * rc) + (mdr_u_first_selectedpositivepoint))) /\ ((((exists ff_h_mdr_first_selectedpositivepointcolumn_index. ff_h_mdr_first_selectedpositivepointcolumn_index + S (mdr_v_first_selectedpositivepoint) = S ((S (mdr_s_first_selectedpositivepoint)) * cc)) /\ exists ff_q_mdr_first_selectedpositivepointcolumn_index. cb = ff_q_mdr_first_selectedpositivepointcolumn_index * S ((S (mdr_s_first_selectedpositivepoint)) * cc) + (mdr_v_first_selectedpositivepoint))) /\ (((exists ff_h_mdr_first_selectedpositivepointsource. ff_h_mdr_first_selectedpositivepointsource + S (mdr_a_first_selectedpositive) = S ((S ((mdr_u_first_selectedpositivepoint) * (w) + (mdr_v_first_selectedpositivepoint))) * pc)) /\ exists ff_q_mdr_first_selectedpositivepointsource. pb = ff_q_mdr_first_selectedpositivepointsource * S ((S ((mdr_u_first_selectedpositivepoint) * (w) + (mdr_v_first_selectedpositivepoint))) * pc) + (mdr_a_first_selectedpositive)))))))) /\ (((exists ff_h_mdr_first_selectedpositiveoutput. ff_h_mdr_first_selectedpositiveoutput + S (mdr_a_first_selectedpositive) = S ((S (mdr_i_first_selectedpositive)) * uc)) /\ exists ff_q_mdr_first_selectedpositiveoutput. ub = ff_q_mdr_first_selectedpositiveoutput * S ((S (mdr_i_first_selectedpositive)) * uc) + (mdr_a_first_selectedpositive)))))) /\ (forall mdr_i_first_selectednegative. (exists mdr_gap_first_selectednegativebound. mdr_gap_first_selectednegativebound + S (mdr_i_first_selectednegative) = ((q) * (q))) -> exists mdr_a_first_selectednegative. (((exists mdr_r_first_selectednegativepoint mdr_s_first_selectednegativepoint mdr_u_first_selectednegativepoint mdr_v_first_selectednegativepoint. ((mdr_i_first_selectednegative = (q) * mdr_r_first_selectednegativepoint + mdr_s_first_selectednegativepoint) /\ ((exists mdr_gap_first_selectednegativepointcolumn. mdr_gap_first_selectednegativepointcolumn + S (mdr_s_first_selectednegativepoint) = (q)) /\ ((((exists ff_h_mdr_first_selectednegativepointrow_index. ff_h_mdr_first_selectednegativepointrow_index + S (mdr_u_first_selectednegativepoint) = S ((S (mdr_r_first_selectednegativepoint)) * rc)) /\ exists ff_q_mdr_first_selectednegativepointrow_index. rb = ff_q_mdr_first_selectednegativepointrow_index * S ((S (mdr_r_first_selectednegativepoint)) * rc) + (mdr_u_first_selectednegativepoint))) /\ ((((exists ff_h_mdr_first_selectednegativepointcolumn_index. ff_h_mdr_first_selectednegativepointcolumn_index + S (mdr_v_first_selectednegativepoint) = S ((S (mdr_s_first_selectednegativepoint)) * cc)) /\ exists ff_q_mdr_first_selectednegativepointcolumn_index. cb = ff_q_mdr_first_selectednegativepointcolumn_index * S ((S (mdr_s_first_selectednegativepoint)) * cc) + (mdr_v_first_selectednegativepoint))) /\ (((exists ff_h_mdr_first_selectednegativepointsource. ff_h_mdr_first_selectednegativepointsource + S (mdr_a_first_selectednegative) = S ((S ((mdr_u_first_selectednegativepoint) * (w) + (mdr_v_first_selectednegativepoint))) * nc)) /\ exists ff_q_mdr_first_selectednegativepointsource. nb = ff_q_mdr_first_selectednegativepointsource * S ((S ((mdr_u_first_selectednegativepoint) * (w) + (mdr_v_first_selectednegativepoint))) * nc) + (mdr_a_first_selectednegative)))))))) /\ (((exists ff_h_mdr_first_selectednegativeoutput. ff_h_mdr_first_selectednegativeoutput + S (mdr_a_first_selectednegative) = S ((S (mdr_i_first_selectednegative)) * vc)) /\ exists ff_q_mdr_first_selectednegativeoutput. vb = ff_q_mdr_first_selectednegativeoutput * S ((S (mdr_i_first_selectednegative)) * vc) + (mdr_a_first_selectednegative)))))))) -> (((forall mdr_i_second_selectedpositive. (exists mdr_gap_second_selectedpositivebound. mdr_gap_second_selectedpositivebound + S (mdr_i_second_selectedpositive) = ((q) * (q))) -> exists mdr_a_second_selectedpositive. (((exists mdr_r_second_selectedpositivepoint mdr_s_second_selectedpositivepoint mdr_u_second_selectedpositivepoint mdr_v_second_selectedpositivepoint. ((mdr_i_second_selectedpositive = (q) * mdr_r_second_selectedpositivepoint + mdr_s_second_selectedpositivepoint) /\ ((exists mdr_gap_second_selectedpositivepointcolumn. mdr_gap_second_selectedpositivepointcolumn + S (mdr_s_second_selectedpositivepoint) = (q)) /\ ((((exists ff_h_mdr_second_selectedpositivepointrow_index. ff_h_mdr_second_selectedpositivepointrow_index + S (mdr_u_second_selectedpositivepoint) = S ((S (mdr_r_second_selectedpositivepoint)) * rc)) /\ exists ff_q_mdr_second_selectedpositivepointrow_index. rb = ff_q_mdr_second_selectedpositivepointrow_index * S ((S (mdr_r_second_selectedpositivepoint)) * rc) + (mdr_u_second_selectedpositivepoint))) /\ ((((exists ff_h_mdr_second_selectedpositivepointcolumn_index. ff_h_mdr_second_selectedpositivepointcolumn_index + S (mdr_v_second_selectedpositivepoint) = S ((S (mdr_s_second_selectedpositivepoint)) * cc)) /\ exists ff_q_mdr_second_selectedpositivepointcolumn_index. cb = ff_q_mdr_second_selectedpositivepointcolumn_index * S ((S (mdr_s_second_selectedpositivepoint)) * cc) + (mdr_v_second_selectedpositivepoint))) /\ (((exists ff_h_mdr_second_selectedpositivepointsource. ff_h_mdr_second_selectedpositivepointsource + S (mdr_a_second_selectedpositive) = S ((S ((mdr_u_second_selectedpositivepoint) * (w) + (mdr_v_second_selectedpositivepoint))) * pc)) /\ exists ff_q_mdr_second_selectedpositivepointsource. pb = ff_q_mdr_second_selectedpositivepointsource * S ((S ((mdr_u_second_selectedpositivepoint) * (w) + (mdr_v_second_selectedpositivepoint))) * pc) + (mdr_a_second_selectedpositive)))))))) /\ (((exists ff_h_mdr_second_selectedpositiveoutput. ff_h_mdr_second_selectedpositiveoutput + S (mdr_a_second_selectedpositive) = S ((S (mdr_i_second_selectedpositive)) * Uc)) /\ exists ff_q_mdr_second_selectedpositiveoutput. Ub = ff_q_mdr_second_selectedpositiveoutput * S ((S (mdr_i_second_selectedpositive)) * Uc) + (mdr_a_second_selectedpositive)))))) /\ (forall mdr_i_second_selectednegative. (exists mdr_gap_second_selectednegativebound. mdr_gap_second_selectednegativebound + S (mdr_i_second_selectednegative) = ((q) * (q))) -> exists mdr_a_second_selectednegative. (((exists mdr_r_second_selectednegativepoint mdr_s_second_selectednegativepoint mdr_u_second_selectednegativepoint mdr_v_second_selectednegativepoint. ((mdr_i_second_selectednegative = (q) * mdr_r_second_selectednegativepoint + mdr_s_second_selectednegativepoint) /\ ((exists mdr_gap_second_selectednegativepointcolumn. mdr_gap_second_selectednegativepointcolumn + S (mdr_s_second_selectednegativepoint) = (q)) /\ ((((exists ff_h_mdr_second_selectednegativepointrow_index. ff_h_mdr_second_selectednegativepointrow_index + S (mdr_u_second_selectednegativepoint) = S ((S (mdr_r_second_selectednegativepoint)) * rc)) /\ exists ff_q_mdr_second_selectednegativepointrow_index. rb = ff_q_mdr_second_selectednegativepointrow_index * S ((S (mdr_r_second_selectednegativepoint)) * rc) + (mdr_u_second_selectednegativepoint))) /\ ((((exists ff_h_mdr_second_selectednegativepointcolumn_index. ff_h_mdr_second_selectednegativepointcolumn_index + S (mdr_v_second_selectednegativepoint) = S ((S (mdr_s_second_selectednegativepoint)) * cc)) /\ exists ff_q_mdr_second_selectednegativepointcolumn_index. cb = ff_q_mdr_second_selectednegativepointcolumn_index * S ((S (mdr_s_second_selectednegativepoint)) * cc) + (mdr_v_second_selectednegativepoint))) /\ (((exists ff_h_mdr_second_selectednegativepointsource. ff_h_mdr_second_selectednegativepointsource + S (mdr_a_second_selectednegative) = S ((S ((mdr_u_second_selectednegativepoint) * (w) + (mdr_v_second_selectednegativepoint))) * nc)) /\ exists ff_q_mdr_second_selectednegativepointsource. nb = ff_q_mdr_second_selectednegativepointsource * S ((S ((mdr_u_second_selectednegativepoint) * (w) + (mdr_v_second_selectednegativepoint))) * nc) + (mdr_a_second_selectednegative)))))))) /\ (((exists ff_h_mdr_second_selectednegativeoutput. ff_h_mdr_second_selectednegativeoutput + S (mdr_a_second_selectednegative) = S ((S (mdr_i_second_selectednegative)) * Vc)) /\ exists ff_q_mdr_second_selectednegativeoutput. Vb = ff_q_mdr_second_selectednegativeoutput * S ((S (mdr_i_second_selectednegative)) * Vc) + (mdr_a_second_selectednegative)))))))) -> (((forall mdr_i_signed_selected_equalp mdr_a_signed_selected_equalp. (exists mdr_gap_signed_selected_equalpb. mdr_gap_signed_selected_equalpb + S (mdr_i_signed_selected_equalp) = ((q) * (q))) -> (((exists ff_h_mdr_signed_selected_equalpo. ff_h_mdr_signed_selected_equalpo + S (mdr_a_signed_selected_equalp) = S ((S (mdr_i_signed_selected_equalp)) * uc)) /\ exists ff_q_mdr_signed_selected_equalpo. ub = ff_q_mdr_signed_selected_equalpo * S ((S (mdr_i_signed_selected_equalp)) * uc) + (mdr_a_signed_selected_equalp))) -> (((exists ff_h_mdr_signed_selected_equalpn. ff_h_mdr_signed_selected_equalpn + S (mdr_a_signed_selected_equalp) = S ((S (mdr_i_signed_selected_equalp)) * Uc)) /\ exists ff_q_mdr_signed_selected_equalpn. Ub = ff_q_mdr_signed_selected_equalpn * S ((S (mdr_i_signed_selected_equalp)) * Uc) + (mdr_a_signed_selected_equalp)))) /\ (forall mdr_i_signed_selected_equaln mdr_a_signed_selected_equaln. (exists mdr_gap_signed_selected_equalnb. mdr_gap_signed_selected_equalnb + S (mdr_i_signed_selected_equaln) = ((q) * (q))) -> (((exists ff_h_mdr_signed_selected_equalno. ff_h_mdr_signed_selected_equalno + S (mdr_a_signed_selected_equaln) = S ((S (mdr_i_signed_selected_equaln)) * vc)) /\ exists ff_q_mdr_signed_selected_equalno. vb = ff_q_mdr_signed_selected_equalno * S ((S (mdr_i_signed_selected_equaln)) * vc) + (mdr_a_signed_selected_equaln))) -> (((exists ff_h_mdr_signed_selected_equalnn. ff_h_mdr_signed_selected_equalnn + S (mdr_a_signed_selected_equaln) = S ((S (mdr_i_signed_selected_equaln)) * Vc)) /\ exists ff_q_mdr_signed_selected_equalnn. Vb = ff_q_mdr_signed_selected_equalnn * S ((S (mdr_i_signed_selected_equaln)) * Vc) + (mdr_a_signed_selected_equaln))))))Constructive proof overview
Generated structural guide
Both signed components of any two genuine selected-submatrix encodings are extensionally identical.
The unchanged tactic script uses 1 declared prerequisite and contains 53 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
03Separate the logical casesL21–23
04Use earlier factsL24–33
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L24
specialize matrix_rank_selected_prefix_functional (pb) - L25
specialize matrix_rank_selected_prefix_functional (pc) - L26
specialize matrix_rank_selected_prefix_functional (w) - L27
specialize matrix_rank_selected_prefix_functional (rb) - L28
specialize matrix_rank_selected_prefix_functional (rc) - L29
specialize matrix_rank_selected_prefix_functional (cb) - L30
specialize matrix_rank_selected_prefix_functional (cc) - L31
specialize matrix_rank_selected_prefix_functional (q) - L32
specialize matrix_rank_selected_prefix_functional (ub) - L33
specialize matrix_rank_selected_prefix_functional (uc)
05Use earlier factsL34–43
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L34
specialize matrix_rank_selected_prefix_functional (Ub) - L35
specialize matrix_rank_selected_prefix_functional (Uc) - L36
apply matrix_rank_selected_prefix_functional - L37
exact hfirst_left - L38
exact hsecond_left - L39
specialize matrix_rank_selected_prefix_functional (nb) - L40
specialize matrix_rank_selected_prefix_functional (nc) - L41
specialize matrix_rank_selected_prefix_functional (w) - L42
specialize matrix_rank_selected_prefix_functional (rb) - L43
specialize matrix_rank_selected_prefix_functional (rc)
06Use earlier factsL44–53
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L44
specialize matrix_rank_selected_prefix_functional (cb) - L45
specialize matrix_rank_selected_prefix_functional (cc) - L46
specialize matrix_rank_selected_prefix_functional (q) - L47
specialize matrix_rank_selected_prefix_functional (vb) - L48
specialize matrix_rank_selected_prefix_functional (vc) - L49
specialize matrix_rank_selected_prefix_functional (Vb) - L50
specialize matrix_rank_selected_prefix_functional (Vc) - L51
apply matrix_rank_selected_prefix_functional - L52
exact hfirst_right - L53
exact hsecond_right
Original exact command ledger · 53 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 ub - 0012
intro uc - 0013
intro vb - 0014
intro vc - 0015
intro Ub - 0016
intro Uc - 0017
intro Vb - 0018
intro Vc - 0019
intro hfirst - 0020
intro hsecond - 0021
cases hfirst - 0022
cases hsecond - 0023
split - 0024
specialize matrix_rank_selected_prefix_functional (pb) - 0025
specialize matrix_rank_selected_prefix_functional (pc) - 0026
specialize matrix_rank_selected_prefix_functional (w) - 0027
specialize matrix_rank_selected_prefix_functional (rb) - 0028
specialize matrix_rank_selected_prefix_functional (rc) - 0029
specialize matrix_rank_selected_prefix_functional (cb) - 0030
specialize matrix_rank_selected_prefix_functional (cc) - 0031
specialize matrix_rank_selected_prefix_functional (q) - 0032
specialize matrix_rank_selected_prefix_functional (ub) - 0033
specialize matrix_rank_selected_prefix_functional (uc) - 0034
specialize matrix_rank_selected_prefix_functional (Ub) - 0035
specialize matrix_rank_selected_prefix_functional (Uc) - 0036
apply matrix_rank_selected_prefix_functional - 0037
exact hfirst_left - 0038
exact hsecond_left - 0039
specialize matrix_rank_selected_prefix_functional (nb) - 0040
specialize matrix_rank_selected_prefix_functional (nc) - 0041
specialize matrix_rank_selected_prefix_functional (w) - 0042
specialize matrix_rank_selected_prefix_functional (rb) - 0043
specialize matrix_rank_selected_prefix_functional (rc) - 0044
specialize matrix_rank_selected_prefix_functional (cb) - 0045
specialize matrix_rank_selected_prefix_functional (cc) - 0046
specialize matrix_rank_selected_prefix_functional (q) - 0047
specialize matrix_rank_selected_prefix_functional (vb) - 0048
specialize matrix_rank_selected_prefix_functional (vc) - 0049
specialize matrix_rank_selected_prefix_functional (Vb) - 0050
specialize matrix_rank_selected_prefix_functional (Vc) - 0051
apply matrix_rank_selected_prefix_functional - 0052
exact hfirst_right - 0053
exact hsecond_right