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 m n d. ~(d=0) -> (forall sfd_common_divisor_cdp_exists_coprime. (exists pvs_factor_cdp_exists_coprimeleft. (m) = (sfd_common_divisor_cdp_exists_coprime) * pvs_factor_cdp_exists_coprimeleft) -> (exists pvs_factor_cdp_exists_coprimeright. (n) = (sfd_common_divisor_cdp_exists_coprime) * pvs_factor_cdp_exists_coprimeright) -> sfd_common_divisor_cdp_exists_coprime = 1) -> (exists pvs_factor_cdp_exists_divisor. (m*n) = (d) * pvs_factor_cdp_exists_divisor) -> exists a b. (((~((a)=0)) /\ (((~((b)=0)) /\ (((exists pvs_factor_cdp_exists_resultleft. (m) = (a) * pvs_factor_cdp_exists_resultleft) /\ (((exists pvs_factor_cdp_exists_resultright. (n) = (b) * pvs_factor_cdp_exists_resultright) /\ ((d)=(a)*(b))))))))))Constructive proof overview
Generated structural guide
Canonical gcd existence supplies real positive divisor coordinates, without a factorization or choice oracle.
The unchanged tactic script uses 5 declared prerequisites and contains 61 exact native proof lines.
Alpha v34 checked-use · first admitted v32 · independently kernel and Lean verified; not Stable
Proof neighborhood
Direct dependencies
canonical_gcd_exists Alpha theorem; checked-use authorized MX000C coprime_divisor_gcd_product factor_nonzero_left Stable theorem; checked-use authorized factor_nonzero_right Alpha theorem; checked-use authorized is_gcd_dvd_left Stable 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–6
02Establish haL7–10
03Separate the logical casesL11–11
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L11
cases ha
04Establish hbL12–15
05Separate the logical casesL16–16
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L16
cases hb
06Establish heqL17–26
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply coprime divisor gcd product.
- L17
have heq : d=x*x1 - L18
specialize coprime_divisor_gcd_product (m) - L19
specialize coprime_divisor_gcd_product (n) - L20
specialize coprime_divisor_gcd_product (d) - L21
specialize coprime_divisor_gcd_product (x) - L22
specialize coprime_divisor_gcd_product (x1) - L23
apply coprime_divisor_gcd_product - L24
exact hd - L25
exact hc - L26
exact hdiv
07Use earlier factsL27–28
08Construct an explicit witnessL29–30
09Separate the logical casesL31–31
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L31
split
10Fix variables and assumptionsL32–32
Work with arbitrary variables or the premises of the current implication.
- L32
intro hzero
11Use earlier factsL33–39
12Separate the logical casesL40–40
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L40
split
13Fix variables and assumptionsL41–41
Work with arbitrary variables or the premises of the current implication.
- L41
intro hzero
14Use earlier factsL42–48
15Separate the logical casesL49–49
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L49
split
16Use earlier factsL50–54
17Separate the logical casesL55–55
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L55
split
Original exact command ledger · 61 lines
- 0001
intro m - 0002
intro n - 0003
intro d - 0004
intro hd - 0005
intro hc - 0006
intro hdiv - 0007
have ha : exists a. (((exists ec_gcd_left_cor_cdp_exists_left. m = a * ec_gcd_left_cor_cdp_exists_left) /\ (exists ec_gcd_right_cor_cdp_exists_left. d = a * ec_gcd_right_cor_cdp_exists_left)) /\ forall ec_gcd_common_cor_cdp_exists_left. (exists ec_gcd_common_left_cor_cdp_exists_left. m = ec_gcd_common_cor_cdp_exists_left * ec_gcd_common_left_cor_cdp_exists_left) -> (exists ec_gcd_common_right_cor_cdp_exists_left. d = ec_gcd_common_cor_cdp_exists_left * ec_gcd_common_right_cor_cdp_exists_left) -> exists ec_gcd_greatest_cor_cdp_exists_left. a = ec_gcd_common_cor_cdp_exists_left * ec_gcd_greatest_cor_cdp_exists_left) - 0008
specialize canonical_gcd_exists (m) - 0009
specialize canonical_gcd_exists (d) - 0010
apply canonical_gcd_exists - 0011
cases ha - 0012
have hb : exists b. (((exists ec_gcd_left_cor_cdp_exists_right. n = b * ec_gcd_left_cor_cdp_exists_right) /\ (exists ec_gcd_right_cor_cdp_exists_right. d = b * ec_gcd_right_cor_cdp_exists_right)) /\ forall ec_gcd_common_cor_cdp_exists_right. (exists ec_gcd_common_left_cor_cdp_exists_right. n = ec_gcd_common_cor_cdp_exists_right * ec_gcd_common_left_cor_cdp_exists_right) -> (exists ec_gcd_common_right_cor_cdp_exists_right. d = ec_gcd_common_cor_cdp_exists_right * ec_gcd_common_right_cor_cdp_exists_right) -> exists ec_gcd_greatest_cor_cdp_exists_right. b = ec_gcd_common_cor_cdp_exists_right * ec_gcd_greatest_cor_cdp_exists_right) - 0013
specialize canonical_gcd_exists (n) - 0014
specialize canonical_gcd_exists (d) - 0015
apply canonical_gcd_exists - 0016
cases hb - 0017
have heq : d=x*x1 - 0018
specialize coprime_divisor_gcd_product (m) - 0019
specialize coprime_divisor_gcd_product (n) - 0020
specialize coprime_divisor_gcd_product (d) - 0021
specialize coprime_divisor_gcd_product (x) - 0022
specialize coprime_divisor_gcd_product (x1) - 0023
apply coprime_divisor_gcd_product - 0024
exact hd - 0025
exact hc - 0026
exact hdiv - 0027
exact ha_witness - 0028
exact hb_witness - 0029
exists x - 0030
exists x1 - 0031
split - 0032
intro hzero - 0033
specialize factor_nonzero_left (d) - 0034
specialize factor_nonzero_left (x) - 0035
specialize factor_nonzero_left (x1) - 0036
apply factor_nonzero_left - 0037
exact hd - 0038
exact heq - 0039
exact hzero - 0040
split - 0041
intro hzero - 0042
specialize factor_nonzero_right (d) - 0043
specialize factor_nonzero_right (x) - 0044
specialize factor_nonzero_right (x1) - 0045
apply factor_nonzero_right - 0046
exact hd - 0047
exact heq - 0048
exact hzero - 0049
split - 0050
specialize is_gcd_dvd_left (x) - 0051
specialize is_gcd_dvd_left (m) - 0052
specialize is_gcd_dvd_left (d) - 0053
apply is_gcd_dvd_left - 0054
exact ha_witness - 0055
split - 0056
specialize is_gcd_dvd_left (x1) - 0057
specialize is_gcd_dvd_left (n) - 0058
specialize is_gcd_dvd_left (d) - 0059
apply is_gcd_dvd_left - 0060
exact hb_witness - 0061
exact heq