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 a b. (forall sfd_common_divisor_cdp_coordinates_coprime. (exists pvs_factor_cdp_coordinates_coprimeleft. (m) = (sfd_common_divisor_cdp_coordinates_coprime) * pvs_factor_cdp_coordinates_coprimeleft) -> (exists pvs_factor_cdp_coordinates_coprimeright. (n) = (sfd_common_divisor_cdp_coordinates_coprime) * pvs_factor_cdp_coordinates_coprimeright) -> sfd_common_divisor_cdp_coordinates_coprime = 1) -> (((~((a)=0)) /\ (((~((b)=0)) /\ (((exists pvs_factor_cdp_coordinates_pairleft. (m) = (a) * pvs_factor_cdp_coordinates_pairleft) /\ (((exists pvs_factor_cdp_coordinates_pairright. (n) = (b) * pvs_factor_cdp_coordinates_pairright) /\ ((d)=(a)*(b)))))))))) -> ((((((exists ec_gcd_left_cor_cdp_coordinates_left. m = a * ec_gcd_left_cor_cdp_coordinates_left) /\ (exists ec_gcd_right_cor_cdp_coordinates_left. d = a * ec_gcd_right_cor_cdp_coordinates_left)) /\ forall ec_gcd_common_cor_cdp_coordinates_left. (exists ec_gcd_common_left_cor_cdp_coordinates_left. m = ec_gcd_common_cor_cdp_coordinates_left * ec_gcd_common_left_cor_cdp_coordinates_left) -> (exists ec_gcd_common_right_cor_cdp_coordinates_left. d = ec_gcd_common_cor_cdp_coordinates_left * ec_gcd_common_right_cor_cdp_coordinates_left) -> exists ec_gcd_greatest_cor_cdp_coordinates_left. a = ec_gcd_common_cor_cdp_coordinates_left * ec_gcd_greatest_cor_cdp_coordinates_left)) /\ ((((exists ec_gcd_left_cor_cdp_coordinates_right. n = b * ec_gcd_left_cor_cdp_coordinates_right) /\ (exists ec_gcd_right_cor_cdp_coordinates_right. d = b * ec_gcd_right_cor_cdp_coordinates_right)) /\ forall ec_gcd_common_cor_cdp_coordinates_right. (exists ec_gcd_common_left_cor_cdp_coordinates_right. n = ec_gcd_common_cor_cdp_coordinates_right * ec_gcd_common_left_cor_cdp_coordinates_right) -> (exists ec_gcd_common_right_cor_cdp_coordinates_right. d = ec_gcd_common_cor_cdp_coordinates_right * ec_gcd_common_right_cor_cdp_coordinates_right) -> exists ec_gcd_greatest_cor_cdp_coordinates_right. b = ec_gcd_common_cor_cdp_coordinates_right * ec_gcd_greatest_cor_cdp_coordinates_right))))Constructive proof overview
Generated structural guide
Every actual positive factor pair has its coordinates recovered by the two canonical relational gcds.
The unchanged tactic script uses 7 declared prerequisites and contains 77 exact native proof lines.
Alpha v34 checked-use · first admitted v32 · independently kernel and Lean verified; not Stable
Proof neighborhood
Direct dependencies
coprime_symm Stable theorem; checked-use authorized crt_coprime_divisor_pair Alpha theorem; checked-use authorized multiple_refl Stable theorem; checked-use authorized is_gcd_of_dvd Stable theorem; checked-use authorized crt_is_gcd_coprime_factor_remove Alpha theorem; checked-use authorized mul_comm Stable theorem; checked-use authorized is_gcd_symm 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.
01Fix variables and assumptionsL1–7
02Separate the logical casesL8–11
03Establish hbmL12–21
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply coprime symm.
- L12
have hbm : forall sfd_common_divisor_cdp_coordinate_bm. (exists pvs_factor_cdp_coordinate_bmleft. (b) = (sfd_common_divisor_cdp_coordinate_bm) * pvs_factor_cdp_coordinate_bmleft) -> (exists pvs_factor_cdp_coordinate_bmright. (m) = (sfd_common_divisor_cdp_coordinate_bm) * pvs_factor_cdp_coordinate_bmright) -> sfd_common_divisor_cdp_coordinate_bm = 1 - L13
specialize coprime_symm (m) - L14
specialize coprime_symm (b) - L15
apply coprime_symm - L16
specialize crt_coprime_divisor_pair (m) - L17
specialize crt_coprime_divisor_pair (n) - L18
specialize crt_coprime_divisor_pair (m) - L19
specialize crt_coprime_divisor_pair (b) - L20
apply crt_coprime_divisor_pair - L21
exact hc
04Use earlier factsL22–24
05Establish hanL25–34
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply crt coprime divisor pair.
- L25
have han : forall sfd_common_divisor_cdp_coordinate_an. (exists pvs_factor_cdp_coordinate_anleft. (a) = (sfd_common_divisor_cdp_coordinate_an) * pvs_factor_cdp_coordinate_anleft) -> (exists pvs_factor_cdp_coordinate_anright. (n) = (sfd_common_divisor_cdp_coordinate_an) * pvs_factor_cdp_coordinate_anright) -> sfd_common_divisor_cdp_coordinate_an = 1 - L26
specialize crt_coprime_divisor_pair (m) - L27
specialize crt_coprime_divisor_pair (n) - L28
specialize crt_coprime_divisor_pair (a) - L29
specialize crt_coprime_divisor_pair (n) - L30
apply crt_coprime_divisor_pair - L31
exact hc - L32
exact hp_right_right_left - L33
specialize multiple_refl (n) - L34
apply multiple_refl
06Establish hbaseaL35–39
07Establish hrestoreaL40–49
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply crt is gcd coprime factor remove.
- L40
have hrestorea : IsGCD(a,d,m)Definitions: IsGCD - L41
specialize crt_is_gcd_coprime_factor_remove (b) - L42
specialize crt_is_gcd_coprime_factor_remove (a) - L43
specialize crt_is_gcd_coprime_factor_remove (m) - L44
specialize crt_is_gcd_coprime_factor_remove (a) - L45
specialize crt_is_gcd_coprime_factor_remove (d) - L46
apply crt_is_gcd_coprime_factor_remove - L47
trans a*b - L48
exact hp_right_right_right_right - L49
apply mul_comm
08Use earlier factsL50–51
09Establish hbasebL52–56
10Establish hrestorebL57–66
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply crt is gcd coprime factor remove.
- L57
have hrestoreb : IsGCD(b,d,n)Definitions: IsGCD - L58
specialize crt_is_gcd_coprime_factor_remove (a) - L59
specialize crt_is_gcd_coprime_factor_remove (b) - L60
specialize crt_is_gcd_coprime_factor_remove (n) - L61
specialize crt_is_gcd_coprime_factor_remove (b) - L62
specialize crt_is_gcd_coprime_factor_remove (d) - L63
apply crt_is_gcd_coprime_factor_remove - L64
exact hp_right_right_right_right - L65
exact han - L66
exact hbaseb
11Separate the logical casesL67–67
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L67
split
12Use earlier factsL68–77
Instantiate or apply named facts and discharge the corresponding proof obligations.
Original exact command ledger · 77 lines
- 0001
intro m - 0002
intro n - 0003
intro d - 0004
intro a - 0005
intro b - 0006
intro hc - 0007
intro hp - 0008
cases hp - 0009
cases hp_right - 0010
cases hp_right_right - 0011
cases hp_right_right_right - 0012
have hbm : forall sfd_common_divisor_cdp_coordinate_bm. (exists pvs_factor_cdp_coordinate_bmleft. (b) = (sfd_common_divisor_cdp_coordinate_bm) * pvs_factor_cdp_coordinate_bmleft) -> (exists pvs_factor_cdp_coordinate_bmright. (m) = (sfd_common_divisor_cdp_coordinate_bm) * pvs_factor_cdp_coordinate_bmright) -> sfd_common_divisor_cdp_coordinate_bm = 1 - 0013
specialize coprime_symm (m) - 0014
specialize coprime_symm (b) - 0015
apply coprime_symm - 0016
specialize crt_coprime_divisor_pair (m) - 0017
specialize crt_coprime_divisor_pair (n) - 0018
specialize crt_coprime_divisor_pair (m) - 0019
specialize crt_coprime_divisor_pair (b) - 0020
apply crt_coprime_divisor_pair - 0021
exact hc - 0022
specialize multiple_refl (m) - 0023
apply multiple_refl - 0024
exact hp_right_right_right_left - 0025
have han : forall sfd_common_divisor_cdp_coordinate_an. (exists pvs_factor_cdp_coordinate_anleft. (a) = (sfd_common_divisor_cdp_coordinate_an) * pvs_factor_cdp_coordinate_anleft) -> (exists pvs_factor_cdp_coordinate_anright. (n) = (sfd_common_divisor_cdp_coordinate_an) * pvs_factor_cdp_coordinate_anright) -> sfd_common_divisor_cdp_coordinate_an = 1 - 0026
specialize crt_coprime_divisor_pair (m) - 0027
specialize crt_coprime_divisor_pair (n) - 0028
specialize crt_coprime_divisor_pair (a) - 0029
specialize crt_coprime_divisor_pair (n) - 0030
apply crt_coprime_divisor_pair - 0031
exact hc - 0032
exact hp_right_right_left - 0033
specialize multiple_refl (n) - 0034
apply multiple_refl - 0035
have hbasea : (((exists ec_gcd_left_cor_cdp_coordinate_basea. a = a * ec_gcd_left_cor_cdp_coordinate_basea) /\ (exists ec_gcd_right_cor_cdp_coordinate_basea. m = a * ec_gcd_right_cor_cdp_coordinate_basea)) /\ forall ec_gcd_common_cor_cdp_coordinate_basea. (exists ec_gcd_common_left_cor_cdp_coordinate_basea. a = ec_gcd_common_cor_cdp_coordinate_basea * ec_gcd_common_left_cor_cdp_coordinate_basea) -> (exists ec_gcd_common_right_cor_cdp_coordinate_basea. m = ec_gcd_common_cor_cdp_coordinate_basea * ec_gcd_common_right_cor_cdp_coordinate_basea) -> exists ec_gcd_greatest_cor_cdp_coordinate_basea. a = ec_gcd_common_cor_cdp_coordinate_basea * ec_gcd_greatest_cor_cdp_coordinate_basea) - 0036
specialize is_gcd_of_dvd (a) - 0037
specialize is_gcd_of_dvd (m) - 0038
apply is_gcd_of_dvd - 0039
exact hp_right_right_left - 0040
have hrestorea : (((exists ec_gcd_left_cor_cdp_coordinate_restorea. d = a * ec_gcd_left_cor_cdp_coordinate_restorea) /\ (exists ec_gcd_right_cor_cdp_coordinate_restorea. m = a * ec_gcd_right_cor_cdp_coordinate_restorea)) /\ forall ec_gcd_common_cor_cdp_coordinate_restorea. (exists ec_gcd_common_left_cor_cdp_coordinate_restorea. d = ec_gcd_common_cor_cdp_coordinate_restorea * ec_gcd_common_left_cor_cdp_coordinate_restorea) -> (exists ec_gcd_common_right_cor_cdp_coordinate_restorea. m = ec_gcd_common_cor_cdp_coordinate_restorea * ec_gcd_common_right_cor_cdp_coordinate_restorea) -> exists ec_gcd_greatest_cor_cdp_coordinate_restorea. a = ec_gcd_common_cor_cdp_coordinate_restorea * ec_gcd_greatest_cor_cdp_coordinate_restorea) - 0041
specialize crt_is_gcd_coprime_factor_remove (b) - 0042
specialize crt_is_gcd_coprime_factor_remove (a) - 0043
specialize crt_is_gcd_coprime_factor_remove (m) - 0044
specialize crt_is_gcd_coprime_factor_remove (a) - 0045
specialize crt_is_gcd_coprime_factor_remove (d) - 0046
apply crt_is_gcd_coprime_factor_remove - 0047
trans a*b - 0048
exact hp_right_right_right_right - 0049
apply mul_comm - 0050
exact hbm - 0051
exact hbasea - 0052
have hbaseb : (((exists ec_gcd_left_cor_cdp_coordinate_baseb. b = b * ec_gcd_left_cor_cdp_coordinate_baseb) /\ (exists ec_gcd_right_cor_cdp_coordinate_baseb. n = b * ec_gcd_right_cor_cdp_coordinate_baseb)) /\ forall ec_gcd_common_cor_cdp_coordinate_baseb. (exists ec_gcd_common_left_cor_cdp_coordinate_baseb. b = ec_gcd_common_cor_cdp_coordinate_baseb * ec_gcd_common_left_cor_cdp_coordinate_baseb) -> (exists ec_gcd_common_right_cor_cdp_coordinate_baseb. n = ec_gcd_common_cor_cdp_coordinate_baseb * ec_gcd_common_right_cor_cdp_coordinate_baseb) -> exists ec_gcd_greatest_cor_cdp_coordinate_baseb. b = ec_gcd_common_cor_cdp_coordinate_baseb * ec_gcd_greatest_cor_cdp_coordinate_baseb) - 0053
specialize is_gcd_of_dvd (b) - 0054
specialize is_gcd_of_dvd (n) - 0055
apply is_gcd_of_dvd - 0056
exact hp_right_right_right_left - 0057
have hrestoreb : (((exists ec_gcd_left_cor_cdp_coordinate_restoreb. d = b * ec_gcd_left_cor_cdp_coordinate_restoreb) /\ (exists ec_gcd_right_cor_cdp_coordinate_restoreb. n = b * ec_gcd_right_cor_cdp_coordinate_restoreb)) /\ forall ec_gcd_common_cor_cdp_coordinate_restoreb. (exists ec_gcd_common_left_cor_cdp_coordinate_restoreb. d = ec_gcd_common_cor_cdp_coordinate_restoreb * ec_gcd_common_left_cor_cdp_coordinate_restoreb) -> (exists ec_gcd_common_right_cor_cdp_coordinate_restoreb. n = ec_gcd_common_cor_cdp_coordinate_restoreb * ec_gcd_common_right_cor_cdp_coordinate_restoreb) -> exists ec_gcd_greatest_cor_cdp_coordinate_restoreb. b = ec_gcd_common_cor_cdp_coordinate_restoreb * ec_gcd_greatest_cor_cdp_coordinate_restoreb) - 0058
specialize crt_is_gcd_coprime_factor_remove (a) - 0059
specialize crt_is_gcd_coprime_factor_remove (b) - 0060
specialize crt_is_gcd_coprime_factor_remove (n) - 0061
specialize crt_is_gcd_coprime_factor_remove (b) - 0062
specialize crt_is_gcd_coprime_factor_remove (d) - 0063
apply crt_is_gcd_coprime_factor_remove - 0064
exact hp_right_right_right_right - 0065
exact han - 0066
exact hbaseb - 0067
split - 0068
specialize is_gcd_symm (a) - 0069
specialize is_gcd_symm (d) - 0070
specialize is_gcd_symm (m) - 0071
apply is_gcd_symm - 0072
exact hrestorea - 0073
specialize is_gcd_symm (b) - 0074
specialize is_gcd_symm (d) - 0075
specialize is_gcd_symm (n) - 0076
apply is_gcd_symm - 0077
exact hrestoreb