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. BetaAt(bb,bc,0,x) ∧ (FpInv(p,x,y) ∧ (PolynomialQuotientLength(L,d,z) ∧ FpPolynomialQuotientPrefix(p,y,ab,ac,bb,bc,S d,n,m,z)))
Every linked abbreviation expands hygienically to the identical original native formula.
Definition DAG
Actual proof prerequisites
Complete tactic proof in conservative notation
All 85 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 (3)
01Fix variables and assumptionsL1–10
02Separate the logical casesL11–14
03Establish hiL15–24
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply prime field inverse exists.
- L15
- L16
specialize prime_field_inverse_exists (p) - L17
specialize prime_field_inverse_exists (x) - L18
apply prime_field_inverse_exists - L19
exact hp - L20
specialize matrix_rank_bounded_prefix_value (bb) - L21
specialize matrix_rank_bounded_prefix_value (bc) - L22
specialize matrix_rank_bounded_prefix_value (S d) - L23
specialize matrix_rank_bounded_prefix_value (p) - L24
specialize matrix_rank_bounded_prefix_value (0)
04Use earlier factsL25–27
05Construct an explicit witnessL28–28
Supply the displayed value, then prove that it has the required property.
- L28
exists d
06Calculate and transport equalitiesL29–29
Carry out the recorded arithmetic or equality steps; inspect the exact commands for their direction and premises.
- L29
simp
07Use earlier factsL30–31
08Separate the logical casesL32–32
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L32
cases hi
09Establish hkL33–33
Establish this local claim before using it. It is not an additional assumption.
10Separate the logical casesL34–36
11Use earlier factsL37–37
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L37
exact hi_witness_right_right_left
12Establish hlengthL38–41
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply polynomial quotient length exists.
- L38
have hlength : ∃ q. PolynomialQuotientLength(L,d,q)Definitions: PolynomialQuotientLength(L,d,q)Original native command in the exact edition - L39
specialize polynomial_quotient_length_exists (L) - L40
specialize polynomial_quotient_length_exists (d) - L41
apply polynomial_quotient_length_exists
13Separate the logical casesL42–42
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L42
cases hlength
14Establish hboundsL43–48
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply polynomial quotient length bounds.
- L43
have hbounds : Le(x2,L) ∧ Le(L,x2 + d)Definitions: Le(x2,L)Le(L,x2 + d)Original native command in the exact edition - L44
specialize polynomial_quotient_length_bounds (L) - L45
specialize polynomial_quotient_length_bounds (d) - L46
specialize polynomial_quotient_length_bounds (x2) - L47
apply polynomial_quotient_length_bounds - L48
exact hlength_witness
15Separate the logical casesL49–49
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L49
cases hbounds
16Establish hquotientL50–59
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply prime field polynomial quotient prefix exists.
- L50
have hquotient : ∃ qb. ∃ qc. FpPolynomialQuotientPrefix(p,x1,ab,ac,bb,bc,S d,qb,qc,x2)Definitions: FpPolynomialQuotientPrefix(p,x1,ab,ac,bb,bc,S d,qb,qc,x2)Original native command in the exact edition - L51
specialize prime_field_polynomial_quotient_prefix_exists (p) - L52
specialize prime_field_polynomial_quotient_prefix_exists (x1) - L53
specialize prime_field_polynomial_quotient_prefix_exists (ab) - L54
specialize prime_field_polynomial_quotient_prefix_exists (ac) - L55
specialize prime_field_polynomial_quotient_prefix_exists (bb) - L56
specialize prime_field_polynomial_quotient_prefix_exists (bc) - L57
specialize prime_field_polynomial_quotient_prefix_exists (S d) - L58
specialize prime_field_polynomial_quotient_prefix_exists (x2) - L59
apply prime_field_polynomial_quotient_prefix_exists
17Use earlier factsL60–61
18Fix variables and assumptionsL62–63
19Use earlier factsL64–71
20Separate the logical casesL72–73
21Construct an explicit witnessL74–78
22Separate the logical casesL79–79
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L79
split
23Use earlier factsL80–80
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L80
exact hb_right_right_witness_left
24Separate the logical casesL81–81
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L81
split
25Use earlier factsL82–82
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L82
exact hi_witness
26Separate the logical casesL83–83
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L83
split
Original defined command ledger · 85 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
cases hb - 0012
cases hb_right - 0013
cases hb_right_right - 0014
cases hb_right_right_witness - 0015
have hi : ∃ k. FpInv(p,x,k) - 0016
specialize prime_field_inverse_exists (p) - 0017
specialize prime_field_inverse_exists (x) - 0018
apply prime_field_inverse_exists - 0019
exact hp - 0020
specialize matrix_rank_bounded_prefix_value (bb) - 0021
specialize matrix_rank_bounded_prefix_value (bc) - 0022
specialize matrix_rank_bounded_prefix_value (S d) - 0023
specialize matrix_rank_bounded_prefix_value (p) - 0024
specialize matrix_rank_bounded_prefix_value (0) - 0025
specialize matrix_rank_bounded_prefix_value (x) - 0026
apply matrix_rank_bounded_prefix_value - 0027
exact hb_right_left - 0028
exists d - 0029
simp - 0030
exact hb_right_right_witness_left - 0031
exact hb_right_right_witness_right - 0032
cases hi - 0033
have hk : Lt(x1,p) - 0034
cases hi_witness - 0035
cases hi_witness_right - 0036
cases hi_witness_right_right - 0037
exact hi_witness_right_right_left - 0038
have hlength : ∃ q. PolynomialQuotientLength(L,d,q) - 0039
specialize polynomial_quotient_length_exists (L) - 0040
specialize polynomial_quotient_length_exists (d) - 0041
apply polynomial_quotient_length_exists - 0042
cases hlength - 0043
have hbounds : Le(x2,L) ∧ Le(L,x2 + d) - 0044
specialize polynomial_quotient_length_bounds (L) - 0045
specialize polynomial_quotient_length_bounds (d) - 0046
specialize polynomial_quotient_length_bounds (x2) - 0047
apply polynomial_quotient_length_bounds - 0048
exact hlength_witness - 0049
cases hbounds - 0050
have hquotient : ∃ qb. ∃ qc. FpPolynomialQuotientPrefix(p,x1,ab,ac,bb,bc,S d,qb,qc,x2) - 0051
specialize prime_field_polynomial_quotient_prefix_exists (p) - 0052
specialize prime_field_polynomial_quotient_prefix_exists (x1) - 0053
specialize prime_field_polynomial_quotient_prefix_exists (ab) - 0054
specialize prime_field_polynomial_quotient_prefix_exists (ac) - 0055
specialize prime_field_polynomial_quotient_prefix_exists (bb) - 0056
specialize prime_field_polynomial_quotient_prefix_exists (bc) - 0057
specialize prime_field_polynomial_quotient_prefix_exists (S d) - 0058
specialize prime_field_polynomial_quotient_prefix_exists (x2) - 0059
apply prime_field_polynomial_quotient_prefix_exists - 0060
exact hp - 0061
exact hk - 0062
intro i - 0063
intro hindex - 0064
specialize ha (i) - 0065
apply ha - 0066
specialize lt_of_lt_of_le (i) - 0067
specialize lt_of_lt_of_le (x2) - 0068
specialize lt_of_lt_of_le (L) - 0069
apply lt_of_lt_of_le - 0070
exact hindex - 0071
exact hbounds_left - 0072
cases hquotient - 0073
cases hquotient_witness - 0074
exists x - 0075
exists x1 - 0076
exists x2 - 0077
exists x3 - 0078
exists x4 - 0079
split - 0080
exact hb_right_right_witness_left - 0081
split - 0082
exact hi_witness - 0083
split - 0084
exact hlength_witness - 0085
exact hquotient_witness_witness