TS002G · theorem body

two_square_product_explicit_witness

dependency-curried kernel-checked candidate body; not enrolled in Alpha or Stable

The product of two two-square norms has the explicit coordinates a*c+b*d and a constructively witnessed absolute difference |a*d-b*c|.

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

forall a b c d. exists m. ((((a * d = b * c + m) \/ (b * c = a * d + m))) /\ ((a * a + b * b) * (c * c + d * d) = (a * c + b * d) * (a * c + b * d) + m * m))

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

none

In local proof propositions

none
Exact expanded first-order statement
forall a b c d. exists m. ((((a * d = b * c + m) \/ (b * c = a * d + m))) /\ ((a * a + b * b) * (c * c + d * d) = (a * c + b * d) * (a * c + b * d) + m * m))

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

25 script commands · 9 reading checkpoints · 0 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 (3)
01Fix variables and assumptionsL1–4

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
02Use earlier factsL5–6

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

  1. L5
    specialize natural_absolute_difference_exists (a * d)
  2. L6
    specialize natural_absolute_difference_exists (b * c)
03Separate the logical casesL7–7

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

  1. L7
    cases natural_absolute_difference_exists
04Construct an explicit witnessL8–8

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

  1. L8
    exists x
05Separate the logical casesL9–9

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

  1. L9
    split
06Use earlier factsL10–10

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

  1. L10
    exact natural_absolute_difference_exists_witness
07Separate the logical casesL11–11

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

  1. L11
    cases natural_absolute_difference_exists_witness
08Use earlier factsL12–21

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

  1. L12
    specialize two_square_product_difference_forward a
  2. L13
    specialize two_square_product_difference_forward b
  3. L14
    specialize two_square_product_difference_forward c
  4. L15
    specialize two_square_product_difference_forward d
  5. L16
    specialize two_square_product_difference_forward x
  6. L17
    apply two_square_product_difference_forward
  7. L18
    exact natural_absolute_difference_exists_witness_left
  8. L19
    specialize two_square_product_difference_reverse a
  9. L20
    specialize two_square_product_difference_reverse b
  10. L21
    specialize two_square_product_difference_reverse c
09Use earlier factsL22–25

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

  1. L22
    specialize two_square_product_difference_reverse d
  2. L23
    specialize two_square_product_difference_reverse x
  3. L24
    apply two_square_product_difference_reverse
  4. L25
    exact natural_absolute_difference_exists_witness_right

Library-wide reading audit

Original defined command ledger · 25 lines
  1. 0001intro a
  2. 0002intro b
  3. 0003intro c
  4. 0004intro d
  5. 0005specialize natural_absolute_difference_exists (a * d)
  6. 0006specialize natural_absolute_difference_exists (b * c)
  7. 0007cases natural_absolute_difference_exists
  8. 0008exists x
  9. 0009split
  10. 0010exact natural_absolute_difference_exists_witness
  11. 0011cases natural_absolute_difference_exists_witness
  12. 0012specialize two_square_product_difference_forward a
  13. 0013specialize two_square_product_difference_forward b
  14. 0014specialize two_square_product_difference_forward c
  15. 0015specialize two_square_product_difference_forward d
  16. 0016specialize two_square_product_difference_forward x
  17. 0017apply two_square_product_difference_forward
  18. 0018exact natural_absolute_difference_exists_witness_left
  19. 0019specialize two_square_product_difference_reverse a
  20. 0020specialize two_square_product_difference_reverse b
  21. 0021specialize two_square_product_difference_reverse c
  22. 0022specialize two_square_product_difference_reverse d
  23. 0023specialize two_square_product_difference_reverse x
  24. 0024apply two_square_product_difference_reverse
  25. 0025exact natural_absolute_difference_exists_witness_right