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. ∀ ab. ∀ ac. ∀ L. ∀ bb. ∀ bc. ∀ M. ∀ cb. ∀ cc. ∀ N. ∀ BB. ∀ BC. ∀ db. ∀ dc. ∀ K. ¬p = 0 → ¬L = 0 → ¬M = 0 → PolynomialShift(bb,bc,M,BB,BC) → FpPolyProduct(p,ab,ac,L,bb,bc,M,cb,cc,N) → FpPolyProduct(p,ab,ac,L,BB,BC,S M,db,dc,K) → K = S N ∧ PolynomialShift(cb,cc,N,db,dc)
Every linked abbreviation expands hygienically to the identical original native formula.
Definition DAG
Actual proof prerequisites
Complete tactic proof in conservative notation
All 156 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–20
03Fix variables and assumptionsL21–21
Work with arbitrary variables or the premises of the current implication.
- L21
intro hd
04Establish hwholeL22–23
Establish this local claim before using it. It is not an additional assumption.
- L22
have hwhole : FpPolyProduct(p,ab,ac,L,bb,bc,M,cb,cc,N)Definitions: FpPolyProduct(p,ab,ac,L,bb,bc,M,cb,cc,N)Original native command in the exact edition - L23
exact hc
05Separate the logical casesL24–29
06Establish hkL30–39
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply polynomial product length shift right nonempty.
- L30
have hk : K=S N - L31
specialize polynomial_product_length_shift_right_nonempty (L) - L32
specialize polynomial_product_length_shift_right_nonempty (M) - L33
specialize polynomial_product_length_shift_right_nonempty (N) - L34
specialize polynomial_product_length_shift_right_nonempty (K) - L35
apply polynomial_product_length_shift_right_nonempty - L36
exact hc_right_right_left - L37
exact hL - L38
exact hM - L39
exact hd_right_right_left
07Separate the logical casesL40–40
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L40
split
08Use earlier factsL41–41
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L41
exact hk
09Separate the logical casesL42–42
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L42
split
10Fix variables and assumptionsL43–46
11Establish hcaL47–56
Establish this local claim before using it. It is not an additional assumption.
- L47
have hca : FpConvolutionCoefficient(p,ab,ac,L,bb,bc,M,i,a)Definitions: FpConvolutionCoefficient(p,ab,ac,L,bb,bc,M,i,a)Original native command in the exact edition - L48
specialize prime_field_convolution_prefix_entry (p) - L49
specialize prime_field_convolution_prefix_entry (ab) - L50
specialize prime_field_convolution_prefix_entry (ac) - L51
specialize prime_field_convolution_prefix_entry (L) - L52
specialize prime_field_convolution_prefix_entry (bb) - L53
specialize prime_field_convolution_prefix_entry (bc) - L54
specialize prime_field_convolution_prefix_entry (M) - L55
specialize prime_field_convolution_prefix_entry (cb) - L56
specialize prime_field_convolution_prefix_entry (cc)
12Use earlier factsL57–63
Instantiate or apply named facts and discharge the corresponding proof obligations.
13Establish hdaL64–64
Establish this local claim before using it. It is not an additional assumption.
- L64
have hda : FpConvolutionCoefficient(p,ab,ac,L,BB,BC,S M,i,a)Definitions: FpConvolutionCoefficient(p,ab,ac,L,BB,BC,S M,i,a)Original native command in the exact edition
14Establish hiffL65–74
Establish this local claim before using it. It is not an additional assumption.
- L65
have hiff : (FpConvolutionCoefficient(p,ab,ac,L,bb,bc,M,i,a) → FpConvolutionCoefficient(p,ab,ac,L,BB,BC,S M,i,a)) ∧ (FpConvolutionCoefficient(p,ab,ac,L,BB,BC,S M,i,a) → FpConvolutionCoefficient(p,ab,ac,L,bb,bc,M,i,a))Definitions: FpConvolutionCoefficient(p,ab,ac,L,bb,bc,M,i,a)FpConvolutionCoefficient(p,ab,ac,L,BB,BC,S M,i,a)Original native command in the exact edition - L66
specialize prime_field_convolution_coefficient_shift_right_iff (p) - L67
specialize prime_field_convolution_coefficient_shift_right_iff (ab) - L68
specialize prime_field_convolution_coefficient_shift_right_iff (ac) - L69
specialize prime_field_convolution_coefficient_shift_right_iff (L) - L70
specialize prime_field_convolution_coefficient_shift_right_iff (bb) - L71
specialize prime_field_convolution_coefficient_shift_right_iff (bc) - L72
specialize prime_field_convolution_coefficient_shift_right_iff (M) - L73
specialize prime_field_convolution_coefficient_shift_right_iff (BB) - L74
specialize prime_field_convolution_coefficient_shift_right_iff (BC)
15Use earlier factsL75–78
16Separate the logical casesL79–79
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L79
cases hiff
17Use earlier factsL80–81
18Establish hvL82–89
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply hd right right right.
- L82
have hv : ∃ r. BetaAt(db,dc,i,r) ∧ FpConvolutionCoefficient(p,ab,ac,L,BB,BC,S M,i,r)Definitions: BetaAt(db,dc,i,r)FpConvolutionCoefficient(p,ab,ac,L,BB,BC,S M,i,r)Original native command in the exact edition - L83
specialize hd_right_right_right (i) - L84
apply hd_right_right_right - L85
rewrite hk - L86
specialize le_succ (S i) - L87
specialize le_succ (N) - L88
apply le_succ - L89
exact hi
19Separate the logical casesL90–91
20Establish heqL92–101
Establish this local claim before using it. It is not an additional assumption.
- L92
have heq : a=x - L93
specialize prime_field_convolution_coefficient_functional (p) - L94
specialize prime_field_convolution_coefficient_functional (ab) - L95
specialize prime_field_convolution_coefficient_functional (ac) - L96
specialize prime_field_convolution_coefficient_functional (L) - L97
specialize prime_field_convolution_coefficient_functional (BB) - L98
specialize prime_field_convolution_coefficient_functional (BC) - L99
specialize prime_field_convolution_coefficient_functional (S M) - L100
specialize prime_field_convolution_coefficient_functional (i) - L101
specialize prime_field_convolution_coefficient_functional (a)
21Use earlier factsL102–105
22Calculate and transport equalitiesL106–107
23Use earlier factsL108–108
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L108
exact hv_witness_left
24Establish hvL109–114
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply hd right right right.
- L109
have hv : ∃ r. BetaAt(db,dc,N,r) ∧ FpConvolutionCoefficient(p,ab,ac,L,BB,BC,S M,N,r)Definitions: BetaAt(db,dc,N,r)FpConvolutionCoefficient(p,ab,ac,L,BB,BC,S M,N,r)Original native command in the exact edition - L110
specialize hd_right_right_right (N) - L111
apply hd_right_right_right - L112
rewrite hk - L113
specialize le_refl (S N) - L114
apply le_refl
25Separate the logical casesL115–116
26Establish hcoL117–117
Establish this local claim before using it. It is not an additional assumption.
- L117
have hco : FpConvolutionCoefficient(p,ab,ac,L,bb,bc,M,N,x)Definitions: FpConvolutionCoefficient(p,ab,ac,L,bb,bc,M,N,x)Original native command in the exact edition
27Establish hiffL118–127
Establish this local claim before using it. It is not an additional assumption.
- L118
have hiff : (FpConvolutionCoefficient(p,ab,ac,L,bb,bc,M,N,x) → FpConvolutionCoefficient(p,ab,ac,L,BB,BC,S M,N,x)) ∧ (FpConvolutionCoefficient(p,ab,ac,L,BB,BC,S M,N,x) → FpConvolutionCoefficient(p,ab,ac,L,bb,bc,M,N,x))Definitions: FpConvolutionCoefficient(p,ab,ac,L,bb,bc,M,N,x)FpConvolutionCoefficient(p,ab,ac,L,BB,BC,S M,N,x)Original native command in the exact edition - L119
specialize prime_field_convolution_coefficient_shift_right_iff (p) - L120
specialize prime_field_convolution_coefficient_shift_right_iff (ab) - L121
specialize prime_field_convolution_coefficient_shift_right_iff (ac) - L122
specialize prime_field_convolution_coefficient_shift_right_iff (L) - L123
specialize prime_field_convolution_coefficient_shift_right_iff (bb) - L124
specialize prime_field_convolution_coefficient_shift_right_iff (bc) - L125
specialize prime_field_convolution_coefficient_shift_right_iff (M) - L126
specialize prime_field_convolution_coefficient_shift_right_iff (BB) - L127
specialize prime_field_convolution_coefficient_shift_right_iff (BC)
28Use earlier factsL128–131
29Separate the logical casesL132–132
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L132
cases hiff
30Use earlier factsL133–134
31Establish hzL135–144
Establish this local claim before using it. It is not an additional assumption.
- L135
have hz : x=0 - L136
specialize prime_field_polynomial_convolution_outside_zero (p) - L137
specialize prime_field_polynomial_convolution_outside_zero (ab) - L138
specialize prime_field_polynomial_convolution_outside_zero (ac) - L139
specialize prime_field_polynomial_convolution_outside_zero (L) - L140
specialize prime_field_polynomial_convolution_outside_zero (bb) - L141
specialize prime_field_polynomial_convolution_outside_zero (bc) - L142
specialize prime_field_polynomial_convolution_outside_zero (M) - L143
specialize prime_field_polynomial_convolution_outside_zero (cb) - L144
specialize prime_field_polynomial_convolution_outside_zero (cc)
32Use earlier factsL145–153
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L145
specialize prime_field_polynomial_convolution_outside_zero (N) - L146
specialize prime_field_polynomial_convolution_outside_zero (N) - L147
specialize prime_field_polynomial_convolution_outside_zero (x) - L148
apply prime_field_polynomial_convolution_outside_zero - L149
exact hp - L150
exact hwhole - L151
specialize le_refl (N) - L152
apply le_refl - L153
exact hco
33Calculate and transport equalitiesL154–155
34Use earlier factsL156–156
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L156
exact hv_witness_left
Original defined command ledger · 156 lines
- 0001
intro p - 0002
intro ab - 0003
intro ac - 0004
intro L - 0005
intro bb - 0006
intro bc - 0007
intro M - 0008
intro cb - 0009
intro cc - 0010
intro N - 0011
intro BB - 0012
intro BC - 0013
intro db - 0014
intro dc - 0015
intro K - 0016
intro hp - 0017
intro hL - 0018
intro hM - 0019
intro hs - 0020
intro hc - 0021
intro hd - 0022
have hwhole : FpPolyProduct(p,ab,ac,L,bb,bc,M,cb,cc,N) - 0023
exact hc - 0024
cases hc - 0025
cases hc_right - 0026
cases hc_right_right - 0027
cases hd - 0028
cases hd_right - 0029
cases hd_right_right - 0030
have hk : K=S N - 0031
specialize polynomial_product_length_shift_right_nonempty (L) - 0032
specialize polynomial_product_length_shift_right_nonempty (M) - 0033
specialize polynomial_product_length_shift_right_nonempty (N) - 0034
specialize polynomial_product_length_shift_right_nonempty (K) - 0035
apply polynomial_product_length_shift_right_nonempty - 0036
exact hc_right_right_left - 0037
exact hL - 0038
exact hM - 0039
exact hd_right_right_left - 0040
split - 0041
exact hk - 0042
split - 0043
intro i - 0044
intro a - 0045
intro hi - 0046
intro ha - 0047
have hca : FpConvolutionCoefficient(p,ab,ac,L,bb,bc,M,i,a) - 0048
specialize prime_field_convolution_prefix_entry (p) - 0049
specialize prime_field_convolution_prefix_entry (ab) - 0050
specialize prime_field_convolution_prefix_entry (ac) - 0051
specialize prime_field_convolution_prefix_entry (L) - 0052
specialize prime_field_convolution_prefix_entry (bb) - 0053
specialize prime_field_convolution_prefix_entry (bc) - 0054
specialize prime_field_convolution_prefix_entry (M) - 0055
specialize prime_field_convolution_prefix_entry (cb) - 0056
specialize prime_field_convolution_prefix_entry (cc) - 0057
specialize prime_field_convolution_prefix_entry (N) - 0058
specialize prime_field_convolution_prefix_entry (i) - 0059
specialize prime_field_convolution_prefix_entry (a) - 0060
apply prime_field_convolution_prefix_entry - 0061
exact hc_right_right_right - 0062
exact hi - 0063
exact ha - 0064
have hda : FpConvolutionCoefficient(p,ab,ac,L,BB,BC,S M,i,a) - 0065
have hiff : (FpConvolutionCoefficient(p,ab,ac,L,bb,bc,M,i,a) → FpConvolutionCoefficient(p,ab,ac,L,BB,BC,S M,i,a)) ∧ (FpConvolutionCoefficient(p,ab,ac,L,BB,BC,S M,i,a) → FpConvolutionCoefficient(p,ab,ac,L,bb,bc,M,i,a)) - 0066
specialize prime_field_convolution_coefficient_shift_right_iff (p) - 0067
specialize prime_field_convolution_coefficient_shift_right_iff (ab) - 0068
specialize prime_field_convolution_coefficient_shift_right_iff (ac) - 0069
specialize prime_field_convolution_coefficient_shift_right_iff (L) - 0070
specialize prime_field_convolution_coefficient_shift_right_iff (bb) - 0071
specialize prime_field_convolution_coefficient_shift_right_iff (bc) - 0072
specialize prime_field_convolution_coefficient_shift_right_iff (M) - 0073
specialize prime_field_convolution_coefficient_shift_right_iff (BB) - 0074
specialize prime_field_convolution_coefficient_shift_right_iff (BC) - 0075
specialize prime_field_convolution_coefficient_shift_right_iff (i) - 0076
specialize prime_field_convolution_coefficient_shift_right_iff (a) - 0077
apply prime_field_convolution_coefficient_shift_right_iff - 0078
exact hs - 0079
cases hiff - 0080
apply hiff_left - 0081
exact hca - 0082
have hv : ∃ r. BetaAt(db,dc,i,r) ∧ FpConvolutionCoefficient(p,ab,ac,L,BB,BC,S M,i,r) - 0083
specialize hd_right_right_right (i) - 0084
apply hd_right_right_right - 0085
rewrite hk - 0086
specialize le_succ (S i) - 0087
specialize le_succ (N) - 0088
apply le_succ - 0089
exact hi - 0090
cases hv - 0091
cases hv_witness - 0092
have heq : a=x - 0093
specialize prime_field_convolution_coefficient_functional (p) - 0094
specialize prime_field_convolution_coefficient_functional (ab) - 0095
specialize prime_field_convolution_coefficient_functional (ac) - 0096
specialize prime_field_convolution_coefficient_functional (L) - 0097
specialize prime_field_convolution_coefficient_functional (BB) - 0098
specialize prime_field_convolution_coefficient_functional (BC) - 0099
specialize prime_field_convolution_coefficient_functional (S M) - 0100
specialize prime_field_convolution_coefficient_functional (i) - 0101
specialize prime_field_convolution_coefficient_functional (a) - 0102
specialize prime_field_convolution_coefficient_functional (x) - 0103
apply prime_field_convolution_coefficient_functional - 0104
exact hda - 0105
exact hv_witness_right - 0106
rewrite heq - 0107
rewrite heq - 0108
exact hv_witness_left - 0109
have hv : ∃ r. BetaAt(db,dc,N,r) ∧ FpConvolutionCoefficient(p,ab,ac,L,BB,BC,S M,N,r) - 0110
specialize hd_right_right_right (N) - 0111
apply hd_right_right_right - 0112
rewrite hk - 0113
specialize le_refl (S N) - 0114
apply le_refl - 0115
cases hv - 0116
cases hv_witness - 0117
have hco : FpConvolutionCoefficient(p,ab,ac,L,bb,bc,M,N,x) - 0118
have hiff : (FpConvolutionCoefficient(p,ab,ac,L,bb,bc,M,N,x) → FpConvolutionCoefficient(p,ab,ac,L,BB,BC,S M,N,x)) ∧ (FpConvolutionCoefficient(p,ab,ac,L,BB,BC,S M,N,x) → FpConvolutionCoefficient(p,ab,ac,L,bb,bc,M,N,x)) - 0119
specialize prime_field_convolution_coefficient_shift_right_iff (p) - 0120
specialize prime_field_convolution_coefficient_shift_right_iff (ab) - 0121
specialize prime_field_convolution_coefficient_shift_right_iff (ac) - 0122
specialize prime_field_convolution_coefficient_shift_right_iff (L) - 0123
specialize prime_field_convolution_coefficient_shift_right_iff (bb) - 0124
specialize prime_field_convolution_coefficient_shift_right_iff (bc) - 0125
specialize prime_field_convolution_coefficient_shift_right_iff (M) - 0126
specialize prime_field_convolution_coefficient_shift_right_iff (BB) - 0127
specialize prime_field_convolution_coefficient_shift_right_iff (BC) - 0128
specialize prime_field_convolution_coefficient_shift_right_iff (N) - 0129
specialize prime_field_convolution_coefficient_shift_right_iff (x) - 0130
apply prime_field_convolution_coefficient_shift_right_iff - 0131
exact hs - 0132
cases hiff - 0133
apply hiff_right - 0134
exact hv_witness_right - 0135
have hz : x=0 - 0136
specialize prime_field_polynomial_convolution_outside_zero (p) - 0137
specialize prime_field_polynomial_convolution_outside_zero (ab) - 0138
specialize prime_field_polynomial_convolution_outside_zero (ac) - 0139
specialize prime_field_polynomial_convolution_outside_zero (L) - 0140
specialize prime_field_polynomial_convolution_outside_zero (bb) - 0141
specialize prime_field_polynomial_convolution_outside_zero (bc) - 0142
specialize prime_field_polynomial_convolution_outside_zero (M) - 0143
specialize prime_field_polynomial_convolution_outside_zero (cb) - 0144
specialize prime_field_polynomial_convolution_outside_zero (cc) - 0145
specialize prime_field_polynomial_convolution_outside_zero (N) - 0146
specialize prime_field_polynomial_convolution_outside_zero (N) - 0147
specialize prime_field_polynomial_convolution_outside_zero (x) - 0148
apply prime_field_polynomial_convolution_outside_zero - 0149
exact hp - 0150
exact hwhole - 0151
specialize le_refl (N) - 0152
apply le_refl - 0153
exact hco - 0154
rewrite hz at hv_witness_left - 0155
rewrite hz at hv_witness_left - 0156
exact hv_witness_left