coincident-root-loci-0.3: Equivariant CSM classes of coincident root loci
Safe HaskellNone
LanguageHaskell2010

Math.RootLoci.Motivic.Abstract

Description

The abstract motivic algorithm

See: B. Komuves: Motivic characteristic classes of discriminant strata

TODO: caching of results (otherwise it is very slow)

Synopsis

The abstract algorithm

symn :: Num c => Dim -> FreeMod c SingleLam Source #

The (abstract) class of Sym^n(X)

open :: Dim -> ZMod SingleLam Source #

The open stratum X(1,1,...,1)

xlam :: Partition -> ZMod SingleLam Source #

The open stratum X(lambda)

dvec :: [Dim] -> ZMod MultiLam Source #

The open stratum D(n1,n2,...)

dvecSorted :: [Dim] -> ZMod MultiLam Source #

The open stratum D(n1,n2,...), assuming n1 >= n2 >= n3 >= ...

Data types and instances

newtype Var Source #

A variable, implemented as a de Bruijn level (indexing starts from 0)

Constructors

DeBruijn Int 

Instances

Instances details
Eq Var Source # 
Instance details

Defined in Math.RootLoci.Motivic.Abstract

Methods

(==) :: Var -> Var -> Bool #

(/=) :: Var -> Var -> Bool #

Ord Var Source # 
Instance details

Defined in Math.RootLoci.Motivic.Abstract

Methods

compare :: Var -> Var -> Ordering #

(<) :: Var -> Var -> Bool #

(<=) :: Var -> Var -> Bool #

(>) :: Var -> Var -> Bool #

(>=) :: Var -> Var -> Bool #

max :: Var -> Var -> Var #

min :: Var -> Var -> Var #

Show Var Source # 
Instance details

Defined in Math.RootLoci.Motivic.Abstract

Methods

showsPrec :: Int -> Var -> ShowS #

show :: Var -> String #

showList :: [Var] -> ShowS #

Pretty Var Source # 
Instance details

Defined in Math.RootLoci.Motivic.Abstract

Rename Var Source # 
Instance details

Defined in Math.RootLoci.Motivic.Abstract

Methods

rename :: (Var -> Var) -> Var -> Var Source #

Shift Var Source # 
Instance details

Defined in Math.RootLoci.Motivic.Abstract

Methods

shift :: Int -> Var -> Var Source #

Pretty (Var, Int) Source # 
Instance details

Defined in Math.RootLoci.Motivic.Abstract

Methods

pretty :: (Var, Int) -> String #

prettyInParens :: (Var, Int) -> String #

Omega (Var, Int) Source # 
Instance details

Defined in Math.RootLoci.Motivic.Abstract

Methods

omega :: Int -> (Var, Int) -> (Var, Int) Source #

Rename (Var, Int) Source # 
Instance details

Defined in Math.RootLoci.Motivic.Abstract

Methods

rename :: (Var -> Var) -> (Var, Int) -> (Var, Int) Source #

newtype Bindings Source #

We use de Bruijn levels to index the bound variables, and ecah bound variables has a dimension

Constructors

Bindings [Dim] 

newtype Single Source #

An expression living on Sym^n(X), with free variables

Constructors

Single [(Var, Int)] 

Instances

Instances details
Eq Single Source # 
Instance details

Defined in Math.RootLoci.Motivic.Abstract

Methods

(==) :: Single -> Single -> Bool #

(/=) :: Single -> Single -> Bool #

Ord Single Source # 
Instance details

Defined in Math.RootLoci.Motivic.Abstract

Show Single Source # 
Instance details

Defined in Math.RootLoci.Motivic.Abstract

Pretty Single Source # 
Instance details

Defined in Math.RootLoci.Motivic.Abstract

Omega Single Source # 
Instance details

Defined in Math.RootLoci.Motivic.Abstract

Methods

omega :: Int -> Single -> Single Source #

Normalize Single Source # 
Instance details

Defined in Math.RootLoci.Motivic.Abstract

Empty Single Source # 
Instance details

Defined in Math.RootLoci.Motivic.Abstract

Methods

empty :: Single Source #

Rename Single Source # 
Instance details

Defined in Math.RootLoci.Motivic.Abstract

Methods

rename :: (Var -> Var) -> Single -> Single Source #

Shift Single Source # 
Instance details

Defined in Math.RootLoci.Motivic.Abstract

Methods

shift :: Int -> Single -> Single Source #

Psi Multi Single Source # 
Instance details

Defined in Math.RootLoci.Motivic.Abstract

Methods

psi :: Multi -> Single Source #

SingleToMulti Single Multi Source # 
Instance details

Defined in Math.RootLoci.Motivic.Abstract

newtype Multi Source #

An expression living on Sym^{n_1}(X) x ... x Sym^{n_r}(X), with free variables

Constructors

Multi [Single] 

Instances

Instances details
Eq Multi Source # 
Instance details

Defined in Math.RootLoci.Motivic.Abstract

Methods

(==) :: Multi -> Multi -> Bool #

(/=) :: Multi -> Multi -> Bool #

Ord Multi Source # 
Instance details

Defined in Math.RootLoci.Motivic.Abstract

Methods

compare :: Multi -> Multi -> Ordering #

(<) :: Multi -> Multi -> Bool #

(<=) :: Multi -> Multi -> Bool #

(>) :: Multi -> Multi -> Bool #

(>=) :: Multi -> Multi -> Bool #

max :: Multi -> Multi -> Multi #

min :: Multi -> Multi -> Multi #

Show Multi Source # 
Instance details

Defined in Math.RootLoci.Motivic.Abstract

Methods

showsPrec :: Int -> Multi -> ShowS #

show :: Multi -> String #

showList :: [Multi] -> ShowS #

Pretty Multi Source # 
Instance details

Defined in Math.RootLoci.Motivic.Abstract

Theta Multi Source # 
Instance details

Defined in Math.RootLoci.Motivic.Abstract

Methods

theta :: Multi -> Multi Source #

Permute Multi Source # 
Instance details

Defined in Math.RootLoci.Motivic.Abstract

ExtendToCommonSize Multi Source # 
Instance details

Defined in Math.RootLoci.Motivic.Abstract

PsiEvenOdd Multi Source # 
Instance details

Defined in Math.RootLoci.Motivic.Abstract

Omega123 Multi Source # 
Instance details

Defined in Math.RootLoci.Motivic.Abstract

Methods

omega123 :: Multi -> Multi Source #

Omega Multi Source # 
Instance details

Defined in Math.RootLoci.Motivic.Abstract

Methods

omega :: Int -> Multi -> Multi Source #

Cross Multi Source # 
Instance details

Defined in Math.RootLoci.Motivic.Abstract

SuperNormalize Multi Source # 
Instance details

Defined in Math.RootLoci.Motivic.Abstract

Normalize Multi Source # 
Instance details

Defined in Math.RootLoci.Motivic.Abstract

Empty Multi Source # 
Instance details

Defined in Math.RootLoci.Motivic.Abstract

Methods

empty :: Multi Source #

Rename Multi Source # 
Instance details

Defined in Math.RootLoci.Motivic.Abstract

Methods

rename :: (Var -> Var) -> Multi -> Multi Source #

Shift Multi Source # 
Instance details

Defined in Math.RootLoci.Motivic.Abstract

Methods

shift :: Int -> Multi -> Multi Source #

Psi Multi Single Source # 
Instance details

Defined in Math.RootLoci.Motivic.Abstract

Methods

psi :: Multi -> Single Source #

SingleToMulti Single Multi Source # 
Instance details

Defined in Math.RootLoci.Motivic.Abstract

data SingleLam Source #

A lambda expression living on Sym^n(X), with variables bound to Sym^d(X) with different dimensions

Constructors

SingleLam !Bindings !Single 

Instances

Instances details
Eq SingleLam Source # 
Instance details

Defined in Math.RootLoci.Motivic.Abstract

Ord SingleLam Source # 
Instance details

Defined in Math.RootLoci.Motivic.Abstract

Show SingleLam Source # 
Instance details

Defined in Math.RootLoci.Motivic.Abstract

Pretty SingleLam Source # 
Instance details

Defined in Math.RootLoci.Motivic.Abstract

Pontrjagin SingleLam Source # 
Instance details

Defined in Math.RootLoci.Motivic.Abstract

Omega SingleLam Source # 
Instance details

Defined in Math.RootLoci.Motivic.Abstract

Normalize SingleLam Source # 
Instance details

Defined in Math.RootLoci.Motivic.Abstract

Empty SingleLam Source # 
Instance details

Defined in Math.RootLoci.Motivic.Abstract

Degree SingleLam Source # 
Instance details

Defined in Math.RootLoci.Motivic.Abstract

Associated Types

type MultiDegree SingleLam Source #

Psi MultiLam SingleLam Source # 
Instance details

Defined in Math.RootLoci.Motivic.Abstract

SingleToMulti SingleLam MultiLam Source # 
Instance details

Defined in Math.RootLoci.Motivic.Abstract

(Eq c, Num c) => Psi [FreeMod c SingleLam] (FreeMod c SingleLam) Source # 
Instance details

Defined in Math.RootLoci.Motivic.Abstract

(Eq c, Num c) => Omega (FreeMod c SingleLam) Source # 
Instance details

Defined in Math.RootLoci.Motivic.Abstract

(Eq c, Num c) => Normalize (FreeMod c SingleLam) Source # 
Instance details

Defined in Math.RootLoci.Motivic.Abstract

(Eq c, Num c) => Psi (FreeMod c MultiLam) (FreeMod c SingleLam) Source # 
Instance details

Defined in Math.RootLoci.Motivic.Abstract

(Eq c, Num c) => SingleToMulti (FreeMod c SingleLam) (FreeMod c MultiLam) Source # 
Instance details

Defined in Math.RootLoci.Motivic.Abstract

type MultiDegree SingleLam Source # 
Instance details

Defined in Math.RootLoci.Motivic.Abstract

data MultiLam Source #

A lambda expression living on Sym^{n_1}(X) x ... x Sym^{n_r}(X), with variables bound to Sym^d(X) with different dimensions

Constructors

MultiLam !Bindings !Multi 

Instances

Instances details
Eq MultiLam Source # 
Instance details

Defined in Math.RootLoci.Motivic.Abstract

Ord MultiLam Source # 
Instance details

Defined in Math.RootLoci.Motivic.Abstract

Show MultiLam Source # 
Instance details

Defined in Math.RootLoci.Motivic.Abstract

Pretty MultiLam Source # 
Instance details

Defined in Math.RootLoci.Motivic.Abstract

Theta MultiLam Source # 
Instance details

Defined in Math.RootLoci.Motivic.Abstract

Permute MultiLam Source # 
Instance details

Defined in Math.RootLoci.Motivic.Abstract

ExtendToCommonSize MultiLam Source # 
Instance details

Defined in Math.RootLoci.Motivic.Abstract

Pontrjagin MultiLam Source # 
Instance details

Defined in Math.RootLoci.Motivic.Abstract

PsiEvenOdd MultiLam Source # 
Instance details

Defined in Math.RootLoci.Motivic.Abstract

Omega123 MultiLam Source # 
Instance details

Defined in Math.RootLoci.Motivic.Abstract

Omega MultiLam Source # 
Instance details

Defined in Math.RootLoci.Motivic.Abstract

Methods

omega :: Int -> MultiLam -> MultiLam Source #

Cross MultiLam Source # 
Instance details

Defined in Math.RootLoci.Motivic.Abstract

SuperNormalize MultiLam Source # 
Instance details

Defined in Math.RootLoci.Motivic.Abstract

Normalize MultiLam Source # 
Instance details

Defined in Math.RootLoci.Motivic.Abstract

Empty MultiLam Source # 
Instance details

Defined in Math.RootLoci.Motivic.Abstract

Degree MultiLam Source # 
Instance details

Defined in Math.RootLoci.Motivic.Abstract

Associated Types

type MultiDegree MultiLam Source #

Psi MultiLam SingleLam Source # 
Instance details

Defined in Math.RootLoci.Motivic.Abstract

SingleToMulti SingleLam MultiLam Source # 
Instance details

Defined in Math.RootLoci.Motivic.Abstract

Theta (ZMod MultiLam) Source # 
Instance details

Defined in Math.RootLoci.Motivic.Abstract

Permute (ZMod MultiLam) Source # 
Instance details

Defined in Math.RootLoci.Motivic.Abstract

PsiEvenOdd (ZMod MultiLam) Source # 
Instance details

Defined in Math.RootLoci.Motivic.Abstract

(Eq c, Num c) => Omega123 (FreeMod c MultiLam) Source # 
Instance details

Defined in Math.RootLoci.Motivic.Abstract

(Eq c, Num c) => Omega (FreeMod c MultiLam) Source # 
Instance details

Defined in Math.RootLoci.Motivic.Abstract

(Eq c, Num c) => Cross (FreeMod c MultiLam) Source # 
Instance details

Defined in Math.RootLoci.Motivic.Abstract

(Eq c, Num c) => SuperNormalize (FreeMod c MultiLam) Source # 
Instance details

Defined in Math.RootLoci.Motivic.Abstract

(Eq c, Num c) => Normalize (FreeMod c MultiLam) Source # 
Instance details

Defined in Math.RootLoci.Motivic.Abstract

(Eq c, Num c) => Psi (FreeMod c MultiLam) (FreeMod c SingleLam) Source # 
Instance details

Defined in Math.RootLoci.Motivic.Abstract

(Eq c, Num c) => SingleToMulti (FreeMod c SingleLam) (FreeMod c MultiLam) Source # 
Instance details

Defined in Math.RootLoci.Motivic.Abstract

type MultiDegree MultiLam Source # 
Instance details

Defined in Math.RootLoci.Motivic.Abstract

class Shift a where Source #

Shift de Bruijn levels

Methods

shift :: Int -> a -> a Source #

Instances

Instances details
Shift Multi Source # 
Instance details

Defined in Math.RootLoci.Motivic.Abstract

Methods

shift :: Int -> Multi -> Multi Source #

Shift Single Source # 
Instance details

Defined in Math.RootLoci.Motivic.Abstract

Methods

shift :: Int -> Single -> Single Source #

Shift Var Source # 
Instance details

Defined in Math.RootLoci.Motivic.Abstract

Methods

shift :: Int -> Var -> Var Source #

class Rename a where Source #

Rename variables

Methods

rename :: (Var -> Var) -> a -> a Source #

Instances

Instances details
Rename Multi Source # 
Instance details

Defined in Math.RootLoci.Motivic.Abstract

Methods

rename :: (Var -> Var) -> Multi -> Multi Source #

Rename Single Source # 
Instance details

Defined in Math.RootLoci.Motivic.Abstract

Methods

rename :: (Var -> Var) -> Single -> Single Source #

Rename Var Source # 
Instance details

Defined in Math.RootLoci.Motivic.Abstract

Methods

rename :: (Var -> Var) -> Var -> Var Source #

Rename (Var, Int) Source # 
Instance details

Defined in Math.RootLoci.Motivic.Abstract

Methods

rename :: (Var -> Var) -> (Var, Int) -> (Var, Int) Source #

exponentOf :: Var -> Single -> Int Source #

Extract the exponent of a given variable

exponentVectorOf :: Var -> Multi -> [Int] Source #

Extract the exponent vector of a given variable

normalizeWithExpo :: (Rename term, Normalize term, Ord expo) => (expo -> Bool) -> (Var -> term -> expo) -> (Bindings, term) -> (Bindings, term) Source #