https://github.com/math-comp/coq-combi
Algebraic Combinatorics in Coq
https://github.com/math-comp/coq-combi
Last synced: 11 months ago
JSON representation
Algebraic Combinatorics in Coq
- Host: GitHub
- URL: https://github.com/math-comp/coq-combi
- Owner: math-comp
- License: gpl-3.0
- Created: 2014-06-18T12:11:58.000Z (almost 12 years ago)
- Default Branch: master
- Last Pushed: 2024-11-18T21:01:53.000Z (over 1 year ago)
- Last Synced: 2024-11-18T21:50:40.146Z (over 1 year ago)
- Language: Coq
- Homepage:
- Size: 10.6 MB
- Stars: 36
- Watchers: 12
- Forks: 7
- Open Issues: 2
-
Metadata Files:
- Readme: README.md
- License: LICENSE
- Authors: AUTHORS
Awesome Lists containing this project
README
Coq-Combi
=========
Formalisation of (algebraic) combinatorics in Coq/MathComp.
[](https://github.com/math-comp/Coq-Combi/actions/workflows/nix-action-coq8.17-mc2.1.0.yml) [](https://github.com/math-comp/Coq-Combi/actions/workflows/nix-action-coq8.18-mc2.1.0.yml)
[](https://github.com/math-comp/Coq-Combi/actions/workflows/nix-action-coq8.17-mc2.2.0.yml) [](https://github.com/math-comp/Coq-Combi/actions/workflows/nix-action-coq8.18-mc2.2.0.yml) [](https://github.com/math-comp/Coq-Combi/actions/workflows/nix-action-coq8.19-mc2.2.0.yml)
Authors
========================================================================
Florent Hivert
Contributors:
- Thibaut Benjamin (representation theory of the symmetric groups)
- Jean Christophe Filliâtre (Why3 implementation)
- Christine Paulin (SSreflect binding for ALEA + hook length formula)
- Olivier Stietel (hook length formula)
- Cyril Cohen (MathComp compatibility + nix)
This library was supported by additional discussions with:
- Kazuhiko Sakaguchi (port on MathComp2 / Hierarchy Builder)
- Georges Gonthier
- Assia Mahoubi
- Pierre Yves Strub
- the SSReflect mailing list
The project was transferred to mathcomp on 2021-10-20.
Contents
========================================================================
* basic **theory of symmetric functions** including
- *Schur function* and *Kostka numbers* and the equivalence of the
combinatorial and algebraic (Jacobi) definition of Schur polynomials
- the classical bases, *Newton formulas* and various basis changes
- the scalar product and the *Cauchy formula*
* the **Littlewood-Richardson** rule using Schützenberger approach, it includes
- the *Robinson-Schensted* correspondence
- the construction of the *plactic monoïd* using *Greene invariants*
- the *Littlewood-Richardson* and *Pieri* rules using the combinatorial
(tableau) definition of Schur polynomials.
After A. Lascoux, B. Leclerc and J.-Y. Thibon, "The Plactic Monoid" in
Lothaire, M. (2011), Algebraic combinatorics on words, Cambridge University
Press With variant described in G. Duchamp, F. Hivert, and J.-Y. Thibon,
Noncommutative symmetric functions VI. Free quasi-symmetric functions and
related algebras. Internat. J. Algebra Comput. 12 (2002), 671–717.
* the **Murnaghan-Nakayama** rule for converting power sum to Schur function,
it includes
- two recursive implementations building the tableau upward or downward
- a skew version multiplying a Schur function by a power sum expanding the
result on Schur functions.
* the **character theory of the symmetric Groups**. We do not use
representations but rather goes as fast as possible to Frobenius
isomorphism and then uses computations with symmetric polynomials. It includes
- *cycle types* for permutations (together with Thibaut Benjamin)
- The tower structure and the *restriction and induction formulas* for class
indicator (together with Thibaut Benjamin)
- the structure of the *centralizer* of a permutation
- Young character and *Young Rule*
- the theory of Frobenius characteristic and *Frobenius character formula*
- the *Murnaghan-Nakayama* rule for evaluating irreducible characters
- the *Littlewood-Richardson* rule for inducing irreducible characters
* the **Hook-Length Formula** for standard Young tableaux
(together with Christine Paulin and Olivier Stietel). We follow closely
Greene, C., Nijenhuis, A. and Wilf, H. S. (1979) A probabilistic proof of a
formula for the number of Young tableaux of a given shape. Adv. in
Math. 31, 104–109.
* the **Erdös Szekeres theorem** about increassing and decreassing subsequences
from Greene's invariants theorem.
* various **Combinatorial objects** including
- integer partitions and compositions, together with Young's and dominance
lattices
- skew partition, horizontal, vertical and ribbon border strip
- tableaux, standard tableaux, skew tableaux
- subsequences, integer vectors
- standard words, permutations and the standardization map
- Yamanouchi word
- binary trees, Dyck words and Catalan numbers
- set partition and refinement order
* the **Coxeter presentation of the symmetric group**.
We formalize:
- presentation of the symmetric group generated by elementary
transpositions
- Matsumoto theorem saying that two reduced words give the same permutation
iff they are equivalent under braid relations
- the Coxeter length and the inversion set
- the dual Lehmer code of a permutation
- the weak permutohedron lattice
* the **factorization** of the Vandermonde determinant as the product
of differences.
* the **Tamari lattice** on binary trees.
* the formula for **Catalan numbers** counting binary trees and Dyck words.
I use a bijective proof using rotations. There is a generating function
proof available in https://github.com/hivert/FormalPowerSeries which I plan
to merge here at some points.
Documentation
========================================================================
* The [documentation](https://math-comp.github.io/combi/1.0.0/toc.html) is now
complete ! with the
[dependancy graph](https://math-comp.github.io/combi/1.0.0/index.html).
* A
[presentation](https://github.com/math-comp/Coq-Combi/raw/master/doc/Talk-CRM/CRM.pdf)
given at "[Algebra and combinatorics at LaCIM](http://www.crm.umontreal.ca/2018/Algebre18/index_e.php), a conference
for the 50th anniversary of the CRM", September 24-28, 2018, Montreal,
Quebec, Canada. This presentation is targeted at combinatorialist.
* Another
[presentation](https://github.com/math-comp/Coq-Combi/raw/master/doc/Talk/INRIA.pdf)
given at [Specfun](https://specfun.inria.fr/seminar/) Inria seminar, march
2015. This presentation is targeted at proof-assistant specialist.
Various unstable/unfinished experiments:
========================================
* a **Why3 certified implementation** of the LR-Rule
(together with Jean Christophe Filliâtre).
See the [Why3 branch on Github](https://github.com/math-comp/Coq-Combi/tree/Why3).
* Poset.
See the [posets branch on Github](https://github.com/math-comp/Coq-Combi/tree/posets).
Installation
========================================================================
This library is based on
* [SSReflect/MathComp 2]([https://github.com/math-comp/math-comp])
Library version 2.1.0 or more recent.
Here are the Opam packages I'm using
```
coq-hierarchy-builder 1.6.0
coq-mathcomp-ssreflect 2.1.0
coq-mathcomp-algebra 2.1.0
coq-mathcomp-field 2.1.0
coq-mathcomp-fingroup 2.1.0
coq-mathcomp-character 2.1.0
coq-mathcomp-multinomials 2.1.0
```