*-Combinat Sharing algebraic combinatorics since 2000€¦ · *-Combinat in a...
Transcript of *-Combinat Sharing algebraic combinatorics since 2000€¦ · *-Combinat in a...
*-Combinat in a nutshell Demonstration History and development model Future directions
∗-CombinatSharing algebraic combinatorics since 2000
Nicolas M. Thiery
Laboratoire de Mathematiques d’Orsay, Universite Paris Sud
Sage Days 20, MathInfo, 22nd of February 2010http://mupad-combinat.sf.net/http://combinat.sagemath.org/
α∨0
α∨1
α∨2
*-Combinat in a nutshell Demonstration History and development model Future directions
*-Combinat
An open-source frameworkFor computer explorationIn algebraic combinatorics
*-Combinat in a nutshell
Demonstration
History and development model
Future directions
*-Combinat in a nutshell Demonstration History and development model Future directions
*-Combinat in a nutshell
Mission statement: To improve Sage as an extensible toolboxfor computer exploration in combinatorics, and foster codesharing among researchers in this area
*-Combinat in a nutshell Demonstration History and development model Future directions
*-Combinat in a nutshell
• 50+ research articles
• Sponsors: ANR, PEPS, NSF, Google Summer of Code
• Sage: 300 tickets / 100k lines integrated in Sage
• MuPAD: 115k lines of MuPAD, 15k lines of C++, 32k lines oftests, 600 pages of doc
• A community:
Nicolas Borie, Daniel Bump, Jason Bandlow, AdrienBoussicault, Vincent Delecroix, Paul-Olivier Dehaye,Tom Denton, Dan Drake, Teresa Gomez Diaz, Mike Hansen, RalfHemmecke, Florent Hivert, Brant Jones, Sebastien Labbe, YannLaigle-Chapuy, Andrew Mathas, Gregg Musiker, Steven Pon,Franco Saliola, Anne Schilling, Mark Shimozono, Nicolas M.Thiery, Justin Walker, Qiang Wang, Mike Zabrocki, ... And you ?
*-Combinat in a nutshell Demonstration History and development model Future directions
It all started there
*-Combinat in a nutshell Demonstration History and development model Future directions
*-Combinat: 1
+1 = 1.1
Nicolas
20k
Florent
20k
2 devs20k
• 95% of development effort are generic
• Opportunity for sharing and mutualisation
*-Combinat in a nutshell Demonstration History and development model Future directions
*-Combinat: 1+1 =
1.1
Nicolas
20k
Florent
20k
2 devs20k
• 95% of development effort are generic
• Opportunity for sharing and mutualisation
*-Combinat in a nutshell Demonstration History and development model Future directions
*-Combinat: 1+1 =
1.1
Nicolas
20k
Florent
20k
2 devs20k
• 95% of development effort are generic
• Opportunity for sharing and mutualisation
*-Combinat in a nutshell Demonstration History and development model Future directions
*-Combinat: 1+1 = 1.1
Nicolas
1k
Florent
1k
2 devs20k
• 95% of development effort are generic
• Opportunity for sharing and mutualisation
*-Combinat in a nutshell Demonstration History and development model Future directions
*-Combinat: 1+1 = 1.1
Nicolas
1k
Florent
1k
2 devs20k
• 95% of development effort are generic
• Opportunity for sharing and mutualisation
*-Combinat in a nutshell Demonstration History and development model Future directions
*-Combinat: 1+1 = 1.1
Nicolas
1k
Florent
1k
2 devs20k
• 95% of development effort are generic
• Opportunity for sharing and mutualisation
*-Combinat in a nutshell Demonstration History and development model Future directions
Trivial code that solves trivial problems is precious
Example
Computing the length of a permutation
• 5 minutes to write it down
• 15 minutes debugging later (forgotten base case(s))
• What happens if you share:• force yourself to cleanup the code, organize it, write tests, and
documentation• others will review it (better usability)• others will reuse it (includes yourself)• others will optimize it (n log n algorithm)• others will generalize it (any Coxeter group)
*-Combinat in a nutshell Demonstration History and development model Future directions
Trivial code that solves trivial problems is precious
Example
Computing the length of a permutation
• 5 minutes to write it down
• 15 minutes debugging later (forgotten base case(s))
• What happens if you share:• force yourself to cleanup the code, organize it, write tests, and
documentation• others will review it (better usability)• others will reuse it (includes yourself)• others will optimize it (n log n algorithm)• others will generalize it (any Coxeter group)
*-Combinat in a nutshell Demonstration History and development model Future directions
Trivial code that solves trivial problems is precious
Example
Computing the length of a permutation
• 5 minutes to write it down
• 15 minutes debugging later (forgotten base case(s))
• What happens if you share:• force yourself to cleanup the code, organize it, write tests, and
documentation• others will review it (better usability)• others will reuse it (includes yourself)• others will optimize it (n log n algorithm)• others will generalize it (any Coxeter group)
*-Combinat in a nutshell Demonstration History and development model Future directions
Trivial code that solves trivial problems is precious
Example
Computing the length of a permutation
• 5 minutes to write it down
• 15 minutes debugging later (forgotten base case(s))
• What happens if you share:• force yourself to cleanup the code, organize it, write tests, and
documentation• others will review it (better usability)• others will reuse it (includes yourself)• others will optimize it (n log n algorithm)• others will generalize it (any Coxeter group)
*-Combinat in a nutshell Demonstration History and development model Future directions
Trivial code that solves trivial problems is precious
Example
Computing the length of a permutation
• 5 minutes to write it down
• 15 minutes debugging later (forgotten base case(s))
• What happens if you share:• force yourself to cleanup the code, organize it, write tests, and
documentation• others will review it (better usability)• others will reuse it (includes yourself)• others will optimize it (n log n algorithm)• others will generalize it (any Coxeter group)
*-Combinat in a nutshell Demonstration History and development model Future directions
Trivial code that solves trivial problems is precious
Example
Computing the length of a permutation
• 5 minutes to write it down
• 15 minutes debugging later (forgotten base case(s))
• What happens if you share:• force yourself to cleanup the code, organize it, write tests, and
documentation• others will review it (better usability)• others will reuse it (includes yourself)• others will optimize it (n log n algorithm)• others will generalize it (any Coxeter group)
*-Combinat in a nutshell Demonstration History and development model Future directions
Trivial code that solves trivial problems is precious
Example
Computing the length of a permutation
• 5 minutes to write it down
• 15 minutes debugging later (forgotten base case(s))
• What happens if you share:• force yourself to cleanup the code, organize it, write tests, and
documentation• others will review it (better usability)• others will reuse it (includes yourself)• others will optimize it (n log n algorithm)• others will generalize it (any Coxeter group)
*-Combinat in a nutshell Demonstration History and development model Future directions
Trivial code that solves trivial problems is precious
Example
Computing the length of a permutation
• 5 minutes to write it down
• 15 minutes debugging later (forgotten base case(s))
• What happens if you share:• force yourself to cleanup the code, organize it, write tests, and
documentation• others will review it (better usability)• others will reuse it (includes yourself)• others will optimize it (n log n algorithm)• others will generalize it (any Coxeter group)
*-Combinat in a nutshell Demonstration History and development model Future directions
Trivial code that solves trivial problems is precious
Example
Computing the length of a permutation
• 5 minutes to write it down
• 15 minutes debugging later (forgotten base case(s))
• What happens if you share:• force yourself to cleanup the code, organize it, write tests, and
documentation• others will review it (better usability)• others will reuse it (includes yourself)• others will optimize it (n log n algorithm)• others will generalize it (any Coxeter group)
*-Combinat in a nutshell Demonstration History and development model Future directions
To program or not program?
Example
A real-life research session
A typical computation in algebraic combinatorics involves
• A bit of standard combinatorics
• A bit of standard linear algebra
• A bit of standard group theory
• A bit of standard computer algebra
• A bit of standard ...
• And that thin layer of your own magic powder
There is nothing like a complete combinatorics packageI want to be an architect, and focus on my own magic powderBut can I?
*-Combinat in a nutshell Demonstration History and development model Future directions
To program or not program?
Example
A real-life research session
A typical computation in algebraic combinatorics involves
• A bit of standard combinatorics
• A bit of standard linear algebra
• A bit of standard group theory
• A bit of standard computer algebra
• A bit of standard ...
• And that thin layer of your own magic powder
There is nothing like a complete combinatorics packageI want to be an architect, and focus on my own magic powderBut can I?
*-Combinat in a nutshell Demonstration History and development model Future directions
To program or not program?
Example
A real-life research session
A typical computation in algebraic combinatorics involves
• A bit of standard combinatorics
• A bit of standard linear algebra
• A bit of standard group theory
• A bit of standard computer algebra
• A bit of standard ...
• And that thin layer of your own magic powder
There is nothing like a complete combinatorics packageI want to be an architect, and focus on my own magic powderBut can I?
*-Combinat in a nutshell Demonstration History and development model Future directions
To program or not program?
Example
A real-life research session
A typical computation in algebraic combinatorics involves
• A bit of standard combinatorics
• A bit of standard linear algebra
• A bit of standard group theory
• A bit of standard computer algebra
• A bit of standard ...
• And that thin layer of your own magic powder
There is nothing like a complete combinatorics packageI want to be an architect, and focus on my own magic powderBut can I?
*-Combinat in a nutshell Demonstration History and development model Future directions
To program or not program?
Example
A real-life research session
A typical computation in algebraic combinatorics involves
• A bit of standard combinatorics
• A bit of standard linear algebra
• A bit of standard group theory
• A bit of standard computer algebra
• A bit of standard ...
• And that thin layer of your own magic powder
There is nothing like a complete combinatorics packageI want to be an architect, and focus on my own magic powderBut can I?
*-Combinat in a nutshell Demonstration History and development model Future directions
To program or not program?
Example
A real-life research session
A typical computation in algebraic combinatorics involves
• A bit of standard combinatorics
• A bit of standard linear algebra
• A bit of standard group theory
• A bit of standard computer algebra
• A bit of standard ...
• And that thin layer of your own magic powder
There is nothing like a complete combinatorics packageI have to to be an architect, and focus on my own magic powderBut can I?
*-Combinat in a nutshell Demonstration History and development model Future directions
To program or not program?
Example
A real-life research session
A typical computation in algebraic combinatorics involves
• A bit of standard combinatorics
• A bit of standard linear algebra
• A bit of standard group theory
• A bit of standard computer algebra
• A bit of standard ...
• And that thin layer of your own magic powder
There is nothing like a complete combinatorics packageI to be an architect, and focus on my own magic powderBut can I?
*-Combinat in a nutshell Demonstration History and development model Future directions
State of the art in 2000
Algebraic combinatorics packages
• guess, combstruct, gfun, CS (Projet Algo, INRIA)
• SF (Stembridge)
• ACE, µ-EC (Marne-la-Vallee)
• Symmetrica (Bayreuth)
• Rate, ...
Platforms
• Maple / Maxima
• GAP
• Magma
• Axiom / Aldor
• MuPAD
*-Combinat in a nutshell Demonstration History and development model Future directions
State of the art in 2000
Algebraic combinatorics packages
• guess, combstruct, gfun, CS (Projet Algo, INRIA)
• SF (Stembridge)
• ACE, µ-EC (Marne-la-Vallee)
• Symmetrica (Bayreuth)
• Rate, ...
Platforms
• Maple / Maxima
• GAP
• Magma
• Axiom / Aldor
• MuPAD
*-Combinat in a nutshell Demonstration History and development model Future directions
*-Combinat: development strategyIt’s all about sharing and building a community
• Free softwareWhile remaining pragmatic in collaborations
• International and decentralized developmentWarranty of independence
• Developed by researchers, for researchersWith a view toward broad usage
• Core development done by permanent researchersPhD students shall focus on their own needs
• Each line of code justified by a research projectWith a long term vision (agile development)
• Inspiration from computer science:To organize the code and the communityTo put a bit more math in the machine (categories)Programming concepts and methodologies (objects)Cooperative development tools (trac/mercurial/patches/...)
*-Combinat in a nutshell Demonstration History and development model Future directions
*-Combinat: development strategyIt’s all about sharing and building a community
• Free softwareWhile remaining pragmatic in collaborations
• International and decentralized developmentWarranty of independence
• Developed by researchers, for researchersWith a view toward broad usage
• Core development done by permanent researchersPhD students shall focus on their own needs
• Each line of code justified by a research projectWith a long term vision (agile development)
• Inspiration from computer science:To organize the code and the communityTo put a bit more math in the machine (categories)Programming concepts and methodologies (objects)Cooperative development tools (trac/mercurial/patches/...)
*-Combinat in a nutshell Demonstration History and development model Future directions
*-Combinat: development strategyIt’s all about sharing and building a community
• Free softwareWhile remaining pragmatic in collaborations
• International and decentralized developmentWarranty of independence
• Developed by researchers, for researchersWith a view toward broad usage
• Core development done by permanent researchersPhD students shall focus on their own needs
• Each line of code justified by a research projectWith a long term vision (agile development)
• Inspiration from computer science:To organize the code and the communityTo put a bit more math in the machine (categories)Programming concepts and methodologies (objects)Cooperative development tools (trac/mercurial/patches/...)
*-Combinat in a nutshell Demonstration History and development model Future directions
*-Combinat: development strategyIt’s all about sharing and building a community
• Free softwareWhile remaining pragmatic in collaborations
• International and decentralized developmentWarranty of independence
• Developed by researchers, for researchersWith a view toward broad usage
• Core development done by permanent researchersPhD students shall focus on their own needs
• Each line of code justified by a research projectWith a long term vision (agile development)
• Inspiration from computer science:To organize the code and the communityTo put a bit more math in the machine (categories)Programming concepts and methodologies (objects)Cooperative development tools (trac/mercurial/patches/...)
*-Combinat in a nutshell Demonstration History and development model Future directions
*-Combinat: development strategyIt’s all about sharing and building a community
• Free softwareWhile remaining pragmatic in collaborations
• International and decentralized developmentWarranty of independence
• Developed by researchers, for researchersWith a view toward broad usage
• Core development done by permanent researchersPhD students shall focus on their own needs
• Each line of code justified by a research projectWith a long term vision (agile development)
• Inspiration from computer science:To organize the code and the communityTo put a bit more math in the machine (categories)Programming concepts and methodologies (objects)Cooperative development tools (trac/mercurial/patches/...)
*-Combinat in a nutshell Demonstration History and development model Future directions
*-Combinat: development strategyIt’s all about sharing and building a community
• Free softwareWhile remaining pragmatic in collaborations
• International and decentralized developmentWarranty of independence
• Developed by researchers, for researchersWith a view toward broad usage
• Core development done by permanent researchersPhD students shall focus on their own needs
• Each line of code justified by a research projectWith a long term vision (agile development)
• Inspiration from computer science:To organize the code and the communityTo put a bit more math in the machine (categories)Programming concepts and methodologies (objects)Cooperative development tools (trac/mercurial/patches/...)
*-Combinat in a nutshell Demonstration History and development model Future directions
*-Combinat: development strategyIt’s all about sharing and building a community
• Free softwareWhile remaining pragmatic in collaborations
• International and decentralized developmentWarranty of independence
• Developed by researchers, for researchersWith a view toward broad usage
• Core development done by permanent researchersPhD students shall focus on their own needs
• Each line of code justified by a research projectWith a long term vision (agile development)
• Inspiration from computer science:To organize the code and the communityTo put a bit more math in the machine (categories)Programming concepts and methodologies (objects)Cooperative development tools (trac/mercurial/patches/...)
*-Combinat in a nutshell Demonstration History and development model Future directions
The MuPAD-Combinat team in (full) action
*-Combinat in a nutshell Demonstration History and development model Future directions
*-Combinat
: limits of the model
Nicolas11k
*-Combinat
15 devs100k
MuPAD15 devs1M
SciPi, NumPi, Scientific Python, Atlas, Linbox, GMP, Matplotlib, JMOL, JSMath, ...1k devs10M
Python, IPython, Firefox, Ajax, OpenGL, ...1M devs
*-Combinat in a nutshell Demonstration History and development model Future directions
MuPAD-Combinat: limits of the model
Nicolas11k
MuPAD-Combinat
15 devs100k
MuPAD15 devs1M
SciPi, NumPi, Scientific Python, Atlas, Linbox, GMP, Matplotlib, JMOL, JSMath, ...1k devs10M
Python, IPython, Firefox, Ajax, OpenGL, ...1M devs
*-Combinat in a nutshell Demonstration History and development model Future directions
Scaling further
• Negotiation with the MuPAD team
• 2002 Open source computer algebra workshop
• 2005 SAGE on radar
• 2006-2007 Axiom meetings → Aldor-Combinat
• 2007 Mike Hansen on radar
• 2008 February SAGE days 7
• 2008 June: let’s join forces with Sage
• 2008 September: MuPAD bought out by Mathworks
• 2008 October: SAGE days 10
• 2009 July: *-Combinat 2009
• 2010 January: SAGE days 20!
*-Combinat in a nutshell Demonstration History and development model Future directions
Scaling further
• Negotiation with the MuPAD team
• 2002 Open source computer algebra workshop
• 2005 SAGE on radar
• 2006-2007 Axiom meetings → Aldor-Combinat
• 2007 Mike Hansen on radar
• 2008 February SAGE days 7
• 2008 June: let’s join forces with Sage
• 2008 September: MuPAD bought out by Mathworks
• 2008 October: SAGE days 10
• 2009 July: *-Combinat 2009
• 2010 January: SAGE days 20!
*-Combinat in a nutshell Demonstration History and development model Future directions
Scaling further
• Negotiation with the MuPAD team
• 2002 Open source computer algebra workshop
• 2005 SAGE on radar
• 2006-2007 Axiom meetings → Aldor-Combinat
• 2007 Mike Hansen on radar
• 2008 February SAGE days 7
• 2008 June: let’s join forces with Sage
• 2008 September: MuPAD bought out by Mathworks
• 2008 October: SAGE days 10
• 2009 July: *-Combinat 2009
• 2010 January: SAGE days 20!
*-Combinat in a nutshell Demonstration History and development model Future directions
Scaling further
• Negotiation with the MuPAD team
• 2002 Open source computer algebra workshop
• 2005 SAGE on radar
• 2006-2007 Axiom meetings → Aldor-Combinat
• 2007 Mike Hansen on radar
• 2008 February SAGE days 7
• 2008 June: let’s join forces with Sage
• 2008 September: MuPAD bought out by Mathworks
• 2008 October: SAGE days 10
• 2009 July: *-Combinat 2009
• 2010 January: SAGE days 20!
*-Combinat in a nutshell Demonstration History and development model Future directions
Scaling further
• Negotiation with the MuPAD team
• 2002 Open source computer algebra workshop
• 2005 SAGE on radar
• 2006-2007 Axiom meetings → Aldor-Combinat
• 2007 Mike Hansen on radar
• 2008 February SAGE days 7
• 2008 June: let’s join forces with Sage
• 2008 September: MuPAD bought out by Mathworks
• 2008 October: SAGE days 10
• 2009 July: *-Combinat 2009
• 2010 January: SAGE days 20!
*-Combinat in a nutshell Demonstration History and development model Future directions
Scaling further
• Negotiation with the MuPAD team
• 2002 Open source computer algebra workshop
• 2005 SAGE on radar
• 2006-2007 Axiom meetings → Aldor-Combinat
• 2007 Mike Hansen on radar
• 2008 February SAGE days 7
• 2008 June: let’s join forces with Sage
• 2008 September: MuPAD bought out by Mathworks
• 2008 October: SAGE days 10
• 2009 July: *-Combinat 2009
• 2010 January: SAGE days 20!
*-Combinat in a nutshell Demonstration History and development model Future directions
Scaling further
• Negotiation with the MuPAD team
• 2002 Open source computer algebra workshop
• 2005 SAGE on radar
• 2006-2007 Axiom meetings → Aldor-Combinat
• 2007 Mike Hansen on radar
• 2008 February SAGE days 7
• 2008 June: let’s join forces with Sage
• 2008 September: MuPAD bought out by Mathworks
• 2008 October: SAGE days 10
• 2009 July: *-Combinat 2009
• 2010 January: SAGE days 20!
*-Combinat in a nutshell Demonstration History and development model Future directions
Scaling further
• Negotiation with the MuPAD team
• 2002 Open source computer algebra workshop
• 2005 SAGE on radar
• 2006-2007 Axiom meetings → Aldor-Combinat
• 2007 Mike Hansen on radar
• 2008 February SAGE days 7
• 2008 June: let’s join forces with Sage
• 2008 September: MuPAD bought out by Mathworks
• 2008 October: SAGE days 10
• 2009 July: *-Combinat 2009
• 2010 January: SAGE days 20!
*-Combinat in a nutshell Demonstration History and development model Future directions
Scaling further
• Negotiation with the MuPAD team
• 2002 Open source computer algebra workshop
• 2005 SAGE on radar
• 2006-2007 Axiom meetings → Aldor-Combinat
• 2007 Mike Hansen on radar
• 2008 February SAGE days 7
• 2008 June: let’s join forces with Sage
• 2008 September: MuPAD bought out by Mathworks
• 2008 October: SAGE days 10
• 2009 July: *-Combinat 2009
• 2010 January: SAGE days 20!
*-Combinat in a nutshell Demonstration History and development model Future directions
Scaling further
• Negotiation with the MuPAD team
• 2002 Open source computer algebra workshop
• 2005 SAGE on radar
• 2006-2007 Axiom meetings → Aldor-Combinat
• 2007 Mike Hansen on radar
• 2008 February SAGE days 7
• 2008 June: let’s join forces with Sage
• 2008 September: MuPAD bought out by Mathworks
• 2008 October: SAGE days 10
• 2009 July: *-Combinat 2009
• 2010 January: SAGE days 20!
*-Combinat in a nutshell Demonstration History and development model Future directions
Scaling further
• Negotiation with the MuPAD team
• 2002 Open source computer algebra workshop
• 2005 SAGE on radar
• 2006-2007 Axiom meetings → Aldor-Combinat
• 2007 Mike Hansen on radar
• 2008 February SAGE days 7
• 2008 June: let’s join forces with Sage
• 2008 September: MuPAD bought out by Mathworks
• 2008 October: SAGE days 10
• 2009 July: *-Combinat 2009
• 2010 January: SAGE days 20!
*-Combinat in a nutshell Demonstration History and development model Future directions
Nicolas11k
Sage-Combinat25 devs100k
Sage200 devs1M
SciPi, NumPi, Scientific Python, Atlas, Linbox, GMP, Matplotlib, JMOL, JSMath, ...1k devs10M
Python, IPython, Firefox, Ajax, OpenGL, ...1M devs
*-Combinat in a nutshell Demonstration History and development model Future directions
Nicolas11k
Sage-Combinat25 devs100k
Sage200 devs1M
GAP, Maxima, Singular, ...
2M
SciPi, NumPi, Scientific Python, Atlas, Linbox, GMP, Matplotlib, JMOL, JSMath, ...1k devs10M
Python, IPython, Firefox, Ajax, OpenGL, ...1M devs
*-Combinat in a nutshell Demonstration History and development model Future directions
Nicolas11k
Sage-Combinat25 devs100k
Sage200 devs1M
GAP, Maxima, Singular, ...
2M
SciPi, NumPi, Scientific Python, Atlas, Linbox, GMP, Matplotlib, JMOL, JSMath, ...1k devs10M
Python, IPython, Firefox, Ajax, OpenGL, ...1M devs
*-Combinat in a nutshell Demonstration History and development model Future directions
Nicolas11k
Sage-Combinat25 devs100k
Sage200 devs1M
GAP, Maxima, Singular, ...
2M
SciPi, NumPi, Scientific Python, Atlas, Linbox, GMP, Matplotlib, JMOL, JSMath, ...1k devs10M
Python, IPython, Firefox, Ajax, OpenGL, ...1M devs
*-Combinat in a nutshell Demonstration History and development model Future directions
Nicolas Borie11k
Sage-Combinat25 devs100k
Sage200 devs1M
GAP, Maxima, Singular, ...
2M
SciPi, NumPi, Scientific Python, Atlas, Linbox, GMP, Matplotlib, JMOL, JSMath, ...1k devs10M
Python, IPython, Firefox, Ajax, OpenGL, ...1M devs
*-Combinat in a nutshell Demonstration History and development model Future directions
On the shoulders of a giant
Nicolas Borie11k
Sage-Combinat25 devs100k
Sage200 devs1M
GAP, Maxima, Singular, ...
2M
SciPi, NumPi, Scientific Python, Atlas, Linbox, GMP, Matplotlib, JMOL, JSMath, ...1k devs10M
Python, IPython, Firefox, Ajax, OpenGL, ...1M devs
*-Combinat in a nutshell Demonstration History and development model Future directions
The Sage-Combinat team in action
*-Combinat in a nutshell Demonstration History and development model Future directions
∗-Combinat building steps (combinatorics)
Concentrate on the foundations
Architecture tools, like:
• Coercion
• Categories (generic programming)
• Caching (trivial to use yet fine grained)
*-Combinat in a nutshell Demonstration History and development model Future directions
∗-Combinat building steps (combinatorics)
• Support tools for combinatorics:• Counting functions / generating series
(lazy Karatsuba product, plethysm, implicit equation)• Data structures for combinatorial objects
(partitions, trees, tableaux, permutations, graphs, ...)• Combinatorial Factories• Uniformization of enumerated sets
• Generic enumeration kernels:• Decomposable classes / species• Linear extensions of a poset• Lexicographic enumeration of list of integers• Integral points of a polyhedron• Objects mod a group action
• Posets, ...
• Words, ...
• Tilings, ...
*-Combinat in a nutshell Demonstration History and development model Future directions
∗-Combinat building steps (combinatorics)
• Support tools for combinatorics:• Counting functions / generating series
(lazy Karatsuba product, plethysm, implicit equation)• Data structures for combinatorial objects
(partitions, trees, tableaux, permutations, graphs, ...)• Combinatorial Factories• Uniformization of enumerated sets
• Generic enumeration kernels:• Decomposable classes / species• Linear extensions of a poset• Lexicographic enumeration of list of integers• Integral points of a polyhedron• Objects mod a group action
• Posets, ...
• Words, ...
• Tilings, ...
*-Combinat in a nutshell Demonstration History and development model Future directions
∗-Combinat building steps (combinatorics)
• Support tools for combinatorics:• Counting functions / generating series
(lazy Karatsuba product, plethysm, implicit equation)• Data structures for combinatorial objects
(partitions, trees, tableaux, permutations, graphs, ...)• Combinatorial Factories• Uniformization of enumerated sets
• Generic enumeration kernels:• Decomposable classes / species• Linear extensions of a poset• Lexicographic enumeration of list of integers• Integral points of a polyhedron• Objects mod a group action
• Posets, ...
• Words, ...
• Tilings, ...
*-Combinat in a nutshell Demonstration History and development model Future directions
∗-Combinat building steps (combinatorics)
• Support tools for combinatorics:• Counting functions / generating series
(lazy Karatsuba product, plethysm, implicit equation)• Data structures for combinatorial objects
(partitions, trees, tableaux, permutations, graphs, ...)• Combinatorial Factories• Uniformization of enumerated sets
• Generic enumeration kernels:• Decomposable classes / species• Linear extensions of a poset• Lexicographic enumeration of list of integers• Integral points of a polyhedron• Objects mod a group action
• Posets, ...
• Words, ...
• Tilings, ...
*-Combinat in a nutshell Demonstration History and development model Future directions
∗-Combinat building steps (combinatorics)
• Support tools for combinatorics:• Counting functions / generating series
(lazy Karatsuba product, plethysm, implicit equation)• Data structures for combinatorial objects
(partitions, trees, tableaux, permutations, graphs, ...)• Combinatorial Factories• Uniformization of enumerated sets
• Generic enumeration kernels:• Decomposable classes / species• Linear extensions of a poset• Lexicographic enumeration of list of integers• Integral points of a polyhedron• Objects mod a group action
• Posets, ...
• Words, ...
• Tilings, ...
*-Combinat in a nutshell Demonstration History and development model Future directions
*-Combinat building steps (algebra)
• FreeModule(set, Coefficient Ring)Categories: AlgebraWithBasis and friendsSupport for seamless linear algebraHom(..., ...)Unification with polynomials, ...
• Spaces with several representations, Bases changes...
• Functors: tensor products, tensor, exterior, and symmetricalgebra, submodules, quotients, ...
• Generic Grobner/Involutive elimination tools
• Classical Hopf algebras (NCSF, polynomials)
• Representation theory of algebras
• Root systems, Coxeter groups, Hecke algebras
• Semigroups
• Operads
*-Combinat in a nutshell Demonstration History and development model Future directions
*-Combinat building steps (algebra)
• FreeModule(set, Coefficient Ring)Categories: AlgebraWithBasis and friendsSupport for seamless linear algebraHom(..., ...)Unification with polynomials, ...
• Spaces with several representations, Bases changes...
• Functors: tensor products, tensor, exterior, and symmetricalgebra, submodules, quotients, ...
• Generic Grobner/Involutive elimination tools
• Classical Hopf algebras (NCSF, polynomials)
• Representation theory of algebras
• Root systems, Coxeter groups, Hecke algebras
• Semigroups
• Operads
*-Combinat in a nutshell Demonstration History and development model Future directions
*-Combinat building steps (algebra)
• FreeModule(set, Coefficient Ring)Categories: AlgebraWithBasis and friendsSupport for seamless linear algebraHom(..., ...)Unification with polynomials, ...
• Spaces with several representations, Bases changes...
• Functors: tensor products, tensor, exterior, and symmetricalgebra, submodules, quotients, ...
• Generic Grobner/Involutive elimination tools
• Classical Hopf algebras (NCSF, polynomials)
• Representation theory of algebras
• Root systems, Coxeter groups, Hecke algebras
• Semigroups
• Operads
*-Combinat in a nutshell Demonstration History and development model Future directions
*-Combinat building steps (algebra)
• FreeModule(set, Coefficient Ring)Categories: AlgebraWithBasis and friendsSupport for seamless linear algebraHom(..., ...)Unification with polynomials, ...
• Spaces with several representations, Bases changes...
• Functors: tensor products, tensor, exterior, and symmetricalgebra, submodules, quotients, ...
• Generic Grobner/Involutive elimination tools
• Classical Hopf algebras (NCSF, polynomials)
• Representation theory of algebras
• Root systems, Coxeter groups, Hecke algebras
• Semigroups
• Operads
*-Combinat in a nutshell Demonstration History and development model Future directions
*-Combinat building steps (algebra)
• FreeModule(set, Coefficient Ring)Categories: AlgebraWithBasis and friendsSupport for seamless linear algebraHom(..., ...)Unification with polynomials, ...
• Spaces with several representations, Bases changes...
• Functors: tensor products, tensor, exterior, and symmetricalgebra, submodules, quotients, ...
• Generic Grobner/Involutive elimination tools
• Classical Hopf algebras (NCSF, polynomials)
• Representation theory of algebras
• Root systems, Coxeter groups, Hecke algebras
• Semigroups
• Operads
*-Combinat in a nutshell Demonstration History and development model Future directions
*-Combinat building steps (algebra)
• FreeModule(set, Coefficient Ring)Categories: AlgebraWithBasis and friendsSupport for seamless linear algebraHom(..., ...)Unification with polynomials, ...
• Spaces with several representations, Bases changes...
• Functors: tensor products, tensor, exterior, and symmetricalgebra, submodules, quotients, ...
• Generic Grobner/Involutive elimination tools
• Classical Hopf algebras (NCSF, polynomials)
• Representation theory of algebras
• Root systems, Coxeter groups, Hecke algebras
• Semigroups
• Operads
*-Combinat in a nutshell Demonstration History and development model Future directions
*-Combinat building steps (algebra)
• FreeModule(set, Coefficient Ring)Categories: AlgebraWithBasis and friendsSupport for seamless linear algebraHom(..., ...)Unification with polynomials, ...
• Spaces with several representations, Bases changes...
• Functors: tensor products, tensor, exterior, and symmetricalgebra, submodules, quotients, ...
• Generic Grobner/Involutive elimination tools
• Classical Hopf algebras (NCSF, polynomials)
• Representation theory of algebras
• Root systems, Coxeter groups, Hecke algebras
• Semigroups
• Operads
*-Combinat in a nutshell Demonstration History and development model Future directions
*-Combinat building steps (algebra)
• FreeModule(set, Coefficient Ring)Categories: AlgebraWithBasis and friendsSupport for seamless linear algebraHom(..., ...)Unification with polynomials, ...
• Spaces with several representations, Bases changes...
• Functors: tensor products, tensor, exterior, and symmetricalgebra, submodules, quotients, ...
• Generic Grobner/Involutive elimination tools
• Classical Hopf algebras (NCSF, polynomials)
• Representation theory of algebras
• Root systems, Coxeter groups, Hecke algebras
• Semigroups
• Operads
*-Combinat in a nutshell Demonstration History and development model Future directions
*-Combinat building steps (algebra)
• FreeModule(set, Coefficient Ring)Categories: AlgebraWithBasis and friendsSupport for seamless linear algebraHom(..., ...)Unification with polynomials, ...
• Spaces with several representations, Bases changes...
• Functors: tensor products, tensor, exterior, and symmetricalgebra, submodules, quotients, ...
• Generic Grobner/Involutive elimination tools
• Classical Hopf algebras (NCSF, polynomials)
• Representation theory of algebras
• Root systems, Coxeter groups, Hecke algebras
• Semigroups
• Operads
*-Combinat in a nutshell Demonstration History and development model Future directions
Want to join?
combinat.sagemath.org
11⊗111
11⊗112
11⊗122
11⊗113
11⊗123
11⊗223
11⊗133
12⊗223
11⊗23311⊗222
22⊗223
12⊗233
11⊗333
12⊗222
22⊗233
12⊗333
22⊗222 22⊗333
13⊗333
23⊗333 33⊗333
1
1
2
1
2
1
1
2
1
2
1
1
2
1
2
1
2
2
1
2
1
1
2
2
1
2
2 2
1
2
α∨0
α∨1
α∨2
21 ⊗ 1
21 ⊗ 2
31 ⊗ 1
21 ⊗ 3
31 ⊗ 2
31 ⊗ 3
32 ⊗ 2
32 ⊗ 1
32 ⊗ 3
1 2
2 1
2 1
0
0
1
0
2
0