FS0004 · theorem body

quaternion_coordinate_balance_total

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

Hamilton's four signed product coordinates have canonical constructively chosen SignedBalance witnesses.

historical independently replay-verified empty-context experiment; the experiment itself persisted no certificate and granted no release authority; current checked use follows separately sealed proof bundles; no Stable promotion.

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 e f g h. exists q0 q1 q2 q3. ((exists sb_pos_fs_q0 sb_neg_fs_q0. (((q0 = 2 * sb_pos_fs_q0 /\ sb_neg_fs_q0 = 0) \/ exists sd_half_fs_q0. ((q0 = 2 * sd_half_fs_q0 + 1 /\ sb_pos_fs_q0 = 0) /\ sb_neg_fs_q0 = S sd_half_fs_q0)) /\ (a * e) + sb_neg_fs_q0 = (b * f + c * g + d * h) + sb_pos_fs_q0)) /\ ((exists sb_pos_fs_q1 sb_neg_fs_q1. (((q1 = 2 * sb_pos_fs_q1 /\ sb_neg_fs_q1 = 0) \/ exists sd_half_fs_q1. ((q1 = 2 * sd_half_fs_q1 + 1 /\ sb_pos_fs_q1 = 0) /\ sb_neg_fs_q1 = S sd_half_fs_q1)) /\ (a * f + b * e + c * h) + sb_neg_fs_q1 = (d * g) + sb_pos_fs_q1)) /\ ((exists sb_pos_fs_q2 sb_neg_fs_q2. (((q2 = 2 * sb_pos_fs_q2 /\ sb_neg_fs_q2 = 0) \/ exists sd_half_fs_q2. ((q2 = 2 * sd_half_fs_q2 + 1 /\ sb_pos_fs_q2 = 0) /\ sb_neg_fs_q2 = S sd_half_fs_q2)) /\ (a * g + c * e + d * f) + sb_neg_fs_q2 = (b * h) + sb_pos_fs_q2)) /\ (exists sb_pos_fs_q3 sb_neg_fs_q3. (((q3 = 2 * sb_pos_fs_q3 /\ sb_neg_fs_q3 = 0) \/ exists sd_half_fs_q3. ((q3 = 2 * sd_half_fs_q3 + 1 /\ sb_pos_fs_q3 = 0) /\ sb_neg_fs_q3 = S sd_half_fs_q3)) /\ (a * h + b * g + d * e) + sb_neg_fs_q3 = (c * f) + sb_pos_fs_q3)))))

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 e f g h. exists q0 q1 q2 q3. ((exists sb_pos_fs_q0 sb_neg_fs_q0. (((q0 = 2 * sb_pos_fs_q0 /\ sb_neg_fs_q0 = 0) \/ exists sd_half_fs_q0. ((q0 = 2 * sd_half_fs_q0 + 1 /\ sb_pos_fs_q0 = 0) /\ sb_neg_fs_q0 = S sd_half_fs_q0)) /\ (a * e) + sb_neg_fs_q0 = (b * f + c * g + d * h) + sb_pos_fs_q0)) /\ ((exists sb_pos_fs_q1 sb_neg_fs_q1. (((q1 = 2 * sb_pos_fs_q1 /\ sb_neg_fs_q1 = 0) \/ exists sd_half_fs_q1. ((q1 = 2 * sd_half_fs_q1 + 1 /\ sb_pos_fs_q1 = 0) /\ sb_neg_fs_q1 = S sd_half_fs_q1)) /\ (a * f + b * e + c * h) + sb_neg_fs_q1 = (d * g) + sb_pos_fs_q1)) /\ ((exists sb_pos_fs_q2 sb_neg_fs_q2. (((q2 = 2 * sb_pos_fs_q2 /\ sb_neg_fs_q2 = 0) \/ exists sd_half_fs_q2. ((q2 = 2 * sd_half_fs_q2 + 1 /\ sb_pos_fs_q2 = 0) /\ sb_neg_fs_q2 = S sd_half_fs_q2)) /\ (a * g + c * e + d * f) + sb_neg_fs_q2 = (b * h) + sb_pos_fs_q2)) /\ (exists sb_pos_fs_q3 sb_neg_fs_q3. (((q3 = 2 * sb_pos_fs_q3 /\ sb_neg_fs_q3 = 0) \/ exists sd_half_fs_q3. ((q3 = 2 * sd_half_fs_q3 + 1 /\ sb_pos_fs_q3 = 0) /\ sb_neg_fs_q3 = S sd_half_fs_q3)) /\ (a * h + b * g + d * e) + sb_neg_fs_q3 = (c * f) + sb_pos_fs_q3)))))

Proof neighborhood

Direct theorem prerequisites

signed_balance_total · Alpha closed

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

39 script commands · 13 reading checkpoints · 4 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.

01Fix variables and assumptionsL1–8

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 e
  6. L6
    intro f
  7. L7
    intro g
  8. L8
    intro h
02Establish h0L9–12

Establish this local claim before using it. It is not an additional assumption.

  1. L9
    have h0 : exists q0. (exists sb_pos_fs_q0 sb_neg_fs_q0. (((q0 = 2 * sb_pos_fs_q0 /\ sb_neg_fs_q0 = 0) \/ exists sd_half_fs_q0. ((q0 = 2 * sd_half_fs_q0 + 1 /\ sb_pos_fs_q0 = 0) /\ sb_neg_fs_q0 = S sd_half_fs_q0)) /\ (a * e) + sb_neg_fs_q0 = (b * f + c * g + d * h) + sb_pos_fs_q0))
  2. L10
    specialize signed_balance_total (a * e)
  3. L11
    specialize signed_balance_total (b * f + c * g + d * h)
  4. L12
    exact signed_balance_total
03Establish h1L13–16

Establish this local claim before using it. It is not an additional assumption.

  1. L13
    have h1 : exists q1. (exists sb_pos_fs_q1 sb_neg_fs_q1. (((q1 = 2 * sb_pos_fs_q1 /\ sb_neg_fs_q1 = 0) \/ exists sd_half_fs_q1. ((q1 = 2 * sd_half_fs_q1 + 1 /\ sb_pos_fs_q1 = 0) /\ sb_neg_fs_q1 = S sd_half_fs_q1)) /\ (a * f + b * e + c * h) + sb_neg_fs_q1 = (d * g) + sb_pos_fs_q1))
  2. L14
    specialize signed_balance_total (a * f + b * e + c * h)
  3. L15
    specialize signed_balance_total (d * g)
  4. L16
    exact signed_balance_total
04Establish h2L17–20

Establish this local claim before using it. It is not an additional assumption.

  1. L17
    have h2 : exists q2. (exists sb_pos_fs_q2 sb_neg_fs_q2. (((q2 = 2 * sb_pos_fs_q2 /\ sb_neg_fs_q2 = 0) \/ exists sd_half_fs_q2. ((q2 = 2 * sd_half_fs_q2 + 1 /\ sb_pos_fs_q2 = 0) /\ sb_neg_fs_q2 = S sd_half_fs_q2)) /\ (a * g + c * e + d * f) + sb_neg_fs_q2 = (b * h) + sb_pos_fs_q2))
  2. L18
    specialize signed_balance_total (a * g + c * e + d * f)
  3. L19
    specialize signed_balance_total (b * h)
  4. L20
    exact signed_balance_total
05Establish h3L21–24

Establish this local claim before using it. It is not an additional assumption.

  1. L21
    have h3 : exists q3. (exists sb_pos_fs_q3 sb_neg_fs_q3. (((q3 = 2 * sb_pos_fs_q3 /\ sb_neg_fs_q3 = 0) \/ exists sd_half_fs_q3. ((q3 = 2 * sd_half_fs_q3 + 1 /\ sb_pos_fs_q3 = 0) /\ sb_neg_fs_q3 = S sd_half_fs_q3)) /\ (a * h + b * g + d * e) + sb_neg_fs_q3 = (c * f) + sb_pos_fs_q3))
  2. L22
    specialize signed_balance_total (a * h + b * g + d * e)
  3. L23
    specialize signed_balance_total (c * f)
  4. L24
    exact signed_balance_total
06Separate the logical casesL25–28

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

  1. L25
    cases h0
  2. L26
    cases h1
  3. L27
    cases h2
  4. L28
    cases h3
07Construct an explicit witnessL29–32

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

  1. L29
    exists x
  2. L30
    exists x1
  3. L31
    exists x2
  4. L32
    exists x3
08Separate the logical casesL33–33

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

  1. L33
    split
09Use earlier factsL34–34

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

  1. L34
    exact h0_witness
10Separate the logical casesL35–35

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

  1. L35
    split
11Use earlier factsL36–36

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

  1. L36
    exact h1_witness
12Separate the logical casesL37–37

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

  1. L37
    split
13Use earlier factsL38–39

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

  1. L38
    exact h2_witness
  2. L39
    exact h3_witness

Library-wide reading audit

Original defined command ledger · 39 lines
  1. 0001intro a
  2. 0002intro b
  3. 0003intro c
  4. 0004intro d
  5. 0005intro e
  6. 0006intro f
  7. 0007intro g
  8. 0008intro h
  9. 0009have h0 : exists q0. (exists sb_pos_fs_q0 sb_neg_fs_q0. (((q0 = 2 * sb_pos_fs_q0 /\ sb_neg_fs_q0 = 0) \/ exists sd_half_fs_q0. ((q0 = 2 * sd_half_fs_q0 + 1 /\ sb_pos_fs_q0 = 0) /\ sb_neg_fs_q0 = S sd_half_fs_q0)) /\ (a * e) + sb_neg_fs_q0 = (b * f + c * g + d * h) + sb_pos_fs_q0))
  10. 0010specialize signed_balance_total (a * e)
  11. 0011specialize signed_balance_total (b * f + c * g + d * h)
  12. 0012exact signed_balance_total
  13. 0013have h1 : exists q1. (exists sb_pos_fs_q1 sb_neg_fs_q1. (((q1 = 2 * sb_pos_fs_q1 /\ sb_neg_fs_q1 = 0) \/ exists sd_half_fs_q1. ((q1 = 2 * sd_half_fs_q1 + 1 /\ sb_pos_fs_q1 = 0) /\ sb_neg_fs_q1 = S sd_half_fs_q1)) /\ (a * f + b * e + c * h) + sb_neg_fs_q1 = (d * g) + sb_pos_fs_q1))
  14. 0014specialize signed_balance_total (a * f + b * e + c * h)
  15. 0015specialize signed_balance_total (d * g)
  16. 0016exact signed_balance_total
  17. 0017have h2 : exists q2. (exists sb_pos_fs_q2 sb_neg_fs_q2. (((q2 = 2 * sb_pos_fs_q2 /\ sb_neg_fs_q2 = 0) \/ exists sd_half_fs_q2. ((q2 = 2 * sd_half_fs_q2 + 1 /\ sb_pos_fs_q2 = 0) /\ sb_neg_fs_q2 = S sd_half_fs_q2)) /\ (a * g + c * e + d * f) + sb_neg_fs_q2 = (b * h) + sb_pos_fs_q2))
  18. 0018specialize signed_balance_total (a * g + c * e + d * f)
  19. 0019specialize signed_balance_total (b * h)
  20. 0020exact signed_balance_total
  21. 0021have h3 : exists q3. (exists sb_pos_fs_q3 sb_neg_fs_q3. (((q3 = 2 * sb_pos_fs_q3 /\ sb_neg_fs_q3 = 0) \/ exists sd_half_fs_q3. ((q3 = 2 * sd_half_fs_q3 + 1 /\ sb_pos_fs_q3 = 0) /\ sb_neg_fs_q3 = S sd_half_fs_q3)) /\ (a * h + b * g + d * e) + sb_neg_fs_q3 = (c * f) + sb_pos_fs_q3))
  22. 0022specialize signed_balance_total (a * h + b * g + d * e)
  23. 0023specialize signed_balance_total (c * f)
  24. 0024exact signed_balance_total
  25. 0025cases h0
  26. 0026cases h1
  27. 0027cases h2
  28. 0028cases h3
  29. 0029exists x
  30. 0030exists x1
  31. 0031exists x2
  32. 0032exists x3
  33. 0033split
  34. 0034exact h0_witness
  35. 0035split
  36. 0036exact h1_witness
  37. 0037split
  38. 0038exact h2_witness
  39. 0039exact h3_witness