refactor: def of symmetric trilin function
This commit is contained in:
parent
748bcb61ae
commit
e36c61b331
24 changed files with 279 additions and 246 deletions
|
@ -470,7 +470,7 @@ lemma P!_accCube (f : Fin n → ℚ) : accCube (2 * n.succ) (P! f) = 0 := by
|
|||
ring
|
||||
|
||||
lemma P_P_P!_accCube (g : Fin n.succ → ℚ) (j : Fin n) :
|
||||
accCubeTriLinSymm.toFun (P g, P g, basis!AsCharges j)
|
||||
accCubeTriLinSymm (P g) (P g) (basis!AsCharges j)
|
||||
= g (j.succ) ^ 2 - g (j.castSucc) ^ 2 := by
|
||||
simp [accCubeTriLinSymm]
|
||||
rw [sum_δ!₁_δ!₂, basis!_on_δ!₃, basis!_on_δ!₄]
|
||||
|
@ -485,7 +485,7 @@ lemma P_P_P!_accCube (g : Fin n.succ → ℚ) (j : Fin n) :
|
|||
simp
|
||||
|
||||
lemma P_P!_P!_accCube (g : Fin n → ℚ) (j : Fin n.succ) :
|
||||
accCubeTriLinSymm.toFun (P! g, P! g, basisAsCharges j)
|
||||
accCubeTriLinSymm (P! g) (P! g) (basisAsCharges j)
|
||||
= (P! g (δ₁ j))^2 - (P! g (δ₂ j))^2 := by
|
||||
simp [accCubeTriLinSymm]
|
||||
rw [sum_δ₁_δ₂]
|
||||
|
|
|
@ -42,8 +42,8 @@ def lineInCubic (S : (PureU1 (2 * n.succ)).LinSols) : Prop :=
|
|||
|
||||
lemma lineInCubic_expand {S : (PureU1 (2 * n.succ)).LinSols} (h : lineInCubic S) :
|
||||
∀ (g : Fin n.succ → ℚ) (f : Fin n → ℚ) (_ : S.val = Pa g f) (a b : ℚ) ,
|
||||
3 * a * b * (a * accCubeTriLinSymm (P g, P g, P! f)
|
||||
+ b * accCubeTriLinSymm (P! f, P! f, P g)) = 0 := by
|
||||
3 * a * b * (a * accCubeTriLinSymm (P g) (P g) (P! f)
|
||||
+ b * accCubeTriLinSymm (P! f) (P! f) (P g)) = 0 := by
|
||||
intro g f hS a b
|
||||
have h1 := h g f hS a b
|
||||
change accCubeTriLinSymm.toCubic (a • P g + b • P! f) = 0 at h1
|
||||
|
@ -62,7 +62,7 @@ lemma lineInCubic_expand {S : (PureU1 (2 * n.succ)).LinSols} (h : lineInCubic S)
|
|||
-/
|
||||
lemma line_in_cubic_P_P_P! {S : (PureU1 (2 * n.succ)).LinSols} (h : lineInCubic S) :
|
||||
∀ (g : Fin n.succ → ℚ) (f : Fin n → ℚ) (_ : S.val = P g + P! f),
|
||||
accCubeTriLinSymm (P g, P g, P! f) = 0 := by
|
||||
accCubeTriLinSymm (P g) (P g) (P! f) = 0 := by
|
||||
intro g f hS
|
||||
linear_combination 2 / 3 * (lineInCubic_expand h g f hS 1 1) -
|
||||
(lineInCubic_expand h g f hS 1 2) / 6
|
||||
|
@ -92,7 +92,7 @@ lemma lineInCubicPerm_swap {S : (PureU1 (2 * n.succ)).LinSols}
|
|||
(LIC : lineInCubicPerm S) :
|
||||
∀ (j : Fin n) (g : Fin n.succ → ℚ) (f : Fin n → ℚ) (_ : S.val = Pa g f) ,
|
||||
(S.val (δ!₂ j) - S.val (δ!₁ j))
|
||||
* accCubeTriLinSymm.toFun (P g, P g, basis!AsCharges j) = 0 := by
|
||||
* accCubeTriLinSymm (P g) (P g) (basis!AsCharges j) = 0 := by
|
||||
intro j g f h
|
||||
let S' := (FamilyPermutations (2 * n.succ)).linSolRep (pairSwap (δ!₁ j) (δ!₂ j)) S
|
||||
have hSS' : ((FamilyPermutations (2 * n.succ)).linSolRep (pairSwap (δ!₁ j) (δ!₂ j))) S = S' := rfl
|
||||
|
@ -106,7 +106,7 @@ lemma lineInCubicPerm_swap {S : (PureU1 (2 * n.succ)).LinSols}
|
|||
|
||||
lemma P_P_P!_accCube' {S : (PureU1 (2 * n.succ.succ )).LinSols}
|
||||
(f : Fin n.succ.succ → ℚ) (g : Fin n.succ → ℚ) (hS : S.val = Pa f g) :
|
||||
accCubeTriLinSymm.toFun (P f, P f, basis!AsCharges (Fin.last n)) =
|
||||
accCubeTriLinSymm (P f) (P f) (basis!AsCharges (Fin.last n)) =
|
||||
- (S.val (δ!₂ (Fin.last n)) + S.val (δ!₁ (Fin.last n))) * (2 * S.val δ!₄ +
|
||||
S.val (δ!₂ (Fin.last n)) + S.val (δ!₁ (Fin.last n))) := by
|
||||
rw [P_P_P!_accCube f (Fin.last n)]
|
||||
|
|
|
@ -38,13 +38,13 @@ point in `(PureU1 (2 * n.succ)).AnomalyFreeLinear`, which we will later show ext
|
|||
free point. -/
|
||||
def parameterizationAsLinear (g : Fin n.succ → ℚ) (f : Fin n → ℚ) (a : ℚ) :
|
||||
(PureU1 (2 * n.succ)).LinSols :=
|
||||
a • ((accCubeTriLinSymm (P! f, P! f, P g)) • P' g +
|
||||
(- accCubeTriLinSymm (P g, P g, P! f)) • P!' f)
|
||||
a • ((accCubeTriLinSymm (P! f) (P! f) (P g)) • P' g +
|
||||
(- accCubeTriLinSymm (P g) (P g) (P! f)) • P!' f)
|
||||
|
||||
lemma parameterizationAsLinear_val (g : Fin n.succ → ℚ) (f : Fin n → ℚ) (a : ℚ) :
|
||||
(parameterizationAsLinear g f a).val =
|
||||
a • ((accCubeTriLinSymm (P! f, P! f, P g)) • P g +
|
||||
(- accCubeTriLinSymm (P g, P g, P! f)) • P! f) := by
|
||||
a • ((accCubeTriLinSymm (P! f) (P! f) (P g)) • P g +
|
||||
(- accCubeTriLinSymm (P g) (P g) (P! f)) • P! f) := by
|
||||
rw [parameterizationAsLinear]
|
||||
change a • (_ • (P' g).val + _ • (P!' f).val) = _
|
||||
rw [P'_val, P!'_val]
|
||||
|
@ -68,7 +68,7 @@ def parameterization (g : Fin n.succ → ℚ) (f : Fin n → ℚ) (a : ℚ) :
|
|||
|
||||
lemma anomalyFree_param {S : (PureU1 (2 * n.succ)).Sols}
|
||||
(g : Fin n.succ → ℚ) (f : Fin n → ℚ) (hS : S.val = P g + P! f) :
|
||||
accCubeTriLinSymm (P g, P g, P! f) = - accCubeTriLinSymm (P! f, P! f, P g) := by
|
||||
accCubeTriLinSymm (P g) (P g) (P! f) = - accCubeTriLinSymm (P! f) (P! f) (P g) := by
|
||||
have hC := S.cubicSol
|
||||
rw [hS] at hC
|
||||
change (accCube (2 * n.succ)) (P g + P! f) = 0 at hC
|
||||
|
@ -81,11 +81,11 @@ lemma anomalyFree_param {S : (PureU1 (2 * n.succ)).Sols}
|
|||
In this case our parameterization above will be able to recover this point. -/
|
||||
def genericCase (S : (PureU1 (2 * n.succ)).Sols) : Prop :=
|
||||
∀ (g : Fin n.succ → ℚ) (f : Fin n → ℚ) (_ : S.val = P g + P! f) ,
|
||||
accCubeTriLinSymm (P g, P g, P! f) ≠ 0
|
||||
accCubeTriLinSymm (P g) (P g) (P! f) ≠ 0
|
||||
|
||||
lemma genericCase_exists (S : (PureU1 (2 * n.succ)).Sols)
|
||||
(hs : ∃ (g : Fin n.succ → ℚ) (f : Fin n → ℚ), S.val = P g + P! f ∧
|
||||
accCubeTriLinSymm (P g, P g, P! f) ≠ 0) : genericCase S := by
|
||||
accCubeTriLinSymm (P g) (P g) (P! f) ≠ 0) : genericCase S := by
|
||||
intro g f hS hC
|
||||
obtain ⟨g', f', hS', hC'⟩ := hs
|
||||
rw [hS] at hS'
|
||||
|
@ -96,11 +96,11 @@ lemma genericCase_exists (S : (PureU1 (2 * n.succ)).Sols)
|
|||
/-- A proposition on a solution which is true if `accCubeTriLinSymm (P g, P g, P! f) = 0`.-/
|
||||
def specialCase (S : (PureU1 (2 * n.succ)).Sols) : Prop :=
|
||||
∀ (g : Fin n.succ → ℚ) (f : Fin n → ℚ) (_ : S.val = P g + P! f) ,
|
||||
accCubeTriLinSymm (P g, P g, P! f) = 0
|
||||
accCubeTriLinSymm (P g) (P g) (P! f) = 0
|
||||
|
||||
lemma specialCase_exists (S : (PureU1 (2 * n.succ)).Sols)
|
||||
(hs : ∃ (g : Fin n.succ → ℚ) (f : Fin n → ℚ), S.val = P g + P! f ∧
|
||||
accCubeTriLinSymm (P g, P g, P! f) = 0) : specialCase S := by
|
||||
accCubeTriLinSymm (P g) (P g) (P! f) = 0) : specialCase S := by
|
||||
intro g f hS
|
||||
obtain ⟨g', f', hS', hC'⟩ := hs
|
||||
rw [hS] at hS'
|
||||
|
@ -111,8 +111,8 @@ lemma specialCase_exists (S : (PureU1 (2 * n.succ)).Sols)
|
|||
lemma generic_or_special (S : (PureU1 (2 * n.succ)).Sols) :
|
||||
genericCase S ∨ specialCase S := by
|
||||
obtain ⟨g, f, h⟩ := span_basis S.1.1
|
||||
have h1 : accCubeTriLinSymm (P g, P g, P! f) ≠ 0 ∨
|
||||
accCubeTriLinSymm (P g, P g, P! f) = 0 := by
|
||||
have h1 : accCubeTriLinSymm (P g) (P g) (P! f) ≠ 0 ∨
|
||||
accCubeTriLinSymm (P g) (P g) (P! f) = 0 := by
|
||||
exact ne_or_eq _ _
|
||||
cases h1 <;> rename_i h1
|
||||
exact Or.inl (genericCase_exists S ⟨g, f, h, h1⟩)
|
||||
|
@ -121,7 +121,7 @@ lemma generic_or_special (S : (PureU1 (2 * n.succ)).Sols) :
|
|||
theorem generic_case {S : (PureU1 (2 * n.succ)).Sols} (h : genericCase S) :
|
||||
∃ g f a, S = parameterization g f a := by
|
||||
obtain ⟨g, f, hS⟩ := span_basis S.1.1
|
||||
use g, f, (accCubeTriLinSymm (P! f, P! f, P g))⁻¹
|
||||
use g, f, (accCubeTriLinSymm (P! f) (P! f) (P g))⁻¹
|
||||
rw [parameterization]
|
||||
apply ACCSystem.Sols.ext
|
||||
rw [parameterizationAsLinear_val]
|
||||
|
@ -148,7 +148,7 @@ lemma special_case_lineInCubic {S : (PureU1 (2 * n.succ)).Sols}
|
|||
rw [h]
|
||||
rw [anomalyFree_param _ _ hS] at h
|
||||
simp at h
|
||||
change accCubeTriLinSymm (P! f, P! f, P g) = 0 at h
|
||||
change accCubeTriLinSymm (P! f) (P! f) (P g) = 0 at h
|
||||
erw [h]
|
||||
simp
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue