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. ∀ ab. ∀ ac. ∀ L. ∀ bb. ∀ bc. ∀ M. ∀ AB. ∀ AC. ∀ t. ∀ i. ∀ r. PolynomialLeftPad(ab,ac,L,t,AB,AC) → FpConvolutionCoefficient(p,ab,ac,L,bb,bc,M,i,r) → FpConvolutionCoefficient(p,AB,AC,t + L,bb,bc,M,t + i,r)
Every linked abbreviation expands hygienically to the identical original native formula.
Definition DAG
Actual proof prerequisites
Complete tactic proof in conservative notation
All 83 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–14
03Separate the logical casesL15–19
04Establish hdL20–28
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply polynomial diagonal prefix exists.
- L20
have hd : ∃ eb. ∃ ec. PolynomialDiagonalPrefix(AB,AC,t + L,bb,bc,M,t + i,eb,ec,S (t + i))Definitions: PolynomialDiagonalPrefix(AB,AC,t + L,bb,bc,M,t + i,eb,ec,S (t + i))Original native command in the exact edition - L21
specialize polynomial_diagonal_prefix_exists (AB) - L22
specialize polynomial_diagonal_prefix_exists (AC) - L23
specialize polynomial_diagonal_prefix_exists (t+L) - L24
specialize polynomial_diagonal_prefix_exists (bb) - L25
specialize polynomial_diagonal_prefix_exists (bc) - L26
specialize polynomial_diagonal_prefix_exists (M) - L27
specialize polynomial_diagonal_prefix_exists (t+i) - L28
apply polynomial_diagonal_prefix_exists
05Separate the logical casesL29–30
06Establish hsL31–35
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply beta sum exists.
- L31
have hs : ∃ n. Sum(x3,x4,S (t + i),n)Definitions: Sum(x3,x4,S (t + i),n)Original native command in the exact edition - L32
specialize beta_sum_exists (x3) - L33
specialize beta_sum_exists (x4) - L34
specialize beta_sum_exists (S (t+i)) - L35
apply beta_sum_exists
07Separate the logical casesL36–36
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L36
cases hs
08Establish hdataL37–46
Establish this local claim before using it. It is not an additional assumption.
- L37
have hdata : PolynomialLeftPad(x,x1,S i,t,x3,x4)Definitions: PolynomialLeftPad(x,x1,S i,t,x3,x4)Original native command in the exact edition - L38
specialize polynomial_diagonal_left_padding_left (ab) - L39
specialize polynomial_diagonal_left_padding_left (ac) - L40
specialize polynomial_diagonal_left_padding_left (L) - L41
specialize polynomial_diagonal_left_padding_left (bb) - L42
specialize polynomial_diagonal_left_padding_left (bc) - L43
specialize polynomial_diagonal_left_padding_left (M) - L44
specialize polynomial_diagonal_left_padding_left (AB) - L45
specialize polynomial_diagonal_left_padding_left (AC) - L46
specialize polynomial_diagonal_left_padding_left (t)
09Use earlier factsL47–55
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L47
specialize polynomial_diagonal_left_padding_left (i) - L48
specialize polynomial_diagonal_left_padding_left (x) - L49
specialize polynomial_diagonal_left_padding_left (x1) - L50
specialize polynomial_diagonal_left_padding_left (x3) - L51
specialize polynomial_diagonal_left_padding_left (x4) - L52
apply polynomial_diagonal_left_padding_left - L53
exact hpad - L54
exact hc_witness_witness_witness_left - L55
exact hd_witness_witness
10Establish heqL56–65
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply polynomial left pad natural sum invariant.
- L56
have heq : x5=x2 - L57
specialize polynomial_left_pad_natural_sum_invariant (x) - L58
specialize polynomial_left_pad_natural_sum_invariant (x1) - L59
specialize polynomial_left_pad_natural_sum_invariant (x3) - L60
specialize polynomial_left_pad_natural_sum_invariant (x4) - L61
specialize polynomial_left_pad_natural_sum_invariant (t) - L62
specialize polynomial_left_pad_natural_sum_invariant (S i) - L63
specialize polynomial_left_pad_natural_sum_invariant (x2) - L64
specialize polynomial_left_pad_natural_sum_invariant (x5) - L65
apply polynomial_left_pad_natural_sum_invariant
11Use earlier factsL66–67
12Establish hlengthL68–73
13Construct an explicit witnessL74–76
14Separate the logical casesL77–77
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L77
split
15Use earlier factsL78–78
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L78
exact hd_witness_witness
16Separate the logical casesL79–79
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L79
split
17Calculate and transport equalitiesL80–81
Original defined command ledger · 83 lines
- 0001
intro p - 0002
intro ab - 0003
intro ac - 0004
intro L - 0005
intro bb - 0006
intro bc - 0007
intro M - 0008
intro AB - 0009
intro AC - 0010
intro t - 0011
intro i - 0012
intro r - 0013
intro hpad - 0014
intro hc - 0015
cases hc - 0016
cases hc_witness - 0017
cases hc_witness_witness - 0018
cases hc_witness_witness_witness - 0019
cases hc_witness_witness_witness_right - 0020
have hd : ∃ eb. ∃ ec. PolynomialDiagonalPrefix(AB,AC,t + L,bb,bc,M,t + i,eb,ec,S (t + i)) - 0021
specialize polynomial_diagonal_prefix_exists (AB) - 0022
specialize polynomial_diagonal_prefix_exists (AC) - 0023
specialize polynomial_diagonal_prefix_exists (t+L) - 0024
specialize polynomial_diagonal_prefix_exists (bb) - 0025
specialize polynomial_diagonal_prefix_exists (bc) - 0026
specialize polynomial_diagonal_prefix_exists (M) - 0027
specialize polynomial_diagonal_prefix_exists (t+i) - 0028
apply polynomial_diagonal_prefix_exists - 0029
cases hd - 0030
cases hd_witness - 0031
have hs : ∃ n. Sum(x3,x4,S (t + i),n) - 0032
specialize beta_sum_exists (x3) - 0033
specialize beta_sum_exists (x4) - 0034
specialize beta_sum_exists (S (t+i)) - 0035
apply beta_sum_exists - 0036
cases hs - 0037
have hdata : PolynomialLeftPad(x,x1,S i,t,x3,x4) - 0038
specialize polynomial_diagonal_left_padding_left (ab) - 0039
specialize polynomial_diagonal_left_padding_left (ac) - 0040
specialize polynomial_diagonal_left_padding_left (L) - 0041
specialize polynomial_diagonal_left_padding_left (bb) - 0042
specialize polynomial_diagonal_left_padding_left (bc) - 0043
specialize polynomial_diagonal_left_padding_left (M) - 0044
specialize polynomial_diagonal_left_padding_left (AB) - 0045
specialize polynomial_diagonal_left_padding_left (AC) - 0046
specialize polynomial_diagonal_left_padding_left (t) - 0047
specialize polynomial_diagonal_left_padding_left (i) - 0048
specialize polynomial_diagonal_left_padding_left (x) - 0049
specialize polynomial_diagonal_left_padding_left (x1) - 0050
specialize polynomial_diagonal_left_padding_left (x3) - 0051
specialize polynomial_diagonal_left_padding_left (x4) - 0052
apply polynomial_diagonal_left_padding_left - 0053
exact hpad - 0054
exact hc_witness_witness_witness_left - 0055
exact hd_witness_witness - 0056
have heq : x5=x2 - 0057
specialize polynomial_left_pad_natural_sum_invariant (x) - 0058
specialize polynomial_left_pad_natural_sum_invariant (x1) - 0059
specialize polynomial_left_pad_natural_sum_invariant (x3) - 0060
specialize polynomial_left_pad_natural_sum_invariant (x4) - 0061
specialize polynomial_left_pad_natural_sum_invariant (t) - 0062
specialize polynomial_left_pad_natural_sum_invariant (S i) - 0063
specialize polynomial_left_pad_natural_sum_invariant (x2) - 0064
specialize polynomial_left_pad_natural_sum_invariant (x5) - 0065
apply polynomial_left_pad_natural_sum_invariant - 0066
exact hdata - 0067
exact hc_witness_witness_witness_right_left - 0068
have hlength : t+S i=S (t+i) - 0069
simp - 0070
rewrite hlength - 0071
rewrite hlength - 0072
rewrite hlength - 0073
exact hs_witness - 0074
exists x3 - 0075
exists x4 - 0076
exists x2 - 0077
split - 0078
exact hd_witness_witness - 0079
split - 0080
rewrite heq at hs_witness - 0081
rewrite heq at hs_witness - 0082
exact hs_witness - 0083
exact hc_witness_witness_witness_right_right