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 expanded first-order arithmetic statement
forall a m g A M b r x. (~(m=0)) -> ((((exists hag_left_factor_lcc_class. a = g * hag_left_factor_lcc_class) /\ (exists hag_right_factor_lcc_class. m = g * hag_right_factor_lcc_class)) /\ forall hag_divisor_lcc_class. (exists hag_common_left_lcc_class. a = hag_divisor_lcc_class * hag_common_left_lcc_class) -> (exists hag_common_right_lcc_class. m = hag_divisor_lcc_class * hag_common_right_lcc_class) -> exists hag_greatest_factor_lcc_class. g = hag_divisor_lcc_class * hag_greatest_factor_lcc_class)) -> (a=g*A) -> (m=g*M) -> (exists hgcrt_mod_left_lcc_class_reference hgcrt_mod_right_lcc_class_reference. (a * r) + m * hgcrt_mod_left_lcc_class_reference = b + m * hgcrt_mod_right_lcc_class_reference) -> ((((exists hgcrt_mod_left_lcc_class_solution hgcrt_mod_right_lcc_class_solution. (a * x) + m * hgcrt_mod_left_lcc_class_solution = b + m * hgcrt_mod_right_lcc_class_solution) -> (exists hgcrt_mod_left_lcc_class_reduced hgcrt_mod_right_lcc_class_reduced. x + M * hgcrt_mod_left_lcc_class_reduced = r + M * hgcrt_mod_right_lcc_class_reduced)) /\ (((exists hgcrt_mod_left_lcc_class_reduced hgcrt_mod_right_lcc_class_reduced. x + M * hgcrt_mod_left_lcc_class_reduced = r + M * hgcrt_mod_right_lcc_class_reduced) -> (exists hgcrt_mod_left_lcc_class_solution hgcrt_mod_right_lcc_class_solution. (a * x) + m * hgcrt_mod_left_lcc_class_solution = b + m * hgcrt_mod_right_lcc_class_solution)))))Constructive proof overview
Generated structural guide
Relative to any actual solution, every natural solution is exactly its class modulo the actual gcd cofactor.
The unchanged tactic script uses 3 declared prerequisites and contains 50 exact native proof lines.
Alpha v34 checked-use · first admitted v34 · independently kernel and Lean verified; not Stable
Proof neighborhood
Direct dependencies
CG0001 mod_eq_cancel_gcd_cofactor mod_eq_trans Alpha theorem; checked-use authorized mod_eq_symm Alpha theorem; checked-use authorizedDirect dependents
Formal native tactic body
Dependencies are introduced as named hypotheses before line 1. Local theorem links identify exact declared prerequisites. This exact body belongs to a complete independently kernel-checked constructive proof bundle and has Alpha checked-use authority; it does not imply Stable membership.
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–13
03Establish hcL14–23
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply mod eq cancel gcd cofactor.
- L14
have hc : (ModEq(m,a · x,a · r) → ModEq(M,x,r)) ∧ (ModEq(M,x,r) → ModEq(m,a · x,a · r))Definitions: ModEq - L15
specialize mod_eq_cancel_gcd_cofactor (a) - L16
specialize mod_eq_cancel_gcd_cofactor (m) - L17
specialize mod_eq_cancel_gcd_cofactor (g) - L18
specialize mod_eq_cancel_gcd_cofactor (A) - L19
specialize mod_eq_cancel_gcd_cofactor (M) - L20
specialize mod_eq_cancel_gcd_cofactor (x) - L21
specialize mod_eq_cancel_gcd_cofactor (r) - L22
apply mod_eq_cancel_gcd_cofactor - L23
exact hm0
04Use earlier factsL24–26
05Separate the logical casesL27–28
06Fix variables and assumptionsL29–29
Work with arbitrary variables or the premises of the current implication.
- L29
intro hx
07Use earlier factsL30–39
Instantiate or apply named facts and discharge the corresponding proof obligations.
08Use earlier factsL40–41
09Fix variables and assumptionsL42–42
Work with arbitrary variables or the premises of the current implication.
- L42
intro hx
Original exact command ledger · 50 lines
- 0001
intro a - 0002
intro m - 0003
intro g - 0004
intro A - 0005
intro M - 0006
intro b - 0007
intro r - 0008
intro x - 0009
intro hm0 - 0010
intro hg - 0011
intro ha - 0012
intro hm - 0013
intro hr - 0014
have hc : (((exists hgcrt_mod_left_lcc_class_pair hgcrt_mod_right_lcc_class_pair. (a * x) + m * hgcrt_mod_left_lcc_class_pair = (a * r) + m * hgcrt_mod_right_lcc_class_pair) -> (exists hgcrt_mod_left_lcc_class_reduced hgcrt_mod_right_lcc_class_reduced. x + M * hgcrt_mod_left_lcc_class_reduced = r + M * hgcrt_mod_right_lcc_class_reduced)) /\ (((exists hgcrt_mod_left_lcc_class_reduced hgcrt_mod_right_lcc_class_reduced. x + M * hgcrt_mod_left_lcc_class_reduced = r + M * hgcrt_mod_right_lcc_class_reduced) -> (exists hgcrt_mod_left_lcc_class_pair hgcrt_mod_right_lcc_class_pair. (a * x) + m * hgcrt_mod_left_lcc_class_pair = (a * r) + m * hgcrt_mod_right_lcc_class_pair)))) - 0015
specialize mod_eq_cancel_gcd_cofactor (a) - 0016
specialize mod_eq_cancel_gcd_cofactor (m) - 0017
specialize mod_eq_cancel_gcd_cofactor (g) - 0018
specialize mod_eq_cancel_gcd_cofactor (A) - 0019
specialize mod_eq_cancel_gcd_cofactor (M) - 0020
specialize mod_eq_cancel_gcd_cofactor (x) - 0021
specialize mod_eq_cancel_gcd_cofactor (r) - 0022
apply mod_eq_cancel_gcd_cofactor - 0023
exact hm0 - 0024
exact hg - 0025
exact ha - 0026
exact hm - 0027
cases hc - 0028
split - 0029
intro hx - 0030
apply hc_left - 0031
specialize mod_eq_trans (m) - 0032
specialize mod_eq_trans (a*x) - 0033
specialize mod_eq_trans (b) - 0034
specialize mod_eq_trans (a*r) - 0035
apply mod_eq_trans - 0036
exact hx - 0037
specialize mod_eq_symm (m) - 0038
specialize mod_eq_symm (a*r) - 0039
specialize mod_eq_symm (b) - 0040
apply mod_eq_symm - 0041
exact hr - 0042
intro hx - 0043
specialize mod_eq_trans (m) - 0044
specialize mod_eq_trans (a*x) - 0045
specialize mod_eq_trans (a*r) - 0046
specialize mod_eq_trans (b) - 0047
apply mod_eq_trans - 0048
apply hc_right - 0049
exact hx - 0050
exact hr