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.Odd.LineInCubic

Parameterization in odd case

Given maps g : Fin n → ℚ, 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 is zero.

The main reference is:

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

@[expose] public section

Given a g f : Fin n → ℚ and a a : ℚ we form a linear solution. We will later show that this can be extended to a complete solution.

def parameterizationAsLinear (g f : Fin n ) (a : ) : (PureU1 (2 * n + 1)).LinSols := a ((accCubeTriLinSymm (P! f) (P! f) (P g)) P' g + (- accCubeTriLinSymm (P g) (P g) (P! f)) P!' f)
All goals completed! 🐙

The parameterization satisfies the cubic ACC.

set_option backward.isDefEq.respectTransparency false inn:g:Fin n 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! 🐙

Given a g f : Fin n → ℚ and a a : ℚ we form a solution.

def parameterization (g f : Fin n ) (a : ) : (PureU1 (2 * n + 1)).Sols := parameterizationAsLinear g f a, fun i => Fin.elim0 i, parameterizationCharge_cube g f a
n:S:(PureU1 (2 * n + 1)).Solsg:Fin n f:Fin n hS:S.val = P g + P! fhC:(PureU1 (2 * n + 1)).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 + 1)).Solsg:Fin n f:Fin n hS:S.val = P g + P! fhC:(accCube (2 * n + 1)) (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 + 1)).Solsg:Fin n 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 + 1)).Solsg:Fin n 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) at hC erw [n:S:(PureU1 (2 * n + 1)).Solsg:Fin n 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 + 1)).Solsg:Fin n 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) at hC erw [n:S:(PureU1 (2 * n + 1)).Solsg:Fin n 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 + 1)).Solsg:Fin n 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 + 1)).Sols) : Prop := (g f : Fin n.succ ) (_ : S.val = P g + P! f), accCubeTriLinSymm (P g) (P g) (P! f) 0
n:S:(PureU1 (2 * n.succ + 1)).Solsg:Fin n.succ f:Fin n.succ hS:S.val = P g + P! fg':Fin n.succ f':Fin n.succ 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. In this case we will show that S is zero if it is true for all permutations.

def SpecialCase (S : (PureU1 (2 * n.succ + 1)).Sols) : Prop := (g f : Fin n.succ ) (_ : S.val = P g + P! f), accCubeTriLinSymm (P g) (P g) (P! f) = 0
n:S:(PureU1 (2 * n.succ + 1)).Solsg:Fin n.succ f:Fin n.succ hS:S.val = P g + P! fg':Fin n.succ f':Fin n.succ 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 + 1)).Solsg:Fin n.succ f:Fin n.succ 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 + 1)).Solsg:Fin n.succ f:Fin n.succ h:S.val = P g + P! fh✝:((accCubeTriLinSymm (P g)) (P g)) (P! f) 0GenericCase S SpecialCase Sn:S:(PureU1 (2 * n.succ + 1)).Solsg:Fin n.succ f:Fin n.succ h:S.val = P g + P! fh✝:((accCubeTriLinSymm (P g)) (P g)) (P! f) = 0GenericCase S SpecialCase S n:S:(PureU1 (2 * n.succ + 1)).Solsg:Fin n.succ f:Fin n.succ h:S.val = P g + P! fh✝:((accCubeTriLinSymm (P g)) (P g)) (P! f) 0GenericCase S SpecialCase Sn:S:(PureU1 (2 * n.succ + 1)).Solsg:Fin n.succ f:Fin n.succ h:S.val = P g + P! fh✝:((accCubeTriLinSymm (P g)) (P g)) (P! f) = 0GenericCase S SpecialCase S n:S:(PureU1 (2 * n.succ + 1)).Solsg:Fin n.succ f:Fin n.succ h:S.val = P g + P! fh1:((accCubeTriLinSymm (P g)) (P g)) (P! f) = 0GenericCase S SpecialCase S n:S:(PureU1 (2 * n.succ + 1)).Solsg:Fin n.succ f:Fin n.succ 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 + 1)).Solsg:Fin n.succ f:Fin n.succ 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 + 1)).Solsh:GenericCase Sg:Fin n.succ f:Fin n.succ hS:S.val = P g + P! fS.val = P g + P! fn:S:(PureU1 (2 * n.succ + 1)).Solsh:GenericCase Sg:Fin n.succ f:Fin n.succ hS:S.val = P g + P! f((accCubeTriLinSymm (P! f)) (P! f)) (P g) 0 n:S:(PureU1 (2 * n.succ + 1)).Solsh:GenericCase Sg:Fin n.succ f:Fin n.succ hS:S.val = P g + P! fS.val = P g + P! f All goals completed! 🐙 n:S:(PureU1 (2 * n.succ + 1)).Solsh:GenericCase Sg:Fin n.succ f:Fin n.succ hS:S.val = P g + P! f((accCubeTriLinSymm (P! f)) (P! f)) (P g) 0 All goals completed! 🐙n:S:(PureU1 (2 * n.succ + 1)).Solsh✝:SpecialCase Sg:Fin n.succ f:Fin n.succ 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 + 1)).Solsh✝:SpecialCase Sg:Fin n.succ f:Fin n.succ 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 + 1)).Solsh✝:SpecialCase Sg:Fin n.succ f:Fin n.succ 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 + 1)).Solsh✝:SpecialCase Sg:Fin n.succ f:Fin n.succ 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 + 1)).Solsh✝:SpecialCase Sg:Fin n.succ f:Fin n.succ 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 + 1)).Sols} (h : (M : (FamilyPermutations (2 * n.succ + 1)).group), SpecialCase ((FamilyPermutations (2 * n.succ + 1)).solAction.toFun _ _ S M)) : LineInCubicPerm S.1.1 := n:S:(PureU1 (2 * n.succ + 1)).Solsh: (M : (FamilyPermutations (2 * n.succ + 1)).group), SpecialCase ((MulAction.toFun (FamilyPermutations (2 * n.succ + 1)).group (PureU1 (2 * n.succ + 1)).Sols) S M)LineInCubicPerm S.toLinSols n:S:(PureU1 (2 * n.succ + 1)).Solsh: (M : (FamilyPermutations (2 * n.succ + 1)).group), SpecialCase ((MulAction.toFun (FamilyPermutations (2 * n.succ + 1)).group (PureU1 (2 * n.succ + 1)).Sols) S M)M:(FamilyPermutations (2 * n.succ + 1)).groupLineInCubic (((FamilyPermutations (2 * n.succ + 1)).linSolRep M) S.toLinSols) n:S:(PureU1 (2 * n.succ + 1)).Solsh: (M : (FamilyPermutations (2 * n.succ + 1)).group), SpecialCase ((MulAction.toFun (FamilyPermutations (2 * n.succ + 1)).group (PureU1 (2 * n.succ + 1)).Sols) S M)M:(FamilyPermutations (2 * n.succ + 1)).grouphM:LineInCubic ((MulAction.toFun (FamilyPermutations (2 * n.succ + 1)).group (PureU1 (2 * n.succ + 1)).Sols) S M).toLinSolsLineInCubic (((FamilyPermutations (2 * n.succ + 1)).linSolRep M) S.toLinSols) All goals completed! 🐙theorem special_case {S : (PureU1 (2 * n.succ.succ + 1)).Sols} (h : (M : (FamilyPermutations (2 * n.succ.succ + 1)).group), SpecialCase ((FamilyPermutations (2 * n.succ.succ + 1)).solAction.toFun _ _ S M)) : S.1.1 = 0 := n:S:(PureU1 (2 * n.succ.succ + 1)).Solsh: (M : (FamilyPermutations (2 * n.succ.succ + 1)).group), SpecialCase ((MulAction.toFun (FamilyPermutations (2 * n.succ.succ + 1)).group (PureU1 (2 * n.succ.succ + 1)).Sols) S M)S.toLinSols = 0 n:S:(PureU1 (2 * n.succ.succ + 1)).Solsh: (M : (FamilyPermutations (2 * n.succ.succ + 1)).group), SpecialCase ((MulAction.toFun (FamilyPermutations (2 * n.succ.succ + 1)).group (PureU1 (2 * n.succ.succ + 1)).Sols) S M)ht:LineInCubicPerm S.toLinSolsS.toLinSols = 0 All goals completed! 🐙