PF000A · theorem body

pythagorean_hypotenuse_nonzero

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

A nonzero first Euclidean parameter yields a genuinely nonzero natural hypotenuse.

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

forall m n. ~(m = 0) -> ~(m * m + n * n = 0)

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

none

In local proof propositions

none
Exact expanded first-order statement
forall m n. ~(m = 0) -> ~(m * m + n * n = 0)

Proof neighborhood

Direct theorem prerequisites

add_eq_zero_left · Stable closed mul_eq_zero · 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

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

01Fix variables and assumptionsL1–4

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

  1. L1
    intro m
  2. L2
    intro n
  3. L3
    intro hnonzero
  4. L4
    intro hsum
02Establish hsquareL5–9

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

  1. L5
    have hsquare : m * m = 0
  2. L6
    specialize add_eq_zero_left (m * m)
  3. L7
    specialize add_eq_zero_left (n * n)
  4. L8
    apply add_eq_zero_left
  5. L9
    exact hsum
03Establish hsplitL10–12

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

  1. L10
    have hsplit : m = 0 \/ m = 0
  2. L11
    apply mul_eq_zero
  3. L12
    exact hsquare
04Separate the logical casesL13–13

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

  1. L13
    cases hsplit
05Use earlier factsL14–17

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

  1. L14
    apply hnonzero
  2. L15
    exact hsplit_left
  3. L16
    apply hnonzero
  4. L17
    exact hsplit_right

Library-wide reading audit

Original defined command ledger · 17 lines
  1. 0001intro m
  2. 0002intro n
  3. 0003intro hnonzero
  4. 0004intro hsum
  5. 0005have hsquare : m * m = 0
  6. 0006specialize add_eq_zero_left (m * m)
  7. 0007specialize add_eq_zero_left (n * n)
  8. 0008apply add_eq_zero_left
  9. 0009exact hsum
  10. 0010have hsplit : m = 0 \/ m = 0
  11. 0011apply mul_eq_zero
  12. 0012exact hsquare
  13. 0013cases hsplit
  14. 0014apply hnonzero
  15. 0015exact hsplit_left
  16. 0016apply hnonzero
  17. 0017exact hsplit_right