CR0004

crt_pairwise_coprime_prefix_drop_last

Pairwise coprimality of decoded moduli restricts to every predecessor prefix.

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. CRTPairwiseCoprimePrefix(b,c,S l)CRTPairwiseCoprimePrefix(b,c,l)

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

Definition DAG

Actual proof prerequisites

le_succ · checked external prerequisite
Original expanded first-order statement
forall b c l. (forall bpr_left_index_gcrt_pairwise_drop_source bpr_right_index_gcrt_pairwise_drop_source bpr_left_value_gcrt_pairwise_drop_source bpr_right_value_gcrt_pairwise_drop_source. (exists bpr_gap_gcrt_pairwise_drop_source_left_bound. bpr_gap_gcrt_pairwise_drop_source_left_bound + S (bpr_left_index_gcrt_pairwise_drop_source) = S l) -> (exists bpr_gap_gcrt_pairwise_drop_source_right_bound. bpr_gap_gcrt_pairwise_drop_source_right_bound + S (bpr_right_index_gcrt_pairwise_drop_source) = S l) -> (((exists bpr_height_gcrt_pairwise_drop_source_left_at. bpr_height_gcrt_pairwise_drop_source_left_at + S (bpr_left_value_gcrt_pairwise_drop_source) = S ((S (bpr_left_index_gcrt_pairwise_drop_source)) * c)) /\ exists bpr_quotient_gcrt_pairwise_drop_source_left_at. b = bpr_quotient_gcrt_pairwise_drop_source_left_at * S ((S (bpr_left_index_gcrt_pairwise_drop_source)) * c) + (bpr_left_value_gcrt_pairwise_drop_source))) -> (((exists bpr_height_gcrt_pairwise_drop_source_right_at. bpr_height_gcrt_pairwise_drop_source_right_at + S (bpr_right_value_gcrt_pairwise_drop_source) = S ((S (bpr_right_index_gcrt_pairwise_drop_source)) * c)) /\ exists bpr_quotient_gcrt_pairwise_drop_source_right_at. b = bpr_quotient_gcrt_pairwise_drop_source_right_at * S ((S (bpr_right_index_gcrt_pairwise_drop_source)) * c) + (bpr_right_value_gcrt_pairwise_drop_source))) -> ~(bpr_left_index_gcrt_pairwise_drop_source = bpr_right_index_gcrt_pairwise_drop_source) -> (forall bpr_coprime_divisor_gcrt_pairwise_drop_source_coprime. (exists bpr_coprime_left_factor_gcrt_pairwise_drop_source_coprime. bpr_left_value_gcrt_pairwise_drop_source = bpr_coprime_divisor_gcrt_pairwise_drop_source_coprime * bpr_coprime_left_factor_gcrt_pairwise_drop_source_coprime) -> (exists bpr_coprime_right_factor_gcrt_pairwise_drop_source_coprime. bpr_right_value_gcrt_pairwise_drop_source = bpr_coprime_divisor_gcrt_pairwise_drop_source_coprime * bpr_coprime_right_factor_gcrt_pairwise_drop_source_coprime) -> bpr_coprime_divisor_gcrt_pairwise_drop_source_coprime = 1)) -> (forall bpr_left_index_gcrt_pairwise_drop_target bpr_right_index_gcrt_pairwise_drop_target bpr_left_value_gcrt_pairwise_drop_target bpr_right_value_gcrt_pairwise_drop_target. (exists bpr_gap_gcrt_pairwise_drop_target_left_bound. bpr_gap_gcrt_pairwise_drop_target_left_bound + S (bpr_left_index_gcrt_pairwise_drop_target) = l) -> (exists bpr_gap_gcrt_pairwise_drop_target_right_bound. bpr_gap_gcrt_pairwise_drop_target_right_bound + S (bpr_right_index_gcrt_pairwise_drop_target) = l) -> (((exists bpr_height_gcrt_pairwise_drop_target_left_at. bpr_height_gcrt_pairwise_drop_target_left_at + S (bpr_left_value_gcrt_pairwise_drop_target) = S ((S (bpr_left_index_gcrt_pairwise_drop_target)) * c)) /\ exists bpr_quotient_gcrt_pairwise_drop_target_left_at. b = bpr_quotient_gcrt_pairwise_drop_target_left_at * S ((S (bpr_left_index_gcrt_pairwise_drop_target)) * c) + (bpr_left_value_gcrt_pairwise_drop_target))) -> (((exists bpr_height_gcrt_pairwise_drop_target_right_at. bpr_height_gcrt_pairwise_drop_target_right_at + S (bpr_right_value_gcrt_pairwise_drop_target) = S ((S (bpr_right_index_gcrt_pairwise_drop_target)) * c)) /\ exists bpr_quotient_gcrt_pairwise_drop_target_right_at. b = bpr_quotient_gcrt_pairwise_drop_target_right_at * S ((S (bpr_right_index_gcrt_pairwise_drop_target)) * c) + (bpr_right_value_gcrt_pairwise_drop_target))) -> ~(bpr_left_index_gcrt_pairwise_drop_target = bpr_right_index_gcrt_pairwise_drop_target) -> (forall bpr_coprime_divisor_gcrt_pairwise_drop_target_coprime. (exists bpr_coprime_left_factor_gcrt_pairwise_drop_target_coprime. bpr_left_value_gcrt_pairwise_drop_target = bpr_coprime_divisor_gcrt_pairwise_drop_target_coprime * bpr_coprime_left_factor_gcrt_pairwise_drop_target_coprime) -> (exists bpr_coprime_right_factor_gcrt_pairwise_drop_target_coprime. bpr_right_value_gcrt_pairwise_drop_target = bpr_coprime_divisor_gcrt_pairwise_drop_target_coprime * bpr_coprime_right_factor_gcrt_pairwise_drop_target_coprime) -> bpr_coprime_divisor_gcrt_pairwise_drop_target_coprime = 1))

Complete unchanged native tactic proof

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

Read the argument

Proof checkpoints

29 script commands · 4 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 hpairs
  5. L5
    intro i
  6. L6
    intro j
  7. L7
    intro m
  8. L8
    intro n
  9. L9
    intro hi
  10. L10
    intro hj
02Fix variables and assumptionsL11–13

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

  1. L11
    intro hm
  2. L12
    intro hn
  3. L13
    intro hne
03Use earlier factsL14–23

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

  1. L14
    specialize hpairs i
  2. L15
    specialize hpairs j
  3. L16
    specialize hpairs m
  4. L17
    specialize hpairs n
  5. L18
    apply hpairs
  6. L19
    specialize le_succ (S i)
  7. L20
    specialize le_succ l
  8. L21
    apply le_succ
  9. L22
    exact hi
  10. L23
    specialize le_succ (S j)
04Use earlier factsL24–29

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

  1. L24
    specialize le_succ l
  2. L25
    apply le_succ
  3. L26
    exact hj
  4. L27
    exact hm
  5. L28
    exact hn
  6. L29
    exact hne

Library-wide reading audit

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