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_add_output_prime pfa_factor_right_add_output_prime. (p) = pfa_factor_left_add_output_prime * pfa_factor_right_add_output_prime -> pfa_factor_left_add_output_prime = 1 \/ pfa_factor_right_add_output_prime = 1) -> (forall pfp_index_add_output_original. (exists pfa_gap_add_output_originalindex. pfa_gap_add_output_originalindex + S (pfp_index_add_output_original) = (L)) -> exists pfp_left_add_output_original pfp_right_add_output_original pfp_value_add_output_original. ((((exists ff_h_pfp_add_output_originalleft. ff_h_pfp_add_output_originalleft + S (pfp_left_add_output_original) = S ((S (pfp_index_add_output_original)) * ac)) /\ exists ff_q_pfp_add_output_originalleft. ab = ff_q_pfp_add_output_originalleft * S ((S (pfp_index_add_output_original)) * ac) + (pfp_left_add_output_original))) /\ (((((exists ff_h_pfp_add_output_originalright. ff_h_pfp_add_output_originalright + S (pfp_right_add_output_original) = S ((S (pfp_index_add_output_original)) * bc)) /\ exists ff_q_pfp_add_output_originalright. bb = ff_q_pfp_add_output_originalright * S ((S (pfp_index_add_output_original)) * bc) + (pfp_right_add_output_original))) /\ (((((exists ff_h_pfp_add_output_originaltarget. ff_h_pfp_add_output_originaltarget + S (pfp_value_add_output_original) = S ((S (pfp_index_add_output_original)) * cc)) /\ exists ff_q_pfp_add_output_originaltarget. cb = ff_q_pfp_add_output_originaltarget * S ((S (pfp_index_add_output_original)) * cc) + (pfp_value_add_output_original))) /\ ((((exists pfa_gap_add_output_originaloperationleft. pfa_gap_add_output_originaloperationleft + S (pfp_left_add_output_original) = (p)) /\ (((exists pfa_gap_add_output_originaloperationright. pfa_gap_add_output_originaloperationright + S (pfp_right_add_output_original) = (p)) /\ ((((exists pfa_gap_add_output_originaloperationresultbound. pfa_gap_add_output_originaloperationresultbound + S (pfp_value_add_output_original) = (p)) /\ ((exists pfa_offset_left_add_output_originaloperationresultcongruence pfa_offset_right_add_output_originaloperationresultcongruence. ((pfp_left_add_output_original) + (pfp_right_add_output_original)) + (p) * pfa_offset_left_add_output_originaloperationresultcongruence = (pfp_value_add_output_original) + (p) * pfa_offset_right_add_output_originaloperationresultcongruence)))))))))))))))) -> (((forall pfp_repeat_index_add_output_leftzeros. (exists pfa_gap_add_output_leftzerosindex. pfa_gap_add_output_leftzerosindex + S (pfp_repeat_index_add_output_leftzeros) = (t)) -> (((exists ff_h_pfp_add_output_leftzerosentry. ff_h_pfp_add_output_leftzerosentry + S (0) = S ((S (pfp_repeat_index_add_output_leftzeros)) * AC)) /\ exists ff_q_pfp_add_output_leftzerosentry. AB = ff_q_pfp_add_output_leftzerosentry * S ((S (pfp_repeat_index_add_output_leftzeros)) * AC) + (0)))) /\ ((forall pfrep_index_add_output_left pfrep_value_add_output_left. (exists pfa_gap_add_output_leftbound. pfa_gap_add_output_leftbound + S (pfrep_index_add_output_left) = (L)) -> (((exists ff_h_pfp_add_output_leftinput. ff_h_pfp_add_output_leftinput + S (pfrep_value_add_output_left) = S ((S (pfrep_index_add_output_left)) * ac)) /\ exists ff_q_pfp_add_output_leftinput. ab = ff_q_pfp_add_output_leftinput * S ((S (pfrep_index_add_output_left)) * ac) + (pfrep_value_add_output_left))) -> (((exists ff_h_pfp_add_output_leftoutput. ff_h_pfp_add_output_leftoutput + S (pfrep_value_add_output_left) = S ((S ((t)+pfrep_index_add_output_left)) * AC)) /\ exists ff_q_pfp_add_output_leftoutput. AB = ff_q_pfp_add_output_leftoutput * S ((S ((t)+pfrep_index_add_output_left)) * AC) + (pfrep_value_add_output_left))))))) -> (((forall pfp_repeat_index_add_output_rightzeros. (exists pfa_gap_add_output_rightzerosindex. pfa_gap_add_output_rightzerosindex + S (pfp_repeat_index_add_output_rightzeros) = (t)) -> (((exists ff_h_pfp_add_output_rightzerosentry. ff_h_pfp_add_output_rightzerosentry + S (0) = S ((S (pfp_repeat_index_add_output_rightzeros)) * BC)) /\ exists ff_q_pfp_add_output_rightzerosentry. BB = ff_q_pfp_add_output_rightzerosentry * S ((S (pfp_repeat_index_add_output_rightzeros)) * BC) + (0)))) /\ ((forall pfrep_index_add_output_right pfrep_value_add_output_right. (exists pfa_gap_add_output_rightbound. pfa_gap_add_output_rightbound + S (pfrep_index_add_output_right) = (L)) -> (((exists ff_h_pfp_add_output_rightinput. ff_h_pfp_add_output_rightinput + S (pfrep_value_add_output_right) = S ((S (pfrep_index_add_output_right)) * bc)) /\ exists ff_q_pfp_add_output_rightinput. bb = ff_q_pfp_add_output_rightinput * S ((S (pfrep_index_add_output_right)) * bc) + (pfrep_value_add_output_right))) -> (((exists ff_h_pfp_add_output_rightoutput. ff_h_pfp_add_output_rightoutput + S (pfrep_value_add_output_right) = S ((S ((t)+pfrep_index_add_output_right)) * BC)) /\ exists ff_q_pfp_add_output_rightoutput. BB = ff_q_pfp_add_output_rightoutput * S ((S ((t)+pfrep_index_add_output_right)) * BC) + (pfrep_value_add_output_right))))))) -> (forall pfp_index_add_output_padded. (exists pfa_gap_add_output_paddedindex. pfa_gap_add_output_paddedindex + S (pfp_index_add_output_padded) = (t+L)) -> exists pfp_left_add_output_padded pfp_right_add_output_padded pfp_value_add_output_padded. ((((exists ff_h_pfp_add_output_paddedleft. ff_h_pfp_add_output_paddedleft + S (pfp_left_add_output_padded) = S ((S (pfp_index_add_output_padded)) * AC)) /\ exists ff_q_pfp_add_output_paddedleft. AB = ff_q_pfp_add_output_paddedleft * S ((S (pfp_index_add_output_padded)) * AC) + (pfp_left_add_output_padded))) /\ (((((exists ff_h_pfp_add_output_paddedright. ff_h_pfp_add_output_paddedright + S (pfp_right_add_output_padded) = S ((S (pfp_index_add_output_padded)) * BC)) /\ exists ff_q_pfp_add_output_paddedright. BB = ff_q_pfp_add_output_paddedright * S ((S (pfp_index_add_output_padded)) * BC) + (pfp_right_add_output_padded))) /\ (((((exists ff_h_pfp_add_output_paddedtarget. ff_h_pfp_add_output_paddedtarget + S (pfp_value_add_output_padded) = S ((S (pfp_index_add_output_padded)) * CC)) /\ exists ff_q_pfp_add_output_paddedtarget. CB = ff_q_pfp_add_output_paddedtarget * S ((S (pfp_index_add_output_padded)) * CC) + (pfp_value_add_output_padded))) /\ ((((exists pfa_gap_add_output_paddedoperationleft. pfa_gap_add_output_paddedoperationleft + S (pfp_left_add_output_padded) = (p)) /\ (((exists pfa_gap_add_output_paddedoperationright. pfa_gap_add_output_paddedoperationright + S (pfp_right_add_output_padded) = (p)) /\ ((((exists pfa_gap_add_output_paddedoperationresultbound. pfa_gap_add_output_paddedoperationresultbound + S (pfp_value_add_output_padded) = (p)) /\ ((exists pfa_offset_left_add_output_paddedoperationresultcongruence pfa_offset_right_add_output_paddedoperationresultcongruence. ((pfp_left_add_output_padded) + (pfp_right_add_output_padded)) + (p) * pfa_offset_left_add_output_paddedoperationresultcongruence = (pfp_value_add_output_padded) + (p) * pfa_offset_right_add_output_paddedoperationresultcongruence)))))))))))))))) -> (((forall pfp_repeat_index_add_output_resultzeros. (exists pfa_gap_add_output_resultzerosindex. pfa_gap_add_output_resultzerosindex + S (pfp_repeat_index_add_output_resultzeros) = (t)) -> (((exists ff_h_pfp_add_output_resultzerosentry. ff_h_pfp_add_output_resultzerosentry + S (0) = S ((S (pfp_repeat_index_add_output_resultzeros)) * CC)) /\ exists ff_q_pfp_add_output_resultzerosentry. CB = ff_q_pfp_add_output_resultzerosentry * S ((S (pfp_repeat_index_add_output_resultzeros)) * CC) + (0)))) /\ ((forall pfrep_index_add_output_result pfrep_value_add_output_result. (exists pfa_gap_add_output_resultbound. pfa_gap_add_output_resultbound + S (pfrep_index_add_output_result) = (L)) -> (((exists ff_h_pfp_add_output_resultinput. ff_h_pfp_add_output_resultinput + S (pfrep_value_add_output_result) = S ((S (pfrep_index_add_output_result)) * cc)) /\ exists ff_q_pfp_add_output_resultinput. cb = ff_q_pfp_add_output_resultinput * S ((S (pfrep_index_add_output_result)) * cc) + (pfrep_value_add_output_result))) -> (((exists ff_h_pfp_add_output_resultoutput. ff_h_pfp_add_output_resultoutput + S (pfrep_value_add_output_result) = S ((S ((t)+pfrep_index_add_output_result)) * CC)) /\ exists ff_q_pfp_add_output_resultoutput. CB = ff_q_pfp_add_output_resultoutput * S ((S ((t)+pfrep_index_add_output_result)) * CC) + (pfrep_value_add_output_result)))))))Constructive proof overview
Generated structural guide
Actual add outputs inherit the genuine common leading-zero padding of their inputs: construct a padded original output, prove its operation, then identify the supplied output by functionality.
The unchanged tactic script uses 4 declared prerequisites and contains 82 exact native proof lines.
Alpha v34 checked-use · first admitted v33 · independently kernel and Lean verified; not Stable
Proof neighborhood
Direct dependencies
PX0014 prime_field_polynomial_left_pad_exists PX001E prime_field_polynomial_add_left_pad_transport prime_field_polynomial_add_functional Alpha theorem; checked-use authorized PX001D prime_field_polynomial_left_pad_transportDirect 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 (3)
01Fix variables and assumptionsL1–10
02Fix variables and assumptionsL11–20
03Establish hdL21–26
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply prime field polynomial left pad exists.
- L21
have hd : ∃ db. ∃ dc. PolynomialLeftPad(cb,cc,L,t,db,dc)Definitions: PolynomialLeftPad - L22
specialize prime_field_polynomial_left_pad_exists (cb) - L23
specialize prime_field_polynomial_left_pad_exists (cc) - L24
specialize prime_field_polynomial_left_pad_exists (t) - L25
specialize prime_field_polynomial_left_pad_exists (L) - L26
apply prime_field_polynomial_left_pad_exists
04Separate the logical casesL27–28
05Establish hmL29–38
Establish this local claim before using it. It is not an additional assumption.
- L29
have hm : FpPolyAdd(p,AB,AC,BB,BC,x,x1,t + L)Definitions: FpPolyAdd - L30
specialize prime_field_polynomial_add_left_pad_transport (p) - L31
specialize prime_field_polynomial_add_left_pad_transport (ab) - L32
specialize prime_field_polynomial_add_left_pad_transport (ac) - L33
specialize prime_field_polynomial_add_left_pad_transport (bb) - L34
specialize prime_field_polynomial_add_left_pad_transport (bc) - L35
specialize prime_field_polynomial_add_left_pad_transport (cb) - L36
specialize prime_field_polynomial_add_left_pad_transport (cc) - L37
specialize prime_field_polynomial_add_left_pad_transport (L) - L38
specialize prime_field_polynomial_add_left_pad_transport (t)
06Use earlier factsL39–48
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L39
specialize prime_field_polynomial_add_left_pad_transport (AB) - L40
specialize prime_field_polynomial_add_left_pad_transport (AC) - L41
specialize prime_field_polynomial_add_left_pad_transport (BB) - L42
specialize prime_field_polynomial_add_left_pad_transport (BC) - L43
specialize prime_field_polynomial_add_left_pad_transport (x) - L44
specialize prime_field_polynomial_add_left_pad_transport (x1) - L45
apply prime_field_polynomial_add_left_pad_transport - L46
exact hp - L47
exact ho - L48
exact hA
07Use earlier factsL49–50
08Establish heL51–60
Establish this local claim before using it. It is not an additional assumption.
- L51
have he : BetaPrefixEqual(x,x1,CB,CC,t + L)Definitions: BetaPrefixEqual - L52
specialize prime_field_polynomial_add_functional (p) - L53
specialize prime_field_polynomial_add_functional (AB) - L54
specialize prime_field_polynomial_add_functional (AC) - L55
specialize prime_field_polynomial_add_functional (BB) - L56
specialize prime_field_polynomial_add_functional (BC) - L57
specialize prime_field_polynomial_add_functional (x) - L58
specialize prime_field_polynomial_add_functional (x1) - L59
specialize prime_field_polynomial_add_functional (CB) - L60
specialize prime_field_polynomial_add_functional (CC)
09Use earlier factsL61–70
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L61
specialize prime_field_polynomial_add_functional (t+L) - L62
apply prime_field_polynomial_add_functional - L63
exact hm - L64
exact hn - L65
specialize prime_field_polynomial_left_pad_transport (cb) - L66
specialize prime_field_polynomial_left_pad_transport (cc) - L67
specialize prime_field_polynomial_left_pad_transport (cb) - L68
specialize prime_field_polynomial_left_pad_transport (cc) - L69
specialize prime_field_polynomial_left_pad_transport (L) - L70
specialize prime_field_polynomial_left_pad_transport (t)
10Use earlier factsL71–75
Instantiate or apply named facts and discharge the corresponding proof obligations.
11Fix variables and assumptionsL76–79
Original exact command ledger · 82 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 ho - 0018
intro hA - 0019
intro hB - 0020
intro hn - 0021
have hd : exists db dc. (((forall pfp_repeat_index_add_output_constructedzeros. (exists pfa_gap_add_output_constructedzerosindex. pfa_gap_add_output_constructedzerosindex + S (pfp_repeat_index_add_output_constructedzeros) = (t)) -> (((exists ff_h_pfp_add_output_constructedzerosentry. ff_h_pfp_add_output_constructedzerosentry + S (0) = S ((S (pfp_repeat_index_add_output_constructedzeros)) * dc)) /\ exists ff_q_pfp_add_output_constructedzerosentry. db = ff_q_pfp_add_output_constructedzerosentry * S ((S (pfp_repeat_index_add_output_constructedzeros)) * dc) + (0)))) /\ ((forall pfrep_index_add_output_constructed pfrep_value_add_output_constructed. (exists pfa_gap_add_output_constructedbound. pfa_gap_add_output_constructedbound + S (pfrep_index_add_output_constructed) = (L)) -> (((exists ff_h_pfp_add_output_constructedinput. ff_h_pfp_add_output_constructedinput + S (pfrep_value_add_output_constructed) = S ((S (pfrep_index_add_output_constructed)) * cc)) /\ exists ff_q_pfp_add_output_constructedinput. cb = ff_q_pfp_add_output_constructedinput * S ((S (pfrep_index_add_output_constructed)) * cc) + (pfrep_value_add_output_constructed))) -> (((exists ff_h_pfp_add_output_constructedoutput. ff_h_pfp_add_output_constructedoutput + S (pfrep_value_add_output_constructed) = S ((S ((t)+pfrep_index_add_output_constructed)) * dc)) /\ exists ff_q_pfp_add_output_constructedoutput. db = ff_q_pfp_add_output_constructedoutput * S ((S ((t)+pfrep_index_add_output_constructed)) * dc) + (pfrep_value_add_output_constructed))))))) - 0022
specialize prime_field_polynomial_left_pad_exists (cb) - 0023
specialize prime_field_polynomial_left_pad_exists (cc) - 0024
specialize prime_field_polynomial_left_pad_exists (t) - 0025
specialize prime_field_polynomial_left_pad_exists (L) - 0026
apply prime_field_polynomial_left_pad_exists - 0027
cases hd - 0028
cases hd_witness - 0029
have hm : forall pfp_index_add_output_middle. (exists pfa_gap_add_output_middleindex. pfa_gap_add_output_middleindex + S (pfp_index_add_output_middle) = (t+L)) -> exists pfp_left_add_output_middle pfp_right_add_output_middle pfp_value_add_output_middle. ((((exists ff_h_pfp_add_output_middleleft. ff_h_pfp_add_output_middleleft + S (pfp_left_add_output_middle) = S ((S (pfp_index_add_output_middle)) * AC)) /\ exists ff_q_pfp_add_output_middleleft. AB = ff_q_pfp_add_output_middleleft * S ((S (pfp_index_add_output_middle)) * AC) + (pfp_left_add_output_middle))) /\ (((((exists ff_h_pfp_add_output_middleright. ff_h_pfp_add_output_middleright + S (pfp_right_add_output_middle) = S ((S (pfp_index_add_output_middle)) * BC)) /\ exists ff_q_pfp_add_output_middleright. BB = ff_q_pfp_add_output_middleright * S ((S (pfp_index_add_output_middle)) * BC) + (pfp_right_add_output_middle))) /\ (((((exists ff_h_pfp_add_output_middletarget. ff_h_pfp_add_output_middletarget + S (pfp_value_add_output_middle) = S ((S (pfp_index_add_output_middle)) * x1)) /\ exists ff_q_pfp_add_output_middletarget. x = ff_q_pfp_add_output_middletarget * S ((S (pfp_index_add_output_middle)) * x1) + (pfp_value_add_output_middle))) /\ ((((exists pfa_gap_add_output_middleoperationleft. pfa_gap_add_output_middleoperationleft + S (pfp_left_add_output_middle) = (p)) /\ (((exists pfa_gap_add_output_middleoperationright. pfa_gap_add_output_middleoperationright + S (pfp_right_add_output_middle) = (p)) /\ ((((exists pfa_gap_add_output_middleoperationresultbound. pfa_gap_add_output_middleoperationresultbound + S (pfp_value_add_output_middle) = (p)) /\ ((exists pfa_offset_left_add_output_middleoperationresultcongruence pfa_offset_right_add_output_middleoperationresultcongruence. ((pfp_left_add_output_middle) + (pfp_right_add_output_middle)) + (p) * pfa_offset_left_add_output_middleoperationresultcongruence = (pfp_value_add_output_middle) + (p) * pfa_offset_right_add_output_middleoperationresultcongruence))))))))))))))) - 0030
specialize prime_field_polynomial_add_left_pad_transport (p) - 0031
specialize prime_field_polynomial_add_left_pad_transport (ab) - 0032
specialize prime_field_polynomial_add_left_pad_transport (ac) - 0033
specialize prime_field_polynomial_add_left_pad_transport (bb) - 0034
specialize prime_field_polynomial_add_left_pad_transport (bc) - 0035
specialize prime_field_polynomial_add_left_pad_transport (cb) - 0036
specialize prime_field_polynomial_add_left_pad_transport (cc) - 0037
specialize prime_field_polynomial_add_left_pad_transport (L) - 0038
specialize prime_field_polynomial_add_left_pad_transport (t) - 0039
specialize prime_field_polynomial_add_left_pad_transport (AB) - 0040
specialize prime_field_polynomial_add_left_pad_transport (AC) - 0041
specialize prime_field_polynomial_add_left_pad_transport (BB) - 0042
specialize prime_field_polynomial_add_left_pad_transport (BC) - 0043
specialize prime_field_polynomial_add_left_pad_transport (x) - 0044
specialize prime_field_polynomial_add_left_pad_transport (x1) - 0045
apply prime_field_polynomial_add_left_pad_transport - 0046
exact hp - 0047
exact ho - 0048
exact hA - 0049
exact hB - 0050
exact hd_witness_witness - 0051
have he : forall mdr_i_pfp_add_output_values mdr_a_pfp_add_output_values. (exists mdr_gap_pfp_add_output_valuesb. mdr_gap_pfp_add_output_valuesb + S (mdr_i_pfp_add_output_values) = (t+L)) -> (((exists ff_h_mdr_pfp_add_output_valueso. ff_h_mdr_pfp_add_output_valueso + S (mdr_a_pfp_add_output_values) = S ((S (mdr_i_pfp_add_output_values)) * x1)) /\ exists ff_q_mdr_pfp_add_output_valueso. x = ff_q_mdr_pfp_add_output_valueso * S ((S (mdr_i_pfp_add_output_values)) * x1) + (mdr_a_pfp_add_output_values))) -> (((exists ff_h_mdr_pfp_add_output_valuesn. ff_h_mdr_pfp_add_output_valuesn + S (mdr_a_pfp_add_output_values) = S ((S (mdr_i_pfp_add_output_values)) * CC)) /\ exists ff_q_mdr_pfp_add_output_valuesn. CB = ff_q_mdr_pfp_add_output_valuesn * S ((S (mdr_i_pfp_add_output_values)) * CC) + (mdr_a_pfp_add_output_values))) - 0052
specialize prime_field_polynomial_add_functional (p) - 0053
specialize prime_field_polynomial_add_functional (AB) - 0054
specialize prime_field_polynomial_add_functional (AC) - 0055
specialize prime_field_polynomial_add_functional (BB) - 0056
specialize prime_field_polynomial_add_functional (BC) - 0057
specialize prime_field_polynomial_add_functional (x) - 0058
specialize prime_field_polynomial_add_functional (x1) - 0059
specialize prime_field_polynomial_add_functional (CB) - 0060
specialize prime_field_polynomial_add_functional (CC) - 0061
specialize prime_field_polynomial_add_functional (t+L) - 0062
apply prime_field_polynomial_add_functional - 0063
exact hm - 0064
exact hn - 0065
specialize prime_field_polynomial_left_pad_transport (cb) - 0066
specialize prime_field_polynomial_left_pad_transport (cc) - 0067
specialize prime_field_polynomial_left_pad_transport (cb) - 0068
specialize prime_field_polynomial_left_pad_transport (cc) - 0069
specialize prime_field_polynomial_left_pad_transport (L) - 0070
specialize prime_field_polynomial_left_pad_transport (t) - 0071
specialize prime_field_polynomial_left_pad_transport (x) - 0072
specialize prime_field_polynomial_left_pad_transport (x1) - 0073
specialize prime_field_polynomial_left_pad_transport (CB) - 0074
specialize prime_field_polynomial_left_pad_transport (CC) - 0075
apply prime_field_polynomial_left_pad_transport - 0076
intro i - 0077
intro a - 0078
intro hi - 0079
intro ha - 0080
exact ha - 0081
exact he - 0082
exact hd_witness_witness