GC000A

crt_positive_prefix_lcm_nonzero

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

The exact universal-property LCM of every finite positive modulus prefix is nonzero, including the empty prefix.

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 M. (forall gcrt_positive_index_gcomp_lcm_positive gcrt_positive_value_gcomp_lcm_positive. (exists ff_lt_gcrt_gcomp_lcm_positive_bound. ff_lt_gcrt_gcomp_lcm_positive_bound + S gcrt_positive_index_gcomp_lcm_positive = l) -> (((exists ff_h_gcrt_gcomp_lcm_positive_entry. ff_h_gcrt_gcomp_lcm_positive_entry + S (gcrt_positive_value_gcomp_lcm_positive) = S ((S (gcrt_positive_index_gcomp_lcm_positive)) * c)) /\ exists ff_q_gcrt_gcomp_lcm_positive_entry. b = ff_q_gcrt_gcomp_lcm_positive_entry * S ((S (gcrt_positive_index_gcomp_lcm_positive)) * c) + (gcrt_positive_value_gcomp_lcm_positive))) -> ~(gcrt_positive_value_gcomp_lcm_positive = 0)) -> (((forall gcrt_common_index_gcomp_lcm_nonzero_source_own gcrt_common_modulus_gcomp_lcm_nonzero_source_own. (exists ff_lt_gcrt_gcomp_lcm_nonzero_source_own_bound. ff_lt_gcrt_gcomp_lcm_nonzero_source_own_bound + S gcrt_common_index_gcomp_lcm_nonzero_source_own = l) -> (((exists ff_h_gcrt_gcomp_lcm_nonzero_source_own_entry. ff_h_gcrt_gcomp_lcm_nonzero_source_own_entry + S (gcrt_common_modulus_gcomp_lcm_nonzero_source_own) = S ((S (gcrt_common_index_gcomp_lcm_nonzero_source_own)) * c)) /\ exists ff_q_gcrt_gcomp_lcm_nonzero_source_own_entry. b = ff_q_gcrt_gcomp_lcm_nonzero_source_own_entry * S ((S (gcrt_common_index_gcomp_lcm_nonzero_source_own)) * c) + (gcrt_common_modulus_gcomp_lcm_nonzero_source_own))) -> exists gcrt_common_quotient_gcomp_lcm_nonzero_source_own. M = gcrt_common_modulus_gcomp_lcm_nonzero_source_own * gcrt_common_quotient_gcomp_lcm_nonzero_source_own) /\ forall gcrt_lcm_common_gcomp_lcm_nonzero_source. (forall gcrt_common_index_gcomp_lcm_nonzero_source_other gcrt_common_modulus_gcomp_lcm_nonzero_source_other. (exists ff_lt_gcrt_gcomp_lcm_nonzero_source_other_bound. ff_lt_gcrt_gcomp_lcm_nonzero_source_other_bound + S gcrt_common_index_gcomp_lcm_nonzero_source_other = l) -> (((exists ff_h_gcrt_gcomp_lcm_nonzero_source_other_entry. ff_h_gcrt_gcomp_lcm_nonzero_source_other_entry + S (gcrt_common_modulus_gcomp_lcm_nonzero_source_other) = S ((S (gcrt_common_index_gcomp_lcm_nonzero_source_other)) * c)) /\ exists ff_q_gcrt_gcomp_lcm_nonzero_source_other_entry. b = ff_q_gcrt_gcomp_lcm_nonzero_source_other_entry * S ((S (gcrt_common_index_gcomp_lcm_nonzero_source_other)) * c) + (gcrt_common_modulus_gcomp_lcm_nonzero_source_other))) -> exists gcrt_common_quotient_gcomp_lcm_nonzero_source_other. gcrt_lcm_common_gcomp_lcm_nonzero_source = gcrt_common_modulus_gcomp_lcm_nonzero_source_other * gcrt_common_quotient_gcomp_lcm_nonzero_source_other) -> exists gcrt_lcm_quotient_gcomp_lcm_nonzero_source. gcrt_lcm_common_gcomp_lcm_nonzero_source = M * gcrt_lcm_quotient_gcomp_lcm_nonzero_source)) -> ~(M = 0)

Constructive proof overview

Generated structural guide

The exact universal-property LCM of every finite positive modulus prefix is nonzero, including the empty prefix.

The unchanged tactic script uses 4 declared prerequisites and contains 40 exact native proof lines.

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

Proof neighborhood

Direct dependencies

beta_product_exists_unique Stable theorem; checked-use authorized crt_positive_moduli_prefix_product_nonzero Alpha theorem; checked-use authorized crt_prefix_product_common_multiple Alpha theorem; checked-use authorized mul_zero_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

40 script commands · 8 reading checkpoints · 3 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–7

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 M
  5. L5
    intro hpositive
  6. L6
    intro hlcm
  7. L7
    intro hzero
02Use earlier factsL8–10

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

  1. L8
    specialize beta_product_exists_unique b
  2. L9
    specialize beta_product_exists_unique c
  3. L10
    specialize beta_product_exists_unique l
03Separate the logical casesL11–12

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

  1. L11
    cases beta_product_exists_unique
  2. L12
    cases beta_product_exists_unique_witness
04Establish hnonzeroL13–22

Establish this local claim before using it. It is not an additional assumption. The following proof commands apply crt positive moduli prefix product nonzero.

  1. L13
    have hnonzero : ~(x = 0)
  2. L14
    specialize crt_positive_moduli_prefix_product_nonzero b
  3. L15
    specialize crt_positive_moduli_prefix_product_nonzero c
  4. L16
    specialize crt_positive_moduli_prefix_product_nonzero l
  5. L17
    specialize crt_positive_moduli_prefix_product_nonzero x
  6. L18
    intro hxzero
  7. L19
    apply crt_positive_moduli_prefix_product_nonzero
  8. L20
    exact hpositive
  9. L21
    exact beta_product_exists_unique_witness_left
  10. L22
    exact hxzero
05Separate the logical casesL23–23

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

  1. L23
    cases hlcm
06Establish hmultipleL24–32

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

  1. L24
    have hmultiple : exists q. x = M * q
  2. L25
    specialize hlcm_right x
  3. L26
    apply hlcm_right
  4. L27
    specialize crt_prefix_product_common_multiple b
  5. L28
    specialize crt_prefix_product_common_multiple c
  6. L29
    specialize crt_prefix_product_common_multiple l
  7. L30
    specialize crt_prefix_product_common_multiple x
  8. L31
    apply crt_prefix_product_common_multiple
  9. L32
    exact beta_product_exists_unique_witness_left
07Separate the logical casesL33–33

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

  1. L33
    cases hmultiple
08Establish hxzeroL34–40

Establish this local claim before using it. It is not an additional assumption. The following proof commands apply mul zero left.

  1. L34
    have hxzero : x = 0
  2. L35
    trans M * x1
  3. L36
    exact hmultiple_witness
  4. L37
    rewrite hzero
  5. L38
    apply mul_zero_left
  6. L39
    apply hnonzero
  7. L40
    exact hxzero

Library-wide reading audit

Original exact command ledger · 40 lines
  1. 0001intro b
  2. 0002intro c
  3. 0003intro l
  4. 0004intro M
  5. 0005intro hpositive
  6. 0006intro hlcm
  7. 0007intro hzero
  8. 0008specialize beta_product_exists_unique b
  9. 0009specialize beta_product_exists_unique c
  10. 0010specialize beta_product_exists_unique l
  11. 0011cases beta_product_exists_unique
  12. 0012cases beta_product_exists_unique_witness
  13. 0013have hnonzero : ~(x = 0)
  14. 0014specialize crt_positive_moduli_prefix_product_nonzero b
  15. 0015specialize crt_positive_moduli_prefix_product_nonzero c
  16. 0016specialize crt_positive_moduli_prefix_product_nonzero l
  17. 0017specialize crt_positive_moduli_prefix_product_nonzero x
  18. 0018intro hxzero
  19. 0019apply crt_positive_moduli_prefix_product_nonzero
  20. 0020exact hpositive
  21. 0021exact beta_product_exists_unique_witness_left
  22. 0022exact hxzero
  23. 0023cases hlcm
  24. 0024have hmultiple : exists q. x = M * q
  25. 0025specialize hlcm_right x
  26. 0026apply hlcm_right
  27. 0027specialize crt_prefix_product_common_multiple b
  28. 0028specialize crt_prefix_product_common_multiple c
  29. 0029specialize crt_prefix_product_common_multiple l
  30. 0030specialize crt_prefix_product_common_multiple x
  31. 0031apply crt_prefix_product_common_multiple
  32. 0032exact beta_product_exists_unique_witness_left
  33. 0033cases hmultiple
  34. 0034have hxzero : x = 0
  35. 0035trans M * x1
  36. 0036exact hmultiple_witness
  37. 0037rewrite hzero
  38. 0038apply mul_zero_left
  39. 0039apply hnonzero
  40. 0040exact hxzero

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