-- Copyright 2009 Mikael Vejdemo Johansson -- Released under a BSD license module Math.Operad (module Math.Operad.PPrint, #if defined USE_MAPOPERAD module Math.Operad.MapOperad, #elif defined USE_POLYBAG module Math.Operad.PolyBag, #else module Math.Operad.MapOperad, #endif module Math.Operad.OrderedTree, module Math.Operad.OperadGB, m12_3, m13_2, m1_23, m2, m3, yTree, lgb, Tree, FreeOperad) where import Math.Operad.OperadGB import Math.Operad.OrderedTree import Math.Operad.PPrint #if defined USE_MAPOPERAD import Math.Operad.MapOperad #elif defined USE_POLYBAG import Math.Operad.PolyBag #else import Math.Operad.MapOperad #endif type Tree = DecoratedTree Integer type FreeOperad a = OperadElement a Rational PathLex -- ** Examples and useful predefined operad elements. -- | The element m2(m2(1,2),3) m12_3 :: DecoratedTree Integer m12_3 = symmetricCompose 1 [1,2,3] (corolla 2 [1,2]) (corolla 2 [1,2]) -- | The element m2(m2(1,3),2) m13_2 :: DecoratedTree Integer m13_2 = symmetricCompose 1 [1,3,2] (corolla 2 [1,2]) (corolla 2 [1,2]) -- | The element m2(1,m2(2,3)) m1_23 :: DecoratedTree Integer m1_23 = symmetricCompose 2 [1,2,3] (corolla 2 [1,2]) (corolla 2 [1,2]) -- | The element m2(1,2) m2 :: DecoratedTree Integer m2 = corolla 2 [1,2] -- | The element m3(1,2,3) m3 :: DecoratedTree Integer m3 = corolla 3 [1,2,3] -- | The element m2(m2(1,2),m2(3,4)) yTree :: DecoratedTree Integer yTree = nsCompose 1 (nsCompose 2 m2 m2) m2 -- The Lie operad example computation lo1 :: OperadElement Integer Rational PathLex lo1 = oet m12_3 lo2 :: OperadElement Integer Rational PathLex lo2 = oet m13_2 lo3 :: OperadElement Integer Rational PathLex lo3 = oet m1_23 -- | The list of operad elements consisting of 'm12_3'-'m13_2'-'m1_23'. This generates the -- ideal of relations for the operad Lie. lgb :: [OperadElement Integer Rational PathLex] lgb = [lo1 - lo2 - lo3]