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.
All finite lists are included, even the empty list and zero moduli. A positive LCM gives x<M; at zero LCM congruence is exact equality and normalization deliberately does not require the impossible x<0.
Exact theorem in conservative defined notation
∀ a. ∀ b. ∀ n. ∀ L. ∀ ga. ∀ gb. ∀ g. Dvd(a,L) ∧ Dvd(b,L) ∧ (∀ x. Dvd(a,x) → Dvd(b,x) → Dvd(L,x)) → IsGCD(ga,a,n) → IsGCD(gb,b,n) → IsGCD(g,L,n) → Dvd(ga,g) ∧ Dvd(gb,g) ∧ (∀ x. Dvd(ga,x) → Dvd(gb,x) → Dvd(g,x))
Every linked abbreviation expands hygienically to the identical original native formula.
Definition DAG
Actual proof prerequisites
Complete tactic proof in conservative notation
All 61 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 (3)
01Fix variables and assumptionsL1–10
02Fix variables and assumptionsL11–11
Work with arbitrary variables or the premises of the current implication.
- L11
intro hg
03Establish haL12–15
04Separate the logical casesL16–16
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L16
cases ha
05Use earlier factsL17–26
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L17
specialize crt_gcd_lcm_distributes_zero_left a - L18
specialize crt_gcd_lcm_distributes_zero_left b - L19
specialize crt_gcd_lcm_distributes_zero_left n - L20
specialize crt_gcd_lcm_distributes_zero_left L - L21
specialize crt_gcd_lcm_distributes_zero_left ga - L22
specialize crt_gcd_lcm_distributes_zero_left gb - L23
specialize crt_gcd_lcm_distributes_zero_left g - L24
apply crt_gcd_lcm_distributes_zero_left - L25
exact ha_left - L26
exact hL
06Use earlier factsL27–29
07Establish hnL30–33
08Separate the logical casesL34–34
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L34
cases hn
09Use earlier factsL35–44
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L35
specialize crt_gcd_lcm_distributes_zero_comparison a - L36
specialize crt_gcd_lcm_distributes_zero_comparison b - L37
specialize crt_gcd_lcm_distributes_zero_comparison n - L38
specialize crt_gcd_lcm_distributes_zero_comparison L - L39
specialize crt_gcd_lcm_distributes_zero_comparison ga - L40
specialize crt_gcd_lcm_distributes_zero_comparison gb - L41
specialize crt_gcd_lcm_distributes_zero_comparison g - L42
apply crt_gcd_lcm_distributes_zero_comparison - L43
exact hn_left - L44
exact hL
10Use earlier factsL45–54
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L45
exact hga - L46
exact hgb - L47
exact hg - L48
specialize crt_gcd_lcm_distributes_nonzero a - L49
specialize crt_gcd_lcm_distributes_nonzero b - L50
specialize crt_gcd_lcm_distributes_nonzero n - L51
specialize crt_gcd_lcm_distributes_nonzero L - L52
specialize crt_gcd_lcm_distributes_nonzero ga - L53
specialize crt_gcd_lcm_distributes_nonzero gb - L54
specialize crt_gcd_lcm_distributes_nonzero g
Original defined command ledger · 61 lines
- 0001
intro a - 0002
intro b - 0003
intro n - 0004
intro L - 0005
intro ga - 0006
intro gb - 0007
intro g - 0008
intro hL - 0009
intro hga - 0010
intro hgb - 0011
intro hg - 0012
have ha : a = 0 \/ ~(a = 0) - 0013
specialize eq_decidable a - 0014
specialize eq_decidable 0 - 0015
apply eq_decidable - 0016
cases ha - 0017
specialize crt_gcd_lcm_distributes_zero_left a - 0018
specialize crt_gcd_lcm_distributes_zero_left b - 0019
specialize crt_gcd_lcm_distributes_zero_left n - 0020
specialize crt_gcd_lcm_distributes_zero_left L - 0021
specialize crt_gcd_lcm_distributes_zero_left ga - 0022
specialize crt_gcd_lcm_distributes_zero_left gb - 0023
specialize crt_gcd_lcm_distributes_zero_left g - 0024
apply crt_gcd_lcm_distributes_zero_left - 0025
exact ha_left - 0026
exact hL - 0027
exact hga - 0028
exact hgb - 0029
exact hg - 0030
have hn : n = 0 \/ ~(n = 0) - 0031
specialize eq_decidable n - 0032
specialize eq_decidable 0 - 0033
apply eq_decidable - 0034
cases hn - 0035
specialize crt_gcd_lcm_distributes_zero_comparison a - 0036
specialize crt_gcd_lcm_distributes_zero_comparison b - 0037
specialize crt_gcd_lcm_distributes_zero_comparison n - 0038
specialize crt_gcd_lcm_distributes_zero_comparison L - 0039
specialize crt_gcd_lcm_distributes_zero_comparison ga - 0040
specialize crt_gcd_lcm_distributes_zero_comparison gb - 0041
specialize crt_gcd_lcm_distributes_zero_comparison g - 0042
apply crt_gcd_lcm_distributes_zero_comparison - 0043
exact hn_left - 0044
exact hL - 0045
exact hga - 0046
exact hgb - 0047
exact hg - 0048
specialize crt_gcd_lcm_distributes_nonzero a - 0049
specialize crt_gcd_lcm_distributes_nonzero b - 0050
specialize crt_gcd_lcm_distributes_nonzero n - 0051
specialize crt_gcd_lcm_distributes_nonzero L - 0052
specialize crt_gcd_lcm_distributes_nonzero ga - 0053
specialize crt_gcd_lcm_distributes_nonzero gb - 0054
specialize crt_gcd_lcm_distributes_nonzero g - 0055
apply crt_gcd_lcm_distributes_nonzero - 0056
exact ha_right - 0057
exact hn_right - 0058
exact hL - 0059
exact hga - 0060
exact hgb - 0061
exact hg