Current library: Alpha v34, 4,223 checked-use theorems; Stable remains 432. Historical first admissions, original proof editions, and non-admitted aliases are preserved.
This checkpoint constructs prime-order fields (k=1), with genuine finite arithmetic tables, cardinality, and characteristic. Inversion is proved only for nonzero elements; the table's zero entry is a zero-to-zero convention. G091 for every prime power p^k, with an irreducible polynomial of degree k, remains open. No extension-field construction or G091 closure is claimed.
Exact theorem in conservative defined notation
∀ p. ∀ a. ∀ b. ∀ c. ∀ x. ∀ y. ∀ u. ∀ v. FpMul(p,a,b,x) → FpMul(p,x,c,u) → FpMul(p,b,c,y) → FpMul(p,a,y,v) → 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 78 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–12
03Separate the logical casesL13–22
04Separate the logical casesL23–24
05Establish hlL25–25
Establish this local claim before using it. It is not an additional assumption.
- L25
have hl : CanonicalModularResidue(p,a · b · c,u)Definitions: CanonicalModularResidue(p,a · b · c,u)Original native command in the exact edition
06Separate the logical casesL26–26
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L26
split
07Use earlier factsL27–36
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L27
exact hleft_right_right_left - L28
specialize mod_eq_trans (p) - L29
specialize mod_eq_trans ((a * b) * c) - L30
specialize mod_eq_trans (x * c) - L31
specialize mod_eq_trans (u) - L32
apply mod_eq_trans - L33
specialize mod_eq_mul (p) - L34
specialize mod_eq_mul (a * b) - L35
specialize mod_eq_mul (x) - L36
specialize mod_eq_mul (c)
08Use earlier factsL37–43
09Establish hrL44–44
Establish this local claim before using it. It is not an additional assumption.
- L44
have hr : CanonicalModularResidue(p,a · (b · c),v)Definitions: CanonicalModularResidue(p,a · (b · c),v)Original native command in the exact edition
10Separate the logical casesL45–45
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L45
split
11Use earlier factsL46–55
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L46
exact hright_right_right_left - L47
specialize mod_eq_trans (p) - L48
specialize mod_eq_trans (a * (b * c)) - L49
specialize mod_eq_trans (a * y) - L50
specialize mod_eq_trans (v) - L51
apply mod_eq_trans - L52
specialize mod_eq_mul (p) - L53
specialize mod_eq_mul (a) - L54
specialize mod_eq_mul (a) - L55
specialize mod_eq_mul (b * c)
12Use earlier factsL56–65
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L56
specialize mod_eq_mul (y) - L57
apply mod_eq_mul - L58
specialize mod_eq_refl (p) - L59
specialize mod_eq_refl (a) - L60
apply mod_eq_refl - L61
exact hsecond_right_right_right - L62
exact hright_right_right_right - L63
specialize binary_canonical_residue_functional (p) - L64
specialize binary_canonical_residue_functional ((a * b) * c) - L65
specialize binary_canonical_residue_functional (u)
13Use earlier factsL66–75
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L66
specialize binary_canonical_residue_functional (v) - L67
apply binary_canonical_residue_functional - L68
exact hl - L69
specialize prime_field_residue_input_equal (p) - L70
specialize prime_field_residue_input_equal ((a * b) * c) - L71
specialize prime_field_residue_input_equal (a * (b * c)) - L72
specialize prime_field_residue_input_equal (v) - L73
apply prime_field_residue_input_equal - L74
specialize mul_assoc (a) - L75
specialize mul_assoc (b)
Original defined command ledger · 78 lines
- 0001
intro p - 0002
intro a - 0003
intro b - 0004
intro c - 0005
intro x - 0006
intro y - 0007
intro u - 0008
intro v - 0009
intro hfirst - 0010
intro hleft - 0011
intro hsecond - 0012
intro hright - 0013
cases hfirst - 0014
cases hfirst_right - 0015
cases hfirst_right_right - 0016
cases hleft - 0017
cases hleft_right - 0018
cases hleft_right_right - 0019
cases hsecond - 0020
cases hsecond_right - 0021
cases hsecond_right_right - 0022
cases hright - 0023
cases hright_right - 0024
cases hright_right_right - 0025
have hl : CanonicalModularResidue(p,a · b · c,u) - 0026
split - 0027
exact hleft_right_right_left - 0028
specialize mod_eq_trans (p) - 0029
specialize mod_eq_trans ((a * b) * c) - 0030
specialize mod_eq_trans (x * c) - 0031
specialize mod_eq_trans (u) - 0032
apply mod_eq_trans - 0033
specialize mod_eq_mul (p) - 0034
specialize mod_eq_mul (a * b) - 0035
specialize mod_eq_mul (x) - 0036
specialize mod_eq_mul (c) - 0037
specialize mod_eq_mul (c) - 0038
apply mod_eq_mul - 0039
exact hfirst_right_right_right - 0040
specialize mod_eq_refl (p) - 0041
specialize mod_eq_refl (c) - 0042
apply mod_eq_refl - 0043
exact hleft_right_right_right - 0044
have hr : CanonicalModularResidue(p,a · (b · c),v) - 0045
split - 0046
exact hright_right_right_left - 0047
specialize mod_eq_trans (p) - 0048
specialize mod_eq_trans (a * (b * c)) - 0049
specialize mod_eq_trans (a * y) - 0050
specialize mod_eq_trans (v) - 0051
apply mod_eq_trans - 0052
specialize mod_eq_mul (p) - 0053
specialize mod_eq_mul (a) - 0054
specialize mod_eq_mul (a) - 0055
specialize mod_eq_mul (b * c) - 0056
specialize mod_eq_mul (y) - 0057
apply mod_eq_mul - 0058
specialize mod_eq_refl (p) - 0059
specialize mod_eq_refl (a) - 0060
apply mod_eq_refl - 0061
exact hsecond_right_right_right - 0062
exact hright_right_right_right - 0063
specialize binary_canonical_residue_functional (p) - 0064
specialize binary_canonical_residue_functional ((a * b) * c) - 0065
specialize binary_canonical_residue_functional (u) - 0066
specialize binary_canonical_residue_functional (v) - 0067
apply binary_canonical_residue_functional - 0068
exact hl - 0069
specialize prime_field_residue_input_equal (p) - 0070
specialize prime_field_residue_input_equal ((a * b) * c) - 0071
specialize prime_field_residue_input_equal (a * (b * c)) - 0072
specialize prime_field_residue_input_equal (v) - 0073
apply prime_field_residue_input_equal - 0074
specialize mul_assoc (a) - 0075
specialize mul_assoc (b) - 0076
specialize mul_assoc (c) - 0077
apply mul_assoc - 0078
exact hr