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 coefficients retain the established highest-degree-first order. Trimming handles empty and all-zero prefixes; monic normalization requires a nonzero leading coefficient. Synthetic division has a nonempty input of length S n and a quotient of length n, unique in decoded values. Its coefficient recurrence, actual evaluation remainder and positive-degree drop are checked. General polynomial Euclidean division, gcd/Bezout, an arbitrary-convolution factor theorem, irreducible-polynomial existence and the full G091 prime-power-field endpoint remain open. These exact theorems are first admitted to Alpha v32; Stable remains unchanged.
Exact theorem in conservative defined notation
∀ p. ∀ ab. ∀ ac. ∀ L. ∀ d. Prime(p) → FpRepresentedDegree(p,ab,ac,L,d) → ∃ x. ∃ y. ∃ z. FpMonicNormalization(p,x,ab,ac,y,z,L)
Every linked abbreviation expands hygienically to the identical original native formula.
Definition DAG
Actual proof prerequisites
Complete tactic proof in conservative notation
All 70 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.
01Fix variables and assumptionsL1–7
02Separate the logical casesL8–11
03Establish haL12–21
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply matrix rank bounded prefix value.
- L12
- L13
specialize matrix_rank_bounded_prefix_value (ab) - L14
specialize matrix_rank_bounded_prefix_value (ac) - L15
specialize matrix_rank_bounded_prefix_value (L) - L16
specialize matrix_rank_bounded_prefix_value (p) - L17
specialize matrix_rank_bounded_prefix_value (0) - L18
specialize matrix_rank_bounded_prefix_value (x) - L19
apply matrix_rank_bounded_prefix_value - L20
exact hd_right_left - L21
rewrite hd_left
04Construct an explicit witnessL22–22
Supply the displayed value, then prove that it has the required property.
- L22
exists d
05Calculate and transport equalitiesL23–23
Carry out the recorded arithmetic or equality steps; inspect the exact commands for their direction and premises.
- L23
simp
06Use earlier factsL24–24
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L24
exact hd_right_right_witness_left
07Establish hiL25–31
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply prime field inverse exists.
08Separate the logical casesL32–32
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L32
cases hi
09Establish hcL33–34
Establish this local claim before using it. It is not an additional assumption.
10Separate the logical casesL35–37
11Establish hsL38–47
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply prime field polynomial scale exists.
- L38
have hs : ∃ bb. ∃ bc. FpPolyScale(p,x1,ab,ac,bb,bc,L)Definitions: FpPolyScale(p,x1,ab,ac,bb,bc,L)Original native command in the exact edition - L39
specialize prime_field_polynomial_scale_exists (p) - L40
specialize prime_field_polynomial_scale_exists (x1) - L41
specialize prime_field_polynomial_scale_exists (ab) - L42
specialize prime_field_polynomial_scale_exists (ac) - L43
specialize prime_field_polynomial_scale_exists (L) - L44
apply prime_field_polynomial_scale_exists - L45
intro hz - L46
specialize prime_nonzero (p) - L47
apply prime_nonzero
12Use earlier factsL48–51
13Separate the logical casesL52–53
14Construct an explicit witnessL54–56
15Separate the logical casesL57–57
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L57
split
16Fix variables and assumptionsL58–58
Work with arbitrary variables or the premises of the current implication.
- L58
intro hz
17Use earlier factsL59–60
18Calculate and transport equalitiesL61–62
19Use earlier factsL63–64
20Separate the logical casesL65–65
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L65
split
21Construct an explicit witnessL66–66
Supply the displayed value, then prove that it has the required property.
- L66
exists x
22Separate the logical casesL67–67
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L67
split
Original defined command ledger · 70 lines
- 0001
intro p - 0002
intro ab - 0003
intro ac - 0004
intro L - 0005
intro d - 0006
intro hp - 0007
intro hd - 0008
cases hd - 0009
cases hd_right - 0010
cases hd_right_right - 0011
cases hd_right_right_witness - 0012
have ha : Lt(x,p) - 0013
specialize matrix_rank_bounded_prefix_value (ab) - 0014
specialize matrix_rank_bounded_prefix_value (ac) - 0015
specialize matrix_rank_bounded_prefix_value (L) - 0016
specialize matrix_rank_bounded_prefix_value (p) - 0017
specialize matrix_rank_bounded_prefix_value (0) - 0018
specialize matrix_rank_bounded_prefix_value (x) - 0019
apply matrix_rank_bounded_prefix_value - 0020
exact hd_right_left - 0021
rewrite hd_left - 0022
exists d - 0023
simp - 0024
exact hd_right_right_witness_left - 0025
have hi : ∃ k. FpInv(p,x,k) - 0026
specialize prime_field_inverse_exists (p) - 0027
specialize prime_field_inverse_exists (x) - 0028
apply prime_field_inverse_exists - 0029
exact hp - 0030
exact ha - 0031
exact hd_right_right_witness_right - 0032
cases hi - 0033
have hc : FpInv(p,x,x1) - 0034
exact hi_witness - 0035
cases hc - 0036
cases hc_right - 0037
cases hc_right_right - 0038
have hs : ∃ bb. ∃ bc. FpPolyScale(p,x1,ab,ac,bb,bc,L) - 0039
specialize prime_field_polynomial_scale_exists (p) - 0040
specialize prime_field_polynomial_scale_exists (x1) - 0041
specialize prime_field_polynomial_scale_exists (ab) - 0042
specialize prime_field_polynomial_scale_exists (ac) - 0043
specialize prime_field_polynomial_scale_exists (L) - 0044
apply prime_field_polynomial_scale_exists - 0045
intro hz - 0046
specialize prime_nonzero (p) - 0047
apply prime_nonzero - 0048
exact hp - 0049
exact hz - 0050
exact hc_right_right_left - 0051
exact hd_right_left - 0052
cases hs - 0053
cases hs_witness - 0054
exists x1 - 0055
exists x2 - 0056
exists x3 - 0057
split - 0058
intro hz - 0059
specialize succ_ne_zero (d) - 0060
apply succ_ne_zero - 0061
trans L - 0062
symm - 0063
exact hd_left - 0064
exact hz - 0065
split - 0066
exists x - 0067
split - 0068
exact hd_right_right_witness_left - 0069
exact hi_witness - 0070
exact hs_witness_witness