TS002F

two_square_product_difference_reverse

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

The nonnegative b*c-a*d branch gives the same natural Brahmagupta representation.

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 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 nonnegative b*c-a*d branch gives the same natural Brahmagupta representation.

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

TS002C two_square_product_norm_expanded TS002B two_square_cross_products_equal TS002D two_square_balanced_difference_identity add_comm Stable theorem; checked-use authorized mul_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 dependency-curried candidate body does not grant checked theorem use or Stable membership.

Read the argument

Proof checkpoints

30 script commands · 6 reading checkpoints · 2 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–6

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
  5. L5
    intro m
  6. L6
    intro hdifference
02Use earlier factsL7–10

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

  1. L7
    specialize two_square_product_norm_expanded a
  2. L8
    specialize two_square_product_norm_expanded b
  3. L9
    specialize two_square_product_norm_expanded c
  4. L10
    specialize two_square_product_norm_expanded d
03Calculate and transport equalitiesL11–11

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

  1. L11
    rewrite two_square_product_norm_expanded
04Establish hswapL12–18

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

  1. L12
    have hswap : (a * d) * (a * d) + (b * c) * (b * c) = (b * c) * (b * c) + (a * d) * (a * d)
  2. L13
    apply add_comm
  3. L14
    rewrite hswap
  4. L15
    specialize two_square_cross_products_equal a
  5. L16
    specialize two_square_cross_products_equal b
  6. L17
    specialize two_square_cross_products_equal c
  7. L18
    specialize two_square_cross_products_equal d
05Establish hcrossL19–28

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

  1. L19
    have hcross : (a * c) * (b * d) = (b * c) * (a * d)
  2. L20
    trans (a * d) * (b * c)
  3. L21
    exact two_square_cross_products_equal
  4. L22
    apply mul_comm
  5. L23
    specialize two_square_balanced_difference_identity (a * c)
  6. L24
    specialize two_square_balanced_difference_identity (b * d)
  7. L25
    specialize two_square_balanced_difference_identity (b * c)
  8. L26
    specialize two_square_balanced_difference_identity (a * d)
  9. L27
    specialize two_square_balanced_difference_identity m
  10. L28
    apply two_square_balanced_difference_identity
06Use earlier factsL29–30

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

  1. L29
    exact hcross
  2. L30
    exact hdifference

Library-wide reading audit

Original exact command ledger · 30 lines
  1. 0001intro a
  2. 0002intro b
  3. 0003intro c
  4. 0004intro d
  5. 0005intro m
  6. 0006intro hdifference
  7. 0007specialize two_square_product_norm_expanded a
  8. 0008specialize two_square_product_norm_expanded b
  9. 0009specialize two_square_product_norm_expanded c
  10. 0010specialize two_square_product_norm_expanded d
  11. 0011rewrite two_square_product_norm_expanded
  12. 0012have hswap : (a * d) * (a * d) + (b * c) * (b * c) = (b * c) * (b * c) + (a * d) * (a * d)
  13. 0013apply add_comm
  14. 0014rewrite hswap
  15. 0015specialize two_square_cross_products_equal a
  16. 0016specialize two_square_cross_products_equal b
  17. 0017specialize two_square_cross_products_equal c
  18. 0018specialize two_square_cross_products_equal d
  19. 0019have hcross : (a * c) * (b * d) = (b * c) * (a * d)
  20. 0020trans (a * d) * (b * c)
  21. 0021exact two_square_cross_products_equal
  22. 0022apply mul_comm
  23. 0023specialize two_square_balanced_difference_identity (a * c)
  24. 0024specialize two_square_balanced_difference_identity (b * d)
  25. 0025specialize two_square_balanced_difference_identity (b * c)
  26. 0026specialize two_square_balanced_difference_identity (a * d)
  27. 0027specialize two_square_balanced_difference_identity m
  28. 0028apply two_square_balanced_difference_identity
  29. 0029exact hcross
  30. 0030exact hdifference