Current library: Alpha v34, 4,223 checked-use theorems; Stable remains 432. Historical first admissions, original proof editions, and non-admitted aliases are preserved.
Length is representation length, not polynomial degree. Leading zeros and the empty zero polynomial are allowed; the canonical argument guard x<p also applies to the empty case. Evaluation is defined by actual field-operation steps, not an assumed residue invariant. Polynomial division, gcd, irreducibles and general prime-power extension fields remain open; this does not close G091.
Exact theorem in conservative defined notation
∀ p. ∀ n. ∀ t. ∀ a. ∀ r. ∀ s. Prime(p) → Lt(t,p) → Lt(a,p) → CanonicalModularResidue(p,n,r) → CanonicalModularResidue(p,n · t + a,s) → ∃ x. FpMul(p,r,t,x) ∧ FpAdd(p,x,a,s)
Every linked abbreviation expands hygienically to the identical original native formula.
Definition DAG
Actual proof prerequisites
Complete tactic proof in conservative notation
All 79 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.
01Fix variables and assumptionsL1–10
02Fix variables and assumptionsL11–11
Work with arbitrary variables or the premises of the current implication.
- L11
intro hs
03Establish hrcopyL12–13
Establish this local claim before using it. It is not an additional assumption.
- L12
have hrcopy : CanonicalModularResidue(p,n,r)Definitions: CanonicalModularResidue(p,n,r)Original native command in the exact edition - L13
exact hr
04Separate the logical casesL14–14
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L14
cases hrcopy
05Establish hmL15–22
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply prime field multiply exists.
- L15
have hm : ∃ k. FpMul(p,r,t,k)Definitions: FpMul(p,r,t,k)Original native command in the exact edition - L16
specialize prime_field_multiply_exists (p) - L17
specialize prime_field_multiply_exists (r) - L18
specialize prime_field_multiply_exists (t) - L19
apply prime_field_multiply_exists - L20
exact hp - L21
exact hrcopy_left - L22
exact ht
06Separate the logical casesL23–23
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L23
cases hm
07Establish hmcopyL24–25
Establish this local claim before using it. It is not an additional assumption.
08Separate the logical casesL26–28
09Establish haddL29–36
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply prime field add exists.
- L29
have hadd : ∃ z. FpAdd(p,x,a,z)Definitions: FpAdd(p,x,a,z)Original native command in the exact edition - L30
specialize prime_field_add_exists (p) - L31
specialize prime_field_add_exists (x) - L32
specialize prime_field_add_exists (a) - L33
apply prime_field_add_exists - L34
exact hp - L35
exact hmcopy_right_right_left - L36
exact ha
10Separate the logical casesL37–37
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L37
cases hadd
11Establish hmulresL38–47
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply prime field residue multiply.
- L38
have hmulres : CanonicalModularResidue(p,n · t,x)Definitions: CanonicalModularResidue(p,n · t,x)Original native command in the exact edition - L39
specialize prime_field_residue_multiply (p) - L40
specialize prime_field_residue_multiply (n) - L41
specialize prime_field_residue_multiply (t) - L42
specialize prime_field_residue_multiply (r) - L43
specialize prime_field_residue_multiply (t) - L44
specialize prime_field_residue_multiply (x) - L45
apply prime_field_residue_multiply - L46
exact hr - L47
specialize prime_field_residue_reflexive (p)
12Use earlier factsL48–51
13Establish hsumresL52–61
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply prime field residue add.
- L52
have hsumres : CanonicalModularResidue(p,n · t + a,x1)Definitions: CanonicalModularResidue(p,n · t + a,x1)Original native command in the exact edition - L53
specialize prime_field_residue_add (p) - L54
specialize prime_field_residue_add (n*t) - L55
specialize prime_field_residue_add (a) - L56
specialize prime_field_residue_add (x) - L57
specialize prime_field_residue_add (a) - L58
specialize prime_field_residue_add (x1) - L59
apply prime_field_residue_add - L60
exact hmulres - L61
specialize prime_field_residue_reflexive (p)
14Use earlier factsL62–65
15Establish heqL66–73
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply binary canonical residue functional.
- L66
have heq : x1=s - L67
specialize binary_canonical_residue_functional (p) - L68
specialize binary_canonical_residue_functional (n*t+a) - L69
specialize binary_canonical_residue_functional (x1) - L70
specialize binary_canonical_residue_functional (s) - L71
apply binary_canonical_residue_functional - L72
exact hsumres - L73
exact hs
16Construct an explicit witnessL74–74
Supply the displayed value, then prove that it has the required property.
- L74
exists x
17Separate the logical casesL75–75
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L75
split
18Use earlier factsL76–76
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L76
exact hm_witness
19Calculate and transport equalitiesL77–78
20Use earlier factsL79–79
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L79
exact hadd_witness
Original defined command ledger · 79 lines
- 0001
intro p - 0002
intro n - 0003
intro t - 0004
intro a - 0005
intro r - 0006
intro s - 0007
intro hp - 0008
intro ht - 0009
intro ha - 0010
intro hr - 0011
intro hs - 0012
have hrcopy : CanonicalModularResidue(p,n,r) - 0013
exact hr - 0014
cases hrcopy - 0015
have hm : ∃ k. FpMul(p,r,t,k) - 0016
specialize prime_field_multiply_exists (p) - 0017
specialize prime_field_multiply_exists (r) - 0018
specialize prime_field_multiply_exists (t) - 0019
apply prime_field_multiply_exists - 0020
exact hp - 0021
exact hrcopy_left - 0022
exact ht - 0023
cases hm - 0024
have hmcopy : FpMul(p,r,t,x) - 0025
exact hm_witness - 0026
cases hmcopy - 0027
cases hmcopy_right - 0028
cases hmcopy_right_right - 0029
have hadd : ∃ z. FpAdd(p,x,a,z) - 0030
specialize prime_field_add_exists (p) - 0031
specialize prime_field_add_exists (x) - 0032
specialize prime_field_add_exists (a) - 0033
apply prime_field_add_exists - 0034
exact hp - 0035
exact hmcopy_right_right_left - 0036
exact ha - 0037
cases hadd - 0038
have hmulres : CanonicalModularResidue(p,n · t,x) - 0039
specialize prime_field_residue_multiply (p) - 0040
specialize prime_field_residue_multiply (n) - 0041
specialize prime_field_residue_multiply (t) - 0042
specialize prime_field_residue_multiply (r) - 0043
specialize prime_field_residue_multiply (t) - 0044
specialize prime_field_residue_multiply (x) - 0045
apply prime_field_residue_multiply - 0046
exact hr - 0047
specialize prime_field_residue_reflexive (p) - 0048
specialize prime_field_residue_reflexive (t) - 0049
apply prime_field_residue_reflexive - 0050
exact ht - 0051
exact hm_witness - 0052
have hsumres : CanonicalModularResidue(p,n · t + a,x1) - 0053
specialize prime_field_residue_add (p) - 0054
specialize prime_field_residue_add (n*t) - 0055
specialize prime_field_residue_add (a) - 0056
specialize prime_field_residue_add (x) - 0057
specialize prime_field_residue_add (a) - 0058
specialize prime_field_residue_add (x1) - 0059
apply prime_field_residue_add - 0060
exact hmulres - 0061
specialize prime_field_residue_reflexive (p) - 0062
specialize prime_field_residue_reflexive (a) - 0063
apply prime_field_residue_reflexive - 0064
exact ha - 0065
exact hadd_witness - 0066
have heq : x1=s - 0067
specialize binary_canonical_residue_functional (p) - 0068
specialize binary_canonical_residue_functional (n*t+a) - 0069
specialize binary_canonical_residue_functional (x1) - 0070
specialize binary_canonical_residue_functional (s) - 0071
apply binary_canonical_residue_functional - 0072
exact hsumres - 0073
exact hs - 0074
exists x - 0075
split - 0076
exact hm_witness - 0077
rewrite heq at hadd_witness - 0078
rewrite heq at hadd_witness - 0079
exact hadd_witness