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. ∀ kb. ∀ kc. ∀ db. ∀ dc. ∀ ab. ∀ ac. ∀ d. ∀ pb. ∀ pc. Prime(p) → FpMonic(p,db,dc,S d) → FpMonic(p,ab,ac,S d) → FpPolyProduct(p,kb,kc,1,db,dc,S d,pb,pc,S d) → PolynomialEquivalent(pb,pc,S d,ab,ac,S d) → PolynomialEquivalent(db,dc,S d,ab,ac,S d)
Every linked abbreviation expands hygienically to the identical original native formula.
Definition DAG
Actual proof prerequisites
Complete tactic proof in conservative notation
All 115 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–15
03Separate the logical casesL16–19
04Establish hkL20–24
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply beta at exists.
- L20
have hk : ∃ k. BetaAt(kb,kc,0,k)Definitions: BetaAt(kb,kc,0,k)Original native command in the exact edition - L21
specialize beta_at_exists (kb) - L22
specialize beta_at_exists (kc) - L23
specialize beta_at_exists (0) - L24
apply beta_at_exists
05Separate the logical casesL25–25
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L25
cases hk
06Establish hpaL26–26
Establish this local claim before using it. It is not an additional assumption.
- L26
have hpa : BetaAt(pb,pc,0,1)Definitions: BetaAt(pb,pc,0,1)Original native command in the exact edition
07Establish hprefixL27–36
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply prime field polynomial equivalent implies equal same length.
- L27
have hprefix : BetaPrefixEqual(ab,ac,pb,pc,S d)Definitions: BetaPrefixEqual(ab,ac,pb,pc,S d)Original native command in the exact edition - L28
specialize prime_field_polynomial_equivalent_implies_equal_same_length (ab) - L29
specialize prime_field_polynomial_equivalent_implies_equal_same_length (ac) - L30
specialize prime_field_polynomial_equivalent_implies_equal_same_length (pb) - L31
specialize prime_field_polynomial_equivalent_implies_equal_same_length (pc) - L32
specialize prime_field_polynomial_equivalent_implies_equal_same_length (S d) - L33
apply prime_field_polynomial_equivalent_implies_equal_same_length - L34
specialize prime_field_polynomial_equivalent_symmetric (pb) - L35
specialize prime_field_polynomial_equivalent_symmetric (pc) - L36
specialize prime_field_polynomial_equivalent_symmetric (S d)
08Use earlier factsL37–44
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L37
specialize prime_field_polynomial_equivalent_symmetric (ab) - L38
specialize prime_field_polynomial_equivalent_symmetric (ac) - L39
specialize prime_field_polynomial_equivalent_symmetric (S d) - L40
apply prime_field_polynomial_equivalent_symmetric - L41
exact he - L42
specialize hprefix (0) - L43
specialize hprefix (1) - L44
apply hprefix
09Construct an explicit witnessL45–45
Supply the displayed value, then prove that it has the required property.
- L45
exists d
10Calculate and transport equalitiesL46–46
Carry out the recorded arithmetic or equality steps; inspect the exact commands for their direction and premises.
- L46
simp
11Use earlier factsL47–47
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L47
exact ha_right_right
12Establish hmL48–57
Establish this local claim before using it. It is not an additional assumption.
- L48
- L49
specialize prime_field_polynomial_convolution_leading_coefficient (p) - L50
specialize prime_field_polynomial_convolution_leading_coefficient (kb) - L51
specialize prime_field_polynomial_convolution_leading_coefficient (kc) - L52
specialize prime_field_polynomial_convolution_leading_coefficient (0) - L53
specialize prime_field_polynomial_convolution_leading_coefficient (db) - L54
specialize prime_field_polynomial_convolution_leading_coefficient (dc) - L55
specialize prime_field_polynomial_convolution_leading_coefficient (d) - L56
specialize prime_field_polynomial_convolution_leading_coefficient (pb) - L57
specialize prime_field_polynomial_convolution_leading_coefficient (pc)
13Use earlier factsL58–66
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L58
specialize prime_field_polynomial_convolution_leading_coefficient (S d) - L59
specialize prime_field_polynomial_convolution_leading_coefficient (x) - L60
specialize prime_field_polynomial_convolution_leading_coefficient (1) - L61
specialize prime_field_polynomial_convolution_leading_coefficient (1) - L62
apply prime_field_polynomial_convolution_leading_coefficient - L63
exact hc - L64
exact hk_witness - L65
exact hd_right_right - L66
exact hpa
14Establish honeL67–76
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply prime field multiply functional.
- L67
have hone : x=1 - L68
specialize prime_field_multiply_functional (p) - L69
specialize prime_field_multiply_functional (x) - L70
specialize prime_field_multiply_functional (1) - L71
specialize prime_field_multiply_functional (x) - L72
specialize prime_field_multiply_functional (1) - L73
apply prime_field_multiply_functional - L74
specialize prime_field_multiply_one_right (p) - L75
specialize prime_field_multiply_one_right (x) - L76
apply prime_field_multiply_one_right
15Use earlier factsL77–77
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L77
exact hp
16Separate the logical casesL78–78
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L78
cases hm
17Use earlier factsL79–80
18Establish hkoneL81–81
Establish this local claim before using it. It is not an additional assumption.
- L81
have hkone : BetaAt(kb,kc,0,1)Definitions: BetaAt(kb,kc,0,1)Original native command in the exact edition
19Establish hcopyL82–91
Establish this local claim before using it. It is not an additional assumption.
- L82
have hcopy : BetaAt(kb,kc,0,x)Definitions: BetaAt(kb,kc,0,x)Original native command in the exact edition - L83
exact hk_witness - L84
rewrite hone at hcopy - L85
rewrite hone at hcopy - L86
exact hcopy - L87
specialize prime_field_polynomial_equivalent_transitive (db) - L88
specialize prime_field_polynomial_equivalent_transitive (dc) - L89
specialize prime_field_polynomial_equivalent_transitive (S d) - L90
specialize prime_field_polynomial_equivalent_transitive (pb) - L91
specialize prime_field_polynomial_equivalent_transitive (pc)
20Use earlier factsL92–101
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L92
specialize prime_field_polynomial_equivalent_transitive (S d) - L93
specialize prime_field_polynomial_equivalent_transitive (ab) - L94
specialize prime_field_polynomial_equivalent_transitive (ac) - L95
specialize prime_field_polynomial_equivalent_transitive (S d) - L96
apply prime_field_polynomial_equivalent_transitive - L97
specialize prime_field_polynomial_equivalent_symmetric (pb) - L98
specialize prime_field_polynomial_equivalent_symmetric (pc) - L99
specialize prime_field_polynomial_equivalent_symmetric (S d) - L100
specialize prime_field_polynomial_equivalent_symmetric (db) - L101
specialize prime_field_polynomial_equivalent_symmetric (dc)
21Use earlier factsL102–111
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L102
specialize prime_field_polynomial_equivalent_symmetric (S d) - L103
apply prime_field_polynomial_equivalent_symmetric - L104
specialize prime_field_polynomial_convolution_left_unit_equivalent (p) - L105
specialize prime_field_polynomial_convolution_left_unit_equivalent (kb) - L106
specialize prime_field_polynomial_convolution_left_unit_equivalent (kc) - L107
specialize prime_field_polynomial_convolution_left_unit_equivalent (db) - L108
specialize prime_field_polynomial_convolution_left_unit_equivalent (dc) - L109
specialize prime_field_polynomial_convolution_left_unit_equivalent (S d) - L110
specialize prime_field_polynomial_convolution_left_unit_equivalent (pb) - L111
specialize prime_field_polynomial_convolution_left_unit_equivalent (pc)
Original defined command ledger · 115 lines
- 0001
intro p - 0002
intro kb - 0003
intro kc - 0004
intro db - 0005
intro dc - 0006
intro ab - 0007
intro ac - 0008
intro d - 0009
intro pb - 0010
intro pc - 0011
intro hp - 0012
intro hd - 0013
intro ha - 0014
intro hc - 0015
intro he - 0016
cases hd - 0017
cases hd_right - 0018
cases ha - 0019
cases ha_right - 0020
have hk : ∃ k. BetaAt(kb,kc,0,k) - 0021
specialize beta_at_exists (kb) - 0022
specialize beta_at_exists (kc) - 0023
specialize beta_at_exists (0) - 0024
apply beta_at_exists - 0025
cases hk - 0026
have hpa : BetaAt(pb,pc,0,1) - 0027
have hprefix : BetaPrefixEqual(ab,ac,pb,pc,S d) - 0028
specialize prime_field_polynomial_equivalent_implies_equal_same_length (ab) - 0029
specialize prime_field_polynomial_equivalent_implies_equal_same_length (ac) - 0030
specialize prime_field_polynomial_equivalent_implies_equal_same_length (pb) - 0031
specialize prime_field_polynomial_equivalent_implies_equal_same_length (pc) - 0032
specialize prime_field_polynomial_equivalent_implies_equal_same_length (S d) - 0033
apply prime_field_polynomial_equivalent_implies_equal_same_length - 0034
specialize prime_field_polynomial_equivalent_symmetric (pb) - 0035
specialize prime_field_polynomial_equivalent_symmetric (pc) - 0036
specialize prime_field_polynomial_equivalent_symmetric (S d) - 0037
specialize prime_field_polynomial_equivalent_symmetric (ab) - 0038
specialize prime_field_polynomial_equivalent_symmetric (ac) - 0039
specialize prime_field_polynomial_equivalent_symmetric (S d) - 0040
apply prime_field_polynomial_equivalent_symmetric - 0041
exact he - 0042
specialize hprefix (0) - 0043
specialize hprefix (1) - 0044
apply hprefix - 0045
exists d - 0046
simp - 0047
exact ha_right_right - 0048
have hm : FpMul(p,x,1,1) - 0049
specialize prime_field_polynomial_convolution_leading_coefficient (p) - 0050
specialize prime_field_polynomial_convolution_leading_coefficient (kb) - 0051
specialize prime_field_polynomial_convolution_leading_coefficient (kc) - 0052
specialize prime_field_polynomial_convolution_leading_coefficient (0) - 0053
specialize prime_field_polynomial_convolution_leading_coefficient (db) - 0054
specialize prime_field_polynomial_convolution_leading_coefficient (dc) - 0055
specialize prime_field_polynomial_convolution_leading_coefficient (d) - 0056
specialize prime_field_polynomial_convolution_leading_coefficient (pb) - 0057
specialize prime_field_polynomial_convolution_leading_coefficient (pc) - 0058
specialize prime_field_polynomial_convolution_leading_coefficient (S d) - 0059
specialize prime_field_polynomial_convolution_leading_coefficient (x) - 0060
specialize prime_field_polynomial_convolution_leading_coefficient (1) - 0061
specialize prime_field_polynomial_convolution_leading_coefficient (1) - 0062
apply prime_field_polynomial_convolution_leading_coefficient - 0063
exact hc - 0064
exact hk_witness - 0065
exact hd_right_right - 0066
exact hpa - 0067
have hone : x=1 - 0068
specialize prime_field_multiply_functional (p) - 0069
specialize prime_field_multiply_functional (x) - 0070
specialize prime_field_multiply_functional (1) - 0071
specialize prime_field_multiply_functional (x) - 0072
specialize prime_field_multiply_functional (1) - 0073
apply prime_field_multiply_functional - 0074
specialize prime_field_multiply_one_right (p) - 0075
specialize prime_field_multiply_one_right (x) - 0076
apply prime_field_multiply_one_right - 0077
exact hp - 0078
cases hm - 0079
exact hm_left - 0080
exact hm - 0081
have hkone : BetaAt(kb,kc,0,1) - 0082
have hcopy : BetaAt(kb,kc,0,x) - 0083
exact hk_witness - 0084
rewrite hone at hcopy - 0085
rewrite hone at hcopy - 0086
exact hcopy - 0087
specialize prime_field_polynomial_equivalent_transitive (db) - 0088
specialize prime_field_polynomial_equivalent_transitive (dc) - 0089
specialize prime_field_polynomial_equivalent_transitive (S d) - 0090
specialize prime_field_polynomial_equivalent_transitive (pb) - 0091
specialize prime_field_polynomial_equivalent_transitive (pc) - 0092
specialize prime_field_polynomial_equivalent_transitive (S d) - 0093
specialize prime_field_polynomial_equivalent_transitive (ab) - 0094
specialize prime_field_polynomial_equivalent_transitive (ac) - 0095
specialize prime_field_polynomial_equivalent_transitive (S d) - 0096
apply prime_field_polynomial_equivalent_transitive - 0097
specialize prime_field_polynomial_equivalent_symmetric (pb) - 0098
specialize prime_field_polynomial_equivalent_symmetric (pc) - 0099
specialize prime_field_polynomial_equivalent_symmetric (S d) - 0100
specialize prime_field_polynomial_equivalent_symmetric (db) - 0101
specialize prime_field_polynomial_equivalent_symmetric (dc) - 0102
specialize prime_field_polynomial_equivalent_symmetric (S d) - 0103
apply prime_field_polynomial_equivalent_symmetric - 0104
specialize prime_field_polynomial_convolution_left_unit_equivalent (p) - 0105
specialize prime_field_polynomial_convolution_left_unit_equivalent (kb) - 0106
specialize prime_field_polynomial_convolution_left_unit_equivalent (kc) - 0107
specialize prime_field_polynomial_convolution_left_unit_equivalent (db) - 0108
specialize prime_field_polynomial_convolution_left_unit_equivalent (dc) - 0109
specialize prime_field_polynomial_convolution_left_unit_equivalent (S d) - 0110
specialize prime_field_polynomial_convolution_left_unit_equivalent (pb) - 0111
specialize prime_field_polynomial_convolution_left_unit_equivalent (pc) - 0112
apply prime_field_polynomial_convolution_left_unit_equivalent - 0113
exact hkone - 0114
exact hc - 0115
exact he