FS004Q · theorem body

four_square_signed_orientation_mask_00

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

Constructive signed quaternion quotient for centered orientation mask 0000, using the exact four_square_signed_conjugate_positive_blocks surface.

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

∀ p. ∀ k. ∀ h. ∀ a. ∀ b. ∀ c. ∀ d. ∀ e. ∀ f. ∀ g. ∀ j. ∀ r. ¬k = 0 → k = 2 · h + 1 → p · k = a · a + b · b + c · c + d · d → ModEq(k,a,e)ModEq(k,b,f)ModEq(k,c,g)ModEq(k,d,j) → k · r = e · e + f · f + g · g + j · j → ∃ x. ∃ y. ∃ z. ∃ n. p · r = x · x + y · y + z · z + n · n

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

In local proof propositions

Exact expanded first-order statement
forall p k h a b c d e f g j r. ~(k = 0) -> k = 2 * h + 1 -> p * k = a * a + b * b + c * c + d * d -> (exists ftcn_left_mask_0_0 ftcn_right_mask_0_0. (a) + (k) * ftcn_left_mask_0_0 = (e) + (k) * ftcn_right_mask_0_0) -> (exists ftcn_left_mask_0_1 ftcn_right_mask_0_1. (b) + (k) * ftcn_left_mask_0_1 = (f) + (k) * ftcn_right_mask_0_1) -> (exists ftcn_left_mask_0_2 ftcn_right_mask_0_2. (c) + (k) * ftcn_left_mask_0_2 = (g) + (k) * ftcn_right_mask_0_2) -> (exists ftcn_left_mask_0_3 ftcn_right_mask_0_3. (d) + (k) * ftcn_left_mask_0_3 = (j) + (k) * ftcn_right_mask_0_3) -> k * r = e * e + f * f + g * g + j * j -> (exists fsl_a_fssc_mask_0 fsl_b_fssc_mask_0 fsl_c_fssc_mask_0 fsl_d_fssc_mask_0. (p * r) = fsl_a_fssc_mask_0 * fsl_a_fssc_mask_0 + fsl_b_fssc_mask_0 * fsl_b_fssc_mask_0 + fsl_c_fssc_mask_0 * fsl_c_fssc_mask_0 + fsl_d_fssc_mask_0 * fsl_d_fssc_mask_0)

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

114 script commands · 17 reading checkpoints · 9 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 (4)
01Fix variables and assumptionsL1–10

Work with arbitrary variables or the premises of the current implication.

  1. L1
    intro p
  2. L2
    intro k
  3. L3
    intro h
  4. L4
    intro a
  5. L5
    intro b
  6. L6
    intro c
  7. L7
    intro d
  8. L8
    intro e
  9. L9
    intro f
  10. L10
    intro g
02Fix variables and assumptionsL11–20

Work with arbitrary variables or the premises of the current implication.

  1. L11
    intro j
  2. L12
    intro r
  3. L13
    intro hnonzero
  4. L14
    intro hodd
  5. L15
    intro hfirst
  6. L16
    intro horientation0
  7. L17
    intro horientation1
  8. L18
    intro horientation2
  9. L19
    intro horientation3
  10. L20
    intro hcenter
03Establish hfirst_permutedL21–24

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

  1. L21
    have hfirst_permuted : p * k = a * a + b * b + c * c + d * d
  2. L22
    trans a * a + b * b + c * c + d * d
  3. L23
    exact hfirst
  4. L24
    refl
04Establish hcenter_permutedL25–28

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

  1. L25
    have hcenter_permuted : k * r = e * e + f * f + g * g + j * j
  2. L26
    trans e * e + f * f + g * g + j * j
  3. L27
    exact hcenter
  4. L28
    refl
05Establish hzeroL29–37

Establish this local claim before using it. It is not an additional assumption. The following proof commands apply four square signed cases norm quotient zero congruence.

  1. L29
    have hzero : ModEq(k,e · e + f · f + g · g + j · j,0)Definitions: ModEq(k,e · e + f · f + g · g + j · j,0)Original native command in the exact edition
  2. L30
    specialize four_square_signed_cases_norm_quotient_zero_congruence k
  3. L31
    specialize four_square_signed_cases_norm_quotient_zero_congruence r
  4. L32
    specialize four_square_signed_cases_norm_quotient_zero_congruence e
  5. L33
    specialize four_square_signed_cases_norm_quotient_zero_congruence f
  6. L34
    specialize four_square_signed_cases_norm_quotient_zero_congruence g
  7. L35
    specialize four_square_signed_cases_norm_quotient_zero_congruence j
  8. L36
    apply four_square_signed_cases_norm_quotient_zero_congruence
  9. L37
    exact hcenter_permuted
06Establish hblocksL38–47

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

  1. L38
    have hblocks : ModEq(k,a · e + b · f + c · g + d · j,0) ∧ (ModEq(k,a · f + c · j,b · e + d · g) ∧ (ModEq(k,a · g + d · f,c · e + b · j) ∧ ModEq(k,a · j + b · g,d · e + c · f)))Definitions: ModEq(k,a · e + b · f + c · g + d · j,0)ModEq(k,a · f + c · j,b · e + d · g)ModEq(k,a · g + d · f,c · e + b · j)ModEq(k,a · j + b · g,d · e + c · f)Original native command in the exact edition
  2. L39
    specialize four_square_signed_conjugate_positive_blocks k
  3. L40
    specialize four_square_signed_conjugate_positive_blocks a
  4. L41
    specialize four_square_signed_conjugate_positive_blocks b
  5. L42
    specialize four_square_signed_conjugate_positive_blocks c
  6. L43
    specialize four_square_signed_conjugate_positive_blocks d
  7. L44
    specialize four_square_signed_conjugate_positive_blocks e
  8. L45
    specialize four_square_signed_conjugate_positive_blocks f
  9. L46
    specialize four_square_signed_conjugate_positive_blocks g
  10. L47
    specialize four_square_signed_conjugate_positive_blocks j
07Use earlier factsL48–53

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

  1. L48
    apply four_square_signed_conjugate_positive_blocks
  2. L49
    exact hzero
  3. L50
    exact horientation0
  4. L51
    exact horientation1
  5. L52
    exact horientation2
  6. L53
    exact horientation3
08Establish hcoordinatesL54–63

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

  1. L54
    have hcoordinates : exists m0 m1 m2 m3. (((((a * e + b * f + c * g + d * j) = (0) + m0) \/ ((0) = (a * e + b * f + c * g + d * j) + m0)) /\ ((((a * f + c * j) = (b * e + d * g) + m1) \/ ((b * e + d * g) = (a * f + c * j) + m1)) /\ ((((a * g + d * f) = (c * e + b * j) + m2) \/ ((c * e + b * j) = (a * g + d * f) + m2)) /\ (((a * j + b * g) = (d * e + c * f) + m3) \/ ((d * e + c * f) = (a * j + b * g) + m3))))) /\ ((a * a + b * b + c * c + d * d) * (e * e + f * f + g * g + j * j) = m0 * m0 + m1 * m1 + m2 * m2 + m3 * m3))
  2. L55
    specialize four_square_conjugate_absolute_coordinates_total a
  3. L56
    specialize four_square_conjugate_absolute_coordinates_total b
  4. L57
    specialize four_square_conjugate_absolute_coordinates_total c
  5. L58
    specialize four_square_conjugate_absolute_coordinates_total d
  6. L59
    specialize four_square_conjugate_absolute_coordinates_total e
  7. L60
    specialize four_square_conjugate_absolute_coordinates_total f
  8. L61
    specialize four_square_conjugate_absolute_coordinates_total g
  9. L62
    specialize four_square_conjugate_absolute_coordinates_total j
  10. L63
    exact four_square_conjugate_absolute_coordinates_total
09Separate the logical casesL64–68

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

  1. L64
    cases hcoordinates
  2. L65
    cases hcoordinates_witness
  3. L66
    cases hcoordinates_witness_witness
  4. L67
    cases hcoordinates_witness_witness_witness
  5. L68
    cases hcoordinates_witness_witness_witness_witness
10Establish habsoluteL69–70

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

  1. L69
    have habsolute : ((((a * e + b * f + c * g + d * j) = (0) + x) \/ ((0) = (a * e + b * f + c * g + d * j) + x)) /\ ((((a * f + c * j) = (b * e + d * g) + x1) \/ ((b * e + d * g) = (a * f + c * j) + x1)) /\ ((((a * g + d * f) = (c * e + b * j) + x2) \/ ((c * e + b * j) = (a * g + d * f) + x2)) /\ (((a * j + b * g) = (d * e + c * f) + x3) \/ ((d * e + c * f) = (a * j + b * g) + x3)))))
  2. L70
    exact hcoordinates_witness_witness_witness_witness_left
11Establish hidentityL71–72

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

  1. L71
    have hidentity : (a * a + b * b + c * c + d * d) * (e * e + f * f + g * g + j * j) = x * x + x1 * x1 + x2 * x2 + x3 * x3
  2. L72
    exact hcoordinates_witness_witness_witness_witness_right
12Establish hcenter_identityL73–76

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

  1. L73
    have hcenter_identity : k * r = e * e + f * f + g * g + j * j
  2. L74
    trans e * e + f * f + g * g + j * j
  3. L75
    exact hcenter_permuted
  4. L76
    refl
13Establish hproductL77–82

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

  1. L77
    have hproduct : (p * k) * (k * r) = x * x + x1 * x1 + x2 * x2 + x3 * x3
  2. L78
    trans (a * a + b * b + c * c + d * d) * (e * e + f * f + g * g + j * j)
  3. L79
    congr
  4. L80
    exact hfirst_permuted
  5. L81
    exact hcenter_identity
  6. L82
    exact hidentity
14Separate the logical casesL83–88

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

  1. L83
    cases hblocks
  2. L84
    cases hblocks_right
  3. L85
    cases hblocks_right_right
  4. L86
    cases habsolute
  5. L87
    cases habsolute_right
  6. L88
    cases habsolute_right_right
15Use earlier factsL89–98

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

  1. L89
    specialize four_square_signed_absolute_block_representation p
  2. L90
    specialize four_square_signed_absolute_block_representation k
  3. L91
    specialize four_square_signed_absolute_block_representation r
  4. L92
    specialize four_square_signed_absolute_block_representation (a * e + b * f + c * g + d * j)
  5. L93
    specialize four_square_signed_absolute_block_representation (a * f + c * j)
  6. L94
    specialize four_square_signed_absolute_block_representation (a * g + d * f)
  7. L95
    specialize four_square_signed_absolute_block_representation (a * j + b * g)
  8. L96
    specialize four_square_signed_absolute_block_representation (0)
  9. L97
    specialize four_square_signed_absolute_block_representation (b * e + d * g)
  10. L98
    specialize four_square_signed_absolute_block_representation (c * e + b * j)
16Use earlier factsL99–108

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

  1. L99
    specialize four_square_signed_absolute_block_representation (d * e + c * f)
  2. L100
    specialize four_square_signed_absolute_block_representation x
  3. L101
    specialize four_square_signed_absolute_block_representation x1
  4. L102
    specialize four_square_signed_absolute_block_representation x2
  5. L103
    specialize four_square_signed_absolute_block_representation x3
  6. L104
    apply four_square_signed_absolute_block_representation
  7. L105
    exact hnonzero
  8. L106
    exact hproduct
  9. L107
    exact hblocks_left
  10. L108
    exact habsolute_left
17Use earlier factsL109–114

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

  1. L109
    exact hblocks_right_left
  2. L110
    exact habsolute_right_left
  3. L111
    exact hblocks_right_right_left
  4. L112
    exact habsolute_right_right_left
  5. L113
    exact hblocks_right_right_right
  6. L114
    exact habsolute_right_right_right

Library-wide reading audit

Original defined command ledger · 114 lines
  1. 0001intro p
  2. 0002intro k
  3. 0003intro h
  4. 0004intro a
  5. 0005intro b
  6. 0006intro c
  7. 0007intro d
  8. 0008intro e
  9. 0009intro f
  10. 0010intro g
  11. 0011intro j
  12. 0012intro r
  13. 0013intro hnonzero
  14. 0014intro hodd
  15. 0015intro hfirst
  16. 0016intro horientation0
  17. 0017intro horientation1
  18. 0018intro horientation2
  19. 0019intro horientation3
  20. 0020intro hcenter
  21. 0021have hfirst_permuted : p * k = a * a + b * b + c * c + d * d
  22. 0022trans a * a + b * b + c * c + d * d
  23. 0023exact hfirst
  24. 0024refl
  25. 0025have hcenter_permuted : k * r = e * e + f * f + g * g + j * j
  26. 0026trans e * e + f * f + g * g + j * j
  27. 0027exact hcenter
  28. 0028refl
  29. 0029have hzero : ModEq(k,e · e + f · f + g · g + j · j,0)
    Exact native replay linehave hzero : (exists ftcn_left_case_0_zero ftcn_right_case_0_zero. (e * e + f * f + g * g + j * j) + (k) * ftcn_left_case_0_zero = (0) + (k) * ftcn_right_case_0_zero)
  30. 0030specialize four_square_signed_cases_norm_quotient_zero_congruence k
  31. 0031specialize four_square_signed_cases_norm_quotient_zero_congruence r
  32. 0032specialize four_square_signed_cases_norm_quotient_zero_congruence e
  33. 0033specialize four_square_signed_cases_norm_quotient_zero_congruence f
  34. 0034specialize four_square_signed_cases_norm_quotient_zero_congruence g
  35. 0035specialize four_square_signed_cases_norm_quotient_zero_congruence j
  36. 0036apply four_square_signed_cases_norm_quotient_zero_congruence
  37. 0037exact hcenter_permuted
  38. 0038have hblocks : ModEq(k,a · e + b · f + c · g + d · j,0) ∧ (ModEq(k,a · f + c · j,b · e + d · g) ∧ (ModEq(k,a · g + d · f,c · e + b · j)ModEq(k,a · j + b · g,d · e + c · f)))
    Exact native replay linehave hblocks : ((exists ftcn_left_case_0_block_0 ftcn_right_case_0_block_0. (a * e + b * f + c * g + d * j) + (k) * ftcn_left_case_0_block_0 = (0) + (k) * ftcn_right_case_0_block_0) /\ ((exists ftcn_left_case_0_block_1 ftcn_right_case_0_block_1. (a * f + c * j) + (k) * ftcn_left_case_0_block_1 = (b * e + d * g) + (k) * ftcn_right_case_0_block_1) /\ ((exists ftcn_left_case_0_block_2 ftcn_right_case_0_block_2. (a * g + d * f) + (k) * ftcn_left_case_0_block_2 = (c * e + b * j) + (k) * ftcn_right_case_0_block_2) /\ (exists ftcn_left_case_0_block_3 ftcn_right_case_0_block_3. (a * j + b * g) + (k) * ftcn_left_case_0_block_3 = (d * e + c * f) + (k) * ftcn_right_case_0_block_3))))
  39. 0039specialize four_square_signed_conjugate_positive_blocks k
  40. 0040specialize four_square_signed_conjugate_positive_blocks a
  41. 0041specialize four_square_signed_conjugate_positive_blocks b
  42. 0042specialize four_square_signed_conjugate_positive_blocks c
  43. 0043specialize four_square_signed_conjugate_positive_blocks d
  44. 0044specialize four_square_signed_conjugate_positive_blocks e
  45. 0045specialize four_square_signed_conjugate_positive_blocks f
  46. 0046specialize four_square_signed_conjugate_positive_blocks g
  47. 0047specialize four_square_signed_conjugate_positive_blocks j
  48. 0048apply four_square_signed_conjugate_positive_blocks
  49. 0049exact hzero
  50. 0050exact horientation0
  51. 0051exact horientation1
  52. 0052exact horientation2
  53. 0053exact horientation3
  54. 0054have hcoordinates : exists m0 m1 m2 m3. (((((a * e + b * f + c * g + d * j) = (0) + m0) \/ ((0) = (a * e + b * f + c * g + d * j) + m0)) /\ ((((a * f + c * j) = (b * e + d * g) + m1) \/ ((b * e + d * g) = (a * f + c * j) + m1)) /\ ((((a * g + d * f) = (c * e + b * j) + m2) \/ ((c * e + b * j) = (a * g + d * f) + m2)) /\ (((a * j + b * g) = (d * e + c * f) + m3) \/ ((d * e + c * f) = (a * j + b * g) + m3))))) /\ ((a * a + b * b + c * c + d * d) * (e * e + f * f + g * g + j * j) = m0 * m0 + m1 * m1 + m2 * m2 + m3 * m3))
  55. 0055specialize four_square_conjugate_absolute_coordinates_total a
  56. 0056specialize four_square_conjugate_absolute_coordinates_total b
  57. 0057specialize four_square_conjugate_absolute_coordinates_total c
  58. 0058specialize four_square_conjugate_absolute_coordinates_total d
  59. 0059specialize four_square_conjugate_absolute_coordinates_total e
  60. 0060specialize four_square_conjugate_absolute_coordinates_total f
  61. 0061specialize four_square_conjugate_absolute_coordinates_total g
  62. 0062specialize four_square_conjugate_absolute_coordinates_total j
  63. 0063exact four_square_conjugate_absolute_coordinates_total
  64. 0064cases hcoordinates
  65. 0065cases hcoordinates_witness
  66. 0066cases hcoordinates_witness_witness
  67. 0067cases hcoordinates_witness_witness_witness
  68. 0068cases hcoordinates_witness_witness_witness_witness
  69. 0069have habsolute : ((((a * e + b * f + c * g + d * j) = (0) + x) \/ ((0) = (a * e + b * f + c * g + d * j) + x)) /\ ((((a * f + c * j) = (b * e + d * g) + x1) \/ ((b * e + d * g) = (a * f + c * j) + x1)) /\ ((((a * g + d * f) = (c * e + b * j) + x2) \/ ((c * e + b * j) = (a * g + d * f) + x2)) /\ (((a * j + b * g) = (d * e + c * f) + x3) \/ ((d * e + c * f) = (a * j + b * g) + x3)))))
  70. 0070exact hcoordinates_witness_witness_witness_witness_left
  71. 0071have hidentity : (a * a + b * b + c * c + d * d) * (e * e + f * f + g * g + j * j) = x * x + x1 * x1 + x2 * x2 + x3 * x3
  72. 0072exact hcoordinates_witness_witness_witness_witness_right
  73. 0073have hcenter_identity : k * r = e * e + f * f + g * g + j * j
  74. 0074trans e * e + f * f + g * g + j * j
  75. 0075exact hcenter_permuted
  76. 0076refl
  77. 0077have hproduct : (p * k) * (k * r) = x * x + x1 * x1 + x2 * x2 + x3 * x3
  78. 0078trans (a * a + b * b + c * c + d * d) * (e * e + f * f + g * g + j * j)
  79. 0079congr
  80. 0080exact hfirst_permuted
  81. 0081exact hcenter_identity
  82. 0082exact hidentity
  83. 0083cases hblocks
  84. 0084cases hblocks_right
  85. 0085cases hblocks_right_right
  86. 0086cases habsolute
  87. 0087cases habsolute_right
  88. 0088cases habsolute_right_right
  89. 0089specialize four_square_signed_absolute_block_representation p
  90. 0090specialize four_square_signed_absolute_block_representation k
  91. 0091specialize four_square_signed_absolute_block_representation r
  92. 0092specialize four_square_signed_absolute_block_representation (a * e + b * f + c * g + d * j)
  93. 0093specialize four_square_signed_absolute_block_representation (a * f + c * j)
  94. 0094specialize four_square_signed_absolute_block_representation (a * g + d * f)
  95. 0095specialize four_square_signed_absolute_block_representation (a * j + b * g)
  96. 0096specialize four_square_signed_absolute_block_representation (0)
  97. 0097specialize four_square_signed_absolute_block_representation (b * e + d * g)
  98. 0098specialize four_square_signed_absolute_block_representation (c * e + b * j)
  99. 0099specialize four_square_signed_absolute_block_representation (d * e + c * f)
  100. 0100specialize four_square_signed_absolute_block_representation x
  101. 0101specialize four_square_signed_absolute_block_representation x1
  102. 0102specialize four_square_signed_absolute_block_representation x2
  103. 0103specialize four_square_signed_absolute_block_representation x3
  104. 0104apply four_square_signed_absolute_block_representation
  105. 0105exact hnonzero
  106. 0106exact hproduct
  107. 0107exact hblocks_left
  108. 0108exact habsolute_left
  109. 0109exact hblocks_right_left
  110. 0110exact habsolute_right_left
  111. 0111exact hblocks_right_right_left
  112. 0112exact habsolute_right_right_left
  113. 0113exact hblocks_right_right_right
  114. 0114exact habsolute_right_right_right