Imports
/- Copyright (c) 2024 Joseph Tooby-Smith. All rights reserved. Released under Apache 2.0 license as described in the file LICENSE. Authors: Joseph Tooby-Smith -/ module public import Physlib.QFT.QED.AnomalyCancellation.Even.LineInCubic

Parameterization in even case

Given maps g : Fin n.succ → ℚ, f : Fin n → ℚ and a : ℚ we form a solution to the anomaly equations. We show that every solution can be got in this way, up to permutation, unless it, up to permutation, lives in the plane spanned by the first part of the basis vector.

The main reference is:

    https://arxiv.org/pdf/1912.04804.pdf

@[expose] public section

Given coefficients g of a point in P and f of a point in P!, and a rational, we get a rational a ∈ ℚ, we get a point in (PureU1 (2 * n.succ)).AnomalyFreeLinear, which we will later show extends to an anomaly 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)
All goals completed! 🐙n:g:Fin n.succ f:Fin n a:a ^ 3 * (((accCubeTriLinSymm (P! f)) (P! f)) (P g) ^ 3 * 0 + (-((accCubeTriLinSymm (P g)) (P g)) (P! f)) ^ 3 * 0 + 3 * (((accCubeTriLinSymm (P! f)) (P! f)) (P g) * (((accCubeTriLinSymm (P! f)) (P! f)) (P g) * (-((accCubeTriLinSymm (P g)) (P g)) (P! f) * ((accCubeTriLinSymm (P g)) (P g)) (P! f)))) + 3 * (-((accCubeTriLinSymm (P g)) (P g)) (P! f) * (-((accCubeTriLinSymm (P g)) (P g)) (P! f) * (((accCubeTriLinSymm (P! f)) (P! f)) (P g) * ((accCubeTriLinSymm (P! f)) (P! f)) (P g))))) = 0 All goals completed! 🐙

The construction of a Sol from a Fin n.succ → ℚ, a Fin n → ℚ and a .

def parameterization (g : Fin n.succ ) (f : Fin n ) (a : ) : (PureU1 (2 * n.succ)).Sols := parameterizationAsLinear g f a, fun i => Fin.elim0 i, parameterizationCharge_cube g f a
n:S:(PureU1 (2 * n.succ)).Solsg:Fin n.succ f:Fin n hS:S.val = P g + P! fhC:(PureU1 (2 * n.succ)).cubicACC (P g + P! f) = 0((accCubeTriLinSymm (P g)) (P g)) (P! f) = -((accCubeTriLinSymm (P! f)) (P! f)) (P g) n:S:(PureU1 (2 * n.succ)).Solsg:Fin n.succ f:Fin n hS:S.val = P g + P! fhC:(accCube (2 * n.succ)) (P g + P! f) = 0((accCubeTriLinSymm (P g)) (P g)) (P! f) = -((accCubeTriLinSymm (P! f)) (P! f)) (P g) erw [n:S:(PureU1 (2 * n.succ)).Solsg:Fin n.succ f:Fin n hS:S.val = P g + P! fhC:accCubeTriLinSymm.toCubic (P g) + accCubeTriLinSymm.toCubic (P! f) + 3 * ((accCubeTriLinSymm (P g)) (P g)) (P! f) + 3 * ((accCubeTriLinSymm (P! f)) (P! f)) (P g) = 0((accCubeTriLinSymm (P g)) (P g)) (P! f) = -((accCubeTriLinSymm (P! f)) (P! f)) (P g) n:S:(PureU1 (2 * n.succ)).Solsg:Fin n.succ f:Fin n hS:S.val = P g + P! fhC:0 + accCubeTriLinSymm.toCubic (P! f) + 3 * ((accCubeTriLinSymm (P g)) (P g)) (P! f) + 3 * ((accCubeTriLinSymm (P! f)) (P! f)) (P g) = 0((accCubeTriLinSymm (P g)) (P g)) (P! f) = -((accCubeTriLinSymm (P! f)) (P! f)) (P g) n:S:(PureU1 (2 * n.succ)).Solsg:Fin n.succ f:Fin n hS:S.val = P g + P! fhC:0 + 0 + 3 * ((accCubeTriLinSymm (P g)) (P g)) (P! f) + 3 * ((accCubeTriLinSymm (P! f)) (P! f)) (P g) = 0((accCubeTriLinSymm (P g)) (P g)) (P! f) = -((accCubeTriLinSymm (P! f)) (P! f)) (P g)n:S:(PureU1 (2 * n.succ)).Solsg:Fin n.succ f:Fin n hS:S.val = P g + P! fhC:0 + 0 + 3 * ((accCubeTriLinSymm (P g)) (P g)) (P! f) + 3 * ((accCubeTriLinSymm (P! f)) (P! f)) (P g) = 0((accCubeTriLinSymm (P g)) (P g)) (P! f) = -((accCubeTriLinSymm (P! f)) (P! f)) (P g) at hC All goals completed! 🐙

A proposition on a solution which is true if accCubeTriLinSymm (P g, P g, P! f) ≠ 0. 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
n:S:(PureU1 (2 * n.succ)).Solsg:Fin n.succ f:Fin n hS:S.val = P g + P! fg':Fin n.succ f':Fin n hC:((accCubeTriLinSymm (P g')) (P g')) (P! f') = 0hS':g = g' f = f'hC':((accCubeTriLinSymm (P g')) (P g')) (P! f') 0False All goals completed! 🐙

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
n:S:(PureU1 (2 * n.succ)).Solsg:Fin n.succ f:Fin n hS:S.val = P g + P! fg':Fin n.succ f':Fin n hS':g = g' f = f'hC':((accCubeTriLinSymm (P g')) (P g')) (P! f') = 0((accCubeTriLinSymm (P g')) (P g')) (P! f') = 0 All goals completed! 🐙n:S:(PureU1 (2 * n.succ)).Solsg:Fin n.succ f:Fin n h:S.val = P g + P! fh1:((accCubeTriLinSymm (P g)) (P g)) (P! f) 0 ((accCubeTriLinSymm (P g)) (P g)) (P! f) = 0GenericCase S SpecialCase S n:S:(PureU1 (2 * n.succ)).Solsg:Fin n.succ f:Fin n h:S.val = P g + P! fh1:((accCubeTriLinSymm (P g)) (P g)) (P! f) 0GenericCase S SpecialCase Sn:S:(PureU1 (2 * n.succ)).Solsg:Fin n.succ f:Fin n h:S.val = P g + P! fh1:((accCubeTriLinSymm (P g)) (P g)) (P! f) = 0GenericCase S SpecialCase S n:S:(PureU1 (2 * n.succ)).Solsg:Fin n.succ f:Fin n h:S.val = P g + P! fh1:((accCubeTriLinSymm (P g)) (P g)) (P! f) 0GenericCase S SpecialCase S All goals completed! 🐙 n:S:(PureU1 (2 * n.succ)).Solsg:Fin n.succ f:Fin n h:S.val = P g + P! fh1:((accCubeTriLinSymm (P g)) (P g)) (P! f) = 0GenericCase S SpecialCase S All goals completed! 🐙n:S:(PureU1 (2 * n.succ)).Solsh✝:GenericCase Sg:Fin n.succ f:Fin n hS:S.val = P g + P! fh:-((accCubeTriLinSymm (P! f)) (P! f)) (P g) 0((accCubeTriLinSymm (P! f)) (P! f)) (P g) 0 n:S:(PureU1 (2 * n.succ)).Solsh✝:GenericCase Sg:Fin n.succ f:Fin n hS:S.val = P g + P! fh:¬ i, P! f i * P! f i * P g i = 0((accCubeTriLinSymm (P! f)) (P! f)) (P g) 0 All goals completed! 🐙n:S:(PureU1 (2 * n.succ)).Solsh✝:SpecialCase Sg:Fin n.succ f:Fin n hS:S.val = Pa g fa:b:h:-((accCubeTriLinSymm (P! f)) (P! f)) (P g) = 0a ^ 3 * 0 + b ^ 3 * 0 + 3 * (a * (a * (b * 0))) + 3 * (b * (b * (a * ((accCubeTriLinSymm (P! f)) (P! f)) (P g)))) = 0 n:S:(PureU1 (2 * n.succ)).Solsh✝:SpecialCase Sg:Fin n.succ f:Fin n hS:S.val = Pa g fa:b:h: i, P! f i * P! f i * P g i = 0a ^ 3 * 0 + b ^ 3 * 0 + 3 * (a * (a * (b * 0))) + 3 * (b * (b * (a * ((accCubeTriLinSymm (P! f)) (P! f)) (P g)))) = 0 n:S:(PureU1 (2 * n.succ)).Solsh✝:SpecialCase Sg:Fin n.succ f:Fin n hS:S.val = Pa g fa:b:h:((accCubeTriLinSymm (P! f)) (P! f)) (P g) = 0a ^ 3 * 0 + b ^ 3 * 0 + 3 * (a * (a * (b * 0))) + 3 * (b * (b * (a * ((accCubeTriLinSymm (P! f)) (P! f)) (P g)))) = 0 erw [n:S:(PureU1 (2 * n.succ)).Solsh✝:SpecialCase Sg:Fin n.succ f:Fin n hS:S.val = Pa g fa:b:h:((accCubeTriLinSymm (P! f)) (P! f)) (P g) = 0a ^ 3 * 0 + b ^ 3 * 0 + 3 * (a * (a * (b * 0))) + 3 * (b * (b * (a * 0))) = 0n:S:(PureU1 (2 * n.succ)).Solsh✝:SpecialCase Sg:Fin n.succ f:Fin n hS:S.val = Pa g fa:b:h:((accCubeTriLinSymm (P! f)) (P! f)) (P g) = 0a ^ 3 * 0 + b ^ 3 * 0 + 3 * (a * (a * (b * 0))) + 3 * (b * (b * (a * 0))) = 0 All goals completed! 🐙lemma special_case_lineInCubic_perm {S : (PureU1 (2 * n.succ)).Sols} (h : (M : (FamilyPermutations (2 * n.succ)).group), SpecialCase ((FamilyPermutations (2 * n.succ)).solAction.toFun _ _ S M)) : LineInCubicPerm S.1.1 := fun M => special_case_lineInCubic (h M)theorem special_case {S : (PureU1 (2 * n.succ.succ)).Sols} (h : (M : (FamilyPermutations (2 * n.succ.succ)).group), SpecialCase ((FamilyPermutations (2 * n.succ.succ)).solAction.toFun _ _ S M)) : (M : (FamilyPermutations (2 * n.succ.succ)).group), ((FamilyPermutations (2 * n.succ.succ)).solAction.toFun _ _ S M).1.1 Submodule.span (Set.range basis) := lineInCubicPerm_in_plane S (special_case_lineInCubic_perm h)