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 p k ab ac bb bc L t AB AC BB BC. (~((p) = 1) /\ forall pfa_factor_left_pad_operation_prime pfa_factor_right_pad_operation_prime. (p) = pfa_factor_left_pad_operation_prime * pfa_factor_right_pad_operation_prime -> pfa_factor_left_pad_operation_prime = 1 \/ pfa_factor_right_pad_operation_prime = 1) -> (((exists pfa_gap_pad_operation_oldscalar. pfa_gap_pad_operation_oldscalar + S (k) = (p)) /\ ((forall pfp_index_pad_operation_old. (exists pfa_gap_pad_operation_oldindex. pfa_gap_pad_operation_oldindex + S (pfp_index_pad_operation_old) = (L)) -> exists pfp_source_pad_operation_old pfp_value_pad_operation_old. ((((exists ff_h_pfp_pad_operation_oldsource. ff_h_pfp_pad_operation_oldsource + S (pfp_source_pad_operation_old) = S ((S (pfp_index_pad_operation_old)) * ac)) /\ exists ff_q_pfp_pad_operation_oldsource. ab = ff_q_pfp_pad_operation_oldsource * S ((S (pfp_index_pad_operation_old)) * ac) + (pfp_source_pad_operation_old))) /\ (((((exists ff_h_pfp_pad_operation_oldtarget. ff_h_pfp_pad_operation_oldtarget + S (pfp_value_pad_operation_old) = S ((S (pfp_index_pad_operation_old)) * bc)) /\ exists ff_q_pfp_pad_operation_oldtarget. bb = ff_q_pfp_pad_operation_oldtarget * S ((S (pfp_index_pad_operation_old)) * bc) + (pfp_value_pad_operation_old))) /\ ((((exists pfa_gap_pad_operation_oldoperationleft. pfa_gap_pad_operation_oldoperationleft + S (k) = (p)) /\ (((exists pfa_gap_pad_operation_oldoperationright. pfa_gap_pad_operation_oldoperationright + S (pfp_source_pad_operation_old) = (p)) /\ ((((exists pfa_gap_pad_operation_oldoperationresultbound. pfa_gap_pad_operation_oldoperationresultbound + S (pfp_value_pad_operation_old) = (p)) /\ ((exists pfa_offset_left_pad_operation_oldoperationresultcongruence pfa_offset_right_pad_operation_oldoperationresultcongruence. ((k) * (pfp_source_pad_operation_old)) + (p) * pfa_offset_left_pad_operation_oldoperationresultcongruence = (pfp_value_pad_operation_old) + (p) * pfa_offset_right_pad_operation_oldoperationresultcongruence))))))))))))))))) -> (((forall pfp_repeat_index_pad_operation_abzeros. (exists pfa_gap_pad_operation_abzerosindex. pfa_gap_pad_operation_abzerosindex + S (pfp_repeat_index_pad_operation_abzeros) = (t)) -> (((exists ff_h_pfp_pad_operation_abzerosentry. ff_h_pfp_pad_operation_abzerosentry + S (0) = S ((S (pfp_repeat_index_pad_operation_abzeros)) * AC)) /\ exists ff_q_pfp_pad_operation_abzerosentry. AB = ff_q_pfp_pad_operation_abzerosentry * S ((S (pfp_repeat_index_pad_operation_abzeros)) * AC) + (0)))) /\ ((forall pfrep_index_pad_operation_ab pfrep_value_pad_operation_ab. (exists pfa_gap_pad_operation_abbound. pfa_gap_pad_operation_abbound + S (pfrep_index_pad_operation_ab) = (L)) -> (((exists ff_h_pfp_pad_operation_abinput. ff_h_pfp_pad_operation_abinput + S (pfrep_value_pad_operation_ab) = S ((S (pfrep_index_pad_operation_ab)) * ac)) /\ exists ff_q_pfp_pad_operation_abinput. ab = ff_q_pfp_pad_operation_abinput * S ((S (pfrep_index_pad_operation_ab)) * ac) + (pfrep_value_pad_operation_ab))) -> (((exists ff_h_pfp_pad_operation_aboutput. ff_h_pfp_pad_operation_aboutput + S (pfrep_value_pad_operation_ab) = S ((S ((t)+pfrep_index_pad_operation_ab)) * AC)) /\ exists ff_q_pfp_pad_operation_aboutput. AB = ff_q_pfp_pad_operation_aboutput * S ((S ((t)+pfrep_index_pad_operation_ab)) * AC) + (pfrep_value_pad_operation_ab))))))) -> (((forall pfp_repeat_index_pad_operation_bbzeros. (exists pfa_gap_pad_operation_bbzerosindex. pfa_gap_pad_operation_bbzerosindex + S (pfp_repeat_index_pad_operation_bbzeros) = (t)) -> (((exists ff_h_pfp_pad_operation_bbzerosentry. ff_h_pfp_pad_operation_bbzerosentry + S (0) = S ((S (pfp_repeat_index_pad_operation_bbzeros)) * BC)) /\ exists ff_q_pfp_pad_operation_bbzerosentry. BB = ff_q_pfp_pad_operation_bbzerosentry * S ((S (pfp_repeat_index_pad_operation_bbzeros)) * BC) + (0)))) /\ ((forall pfrep_index_pad_operation_bb pfrep_value_pad_operation_bb. (exists pfa_gap_pad_operation_bbbound. pfa_gap_pad_operation_bbbound + S (pfrep_index_pad_operation_bb) = (L)) -> (((exists ff_h_pfp_pad_operation_bbinput. ff_h_pfp_pad_operation_bbinput + S (pfrep_value_pad_operation_bb) = S ((S (pfrep_index_pad_operation_bb)) * bc)) /\ exists ff_q_pfp_pad_operation_bbinput. bb = ff_q_pfp_pad_operation_bbinput * S ((S (pfrep_index_pad_operation_bb)) * bc) + (pfrep_value_pad_operation_bb))) -> (((exists ff_h_pfp_pad_operation_bboutput. ff_h_pfp_pad_operation_bboutput + S (pfrep_value_pad_operation_bb) = S ((S ((t)+pfrep_index_pad_operation_bb)) * BC)) /\ exists ff_q_pfp_pad_operation_bboutput. BB = ff_q_pfp_pad_operation_bboutput * S ((S ((t)+pfrep_index_pad_operation_bb)) * BC) + (pfrep_value_pad_operation_bb))))))) -> (((exists pfa_gap_pad_operation_newscalar. pfa_gap_pad_operation_newscalar + S (k) = (p)) /\ ((forall pfp_index_pad_operation_new. (exists pfa_gap_pad_operation_newindex. pfa_gap_pad_operation_newindex + S (pfp_index_pad_operation_new) = (t+L)) -> exists pfp_source_pad_operation_new pfp_value_pad_operation_new. ((((exists ff_h_pfp_pad_operation_newsource. ff_h_pfp_pad_operation_newsource + S (pfp_source_pad_operation_new) = S ((S (pfp_index_pad_operation_new)) * AC)) /\ exists ff_q_pfp_pad_operation_newsource. AB = ff_q_pfp_pad_operation_newsource * S ((S (pfp_index_pad_operation_new)) * AC) + (pfp_source_pad_operation_new))) /\ (((((exists ff_h_pfp_pad_operation_newtarget. ff_h_pfp_pad_operation_newtarget + S (pfp_value_pad_operation_new) = S ((S (pfp_index_pad_operation_new)) * BC)) /\ exists ff_q_pfp_pad_operation_newtarget. BB = ff_q_pfp_pad_operation_newtarget * S ((S (pfp_index_pad_operation_new)) * BC) + (pfp_value_pad_operation_new))) /\ ((((exists pfa_gap_pad_operation_newoperationleft. pfa_gap_pad_operation_newoperationleft + S (k) = (p)) /\ (((exists pfa_gap_pad_operation_newoperationright. pfa_gap_pad_operation_newoperationright + S (pfp_source_pad_operation_new) = (p)) /\ ((((exists pfa_gap_pad_operation_newoperationresultbound. pfa_gap_pad_operation_newoperationresultbound + S (pfp_value_pad_operation_new) = (p)) /\ ((exists pfa_offset_left_pad_operation_newoperationresultcongruence pfa_offset_right_pad_operation_newoperationresultcongruence. ((k) * (pfp_source_pad_operation_new)) + (p) * pfa_offset_left_pad_operation_newoperationresultcongruence = (pfp_value_pad_operation_new) + (p) * pfa_offset_right_pad_operation_newoperationresultcongruence)))))))))))))))))Constructive proof overview
Generated structural guide
Common actual leading-zero padding preserves the genuine aligned scale coefficient operation, including empty prefixes.
The unchanged tactic script uses 2 declared prerequisites and contains 74 exact native proof lines.
Alpha v34 checked-use · first admitted v33 · independently kernel and Lean verified; not Stable
Proof neighborhood
Direct dependencies
PX000A prime_field_polynomial_left_pad_index_cases prime_field_multiply_zero_right 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.
Named ingredients (1)
01Fix variables and assumptionsL1–10
02Fix variables and assumptionsL11–16
03Separate the logical casesL17–20
04Use earlier factsL21–21
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L21
exact hop_left
05Fix variables and assumptionsL22–23
06Establish hcL24–29
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply prime field polynomial left pad index cases.
- L24
have hc : (exists pfa_gap_pad_operation_zero. pfa_gap_pad_operation_zero + S (i) = (t)) \/ exists j. (((exists pfa_gap_pad_operation_source. pfa_gap_pad_operation_source + S (j) = (L)) /\ ((i=t+j)))) - L25
specialize prime_field_polynomial_left_pad_index_cases (t) - L26
specialize prime_field_polynomial_left_pad_index_cases (L) - L27
specialize prime_field_polynomial_left_pad_index_cases (i) - L28
apply prime_field_polynomial_left_pad_index_cases - L29
exact hi
07Separate the logical casesL30–30
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L30
cases hc
08Construct an explicit witnessL31–32
09Separate the logical casesL33–33
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L33
split
10Use earlier factsL34–36
11Separate the logical casesL37–37
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L37
split
12Use earlier factsL38–45
Instantiate or apply named facts and discharge the corresponding proof obligations.
13Separate the logical casesL46–47
14Establish hvL48–51
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply hop right.
15Separate the logical casesL52–55
16Construct an explicit witnessL56–57
17Separate the logical casesL58–58
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L58
split
18Calculate and transport equalitiesL59–60
19Use earlier factsL61–65
20Separate the logical casesL66–66
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L66
split
21Calculate and transport equalitiesL67–68
Original exact command ledger · 74 lines
- 0001
intro p - 0002
intro k - 0003
intro ab - 0004
intro ac - 0005
intro bb - 0006
intro bc - 0007
intro L - 0008
intro t - 0009
intro AB - 0010
intro AC - 0011
intro BB - 0012
intro BC - 0013
intro hp - 0014
intro hop - 0015
intro h0 - 0016
intro h1 - 0017
cases h0 - 0018
cases h1 - 0019
cases hop - 0020
split - 0021
exact hop_left - 0022
intro i - 0023
intro hi - 0024
have hc : (exists pfa_gap_pad_operation_zero. pfa_gap_pad_operation_zero + S (i) = (t)) \/ exists j. (((exists pfa_gap_pad_operation_source. pfa_gap_pad_operation_source + S (j) = (L)) /\ ((i=t+j)))) - 0025
specialize prime_field_polynomial_left_pad_index_cases (t) - 0026
specialize prime_field_polynomial_left_pad_index_cases (L) - 0027
specialize prime_field_polynomial_left_pad_index_cases (i) - 0028
apply prime_field_polynomial_left_pad_index_cases - 0029
exact hi - 0030
cases hc - 0031
exists 0 - 0032
exists 0 - 0033
split - 0034
specialize h0_left (i) - 0035
apply h0_left - 0036
exact hc_left - 0037
split - 0038
specialize h1_left (i) - 0039
apply h1_left - 0040
exact hc_left - 0041
specialize prime_field_multiply_zero_right (p) - 0042
specialize prime_field_multiply_zero_right (k) - 0043
apply prime_field_multiply_zero_right - 0044
exact hp - 0045
exact hop_left - 0046
cases hc_right - 0047
cases hc_right_witness - 0048
have hv : exists a r. (((((exists ff_h_pfp_pad_operation_a. ff_h_pfp_pad_operation_a + S (a) = S ((S (x)) * ac)) /\ exists ff_q_pfp_pad_operation_a. ab = ff_q_pfp_pad_operation_a * S ((S (x)) * ac) + (a))) /\ (((((exists ff_h_pfp_pad_operation_r. ff_h_pfp_pad_operation_r + S (r) = S ((S (x)) * bc)) /\ exists ff_q_pfp_pad_operation_r. bb = ff_q_pfp_pad_operation_r * S ((S (x)) * bc) + (r))) /\ ((((exists pfa_gap_pad_operation_pointleft. pfa_gap_pad_operation_pointleft + S (k) = (p)) /\ (((exists pfa_gap_pad_operation_pointright. pfa_gap_pad_operation_pointright + S (a) = (p)) /\ ((((exists pfa_gap_pad_operation_pointresultbound. pfa_gap_pad_operation_pointresultbound + S (r) = (p)) /\ ((exists pfa_offset_left_pad_operation_pointresultcongruence pfa_offset_right_pad_operation_pointresultcongruence. ((k) * (a)) + (p) * pfa_offset_left_pad_operation_pointresultcongruence = (r) + (p) * pfa_offset_right_pad_operation_pointresultcongruence)))))))))))))) - 0049
specialize hop_right (x) - 0050
apply hop_right - 0051
exact hc_right_witness_left - 0052
cases hv - 0053
cases hv_witness - 0054
cases hv_witness_witness - 0055
cases hv_witness_witness_right - 0056
exists x1 - 0057
exists x2 - 0058
split - 0059
rewrite hc_right_witness_right - 0060
rewrite hc_right_witness_right - 0061
specialize h0_right (x) - 0062
specialize h0_right (x1) - 0063
apply h0_right - 0064
exact hc_right_witness_left - 0065
exact hv_witness_witness_left - 0066
split - 0067
rewrite hc_right_witness_right - 0068
rewrite hc_right_witness_right - 0069
specialize h1_right (x) - 0070
specialize h1_right (x2) - 0071
apply h1_right - 0072
exact hc_right_witness_left - 0073
exact hv_witness_witness_right_left - 0074
exact hv_witness_witness_right_right