BT00RD · Bertrand theorem

mul_le_cancel_left_nonzero

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

Witness order cancels a common nonzero left multiplier.

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

∀ c. ∀ a. ∀ b. ¬c = 0 → Le(c · a,c · b)Le(a,b)

Every purple notation token opens its conservative definition. Expanding the displayed statement recovers the exact first-order Peano-arithmetic formula checked by the unchanged kernel.

Definitions used by this theorem

In the theorem statement

2 occurrences

In local proof propositions

1 occurrences

Exact expanded native-PA statement
forall c a b. ~(c = 0) -> (exists k. k + c * a = c * b) -> exists k. k + a = b

Proof neighborhood

Direct theorem prerequisites

Direct theorem dependents

Definition-aware tactic body

Only local propositions introduced by have or suffices are compacted. Every changed line has an exact-AST conservative-expansion receipt; the kernel still receives the immutable original tactic script.

Read the argument

Proof checkpoints

29 script commands · 11 reading checkpoints · 2 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 (4)
01Fix variables and assumptionsL1–5

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

  1. L1
    intro c
  2. L2
    intro a
  3. L3
    intro b
  4. L4
    intro hc
  5. L5
    intro hle
02Separate the logical casesL6–6

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

  1. L6
    cases hle
03Establish heqL7–11

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

  1. L7
    have heq : c * b = c * a + x
  2. L8
    trans x + c * a
  3. L9
    symm
  4. L10
    exact hle_witness
  5. L11
    apply add_comm
04Establish hfactorL12–18

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

  1. L12
    have hfactor : Dvd(c,x)Definitions: Dvd(c,x)Original native command in the exact edition
  2. L13
    specialize factor_difference c
  3. L14
    specialize factor_difference b
  4. L15
    specialize factor_difference a
  5. L16
    specialize factor_difference x
  6. L17
    apply factor_difference
  7. L18
    exact heq
05Separate the logical casesL19–19

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

  1. L19
    cases hfactor
06Construct an explicit witnessL20–20

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

  1. L20
    exists x1
07Use earlier factsL21–25

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

  1. L21
    specialize mul_left_cancel_nonzero c
  2. L22
    specialize mul_left_cancel_nonzero (x1 + a)
  3. L23
    specialize mul_left_cancel_nonzero b
  4. L24
    apply mul_left_cancel_nonzero
  5. L25
    exact hc
08Calculate and transport equalitiesL26–26

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

  1. L26
    trans c * x1 + c * a
09Use earlier factsL27–27

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

  1. L27
    apply mul_add
10Calculate and transport equalitiesL28–28

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

  1. L28
    rewrite <- hfactor_witness
11Use earlier factsL29–29

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

  1. L29
    exact hle_witness

Library-wide reading audit

Original defined command ledger · 29 lines
  1. 0001intro c
  2. 0002intro a
  3. 0003intro b
  4. 0004intro hc
  5. 0005intro hle
  6. 0006cases hle
  7. 0007have heq : c * b = c * a + x
  8. 0008trans x + c * a
  9. 0009symm
  10. 0010exact hle_witness
  11. 0011apply add_comm
  12. 0012have hfactor : Dvd(c,x)
    Exact native replay linehave hfactor : exists w. x = c * w
  13. 0013specialize factor_difference c
  14. 0014specialize factor_difference b
  15. 0015specialize factor_difference a
  16. 0016specialize factor_difference x
  17. 0017apply factor_difference
  18. 0018exact heq
  19. 0019cases hfactor
  20. 0020exists x1
  21. 0021specialize mul_left_cancel_nonzero c
  22. 0022specialize mul_left_cancel_nonzero (x1 + a)
  23. 0023specialize mul_left_cancel_nonzero b
  24. 0024apply mul_left_cancel_nonzero
  25. 0025exact hc
  26. 0026trans c * x1 + c * a
  27. 0027apply mul_add
  28. 0028rewrite <- hfactor_witness
  29. 0029exact hle_witness