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. ∀ gb. ∀ gc. ∀ G. ∀ hb. ∀ hc. ∀ H. Prime(p) → FpPolynomialZeroOrMonic(p,gb,gc,G) → FpPolynomialZeroOrMonic(p,hb,hc,H) → FpPolynomialRightDivides(p,gb,gc,G,hb,hc,H) → FpPolynomialRightDivides(p,hb,hc,H,gb,gc,G) → PolynomialEquivalent(gb,gc,G,hb,hc,H)
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.
Named ingredients (2)
01Fix variables and assumptionsL1–10
02Fix variables and assumptionsL11–12
03Separate the logical casesL13–13
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L13
cases hg
04Calculate and transport equalitiesL14–15
05Use earlier factsL16–25
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L16
specialize prime_field_polynomial_equivalent_symmetric (hb) - L17
specialize prime_field_polynomial_equivalent_symmetric (hc) - L18
specialize prime_field_polynomial_equivalent_symmetric (H) - L19
specialize prime_field_polynomial_equivalent_symmetric (gb) - L20
specialize prime_field_polynomial_equivalent_symmetric (gc) - L21
specialize prime_field_polynomial_equivalent_symmetric (0) - L22
apply prime_field_polynomial_equivalent_symmetric - L23
specialize prime_field_polynomial_empty_right_divisor_implies_equivalent_zero (p) - L24
specialize prime_field_polynomial_empty_right_divisor_implies_equivalent_zero (gb) - L25
specialize prime_field_polynomial_empty_right_divisor_implies_equivalent_zero (gc)
06Use earlier factsL26–29
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L26
specialize prime_field_polynomial_empty_right_divisor_implies_equivalent_zero (hb) - L27
specialize prime_field_polynomial_empty_right_divisor_implies_equivalent_zero (hc) - L28
specialize prime_field_polynomial_empty_right_divisor_implies_equivalent_zero (H) - L29
apply prime_field_polynomial_empty_right_divisor_implies_equivalent_zero
07Establish hcopyL30–38
Establish this local claim before using it. It is not an additional assumption.
- L30
have hcopy : FpPolynomialRightDivides(p,gb,gc,G,hb,hc,H)Definitions: FpPolynomialRightDivides(p,gb,gc,G,hb,hc,H)Original native command in the exact edition - L31
exact hgh - L32
rewrite hg_left at hcopy - L33
rewrite hg_left at hcopy - L34
rewrite hg_left at hcopy - L35
rewrite hg_left at hcopy - L36
rewrite hg_left at hcopy - L37
rewrite hg_left at hcopy - L38
exact hcopy
08Separate the logical casesL39–39
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L39
cases hh
09Calculate and transport equalitiesL40–41
10Use earlier factsL42–48
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L42
specialize prime_field_polynomial_empty_right_divisor_implies_equivalent_zero (p) - L43
specialize prime_field_polynomial_empty_right_divisor_implies_equivalent_zero (hb) - L44
specialize prime_field_polynomial_empty_right_divisor_implies_equivalent_zero (hc) - L45
specialize prime_field_polynomial_empty_right_divisor_implies_equivalent_zero (gb) - L46
specialize prime_field_polynomial_empty_right_divisor_implies_equivalent_zero (gc) - L47
specialize prime_field_polynomial_empty_right_divisor_implies_equivalent_zero (G) - L48
apply prime_field_polynomial_empty_right_divisor_implies_equivalent_zero
11Establish hcopyL49–58
Establish this local claim before using it. It is not an additional assumption.
- L49
have hcopy : FpPolynomialRightDivides(p,hb,hc,H,gb,gc,G)Definitions: FpPolynomialRightDivides(p,hb,hc,H,gb,gc,G)Original native command in the exact edition - L50
exact hhg - L51
rewrite hh_left at hcopy - L52
rewrite hh_left at hcopy - L53
rewrite hh_left at hcopy - L54
rewrite hh_left at hcopy - L55
rewrite hh_left at hcopy - L56
rewrite hh_left at hcopy - L57
exact hcopy - L58
specialize prime_field_polynomial_monic_right_associates_equivalent (p)
12Use earlier factsL59–68
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L59
specialize prime_field_polynomial_monic_right_associates_equivalent (gb) - L60
specialize prime_field_polynomial_monic_right_associates_equivalent (gc) - L61
specialize prime_field_polynomial_monic_right_associates_equivalent (G) - L62
specialize prime_field_polynomial_monic_right_associates_equivalent (hb) - L63
specialize prime_field_polynomial_monic_right_associates_equivalent (hc) - L64
specialize prime_field_polynomial_monic_right_associates_equivalent (H) - L65
apply prime_field_polynomial_monic_right_associates_equivalent - L66
exact hp - L67
exact hg_right - L68
exact hh_right
Original defined command ledger · 70 lines
- 0001
intro p - 0002
intro gb - 0003
intro gc - 0004
intro G - 0005
intro hb - 0006
intro hc - 0007
intro H - 0008
intro hp - 0009
intro hg - 0010
intro hh - 0011
intro hgh - 0012
intro hhg - 0013
cases hg - 0014
rewrite hg_left - 0015
rewrite hg_left - 0016
specialize prime_field_polynomial_equivalent_symmetric (hb) - 0017
specialize prime_field_polynomial_equivalent_symmetric (hc) - 0018
specialize prime_field_polynomial_equivalent_symmetric (H) - 0019
specialize prime_field_polynomial_equivalent_symmetric (gb) - 0020
specialize prime_field_polynomial_equivalent_symmetric (gc) - 0021
specialize prime_field_polynomial_equivalent_symmetric (0) - 0022
apply prime_field_polynomial_equivalent_symmetric - 0023
specialize prime_field_polynomial_empty_right_divisor_implies_equivalent_zero (p) - 0024
specialize prime_field_polynomial_empty_right_divisor_implies_equivalent_zero (gb) - 0025
specialize prime_field_polynomial_empty_right_divisor_implies_equivalent_zero (gc) - 0026
specialize prime_field_polynomial_empty_right_divisor_implies_equivalent_zero (hb) - 0027
specialize prime_field_polynomial_empty_right_divisor_implies_equivalent_zero (hc) - 0028
specialize prime_field_polynomial_empty_right_divisor_implies_equivalent_zero (H) - 0029
apply prime_field_polynomial_empty_right_divisor_implies_equivalent_zero - 0030
have hcopy : FpPolynomialRightDivides(p,gb,gc,G,hb,hc,H) - 0031
exact hgh - 0032
rewrite hg_left at hcopy - 0033
rewrite hg_left at hcopy - 0034
rewrite hg_left at hcopy - 0035
rewrite hg_left at hcopy - 0036
rewrite hg_left at hcopy - 0037
rewrite hg_left at hcopy - 0038
exact hcopy - 0039
cases hh - 0040
rewrite hh_left - 0041
rewrite hh_left - 0042
specialize prime_field_polynomial_empty_right_divisor_implies_equivalent_zero (p) - 0043
specialize prime_field_polynomial_empty_right_divisor_implies_equivalent_zero (hb) - 0044
specialize prime_field_polynomial_empty_right_divisor_implies_equivalent_zero (hc) - 0045
specialize prime_field_polynomial_empty_right_divisor_implies_equivalent_zero (gb) - 0046
specialize prime_field_polynomial_empty_right_divisor_implies_equivalent_zero (gc) - 0047
specialize prime_field_polynomial_empty_right_divisor_implies_equivalent_zero (G) - 0048
apply prime_field_polynomial_empty_right_divisor_implies_equivalent_zero - 0049
have hcopy : FpPolynomialRightDivides(p,hb,hc,H,gb,gc,G) - 0050
exact hhg - 0051
rewrite hh_left at hcopy - 0052
rewrite hh_left at hcopy - 0053
rewrite hh_left at hcopy - 0054
rewrite hh_left at hcopy - 0055
rewrite hh_left at hcopy - 0056
rewrite hh_left at hcopy - 0057
exact hcopy - 0058
specialize prime_field_polynomial_monic_right_associates_equivalent (p) - 0059
specialize prime_field_polynomial_monic_right_associates_equivalent (gb) - 0060
specialize prime_field_polynomial_monic_right_associates_equivalent (gc) - 0061
specialize prime_field_polynomial_monic_right_associates_equivalent (G) - 0062
specialize prime_field_polynomial_monic_right_associates_equivalent (hb) - 0063
specialize prime_field_polynomial_monic_right_associates_equivalent (hc) - 0064
specialize prime_field_polynomial_monic_right_associates_equivalent (H) - 0065
apply prime_field_polynomial_monic_right_associates_equivalent - 0066
exact hp - 0067
exact hg_right - 0068
exact hh_right - 0069
exact hgh - 0070
exact hhg