PF001Q · theorem body

pythagorean_odd_square_sum_opposite_roots

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

An odd sum of two squares supplies a constructive choice of opposite parity for their roots.

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

∀ m. ∀ n. Odd(m · m + n · n)OppositeParity(m,n)

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

In local proof propositions

Exact expanded first-order statement
forall m n. (exists pp_odd_pi_odd_norm. (m * m + n * n) = 2 * pp_odd_pi_odd_norm + 1) -> ((((exists pp_even_pi_norm_parameters_first_even. (m) = 2 * pp_even_pi_norm_parameters_first_even) /\ (exists pp_odd_pi_norm_parameters_second_odd. (n) = 2 * pp_odd_pi_norm_parameters_second_odd + 1)) \/ ((exists pp_odd_pi_norm_parameters_first_odd. (m) = 2 * pp_odd_pi_norm_parameters_first_odd + 1) /\ (exists pp_even_pi_norm_parameters_second_even. (n) = 2 * pp_even_pi_norm_parameters_second_even))))

Proof neighborhood

Direct theorem prerequisites

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

23 script commands · 6 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 (2)
01Fix variables and assumptionsL1–3

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

  1. L1
    intro m
  2. L2
    intro n
  3. L3
    intro hodd
02Establish hparityL4–8

Establish this local claim before using it. It is not an additional assumption. The following proof commands apply odd sum parity cases.

  1. L4
    have hparity : OppositeParity(m · m,n · n)Definitions: OppositeParity(m · m,n · n)Original native command in the exact edition
  2. L5
    specialize odd_sum_parity_cases (m * m)
  3. L6
    specialize odd_sum_parity_cases (n * n)
  4. L7
    apply odd_sum_parity_cases
  5. L8
    exact hodd
03Separate the logical casesL9–12

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

  1. L9
    cases hparity
  2. L10
    cases hparity_left
  3. L11
    left
  4. L12
    split
04Use earlier factsL13–16

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

  1. L13
    apply pythagorean_even_square_has_even_root
  2. L14
    exact hparity_left_left
  3. L15
    apply pythagorean_odd_square_has_odd_root
  4. L16
    exact hparity_left_right
05Separate the logical casesL17–19

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

  1. L17
    cases hparity_right
  2. L18
    right
  3. L19
    split
06Use earlier factsL20–23

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

  1. L20
    apply pythagorean_odd_square_has_odd_root
  2. L21
    exact hparity_right_left
  3. L22
    apply pythagorean_even_square_has_even_root
  4. L23
    exact hparity_right_right

Library-wide reading audit

Original defined command ledger · 23 lines
  1. 0001intro m
  2. 0002intro n
  3. 0003intro hodd
  4. 0004have hparity : OppositeParity(m · m,n · n)
    Exact native replay linehave hparity : (((exists pp_even_pi_norm_square_parity_first_even. (m * m) = 2 * pp_even_pi_norm_square_parity_first_even) /\ (exists pp_odd_pi_norm_square_parity_second_odd. (n * n) = 2 * pp_odd_pi_norm_square_parity_second_odd + 1)) \/ ((exists pp_odd_pi_norm_square_parity_first_odd. (m * m) = 2 * pp_odd_pi_norm_square_parity_first_odd + 1) /\ (exists pp_even_pi_norm_square_parity_second_even. (n * n) = 2 * pp_even_pi_norm_square_parity_second_even)))
  5. 0005specialize odd_sum_parity_cases (m * m)
  6. 0006specialize odd_sum_parity_cases (n * n)
  7. 0007apply odd_sum_parity_cases
  8. 0008exact hodd
  9. 0009cases hparity
  10. 0010cases hparity_left
  11. 0011left
  12. 0012split
  13. 0013apply pythagorean_even_square_has_even_root
  14. 0014exact hparity_left_left
  15. 0015apply pythagorean_odd_square_has_odd_root
  16. 0016exact hparity_left_right
  17. 0017cases hparity_right
  18. 0018right
  19. 0019split
  20. 0020apply pythagorean_odd_square_has_odd_root
  21. 0021exact hparity_right_left
  22. 0022apply pythagorean_even_square_has_even_root
  23. 0023exact hparity_right_right