refactor: def of symmetric trilin function

This commit is contained in:
jstoobysmith 2024-04-22 09:48:44 -04:00
parent 748bcb61ae
commit e36c61b331
24 changed files with 279 additions and 246 deletions

View file

@ -295,47 +295,52 @@ lemma accQuad_ext {S T : (SMνCharges n).charges}
/-- The symmetric trilinear form used to define the cubic acc. -/
@[simps!]
def cubeTriLin : TriLinearSymm (SMνCharges n).charges where
toFun S := ∑ i, (6 * ((Q S.1 i) * (Q S.2.1 i) * (Q S.2.2 i))
def cubeTriLin : TriLinearSymm (SMνCharges n).charges := TriLinearSymm.mk₃
(fun S => ∑ i, (6 * ((Q S.1 i) * (Q S.2.1 i) * (Q S.2.2 i))
+ 3 * ((U S.1 i) * (U S.2.1 i) * (U S.2.2 i))
+ 3 * ((D S.1 i) * (D S.2.1 i) * (D S.2.2 i))
+ 2 * ((L S.1 i) * (L S.2.1 i) * (L S.2.2 i))
+ ((E S.1 i) * (E S.2.1 i) * (E S.2.2 i))
+ ((N S.1 i) * (N S.2.1 i) * (N S.2.2 i)))
map_smul₁' a S T R := by
+ ((N S.1 i) * (N S.2.1 i) * (N S.2.2 i))))
(by
intro a S T R
simp only
rw [Finset.mul_sum]
apply Fintype.sum_congr
intro i
repeat erw [map_smul]
simp [HSMul.hSMul, SMul.smul]
ring
map_add₁' S T R L := by
ring)
(by
intro S T R L
simp only
rw [← Finset.sum_add_distrib]
apply Fintype.sum_congr
intro i
repeat erw [map_add]
simp only [ACCSystemCharges.chargesAddCommMonoid_add, toSpecies_apply, Fin.isValue]
ring
swap₁' S T L := by
ring)
(by
intro S T L
simp only [SMνSpecies_numberCharges, toSpecies_apply, Fin.isValue]
apply Fintype.sum_congr
intro i
ring
swap₂' S T L := by
ring)
(by
intro S T L
simp only [SMνSpecies_numberCharges, toSpecies_apply, Fin.isValue]
apply Fintype.sum_congr
intro i
ring
ring)
lemma cubeTriLin_decomp (S T R : (SMνCharges n).charges) :
cubeTriLin (S, T, R) = 6 * ∑ i, (Q S i * Q T i * Q R i) + 3 * ∑ i, (U S i * U T i * U R i) +
cubeTriLin S T R = 6 * ∑ i, (Q S i * Q T i * Q R i) + 3 * ∑ i, (U S i * U T i * U R i) +
3 * ∑ i, (D S i * D T i * D R i) + 2 * ∑ i, (L S i * L T i * L R i) +
∑ i, (E S i * E T i * E R i) + ∑ i, (N S i * N T i * N R i) := by
erw [← cubeTriLin.toFun_eq_coe]
rw [cubeTriLin]
simp only
simp only [TriLinearSymm.mk₃, BiLinearSymm.mk₂, SMνSpecies_numberCharges, toSpecies_apply,
Fin.isValue, AddHom.toFun_eq_coe, AddHom.coe_mk, LinearMap.coe_mk]
repeat erw [Finset.sum_add_distrib]
repeat erw [← Finset.mul_sum]

View file

@ -210,7 +210,7 @@ lemma familyUniversal_accQuad (S : (SMνCharges 1).charges) :
ring
lemma familyUniversal_cubeTriLin (S : (SMνCharges 1).charges) (T R : (SMνCharges n).charges) :
cubeTriLin (familyUniversal n S, T, R) = 6 * S (0 : Fin 6) * ∑ i, (Q T i * Q R i) +
cubeTriLin (familyUniversal n S) T R = 6 * S (0 : Fin 6) * ∑ i, (Q T i * Q R i) +
3 * S (1 : Fin 6) * ∑ i, (U T i * U R i) + 3 * S (2 : Fin 6) * ∑ i, (D T i * D R i)
+ 2 * S (3 : Fin 6) * ∑ i, (L T i * L R i) +
S (4 : Fin 6) * ∑ i, (E T i * E R i) + S (5 : Fin 6) * ∑ i, (N T i * N R i) := by
@ -221,7 +221,7 @@ lemma familyUniversal_cubeTriLin (S : (SMνCharges 1).charges) (T R : (SMνCharg
ring
lemma familyUniversal_cubeTriLin' (S T : (SMνCharges 1).charges) (R : (SMνCharges n).charges) :
cubeTriLin (familyUniversal n S, familyUniversal n T, R) =
cubeTriLin (familyUniversal n S) (familyUniversal n T) R =
6 * S (0 : Fin 6) * T (0 : Fin 6) * ∑ i, Q R i +
3 * S (1 : Fin 6) * T (1 : Fin 6) * ∑ i, U R i
+ 3 * S (2 : Fin 6) * T (2 : Fin 6) * ∑ i, D R i +

View file

@ -31,7 +31,7 @@ def B₀ : (SM 3).charges := toSpeciesEquiv.invFun ( fun s => fun i =>
| _, _ => 0
)
lemma B₀_cubic (S T : (SM 3).charges) : cubeTriLin (B₀, S, T) =
lemma B₀_cubic (S T : (SM 3).charges) : cubeTriLin B₀ S T =
6 * (S (0 : Fin 18) * T (0 : Fin 18) - S (1 : Fin 18) * T (1 : Fin 18)) := by
simp [Fin.sum_univ_three, B₀, Fin.divNat, Fin.modNat, finProdFinEquiv]
ring
@ -44,7 +44,7 @@ def B₁ : (SM 3).charges := toSpeciesEquiv.invFun ( fun s => fun i =>
| _, _ => 0
)
lemma B₁_cubic (S T : (SM 3).charges) : cubeTriLin (B₁, S, T) =
lemma B₁_cubic (S T : (SM 3).charges) : cubeTriLin B₁ S T =
3 * (S (3 : Fin 18) * T (3 : Fin 18) - S (4 : Fin 18) * T (4 : Fin 18)) := by
simp [Fin.sum_univ_three, B₁, Fin.divNat, Fin.modNat, finProdFinEquiv]
ring
@ -57,7 +57,7 @@ def B₂ : (SM 3).charges := toSpeciesEquiv.invFun ( fun s => fun i =>
| _, _ => 0
)
lemma B₂_cubic (S T : (SM 3).charges) : cubeTriLin (B₂, S, T) =
lemma B₂_cubic (S T : (SM 3).charges) : cubeTriLin B₂ S T =
3 * (S (6 : Fin 18) * T (6 : Fin 18) - S (7 : Fin 18) * T (7 : Fin 18)) := by
simp [Fin.sum_univ_three, B₂, Fin.divNat, Fin.modNat, finProdFinEquiv]
ring
@ -70,7 +70,7 @@ def B₃ : (SM 3).charges := toSpeciesEquiv.invFun ( fun s => fun i =>
| _, _ => 0
)
lemma B₃_cubic (S T : (SM 3).charges) : cubeTriLin (B₃, S, T) =
lemma B₃_cubic (S T : (SM 3).charges) : cubeTriLin B₃ S T =
2 * (S (9 : Fin 18) * T (9 : Fin 18) - S (10 : Fin 18) * T (10 : Fin 18)) := by
simp [Fin.sum_univ_three, B₃, Fin.divNat, Fin.modNat, finProdFinEquiv]
ring_nf
@ -84,7 +84,7 @@ def B₄ : (SM 3).charges := toSpeciesEquiv.invFun ( fun s => fun i =>
| _, _ => 0
)
lemma B₄_cubic (S T : (SM 3).charges) : cubeTriLin (B₄, S, T) =
lemma B₄_cubic (S T : (SM 3).charges) : cubeTriLin B₄ S T =
(S (12 : Fin 18) * T (12 : Fin 18) - S (13 : Fin 18) * T (13 : Fin 18)) := by
simp [Fin.sum_univ_three, B₄, Fin.divNat, Fin.modNat, finProdFinEquiv]
ring_nf
@ -98,7 +98,7 @@ def B₅ : (SM 3).charges := toSpeciesEquiv.invFun ( fun s => fun i =>
| _, _ => 0
)
lemma B₅_cubic (S T : (SM 3).charges) : cubeTriLin (B₅, S, T) =
lemma B₅_cubic (S T : (SM 3).charges) : cubeTriLin B₅ S T =
(S (15 : Fin 18) * T (15 : Fin 18) - S (16 : Fin 18) * T (16 : Fin 18)) := by
simp [Fin.sum_univ_three, B₅, Fin.divNat, Fin.modNat, finProdFinEquiv]
ring_nf
@ -112,7 +112,7 @@ def B₆ : (SM 3).charges := toSpeciesEquiv.invFun ( fun s => fun i =>
| _, _ => 0
)
lemma B₆_cubic (S T : (SM 3).charges) : cubeTriLin (B₆, S, T) =
lemma B₆_cubic (S T : (SM 3).charges) : cubeTriLin B₆ S T =
3* (S (5 : Fin 18) * T (5 : Fin 18) - S (8 : Fin 18) * T (8 : Fin 18)) := by
simp [Fin.sum_univ_three, B₆, Fin.divNat, Fin.modNat, finProdFinEquiv]
ring_nf
@ -130,8 +130,8 @@ def B : Fin 7 → (SM 3).charges := fun i =>
| 6 => B₆
lemma B₀_Bi_cubic {i : Fin 7} (hi : 0 ≠ i) (S : (SM 3).charges) :
cubeTriLin (B 0, B i, S) = 0 := by
change cubeTriLin (B₀, B i, S) = 0
cubeTriLin (B 0) (B i) S = 0 := by
change cubeTriLin B₀ (B i) S = 0
rw [B₀_cubic]
fin_cases i <;>
simp at hi <;>
@ -139,55 +139,55 @@ lemma B₀_Bi_cubic {i : Fin 7} (hi : 0 ≠ i) (S : (SM 3).charges) :
lemma B₁_Bi_cubic {i : Fin 7} (hi : 1 ≠ i) (S : (SM 3).charges) :
cubeTriLin (B 1, B i, S) = 0 := by
change cubeTriLin (B₁, B i, S) = 0
cubeTriLin (B 1) (B i) S = 0 := by
change cubeTriLin B₁ (B i) S = 0
rw [B₁_cubic]
fin_cases i <;>
simp at hi <;>
simp [B₀, B₁, B₂, B₃, B₄, B₅, B₆, Fin.divNat, Fin.modNat, finProdFinEquiv]
lemma B₂_Bi_cubic {i : Fin 7} (hi : 2 ≠ i) (S : (SM 3).charges) :
cubeTriLin (B 2, B i, S) = 0 := by
change cubeTriLin (B₂, B i, S) = 0
cubeTriLin (B 2) (B i) S = 0 := by
change cubeTriLin B₂ (B i) S = 0
rw [B₂_cubic]
fin_cases i <;>
simp at hi <;>
simp [B₀, B₁, B₂, B₃, B₄, B₅, B₆, Fin.divNat, Fin.modNat, finProdFinEquiv]
lemma B₃_Bi_cubic {i : Fin 7} (hi : 3 ≠ i) (S : (SM 3).charges) :
cubeTriLin (B 3, B i, S) = 0 := by
change cubeTriLin (B₃, B i, S) = 0
cubeTriLin (B 3) (B i) S = 0 := by
change cubeTriLin (B₃) (B i) S = 0
rw [B₃_cubic]
fin_cases i <;>
simp at hi <;>
simp [B₀, B₁, B₂, B₃, B₄, B₅, B₆, Fin.divNat, Fin.modNat, finProdFinEquiv]
simp at hi <;>
simp [B₀, B₁, B₂, B₃, B₄, B₅, B₆, Fin.divNat, Fin.modNat, finProdFinEquiv]
lemma B₄_Bi_cubic {i : Fin 7} (hi : 4 ≠ i) (S : (SM 3).charges) :
cubeTriLin (B 4, B i, S) = 0 := by
change cubeTriLin (B₄, B i, S) = 0
cubeTriLin (B 4) (B i) S = 0 := by
change cubeTriLin (B₄) (B i) S = 0
rw [B₄_cubic]
fin_cases i <;>
simp at hi <;>
simp [B₀, B₁, B₂, B₃, B₄, B₅, B₆, Fin.divNat, Fin.modNat, finProdFinEquiv]
simp at hi <;>
simp [B₀, B₁, B₂, B₃, B₄, B₅, B₆, Fin.divNat, Fin.modNat, finProdFinEquiv]
lemma B₅_Bi_cubic {i : Fin 7} (hi : 5 ≠ i) (S : (SM 3).charges) :
cubeTriLin (B 5, B i, S) = 0 := by
change cubeTriLin (B₅, B i, S) = 0
cubeTriLin (B 5) (B i) S = 0 := by
change cubeTriLin (B₅) (B i) S = 0
rw [B₅_cubic]
fin_cases i <;>
simp at hi <;>
simp [B₀, B₁, B₂, B₃, B₄, B₅, B₆, Fin.divNat, Fin.modNat, finProdFinEquiv]
simp at hi <;>
simp [B₀, B₁, B₂, B₃, B₄, B₅, B₆, Fin.divNat, Fin.modNat, finProdFinEquiv]
lemma B₆_Bi_cubic {i : Fin 7} (hi : 6 ≠ i) (S : (SM 3).charges) :
cubeTriLin (B 6, B i, S) = 0 := by
change cubeTriLin (B₆, B i, S) = 0
cubeTriLin (B 6) (B i) S = 0 := by
change cubeTriLin (B₆) (B i) S = 0
rw [B₆_cubic]
fin_cases i <;>
simp at hi <;>
simp [B₀, B₁, B₂, B₃, B₄, B₅, B₆, Fin.divNat, Fin.modNat, finProdFinEquiv]
simp at hi <;>
simp [B₀, B₁, B₂, B₃, B₄, B₅, B₆, Fin.divNat, Fin.modNat, finProdFinEquiv]
lemma Bi_Bj_ne_cubic {i j : Fin 7} (h : i ≠ j) (S : (SM 3).charges) :
cubeTriLin (B i, B j, S) = 0 := by
cubeTriLin (B i) (B j) S = 0 := by
fin_cases i
exact B₀_Bi_cubic h S
exact B₁_Bi_cubic h S
@ -198,57 +198,57 @@ lemma Bi_Bj_ne_cubic {i j : Fin 7} (h : i ≠ j) (S : (SM 3).charges) :
exact B₆_Bi_cubic h S
lemma B₀_B₀_Bi_cubic {i : Fin 7} :
cubeTriLin (B 0, B 0, B i) = 0 := by
change cubeTriLin (B₀, B₀, B i) = 0
cubeTriLin (B 0) (B 0) (B i) = 0 := by
change cubeTriLin (B₀) (B₀) (B i) = 0
rw [B₀_cubic]
fin_cases i <;>
simp [B₀, B₁, B₂, B₃, B₄, B₅, B₆, Fin.divNat, Fin.modNat, finProdFinEquiv]
lemma B₁_B₁_Bi_cubic {i : Fin 7} :
cubeTriLin (B 1, B 1, B i) = 0 := by
change cubeTriLin (B₁, B₁, B i) = 0
cubeTriLin (B 1) (B 1) (B i) = 0 := by
change cubeTriLin (B₁) (B₁) (B i) = 0
rw [B₁_cubic]
fin_cases i <;>
simp [B₀, B₁, B₂, B₃, B₄, B₅, B₆, Fin.divNat, Fin.modNat, finProdFinEquiv]
lemma B₂_B₂_Bi_cubic {i : Fin 7} :
cubeTriLin (B 2, B 2, B i) = 0 := by
change cubeTriLin (B₂, B₂, B i) = 0
cubeTriLin (B 2) (B 2) (B i) = 0 := by
change cubeTriLin (B₂) (B₂) (B i) = 0
rw [B₂_cubic]
fin_cases i <;>
simp [B₀, B₁, B₂, B₃, B₄, B₅, B₆, Fin.divNat, Fin.modNat, finProdFinEquiv]
lemma B₃_B₃_Bi_cubic {i : Fin 7} :
cubeTriLin (B 3, B 3, B i) = 0 := by
change cubeTriLin (B₃, B₃, B i) = 0
cubeTriLin (B 3) (B 3) (B i) = 0 := by
change cubeTriLin (B₃) (B₃) (B i) = 0
rw [B₃_cubic]
fin_cases i <;>
simp [B₀, B₁, B₂, B₃, B₄, B₅, B₆, Fin.divNat, Fin.modNat, finProdFinEquiv]
lemma B₄_B₄_Bi_cubic {i : Fin 7} :
cubeTriLin (B 4, B 4, B i) = 0 := by
change cubeTriLin (B₄, B₄, B i) = 0
cubeTriLin (B 4) (B 4) (B i) = 0 := by
change cubeTriLin (B₄) (B₄) (B i) = 0
rw [B₄_cubic]
fin_cases i <;>
simp [B₀, B₁, B₂, B₃, B₄, B₅, B₆, Fin.divNat, Fin.modNat, finProdFinEquiv]
lemma B₅_B₅_Bi_cubic {i : Fin 7} :
cubeTriLin (B 5, B 5, B i) = 0 := by
change cubeTriLin (B₅, B₅, B i) = 0
cubeTriLin (B 5) (B 5) (B i) = 0 := by
change cubeTriLin (B₅) (B₅) (B i) = 0
rw [B₅_cubic]
fin_cases i <;>
simp [B₀, B₁, B₂, B₃, B₄, B₅, B₆, Fin.divNat, Fin.modNat, finProdFinEquiv]
lemma B₆_B₆_Bi_cubic {i : Fin 7} :
cubeTriLin (B 6, B 6, B i) = 0 := by
change cubeTriLin (B₆, B₆, B i) = 0
cubeTriLin (B 6) (B 6) (B i) = 0 := by
change cubeTriLin (B₆) (B₆) (B i) = 0
rw [B₆_cubic]
fin_cases i <;>
simp [B₀, B₁, B₂, B₃, B₄, B₅, B₆, Fin.divNat, Fin.modNat, finProdFinEquiv]
lemma Bi_Bi_Bj_cubic (i j : Fin 7) :
cubeTriLin (B i, B i, B j) = 0 := by
cubeTriLin (B i) (B i) (B j) = 0 := by
fin_cases i
exact B₀_B₀_Bi_cubic
exact B₁_B₁_Bi_cubic
@ -259,7 +259,7 @@ lemma Bi_Bi_Bj_cubic (i j : Fin 7) :
exact B₆_B₆_Bi_cubic
lemma Bi_Bj_Bk_cubic (i j k : Fin 7) :
cubeTriLin (B i, B j, B k) = 0 := by
cubeTriLin (B i) (B j) (B k) = 0 := by
by_cases hij : i ≠ j
exact Bi_Bj_ne_cubic hij (B k)
simp at hij
@ -267,7 +267,7 @@ lemma Bi_Bj_Bk_cubic (i j k : Fin 7) :
exact Bi_Bi_Bj_cubic j k
theorem B_in_accCube (f : Fin 7 → ) : accCube (∑ i, f i • B i) = 0 := by
change cubeTriLin _ = 0
change cubeTriLin _ _ _ = 0
rw [cubeTriLin.map_sum₁₂₃]
apply Fintype.sum_eq_zero
intro i

View file

@ -91,7 +91,7 @@ lemma addQuad_zero (S : (PlusU1 n).QuadSols) (a : ): addQuad S a 0 = a • S
rfl
lemma on_cubeTriLin (S : (PlusU1 n).charges) :
cubeTriLin ((BL n).val, (BL n).val, S) = 9 * accGrav S - 24 * accSU3 S := by
cubeTriLin (BL n).val (BL n).val S = 9 * accGrav S - 24 * accSU3 S := by
erw [familyUniversal_cubeTriLin']
rw [accGrav_decomp, accSU3_decomp]
simp only [Fin.isValue, BL₁_val, mul_one, SMνSpecies_numberCharges, toSpecies_apply, mul_neg,
@ -99,18 +99,18 @@ lemma on_cubeTriLin (S : (PlusU1 n).charges) :
ring
lemma on_cubeTriLin_AFL (S : (PlusU1 n).LinSols) :
cubeTriLin ((BL n).val, (BL n).val, S.val) = 0 := by
cubeTriLin (BL n).val (BL n).val S.val = 0 := by
rw [on_cubeTriLin]
rw [gravSol S, SU3Sol S]
simp
lemma add_AFL_cube (S : (PlusU1 n).LinSols) (a b : ) :
accCube (a • S.val + b • (BL n).val) =
a ^ 2 * (a * accCube S.val + 3 * b * cubeTriLin (S.val, S.val, (BL n).val)) := by
a ^ 2 * (a * accCube S.val + 3 * b * cubeTriLin S.val S.val (BL n).val) := by
erw [TriLinearSymm.toCubic_add, cubeSol (b • (BL n)), accCube.map_smul]
repeat rw [cubeTriLin.map_smul₁, cubeTriLin.map_smul₂, cubeTriLin.map_smul₃]
rw [on_cubeTriLin_AFL]
simp only [HomogeneousCubic, accCube, TriLinearSymm.toCubic_apply, cubeTriLin_toFun, Fin.isValue,
simp only [HomogeneousCubic, accCube, TriLinearSymm.toCubic_apply, Fin.isValue,
add_zero, BL_val, mul_zero]
ring

View file

@ -90,7 +90,7 @@ lemma addQuad_zero (S : (PlusU1 n).QuadSols) (a : ): addQuad S a 0 = a • S
rfl
lemma on_cubeTriLin (S : (PlusU1 n).charges) :
cubeTriLin ((Y n).val, (Y n).val, S) = 6 * accYY S := by
cubeTriLin (Y n).val (Y n).val S = 6 * accYY S := by
erw [familyUniversal_cubeTriLin']
rw [accYY_decomp]
simp only [Fin.isValue, Y₁_val, mul_one, SMνSpecies_numberCharges, toSpecies_apply, mul_neg,
@ -98,13 +98,13 @@ lemma on_cubeTriLin (S : (PlusU1 n).charges) :
ring
lemma on_cubeTriLin_AFL (S : (PlusU1 n).LinSols) :
cubeTriLin ((Y n).val, (Y n).val, S.val) = 0 := by
cubeTriLin (Y n).val (Y n).val S.val = 0 := by
rw [on_cubeTriLin]
rw [YYsol S]
simp
lemma on_cubeTriLin' (S : (PlusU1 n).charges) :
cubeTriLin ((Y n).val, S, S) = 6 * accQuad S := by
cubeTriLin (Y n).val S S = 6 * accQuad S := by
erw [familyUniversal_cubeTriLin]
rw [accQuad_decomp]
simp only [Fin.isValue, Y₁_val, mul_one, SMνSpecies_numberCharges, toSpecies_apply, mul_neg,
@ -112,18 +112,18 @@ lemma on_cubeTriLin' (S : (PlusU1 n).charges) :
ring_nf
lemma on_cubeTriLin'_ALQ (S : (PlusU1 n).QuadSols) :
cubeTriLin ((Y n).val, S.val, S.val) = 0 := by
cubeTriLin (Y n).val S.val S.val = 0 := by
rw [on_cubeTriLin']
rw [quadSol S]
simp
lemma add_AFL_cube (S : (PlusU1 n).LinSols) (a b : ) :
accCube (a • S.val + b • (Y n).val) =
a ^ 2 * (a * accCube S.val + 3 * b * cubeTriLin (S.val, S.val, (Y n).val)) := by
a ^ 2 * (a * accCube S.val + 3 * b * cubeTriLin S.val S.val (Y n).val) := by
erw [TriLinearSymm.toCubic_add, cubeSol (b • (Y n)), accCube.map_smul]
repeat rw [cubeTriLin.map_smul₁, cubeTriLin.map_smul₂, cubeTriLin.map_smul₃]
rw [on_cubeTriLin_AFL]
simp only [HomogeneousCubic, accCube, TriLinearSymm.toCubic_apply, cubeTriLin_toFun, Fin.isValue,
simp only [HomogeneousCubic, accCube, TriLinearSymm.toCubic_apply, Fin.isValue,
add_zero, Y_val, mul_zero]
ring

View file

@ -204,8 +204,8 @@ lemma isSolution_f9 (f : Fin 11 → ) (hS : (PlusU1 3).isSolution (∑ i, f i
cubeTriLin.map_smul₃, cubeTriLin.map_smul₃] at hc
rw [show accCube B₉ = 9 by rfl] at hc
rw [show accCube B₁₀ = 1 by rfl] at hc
rw [show cubeTriLin (B₉, B₉, B₁₀) = 0 by rfl] at hc
rw [show cubeTriLin (B₁₀, B₁₀, B₉) = 0 by rfl] at hc
rw [show cubeTriLin B₉ B₉ B₁₀ = 0 by rfl] at hc
rw [show cubeTriLin B₁₀ B₁₀ B₉ = 0 by rfl] at hc
simp at hc
have h1 : f 9 ^ 3 * 9 + (-(3 * f 9)) ^ 3 = - 18 * f 9 ^ 3 := by
ring

View file

@ -29,7 +29,7 @@ open BigOperators
variable {n : }
/-- A helper function for what follows. -/
@[simp]
def α₁ (S : (PlusU1 n).QuadSols) : := - 3 * cubeTriLin (S.val, S.val, (BL n).val)
def α₁ (S : (PlusU1 n).QuadSols) : := - 3 * cubeTriLin S.val S.val (BL n).val
/-- A helper function for what follows. -/
@[simp]