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. ∀ b. ∀ c. ∀ L. BetaPrefixInto(b,c,L,p) → ∃ x. ∃ y. ∃ z. ∃ n. FpPolynomialTrim(p,b,c,L,x,y,z,n) ∧ (∀ m. ∀ k. ∀ i. ∀ j. FpPolynomialTrim(p,b,c,L,m,k,i,j) → x = m ∧ (n = j ∧ (∀ u. ∀ v. Lt(u,n) → BetaAt(y,z,u,v) → BetaAt(k,i,u,v))))
Every linked abbreviation expands hygienically to the identical original native formula.
Definition DAG
Actual proof prerequisites
Complete tactic proof in conservative notation
All 74 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 (4)
01Fix variables and assumptionsL1–5
02Establish htL6–12
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply prime field polynomial trim exists.
- L6
have ht : ∃ t. ∃ d. ∃ e. ∃ M. FpPolynomialTrim(p,b,c,L,t,d,e,M)Definitions: FpPolynomialTrim(p,b,c,L,t,d,e,M)Original native command in the exact edition - L7
specialize prime_field_polynomial_trim_exists (p) - L8
specialize prime_field_polynomial_trim_exists (b) - L9
specialize prime_field_polynomial_trim_exists (c) - L10
specialize prime_field_polynomial_trim_exists (L) - L11
apply prime_field_polynomial_trim_exists - L12
exact hc
03Separate the logical casesL13–16
04Construct an explicit witnessL17–20
05Separate the logical casesL21–21
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L21
split
06Use earlier factsL22–22
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L22
exact ht_witness_witness_witness_witness
07Fix variables and assumptionsL23–27
08Separate the logical casesL28–28
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L28
split
09Use earlier factsL29–38
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L29
specialize prime_field_polynomial_trim_removed_count_unique (p) - L30
specialize prime_field_polynomial_trim_removed_count_unique (b) - L31
specialize prime_field_polynomial_trim_removed_count_unique (c) - L32
specialize prime_field_polynomial_trim_removed_count_unique (L) - L33
specialize prime_field_polynomial_trim_removed_count_unique (x) - L34
specialize prime_field_polynomial_trim_removed_count_unique (x1) - L35
specialize prime_field_polynomial_trim_removed_count_unique (x2) - L36
specialize prime_field_polynomial_trim_removed_count_unique (x3) - L37
specialize prime_field_polynomial_trim_removed_count_unique (u) - L38
specialize prime_field_polynomial_trim_removed_count_unique (f)
10Use earlier factsL39–43
Instantiate or apply named facts and discharge the corresponding proof obligations.
11Separate the logical casesL44–44
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L44
split
12Use earlier factsL45–54
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L45
specialize prime_field_polynomial_trim_retained_length_unique (p) - L46
specialize prime_field_polynomial_trim_retained_length_unique (b) - L47
specialize prime_field_polynomial_trim_retained_length_unique (c) - L48
specialize prime_field_polynomial_trim_retained_length_unique (L) - L49
specialize prime_field_polynomial_trim_retained_length_unique (x) - L50
specialize prime_field_polynomial_trim_retained_length_unique (x1) - L51
specialize prime_field_polynomial_trim_retained_length_unique (x2) - L52
specialize prime_field_polynomial_trim_retained_length_unique (x3) - L53
specialize prime_field_polynomial_trim_retained_length_unique (u) - L54
specialize prime_field_polynomial_trim_retained_length_unique (f)
13Use earlier factsL55–64
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L55
specialize prime_field_polynomial_trim_retained_length_unique (g) - L56
specialize prime_field_polynomial_trim_retained_length_unique (N) - L57
apply prime_field_polynomial_trim_retained_length_unique - L58
exact ht_witness_witness_witness_witness - L59
exact hk - L60
specialize prime_field_polynomial_trim_output_equal (p) - L61
specialize prime_field_polynomial_trim_output_equal (b) - L62
specialize prime_field_polynomial_trim_output_equal (c) - L63
specialize prime_field_polynomial_trim_output_equal (L) - L64
specialize prime_field_polynomial_trim_output_equal (x)
14Use earlier factsL65–74
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L65
specialize prime_field_polynomial_trim_output_equal (x1) - L66
specialize prime_field_polynomial_trim_output_equal (x2) - L67
specialize prime_field_polynomial_trim_output_equal (x3) - L68
specialize prime_field_polynomial_trim_output_equal (u) - L69
specialize prime_field_polynomial_trim_output_equal (f) - L70
specialize prime_field_polynomial_trim_output_equal (g) - L71
specialize prime_field_polynomial_trim_output_equal (N) - L72
apply prime_field_polynomial_trim_output_equal - L73
exact ht_witness_witness_witness_witness - L74
exact hk
Original defined command ledger · 74 lines
- 0001
intro p - 0002
intro b - 0003
intro c - 0004
intro L - 0005
intro hc - 0006
have ht : ∃ t. ∃ d. ∃ e. ∃ M. FpPolynomialTrim(p,b,c,L,t,d,e,M) - 0007
specialize prime_field_polynomial_trim_exists (p) - 0008
specialize prime_field_polynomial_trim_exists (b) - 0009
specialize prime_field_polynomial_trim_exists (c) - 0010
specialize prime_field_polynomial_trim_exists (L) - 0011
apply prime_field_polynomial_trim_exists - 0012
exact hc - 0013
cases ht - 0014
cases ht_witness - 0015
cases ht_witness_witness - 0016
cases ht_witness_witness_witness - 0017
exists x - 0018
exists x1 - 0019
exists x2 - 0020
exists x3 - 0021
split - 0022
exact ht_witness_witness_witness_witness - 0023
intro u - 0024
intro f - 0025
intro g - 0026
intro N - 0027
intro hk - 0028
split - 0029
specialize prime_field_polynomial_trim_removed_count_unique (p) - 0030
specialize prime_field_polynomial_trim_removed_count_unique (b) - 0031
specialize prime_field_polynomial_trim_removed_count_unique (c) - 0032
specialize prime_field_polynomial_trim_removed_count_unique (L) - 0033
specialize prime_field_polynomial_trim_removed_count_unique (x) - 0034
specialize prime_field_polynomial_trim_removed_count_unique (x1) - 0035
specialize prime_field_polynomial_trim_removed_count_unique (x2) - 0036
specialize prime_field_polynomial_trim_removed_count_unique (x3) - 0037
specialize prime_field_polynomial_trim_removed_count_unique (u) - 0038
specialize prime_field_polynomial_trim_removed_count_unique (f) - 0039
specialize prime_field_polynomial_trim_removed_count_unique (g) - 0040
specialize prime_field_polynomial_trim_removed_count_unique (N) - 0041
apply prime_field_polynomial_trim_removed_count_unique - 0042
exact ht_witness_witness_witness_witness - 0043
exact hk - 0044
split - 0045
specialize prime_field_polynomial_trim_retained_length_unique (p) - 0046
specialize prime_field_polynomial_trim_retained_length_unique (b) - 0047
specialize prime_field_polynomial_trim_retained_length_unique (c) - 0048
specialize prime_field_polynomial_trim_retained_length_unique (L) - 0049
specialize prime_field_polynomial_trim_retained_length_unique (x) - 0050
specialize prime_field_polynomial_trim_retained_length_unique (x1) - 0051
specialize prime_field_polynomial_trim_retained_length_unique (x2) - 0052
specialize prime_field_polynomial_trim_retained_length_unique (x3) - 0053
specialize prime_field_polynomial_trim_retained_length_unique (u) - 0054
specialize prime_field_polynomial_trim_retained_length_unique (f) - 0055
specialize prime_field_polynomial_trim_retained_length_unique (g) - 0056
specialize prime_field_polynomial_trim_retained_length_unique (N) - 0057
apply prime_field_polynomial_trim_retained_length_unique - 0058
exact ht_witness_witness_witness_witness - 0059
exact hk - 0060
specialize prime_field_polynomial_trim_output_equal (p) - 0061
specialize prime_field_polynomial_trim_output_equal (b) - 0062
specialize prime_field_polynomial_trim_output_equal (c) - 0063
specialize prime_field_polynomial_trim_output_equal (L) - 0064
specialize prime_field_polynomial_trim_output_equal (x) - 0065
specialize prime_field_polynomial_trim_output_equal (x1) - 0066
specialize prime_field_polynomial_trim_output_equal (x2) - 0067
specialize prime_field_polynomial_trim_output_equal (x3) - 0068
specialize prime_field_polynomial_trim_output_equal (u) - 0069
specialize prime_field_polynomial_trim_output_equal (f) - 0070
specialize prime_field_polynomial_trim_output_equal (g) - 0071
specialize prime_field_polynomial_trim_output_equal (N) - 0072
apply prime_field_polynomial_trim_output_equal - 0073
exact ht_witness_witness_witness_witness - 0074
exact hk