PF000A

pythagorean_hypotenuse_nonzero

Alpha v34 independently verified · alpha_closed; checked-use authorized; 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.

Exact expanded first-order arithmetic statement

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

Constructive proof overview

Generated structural guide

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

The unchanged tactic script uses 2 declared prerequisites and contains 17 exact native proof lines.

dependency-curried kernel-checked theorem body; Alpha enrollment and checked-use authority follow separately sealed release evidence; Stable membership remains unchanged

Proof neighborhood

Direct dependencies

add_eq_zero_left Stable theorem; checked-use authorized mul_eq_zero 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

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.

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 exact 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