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. ∀ k. ∀ kb. ∀ kc. ∀ ab. ∀ ac. ∀ hb. ∀ hc. ∀ L. Prime(p) → BetaPrefixInto(kb,kc,1,p) → BetaAt(kb,kc,0,k) → FpPolyScale(p,k,ab,ac,hb,hc,L) → FpPolyProduct(p,kb,kc,1,ab,ac,L,hb,hc,L)
Every linked abbreviation expands hygienically to the identical original native formula.
Definition DAG
Actual proof prerequisites
Complete tactic proof in conservative notation
All 110 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 (1)
01Fix variables and assumptionsL1–10
02Fix variables and assumptionsL11–13
03Establish hboundsL14–23
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply prime field polynomial scale bounded.
- L14
have hbounds : BetaPrefixInto(ab,ac,L,p) ∧ BetaPrefixInto(hb,hc,L,p)Definitions: BetaPrefixInto(ab,ac,L,p)BetaPrefixInto(hb,hc,L,p)Original native command in the exact edition - L15
specialize prime_field_polynomial_scale_bounded (p) - L16
specialize prime_field_polynomial_scale_bounded (k) - L17
specialize prime_field_polynomial_scale_bounded (ab) - L18
specialize prime_field_polynomial_scale_bounded (ac) - L19
specialize prime_field_polynomial_scale_bounded (hb) - L20
specialize prime_field_polynomial_scale_bounded (hc) - L21
specialize prime_field_polynomial_scale_bounded (L) - L22
apply prime_field_polynomial_scale_bounded - L23
exact hs
04Separate the logical casesL24–25
05Use earlier factsL26–26
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L26
exact hK
06Separate the logical casesL27–27
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L27
split
07Use earlier factsL28–28
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L28
exact hbounds_left
08Separate the logical casesL29–29
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L29
split
09Establish hzL30–33
10Separate the logical casesL34–37
11Use earlier factsL38–39
12Separate the logical casesL40–41
13Fix variables and assumptionsL42–42
Work with arbitrary variables or the premises of the current implication.
- L42
intro hbad
14Use earlier factsL43–45
15Separate the logical casesL46–46
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L46
split
16Use earlier factsL47–47
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L47
exact hz_right
17Calculate and transport equalitiesL48–48
Carry out the recorded arithmetic or equality steps; inspect the exact commands for their direction and premises.
- L48
simp [add_succ_left,zero_add]
18Fix variables and assumptionsL49–50
19Establish hvL51–51
Establish this local claim before using it. It is not an additional assumption.
- L51
have hv : ∃ a. ∃ r. BetaAt(ab,ac,i,a) ∧ (BetaAt(hb,hc,i,r) ∧ FpMul(p,k,a,r))Definitions: BetaAt(ab,ac,i,a)BetaAt(hb,hc,i,r)FpMul(p,k,a,r)Original native command in the exact edition
20Separate the logical casesL52–52
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L52
cases hs
21Use earlier factsL53–55
22Separate the logical casesL56–59
23Establish hmL60–61
Establish this local claim before using it. It is not an additional assumption.
24Separate the logical casesL62–63
25Establish hcoefficientL64–73
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply prime field convolution coefficient exists.
- L64
have hcoefficient : ∃ r. FpConvolutionCoefficient(p,kb,kc,1,ab,ac,L,i,r)Definitions: FpConvolutionCoefficient(p,kb,kc,1,ab,ac,L,i,r)Original native command in the exact edition - L65
specialize prime_field_convolution_coefficient_exists (p) - L66
specialize prime_field_convolution_coefficient_exists (kb) - L67
specialize prime_field_convolution_coefficient_exists (kc) - L68
specialize prime_field_convolution_coefficient_exists (1) - L69
specialize prime_field_convolution_coefficient_exists (ab) - L70
specialize prime_field_convolution_coefficient_exists (ac) - L71
specialize prime_field_convolution_coefficient_exists (L) - L72
specialize prime_field_convolution_coefficient_exists (i) - L73
apply prime_field_convolution_coefficient_exists
26Fix variables and assumptionsL74–74
Work with arbitrary variables or the premises of the current implication.
- L74
intro hpzero
27Use earlier factsL75–78
28Separate the logical casesL79–79
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L79
cases hcoefficient
29Establish heqL80–89
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply prime field multiply functional.
- L80
have heq : x2=x1 - L81
specialize prime_field_multiply_functional (p) - L82
specialize prime_field_multiply_functional (k) - L83
specialize prime_field_multiply_functional (x) - L84
specialize prime_field_multiply_functional (x2) - L85
specialize prime_field_multiply_functional (x1) - L86
apply prime_field_multiply_functional - L87
specialize prime_field_convolution_coefficient_left_constant (p) - L88
specialize prime_field_convolution_coefficient_left_constant (k) - L89
specialize prime_field_convolution_coefficient_left_constant (kb)
30Use earlier factsL90–99
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L90
specialize prime_field_convolution_coefficient_left_constant (kc) - L91
specialize prime_field_convolution_coefficient_left_constant (ab) - L92
specialize prime_field_convolution_coefficient_left_constant (ac) - L93
specialize prime_field_convolution_coefficient_left_constant (L) - L94
specialize prime_field_convolution_coefficient_left_constant (i) - L95
specialize prime_field_convolution_coefficient_left_constant (x) - L96
specialize prime_field_convolution_coefficient_left_constant (x2) - L97
apply prime_field_convolution_coefficient_left_constant - L98
exact hk - L99
exact hi
31Use earlier factsL100–104
32Construct an explicit witnessL105–105
Supply the displayed value, then prove that it has the required property.
- L105
exists x1
33Separate the logical casesL106–106
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L106
split
34Use earlier factsL107–107
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L107
exact hv_witness_witness_right_left
35Calculate and transport equalitiesL108–109
36Use earlier factsL110–110
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L110
exact hcoefficient_witness
Original defined command ledger · 110 lines
- 0001
intro p - 0002
intro k - 0003
intro kb - 0004
intro kc - 0005
intro ab - 0006
intro ac - 0007
intro hb - 0008
intro hc - 0009
intro L - 0010
intro hp - 0011
intro hK - 0012
intro hk - 0013
intro hs - 0014
have hbounds : BetaPrefixInto(ab,ac,L,p) ∧ BetaPrefixInto(hb,hc,L,p) - 0015
specialize prime_field_polynomial_scale_bounded (p) - 0016
specialize prime_field_polynomial_scale_bounded (k) - 0017
specialize prime_field_polynomial_scale_bounded (ab) - 0018
specialize prime_field_polynomial_scale_bounded (ac) - 0019
specialize prime_field_polynomial_scale_bounded (hb) - 0020
specialize prime_field_polynomial_scale_bounded (hc) - 0021
specialize prime_field_polynomial_scale_bounded (L) - 0022
apply prime_field_polynomial_scale_bounded - 0023
exact hs - 0024
cases hbounds - 0025
split - 0026
exact hK - 0027
split - 0028
exact hbounds_left - 0029
split - 0030
have hz : L=0 \/ ~(L=0) - 0031
specialize eq_decidable (L) - 0032
specialize eq_decidable (0) - 0033
apply eq_decidable - 0034
cases hz - 0035
left - 0036
split - 0037
right - 0038
exact hz_left - 0039
exact hz_left - 0040
right - 0041
split - 0042
intro hbad - 0043
specialize succ_ne_zero (0) - 0044
apply succ_ne_zero - 0045
exact hbad - 0046
split - 0047
exact hz_right - 0048
simp [add_succ_left,zero_add] - 0049
intro i - 0050
intro hi - 0051
have hv : ∃ a. ∃ r. BetaAt(ab,ac,i,a) ∧ (BetaAt(hb,hc,i,r) ∧ FpMul(p,k,a,r)) - 0052
cases hs - 0053
specialize hs_right (i) - 0054
apply hs_right - 0055
exact hi - 0056
cases hv - 0057
cases hv_witness - 0058
cases hv_witness_witness - 0059
cases hv_witness_witness_right - 0060
have hm : FpMul(p,k,x,x1) - 0061
exact hv_witness_witness_right_right - 0062
cases hm - 0063
cases hm_right - 0064
have hcoefficient : ∃ r. FpConvolutionCoefficient(p,kb,kc,1,ab,ac,L,i,r) - 0065
specialize prime_field_convolution_coefficient_exists (p) - 0066
specialize prime_field_convolution_coefficient_exists (kb) - 0067
specialize prime_field_convolution_coefficient_exists (kc) - 0068
specialize prime_field_convolution_coefficient_exists (1) - 0069
specialize prime_field_convolution_coefficient_exists (ab) - 0070
specialize prime_field_convolution_coefficient_exists (ac) - 0071
specialize prime_field_convolution_coefficient_exists (L) - 0072
specialize prime_field_convolution_coefficient_exists (i) - 0073
apply prime_field_convolution_coefficient_exists - 0074
intro hpzero - 0075
specialize prime_nonzero (p) - 0076
apply prime_nonzero - 0077
exact hp - 0078
exact hpzero - 0079
cases hcoefficient - 0080
have heq : x2=x1 - 0081
specialize prime_field_multiply_functional (p) - 0082
specialize prime_field_multiply_functional (k) - 0083
specialize prime_field_multiply_functional (x) - 0084
specialize prime_field_multiply_functional (x2) - 0085
specialize prime_field_multiply_functional (x1) - 0086
apply prime_field_multiply_functional - 0087
specialize prime_field_convolution_coefficient_left_constant (p) - 0088
specialize prime_field_convolution_coefficient_left_constant (k) - 0089
specialize prime_field_convolution_coefficient_left_constant (kb) - 0090
specialize prime_field_convolution_coefficient_left_constant (kc) - 0091
specialize prime_field_convolution_coefficient_left_constant (ab) - 0092
specialize prime_field_convolution_coefficient_left_constant (ac) - 0093
specialize prime_field_convolution_coefficient_left_constant (L) - 0094
specialize prime_field_convolution_coefficient_left_constant (i) - 0095
specialize prime_field_convolution_coefficient_left_constant (x) - 0096
specialize prime_field_convolution_coefficient_left_constant (x2) - 0097
apply prime_field_convolution_coefficient_left_constant - 0098
exact hk - 0099
exact hi - 0100
exact hv_witness_witness_left - 0101
exact hm_left - 0102
exact hm_right_left - 0103
exact hcoefficient_witness - 0104
exact hv_witness_witness_right_right - 0105
exists x1 - 0106
split - 0107
exact hv_witness_witness_right_left - 0108
rewrite heq at hcoefficient_witness - 0109
rewrite heq at hcoefficient_witness - 0110
exact hcoefficient_witness