Current library: Alpha v34, 4,223 checked-use theorems; Stable remains 432. Historical first admissions, original proof editions, and non-admitted aliases are preserved.
Coefficients are highest-degree-first. The divisor has a nonzero decoded head; primality supplies its actual inverse. Empty quotients and remainders are included. Functionality compares the constructed execution lengths and decoded coefficients, never arbitrary beta codes. Formal polynomial equivalence compares every coefficient, not evaluations on a finite field. The formal identity and remainder-degree bound are proved separately, not assumed by the execution graph. Arbitrary quotient/remainder-pair uniqueness from a formal identity, multiplication associativity, gcd/Bezout, irreducible-polynomial existence, and the full G091 prime-power-field goal remain open. The seven displayed new names are conservative first-order notation, not new kernel primitives.
Exact theorem in conservative defined notation
∀ p. ∀ k. ∀ ab. ∀ ac. ∀ bb. ∀ bc. ∀ cb. ∀ cc. ∀ L. Prime(p) → BetaPrefixInto(bb,bc,1,p) → BetaAt(bb,bc,0,k) → FpPolyScale(p,k,ab,ac,cb,cc,L) → FpPolyProduct(p,ab,ac,L,bb,bc,1,cb,cc,L)
Every linked abbreviation expands hygienically to the identical original native formula.
Definition DAG
Actual proof prerequisites
Complete tactic proof in conservative notation
All 107 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 hbL14–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 hb : BetaPrefixInto(ab,ac,L,p) ∧ BetaPrefixInto(cb,cc,L,p)Definitions: BetaPrefixInto(ab,ac,L,p)BetaPrefixInto(cb,cc,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 (cb) - L20
specialize prime_field_polynomial_scale_bounded (cc) - 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 hb_left
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 hB
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
13Use earlier factsL42–42
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L42
exact hz_right
14Separate the logical casesL43–43
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L43
split
15Fix variables and assumptionsL44–44
Work with arbitrary variables or the premises of the current implication.
- L44
intro hbad
16Use earlier factsL45–47
17Calculate and transport equalitiesL48–48
Carry out the recorded arithmetic or equality steps; inspect the exact commands for their direction and premises.
- L48
simp
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(cb,cc,i,r) ∧ FpMul(p,k,a,r))Definitions: BetaAt(ab,ac,i,a)BetaAt(cb,cc,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 hcL60–69
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply prime field convolution coefficient exists.
- L60
have hc : ∃ r. FpConvolutionCoefficient(p,ab,ac,L,bb,bc,1,i,r)Definitions: FpConvolutionCoefficient(p,ab,ac,L,bb,bc,1,i,r)Original native command in the exact edition - L61
specialize prime_field_convolution_coefficient_exists (p) - L62
specialize prime_field_convolution_coefficient_exists (ab) - L63
specialize prime_field_convolution_coefficient_exists (ac) - L64
specialize prime_field_convolution_coefficient_exists (L) - L65
specialize prime_field_convolution_coefficient_exists (bb) - L66
specialize prime_field_convolution_coefficient_exists (bc) - L67
specialize prime_field_convolution_coefficient_exists (1) - L68
specialize prime_field_convolution_coefficient_exists (i) - L69
apply prime_field_convolution_coefficient_exists
24Fix variables and assumptionsL70–70
Work with arbitrary variables or the premises of the current implication.
- L70
intro hpzero
25Use earlier factsL71–74
26Separate the logical casesL75–75
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L75
cases hc
27Establish heqL76–85
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply prime field multiply functional.
- L76
have heq : x2=x1 - L77
specialize prime_field_multiply_functional (p) - L78
specialize prime_field_multiply_functional (k) - L79
specialize prime_field_multiply_functional (x) - L80
specialize prime_field_multiply_functional (x2) - L81
specialize prime_field_multiply_functional (x1) - L82
apply prime_field_multiply_functional - L83
specialize prime_field_polynomial_constant_right_coefficient (p) - L84
specialize prime_field_polynomial_constant_right_coefficient (ab) - L85
specialize prime_field_polynomial_constant_right_coefficient (ac)
28Use earlier factsL86–95
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L86
specialize prime_field_polynomial_constant_right_coefficient (L) - L87
specialize prime_field_polynomial_constant_right_coefficient (bb) - L88
specialize prime_field_polynomial_constant_right_coefficient (bc) - L89
specialize prime_field_polynomial_constant_right_coefficient (k) - L90
specialize prime_field_polynomial_constant_right_coefficient (i) - L91
specialize prime_field_polynomial_constant_right_coefficient (x) - L92
specialize prime_field_polynomial_constant_right_coefficient (x2) - L93
apply prime_field_polynomial_constant_right_coefficient - L94
exact hp - L95
exact hb_left
29Use earlier factsL96–101
30Construct an explicit witnessL102–102
Supply the displayed value, then prove that it has the required property.
- L102
exists x1
31Separate the logical casesL103–103
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L103
split
32Use earlier factsL104–104
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L104
exact hv_witness_witness_right_left
33Calculate and transport equalitiesL105–106
34Use earlier factsL107–107
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L107
exact hc_witness
Original defined command ledger · 107 lines
- 0001
intro p - 0002
intro k - 0003
intro ab - 0004
intro ac - 0005
intro bb - 0006
intro bc - 0007
intro cb - 0008
intro cc - 0009
intro L - 0010
intro hp - 0011
intro hB - 0012
intro hk - 0013
intro hs - 0014
have hb : BetaPrefixInto(ab,ac,L,p) ∧ BetaPrefixInto(cb,cc,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 (cb) - 0020
specialize prime_field_polynomial_scale_bounded (cc) - 0021
specialize prime_field_polynomial_scale_bounded (L) - 0022
apply prime_field_polynomial_scale_bounded - 0023
exact hs - 0024
cases hb - 0025
split - 0026
exact hb_left - 0027
split - 0028
exact hB - 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
left - 0038
exact hz_left - 0039
exact hz_left - 0040
right - 0041
split - 0042
exact hz_right - 0043
split - 0044
intro hbad - 0045
specialize succ_ne_zero (0) - 0046
apply succ_ne_zero - 0047
exact hbad - 0048
simp - 0049
intro i - 0050
intro hi - 0051
have hv : ∃ a. ∃ r. BetaAt(ab,ac,i,a) ∧ (BetaAt(cb,cc,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 hc : ∃ r. FpConvolutionCoefficient(p,ab,ac,L,bb,bc,1,i,r) - 0061
specialize prime_field_convolution_coefficient_exists (p) - 0062
specialize prime_field_convolution_coefficient_exists (ab) - 0063
specialize prime_field_convolution_coefficient_exists (ac) - 0064
specialize prime_field_convolution_coefficient_exists (L) - 0065
specialize prime_field_convolution_coefficient_exists (bb) - 0066
specialize prime_field_convolution_coefficient_exists (bc) - 0067
specialize prime_field_convolution_coefficient_exists (1) - 0068
specialize prime_field_convolution_coefficient_exists (i) - 0069
apply prime_field_convolution_coefficient_exists - 0070
intro hpzero - 0071
specialize prime_nonzero (p) - 0072
apply prime_nonzero - 0073
exact hp - 0074
exact hpzero - 0075
cases hc - 0076
have heq : x2=x1 - 0077
specialize prime_field_multiply_functional (p) - 0078
specialize prime_field_multiply_functional (k) - 0079
specialize prime_field_multiply_functional (x) - 0080
specialize prime_field_multiply_functional (x2) - 0081
specialize prime_field_multiply_functional (x1) - 0082
apply prime_field_multiply_functional - 0083
specialize prime_field_polynomial_constant_right_coefficient (p) - 0084
specialize prime_field_polynomial_constant_right_coefficient (ab) - 0085
specialize prime_field_polynomial_constant_right_coefficient (ac) - 0086
specialize prime_field_polynomial_constant_right_coefficient (L) - 0087
specialize prime_field_polynomial_constant_right_coefficient (bb) - 0088
specialize prime_field_polynomial_constant_right_coefficient (bc) - 0089
specialize prime_field_polynomial_constant_right_coefficient (k) - 0090
specialize prime_field_polynomial_constant_right_coefficient (i) - 0091
specialize prime_field_polynomial_constant_right_coefficient (x) - 0092
specialize prime_field_polynomial_constant_right_coefficient (x2) - 0093
apply prime_field_polynomial_constant_right_coefficient - 0094
exact hp - 0095
exact hb_left - 0096
exact hB - 0097
exact hk - 0098
exact hi - 0099
exact hv_witness_witness_left - 0100
exact hc_witness - 0101
exact hv_witness_witness_right_right - 0102
exists x1 - 0103
split - 0104
exact hv_witness_witness_right_left - 0105
rewrite heq at hc_witness - 0106
rewrite heq at hc_witness - 0107
exact hc_witness