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 u v l B. (forall mdr_i_selector_transport mdr_a_selector_transport. (exists mdr_gap_selector_transportb. mdr_gap_selector_transportb + S (mdr_i_selector_transport) = (l)) -> (((exists ff_h_mdr_selector_transporto. ff_h_mdr_selector_transporto + S (mdr_a_selector_transport) = S ((S (mdr_i_selector_transport)) * c)) /\ exists ff_q_mdr_selector_transporto. b = ff_q_mdr_selector_transporto * S ((S (mdr_i_selector_transport)) * c) + (mdr_a_selector_transport))) -> (((exists ff_h_mdr_selector_transportn. ff_h_mdr_selector_transportn + S (mdr_a_selector_transport) = S ((S (mdr_i_selector_transport)) * v)) /\ exists ff_q_mdr_selector_transportn. u = ff_q_mdr_selector_transportn * S ((S (mdr_i_selector_transport)) * v) + (mdr_a_selector_transport)))) -> (((forall fom_index_mrf_selector_sourcebound. (exists fom_gap_mrf_selector_sourcebound_index_bound. fom_gap_mrf_selector_sourcebound_index_bound + S (fom_index_mrf_selector_sourcebound) = l) -> exists fom_value_mrf_selector_sourcebound. ((((exists fom_beta_height_mrf_selector_sourcebound_entry. fom_beta_height_mrf_selector_sourcebound_entry + S (fom_value_mrf_selector_sourcebound) = S ((S (fom_index_mrf_selector_sourcebound)) * c)) /\ exists fom_beta_quotient_mrf_selector_sourcebound_entry. b = fom_beta_quotient_mrf_selector_sourcebound_entry * S ((S (fom_index_mrf_selector_sourcebound)) * c) + (fom_value_mrf_selector_sourcebound))) /\ (exists fom_gap_mrf_selector_sourcebound_value_bound. fom_gap_mrf_selector_sourcebound_value_bound + S (fom_value_mrf_selector_sourcebound) = B))) /\ (forall mdr_i_selector_sourcedistinct mdr_j_selector_sourcedistinct mdr_a_selector_sourcedistinct. (exists mdr_gap_selector_sourcedistincti. mdr_gap_selector_sourcedistincti + S (mdr_i_selector_sourcedistinct) = (l)) -> (exists mdr_gap_selector_sourcedistinctj. mdr_gap_selector_sourcedistinctj + S (mdr_j_selector_sourcedistinct) = (l)) -> (((exists ff_h_mdr_selector_sourcedistinctfirst. ff_h_mdr_selector_sourcedistinctfirst + S (mdr_a_selector_sourcedistinct) = S ((S (mdr_i_selector_sourcedistinct)) * c)) /\ exists ff_q_mdr_selector_sourcedistinctfirst. b = ff_q_mdr_selector_sourcedistinctfirst * S ((S (mdr_i_selector_sourcedistinct)) * c) + (mdr_a_selector_sourcedistinct))) -> (((exists ff_h_mdr_selector_sourcedistinctsecond. ff_h_mdr_selector_sourcedistinctsecond + S (mdr_a_selector_sourcedistinct) = S ((S (mdr_j_selector_sourcedistinct)) * c)) /\ exists ff_q_mdr_selector_sourcedistinctsecond. b = ff_q_mdr_selector_sourcedistinctsecond * S ((S (mdr_j_selector_sourcedistinct)) * c) + (mdr_a_selector_sourcedistinct))) -> mdr_i_selector_sourcedistinct = mdr_j_selector_sourcedistinct))) -> (((forall fom_index_mrf_selector_targetbound. (exists fom_gap_mrf_selector_targetbound_index_bound. fom_gap_mrf_selector_targetbound_index_bound + S (fom_index_mrf_selector_targetbound) = l) -> exists fom_value_mrf_selector_targetbound. ((((exists fom_beta_height_mrf_selector_targetbound_entry. fom_beta_height_mrf_selector_targetbound_entry + S (fom_value_mrf_selector_targetbound) = S ((S (fom_index_mrf_selector_targetbound)) * v)) /\ exists fom_beta_quotient_mrf_selector_targetbound_entry. u = fom_beta_quotient_mrf_selector_targetbound_entry * S ((S (fom_index_mrf_selector_targetbound)) * v) + (fom_value_mrf_selector_targetbound))) /\ (exists fom_gap_mrf_selector_targetbound_value_bound. fom_gap_mrf_selector_targetbound_value_bound + S (fom_value_mrf_selector_targetbound) = B))) /\ (forall mdr_i_selector_targetdistinct mdr_j_selector_targetdistinct mdr_a_selector_targetdistinct. (exists mdr_gap_selector_targetdistincti. mdr_gap_selector_targetdistincti + S (mdr_i_selector_targetdistinct) = (l)) -> (exists mdr_gap_selector_targetdistinctj. mdr_gap_selector_targetdistinctj + S (mdr_j_selector_targetdistinct) = (l)) -> (((exists ff_h_mdr_selector_targetdistinctfirst. ff_h_mdr_selector_targetdistinctfirst + S (mdr_a_selector_targetdistinct) = S ((S (mdr_i_selector_targetdistinct)) * v)) /\ exists ff_q_mdr_selector_targetdistinctfirst. u = ff_q_mdr_selector_targetdistinctfirst * S ((S (mdr_i_selector_targetdistinct)) * v) + (mdr_a_selector_targetdistinct))) -> (((exists ff_h_mdr_selector_targetdistinctsecond. ff_h_mdr_selector_targetdistinctsecond + S (mdr_a_selector_targetdistinct) = S ((S (mdr_j_selector_targetdistinct)) * v)) /\ exists ff_q_mdr_selector_targetdistinctsecond. u = ff_q_mdr_selector_targetdistinctsecond * S ((S (mdr_j_selector_targetdistinct)) * v) + (mdr_a_selector_targetdistinct))) -> mdr_i_selector_targetdistinct = mdr_j_selector_targetdistinct)))Constructive proof overview
Generated structural guide
Both in-range coordinates and distinctness survive the complete finite selector recoding.
The unchanged tactic script uses 2 declared prerequisites and contains 27 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 (2)
01Fix variables and assumptionsL1–8
02Separate the logical casesL9–10
03Use earlier factsL11–20
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L11
specialize matrix_rank_bounded_prefix_transport (b) - L12
specialize matrix_rank_bounded_prefix_transport (c) - L13
specialize matrix_rank_bounded_prefix_transport (u) - L14
specialize matrix_rank_bounded_prefix_transport (v) - L15
specialize matrix_rank_bounded_prefix_transport (l) - L16
specialize matrix_rank_bounded_prefix_transport (B) - L17
apply matrix_rank_bounded_prefix_transport - L18
exact hprefix - L19
exact hselector_left - L20
specialize matrix_rank_injective_prefix_transport (b)
04Use earlier factsL21–27
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L21
specialize matrix_rank_injective_prefix_transport (c) - L22
specialize matrix_rank_injective_prefix_transport (u) - L23
specialize matrix_rank_injective_prefix_transport (v) - L24
specialize matrix_rank_injective_prefix_transport (l) - L25
apply matrix_rank_injective_prefix_transport - L26
exact hprefix - L27
exact hselector_right
Original exact command ledger · 27 lines
- 0001
intro b - 0002
intro c - 0003
intro u - 0004
intro v - 0005
intro l - 0006
intro B - 0007
intro hprefix - 0008
intro hselector - 0009
cases hselector - 0010
split - 0011
specialize matrix_rank_bounded_prefix_transport (b) - 0012
specialize matrix_rank_bounded_prefix_transport (c) - 0013
specialize matrix_rank_bounded_prefix_transport (u) - 0014
specialize matrix_rank_bounded_prefix_transport (v) - 0015
specialize matrix_rank_bounded_prefix_transport (l) - 0016
specialize matrix_rank_bounded_prefix_transport (B) - 0017
apply matrix_rank_bounded_prefix_transport - 0018
exact hprefix - 0019
exact hselector_left - 0020
specialize matrix_rank_injective_prefix_transport (b) - 0021
specialize matrix_rank_injective_prefix_transport (c) - 0022
specialize matrix_rank_injective_prefix_transport (u) - 0023
specialize matrix_rank_injective_prefix_transport (v) - 0024
specialize matrix_rank_injective_prefix_transport (l) - 0025
apply matrix_rank_injective_prefix_transport - 0026
exact hprefix - 0027
exact hselector_right