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.
Historical partial components only: this chapter proves canonical solutions under successive-merge compatibility and in the pairwise-compatible dominating-last case. G011 is now closed in the separate Alpha-v27 generalized-crt branch for arbitrary pairwise-compatible finite lists, including noncoprime moduli. Full G011 proof · Alpha v27
Exact theorem in conservative defined notation
∀ a. ∀ b. ∀ g. ∀ A. ∀ B. ∀ L. ¬g = 0 → a = g · A → b = g · B → IsGCD(g,a,b) → Dvd(a,L) ∧ Dvd(b,L) ∧ (∀ x. Dvd(a,x) → Dvd(b,x) → Dvd(L,x)) → L = g · (A · B)
Every linked abbreviation expands hygienically to the identical original native formula.
Definition DAG
Actual proof prerequisites
Complete unchanged native tactic proof
All 30 lines are the exact independently kernel-checked original 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.
01Fix variables and assumptionsL1–10
02Fix variables and assumptionsL11–11
Work with arbitrary variables or the premises of the current implication.
- L11
intro hlcm
03Establish hproductL12–21
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply gcd lcm product.
04Establish hshuffleL22–30
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply mul left cancel nonzero.
- L22
have hshuffle : (g * A) * (g * B) = g * (g * (A * B)) - L23
simp [mul_assoc, mul_comm] - L24
rewrite hshuffle at hproduct - L25
specialize mul_left_cancel_nonzero g - L26
specialize mul_left_cancel_nonzero L - L27
specialize mul_left_cancel_nonzero (g * (A * B)) - L28
apply mul_left_cancel_nonzero - L29
exact hnonzero - L30
exact hproduct
Original defined command ledger · 30 lines
- 0001
intro a - 0002
intro b - 0003
intro g - 0004
intro A - 0005
intro B - 0006
intro L - 0007
intro hnonzero - 0008
intro ha - 0009
intro hb - 0010
intro hg - 0011
intro hlcm - 0012
have hproduct : g * L = a * b - 0013
specialize gcd_lcm_product g - 0014
specialize gcd_lcm_product L - 0015
specialize gcd_lcm_product a - 0016
specialize gcd_lcm_product b - 0017
apply gcd_lcm_product - 0018
exact hg - 0019
exact hlcm - 0020
rewrite ha at hproduct - 0021
rewrite hb at hproduct - 0022
have hshuffle : (g * A) * (g * B) = g * (g * (A * B)) - 0023
simp [mul_assoc, mul_comm] - 0024
rewrite hshuffle at hproduct - 0025
specialize mul_left_cancel_nonzero g - 0026
specialize mul_left_cancel_nonzero L - 0027
specialize mul_left_cancel_nonzero (g * (A * B)) - 0028
apply mul_left_cancel_nonzero - 0029
exact hnonzero - 0030
exact hproduct