{"id":15168723,"url":"https://github.com/hivert/coq-combi","last_synced_at":"2025-10-01T02:30:59.613Z","repository":{"id":195233307,"uuid":"652347703","full_name":"hivert/Coq-Combi","owner":"hivert","description":"Algebraic Combinatorics in Coq","archived":false,"fork":true,"pushed_at":"2023-04-11T09:23:31.000Z","size":10400,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2024-09-27T06:40:53.417Z","etag":null,"topics":["combinatorics","coq","coq-formalization","mathcomp","symmetric-functions"],"latest_commit_sha":null,"homepage":"","language":null,"has_issues":false,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":"math-comp/Coq-Combi","license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/hivert.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null}},"created_at":"2023-06-11T21:23:51.000Z","updated_at":"2024-09-23T22:41:29.000Z","dependencies_parsed_at":"2023-09-17T04:28:01.646Z","dependency_job_id":null,"html_url":"https://github.com/hivert/Coq-Combi","commit_stats":null,"previous_names":["hivert/coq-combi"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hivert%2FCoq-Combi","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hivert%2FCoq-Combi/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hivert%2FCoq-Combi/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hivert%2FCoq-Combi/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/hivert","download_url":"https://codeload.github.com/hivert/Coq-Combi/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":219875269,"owners_count":16554660,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["combinatorics","coq","coq-formalization","mathcomp","symmetric-functions"],"created_at":"2024-09-27T06:41:01.922Z","updated_at":"2025-10-01T02:30:58.935Z","avatar_url":"https://github.com/hivert.png","language":null,"funding_links":[],"categories":[],"sub_categories":[],"readme":"Coq-Combi\n=========\n\nFormalisation of (algebraic) combinatorics in Coq/MathComp.\n\nAuthors\n========================================================================\n\nFlorent Hivert \u003cFlorent.Hivert@lri.fr\u003e\n\nContributors:\n\n- Thibaut Benjamin (representation theory of the symmetric groups)\n- Jean Christophe Filliâtre (Why3 implementation)\n- Christine Paulin (SSreflect binding for ALEA + hook length formula)\n- Olivier Stietel (hook length formula)\n\nThis library was supported by additional discussions with:\n\n- Georges Gonthier\n- Assia Mahoubi\n- Pierre Yves Strub\n- Cyril Cohen\n- the SSReflect mailing list\n\nThe project was transferred to mathcomp on 2021-10-20.\n\nContents\n========================================================================\n\n\n* basic **theory of symmetric functions** including\n\n  - *Schur function* and *Kostka numbers* and the equivalence of the\n    combinatorial and algebraic (Jacobi) definition of Schur polynomials\n\n  - the classical bases, *Newton formulas* and various basis changes\n\n  - the scalar product and the *Cauchy formula*\n\n* the **Littlewood-Richardson** rule using Schützeberger approach, it includes\n\n  - the *Robinson-Schensted* correspondance\n\n  - the construction of the *plactic monoïd*\n\n  - the *Littlewood-Richardson* and *Pieri* rules using the combinatorial\n    (tableau) definition of Schur polynomials.\n\n  After A. Lascoux, B. Leclerc and J.-Y. Thibon, \"The Plactic Monoid\" in\n  Lothaire, M. (2011), Algebraic combinatorics on words, Cambridge University\n  Press With variant described in G. Duchamp, F. Hivert, and J.-Y. Thibon,\n  Noncommutative symmetric functions VI. Free quasi-symmetric functions and\n  related algebras. Internat. J. Algebra Comput. 12 (2002), 671–717.\n\n* the **Murnaghan-Nakayama** rule for converting power sum to Schur function,\n  it includes\n\n  - two recursive implementations building the tableau up or down\n\n  - a skew version multiplying a Schur function by a power sum expanding the\n    result on Schur functions.\n\n* the **character theory of the symmetric Groups**. We do not use\n  representations but rather goes as fast as possible to Frobenius\n  isomorphism and then uses computations with symmetric polynomials. it includes\n\n  - *cycle types* for permutations (together with Thibaut Benjamin)\n\n  - The tower structure and the *restriction and induction formulas* for class\n    indicator (together with Thibaut Benjamin)\n\n  - structure of the *centralizer* of a permutation\n\n  - Young character and *Young Rule*\n\n  - the theory of Frobenius characteristic and *Frobenius character formula*\n\n  - the *Murnaghan-Nakayama* rule for evaluating irreducible characters\n\n  - the *Littlewood-Richardson* rule for irreducible characters\n\n* the **Hook-Length Formula** for standard Young tableaux\n  (together with Christine Paulin and Olivier Stietel). We follow closely\n\n   Greene, C., Nijenhuis, A. and Wilf, H. S. (1979) A probabilistic proof of a\n   formula for the number of Young tableaux of a given shape. Adv. in\n   Math. 31, 104–109.\n\n* the **Erdös Szekeres theorem** about increassing and decreassing subsequences\n\n   from Greene's invariants theorem.\n\n* various **Combinatorial objects** including\n\n  - integer partitions and compositions,\n  - skew partition, horizontal, vertical and ribbon border strip,\n  - tableaux, standard tableaux, skew tableaux,\n  - subsequences, integer vectors,\n  - standard words and permutations,\n  - Yamanouchi words,\n  - binary trees, Dyck words\n\n* the **Coxeter presentation of the symmetric group**.\n\n  We formalize:\n\n  - presentation of the symmetric group generated by elementary\n    transpositions\n  - Matsumoto theorem saying that two reduced words give the same permutation\n    iff they are equivalent under braid relations\n  - the Coxeter length and the inversion set\n  - the dual Lehmer code of a permutation\n  - the weak permutohedron lattice\n\n* the **factorization** of the Vandermonde determinant as the product\n  of differences.\n\n* the **Tamari lattice** on binary trees.\n\n* the formula for **Catalan numbers** counting binary trees and Dyck words.\n\n  I use a bijective proof using rotations. There is a generating function\n  proof available in https://github.com/hivert/FormalPowerSeries which I plan\n  to merge here at some points.\n\nVarious unstable/unfinished experiments:\n========================================\n\n* bijection m-trees \u003c-\u003e m-dyck words.\n  See the [trees branch on Github](https://github.com/hivert/Coq-Combi/tree/trees).\n\n* a **Why3 certified implementation** of the LR-Rule\n  (together with Jean Christophe Filliâtre).\n  See the [Why3 branch on Github](https://github.com/hivert/Coq-Combi/tree/Why3).\n\n* Poset.\n  See the [posets branch on Github](https://github.com/hivert/Coq-Combi/tree/posets).\n\n* Formal Power series. See the series branch on Github.\n  See the [series branch on Github](https://github.com/hivert/Coq-Combi/tree/series).\n\n* Set-partitions\n  See the [SetPartition branch on Github](https://github.com/hivert/Coq-Combi/tree/SetPartition).\n\nDocumentation\n========================================================================\n\n* The [documentation](http://hivert.github.io/Coq-Combi/) is now complete !\n\n* A\n  [presentation](https://github.com/hivert/Coq-Combi/raw/master/doc/Talk-CRM/CRM.pdf)\n  given at \"[Algebra and combinatorics at LaCIM](http://www.crm.umontreal.ca/2018/Algebre18/index_e.php), a conference\n  for the 50th anniversary of the CRM\", September 24-28, 2018, Montreal,\n  Quebec, Canada. This presentation is targeted at combinatorialist.\n\n* Another\n  [presentation](https://github.com/hivert/Coq-Combi/raw/master/doc/Talk/INRIA.pdf)\n  given at [Specfun](https://specfun.inria.fr/seminar/) Inria seminar, march\n  2015. This presentation is targeted at proof-assistant specialist.\n\nInstallation\n========================================================================\n\nThis library is based on\n\n* Coq 8.13 or more recent\n\n* [SSReflect/MathComp]([https://github.com/math-comp/math-comp])\n  Library version 1.12 or more recent.\n\n* Pierre-Yves Strub library for\n  [Multinomials] version 1.5.4 (https://github.com/math-comp/multinomials)\n\nHere are the Opam packages I'm using\n```\ncoq-mathcomp-ssreflect    1.12.0\ncoq-mathcomp-algebra      1.12.0\ncoq-mathcomp-field        1.12.0\ncoq-mathcomp-fingroup     1.12.0\ncoq-mathcomp-character    1.12.0\ncoq-mathcomp-multinomials 1.5.4\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhivert%2Fcoq-combi","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fhivert%2Fcoq-combi","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhivert%2Fcoq-combi/lists"}