Current library: Alpha v34, 4,223 checked-use theorems; Stable remains 432. Historical first admissions, original proof editions, and non-admitted aliases are preserved. Exact original first-admission records.
Sets are complete characteristic-bit codes with actual finite cardinality witnesses. The proof constructs translations and the sumset; no finite-choice oracle, supplied cardinality conclusion, or unproved polynomial-method premise is used.
Exact theorem in conservative defined notation
∀ p. ∀ d. ∀ a. ∀ z. Prime(p) → ¬d = 0 → Lt(d,p) → Lt(a,p) → ∃ x. ModEq(p,a + x · d,z)
Every linked abbreviation expands hygienically to the identical original native formula.
Definition DAG
Actual proof prerequisites
Complete tactic proof in conservative notation
All 91 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–8
02Establish hinvL9–15
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply prime bounded nonzero mod inverse.
- L9
have hinv : ∃ u. ¬u = 0 ∧ (Lt(u,p) ∧ ModEq(p,d · u,1))Definitions: Lt(u,p)ModEq(p,d · u,1)Original native command in the exact edition - L10
specialize prime_bounded_nonzero_mod_inverse p - L11
specialize prime_bounded_nonzero_mod_inverse d - L12
apply prime_bounded_nonzero_mod_inverse - L13
exact hp - L14
exact hd - L15
exact hdp
03Separate the logical casesL16–18
04Establish hcompL19–23
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply finite modular additive complement.
05Separate the logical casesL24–24
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L24
cases hcomp
06Construct an explicit witnessL25–25
Supply the displayed value, then prove that it has the required property.
- L25
exists (z+x1)*x
07Establish hproductL26–26
Establish this local claim before using it. It is not an additional assumption.
- L26
have hproduct : ModEq(p,(z + x1) · x · d,z + x1)Definitions: ModEq(p,(z + x1) · x · d,z + x1)Original native command in the exact edition
08Establish hscaledL27–33
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply mod eq mul right.
- L27
have hscaled : ModEq(p,d · x · (z + x1),1 · (z + x1))Definitions: ModEq(p,d · x · (z + x1),1 · (z + x1))Original native command in the exact edition - L28
specialize mod_eq_mul_right p - L29
specialize mod_eq_mul_right d*x - L30
specialize mod_eq_mul_right 1 - L31
specialize mod_eq_mul_right z+x1 - L32
apply mod_eq_mul_right - L33
exact hinv_witness_right_right
09Establish honeL34–37
10Establish heL38–47
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply mul assoc.
11Use earlier factsL48–52
12Calculate and transport equalitiesL53–53
Carry out the recorded arithmetic or equality steps; inspect the exact commands for their direction and premises.
- L53
rewrite he
13Use earlier factsL54–63
Instantiate or apply named facts and discharge the corresponding proof obligations.
14Use earlier factsL64–69
15Establish heL70–79
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply add assoc.
16Use earlier factsL80–81
17Calculate and transport equalitiesL82–82
Carry out the recorded arithmetic or equality steps; inspect the exact commands for their direction and premises.
- L82
refl
18Use earlier factsL83–86
19Calculate and transport equalitiesL87–88
Original defined command ledger · 91 lines
- 0001
intro p - 0002
intro d - 0003
intro a - 0004
intro z - 0005
intro hp - 0006
intro hd - 0007
intro hdp - 0008
intro hap - 0009
have hinv : ∃ u. ¬u = 0 ∧ (Lt(u,p) ∧ ModEq(p,d · u,1)) - 0010
specialize prime_bounded_nonzero_mod_inverse p - 0011
specialize prime_bounded_nonzero_mod_inverse d - 0012
apply prime_bounded_nonzero_mod_inverse - 0013
exact hp - 0014
exact hd - 0015
exact hdp - 0016
cases hinv - 0017
cases hinv_witness - 0018
cases hinv_witness_right - 0019
have hcomp : exists v. a+v=p - 0020
specialize finite_modular_additive_complement p - 0021
specialize finite_modular_additive_complement a - 0022
apply finite_modular_additive_complement - 0023
exact hap - 0024
cases hcomp - 0025
exists (z+x1)*x - 0026
have hproduct : ModEq(p,(z + x1) · x · d,z + x1) - 0027
have hscaled : ModEq(p,d · x · (z + x1),1 · (z + x1)) - 0028
specialize mod_eq_mul_right p - 0029
specialize mod_eq_mul_right d*x - 0030
specialize mod_eq_mul_right 1 - 0031
specialize mod_eq_mul_right z+x1 - 0032
apply mod_eq_mul_right - 0033
exact hinv_witness_right_right - 0034
have hone : 1*(z+x1)=z+x1 - 0035
specialize one_mul z+x1 - 0036
apply one_mul - 0037
rewrite hone at hscaled - 0038
have he : ((z+x1)*x)*d=(d*x)*(z+x1) - 0039
trans (z+x1)*(x*d) - 0040
specialize mul_assoc z+x1 - 0041
specialize mul_assoc x - 0042
specialize mul_assoc d - 0043
apply mul_assoc - 0044
trans (z+x1)*(d*x) - 0045
congr - 0046
refl - 0047
specialize mul_comm x - 0048
specialize mul_comm d - 0049
apply mul_comm - 0050
specialize mul_comm z+x1 - 0051
specialize mul_comm d*x - 0052
apply mul_comm - 0053
rewrite he - 0054
exact hscaled - 0055
specialize mod_eq_trans p - 0056
specialize mod_eq_trans a+((z+x1)*x)*d - 0057
specialize mod_eq_trans a+(z+x1) - 0058
specialize mod_eq_trans z - 0059
apply mod_eq_trans - 0060
specialize mod_eq_add p - 0061
specialize mod_eq_add a - 0062
specialize mod_eq_add a - 0063
specialize mod_eq_add ((z+x1)*x)*d - 0064
specialize mod_eq_add z+x1 - 0065
apply mod_eq_add - 0066
specialize mod_eq_refl p - 0067
specialize mod_eq_refl a - 0068
apply mod_eq_refl - 0069
exact hproduct - 0070
have he : a+(z+x1)=z+(a+x1) - 0071
trans (a+z)+x1 - 0072
symm - 0073
specialize add_assoc a - 0074
specialize add_assoc z - 0075
specialize add_assoc x1 - 0076
apply add_assoc - 0077
trans (z+a)+x1 - 0078
congr - 0079
specialize add_comm a - 0080
specialize add_comm z - 0081
apply add_comm - 0082
refl - 0083
specialize add_assoc z - 0084
specialize add_assoc a - 0085
specialize add_assoc x1 - 0086
apply add_assoc - 0087
rewrite he - 0088
rewrite hcomp_witness - 0089
specialize finite_modular_add_modulus p - 0090
specialize finite_modular_add_modulus z - 0091
apply finite_modular_add_modulus