GI001E

gaussian_signed_norm_nonzero

Alpha v34 independently verified · alpha_closed; checked-use authorized; not Stable

Every nonzero represented Gaussian integer has an actually positive natural norm.

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 a b c d N. (exists ge_real_square_nonzero ge_imaginary_square_nonzero. ((((((a) * (a))) + (((b) * (b)))) = ((ge_real_square_nonzero) + (((((a) * (b))) + (((b) * (a))))))) /\ ((((((c) * (c))) + (((d) * (d)))) = ((ge_imaginary_square_nonzero) + (((((c) * (d))) + (((d) * (c))))))) /\ ((N) = ge_real_square_nonzero + ge_imaginary_square_nonzero)))) -> ~(a = b /\ c = d) -> ~(N = 0)

Constructive proof overview

Generated structural guide

Every nonzero represented Gaussian integer has an actually positive natural norm.

The unchanged tactic script uses 3 declared prerequisites and contains 43 exact native proof lines.

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

Proof neighborhood

Direct dependencies

GI001D gaussian_signed_square_zero_iff add_eq_zero_left Stable theorem; checked-use authorized add_eq_zero_right 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

43 script commands · 10 reading checkpoints · 3 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.

Named ingredients (1)
01Fix variables and assumptionsL1–8

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

  1. L1
    intro a
  2. L2
    intro b
  3. L3
    intro c
  4. L4
    intro d
  5. L5
    intro N
  6. L6
    intro hnorm
  7. L7
    intro hnonzero
  8. L8
    intro hzero
02Separate the logical casesL9–12

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

  1. L9
    cases hnorm
  2. L10
    cases hnorm_witness
  3. L11
    cases hnorm_witness_witness
  4. L12
    cases hnorm_witness_witness_right
03Establish hsumzeroL13–17

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

  1. L13
    have hsumzero : x + x1 = 0
  2. L14
    trans N
  3. L15
    symm
  4. L16
    exact hnorm_witness_witness_right_right
  5. L17
    exact hzero
04Establish hrealzeroL18–23

Establish this local claim before using it. It is not an additional assumption. The following proof commands apply gaussian signed square zero iff.

  1. L18
    have hrealzero : (x = 0 -> a = b) /\ (a = b -> x = 0)
  2. L19
    specialize gaussian_signed_square_zero_iff a
  3. L20
    specialize gaussian_signed_square_zero_iff b
  4. L21
    specialize gaussian_signed_square_zero_iff x
  5. L22
    apply gaussian_signed_square_zero_iff
  6. L23
    exact hnorm_witness_witness_left
05Separate the logical casesL24–24

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

  1. L24
    cases hrealzero
06Establish himagzeroL25–30

Establish this local claim before using it. It is not an additional assumption. The following proof commands apply gaussian signed square zero iff.

  1. L25
    have himagzero : (x1 = 0 -> c = d) /\ (c = d -> x1 = 0)
  2. L26
    specialize gaussian_signed_square_zero_iff c
  3. L27
    specialize gaussian_signed_square_zero_iff d
  4. L28
    specialize gaussian_signed_square_zero_iff x1
  5. L29
    apply gaussian_signed_square_zero_iff
  6. L30
    exact hnorm_witness_witness_right_left
07Separate the logical casesL31–31

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

  1. L31
    cases himagzero
08Use earlier factsL32–32

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

  1. L32
    apply hnonzero
09Separate the logical casesL33–33

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

  1. L33
    split
10Use earlier factsL34–43

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

  1. L34
    apply hrealzero_left
  2. L35
    specialize add_eq_zero_left x
  3. L36
    specialize add_eq_zero_left x1
  4. L37
    apply add_eq_zero_left
  5. L38
    exact hsumzero
  6. L39
    apply himagzero_left
  7. L40
    specialize add_eq_zero_right x
  8. L41
    specialize add_eq_zero_right x1
  9. L42
    apply add_eq_zero_right
  10. L43
    exact hsumzero

Library-wide reading audit

Original exact command ledger · 43 lines
  1. 0001intro a
  2. 0002intro b
  3. 0003intro c
  4. 0004intro d
  5. 0005intro N
  6. 0006intro hnorm
  7. 0007intro hnonzero
  8. 0008intro hzero
  9. 0009cases hnorm
  10. 0010cases hnorm_witness
  11. 0011cases hnorm_witness_witness
  12. 0012cases hnorm_witness_witness_right
  13. 0013have hsumzero : x + x1 = 0
  14. 0014trans N
  15. 0015symm
  16. 0016exact hnorm_witness_witness_right_right
  17. 0017exact hzero
  18. 0018have hrealzero : (x = 0 -> a = b) /\ (a = b -> x = 0)
  19. 0019specialize gaussian_signed_square_zero_iff a
  20. 0020specialize gaussian_signed_square_zero_iff b
  21. 0021specialize gaussian_signed_square_zero_iff x
  22. 0022apply gaussian_signed_square_zero_iff
  23. 0023exact hnorm_witness_witness_left
  24. 0024cases hrealzero
  25. 0025have himagzero : (x1 = 0 -> c = d) /\ (c = d -> x1 = 0)
  26. 0026specialize gaussian_signed_square_zero_iff c
  27. 0027specialize gaussian_signed_square_zero_iff d
  28. 0028specialize gaussian_signed_square_zero_iff x1
  29. 0029apply gaussian_signed_square_zero_iff
  30. 0030exact hnorm_witness_witness_right_left
  31. 0031cases himagzero
  32. 0032apply hnonzero
  33. 0033split
  34. 0034apply hrealzero_left
  35. 0035specialize add_eq_zero_left x
  36. 0036specialize add_eq_zero_left x1
  37. 0037apply add_eq_zero_left
  38. 0038exact hsumzero
  39. 0039apply himagzero_left
  40. 0040specialize add_eq_zero_right x
  41. 0041specialize add_eq_zero_right x1
  42. 0042apply add_eq_zero_right
  43. 0043exact hsumzero