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. ∀ k. ∀ ab. ∀ ac. ∀ L. ∀ bb. ∀ bc. ∀ M. ∀ sb. ∀ sc. ∀ i. ∀ j. ∀ t. ∀ r. FpPolyScale(p,k,bb,bc,sb,sc,M) → PolynomialDiagonalTerm(ab,ac,L,bb,bc,M,i,j,t) → PolynomialDiagonalTerm(ab,ac,L,sb,sc,M,i,j,r) → ModEq(p,k · t,r)
Every linked abbreviation expands hygienically to the identical original native formula.
Definition DAG
Actual proof prerequisites
Complete tactic proof in conservative notation
All 81 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–17
03Separate the logical casesL18–27
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
04Separate the logical casesL28–29
05Establish hindexL30–39
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply add left cancel.
- L30
have hindex : x=x3 - L31
specialize add_left_cancel (j) - L32
specialize add_left_cancel (x) - L33
specialize add_left_cancel (x3) - L34
apply add_left_cancel - L35
trans i - L36
exact ht_witness_witness_witness_left - L37
symm - L38
exact hr_witness_witness_witness_left - L39
rewrite hindex at ht_witness_witness_witness_right_right_left
06Calculate and transport equalitiesL40–42
Carry out the recorded arithmetic or equality steps; inspect the exact commands for their direction and premises.
07Establish hleftL43–52
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply polynomial zero extended entry functional.
- L43
have hleft : x1=x4 - L44
specialize polynomial_zero_extended_entry_functional (ab) - L45
specialize polynomial_zero_extended_entry_functional (ac) - L46
specialize polynomial_zero_extended_entry_functional (L) - L47
specialize polynomial_zero_extended_entry_functional (j) - L48
specialize polynomial_zero_extended_entry_functional (x1) - L49
specialize polynomial_zero_extended_entry_functional (x4) - L50
apply polynomial_zero_extended_entry_functional - L51
exact ht_witness_witness_witness_right_left - L52
exact hr_witness_witness_witness_right_left
08Establish hscaleL53–62
Establish this local claim before using it. It is not an additional assumption.
- L53
have hscale : ModEq(p,k · x2,x5)Definitions: ModEq(p,k · x2,x5)Original native command in the exact edition - L54
specialize polynomial_zero_extended_scale_congruent (p) - L55
specialize polynomial_zero_extended_scale_congruent (k) - L56
specialize polynomial_zero_extended_scale_congruent (bb) - L57
specialize polynomial_zero_extended_scale_congruent (bc) - L58
specialize polynomial_zero_extended_scale_congruent (sb) - L59
specialize polynomial_zero_extended_scale_congruent (sc) - L60
specialize polynomial_zero_extended_scale_congruent (M) - L61
specialize polynomial_zero_extended_scale_congruent (x3) - L62
specialize polynomial_zero_extended_scale_congruent (x2)
09Use earlier factsL63–67
Instantiate or apply named facts and discharge the corresponding proof obligations.
10Establish hmL68–74
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply mod eq mul left.
- L68
have hm : ModEq(p,x4 · (k · x2),x4 · x5)Definitions: ModEq(p,x4 · (k · x2),x4 · x5)Original native command in the exact edition - L69
specialize mod_eq_mul_left (p) - L70
specialize mod_eq_mul_left (k*x2) - L71
specialize mod_eq_mul_left (x5) - L72
specialize mod_eq_mul_left (x4) - L73
apply mod_eq_mul_left - L74
exact hscale
11Establish hshuffleL75–81
Establish this local claim before using it. It is not an additional assumption.
Original defined command ledger · 81 lines
- 0001
intro p - 0002
intro k - 0003
intro ab - 0004
intro ac - 0005
intro L - 0006
intro bb - 0007
intro bc - 0008
intro M - 0009
intro sb - 0010
intro sc - 0011
intro i - 0012
intro j - 0013
intro t - 0014
intro r - 0015
intro hs - 0016
intro ht - 0017
intro hr - 0018
cases ht - 0019
cases ht_witness - 0020
cases ht_witness_witness - 0021
cases ht_witness_witness_witness - 0022
cases ht_witness_witness_witness_right - 0023
cases ht_witness_witness_witness_right_right - 0024
cases hr - 0025
cases hr_witness - 0026
cases hr_witness_witness - 0027
cases hr_witness_witness_witness - 0028
cases hr_witness_witness_witness_right - 0029
cases hr_witness_witness_witness_right_right - 0030
have hindex : x=x3 - 0031
specialize add_left_cancel (j) - 0032
specialize add_left_cancel (x) - 0033
specialize add_left_cancel (x3) - 0034
apply add_left_cancel - 0035
trans i - 0036
exact ht_witness_witness_witness_left - 0037
symm - 0038
exact hr_witness_witness_witness_left - 0039
rewrite hindex at ht_witness_witness_witness_right_right_left - 0040
rewrite hindex at ht_witness_witness_witness_right_right_left - 0041
rewrite hindex at ht_witness_witness_witness_right_right_left - 0042
rewrite hindex at ht_witness_witness_witness_right_right_left - 0043
have hleft : x1=x4 - 0044
specialize polynomial_zero_extended_entry_functional (ab) - 0045
specialize polynomial_zero_extended_entry_functional (ac) - 0046
specialize polynomial_zero_extended_entry_functional (L) - 0047
specialize polynomial_zero_extended_entry_functional (j) - 0048
specialize polynomial_zero_extended_entry_functional (x1) - 0049
specialize polynomial_zero_extended_entry_functional (x4) - 0050
apply polynomial_zero_extended_entry_functional - 0051
exact ht_witness_witness_witness_right_left - 0052
exact hr_witness_witness_witness_right_left - 0053
have hscale : ModEq(p,k · x2,x5) - 0054
specialize polynomial_zero_extended_scale_congruent (p) - 0055
specialize polynomial_zero_extended_scale_congruent (k) - 0056
specialize polynomial_zero_extended_scale_congruent (bb) - 0057
specialize polynomial_zero_extended_scale_congruent (bc) - 0058
specialize polynomial_zero_extended_scale_congruent (sb) - 0059
specialize polynomial_zero_extended_scale_congruent (sc) - 0060
specialize polynomial_zero_extended_scale_congruent (M) - 0061
specialize polynomial_zero_extended_scale_congruent (x3) - 0062
specialize polynomial_zero_extended_scale_congruent (x2) - 0063
specialize polynomial_zero_extended_scale_congruent (x5) - 0064
apply polynomial_zero_extended_scale_congruent - 0065
exact hs - 0066
exact ht_witness_witness_witness_right_right_left - 0067
exact hr_witness_witness_witness_right_right_left - 0068
have hm : ModEq(p,x4 · (k · x2),x4 · x5) - 0069
specialize mod_eq_mul_left (p) - 0070
specialize mod_eq_mul_left (k*x2) - 0071
specialize mod_eq_mul_left (x5) - 0072
specialize mod_eq_mul_left (x4) - 0073
apply mod_eq_mul_left - 0074
exact hscale - 0075
have hshuffle : k*(x1*x2)=x4*(k*x2) - 0076
rewrite hleft - 0077
simp [mul_assoc,mul_comm] - 0078
rewrite ht_witness_witness_witness_right_right_right - 0079
rewrite hr_witness_witness_witness_right_right_right - 0080
rewrite hshuffle - 0081
exact hm