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 expanded first-order arithmetic statement
forall b c B C L t d e D E. (forall mdr_i_pfp_pad_transport_input mdr_a_pfp_pad_transport_input. (exists mdr_gap_pfp_pad_transport_inputb. mdr_gap_pfp_pad_transport_inputb + S (mdr_i_pfp_pad_transport_input) = (L)) -> (((exists ff_h_mdr_pfp_pad_transport_inputo. ff_h_mdr_pfp_pad_transport_inputo + S (mdr_a_pfp_pad_transport_input) = S ((S (mdr_i_pfp_pad_transport_input)) * c)) /\ exists ff_q_mdr_pfp_pad_transport_inputo. b = ff_q_mdr_pfp_pad_transport_inputo * S ((S (mdr_i_pfp_pad_transport_input)) * c) + (mdr_a_pfp_pad_transport_input))) -> (((exists ff_h_mdr_pfp_pad_transport_inputn. ff_h_mdr_pfp_pad_transport_inputn + S (mdr_a_pfp_pad_transport_input) = S ((S (mdr_i_pfp_pad_transport_input)) * C)) /\ exists ff_q_mdr_pfp_pad_transport_inputn. B = ff_q_mdr_pfp_pad_transport_inputn * S ((S (mdr_i_pfp_pad_transport_input)) * C) + (mdr_a_pfp_pad_transport_input)))) -> (forall mdr_i_pfp_pad_transport_output mdr_a_pfp_pad_transport_output. (exists mdr_gap_pfp_pad_transport_outputb. mdr_gap_pfp_pad_transport_outputb + S (mdr_i_pfp_pad_transport_output) = (t+L)) -> (((exists ff_h_mdr_pfp_pad_transport_outputo. ff_h_mdr_pfp_pad_transport_outputo + S (mdr_a_pfp_pad_transport_output) = S ((S (mdr_i_pfp_pad_transport_output)) * e)) /\ exists ff_q_mdr_pfp_pad_transport_outputo. d = ff_q_mdr_pfp_pad_transport_outputo * S ((S (mdr_i_pfp_pad_transport_output)) * e) + (mdr_a_pfp_pad_transport_output))) -> (((exists ff_h_mdr_pfp_pad_transport_outputn. ff_h_mdr_pfp_pad_transport_outputn + S (mdr_a_pfp_pad_transport_output) = S ((S (mdr_i_pfp_pad_transport_output)) * E)) /\ exists ff_q_mdr_pfp_pad_transport_outputn. D = ff_q_mdr_pfp_pad_transport_outputn * S ((S (mdr_i_pfp_pad_transport_output)) * E) + (mdr_a_pfp_pad_transport_output)))) -> (((forall pfp_repeat_index_pad_transport_oldzeros. (exists pfa_gap_pad_transport_oldzerosindex. pfa_gap_pad_transport_oldzerosindex + S (pfp_repeat_index_pad_transport_oldzeros) = (t)) -> (((exists ff_h_pfp_pad_transport_oldzerosentry. ff_h_pfp_pad_transport_oldzerosentry + S (0) = S ((S (pfp_repeat_index_pad_transport_oldzeros)) * e)) /\ exists ff_q_pfp_pad_transport_oldzerosentry. d = ff_q_pfp_pad_transport_oldzerosentry * S ((S (pfp_repeat_index_pad_transport_oldzeros)) * e) + (0)))) /\ ((forall pfrep_index_pad_transport_old pfrep_value_pad_transport_old. (exists pfa_gap_pad_transport_oldbound. pfa_gap_pad_transport_oldbound + S (pfrep_index_pad_transport_old) = (L)) -> (((exists ff_h_pfp_pad_transport_oldinput. ff_h_pfp_pad_transport_oldinput + S (pfrep_value_pad_transport_old) = S ((S (pfrep_index_pad_transport_old)) * c)) /\ exists ff_q_pfp_pad_transport_oldinput. b = ff_q_pfp_pad_transport_oldinput * S ((S (pfrep_index_pad_transport_old)) * c) + (pfrep_value_pad_transport_old))) -> (((exists ff_h_pfp_pad_transport_oldoutput. ff_h_pfp_pad_transport_oldoutput + S (pfrep_value_pad_transport_old) = S ((S ((t)+pfrep_index_pad_transport_old)) * e)) /\ exists ff_q_pfp_pad_transport_oldoutput. d = ff_q_pfp_pad_transport_oldoutput * S ((S ((t)+pfrep_index_pad_transport_old)) * e) + (pfrep_value_pad_transport_old))))))) -> (((forall pfp_repeat_index_pad_transport_newzeros. (exists pfa_gap_pad_transport_newzerosindex. pfa_gap_pad_transport_newzerosindex + S (pfp_repeat_index_pad_transport_newzeros) = (t)) -> (((exists ff_h_pfp_pad_transport_newzerosentry. ff_h_pfp_pad_transport_newzerosentry + S (0) = S ((S (pfp_repeat_index_pad_transport_newzeros)) * E)) /\ exists ff_q_pfp_pad_transport_newzerosentry. D = ff_q_pfp_pad_transport_newzerosentry * S ((S (pfp_repeat_index_pad_transport_newzeros)) * E) + (0)))) /\ ((forall pfrep_index_pad_transport_new pfrep_value_pad_transport_new. (exists pfa_gap_pad_transport_newbound. pfa_gap_pad_transport_newbound + S (pfrep_index_pad_transport_new) = (L)) -> (((exists ff_h_pfp_pad_transport_newinput. ff_h_pfp_pad_transport_newinput + S (pfrep_value_pad_transport_new) = S ((S (pfrep_index_pad_transport_new)) * C)) /\ exists ff_q_pfp_pad_transport_newinput. B = ff_q_pfp_pad_transport_newinput * S ((S (pfrep_index_pad_transport_new)) * C) + (pfrep_value_pad_transport_new))) -> (((exists ff_h_pfp_pad_transport_newoutput. ff_h_pfp_pad_transport_newoutput + S (pfrep_value_pad_transport_new) = S ((S ((t)+pfrep_index_pad_transport_new)) * E)) /\ exists ff_q_pfp_pad_transport_newoutput. D = ff_q_pfp_pad_transport_newoutput * S ((S ((t)+pfrep_index_pad_transport_new)) * E) + (pfrep_value_pad_transport_new)))))))Constructive proof overview
Generated structural guide
Input and full-output recoding preserve the actual leading-zero block and every copied coefficient.
The unchanged tactic script uses 4 declared prerequisites and contains 60 exact native proof lines.
Alpha v34 checked-use · first admitted v33 · independently kernel and Lean verified; not Stable
Proof neighborhood
Direct dependencies
matrix_rank_prefix_equality_symmetric Alpha theorem; checked-use authorized lt_of_lt_of_le Alpha theorem; checked-use authorized le_add_right Alpha theorem; checked-use authorized matrix_recursive_lt_add_left Alpha 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–13
03Separate the logical casesL14–14
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L14
cases h
04Establish hrL15–22
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply matrix rank prefix equality symmetric.
- L15
have hr : BetaPrefixEqual(B,C,b,c,L)Definitions: BetaPrefixEqual - L16
specialize matrix_rank_prefix_equality_symmetric (b) - L17
specialize matrix_rank_prefix_equality_symmetric (c) - L18
specialize matrix_rank_prefix_equality_symmetric (B) - L19
specialize matrix_rank_prefix_equality_symmetric (C) - L20
specialize matrix_rank_prefix_equality_symmetric (L) - L21
apply matrix_rank_prefix_equality_symmetric - L22
exact hi
05Separate the logical casesL23–23
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L23
split
06Fix variables and assumptionsL24–25
07Use earlier factsL26–35
Instantiate or apply named facts and discharge the corresponding proof obligations.
08Use earlier factsL36–39
09Fix variables and assumptionsL40–43
10Use earlier factsL44–53
Instantiate or apply named facts and discharge the corresponding proof obligations.
Original exact command ledger · 60 lines
- 0001
intro b - 0002
intro c - 0003
intro B - 0004
intro C - 0005
intro L - 0006
intro t - 0007
intro d - 0008
intro e - 0009
intro D - 0010
intro E - 0011
intro hi - 0012
intro ho - 0013
intro h - 0014
cases h - 0015
have hr : forall mdr_i_pfp_pad_transport_reverse mdr_a_pfp_pad_transport_reverse. (exists mdr_gap_pfp_pad_transport_reverseb. mdr_gap_pfp_pad_transport_reverseb + S (mdr_i_pfp_pad_transport_reverse) = (L)) -> (((exists ff_h_mdr_pfp_pad_transport_reverseo. ff_h_mdr_pfp_pad_transport_reverseo + S (mdr_a_pfp_pad_transport_reverse) = S ((S (mdr_i_pfp_pad_transport_reverse)) * C)) /\ exists ff_q_mdr_pfp_pad_transport_reverseo. B = ff_q_mdr_pfp_pad_transport_reverseo * S ((S (mdr_i_pfp_pad_transport_reverse)) * C) + (mdr_a_pfp_pad_transport_reverse))) -> (((exists ff_h_mdr_pfp_pad_transport_reversen. ff_h_mdr_pfp_pad_transport_reversen + S (mdr_a_pfp_pad_transport_reverse) = S ((S (mdr_i_pfp_pad_transport_reverse)) * c)) /\ exists ff_q_mdr_pfp_pad_transport_reversen. b = ff_q_mdr_pfp_pad_transport_reversen * S ((S (mdr_i_pfp_pad_transport_reverse)) * c) + (mdr_a_pfp_pad_transport_reverse))) - 0016
specialize matrix_rank_prefix_equality_symmetric (b) - 0017
specialize matrix_rank_prefix_equality_symmetric (c) - 0018
specialize matrix_rank_prefix_equality_symmetric (B) - 0019
specialize matrix_rank_prefix_equality_symmetric (C) - 0020
specialize matrix_rank_prefix_equality_symmetric (L) - 0021
apply matrix_rank_prefix_equality_symmetric - 0022
exact hi - 0023
split - 0024
intro i - 0025
intro hindex - 0026
specialize ho (i) - 0027
specialize ho (0) - 0028
apply ho - 0029
specialize lt_of_lt_of_le (i) - 0030
specialize lt_of_lt_of_le (t) - 0031
specialize lt_of_lt_of_le (t+L) - 0032
apply lt_of_lt_of_le - 0033
exact hindex - 0034
specialize le_add_right (t) - 0035
specialize le_add_right (L) - 0036
apply le_add_right - 0037
specialize h_left (i) - 0038
apply h_left - 0039
exact hindex - 0040
intro i - 0041
intro a - 0042
intro hindex - 0043
intro ha - 0044
specialize ho (t+i) - 0045
specialize ho (a) - 0046
apply ho - 0047
specialize matrix_recursive_lt_add_left (i) - 0048
specialize matrix_recursive_lt_add_left (L) - 0049
specialize matrix_recursive_lt_add_left (t) - 0050
apply matrix_recursive_lt_add_left - 0051
exact hindex - 0052
specialize h_right (i) - 0053
specialize h_right (a) - 0054
apply h_right - 0055
exact hindex - 0056
specialize hr (i) - 0057
specialize hr (a) - 0058
apply hr - 0059
exact hindex - 0060
exact ha