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. ∀ d. Prime(p) → BetaPrefixInto(ab,ac,L,p) → FpRepresentedDegree(p,bb,bc,S d,d) → ∃ x. ∃ y. ∃ z. ∃ n. ∃ m. ∃ k. FpPolynomialDivisionExecution(p,ab,ac,L,bb,bc,d,x,y,z,n,m,k)
Every linked abbreviation expands hygienically to the identical original native formula.
Definition DAG
Actual proof prerequisites
Complete tactic proof in conservative notation
All 86 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
02Establish hquotientL11–20
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply prime field polynomial division quotient data exists.
- L11
have hquotient : ∃ b. ∃ k. ∃ q. ∃ qb. ∃ qc. BetaAt(bb,bc,0,b) ∧ (FpInv(p,b,k) ∧ (PolynomialQuotientLength(L,d,q) ∧ FpPolynomialQuotientPrefix(p,k,ab,ac,bb,bc,S d,qb,qc,q)))Definitions: BetaAt(bb,bc,0,b)FpInv(p,b,k)PolynomialQuotientLength(L,d,q)FpPolynomialQuotientPrefix(p,k,ab,ac,bb,bc,S d,qb,qc,q)Original native command in the exact edition - L12
specialize prime_field_polynomial_division_quotient_data_exists (p) - L13
specialize prime_field_polynomial_division_quotient_data_exists (ab) - L14
specialize prime_field_polynomial_division_quotient_data_exists (ac) - L15
specialize prime_field_polynomial_division_quotient_data_exists (L) - L16
specialize prime_field_polynomial_division_quotient_data_exists (bb) - L17
specialize prime_field_polynomial_division_quotient_data_exists (bc) - L18
specialize prime_field_polynomial_division_quotient_data_exists (d) - L19
apply prime_field_polynomial_division_quotient_data_exists - L20
exact hp
03Use earlier factsL21–22
04Separate the logical casesL23–30
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L23
cases hquotient - L24
cases hquotient_witness - L25
cases hquotient_witness_witness - L26
cases hquotient_witness_witness_witness - L27
cases hquotient_witness_witness_witness_witness - L28
cases hquotient_witness_witness_witness_witness_witness - L29
cases hquotient_witness_witness_witness_witness_witness_right - L30
cases hquotient_witness_witness_witness_witness_witness_right_right
05Establish hresidualL31–40
Establish this local claim before using it. It is not an additional assumption.
- L31
have hresidual : ∃ pb. ∃ pc. ∃ ub. ∃ uc. ∃ t. ∃ rb. ∃ rc. ∃ R. FpConvolutionPrefix(p,x3,x4,x2,bb,bc,S d,pb,pc,L) ∧ (FpCoefficientSubtraction(p,ab,ac,pb,pc,ub,uc,L) ∧ FpPolynomialTrim(p,ub,uc,L,t,rb,rc,R))Definitions: FpConvolutionPrefix(p,x3,x4,x2,bb,bc,S d,pb,pc,L)FpCoefficientSubtraction(p,ab,ac,pb,pc,ub,uc,L)FpPolynomialTrim(p,ub,uc,L,t,rb,rc,R)Original native command in the exact edition - L32
specialize prime_field_polynomial_division_residual_data_exists (p) - L33
specialize prime_field_polynomial_division_residual_data_exists (ab) - L34
specialize prime_field_polynomial_division_residual_data_exists (ac) - L35
specialize prime_field_polynomial_division_residual_data_exists (L) - L36
specialize prime_field_polynomial_division_residual_data_exists (bb) - L37
specialize prime_field_polynomial_division_residual_data_exists (bc) - L38
specialize prime_field_polynomial_division_residual_data_exists (d) - L39
specialize prime_field_polynomial_division_residual_data_exists (x3) - L40
specialize prime_field_polynomial_division_residual_data_exists (x4)
06Use earlier factsL41–44
07Separate the logical casesL45–54
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L45
cases hresidual - L46
cases hresidual_witness - L47
cases hresidual_witness_witness - L48
cases hresidual_witness_witness_witness - L49
cases hresidual_witness_witness_witness_witness - L50
cases hresidual_witness_witness_witness_witness_witness - L51
cases hresidual_witness_witness_witness_witness_witness_witness - L52
cases hresidual_witness_witness_witness_witness_witness_witness_witness - L53
cases hresidual_witness_witness_witness_witness_witness_witness_witness_witness - L54
cases hresidual_witness_witness_witness_witness_witness_witness_witness_witness_right
08Separate the logical casesL55–56
09Construct an explicit witnessL57–62
10Separate the logical casesL63–63
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L63
split
11Use earlier factsL64–64
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L64
exact ha
12Separate the logical casesL65–65
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L65
split
13Use earlier factsL66–66
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L66
exact hb_right_left
14Separate the logical casesL67–67
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L67
split
15Use earlier factsL68–68
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L68
exact hquotient_witness_witness_witness_witness_witness_right_right_left
16Construct an explicit witnessL69–75
17Separate the logical casesL76–76
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L76
split
18Use earlier factsL77–77
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L77
exact hquotient_witness_witness_witness_witness_witness_left
19Separate the logical casesL78–78
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L78
split
20Use earlier factsL79–79
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L79
exact hquotient_witness_witness_witness_witness_witness_right_left
21Separate the logical casesL80–80
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L80
split
22Use earlier factsL81–81
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L81
exact hquotient_witness_witness_witness_witness_witness_right_right_right
23Separate the logical casesL82–82
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L82
split
24Use earlier factsL83–83
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L83
exact hresidual_witness_witness_witness_witness_witness_witness_witness_witness_left
25Separate the logical casesL84–84
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L84
split
Original defined command ledger · 86 lines
- 0001
intro p - 0002
intro ab - 0003
intro ac - 0004
intro L - 0005
intro bb - 0006
intro bc - 0007
intro d - 0008
intro hp - 0009
intro ha - 0010
intro hb - 0011
have hquotient : ∃ b. ∃ k. ∃ q. ∃ qb. ∃ qc. BetaAt(bb,bc,0,b) ∧ (FpInv(p,b,k) ∧ (PolynomialQuotientLength(L,d,q) ∧ FpPolynomialQuotientPrefix(p,k,ab,ac,bb,bc,S d,qb,qc,q))) - 0012
specialize prime_field_polynomial_division_quotient_data_exists (p) - 0013
specialize prime_field_polynomial_division_quotient_data_exists (ab) - 0014
specialize prime_field_polynomial_division_quotient_data_exists (ac) - 0015
specialize prime_field_polynomial_division_quotient_data_exists (L) - 0016
specialize prime_field_polynomial_division_quotient_data_exists (bb) - 0017
specialize prime_field_polynomial_division_quotient_data_exists (bc) - 0018
specialize prime_field_polynomial_division_quotient_data_exists (d) - 0019
apply prime_field_polynomial_division_quotient_data_exists - 0020
exact hp - 0021
exact ha - 0022
exact hb - 0023
cases hquotient - 0024
cases hquotient_witness - 0025
cases hquotient_witness_witness - 0026
cases hquotient_witness_witness_witness - 0027
cases hquotient_witness_witness_witness_witness - 0028
cases hquotient_witness_witness_witness_witness_witness - 0029
cases hquotient_witness_witness_witness_witness_witness_right - 0030
cases hquotient_witness_witness_witness_witness_witness_right_right - 0031
have hresidual : ∃ pb. ∃ pc. ∃ ub. ∃ uc. ∃ t. ∃ rb. ∃ rc. ∃ R. FpConvolutionPrefix(p,x3,x4,x2,bb,bc,S d,pb,pc,L) ∧ (FpCoefficientSubtraction(p,ab,ac,pb,pc,ub,uc,L) ∧ FpPolynomialTrim(p,ub,uc,L,t,rb,rc,R)) - 0032
specialize prime_field_polynomial_division_residual_data_exists (p) - 0033
specialize prime_field_polynomial_division_residual_data_exists (ab) - 0034
specialize prime_field_polynomial_division_residual_data_exists (ac) - 0035
specialize prime_field_polynomial_division_residual_data_exists (L) - 0036
specialize prime_field_polynomial_division_residual_data_exists (bb) - 0037
specialize prime_field_polynomial_division_residual_data_exists (bc) - 0038
specialize prime_field_polynomial_division_residual_data_exists (d) - 0039
specialize prime_field_polynomial_division_residual_data_exists (x3) - 0040
specialize prime_field_polynomial_division_residual_data_exists (x4) - 0041
specialize prime_field_polynomial_division_residual_data_exists (x2) - 0042
apply prime_field_polynomial_division_residual_data_exists - 0043
exact hp - 0044
exact ha - 0045
cases hresidual - 0046
cases hresidual_witness - 0047
cases hresidual_witness_witness - 0048
cases hresidual_witness_witness_witness - 0049
cases hresidual_witness_witness_witness_witness - 0050
cases hresidual_witness_witness_witness_witness_witness - 0051
cases hresidual_witness_witness_witness_witness_witness_witness - 0052
cases hresidual_witness_witness_witness_witness_witness_witness_witness - 0053
cases hresidual_witness_witness_witness_witness_witness_witness_witness_witness - 0054
cases hresidual_witness_witness_witness_witness_witness_witness_witness_witness_right - 0055
cases hb - 0056
cases hb_right - 0057
exists x3 - 0058
exists x4 - 0059
exists x2 - 0060
exists x10 - 0061
exists x11 - 0062
exists x12 - 0063
split - 0064
exact ha - 0065
split - 0066
exact hb_right_left - 0067
split - 0068
exact hquotient_witness_witness_witness_witness_witness_right_right_left - 0069
exists x - 0070
exists x1 - 0071
exists x5 - 0072
exists x6 - 0073
exists x7 - 0074
exists x8 - 0075
exists x9 - 0076
split - 0077
exact hquotient_witness_witness_witness_witness_witness_left - 0078
split - 0079
exact hquotient_witness_witness_witness_witness_witness_right_left - 0080
split - 0081
exact hquotient_witness_witness_witness_witness_witness_right_right_right - 0082
split - 0083
exact hresidual_witness_witness_witness_witness_witness_witness_witness_witness_left - 0084
split - 0085
exact hresidual_witness_witness_witness_witness_witness_witness_witness_witness_right_left - 0086
exact hresidual_witness_witness_witness_witness_witness_witness_witness_witness_right_right