CR000C

crt_pairwise_coprime_prefix_product_is_lcm

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

For pairwise-coprime decoded moduli the actual finite product is exactly their universal-property lcm.

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 b c l x. (forall bpr_left_index_gcrt_product_lcm_pairwise bpr_right_index_gcrt_product_lcm_pairwise bpr_left_value_gcrt_product_lcm_pairwise bpr_right_value_gcrt_product_lcm_pairwise. (exists bpr_gap_gcrt_product_lcm_pairwise_left_bound. bpr_gap_gcrt_product_lcm_pairwise_left_bound + S (bpr_left_index_gcrt_product_lcm_pairwise) = l) -> (exists bpr_gap_gcrt_product_lcm_pairwise_right_bound. bpr_gap_gcrt_product_lcm_pairwise_right_bound + S (bpr_right_index_gcrt_product_lcm_pairwise) = l) -> (((exists bpr_height_gcrt_product_lcm_pairwise_left_at. bpr_height_gcrt_product_lcm_pairwise_left_at + S (bpr_left_value_gcrt_product_lcm_pairwise) = S ((S (bpr_left_index_gcrt_product_lcm_pairwise)) * c)) /\ exists bpr_quotient_gcrt_product_lcm_pairwise_left_at. b = bpr_quotient_gcrt_product_lcm_pairwise_left_at * S ((S (bpr_left_index_gcrt_product_lcm_pairwise)) * c) + (bpr_left_value_gcrt_product_lcm_pairwise))) -> (((exists bpr_height_gcrt_product_lcm_pairwise_right_at. bpr_height_gcrt_product_lcm_pairwise_right_at + S (bpr_right_value_gcrt_product_lcm_pairwise) = S ((S (bpr_right_index_gcrt_product_lcm_pairwise)) * c)) /\ exists bpr_quotient_gcrt_product_lcm_pairwise_right_at. b = bpr_quotient_gcrt_product_lcm_pairwise_right_at * S ((S (bpr_right_index_gcrt_product_lcm_pairwise)) * c) + (bpr_right_value_gcrt_product_lcm_pairwise))) -> ~(bpr_left_index_gcrt_product_lcm_pairwise = bpr_right_index_gcrt_product_lcm_pairwise) -> (forall bpr_coprime_divisor_gcrt_product_lcm_pairwise_coprime. (exists bpr_coprime_left_factor_gcrt_product_lcm_pairwise_coprime. bpr_left_value_gcrt_product_lcm_pairwise = bpr_coprime_divisor_gcrt_product_lcm_pairwise_coprime * bpr_coprime_left_factor_gcrt_product_lcm_pairwise_coprime) -> (exists bpr_coprime_right_factor_gcrt_product_lcm_pairwise_coprime. bpr_right_value_gcrt_product_lcm_pairwise = bpr_coprime_divisor_gcrt_product_lcm_pairwise_coprime * bpr_coprime_right_factor_gcrt_product_lcm_pairwise_coprime) -> bpr_coprime_divisor_gcrt_product_lcm_pairwise_coprime = 1)) -> (exists ff_u_gcrt_product_lcm_source ff_v_gcrt_product_lcm_source. ((((exists ff_h_gcrt_product_lcm_source_start. ff_h_gcrt_product_lcm_source_start + S (1) = S ((S (0)) * ff_v_gcrt_product_lcm_source)) /\ exists ff_q_gcrt_product_lcm_source_start. ff_u_gcrt_product_lcm_source = ff_q_gcrt_product_lcm_source_start * S ((S (0)) * ff_v_gcrt_product_lcm_source) + (1))) /\ ((((exists ff_h_gcrt_product_lcm_source_terminal. ff_h_gcrt_product_lcm_source_terminal + S (x) = S ((S (l)) * ff_v_gcrt_product_lcm_source)) /\ exists ff_q_gcrt_product_lcm_source_terminal. ff_u_gcrt_product_lcm_source = ff_q_gcrt_product_lcm_source_terminal * S ((S (l)) * ff_v_gcrt_product_lcm_source) + (x))) /\ forall ff_i_gcrt_product_lcm_source. (exists ff_lt_gcrt_product_lcm_source_bound. ff_lt_gcrt_product_lcm_source_bound + S ff_i_gcrt_product_lcm_source = l) -> exists ff_p_gcrt_product_lcm_source ff_r_gcrt_product_lcm_source ff_s_gcrt_product_lcm_source. ((((exists ff_h_gcrt_product_lcm_source_factor. ff_h_gcrt_product_lcm_source_factor + S (ff_p_gcrt_product_lcm_source) = S ((S (ff_i_gcrt_product_lcm_source)) * c)) /\ exists ff_q_gcrt_product_lcm_source_factor. b = ff_q_gcrt_product_lcm_source_factor * S ((S (ff_i_gcrt_product_lcm_source)) * c) + (ff_p_gcrt_product_lcm_source))) /\ ((((exists ff_h_gcrt_product_lcm_source_partial. ff_h_gcrt_product_lcm_source_partial + S (ff_r_gcrt_product_lcm_source) = S ((S (ff_i_gcrt_product_lcm_source)) * ff_v_gcrt_product_lcm_source)) /\ exists ff_q_gcrt_product_lcm_source_partial. ff_u_gcrt_product_lcm_source = ff_q_gcrt_product_lcm_source_partial * S ((S (ff_i_gcrt_product_lcm_source)) * ff_v_gcrt_product_lcm_source) + (ff_r_gcrt_product_lcm_source))) /\ ((((exists ff_h_gcrt_product_lcm_source_successor. ff_h_gcrt_product_lcm_source_successor + S (ff_s_gcrt_product_lcm_source) = S ((S (S ff_i_gcrt_product_lcm_source)) * ff_v_gcrt_product_lcm_source)) /\ exists ff_q_gcrt_product_lcm_source_successor. ff_u_gcrt_product_lcm_source = ff_q_gcrt_product_lcm_source_successor * S ((S (S ff_i_gcrt_product_lcm_source)) * ff_v_gcrt_product_lcm_source) + (ff_s_gcrt_product_lcm_source))) /\ ff_s_gcrt_product_lcm_source = ff_r_gcrt_product_lcm_source * ff_p_gcrt_product_lcm_source)))))) -> (((forall gcrt_common_index_product_lcm_result_own gcrt_common_modulus_product_lcm_result_own. (exists ff_lt_gcrt_product_lcm_result_own_bound. ff_lt_gcrt_product_lcm_result_own_bound + S gcrt_common_index_product_lcm_result_own = l) -> (((exists ff_h_gcrt_product_lcm_result_own_entry. ff_h_gcrt_product_lcm_result_own_entry + S (gcrt_common_modulus_product_lcm_result_own) = S ((S (gcrt_common_index_product_lcm_result_own)) * c)) /\ exists ff_q_gcrt_product_lcm_result_own_entry. b = ff_q_gcrt_product_lcm_result_own_entry * S ((S (gcrt_common_index_product_lcm_result_own)) * c) + (gcrt_common_modulus_product_lcm_result_own))) -> exists gcrt_common_quotient_product_lcm_result_own. x = gcrt_common_modulus_product_lcm_result_own * gcrt_common_quotient_product_lcm_result_own) /\ forall gcrt_lcm_common_product_lcm_result. (forall gcrt_common_index_product_lcm_result_other gcrt_common_modulus_product_lcm_result_other. (exists ff_lt_gcrt_product_lcm_result_other_bound. ff_lt_gcrt_product_lcm_result_other_bound + S gcrt_common_index_product_lcm_result_other = l) -> (((exists ff_h_gcrt_product_lcm_result_other_entry. ff_h_gcrt_product_lcm_result_other_entry + S (gcrt_common_modulus_product_lcm_result_other) = S ((S (gcrt_common_index_product_lcm_result_other)) * c)) /\ exists ff_q_gcrt_product_lcm_result_other_entry. b = ff_q_gcrt_product_lcm_result_other_entry * S ((S (gcrt_common_index_product_lcm_result_other)) * c) + (gcrt_common_modulus_product_lcm_result_other))) -> exists gcrt_common_quotient_product_lcm_result_other. gcrt_lcm_common_product_lcm_result = gcrt_common_modulus_product_lcm_result_other * gcrt_common_quotient_product_lcm_result_other) -> exists gcrt_lcm_quotient_product_lcm_result. gcrt_lcm_common_product_lcm_result = x * gcrt_lcm_quotient_product_lcm_result))

Constructive proof overview

Generated structural guide

For pairwise-coprime decoded moduli the actual finite product is exactly their universal-property lcm.

The unchanged tactic script uses 2 declared prerequisites and contains 24 exact native proof lines.

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

Proof neighborhood

Direct dependencies

CR000B crt_prefix_product_common_multiple beta_pairwise_coprime_product_divides_common_multiple Alpha 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

24 script commands · 5 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.

Named ingredients (1)
01Fix variables and assumptionsL1–6

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 x
  5. L5
    intro hpairs
  6. L6
    intro hproduct
02Separate the logical casesL7–7

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

  1. L7
    split
03Use earlier factsL8–13

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

  1. L8
    specialize crt_prefix_product_common_multiple b
  2. L9
    specialize crt_prefix_product_common_multiple c
  3. L10
    specialize crt_prefix_product_common_multiple l
  4. L11
    specialize crt_prefix_product_common_multiple x
  5. L12
    apply crt_prefix_product_common_multiple
  6. L13
    exact hproduct
04Fix variables and assumptionsL14–15

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

  1. L14
    intro z
  2. L15
    intro hcommon
05Use earlier factsL16–24

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

  1. L16
    specialize beta_pairwise_coprime_product_divides_common_multiple b
  2. L17
    specialize beta_pairwise_coprime_product_divides_common_multiple c
  3. L18
    specialize beta_pairwise_coprime_product_divides_common_multiple l
  4. L19
    specialize beta_pairwise_coprime_product_divides_common_multiple x
  5. L20
    specialize beta_pairwise_coprime_product_divides_common_multiple z
  6. L21
    apply beta_pairwise_coprime_product_divides_common_multiple
  7. L22
    exact hpairs
  8. L23
    exact hcommon
  9. L24
    exact hproduct

Library-wide reading audit

Original exact command ledger · 24 lines
  1. 0001intro b
  2. 0002intro c
  3. 0003intro l
  4. 0004intro x
  5. 0005intro hpairs
  6. 0006intro hproduct
  7. 0007split
  8. 0008specialize crt_prefix_product_common_multiple b
  9. 0009specialize crt_prefix_product_common_multiple c
  10. 0010specialize crt_prefix_product_common_multiple l
  11. 0011specialize crt_prefix_product_common_multiple x
  12. 0012apply crt_prefix_product_common_multiple
  13. 0013exact hproduct
  14. 0014intro z
  15. 0015intro hcommon
  16. 0016specialize beta_pairwise_coprime_product_divides_common_multiple b
  17. 0017specialize beta_pairwise_coprime_product_divides_common_multiple c
  18. 0018specialize beta_pairwise_coprime_product_divides_common_multiple l
  19. 0019specialize beta_pairwise_coprime_product_divides_common_multiple x
  20. 0020specialize beta_pairwise_coprime_product_divides_common_multiple z
  21. 0021apply beta_pairwise_coprime_product_divides_common_multiple
  22. 0022exact hpairs
  23. 0023exact hcommon
  24. 0024exact hproduct

Separate complete second-wave branches: Full G011 proof · Alpha v27.