TS000A · theorem body

positive_multiple_below_twice_equals_base

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

A positive multiple strictly below twice its divisor must equal that divisor.

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

∀ p. ∀ z. Lt(0,z)Dvd(p,z)Lt(z,p + p) → z = p

Every purple notation token opens its conservative definition. This reading surface never changes the unchanged intuitionistic kernel or confers checked-use authority.

Definitions used by this theorem

In the theorem statement

In local proof propositions

Exact expanded first-order statement
forall p z. (exists fts_gap_positive_multiple. fts_gap_positive_multiple + S (0) = z) -> (exists fts_factor_bounded_multiple. z = p * fts_factor_bounded_multiple) -> (exists fts_gap_below_twice. fts_gap_below_twice + S (z) = p + p) -> z = p

Proof neighborhood

Direct theorem prerequisites

zero_or_succ · Stable closed lt_not_le · Stable closed add_assoc · Stable closed add_comm · Stable closed zero_add · Stable closed

Direct theorem dependents

Definition-aware tactic body

Only propositions whose conservative expansion has been checked for exact first-order equivalence are compacted. Every changed line retains its immutable exact replay command.

Read the argument

Proof checkpoints

43 script commands · 17 reading checkpoints · 4 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–5

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

  1. L1
    intro p
  2. L2
    intro z
  3. L3
    intro hpositive
  4. L4
    intro hmultiple
  5. L5
    intro hbound
02Separate the logical casesL6–6

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

  1. L6
    cases hmultiple
03Establish hdecomposeL7–9

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

  1. L7
    have hdecompose : forall k. k = 0 \/ exists t. k = S t
  2. L8
    exact zero_or_succ
  3. L9
    specialize zero_or_succ x
04Separate the logical casesL10–12

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

  1. L10
    cases zero_or_succ
  2. L11
    exfalso
  3. L12
    cases hpositive
05Establish hzeroL13–17

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

  1. L13
    have hzero : z = 0
  2. L14
    rewrite hmultiple_witness
  3. L15
    rewrite zero_or_succ_left
  4. L16
    simp
  5. L17
    rewrite hzero at hpositive_witness
06Establish hbadL18–24

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

  1. L18
    have hbad : S x1 = 0
  2. L19
    trans x1 + 1
  3. L20
    symm
  4. L21
    simp
  5. L22
    exact hpositive_witness
  6. L23
    apply PA1
  7. L24
    exact hbad
07Separate the logical casesL25–25

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

  1. L25
    cases zero_or_succ_right
08Calculate and transport equalitiesL26–26

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

  1. L26
    rewrite zero_or_succ_right_witness at hmultiple_witness
09Use earlier factsL27–27

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

  1. L27
    specialize hdecompose x1
10Separate the logical casesL28–28

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

  1. L28
    cases hdecompose
11Calculate and transport equalitiesL29–31

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

  1. L29
    rewrite hdecompose_left at hmultiple_witness
  2. L30
    rewrite hmultiple_witness
  3. L31
    simp [zero_add]
12Separate the logical casesL32–33

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

  1. L32
    exfalso
  2. L33
    cases hdecompose_right
13Calculate and transport equalitiesL34–34

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

  1. L34
    rewrite hdecompose_right_witness at hmultiple_witness
14Establish hlargeL35–35

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

  1. L35
    have hlarge : Le(p + p,z)Definitions: Le(p + p,z)Original native command in the exact edition
15Construct an explicit witnessL36–36

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

  1. L36
    exists p * x2
16Calculate and transport equalitiesL37–38

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

  1. L37
    rewrite hmultiple_witness
  2. L38
    simp [add_assoc, add_comm]
17Use earlier factsL39–43

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

  1. L39
    specialize lt_not_le z
  2. L40
    specialize lt_not_le (p + p)
  3. L41
    apply lt_not_le
  4. L42
    exact hbound
  5. L43
    exact hlarge

Library-wide reading audit

Original defined command ledger · 43 lines
  1. 0001intro p
  2. 0002intro z
  3. 0003intro hpositive
  4. 0004intro hmultiple
  5. 0005intro hbound
  6. 0006cases hmultiple
  7. 0007have hdecompose : forall k. k = 0 \/ exists t. k = S t
  8. 0008exact zero_or_succ
  9. 0009specialize zero_or_succ x
  10. 0010cases zero_or_succ
  11. 0011exfalso
  12. 0012cases hpositive
  13. 0013have hzero : z = 0
  14. 0014rewrite hmultiple_witness
  15. 0015rewrite zero_or_succ_left
  16. 0016simp
  17. 0017rewrite hzero at hpositive_witness
  18. 0018have hbad : S x1 = 0
  19. 0019trans x1 + 1
  20. 0020symm
  21. 0021simp
  22. 0022exact hpositive_witness
  23. 0023apply PA1
  24. 0024exact hbad
  25. 0025cases zero_or_succ_right
  26. 0026rewrite zero_or_succ_right_witness at hmultiple_witness
  27. 0027specialize hdecompose x1
  28. 0028cases hdecompose
  29. 0029rewrite hdecompose_left at hmultiple_witness
  30. 0030rewrite hmultiple_witness
  31. 0031simp [zero_add]
  32. 0032exfalso
  33. 0033cases hdecompose_right
  34. 0034rewrite hdecompose_right_witness at hmultiple_witness
  35. 0035have hlarge : Le(p + p,z)
    Exact native replay linehave hlarge : exists h. h + (p + p) = z
  36. 0036exists p * x2
  37. 0037rewrite hmultiple_witness
  38. 0038simp [add_assoc, add_comm]
  39. 0039specialize lt_not_le z
  40. 0040specialize lt_not_le (p + p)
  41. 0041apply lt_not_le
  42. 0042exact hbound
  43. 0043exact hlarge