EI0035

eisenstein_norm_for_representation

The canonical Eisenstein norm equals the actual norm of every representative of the same pair of integers.

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

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.

A floor quotient in the fundamental parallelogram already gives the required strict norm decrease; global nearest-point optimality is not asserted. The shared carrier is identical to the Gaussian carrier, but the multiplication law and norm are different. Eisenstein gcd, factorization, and prime classification remain separate targets.

Exact theorem in conservative defined notation

∀ z. ∀ a. ∀ b. ∀ c. ∀ d. ∀ N. ZPairRep(z,a,b,c,d)ENorm(z,N)EisensteinCoordinateNorm(a,b,c,d,N)

Every linked abbreviation expands hygienically to the identical original native formula.

Definition DAG

Actual proof prerequisites

Original expanded first-order statement
forall z a b c d N. (exists ge_representation_real_code_norm_fixed_rep ge_representation_imaginary_code_norm_fixed_rep. (((z) = ((ge_representation_real_code_norm_fixed_rep) + (ge_representation_imaginary_code_norm_fixed_rep)) * S ((ge_representation_real_code_norm_fixed_rep) + (ge_representation_imaginary_code_norm_fixed_rep)) + ((ge_representation_imaginary_code_norm_fixed_rep) + (ge_representation_imaginary_code_norm_fixed_rep))) /\ ((exists ge_balance_positive_norm_fixed_repreal ge_balance_negative_norm_fixed_repreal. (((((ge_representation_real_code_norm_fixed_rep) = 2 * (ge_balance_positive_norm_fixed_repreal) /\ (ge_balance_negative_norm_fixed_repreal) = 0) \/ exists ge_signed_half_norm_fixed_reprealdecode. (((ge_representation_real_code_norm_fixed_rep) = 2 * ge_signed_half_norm_fixed_reprealdecode + 1 /\ (ge_balance_positive_norm_fixed_repreal) = 0) /\ (ge_balance_negative_norm_fixed_repreal) = S ge_signed_half_norm_fixed_reprealdecode))) /\ ((a) + ge_balance_negative_norm_fixed_repreal = (b) + ge_balance_positive_norm_fixed_repreal))) /\ (exists ge_balance_positive_norm_fixed_repimaginary ge_balance_negative_norm_fixed_repimaginary. (((((ge_representation_imaginary_code_norm_fixed_rep) = 2 * (ge_balance_positive_norm_fixed_repimaginary) /\ (ge_balance_negative_norm_fixed_repimaginary) = 0) \/ exists ge_signed_half_norm_fixed_repimaginarydecode. (((ge_representation_imaginary_code_norm_fixed_rep) = 2 * ge_signed_half_norm_fixed_repimaginarydecode + 1 /\ (ge_balance_positive_norm_fixed_repimaginary) = 0) /\ (ge_balance_negative_norm_fixed_repimaginary) = S ge_signed_half_norm_fixed_repimaginarydecode))) /\ ((c) + ge_balance_negative_norm_fixed_repimaginary = (d) + ge_balance_positive_norm_fixed_repimaginary)))))) -> (exists ee_norm_rp_norm_fixed_code ee_norm_rn_norm_fixed_code ee_norm_ip_norm_fixed_code ee_norm_in_norm_fixed_code. ((exists ge_representation_real_code_norm_fixed_coderepresentation ge_representation_imaginary_code_norm_fixed_coderepresentation. (((z) = ((ge_representation_real_code_norm_fixed_coderepresentation) + (ge_representation_imaginary_code_norm_fixed_coderepresentation)) * S ((ge_representation_real_code_norm_fixed_coderepresentation) + (ge_representation_imaginary_code_norm_fixed_coderepresentation)) + ((ge_representation_imaginary_code_norm_fixed_coderepresentation) + (ge_representation_imaginary_code_norm_fixed_coderepresentation))) /\ ((exists ge_balance_positive_norm_fixed_coderepresentationreal ge_balance_negative_norm_fixed_coderepresentationreal. (((((ge_representation_real_code_norm_fixed_coderepresentation) = 2 * (ge_balance_positive_norm_fixed_coderepresentationreal) /\ (ge_balance_negative_norm_fixed_coderepresentationreal) = 0) \/ exists ge_signed_half_norm_fixed_coderepresentationrealdecode. (((ge_representation_real_code_norm_fixed_coderepresentation) = 2 * ge_signed_half_norm_fixed_coderepresentationrealdecode + 1 /\ (ge_balance_positive_norm_fixed_coderepresentationreal) = 0) /\ (ge_balance_negative_norm_fixed_coderepresentationreal) = S ge_signed_half_norm_fixed_coderepresentationrealdecode))) /\ ((ee_norm_rp_norm_fixed_code) + ge_balance_negative_norm_fixed_coderepresentationreal = (ee_norm_rn_norm_fixed_code) + ge_balance_positive_norm_fixed_coderepresentationreal))) /\ (exists ge_balance_positive_norm_fixed_coderepresentationimaginary ge_balance_negative_norm_fixed_coderepresentationimaginary. (((((ge_representation_imaginary_code_norm_fixed_coderepresentation) = 2 * (ge_balance_positive_norm_fixed_coderepresentationimaginary) /\ (ge_balance_negative_norm_fixed_coderepresentationimaginary) = 0) \/ exists ge_signed_half_norm_fixed_coderepresentationimaginarydecode. (((ge_representation_imaginary_code_norm_fixed_coderepresentation) = 2 * ge_signed_half_norm_fixed_coderepresentationimaginarydecode + 1 /\ (ge_balance_positive_norm_fixed_coderepresentationimaginary) = 0) /\ (ge_balance_negative_norm_fixed_coderepresentationimaginary) = S ge_signed_half_norm_fixed_coderepresentationimaginarydecode))) /\ ((ee_norm_ip_norm_fixed_code) + ge_balance_negative_norm_fixed_coderepresentationimaginary = (ee_norm_in_norm_fixed_code) + ge_balance_positive_norm_fixed_coderepresentationimaginary)))))) /\ (((((((((ee_norm_rp_norm_fixed_code) * (ee_norm_rp_norm_fixed_code))) + (((ee_norm_rn_norm_fixed_code) * (ee_norm_rn_norm_fixed_code))))) + (((((ee_norm_ip_norm_fixed_code) * (ee_norm_ip_norm_fixed_code))) + (((ee_norm_in_norm_fixed_code) * (ee_norm_in_norm_fixed_code))))))) + (((((ee_norm_rp_norm_fixed_code) * (ee_norm_in_norm_fixed_code))) + (((ee_norm_rn_norm_fixed_code) * (ee_norm_ip_norm_fixed_code)))))) = ((((((((((ee_norm_rp_norm_fixed_code) * (ee_norm_rn_norm_fixed_code))) + (((ee_norm_rn_norm_fixed_code) * (ee_norm_rp_norm_fixed_code))))) + (((((ee_norm_ip_norm_fixed_code) * (ee_norm_in_norm_fixed_code))) + (((ee_norm_in_norm_fixed_code) * (ee_norm_ip_norm_fixed_code))))))) + (((((ee_norm_rp_norm_fixed_code) * (ee_norm_ip_norm_fixed_code))) + (((ee_norm_rn_norm_fixed_code) * (ee_norm_in_norm_fixed_code))))))) + (N))))) -> (((((((((a) * (a))) + (((b) * (b))))) + (((((c) * (c))) + (((d) * (d))))))) + (((((a) * (d))) + (((b) * (c)))))) = ((((((((((a) * (b))) + (((b) * (a))))) + (((((c) * (d))) + (((d) * (c))))))) + (((((a) * (c))) + (((b) * (d))))))) + (N)))

Complete tactic proof in conservative notation

All 40 original proof lines are preserved. Only local proposition formulas are abbreviated; every abbreviation has an exact binder-safe expansion check. The linked exact edition contains the unchanged replay script.

Read the argument

Proof checkpoints

40 script commands · 7 reading checkpoints · 1 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 (1)
01Fix variables and assumptionsL1–8

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

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

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_witness
  5. L13
    cases hnorm_witness_witness_witness_witness
03Establish hequalL14–23

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

  1. L14
    have hequal : ((((x) + (b)) = ((a) + (x1))) /\ (((x2) + (d)) = ((c) + (x3))))
  2. L15
    specialize gaussian_representation_equal z
  3. L16
    specialize gaussian_representation_equal x
  4. L17
    specialize gaussian_representation_equal x1
  5. L18
    specialize gaussian_representation_equal x2
  6. L19
    specialize gaussian_representation_equal x3
  7. L20
    specialize gaussian_representation_equal a
  8. L21
    specialize gaussian_representation_equal b
  9. L22
    specialize gaussian_representation_equal c
  10. L23
    specialize gaussian_representation_equal d
04Use earlier factsL24–26

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

  1. L24
    apply gaussian_representation_equal
  2. L25
    exact hnorm_witness_witness_witness_witness_left
  3. L26
    exact hrep
05Separate the logical casesL27–27

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

  1. L27
    cases hequal
06Use earlier factsL28–37

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

  1. L28
    specialize eisenstein_coordinate_norm_transport x
  2. L29
    specialize eisenstein_coordinate_norm_transport x1
  3. L30
    specialize eisenstein_coordinate_norm_transport x2
  4. L31
    specialize eisenstein_coordinate_norm_transport x3
  5. L32
    specialize eisenstein_coordinate_norm_transport a
  6. L33
    specialize eisenstein_coordinate_norm_transport b
  7. L34
    specialize eisenstein_coordinate_norm_transport c
  8. L35
    specialize eisenstein_coordinate_norm_transport d
  9. L36
    specialize eisenstein_coordinate_norm_transport N
  10. L37
    apply eisenstein_coordinate_norm_transport
07Use earlier factsL38–40

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

  1. L38
    exact hequal_left
  2. L39
    exact hequal_right
  3. L40
    exact hnorm_witness_witness_witness_witness_right

Library-wide reading audit

Original defined command ledger · 40 lines
  1. 0001intro z
  2. 0002intro a
  3. 0003intro b
  4. 0004intro c
  5. 0005intro d
  6. 0006intro N
  7. 0007intro hrep
  8. 0008intro hnorm
  9. 0009cases hnorm
  10. 0010cases hnorm_witness
  11. 0011cases hnorm_witness_witness
  12. 0012cases hnorm_witness_witness_witness
  13. 0013cases hnorm_witness_witness_witness_witness
  14. 0014have hequal : ((((x) + (b)) = ((a) + (x1))) /\ (((x2) + (d)) = ((c) + (x3))))
  15. 0015specialize gaussian_representation_equal z
  16. 0016specialize gaussian_representation_equal x
  17. 0017specialize gaussian_representation_equal x1
  18. 0018specialize gaussian_representation_equal x2
  19. 0019specialize gaussian_representation_equal x3
  20. 0020specialize gaussian_representation_equal a
  21. 0021specialize gaussian_representation_equal b
  22. 0022specialize gaussian_representation_equal c
  23. 0023specialize gaussian_representation_equal d
  24. 0024apply gaussian_representation_equal
  25. 0025exact hnorm_witness_witness_witness_witness_left
  26. 0026exact hrep
  27. 0027cases hequal
  28. 0028specialize eisenstein_coordinate_norm_transport x
  29. 0029specialize eisenstein_coordinate_norm_transport x1
  30. 0030specialize eisenstein_coordinate_norm_transport x2
  31. 0031specialize eisenstein_coordinate_norm_transport x3
  32. 0032specialize eisenstein_coordinate_norm_transport a
  33. 0033specialize eisenstein_coordinate_norm_transport b
  34. 0034specialize eisenstein_coordinate_norm_transport c
  35. 0035specialize eisenstein_coordinate_norm_transport d
  36. 0036specialize eisenstein_coordinate_norm_transport N
  37. 0037apply eisenstein_coordinate_norm_transport
  38. 0038exact hequal_left
  39. 0039exact hequal_right
  40. 0040exact hnorm_witness_witness_witness_witness_right