Built with doc-gen4, running Lean4. Bubbles () indicate interactive fragments: hover for details, tap to reveal contents. Use Ctrl+↑Ctrl+↓to navigate, Ctrl+πŸ–±οΈto focus. On Mac, use Cmdinstead of Ctrl.
/-
Copyright (c) 2020 Bryan Gin-ge Chen. All rights reserved.
Released under Apache 2.0 license as described in the file LICENSE.
Authors: Bryan Gin-ge Chen, Kevin Lacker

! This file was ported from Lean 3 source module algebra.group_power.identities
! leanprover-community/mathlib commit c4658a649d216f57e99621708b09dcb3dcccbd23
! Please do not edit these lines, except to modify the commit id
! if you have ported upstream changes.
-/
import Mathlib.Tactic.Ring

/-!
# Identities

This file contains some "named" commutative ring identities.
-/


variable {
R: Type ?u.11796
R
:
Type _: Type (?u.11796+1)
Type _
} [
CommRing: Type ?u.5 β†’ Type ?u.5
CommRing
R: Type ?u.46
R
] {
a: R
a
b: R
b
x₁: R
x₁
xβ‚‚: R
xβ‚‚
x₃: R
x₃
xβ‚„: R
xβ‚„
xβ‚…: R
xβ‚…
x₆: R
x₆
x₇: R
x₇
xβ‚ˆ: R
xβ‚ˆ
y₁: R
y₁
yβ‚‚: R
yβ‚‚
y₃: R
y₃
yβ‚„: R
yβ‚„
yβ‚…: R
yβ‚…
y₆: R
y₆
y₇: R
y₇
yβ‚ˆ: R
yβ‚ˆ
n: R
n
:
R: Type ?u.46
R
} /-- Brahmagupta-Fibonacci identity or Diophantus identity, see . This sign choice here corresponds to the signs obtained by multiplying two complex numbers. -/ theorem
sq_add_sq_mul_sq_add_sq: (x₁ ^ 2 + xβ‚‚ ^ 2) * (y₁ ^ 2 + yβ‚‚ ^ 2) = (x₁ * y₁ - xβ‚‚ * yβ‚‚) ^ 2 + (x₁ * yβ‚‚ + xβ‚‚ * y₁) ^ 2
sq_add_sq_mul_sq_add_sq
: (
x₁: R
x₁
^
2: ?m.101
2
+
xβ‚‚: R
xβ‚‚
^
2: ?m.114
2
) * (
y₁: R
y₁
^
2: ?m.130
2
+
yβ‚‚: R
yβ‚‚
^
2: ?m.143
2
) = (
x₁: R
x₁
*
y₁: R
y₁
-
xβ‚‚: R
xβ‚‚
*
yβ‚‚: R
yβ‚‚
) ^
2: ?m.184
2
+ (
x₁: R
x₁
*
yβ‚‚: R
yβ‚‚
+
xβ‚‚: R
xβ‚‚
*
y₁: R
y₁
) ^
2: ?m.206
2
:=

Goals accomplished! πŸ™
R: Type u_1

inst✝: CommRing R

a, b, x₁, xβ‚‚, x₃, xβ‚„, xβ‚…, x₆, x₇, xβ‚ˆ, y₁, yβ‚‚, y₃, yβ‚„, yβ‚…, y₆, y₇, yβ‚ˆ, n: R


(x₁ ^ 2 + xβ‚‚ ^ 2) * (y₁ ^ 2 + yβ‚‚ ^ 2) = (x₁ * y₁ - xβ‚‚ * yβ‚‚) ^ 2 + (x₁ * yβ‚‚ + xβ‚‚ * y₁) ^ 2

Goals accomplished! πŸ™
#align sq_add_sq_mul_sq_add_sq
sq_add_sq_mul_sq_add_sq: βˆ€ {R : Type u_1} [inst : CommRing R] {x₁ xβ‚‚ y₁ yβ‚‚ : R}, (x₁ ^ 2 + xβ‚‚ ^ 2) * (y₁ ^ 2 + yβ‚‚ ^ 2) = (x₁ * y₁ - xβ‚‚ * yβ‚‚) ^ 2 + (x₁ * yβ‚‚ + xβ‚‚ * y₁) ^ 2
sq_add_sq_mul_sq_add_sq
/-- Brahmagupta's identity, see -/ theorem
sq_add_mul_sq_mul_sq_add_mul_sq: (x₁ ^ 2 + n * xβ‚‚ ^ 2) * (y₁ ^ 2 + n * yβ‚‚ ^ 2) = (x₁ * y₁ - n * xβ‚‚ * yβ‚‚) ^ 2 + n * (x₁ * yβ‚‚ + xβ‚‚ * y₁) ^ 2
sq_add_mul_sq_mul_sq_add_mul_sq
: (
x₁: R
x₁
^
2: ?m.3770
2
+
n: R
n
*
xβ‚‚: R
xβ‚‚
^
2: ?m.3786
2
) * (
y₁: R
y₁
^
2: ?m.3802
2
+
n: R
n
*
yβ‚‚: R
yβ‚‚
^
2: ?m.3818
2
) = (
x₁: R
x₁
*
y₁: R
y₁
-
n: R
n
*
xβ‚‚: R
xβ‚‚
*
yβ‚‚: R
yβ‚‚
) ^
2: ?m.3862
2
+
n: R
n
* (
x₁: R
x₁
*
yβ‚‚: R
yβ‚‚
+
xβ‚‚: R
xβ‚‚
*
y₁: R
y₁
) ^
2: ?m.3887
2
:=

Goals accomplished! πŸ™
R: Type u_1

inst✝: CommRing R

a, b, x₁, xβ‚‚, x₃, xβ‚„, xβ‚…, x₆, x₇, xβ‚ˆ, y₁, yβ‚‚, y₃, yβ‚„, yβ‚…, y₆, y₇, yβ‚ˆ, n: R


(x₁ ^ 2 + n * xβ‚‚ ^ 2) * (y₁ ^ 2 + n * yβ‚‚ ^ 2) = (x₁ * y₁ - n * xβ‚‚ * yβ‚‚) ^ 2 + n * (x₁ * yβ‚‚ + xβ‚‚ * y₁) ^ 2

Goals accomplished! πŸ™
#align sq_add_mul_sq_mul_sq_add_mul_sq
sq_add_mul_sq_mul_sq_add_mul_sq: βˆ€ {R : Type u_1} [inst : CommRing R] {x₁ xβ‚‚ y₁ yβ‚‚ n : R}, (x₁ ^ 2 + n * xβ‚‚ ^ 2) * (y₁ ^ 2 + n * yβ‚‚ ^ 2) = (x₁ * y₁ - n * xβ‚‚ * yβ‚‚) ^ 2 + n * (x₁ * yβ‚‚ + xβ‚‚ * y₁) ^ 2
sq_add_mul_sq_mul_sq_add_mul_sq
/-- Sophie Germain's identity, see . -/ theorem
pow_four_add_four_mul_pow_four: βˆ€ {R : Type u_1} [inst : CommRing R] {a b : R}, a ^ 4 + 4 * b ^ 4 = ((a - b) ^ 2 + b ^ 2) * ((a + b) ^ 2 + b ^ 2)
pow_four_add_four_mul_pow_four
:
a: R
a
^
4: ?m.7994
4
+
4: ?m.8007
4
*
b: R
b
^
4: ?m.8020
4
= ((
a: R
a
-
b: R
b
) ^
2: ?m.8054
2
+
b: R
b
^
2: ?m.8067
2
) * ((
a: R
a
+
b: R
b
) ^
2: ?m.8086
2
+
b: R
b
^
2: ?m.8099
2
) :=

Goals accomplished! πŸ™
R: Type u_1

inst✝: CommRing R

a, b, x₁, xβ‚‚, x₃, xβ‚„, xβ‚…, x₆, x₇, xβ‚ˆ, y₁, yβ‚‚, y₃, yβ‚„, yβ‚…, y₆, y₇, yβ‚ˆ, n: R


a ^ 4 + 4 * b ^ 4 = ((a - b) ^ 2 + b ^ 2) * ((a + b) ^ 2 + b ^ 2)

Goals accomplished! πŸ™
#align pow_four_add_four_mul_pow_four
pow_four_add_four_mul_pow_four: βˆ€ {R : Type u_1} [inst : CommRing R] {a b : R}, a ^ 4 + 4 * b ^ 4 = ((a - b) ^ 2 + b ^ 2) * ((a + b) ^ 2 + b ^ 2)
pow_four_add_four_mul_pow_four
/-- Sophie Germain's identity, see . -/ theorem
pow_four_add_four_mul_pow_four': a ^ 4 + 4 * b ^ 4 = (a ^ 2 - 2 * a * b + 2 * b ^ 2) * (a ^ 2 + 2 * a * b + 2 * b ^ 2)
pow_four_add_four_mul_pow_four'
:
a: R
a
^
4: ?m.11848
4
+
4: ?m.11861
4
*
b: R
b
^
4: ?m.11874
4
= (
a: R
a
^
2: ?m.11908
2
-
2: ?m.11924
2
*
a: R
a
*
b: R
b
+
2: ?m.11937
2
*
b: R
b
^
2: ?m.11950
2
) * (
a: R
a
^
2: ?m.11969
2
+
2: ?m.11985
2
*
a: R
a
*
b: R
b
+
2: ?m.11998
2
*
b: R
b
^
2: ?m.12011
2
) :=

Goals accomplished! πŸ™
R: Type u_1

inst✝: CommRing R

a, b, x₁, xβ‚‚, x₃, xβ‚„, xβ‚…, x₆, x₇, xβ‚ˆ, y₁, yβ‚‚, y₃, yβ‚„, yβ‚…, y₆, y₇, yβ‚ˆ, n: R


a ^ 4 + 4 * b ^ 4 = (a ^ 2 - 2 * a * b + 2 * b ^ 2) * (a ^ 2 + 2 * a * b + 2 * b ^ 2)

Goals accomplished! πŸ™
#align pow_four_add_four_mul_pow_four'
pow_four_add_four_mul_pow_four': βˆ€ {R : Type u_1} [inst : CommRing R] {a b : R}, a ^ 4 + 4 * b ^ 4 = (a ^ 2 - 2 * a * b + 2 * b ^ 2) * (a ^ 2 + 2 * a * b + 2 * b ^ 2)
pow_four_add_four_mul_pow_four'
/-- Euler's four-square identity, see . This sign choice here corresponds to the signs obtained by multiplying two quaternions. -/ theorem
sum_four_sq_mul_sum_four_sq: βˆ€ {R : Type u_1} [inst : CommRing R] {x₁ xβ‚‚ x₃ xβ‚„ y₁ yβ‚‚ y₃ yβ‚„ : R}, (x₁ ^ 2 + xβ‚‚ ^ 2 + x₃ ^ 2 + xβ‚„ ^ 2) * (y₁ ^ 2 + yβ‚‚ ^ 2 + y₃ ^ 2 + yβ‚„ ^ 2) = (x₁ * y₁ - xβ‚‚ * yβ‚‚ - x₃ * y₃ - xβ‚„ * yβ‚„) ^ 2 + (x₁ * yβ‚‚ + xβ‚‚ * y₁ + x₃ * yβ‚„ - xβ‚„ * y₃) ^ 2 + (x₁ * y₃ - xβ‚‚ * yβ‚„ + x₃ * y₁ + xβ‚„ * yβ‚‚) ^ 2 + (x₁ * yβ‚„ + xβ‚‚ * y₃ - x₃ * yβ‚‚ + xβ‚„ * y₁) ^ 2
sum_four_sq_mul_sum_four_sq
: (
x₁: R
x₁
^
2: ?m.16764
2
+
xβ‚‚: R
xβ‚‚
^
2: ?m.16777
2
+
x₃: R
x₃
^
2: ?m.16790
2
+
xβ‚„: R
xβ‚„
^
2: ?m.16803
2
) * (
y₁: R
y₁
^
2: ?m.16825
2
+
yβ‚‚: R
yβ‚‚
^
2: ?m.16838
2
+
y₃: R
y₃
^
2: ?m.16851
2
+
yβ‚„: R
yβ‚„
^
2: ?m.16864
2
) = (
x₁: R
x₁
*
y₁: R
y₁
-
xβ‚‚: R
xβ‚‚
*
yβ‚‚: R
yβ‚‚
-
x₃: R
x₃
*
y₃: R
y₃
-
xβ‚„: R
xβ‚„
*
yβ‚„: R
yβ‚„
) ^
2: ?m.16939
2
+ (
x₁: R
x₁
*
yβ‚‚: R
yβ‚‚
+
xβ‚‚: R
xβ‚‚
*
y₁: R
y₁
+
x₃: R
x₃
*
yβ‚„: R
yβ‚„
-
xβ‚„: R
xβ‚„
*
y₃: R
y₃
) ^
2: ?m.16973
2
+ (
x₁: R
x₁
*
y₃: R
y₃
-
xβ‚‚: R
xβ‚‚
*
yβ‚„: R
yβ‚„
+
x₃: R
x₃
*
y₁: R
y₁
+
xβ‚„: R
xβ‚„
*
yβ‚‚: R
yβ‚‚
) ^
2: ?m.17007
2
+ (
x₁: R
x₁
*
yβ‚„: R
yβ‚„
+
xβ‚‚: R
xβ‚‚
*
y₃: R
y₃
-
x₃: R
x₃
*
yβ‚‚: R
yβ‚‚
+
xβ‚„: R
xβ‚„
*
y₁: R
y₁
) ^
2: ?m.17041
2
:=

Goals accomplished! πŸ™
R: Type u_1

inst✝: CommRing R

a, b, x₁, xβ‚‚, x₃, xβ‚„, xβ‚…, x₆, x₇, xβ‚ˆ, y₁, yβ‚‚, y₃, yβ‚„, yβ‚…, y₆, y₇, yβ‚ˆ, n: R


(x₁ ^ 2 + xβ‚‚ ^ 2 + x₃ ^ 2 + xβ‚„ ^ 2) * (y₁ ^ 2 + yβ‚‚ ^ 2 + y₃ ^ 2 + yβ‚„ ^ 2) = (x₁ * y₁ - xβ‚‚ * yβ‚‚ - x₃ * y₃ - xβ‚„ * yβ‚„) ^ 2 + (x₁ * yβ‚‚ + xβ‚‚ * y₁ + x₃ * yβ‚„ - xβ‚„ * y₃) ^ 2 + (x₁ * y₃ - xβ‚‚ * yβ‚„ + x₃ * y₁ + xβ‚„ * yβ‚‚) ^ 2 + (x₁ * yβ‚„ + xβ‚‚ * y₃ - x₃ * yβ‚‚ + xβ‚„ * y₁) ^ 2

Goals accomplished! πŸ™
#align sum_four_sq_mul_sum_four_sq
sum_four_sq_mul_sum_four_sq: βˆ€ {R : Type u_1} [inst : CommRing R] {x₁ xβ‚‚ x₃ xβ‚„ y₁ yβ‚‚ y₃ yβ‚„ : R}, (x₁ ^ 2 + xβ‚‚ ^ 2 + x₃ ^ 2 + xβ‚„ ^ 2) * (y₁ ^ 2 + yβ‚‚ ^ 2 + y₃ ^ 2 + yβ‚„ ^ 2) = (x₁ * y₁ - xβ‚‚ * yβ‚‚ - x₃ * y₃ - xβ‚„ * yβ‚„) ^ 2 + (x₁ * yβ‚‚ + xβ‚‚ * y₁ + x₃ * yβ‚„ - xβ‚„ * y₃) ^ 2 + (x₁ * y₃ - xβ‚‚ * yβ‚„ + x₃ * y₁ + xβ‚„ * yβ‚‚) ^ 2 + (x₁ * yβ‚„ + xβ‚‚ * y₃ - x₃ * yβ‚‚ + xβ‚„ * y₁) ^ 2
sum_four_sq_mul_sum_four_sq
/-- Degen's eight squares identity, see . This sign choice here corresponds to the signs obtained by multiplying two octonions. -/ theorem
sum_eight_sq_mul_sum_eight_sq: (x₁ ^ 2 + xβ‚‚ ^ 2 + x₃ ^ 2 + xβ‚„ ^ 2 + xβ‚… ^ 2 + x₆ ^ 2 + x₇ ^ 2 + xβ‚ˆ ^ 2) * (y₁ ^ 2 + yβ‚‚ ^ 2 + y₃ ^ 2 + yβ‚„ ^ 2 + yβ‚… ^ 2 + y₆ ^ 2 + y₇ ^ 2 + yβ‚ˆ ^ 2) = (x₁ * y₁ - xβ‚‚ * yβ‚‚ - x₃ * y₃ - xβ‚„ * yβ‚„ - xβ‚… * yβ‚… - x₆ * y₆ - x₇ * y₇ - xβ‚ˆ * yβ‚ˆ) ^ 2 + (x₁ * yβ‚‚ + xβ‚‚ * y₁ + x₃ * yβ‚„ - xβ‚„ * y₃ + xβ‚… * y₆ - x₆ * yβ‚… - x₇ * yβ‚ˆ + xβ‚ˆ * y₇) ^ 2 + (x₁ * y₃ - xβ‚‚ * yβ‚„ + x₃ * y₁ + xβ‚„ * yβ‚‚ + xβ‚… * y₇ + x₆ * yβ‚ˆ - x₇ * yβ‚… - xβ‚ˆ * y₆) ^ 2 + (x₁ * yβ‚„ + xβ‚‚ * y₃ - x₃ * yβ‚‚ + xβ‚„ * y₁ + xβ‚… * yβ‚ˆ - x₆ * y₇ + x₇ * y₆ - xβ‚ˆ * yβ‚…) ^ 2 + (x₁ * yβ‚… - xβ‚‚ * y₆ - x₃ * y₇ - xβ‚„ * yβ‚ˆ + xβ‚… * y₁ + x₆ * yβ‚‚ + x₇ * y₃ + xβ‚ˆ * yβ‚„) ^ 2 + (x₁ * y₆ + xβ‚‚ * yβ‚… - x₃ * yβ‚ˆ + xβ‚„ * y₇ - xβ‚… * yβ‚‚ + x₆ * y₁ - x₇ * yβ‚„ + xβ‚ˆ * y₃) ^ 2 + (x₁ * y₇ + xβ‚‚ * yβ‚ˆ + x₃ * yβ‚… - xβ‚„ * y₆ - xβ‚… * y₃ + x₆ * yβ‚„ + x₇ * y₁ - xβ‚ˆ * yβ‚‚) ^ 2 + (x₁ * yβ‚ˆ - xβ‚‚ * y₇ + x₃ * y₆ + xβ‚„ * yβ‚… - xβ‚… * yβ‚„ - x₆ * y₃ + x₇ * yβ‚‚ + xβ‚ˆ * y₁) ^ 2
sum_eight_sq_mul_sum_eight_sq
: (
x₁: R
x₁
^
2: ?m.27384
2
+
xβ‚‚: R
xβ‚‚
^
2: ?m.27397
2
+
x₃: R
x₃
^
2: ?m.27410
2
+
xβ‚„: R
xβ‚„
^
2: ?m.27423
2
+
xβ‚…: R
xβ‚…
^
2: ?m.27436
2
+
x₆: R
x₆
^
2: ?m.27449
2
+
x₇: R
x₇
^
2: ?m.27462
2
+
xβ‚ˆ: R
xβ‚ˆ
^
2: ?m.27475
2
) * (
y₁: R
y₁
^
2: ?m.27509
2
+
yβ‚‚: R
yβ‚‚
^
2: ?m.27522
2
+
y₃: R
y₃
^
2: ?m.27535
2
+
yβ‚„: R
yβ‚„
^
2: ?m.27548
2
+
yβ‚…: R
yβ‚…
^
2: ?m.27561
2
+
y₆: R
y₆
^
2: ?m.27574
2
+
y₇: R
y₇
^
2: ?m.27587
2
+
yβ‚ˆ: R
yβ‚ˆ
^
2: ?m.27600
2
) = (
x₁: R
x₁
*
y₁: R
y₁
-
xβ‚‚: R
xβ‚‚
*
yβ‚‚: R
yβ‚‚
-
x₃: R
x₃
*
y₃: R
y₃
-
xβ‚„: R
xβ‚„
*
yβ‚„: R
yβ‚„
-
xβ‚…: R
xβ‚…
*
yβ‚…: R
yβ‚…
-
x₆: R
x₆
*
y₆: R
y₆
-
x₇: R
x₇
*
y₇: R
y₇
-
xβ‚ˆ: R
xβ‚ˆ
*
yβ‚ˆ: R
yβ‚ˆ
) ^
2: ?m.27743
2
+ (
x₁: R
x₁
*
yβ‚‚: R
yβ‚‚
+
xβ‚‚: R
xβ‚‚
*
y₁: R
y₁
+
x₃: R
x₃
*
yβ‚„: R
yβ‚„
-
xβ‚„: R
xβ‚„
*
y₃: R
y₃
+
xβ‚…: R
xβ‚…
*
y₆: R
y₆
-
x₆: R
x₆
*
yβ‚…: R
yβ‚…
-
x₇: R
x₇
*
yβ‚ˆ: R
yβ‚ˆ
+
xβ‚ˆ: R
xβ‚ˆ
*
y₇: R
y₇
) ^
2: ?m.27801
2
+ (
x₁: R
x₁
*
y₃: R
y₃
-
xβ‚‚: R
xβ‚‚
*
yβ‚„: R
yβ‚„
+
x₃: R
x₃
*
y₁: R
y₁
+
xβ‚„: R
xβ‚„
*
yβ‚‚: R
yβ‚‚
+
xβ‚…: R
xβ‚…
*
y₇: R
y₇
+
x₆: R
x₆
*
yβ‚ˆ: R
yβ‚ˆ
-
x₇: R
x₇
*
yβ‚…: R
yβ‚…
-
xβ‚ˆ: R
xβ‚ˆ
*
y₆: R
y₆
) ^
2: ?m.27859
2
+ (
x₁: R
x₁
*
yβ‚„: R
yβ‚„
+
xβ‚‚: R
xβ‚‚
*
y₃: R
y₃
-
x₃: R
x₃
*
yβ‚‚: R
yβ‚‚
+
xβ‚„: R
xβ‚„
*
y₁: R
y₁
+
xβ‚…: R
xβ‚…
*
yβ‚ˆ: R
yβ‚ˆ
-
x₆: R
x₆
*
y₇: R
y₇
+
x₇: R
x₇
*
y₆: R
y₆
-
xβ‚ˆ: R
xβ‚ˆ
*
yβ‚…: R
yβ‚…
) ^
2: ?m.27917
2
+ (
x₁: R
x₁
*
yβ‚…: R
yβ‚…
-
xβ‚‚: R
xβ‚‚
*
y₆: R
y₆
-
x₃: R
x₃
*
y₇: R
y₇
-
xβ‚„: R
xβ‚„
*
yβ‚ˆ: R
yβ‚ˆ
+
xβ‚…: R
xβ‚…
*
y₁: R
y₁
+
x₆: R
x₆
*
yβ‚‚: R
yβ‚‚
+
x₇: R
x₇
*
y₃: R
y₃
+
xβ‚ˆ: R
xβ‚ˆ
*
yβ‚„: R
yβ‚„
) ^
2: ?m.27975
2
+ (
x₁: R
x₁
*
y₆: R
y₆
+
xβ‚‚: R
xβ‚‚
*
yβ‚…: R
yβ‚…
-
x₃: R
x₃
*
yβ‚ˆ: R
yβ‚ˆ
+
xβ‚„: R
xβ‚„
*
y₇: R
y₇
-
xβ‚…: R
xβ‚…
*
yβ‚‚: R
yβ‚‚
+
x₆: R
x₆
*
y₁: R
y₁
-
x₇: R
x₇
*
yβ‚„: R
yβ‚„
+
xβ‚ˆ: R
xβ‚ˆ
*
y₃: R
y₃
) ^
2: ?m.28033
2
+ (
x₁: R
x₁
*
y₇: R
y₇
+
xβ‚‚: R
xβ‚‚
*
yβ‚ˆ: R
yβ‚ˆ
+
x₃: R
x₃
*
yβ‚…: R
yβ‚…
-
xβ‚„: R
xβ‚„
*
y₆: R
y₆
-
xβ‚…: R
xβ‚…
*
y₃: R
y₃
+
x₆: R
x₆
*
yβ‚„: R
yβ‚„
+
x₇: R
x₇
*
y₁: R
y₁
-
xβ‚ˆ: R
xβ‚ˆ
*
yβ‚‚: R
yβ‚‚
) ^
2: ?m.28091
2
+ (
x₁: R
x₁
*
yβ‚ˆ: R
yβ‚ˆ
-
xβ‚‚: R
xβ‚‚
*
y₇: R
y₇
+
x₃: R
x₃
*
y₆: R
y₆
+
xβ‚„: R
xβ‚„
*
yβ‚…: R
yβ‚…
-
xβ‚…: R
xβ‚…
*
yβ‚„: R
yβ‚„
-
x₆: R
x₆
*
y₃: R
y₃
+
x₇: R
x₇
*
yβ‚‚: R
yβ‚‚
+
xβ‚ˆ: R
xβ‚ˆ
*
y₁: R
y₁
) ^
2: ?m.28149
2
:=

Goals accomplished! πŸ™
R: Type u_1

inst✝: CommRing R

a, b, x₁, xβ‚‚, x₃, xβ‚„, xβ‚…, x₆, x₇, xβ‚ˆ, y₁, yβ‚‚, y₃, yβ‚„, yβ‚…, y₆, y₇, yβ‚ˆ, n: R


(x₁ ^ 2 + xβ‚‚ ^ 2 + x₃ ^ 2 + xβ‚„ ^ 2 + xβ‚… ^ 2 + x₆ ^ 2 + x₇ ^ 2 + xβ‚ˆ ^ 2) * (y₁ ^ 2 + yβ‚‚ ^ 2 + y₃ ^ 2 + yβ‚„ ^ 2 + yβ‚… ^ 2 + y₆ ^ 2 + y₇ ^ 2 + yβ‚ˆ ^ 2) = (x₁ * y₁ - xβ‚‚ * yβ‚‚ - x₃ * y₃ - xβ‚„ * yβ‚„ - xβ‚… * yβ‚… - x₆ * y₆ - x₇ * y₇ - xβ‚ˆ * yβ‚ˆ) ^ 2 + (x₁ * yβ‚‚ + xβ‚‚ * y₁ + x₃ * yβ‚„ - xβ‚„ * y₃ + xβ‚… * y₆ - x₆ * yβ‚… - x₇ * yβ‚ˆ + xβ‚ˆ * y₇) ^ 2 + (x₁ * y₃ - xβ‚‚ * yβ‚„ + x₃ * y₁ + xβ‚„ * yβ‚‚ + xβ‚… * y₇ + x₆ * yβ‚ˆ - x₇ * yβ‚… - xβ‚ˆ * y₆) ^ 2 + (x₁ * yβ‚„ + xβ‚‚ * y₃ - x₃ * yβ‚‚ + xβ‚„ * y₁ + xβ‚… * yβ‚ˆ - x₆ * y₇ + x₇ * y₆ - xβ‚ˆ * yβ‚…) ^ 2 + (x₁ * yβ‚… - xβ‚‚ * y₆ - x₃ * y₇ - xβ‚„ * yβ‚ˆ + xβ‚… * y₁ + x₆ * yβ‚‚ + x₇ * y₃ + xβ‚ˆ * yβ‚„) ^ 2 + (x₁ * y₆ + xβ‚‚ * yβ‚… - x₃ * yβ‚ˆ + xβ‚„ * y₇ - xβ‚… * yβ‚‚ + x₆ * y₁ - x₇ * yβ‚„ + xβ‚ˆ * y₃) ^ 2 + (x₁ * y₇ + xβ‚‚ * yβ‚ˆ + x₃ * yβ‚… - xβ‚„ * y₆ - xβ‚… * y₃ + x₆ * yβ‚„ + x₇ * y₁ - xβ‚ˆ * yβ‚‚) ^ 2 + (x₁ * yβ‚ˆ - xβ‚‚ * y₇ + x₃ * y₆ + xβ‚„ * yβ‚… - xβ‚… * yβ‚„ - x₆ * y₃ + x₇ * yβ‚‚ + xβ‚ˆ * y₁) ^ 2

Goals accomplished! πŸ™
#align sum_eight_sq_mul_sum_eight_sq
sum_eight_sq_mul_sum_eight_sq: βˆ€ {R : Type u_1} [inst : CommRing R] {x₁ xβ‚‚ x₃ xβ‚„ xβ‚… x₆ x₇ xβ‚ˆ y₁ yβ‚‚ y₃ yβ‚„ yβ‚… y₆ y₇ yβ‚ˆ : R}, (x₁ ^ 2 + xβ‚‚ ^ 2 + x₃ ^ 2 + xβ‚„ ^ 2 + xβ‚… ^ 2 + x₆ ^ 2 + x₇ ^ 2 + xβ‚ˆ ^ 2) * (y₁ ^ 2 + yβ‚‚ ^ 2 + y₃ ^ 2 + yβ‚„ ^ 2 + yβ‚… ^ 2 + y₆ ^ 2 + y₇ ^ 2 + yβ‚ˆ ^ 2) = (x₁ * y₁ - xβ‚‚ * yβ‚‚ - x₃ * y₃ - xβ‚„ * yβ‚„ - xβ‚… * yβ‚… - x₆ * y₆ - x₇ * y₇ - xβ‚ˆ * yβ‚ˆ) ^ 2 + (x₁ * yβ‚‚ + xβ‚‚ * y₁ + x₃ * yβ‚„ - xβ‚„ * y₃ + xβ‚… * y₆ - x₆ * yβ‚… - x₇ * yβ‚ˆ + xβ‚ˆ * y₇) ^ 2 + (x₁ * y₃ - xβ‚‚ * yβ‚„ + x₃ * y₁ + xβ‚„ * yβ‚‚ + xβ‚… * y₇ + x₆ * yβ‚ˆ - x₇ * yβ‚… - xβ‚ˆ * y₆) ^ 2 + (x₁ * yβ‚„ + xβ‚‚ * y₃ - x₃ * yβ‚‚ + xβ‚„ * y₁ + xβ‚… * yβ‚ˆ - x₆ * y₇ + x₇ * y₆ - xβ‚ˆ * yβ‚…) ^ 2 + (x₁ * yβ‚… - xβ‚‚ * y₆ - x₃ * y₇ - xβ‚„ * yβ‚ˆ + xβ‚… * y₁ + x₆ * yβ‚‚ + x₇ * y₃ + xβ‚ˆ * yβ‚„) ^ 2 + (x₁ * y₆ + xβ‚‚ * yβ‚… - x₃ * yβ‚ˆ + xβ‚„ * y₇ - xβ‚… * yβ‚‚ + x₆ * y₁ - x₇ * yβ‚„ + xβ‚ˆ * y₃) ^ 2 + (x₁ * y₇ + xβ‚‚ * yβ‚ˆ + x₃ * yβ‚… - xβ‚„ * y₆ - xβ‚… * y₃ + x₆ * yβ‚„ + x₇ * y₁ - xβ‚ˆ * yβ‚‚) ^ 2 + (x₁ * yβ‚ˆ - xβ‚‚ * y₇ + x₃ * y₆ + xβ‚„ * yβ‚… - xβ‚… * yβ‚„ - x₆ * y₃ + x₇ * yβ‚‚ + xβ‚ˆ * y₁) ^ 2
sum_eight_sq_mul_sum_eight_sq