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 products and sums use actual beta-coded coefficients; equality is formal coefficient equivalence, not equality of evaluations or raw codes. The zero gcd is included. Uniqueness is up to formal equivalence, not unique Bézout coefficients. This proves the polynomial gcd component, not G091 irreducible-polynomial existence or arbitrary prime-power-field construction.
Exact theorem in conservative defined notation
∀ p. ∀ db. ∀ dc. ∀ D. ∀ ab. ∀ ac. ∀ L. ∀ eb. ∀ ec. ∀ E. ¬p = 0 → BetaPrefixInto(eb,ec,E,p) → PolynomialEquivalent(db,dc,D,eb,ec,E) → FpPolynomialRightDivides(p,db,dc,D,ab,ac,L) → FpPolynomialRightDivides(p,eb,ec,E,ab,ac,L)
Every linked abbreviation expands hygienically to the identical original native formula.
Definition DAG
Actual proof prerequisites
Complete tactic proof in conservative notation
All 103 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 (1)
01Fix variables and assumptionsL1–10
02Fix variables and assumptionsL11–14
03Separate the logical casesL15–22
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L15
cases hdivides - L16
cases hdivides_right - L17
cases hdivides_right_witness - L18
cases hdivides_right_witness_witness - L19
cases hdivides_right_witness_witness_witness - L20
cases hdivides_right_witness_witness_witness_witness - L21
cases hdivides_right_witness_witness_witness_witness_witness - L22
cases hdivides_right_witness_witness_witness_witness_witness_witness
04Establish hsourceL23–24
Establish this local claim before using it. It is not an additional assumption.
- L23
have hsource : FpPolyProduct(p,x,x1,x2,db,dc,D,x3,x4,x5)Definitions: FpPolyProduct(p,x,x1,x2,db,dc,D,x3,x4,x5)Original native command in the exact edition - L24
exact hdivides_right_witness_witness_witness_witness_witness_witness_left
05Separate the logical casesL25–27
06Establish hnew_lengthL28–31
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply polynomial product length exists.
- L28
have hnew_length : ∃ n. PolynomialProductLength(x2,E,n)Definitions: PolynomialProductLength(x2,E,n)Original native command in the exact edition - L29
specialize polynomial_product_length_exists (x2) - L30
specialize polynomial_product_length_exists (E) - L31
apply polynomial_product_length_exists
07Separate the logical casesL32–32
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L32
cases hnew_length
08Establish hnew_productL33–42
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply prime field polynomial convolution at length exists.
- L33
have hnew_product : ∃ b. ∃ c. FpPolyProduct(p,x,x1,x2,eb,ec,E,b,c,x6)Definitions: FpPolyProduct(p,x,x1,x2,eb,ec,E,b,c,x6)Original native command in the exact edition - L34
specialize prime_field_polynomial_convolution_at_length_exists (p) - L35
specialize prime_field_polynomial_convolution_at_length_exists (x) - L36
specialize prime_field_polynomial_convolution_at_length_exists (x1) - L37
specialize prime_field_polynomial_convolution_at_length_exists (x2) - L38
specialize prime_field_polynomial_convolution_at_length_exists (eb) - L39
specialize prime_field_polynomial_convolution_at_length_exists (ec) - L40
specialize prime_field_polynomial_convolution_at_length_exists (E) - L41
specialize prime_field_polynomial_convolution_at_length_exists (x6) - L42
apply prime_field_polynomial_convolution_at_length_exists
09Use earlier factsL43–46
10Separate the logical casesL47–48
11Use earlier factsL49–58
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L49
specialize prime_field_polynomial_right_divides_from_product (p) - L50
specialize prime_field_polynomial_right_divides_from_product (eb) - L51
specialize prime_field_polynomial_right_divides_from_product (ec) - L52
specialize prime_field_polynomial_right_divides_from_product (E) - L53
specialize prime_field_polynomial_right_divides_from_product (ab) - L54
specialize prime_field_polynomial_right_divides_from_product (ac) - L55
specialize prime_field_polynomial_right_divides_from_product (L) - L56
specialize prime_field_polynomial_right_divides_from_product (x) - L57
specialize prime_field_polynomial_right_divides_from_product (x1) - L58
specialize prime_field_polynomial_right_divides_from_product (x2)
12Use earlier factsL59–68
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L59
specialize prime_field_polynomial_right_divides_from_product (x7) - L60
specialize prime_field_polynomial_right_divides_from_product (x8) - L61
specialize prime_field_polynomial_right_divides_from_product (x6) - L62
apply prime_field_polynomial_right_divides_from_product - L63
exact hdivides_left - L64
exact hnew_product_witness_witness - L65
specialize prime_field_polynomial_equivalent_transitive (x7) - L66
specialize prime_field_polynomial_equivalent_transitive (x8) - L67
specialize prime_field_polynomial_equivalent_transitive (x6) - L68
specialize prime_field_polynomial_equivalent_transitive (x3)
13Use earlier factsL69–78
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L69
specialize prime_field_polynomial_equivalent_transitive (x4) - L70
specialize prime_field_polynomial_equivalent_transitive (x5) - L71
specialize prime_field_polynomial_equivalent_transitive (ab) - L72
specialize prime_field_polynomial_equivalent_transitive (ac) - L73
specialize prime_field_polynomial_equivalent_transitive (L) - L74
apply prime_field_polynomial_equivalent_transitive - L75
specialize prime_field_polynomial_equivalent_symmetric (x3) - L76
specialize prime_field_polynomial_equivalent_symmetric (x4) - L77
specialize prime_field_polynomial_equivalent_symmetric (x5) - L78
specialize prime_field_polynomial_equivalent_symmetric (x7)
14Use earlier factsL79–88
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L79
specialize prime_field_polynomial_equivalent_symmetric (x8) - L80
specialize prime_field_polynomial_equivalent_symmetric (x6) - L81
apply prime_field_polynomial_equivalent_symmetric - L82
specialize prime_field_polynomial_convolution_equivalent_congruent_right (p) - L83
specialize prime_field_polynomial_convolution_equivalent_congruent_right (x) - L84
specialize prime_field_polynomial_convolution_equivalent_congruent_right (x1) - L85
specialize prime_field_polynomial_convolution_equivalent_congruent_right (x2) - L86
specialize prime_field_polynomial_convolution_equivalent_congruent_right (db) - L87
specialize prime_field_polynomial_convolution_equivalent_congruent_right (dc) - L88
specialize prime_field_polynomial_convolution_equivalent_congruent_right (D)
15Use earlier factsL89–98
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L89
specialize prime_field_polynomial_convolution_equivalent_congruent_right (x3) - L90
specialize prime_field_polynomial_convolution_equivalent_congruent_right (x4) - L91
specialize prime_field_polynomial_convolution_equivalent_congruent_right (x5) - L92
specialize prime_field_polynomial_convolution_equivalent_congruent_right (eb) - L93
specialize prime_field_polynomial_convolution_equivalent_congruent_right (ec) - L94
specialize prime_field_polynomial_convolution_equivalent_congruent_right (E) - L95
specialize prime_field_polynomial_convolution_equivalent_congruent_right (x7) - L96
specialize prime_field_polynomial_convolution_equivalent_congruent_right (x8) - L97
specialize prime_field_polynomial_convolution_equivalent_congruent_right (x6) - L98
apply prime_field_polynomial_convolution_equivalent_congruent_right
16Use earlier factsL99–103
Instantiate or apply named facts and discharge the corresponding proof obligations.
Original defined command ledger · 103 lines
- 0001
intro p - 0002
intro db - 0003
intro dc - 0004
intro D - 0005
intro ab - 0006
intro ac - 0007
intro L - 0008
intro eb - 0009
intro ec - 0010
intro E - 0011
intro hp0 - 0012
intro hE - 0013
intro hequivalent - 0014
intro hdivides - 0015
cases hdivides - 0016
cases hdivides_right - 0017
cases hdivides_right_witness - 0018
cases hdivides_right_witness_witness - 0019
cases hdivides_right_witness_witness_witness - 0020
cases hdivides_right_witness_witness_witness_witness - 0021
cases hdivides_right_witness_witness_witness_witness_witness - 0022
cases hdivides_right_witness_witness_witness_witness_witness_witness - 0023
have hsource : FpPolyProduct(p,x,x1,x2,db,dc,D,x3,x4,x5) - 0024
exact hdivides_right_witness_witness_witness_witness_witness_witness_left - 0025
cases hsource - 0026
cases hsource_right - 0027
cases hsource_right_right - 0028
have hnew_length : ∃ n. PolynomialProductLength(x2,E,n) - 0029
specialize polynomial_product_length_exists (x2) - 0030
specialize polynomial_product_length_exists (E) - 0031
apply polynomial_product_length_exists - 0032
cases hnew_length - 0033
have hnew_product : ∃ b. ∃ c. FpPolyProduct(p,x,x1,x2,eb,ec,E,b,c,x6) - 0034
specialize prime_field_polynomial_convolution_at_length_exists (p) - 0035
specialize prime_field_polynomial_convolution_at_length_exists (x) - 0036
specialize prime_field_polynomial_convolution_at_length_exists (x1) - 0037
specialize prime_field_polynomial_convolution_at_length_exists (x2) - 0038
specialize prime_field_polynomial_convolution_at_length_exists (eb) - 0039
specialize prime_field_polynomial_convolution_at_length_exists (ec) - 0040
specialize prime_field_polynomial_convolution_at_length_exists (E) - 0041
specialize prime_field_polynomial_convolution_at_length_exists (x6) - 0042
apply prime_field_polynomial_convolution_at_length_exists - 0043
exact hp0 - 0044
exact hsource_left - 0045
exact hE - 0046
exact hnew_length_witness - 0047
cases hnew_product - 0048
cases hnew_product_witness - 0049
specialize prime_field_polynomial_right_divides_from_product (p) - 0050
specialize prime_field_polynomial_right_divides_from_product (eb) - 0051
specialize prime_field_polynomial_right_divides_from_product (ec) - 0052
specialize prime_field_polynomial_right_divides_from_product (E) - 0053
specialize prime_field_polynomial_right_divides_from_product (ab) - 0054
specialize prime_field_polynomial_right_divides_from_product (ac) - 0055
specialize prime_field_polynomial_right_divides_from_product (L) - 0056
specialize prime_field_polynomial_right_divides_from_product (x) - 0057
specialize prime_field_polynomial_right_divides_from_product (x1) - 0058
specialize prime_field_polynomial_right_divides_from_product (x2) - 0059
specialize prime_field_polynomial_right_divides_from_product (x7) - 0060
specialize prime_field_polynomial_right_divides_from_product (x8) - 0061
specialize prime_field_polynomial_right_divides_from_product (x6) - 0062
apply prime_field_polynomial_right_divides_from_product - 0063
exact hdivides_left - 0064
exact hnew_product_witness_witness - 0065
specialize prime_field_polynomial_equivalent_transitive (x7) - 0066
specialize prime_field_polynomial_equivalent_transitive (x8) - 0067
specialize prime_field_polynomial_equivalent_transitive (x6) - 0068
specialize prime_field_polynomial_equivalent_transitive (x3) - 0069
specialize prime_field_polynomial_equivalent_transitive (x4) - 0070
specialize prime_field_polynomial_equivalent_transitive (x5) - 0071
specialize prime_field_polynomial_equivalent_transitive (ab) - 0072
specialize prime_field_polynomial_equivalent_transitive (ac) - 0073
specialize prime_field_polynomial_equivalent_transitive (L) - 0074
apply prime_field_polynomial_equivalent_transitive - 0075
specialize prime_field_polynomial_equivalent_symmetric (x3) - 0076
specialize prime_field_polynomial_equivalent_symmetric (x4) - 0077
specialize prime_field_polynomial_equivalent_symmetric (x5) - 0078
specialize prime_field_polynomial_equivalent_symmetric (x7) - 0079
specialize prime_field_polynomial_equivalent_symmetric (x8) - 0080
specialize prime_field_polynomial_equivalent_symmetric (x6) - 0081
apply prime_field_polynomial_equivalent_symmetric - 0082
specialize prime_field_polynomial_convolution_equivalent_congruent_right (p) - 0083
specialize prime_field_polynomial_convolution_equivalent_congruent_right (x) - 0084
specialize prime_field_polynomial_convolution_equivalent_congruent_right (x1) - 0085
specialize prime_field_polynomial_convolution_equivalent_congruent_right (x2) - 0086
specialize prime_field_polynomial_convolution_equivalent_congruent_right (db) - 0087
specialize prime_field_polynomial_convolution_equivalent_congruent_right (dc) - 0088
specialize prime_field_polynomial_convolution_equivalent_congruent_right (D) - 0089
specialize prime_field_polynomial_convolution_equivalent_congruent_right (x3) - 0090
specialize prime_field_polynomial_convolution_equivalent_congruent_right (x4) - 0091
specialize prime_field_polynomial_convolution_equivalent_congruent_right (x5) - 0092
specialize prime_field_polynomial_convolution_equivalent_congruent_right (eb) - 0093
specialize prime_field_polynomial_convolution_equivalent_congruent_right (ec) - 0094
specialize prime_field_polynomial_convolution_equivalent_congruent_right (E) - 0095
specialize prime_field_polynomial_convolution_equivalent_congruent_right (x7) - 0096
specialize prime_field_polynomial_convolution_equivalent_congruent_right (x8) - 0097
specialize prime_field_polynomial_convolution_equivalent_congruent_right (x6) - 0098
apply prime_field_polynomial_convolution_equivalent_congruent_right - 0099
exact hp0 - 0100
exact hequivalent - 0101
exact hdivides_right_witness_witness_witness_witness_witness_witness_left - 0102
exact hnew_product_witness_witness - 0103
exact hdivides_right_witness_witness_witness_witness_witness_witness_right