TS002G

two_square_product_explicit_witness

Dependency-curried candidate body; not Alpha-enrolled; no checked-use authority

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.

Exact expanded first-order arithmetic 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))

Constructive proof overview

Generated structural guide

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|.

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

Direct dependents

Formal native tactic body

Dependencies are introduced as named hypotheses before line 1. Local theorem links identify exact declared prerequisites. This dependency-curried candidate body does not grant checked theorem use or Stable membership.

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.

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 exact 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