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. ¬a = 0 → ¬n = 0 → 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 111 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 (4)
01Fix variables and assumptionsL1–10
02Fix variables and assumptionsL11–13
03Establish hdL14–17
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply canonical gcd exists.
04Separate the logical casesL18–18
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L18
cases hd
05Establish hdnonzeroL19–27
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply crt gcd nonzero left.
06Establish habL28–34
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply crt gcd coprime cofactors.
- L28
have hab : ∃ A. ∃ B. a = x · A ∧ (b = x · B ∧ (∀ y. Dvd(y,A) → Dvd(y,B) → y = 1))Definitions: Dvd(y,A)Dvd(y,B)Original native command in the exact edition - L29
specialize crt_gcd_coprime_cofactors a - L30
specialize crt_gcd_coprime_cofactors b - L31
specialize crt_gcd_coprime_cofactors x - L32
apply crt_gcd_coprime_cofactors - L33
exact hdnonzero - L34
exact hd_witness
07Separate the logical casesL35–38
08Establish heL39–42
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply canonical gcd exists.
09Separate the logical casesL43–43
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L43
cases he
10Establish henonzeroL44–52
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply crt gcd nonzero right.
11Establish hdnL53–59
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply crt gcd coprime cofactors.
- L53
have hdn : ∃ D. ∃ N. x = x3 · D ∧ (n = x3 · N ∧ (∀ y. Dvd(y,D) → Dvd(y,N) → y = 1))Definitions: Dvd(y,D)Dvd(y,N)Original native command in the exact edition - L54
specialize crt_gcd_coprime_cofactors x - L55
specialize crt_gcd_coprime_cofactors n - L56
specialize crt_gcd_coprime_cofactors x3 - L57
apply crt_gcd_coprime_cofactors - L58
exact henonzero - L59
exact he_witness
12Separate the logical casesL60–63
13Establish hNL64–72
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply factor nonzero right.
14Establish hLeqL73–82
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply crt lcm gcd cofactor product.
- L73
have hLeq : L = x * (x1 * x2) - L74
specialize crt_lcm_gcd_cofactor_product a - L75
specialize crt_lcm_gcd_cofactor_product b - L76
specialize crt_lcm_gcd_cofactor_product x - L77
specialize crt_lcm_gcd_cofactor_product x1 - L78
specialize crt_lcm_gcd_cofactor_product x2 - L79
specialize crt_lcm_gcd_cofactor_product L - L80
apply crt_lcm_gcd_cofactor_product - L81
exact hdnonzero - L82
exact hab_witness_witness_left
15Use earlier factsL83–92
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L83
exact hab_witness_witness_right_left - L84
exact hd_witness - L85
exact hL - L86
specialize crt_gcd_lcm_distributes_scaled_coprime x - L87
specialize crt_gcd_lcm_distributes_scaled_coprime n - L88
specialize crt_gcd_lcm_distributes_scaled_coprime x3 - L89
specialize crt_gcd_lcm_distributes_scaled_coprime x4 - L90
specialize crt_gcd_lcm_distributes_scaled_coprime x5 - L91
specialize crt_gcd_lcm_distributes_scaled_coprime x1 - L92
specialize crt_gcd_lcm_distributes_scaled_coprime x2
16Use earlier factsL93–102
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L93
specialize crt_gcd_lcm_distributes_scaled_coprime L - L94
specialize crt_gcd_lcm_distributes_scaled_coprime ga - L95
specialize crt_gcd_lcm_distributes_scaled_coprime gb - L96
specialize crt_gcd_lcm_distributes_scaled_coprime g - L97
apply crt_gcd_lcm_distributes_scaled_coprime - L98
exact hdn_witness_witness_left - L99
exact hdn_witness_witness_right_left - L100
exact henonzero - L101
exact hN - L102
exact hdn_witness_witness_right_right
17Use earlier factsL103–104
18Calculate and transport equalitiesL105–106
19Use earlier factsL107–107
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L107
exact hga
20Calculate and transport equalitiesL108–109
Original defined command ledger · 111 lines
- 0001
intro a - 0002
intro b - 0003
intro n - 0004
intro L - 0005
intro ga - 0006
intro gb - 0007
intro g - 0008
intro ha - 0009
intro hn - 0010
intro hL - 0011
intro hga - 0012
intro hgb - 0013
intro hg - 0014
have hd : ∃ d. IsGCD(d,a,b) - 0015
specialize canonical_gcd_exists a - 0016
specialize canonical_gcd_exists b - 0017
apply canonical_gcd_exists - 0018
cases hd - 0019
have hdnonzero : ~(x = 0) - 0020
intro hz - 0021
specialize crt_gcd_nonzero_left a - 0022
specialize crt_gcd_nonzero_left b - 0023
specialize crt_gcd_nonzero_left x - 0024
apply crt_gcd_nonzero_left - 0025
exact ha - 0026
exact hd_witness - 0027
exact hz - 0028
have hab : ∃ A. ∃ B. a = x · A ∧ (b = x · B ∧ (∀ y. Dvd(y,A) → Dvd(y,B) → y = 1)) - 0029
specialize crt_gcd_coprime_cofactors a - 0030
specialize crt_gcd_coprime_cofactors b - 0031
specialize crt_gcd_coprime_cofactors x - 0032
apply crt_gcd_coprime_cofactors - 0033
exact hdnonzero - 0034
exact hd_witness - 0035
cases hab - 0036
cases hab_witness - 0037
cases hab_witness_witness - 0038
cases hab_witness_witness_right - 0039
have he : ∃ e. IsGCD(e,x,n) - 0040
specialize canonical_gcd_exists x - 0041
specialize canonical_gcd_exists n - 0042
apply canonical_gcd_exists - 0043
cases he - 0044
have henonzero : ~(x3 = 0) - 0045
intro hz - 0046
specialize crt_gcd_nonzero_right x - 0047
specialize crt_gcd_nonzero_right n - 0048
specialize crt_gcd_nonzero_right x3 - 0049
apply crt_gcd_nonzero_right - 0050
exact hn - 0051
exact he_witness - 0052
exact hz - 0053
have hdn : ∃ D. ∃ N. x = x3 · D ∧ (n = x3 · N ∧ (∀ y. Dvd(y,D) → Dvd(y,N) → y = 1)) - 0054
specialize crt_gcd_coprime_cofactors x - 0055
specialize crt_gcd_coprime_cofactors n - 0056
specialize crt_gcd_coprime_cofactors x3 - 0057
apply crt_gcd_coprime_cofactors - 0058
exact henonzero - 0059
exact he_witness - 0060
cases hdn - 0061
cases hdn_witness - 0062
cases hdn_witness_witness - 0063
cases hdn_witness_witness_right - 0064
have hN : ~(x5 = 0) - 0065
intro hz - 0066
specialize factor_nonzero_right n - 0067
specialize factor_nonzero_right x3 - 0068
specialize factor_nonzero_right x5 - 0069
apply factor_nonzero_right - 0070
exact hn - 0071
exact hdn_witness_witness_right_left - 0072
exact hz - 0073
have hLeq : L = x * (x1 * x2) - 0074
specialize crt_lcm_gcd_cofactor_product a - 0075
specialize crt_lcm_gcd_cofactor_product b - 0076
specialize crt_lcm_gcd_cofactor_product x - 0077
specialize crt_lcm_gcd_cofactor_product x1 - 0078
specialize crt_lcm_gcd_cofactor_product x2 - 0079
specialize crt_lcm_gcd_cofactor_product L - 0080
apply crt_lcm_gcd_cofactor_product - 0081
exact hdnonzero - 0082
exact hab_witness_witness_left - 0083
exact hab_witness_witness_right_left - 0084
exact hd_witness - 0085
exact hL - 0086
specialize crt_gcd_lcm_distributes_scaled_coprime x - 0087
specialize crt_gcd_lcm_distributes_scaled_coprime n - 0088
specialize crt_gcd_lcm_distributes_scaled_coprime x3 - 0089
specialize crt_gcd_lcm_distributes_scaled_coprime x4 - 0090
specialize crt_gcd_lcm_distributes_scaled_coprime x5 - 0091
specialize crt_gcd_lcm_distributes_scaled_coprime x1 - 0092
specialize crt_gcd_lcm_distributes_scaled_coprime x2 - 0093
specialize crt_gcd_lcm_distributes_scaled_coprime L - 0094
specialize crt_gcd_lcm_distributes_scaled_coprime ga - 0095
specialize crt_gcd_lcm_distributes_scaled_coprime gb - 0096
specialize crt_gcd_lcm_distributes_scaled_coprime g - 0097
apply crt_gcd_lcm_distributes_scaled_coprime - 0098
exact hdn_witness_witness_left - 0099
exact hdn_witness_witness_right_left - 0100
exact henonzero - 0101
exact hN - 0102
exact hdn_witness_witness_right_right - 0103
exact hab_witness_witness_right_right - 0104
exact hLeq - 0105
rewrite <- hab_witness_witness_left - 0106
rewrite <- hab_witness_witness_left - 0107
exact hga - 0108
rewrite <- hab_witness_witness_right_left - 0109
rewrite <- hab_witness_witness_right_left - 0110
exact hgb - 0111
exact hg