CR0009

crt_pairwise_coprime_prefix_last

The last decoded modulus is coprime to every actual earlier modulus in a pairwise-coprime list.

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

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.

Historical partial components only: this chapter proves canonical solutions for finite positive pairwise-coprime systems and exact LCM solution classes. G011 is now closed in the separate Alpha-v27 generalized-crt branch for arbitrary pairwise-compatible systems, including noncoprime moduli. Full G011 proof · Alpha v27

Exact theorem in conservative defined notation

∀ b. ∀ c. ∀ l. ∀ i. ∀ n. ∀ m. CRTPairwiseCoprimePrefix(b,c,S l)Lt(i,l)Beta(b,c,i,n)Beta(b,c,l,m)Coprime(n,m)

Every linked abbreviation expands hygienically to the identical original native formula.

Definition DAG

Actual proof prerequisites

le_succ · checked external prerequisitele_refl · checked external prerequisitelt_irrefl_expanded · checked external prerequisite
Original expanded first-order statement
forall b c l i n m. (forall bpr_left_index_gcrt_last_pair_source bpr_right_index_gcrt_last_pair_source bpr_left_value_gcrt_last_pair_source bpr_right_value_gcrt_last_pair_source. (exists bpr_gap_gcrt_last_pair_source_left_bound. bpr_gap_gcrt_last_pair_source_left_bound + S (bpr_left_index_gcrt_last_pair_source) = S l) -> (exists bpr_gap_gcrt_last_pair_source_right_bound. bpr_gap_gcrt_last_pair_source_right_bound + S (bpr_right_index_gcrt_last_pair_source) = S l) -> (((exists bpr_height_gcrt_last_pair_source_left_at. bpr_height_gcrt_last_pair_source_left_at + S (bpr_left_value_gcrt_last_pair_source) = S ((S (bpr_left_index_gcrt_last_pair_source)) * c)) /\ exists bpr_quotient_gcrt_last_pair_source_left_at. b = bpr_quotient_gcrt_last_pair_source_left_at * S ((S (bpr_left_index_gcrt_last_pair_source)) * c) + (bpr_left_value_gcrt_last_pair_source))) -> (((exists bpr_height_gcrt_last_pair_source_right_at. bpr_height_gcrt_last_pair_source_right_at + S (bpr_right_value_gcrt_last_pair_source) = S ((S (bpr_right_index_gcrt_last_pair_source)) * c)) /\ exists bpr_quotient_gcrt_last_pair_source_right_at. b = bpr_quotient_gcrt_last_pair_source_right_at * S ((S (bpr_right_index_gcrt_last_pair_source)) * c) + (bpr_right_value_gcrt_last_pair_source))) -> ~(bpr_left_index_gcrt_last_pair_source = bpr_right_index_gcrt_last_pair_source) -> (forall bpr_coprime_divisor_gcrt_last_pair_source_coprime. (exists bpr_coprime_left_factor_gcrt_last_pair_source_coprime. bpr_left_value_gcrt_last_pair_source = bpr_coprime_divisor_gcrt_last_pair_source_coprime * bpr_coprime_left_factor_gcrt_last_pair_source_coprime) -> (exists bpr_coprime_right_factor_gcrt_last_pair_source_coprime. bpr_right_value_gcrt_last_pair_source = bpr_coprime_divisor_gcrt_last_pair_source_coprime * bpr_coprime_right_factor_gcrt_last_pair_source_coprime) -> bpr_coprime_divisor_gcrt_last_pair_source_coprime = 1)) -> (exists ff_lt_gcrt_last_pair_index. ff_lt_gcrt_last_pair_index + S i = l) -> (((exists ff_h_gcrt_last_pair_old. ff_h_gcrt_last_pair_old + S (n) = S ((S (i)) * c)) /\ exists ff_q_gcrt_last_pair_old. b = ff_q_gcrt_last_pair_old * S ((S (i)) * c) + (n))) -> (((exists ff_h_gcrt_last_pair_new. ff_h_gcrt_last_pair_new + S (m) = S ((S (l)) * c)) /\ exists ff_q_gcrt_last_pair_new. b = ff_q_gcrt_last_pair_new * S ((S (l)) * c) + (m))) -> (forall frp_divisor_gcrt_last_pair_result. (exists frp_left_factor_gcrt_last_pair_result. n = frp_divisor_gcrt_last_pair_result * frp_left_factor_gcrt_last_pair_result) -> (exists frp_right_factor_gcrt_last_pair_result. m = frp_divisor_gcrt_last_pair_result * frp_right_factor_gcrt_last_pair_result) -> frp_divisor_gcrt_last_pair_result = 1)

Complete unchanged native tactic proof

All 28 lines are the exact independently kernel-checked original script.

Read the argument

Proof checkpoints

28 script commands · 6 reading checkpoints · 0 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.

Definition notation is shown below. Open the paired exact edition for the original native formulas. Source pairing is not a new equivalence certificate.

01Fix variables and assumptionsL1–10

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

  1. L1
    intro b
  2. L2
    intro c
  3. L3
    intro l
  4. L4
    intro i
  5. L5
    intro n
  6. L6
    intro m
  7. L7
    intro hpairs
  8. L8
    intro hi
  9. L9
    intro hn
  10. L10
    intro hm
02Use earlier factsL11–20

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

  1. L11
    specialize hpairs i
  2. L12
    specialize hpairs l
  3. L13
    specialize hpairs n
  4. L14
    specialize hpairs m
  5. L15
    apply hpairs
  6. L16
    specialize le_succ (S i)
  7. L17
    specialize le_succ l
  8. L18
    apply le_succ
  9. L19
    exact hi
  10. L20
    specialize le_refl (S l)
03Use earlier factsL21–23

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

  1. L21
    exact le_refl
  2. L22
    exact hn
  3. L23
    exact hm
04Fix variables and assumptionsL24–24

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

  1. L24
    intro heq
05Calculate and transport equalitiesL25–25

Carry out the recorded arithmetic or equality steps; inspect the exact commands for their direction and premises.

  1. L25
    rewrite heq at hi
06Use earlier factsL26–28

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

  1. L26
    specialize lt_irrefl_expanded l
  2. L27
    apply lt_irrefl_expanded
  3. L28
    exact hi

Library-wide reading audit

Original defined command ledger · 28 lines
  1. 0001intro b
  2. 0002intro c
  3. 0003intro l
  4. 0004intro i
  5. 0005intro n
  6. 0006intro m
  7. 0007intro hpairs
  8. 0008intro hi
  9. 0009intro hn
  10. 0010intro hm
  11. 0011specialize hpairs i
  12. 0012specialize hpairs l
  13. 0013specialize hpairs n
  14. 0014specialize hpairs m
  15. 0015apply hpairs
  16. 0016specialize le_succ (S i)
  17. 0017specialize le_succ l
  18. 0018apply le_succ
  19. 0019exact hi
  20. 0020specialize le_refl (S l)
  21. 0021exact le_refl
  22. 0022exact hn
  23. 0023exact hm
  24. 0024intro heq
  25. 0025rewrite heq at hi
  26. 0026specialize lt_irrefl_expanded l
  27. 0027apply lt_irrefl_expanded
  28. 0028exact hi