TS0027

three_mod_four_prime_divides_two_square_norm_divides_both

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

A prime congruent to three modulo four divides a two-square norm only when it divides both coordinates.

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 p a b. ((~(p = 1) /\ forall frm_prime_left_ftsc_prime frm_prime_right_ftsc_prime. p = frm_prime_left_ftsc_prime * frm_prime_right_ftsc_prime -> frm_prime_left_ftsc_prime = 1 \/ frm_prime_right_ftsc_prime = 1)) -> (exists ftsc_four_three_ftsc_prime. (p) = 4 * ftsc_four_three_ftsc_prime + 3) -> (exists ftcn_factor_ftsc_norm. (a * a + b * b) = (p) * ftcn_factor_ftsc_norm) -> ((exists ftcn_factor_ftsc_first_result. (a) = (p) * ftcn_factor_ftsc_first_result) /\ (exists ftcn_factor_ftsc_both_second_result. (b) = (p) * ftcn_factor_ftsc_both_second_result))

Constructive proof overview

Generated structural guide

A prime congruent to three modulo four divides a two-square norm only when it divides both coordinates.

The unchanged tactic script uses 4 declared prerequisites and contains 46 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

prime_nonzero Stable theorem; checked-use authorized nonzero_is_succ Stable theorem; checked-use authorized TS0026 three_mod_four_prime_norm_divisor_forces_second_coordinate add_comm 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

46 script commands · 13 reading checkpoints · 5 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–6

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

  1. L1
    intro p
  2. L2
    intro a
  3. L3
    intro b
  4. L4
    intro hprime
  5. L5
    intro hthree
  6. L6
    intro hnorm
02Establish hnonzeroL7–12

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

  1. L7
    have hnonzero : ~(p = 0)
  2. L8
    intro hpzero
  3. L9
    specialize prime_nonzero p
  4. L10
    apply prime_nonzero
  5. L11
    exact hprime
  6. L12
    exact hpzero
03Establish hsuccessorL13–16

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

  1. L13
    have hsuccessor : exists n. p = S n
  2. L14
    specialize nonzero_is_succ p
  3. L15
    apply nonzero_is_succ
  4. L16
    exact hnonzero
04Separate the logical casesL17–17

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

  1. L17
    cases hsuccessor
05Establish hsecondL18–27

Establish this local claim before using it. It is not an additional assumption. The following proof commands apply three mod four prime norm divisor forces second coordinate.

  1. L18
    have hsecond : exists ftcn_factor_ftsc_both_second_local. (b) = (p) * ftcn_factor_ftsc_both_second_local
  2. L19
    specialize three_mod_four_prime_norm_divisor_forces_second_coordinate p
  3. L20
    specialize three_mod_four_prime_norm_divisor_forces_second_coordinate x
  4. L21
    specialize three_mod_four_prime_norm_divisor_forces_second_coordinate a
  5. L22
    specialize three_mod_four_prime_norm_divisor_forces_second_coordinate b
  6. L23
    apply three_mod_four_prime_norm_divisor_forces_second_coordinate
  7. L24
    exact hsuccessor_witness
  8. L25
    exact hprime
  9. L26
    exact hthree
  10. L27
    exact hnorm
06Establish hswappedL28–28

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

  1. L28
    have hswapped : exists ftcn_factor_ftsc_swapped_norm. (b * b + a * a) = (p) * ftcn_factor_ftsc_swapped_norm
07Separate the logical casesL29–29

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

  1. L29
    cases hnorm
08Construct an explicit witnessL30–30

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

  1. L30
    exists x1
09Calculate and transport equalitiesL31–31

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

  1. L31
    trans a * a + b * b
10Use earlier factsL32–33

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

  1. L32
    apply add_comm
  2. L33
    exact hnorm_witness
11Establish hfirstL34–43

Establish this local claim before using it. It is not an additional assumption. The following proof commands apply three mod four prime norm divisor forces second coordinate.

  1. L34
    have hfirst : exists ftcn_factor_ftsc_both_first_local. (a) = (p) * ftcn_factor_ftsc_both_first_local
  2. L35
    specialize three_mod_four_prime_norm_divisor_forces_second_coordinate p
  3. L36
    specialize three_mod_four_prime_norm_divisor_forces_second_coordinate x
  4. L37
    specialize three_mod_four_prime_norm_divisor_forces_second_coordinate b
  5. L38
    specialize three_mod_four_prime_norm_divisor_forces_second_coordinate a
  6. L39
    apply three_mod_four_prime_norm_divisor_forces_second_coordinate
  7. L40
    exact hsuccessor_witness
  8. L41
    exact hprime
  9. L42
    exact hthree
  10. L43
    exact hswapped
12Separate the logical casesL44–44

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

  1. L44
    split
13Use earlier factsL45–46

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

  1. L45
    exact hfirst
  2. L46
    exact hsecond

Library-wide reading audit

Original exact command ledger · 46 lines
  1. 0001intro p
  2. 0002intro a
  3. 0003intro b
  4. 0004intro hprime
  5. 0005intro hthree
  6. 0006intro hnorm
  7. 0007have hnonzero : ~(p = 0)
  8. 0008intro hpzero
  9. 0009specialize prime_nonzero p
  10. 0010apply prime_nonzero
  11. 0011exact hprime
  12. 0012exact hpzero
  13. 0013have hsuccessor : exists n. p = S n
  14. 0014specialize nonzero_is_succ p
  15. 0015apply nonzero_is_succ
  16. 0016exact hnonzero
  17. 0017cases hsuccessor
  18. 0018have hsecond : exists ftcn_factor_ftsc_both_second_local. (b) = (p) * ftcn_factor_ftsc_both_second_local
  19. 0019specialize three_mod_four_prime_norm_divisor_forces_second_coordinate p
  20. 0020specialize three_mod_four_prime_norm_divisor_forces_second_coordinate x
  21. 0021specialize three_mod_four_prime_norm_divisor_forces_second_coordinate a
  22. 0022specialize three_mod_four_prime_norm_divisor_forces_second_coordinate b
  23. 0023apply three_mod_four_prime_norm_divisor_forces_second_coordinate
  24. 0024exact hsuccessor_witness
  25. 0025exact hprime
  26. 0026exact hthree
  27. 0027exact hnorm
  28. 0028have hswapped : exists ftcn_factor_ftsc_swapped_norm. (b * b + a * a) = (p) * ftcn_factor_ftsc_swapped_norm
  29. 0029cases hnorm
  30. 0030exists x1
  31. 0031trans a * a + b * b
  32. 0032apply add_comm
  33. 0033exact hnorm_witness
  34. 0034have hfirst : exists ftcn_factor_ftsc_both_first_local. (a) = (p) * ftcn_factor_ftsc_both_first_local
  35. 0035specialize three_mod_four_prime_norm_divisor_forces_second_coordinate p
  36. 0036specialize three_mod_four_prime_norm_divisor_forces_second_coordinate x
  37. 0037specialize three_mod_four_prime_norm_divisor_forces_second_coordinate b
  38. 0038specialize three_mod_four_prime_norm_divisor_forces_second_coordinate a
  39. 0039apply three_mod_four_prime_norm_divisor_forces_second_coordinate
  40. 0040exact hsuccessor_witness
  41. 0041exact hprime
  42. 0042exact hthree
  43. 0043exact hswapped
  44. 0044split
  45. 0045exact hfirst
  46. 0046exact hsecond