refactor: Quad Lin equations
This commit is contained in:
parent
772e78ca77
commit
b5dd319eed
14 changed files with 245 additions and 299 deletions
|
@ -230,21 +230,23 @@ lemma accYY_ext {S T : (SMνCharges n).charges}
|
|||
|
||||
/-- The quadratic bilinear map. -/
|
||||
@[simps!]
|
||||
def quadBiLin : BiLinearSymm (SMνCharges n).charges where
|
||||
toFun S := ∑ i, (Q S.1 i * Q S.2 i +
|
||||
def quadBiLin : BiLinearSymm (SMνCharges n).charges := BiLinearSymm.mk₂
|
||||
(fun S => ∑ i, (Q S.1 i * Q S.2 i +
|
||||
- 2 * (U S.1 i * U S.2 i) +
|
||||
D S.1 i * D S.2 i +
|
||||
(- 1) * (L S.1 i * L S.2 i) +
|
||||
E S.1 i * E S.2 i)
|
||||
map_smul₁' a S T := by
|
||||
E S.1 i * E S.2 i))
|
||||
(by
|
||||
intro a S T
|
||||
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 := by
|
||||
ring)
|
||||
(by
|
||||
intro S T R
|
||||
simp only
|
||||
rw [← Finset.sum_add_distrib]
|
||||
apply Fintype.sum_congr
|
||||
|
@ -252,19 +254,20 @@ def quadBiLin : BiLinearSymm (SMνCharges n).charges where
|
|||
repeat erw [map_add]
|
||||
simp only [ACCSystemCharges.chargesAddCommMonoid_add, toSpecies_apply, Fin.isValue, neg_mul,
|
||||
one_mul]
|
||||
ring
|
||||
swap' S T := by
|
||||
ring)
|
||||
(by
|
||||
intro S T
|
||||
simp only [SMνSpecies_numberCharges, toSpecies_apply, Fin.isValue, neg_mul, one_mul]
|
||||
apply Fintype.sum_congr
|
||||
intro i
|
||||
ring
|
||||
ring)
|
||||
|
||||
lemma quadBiLin_decomp (S T : (SMνCharges n).charges) :
|
||||
quadBiLin (S, T) = ∑ i, Q S i * Q T i - 2 * ∑ i, U S i * U T i +
|
||||
quadBiLin S T = ∑ i, Q S i * Q T i - 2 * ∑ i, U S i * U T i +
|
||||
∑ i, D S i * D T i - ∑ i, L S i * L T i + ∑ i, E S i * E T i := by
|
||||
erw [← quadBiLin.toFun_eq_coe]
|
||||
rw [quadBiLin]
|
||||
simp only
|
||||
simp only [quadBiLin, BiLinearSymm.mk₂, AddHom.toFun_eq_coe, AddHom.coe_mk, LinearMap.coe_mk]
|
||||
repeat erw [Finset.sum_add_distrib]
|
||||
repeat erw [← Finset.mul_sum]
|
||||
simp only [SMνSpecies_numberCharges, toSpecies_apply, Fin.isValue, neg_mul, one_mul, add_left_inj]
|
||||
|
|
|
@ -190,7 +190,7 @@ lemma familyUniversal_accYY (S : (SMνCharges 1).charges) :
|
|||
ring
|
||||
|
||||
lemma familyUniversal_quadBiLin (S : (SMνCharges 1).charges) (T : (SMνCharges n).charges) :
|
||||
quadBiLin (familyUniversal n S, T) =
|
||||
quadBiLin (familyUniversal n S) T =
|
||||
S (0 : Fin 6) * ∑ i, Q T i - 2 * S (1 : Fin 6) * ∑ i, U T i + S (2 : Fin 6) *∑ i, D T i -
|
||||
S (3 : Fin 6) * ∑ i, L T i + S (4 : Fin 6) * ∑ i, E T i := by
|
||||
rw [quadBiLin_decomp]
|
||||
|
|
|
@ -58,14 +58,14 @@ namespace BL
|
|||
variable {n : ℕ}
|
||||
|
||||
lemma on_quadBiLin (S : (PlusU1 n).charges) :
|
||||
quadBiLin ((BL n).val, S) = 1/2 * accYY S + 3/2 * accSU2 S - 2 * accSU3 S := by
|
||||
quadBiLin (BL n).val S = 1/2 * accYY S + 3/2 * accSU2 S - 2 * accSU3 S := by
|
||||
erw [familyUniversal_quadBiLin]
|
||||
rw [accYY_decomp, accSU2_decomp, accSU3_decomp]
|
||||
simp only [Fin.isValue, BL₁_val, SMνSpecies_numberCharges, toSpecies_apply, one_mul, mul_neg,
|
||||
mul_one, neg_mul, sub_neg_eq_add, one_div]
|
||||
ring
|
||||
|
||||
lemma on_quadBiLin_AFL (S : (PlusU1 n).LinSols) : quadBiLin ((BL n).val, S.val) = 0 := by
|
||||
lemma on_quadBiLin_AFL (S : (PlusU1 n).LinSols) : quadBiLin (BL n).val S.val = 0 := by
|
||||
rw [on_quadBiLin]
|
||||
rw [YYsol S, SU2Sol S, SU3Sol S]
|
||||
simp
|
||||
|
@ -110,8 +110,8 @@ lemma add_AFL_cube (S : (PlusU1 n).LinSols) (a b : ℚ) :
|
|||
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 [accCube, TriLinearSymm.toCubic_toFun, cubeTriLin_toFun, Fin.isValue, add_zero, BL_val,
|
||||
mul_zero]
|
||||
simp only [HomogeneousCubic, accCube, TriLinearSymm.toCubic_apply, cubeTriLin_toFun, Fin.isValue,
|
||||
add_zero, BL_val, mul_zero]
|
||||
ring
|
||||
|
||||
|
||||
|
|
|
@ -56,7 +56,7 @@ namespace Y
|
|||
variable {n : ℕ}
|
||||
|
||||
lemma on_quadBiLin (S : (PlusU1 n).charges) :
|
||||
quadBiLin ((Y n).val, S) = accYY S := by
|
||||
quadBiLin (Y n).val S = accYY S := by
|
||||
erw [familyUniversal_quadBiLin]
|
||||
rw [accYY_decomp]
|
||||
simp only [Fin.isValue, Y₁_val, SMνSpecies_numberCharges, toSpecies_apply, one_mul, mul_neg,
|
||||
|
@ -64,7 +64,7 @@ lemma on_quadBiLin (S : (PlusU1 n).charges) :
|
|||
ring_nf
|
||||
simp
|
||||
|
||||
lemma on_quadBiLin_AFL (S : (PlusU1 n).LinSols) : quadBiLin ((Y n).val, S.val) = 0 := by
|
||||
lemma on_quadBiLin_AFL (S : (PlusU1 n).LinSols) : quadBiLin (Y n).val S.val = 0 := by
|
||||
rw [on_quadBiLin]
|
||||
rw [YYsol S]
|
||||
|
||||
|
@ -123,8 +123,8 @@ lemma add_AFL_cube (S : (PlusU1 n).LinSols) (a b : ℚ) :
|
|||
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 [accCube, TriLinearSymm.toCubic_toFun, cubeTriLin_toFun, Fin.isValue, add_zero, Y_val,
|
||||
mul_zero]
|
||||
simp only [HomogeneousCubic, accCube, TriLinearSymm.toCubic_apply, cubeTriLin_toFun, Fin.isValue,
|
||||
add_zero, Y_val, mul_zero]
|
||||
ring
|
||||
|
||||
lemma add_AFQ_cube (S : (PlusU1 n).QuadSols) (a b : ℚ) :
|
||||
|
|
|
@ -74,13 +74,13 @@ def B : Fin 11 → (PlusU1 3).charges := fun i =>
|
|||
| 9 => B₉
|
||||
| 10 => B₁₀
|
||||
|
||||
lemma Bi_Bj_quad {i j : Fin 11} (hi : i ≠ j) : quadBiLin (B i, B j) = 0 := by
|
||||
lemma Bi_Bj_quad {i j : Fin 11} (hi : i ≠ j) : quadBiLin (B i) (B j) = 0 := by
|
||||
fin_cases i <;> fin_cases j
|
||||
any_goals rfl
|
||||
all_goals simp at hi
|
||||
|
||||
lemma Bi_sum_quad (i : Fin 11) (f : Fin 11 → ℚ) :
|
||||
quadBiLin (B i, ∑ k, f k • B k) = f i * quadBiLin (B i, B i) := by
|
||||
quadBiLin (B i) (∑ k, f k • B k) = f i * quadBiLin (B i) (B i) := by
|
||||
rw [quadBiLin.map_sum₂]
|
||||
rw [Fintype.sum_eq_single i]
|
||||
rw [quadBiLin.map_smul₂]
|
||||
|
@ -92,13 +92,13 @@ lemma Bi_sum_quad (i : Fin 11) (f : Fin 11 → ℚ) :
|
|||
@[simp]
|
||||
def quadCoeff : Fin 11 → ℚ := ![1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0]
|
||||
|
||||
lemma quadCoeff_eq_bilinear (i : Fin 11) : quadCoeff i = quadBiLin (B i, B i) := by
|
||||
lemma quadCoeff_eq_bilinear (i : Fin 11) : quadCoeff i = quadBiLin (B i) (B i) := by
|
||||
fin_cases i
|
||||
all_goals rfl
|
||||
|
||||
lemma on_accQuad (f : Fin 11 → ℚ) :
|
||||
accQuad (∑ i, f i • B i) = ∑ i, quadCoeff i * (f i)^2 := by
|
||||
change quadBiLin _ = _
|
||||
change quadBiLin _ _ = _
|
||||
rw [quadBiLin.map_sum₁]
|
||||
apply Fintype.sum_congr
|
||||
intro i
|
||||
|
|
|
@ -33,14 +33,14 @@ variable (C : (PlusU1 n).QuadSols)
|
|||
|
||||
lemma add_AFL_quad (S : (PlusU1 n).LinSols) (a b : ℚ) :
|
||||
accQuad (a • S.val + b • C.val) =
|
||||
a * (a * accQuad S.val + 2 * b * quadBiLin (S.val, C.val)) := by
|
||||
a * (a * accQuad S.val + 2 * b * quadBiLin S.val C.val) := by
|
||||
erw [BiLinearSymm.toHomogeneousQuad_add, quadSol (b • C)]
|
||||
rw [quadBiLin.map_smul₁, quadBiLin.map_smul₂]
|
||||
erw [accQuad.map_smul]
|
||||
ring
|
||||
|
||||
/-- A helper function for what comes later. -/
|
||||
def α₁ (S : (PlusU1 n).LinSols) : ℚ := - 2 * quadBiLin (S.val, C.val)
|
||||
def α₁ (S : (PlusU1 n).LinSols) : ℚ := - 2 * quadBiLin S.val C.val
|
||||
|
||||
/-- A helper function for what comes later. -/
|
||||
def α₂ (S : (PlusU1 n).LinSols) : ℚ := accQuad S.val
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue