Current library: Alpha v34, 4,223 checked-use theorems; Stable remains 432. Historical first admissions, original proof editions, and non-admitted aliases are preserved.
Each statement retains its explicit modulus, coprimality and divisibility assumptions. These twelve arithmetic laws do not assert all order, primitive-root, Carmichael, exponential or simultaneous-polynomial congruence goals are finished.
Exact theorem in conservative defined notation
∀ a. ∀ m. ∀ g. ∀ A. ∀ M. ∀ b. ¬m = 0 → IsGCD(g,a,m) → a = g · A → m = g · M → Dvd(g,b) → ∃ x. Lt(x,M) ∧ ModEq(m,a · x,b)
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–11
Work with arbitrary variables or the premises of the current implication.
- L11
intro hb
03Establish hg0L12–18
04Establish hM0L19–25
05Establish hsL26–33
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply linear congruence gcd divisibility constructs solution.
- L26
have hs : ∃ x. ModEq(m,a · x,b)Definitions: ModEq(m,a · x,b)Original native command in the exact edition - L27
specialize linear_congruence_gcd_divisibility_constructs_solution (a) - L28
specialize linear_congruence_gcd_divisibility_constructs_solution (m) - L29
specialize linear_congruence_gcd_divisibility_constructs_solution (b) - L30
specialize linear_congruence_gcd_divisibility_constructs_solution (g) - L31
apply linear_congruence_gcd_divisibility_constructs_solution - L32
exact hg - L33
exact hb
06Separate the logical casesL34–34
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L34
cases hs
07Establish hdL35–39
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply division remainder exists.
- L35
have hd : ∃ q. ∃ r. DivRem(x,M,q,r)Definitions: DivRem(x,M,q,r)Original native command in the exact edition - L36
specialize division_remainder_exists (M) - L37
specialize division_remainder_exists (x) - L38
apply division_remainder_exists - L39
exact hM0
08Separate the logical casesL40–42
09Construct an explicit witnessL43–43
Supply the displayed value, then prove that it has the required property.
- L43
exists x2
10Separate the logical casesL44–44
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L44
split
11Use earlier factsL45–45
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L45
exact hd_witness_witness_right
12Establish heL46–55
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply mod eq symm.
- L46
- L47
specialize mod_eq_symm (M) - L48
specialize mod_eq_symm (x) - L49
specialize mod_eq_symm (x2) - L50
apply mod_eq_symm - L51
specialize remainder_decomposition_to_mod_eq (M) - L52
specialize remainder_decomposition_to_mod_eq (x) - L53
specialize remainder_decomposition_to_mod_eq (x1) - L54
specialize remainder_decomposition_to_mod_eq (x2) - L55
apply remainder_decomposition_to_mod_eq
13Calculate and transport equalitiesL56–56
Carry out the recorded arithmetic or equality steps; inspect the exact commands for their direction and premises.
- L56
trans M*x1+x2
14Use earlier factsL57–57
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L57
exact hd_witness_witness_left
15Calculate and transport equalitiesL58–58
Carry out the recorded arithmetic or equality steps; inspect the exact commands for their direction and premises.
- L58
congr
16Use earlier factsL59–59
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L59
apply mul_comm
17Calculate and transport equalitiesL60–60
Carry out the recorded arithmetic or equality steps; inspect the exact commands for their direction and premises.
- L60
refl
18Establish hcL61–70
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply linear congruence solution class iff reduced modulus.
- L61
have hc : (ModEq(m,a · x2,b) → ModEq(M,x2,x)) ∧ (ModEq(M,x2,x) → ModEq(m,a · x2,b))Definitions: ModEq(m,a · x2,b)ModEq(M,x2,x)Original native command in the exact edition - L62
specialize linear_congruence_solution_class_iff_reduced_modulus (a) - L63
specialize linear_congruence_solution_class_iff_reduced_modulus (m) - L64
specialize linear_congruence_solution_class_iff_reduced_modulus (g) - L65
specialize linear_congruence_solution_class_iff_reduced_modulus (A) - L66
specialize linear_congruence_solution_class_iff_reduced_modulus (M) - L67
specialize linear_congruence_solution_class_iff_reduced_modulus (b) - L68
specialize linear_congruence_solution_class_iff_reduced_modulus (x) - L69
specialize linear_congruence_solution_class_iff_reduced_modulus (x2) - L70
apply linear_congruence_solution_class_iff_reduced_modulus
19Use earlier factsL71–75
20Separate the logical casesL76–76
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L76
cases hc
Original defined command ledger · 78 lines
- 0001
intro a - 0002
intro m - 0003
intro g - 0004
intro A - 0005
intro M - 0006
intro b - 0007
intro hm0 - 0008
intro hg - 0009
intro ha - 0010
intro hm - 0011
intro hb - 0012
have hg0 : ~(g=0) - 0013
intro hz - 0014
apply hm0 - 0015
trans g*M - 0016
exact hm - 0017
rewrite hz - 0018
apply mul_zero_left - 0019
have hM0 : ~(M=0) - 0020
intro hz - 0021
apply hm0 - 0022
trans g*M - 0023
exact hm - 0024
rewrite hz - 0025
simp - 0026
have hs : ∃ x. ModEq(m,a · x,b) - 0027
specialize linear_congruence_gcd_divisibility_constructs_solution (a) - 0028
specialize linear_congruence_gcd_divisibility_constructs_solution (m) - 0029
specialize linear_congruence_gcd_divisibility_constructs_solution (b) - 0030
specialize linear_congruence_gcd_divisibility_constructs_solution (g) - 0031
apply linear_congruence_gcd_divisibility_constructs_solution - 0032
exact hg - 0033
exact hb - 0034
cases hs - 0035
have hd : ∃ q. ∃ r. DivRem(x,M,q,r) - 0036
specialize division_remainder_exists (M) - 0037
specialize division_remainder_exists (x) - 0038
apply division_remainder_exists - 0039
exact hM0 - 0040
cases hd - 0041
cases hd_witness - 0042
cases hd_witness_witness - 0043
exists x2 - 0044
split - 0045
exact hd_witness_witness_right - 0046
have he : ModEq(M,x2,x) - 0047
specialize mod_eq_symm (M) - 0048
specialize mod_eq_symm (x) - 0049
specialize mod_eq_symm (x2) - 0050
apply mod_eq_symm - 0051
specialize remainder_decomposition_to_mod_eq (M) - 0052
specialize remainder_decomposition_to_mod_eq (x) - 0053
specialize remainder_decomposition_to_mod_eq (x1) - 0054
specialize remainder_decomposition_to_mod_eq (x2) - 0055
apply remainder_decomposition_to_mod_eq - 0056
trans M*x1+x2 - 0057
exact hd_witness_witness_left - 0058
congr - 0059
apply mul_comm - 0060
refl - 0061
have hc : (ModEq(m,a · x2,b) → ModEq(M,x2,x)) ∧ (ModEq(M,x2,x) → ModEq(m,a · x2,b)) - 0062
specialize linear_congruence_solution_class_iff_reduced_modulus (a) - 0063
specialize linear_congruence_solution_class_iff_reduced_modulus (m) - 0064
specialize linear_congruence_solution_class_iff_reduced_modulus (g) - 0065
specialize linear_congruence_solution_class_iff_reduced_modulus (A) - 0066
specialize linear_congruence_solution_class_iff_reduced_modulus (M) - 0067
specialize linear_congruence_solution_class_iff_reduced_modulus (b) - 0068
specialize linear_congruence_solution_class_iff_reduced_modulus (x) - 0069
specialize linear_congruence_solution_class_iff_reduced_modulus (x2) - 0070
apply linear_congruence_solution_class_iff_reduced_modulus - 0071
exact hm0 - 0072
exact hg - 0073
exact ha - 0074
exact hm - 0075
exact hs_witness - 0076
cases hc - 0077
apply hc_right - 0078
exact he