Current library: Alpha v34, 4,223 checked-use theorems; Stable remains 432. Historical first admissions, original proof editions, and non-admitted aliases are preserved.
All products and sums use actual beta-coded coefficients; equality is formal coefficient equivalence, not equality of evaluations or raw codes. The zero gcd is included. Uniqueness is up to formal equivalence, not unique Bézout coefficients. This proves the polynomial gcd component, not G091 irreducible-polynomial existence or arbitrary prime-power-field construction.
Exact theorem in conservative defined notation
∀ p. ∀ db. ∀ dc. ∀ D. ∀ d. ∀ ab. ∀ ac. ∀ L. ∀ a. Prime(p) → FpRepresentedDegree(p,db,dc,D,d) → FpRepresentedDegree(p,ab,ac,L,a) → FpPolynomialRightDivides(p,db,dc,D,ab,ac,L) → ∃ x. ∃ y. ∃ z. ∃ n. ∃ m. FpRepresentedDegree(p,x,y,S z,z) ∧ (FpPolyProduct(p,x,y,S z,db,dc,D,n,m,S a) ∧ (PolynomialEquivalent(n,m,S a,ab,ac,L) ∧ z + d = a))
Every linked abbreviation expands hygienically to the identical original native formula.
Definition DAG
Actual proof prerequisites
Complete tactic proof in conservative notation
All 235 original proof lines are preserved. Only local proposition formulas are abbreviated; every abbreviation has an exact binder-safe expansion check. The linked exact edition contains the unchanged replay script.
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
02Fix variables and assumptionsL11–13
03Establish hpnL14–19
04Establish hdboundL20–20
Establish this local claim before using it. It is not an additional assumption.
- L20
have hdbound : BetaPrefixInto(db,dc,D,p)Definitions: BetaPrefixInto(db,dc,D,p)Original native command in the exact edition
05Separate the logical casesL21–22
06Use earlier factsL23–23
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L23
exact hd_right_left
07Separate the logical casesL24–31
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L24
cases hrd - L25
cases hrd_right - L26
cases hrd_right_witness - L27
cases hrd_right_witness_witness - L28
cases hrd_right_witness_witness_witness - L29
cases hrd_right_witness_witness_witness_witness - L30
cases hrd_right_witness_witness_witness_witness_witness - L31
cases hrd_right_witness_witness_witness_witness_witness_witness
08Establish hqboundL32–32
Establish this local claim before using it. It is not an additional assumption.
- L32
have hqbound : BetaPrefixInto(x,x1,x2,p)Definitions: BetaPrefixInto(x,x1,x2,p)Original native command in the exact edition
09Separate the logical casesL33–35
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
10Use earlier factsL36–36
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L36
exact hrd_right_witness_witness_witness_witness_witness_witness_left_left
11Establish htL37–43
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply prime field polynomial trim exists.
- L37
have ht : ∃ t. ∃ tb. ∃ tc. ∃ T. FpPolynomialTrim(p,x,x1,x2,t,tb,tc,T)Definitions: FpPolynomialTrim(p,x,x1,x2,t,tb,tc,T)Original native command in the exact edition - L38
specialize prime_field_polynomial_trim_exists (p) - L39
specialize prime_field_polynomial_trim_exists (x) - L40
specialize prime_field_polynomial_trim_exists (x1) - L41
specialize prime_field_polynomial_trim_exists (x2) - L42
apply prime_field_polynomial_trim_exists - L43
exact hqbound
12Separate the logical casesL44–47
13Establish htboundL48–57
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply prime field polynomial trim output coefficients.
- L48
have htbound : BetaPrefixInto(x7,x8,x9,p)Definitions: BetaPrefixInto(x7,x8,x9,p)Original native command in the exact edition - L49
specialize prime_field_polynomial_trim_output_coefficients (p) - L50
specialize prime_field_polynomial_trim_output_coefficients (x) - L51
specialize prime_field_polynomial_trim_output_coefficients (x1) - L52
specialize prime_field_polynomial_trim_output_coefficients (x2) - L53
specialize prime_field_polynomial_trim_output_coefficients (x6) - L54
specialize prime_field_polynomial_trim_output_coefficients (x7) - L55
specialize prime_field_polynomial_trim_output_coefficients (x8) - L56
specialize prime_field_polynomial_trim_output_coefficients (x9) - L57
apply prime_field_polynomial_trim_output_coefficients
14Use earlier factsL58–58
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L58
exact ht_witness_witness_witness_witness
15Establish hqeL59–68
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply prime field polynomial trim equivalent.
- L59
have hqe : PolynomialEquivalent(x,x1,x2,x7,x8,x9)Definitions: PolynomialEquivalent(x,x1,x2,x7,x8,x9)Original native command in the exact edition - L60
specialize prime_field_polynomial_trim_equivalent (p) - L61
specialize prime_field_polynomial_trim_equivalent (x) - L62
specialize prime_field_polynomial_trim_equivalent (x1) - L63
specialize prime_field_polynomial_trim_equivalent (x2) - L64
specialize prime_field_polynomial_trim_equivalent (x6) - L65
specialize prime_field_polynomial_trim_equivalent (x7) - L66
specialize prime_field_polynomial_trim_equivalent (x8) - L67
specialize prime_field_polynomial_trim_equivalent (x9) - L68
apply prime_field_polynomial_trim_equivalent
16Use earlier factsL69–69
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L69
exact ht_witness_witness_witness_witness
17Establish hplenL70–73
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply polynomial product length exists.
- L70
have hplen : ∃ N. PolynomialProductLength(x9,D,N)Definitions: PolynomialProductLength(x9,D,N)Original native command in the exact edition - L71
specialize polynomial_product_length_exists (x9) - L72
specialize polynomial_product_length_exists (D) - L73
apply polynomial_product_length_exists
18Separate the logical casesL74–74
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L74
cases hplen
19Establish hpnewL75–84
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply prime field polynomial convolution at length exists.
- L75
have hpnew : ∃ vb. ∃ vc. FpPolyProduct(p,x7,x8,x9,db,dc,D,vb,vc,x10)Definitions: FpPolyProduct(p,x7,x8,x9,db,dc,D,vb,vc,x10)Original native command in the exact edition - L76
specialize prime_field_polynomial_convolution_at_length_exists (p) - L77
specialize prime_field_polynomial_convolution_at_length_exists (x7) - L78
specialize prime_field_polynomial_convolution_at_length_exists (x8) - L79
specialize prime_field_polynomial_convolution_at_length_exists (x9) - L80
specialize prime_field_polynomial_convolution_at_length_exists (db) - L81
specialize prime_field_polynomial_convolution_at_length_exists (dc) - L82
specialize prime_field_polynomial_convolution_at_length_exists (D) - L83
specialize prime_field_polynomial_convolution_at_length_exists (x10) - L84
apply prime_field_polynomial_convolution_at_length_exists
20Use earlier factsL85–88
21Separate the logical casesL89–90
22Establish hequivL91–100
Establish this local claim before using it. It is not an additional assumption.
- L91
have hequiv : PolynomialEquivalent(x11,x12,x10,ab,ac,L)Definitions: PolynomialEquivalent(x11,x12,x10,ab,ac,L)Original native command in the exact edition - L92
specialize prime_field_polynomial_equivalent_transitive (x11) - L93
specialize prime_field_polynomial_equivalent_transitive (x12) - L94
specialize prime_field_polynomial_equivalent_transitive (x10) - L95
specialize prime_field_polynomial_equivalent_transitive (x3) - L96
specialize prime_field_polynomial_equivalent_transitive (x4) - L97
specialize prime_field_polynomial_equivalent_transitive (x5) - L98
specialize prime_field_polynomial_equivalent_transitive (ab) - L99
specialize prime_field_polynomial_equivalent_transitive (ac) - L100
specialize prime_field_polynomial_equivalent_transitive (L)
23Use earlier factsL101–110
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L101
apply prime_field_polynomial_equivalent_transitive - L102
specialize prime_field_polynomial_equivalent_symmetric (x3) - L103
specialize prime_field_polynomial_equivalent_symmetric (x4) - L104
specialize prime_field_polynomial_equivalent_symmetric (x5) - L105
specialize prime_field_polynomial_equivalent_symmetric (x11) - L106
specialize prime_field_polynomial_equivalent_symmetric (x12) - L107
specialize prime_field_polynomial_equivalent_symmetric (x10) - L108
apply prime_field_polynomial_equivalent_symmetric - L109
specialize prime_field_polynomial_convolution_equivalent_congruent_left (p) - L110
specialize prime_field_polynomial_convolution_equivalent_congruent_left (x)
24Use earlier factsL111–120
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L111
specialize prime_field_polynomial_convolution_equivalent_congruent_left (x1) - L112
specialize prime_field_polynomial_convolution_equivalent_congruent_left (x2) - L113
specialize prime_field_polynomial_convolution_equivalent_congruent_left (db) - L114
specialize prime_field_polynomial_convolution_equivalent_congruent_left (dc) - L115
specialize prime_field_polynomial_convolution_equivalent_congruent_left (D) - L116
specialize prime_field_polynomial_convolution_equivalent_congruent_left (x3) - L117
specialize prime_field_polynomial_convolution_equivalent_congruent_left (x4) - L118
specialize prime_field_polynomial_convolution_equivalent_congruent_left (x5) - L119
specialize prime_field_polynomial_convolution_equivalent_congruent_left (x7) - L120
specialize prime_field_polynomial_convolution_equivalent_congruent_left (x8)
25Use earlier factsL121–130
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L121
specialize prime_field_polynomial_convolution_equivalent_congruent_left (x9) - L122
specialize prime_field_polynomial_convolution_equivalent_congruent_left (x11) - L123
specialize prime_field_polynomial_convolution_equivalent_congruent_left (x12) - L124
specialize prime_field_polynomial_convolution_equivalent_congruent_left (x10) - L125
apply prime_field_polynomial_convolution_equivalent_congruent_left - L126
exact hpn - L127
exact hqe - L128
exact hrd_right_witness_witness_witness_witness_witness_witness_left - L129
exact hpnew_witness_witness - L130
exact hrd_right_witness_witness_witness_witness_witness_witness_right
26Establish hnL131–140
Establish this local claim before using it. It is not an additional assumption.
- L131
have hn : ~(x9=0) - L132
intro htzero - L133
specialize prime_field_polynomial_product_equivalent_nonzero_left_nonempty (p) - L134
specialize prime_field_polynomial_product_equivalent_nonzero_left_nonempty (x7) - L135
specialize prime_field_polynomial_product_equivalent_nonzero_left_nonempty (x8) - L136
specialize prime_field_polynomial_product_equivalent_nonzero_left_nonempty (x9) - L137
specialize prime_field_polynomial_product_equivalent_nonzero_left_nonempty (db) - L138
specialize prime_field_polynomial_product_equivalent_nonzero_left_nonempty (dc) - L139
specialize prime_field_polynomial_product_equivalent_nonzero_left_nonempty (D) - L140
specialize prime_field_polynomial_product_equivalent_nonzero_left_nonempty (x11)
27Use earlier factsL141–150
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L141
specialize prime_field_polynomial_product_equivalent_nonzero_left_nonempty (x12) - L142
specialize prime_field_polynomial_product_equivalent_nonzero_left_nonempty (x10) - L143
specialize prime_field_polynomial_product_equivalent_nonzero_left_nonempty (ab) - L144
specialize prime_field_polynomial_product_equivalent_nonzero_left_nonempty (ac) - L145
specialize prime_field_polynomial_product_equivalent_nonzero_left_nonempty (L) - L146
specialize prime_field_polynomial_product_equivalent_nonzero_left_nonempty (a) - L147
apply prime_field_polynomial_product_equivalent_nonzero_left_nonempty - L148
exact ha - L149
exact hpnew_witness_witness - L150
exact hequiv
28Use earlier factsL151–151
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L151
exact htzero
29Establish hqdL152–161
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply prime field polynomial trim nonempty degree exists.
- L152
have hqd : ∃ e. FpRepresentedDegree(p,x7,x8,x9,e)Definitions: FpRepresentedDegree(p,x7,x8,x9,e)Original native command in the exact edition - L153
specialize prime_field_polynomial_trim_nonempty_degree_exists (p) - L154
specialize prime_field_polynomial_trim_nonempty_degree_exists (x) - L155
specialize prime_field_polynomial_trim_nonempty_degree_exists (x1) - L156
specialize prime_field_polynomial_trim_nonempty_degree_exists (x2) - L157
specialize prime_field_polynomial_trim_nonempty_degree_exists (x6) - L158
specialize prime_field_polynomial_trim_nonempty_degree_exists (x7) - L159
specialize prime_field_polynomial_trim_nonempty_degree_exists (x8) - L160
specialize prime_field_polynomial_trim_nonempty_degree_exists (x9) - L161
apply prime_field_polynomial_trim_nonempty_degree_exists
30Use earlier factsL162–163
31Separate the logical casesL164–164
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L164
cases hqd
32Establish hpdL165–174
Establish this local claim before using it. It is not an additional assumption.
- L165
have hpd : FpRepresentedDegree(p,x11,x12,x10,x13 + d)Definitions: FpRepresentedDegree(p,x11,x12,x10,x13 + d)Original native command in the exact edition - L166
specialize prime_field_polynomial_convolution_represented_degree (p) - L167
specialize prime_field_polynomial_convolution_represented_degree (x7) - L168
specialize prime_field_polynomial_convolution_represented_degree (x8) - L169
specialize prime_field_polynomial_convolution_represented_degree (x9) - L170
specialize prime_field_polynomial_convolution_represented_degree (x13) - L171
specialize prime_field_polynomial_convolution_represented_degree (db) - L172
specialize prime_field_polynomial_convolution_represented_degree (dc) - L173
specialize prime_field_polynomial_convolution_represented_degree (D) - L174
specialize prime_field_polynomial_convolution_represented_degree (d)
33Use earlier factsL175–182
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L175
specialize prime_field_polynomial_convolution_represented_degree (x11) - L176
specialize prime_field_polynomial_convolution_represented_degree (x12) - L177
specialize prime_field_polynomial_convolution_represented_degree (x10) - L178
apply prime_field_polynomial_convolution_represented_degree - L179
exact hp - L180
exact hqd_witness - L181
exact hd - L182
exact hpnew_witness_witness
34Establish hsumL183–192
Establish this local claim before using it. It is not an additional assumption.
- L183
have hsum : x13+d=a - L184
specialize prime_field_polynomial_equivalent_represented_degrees_equal (p) - L185
specialize prime_field_polynomial_equivalent_represented_degrees_equal (x11) - L186
specialize prime_field_polynomial_equivalent_represented_degrees_equal (x12) - L187
specialize prime_field_polynomial_equivalent_represented_degrees_equal (x10) - L188
specialize prime_field_polynomial_equivalent_represented_degrees_equal (x13+d) - L189
specialize prime_field_polynomial_equivalent_represented_degrees_equal (ab) - L190
specialize prime_field_polynomial_equivalent_represented_degrees_equal (ac) - L191
specialize prime_field_polynomial_equivalent_represented_degrees_equal (L) - L192
specialize prime_field_polynomial_equivalent_represented_degrees_equal (a)
35Use earlier factsL193–196
36Establish hqlenL197–197
Establish this local claim before using it. It is not an additional assumption.
- L197
have hqlen : x9=S x13
37Separate the logical casesL198–198
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L198
cases hqd_witness
38Use earlier factsL199–199
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L199
exact hqd_witness_left
39Establish hplen2L200–200
Establish this local claim before using it. It is not an additional assumption.
- L200
have hplen2 : x10=S a
40Separate the logical casesL201–201
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L201
cases hpd
41Calculate and transport equalitiesL202–204
42Construct an explicit witnessL205–209
43Separate the logical casesL210–210
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L210
split
44Establish hqdnewL211–215
Establish this local claim before using it. It is not an additional assumption.
- L211
have hqdnew : FpRepresentedDegree(p,x7,x8,x9,x13)Definitions: FpRepresentedDegree(p,x7,x8,x9,x13)Original native command in the exact edition - L212
exact hqd_witness - L213
rewrite hqlen at hqdnew - L214
rewrite hqlen at hqdnew - L215
exact hqdnew
45Separate the logical casesL216–216
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L216
split
46Establish hcpL217–226
Establish this local claim before using it. It is not an additional assumption.
- L217
have hcp : FpPolyProduct(p,x7,x8,x9,db,dc,D,x11,x12,x10)Definitions: FpPolyProduct(p,x7,x8,x9,db,dc,D,x11,x12,x10)Original native command in the exact edition - L218
exact hpnew_witness_witness - L219
rewrite hqlen at hcp - L220
rewrite hqlen at hcp - L221
rewrite hqlen at hcp - L222
rewrite hqlen at hcp - L223
rewrite hqlen at hcp - L224
rewrite hqlen at hcp - L225
rewrite hplen2 at hcp - L226
rewrite hplen2 at hcp
47Calculate and transport equalitiesL227–227
Carry out the recorded arithmetic or equality steps; inspect the exact commands for their direction and premises.
- L227
rewrite hplen2 at hcp
48Use earlier factsL228–228
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L228
exact hcp
49Separate the logical casesL229–229
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L229
split
50Establish hepL230–235
Establish this local claim before using it. It is not an additional assumption.
- L230
have hep : PolynomialEquivalent(x11,x12,x10,ab,ac,L)Definitions: PolynomialEquivalent(x11,x12,x10,ab,ac,L)Original native command in the exact edition - L231
exact hequiv - L232
rewrite hplen2 at hep - L233
rewrite hplen2 at hep - L234
exact hep - L235
exact hsum
Original defined command ledger · 235 lines
- 0001
intro p - 0002
intro db - 0003
intro dc - 0004
intro D - 0005
intro d - 0006
intro ab - 0007
intro ac - 0008
intro L - 0009
intro a - 0010
intro hp - 0011
intro hd - 0012
intro ha - 0013
intro hrd - 0014
have hpn : ~(p=0) - 0015
intro hpzero - 0016
specialize prime_nonzero (p) - 0017
apply prime_nonzero - 0018
exact hp - 0019
exact hpzero - 0020
have hdbound : BetaPrefixInto(db,dc,D,p) - 0021
cases hd - 0022
cases hd_right - 0023
exact hd_right_left - 0024
cases hrd - 0025
cases hrd_right - 0026
cases hrd_right_witness - 0027
cases hrd_right_witness_witness - 0028
cases hrd_right_witness_witness_witness - 0029
cases hrd_right_witness_witness_witness_witness - 0030
cases hrd_right_witness_witness_witness_witness_witness - 0031
cases hrd_right_witness_witness_witness_witness_witness_witness - 0032
have hqbound : BetaPrefixInto(x,x1,x2,p) - 0033
cases hrd_right_witness_witness_witness_witness_witness_witness_left - 0034
cases hrd_right_witness_witness_witness_witness_witness_witness_left_right - 0035
cases hrd_right_witness_witness_witness_witness_witness_witness_left_right_right - 0036
exact hrd_right_witness_witness_witness_witness_witness_witness_left_left - 0037
have ht : ∃ t. ∃ tb. ∃ tc. ∃ T. FpPolynomialTrim(p,x,x1,x2,t,tb,tc,T) - 0038
specialize prime_field_polynomial_trim_exists (p) - 0039
specialize prime_field_polynomial_trim_exists (x) - 0040
specialize prime_field_polynomial_trim_exists (x1) - 0041
specialize prime_field_polynomial_trim_exists (x2) - 0042
apply prime_field_polynomial_trim_exists - 0043
exact hqbound - 0044
cases ht - 0045
cases ht_witness - 0046
cases ht_witness_witness - 0047
cases ht_witness_witness_witness - 0048
have htbound : BetaPrefixInto(x7,x8,x9,p) - 0049
specialize prime_field_polynomial_trim_output_coefficients (p) - 0050
specialize prime_field_polynomial_trim_output_coefficients (x) - 0051
specialize prime_field_polynomial_trim_output_coefficients (x1) - 0052
specialize prime_field_polynomial_trim_output_coefficients (x2) - 0053
specialize prime_field_polynomial_trim_output_coefficients (x6) - 0054
specialize prime_field_polynomial_trim_output_coefficients (x7) - 0055
specialize prime_field_polynomial_trim_output_coefficients (x8) - 0056
specialize prime_field_polynomial_trim_output_coefficients (x9) - 0057
apply prime_field_polynomial_trim_output_coefficients - 0058
exact ht_witness_witness_witness_witness - 0059
have hqe : PolynomialEquivalent(x,x1,x2,x7,x8,x9) - 0060
specialize prime_field_polynomial_trim_equivalent (p) - 0061
specialize prime_field_polynomial_trim_equivalent (x) - 0062
specialize prime_field_polynomial_trim_equivalent (x1) - 0063
specialize prime_field_polynomial_trim_equivalent (x2) - 0064
specialize prime_field_polynomial_trim_equivalent (x6) - 0065
specialize prime_field_polynomial_trim_equivalent (x7) - 0066
specialize prime_field_polynomial_trim_equivalent (x8) - 0067
specialize prime_field_polynomial_trim_equivalent (x9) - 0068
apply prime_field_polynomial_trim_equivalent - 0069
exact ht_witness_witness_witness_witness - 0070
have hplen : ∃ N. PolynomialProductLength(x9,D,N) - 0071
specialize polynomial_product_length_exists (x9) - 0072
specialize polynomial_product_length_exists (D) - 0073
apply polynomial_product_length_exists - 0074
cases hplen - 0075
have hpnew : ∃ vb. ∃ vc. FpPolyProduct(p,x7,x8,x9,db,dc,D,vb,vc,x10) - 0076
specialize prime_field_polynomial_convolution_at_length_exists (p) - 0077
specialize prime_field_polynomial_convolution_at_length_exists (x7) - 0078
specialize prime_field_polynomial_convolution_at_length_exists (x8) - 0079
specialize prime_field_polynomial_convolution_at_length_exists (x9) - 0080
specialize prime_field_polynomial_convolution_at_length_exists (db) - 0081
specialize prime_field_polynomial_convolution_at_length_exists (dc) - 0082
specialize prime_field_polynomial_convolution_at_length_exists (D) - 0083
specialize prime_field_polynomial_convolution_at_length_exists (x10) - 0084
apply prime_field_polynomial_convolution_at_length_exists - 0085
exact hpn - 0086
exact htbound - 0087
exact hdbound - 0088
exact hplen_witness - 0089
cases hpnew - 0090
cases hpnew_witness - 0091
have hequiv : PolynomialEquivalent(x11,x12,x10,ab,ac,L) - 0092
specialize prime_field_polynomial_equivalent_transitive (x11) - 0093
specialize prime_field_polynomial_equivalent_transitive (x12) - 0094
specialize prime_field_polynomial_equivalent_transitive (x10) - 0095
specialize prime_field_polynomial_equivalent_transitive (x3) - 0096
specialize prime_field_polynomial_equivalent_transitive (x4) - 0097
specialize prime_field_polynomial_equivalent_transitive (x5) - 0098
specialize prime_field_polynomial_equivalent_transitive (ab) - 0099
specialize prime_field_polynomial_equivalent_transitive (ac) - 0100
specialize prime_field_polynomial_equivalent_transitive (L) - 0101
apply prime_field_polynomial_equivalent_transitive - 0102
specialize prime_field_polynomial_equivalent_symmetric (x3) - 0103
specialize prime_field_polynomial_equivalent_symmetric (x4) - 0104
specialize prime_field_polynomial_equivalent_symmetric (x5) - 0105
specialize prime_field_polynomial_equivalent_symmetric (x11) - 0106
specialize prime_field_polynomial_equivalent_symmetric (x12) - 0107
specialize prime_field_polynomial_equivalent_symmetric (x10) - 0108
apply prime_field_polynomial_equivalent_symmetric - 0109
specialize prime_field_polynomial_convolution_equivalent_congruent_left (p) - 0110
specialize prime_field_polynomial_convolution_equivalent_congruent_left (x) - 0111
specialize prime_field_polynomial_convolution_equivalent_congruent_left (x1) - 0112
specialize prime_field_polynomial_convolution_equivalent_congruent_left (x2) - 0113
specialize prime_field_polynomial_convolution_equivalent_congruent_left (db) - 0114
specialize prime_field_polynomial_convolution_equivalent_congruent_left (dc) - 0115
specialize prime_field_polynomial_convolution_equivalent_congruent_left (D) - 0116
specialize prime_field_polynomial_convolution_equivalent_congruent_left (x3) - 0117
specialize prime_field_polynomial_convolution_equivalent_congruent_left (x4) - 0118
specialize prime_field_polynomial_convolution_equivalent_congruent_left (x5) - 0119
specialize prime_field_polynomial_convolution_equivalent_congruent_left (x7) - 0120
specialize prime_field_polynomial_convolution_equivalent_congruent_left (x8) - 0121
specialize prime_field_polynomial_convolution_equivalent_congruent_left (x9) - 0122
specialize prime_field_polynomial_convolution_equivalent_congruent_left (x11) - 0123
specialize prime_field_polynomial_convolution_equivalent_congruent_left (x12) - 0124
specialize prime_field_polynomial_convolution_equivalent_congruent_left (x10) - 0125
apply prime_field_polynomial_convolution_equivalent_congruent_left - 0126
exact hpn - 0127
exact hqe - 0128
exact hrd_right_witness_witness_witness_witness_witness_witness_left - 0129
exact hpnew_witness_witness - 0130
exact hrd_right_witness_witness_witness_witness_witness_witness_right - 0131
have hn : ~(x9=0) - 0132
intro htzero - 0133
specialize prime_field_polynomial_product_equivalent_nonzero_left_nonempty (p) - 0134
specialize prime_field_polynomial_product_equivalent_nonzero_left_nonempty (x7) - 0135
specialize prime_field_polynomial_product_equivalent_nonzero_left_nonempty (x8) - 0136
specialize prime_field_polynomial_product_equivalent_nonzero_left_nonempty (x9) - 0137
specialize prime_field_polynomial_product_equivalent_nonzero_left_nonempty (db) - 0138
specialize prime_field_polynomial_product_equivalent_nonzero_left_nonempty (dc) - 0139
specialize prime_field_polynomial_product_equivalent_nonzero_left_nonempty (D) - 0140
specialize prime_field_polynomial_product_equivalent_nonzero_left_nonempty (x11) - 0141
specialize prime_field_polynomial_product_equivalent_nonzero_left_nonempty (x12) - 0142
specialize prime_field_polynomial_product_equivalent_nonzero_left_nonempty (x10) - 0143
specialize prime_field_polynomial_product_equivalent_nonzero_left_nonempty (ab) - 0144
specialize prime_field_polynomial_product_equivalent_nonzero_left_nonempty (ac) - 0145
specialize prime_field_polynomial_product_equivalent_nonzero_left_nonempty (L) - 0146
specialize prime_field_polynomial_product_equivalent_nonzero_left_nonempty (a) - 0147
apply prime_field_polynomial_product_equivalent_nonzero_left_nonempty - 0148
exact ha - 0149
exact hpnew_witness_witness - 0150
exact hequiv - 0151
exact htzero - 0152
have hqd : ∃ e. FpRepresentedDegree(p,x7,x8,x9,e) - 0153
specialize prime_field_polynomial_trim_nonempty_degree_exists (p) - 0154
specialize prime_field_polynomial_trim_nonempty_degree_exists (x) - 0155
specialize prime_field_polynomial_trim_nonempty_degree_exists (x1) - 0156
specialize prime_field_polynomial_trim_nonempty_degree_exists (x2) - 0157
specialize prime_field_polynomial_trim_nonempty_degree_exists (x6) - 0158
specialize prime_field_polynomial_trim_nonempty_degree_exists (x7) - 0159
specialize prime_field_polynomial_trim_nonempty_degree_exists (x8) - 0160
specialize prime_field_polynomial_trim_nonempty_degree_exists (x9) - 0161
apply prime_field_polynomial_trim_nonempty_degree_exists - 0162
exact ht_witness_witness_witness_witness - 0163
exact hn - 0164
cases hqd - 0165
have hpd : FpRepresentedDegree(p,x11,x12,x10,x13 + d) - 0166
specialize prime_field_polynomial_convolution_represented_degree (p) - 0167
specialize prime_field_polynomial_convolution_represented_degree (x7) - 0168
specialize prime_field_polynomial_convolution_represented_degree (x8) - 0169
specialize prime_field_polynomial_convolution_represented_degree (x9) - 0170
specialize prime_field_polynomial_convolution_represented_degree (x13) - 0171
specialize prime_field_polynomial_convolution_represented_degree (db) - 0172
specialize prime_field_polynomial_convolution_represented_degree (dc) - 0173
specialize prime_field_polynomial_convolution_represented_degree (D) - 0174
specialize prime_field_polynomial_convolution_represented_degree (d) - 0175
specialize prime_field_polynomial_convolution_represented_degree (x11) - 0176
specialize prime_field_polynomial_convolution_represented_degree (x12) - 0177
specialize prime_field_polynomial_convolution_represented_degree (x10) - 0178
apply prime_field_polynomial_convolution_represented_degree - 0179
exact hp - 0180
exact hqd_witness - 0181
exact hd - 0182
exact hpnew_witness_witness - 0183
have hsum : x13+d=a - 0184
specialize prime_field_polynomial_equivalent_represented_degrees_equal (p) - 0185
specialize prime_field_polynomial_equivalent_represented_degrees_equal (x11) - 0186
specialize prime_field_polynomial_equivalent_represented_degrees_equal (x12) - 0187
specialize prime_field_polynomial_equivalent_represented_degrees_equal (x10) - 0188
specialize prime_field_polynomial_equivalent_represented_degrees_equal (x13+d) - 0189
specialize prime_field_polynomial_equivalent_represented_degrees_equal (ab) - 0190
specialize prime_field_polynomial_equivalent_represented_degrees_equal (ac) - 0191
specialize prime_field_polynomial_equivalent_represented_degrees_equal (L) - 0192
specialize prime_field_polynomial_equivalent_represented_degrees_equal (a) - 0193
apply prime_field_polynomial_equivalent_represented_degrees_equal - 0194
exact hpd - 0195
exact ha - 0196
exact hequiv - 0197
have hqlen : x9=S x13 - 0198
cases hqd_witness - 0199
exact hqd_witness_left - 0200
have hplen2 : x10=S a - 0201
cases hpd - 0202
rewrite hpd_left - 0203
rewrite hsum - 0204
refl - 0205
exists x7 - 0206
exists x8 - 0207
exists x13 - 0208
exists x11 - 0209
exists x12 - 0210
split - 0211
have hqdnew : FpRepresentedDegree(p,x7,x8,x9,x13) - 0212
exact hqd_witness - 0213
rewrite hqlen at hqdnew - 0214
rewrite hqlen at hqdnew - 0215
exact hqdnew - 0216
split - 0217
have hcp : FpPolyProduct(p,x7,x8,x9,db,dc,D,x11,x12,x10) - 0218
exact hpnew_witness_witness - 0219
rewrite hqlen at hcp - 0220
rewrite hqlen at hcp - 0221
rewrite hqlen at hcp - 0222
rewrite hqlen at hcp - 0223
rewrite hqlen at hcp - 0224
rewrite hqlen at hcp - 0225
rewrite hplen2 at hcp - 0226
rewrite hplen2 at hcp - 0227
rewrite hplen2 at hcp - 0228
exact hcp - 0229
split - 0230
have hep : PolynomialEquivalent(x11,x12,x10,ab,ac,L) - 0231
exact hequiv - 0232
rewrite hplen2 at hep - 0233
rewrite hplen2 at hep - 0234
exact hep - 0235
exact hsum