Safe Haskell | None |
---|---|
Language | Haskell2010 |
The abstract motivic algorithm
See: B. Komuves: Motivic characteristic classes of discriminant strata
TODO: caching of results (otherwise it is very slow)
Synopsis
- symn :: Num c => Dim -> FreeMod c SingleLam
- open :: Dim -> ZMod SingleLam
- zeros :: Int -> ZMod MultiLam
- xlam :: Partition -> ZMod SingleLam
- dvec :: [Dim] -> ZMod MultiLam
- dvecSorted :: [Dim] -> ZMod MultiLam
- newtype Var = DeBruijn Int
- newtype Bindings = Bindings [Dim]
- numberOfBoundVariables :: Bindings -> Int
- dimensionTable :: Bindings -> Map Var Dim
- newtype Single = Single [(Var, Int)]
- unSingle :: Single -> [(Var, Int)]
- newtype Multi = Multi [Single]
- data SingleLam = SingleLam !Bindings !Single
- data MultiLam = MultiLam !Bindings !Multi
- class Shift a where
- class Rename a where
- exponentOf :: Var -> Single -> Int
- exponentVectorOf :: Var -> Multi -> [Int]
- normalizeWithExpo :: (Rename term, Normalize term, Ord expo) => (expo -> Bool) -> (Var -> term -> expo) -> (Bindings, term) -> (Bindings, term)
The abstract algorithm
dvecSorted :: [Dim] -> ZMod MultiLam Source #
The open stratum D(n1,n2,...), assuming n1 >= n2 >= n3 >= ...
Data types and instances
A variable, implemented as a de Bruijn level (indexing starts from 0)
We use de Bruijn levels to index the bound variables, and ecah bound variables has a dimension
numberOfBoundVariables :: Bindings -> Int Source #
An expression living on Sym^n(X)
, with free variables
Instances
Eq Single Source # | |
Ord Single Source # | |
Show Single Source # | |
Pretty Single Source # | |
Defined in Math.RootLoci.Motivic.Abstract | |
Omega Single Source # | |
Normalize Single Source # | |
Empty Single Source # | |
Defined in Math.RootLoci.Motivic.Abstract | |
Rename Single Source # | |
Shift Single Source # | |
Psi Multi Single Source # | |
SingleToMulti Single Multi Source # | |
Defined in Math.RootLoci.Motivic.Abstract singleToMulti :: Single -> Multi Source # |
An expression living on Sym^{n_1}(X) x ... x Sym^{n_r}(X)
, with free variables
Instances
Eq Multi Source # | |
Ord Multi Source # | |
Show Multi Source # | |
Pretty Multi Source # | |
Defined in Math.RootLoci.Motivic.Abstract | |
Theta Multi Source # | |
Permute Multi Source # | |
Defined in Math.RootLoci.Motivic.Abstract | |
ExtendToCommonSize Multi Source # | |
Defined in Math.RootLoci.Motivic.Abstract | |
PsiEvenOdd Multi Source # | |
Defined in Math.RootLoci.Motivic.Abstract psiEvenOdd :: Multi -> Multi Source # | |
Omega123 Multi Source # | |
Omega Multi Source # | |
Cross Multi Source # | |
SuperNormalize Multi Source # | |
Defined in Math.RootLoci.Motivic.Abstract superNormalize :: Multi -> Multi Source # | |
Normalize Multi Source # | |
Empty Multi Source # | |
Defined in Math.RootLoci.Motivic.Abstract | |
Rename Multi Source # | |
Shift Multi Source # | |
Psi Multi Single Source # | |
SingleToMulti Single Multi Source # | |
Defined in Math.RootLoci.Motivic.Abstract singleToMulti :: Single -> Multi Source # |
A lambda expression living on Sym^n(X)
, with variables bound to Sym^d(X)
with different dimensions
Instances
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