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 * mConstructive 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 authorizedDirect 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
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
02Use earlier factsL7–10
03Calculate and transport equalitiesL11–11
Carry out the recorded arithmetic or equality steps; inspect the exact commands for their direction and premises.
- 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.
- L12
have hswap : (a * d) * (a * d) + (b * c) * (b * c) = (b * c) * (b * c) + (a * d) * (a * d) - L13
apply add_comm - L14
rewrite hswap - L15
specialize two_square_cross_products_equal a - L16
specialize two_square_cross_products_equal b - L17
specialize two_square_cross_products_equal c - 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.
- L19
have hcross : (a * c) * (b * d) = (b * c) * (a * d) - L20
trans (a * d) * (b * c) - L21
exact two_square_cross_products_equal - L22
apply mul_comm - L23
specialize two_square_balanced_difference_identity (a * c) - L24
specialize two_square_balanced_difference_identity (b * d) - L25
specialize two_square_balanced_difference_identity (b * c) - L26
specialize two_square_balanced_difference_identity (a * d) - L27
specialize two_square_balanced_difference_identity m - L28
apply two_square_balanced_difference_identity
Original exact command ledger · 30 lines
- 0001
intro a - 0002
intro b - 0003
intro c - 0004
intro d - 0005
intro m - 0006
intro hdifference - 0007
specialize two_square_product_norm_expanded a - 0008
specialize two_square_product_norm_expanded b - 0009
specialize two_square_product_norm_expanded c - 0010
specialize two_square_product_norm_expanded d - 0011
rewrite two_square_product_norm_expanded - 0012
have hswap : (a * d) * (a * d) + (b * c) * (b * c) = (b * c) * (b * c) + (a * d) * (a * d) - 0013
apply add_comm - 0014
rewrite hswap - 0015
specialize two_square_cross_products_equal a - 0016
specialize two_square_cross_products_equal b - 0017
specialize two_square_cross_products_equal c - 0018
specialize two_square_cross_products_equal d - 0019
have hcross : (a * c) * (b * d) = (b * c) * (a * d) - 0020
trans (a * d) * (b * c) - 0021
exact two_square_cross_products_equal - 0022
apply mul_comm - 0023
specialize two_square_balanced_difference_identity (a * c) - 0024
specialize two_square_balanced_difference_identity (b * d) - 0025
specialize two_square_balanced_difference_identity (b * c) - 0026
specialize two_square_balanced_difference_identity (a * d) - 0027
specialize two_square_balanced_difference_identity m - 0028
apply two_square_balanced_difference_identity - 0029
exact hcross - 0030
exact hdifference