MX000D

coprime_divisor_factor_pair_coordinates

Alpha v34 independently verified · alpha_closed; checked-use authorized; not Stable

Every actual positive factor pair has its coordinates recovered by the two canonical relational gcds.

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 authorized

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

77 script commands · 12 reading checkpoints · 6 local claims

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.

Long local formulas use this family’s existing definitions. Each new abbreviation was expanded back to the identical native formula, including its free-variable context. The original edition is preserved below.

01Fix variables and assumptionsL1–7

Work with arbitrary variables or the premises of the current implication.

  1. L1
    intro m
  2. L2
    intro n
  3. L3
    intro d
  4. L4
    intro a
  5. L5
    intro b
  6. L6
    intro hc
  7. L7
    intro hp
02Separate the logical casesL8–11

Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.

  1. L8
    cases hp
  2. L9
    cases hp_right
  3. L10
    cases hp_right_right
  4. L11
    cases hp_right_right_right
03Establish hbmL12–21

Establish this local claim before using it. It is not an additional assumption. The following proof commands apply coprime symm.

  1. 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
  2. L13
    specialize coprime_symm (m)
  3. L14
    specialize coprime_symm (b)
  4. L15
    apply coprime_symm
  5. L16
    specialize crt_coprime_divisor_pair (m)
  6. L17
    specialize crt_coprime_divisor_pair (n)
  7. L18
    specialize crt_coprime_divisor_pair (m)
  8. L19
    specialize crt_coprime_divisor_pair (b)
  9. L20
    apply crt_coprime_divisor_pair
  10. L21
    exact hc
04Use earlier factsL22–24

Instantiate or apply named facts and discharge the corresponding proof obligations.

  1. L22
    specialize multiple_refl (m)
  2. L23
    apply multiple_refl
  3. L24
    exact hp_right_right_right_left
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.

  1. 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
  2. L26
    specialize crt_coprime_divisor_pair (m)
  3. L27
    specialize crt_coprime_divisor_pair (n)
  4. L28
    specialize crt_coprime_divisor_pair (a)
  5. L29
    specialize crt_coprime_divisor_pair (n)
  6. L30
    apply crt_coprime_divisor_pair
  7. L31
    exact hc
  8. L32
    exact hp_right_right_left
  9. L33
    specialize multiple_refl (n)
  10. L34
    apply multiple_refl
06Establish hbaseaL35–39

Establish this local claim before using it. It is not an additional assumption. The following proof commands apply is gcd of dvd.

  1. L35
    have hbasea : IsGCD(a,a,m)Definitions: IsGCD
  2. L36
    specialize is_gcd_of_dvd (a)
  3. L37
    specialize is_gcd_of_dvd (m)
  4. L38
    apply is_gcd_of_dvd
  5. L39
    exact hp_right_right_left
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.

  1. L40
    have hrestorea : IsGCD(a,d,m)Definitions: IsGCD
  2. L41
    specialize crt_is_gcd_coprime_factor_remove (b)
  3. L42
    specialize crt_is_gcd_coprime_factor_remove (a)
  4. L43
    specialize crt_is_gcd_coprime_factor_remove (m)
  5. L44
    specialize crt_is_gcd_coprime_factor_remove (a)
  6. L45
    specialize crt_is_gcd_coprime_factor_remove (d)
  7. L46
    apply crt_is_gcd_coprime_factor_remove
  8. L47
    trans a*b
  9. L48
    exact hp_right_right_right_right
  10. L49
    apply mul_comm
08Use earlier factsL50–51

Instantiate or apply named facts and discharge the corresponding proof obligations.

  1. L50
    exact hbm
  2. L51
    exact hbasea
09Establish hbasebL52–56

Establish this local claim before using it. It is not an additional assumption. The following proof commands apply is gcd of dvd.

  1. L52
    have hbaseb : IsGCD(b,b,n)Definitions: IsGCD
  2. L53
    specialize is_gcd_of_dvd (b)
  3. L54
    specialize is_gcd_of_dvd (n)
  4. L55
    apply is_gcd_of_dvd
  5. L56
    exact hp_right_right_right_left
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.

  1. L57
    have hrestoreb : IsGCD(b,d,n)Definitions: IsGCD
  2. L58
    specialize crt_is_gcd_coprime_factor_remove (a)
  3. L59
    specialize crt_is_gcd_coprime_factor_remove (b)
  4. L60
    specialize crt_is_gcd_coprime_factor_remove (n)
  5. L61
    specialize crt_is_gcd_coprime_factor_remove (b)
  6. L62
    specialize crt_is_gcd_coprime_factor_remove (d)
  7. L63
    apply crt_is_gcd_coprime_factor_remove
  8. L64
    exact hp_right_right_right_right
  9. L65
    exact han
  10. L66
    exact hbaseb
11Separate the logical casesL67–67

Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.

  1. L67
    split
12Use earlier factsL68–77

Instantiate or apply named facts and discharge the corresponding proof obligations.

  1. L68
    specialize is_gcd_symm (a)
  2. L69
    specialize is_gcd_symm (d)
  3. L70
    specialize is_gcd_symm (m)
  4. L71
    apply is_gcd_symm
  5. L72
    exact hrestorea
  6. L73
    specialize is_gcd_symm (b)
  7. L74
    specialize is_gcd_symm (d)
  8. L75
    specialize is_gcd_symm (n)
  9. L76
    apply is_gcd_symm
  10. L77
    exact hrestoreb

Library-wide reading audit

Original exact command ledger · 77 lines
  1. 0001intro m
  2. 0002intro n
  3. 0003intro d
  4. 0004intro a
  5. 0005intro b
  6. 0006intro hc
  7. 0007intro hp
  8. 0008cases hp
  9. 0009cases hp_right
  10. 0010cases hp_right_right
  11. 0011cases hp_right_right_right
  12. 0012have 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
  13. 0013specialize coprime_symm (m)
  14. 0014specialize coprime_symm (b)
  15. 0015apply coprime_symm
  16. 0016specialize crt_coprime_divisor_pair (m)
  17. 0017specialize crt_coprime_divisor_pair (n)
  18. 0018specialize crt_coprime_divisor_pair (m)
  19. 0019specialize crt_coprime_divisor_pair (b)
  20. 0020apply crt_coprime_divisor_pair
  21. 0021exact hc
  22. 0022specialize multiple_refl (m)
  23. 0023apply multiple_refl
  24. 0024exact hp_right_right_right_left
  25. 0025have 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
  26. 0026specialize crt_coprime_divisor_pair (m)
  27. 0027specialize crt_coprime_divisor_pair (n)
  28. 0028specialize crt_coprime_divisor_pair (a)
  29. 0029specialize crt_coprime_divisor_pair (n)
  30. 0030apply crt_coprime_divisor_pair
  31. 0031exact hc
  32. 0032exact hp_right_right_left
  33. 0033specialize multiple_refl (n)
  34. 0034apply multiple_refl
  35. 0035have 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)
  36. 0036specialize is_gcd_of_dvd (a)
  37. 0037specialize is_gcd_of_dvd (m)
  38. 0038apply is_gcd_of_dvd
  39. 0039exact hp_right_right_left
  40. 0040have 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)
  41. 0041specialize crt_is_gcd_coprime_factor_remove (b)
  42. 0042specialize crt_is_gcd_coprime_factor_remove (a)
  43. 0043specialize crt_is_gcd_coprime_factor_remove (m)
  44. 0044specialize crt_is_gcd_coprime_factor_remove (a)
  45. 0045specialize crt_is_gcd_coprime_factor_remove (d)
  46. 0046apply crt_is_gcd_coprime_factor_remove
  47. 0047trans a*b
  48. 0048exact hp_right_right_right_right
  49. 0049apply mul_comm
  50. 0050exact hbm
  51. 0051exact hbasea
  52. 0052have 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)
  53. 0053specialize is_gcd_of_dvd (b)
  54. 0054specialize is_gcd_of_dvd (n)
  55. 0055apply is_gcd_of_dvd
  56. 0056exact hp_right_right_right_left
  57. 0057have 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)
  58. 0058specialize crt_is_gcd_coprime_factor_remove (a)
  59. 0059specialize crt_is_gcd_coprime_factor_remove (b)
  60. 0060specialize crt_is_gcd_coprime_factor_remove (n)
  61. 0061specialize crt_is_gcd_coprime_factor_remove (b)
  62. 0062specialize crt_is_gcd_coprime_factor_remove (d)
  63. 0063apply crt_is_gcd_coprime_factor_remove
  64. 0064exact hp_right_right_right_right
  65. 0065exact han
  66. 0066exact hbaseb
  67. 0067split
  68. 0068specialize is_gcd_symm (a)
  69. 0069specialize is_gcd_symm (d)
  70. 0070specialize is_gcd_symm (m)
  71. 0071apply is_gcd_symm
  72. 0072exact hrestorea
  73. 0073specialize is_gcd_symm (b)
  74. 0074specialize is_gcd_symm (d)
  75. 0075specialize is_gcd_symm (n)
  76. 0076apply is_gcd_symm
  77. 0077exact hrestoreb