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 L bb bc M. (~((p) = 1) /\ forall pfa_factor_left_aligned_exists_prime pfa_factor_right_aligned_exists_prime. (p) = pfa_factor_left_aligned_exists_prime * pfa_factor_right_aligned_exists_prime -> pfa_factor_left_aligned_exists_prime = 1 \/ pfa_factor_right_aligned_exists_prime = 1) -> (forall fom_index_pfp_aligned_exists_A. (exists fom_gap_pfp_aligned_exists_A_index_bound. fom_gap_pfp_aligned_exists_A_index_bound + S (fom_index_pfp_aligned_exists_A) = L) -> exists fom_value_pfp_aligned_exists_A. ((((exists fom_beta_height_pfp_aligned_exists_A_entry. fom_beta_height_pfp_aligned_exists_A_entry + S (fom_value_pfp_aligned_exists_A) = S ((S (fom_index_pfp_aligned_exists_A)) * ac)) /\ exists fom_beta_quotient_pfp_aligned_exists_A_entry. ab = fom_beta_quotient_pfp_aligned_exists_A_entry * S ((S (fom_index_pfp_aligned_exists_A)) * ac) + (fom_value_pfp_aligned_exists_A))) /\ (exists fom_gap_pfp_aligned_exists_A_value_bound. fom_gap_pfp_aligned_exists_A_value_bound + S (fom_value_pfp_aligned_exists_A) = p))) -> (forall fom_index_pfp_aligned_exists_B. (exists fom_gap_pfp_aligned_exists_B_index_bound. fom_gap_pfp_aligned_exists_B_index_bound + S (fom_index_pfp_aligned_exists_B) = M) -> exists fom_value_pfp_aligned_exists_B. ((((exists fom_beta_height_pfp_aligned_exists_B_entry. fom_beta_height_pfp_aligned_exists_B_entry + S (fom_value_pfp_aligned_exists_B) = S ((S (fom_index_pfp_aligned_exists_B)) * bc)) /\ exists fom_beta_quotient_pfp_aligned_exists_B_entry. bb = fom_beta_quotient_pfp_aligned_exists_B_entry * S ((S (fom_index_pfp_aligned_exists_B)) * bc) + (fom_value_pfp_aligned_exists_B))) /\ (exists fom_gap_pfp_aligned_exists_B_value_bound. fom_gap_pfp_aligned_exists_B_value_bound + S (fom_value_pfp_aligned_exists_B) = p))) -> (exists rb rc. ((forall fom_index_pfp_aligned_exists_output_left_bounded. (exists fom_gap_pfp_aligned_exists_output_left_bounded_index_bound. fom_gap_pfp_aligned_exists_output_left_bounded_index_bound + S (fom_index_pfp_aligned_exists_output_left_bounded) = L) -> exists fom_value_pfp_aligned_exists_output_left_bounded. ((((exists fom_beta_height_pfp_aligned_exists_output_left_bounded_entry. fom_beta_height_pfp_aligned_exists_output_left_bounded_entry + S (fom_value_pfp_aligned_exists_output_left_bounded) = S ((S (fom_index_pfp_aligned_exists_output_left_bounded)) * ac)) /\ exists fom_beta_quotient_pfp_aligned_exists_output_left_bounded_entry. ab = fom_beta_quotient_pfp_aligned_exists_output_left_bounded_entry * S ((S (fom_index_pfp_aligned_exists_output_left_bounded)) * ac) + (fom_value_pfp_aligned_exists_output_left_bounded))) /\ (exists fom_gap_pfp_aligned_exists_output_left_bounded_value_bound. fom_gap_pfp_aligned_exists_output_left_bounded_value_bound + S (fom_value_pfp_aligned_exists_output_left_bounded) = p))) /\ (((forall fom_index_pfp_aligned_exists_output_right_bounded. (exists fom_gap_pfp_aligned_exists_output_right_bounded_index_bound. fom_gap_pfp_aligned_exists_output_right_bounded_index_bound + S (fom_index_pfp_aligned_exists_output_right_bounded) = M) -> exists fom_value_pfp_aligned_exists_output_right_bounded. ((((exists fom_beta_height_pfp_aligned_exists_output_right_bounded_entry. fom_beta_height_pfp_aligned_exists_output_right_bounded_entry + S (fom_value_pfp_aligned_exists_output_right_bounded) = S ((S (fom_index_pfp_aligned_exists_output_right_bounded)) * bc)) /\ exists fom_beta_quotient_pfp_aligned_exists_output_right_bounded_entry. bb = fom_beta_quotient_pfp_aligned_exists_output_right_bounded_entry * S ((S (fom_index_pfp_aligned_exists_output_right_bounded)) * bc) + (fom_value_pfp_aligned_exists_output_right_bounded))) /\ (exists fom_gap_pfp_aligned_exists_output_right_bounded_value_bound. fom_gap_pfp_aligned_exists_output_right_bounded_value_bound + S (fom_value_pfp_aligned_exists_output_right_bounded) = p))) /\ (((forall fom_index_pfp_aligned_exists_output_result_bounded. (exists fom_gap_pfp_aligned_exists_output_result_bounded_index_bound. fom_gap_pfp_aligned_exists_output_result_bounded_index_bound + S (fom_index_pfp_aligned_exists_output_result_bounded) = L+M) -> exists fom_value_pfp_aligned_exists_output_result_bounded. ((((exists fom_beta_height_pfp_aligned_exists_output_result_bounded_entry. fom_beta_height_pfp_aligned_exists_output_result_bounded_entry + S (fom_value_pfp_aligned_exists_output_result_bounded) = S ((S (fom_index_pfp_aligned_exists_output_result_bounded)) * rc)) /\ exists fom_beta_quotient_pfp_aligned_exists_output_result_bounded_entry. rb = fom_beta_quotient_pfp_aligned_exists_output_result_bounded_entry * S ((S (fom_index_pfp_aligned_exists_output_result_bounded)) * rc) + (fom_value_pfp_aligned_exists_output_result_bounded))) /\ (exists fom_gap_pfp_aligned_exists_output_result_bounded_value_bound. fom_gap_pfp_aligned_exists_output_result_bounded_value_bound + S (fom_value_pfp_aligned_exists_output_result_bounded) = p))) /\ ((exists pfaa_left_b_aligned_exists_output pfaa_left_c_aligned_exists_output pfaa_right_b_aligned_exists_output pfaa_right_c_aligned_exists_output pfaa_sum_b_aligned_exists_output pfaa_sum_c_aligned_exists_output pfaa_length_aligned_exists_output. ((((forall pfrep_power_aligned_exists_output_witness_common_left pfrep_left_aligned_exists_output_witness_common_left pfrep_right_aligned_exists_output_witness_common_left. ((exists pfrep_position_aligned_exists_output_witness_common_leftfirst. ((pfrep_position_aligned_exists_output_witness_common_leftfirst+S (pfrep_power_aligned_exists_output_witness_common_left)=(L)) /\ ((((exists ff_h_pfp_aligned_exists_output_witness_common_leftfirstentry. ff_h_pfp_aligned_exists_output_witness_common_leftfirstentry + S (pfrep_left_aligned_exists_output_witness_common_left) = S ((S (pfrep_position_aligned_exists_output_witness_common_leftfirst)) * ac)) /\ exists ff_q_pfp_aligned_exists_output_witness_common_leftfirstentry. ab = ff_q_pfp_aligned_exists_output_witness_common_leftfirstentry * S ((S (pfrep_position_aligned_exists_output_witness_common_leftfirst)) * ac) + (pfrep_left_aligned_exists_output_witness_common_left)))))) \/ (((exists pfrep_gap_aligned_exists_output_witness_common_leftfirstoutside. pfrep_gap_aligned_exists_output_witness_common_leftfirstoutside+(L)=(pfrep_power_aligned_exists_output_witness_common_left)) /\ (((pfrep_left_aligned_exists_output_witness_common_left)=0))))) -> ((exists pfrep_position_aligned_exists_output_witness_common_leftsecond. ((pfrep_position_aligned_exists_output_witness_common_leftsecond+S (pfrep_power_aligned_exists_output_witness_common_left)=(pfaa_length_aligned_exists_output)) /\ ((((exists ff_h_pfp_aligned_exists_output_witness_common_leftsecondentry. ff_h_pfp_aligned_exists_output_witness_common_leftsecondentry + S (pfrep_right_aligned_exists_output_witness_common_left) = S ((S (pfrep_position_aligned_exists_output_witness_common_leftsecond)) * pfaa_left_c_aligned_exists_output)) /\ exists ff_q_pfp_aligned_exists_output_witness_common_leftsecondentry. pfaa_left_b_aligned_exists_output = ff_q_pfp_aligned_exists_output_witness_common_leftsecondentry * S ((S (pfrep_position_aligned_exists_output_witness_common_leftsecond)) * pfaa_left_c_aligned_exists_output) + (pfrep_right_aligned_exists_output_witness_common_left)))))) \/ (((exists pfrep_gap_aligned_exists_output_witness_common_leftsecondoutside. pfrep_gap_aligned_exists_output_witness_common_leftsecondoutside+(pfaa_length_aligned_exists_output)=(pfrep_power_aligned_exists_output_witness_common_left)) /\ (((pfrep_right_aligned_exists_output_witness_common_left)=0))))) -> pfrep_left_aligned_exists_output_witness_common_left=pfrep_right_aligned_exists_output_witness_common_left) /\ ((forall pfrep_power_aligned_exists_output_witness_common_right pfrep_left_aligned_exists_output_witness_common_right pfrep_right_aligned_exists_output_witness_common_right. ((exists pfrep_position_aligned_exists_output_witness_common_rightfirst. ((pfrep_position_aligned_exists_output_witness_common_rightfirst+S (pfrep_power_aligned_exists_output_witness_common_right)=(M)) /\ ((((exists ff_h_pfp_aligned_exists_output_witness_common_rightfirstentry. ff_h_pfp_aligned_exists_output_witness_common_rightfirstentry + S (pfrep_left_aligned_exists_output_witness_common_right) = S ((S (pfrep_position_aligned_exists_output_witness_common_rightfirst)) * bc)) /\ exists ff_q_pfp_aligned_exists_output_witness_common_rightfirstentry. bb = ff_q_pfp_aligned_exists_output_witness_common_rightfirstentry * S ((S (pfrep_position_aligned_exists_output_witness_common_rightfirst)) * bc) + (pfrep_left_aligned_exists_output_witness_common_right)))))) \/ (((exists pfrep_gap_aligned_exists_output_witness_common_rightfirstoutside. pfrep_gap_aligned_exists_output_witness_common_rightfirstoutside+(M)=(pfrep_power_aligned_exists_output_witness_common_right)) /\ (((pfrep_left_aligned_exists_output_witness_common_right)=0))))) -> ((exists pfrep_position_aligned_exists_output_witness_common_rightsecond. ((pfrep_position_aligned_exists_output_witness_common_rightsecond+S (pfrep_power_aligned_exists_output_witness_common_right)=(pfaa_length_aligned_exists_output)) /\ ((((exists ff_h_pfp_aligned_exists_output_witness_common_rightsecondentry. ff_h_pfp_aligned_exists_output_witness_common_rightsecondentry + S (pfrep_right_aligned_exists_output_witness_common_right) = S ((S (pfrep_position_aligned_exists_output_witness_common_rightsecond)) * pfaa_right_c_aligned_exists_output)) /\ exists ff_q_pfp_aligned_exists_output_witness_common_rightsecondentry. pfaa_right_b_aligned_exists_output = ff_q_pfp_aligned_exists_output_witness_common_rightsecondentry * S ((S (pfrep_position_aligned_exists_output_witness_common_rightsecond)) * pfaa_right_c_aligned_exists_output) + (pfrep_right_aligned_exists_output_witness_common_right)))))) \/ (((exists pfrep_gap_aligned_exists_output_witness_common_rightsecondoutside. pfrep_gap_aligned_exists_output_witness_common_rightsecondoutside+(pfaa_length_aligned_exists_output)=(pfrep_power_aligned_exists_output_witness_common_right)) /\ (((pfrep_right_aligned_exists_output_witness_common_right)=0))))) -> pfrep_left_aligned_exists_output_witness_common_right=pfrep_right_aligned_exists_output_witness_common_right)))) /\ (((forall pfp_index_aligned_exists_output_witness_operation. (exists pfa_gap_aligned_exists_output_witness_operationindex. pfa_gap_aligned_exists_output_witness_operationindex + S (pfp_index_aligned_exists_output_witness_operation) = (pfaa_length_aligned_exists_output)) -> exists pfp_left_aligned_exists_output_witness_operation pfp_right_aligned_exists_output_witness_operation pfp_value_aligned_exists_output_witness_operation. ((((exists ff_h_pfp_aligned_exists_output_witness_operationleft. ff_h_pfp_aligned_exists_output_witness_operationleft + S (pfp_left_aligned_exists_output_witness_operation) = S ((S (pfp_index_aligned_exists_output_witness_operation)) * pfaa_left_c_aligned_exists_output)) /\ exists ff_q_pfp_aligned_exists_output_witness_operationleft. pfaa_left_b_aligned_exists_output = ff_q_pfp_aligned_exists_output_witness_operationleft * S ((S (pfp_index_aligned_exists_output_witness_operation)) * pfaa_left_c_aligned_exists_output) + (pfp_left_aligned_exists_output_witness_operation))) /\ (((((exists ff_h_pfp_aligned_exists_output_witness_operationright. ff_h_pfp_aligned_exists_output_witness_operationright + S (pfp_right_aligned_exists_output_witness_operation) = S ((S (pfp_index_aligned_exists_output_witness_operation)) * pfaa_right_c_aligned_exists_output)) /\ exists ff_q_pfp_aligned_exists_output_witness_operationright. pfaa_right_b_aligned_exists_output = ff_q_pfp_aligned_exists_output_witness_operationright * S ((S (pfp_index_aligned_exists_output_witness_operation)) * pfaa_right_c_aligned_exists_output) + (pfp_right_aligned_exists_output_witness_operation))) /\ (((((exists ff_h_pfp_aligned_exists_output_witness_operationtarget. ff_h_pfp_aligned_exists_output_witness_operationtarget + S (pfp_value_aligned_exists_output_witness_operation) = S ((S (pfp_index_aligned_exists_output_witness_operation)) * pfaa_sum_c_aligned_exists_output)) /\ exists ff_q_pfp_aligned_exists_output_witness_operationtarget. pfaa_sum_b_aligned_exists_output = ff_q_pfp_aligned_exists_output_witness_operationtarget * S ((S (pfp_index_aligned_exists_output_witness_operation)) * pfaa_sum_c_aligned_exists_output) + (pfp_value_aligned_exists_output_witness_operation))) /\ ((((exists pfa_gap_aligned_exists_output_witness_operationoperationleft. pfa_gap_aligned_exists_output_witness_operationoperationleft + S (pfp_left_aligned_exists_output_witness_operation) = (p)) /\ (((exists pfa_gap_aligned_exists_output_witness_operationoperationright. pfa_gap_aligned_exists_output_witness_operationoperationright + S (pfp_right_aligned_exists_output_witness_operation) = (p)) /\ ((((exists pfa_gap_aligned_exists_output_witness_operationoperationresultbound. pfa_gap_aligned_exists_output_witness_operationoperationresultbound + S (pfp_value_aligned_exists_output_witness_operation) = (p)) /\ ((exists pfa_offset_left_aligned_exists_output_witness_operationoperationresultcongruence pfa_offset_right_aligned_exists_output_witness_operationoperationresultcongruence. ((pfp_left_aligned_exists_output_witness_operation) + (pfp_right_aligned_exists_output_witness_operation)) + (p) * pfa_offset_left_aligned_exists_output_witness_operationoperationresultcongruence = (pfp_value_aligned_exists_output_witness_operation) + (p) * pfa_offset_right_aligned_exists_output_witness_operationoperationresultcongruence)))))))))))))))) /\ ((forall pfrep_power_aligned_exists_output_witness_output pfrep_left_aligned_exists_output_witness_output pfrep_right_aligned_exists_output_witness_output. ((exists pfrep_position_aligned_exists_output_witness_outputfirst. ((pfrep_position_aligned_exists_output_witness_outputfirst+S (pfrep_power_aligned_exists_output_witness_output)=(pfaa_length_aligned_exists_output)) /\ ((((exists ff_h_pfp_aligned_exists_output_witness_outputfirstentry. ff_h_pfp_aligned_exists_output_witness_outputfirstentry + S (pfrep_left_aligned_exists_output_witness_output) = S ((S (pfrep_position_aligned_exists_output_witness_outputfirst)) * pfaa_sum_c_aligned_exists_output)) /\ exists ff_q_pfp_aligned_exists_output_witness_outputfirstentry. pfaa_sum_b_aligned_exists_output = ff_q_pfp_aligned_exists_output_witness_outputfirstentry * S ((S (pfrep_position_aligned_exists_output_witness_outputfirst)) * pfaa_sum_c_aligned_exists_output) + (pfrep_left_aligned_exists_output_witness_output)))))) \/ (((exists pfrep_gap_aligned_exists_output_witness_outputfirstoutside. pfrep_gap_aligned_exists_output_witness_outputfirstoutside+(pfaa_length_aligned_exists_output)=(pfrep_power_aligned_exists_output_witness_output)) /\ (((pfrep_left_aligned_exists_output_witness_output)=0))))) -> ((exists pfrep_position_aligned_exists_output_witness_outputsecond. ((pfrep_position_aligned_exists_output_witness_outputsecond+S (pfrep_power_aligned_exists_output_witness_output)=(L+M)) /\ ((((exists ff_h_pfp_aligned_exists_output_witness_outputsecondentry. ff_h_pfp_aligned_exists_output_witness_outputsecondentry + S (pfrep_right_aligned_exists_output_witness_output) = S ((S (pfrep_position_aligned_exists_output_witness_outputsecond)) * rc)) /\ exists ff_q_pfp_aligned_exists_output_witness_outputsecondentry. rb = ff_q_pfp_aligned_exists_output_witness_outputsecondentry * S ((S (pfrep_position_aligned_exists_output_witness_outputsecond)) * rc) + (pfrep_right_aligned_exists_output_witness_output)))))) \/ (((exists pfrep_gap_aligned_exists_output_witness_outputsecondoutside. pfrep_gap_aligned_exists_output_witness_outputsecondoutside+(L+M)=(pfrep_power_aligned_exists_output_witness_output)) /\ (((pfrep_right_aligned_exists_output_witness_output)=0))))) -> pfrep_left_aligned_exists_output_witness_output=pfrep_right_aligned_exists_output_witness_output)))))))))))))Constructive proof overview
Generated structural guide
Construct a genuine canonical aligned sum at the explicit length L+M from any two canonical inputs, rather than assuming operation witnesses.
The unchanged tactic script uses 6 declared prerequisites and contains 87 exact native proof lines.
Alpha v34 checked-use · first admitted v34 · independently kernel and Lean verified; not Stable
Proof neighborhood
Direct dependencies
PG0039 prime_field_polynomial_common_representatives_exists prime_field_polynomial_add_exists Alpha theorem; checked-use authorized prime_nonzero Alpha theorem; checked-use authorized prime_field_polynomial_add_bounded Alpha theorem; checked-use authorized PG003C prime_field_polynomial_aligned_add_from_common prime_field_polynomial_power_coefficient_functional 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 (2)
01Fix variables and assumptionsL1–10
02Establish hcL11–20
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply prime field polynomial common representatives exists.
- L11
have hc : ∃ ub. ∃ uc. ∃ vb. ∃ vc. BetaPrefixInto(ub,uc,L + M,p) ∧ (BetaPrefixInto(vb,vc,L + M,p) ∧ CommonRepresentatives(ab,ac,L,bb,bc,M,ub,uc,vb,vc,L + M))Definitions: BetaPrefixIntoCommonRepresentatives - L12
specialize prime_field_polynomial_common_representatives_exists (p) - L13
specialize prime_field_polynomial_common_representatives_exists (ab) - L14
specialize prime_field_polynomial_common_representatives_exists (ac) - L15
specialize prime_field_polynomial_common_representatives_exists (L) - L16
specialize prime_field_polynomial_common_representatives_exists (bb) - L17
specialize prime_field_polynomial_common_representatives_exists (bc) - L18
specialize prime_field_polynomial_common_representatives_exists (M) - L19
apply prime_field_polynomial_common_representatives_exists - L20
exact hp
03Use earlier factsL21–22
04Separate the logical casesL23–28
05Establish hsL29–38
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply prime field polynomial add exists.
- L29
have hs : ∃ rb. ∃ rc. FpPolyAdd(p,x,x1,x2,x3,rb,rc,L + M)Definitions: FpPolyAdd - L30
specialize prime_field_polynomial_add_exists (p) - L31
specialize prime_field_polynomial_add_exists (x) - L32
specialize prime_field_polynomial_add_exists (x1) - L33
specialize prime_field_polynomial_add_exists (x2) - L34
specialize prime_field_polynomial_add_exists (x3) - L35
specialize prime_field_polynomial_add_exists (L+M) - L36
apply prime_field_polynomial_add_exists - L37
intro hz - L38
specialize prime_nonzero (p)
06Use earlier factsL39–43
07Separate the logical casesL44–45
08Establish hsboundL46–55
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply prime field polynomial add bounded.
- L46
have hsbound : BetaPrefixInto(x,x1,L + M,p) ∧ (BetaPrefixInto(x2,x3,L + M,p) ∧ BetaPrefixInto(x4,x5,L + M,p))Definitions: BetaPrefixInto - L47
specialize prime_field_polynomial_add_bounded (p) - L48
specialize prime_field_polynomial_add_bounded (x) - L49
specialize prime_field_polynomial_add_bounded (x1) - L50
specialize prime_field_polynomial_add_bounded (x2) - L51
specialize prime_field_polynomial_add_bounded (x3) - L52
specialize prime_field_polynomial_add_bounded (x4) - L53
specialize prime_field_polynomial_add_bounded (x5) - L54
specialize prime_field_polynomial_add_bounded (L+M) - L55
apply prime_field_polynomial_add_bounded
09Use earlier factsL56–56
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L56
exact hs_witness_witness
10Separate the logical casesL57–58
11Construct an explicit witnessL59–60
12Use earlier factsL61–70
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L61
specialize prime_field_polynomial_aligned_add_from_common (p) - L62
specialize prime_field_polynomial_aligned_add_from_common (ab) - L63
specialize prime_field_polynomial_aligned_add_from_common (ac) - L64
specialize prime_field_polynomial_aligned_add_from_common (L) - L65
specialize prime_field_polynomial_aligned_add_from_common (bb) - L66
specialize prime_field_polynomial_aligned_add_from_common (bc) - L67
specialize prime_field_polynomial_aligned_add_from_common (M) - L68
specialize prime_field_polynomial_aligned_add_from_common (x4) - L69
specialize prime_field_polynomial_aligned_add_from_common (x5) - L70
specialize prime_field_polynomial_aligned_add_from_common (L+M)
13Use earlier factsL71–80
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L71
specialize prime_field_polynomial_aligned_add_from_common (x) - L72
specialize prime_field_polynomial_aligned_add_from_common (x1) - L73
specialize prime_field_polynomial_aligned_add_from_common (x2) - L74
specialize prime_field_polynomial_aligned_add_from_common (x3) - L75
specialize prime_field_polynomial_aligned_add_from_common (x4) - L76
specialize prime_field_polynomial_aligned_add_from_common (x5) - L77
specialize prime_field_polynomial_aligned_add_from_common (L+M) - L78
apply prime_field_polynomial_aligned_add_from_common - L79
exact ha - L80
exact hb
14Use earlier factsL81–87
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L81
exact hsbound_right_right - L82
exact hc_witness_witness_witness_witness_right_right - L83
exact hs_witness_witness - L84
specialize prime_field_polynomial_power_coefficient_functional (x4) - L85
specialize prime_field_polynomial_power_coefficient_functional (x5) - L86
specialize prime_field_polynomial_power_coefficient_functional (L+M) - L87
apply prime_field_polynomial_power_coefficient_functional
Original exact command ledger · 87 lines
- 0001
intro p - 0002
intro ab - 0003
intro ac - 0004
intro L - 0005
intro bb - 0006
intro bc - 0007
intro M - 0008
intro hp - 0009
intro ha - 0010
intro hb - 0011
have hc : exists ub uc vb vc. ((forall fom_index_pfp_aligned_exists_left_bound. (exists fom_gap_pfp_aligned_exists_left_bound_index_bound. fom_gap_pfp_aligned_exists_left_bound_index_bound + S (fom_index_pfp_aligned_exists_left_bound) = L+M) -> exists fom_value_pfp_aligned_exists_left_bound. ((((exists fom_beta_height_pfp_aligned_exists_left_bound_entry. fom_beta_height_pfp_aligned_exists_left_bound_entry + S (fom_value_pfp_aligned_exists_left_bound) = S ((S (fom_index_pfp_aligned_exists_left_bound)) * uc)) /\ exists fom_beta_quotient_pfp_aligned_exists_left_bound_entry. ub = fom_beta_quotient_pfp_aligned_exists_left_bound_entry * S ((S (fom_index_pfp_aligned_exists_left_bound)) * uc) + (fom_value_pfp_aligned_exists_left_bound))) /\ (exists fom_gap_pfp_aligned_exists_left_bound_value_bound. fom_gap_pfp_aligned_exists_left_bound_value_bound + S (fom_value_pfp_aligned_exists_left_bound) = p))) /\ (((forall fom_index_pfp_aligned_exists_right_bound. (exists fom_gap_pfp_aligned_exists_right_bound_index_bound. fom_gap_pfp_aligned_exists_right_bound_index_bound + S (fom_index_pfp_aligned_exists_right_bound) = L+M) -> exists fom_value_pfp_aligned_exists_right_bound. ((((exists fom_beta_height_pfp_aligned_exists_right_bound_entry. fom_beta_height_pfp_aligned_exists_right_bound_entry + S (fom_value_pfp_aligned_exists_right_bound) = S ((S (fom_index_pfp_aligned_exists_right_bound)) * vc)) /\ exists fom_beta_quotient_pfp_aligned_exists_right_bound_entry. vb = fom_beta_quotient_pfp_aligned_exists_right_bound_entry * S ((S (fom_index_pfp_aligned_exists_right_bound)) * vc) + (fom_value_pfp_aligned_exists_right_bound))) /\ (exists fom_gap_pfp_aligned_exists_right_bound_value_bound. fom_gap_pfp_aligned_exists_right_bound_value_bound + S (fom_value_pfp_aligned_exists_right_bound) = p))) /\ ((((forall pfrep_power_aligned_exists_common_left pfrep_left_aligned_exists_common_left pfrep_right_aligned_exists_common_left. ((exists pfrep_position_aligned_exists_common_leftfirst. ((pfrep_position_aligned_exists_common_leftfirst+S (pfrep_power_aligned_exists_common_left)=(L)) /\ ((((exists ff_h_pfp_aligned_exists_common_leftfirstentry. ff_h_pfp_aligned_exists_common_leftfirstentry + S (pfrep_left_aligned_exists_common_left) = S ((S (pfrep_position_aligned_exists_common_leftfirst)) * ac)) /\ exists ff_q_pfp_aligned_exists_common_leftfirstentry. ab = ff_q_pfp_aligned_exists_common_leftfirstentry * S ((S (pfrep_position_aligned_exists_common_leftfirst)) * ac) + (pfrep_left_aligned_exists_common_left)))))) \/ (((exists pfrep_gap_aligned_exists_common_leftfirstoutside. pfrep_gap_aligned_exists_common_leftfirstoutside+(L)=(pfrep_power_aligned_exists_common_left)) /\ (((pfrep_left_aligned_exists_common_left)=0))))) -> ((exists pfrep_position_aligned_exists_common_leftsecond. ((pfrep_position_aligned_exists_common_leftsecond+S (pfrep_power_aligned_exists_common_left)=(L+M)) /\ ((((exists ff_h_pfp_aligned_exists_common_leftsecondentry. ff_h_pfp_aligned_exists_common_leftsecondentry + S (pfrep_right_aligned_exists_common_left) = S ((S (pfrep_position_aligned_exists_common_leftsecond)) * uc)) /\ exists ff_q_pfp_aligned_exists_common_leftsecondentry. ub = ff_q_pfp_aligned_exists_common_leftsecondentry * S ((S (pfrep_position_aligned_exists_common_leftsecond)) * uc) + (pfrep_right_aligned_exists_common_left)))))) \/ (((exists pfrep_gap_aligned_exists_common_leftsecondoutside. pfrep_gap_aligned_exists_common_leftsecondoutside+(L+M)=(pfrep_power_aligned_exists_common_left)) /\ (((pfrep_right_aligned_exists_common_left)=0))))) -> pfrep_left_aligned_exists_common_left=pfrep_right_aligned_exists_common_left) /\ ((forall pfrep_power_aligned_exists_common_right pfrep_left_aligned_exists_common_right pfrep_right_aligned_exists_common_right. ((exists pfrep_position_aligned_exists_common_rightfirst. ((pfrep_position_aligned_exists_common_rightfirst+S (pfrep_power_aligned_exists_common_right)=(M)) /\ ((((exists ff_h_pfp_aligned_exists_common_rightfirstentry. ff_h_pfp_aligned_exists_common_rightfirstentry + S (pfrep_left_aligned_exists_common_right) = S ((S (pfrep_position_aligned_exists_common_rightfirst)) * bc)) /\ exists ff_q_pfp_aligned_exists_common_rightfirstentry. bb = ff_q_pfp_aligned_exists_common_rightfirstentry * S ((S (pfrep_position_aligned_exists_common_rightfirst)) * bc) + (pfrep_left_aligned_exists_common_right)))))) \/ (((exists pfrep_gap_aligned_exists_common_rightfirstoutside. pfrep_gap_aligned_exists_common_rightfirstoutside+(M)=(pfrep_power_aligned_exists_common_right)) /\ (((pfrep_left_aligned_exists_common_right)=0))))) -> ((exists pfrep_position_aligned_exists_common_rightsecond. ((pfrep_position_aligned_exists_common_rightsecond+S (pfrep_power_aligned_exists_common_right)=(L+M)) /\ ((((exists ff_h_pfp_aligned_exists_common_rightsecondentry. ff_h_pfp_aligned_exists_common_rightsecondentry + S (pfrep_right_aligned_exists_common_right) = S ((S (pfrep_position_aligned_exists_common_rightsecond)) * vc)) /\ exists ff_q_pfp_aligned_exists_common_rightsecondentry. vb = ff_q_pfp_aligned_exists_common_rightsecondentry * S ((S (pfrep_position_aligned_exists_common_rightsecond)) * vc) + (pfrep_right_aligned_exists_common_right)))))) \/ (((exists pfrep_gap_aligned_exists_common_rightsecondoutside. pfrep_gap_aligned_exists_common_rightsecondoutside+(L+M)=(pfrep_power_aligned_exists_common_right)) /\ (((pfrep_right_aligned_exists_common_right)=0))))) -> pfrep_left_aligned_exists_common_right=pfrep_right_aligned_exists_common_right)))))))) - 0012
specialize prime_field_polynomial_common_representatives_exists (p) - 0013
specialize prime_field_polynomial_common_representatives_exists (ab) - 0014
specialize prime_field_polynomial_common_representatives_exists (ac) - 0015
specialize prime_field_polynomial_common_representatives_exists (L) - 0016
specialize prime_field_polynomial_common_representatives_exists (bb) - 0017
specialize prime_field_polynomial_common_representatives_exists (bc) - 0018
specialize prime_field_polynomial_common_representatives_exists (M) - 0019
apply prime_field_polynomial_common_representatives_exists - 0020
exact hp - 0021
exact ha - 0022
exact hb - 0023
cases hc - 0024
cases hc_witness - 0025
cases hc_witness_witness - 0026
cases hc_witness_witness_witness - 0027
cases hc_witness_witness_witness_witness - 0028
cases hc_witness_witness_witness_witness_right - 0029
have hs : exists rb rc. forall pfp_index_aligned_exists_sum. (exists pfa_gap_aligned_exists_sumindex. pfa_gap_aligned_exists_sumindex + S (pfp_index_aligned_exists_sum) = (L+M)) -> exists pfp_left_aligned_exists_sum pfp_right_aligned_exists_sum pfp_value_aligned_exists_sum. ((((exists ff_h_pfp_aligned_exists_sumleft. ff_h_pfp_aligned_exists_sumleft + S (pfp_left_aligned_exists_sum) = S ((S (pfp_index_aligned_exists_sum)) * x1)) /\ exists ff_q_pfp_aligned_exists_sumleft. x = ff_q_pfp_aligned_exists_sumleft * S ((S (pfp_index_aligned_exists_sum)) * x1) + (pfp_left_aligned_exists_sum))) /\ (((((exists ff_h_pfp_aligned_exists_sumright. ff_h_pfp_aligned_exists_sumright + S (pfp_right_aligned_exists_sum) = S ((S (pfp_index_aligned_exists_sum)) * x3)) /\ exists ff_q_pfp_aligned_exists_sumright. x2 = ff_q_pfp_aligned_exists_sumright * S ((S (pfp_index_aligned_exists_sum)) * x3) + (pfp_right_aligned_exists_sum))) /\ (((((exists ff_h_pfp_aligned_exists_sumtarget. ff_h_pfp_aligned_exists_sumtarget + S (pfp_value_aligned_exists_sum) = S ((S (pfp_index_aligned_exists_sum)) * rc)) /\ exists ff_q_pfp_aligned_exists_sumtarget. rb = ff_q_pfp_aligned_exists_sumtarget * S ((S (pfp_index_aligned_exists_sum)) * rc) + (pfp_value_aligned_exists_sum))) /\ ((((exists pfa_gap_aligned_exists_sumoperationleft. pfa_gap_aligned_exists_sumoperationleft + S (pfp_left_aligned_exists_sum) = (p)) /\ (((exists pfa_gap_aligned_exists_sumoperationright. pfa_gap_aligned_exists_sumoperationright + S (pfp_right_aligned_exists_sum) = (p)) /\ ((((exists pfa_gap_aligned_exists_sumoperationresultbound. pfa_gap_aligned_exists_sumoperationresultbound + S (pfp_value_aligned_exists_sum) = (p)) /\ ((exists pfa_offset_left_aligned_exists_sumoperationresultcongruence pfa_offset_right_aligned_exists_sumoperationresultcongruence. ((pfp_left_aligned_exists_sum) + (pfp_right_aligned_exists_sum)) + (p) * pfa_offset_left_aligned_exists_sumoperationresultcongruence = (pfp_value_aligned_exists_sum) + (p) * pfa_offset_right_aligned_exists_sumoperationresultcongruence))))))))))))))) - 0030
specialize prime_field_polynomial_add_exists (p) - 0031
specialize prime_field_polynomial_add_exists (x) - 0032
specialize prime_field_polynomial_add_exists (x1) - 0033
specialize prime_field_polynomial_add_exists (x2) - 0034
specialize prime_field_polynomial_add_exists (x3) - 0035
specialize prime_field_polynomial_add_exists (L+M) - 0036
apply prime_field_polynomial_add_exists - 0037
intro hz - 0038
specialize prime_nonzero (p) - 0039
apply prime_nonzero - 0040
exact hp - 0041
exact hz - 0042
exact hc_witness_witness_witness_witness_left - 0043
exact hc_witness_witness_witness_witness_right_left - 0044
cases hs - 0045
cases hs_witness - 0046
have hsbound : ((forall fom_index_pfp_aligned_exists_sum_left. (exists fom_gap_pfp_aligned_exists_sum_left_index_bound. fom_gap_pfp_aligned_exists_sum_left_index_bound + S (fom_index_pfp_aligned_exists_sum_left) = L+M) -> exists fom_value_pfp_aligned_exists_sum_left. ((((exists fom_beta_height_pfp_aligned_exists_sum_left_entry. fom_beta_height_pfp_aligned_exists_sum_left_entry + S (fom_value_pfp_aligned_exists_sum_left) = S ((S (fom_index_pfp_aligned_exists_sum_left)) * x1)) /\ exists fom_beta_quotient_pfp_aligned_exists_sum_left_entry. x = fom_beta_quotient_pfp_aligned_exists_sum_left_entry * S ((S (fom_index_pfp_aligned_exists_sum_left)) * x1) + (fom_value_pfp_aligned_exists_sum_left))) /\ (exists fom_gap_pfp_aligned_exists_sum_left_value_bound. fom_gap_pfp_aligned_exists_sum_left_value_bound + S (fom_value_pfp_aligned_exists_sum_left) = p))) /\ (((forall fom_index_pfp_aligned_exists_sum_right. (exists fom_gap_pfp_aligned_exists_sum_right_index_bound. fom_gap_pfp_aligned_exists_sum_right_index_bound + S (fom_index_pfp_aligned_exists_sum_right) = L+M) -> exists fom_value_pfp_aligned_exists_sum_right. ((((exists fom_beta_height_pfp_aligned_exists_sum_right_entry. fom_beta_height_pfp_aligned_exists_sum_right_entry + S (fom_value_pfp_aligned_exists_sum_right) = S ((S (fom_index_pfp_aligned_exists_sum_right)) * x3)) /\ exists fom_beta_quotient_pfp_aligned_exists_sum_right_entry. x2 = fom_beta_quotient_pfp_aligned_exists_sum_right_entry * S ((S (fom_index_pfp_aligned_exists_sum_right)) * x3) + (fom_value_pfp_aligned_exists_sum_right))) /\ (exists fom_gap_pfp_aligned_exists_sum_right_value_bound. fom_gap_pfp_aligned_exists_sum_right_value_bound + S (fom_value_pfp_aligned_exists_sum_right) = p))) /\ ((forall fom_index_pfp_aligned_exists_sum_output. (exists fom_gap_pfp_aligned_exists_sum_output_index_bound. fom_gap_pfp_aligned_exists_sum_output_index_bound + S (fom_index_pfp_aligned_exists_sum_output) = L+M) -> exists fom_value_pfp_aligned_exists_sum_output. ((((exists fom_beta_height_pfp_aligned_exists_sum_output_entry. fom_beta_height_pfp_aligned_exists_sum_output_entry + S (fom_value_pfp_aligned_exists_sum_output) = S ((S (fom_index_pfp_aligned_exists_sum_output)) * x5)) /\ exists fom_beta_quotient_pfp_aligned_exists_sum_output_entry. x4 = fom_beta_quotient_pfp_aligned_exists_sum_output_entry * S ((S (fom_index_pfp_aligned_exists_sum_output)) * x5) + (fom_value_pfp_aligned_exists_sum_output))) /\ (exists fom_gap_pfp_aligned_exists_sum_output_value_bound. fom_gap_pfp_aligned_exists_sum_output_value_bound + S (fom_value_pfp_aligned_exists_sum_output) = p))))))) - 0047
specialize prime_field_polynomial_add_bounded (p) - 0048
specialize prime_field_polynomial_add_bounded (x) - 0049
specialize prime_field_polynomial_add_bounded (x1) - 0050
specialize prime_field_polynomial_add_bounded (x2) - 0051
specialize prime_field_polynomial_add_bounded (x3) - 0052
specialize prime_field_polynomial_add_bounded (x4) - 0053
specialize prime_field_polynomial_add_bounded (x5) - 0054
specialize prime_field_polynomial_add_bounded (L+M) - 0055
apply prime_field_polynomial_add_bounded - 0056
exact hs_witness_witness - 0057
cases hsbound - 0058
cases hsbound_right - 0059
exists x4 - 0060
exists x5 - 0061
specialize prime_field_polynomial_aligned_add_from_common (p) - 0062
specialize prime_field_polynomial_aligned_add_from_common (ab) - 0063
specialize prime_field_polynomial_aligned_add_from_common (ac) - 0064
specialize prime_field_polynomial_aligned_add_from_common (L) - 0065
specialize prime_field_polynomial_aligned_add_from_common (bb) - 0066
specialize prime_field_polynomial_aligned_add_from_common (bc) - 0067
specialize prime_field_polynomial_aligned_add_from_common (M) - 0068
specialize prime_field_polynomial_aligned_add_from_common (x4) - 0069
specialize prime_field_polynomial_aligned_add_from_common (x5) - 0070
specialize prime_field_polynomial_aligned_add_from_common (L+M) - 0071
specialize prime_field_polynomial_aligned_add_from_common (x) - 0072
specialize prime_field_polynomial_aligned_add_from_common (x1) - 0073
specialize prime_field_polynomial_aligned_add_from_common (x2) - 0074
specialize prime_field_polynomial_aligned_add_from_common (x3) - 0075
specialize prime_field_polynomial_aligned_add_from_common (x4) - 0076
specialize prime_field_polynomial_aligned_add_from_common (x5) - 0077
specialize prime_field_polynomial_aligned_add_from_common (L+M) - 0078
apply prime_field_polynomial_aligned_add_from_common - 0079
exact ha - 0080
exact hb - 0081
exact hsbound_right_right - 0082
exact hc_witness_witness_witness_witness_right_right - 0083
exact hs_witness_witness - 0084
specialize prime_field_polynomial_power_coefficient_functional (x4) - 0085
specialize prime_field_polynomial_power_coefficient_functional (x5) - 0086
specialize prime_field_polynomial_power_coefficient_functional (L+M) - 0087
apply prime_field_polynomial_power_coefficient_functional