SAGE-COMBINAT Sage Sharing combinatorics software since 2000 free open source math software .org combinat.sagemath.org

Why contribute to mathematical software? Mission statement SAGE-COMBINAT in action∗ • Computer exploration: Research in (algebraic) combinatorics “To improve the open source mathematical system Enumerative combinatorics: benefits greatly from computer aided exploration, which requires SAGE as an extensible toolbox for computer explo- sage: %time Partitions(1000000).cardinality() flexible and powerful tools. ration in (algebraic) combinatorics, and foster code CPU times: user 0.04 s, sys: 0.00 s, total: 0.04 s • Pooling and networking: Sharing code with a broader community Wall time: 0.04 s sharing between researchers in this area”. 14716849863 ... one thousand digits ... 67104673818 increases productivity, facilitates communication, and fosters inter- national and cross-disciplinary collaborations. Try it! sage: BinaryTrees = CombinatorialSpecies() sage: Leaf = SingletonSpecies() • Dissemination: Sharing code increases our visibility, spreads our Unless you need the latest features, you can simply: sage: BinaryTrees.define(Leaf+(BinaryTrees*BinaryTrees)) research results to other scientific areas, and benefits education. sage: BinaryTrees.generating_series() http://sagenb.sagemath.org/ • Use SAGE online x + xˆ2 + 2*xˆ3 + 5*xˆ4 + 14*xˆ5 + 42*xˆ6 + 132*xˆ7 + O(xˆ8) Why SAGE? • Install SAGE: http://sagemath.org/ Words: sage: m = WordMorphism(’a->acabb,b->bcacacbb,c->baba’) • SAGE aims at “creating a viable free open source alternative to AGE OMBINAT sage: m.fixed_point(’a’) Magma, , Mathematica, and Matlab”, and indeed goes a S -C facts word: acabbbabaacabbbcacacbbbcacacbbbcacacbbac... long way toward this aim. • 2000: Born by merging the projects ACE, µ-EC (Marne-la-Vallee),´ Lattice points of a polytope (using PALP and J-MOL): ER U • SAGE covers a large spectrum of mathematics which is essential for CS (Nancy, LaBRI, LRI), P M VAR (Lyon), and the combina- sage: A=random_matrix(ZZ,3,6,x=7) combinatorics: linear algebra, (skew) commutative algebra, sym- torics library of MUPAD: mupad-combinat.sf.net sage: L=LatticePolytope(A) bolic computation, solvers, groups, graphs, polytopes, ... • 2008: Migration to SAGE sage: L.plot3d()# cross your eyes for3D! • SAGE can be used on most platforms, including ,MAC OS, • MUPAD: 600 classes, 5000 methods, 160k lines of code+doc+tests WINDOWS, or even ANDROID and IOS smart-phones and tablets. • SAGE: 300 tickets (+200 in progress), 250k lines of code+doc+tests • SAGE is free and can be used by students and amateurs, or in low- • Sponsors: NSF, ANR, CNRS, Google Summer of Code, and many funded universities in developing countries and elsewhere. universities and institutions around the world • SAGE is based on a standard high quality • 70+ research articles and part of the broader SCIENTIFIC PYTHON ecosystem. • An international community: • SAGE can be fast, thanks to the CYTHON compiler. Barcelona, Bordeaux, Davis, Hannover, Lyon, Marne, Marseille, Minneapolis, Montpellier, Mon- treal, Orsay, Paris, Philadelphia, Rouen, Seattle, Stanford, Sydney, Toronto, Zurich, ... • SAGE reuses the best open source math libraries: GAP, PARI, ... Abbad, Berg, Borie, Bump, Bandlow, Boussicault, Chapoton, Delecroix, Dehaye, Denton, De- Crystal graphs (using GRAPHVIZ): • SAGE has a sound design and development model scouens, Drake, Gomez Diaz, Feray, Hansen, Hemmecke, Hivert, Jones, Labbe,´ Laigle-Chapuy, Laugerotte, Lemeur, Mallet, Mathas, Molinero, Monteil, Musiker, Novelli, Nzeutchap, Pon, sage: B = CrystalOfTableaux([’A’,3],shape=[3,2]) 1

• SAGE uses modern dev tools: GIT/HG, TRAC, ASKBOT, ... Pons, Rubey, Saliola, Schilling, Scrimshaw, Shimozono, Stump, Tevlin, Thiery,´ Walker, Wang, sage: view(B) 1 2 2 3 4 4 2

Zabrocki, ... together with 200+ other SAGE developers ... and you? 1 1 1 2 2 1 1 3 1 1 1 4 4 1 4 4 4 4 • AGE 3 3 S has an active community providing strong technical support. 1 2 3 3 2 3 4 4 1 3 3 1 1 1 1 1 4 4 1 1 2 1 3 3 4 1 2 2 1 1 3 4 3 3 4 1 • AGE 1 1 1 3 We can and do influence S ’s governance. 1 2 2 State of the art 3 3 2 3 2 2 2 2 2 3 2 3 3 1 1 2 2 2 2 4 4 4 4 4 4 2 3 3 1 3 4 3 2 1 2 2 2 2 3 3 1 1 3 3 2 3 4 • AGE 1 2 3 2 2 3 3 3 3 We can and do improve S ’s infrastructure. 1 1 1 3 4 2 3 2 4 1 1 3 4 1 4 4 3 1 1 3 1 2 2 2 2 2 3 3 • Combinatorics: words, permutations, tableaux, trees, species, 2 4 3 3 1 3 4 3 1 1 1 2 1 1 2 3 3 4 1 2 2 3 2 4 1 2 4 4 1 3 3 2 1 2 3 4 1 1 2 2 3 4 3 3 1 3 4 “I certainly did not realise, when the combinat people joined 1 1 1 2 3 3 2 2 2 3 4 graphs, posets, ... 1 2 2 1 3 3 1 2 2 1 2 3 1 3 4 3 1 4 4 1 3 2 4 2 4 2 4 3 3 4 1 3 4 4 4 1 1 2 1 2 2 2 2 2 2 2 2 3 2 2 3 1 3 4 AGE, how useful they and what they do would be for people like 2 1 S 3 2 4 3 3 2 • Algebraic Combinatorics: symmetric functions and generalisa- 2 1 2 3 1 2 3 3 3 3 2 3 3 2 3 3 2 2 4 2 2 4 2 2 4 1 3 3 3 4 4 4 2 me!” John Cremona, number theorist. 1 2 2 1 1 1 1 3 1 1 3 1 1 3 2 1 2 4 tions, Schubert polynomials, Kazhdan-Lusztig polynomials, Hecke 3 3 2 2 2 3 3 3 1 2 4 3 3 3 2 3 3 3 3 1 1 2 4 1 2 4 1 2 4 1 2 4 3 4 4 4 1 1 4 1 algebras, Loday-Ronco algebra, Steenrod algebra, Hopf algebras, 1 2 2 2 1 1 1 4 2 3 AGE 1 1 4 1 1 4 The community in action at S Days 40 3 3 2 3 3 4 4 1 1 4 Cluster algebras, operads, invariants of permutation groups, ... 3 4 3 1

1 1 4 2 4 • Combinatorial representation theory: root systems, Coxeter Operads: 2 groups, (affine) Weyl groups, Weyl characters, tensor product and sage: PL=PreLieOperad(FractionField(PolynomialRing(QQ,’q’))) branching rules for Lie group representations, (affine) crystals, De- sage: -Omega_q_generic(4, produit_std, PL.one(’a’))[-1]

a mazure operators, semigroups, finite dimensional algebras, ... 1q2−1q 2 a 1q a 6 6 a q 2 1 b 5 4 3 2 + 5 4 3 2 b c + 4 3 2 b + 3 2 q +2q +3q +3q +2q+1 b c d q +2q +3q +3q +2q+1 q +q +2q +q+1 q +q +q+1 c • Software included: SYMMETRICA, LRCALC,COXETER3, d c d d CHEVIE,SEMIGROUPE,GRAPHVIZ, ... ∗ Some of the displayed examples use experimental code