FC000C

crt_pairwise_compatible_prefix_induces_gcd_congruences

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

Pairwise compatibility and an actual prefix solution imply every gcd congruence needed for the next merge, without any dominating-last or coprimality assumption.

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 r s b c l i x a n. (forall gcomp_left_index_gfull_bridge_pairs gcomp_right_index_gfull_bridge_pairs gcomp_left_residue_gfull_bridge_pairs gcomp_right_residue_gfull_bridge_pairs gcomp_left_modulus_gfull_bridge_pairs gcomp_right_modulus_gfull_bridge_pairs gcomp_pair_gcd_gfull_bridge_pairs. (exists ff_lt_gcrt_gfull_bridge_pairs_left_bound. ff_lt_gcrt_gfull_bridge_pairs_left_bound + S gcomp_left_index_gfull_bridge_pairs = l) -> (exists ff_lt_gcrt_gfull_bridge_pairs_right_bound. ff_lt_gcrt_gfull_bridge_pairs_right_bound + S gcomp_right_index_gfull_bridge_pairs = l) -> (((exists ff_h_gcrt_gfull_bridge_pairs_left_residue. ff_h_gcrt_gfull_bridge_pairs_left_residue + S (gcomp_left_residue_gfull_bridge_pairs) = S ((S (gcomp_left_index_gfull_bridge_pairs)) * s)) /\ exists ff_q_gcrt_gfull_bridge_pairs_left_residue. r = ff_q_gcrt_gfull_bridge_pairs_left_residue * S ((S (gcomp_left_index_gfull_bridge_pairs)) * s) + (gcomp_left_residue_gfull_bridge_pairs))) -> (((exists ff_h_gcrt_gfull_bridge_pairs_right_residue. ff_h_gcrt_gfull_bridge_pairs_right_residue + S (gcomp_right_residue_gfull_bridge_pairs) = S ((S (gcomp_right_index_gfull_bridge_pairs)) * s)) /\ exists ff_q_gcrt_gfull_bridge_pairs_right_residue. r = ff_q_gcrt_gfull_bridge_pairs_right_residue * S ((S (gcomp_right_index_gfull_bridge_pairs)) * s) + (gcomp_right_residue_gfull_bridge_pairs))) -> (((exists ff_h_gcrt_gfull_bridge_pairs_left_modulus. ff_h_gcrt_gfull_bridge_pairs_left_modulus + S (gcomp_left_modulus_gfull_bridge_pairs) = S ((S (gcomp_left_index_gfull_bridge_pairs)) * c)) /\ exists ff_q_gcrt_gfull_bridge_pairs_left_modulus. b = ff_q_gcrt_gfull_bridge_pairs_left_modulus * S ((S (gcomp_left_index_gfull_bridge_pairs)) * c) + (gcomp_left_modulus_gfull_bridge_pairs))) -> (((exists ff_h_gcrt_gfull_bridge_pairs_right_modulus. ff_h_gcrt_gfull_bridge_pairs_right_modulus + S (gcomp_right_modulus_gfull_bridge_pairs) = S ((S (gcomp_right_index_gfull_bridge_pairs)) * c)) /\ exists ff_q_gcrt_gfull_bridge_pairs_right_modulus. b = ff_q_gcrt_gfull_bridge_pairs_right_modulus * S ((S (gcomp_right_index_gfull_bridge_pairs)) * c) + (gcomp_right_modulus_gfull_bridge_pairs))) -> ((((exists hag_left_factor_gcomp_gfull_bridge_pairs_gcd. gcomp_left_modulus_gfull_bridge_pairs = gcomp_pair_gcd_gfull_bridge_pairs * hag_left_factor_gcomp_gfull_bridge_pairs_gcd) /\ (exists hag_right_factor_gcomp_gfull_bridge_pairs_gcd. gcomp_right_modulus_gfull_bridge_pairs = gcomp_pair_gcd_gfull_bridge_pairs * hag_right_factor_gcomp_gfull_bridge_pairs_gcd)) /\ forall hag_divisor_gcomp_gfull_bridge_pairs_gcd. (exists hag_common_left_gcomp_gfull_bridge_pairs_gcd. gcomp_left_modulus_gfull_bridge_pairs = hag_divisor_gcomp_gfull_bridge_pairs_gcd * hag_common_left_gcomp_gfull_bridge_pairs_gcd) -> (exists hag_common_right_gcomp_gfull_bridge_pairs_gcd. gcomp_right_modulus_gfull_bridge_pairs = hag_divisor_gcomp_gfull_bridge_pairs_gcd * hag_common_right_gcomp_gfull_bridge_pairs_gcd) -> exists hag_greatest_factor_gcomp_gfull_bridge_pairs_gcd. gcomp_pair_gcd_gfull_bridge_pairs = hag_divisor_gcomp_gfull_bridge_pairs_gcd * hag_greatest_factor_gcomp_gfull_bridge_pairs_gcd)) -> (exists hgcrt_mod_left_gcrt_gfull_bridge_pairs_result hgcrt_mod_right_gcrt_gfull_bridge_pairs_result. gcomp_left_residue_gfull_bridge_pairs + gcomp_pair_gcd_gfull_bridge_pairs * hgcrt_mod_left_gcrt_gfull_bridge_pairs_result = gcomp_right_residue_gfull_bridge_pairs + gcomp_pair_gcd_gfull_bridge_pairs * hgcrt_mod_right_gcrt_gfull_bridge_pairs_result)) -> (exists ff_lt_gcrt_gfull_bridge_index. ff_lt_gcrt_gfull_bridge_index + S i = l) -> (forall gcrt_solution_index_gfull_bridge_solution gcrt_solution_residue_gfull_bridge_solution gcrt_solution_modulus_gfull_bridge_solution. (exists ff_lt_gcrt_gfull_bridge_solution_bound. ff_lt_gcrt_gfull_bridge_solution_bound + S gcrt_solution_index_gfull_bridge_solution = i) -> (((exists ff_h_gcrt_gfull_bridge_solution_residue. ff_h_gcrt_gfull_bridge_solution_residue + S (gcrt_solution_residue_gfull_bridge_solution) = S ((S (gcrt_solution_index_gfull_bridge_solution)) * s)) /\ exists ff_q_gcrt_gfull_bridge_solution_residue. r = ff_q_gcrt_gfull_bridge_solution_residue * S ((S (gcrt_solution_index_gfull_bridge_solution)) * s) + (gcrt_solution_residue_gfull_bridge_solution))) -> (((exists ff_h_gcrt_gfull_bridge_solution_modulus. ff_h_gcrt_gfull_bridge_solution_modulus + S (gcrt_solution_modulus_gfull_bridge_solution) = S ((S (gcrt_solution_index_gfull_bridge_solution)) * c)) /\ exists ff_q_gcrt_gfull_bridge_solution_modulus. b = ff_q_gcrt_gfull_bridge_solution_modulus * S ((S (gcrt_solution_index_gfull_bridge_solution)) * c) + (gcrt_solution_modulus_gfull_bridge_solution))) -> (exists hgcrt_mod_left_gcrt_gfull_bridge_solution_congruence hgcrt_mod_right_gcrt_gfull_bridge_solution_congruence. x + gcrt_solution_modulus_gfull_bridge_solution * hgcrt_mod_left_gcrt_gfull_bridge_solution_congruence = gcrt_solution_residue_gfull_bridge_solution + gcrt_solution_modulus_gfull_bridge_solution * hgcrt_mod_right_gcrt_gfull_bridge_solution_congruence)) -> (((exists ff_h_gcrt_gfull_bridge_residue. ff_h_gcrt_gfull_bridge_residue + S (a) = S ((S (i)) * s)) /\ exists ff_q_gcrt_gfull_bridge_residue. r = ff_q_gcrt_gfull_bridge_residue * S ((S (i)) * s) + (a))) -> (((exists ff_h_gcrt_gfull_bridge_modulus. ff_h_gcrt_gfull_bridge_modulus + S (n) = S ((S (i)) * c)) /\ exists ff_q_gcrt_gfull_bridge_modulus. b = ff_q_gcrt_gfull_bridge_modulus * S ((S (i)) * c) + (n))) -> (forall gfull_index_bridge_result gfull_modulus_bridge_result gfull_gcd_bridge_result. (exists ff_lt_gcrt_gfull_bridge_result_bound. ff_lt_gcrt_gfull_bridge_result_bound + S gfull_index_bridge_result = i) -> (((exists ff_h_gcrt_gfull_bridge_result_entry. ff_h_gcrt_gfull_bridge_result_entry + S (gfull_modulus_bridge_result) = S ((S (gfull_index_bridge_result)) * c)) /\ exists ff_q_gcrt_gfull_bridge_result_entry. b = ff_q_gcrt_gfull_bridge_result_entry * S ((S (gfull_index_bridge_result)) * c) + (gfull_modulus_bridge_result))) -> ((((exists ec_gcd_left_gfull_bridge_result_gcd. gfull_modulus_bridge_result = gfull_gcd_bridge_result * ec_gcd_left_gfull_bridge_result_gcd) /\ (exists ec_gcd_right_gfull_bridge_result_gcd. n = gfull_gcd_bridge_result * ec_gcd_right_gfull_bridge_result_gcd)) /\ forall ec_gcd_common_gfull_bridge_result_gcd. (exists ec_gcd_common_left_gfull_bridge_result_gcd. gfull_modulus_bridge_result = ec_gcd_common_gfull_bridge_result_gcd * ec_gcd_common_left_gfull_bridge_result_gcd) -> (exists ec_gcd_common_right_gfull_bridge_result_gcd. n = ec_gcd_common_gfull_bridge_result_gcd * ec_gcd_common_right_gfull_bridge_result_gcd) -> exists ec_gcd_greatest_gfull_bridge_result_gcd. gfull_gcd_bridge_result = ec_gcd_common_gfull_bridge_result_gcd * ec_gcd_greatest_gfull_bridge_result_gcd)) -> (exists hgcrt_mod_left_gfull_bridge_result_mod hgcrt_mod_right_gfull_bridge_result_mod. x + gfull_gcd_bridge_result * hgcrt_mod_left_gfull_bridge_result_mod = a + gfull_gcd_bridge_result * hgcrt_mod_right_gfull_bridge_result_mod))

Constructive proof overview

Generated structural guide

Pairwise compatibility and an actual prefix solution imply every gcd congruence needed for the next merge, without any dominating-last or coprimality assumption.

The unchanged tactic script uses 5 declared prerequisites and contains 68 exact native proof lines.

Alpha v34 checked-use · first admitted v27 · independently kernel and Lean verified; not Stable

Proof neighborhood

Direct dependencies

beta_at_exists Stable theorem; checked-use authorized lt_trans Stable theorem; checked-use authorized mod_eq_trans Stable theorem; checked-use authorized mod_eq_of_mod_eq_multiple Stable theorem; checked-use authorized is_gcd_dvd_left 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

68 script commands · 9 reading checkpoints · 1 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.

01Fix variables and assumptionsL1–10

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

  1. L1
    intro r
  2. L2
    intro s
  3. L3
    intro b
  4. L4
    intro c
  5. L5
    intro l
  6. L6
    intro i
  7. L7
    intro x
  8. L8
    intro a
  9. L9
    intro n
  10. L10
    intro hp
02Fix variables and assumptionsL11–20

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

  1. L11
    intro hi
  2. L12
    intro hs
  3. L13
    intro ha
  4. L14
    intro hn
  5. L15
    intro j
  6. L16
    intro m
  7. L17
    intro d
  8. L18
    intro hj
  9. L19
    intro hm
  10. L20
    intro hd
03Establish hzL21–25

Establish this local claim before using it. It is not an additional assumption. The following proof commands apply beta at exists.

  1. L21
    have hz : exists z. ((exists ff_h_gcrt_gfull_bridge_previous_residue. ff_h_gcrt_gfull_bridge_previous_residue + S (z) = S ((S (j)) * s)) /\ exists ff_q_gcrt_gfull_bridge_previous_residue. r = ff_q_gcrt_gfull_bridge_previous_residue * S ((S (j)) * s) + (z))
  2. L22
    specialize beta_at_exists r
  3. L23
    specialize beta_at_exists s
  4. L24
    specialize beta_at_exists j
  5. L25
    apply beta_at_exists
04Separate the logical casesL26–26

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

  1. L26
    cases hz
05Use earlier factsL27–36

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

  1. L27
    specialize mod_eq_trans d
  2. L28
    specialize mod_eq_trans x
  3. L29
    specialize mod_eq_trans x1
  4. L30
    specialize mod_eq_trans a
  5. L31
    apply mod_eq_trans
  6. L32
    specialize mod_eq_of_mod_eq_multiple d
  7. L33
    specialize mod_eq_of_mod_eq_multiple m
  8. L34
    specialize mod_eq_of_mod_eq_multiple x
  9. L35
    specialize mod_eq_of_mod_eq_multiple x1
  10. L36
    apply mod_eq_of_mod_eq_multiple
06Use earlier factsL37–46

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

  1. L37
    specialize is_gcd_dvd_left d
  2. L38
    specialize is_gcd_dvd_left m
  3. L39
    specialize is_gcd_dvd_left n
  4. L40
    apply is_gcd_dvd_left
  5. L41
    exact hd
  6. L42
    specialize hs j
  7. L43
    specialize hs x1
  8. L44
    specialize hs m
  9. L45
    apply hs
  10. L46
    exact hj
07Use earlier factsL47–56

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

  1. L47
    exact hz_witness
  2. L48
    exact hm
  3. L49
    specialize hp j
  4. L50
    specialize hp i
  5. L51
    specialize hp x1
  6. L52
    specialize hp a
  7. L53
    specialize hp m
  8. L54
    specialize hp n
  9. L55
    specialize hp d
  10. L56
    apply hp
08Use earlier factsL57–66

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

  1. L57
    specialize lt_trans j
  2. L58
    specialize lt_trans i
  3. L59
    specialize lt_trans l
  4. L60
    apply lt_trans
  5. L61
    exact hj
  6. L62
    exact hi
  7. L63
    exact hi
  8. L64
    exact hz_witness
  9. L65
    exact ha
  10. L66
    exact hm
09Use earlier factsL67–68

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

  1. L67
    exact hn
  2. L68
    exact hd

Library-wide reading audit

Original exact command ledger · 68 lines
  1. 0001intro r
  2. 0002intro s
  3. 0003intro b
  4. 0004intro c
  5. 0005intro l
  6. 0006intro i
  7. 0007intro x
  8. 0008intro a
  9. 0009intro n
  10. 0010intro hp
  11. 0011intro hi
  12. 0012intro hs
  13. 0013intro ha
  14. 0014intro hn
  15. 0015intro j
  16. 0016intro m
  17. 0017intro d
  18. 0018intro hj
  19. 0019intro hm
  20. 0020intro hd
  21. 0021have hz : exists z. ((exists ff_h_gcrt_gfull_bridge_previous_residue. ff_h_gcrt_gfull_bridge_previous_residue + S (z) = S ((S (j)) * s)) /\ exists ff_q_gcrt_gfull_bridge_previous_residue. r = ff_q_gcrt_gfull_bridge_previous_residue * S ((S (j)) * s) + (z))
  22. 0022specialize beta_at_exists r
  23. 0023specialize beta_at_exists s
  24. 0024specialize beta_at_exists j
  25. 0025apply beta_at_exists
  26. 0026cases hz
  27. 0027specialize mod_eq_trans d
  28. 0028specialize mod_eq_trans x
  29. 0029specialize mod_eq_trans x1
  30. 0030specialize mod_eq_trans a
  31. 0031apply mod_eq_trans
  32. 0032specialize mod_eq_of_mod_eq_multiple d
  33. 0033specialize mod_eq_of_mod_eq_multiple m
  34. 0034specialize mod_eq_of_mod_eq_multiple x
  35. 0035specialize mod_eq_of_mod_eq_multiple x1
  36. 0036apply mod_eq_of_mod_eq_multiple
  37. 0037specialize is_gcd_dvd_left d
  38. 0038specialize is_gcd_dvd_left m
  39. 0039specialize is_gcd_dvd_left n
  40. 0040apply is_gcd_dvd_left
  41. 0041exact hd
  42. 0042specialize hs j
  43. 0043specialize hs x1
  44. 0044specialize hs m
  45. 0045apply hs
  46. 0046exact hj
  47. 0047exact hz_witness
  48. 0048exact hm
  49. 0049specialize hp j
  50. 0050specialize hp i
  51. 0051specialize hp x1
  52. 0052specialize hp a
  53. 0053specialize hp m
  54. 0054specialize hp n
  55. 0055specialize hp d
  56. 0056apply hp
  57. 0057specialize lt_trans j
  58. 0058specialize lt_trans i
  59. 0059specialize lt_trans l
  60. 0060apply lt_trans
  61. 0061exact hj
  62. 0062exact hi
  63. 0063exact hi
  64. 0064exact hz_witness
  65. 0065exact ha
  66. 0066exact hm
  67. 0067exact hn
  68. 0068exact hd