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 ab ac bb bc cb cc L t AB AC BB BC CB CC. (~((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) -> (forall pfs_index_pad_operation_old. (exists pfa_gap_pad_operation_oldindex. pfa_gap_pad_operation_oldindex + S (pfs_index_pad_operation_old) = (L)) -> exists pfs_left_pad_operation_old pfs_right_pad_operation_old pfs_result_pad_operation_old. ((((exists ff_h_pfp_pad_operation_oldleft. ff_h_pfp_pad_operation_oldleft + S (pfs_left_pad_operation_old) = S ((S (pfs_index_pad_operation_old)) * ac)) /\ exists ff_q_pfp_pad_operation_oldleft. ab = ff_q_pfp_pad_operation_oldleft * S ((S (pfs_index_pad_operation_old)) * ac) + (pfs_left_pad_operation_old))) /\ (((((exists ff_h_pfp_pad_operation_oldright. ff_h_pfp_pad_operation_oldright + S (pfs_right_pad_operation_old) = S ((S (pfs_index_pad_operation_old)) * bc)) /\ exists ff_q_pfp_pad_operation_oldright. bb = ff_q_pfp_pad_operation_oldright * S ((S (pfs_index_pad_operation_old)) * bc) + (pfs_right_pad_operation_old))) /\ (((((exists ff_h_pfp_pad_operation_oldresult. ff_h_pfp_pad_operation_oldresult + S (pfs_result_pad_operation_old) = S ((S (pfs_index_pad_operation_old)) * cc)) /\ exists ff_q_pfp_pad_operation_oldresult. cb = ff_q_pfp_pad_operation_oldresult * S ((S (pfs_index_pad_operation_old)) * cc) + (pfs_result_pad_operation_old))) /\ ((((exists pfa_gap_pad_operation_oldoperationleft. pfa_gap_pad_operation_oldoperationleft + S (pfs_right_pad_operation_old) = (p)) /\ (((exists pfa_gap_pad_operation_oldoperationright. pfa_gap_pad_operation_oldoperationright + S (pfs_result_pad_operation_old) = (p)) /\ ((((exists pfa_gap_pad_operation_oldoperationresultbound. pfa_gap_pad_operation_oldoperationresultbound + S (pfs_left_pad_operation_old) = (p)) /\ ((exists pfa_offset_left_pad_operation_oldoperationresultcongruence pfa_offset_right_pad_operation_oldoperationresultcongruence. ((pfs_right_pad_operation_old) + (pfs_result_pad_operation_old)) + (p) * pfa_offset_left_pad_operation_oldoperationresultcongruence = (pfs_left_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))))))) -> (((forall pfp_repeat_index_pad_operation_cbzeros. (exists pfa_gap_pad_operation_cbzerosindex. pfa_gap_pad_operation_cbzerosindex + S (pfp_repeat_index_pad_operation_cbzeros) = (t)) -> (((exists ff_h_pfp_pad_operation_cbzerosentry. ff_h_pfp_pad_operation_cbzerosentry + S (0) = S ((S (pfp_repeat_index_pad_operation_cbzeros)) * CC)) /\ exists ff_q_pfp_pad_operation_cbzerosentry. CB = ff_q_pfp_pad_operation_cbzerosentry * S ((S (pfp_repeat_index_pad_operation_cbzeros)) * CC) + (0)))) /\ ((forall pfrep_index_pad_operation_cb pfrep_value_pad_operation_cb. (exists pfa_gap_pad_operation_cbbound. pfa_gap_pad_operation_cbbound + S (pfrep_index_pad_operation_cb) = (L)) -> (((exists ff_h_pfp_pad_operation_cbinput. ff_h_pfp_pad_operation_cbinput + S (pfrep_value_pad_operation_cb) = S ((S (pfrep_index_pad_operation_cb)) * cc)) /\ exists ff_q_pfp_pad_operation_cbinput. cb = ff_q_pfp_pad_operation_cbinput * S ((S (pfrep_index_pad_operation_cb)) * cc) + (pfrep_value_pad_operation_cb))) -> (((exists ff_h_pfp_pad_operation_cboutput. ff_h_pfp_pad_operation_cboutput + S (pfrep_value_pad_operation_cb) = S ((S ((t)+pfrep_index_pad_operation_cb)) * CC)) /\ exists ff_q_pfp_pad_operation_cboutput. CB = ff_q_pfp_pad_operation_cboutput * S ((S ((t)+pfrep_index_pad_operation_cb)) * CC) + (pfrep_value_pad_operation_cb))))))) -> (forall pfs_index_pad_operation_new. (exists pfa_gap_pad_operation_newindex. pfa_gap_pad_operation_newindex + S (pfs_index_pad_operation_new) = (t+L)) -> exists pfs_left_pad_operation_new pfs_right_pad_operation_new pfs_result_pad_operation_new. ((((exists ff_h_pfp_pad_operation_newleft. ff_h_pfp_pad_operation_newleft + S (pfs_left_pad_operation_new) = S ((S (pfs_index_pad_operation_new)) * AC)) /\ exists ff_q_pfp_pad_operation_newleft. AB = ff_q_pfp_pad_operation_newleft * S ((S (pfs_index_pad_operation_new)) * AC) + (pfs_left_pad_operation_new))) /\ (((((exists ff_h_pfp_pad_operation_newright. ff_h_pfp_pad_operation_newright + S (pfs_right_pad_operation_new) = S ((S (pfs_index_pad_operation_new)) * BC)) /\ exists ff_q_pfp_pad_operation_newright. BB = ff_q_pfp_pad_operation_newright * S ((S (pfs_index_pad_operation_new)) * BC) + (pfs_right_pad_operation_new))) /\ (((((exists ff_h_pfp_pad_operation_newresult. ff_h_pfp_pad_operation_newresult + S (pfs_result_pad_operation_new) = S ((S (pfs_index_pad_operation_new)) * CC)) /\ exists ff_q_pfp_pad_operation_newresult. CB = ff_q_pfp_pad_operation_newresult * S ((S (pfs_index_pad_operation_new)) * CC) + (pfs_result_pad_operation_new))) /\ ((((exists pfa_gap_pad_operation_newoperationleft. pfa_gap_pad_operation_newoperationleft + S (pfs_right_pad_operation_new) = (p)) /\ (((exists pfa_gap_pad_operation_newoperationright. pfa_gap_pad_operation_newoperationright + S (pfs_result_pad_operation_new) = (p)) /\ ((((exists pfa_gap_pad_operation_newoperationresultbound. pfa_gap_pad_operation_newoperationresultbound + S (pfs_left_pad_operation_new) = (p)) /\ ((exists pfa_offset_left_pad_operation_newoperationresultcongruence pfa_offset_right_pad_operation_newoperationresultcongruence. ((pfs_right_pad_operation_new) + (pfs_result_pad_operation_new)) + (p) * pfa_offset_left_pad_operation_newoperationresultcongruence = (pfs_left_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 subtract coefficient operation, including empty prefixes.
The unchanged tactic script uses 3 declared prerequisites and contains 94 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_add_zero_right Alpha theorem; checked-use authorized prime_field_zero_below_prime 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–20
03Separate the logical casesL21–23
04Fix variables and assumptionsL24–25
05Establish hcL26–31
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.
- L26
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)))) - L27
specialize prime_field_polynomial_left_pad_index_cases (t) - L28
specialize prime_field_polynomial_left_pad_index_cases (L) - L29
specialize prime_field_polynomial_left_pad_index_cases (i) - L30
apply prime_field_polynomial_left_pad_index_cases - L31
exact hi
06Separate the logical casesL32–32
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L32
cases hc
07Construct an explicit witnessL33–35
08Separate the logical casesL36–36
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L36
split
09Use earlier factsL37–39
10Separate the logical casesL40–40
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L40
split
11Use earlier factsL41–43
12Separate the logical casesL44–44
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L44
split
13Use earlier factsL45–54
Instantiate or apply named facts and discharge the corresponding proof obligations.
14Separate the logical casesL55–56
15Establish hvL57–60
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply hop.
16Separate the logical casesL61–66
17Construct an explicit witnessL67–69
18Separate the logical casesL70–70
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L70
split
19Calculate and transport equalitiesL71–72
20Use earlier factsL73–77
21Separate the logical casesL78–78
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L78
split
22Calculate and transport equalitiesL79–80
23Use earlier factsL81–85
24Separate the logical casesL86–86
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L86
split
25Calculate and transport equalitiesL87–88
26Use earlier factsL89–94
Original exact command ledger · 94 lines
- 0001
intro p - 0002
intro ab - 0003
intro ac - 0004
intro bb - 0005
intro bc - 0006
intro cb - 0007
intro cc - 0008
intro L - 0009
intro t - 0010
intro AB - 0011
intro AC - 0012
intro BB - 0013
intro BC - 0014
intro CB - 0015
intro CC - 0016
intro hp - 0017
intro hop - 0018
intro h0 - 0019
intro h1 - 0020
intro h2 - 0021
cases h0 - 0022
cases h1 - 0023
cases h2 - 0024
intro i - 0025
intro hi - 0026
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)))) - 0027
specialize prime_field_polynomial_left_pad_index_cases (t) - 0028
specialize prime_field_polynomial_left_pad_index_cases (L) - 0029
specialize prime_field_polynomial_left_pad_index_cases (i) - 0030
apply prime_field_polynomial_left_pad_index_cases - 0031
exact hi - 0032
cases hc - 0033
exists 0 - 0034
exists 0 - 0035
exists 0 - 0036
split - 0037
specialize h0_left (i) - 0038
apply h0_left - 0039
exact hc_left - 0040
split - 0041
specialize h1_left (i) - 0042
apply h1_left - 0043
exact hc_left - 0044
split - 0045
specialize h2_left (i) - 0046
apply h2_left - 0047
exact hc_left - 0048
specialize prime_field_add_zero_right (p) - 0049
specialize prime_field_add_zero_right (0) - 0050
apply prime_field_add_zero_right - 0051
exact hp - 0052
specialize prime_field_zero_below_prime (p) - 0053
apply prime_field_zero_below_prime - 0054
exact hp - 0055
cases hc_right - 0056
cases hc_right_witness - 0057
have hv : exists a b 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_b. ff_h_pfp_pad_operation_b + S (b) = S ((S (x)) * bc)) /\ exists ff_q_pfp_pad_operation_b. bb = ff_q_pfp_pad_operation_b * S ((S (x)) * bc) + (b))) /\ (((((exists ff_h_pfp_pad_operation_r. ff_h_pfp_pad_operation_r + S (r) = S ((S (x)) * cc)) /\ exists ff_q_pfp_pad_operation_r. cb = ff_q_pfp_pad_operation_r * S ((S (x)) * cc) + (r))) /\ ((((exists pfa_gap_pad_operation_pointleft. pfa_gap_pad_operation_pointleft + S (b) = (p)) /\ (((exists pfa_gap_pad_operation_pointright. pfa_gap_pad_operation_pointright + S (r) = (p)) /\ ((((exists pfa_gap_pad_operation_pointresultbound. pfa_gap_pad_operation_pointresultbound + S (a) = (p)) /\ ((exists pfa_offset_left_pad_operation_pointresultcongruence pfa_offset_right_pad_operation_pointresultcongruence. ((b) + (r)) + (p) * pfa_offset_left_pad_operation_pointresultcongruence = (a) + (p) * pfa_offset_right_pad_operation_pointresultcongruence)))))))))))))))) - 0058
specialize hop (x) - 0059
apply hop - 0060
exact hc_right_witness_left - 0061
cases hv - 0062
cases hv_witness - 0063
cases hv_witness_witness - 0064
cases hv_witness_witness_witness - 0065
cases hv_witness_witness_witness_right - 0066
cases hv_witness_witness_witness_right_right - 0067
exists x1 - 0068
exists x2 - 0069
exists x3 - 0070
split - 0071
rewrite hc_right_witness_right - 0072
rewrite hc_right_witness_right - 0073
specialize h0_right (x) - 0074
specialize h0_right (x1) - 0075
apply h0_right - 0076
exact hc_right_witness_left - 0077
exact hv_witness_witness_witness_left - 0078
split - 0079
rewrite hc_right_witness_right - 0080
rewrite hc_right_witness_right - 0081
specialize h1_right (x) - 0082
specialize h1_right (x2) - 0083
apply h1_right - 0084
exact hc_right_witness_left - 0085
exact hv_witness_witness_witness_right_left - 0086
split - 0087
rewrite hc_right_witness_right - 0088
rewrite hc_right_witness_right - 0089
specialize h2_right (x) - 0090
specialize h2_right (x3) - 0091
apply h2_right - 0092
exact hc_right_witness_left - 0093
exact hv_witness_witness_witness_right_right_left - 0094
exact hv_witness_witness_witness_right_right_right