PA000I · theorem

bounded_common_multiple_step

Stable checked-use theorem · independently closed

Extend a nonzero common multiple through the next positive natural.

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.

Statement with defined notation

∀ B. ∀ c. ¬c = 0 → (∀ x. (∃ y. S x + S y = S B) → Dvd(S x,c)) → ∃ x. ¬x = 0 ∧ (∀ y. (∃ z. S y + S z = S S B) → Dvd(S y,x))

Every purple notation token opens its conservative definition. This is a reading surface; the compiler expands the statement before the unchanged kernel checks it.

Definitions used by this theorem

In the theorem statement

2 occurrences

In local proof propositions

1 occurrences

Exact expanded native-PA statement
forall B c. ~(c = 0) -> (forall t. (exists h. S t + S h = S B) -> exists k. c = S t * k) -> exists c2. (~(c2 = 0) /\ forall t. (exists h. S t + S h = S (S B)) -> exists k. c2 = S t * k)

Proof neighborhood

Direct theorem prerequisites

Direct theorem dependents

Definition-aware tactic body

Only local propositions introduced by have or suffices are compacted. The untrusted compiler re-expands each one before the original tactic script is replayed; defined notation is never accepted by the kernel. Open the exact replay line beneath every changed command.

Read the argument

Proof checkpoints

52 script commands · 23 reading checkpoints · 6 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.

Named ingredients (5)
01Fix variables and assumptionsL1–4

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

  1. L1
    intro B
  2. L2
    intro c
  3. L3
    intro hc
  4. L4
    intro hall
02Construct an explicit witnessL5–5

Supply the displayed value, then prove that it has the required property.

  1. L5
    exists c * S B
03Separate the logical casesL6–6

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

  1. L6
    split
04Establish hSBL7–9

Establish this local claim before using it. It is not an additional assumption.

  1. L7
    have hSB : ~(S B = 0)
  2. L8
    specialize succ_ne_zero B
  3. L9
    exact succ_ne_zero
05Establish hprodL10–11

Establish this local claim before using it. It is not an additional assumption.

  1. L10
    have hprod : ~(c * S B = 0)
  2. L11
    intro hzero
06Establish hzL12–16

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

  1. L12
    have hz : c = 0 \/ S B = 0
  2. L13
    specialize mul_eq_zero c
  3. L14
    specialize mul_eq_zero (S B)
  4. L15
    apply mul_eq_zero
  5. L16
    exact hzero
07Separate the logical casesL17–17

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

  1. L17
    cases hz
08Use earlier factsL18–22

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

  1. L18
    apply hc
  2. L19
    exact hz_left
  3. L20
    apply hSB
  4. L21
    exact hz_right
  5. L22
    exact hprod
09Fix variables and assumptionsL23–24

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

  1. L23
    intro t
  2. L24
    intro ht
10Separate the logical casesL25–25

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

  1. L25
    cases ht
11Use earlier factsL26–26

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

  1. L26
    specialize zero_or_succ x
12Separate the logical casesL27–27

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

  1. L27
    cases zero_or_succ
13Calculate and transport equalitiesL28–28

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

  1. L28
    rewrite zero_or_succ_left at ht_witness
14Establish hteqL29–33

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

  1. L29
    have hteq : S t = S B
  2. L30
    rewrite PA4 at ht_witness
  3. L31
    rewrite PA3 at ht_witness
  4. L32
    apply PA2
  5. L33
    exact ht_witness
15Construct an explicit witnessL34–34

Supply the displayed value, then prove that it has the required property.

  1. L34
    exists c
16Calculate and transport equalitiesL35–35

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

  1. L35
    rewrite hteq
17Use earlier factsL36–36

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

  1. L36
    apply mul_comm
18Separate the logical casesL37–37

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

  1. L37
    cases zero_or_succ_right
19Establish hprevL38–38

Establish this local claim before using it. It is not an additional assumption.

  1. L38
    have hprev : exists h. S t + S h = S B
20Construct an explicit witnessL39–39

Supply the displayed value, then prove that it has the required property.

  1. L39
    exists x1
21Calculate and transport equalitiesL40–41

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

  1. L40
    rewrite zero_or_succ_right_witness at ht_witness
  2. L41
    rewrite PA4 at ht_witness
22Use earlier factsL42–43

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

  1. L42
    apply PA2
  2. L43
    exact ht_witness
23Establish hdivcL44–52

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

  1. L44
    have hdivc : Dvd(S t,c)Definitions: Dvd(S t,c)Original native command in the exact edition
  2. L45
    specialize hall t
  3. L46
    apply hall
  4. L47
    exact hprev
  5. L48
    specialize multiple_mul_right (S t)
  6. L49
    specialize multiple_mul_right c
  7. L50
    specialize multiple_mul_right (S B)
  8. L51
    apply multiple_mul_right
  9. L52
    exact hdivc

Library-wide reading audit

Original defined command ledger · 52 lines
  1. 0001intro B
  2. 0002intro c
  3. 0003intro hc
  4. 0004intro hall
  5. 0005exists c * S B
  6. 0006split
  7. 0007have hSB : ~(S B = 0)
  8. 0008specialize succ_ne_zero B
  9. 0009exact succ_ne_zero
  10. 0010have hprod : ~(c * S B = 0)
  11. 0011intro hzero
  12. 0012have hz : c = 0 \/ S B = 0
  13. 0013specialize mul_eq_zero c
  14. 0014specialize mul_eq_zero (S B)
  15. 0015apply mul_eq_zero
  16. 0016exact hzero
  17. 0017cases hz
  18. 0018apply hc
  19. 0019exact hz_left
  20. 0020apply hSB
  21. 0021exact hz_right
  22. 0022exact hprod
  23. 0023intro t
  24. 0024intro ht
  25. 0025cases ht
  26. 0026specialize zero_or_succ x
  27. 0027cases zero_or_succ
  28. 0028rewrite zero_or_succ_left at ht_witness
  29. 0029have hteq : S t = S B
  30. 0030rewrite PA4 at ht_witness
  31. 0031rewrite PA3 at ht_witness
  32. 0032apply PA2
  33. 0033exact ht_witness
  34. 0034exists c
  35. 0035rewrite hteq
  36. 0036apply mul_comm
  37. 0037cases zero_or_succ_right
  38. 0038have hprev : exists h. S t + S h = S B
  39. 0039exists x1
  40. 0040rewrite zero_or_succ_right_witness at ht_witness
  41. 0041rewrite PA4 at ht_witness
  42. 0042apply PA2
  43. 0043exact ht_witness
  44. 0044have hdivc : Dvd(S t,c)
    Exact native replay linehave hdivc : exists k. c = S t * k
  45. 0045specialize hall t
  46. 0046apply hall
  47. 0047exact hprev
  48. 0048specialize multiple_mul_right (S t)
  49. 0049specialize multiple_mul_right c
  50. 0050specialize multiple_mul_right (S B)
  51. 0051apply multiple_mul_right
  52. 0052exact hdivc