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.
Exact expanded first-order arithmetic statement
forall a b n L ga gb g. n = 0 -> ((((exists hscale_left_factor_gfull_zero_n_L. L = a * hscale_left_factor_gfull_zero_n_L) /\ (exists hscale_right_factor_gfull_zero_n_L. L = b * hscale_right_factor_gfull_zero_n_L)) /\ forall hscale_common_gfull_zero_n_L. (exists hscale_left_common_gfull_zero_n_L. hscale_common_gfull_zero_n_L = a * hscale_left_common_gfull_zero_n_L) -> (exists hscale_right_common_gfull_zero_n_L. hscale_common_gfull_zero_n_L = b * hscale_right_common_gfull_zero_n_L) -> exists hscale_least_factor_gfull_zero_n_L. hscale_common_gfull_zero_n_L = L * hscale_least_factor_gfull_zero_n_L)) -> ((((exists ec_gcd_left_gfull_zero_n_ga. a = ga * ec_gcd_left_gfull_zero_n_ga) /\ (exists ec_gcd_right_gfull_zero_n_ga. n = ga * ec_gcd_right_gfull_zero_n_ga)) /\ forall ec_gcd_common_gfull_zero_n_ga. (exists ec_gcd_common_left_gfull_zero_n_ga. a = ec_gcd_common_gfull_zero_n_ga * ec_gcd_common_left_gfull_zero_n_ga) -> (exists ec_gcd_common_right_gfull_zero_n_ga. n = ec_gcd_common_gfull_zero_n_ga * ec_gcd_common_right_gfull_zero_n_ga) -> exists ec_gcd_greatest_gfull_zero_n_ga. ga = ec_gcd_common_gfull_zero_n_ga * ec_gcd_greatest_gfull_zero_n_ga)) -> ((((exists ec_gcd_left_gfull_zero_n_gb. b = gb * ec_gcd_left_gfull_zero_n_gb) /\ (exists ec_gcd_right_gfull_zero_n_gb. n = gb * ec_gcd_right_gfull_zero_n_gb)) /\ forall ec_gcd_common_gfull_zero_n_gb. (exists ec_gcd_common_left_gfull_zero_n_gb. b = ec_gcd_common_gfull_zero_n_gb * ec_gcd_common_left_gfull_zero_n_gb) -> (exists ec_gcd_common_right_gfull_zero_n_gb. n = ec_gcd_common_gfull_zero_n_gb * ec_gcd_common_right_gfull_zero_n_gb) -> exists ec_gcd_greatest_gfull_zero_n_gb. gb = ec_gcd_common_gfull_zero_n_gb * ec_gcd_greatest_gfull_zero_n_gb)) -> ((((exists ec_gcd_left_gfull_zero_n_g. L = g * ec_gcd_left_gfull_zero_n_g) /\ (exists ec_gcd_right_gfull_zero_n_g. n = g * ec_gcd_right_gfull_zero_n_g)) /\ forall ec_gcd_common_gfull_zero_n_g. (exists ec_gcd_common_left_gfull_zero_n_g. L = ec_gcd_common_gfull_zero_n_g * ec_gcd_common_left_gfull_zero_n_g) -> (exists ec_gcd_common_right_gfull_zero_n_g. n = ec_gcd_common_gfull_zero_n_g * ec_gcd_common_right_gfull_zero_n_g) -> exists ec_gcd_greatest_gfull_zero_n_g. g = ec_gcd_common_gfull_zero_n_g * ec_gcd_greatest_gfull_zero_n_g)) -> ((((exists hscale_left_factor_gfull_zero_n_result. g = ga * hscale_left_factor_gfull_zero_n_result) /\ (exists hscale_right_factor_gfull_zero_n_result. g = gb * hscale_right_factor_gfull_zero_n_result)) /\ forall hscale_common_gfull_zero_n_result. (exists hscale_left_common_gfull_zero_n_result. hscale_common_gfull_zero_n_result = ga * hscale_left_common_gfull_zero_n_result) -> (exists hscale_right_common_gfull_zero_n_result. hscale_common_gfull_zero_n_result = gb * hscale_right_common_gfull_zero_n_result) -> exists hscale_least_factor_gfull_zero_n_result. hscale_common_gfull_zero_n_result = g * hscale_least_factor_gfull_zero_n_result))Constructive proof overview
Generated structural guide
Comparison with zero turns all three gcds into their other inputs and preserves the exact original LCM.
The unchanged tactic script uses 1 declared prerequisite and contains 41 exact native proof lines.
Alpha v34 checked-use · first admitted v27 · independently kernel and Lean verified; not Stable
Proof neighborhood
Direct dependencies
Direct 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–12
03Establish heqaL13–19
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply crt gcd zero right value.
04Establish heqbL20–26
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply crt gcd zero right value.
05Establish heqgL27–36
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply crt gcd zero right value.
06Calculate and transport equalitiesL37–40
07Use earlier factsL41–41
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L41
exact hL
Original exact command ledger · 41 lines
- 0001
intro a - 0002
intro b - 0003
intro n - 0004
intro L - 0005
intro ga - 0006
intro gb - 0007
intro g - 0008
intro hn - 0009
intro hL - 0010
intro hga - 0011
intro hgb - 0012
intro hg - 0013
have heqa : ga = a - 0014
specialize crt_gcd_zero_right_value a - 0015
specialize crt_gcd_zero_right_value ga - 0016
apply crt_gcd_zero_right_value - 0017
rewrite <- hn - 0018
rewrite <- hn - 0019
exact hga - 0020
have heqb : gb = b - 0021
specialize crt_gcd_zero_right_value b - 0022
specialize crt_gcd_zero_right_value gb - 0023
apply crt_gcd_zero_right_value - 0024
rewrite <- hn - 0025
rewrite <- hn - 0026
exact hgb - 0027
have heqg : g = L - 0028
specialize crt_gcd_zero_right_value L - 0029
specialize crt_gcd_zero_right_value g - 0030
apply crt_gcd_zero_right_value - 0031
rewrite <- hn - 0032
rewrite <- hn - 0033
exact hg - 0034
rewrite heqa - 0035
rewrite heqa - 0036
rewrite heqb - 0037
rewrite heqb - 0038
rewrite heqg - 0039
rewrite heqg - 0040
rewrite heqg - 0041
exact hL