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 AB AC BB BC CB CC K. (~((p) = 1) /\ forall pfa_factor_left_subtract_congruent_prime pfa_factor_right_subtract_congruent_prime. (p) = pfa_factor_left_subtract_congruent_prime * pfa_factor_right_subtract_congruent_prime -> pfa_factor_left_subtract_congruent_prime = 1 \/ pfa_factor_right_subtract_congruent_prime = 1) -> (forall pfrep_power_subtract_congruent_first pfrep_left_subtract_congruent_first pfrep_right_subtract_congruent_first. ((exists pfrep_position_subtract_congruent_firstfirst. ((pfrep_position_subtract_congruent_firstfirst+S (pfrep_power_subtract_congruent_first)=(L)) /\ ((((exists ff_h_pfp_subtract_congruent_firstfirstentry. ff_h_pfp_subtract_congruent_firstfirstentry + S (pfrep_left_subtract_congruent_first) = S ((S (pfrep_position_subtract_congruent_firstfirst)) * ac)) /\ exists ff_q_pfp_subtract_congruent_firstfirstentry. ab = ff_q_pfp_subtract_congruent_firstfirstentry * S ((S (pfrep_position_subtract_congruent_firstfirst)) * ac) + (pfrep_left_subtract_congruent_first)))))) \/ (((exists pfrep_gap_subtract_congruent_firstfirstoutside. pfrep_gap_subtract_congruent_firstfirstoutside+(L)=(pfrep_power_subtract_congruent_first)) /\ (((pfrep_left_subtract_congruent_first)=0))))) -> ((exists pfrep_position_subtract_congruent_firstsecond. ((pfrep_position_subtract_congruent_firstsecond+S (pfrep_power_subtract_congruent_first)=(K)) /\ ((((exists ff_h_pfp_subtract_congruent_firstsecondentry. ff_h_pfp_subtract_congruent_firstsecondentry + S (pfrep_right_subtract_congruent_first) = S ((S (pfrep_position_subtract_congruent_firstsecond)) * AC)) /\ exists ff_q_pfp_subtract_congruent_firstsecondentry. AB = ff_q_pfp_subtract_congruent_firstsecondentry * S ((S (pfrep_position_subtract_congruent_firstsecond)) * AC) + (pfrep_right_subtract_congruent_first)))))) \/ (((exists pfrep_gap_subtract_congruent_firstsecondoutside. pfrep_gap_subtract_congruent_firstsecondoutside+(K)=(pfrep_power_subtract_congruent_first)) /\ (((pfrep_right_subtract_congruent_first)=0))))) -> pfrep_left_subtract_congruent_first=pfrep_right_subtract_congruent_first) -> (forall pfrep_power_subtract_congruent_second pfrep_left_subtract_congruent_second pfrep_right_subtract_congruent_second. ((exists pfrep_position_subtract_congruent_secondfirst. ((pfrep_position_subtract_congruent_secondfirst+S (pfrep_power_subtract_congruent_second)=(L)) /\ ((((exists ff_h_pfp_subtract_congruent_secondfirstentry. ff_h_pfp_subtract_congruent_secondfirstentry + S (pfrep_left_subtract_congruent_second) = S ((S (pfrep_position_subtract_congruent_secondfirst)) * bc)) /\ exists ff_q_pfp_subtract_congruent_secondfirstentry. bb = ff_q_pfp_subtract_congruent_secondfirstentry * S ((S (pfrep_position_subtract_congruent_secondfirst)) * bc) + (pfrep_left_subtract_congruent_second)))))) \/ (((exists pfrep_gap_subtract_congruent_secondfirstoutside. pfrep_gap_subtract_congruent_secondfirstoutside+(L)=(pfrep_power_subtract_congruent_second)) /\ (((pfrep_left_subtract_congruent_second)=0))))) -> ((exists pfrep_position_subtract_congruent_secondsecond. ((pfrep_position_subtract_congruent_secondsecond+S (pfrep_power_subtract_congruent_second)=(K)) /\ ((((exists ff_h_pfp_subtract_congruent_secondsecondentry. ff_h_pfp_subtract_congruent_secondsecondentry + S (pfrep_right_subtract_congruent_second) = S ((S (pfrep_position_subtract_congruent_secondsecond)) * BC)) /\ exists ff_q_pfp_subtract_congruent_secondsecondentry. BB = ff_q_pfp_subtract_congruent_secondsecondentry * S ((S (pfrep_position_subtract_congruent_secondsecond)) * BC) + (pfrep_right_subtract_congruent_second)))))) \/ (((exists pfrep_gap_subtract_congruent_secondsecondoutside. pfrep_gap_subtract_congruent_secondsecondoutside+(K)=(pfrep_power_subtract_congruent_second)) /\ (((pfrep_right_subtract_congruent_second)=0))))) -> pfrep_left_subtract_congruent_second=pfrep_right_subtract_congruent_second) -> (forall pfs_index_subtract_congruent_original. (exists pfa_gap_subtract_congruent_originalindex. pfa_gap_subtract_congruent_originalindex + S (pfs_index_subtract_congruent_original) = (L)) -> exists pfs_left_subtract_congruent_original pfs_right_subtract_congruent_original pfs_result_subtract_congruent_original. ((((exists ff_h_pfp_subtract_congruent_originalleft. ff_h_pfp_subtract_congruent_originalleft + S (pfs_left_subtract_congruent_original) = S ((S (pfs_index_subtract_congruent_original)) * ac)) /\ exists ff_q_pfp_subtract_congruent_originalleft. ab = ff_q_pfp_subtract_congruent_originalleft * S ((S (pfs_index_subtract_congruent_original)) * ac) + (pfs_left_subtract_congruent_original))) /\ (((((exists ff_h_pfp_subtract_congruent_originalright. ff_h_pfp_subtract_congruent_originalright + S (pfs_right_subtract_congruent_original) = S ((S (pfs_index_subtract_congruent_original)) * bc)) /\ exists ff_q_pfp_subtract_congruent_originalright. bb = ff_q_pfp_subtract_congruent_originalright * S ((S (pfs_index_subtract_congruent_original)) * bc) + (pfs_right_subtract_congruent_original))) /\ (((((exists ff_h_pfp_subtract_congruent_originalresult. ff_h_pfp_subtract_congruent_originalresult + S (pfs_result_subtract_congruent_original) = S ((S (pfs_index_subtract_congruent_original)) * cc)) /\ exists ff_q_pfp_subtract_congruent_originalresult. cb = ff_q_pfp_subtract_congruent_originalresult * S ((S (pfs_index_subtract_congruent_original)) * cc) + (pfs_result_subtract_congruent_original))) /\ ((((exists pfa_gap_subtract_congruent_originaloperationleft. pfa_gap_subtract_congruent_originaloperationleft + S (pfs_right_subtract_congruent_original) = (p)) /\ (((exists pfa_gap_subtract_congruent_originaloperationright. pfa_gap_subtract_congruent_originaloperationright + S (pfs_result_subtract_congruent_original) = (p)) /\ ((((exists pfa_gap_subtract_congruent_originaloperationresultbound. pfa_gap_subtract_congruent_originaloperationresultbound + S (pfs_left_subtract_congruent_original) = (p)) /\ ((exists pfa_offset_left_subtract_congruent_originaloperationresultcongruence pfa_offset_right_subtract_congruent_originaloperationresultcongruence. ((pfs_right_subtract_congruent_original) + (pfs_result_subtract_congruent_original)) + (p) * pfa_offset_left_subtract_congruent_originaloperationresultcongruence = (pfs_left_subtract_congruent_original) + (p) * pfa_offset_right_subtract_congruent_originaloperationresultcongruence)))))))))))))))) -> (forall pfs_index_subtract_congruent_other. (exists pfa_gap_subtract_congruent_otherindex. pfa_gap_subtract_congruent_otherindex + S (pfs_index_subtract_congruent_other) = (K)) -> exists pfs_left_subtract_congruent_other pfs_right_subtract_congruent_other pfs_result_subtract_congruent_other. ((((exists ff_h_pfp_subtract_congruent_otherleft. ff_h_pfp_subtract_congruent_otherleft + S (pfs_left_subtract_congruent_other) = S ((S (pfs_index_subtract_congruent_other)) * AC)) /\ exists ff_q_pfp_subtract_congruent_otherleft. AB = ff_q_pfp_subtract_congruent_otherleft * S ((S (pfs_index_subtract_congruent_other)) * AC) + (pfs_left_subtract_congruent_other))) /\ (((((exists ff_h_pfp_subtract_congruent_otherright. ff_h_pfp_subtract_congruent_otherright + S (pfs_right_subtract_congruent_other) = S ((S (pfs_index_subtract_congruent_other)) * BC)) /\ exists ff_q_pfp_subtract_congruent_otherright. BB = ff_q_pfp_subtract_congruent_otherright * S ((S (pfs_index_subtract_congruent_other)) * BC) + (pfs_right_subtract_congruent_other))) /\ (((((exists ff_h_pfp_subtract_congruent_otherresult. ff_h_pfp_subtract_congruent_otherresult + S (pfs_result_subtract_congruent_other) = S ((S (pfs_index_subtract_congruent_other)) * CC)) /\ exists ff_q_pfp_subtract_congruent_otherresult. CB = ff_q_pfp_subtract_congruent_otherresult * S ((S (pfs_index_subtract_congruent_other)) * CC) + (pfs_result_subtract_congruent_other))) /\ ((((exists pfa_gap_subtract_congruent_otheroperationleft. pfa_gap_subtract_congruent_otheroperationleft + S (pfs_right_subtract_congruent_other) = (p)) /\ (((exists pfa_gap_subtract_congruent_otheroperationright. pfa_gap_subtract_congruent_otheroperationright + S (pfs_result_subtract_congruent_other) = (p)) /\ ((((exists pfa_gap_subtract_congruent_otheroperationresultbound. pfa_gap_subtract_congruent_otheroperationresultbound + S (pfs_left_subtract_congruent_other) = (p)) /\ ((exists pfa_offset_left_subtract_congruent_otheroperationresultcongruence pfa_offset_right_subtract_congruent_otheroperationresultcongruence. ((pfs_right_subtract_congruent_other) + (pfs_result_subtract_congruent_other)) + (p) * pfa_offset_left_subtract_congruent_otheroperationresultcongruence = (pfs_left_subtract_congruent_other) + (p) * pfa_offset_right_subtract_congruent_otheroperationresultcongruence)))))))))))))))) -> (forall pfrep_power_subtract_congruent_result pfrep_left_subtract_congruent_result pfrep_right_subtract_congruent_result. ((exists pfrep_position_subtract_congruent_resultfirst. ((pfrep_position_subtract_congruent_resultfirst+S (pfrep_power_subtract_congruent_result)=(L)) /\ ((((exists ff_h_pfp_subtract_congruent_resultfirstentry. ff_h_pfp_subtract_congruent_resultfirstentry + S (pfrep_left_subtract_congruent_result) = S ((S (pfrep_position_subtract_congruent_resultfirst)) * cc)) /\ exists ff_q_pfp_subtract_congruent_resultfirstentry. cb = ff_q_pfp_subtract_congruent_resultfirstentry * S ((S (pfrep_position_subtract_congruent_resultfirst)) * cc) + (pfrep_left_subtract_congruent_result)))))) \/ (((exists pfrep_gap_subtract_congruent_resultfirstoutside. pfrep_gap_subtract_congruent_resultfirstoutside+(L)=(pfrep_power_subtract_congruent_result)) /\ (((pfrep_left_subtract_congruent_result)=0))))) -> ((exists pfrep_position_subtract_congruent_resultsecond. ((pfrep_position_subtract_congruent_resultsecond+S (pfrep_power_subtract_congruent_result)=(K)) /\ ((((exists ff_h_pfp_subtract_congruent_resultsecondentry. ff_h_pfp_subtract_congruent_resultsecondentry + S (pfrep_right_subtract_congruent_result) = S ((S (pfrep_position_subtract_congruent_resultsecond)) * CC)) /\ exists ff_q_pfp_subtract_congruent_resultsecondentry. CB = ff_q_pfp_subtract_congruent_resultsecondentry * S ((S (pfrep_position_subtract_congruent_resultsecond)) * CC) + (pfrep_right_subtract_congruent_result)))))) \/ (((exists pfrep_gap_subtract_congruent_resultsecondoutside. pfrep_gap_subtract_congruent_resultsecondoutside+(K)=(pfrep_power_subtract_congruent_result)) /\ (((pfrep_right_subtract_congruent_result)=0))))) -> pfrep_left_subtract_congruent_result=pfrep_right_subtract_congruent_result)Constructive proof overview
Generated structural guide
Pairwise formal-equivalent inputs give formal-equivalent actual subtract outputs at either ordering of the two aligned lengths, including empty prefixes; no output equivalence or raw-code equality is assumed.
The unchanged tactic script uses 5 declared prerequisites and contains 154 exact native proof lines.
Alpha v34 checked-use · first admitted v33 · independently kernel and Lean verified; not Stable
Proof neighborhood
Direct dependencies
le_total Alpha theorem; checked-use authorized PX0072 prime_field_polynomial_equivalent_implies_left_pad PX0074 prime_field_polynomial_subtract_left_pad_output PX001B prime_field_polynomial_left_pad_equivalent PX000F prime_field_polynomial_equivalent_symmetricDirect 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 (4)
01Fix variables and assumptionsL1–10
02Fix variables and assumptionsL11–20
03Establish horderL21–24
04Separate the logical casesL25–26
05Calculate and transport equalitiesL27–33
Carry out the recorded arithmetic or equality steps; inspect the exact commands for their direction and premises.
06Establish hpadAL34–42
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply prime field polynomial equivalent implies left pad.
- L34
have hpadA : PolynomialLeftPad(ab,ac,L,x,AB,AC)Definitions: PolynomialLeftPad - L35
specialize prime_field_polynomial_equivalent_implies_left_pad (ab) - L36
specialize prime_field_polynomial_equivalent_implies_left_pad (ac) - L37
specialize prime_field_polynomial_equivalent_implies_left_pad (L) - L38
specialize prime_field_polynomial_equivalent_implies_left_pad (x) - L39
specialize prime_field_polynomial_equivalent_implies_left_pad (AB) - L40
specialize prime_field_polynomial_equivalent_implies_left_pad (AC) - L41
apply prime_field_polynomial_equivalent_implies_left_pad - L42
exact hA
07Establish hpadBL43–52
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply prime field polynomial equivalent implies left pad.
- L43
have hpadB : PolynomialLeftPad(bb,bc,L,x,BB,BC)Definitions: PolynomialLeftPad - L44
specialize prime_field_polynomial_equivalent_implies_left_pad (bb) - L45
specialize prime_field_polynomial_equivalent_implies_left_pad (bc) - L46
specialize prime_field_polynomial_equivalent_implies_left_pad (L) - L47
specialize prime_field_polynomial_equivalent_implies_left_pad (x) - L48
specialize prime_field_polynomial_equivalent_implies_left_pad (BB) - L49
specialize prime_field_polynomial_equivalent_implies_left_pad (BC) - L50
apply prime_field_polynomial_equivalent_implies_left_pad - L51
exact hB - L52
specialize prime_field_polynomial_left_pad_equivalent (cb)
08Use earlier factsL53–62
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L53
specialize prime_field_polynomial_left_pad_equivalent (cc) - L54
specialize prime_field_polynomial_left_pad_equivalent (L) - L55
specialize prime_field_polynomial_left_pad_equivalent (x) - L56
specialize prime_field_polynomial_left_pad_equivalent (CB) - L57
specialize prime_field_polynomial_left_pad_equivalent (CC) - L58
apply prime_field_polynomial_left_pad_equivalent - L59
specialize prime_field_polynomial_subtract_left_pad_output (p) - L60
specialize prime_field_polynomial_subtract_left_pad_output (ab) - L61
specialize prime_field_polynomial_subtract_left_pad_output (ac) - L62
specialize prime_field_polynomial_subtract_left_pad_output (bb)
09Use earlier factsL63–72
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L63
specialize prime_field_polynomial_subtract_left_pad_output (bc) - L64
specialize prime_field_polynomial_subtract_left_pad_output (cb) - L65
specialize prime_field_polynomial_subtract_left_pad_output (cc) - L66
specialize prime_field_polynomial_subtract_left_pad_output (L) - L67
specialize prime_field_polynomial_subtract_left_pad_output (x) - L68
specialize prime_field_polynomial_subtract_left_pad_output (AB) - L69
specialize prime_field_polynomial_subtract_left_pad_output (AC) - L70
specialize prime_field_polynomial_subtract_left_pad_output (BB) - L71
specialize prime_field_polynomial_subtract_left_pad_output (BC) - L72
specialize prime_field_polynomial_subtract_left_pad_output (CB)
10Use earlier factsL73–79
11Separate the logical casesL80–80
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L80
cases horder_right
12Calculate and transport equalitiesL81–87
Carry out the recorded arithmetic or equality steps; inspect the exact commands for their direction and premises.
13Establish hpadAL88–97
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply prime field polynomial equivalent implies left pad.
- L88
have hpadA : PolynomialLeftPad(AB,AC,K,x,ab,ac)Definitions: PolynomialLeftPad - L89
specialize prime_field_polynomial_equivalent_implies_left_pad (AB) - L90
specialize prime_field_polynomial_equivalent_implies_left_pad (AC) - L91
specialize prime_field_polynomial_equivalent_implies_left_pad (K) - L92
specialize prime_field_polynomial_equivalent_implies_left_pad (x) - L93
specialize prime_field_polynomial_equivalent_implies_left_pad (ab) - L94
specialize prime_field_polynomial_equivalent_implies_left_pad (ac) - L95
apply prime_field_polynomial_equivalent_implies_left_pad - L96
specialize prime_field_polynomial_equivalent_symmetric (ab) - L97
specialize prime_field_polynomial_equivalent_symmetric (ac)
14Use earlier factsL98–103
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L98
specialize prime_field_polynomial_equivalent_symmetric (x+K) - L99
specialize prime_field_polynomial_equivalent_symmetric (AB) - L100
specialize prime_field_polynomial_equivalent_symmetric (AC) - L101
specialize prime_field_polynomial_equivalent_symmetric (K) - L102
apply prime_field_polynomial_equivalent_symmetric - L103
exact hA
15Establish hpadBL104–113
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply prime field polynomial equivalent implies left pad.
- L104
have hpadB : PolynomialLeftPad(BB,BC,K,x,bb,bc)Definitions: PolynomialLeftPad - L105
specialize prime_field_polynomial_equivalent_implies_left_pad (BB) - L106
specialize prime_field_polynomial_equivalent_implies_left_pad (BC) - L107
specialize prime_field_polynomial_equivalent_implies_left_pad (K) - L108
specialize prime_field_polynomial_equivalent_implies_left_pad (x) - L109
specialize prime_field_polynomial_equivalent_implies_left_pad (bb) - L110
specialize prime_field_polynomial_equivalent_implies_left_pad (bc) - L111
apply prime_field_polynomial_equivalent_implies_left_pad - L112
specialize prime_field_polynomial_equivalent_symmetric (bb) - L113
specialize prime_field_polynomial_equivalent_symmetric (bc)
16Use earlier factsL114–123
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L114
specialize prime_field_polynomial_equivalent_symmetric (x+K) - L115
specialize prime_field_polynomial_equivalent_symmetric (BB) - L116
specialize prime_field_polynomial_equivalent_symmetric (BC) - L117
specialize prime_field_polynomial_equivalent_symmetric (K) - L118
apply prime_field_polynomial_equivalent_symmetric - L119
exact hB - L120
specialize prime_field_polynomial_equivalent_symmetric (CB) - L121
specialize prime_field_polynomial_equivalent_symmetric (CC) - L122
specialize prime_field_polynomial_equivalent_symmetric (K) - L123
specialize prime_field_polynomial_equivalent_symmetric (cb)
17Use earlier factsL124–133
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L124
specialize prime_field_polynomial_equivalent_symmetric (cc) - L125
specialize prime_field_polynomial_equivalent_symmetric (x+K) - L126
apply prime_field_polynomial_equivalent_symmetric - L127
specialize prime_field_polynomial_left_pad_equivalent (CB) - L128
specialize prime_field_polynomial_left_pad_equivalent (CC) - L129
specialize prime_field_polynomial_left_pad_equivalent (K) - L130
specialize prime_field_polynomial_left_pad_equivalent (x) - L131
specialize prime_field_polynomial_left_pad_equivalent (cb) - L132
specialize prime_field_polynomial_left_pad_equivalent (cc) - L133
apply prime_field_polynomial_left_pad_equivalent
18Use earlier factsL134–143
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L134
specialize prime_field_polynomial_subtract_left_pad_output (p) - L135
specialize prime_field_polynomial_subtract_left_pad_output (AB) - L136
specialize prime_field_polynomial_subtract_left_pad_output (AC) - L137
specialize prime_field_polynomial_subtract_left_pad_output (BB) - L138
specialize prime_field_polynomial_subtract_left_pad_output (BC) - L139
specialize prime_field_polynomial_subtract_left_pad_output (CB) - L140
specialize prime_field_polynomial_subtract_left_pad_output (CC) - L141
specialize prime_field_polynomial_subtract_left_pad_output (K) - L142
specialize prime_field_polynomial_subtract_left_pad_output (x) - L143
specialize prime_field_polynomial_subtract_left_pad_output (ab)
19Use earlier factsL144–153
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L144
specialize prime_field_polynomial_subtract_left_pad_output (ac) - L145
specialize prime_field_polynomial_subtract_left_pad_output (bb) - L146
specialize prime_field_polynomial_subtract_left_pad_output (bc) - L147
specialize prime_field_polynomial_subtract_left_pad_output (cb) - L148
specialize prime_field_polynomial_subtract_left_pad_output (cc) - L149
apply prime_field_polynomial_subtract_left_pad_output - L150
exact hp - L151
exact hn - L152
exact hpadA - L153
exact hpadB
20Use earlier factsL154–154
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L154
exact ho
Original exact command ledger · 154 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 AB - 0010
intro AC - 0011
intro BB - 0012
intro BC - 0013
intro CB - 0014
intro CC - 0015
intro K - 0016
intro hp - 0017
intro hA - 0018
intro hB - 0019
intro ho - 0020
intro hn - 0021
have horder : L<=K \/ K<=L - 0022
specialize le_total (L) - 0023
specialize le_total (K) - 0024
apply le_total - 0025
cases horder - 0026
cases horder_left - 0027
rewrite <- horder_left_witness at hA - 0028
rewrite <- horder_left_witness at hA - 0029
rewrite <- horder_left_witness at hB - 0030
rewrite <- horder_left_witness at hB - 0031
rewrite <- horder_left_witness at hn - 0032
rewrite <- horder_left_witness - 0033
rewrite <- horder_left_witness - 0034
have hpadA : ((forall pfp_repeat_index_subtract_congruent_forward_hpadAzeros. (exists pfa_gap_subtract_congruent_forward_hpadAzerosindex. pfa_gap_subtract_congruent_forward_hpadAzerosindex + S (pfp_repeat_index_subtract_congruent_forward_hpadAzeros) = (x)) -> (((exists ff_h_pfp_subtract_congruent_forward_hpadAzerosentry. ff_h_pfp_subtract_congruent_forward_hpadAzerosentry + S (0) = S ((S (pfp_repeat_index_subtract_congruent_forward_hpadAzeros)) * AC)) /\ exists ff_q_pfp_subtract_congruent_forward_hpadAzerosentry. AB = ff_q_pfp_subtract_congruent_forward_hpadAzerosentry * S ((S (pfp_repeat_index_subtract_congruent_forward_hpadAzeros)) * AC) + (0)))) /\ ((forall pfrep_index_subtract_congruent_forward_hpadA pfrep_value_subtract_congruent_forward_hpadA. (exists pfa_gap_subtract_congruent_forward_hpadAbound. pfa_gap_subtract_congruent_forward_hpadAbound + S (pfrep_index_subtract_congruent_forward_hpadA) = (L)) -> (((exists ff_h_pfp_subtract_congruent_forward_hpadAinput. ff_h_pfp_subtract_congruent_forward_hpadAinput + S (pfrep_value_subtract_congruent_forward_hpadA) = S ((S (pfrep_index_subtract_congruent_forward_hpadA)) * ac)) /\ exists ff_q_pfp_subtract_congruent_forward_hpadAinput. ab = ff_q_pfp_subtract_congruent_forward_hpadAinput * S ((S (pfrep_index_subtract_congruent_forward_hpadA)) * ac) + (pfrep_value_subtract_congruent_forward_hpadA))) -> (((exists ff_h_pfp_subtract_congruent_forward_hpadAoutput. ff_h_pfp_subtract_congruent_forward_hpadAoutput + S (pfrep_value_subtract_congruent_forward_hpadA) = S ((S ((x)+pfrep_index_subtract_congruent_forward_hpadA)) * AC)) /\ exists ff_q_pfp_subtract_congruent_forward_hpadAoutput. AB = ff_q_pfp_subtract_congruent_forward_hpadAoutput * S ((S ((x)+pfrep_index_subtract_congruent_forward_hpadA)) * AC) + (pfrep_value_subtract_congruent_forward_hpadA)))))) - 0035
specialize prime_field_polynomial_equivalent_implies_left_pad (ab) - 0036
specialize prime_field_polynomial_equivalent_implies_left_pad (ac) - 0037
specialize prime_field_polynomial_equivalent_implies_left_pad (L) - 0038
specialize prime_field_polynomial_equivalent_implies_left_pad (x) - 0039
specialize prime_field_polynomial_equivalent_implies_left_pad (AB) - 0040
specialize prime_field_polynomial_equivalent_implies_left_pad (AC) - 0041
apply prime_field_polynomial_equivalent_implies_left_pad - 0042
exact hA - 0043
have hpadB : ((forall pfp_repeat_index_subtract_congruent_forward_hpadBzeros. (exists pfa_gap_subtract_congruent_forward_hpadBzerosindex. pfa_gap_subtract_congruent_forward_hpadBzerosindex + S (pfp_repeat_index_subtract_congruent_forward_hpadBzeros) = (x)) -> (((exists ff_h_pfp_subtract_congruent_forward_hpadBzerosentry. ff_h_pfp_subtract_congruent_forward_hpadBzerosentry + S (0) = S ((S (pfp_repeat_index_subtract_congruent_forward_hpadBzeros)) * BC)) /\ exists ff_q_pfp_subtract_congruent_forward_hpadBzerosentry. BB = ff_q_pfp_subtract_congruent_forward_hpadBzerosentry * S ((S (pfp_repeat_index_subtract_congruent_forward_hpadBzeros)) * BC) + (0)))) /\ ((forall pfrep_index_subtract_congruent_forward_hpadB pfrep_value_subtract_congruent_forward_hpadB. (exists pfa_gap_subtract_congruent_forward_hpadBbound. pfa_gap_subtract_congruent_forward_hpadBbound + S (pfrep_index_subtract_congruent_forward_hpadB) = (L)) -> (((exists ff_h_pfp_subtract_congruent_forward_hpadBinput. ff_h_pfp_subtract_congruent_forward_hpadBinput + S (pfrep_value_subtract_congruent_forward_hpadB) = S ((S (pfrep_index_subtract_congruent_forward_hpadB)) * bc)) /\ exists ff_q_pfp_subtract_congruent_forward_hpadBinput. bb = ff_q_pfp_subtract_congruent_forward_hpadBinput * S ((S (pfrep_index_subtract_congruent_forward_hpadB)) * bc) + (pfrep_value_subtract_congruent_forward_hpadB))) -> (((exists ff_h_pfp_subtract_congruent_forward_hpadBoutput. ff_h_pfp_subtract_congruent_forward_hpadBoutput + S (pfrep_value_subtract_congruent_forward_hpadB) = S ((S ((x)+pfrep_index_subtract_congruent_forward_hpadB)) * BC)) /\ exists ff_q_pfp_subtract_congruent_forward_hpadBoutput. BB = ff_q_pfp_subtract_congruent_forward_hpadBoutput * S ((S ((x)+pfrep_index_subtract_congruent_forward_hpadB)) * BC) + (pfrep_value_subtract_congruent_forward_hpadB)))))) - 0044
specialize prime_field_polynomial_equivalent_implies_left_pad (bb) - 0045
specialize prime_field_polynomial_equivalent_implies_left_pad (bc) - 0046
specialize prime_field_polynomial_equivalent_implies_left_pad (L) - 0047
specialize prime_field_polynomial_equivalent_implies_left_pad (x) - 0048
specialize prime_field_polynomial_equivalent_implies_left_pad (BB) - 0049
specialize prime_field_polynomial_equivalent_implies_left_pad (BC) - 0050
apply prime_field_polynomial_equivalent_implies_left_pad - 0051
exact hB - 0052
specialize prime_field_polynomial_left_pad_equivalent (cb) - 0053
specialize prime_field_polynomial_left_pad_equivalent (cc) - 0054
specialize prime_field_polynomial_left_pad_equivalent (L) - 0055
specialize prime_field_polynomial_left_pad_equivalent (x) - 0056
specialize prime_field_polynomial_left_pad_equivalent (CB) - 0057
specialize prime_field_polynomial_left_pad_equivalent (CC) - 0058
apply prime_field_polynomial_left_pad_equivalent - 0059
specialize prime_field_polynomial_subtract_left_pad_output (p) - 0060
specialize prime_field_polynomial_subtract_left_pad_output (ab) - 0061
specialize prime_field_polynomial_subtract_left_pad_output (ac) - 0062
specialize prime_field_polynomial_subtract_left_pad_output (bb) - 0063
specialize prime_field_polynomial_subtract_left_pad_output (bc) - 0064
specialize prime_field_polynomial_subtract_left_pad_output (cb) - 0065
specialize prime_field_polynomial_subtract_left_pad_output (cc) - 0066
specialize prime_field_polynomial_subtract_left_pad_output (L) - 0067
specialize prime_field_polynomial_subtract_left_pad_output (x) - 0068
specialize prime_field_polynomial_subtract_left_pad_output (AB) - 0069
specialize prime_field_polynomial_subtract_left_pad_output (AC) - 0070
specialize prime_field_polynomial_subtract_left_pad_output (BB) - 0071
specialize prime_field_polynomial_subtract_left_pad_output (BC) - 0072
specialize prime_field_polynomial_subtract_left_pad_output (CB) - 0073
specialize prime_field_polynomial_subtract_left_pad_output (CC) - 0074
apply prime_field_polynomial_subtract_left_pad_output - 0075
exact hp - 0076
exact ho - 0077
exact hpadA - 0078
exact hpadB - 0079
exact hn - 0080
cases horder_right - 0081
rewrite <- horder_right_witness at hA - 0082
rewrite <- horder_right_witness at hA - 0083
rewrite <- horder_right_witness at hB - 0084
rewrite <- horder_right_witness at hB - 0085
rewrite <- horder_right_witness at ho - 0086
rewrite <- horder_right_witness - 0087
rewrite <- horder_right_witness - 0088
have hpadA : ((forall pfp_repeat_index_subtract_congruent_reverse_hpadAzeros. (exists pfa_gap_subtract_congruent_reverse_hpadAzerosindex. pfa_gap_subtract_congruent_reverse_hpadAzerosindex + S (pfp_repeat_index_subtract_congruent_reverse_hpadAzeros) = (x)) -> (((exists ff_h_pfp_subtract_congruent_reverse_hpadAzerosentry. ff_h_pfp_subtract_congruent_reverse_hpadAzerosentry + S (0) = S ((S (pfp_repeat_index_subtract_congruent_reverse_hpadAzeros)) * ac)) /\ exists ff_q_pfp_subtract_congruent_reverse_hpadAzerosentry. ab = ff_q_pfp_subtract_congruent_reverse_hpadAzerosentry * S ((S (pfp_repeat_index_subtract_congruent_reverse_hpadAzeros)) * ac) + (0)))) /\ ((forall pfrep_index_subtract_congruent_reverse_hpadA pfrep_value_subtract_congruent_reverse_hpadA. (exists pfa_gap_subtract_congruent_reverse_hpadAbound. pfa_gap_subtract_congruent_reverse_hpadAbound + S (pfrep_index_subtract_congruent_reverse_hpadA) = (K)) -> (((exists ff_h_pfp_subtract_congruent_reverse_hpadAinput. ff_h_pfp_subtract_congruent_reverse_hpadAinput + S (pfrep_value_subtract_congruent_reverse_hpadA) = S ((S (pfrep_index_subtract_congruent_reverse_hpadA)) * AC)) /\ exists ff_q_pfp_subtract_congruent_reverse_hpadAinput. AB = ff_q_pfp_subtract_congruent_reverse_hpadAinput * S ((S (pfrep_index_subtract_congruent_reverse_hpadA)) * AC) + (pfrep_value_subtract_congruent_reverse_hpadA))) -> (((exists ff_h_pfp_subtract_congruent_reverse_hpadAoutput. ff_h_pfp_subtract_congruent_reverse_hpadAoutput + S (pfrep_value_subtract_congruent_reverse_hpadA) = S ((S ((x)+pfrep_index_subtract_congruent_reverse_hpadA)) * ac)) /\ exists ff_q_pfp_subtract_congruent_reverse_hpadAoutput. ab = ff_q_pfp_subtract_congruent_reverse_hpadAoutput * S ((S ((x)+pfrep_index_subtract_congruent_reverse_hpadA)) * ac) + (pfrep_value_subtract_congruent_reverse_hpadA)))))) - 0089
specialize prime_field_polynomial_equivalent_implies_left_pad (AB) - 0090
specialize prime_field_polynomial_equivalent_implies_left_pad (AC) - 0091
specialize prime_field_polynomial_equivalent_implies_left_pad (K) - 0092
specialize prime_field_polynomial_equivalent_implies_left_pad (x) - 0093
specialize prime_field_polynomial_equivalent_implies_left_pad (ab) - 0094
specialize prime_field_polynomial_equivalent_implies_left_pad (ac) - 0095
apply prime_field_polynomial_equivalent_implies_left_pad - 0096
specialize prime_field_polynomial_equivalent_symmetric (ab) - 0097
specialize prime_field_polynomial_equivalent_symmetric (ac) - 0098
specialize prime_field_polynomial_equivalent_symmetric (x+K) - 0099
specialize prime_field_polynomial_equivalent_symmetric (AB) - 0100
specialize prime_field_polynomial_equivalent_symmetric (AC) - 0101
specialize prime_field_polynomial_equivalent_symmetric (K) - 0102
apply prime_field_polynomial_equivalent_symmetric - 0103
exact hA - 0104
have hpadB : ((forall pfp_repeat_index_subtract_congruent_reverse_hpadBzeros. (exists pfa_gap_subtract_congruent_reverse_hpadBzerosindex. pfa_gap_subtract_congruent_reverse_hpadBzerosindex + S (pfp_repeat_index_subtract_congruent_reverse_hpadBzeros) = (x)) -> (((exists ff_h_pfp_subtract_congruent_reverse_hpadBzerosentry. ff_h_pfp_subtract_congruent_reverse_hpadBzerosentry + S (0) = S ((S (pfp_repeat_index_subtract_congruent_reverse_hpadBzeros)) * bc)) /\ exists ff_q_pfp_subtract_congruent_reverse_hpadBzerosentry. bb = ff_q_pfp_subtract_congruent_reverse_hpadBzerosentry * S ((S (pfp_repeat_index_subtract_congruent_reverse_hpadBzeros)) * bc) + (0)))) /\ ((forall pfrep_index_subtract_congruent_reverse_hpadB pfrep_value_subtract_congruent_reverse_hpadB. (exists pfa_gap_subtract_congruent_reverse_hpadBbound. pfa_gap_subtract_congruent_reverse_hpadBbound + S (pfrep_index_subtract_congruent_reverse_hpadB) = (K)) -> (((exists ff_h_pfp_subtract_congruent_reverse_hpadBinput. ff_h_pfp_subtract_congruent_reverse_hpadBinput + S (pfrep_value_subtract_congruent_reverse_hpadB) = S ((S (pfrep_index_subtract_congruent_reverse_hpadB)) * BC)) /\ exists ff_q_pfp_subtract_congruent_reverse_hpadBinput. BB = ff_q_pfp_subtract_congruent_reverse_hpadBinput * S ((S (pfrep_index_subtract_congruent_reverse_hpadB)) * BC) + (pfrep_value_subtract_congruent_reverse_hpadB))) -> (((exists ff_h_pfp_subtract_congruent_reverse_hpadBoutput. ff_h_pfp_subtract_congruent_reverse_hpadBoutput + S (pfrep_value_subtract_congruent_reverse_hpadB) = S ((S ((x)+pfrep_index_subtract_congruent_reverse_hpadB)) * bc)) /\ exists ff_q_pfp_subtract_congruent_reverse_hpadBoutput. bb = ff_q_pfp_subtract_congruent_reverse_hpadBoutput * S ((S ((x)+pfrep_index_subtract_congruent_reverse_hpadB)) * bc) + (pfrep_value_subtract_congruent_reverse_hpadB)))))) - 0105
specialize prime_field_polynomial_equivalent_implies_left_pad (BB) - 0106
specialize prime_field_polynomial_equivalent_implies_left_pad (BC) - 0107
specialize prime_field_polynomial_equivalent_implies_left_pad (K) - 0108
specialize prime_field_polynomial_equivalent_implies_left_pad (x) - 0109
specialize prime_field_polynomial_equivalent_implies_left_pad (bb) - 0110
specialize prime_field_polynomial_equivalent_implies_left_pad (bc) - 0111
apply prime_field_polynomial_equivalent_implies_left_pad - 0112
specialize prime_field_polynomial_equivalent_symmetric (bb) - 0113
specialize prime_field_polynomial_equivalent_symmetric (bc) - 0114
specialize prime_field_polynomial_equivalent_symmetric (x+K) - 0115
specialize prime_field_polynomial_equivalent_symmetric (BB) - 0116
specialize prime_field_polynomial_equivalent_symmetric (BC) - 0117
specialize prime_field_polynomial_equivalent_symmetric (K) - 0118
apply prime_field_polynomial_equivalent_symmetric - 0119
exact hB - 0120
specialize prime_field_polynomial_equivalent_symmetric (CB) - 0121
specialize prime_field_polynomial_equivalent_symmetric (CC) - 0122
specialize prime_field_polynomial_equivalent_symmetric (K) - 0123
specialize prime_field_polynomial_equivalent_symmetric (cb) - 0124
specialize prime_field_polynomial_equivalent_symmetric (cc) - 0125
specialize prime_field_polynomial_equivalent_symmetric (x+K) - 0126
apply prime_field_polynomial_equivalent_symmetric - 0127
specialize prime_field_polynomial_left_pad_equivalent (CB) - 0128
specialize prime_field_polynomial_left_pad_equivalent (CC) - 0129
specialize prime_field_polynomial_left_pad_equivalent (K) - 0130
specialize prime_field_polynomial_left_pad_equivalent (x) - 0131
specialize prime_field_polynomial_left_pad_equivalent (cb) - 0132
specialize prime_field_polynomial_left_pad_equivalent (cc) - 0133
apply prime_field_polynomial_left_pad_equivalent - 0134
specialize prime_field_polynomial_subtract_left_pad_output (p) - 0135
specialize prime_field_polynomial_subtract_left_pad_output (AB) - 0136
specialize prime_field_polynomial_subtract_left_pad_output (AC) - 0137
specialize prime_field_polynomial_subtract_left_pad_output (BB) - 0138
specialize prime_field_polynomial_subtract_left_pad_output (BC) - 0139
specialize prime_field_polynomial_subtract_left_pad_output (CB) - 0140
specialize prime_field_polynomial_subtract_left_pad_output (CC) - 0141
specialize prime_field_polynomial_subtract_left_pad_output (K) - 0142
specialize prime_field_polynomial_subtract_left_pad_output (x) - 0143
specialize prime_field_polynomial_subtract_left_pad_output (ab) - 0144
specialize prime_field_polynomial_subtract_left_pad_output (ac) - 0145
specialize prime_field_polynomial_subtract_left_pad_output (bb) - 0146
specialize prime_field_polynomial_subtract_left_pad_output (bc) - 0147
specialize prime_field_polynomial_subtract_left_pad_output (cb) - 0148
specialize prime_field_polynomial_subtract_left_pad_output (cc) - 0149
apply prime_field_polynomial_subtract_left_pad_output - 0150
exact hp - 0151
exact hn - 0152
exact hpadA - 0153
exact hpadB - 0154
exact ho