*-Combinat Sharing algebraic combinatorics since 2000€¦ · *-Combinat in a...

Post on 14-Oct-2020

8 views 0 download

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