From 70df5381789e17816c76e17c0a38c4bc68d3028a Mon Sep 17 00:00:00 2001 From: Florent Hivert Date: Sun, 5 Jul 2026 10:02:45 +0200 Subject: [PATCH] Release of Combi-1.1.0 --- combi/1.1.0/ALEA.Ccpo.html | 2381 ++ combi/1.1.0/ALEA.Misc.html | 316 + combi/1.1.0/ALEA.Qmeasure.html | 902 + combi/1.1.0/Combi.Basic.combclass.html | 350 + combi/1.1.0/Combi.Basic.congr.html | 590 + combi/1.1.0/Combi.Basic.ordtype.html | 578 + combi/1.1.0/Combi.Basic.unitriginv.html | 208 + combi/1.1.0/Combi.Combi.Dyckword.html | 741 + combi/1.1.0/Combi.Combi.Yamanouchi.html | 399 + combi/1.1.0/Combi.Combi.bintree.html | 1041 + combi/1.1.0/Combi.Combi.composition.html | 515 + combi/1.1.0/Combi.Combi.fibered_set.html | 141 + combi/1.1.0/Combi.Combi.multinomial.html | 118 + combi/1.1.0/Combi.Combi.ordtree.html | 270 + combi/1.1.0/Combi.Combi.partition.html | 1929 ++ combi/1.1.0/Combi.Combi.permuted.html | 294 + combi/1.1.0/Combi.Combi.setpartition.html | 405 + combi/1.1.0/Combi.Combi.skewpart.html | 955 + combi/1.1.0/Combi.Combi.skewtab.html | 411 + combi/1.1.0/Combi.Combi.std.html | 663 + combi/1.1.0/Combi.Combi.stdtab.html | 654 + combi/1.1.0/Combi.Combi.subseq.html | 277 + combi/1.1.0/Combi.Combi.tableau.html | 563 + combi/1.1.0/Combi.Combi.vectNK.html | 167 + .../Combi.Erdos_Szekeres.Erdos_Szekeres.html | 88 + .../Combi.HookFormula.Frobenius_ident.html | 108 + combi/1.1.0/Combi.HookFormula.hook.html | 818 + combi/1.1.0/Combi.LRrule.Greene.html | 887 + combi/1.1.0/Combi.LRrule.Greene_inv.html | 1158 + combi/1.1.0/Combi.LRrule.Schensted.html | 1123 + combi/1.1.0/Combi.LRrule.Yam_plact.html | 187 + combi/1.1.0/Combi.LRrule.extract.html | 96 + combi/1.1.0/Combi.LRrule.freeSchur.html | 581 + combi/1.1.0/Combi.LRrule.implem.html | 673 + combi/1.1.0/Combi.LRrule.plactic.html | 639 + combi/1.1.0/Combi.LRrule.shuffle.html | 558 + combi/1.1.0/Combi.LRrule.stdplact.html | 239 + combi/1.1.0/Combi.LRrule.therule.html | 439 + combi/1.1.0/Combi.MPoly.Cauchy.html | 507 + .../1.1.0/Combi.MPoly.MurnaghanNakayama.html | 510 + combi/1.1.0/Combi.MPoly.Schur_altdef.html | 833 + combi/1.1.0/Combi.MPoly.Schur_mpoly.html | 169 + combi/1.1.0/Combi.MPoly.antisym.html | 636 + combi/1.1.0/Combi.MPoly.homogsym.html | 870 + combi/1.1.0/Combi.MPoly.sympoly.html | 1521 ++ combi/1.1.0/Combi.SSRcomplements.ordcast.html | 96 + .../1.1.0/Combi.SSRcomplements.permcomp.html | 100 + combi/1.1.0/Combi.SSRcomplements.sorted.html | 178 + combi/1.1.0/Combi.SSRcomplements.tools.html | 357 + .../1.1.0/Combi.SymGroup.Frobenius_char.html | 499 + combi/1.1.0/Combi.SymGroup.cycles.html | 383 + combi/1.1.0/Combi.SymGroup.cycletype.html | 637 + combi/1.1.0/Combi.SymGroup.permcent.html | 396 + combi/1.1.0/Combi.SymGroup.presentSn.html | 1454 ++ combi/1.1.0/Combi.SymGroup.reprSn.html | 309 + combi/1.1.0/Combi.SymGroup.towerSn.html | 534 + combi/1.1.0/Combi.SymGroup.weak_order.html | 313 + combi/1.1.0/coqdoc.css | 338 + combi/1.1.0/depend.map | 59 + combi/1.1.0/depend.png | Bin 0 -> 323971 bytes combi/1.1.0/depend.svg | 1077 + combi/1.1.0/index.html | 91 + combi/1.1.0/index_lib.html | 17921 ++++++++++++++++ combi/1.1.0/toc.html | 1661 ++ combi/README.html | 262 +- 65 files changed, 54054 insertions(+), 119 deletions(-) create mode 100644 combi/1.1.0/ALEA.Ccpo.html create mode 100644 combi/1.1.0/ALEA.Misc.html create mode 100644 combi/1.1.0/ALEA.Qmeasure.html create mode 100644 combi/1.1.0/Combi.Basic.combclass.html create mode 100644 combi/1.1.0/Combi.Basic.congr.html create mode 100644 combi/1.1.0/Combi.Basic.ordtype.html create mode 100644 combi/1.1.0/Combi.Basic.unitriginv.html create mode 100644 combi/1.1.0/Combi.Combi.Dyckword.html create mode 100644 combi/1.1.0/Combi.Combi.Yamanouchi.html create mode 100644 combi/1.1.0/Combi.Combi.bintree.html create mode 100644 combi/1.1.0/Combi.Combi.composition.html create mode 100644 combi/1.1.0/Combi.Combi.fibered_set.html create mode 100644 combi/1.1.0/Combi.Combi.multinomial.html create mode 100644 combi/1.1.0/Combi.Combi.ordtree.html create mode 100644 combi/1.1.0/Combi.Combi.partition.html create mode 100644 combi/1.1.0/Combi.Combi.permuted.html create mode 100644 combi/1.1.0/Combi.Combi.setpartition.html create mode 100644 combi/1.1.0/Combi.Combi.skewpart.html create mode 100644 combi/1.1.0/Combi.Combi.skewtab.html create mode 100644 combi/1.1.0/Combi.Combi.std.html create mode 100644 combi/1.1.0/Combi.Combi.stdtab.html create mode 100644 combi/1.1.0/Combi.Combi.subseq.html create mode 100644 combi/1.1.0/Combi.Combi.tableau.html create mode 100644 combi/1.1.0/Combi.Combi.vectNK.html create mode 100644 combi/1.1.0/Combi.Erdos_Szekeres.Erdos_Szekeres.html create mode 100644 combi/1.1.0/Combi.HookFormula.Frobenius_ident.html create mode 100644 combi/1.1.0/Combi.HookFormula.hook.html create mode 100644 combi/1.1.0/Combi.LRrule.Greene.html create mode 100644 combi/1.1.0/Combi.LRrule.Greene_inv.html create mode 100644 combi/1.1.0/Combi.LRrule.Schensted.html create mode 100644 combi/1.1.0/Combi.LRrule.Yam_plact.html create mode 100644 combi/1.1.0/Combi.LRrule.extract.html create mode 100644 combi/1.1.0/Combi.LRrule.freeSchur.html create mode 100644 combi/1.1.0/Combi.LRrule.implem.html create mode 100644 combi/1.1.0/Combi.LRrule.plactic.html create mode 100644 combi/1.1.0/Combi.LRrule.shuffle.html create mode 100644 combi/1.1.0/Combi.LRrule.stdplact.html create mode 100644 combi/1.1.0/Combi.LRrule.therule.html create mode 100644 combi/1.1.0/Combi.MPoly.Cauchy.html create mode 100644 combi/1.1.0/Combi.MPoly.MurnaghanNakayama.html create mode 100644 combi/1.1.0/Combi.MPoly.Schur_altdef.html create mode 100644 combi/1.1.0/Combi.MPoly.Schur_mpoly.html create mode 100644 combi/1.1.0/Combi.MPoly.antisym.html create mode 100644 combi/1.1.0/Combi.MPoly.homogsym.html create mode 100644 combi/1.1.0/Combi.MPoly.sympoly.html create mode 100644 combi/1.1.0/Combi.SSRcomplements.ordcast.html create mode 100644 combi/1.1.0/Combi.SSRcomplements.permcomp.html create mode 100644 combi/1.1.0/Combi.SSRcomplements.sorted.html create mode 100644 combi/1.1.0/Combi.SSRcomplements.tools.html create mode 100644 combi/1.1.0/Combi.SymGroup.Frobenius_char.html create mode 100644 combi/1.1.0/Combi.SymGroup.cycles.html create mode 100644 combi/1.1.0/Combi.SymGroup.cycletype.html create mode 100644 combi/1.1.0/Combi.SymGroup.permcent.html create mode 100644 combi/1.1.0/Combi.SymGroup.presentSn.html create mode 100644 combi/1.1.0/Combi.SymGroup.reprSn.html create mode 100644 combi/1.1.0/Combi.SymGroup.towerSn.html create mode 100644 combi/1.1.0/Combi.SymGroup.weak_order.html create mode 100644 combi/1.1.0/coqdoc.css create mode 100644 combi/1.1.0/depend.map create mode 100644 combi/1.1.0/depend.png create mode 100644 combi/1.1.0/depend.svg create mode 100644 combi/1.1.0/index.html create mode 100644 combi/1.1.0/index_lib.html create mode 100644 combi/1.1.0/toc.html diff --git a/combi/1.1.0/ALEA.Ccpo.html b/combi/1.1.0/ALEA.Ccpo.html new file mode 100644 index 00000000..f508be1b --- /dev/null +++ b/combi/1.1.0/ALEA.Ccpo.html @@ -0,0 +1,2381 @@ + + + + + +ALEA.Ccpo + + + + +
+ + + +
+ +

Library ALEA.Ccpo

+ +
+
+ +
+

Ccpo.v: Specification and properties of a cpo

+ +
+
+ +
+From Stdlib Require Export Arith.
+From Stdlib Require Import Lia.
+ +
+From Stdlib Require Export Classes.SetoidTactics.
+From Stdlib Require Export Classes.SetoidClass.
+From Stdlib Require Export Classes.Morphisms.
+ +
+Declare Scope signature_scope.
+#[local] Open Scope signature_scope.
+Declare Scope O_scope.
+Delimit Scope O_scope with O.
+#[local] Open Scope O_scope.
+ +
+
+ +
+

Ordered type

+ +
+
+ +
+Definition eq_rel {A} (E1 E2:relation A) := forall x y, E1 x y <-> E2 x y.
+ +
+Class Order {A} (E:relation A) (R:relation A) :=
+  {reflexive : Reflexive R;
+   order_eq : forall x y, R x y /\ R y x <-> E x y;
+   transitive : Transitive R }.
+ +
+Generalizable Variables A E R.
+ +
+#[export] Instance OrderEqRefl `{Order A E R} : Reflexive E.
+Qed.
+ +
+#[export] Instance OrderEqSym `{Order A E R} : Symmetric E.
+Qed.
+ +
+#[export] Instance OrderEqTrans `{Order A E R} : Transitive E.
+Qed.
+ +
+#[export] Instance OrderEquiv `{Order A E R} : Equivalence E.
+Qed.
+Opaque OrderEquiv.
+ +
+Class ord A :=
+   { Oeq : relation A;
+      Ole : relation A;
+      #[global] order_rel :: Order Oeq Ole }.
+ +
+Lemma OrdSetoid `(o:ord A) : Setoid A.
+ +
+ +
+Add Parametric Relation {A} {o:ord A} : A (@Oeq _ o)
+reflexivity proved by OrderEqRefl
+symmetry proved by OrderEqSym
+transitivity proved by OrderEqTrans
+as Oeq_setoid.
+ +
+ +
+Infix " ≤ " := Ole : O_scope.
+Infix " ≈ " := Oeq : type_scope.
+ +
+Definition Oge {O} {o:ord O} := fun (x y:O) => y x.
+Infix ">=" := Oge : O_scope.
+ +
+Lemma Ole_refl_eq : forall {O} {o:ord O} (x y:O), x y -> x y.
+ +
+#[export] Hint Immediate Ole_refl_eq : core.
+ +
+Lemma Ole_refl_eq_inv : forall {O} {o:ord O} (x y:O), x y -> y x.
+ +
+#[export] Hint Immediate Ole_refl_eq_inv : core.
+ +
+Lemma Ole_trans : forall {O} {o:ord O} (x y z:O), x y -> y z -> x z.
+ +
+Lemma Ole_refl : forall {O} {o:ord O} (x:O), x x.
+ +
+#[export] Hint Resolve Ole_refl : core.
+ +
+Add Parametric Relation {A} {o:ord A} : A (@Ole _ o)
+reflexivity proved by Ole_refl
+transitivity proved by Ole_trans
+as Ole_setoid.
+ +
+Lemma Ole_antisym : forall {O} {o:ord O} (x y:O), x y -> y x -> x y.
+#[export] Hint Immediate Ole_antisym : core.
+ +
+Lemma Oeq_refl : forall {O} {o:ord O} (x:O), x x.
+#[export] Hint Resolve Oeq_refl : core.
+ +
+Lemma Oeq_refl_eq : forall {O} {o:ord O} (x y:O), x = y -> x y.
+#[export] Hint Resolve Oeq_refl_eq : core.
+ +
+Lemma Oeq_sym : forall {O} {o:ord O} (x y:O), x y -> y x.
+ +
+Lemma Oeq_le : forall {O} {o:ord O} (x y:O), x y -> x y.
+ +
+Lemma Oeq_le_sym : forall {O} {o:ord O} (x y:O), x y -> y x.
+ +
+#[export] Hint Resolve Oeq_le : core.
+#[export] Hint Immediate Oeq_sym Oeq_le_sym : core.
+ +
+Lemma Oeq_trans
+   : forall {O} {o:ord O} (x y z:O), x y -> y z -> x z.
+#[export] Hint Resolve Oeq_trans : core.
+ +
+Add Parametric Morphism `(o:ord A): (Ole (ord:=o))
+with signature (Oeq (A:=A) ==> Oeq (A:=A) ==> iff) as Ole_eq_compat_iff.
+Qed.
+ +
+
+ +
+Equivalence of orders +
+
+ +
+Definition eq_ord {O} (o1 o2:ord O) := eq_rel (Ole (ord:=o1)) (Ole (ord:=o2)).
+ +
+Lemma eq_ord_equiv : forall {O} (o1 o2:ord O), eq_ord o1 o2 ->
+      eq_rel (Oeq (ord:=o1)) (Oeq (ord:=o2)).
+ +
+ +
+Lemma Ole_eq_compat :
+     forall {O} {o:ord O} (x1 x2 : O),
+       x1 x2 -> forall x3 x4 : O, x3 x4 -> x1 x3 -> x2 x4.
+ +
+Lemma Ole_eq_right : forall {O} {o:ord O} (x y z: O),
+             x y -> y z -> x z.
+ +
+Lemma Ole_eq_left : forall {O} {o:ord O} (x y z: O),
+             x y -> y z -> x z.
+ +
+Add Parametric Morphism `{o:ord A} : (Oeq (A:=A))
+       with signature Oeq Oeq iff as Oeq_iff_morphism.
+Qed.
+ +
+Add Parametric Morphism `{o:ord A} : (Ole (A:=A))
+       with signature Oeq Oeq iff as Ole_iff_morphism.
+Qed.
+ +
+Add Parametric Morphism `{o:ord A} : (Ole (A:=A))
+       with signature Ole --> Ole Basics.impl as Ole_impl_morphism.
+Qed.
+ +
+
+ +
+

Definition and properties of x < y

+ +
+
+Definition Olt `{o:ord A} (r1 r2:A) : Prop := (r1 r2) /\ ~ (r1 r2).
+ +
+Infix "<" := Olt : O_scope.
+ +
+Lemma Olt_eq_compat `{o:ord A} :
+forall x1 x2 : A, x1 x2 -> forall x3 x4 : A, x3 x4 -> x1 < x3 -> x2 < x4.
+ +
+Add Parametric Morphism `{o:ord A} : (Olt (A:=A))
+with signature Oeq Oeq iff as Olt_iff_morphism.
+Qed.
+ +
+Lemma Olt_neq `{o:ord A} : forall x y:A, x < y -> ~ x y.
+ +
+Lemma Olt_neq_rev `{o:ord A} : forall x y:A, x < y -> ~ y x.
+ +
+Lemma Olt_le `{o:ord A} : forall x y, x < y -> x y.
+ +
+Lemma Olt_notle `{o:ord A} : forall x y, x < y -> ~ y x.
+ +
+Lemma Olt_trans `{o:ord A} : forall x y z:A, x < y -> y < z -> x < z.
+ +
+Lemma Ole_diff_lt `{o:ord A} : forall x y : A, x y -> ~ x y -> x < y.
+ +
+Lemma Ole_notle_lt `{o:ord A} : forall x y : A, x y -> ~ y x -> x < y.
+ +
+#[export] Hint Immediate Olt_neq Olt_neq_rev Olt_le Olt_notle : core.
+#[export] Hint Resolve Ole_diff_lt : core.
+ +
+Lemma Olt_antirefl `{o:ord A} : forall x:A, ~ x < x.
+ +
+Lemma Ole_lt_trans `{o:ord A} : forall x y z:A, x y -> y < z -> x < z.
+ +
+Lemma Olt_le_trans `{o:ord A} : forall x y z:A, x < y -> y z -> x < z.
+ +
+#[export] Hint Resolve Olt_antirefl : core.
+ +
+Lemma Ole_not_lt `{o:ord A} : forall x y:A, x y -> ~ y < x.
+#[export] Hint Resolve Ole_not_lt : core.
+ +
+Add Parametric Morphism `{o:ord A} : (Olt (A:=A))
+       with signature Ole --> Ole Basics.impl as Olt_le_compat.
+Qed.
+ +
+
+ +
+

Dual order

+ +
+ +
    +
  • Iord x y = y x + +
  • +
+
+
+Definition Iord : forall O {o:ord O}, ord O.
+Defined.
+ +
+Arguments Iord O {o}.
+ +
+
+ +
+

Order on functions

+ +
+
+ +
+Definition fun_ext A B (R:relation B) : relation (A -> B) :=
+                fun f g => forall x, R (f x) (g x).
+Arguments fun_ext A [B] R.
+ +
+
+ +
+
    +
  • ford f g := forall x, f x g x + +
  • +
+
+
+#[export] Program Instance ford A O {o:ord O} : ord (A -> O) :=
+  {Oeq:=fun_ext A (Oeq (A:=O)); Ole:=fun_ext A (Ole (A:=O))}.
+ +
+Lemma ford_le_elim : forall A O (o:ord O) (f g:A -> O), f g -> forall n, f n g n.
+#[export] Hint Immediate ford_le_elim : core.
+ +
+Lemma ford_le_intro : forall A O (o:ord O) (f g:A -> O), ( forall n, f n g n ) -> f g.
+#[export] Hint Resolve ford_le_intro : core.
+ +
+Lemma ford_eq_elim : forall A O (o:ord O) (f g:A -> O), f g -> forall n, f n g n.
+#[export] Hint Immediate ford_eq_elim : core.
+ +
+Lemma ford_eq_intro : forall A O (o:ord O) (f g:A -> O), ( forall n, f n g n ) -> f g.
+#[export] Hint Resolve ford_eq_intro : core.
+ +
+
+ +
+

Monotonicity

+ +
+ +

Definition and properties

+ +
+
+ +
+Generalizable Variables Oa Ob Oc Od.
+ +
+Class monotonic `{o1:ord Oa} `{o2:ord Ob} (f : Oa -> Ob) :=
+      monotonic_def : forall x y, x y -> f x f y.
+ +
+Lemma monotonic_intro : forall `{o1:ord Oa} `{o2:ord Ob} (f : Oa -> Ob),
+  (forall x y, x y -> f x f y) -> monotonic f.
+#[export] Hint Resolve monotonic_intro : core.
+ +
+ +
+Add Parametric Morphism `{o1:ord Oa} `{o2:ord Ob} (f : Oa -> Ob) {m:monotonic f} : f
+with signature (Ole (A:=Oa) Ole (A:=Ob))
+as monotonic_morphism.
+Qed.
+ +
+Class stable `{o1:ord Oa} `{o2:ord Ob} (f : Oa -> Ob) :=
+      stable_def : forall x y, x y -> f x f y.
+#[export] Hint Unfold stable : core.
+ +
+Lemma stable_intro : forall `{o1:ord Oa} `{o2:ord Ob} (f : Oa -> Ob),
+  (forall x y, x y -> f x f y) -> stable f.
+#[export] Hint Resolve stable_intro : core.
+ +
+Add Parametric Morphism `{o1:ord Oa} `{o2:ord Ob} (f : Oa -> Ob) {s:stable f} : f
+with signature (Oeq (A:=Oa) Oeq (A:=Ob))
+as stable_morphism.
+Qed.
+ +
+#[export] Typeclasses Opaque monotonic stable.
+ +
+#[export] Instance monotonic_stable `{o1:ord Oa} `{o2:ord Ob} (f : Oa -> Ob) {m:monotonic f}
+         : stable f.
+Qed.
+ +
+
+ +
+

Type of monotonic functions

+ +
+
+ +
+Record fmon `{o1:ord Oa} `{o2:ord Ob}:= mon
+          {fmont :> Oa -> Ob;
+           fmonotonic: monotonic fmont}.
+ +
+#[export]
+Existing Instance fmonotonic.
+ +
+Arguments mon [Oa o1 Ob o2] fmont {fmonotonic}.
+Arguments fmon Oa [o1] Ob {o2}.
+ +
+#[export] Hint Resolve fmonotonic : core.
+ +
+ +
+Notation "Oa -m> Ob" := (fmon Oa Ob)
+   (right associativity, at level 30) : O_scope.
+Notation "Oa --m> Ob" := (fmon Oa (o1:=Iord Oa) Ob )
+   (right associativity, at level 30) : O_scope.
+Notation "Oa --m-> Ob" := (fmon Oa (o1:=Iord Oa) Ob (o2:=Iord Ob))
+   (right associativity, at level 30) : O_scope.
+Notation "Oa -m-> Ob" := (fmon Oa Ob (o2:=Iord Ob))
+   (right associativity, at level 30) : O_scope.
+ +
+Open Scope O_scope.
+ +
+Lemma mon_simpl : forall `{o1:ord Oa} `{o2:ord Ob} (f:Oa -> Ob){mf: monotonic f} x,
+      mon f x = f x.
+#[export] Hint Resolve mon_simpl : core.
+ +
+#[export] Instance fstable `{o1:ord Oa} `{o2:ord Ob} (f:Oa -m> Ob) : stable f.
+Qed.
+ +
+#[export] Hint Resolve fstable : core.
+ +
+Lemma fmon_le : forall `{o1:ord Oa} `{o2:ord Ob} (f:Oa -m> Ob) x y,
+                x y -> f x f y.
+#[export] Hint Resolve fmon_le : core.
+ +
+Lemma fmon_eq : forall `{o1:ord Oa} `{o2:ord Ob} (f:Oa -m> Ob) x y,
+                x y -> f x f y.
+#[export] Hint Resolve fmon_eq : core.
+ +
+#[export] Program Instance fmono Oa Ob {o1:ord Oa} {o2:ord Ob} : ord (Oa -m> Ob)
+   := {Oeq := fun (f g : Oa-m> Ob)=> forall x, f x g x;
+       Ole := fun (f g : Oa-m> Ob)=> forall x, f x g x}.
+ +
+Lemma mon_le_compat : forall `{o1:ord Oa} `{o2:ord Ob} (f g:Oa -> Ob)
+      {mf:monotonic f} {mg:monotonic g}, f g -> mon f mon g.
+#[export] Hint Resolve mon_le_compat : core.
+ +
+Lemma mon_eq_compat : forall `{o1:ord Oa} `{o2:ord Ob} (f g:Oa-> Ob)
+      {mf:monotonic f} {mg:monotonic g}, f g -> mon f mon g.
+#[export] Hint Resolve mon_eq_compat : core.
+ +
+Add Parametric Morphism `{o1:ord Oa} `{o2:ord Ob}
+       : (fmont (Oa:=Oa) (Ob:=Ob))
+       with signature Oeq Oeq Oeq as fmont_eq_morphism.
+Qed.
+ +
+
+ +
+

Monotonicity and dual order

+ +
+
+ +
+Lemma Imonotonic `{o1:ord Oa} `{o2:ord Ob} (f:Oa -> Ob) {m:monotonic f}
+         : monotonic (o1:=Iord Oa) (o2:=Iord Ob) f.
+ +
+#[export] Hint Extern 2 (@monotonic _ (Iord _) _ (Iord _) _) => apply @Imonotonic
+  : typeclass_instances.
+ +
+Definition imon `{o1:ord Oa} `{o2:ord Ob} (f:Oa -> Ob) {m:monotonic f}
+   : Oa --m-> Ob := mon (o1:=Iord Oa) (o2:=Iord Ob) f.
+ +
+Lemma imon_simpl : forall `{o1:ord Oa} `{o2:ord Ob} (f:Oa -> Ob) {m:monotonic f} (x:Oa),
+     imon f x = f x.
+ +
+
+ +
+
    +
  • Iord (A -> U) corresponds to A -> Iord U + +
  • +
+
+
+ +
+Lemma Iord_app {A} `{o1:ord Oa} (x: A) : ((A -> Oa) --m-> Oa).
+ +
+
+ +
+
    +
  • Imon f uses f as monotonic function over the dual order. + +
  • +
+
+
+ +
+Definition Imon : forall `{o1:ord Oa} `{o2:ord Ob}, (Oa -m> Ob) -> (Oa --m-> Ob).
+Defined.
+ +
+Lemma Imon_simpl : forall `{o1:ord Oa} `{o2:ord Ob} (f:Oa -m> Ob)(x:Oa),
+                   Imon f x = f x.
+ +
+
+ +
+

Monotonicity and equality

+ +
+
+ +
+Lemma mon_fun_eq_monotonic
+  : forall `{o1:ord Oa} `{o2:ord Ob} (f:Oa -> Ob) (g:Oa -m> Ob),
+            f g -> monotonic f.
+ +
+Definition mon_fun_subst `{o1:ord Oa} `{o2:ord Ob} (f:Oa -> Ob) (g:Oa -m> Ob) (H:f g)
+   : Oa -m> Ob := mon f (fmonotonic:= mon_fun_eq_monotonic _ _ H).
+ +
+Lemma mon_fun_eq
+  : forall `{o1:ord Oa} `{o2:ord Ob} (f:Oa -> Ob) (g:Oa -m> Ob)
+            (H:f g), g mon_fun_subst f g H.
+ +
+
+ +
+

Monotonic functions with 2 arguments

+ +
+
+ +
+Class monotonic2 `{o1: ord Oa} `{o2: ord Ob} `{o3:ord Oc} (f:Oa -> Ob -> Oc) :=
+    monotonic2_intro : forall (x y:Oa) (z t:Ob), x y -> z t -> f x z f y t.
+ +
+#[export] Instance mon2_intro `{o1: ord Oa} `{o2: ord Ob} `{o3:ord Oc} (f:Oa -> Ob -> Oc)
+    {m1:monotonic f} {m2: forall x, monotonic (f x)} : monotonic2 f | 10.
+Qed.
+ +
+Lemma mon2_elim1 `{o1: ord Oa} `{o2: ord Ob} `{o3:ord Oc} (f:Oa -> Ob -> Oc)
+    {m:monotonic2 f} : monotonic f.
+ +
+Lemma mon2_elim2 `{o1: ord Oa} `{o2: ord Ob} `{o3:ord Oc} (f:Oa -> Ob -> Oc)
+    {m:monotonic2 f} : forall x, monotonic (f x).
+#[export] Hint Immediate mon2_elim1 mon2_elim2: typeclass_instances.
+ +
+Definition mon_comp {A} `{o1: ord Oa} `{o2: ord Ob}
+         (f:A -> Oa -> Ob) {mf:forall x, monotonic (f x)} : A -> Oa -m> Ob
+         := fun x => mon (f x).
+ +
+#[export] Instance mon_fun_mon `{o1: ord Oa} `{o2: ord Ob} `{o3:ord Oc} (f:Oa -> Ob -> Oc)
+    {m:monotonic2 f} : monotonic (fun x => mon (f x)).
+Qed.
+ +
+Class stable2 `{o1: ord Oa} `{o2: ord Ob} `{o3:ord Oc} (f:Oa -> Ob -> Oc) :=
+    stable2_intro : forall (x y:Oa) (z t:Ob), xy -> z t -> f x z f y t.
+ +
+#[export] Instance monotonic2_stable2 `{o1: ord Oa} `{o2: ord Ob} `{o3:ord Oc}
+    (f:Oa -> Ob -> Oc) {m:monotonic2 f} : stable2 f.
+Qed.
+ +
+#[export] Typeclasses Opaque monotonic2 stable2.
+ +
+Definition mon2 `{o1: ord Oa} `{o2: ord Ob} `{o3:ord Oc} (f:Oa -> Ob -> Oc)
+     {mf:monotonic2 f} : Oa -m> Ob -m> Oc := mon (fun x => mon (f x)).
+ +
+Lemma mon2_simpl : forall `{o1: ord Oa} `{o2: ord Ob} `{o3:ord Oc} (f:Oa -> Ob -> Oc)
+     {mf:monotonic2 f} x y, mon2 f x y = f x y.
+#[export] Hint Resolve mon2_simpl : core.
+ +
+Lemma mon2_le_compat : forall `{o1: ord Oa} `{o2: ord Ob} `{o3:ord Oc}
+     (f g:Oa -> Ob -> Oc) {mf: monotonic2 f} {mg:monotonic2 g},
+     f g -> mon2 f mon2 g.
+ +
+Definition fun2 `{o1: ord Oa} `{o2: ord Ob} `{o3:ord Oc} (f:Oa -> Ob -m> Oc)
+     : Oa -> Ob -> Oc := fun x => f x.
+ +
+#[export] Instance fmon2_mon `{o1: ord Oa} `{o2: ord Ob} `{o3:ord Oc} (f:Oa -> Ob -m> Oc) :
+       forall x:Oa, monotonic (fun2 f x).
+Qed.
+ +
+#[export] Instance fun2_monotonic `{o1: ord Oa} `{o2: ord Ob} `{o3:ord Oc}
+         (f:Oa -> Ob -m> Oc) {mf:monotonic f} : monotonic (fun2 f).
+Qed.
+#[export] Hint Resolve fun2_monotonic : core.
+ +
+#[export] Instance fmonotonic2 `{o1:ord Oa} `{o2:ord Ob} `{o3:ord Oc} (f:Oa -m> Ob -m> Oc)
+         : monotonic2 (fun2 f).
+Qed.
+#[export] Hint Resolve fmonotonic2 : core.
+ +
+Definition mfun2 `{o1:ord Oa} `{o2:ord Ob} `{o3:ord Oc} (f:Oa -m> Ob -m> Oc)
+   : Oa-m> (Ob -> Oc) := mon (fun2 f).
+ +
+Lemma mfun2_simpl : forall `{o1:ord Oa} `{o2:ord Ob} `{o3:ord Oc} (f:Oa -m> Ob -m> Oc) x y,
+     mfun2 f x y = f x y.
+ +
+#[export] Instance mfun2_mon `{o1:ord Oa} `{o2:ord Ob} `{o3:ord Oc}
+         (f:Oa -m> Ob -m> Oc) x : monotonic (mfun2 f x).
+Qed.
+ +
+Lemma mon2_fun2 : forall `{o1: ord Oa} `{o2: ord Ob} `{o3:ord Oc}
+     (f:Oa -m> Ob -m> Oc), mon2 (fun2 f) f.
+ +
+Lemma fun2_mon2 : forall `{o1: ord Oa} `{o2: ord Ob} `{o3:ord Oc}
+      (f:Oa -> Ob -> Oc) {mf:monotonic2 f} , fun2 (mon2 f) f.
+#[export] Hint Resolve mon2_fun2 fun2_mon2 : core.
+ +
+#[export] Instance fstable2 `{o1:ord Oa} `{o2:ord Ob} `{o3:ord Oc} (f:Oa -m> Ob -m> Oc)
+                : stable2 (fun2 f).
+Qed.
+#[export] Hint Resolve fstable2 : core.
+ +
+Definition Imon2 : forall `{o1: ord Oa} `{o2: ord Ob} `{o3:ord Oc},
+     (Oa -m> Ob -m> Oc) -> (Oa --m> Ob --m-> Oc).
+Defined.
+ +
+Lemma Imon2_simpl : forall `{o1: ord Oa} `{o2: ord Ob} `{o3:ord Oc}
+      (f:Oa -m> Ob -m> Oc) (x:Oa) (y: Ob),
+      Imon2 f x y = f x y.
+ +
+Lemma Imonotonic2 `{o1: ord Oa} `{o2: ord Ob} `{o3:ord Oc}
+      (f:Oa -> Ob -> Oc){mf : monotonic2 f}
+      : monotonic2 (o1:=Iord Oa) (o2:=Iord Ob) (o3:=Iord Oc) f.
+ +
+#[export] Hint Extern 2 (@monotonic2 _ (Iord _) _ (Iord _) _ (Iord _) _) => apply @Imonotonic2
+  : typeclass_instances.
+ +
+Definition imon2 `{o1: ord Oa} `{o2: ord Ob} `{o3:ord Oc}
+      (f:Oa -> Ob -> Oc){mf : monotonic2 f} : Oa --m> Ob --m-> Oc :=
+      mon2 (o1:=Iord Oa) (o2:=Iord Ob) (o3:=Iord Oc) f.
+ +
+Lemma imon2_simpl : forall `{o1: ord Oa} `{o2: ord Ob} `{o3:ord Oc}
+      (f:Oa -> Ob -> Oc){mf : monotonic2 f} (x:Oa) (y:Ob),
+      imon2 f x y = f x y.
+ +
+
+ +
+

Strict monotonicity

+ +
+
+ +
+Lemma inj_strict_mon : forall `{o1: ord Oa} `{o2: ord Ob} (f:Oa -> Ob) {mf:monotonic f},
+      (forall x y, f x f y -> x y) -> forall x y, x < y -> f x < f y.
+ +
+
+ +
+

Sequences

+

Usual order on natural numbers

+ +
+
+ +
+#[export] Program Instance natO : ord nat :=
+    { Oeq := fun n m : nat => n = m;
+       Ole := fun n m : nat => (n m)%nat}.
+ +
+Lemma le_Ole : forall n m, ((n m)%nat)-> n m.
+#[export] Hint Resolve le_Ole : core.
+ +
+Lemma nat_monotonic : forall {O} {o:ord O}
+               (f:nat -> O), (forall n, f n f (S n)) -> monotonic f.
+#[export] Hint Resolve nat_monotonic : core.
+ +
+Lemma nat_monotonic_inv : forall {O} {o:ord O}
+               (f:nat -> O), (forall n, f (S n) f n) -> monotonic (o2:=Iord O) f.
+#[export] Hint Resolve nat_monotonic_inv : core.
+ +
+Definition fnatO_intro : forall {O} {o:ord O} (f:nat -> O), (forall n, f n f (S n)) -> nat -m> O.
+Defined.
+ +
+Lemma fnatO_elim : forall {O} {o:ord O} (f:nat -m> O) (n:nat), f n f (S n).
+#[export] Hint Resolve fnatO_elim : core.
+ +
+
+ +
+
    +
  • (mseq_lift_left f n) k = f (n+k) + +
  • +
+
+
+ +
+Definition seq_lift_left {O} (f:nat -> O) n := fun k => f (n+k)%nat.
+ +
+#[export] Instance mon_seq_lift_left
+  : forall n {O} {o:ord O} (f:nat -> O) {m:monotonic f}, monotonic (seq_lift_left f n).
+Qed.
+ +
+Definition mseq_lift_left : forall {O} {o:ord O} (f:nat -m> O) (n:nat), nat -m> O.
+Defined.
+ +
+Lemma mseq_lift_left_simpl : forall {O} {o:ord O} (f:nat -m> O) (n k:nat),
+    mseq_lift_left f n k = f (n+k)%nat.
+ +
+Lemma mseq_lift_left_le_compat : forall {O} {o:ord O} (f g:nat -m> O) (n:nat),
+             f g -> mseq_lift_left f n mseq_lift_left g n.
+#[export] Hint Resolve mseq_lift_left_le_compat : core.
+ +
+Add Parametric Morphism {O} {o:ord O} : (@mseq_lift_left _ o)
+  with signature Oeq eq Oeq
+  as mseq_lift_left_eq_compat.
+Qed.
+#[export] Hint Resolve mseq_lift_left_eq_compat : core.
+ +
+Add Parametric Morphism {O} {o:ord O}: (@seq_lift_left O)
+  with signature Oeq eq Oeq
+  as seq_lift_left_eq_compat.
+Qed.
+#[export] Hint Resolve seq_lift_left_eq_compat : core.
+ +
+
+ +
+
    +
  • (mseq_lift_right f n) k = f (k+n) + +
  • +
+
+
+ +
+Definition seq_lift_right {O} (f:nat -> O) n := fun k => f (k+n)%nat.
+ +
+#[export] Instance mon_seq_lift_right
+   : forall n {O} {o:ord O} (f:nat -> O) {m:monotonic f}, monotonic (seq_lift_right f n).
+Qed.
+ +
+Definition mseq_lift_right : forall {O} {o:ord O} (f:nat -m> O) (n:nat), nat -m> O.
+Defined.
+ +
+Lemma mseq_lift_right_simpl : forall {O} {o:ord O} (f:nat -m> O) (n k:nat),
+    mseq_lift_right f n k = f (k+n)%nat.
+ +
+Lemma mseq_lift_right_le_compat : forall {O} {o:ord O} (f g:nat -m> O) (n:nat),
+             f g -> mseq_lift_right f n mseq_lift_right g n.
+#[export] Hint Resolve mseq_lift_right_le_compat : core.
+ +
+Add Parametric Morphism {O} {o:ord O} : (mseq_lift_right (o:=o))
+   with signature Oeq eq Oeq
+   as mseq_lift_right_eq_compat.
+Qed.
+ +
+Add Parametric Morphism {O} {o:ord O}: (@seq_lift_right O)
+  with signature Oeq eq Oeq
+  as seq_lift_right_eq_compat.
+Qed.
+#[export] Hint Resolve seq_lift_right_eq_compat : core.
+ +
+Lemma mseq_lift_right_left : forall {O} {o:ord O} (f:nat -m> O) n,
+       mseq_lift_left f n mseq_lift_right f n.
+ +
+
+ +
+

Monotonicity and functions

+
    +
  • (shift f x) n = f n x + +
  • +
+
+
+ +
+#[export] Instance shift_mon_fun {A} `{o1:ord Oa} `{o2:ord Ob} (f:Oa -m> (A -> Ob)) :
+       forall x:A, monotonic (fun (y:Oa) => f y x).
+Qed.
+ +
+Definition shift {A} `{o1:ord Oa} `{o2:ord Ob} (f:Oa -m> (A -> Ob)) : A -> Oa -m> Ob
+   := fun x => (mon (fun y => f y x)).
+ +
+Infix " ◊" := shift (at level 30, no associativity) : O_scope.
+ +
+Lemma shift_simpl : forall {A} `{o1:ord Oa} `{o2:ord Ob} (f:Oa -m> (A -> Ob)) x y,
+      (f <o> x) y = f y x.
+ +
+Lemma shift_le_compat : forall {A} `{o1:ord Oa} `{o2:ord Ob} (f g:Oa -m> (A -> Ob)),
+             f g -> shift f shift g.
+#[export] Hint Resolve shift_le_compat : core.
+ +
+Add Parametric Morphism {A} `{o1:ord Oa} `{o2:ord Ob}
+    : (shift (A:=A) (Oa:=Oa) (Ob:=Ob)) with signature Oeq eq Oeq
+as shift_eq_compat.
+Qed.
+ +
+#[export] Instance ishift_mon {A} `{o1:ord Oa} `{o2:ord Ob} (f:A -> (Oa -m> Ob)) :
+       monotonic (fun (y:Oa) (x:A) => f x y).
+Qed.
+ +
+Definition ishift {A} `{o1:ord Oa} `{o2:ord Ob} (f:A -> (Oa -m> Ob)) : Oa -m> (A -> Ob)
+   := mon (fun (y:Oa) (x:A) => f x y) (fmonotonic:=ishift_mon f).
+ +
+Lemma ishift_simpl : forall {A} `{o1:ord Oa} `{o2:ord Ob} (f:A -> (Oa -m> Ob)) x y,
+      ishift f x y = f y x.
+ +
+Lemma ishift_le_compat : forall {A} `{o1:ord Oa} `{o2:ord Ob} (f g:A -> (Oa -m> Ob)),
+             f g -> ishift f ishift g.
+#[export] Hint Resolve ishift_le_compat : core.
+ +
+Add Parametric Morphism {A} `{o1:ord Oa} `{o2:ord Ob}
+    : (ishift (A:=A) (Oa:=Oa) (Ob:=Ob)) with signature Oeq eq Oeq
+as ishift_eq_compat.
+Qed.
+ +
+ +
+#[export] Instance shift_fun_mon `{o1:ord Oa} `{o2:ord Ob} `{o3:ord Oc} (f:Oa -m> (Ob -> Oc))
+     {m:forall x, monotonic (f x)} : monotonic (shift f).
+Qed.
+ +
+#[export] Instance shift_mon2 `{o1:ord Oa} `{o2:ord Ob} `{o3:ord Oc} (f:Oa -m> Ob -m> Oc)
+     : monotonic2 (fun x y => f y x).
+Qed.
+#[export] Hint Resolve shift_mon_fun shift_fun_mon shift_mon2 : core.
+ +
+Definition mshift `{o1:ord Oa} `{o2:ord Ob} `{o3:ord Oc} (f:Oa -m> Ob -m> Oc)
+    : Ob -m> Oa -m> Oc := mon2 (fun x y => f y x).
+ +
+
+ +
+
    +
  • id c = c + +
  • +
+
+
+ +
+Definition id O {o:ord O} : O -> O := fun x => x.
+ +
+#[export] Instance mon_id : forall {O:Type} {o:ord O}, monotonic (id O).
+Qed.
+ +
+
+ +
+
    +
  • (cte c) n = c + +
  • +
+
+
+ +
+Definition cte A `{o1:ord Oa} (c:Oa) : A -> Oa := fun x => c.
+ +
+#[export] Instance mon_cte : forall `{o1:ord Oa} `{o2:ord Ob} (c:Ob), monotonic (cte Oa c).
+Qed.
+ +
+Definition mseq_cte {O} {o:ord O} (c:O) : nat -m> O := mon (cte nat c).
+ +
+Add Parametric Morphism `{o1:ord Oa} `{o2:ord Ob} : (@cte Oa Ob _)
+  with signature Ole Ole as cte_le_compat.
+Qed.
+ +
+Add Parametric Morphism `{o1:ord Oa} `{o2:ord Ob} : (@cte Oa Ob _)
+  with signature Oeq Oeq as cte_eq_compat.
+Qed.
+ +
+#[export] Instance mon_diag `{o1:ord Oa} `{o2:ord Ob}(f:Oa -m> (Oa -m> Ob))
+     : monotonic (fun x => f x x).
+Qed.
+#[export] Hint Resolve mon_diag : core.
+ +
+Definition diag `{o1:ord Oa} `{o2:ord Ob}(f:Oa -m> (Oa -m> Ob)) : Oa-m> Ob
+     := mon (fun x => f x x).
+ +
+Lemma fmon_diag_simpl : forall `{o1:ord Oa} `{o2:ord Ob} (f:Oa -m> (Oa -m> Ob)) (x:Oa),
+             diag f x = f x x.
+ +
+Lemma diag_le_compat : forall `{o1:ord Oa} `{o2:ord Ob} (f g:Oa -m> (Oa -m> Ob)),
+             f g -> diag f diag g.
+#[export] Hint Resolve diag_le_compat : core.
+ +
+Add Parametric Morphism `{o1:ord Oa} `{o2:ord Ob} : (diag (Oa:=Oa) (Ob:=Ob))
+   with signature Oeq Oeq as diag_eq_compat.
+Qed.
+ +
+Lemma diag_shift : forall `{o1:ord Oa} `{o2:ord Ob} (f: Oa -m> Oa -m> Ob),
+                   diag f diag (mshift f).
+ +
+#[export] Hint Resolve diag_shift : core.
+ +
+Lemma mshift_simpl : forall `{o1:ord Oa} `{o2:ord Ob} `{o3:ord Oc}
+      (h:Oa -m> Ob -m> Oc) (x : Ob) (y:Oa), mshift h x y = h y x.
+ +
+Lemma mshift_le_compat : forall `{o1:ord Oa} `{o2:ord Ob} `{o3:ord Oc}
+      (f g:Oa -m> Ob -m> Oc), f g -> mshift f mshift g.
+#[export] Hint Resolve mshift_le_compat : core.
+ +
+Add Parametric Morphism `{o1:ord Oa} `{o2:ord Ob} `{o3:ord Oc} : (@mshift Oa _ Ob _ Oc _)
+     with signature Oeq Oeq as mshift_eq_compat.
+Qed.
+ +
+Lemma mshift2_eq : forall `{o1:ord Oa} `{o2:ord Ob} `{o3:ord Oc} (h : Oa -m> Ob -m> Oc),
+             mshift (mshift h) h.
+ +
+
+ +
+
    +
  • (f@g) x = f (g x) + +
  • +
+
+
+ +
+#[export] Instance monotonic_comp `{o1:ord Oa} `{o2:ord Ob} `{o3:ord Oc}
+   (f:Ob -> Oc){mf : monotonic f} (g:Oa -> Ob){mg:monotonic g} : monotonic (fun x => f (g x)).
+Qed.
+#[export] Hint Resolve monotonic_comp : core.
+ +
+#[export] Instance monotonic_comp_mon `{o1:ord Oa} `{o2:ord Ob} `{o3:ord Oc}
+   (f:Ob -m> Oc)(g:Oa -m> Ob) : monotonic (fun x => f (g x)).
+Qed.
+#[export] Hint Resolve monotonic_comp_mon : core.
+ +
+Definition comp `{o1:ord Oa} `{o2:ord Ob} `{o3:ord Oc} (f:Ob -m> Oc) (g:Oa -m> Ob)
+       : Oa -m> Oc := mon (fun x => f (g x)).
+ +
+Infix "@" := comp (at level 35) : O_scope.
+ +
+Lemma comp_simpl : forall `{o1:ord Oa} `{o2:ord Ob} `{o3:ord Oc}
+      (f:Ob -m> Oc) (g:Oa -m> Ob) (x:Oa), (f@g) x = f (g x).
+ +
+Add Parametric Morphism `{o1:ord Oa} `{o2:ord Ob} `{o3:ord Oc}: (@comp Oa _ Ob _ Oc _)
+    with signature Ole ++> Ole ++> Ole
+    as comp_le_compat.
+Qed.
+ +
+#[export] Hint Immediate comp_le_compat : core.
+ +
+Add Parametric Morphism `{o1:ord Oa} `{o2:ord Ob} `{o3:ord Oc} : (@comp Oa _ Ob _ Oc _)
+    with signature Oeq Oeq Oeq
+    as comp_eq_compat.
+Qed.
+ +
+#[export] Hint Immediate comp_eq_compat : core.
+ +
+
+ +
+
    +
  • (f@2 g) h x = f (g x) (h x) + +
  • +
+
+
+ +
+#[export] Instance mon_app2 `{o1:ord Oa} `{o2:ord Ob} `{o3:ord Oc} `{o4:ord Od}
+      (f:Ob -> Oc -> Od) (g:Oa -> Ob) (h:Oa -> Oc)
+      {mf:monotonic2 f}{mg:monotonic g} {mh:monotonic h}
+      : monotonic (fun x => f (g x) (h x)).
+Qed.
+ +
+#[export] Instance mon_app2_mon `{o1:ord Oa} `{o2:ord Ob} `{o3:ord Oc} `{o4:ord Od}
+      (f:Ob -m> Oc -m> Od) (g:Oa -m> Ob) (h:Oa -m> Oc)
+      : monotonic (fun x => f (g x) (h x)).
+Qed.
+ +
+Definition app2 `{o1:ord Oa} `{o2:ord Ob} `{o3:ord Oc} `{o4:ord Od}
+        (f:Ob -m> Oc -m> Od) (g:Oa -m> Ob) (h:Oa -m> Oc) : Oa -m> Od
+        := mon (fun x => f (g x) (h x)).
+ +
+Infix "@²" := app2 (at level 70) : O_scope.
+ +
+Add Parametric Morphism `{o1:ord Oa} `{o2:ord Ob} `{o3:ord Oc} `{o4:ord Od}:
+        (@app2 Oa _ Ob _ Oc _ Od _)
+    with signature Ole ++> Ole ++> Ole ++> Ole
+    as app2_le_compat.
+Qed.
+ +
+#[export] Hint Immediate app2_le_compat : core.
+ +
+Add Parametric Morphism `{o1:ord Oa} `{o2:ord Ob} `{o3:ord Oc} `{o4:ord Od}:
+        (@app2 Oa _ Ob _ Oc _ Od _)
+    with signature Oeq Oeq Oeq Oeq
+    as app2_eq_compat.
+Qed.
+ +
+#[export] Hint Immediate app2_eq_compat : core.
+ +
+Lemma app2_simpl :
+    forall `{o1:ord Oa} `{o2:ord Ob} `{o3:ord Oc} `{o4:ord Od}
+            (f:Ob -m> Oc -m> Od) (g:Oa -m> Ob) (h:Oa -m> Oc) (x:Oa),
+    (f@2 g) h x = f (g x) (h x).
+ +
+Lemma comp_monotonic_right :
+      forall `{o1:ord Oa} `{o2:ord Ob} `{o3:ord Oc} (f: Ob -m> Oc) (g1 g2:Oa -m> Ob),
+               g1 g2 -> f @ g1 f @ g2.
+#[export] Hint Resolve comp_monotonic_right : core.
+ +
+Lemma comp_monotonic_left :
+      forall `{o1:ord Oa} `{o2:ord Ob} `{o3:ord Oc} (f1 f2: Ob -m> Oc) (g:Oa -m> Ob),
+               f1 f2 -> f1 @ g f2 @ g.
+#[export] Hint Resolve comp_monotonic_left : core.
+ +
+#[export] Instance comp_monotonic2 : forall `{o1:ord Oa} `{o2:ord Ob} `{o3:ord Oc},
+             monotonic2 (@comp Oa _ Ob _ Oc _).
+Qed.
+#[export] Hint Resolve comp_monotonic2 : core.
+ +
+Definition fcomp `{o1:ord Oa} `{o2:ord Ob} `{o3:ord Oc} :
+   (Ob -m> Oc) -m> (Oa -m> Ob) -m> (Oa -m> Oc) := mon2 (@comp Oa _ Ob _ Oc _).
+ +
+Arguments fcomp Oa [o1] Ob [o2] Oc {o3}.
+ +
+Lemma fcomp_simpl : forall `{o1:ord Oa} `{o2:ord Ob} `{o3:ord Oc}
+      (f:Ob -m> Oc) (g:Oa -m> Ob), fcomp _ _ _ f g = f@g.
+ +
+Definition fcomp2 `{o1:ord Oa} `{o2:ord Ob} `{o3:ord Oc} `{o4:ord Od} :
+        (Oc -m> Od) -m> (Oa -m> Ob -m> Oc) -m> (Oa -m> Ob -m> Od):=
+        (fcomp Oa (Ob -m> Oc) (Ob -m> Od))@(fcomp Ob Oc Od).
+ +
+Arguments fcomp2 Oa [o1] Ob [o2] Oc [o3] Od {o4}.
+ +
+Lemma fcomp2_simpl : forall `{o1:ord Oa} `{o2:ord Ob} `{o3:ord Oc} `{o4:ord Od}
+      (f:Oc -m> Od) (g:Oa -m> Ob -m> Oc) (x:Oa)(y:Ob), fcomp2 _ _ _ _ f g x y = f (g x y).
+ +
+Lemma fmon_le_compat2 : forall `{o1:ord Oa} `{o2:ord Ob} `{o3:ord Oc}
+      (f: Oa -m> Ob -m> Oc) (x y:Oa) (z t:Ob), xy -> z t -> f x z f y t.
+#[export] Hint Resolve fmon_le_compat2 : core.
+ +
+Lemma fmon_cte_comp : forall `{o1:ord Oa} `{o2:ord Ob} `{o3:ord Oc}
+      (c:Oc)(f:Oa -m> Ob), (mon (cte Ob c)) @ f mon (cte Oa c).
+ +
+
+ +
+

Abstract relational notion of lubs

+ +
+
+Record islub O (o:ord O) I (f:I -> O) (x:O) : Prop := mk_islub
+     { le_islub : forall i, f i x;
+       islub_le : forall y, (forall i, f i y) -> x y}.
+Arguments islub [O o I] f x.
+Arguments le_islub [O o I f x].
+Arguments islub_le [O o I f x].
+ +
+Definition isglb O (o:ord O) I (f:I -> O) (x:O) : Prop
+     := islub (o:=Iord O) f x.
+Arguments isglb [O o I].
+ +
+Lemma le_isglb O (o:ord O) I (f:I -> O) (x:O) :
+         isglb f x -> forall i, x f i.
+ +
+Lemma isglb_le O (o:ord O) I (f:I -> O) (x:O) :
+         isglb f x -> forall y, (forall i, y f i) -> y x.
+Arguments le_isglb [O o I f x].
+Arguments isglb_le [O o I f x].
+ +
+Lemma mk_isglb O (o:ord O) I (f:I -> O) (x:O) :
+      (forall i, x f i) -> (forall y, (forall i, y f i) -> y x)
+      -> isglb f x.
+ +
+Lemma islub_eq_compat O (o:ord O) I (f g:I -> O) (x y:O):
+      fg -> x y -> islub f x -> islub g y.
+ +
+Lemma islub_eq_compat_left O (o:ord O) I (f g:I -> O) (x:O):
+      fg -> islub f x -> islub g x.
+ +
+Lemma islub_eq_compat_right O (o:ord O) I (f:I -> O) (x y:O):
+       x y -> islub f x -> islub f y.
+ +
+Lemma isglb_eq_compat O (o:ord O) I (f g:I -> O) (x y:O):
+      fg -> x y -> isglb f x -> isglb g y.
+ +
+Lemma isglb_eq_compat_left O (o:ord O) I (f g:I -> O) (x:O):
+      fg -> isglb f x -> isglb g x.
+ +
+Lemma isglb_eq_compat_right O (o:ord O) I (f:I -> O) (x y:O):
+       x y -> isglb f x -> isglb f y.
+ +
+Add Parametric Morphism {O} {o:ord O} I : (@islub _ o I)
+with signature Oeq Oeq iff
+as islub_morphism.
+Qed.
+ +
+Add Parametric Morphism {O} {o:ord O} I : (@isglb _ o I)
+with signature Oeq Oeq iff
+as isglb_morphism.
+Qed.
+ +
+Add Parametric Morphism {O} {o:ord O} I : (@islub _ o I)
+with signature (@pointwise_relation I O (@Oeq _ _)) Oeq iff
+as islub_morphism_ext.
+Qed.
+ +
+Add Parametric Morphism {O} {o:ord O} I : (@isglb _ o I)
+with signature (@pointwise_relation I O (@Oeq _ _)) Oeq iff
+as isglb_morphism_ext.
+Qed.
+ +
+Lemma islub_incr_ext {O} {o:ord O} (f :nat -> O) (x:O) (n:nat):
+      (forall k, f k f (S k)) -> islub f x -> islub (fun k => f (n + k)) x.
+ +
+Lemma islub_incr_lift {O} {o:ord O} (f :nat -> O) (x:O) (n:nat):
+      (forall k, f k f (S k)) -> islub (fun k => f (n + k)) x -> islub f x.
+ +
+Lemma isglb_decr_ext {O} {o:ord O} (f :nat -> O) (x:O) (n:nat):
+      (forall k, f (S k) f k) -> isglb f x -> isglb (fun k => f (n + k)) x.
+ +
+Lemma isglb_decr_lift {O} {o:ord O} (f :nat -> O) (x:O) (n:nat):
+      (forall k, f (S k) f k) -> isglb (fun k => f (n + k)) x -> isglb f x.
+ +
+#[export] Hint Resolve islub_incr_ext isglb_decr_ext : core.
+ +
+Lemma islub_exch {O} {o:ord O} (F :nat -> nat -> O) (f g : nat -> O)(x:O) :
+      (forall m, islub (fun n => F n m) (f m))
+       -> (forall n, islub (F n) (g n)) -> islub f x -> islub g x.
+ +
+Lemma islub_decr {O} {o:ord O} {I} (f g : I -> O) (x y : O) :
+      (f g) -> islub f x -> islub g y -> x y.
+ +
+Lemma islub_unique_eq {O} {o:ord O} {I} (f g : I -> O) (x y : O) :
+      (f g) -> islub f x -> islub g y -> x y.
+ +
+Lemma islub_unique {O} {o:ord O} {I} (f : I -> O) (x y : O) :
+           islub f x -> islub f y -> x y.
+ +
+Lemma islub_fun_intro O (o:ord O) {I A} (F : I -> A -> O) (f : A -> O) :
+           (forall x, islub (fun i => F i x) (f x)) -> islub F f.
+ +
+
+ +
+

Basic operators of omega-cpos

+
    +
  • Constant : 0 +
      +
    • lub : limit of monotonic sequences + +
    • +
    + +
  • +
+ +
+
+ +
+Generalizable Variables D.
+ +
+
+ +
+

Definition of cpos

+ +
+
+Class cpo `{o:ord D} : Type := mk_cpo
+  {D0 : D; lub: forall (f:nat -m> D), D;
+   Dbot : forall x:D, D0 x;
+   le_lub : forall (f : nat -m> D) (n:nat), f n lub f;
+   lub_le : forall (f : nat -m> D) (x:D), (forall n, f n x) -> lub f x}.
+ +
+Arguments cpo D {o}.
+ +
+Notation "0" := D0 : O_scope.
+ +
+#[export] Hint Resolve Dbot le_lub lub_le : core.
+ +
+Definition mon_ord_equiv : forall `{o:ord D1} `{o1:ord D2} {o2:ord D2},
+      eq_ord o1 o2 -> fmon D1 D2 (o2:=o2) -> fmon D1 D2 (o2:=o1).
+Defined.
+ +
+Lemma mon_ord_equiv_simpl : forall `{o:ord D1} `{o1:ord D2} {o2:ord D2}
+      (H:eq_ord o1 o2) (f:fmon D1 D2 (o2:=o2)) (x:D1),
+      mon_ord_equiv H f x = f x.
+ +
+Definition cpo_ord_equiv `{o1:ord D} (o2:ord D)
+       : eq_ord o1 o2 -> cpo (o:=o1) D -> cpo (o:=o2) D.
+Defined.
+ +
+
+ +
+

Least upper bounds

+ +
+
+ +
+Add Parametric Morphism `{c:cpo D} : (lub (cpo:=c))
+             with signature Ole ++> Ole as lub_le_compat.
+Qed.
+#[export] Hint Resolve lub_le_compat : core.
+ +
+Add Parametric Morphism `{c:cpo D}: (lub (cpo:=c))
+      with signature Oeq Oeq as lub_eq_compat.
+Qed.
+#[export] Hint Resolve lub_eq_compat : core.
+ +
+Notation "'mlub' f" := (lub (mon f)) (at level 60) : O_scope .
+ +
+Lemma mlub_le_compat : forall `{c:cpo D} (f g:nat -> D) {mf:monotonic f} {mg:monotonic g},
+                f g -> mlub f mlub g.
+#[export] Hint Resolve mlub_le_compat : core.
+ +
+Lemma mlub_eq_compat : forall `{c:cpo D} (f g:nat -> D) {mf:monotonic f} {mg:monotonic g},
+                f g -> mlub f mlub g.
+#[export] Hint Resolve mlub_eq_compat : core.
+ +
+Lemma le_mlub : forall `{c:cpo D} (f:nat -> D) {m:monotonic f} (n:nat), f n mlub f.
+ +
+Lemma mlub_le : forall `{c:cpo D}(f:nat -> D) {m:monotonic f}(x:D), (forall n, f n x) -> mlub f x.
+#[export] Hint Resolve le_mlub mlub_le : core.
+ +
+Lemma islub_mlub : forall `{c:cpo D}(f:nat -> D) {m:monotonic f},
+            islub f (mlub f).
+ +
+Lemma islub_lub : forall `{c:cpo D}(f:nat -m> D),
+            islub f (lub f).
+ +
+#[export] Hint Resolve islub_mlub islub_lub : core.
+ +
+#[export] Instance lub_mon `{c:cpo D} : monotonic lub.
+Qed.
+ +
+Definition Lub `{c:cpo D} : (nat -m> D) -m> D := mon lub.
+ +
+#[export] Instance monotonic_lub_comp {O} {o:ord O} `{c:cpo D} (f:O -> nat -> D){mf:monotonic2 f}:
+         monotonic (fun x => mlub (f x)).
+Qed.
+ +
+Lemma lub_cte : forall `{c:cpo D} (d:D), mlub (cte nat d) d.
+ +
+#[export] Hint Resolve lub_cte : core.
+ +
+Lemma mlub_lift_right : forall `{c:cpo D} (f:nat -m> D) n,
+      lub f mlub (seq_lift_right f n).
+#[export] Hint Resolve mlub_lift_right : core.
+ +
+Lemma mlub_lift_left : forall `{c:cpo D} (f:nat -m> D) n,
+      lub f mlub (seq_lift_left f n).
+#[export] Hint Resolve mlub_lift_left : core.
+ +
+Lemma lub_lift_right : forall `{c:cpo D} (f:nat -m> D) n,
+      lub f lub (mseq_lift_right f n).
+#[export] Hint Resolve lub_lift_right : core.
+ +
+Lemma lub_lift_left : forall `{c:cpo D} (f:nat -m> D) n,
+      lub f lub (mseq_lift_left f n).
+#[export] Hint Resolve lub_lift_left : core.
+ +
+Lemma lub_le_lift : forall `{c:cpo D} (f g:nat -m> D)
+      (n:nat), (forall k, n k -> f k g k) -> lub f lub g.
+ +
+Lemma lub_eq_lift : forall `{c:cpo D} (f g:nat -m> D) {m:monotonic f} {m':monotonic g}
+      (n:nat), (forall k, n k -> f k g k) -> lub f lub g.
+ +
+Lemma lub_seq_eq : forall `{c:cpo D} (f:nat -> D) (g: nat-m> D) (H:f g),
+      lub g lub (mon_fun_subst f g H).
+ +
+Lemma lub_Olt : forall `{c:cpo D} (f:nat -m> D) (k:D),
+      k < lub f -> ~ (forall n, f n k).
+ +
+
+ +
+
    +
  • (lub_fun h) x = lub_n (h n x) + +
  • +
+
+
+Definition lub_fun {A} `{c:cpo D} (h : nat -m> (A -> D)) : A -> D
+               := fun x => mlub (h <o> x).
+ +
+ +
+#[export] Instance lub_shift_mon {O} {o:ord O} `{c:cpo D} (h : nat -m> (O -m> D))
+          : monotonic (fun (x:O) => lub (mshift h x)).
+Qed.
+#[export] Hint Resolve lub_shift_mon : core.
+ +
+
+ +
+

Functional cpos

+ +
+
+ +
+#[export] Program Instance fcpo {A: Type} `(c:cpo D) : cpo (A -> D) :=
+  {D0 := fun x:A => (0:D); lub := fun f => lub_fun f}.
+ +
+Lemma fcpo_lub_simpl : forall {A} `{c:cpo D} (h:nat -m> (A -> D))(x:A),
+      (lub h) x = lub (h <o> x).
+ +
+Lemma lub_ishift : forall {A} `{c:cpo D} (h:A -> (nat -m> D)),
+       lub (ishift h) fun x => lub (h x).
+ +
+
+ +
+

Cpo of monotonic functions

+ +
+
+ +
+#[export] Program Instance fmon_cpo {O} {o:ord O} `{c:cpo D} : cpo (O -m> D) :=
+  { D0 := mon (cte O (0:D));
+    lub := fun h:nat -m> (O -m> D) => mon (fun (x:O) => lub (cpo:=c) (mshift h x))}.
+ +
+Lemma fmon_lub_simpl : forall {O} {o:ord O} `{c:cpo D}
+      (h:nat -m> (O -m> D))(x:O), (lub h) x = lub (mshift h x).
+#[export] Hint Resolve fmon_lub_simpl : core.
+ +
+#[export] Instance mon_fun_lub : forall {O} {o:ord O} `{c:cpo D}
+         (h:nat -m> (O -> D)) {mh:forall n, monotonic (h n)}, monotonic (lub h).
+Qed.
+ +
+ +
+
+ +
+Link between lubs on ordinary functions and monotonic functions +
+
+ +
+Lemma lub_mon_fcpo : forall {O} {o:ord O} `{c:cpo D} (h:nat -m> (O -m> D)),
+      lub h mon (lub (mfun2 h)).
+ +
+Lemma lub_fcpo_mon : forall {O} {o:ord O} `{c:cpo D} (h:nat -m> (O -> D))
+     {mh:forall x, monotonic (h x)}, lub h lub (mon2 h).
+ +
+Lemma double_lub_diag : forall `{c:cpo D} (h : nat -m> nat -m> D),
+        lub (lub h) lub (diag h).
+#[export] Hint Resolve double_lub_diag : core.
+ +
+Lemma double_lub_shift : forall `{c:cpo D} (h : nat -m> nat -m> D),
+        lub (lub h) lub (lub (mshift h)).
+#[export] Hint Resolve double_lub_shift : core.
+ +
+ +
+
+ +
+

Continuity

+ +
+
+ +
+Lemma lub_comp_le :
+    forall `{c1:cpo D1} `{c2:cpo D2} (f:D1 -m> D2) (h : nat -m> D1),
+                lub (f @ h) f (lub h).
+#[export] Hint Resolve lub_comp_le : core.
+ +
+Lemma lub_app2_le : forall `{c1:cpo D1} `{c2:cpo D2} `{c3:cpo D3}
+        (F:D1 -m> D2 -m> D3) (f : nat -m> D1) (g: nat -m> D2),
+        lub ((F f) g) F (lub f) (lub g).
+#[export] Hint Resolve lub_app2_le : core.
+ +
+Class continuous `{c1:cpo D1} `{c2:cpo D2} (f:D1 -m> D2) :=
+    cont_intro : forall (h : nat -m> D1), f (lub h) lub (f @ h).
+ +
+#[export] Typeclasses Opaque continuous.
+ +
+Lemma continuous_eq_compat : forall `{c1:cpo D1} `{c2:cpo D2}(f g:D1 -m> D2),
+                  f g -> continuous f -> continuous g.
+ +
+Add Parametric Morphism `{c1:cpo D1} `{c2:cpo D2} : (@continuous D1 _ _ D2 _ _)
+     with signature Oeq iff
+as continuous_eq_compat_iff.
+Qed.
+ +
+Lemma lub_comp_eq :
+    forall `{c1:cpo D1} `{c2:cpo D2} (f:D1 -m> D2) (h : nat -m> D1),
+             continuous f -> f (lub h) lub (f @ h).
+#[export] Hint Resolve lub_comp_eq : core.
+ +
+
+ +
+
    +
  • mon0 x == 0 + +
  • +
+
+
+#[export] Instance cont0 `{c1:cpo D1} `{c2:cpo D2} : continuous (mon (cte D1 (0:D2))).
+Qed.
+ +
+
+ +
+
    +
  • double_app f g n m = f m (g n) + +
  • +
+
+
+Definition double_app `{o1:ord Oa} `{o2:ord Ob} `{o3:ord Oc} `{o4: ord Od}
+      (f:Oa -m> Oc -m> Od) (g:Ob -m> Oc)
+        : Ob -m> (Oa -m> Od) := mon ((mshift f) @ g).
+ +
+ +
+
+ +
+

Continuity

+ +
+
+ +
+Class continuous2 `{c1:cpo D1} `{c2:cpo D2} `{c3:cpo D3} (F:D1 -m> D2 -m> D3) :=
+continuous2_intro : forall (f : nat -m> D1) (g :nat -m> D2),
+                 F (lub f) (lub g) lub ((F f) g).
+ +
+Lemma continuous2_app : forall `{c1:cpo D1} `{c2:cpo D2} `{c3:cpo D3}
+            (F : D1 -m> D2 -m> D3) {cF:continuous2 F} (k:D1), continuous (F k).
+ +
+#[export] Typeclasses Opaque continuous2.
+ +
+Lemma continuous2_eq_compat :
+   forall `{c1:cpo D1} `{c2:cpo D2} `{c3:cpo D3} (f g : D1 -m> D2 -m> D3),
+   f g -> continuous2 f -> continuous2 g.
+ +
+Lemma continuous2_continuous : forall `{c1:cpo D1} `{c2:cpo D2} `{c3:cpo D3}
+           (F : D1 -m> D2 -m> D3), continuous2 F -> continuous F.
+#[export] Hint Immediate continuous2_continuous : core.
+ +
+Lemma continuous2_left : forall `{c1:cpo D1} `{c2:cpo D2} `{c3:cpo D3}
+             (F : D1 -m> D2 -m> D3) (h:nat -m> D1) (x:D2),
+             continuous F -> F (lub h) x lub (mshift (F @ h) x).
+ +
+Lemma continuous2_right : forall `{c1:cpo D1} `{c2:cpo D2} `{c3:cpo D3}
+             (F : D1 -m> D2 -m> D3) (x:D1)(h:nat -m> D2),
+             continuous2 F -> F x (lub h) lub (F x @ h).
+ +
+Lemma continuous_continuous2 : forall `{c1:cpo D1} `{c2:cpo D2} `{c3:cpo D3}
+      (F : D1 -m> D2 -m> D3) (cFr: forall k:D1, continuous (F k)) (cF: continuous F),
+      continuous2 F.
+ +
+#[export] Hint Resolve continuous2_app continuous2_continuous continuous_continuous2 : core.
+ +
+Lemma lub_app2_eq : forall `{c1:cpo D1} `{c2:cpo D2} `{c3:cpo D3}
+      (F : D1 -m> D2 -m> D3) {cFr:forall k:D1, continuous (F k)} {cF : continuous F},
+      forall (f:nat -m> D1) (g:nat -m> D2),
+      F (lub f) (lub g) lub ((F@2 f) g).
+ +
+Lemma lub_cont2_app2_eq : forall `{c1:cpo D1} `{c2:cpo D2} `{c3:cpo D3}
+      (F : D1 -m> D2 -m> D3){cF : continuous2 F},
+      forall (f:nat -m> D1) (g:nat -m> D2),
+      F (lub f) (lub g) lub ((F@2 f) g).
+ +
+Lemma mshift_continuous2 : forall `{c1:cpo D1} `{c2:cpo D2} `{c3:cpo D3}
+             (F : D1 -m> D2 -m> D3), continuous2 F -> continuous2 (mshift F).
+#[export] Hint Resolve mshift_continuous2 : core.
+ +
+Lemma monotonic_sym : forall `{o1:ord D1} `{o2:ord D2} (F : D1 -> D1 -> D2),
+      (forall x y, F x y F y x) -> (forall k:D1, monotonic (F k)) -> monotonic F.
+#[export] Hint Immediate monotonic_sym : core.
+ +
+Lemma monotonic2_sym : forall `{o1:ord D1} `{o2:ord D2} (F : D1 -> D1 -> D2),
+      (forall x y, F x y F y x) -> (forall k:D1, monotonic (F k)) -> monotonic2 F.
+#[export] Hint Immediate monotonic2_sym : core.
+ +
+Lemma continuous_sym : forall `{c1:cpo D1} `{c2:cpo D2} (F : D1 -m> D1 -m> D2),
+      (forall x y, F x y F y x) -> (forall k:D1, continuous (F k)) -> continuous F.
+ +
+Lemma continuous2_sym : forall `{c1:cpo D1} `{c2:cpo D2} (F : D1 -m>D1 -m>D2),
+      (forall x y, F x y F y x) -> (forall k, continuous (F k)) -> continuous2 F.
+#[export] Hint Resolve continuous2_sym : core.
+ +
+
+ +
+
    +
  • continuity is preserved by composition + +
  • +
+
+
+ +
+Lemma continuous_comp : forall `{c1:cpo D1} `{c2:cpo D2} `{c3:cpo D3}
+   (f:D2 -m> D3)(g:D1 -m> D2), continuous f -> continuous g -> continuous (mon (f@g)).
+#[export] Hint Resolve continuous_comp : core.
+ +
+Lemma continuous2_comp : forall `{c1:cpo D1} `{c2:cpo D2} `{c3:cpo D3} `{c4:cpo D4}
+  (f:D1 -m> D2)(g:D2 -m> D3 -m> D4),
+  continuous f -> continuous2 g -> continuous2 (g @ f).
+#[export] Hint Resolve continuous2_comp : core.
+ +
+Lemma continuous2_comp2 : forall `{c1:cpo D1} `{c2:cpo D2} `{c3:cpo D3} `{c4:cpo D4}
+    (f:D3 -m> D4)(g:D1 -m> D2 -m> D3),
+    continuous f -> continuous2 g -> continuous2 (fcomp2 D1 D2 D3 D4 f g).
+#[export] Hint Resolve continuous2_comp2 : core.
+ +
+Lemma continuous2_app2 : forall `{c1:cpo D1} `{c2:cpo D2} `{c3:cpo D3} `{c4:cpo D4}
+    (F : D1 -m> D2 -m> D3) (f:D4 -m> D1)(g:D4 -m> D2), continuous2 F ->
+    continuous f -> continuous g -> continuous ((F f) g).
+#[export] Hint Resolve continuous2_app2 : core.
+ +
+
+ +
+

Cpo of continuous functions

+ +
+
+ +
+#[export] Instance lub_continuous `{c1:cpo D1} `{c2:cpo D2}
+     (f:nat -m> (D1 -m> D2)) {cf:forall n, continuous (f n)}
+     : continuous (lub f).
+Qed.
+ +
+Record fcont `{c1:cpo D1} `{c2:cpo D2}: Type
+     := cont {fcontm :> D1 -m> D2; fcontinuous : continuous fcontm}.
+#[export] Existing Instance fcontinuous.
+ +
+#[export] Hint Resolve fcontinuous : core.
+Arguments fcont D1 [o][c1] D2 {o0}{c2}.
+Arguments cont [D1][o][c1] [D2][o0][c2] fcontm {fcontinuous}.
+ +
+ +
+Infix "->" := fcont (at level 30, right associativity) : O_scope.
+ +
+Definition fcont_fun `{c1:cpo D1} `{c2:cpo D2} (f:D1 -c> D2) : D1 -> D2 := fun x => f x.
+ +
+#[export] Program Instance fcont_ord `{c1:cpo D1} `{c2:cpo D2} : ord (D1 -c> D2)
+  := {Oeq := fun f g => forall x, f x g x; Ole := fun f g => forall x, f x g x}.
+ +
+Lemma fcont_le_intro : forall `{c1:cpo D1} `{c2:cpo D2} (f g : D1 -c> D2),
+    (forall x, f x g x) -> f g.
+ +
+Lemma fcont_le_elim : forall `{c1:cpo D1} `{c2:cpo D2} (f g : D1 -c> D2),
+     f g -> forall x, f x g x.
+ +
+Lemma fcont_eq_intro : forall `{c1:cpo D1} `{c2:cpo D2} (f g : D1 -c> D2),
+      (forall x, f x g x) -> f g.
+ +
+Lemma fcont_eq_elim : forall `{c1:cpo D1} `{c2:cpo D2} (f g : D1 -c> D2),
+       f g -> forall x, f x g x.
+ +
+Lemma fcont_le : forall `{c1:cpo D1} `{c2:cpo D2} (f : D1 -c> D2) (x y : D1),
+            x y -> f x f y.
+#[export] Hint Resolve fcont_le : core.
+ +
+Lemma fcont_eq : forall `{c1:cpo D1} `{c2:cpo D2} (f : D1 -c> D2) (x y : D1),
+            x y -> f x f y.
+#[export] Hint Resolve fcont_eq : core.
+ +
+Definition fcont0 D1 `{c1:cpo D1} D2 `{c2:cpo D2} : D1 -c> D2 := cont (mon (cte D1 (0:D2))).
+ +
+#[export] Instance fcontm_monotonic : forall `{c1:cpo D1} `{c2:cpo D2},
+         monotonic (fcontm (D1:=D1) (D2:=D2)).
+Qed.
+ +
+Definition Fcontm D1 `{c1:cpo D1} D2 `{c2:cpo D2} : (D1 -c> D2) -m> (D1 -m> D2) :=
+     mon (fcontm (D1:=D1) (D2:=D2)).
+ +
+#[export] Instance fcont_lub_continuous :
+    forall `{c1:cpo D1} `{c2:cpo D2} (f:nat -m> (D1 -c> D2)),
+    continuous (lub (D:=D1 -m> D2) (Fcontm D1 D2 @ f)).
+Qed.
+ +
+Definition fcont_lub `{c1:cpo D1} `{c2:cpo D2} : (nat -m> (D1 -c> D2)) -> D1 -c> D2 :=
+     fun f => cont (lub (D:=D1 -m> D2) (Fcontm D1 D2 @ f)).
+ +
+#[export] Program Instance fcont_cpo `{c1:cpo D1} `{c2:cpo D2} : cpo (D1-c> D2) :=
+  {D0:=fcont0 D1 D2; lub:=fcont_lub (D1:=D1) (D2:=D2)}.
+ +
+Definition fcont_app {O} {o:ord O} `{c1:cpo D1} `{c2:cpo D2} (f: O -m> D1 -c> D2) (x:D1) : O -m> D2
+         := mshift (Fcontm D1 D2 @ f) x.
+ +
+Infix "<_>" := fcont_app (at level 70) : O_scope.
+ +
+Lemma fcont_app_simpl : forall {O} {o:ord O} `{c1:cpo D1} `{c2:cpo D2} (f: O -m> D1 -c> D2)(x:D1)(y:O),
+            (f <_> x) y = f y x.
+ +
+#[export] Instance ishift_continuous :
+   forall {A:Type} `{c1:cpo D1} `{c2:cpo D2} (f: A -> (D1 -c> D2)),
+          continuous (ishift f).
+Qed.
+ +
+Definition fcont_ishift {A:Type} `{c1:cpo D1} `{c2:cpo D2} (f: A -> (D1 -c> D2))
+        : D1 -c> (A -> D2) := cont _ (fcontinuous:=ishift_continuous f).
+ +
+#[export] Instance mshift_continuous : forall {O} {o:ord O} `{c1:cpo D1} `{c2:cpo D2} (f: O -m> (D1 -c> D2)),
+         continuous (mshift (Fcontm D1 D2 @ f)).
+Qed.
+ +
+Definition fcont_mshift {O} {o:ord O} `{c1:cpo D1} `{c2:cpo D2} (f: O -m> (D1 -c> D2))
+   : D1 -c> O -m> D2 := cont (mshift (Fcontm D1 D2 @ f)).
+ +
+Lemma fcont_app_continuous :
+       forall {O} {o:ord O} `{c1:cpo D1} `{c2:cpo D2} (f: O -m> D1 -c> D2) (h:nat -m> D1),
+            f <_> (lub h) lub (D:=O -m> D2) ((fcont_mshift f) @ h).
+ +
+Lemma fcont_lub_simpl : forall `{c1:cpo D1} `{c2:cpo D2} (h:nat -m> D1 -c> D2)(x:D1),
+            lub h x = lub (h <_> x).
+ +
+#[export] Instance cont_app_monotonic : forall `{o1:ord D1} `{c2:cpo D2} `{c3:cpo D3} (f:D1 -m> D2 -m> D3)
+            (p:forall k, continuous (f k)),
+            monotonic (Ob:=D2 -c> D3) (fun (k:D1) => cont _ (fcontinuous:=p k)).
+Qed.
+ +
+Definition cont_app `{c1:cpo D1} `{c2:cpo D2} `{c3:cpo D3} (f:D1 -m> D2 -m> D3)
+            (p:forall k, continuous (f k)) : D1 -m> (D2 -c> D3)
+    := mon (fun k => cont (f k) (fcontinuous:=p k)).
+ +
+Lemma cont_app_simpl :
+forall `{c1:cpo D1} `{c2:cpo D2} `{c3:cpo D3}(f:D1 -m> D2 -m> D3)(p:forall k, continuous (f k))
+        (k:D1), cont_app f p k = cont (f k).
+ +
+#[export] Instance cont2_continuous `{c1:cpo D1} `{c2:cpo D2} `{c3:cpo D3} (f:D1 -m> D2 -m> D3)
+           (p:continuous2 f) : continuous (cont_app f (continuous2_app f)).
+Qed.
+ +
+Definition cont2 `{c1:cpo D1} `{c2:cpo D2} `{c3:cpo D3} (f:D1 -m> D2 -m> D3)
+           {p:continuous2 f} : D1 -c> (D2 -c> D3)
+:= cont (cont_app f (continuous2_app f)).
+ +
+#[export] Instance Fcontm_continuous `{c1:cpo D1} `{c2:cpo D2} : continuous (Fcontm D1 D2).
+Qed.
+#[export] Hint Resolve Fcontm_continuous : core.
+ +
+#[export] Instance fcont_comp_continuous : forall `{c1:cpo D1} `{c2:cpo D2} `{c3:cpo D3}
+    (f:D2 -c> D3) (g:D1 -c> D2), continuous (f @ g).
+Qed.
+ +
+Definition fcont_comp `{c1:cpo D1} `{c2:cpo D2} `{c3:cpo D3} (f:D2 -c> D3) (g:D1 -c> D2)
+   : D1 -c> D3 := cont (f @ g).
+ +
+Infix "@_" := fcont_comp (at level 35) : O_scope.
+ +
+Lemma fcont_comp_simpl : forall `{c1:cpo D1} `{c2:cpo D2} `{c3:cpo D3}
+       (f:D2 -c> D3)(g:D1 -c> D2) (x:D1), (f @_ g) x = f (g x).
+ +
+Lemma fcontm_fcont_comp_simpl : forall `{c1:cpo D1} `{c2:cpo D2} `{c3:cpo D3}
+       (f:D2 -c> D3)(g:D1 -c> D2), fcontm (f @_ g) = f @ g.
+ +
+Lemma fcont_comp_le_compat : forall `{c1:cpo D1} `{c2:cpo D2} `{c3:cpo D3}
+      (f g : D2 -c> D3) (k l :D1 -c> D2),
+      f g -> k l -> f @_ k g @_ l.
+#[export] Hint Resolve fcont_comp_le_compat : core.
+ +
+Add Parametric Morphism `{c1:cpo D1} `{c2:cpo D2} `{c3:cpo D3}
+    : (@fcont_comp _ _ c1 _ _ c2 _ _ c3)
+      with signature Ole ++> Ole ++> Ole as fcont_comp_le_morph.
+Qed.
+ +
+Add Parametric Morphism `{c1:cpo D1} `{c2:cpo D2} `{c3:cpo D3}
+    : (@fcont_comp _ _ c1 _ _ c2 _ _ c3)
+      with signature Oeq Oeq Oeq as fcont_comp_eq_compat.
+Qed.
+ +
+Definition fcont_Comp D1 `{c1:cpo D1} D2 `{c2:cpo D2} D3 `{c3:cpo D3}
+      : (D2 -c> D3) -m> (D1 -c> D2) -m> D1 -c> D3
+      := mon2 _ (mf:=fcont_comp_le_compat (D1:=D1) (D2:=D2) (D3:=D3)).
+ +
+Lemma fcont_Comp_simpl : forall `{c1:cpo D1} `{c2:cpo D2} `{c3:cpo D3}
+                        (f:D2 -c> D3) (g:D1 -c> D2), fcont_Comp D1 D2 D3 f g = f @_ g.
+ +
+#[export] Instance fcont_Comp_continuous2
+   : forall `{c1:cpo D1} `{c2:cpo D2} `{c3:cpo D3}, continuous2 (fcont_Comp D1 D2 D3).
+Qed.
+ +
+Definition fcont_COMP D1 `{c1:cpo D1} D2 `{c2:cpo D2} D3 `{c3:cpo D3}
+      : (D2 -c> D3) -c> (D1 -c> D2) -c> D1 -c> D3
+      := cont2 (fcont_Comp D1 D2 D3).
+ +
+Lemma fcont_COMP_simpl : forall `{c1:cpo D1} `{c2:cpo D2} `{c3:cpo D3}
+        (f: D2 -c> D3) (g:D1 -c> D2),
+        fcont_COMP D1 D2 D3 f g = f @_ g.
+ +
+Definition fcont2_COMP D1 `{c1:cpo D1} D2 `{c2:cpo D2} D3 `{c3:cpo D3} D4 `{c4:cpo D4}
+   : (D3 -c> D4) -c> (D1 -c> D2 -c> D3) -c> D1 -c> D2 -c> D4 :=
+     (fcont_COMP D1 (D2 -c> D3) (D2 -c> D4)) @_ (fcont_COMP D2 D3 D4).
+ +
+Definition fcont2_comp `{c1:cpo D1} `{c2:cpo D2} `{c3:cpo D3} `{c4:cpo D4}
+           (f:D3 -c> D4)(F:D1 -c> D2 -c> D3) := fcont2_COMP D1 D2 D3 D4 f F.
+ +
+Infix "@@_" := fcont2_comp (at level 35) : O_scope.
+ +
+Lemma fcont2_comp_simpl : forall `{c1:cpo D1} `{c2:cpo D2} `{c3:cpo D3} `{c4:cpo D4}
+       (f:D3 -c> D4)(F:D1 -c> D2 -c> D3)(x:D1)(y:D2), (f @@_ F) x y = f (F x y).
+ +
+Lemma fcont_le_compat2 : forall `{c1:cpo D1} `{c2:cpo D2} `{c3:cpo D3} (f : D1 -c> D2 -c> D3)
+    (x y : D1) (z t : D2), x y -> z t -> f x z f y t.
+#[export] Hint Resolve fcont_le_compat2 : core.
+ +
+Lemma fcont_eq_compat2 : forall `{c1:cpo D1} `{c2:cpo D2} `{c3:cpo D3} (f : D1 -c> D2 -c> D3)
+    (x y : D1) (z t : D2), x y -> z t -> f x z f y t.
+#[export] Hint Resolve fcont_eq_compat2 : core.
+ +
+Lemma fcont_continuous : forall `{c1:cpo D1} `{c2:cpo D2} (f:D1 -c> D2)(h:nat -m> D1),
+            f (lub h) lub (f @ h).
+#[export] Hint Resolve fcont_continuous : core.
+ +
+#[export] Instance fcont_continuous2 : forall `{c1:cpo D1} `{c2:cpo D2} `{c3:cpo D3}
+         (f:D1 -c> D2 -c> D3), continuous2 (Fcontm D2 D3 @ f).
+Qed.
+#[export] Hint Resolve fcont_continuous2 : core.
+ +
+#[export] Instance cshift_continuous2 : forall `{c1:cpo D1} `{c2:cpo D2} `{c3:cpo D3}
+         (f:D1 -c> D2 -c> D3), continuous2 (mshift (Fcontm D2 D3 @ f)).
+Qed.
+#[export] Hint Resolve cshift_continuous2 : core.
+ +
+Definition cshift `{c1:cpo D1} `{c2:cpo D2} `{c3:cpo D3} (f:D1 -c> D2 -c> D3)
+   : D2 -c> D1 -c> D3 := cont2 (mshift (Fcontm D2 D3 @ f)).
+ +
+Lemma cshift_simpl : forall `{c1:cpo D1} `{c2:cpo D2} `{c3:cpo D3}
+           (f:D1 -c> D2 -c> D3) (x:D2) (y:D1), cshift f x y = f y x.
+ +
+Definition fcont_SEQ D1 `{c1:cpo D1} D2 `{c2:cpo D2} D3 `{c3:cpo D3}
+   : (D1 -c> D2) -c> (D2 -c> D3) -c> D1 -c> D3 := cshift (fcont_COMP D1 D2 D3).
+ +
+Lemma fcont_SEQ_simpl : forall `{c1:cpo D1} `{c2:cpo D2} `{c3:cpo D3}
+       (f: D1 -c> D2) (g:D2 -c> D3), fcont_SEQ D1 D2 D3 f g = g @_ f.
+ +
+ +
+#[export] Instance Id_mon : forall `{o1:ord Oa}, monotonic (fun x:Oa => x).
+Qed.
+ +
+Definition Id Oa {o1:ord Oa} : Oa -m> Oa := mon (fun x => x).
+ +
+Lemma Id_simpl : forall `{o1:ord Oa} (x:Oa), Id Oa x = x.
+ +
+ +
+
+ +
+

Fixpoints

+ +
+
+ +
+Fixpoint iter_ {D} {o} `{c: @cpo D o} (f : D -m> D) n {struct n} : D
+    := match n with O => 0 | S m => f (iter_ f m) end.
+ +
+Lemma iter_incr : forall `{c: cpo D} (f : D -m> D) n, iter_ f n f (iter_ f n).
+#[export] Hint Resolve iter_incr : core.
+ +
+#[export] Instance iter_mon : forall `{c: cpo D} (f : D -m> D), monotonic (iter_ f).
+Qed.
+ +
+Definition iter `{c: cpo D} (f : D -m> D) : nat -m> D := mon (iter_ f).
+ +
+Definition fixp `{c: cpo D} (f : D -m> D) : D := mlub (iter_ f).
+ +
+Lemma fixp_le : forall `{c: cpo D} (f : D -m> D), fixp f f (fixp f).
+#[export] Hint Resolve fixp_le : core.
+ +
+Lemma fixp_eq : forall `{c: cpo D} (f : D -m> D) {mf:continuous f},
+      fixp f f (fixp f).
+ +
+Lemma fixp_inv : forall `{c: cpo D} (f : D -m> D) g, f g g -> fixp f g.
+ +
+Definition fixp_cte : forall `{c:cpo D} (d:D), fixp (mon (cte D d)) d.
+Qed.
+#[export] Hint Resolve fixp_cte : core.
+ +
+Lemma fixp_le_compat : forall `{c:cpo D} (f g : D -m> D),
+      f g -> fixp f fixp g.
+#[export] Hint Resolve fixp_le_compat : core.
+ +
+#[export] Instance fixp_monotonic `{c:cpo D} : monotonic fixp.
+Qed.
+ +
+Add Parametric Morphism `{c:cpo D} : (fixp (c:=c))
+    with signature Oeq Oeq as fixp_eq_compat.
+Qed.
+#[export] Hint Resolve fixp_eq_compat : core.
+ +
+Definition Fixp D `{c:cpo D} : (D -m> D) -m> D := mon fixp.
+ +
+Lemma Fixp_simpl : forall `{c:cpo D} (f:D-m>D), Fixp D f = fixp f.
+ +
+#[export] Instance iter_monotonic `{c:cpo D} : monotonic iter.
+Qed.
+ +
+Definition Iter D `{c:cpo D} : (D -m> D) -m> (nat -m> D) := mon iter.
+ +
+Lemma IterS_simpl : forall `{c:cpo D} f n, Iter D f (S n) = f (Iter D f n).
+ +
+Lemma iterO_simpl : forall `{c:cpo D} (f: D-m> D), iter f O = (0:D).
+ +
+Lemma iterS_simpl : forall `{c:cpo D} f n, iter f (S n) = f (iter f n).
+ +
+Lemma iter_continuous : forall `{c:cpo D} (h : nat -m> (D -m> D)),
+       (forall n, continuous (h n)) -> iter (lub h) lub (mon iter @ h).
+ +
+#[export] Hint Resolve iter_continuous : core.
+ +
+Lemma iter_continuous_eq : forall `{c:cpo D} (h : nat -m> (D -m> D)),
+    (forall n, continuous (h n)) -> iter (lub h) lub (mon iter @ h).
+ +
+Lemma fixp_continuous : forall `{c:cpo D} (h : nat -m> (D -m> D)),
+       (forall n, continuous (h n)) -> fixp (lub h) lub (mon fixp @ h).
+#[export] Hint Resolve fixp_continuous : core.
+ +
+Lemma fixp_continuous_eq : forall `{c:cpo D} (h : nat -m> (D -m> D)),
+       (forall n, continuous (h n)) -> fixp (lub h) lub (mon fixp @ h).
+ +
+Definition Fixp_cont D `{c:cpo D} : (D -c> D) -m> D := Fixp D @ (Fcontm D D).
+ +
+Lemma Fixp_cont_simpl : forall `{c:cpo D} (f:D -c> D), Fixp_cont D f = fixp (fcontm f).
+ +
+#[export] Instance Fixp_cont_continuous : forall D `{c:cpo D}, continuous (Fixp_cont D).
+Qed.
+ +
+Definition FIXP D `{c:cpo D} : (D -c> D) -c> D := cont (Fixp_cont D).
+ +
+Lemma FIXP_simpl : forall `{c:cpo D} (f:D -c> D), FIXP D f = Fixp D (fcontm f).
+ +
+Lemma FIXP_le_compat : forall `{c:cpo D} (f g : D -c> D),
+            f g -> FIXP D f FIXP D g.
+#[export] Hint Resolve FIXP_le_compat : core.
+ +
+Lemma FIXP_eq_compat : forall `{c:cpo D} (f g : D -c> D),
+            f g -> FIXP D f FIXP D g.
+#[export] Hint Resolve FIXP_eq_compat : core.
+ +
+Lemma FIXP_eq : forall `{c:cpo D} (f:D -c> D), FIXP D f f (FIXP D f).
+#[export] Hint Resolve FIXP_eq : core.
+ +
+Lemma FIXP_inv : forall `{c:cpo D} (f:D -c> D) (g : D), f g g -> FIXP D f g.
+ +
+
+ +
+

Iteration of functional

+ +
+
+Lemma FIXP_comp_com : forall `{c:cpo D} (f g:D-c>D),
+       g @_ f f @_ g-> FIXP D g f (FIXP D g).
+ +
+Lemma FIXP_comp : forall `{c:cpo D} (f g:D-c>D),
+       g @_ f f @_ g -> f (FIXP D g) FIXP D g -> FIXP D (f @_ g) FIXP D g.
+ +
+Fixpoint fcont_compn {D} {o} `{c:@cpo D o}(f:D -c> D) (n:nat) {struct n} : D -c> D :=
+             match n with O => f | S p => fcont_compn f p @_ f end.
+ +
+Lemma fcont_compn_Sn_simpl :
+     forall `{c:cpo D}(f:D -c> D) (n:nat), fcont_compn f (S n) = fcont_compn f n @_ f.
+ +
+Lemma fcont_compn_com : forall `{c:cpo D}(f:D-c>D) (n:nat),
+            f @_ (fcont_compn f n) fcont_compn f n @_ f.
+ +
+Lemma FIXP_compn :
+     forall `{c:cpo D} (f:D-c>D) (n:nat), FIXP D (fcont_compn f n) FIXP D f.
+ +
+Lemma fixp_double : forall `{c:cpo D} (f:D-c>D), FIXP D (f @_ f) FIXP D f.
+ +
+ +
+
+ +
+

Induction principle

+ +
+
+Definition admissible `{c:cpo D}(P:D->Type) :=
+          forall f : nat -m> D, (forall n, P (f n)) -> P (lub f).
+ +
+Lemma fixp_ind : forall `{c:cpo D}(F:D -m> D)(P:D->Type),
+       admissible P -> P 0 -> (forall x, P x -> P (F x)) -> P (fixp F).
+ +
+Definition admissible2 `{c1:cpo D1}`{c2:cpo D2}(R:D1 -> D2 -> Type) :=
+    forall (f : nat -m> D1) (g:nat -m> D2), (forall n, R (f n) (g n)) -> R (lub f) (lub g).
+ +
+Lemma fixp_ind_rel : forall `{c1:cpo D1}`{c2:cpo D2}(F:D1 -m> D1) (G:D2-m> D2)
+       (R:D1 -> D2 -> Type),
+       admissible2 R -> R 0 0 -> (forall x y, R x y -> R (F x) (G y)) -> R (fixp F) (fixp G).
+ +
+Lemma lub_le_fixp : forall `{c1:cpo D1}`{c2:cpo D2} (f:D1-m>D2) (F:D1 -m> D1)
+                                         (s:nat-m> D2),
+          s O f 0 -> (forall x n, s n f x -> s (S n) f (F x))
+          -> lub s f (fixp F).
+ +
+Lemma fixp_le_lub : forall `{c1:cpo D1}`{c2:cpo D2} (f:D1-m>D2) (F:D1 -m> D1)
+                                         (s:nat-m> D2) {fc:continuous f},
+          f 0 s O -> (forall x n, f x s n -> f (F x) s (S n)) -> f (fixp F) lub s.
+ +
+ +
+Ltac continuity cont Cont Hcont:=
+  match goal with
+ | |- (Ole ?x1 (lub (mon (fun (n:nat) => cont (@?g n))))) =>
+      let f := fresh "f" in (
+           pose (f:=g); assert (monotonic f) ;
+                               [auto | (transitivity (lub (Cont@(mon f))); [rewrite <- Hcont | auto])]
+           )
+end.
+ +
+Ltac gen_monotonic :=
+match goal with |- context [(@mon _ _ _ _ ?f ?mf)] => generalize (mf:monotonic f)
+end.
+ +
+Ltac gen_monotonic1 f :=
+match goal with |- context [(@mon _ _ _ _ f ?mf)] => generalize (mf:monotonic f)
+end.
+ +
+
+ +
+

Function for conditionnal choice defined as a morphism

+ +
+
+ +
+Definition fif {A} (b:bool) : A -> A -> A := fun e1 e2 => if b then e1 else e2.
+ +
+#[export] Instance fif_mon2 `{o:ord A} (b:bool) : monotonic2 (@fif _ b).
+Qed.
+ +
+Definition Fif `{o:ord A} (b:bool) : A -m> A -m> A := mon2 (@fif _ b).
+ +
+Lemma Fif_simpl : forall `{o:ord A} (b:bool) (x y:A), Fif b x y = fif b x y.
+ +
+Lemma Fif_continuous_right `{c:cpo A} (b:bool) (e:A) : continuous (Fif b e).
+ +
+Lemma Fif_continuous_left `{c:cpo A} (b:bool) : continuous (Fif (A:=A) b).
+#[export] Hint Resolve Fif_continuous_right Fif_continuous_left : core.
+ +
+Lemma fif_continuous_left `{c:cpo A} (b:bool) (f:nat-m> A):
+    fif b (lub f) lub (Fif b@f).
+ +
+Lemma fif_continuous_left2 :
+forall (A : Type) (o : ord A) (c : cpo A) (b : bool) (f : nat -m> A) (g:A),
+fif b (lub f) g lub (Fif b @ f) g.
+ +
+Lemma fif_continuous_right `{c:cpo A} (b:bool) e (f:nat-m> A):
+    fif b e (lub f) lub (Fif b e@f).
+ +
+#[export] Hint Resolve fif_continuous_right fif_continuous_left fif_continuous_left2 : core.
+ +
+#[export] Instance Fif_continuous2 `{c:cpo A} (b:bool) : continuous2 (Fif (A:=A) b).
+Qed.
+ +
+Lemma fif_continuous2 `{c:cpo A} (b:bool) (f g : nat-m> A):
+      fif b (lub f) (lub g) lub ((Fif b@2 f) g).
+ +
+Add Parametric Morphism `{o:ord A} (b:bool) : (@fif A b)
+with signature Ole Ole Ole
+as fif_le_compat.
+Qed.
+ +
+Add Parametric Morphism `{o:ord A} (b:bool) : (@fif A b)
+with signature Oeq Oeq Oeq
+as fif_eq_compat.
+Qed.
+
+
+ + + +
+ + + \ No newline at end of file diff --git a/combi/1.1.0/ALEA.Misc.html b/combi/1.1.0/ALEA.Misc.html new file mode 100644 index 00000000..92fb886d --- /dev/null +++ b/combi/1.1.0/ALEA.Misc.html @@ -0,0 +1,316 @@ + + + + + +ALEA.Misc + + + + +
+ + + +
+ +

Library ALEA.Misc

+ +
+ +
+
+ +
+

Misc.v: Preliminaries

+ +
+
+ +
+Set Implicit Arguments.
+From Stdlib Require Export Arith.
+From Stdlib Require Import Lia.
+ +
+From Stdlib Require Import Classes.SetoidTactics.
+From Stdlib Require Import Classes.SetoidClass.
+From Stdlib Require Import Classes.Morphisms.
+ +
+#[local] Open Scope signature_scope.
+ +
+Lemma beq_nat_neq: x y : nat, x <> y false = Nat.eqb x y.
+ +
+Lemma if_beq_nat_nat_eq_dec : A (x y:nat) (a b:A),
+  (if Nat.eqb x y then a else b) = if eq_nat_dec x y then a else b.
+ +
+Definition ifte A (test:bool) (thn els:A) := if test then thn else els.
+ +
+Add Parametric Morphism (A:Type) : (@ifte A)
+  with signature (eq eq eq eq) as ifte_morphism1.
+ +
+Add Parametric Morphism (A:Type) x : (@ifte A x)
+  with signature (eq eq eq) as ifte_morphism2.
+ +
+Add Parametric Morphism (A:Type) x y : (@ifte A x y)
+  with signature (eq eq) as ifte_morphism3.
+ +
+
+ +
+

Definition of iterator compn

+ + compn f u n x is defined as (f (u (n-1)).. (f (u 0) x)) +
+
+ +
+Fixpoint compn (A:Type)(f:A A A) (x:A) (u:nat A) (n:nat) {struct n}: A :=
+   match n with Ox | (S p) ⇒ f (u p) (compn f x u p) end.
+ +
+Lemma comp0 : (A:Type) (f:A A A) (x:A) (u:nat A), compn f x u 0 = x.
+ +
+Lemma compS : (A:Type) (f:A A A) (x:A) (u:nat A) (n:nat),
+              compn f x u (S n) = f (u n) (compn f x u n).
+ +
+
+ +
+

Reducing if constructs

+ +
+
+ +
+Lemma if_then : (P:Prop) (b:{ P }+{ ¬ P })(A:Type)(p q:A),
+      P (if b then p else q) = p.
+ +
+Lemma if_else : (P :Prop) (b:{ P }+{ ¬ P })(A:Type)(p q:A),
+      ¬P (if b then p else q) = q.
+ +
+Lemma if_then_not : (P Q:Prop) (b:{ P }+{ Q })(A:Type)(p q:A),
+      ¬ Q (if b then p else q) = p.
+ +
+Lemma if_else_not : (P Q:Prop) (b:{ P }+{ Q })(A:Type)(p q:A),
+      ¬P (if b then p else q) = q.
+ +
+
+ +
+

Classical reasoning

+ +
+
+ +
+Definition class (A:Prop) := ¬ ¬ A A.
+ +
+Lemma class_neg : A:Prop, class ( ¬ A).
+ +
+Lemma class_false : class False.
+#[export] Hint Resolve class_neg class_false : core.
+ +
+Definition orc (A B:Prop) := C:Prop, class C (A C) (B C) C.
+ +
+Lemma orc_left : A B:Prop, A orc A B.
+ +
+Lemma orc_right : A B:Prop, B orc A B.
+ +
+#[export] Hint Resolve orc_left orc_right : core.
+ +
+Lemma class_orc : A B, class (orc A B).
+ +
+Arguments class_orc [A B].
+ +
+Lemma orc_intro : A B, ( ¬ A ¬ B False) orc A B.
+ +
+Lemma class_and : A B, class A class B class (A B).
+ +
+Lemma excluded_middle : A, orc A ( ¬ A).
+ +
+Definition exc (A :Type)(P:A Prop) :=
+    C:Prop, class C ( x:A, P x C) C.
+ +
+Lemma exc_intro : (A :Type)(P:A Prop) (x:A), P x exc P.
+ +
+Lemma class_exc : (A :Type)(P:A Prop), class (exc P).
+ +
+Lemma exc_intro_class : (A:Type) (P:A Prop), (( x, ¬ P x) False) exc P.
+ +
+Lemma not_and_elim_left : A B, ¬ (A B) A ¬B.
+ +
+Lemma not_and_elim_right : A B, ¬ (A B) B ¬A.
+ +
+#[export] Hint Resolve class_orc class_and class_exc excluded_middle : core.
+ +
+Lemma class_double_neg : P Q: Prop, class Q (P Q) ¬ ¬ P Q.
+ +
+
+ +
+

Extensional equality

+ +
+
+ +
+Definition feq A B (f g : A B) := x, f x = g x.
+ +
+Lemma feq_refl : A B (f:AB), feq f f.
+ +
+Lemma feq_sym : A B (f g : A B), feq f g feq g f.
+ +
+Lemma feq_trans : A B (f g h: A B), feq f g feq g h feq f h.
+ +
+#[export] Hint Resolve feq_refl : core.
+#[export] Hint Immediate feq_sym : core.
+#[export] Hint Unfold feq : core.
+ +
+Add Parametric Relation (A B : Type) : (A B) (feq (A:=A) (B:=B))
+  reflexivity proved by (feq_refl (A:=A) (B:=B))
+  symmetry proved by (feq_sym (A:=A) (B:=B))
+  transitivity proved by (feq_trans (A:=A) (B:=B))
+as feq_rel.
+ +
+
+ +
+Computational version of elimination on CompSpec +
+
+ +
+Lemma CompSpec_rect : (A : Type) (eq lt : A A Prop) (x y : A)
+       (P : comparison Type),
+       (eq x y P Eq)
+       (lt x y P Lt)
+       (lt y x P Gt)
+     c : comparison, CompSpec eq lt x y c P c.
+ +
+
+ +
+Decidability +
+
+Lemma dec_sig_lt : P : nat Prop, ( x, {P x}+{ ¬ P x})
+   n, {i | i < n P i}+{ i, i < n ¬ P i}.
+ +
+Lemma dec_exists_lt : P : nat Prop, ( x, {P x}+{ ¬ P x})
+   n, {exists i, i < n P i}+{¬ exists i, i < n P i}.
+ +
+Definition eq_nat2_dec : p q : nat*nat, { p=q }+{¬ p=q }.
+Defined.
+ +
+Lemma nat_compare_specT
+   : x y : nat, CompareSpecT (x = y) (x < y)%nat (y < x)%nat (Nat.compare x y).
+ +
+
+ +
+

Preliminary lemmas relating the ordre on nat and N

+ +
+
+ +
+From Stdlib Require Export NArith.
+ +
+Lemma N2Nat_lt_mono : n m, (n < m)%N (N.to_nat n < N.to_nat m)%nat.
+ +
+Lemma N2Nat_le_mono : n m, (n <= m)%N (N.to_nat n <= N.to_nat m)%nat.
+ +
+Lemma N2Nat_inj_lt : n m, (n < m)%N (N.to_nat n < N.to_nat m)%nat.
+ +
+Lemma N2Nat_inj_le : n m, (n <= m)%N (N.to_nat n <= N.to_nat m)%nat.
+ +
+Lemma N2Nat_inj_pos : n, (0 < n)%N (0 < N.to_nat n)%nat.
+#[export] Hint Resolve N2Nat_inj_lt N2Nat_inj_pos N2Nat_inj_le : core.
+ +
+Lemma Nsucc_pred_pos: n : N, (0 < n)%N N.succ (N.pred n) = n.
+#[export] Hint Resolve Nsucc_pred_pos : core.
+ +
+Lemma Npos : n, (0 <= n)%N.
+#[export] Hint Resolve Npos : core.
+ +
+Lemma Neq_lt_0 : n, (n=0)%N (0<n)%N.
+#[export] Hint Resolve Neq_lt_0 : core.
+ +
+Lemma Nlt0_le1 : n, (0<n)%N (1<=n)%N.
+#[export] Hint Immediate Nlt0_le1 : core.
+ +
+Ltac Nineq :=
+     match goal with
+      |- (N.le ?n ?m) ⇒ compute; discriminate
+    | |- (N.lt ?n ?m) ⇒ compute; reflexivity
+    | |- ¬ (eq (A:=N) ?n ?m)rewrite <- N.compare_eq_iff; compute; discriminate
+    end.
+
+
+ + + +
+ + + \ No newline at end of file diff --git a/combi/1.1.0/ALEA.Qmeasure.html b/combi/1.1.0/ALEA.Qmeasure.html new file mode 100644 index 00000000..17e3f7f5 --- /dev/null +++ b/combi/1.1.0/ALEA.Qmeasure.html @@ -0,0 +1,902 @@ + + + + + +ALEA.Qmeasure: Finite probabilities + + + + +
+ + + +
+ +

Library ALEA.Qmeasure: Finite probabilities

+ +
+
+ +
+ +
+
+
+ +
+

Definition of finite probabilities as measures with values in rational numbers

+ +
+
+ +
+Require Import Misc Ccpo.
+ +
+Set Implicit Arguments.
+ +
+From Stdlib Require Arith.
+From Stdlib Require Import Lia.
+ +
+From mathcomp Require Import ssreflect ssrfun eqtype choice.
+From mathcomp Require Import ssrbool ssrnat seq order fintype finfun.
+From mathcomp Require Import bigop ssralg ssrnum ssrint rat.
+Import GRing.
+Import Order.Theory.
+Import Num.Theory.
+ +
+ +
+Delimit Scope order_scope with Omc.
+#[local] Open Scope O_scope.
+Delimit Scope O_scope with O.
+#[local] Open Scope ring_scope.
+ +
+#[export] Program Instance ratO : ord rat :=
+     { Oeq := fun n m : rat => n = m;
+       Ole := fun n m : rat => (n <= m)%R}.
+ +
+
+ +
+Functions to be measured +
+
+ +
+Definition MF (A:Type) := A -> rat.
+ +
+#[export] Instance MFO (A:Type) : ord (MF A) := ford A rat.
+ +
+
+ +
+Type of measures on A +
+
+ +
+Definition M A := MF A -m> rat.
+ +
+#[export] Instance MO (A:Type) : ord (M A) := fmono (MF A) rat.
+ +
+#[export] Instance app_mon (A:Type) (x:A) : monotonic (fun (f:MF A) => f x).
+ #[export] Hint Resolve app_mon : core.
+ +
+
+ +
+Monadic operators on M A +
+
+ +
+Definition munit (A:Type) (x:A) : M A := mon (fun (f:MF A) => f x).
+ +
+Definition mstar (A B:Type) : M A -> (A -> M B) -> M B.
+Defined.
+ +
+Lemma star_simpl (A B:Type) (a:M A) (F:A -> M B) (f:MF B) :
+  mstar a F f = a (fun x => F x f).
+ +
+
+ +
+

Properties of monadic operators

+ +
+
+Lemma law1 (A B:Type) (x:A) (F:A -> M B) (f:MF B) :
+  mstar (munit x) F f == F x f.
+ +
+Lemma law2 (A:Type) (a:M A) (f:MF A) :
+  mstar a (fun x:A => munit x) f == a (fun x:A => f x).
+ +
+Lemma law3 (A B C:Type) (a:M A) (F:A -> M B) (G:B -> M C) (f:MF C) :
+  mstar (mstar a F) G f == mstar a (fun x:A => mstar (F x) G) f.
+ +
+
+ +
+

Properties of distributions

+

Expected properties of measures

+ +
+
+ +
+Definition stable_add (A:Type) (m:M A) : Prop :=
+  forall f g:MF A, m (f \+ g) = (m f) + (m g).
+ +
+Definition stable_sub (A:Type) (m:M A) : Prop :=
+  forall f g:MF A, m (f \- g) = (m f) - (m g).
+ +
+Definition stable_mull (A:Type) (m:M A) : Prop :=
+  forall (k:rat) (f:MF A), m (k \*o f) = k * (m f).
+ +
+Definition stable_opp (A:Type) (m:M A) : Prop :=
+  forall (f:MF A), m (fun x => - (f x)) = - (m f).
+ +
+
+ +
+Linearity on rational is deduced from stability with respect to substraction +
+
+ +
+Section StabilityProperties.
+ +
+Variable A : Type.
+Variable m : M A.
+Hypothesis Mstable_sub : stable_sub m.
+ +
+Implicit Types (f g : MF A).
+ +
+Lemma Mstable_eq : stable m.
+Hint Resolve Mstable_eq : core.
+ +
+Lemma Mstable0 : m \0 = 0.
+Hint Resolve Mstable0 : core.
+ +
+Lemma Mstable_opp : stable_opp m.
+ +
+Lemma Mstable_add : stable_add m.
+ +
+Lemma Mstable_addn f (n : nat) : m (fun x => f x *+ n) = (m f) *+ n.
+ +
+Lemma Mstable_subn f (n : nat) : m (fun x => f x *- n) = (m f) *- n.
+ +
+Lemma Mstable_divn f (n : nat) :
+  m (fun x => f x / n%:~R) = (m f) / (n%:~R).
+ +
+Lemma Mstable_addi f (n : int) : m (fun x => f x *~ n) = (m f) *~ n.
+ +
+Lemma Mstable_muli f (n : int) : m (fun x => n%:~R * f x) = (n%:~R) * (m f).
+ +
+Lemma Mstable_divi f (n : int) : m (fun x => f x / n%:~R) = (m f) / (n%:~R).
+ +
+Lemma Mstable_mull : stable_mull m.
+ +
+Lemma Mstable_linear (p q : rat) f g :
+  m ((p \*o f) \+ (q \*o g)) = p * (m f) + q * (m g).
+ +
+End StabilityProperties.
+#[export] Hint Resolve Mstable_eq : core.
+#[export] Hint Resolve Mstable0 : core.
+#[export] Hint Resolve Mstable_opp : core.
+#[export] Hint Resolve Mstable_add : core.
+ +
+Lemma unit_stable_eq (A:Type) (x:A) : stable (munit x).
+ +
+Lemma star_stable_eq (A B:Type) (m:M A) (F:A -> M B) : stable (mstar m F).
+ +
+Lemma unit_monotonic A (x:A) (f g : MF A) :
+  (f <= g)%O -> munit x f <= munit x g.
+ +
+Lemma star_monotonic A B (m:M A) (F:A -> M B) (f g : MF B) :
+  (f <= g)%O -> mstar m F f <= mstar m F g.
+ +
+Lemma star_le_compat A B (m1 m2:M A) (F1 F2:A -> M B) :
+  (m1 <= m2)%O -> (F1 <= F2)%O -> (mstar m1 F1 <= mstar m2 F2)%O.
+#[export] Hint Resolve star_le_compat : core.
+ +
+
+ +
+

Stability for substraction of unit and star

+ +
+
+Lemma unit_stable_sub (A:Type) (x:A) : stable_sub (munit x).
+ +
+Lemma star_stable_sub (A B:Type) (m:M A) (F:A -> M B) :
+  stable_sub m -> (forall a:A, stable_sub (F a)) -> stable_sub (mstar m F).
+ +
+
+ +
+

Definition of distribution

+ +Finite distributions are monotonic measure functions such that +
    +
  • mu (f - g) = mu f - mu g + +
  • +
  • mu 1 = 1 + +
  • +
+ +
+
+ +
+Record distr (A:Type) : Type := {
+       mu : M A;
+       mu_stable_sub : stable_sub mu;
+       mu_prob : mu (fun x => 1) = 1
+   }.
+ +
+#[export] Hint Resolve mu_stable_sub mu_prob : core.
+ +
+
+ +
+

Properties of measures

+ +
+
+Section MeasureProp.
+ +
+Context {A : Type} (m: distr A).
+Implicit Types (f g : MF A).
+ +
+Lemma mu_monotonic : monotonic (mu m).
+ Hint Resolve mu_monotonic : core.
+ +
+Lemma mu_stable_eq : stable (mu m).
+ Hint Resolve mu_stable_eq : core.
+ +
+Lemma mu_zero : mu m \0 = 0.
+ Hint Resolve mu_zero : core.
+ +
+Lemma mu_zero_eq f : (forall x, f x = 0) -> mu m f = 0.
+ +
+Lemma mu_one_eq f : (forall x, f x = 1) -> mu m f = 1.
+ +
+Lemma mu_stable_inv f : mu m (fun x => 1 - f x) = 1 - (mu m f).
+ +
+Lemma mu_stable_add f g : mu m (f \+ g) = mu m f + mu m g.
+ +
+Lemma mu_stable_mull (q : rat) f : mu m (q \*o f) = q * mu m f.
+ +
+Lemma mu_add_zero f g : mu m f = 0 -> mu m g = 0 -> mu m (f \+ g) = 0.
+ +
+Lemma mu_stable_pos f : (\0 <= f)%O -> 0 <= mu m f.
+ +
+Lemma mu_stable_le1 f : (forall x, f x <= 1) -> mu m f <= 1.
+ +
+Lemma mu_cte (c:rat) : mu m (fun x => c) = c.
+ +
+Lemma mu_stable_mulr (c:rat) f : mu m (c \o* f) = (mu m f) * c.
+ +
+Lemma mu_stable_inv_inv f : mu m f = 1 - mu m (fun x => 1 - f x).
+ +
+End MeasureProp.
+#[export] Hint Resolve mu_monotonic : core.
+#[export] Hint Resolve mu_stable_eq : core.
+#[export] Hint Resolve mu_zero : core.
+#[export] Hint Immediate mu_zero_eq : core.
+#[export] Hint Immediate mu_one_eq : core.
+#[export] Hint Resolve mu_stable_inv : core.
+#[export] Hint Resolve mu_stable_add : core.
+#[export] Hint Resolve mu_stable_mull : core.
+#[export] Hint Resolve mu_add_zero : core.
+#[export] Hint Resolve mu_cte : core.
+#[export] Hint Resolve mu_stable_inv_inv : core.
+ +
+#[export] Program Instance Odistr (A:Type) : ord (distr A) :=
+    {Ole := fun (f g : distr A) => (mu f <= mu g)%O;
+     Oeq := fun (f g : distr A) => Oeq (mu f) (mu g)}.
+ +
+
+ +
+

Monadic operators for distributions

+ +
+
+Section MonDistrib.
+ +
+Variables (A B : Type).
+ +
+Definition Munit : A -> distr A.
+ +
+Definition Mlet : distr A -> (A -> distr B) -> distr B.
+ +
+Lemma Munit_simpl (q : A -> rat) x : mu (Munit x) q = q x.
+ +
+Lemma Munit_simpl_eq (q : A -> rat) x : mu (Munit x) q == q x.
+ +
+Lemma Mlet_simpl (m : distr A) (M : A -> distr B) (f : B -> rat) :
+  mu (Mlet m M) f = mu m (fun x => (mu (M x) f)).
+ +
+Lemma Mlet_simpl_eq (m : distr A) (M : A -> distr B) (f : B -> rat) :
+mu (Mlet m M) f == mu m (fun x => (mu (M x) f)).
+ +
+End MonDistrib.
+ +
+
+ +
+

Operations on distributions

+ +
+
+Section OperDistr.
+ +
+Variables (A B C : Type).
+ +
+Lemma Munit_eq_compat (x y : A) : x = y -> Munit x == Munit y.
+ +
+Lemma Mlet_le_compat (m1 m2 : distr A) (M1 M2 : A -> distr B) :
+  (m1 <= m2 -> M1 <= M2 -> Mlet m1 M1 <= Mlet m2 M2)%O.
+Hint Resolve Mlet_le_compat : core.
+ +
+Add Parametric Morphism : (Mlet (A:=A) (B:=B))
+    with signature Ole ==> Ole ==> Ole
+      as Mlet_le_morphism.
+ +
+Add Parametric Morphism : (Mlet (A:=A) (B:=B))
+    with signature Ole ==> (@pointwise_relation A (distr B) (@Ole _ _)) ==> Ole
+      as Mlet_le_pointwise_morphism.
+ +
+#[export] Instance Mlet_mon2 : monotonic2 (@Mlet A B).
+ +
+Definition MLet : distr A -m> (A -> distr B) -m> distr B
+  := mon2 (@Mlet A B).
+ +
+Lemma MLet_simpl (m : distr A) (M : A -> distr B) (f : B -> rat) :
+  mu (MLet m M) f = mu m (fun x => mu (M x) f).
+ +
+Lemma Mlet_eq_compat (m1 m2 : distr A) (M1 M2 : A -> distr B) :
+  (m1 == m2 -> M1 == M2 -> Mlet m1 M1 == Mlet m2 M2)%type.
+ Hint Resolve Mlet_eq_compat : core.
+ +
+Add Parametric Morphism : (Mlet (A:=A) (B:=B))
+    with signature Oeq ==> Oeq ==> Oeq
+      as Mlet_eq_morphism.
+ +
+Add Parametric Morphism : (Mlet (A:=A) (B:=B))
+    with signature Oeq ==> (@pointwise_relation A (distr B) (@Oeq _ _)) ==> Oeq
+      as Mlet_Oeq_pointwise_morphism.
+ +
+Lemma mu_le_compat (m1 m2 : distr A) :
+  (m1 <= m2 -> forall f g : A -> rat, f <= g -> mu m1 f <= mu m2 g)%O.
+ +
+Lemma mu_eq_compat (m1 m2 : distr A) :
+  (m1 == m2 -> forall f g : A -> rat, f == g -> mu m1 f = mu m2 g)%type.
+Hint Immediate mu_le_compat mu_eq_compat : core.
+ +
+Add Parametric Morphism : (mu (A:=A))
+    with signature Ole ==> Ole
+      as mu_le_morphism.
+ +
+Add Parametric Morphism : (mu (A:=A))
+    with signature Oeq ==> Oeq
+      as mu_eq_morphism.
+ +
+Add Parametric Morphism (a : distr A) : (@mu A a)
+    with signature (@pointwise_relation A rat (@eq _) ==> Oeq)
+      as mu_distr_eq_morphism.
+ +
+Add Parametric Morphism (a : distr A) : (@mu A a)
+    with signature (@pointwise_relation A rat (@Oeq _ _) ==> Oeq)
+      as mu_distr_Oeq_morphism.
+ +
+Add Parametric Morphism (a : distr A) : (@mu A a)
+    with signature (@pointwise_relation _ _ (@Ole _ _) ==> Ole)
+      as mu_distr_le_morphism.
+ +
+Add Parametric Morphism : (@Mlet A B)
+    with signature (Ole ==> @pointwise_relation _ _ (@Ole _ _) ==> Ole)
+      as mlet_distr_le_morphism.
+ +
+Add Parametric Morphism : (@Mlet A B)
+    with signature (Oeq ==> @pointwise_relation _ _ (@Oeq _ _) ==> Oeq)
+      as mlet_distr_eq_morphism.
+ +
+
+ +
+

Properties of monadic operators

+ +
+
+Lemma Mlet_unit (x : A) (m : A -> distr B) : Mlet (Munit x) m == m x.
+ +
+Lemma Mlet_ext (m : distr A) : Mlet m (fun x => Munit x) == m.
+ +
+Lemma Mlet_assoc (m1 : distr A) (m2 : A -> distr B) (m3 : B -> distr C) :
+  Mlet (Mlet m1 m2) m3 == Mlet m1 (fun x:A => Mlet (m2 x) m3).
+ +
+Lemma let_indep (m1 : distr A) (m2 : distr B) (f : MF B) :
+  mu m1 (fun => mu m2 f) = mu m2 f.
+ +
+Lemma let_indep_distr (m1 : distr A) (m2 : distr B) :
+  Mlet m1 (fun => m2) == m2.
+ +
+Section MuBool.
+Context {m : distr A}.
+Implicit Types (f g : A -> bool).
+ +
+Lemma mu_bool_le1 {f} : mu m (fun x => (f x)%:~R) <= 1%:~R.
+Hint Resolve mu_bool_le1 : core.
+ +
+Lemma mu_bool_0le {f} : 0%:~R <= mu m (fun x => (f x)%:~R).
+ Hint Resolve mu_bool_0le : core.
+ +
+Lemma mu_bool_impl {f g} :
+  (forall x, (f x) ==> (g x)%B) ->
+  (mu m (fun x => (f x)%:~R) <= mu m (fun x => (g x)%:~R)).
+ +
+Lemma mu_bool_impl1 {f g} :
+  (forall x, (f x) ==> (g x)%B) ->
+  mu m (fun x => (f x)%:~R) = 1 -> mu m (fun x => (g x)%:~R) = 1.
+ +
+Lemma mu_bool_negb0 {f g} :
+  (forall x, (f x) ==> ~~ (g x)%B) ->
+  mu m (fun x => (f x)%:~R) = 1 ->
+  mu m (fun x => (g x)%:~R) = 0.
+ +
+Lemma mu_bool_negb {f} :
+  mu m (fun x => (~~ f x)%:~R) = 1 - mu m (fun x => (f x)%:~R).
+ +
+Lemma mu_bool_negb1 {f g} :
+  (forall x, (~~ (f x) ==> g x)%B) ->
+  mu m (fun x => (f x)%:~R) = 0 ->
+  mu m (fun x => (g x)%:~R) = 1.
+ +
+End MuBool.
+ +
+End OperDistr.
+ +
+#[export] Hint Resolve mu_bool_le1 : core.
+#[export] Hint Resolve mu_bool_0le : core.
+ +
+ +
+
+ +
+

Examples of distributions

+ +
+ +

Flipping a coin:

+ + +
+ +The distribution associated to flip () is + f --> [1/2] (f true) + [1/2] (f false) +
+
+ +
+Notation "[1/2]" := (2%:~R)^-1.
+ +
+#[export] Instance flip_mon :
+  monotonic (fun (f : bool -> rat) => [1/2] * (f true) + [1/2] * (f false)).
+ +
+Definition flip : M bool :=
+  mon (fun (f : bool -> rat) => [1/2] * (f true) + [1/2] * (f false)).
+ +
+Lemma flip_stable_sub : stable_sub flip.
+ +
+Lemma flip_prob : flip (fun x => 1) = 1.
+ +
+Lemma flip_true : flip (fun b => (b%:~R)) = [1/2].
+ +
+Lemma flip_false : flip (fun b => (~~b)%:~R) = [1/2].
+ +
+#[export] Hint Resolve flip_true flip_false : core.
+ +
+Definition Flip : distr bool.
+ +
+Lemma Flip_simpl f : mu Flip f = [1/2] * (f true) + [1/2] * (f false).
+ +
+
+ +
+

Finite distributions given by points and rational coefficients

+ +
+
+ +
+ +
+Section FiniteDistributions.
+ +
+Variable A : Type.
+Variable p : seq A.
+ +
+
+ +
+We use a finite sequent of points, give a rational coefficient + to each point but only consider positive ones +
+
+ +
+Definition weight (c : A -> rat) : rat := \sum_(i <- p | 0 < c i) (c i).
+ +
+Lemma weight_nonneg c : 0 <= weight c.
+Hint Resolve weight_nonneg : core.
+ +
+Lemma weight_case c : (weight c = 0) \/ 0 < (weight c)^-1.
+ +
+#[export] Instance finite_mon (c : A -> rat) :
+  monotonic (fun f => (\sum_(i <- p | 0 < c i) (c i * f i)) / weight c).
+ +
+Definition mfinite (c : A -> rat) : M A :=
+  mon (fun f => (\sum_(i <- p | 0 < c i) (c i * f i))/weight c).
+ +
+Lemma finite_simpl (c : A -> rat) f :
+  mfinite c f = (\sum_(i <- p | 0 < c i) (c i * f i))/weight c.
+ +
+Lemma finite_stable_sub (c : A -> rat) : stable_sub (mfinite c).
+ +
+End FiniteDistributions.
+ +
+
+ +
+We have a distribution when the total weight is positive +
+
+ +
+Record fin (A : Type) : Type :=
+  mkfin { points : seq A;
+          coeff : A -> rat;
+          weight_pos : 0 < weight points coeff
+        }.
+#[export] Hint Resolve weight_pos : core.
+ +
+Lemma inv_weight_pos A (d : fin A) : 0 < (weight (points d) (coeff d))^-1.
+ #[export] Hint Resolve inv_weight_pos : core.
+ +
+Lemma weight_is_unit A (d : fin A) : (weight (points d) (coeff d)) \is a unit.
+ #[export] Hint Resolve weight_is_unit : core.
+ +
+Definition fprob A (d : fin A) (a : A) : rat :=
+  coeff d a / weight (points d) (coeff d).
+ +
+Definition Finite A : fin A -> distr A.
+ +
+Lemma Finite_simpl A (d : fin A) :
+  mu (Finite d) = mfinite (points d) (coeff d).
+ +
+Lemma Finite_eq_in (A : eqType) (d : fin A) (a : A) :
+  uniq (points d) -> (a \in points d)%SEQ -> 0 < coeff d a ->
+  mu (Finite d) (fun x => (x==a)%:~R) = fprob d a.
+ +
+Lemma Finite_eq_out (A : eqType) (d : fin A) (a : A) :
+  (a \notin points d)%SEQ \/ (coeff d a <= 0)%R ->
+  mu (Finite d) (fun x => (x==a)%:~R) = 0.
+ +
+Lemma Finite_in_seq (A : eqType) (d : fin A) :
+  mu (Finite d) (fun x => (x \in points d)%:~R) = 1%R.
+ +
+
+ +
+

Uniform distribution on a non empty sequence of points

+ +
+
+ +
+Record unif (A : Type) : Type :=
+  mkunif { upoints :> seq A; _ : size upoints != O }.
+ +
+Definition usize A (p : unif A) : nat := size (upoints p).
+ +
+Lemma usize_pos A (p : unif A) : usize p != O.
+ +
+Definition unif2fin A (p:unif A) : fin A.
+ +
+Definition Uniform A (d : unif A) : distr A := Finite (unif2fin d).
+ +
+Lemma Uniform_simpl A (d : unif A) :
+  mu (Uniform d) = mfinite (upoints d) (fun A => 1%R).
+ +
+Lemma weight1_size A (d : seq A) : weight d (fun x => 1) = (size d)%:~R.
+ +
+Lemma mu_uniform_sum A (d : unif A) (f : A -> rat) :
+  mu (Uniform d) f = (\sum_(i <- d) f i) / (size d)%:~R.
+ +
+Lemma Uniform_eq_in (A : eqType) (d : unif A) (a : A) :
+  uniq d -> (a \in upoints d)%SEQ ->
+  mu (Uniform d) (fun x => (x==a)%:~R) = 1 / (usize d)%:~R.
+ +
+Lemma Uniform_eq_out (A : eqType) (d : unif A) (a : A) :
+  (a \notin upoints d)%SEQ ->
+  mu (Uniform d) (fun x => (x==a)%:~R) = 0%:~R.
+ +
+Lemma Uniform_in_seq (A : eqType) (d : unif A) :
+  mu (Uniform d) (fun x => (x \in upoints d)%:~R) = 1%:~R.
+ +
+Fact succ_neq0 (n m : nat) : (n==m.+1)%N -> (n!=0)%N.
+ +
+Lemma Uniform_unif_seq_eq (A : eqType) (d1 d2 : unif A) :
+  (d1 == d2 :> seq A) -> Uniform d1 == Uniform d2.
+ +
+
+ +
+Uniform distribution on a sequence with a default value +
+
+ +
+Definition unif_def A (d : A) (s : seq A) : unif A.
+ +
+Lemma Uniform_def_ne A (d : A) (s : seq A) :
+  forall (Hs : (size s != 0)%N), Uniform (unif_def d s) = Uniform (mkunif s Hs).
+ +
+
+ +
+

Uniform distribution between 0 and n included

+ +
+
+Section UnifNat.
+ +
+Implicit Types (n a : nat).
+ +
+Definition unifnat n : unif nat := mkunif (iota 0 (n.+1)) (eq_refl true).
+Definition Random n : distr nat := Uniform (unifnat n).
+ +
+Lemma Random_simpl n : mu (Random n) = mfinite (iota 0 (n.+1)) (fun x => 1).
+ +
+Lemma Random_eq_in n a :
+  (a <= n)%N -> mu (Random n) (fun x => (x==a)%:~R) = 1 / (n.+1)%:~R.
+ +
+Lemma Random_eq_out n a :
+  (n < a)%N -> mu (Random n) (fun x => (x==a)%:~R) = 0.
+ +
+Lemma mu_random_sum n (f : nat -> rat) :
+  mu (Random n) f = (\sum_(0 <= i < n.+1) f i) / (n.+1)%:~R.
+ +
+Lemma Random_in_range n :
+  mu (Random n) (fun x => (x <= n)%N%:~R) = 1%:~R.
+ +
+End UnifNat.
+ +
+
+ +
+

Distribution and big sums

+ +
+
+ +
+ +
+Lemma mu_stable_sum (A : Type) (m : distr A)
+      (I : Type) (s : seq I) (f : I -> A -> rat) :
+  mu m (fun a => \sum_(i <- s) f i a) = \sum_(i <- s) (mu m (f i)).
+ +
+Section Bigsums.
+ +
+Variable A : eqType.
+Implicit Types (x : A) (s : seq A) (m : distr A).
+ +
+Lemma in_seq_sum s x :
+  uniq s -> (x \in s)%:~R = \sum_(i <- s) (x == i)%:~R :> rat.
+ +
+Lemma mu_in_seq m s :
+  uniq s ->
+  mu m (fun x => (x \in s)%:~R) = \sum_(a <- s) mu m (fun x => (x == a)%:~R).
+ +
+Lemma mu_bool_cond m (f g : A -> bool) :
+  mu m (fun x => (f x)%:~R) = 1 ->
+  mu m (fun x => (g x)%:~R) = mu m (fun x => (f x && g x)%:~R).
+ +
+Lemma mu_pos_cond (m : distr A) (f : A -> bool) (g : A -> rat) :
+  (forall x, 0 <= g x <= 1) ->
+  mu m (fun x => (f x)%:~R) = 1 ->
+  mu m (fun x => (g x)) = mu m (fun x => ((f x)%:~R * g x)).
+ +
+End Bigsums.
+
+
+ + + +
+ + + \ No newline at end of file diff --git a/combi/1.1.0/Combi.Basic.combclass.html b/combi/1.1.0/Combi.Basic.combclass.html new file mode 100644 index 00000000..da7ee10d --- /dev/null +++ b/combi/1.1.0/Combi.Basic.combclass.html @@ -0,0 +1,350 @@ + + + + + +Combi.Basic.combclass: Fintypes for Combinatorics + + + + +
+ + + +
+ +

Library Combi.Basic.combclass: Fintypes for Combinatorics

+ +
+
+ +
+ +
+
+
+ +
+

Fintypes for Combinatorics

+ + +
+ +The goal of this file is to define various way to easily build finite +subtype of a countable type knowing a lists of its elements. We provide four +ways, three from a list (see sub_subFinType, sub_uniq_subFinType and +sub_undup_subFinType below) and one by taking the disjoint union of already +constructed subfintypes (see union_subFinType below). +
+
+ +
+From HB Require Import structures.
+From mathcomp Require Import all_boot.
+Require Import tools.
+ +
+Set Implicit Arguments.
+ +
+
+ +
+Summing count_mem in a finType +
+
+Lemma sum_count_mem (T : finType) (P : pred T) l :
+  \sum_(i | P i) (count_mem i) l = count P l.
+ +
+
+ +
+

Building subtype from a sequence

+ + +
+ +Here is how to construct a fintype from a list: we are given +
    +
  • a type T which is a countType + +
  • +
  • a type TP which is subCountType of T for a predicate P. + +
  • +
  • a list lst of element from T whose element veryfies the predicate P. + +
  • +
+ +
+ +We define three possible ways to provide TP with a subFinType structure: +
    +
  • sub_subFinType which suppose that any element verifying P appears only + once in lst; + +
  • +
  • sub_uniq_subFinType which suppose that any element verifying P appears in + lst and that lst is duplicate free (uniq); + +
  • +
  • sub_undup_subFinType which suppose that any element verifying P appears in + lst and remove the duplicate elements. + + +
  • +
+
+
+ +
+Section EnumFintype.
+Context {T : countType} {P : pred T} (TP : subCountType P).
+Variable subenum : seq T.
+Hypothesis subenumP : all P subenum.
+Hypothesis subenum_countE : forall x : T, P x -> count_mem x subenum = 1.
+ +
+Lemma sub_enumE : subenum =i P.
+ +
+Definition subType_seq : seq TP := pmap insub subenum.
+Lemma subType_seqP : map val subType_seq = subenum.
+Lemma finite_subP : Finite.axiom subType_seq.
+Definition seq_finType : finType :=
+  HB.pack TP (isFinite.Build TP finite_subP).
+ +
+Lemma enum_subE : map val (enum (seq_finType)) = subenum.
+ Lemma card_subE : #|seq_finType| = size subenum.
+ +
+End EnumFintype.
+ +
+Module Example1.
+ +
+Definition is_one n := n == 1.
+Record isOne := IsOne { one :> nat; _ : is_one one}.
+Lemma all_isOne : all is_one [:: 1].
+ Lemma isOne_count_1 x : is_one x -> count_mem x [:: 1] = 1.
+ +
+Lemma enum_isOne : map val (enum (isOne : finType)) = [:: 1].
+ Lemma card_isOne : #|isOne : finType| = 1.
+ +
+End Example1.
+ +
+
+ +
+

Method 2 - Each element appears and the lists is uniq

+ +
+
+Section UniqFinType.
+Context {T : countType} {P : pred T} (TP : subCountType P).
+Variable subenum : seq T.
+Hypothesis subenumE : subenum =i P.
+Hypothesis subenum_uniq : uniq subenum.
+ +
+Lemma all_subenum : all P subenum.
+ Lemma subenum_countE x : P x -> count_mem x subenum = 1.
+Definition uniq_finType : finType :=
+  seq_finType TP all_subenum subenum_countE.
+End UniqFinType.
+ +
+Module Example2.
+ +
+Definition is_one n := n == 1.
+Record isOne := IsOne { one :> nat; _ : is_one one}.
+Lemma all_isoneE : [:: 1] =i is_one.
+ Lemma isOne_uniq : uniq [:: 1].
+ +
+Lemma enum_isOne : map val (enum (isOne : finType)) = [:: 1].
+ Lemma card_isOne : #|isOne : finType| = 1.
+ +
+End Example2.
+ +
+
+ +
+

Method 3 - Each element appears, we remove the duplicates

+ +
+
+Section SubUndup.
+Context {T : countType} {P : pred T} (TP : subCountType P).
+Variable subenum : seq T.
+Hypothesis subenumP : all P subenum.
+Hypothesis subenum_in : forall x : T, P x -> x \in subenum.
+ +
+Lemma finite_sub_undupP :
+  Finite.axiom (undup (subType_seq TP subenum)).
+Definition undup_finType : finType :=
+  HB.pack TP (isFinite.Build TP finite_sub_undupP).
+ +
+Lemma enum_sub_undupE : map val (enum undup_finType) = undup subenum.
+ +
+End SubUndup.
+ +
+Module Example3.
+ +
+Definition is_one n := n == 1.
+Record isOne := IsOne { one :> nat; _ : is_one one}.
+Lemma all_isOne : all is_one [:: 1; 1].
+ Lemma isOne_in n : is_one n -> n \in [:: 1; 1].
+ +
+Lemma enum_isOne : map val (enum (isOne : finType)) = [:: 1].
+ Lemma card_isOne : #|isOne : finType| = 1.
+ +
+End Example3.
+ +
+
+ +
+

Finite subtype obtained as a finite the dijoint union of finite subtypes

+ + +
+ +Here is how to construct a union of disjoint finite subtype of a countable +type. More precisely, we want to define a type for + +
+ + U := Union_(i : TI | Pi i) TPi i + +
+ +For the constructed type U, we need the following data: +
    +
  • a type T which is a countType. + +
  • +
  • a type TP which is subCountType of T for a predicate P. + +
  • +
+The index type must be also countable, it should be given by +
    +
  • a type TI which is a countType. + +
  • +
  • a type TPI which is subCountType of TI for a predicate PI. + +
  • +
+For all index i : TPI, there must be a finite type, given by +
    +
  • a type TPi i which is a subFinType (Pi (val i)) for a predicate Pi i. + +
  • +
+Finally the sets { { x | Pi i } | PI i } should define a partition +of { x | P x }. This is ensured by providing +
    +
  • a map FI : T -> TI which recover the index of an element x of T. + +
  • +
+Together with the two following requirements: +
    +
  • for all index i : TPi and x : T, the statement Pi i x must be + equivalent to P x && i == FI x. + +
  • +
  • forall x : T, such that P x the assertion PI (FI x) must holds. + +
  • +
+From all these data union_subFinType is a subFinType of T for the +predicate P that is a subFinType structure for TP. + +
+ +See stpn_subFinType and yamn_subFinType for example of usage. + +
+
+Section SubtypesDisjointUnion.
+ +
+Variable T : countType.
+Variable P : pred T.
+Variable TP : subCountType P.
+ +
+Variable TI : countType.
+Variable PI : pred TI.
+Variable TPI : subFinType PI.
+ +
+Variable Pi : TI -> pred T.
+Variable TPi : forall i : TPI, subFinType (Pi (val i)).
+ +
+Variable FI : T -> TI.
+Hypothesis HPTi : forall i : TPI, (predI P (pred1 (val i) \o FI)) =1 (Pi (val i)).
+Hypothesis Hpart : forall x : T, P x -> PI (FI x).
+ +
+Definition enum_union := flatten [seq map val (enum (TPi i)) | i : TPI].
+ +
+Lemma all_unionP : all P enum_union.
+ +
+Lemma count_unionP x : P x -> count_mem x enum_union = 1.
+ +
+Let union_enum := subType_seq TP enum_union.
+ +
+Lemma subType_unionE : map val union_enum = enum_union.
+Lemma finite_unionP : Finite.axiom union_enum.
+Definition union_finType : finType :=
+  HB.pack TP (isFinite.Build TP finite_unionP).
+ +
+Lemma enum_unionE :
+  map val (enum union_finType) = enum_union.
+ +
+Lemma card_unionE : #|union_finType| = \sum_(i : TPI) #|TPi i|.
+ +
+End SubtypesDisjointUnion.
+
+
+ + + +
+ + + \ No newline at end of file diff --git a/combi/1.1.0/Combi.Basic.congr.html b/combi/1.1.0/Combi.Basic.congr.html new file mode 100644 index 00000000..704abfc0 --- /dev/null +++ b/combi/1.1.0/Combi.Basic.congr.html @@ -0,0 +1,590 @@ + + + + + +Combi.Basic.congr: Rewriting rule and congruencies of words + + + + +
+ + + +
+ +

Library Combi.Basic.congr: Rewriting rule and congruencies of words

+ +
+
+ +
+ +
+
+
+ +
+

Equivalence and congruence closure of a rewriting rule on words

+ + +
+ +If what follows a relation on T is a term of type rel T and a rewriting rule +on T is a term of type T -> seq T. + +
+ +Recall that a word congruence is an equivalence relation compatible with the +concatenation product. This is the following definitions + +
+ +
    +
  • congruence_rel r == the relation r on seq T is a congruence + +
  • +
  • congruence_rule == the rule rule on seq T is a congruence rule + +
  • +
+ +
+ +Given a rewriting rule, the goal of this file is to compute its word +congruence closure as well as its congruence classes. We therefore suppose +that equivalence classes are finite. This also ensure that the generated +equivalence relation is decidable by bounding the length of the rewriting +paths. Concretely, this is done by requiring that rule is included in a +reflexive relation invar which is invariant by rewriting rule, that is: + +
+ + Hypothesis Hinvar : forall x0 x, invar x0 x -> all (invar x0) (rule x). + +
+ +We show that this is true for homogeneous rules (ie: that preserve size) for +words over a finite alphabet as well as multi-homogeneous rules (ie: that +permutes words). Precisely, under the hypothesis + +
+ + Hypothesis Hsym : forall x y, x \in rule y -> y \in rule x. + +
+ +1- for homogeneous rules (ie: that preserve size) for words over a finite +alphabet: + +
+ + Hypothesis Hhom : forall u : word, all (szinvar u) (rule u). + +
+ +We define + +
+ +
    +
  • gencongr_hom == the word congrugence generated by a rule + +
  • +
  • genclass_hom == the class for gencongr_multhom + +
  • +
+ +
+ +2- for multi-homogeneous rules (ie: that permutes words): + +
+ + Hypothesis Hmulthom : forall u : word, all (perm_eq u) (rule u). + +
+ +We define + +
+ +
    +
  • gencongr_multhom == the word congrugence generated by a rule + +
  • +
  • genclass_multhom == the class for gencongr_multhom + +
  • +
+ +
+ + +
+ +Assuming the two latter hypothesis, we define a relation gencongr which is +the congruence transitive closure of rule. The main results here are +
    +
  • gencongrP : gencongr is the smallest transitive congruence relation + contaning rule. + +
  • +
  • gencongr_unique : gencongr is uniquely characterized by the property above + +
  • +
  • gencongr_ind : induction principle on classes for gencongr, any property + preserved along the rewriting rule holds for classes. +
  • +
+ +
+
+From HB Require Import structures.
+From mathcomp Require Import all_boot.
+From Stdlib Require Import Recdef.
+Require Import permcomp permuted multinomial vectNK.
+ +
+Set Implicit Arguments.
+ +
+
+ +
+

Transitive closure of a rule with finite classes

+ Since we only need to contruct it and not to compute with it, we use a simple but extremely inefficient algorithm +
+
+Section Transitive.
+ +
+Variable T : eqType.
+Variable rule : T -> seq T.
+Variable invar : pred T.
+Hypothesis Hinvar : forall x, invar x -> all invar (rule x).
+ +
+Section FullKnown.
+ +
+Variable full : seq T.
+Hypothesis Hfull : forall x, invar x -> x \in full.
+ +
+Theorem full_bound :
+  forall s : seq T, all invar s -> uniq s -> size s <= size full.
+ +
+End FullKnown.
+ +
+Variable bound : nat.
+Hypothesis Hbound: forall s : seq T, all invar s -> uniq s -> size s <= bound.
+ +
+Lemma invar_undupE s : all invar (undup s) = all invar s.
+ +
+Definition step s := undup (s ++ flatten (map rule s)).
+ +
+Lemma step_mem s x y : y \in rule x -> x \in s -> y \in step s.
+ +
+Lemma uniq_step s : uniq (step s).
+ +
+Lemma undup_step s : undup (step s) = step s.
+ +
+Lemma invar_step s : all invar s -> all invar (step s).
+ +
+Lemma subset_step s : {subset s <= step s}.
+ +
+Lemma subset_undup_step s : {subset undup s <= step s}.
+ +
+
+ +
+This is a very unefficient transitive closure algorithm +
+
+Function trans
+         (s : seq T) {measure (fun s => bound - size (undup s))} : seq T :=
+  let us := undup s in
+  if all invar us then
+    let news := step s in
+    if size news > size us then trans news
+    else us
+  else us.
+ +
+Lemma subset_s_trans_s s : {subset s <= trans s}.
+ +
+Variant rewrite_path x y : Prop :=
+  Rew : forall l, path (fun t => [mem (rule t)]) x l ->
+                  y = last x l -> rewrite_path x y.
+ +
+Arguments Rew {x y} (l).
+ +
+Lemma invar_rewrite_path x y : invar x -> rewrite_path x y -> invar y.
+ +
+Lemma step_closed x s y :
+  undup s =i step s -> x \in s -> rewrite_path x y -> y \in s.
+ +
+Lemma transP y l :
+  all invar l ->
+  reflect (exists x, x \in l /\ rewrite_path x y) (y \in trans l).
+ +
+Lemma rewrite_path_trans x y z :
+  rewrite_path x y -> rewrite_path y z -> rewrite_path x z.
+ +
+Lemma rewrite_path_sym x y :
+  (forall x y, x \in rule y -> y \in rule x) ->
+  rewrite_path x y -> rewrite_path y x.
+ +
+End Transitive.
+ +
+
+ +
+

Dealing with the dependance of invar on x

+ +
+
+Section Depend.
+ +
+Variable T : eqType.
+Variable rule : T -> seq T.
+ +
+Record invariant_context :=
+  InvariantContext {
+      invar : T -> pred T;
+      Hinvar_refl : forall x, invar x x;
+      Hinvar_all : forall x0 x, invar x0 x -> all (invar x0) (rule x);
+      bound : T -> nat;
+      Hbound: forall x s, all (invar x) s -> uniq s -> size s <= bound x
+    }.
+Variable inv : invariant_context.
+Hypothesis Hsym : forall x y, x \in rule y -> y \in rule x.
+ +
+Definition rclass x := trans (@Hinvar_all inv x) (@Hbound inv x) [:: x].
+Definition rtrans : rel T := fun x y => y \in rclass x.
+ +
+Lemma rtransP x y : reflect (rewrite_path rule y x) (rtrans y x).
+ +
+Theorem equiv_rtrans : equivalence_rel rtrans.
+ +
+Lemma rtrans_ind (P : T -> Prop) x :
+  P x -> (forall y z, P y -> z \in rule y -> P z) ->
+  forall t, rtrans x t -> P t.
+ +
+Lemma rule_rtrans x y : y \in rule x -> rtrans x y.
+ +
+Lemma rewrite_path_min (r : rel T) :
+  equivalence_rel r -> (forall x y, y \in rule x -> r x y) ->
+  forall x y, rewrite_path rule x y -> r x y.
+ +
+Lemma rtrans_min (r : rel T) :
+  equivalence_rel r -> (forall x y, y \in rule x -> r x y) ->
+  forall x y, rtrans x y -> r x y.
+ +
+End Depend.
+ +
+Definition congruence_rel (T : eqType) (r : rel (seq T)) :=
+  forall a b1 c b2, r b1 b2 -> r (a ++ b1 ++ c) (a ++ b2 ++ c).
+ +
+Definition congruence_rule (T : eqType) (rule : seq T -> seq (seq T)) :=
+  congruence_rel (fun a b => a \in rule b).
+ +
+
+ +
+

Basic facts on congruences:

+ equivalence of various definitions and immediate consequences +
+
+Section CongruenceFacts.
+ +
+Variable Alph : eqType.
+Notation word := (seq Alph).
+ +
+Variable r : rel word.
+Hypothesis Hcongr : congruence_rel r.
+Hypothesis Hequiv : equivalence_rel r.
+ +
+Lemma congr_cons w1 w2 a : r w1 w2 -> r (a :: w1) (a :: w2).
+ +
+Lemma congr_rcons w1 w2 a : r w1 w2 -> r (rcons w1 a) (rcons w2 a).
+ +
+Lemma congr_catl u1 u2 v : r u1 u2 -> r (u1 ++ v) (u2 ++ v).
+ +
+Lemma congr_catr u v1 v2 : r v1 v2 -> r (u ++ v1) (u ++ v2).
+ +
+Lemma congr_cat u1 u2 v1 v2 : r u1 u2 -> r v1 v2 -> r (u1 ++ v1) (u2 ++ v2).
+ +
+End CongruenceFacts.
+ +
+
+ +
+

Congruence closure of a bounded rule

+ +
+
+Section CongruenceClosure.
+ +
+Variable Alph : eqType.
+Notation word := (seq Alph).
+Implicit Types (a b c u v w : word).
+ +
+Variable rule : word -> seq word.
+ +
+Hypothesis Hsym : forall u v : word, v \in rule u -> u \in rule v.
+Variable inv : invariant_context rule.
+ +
+Definition congrrule s :=
+  flatten [seq
+             [seq (triple.1.1) ++ b1 ++ (triple.2) | b1 <- rule triple.1.2]
+          | triple <- cut3 s ].
+ +
+Lemma congrruleP u1 u2 :
+  reflect (exists a v1 b v2,
+              [/\ u1 = a ++ v1 ++ b, u2 = a ++ v2 ++ b & v1 \in rule v2])
+          (u1 \in congrrule u2).
+ +
+Lemma rule_congrrule u v : v \in rule u -> v \in congrrule u.
+ +
+Lemma congrrule_is_congr : congruence_rule congrrule.
+ +
+Hypothesis Hinvar_congr :
+  forall u a b1 b2 c,
+    invar inv b1 b2 -> invar inv u (a ++ b1 ++ c) -> invar inv u (a ++ b2 ++ c).
+ +
+Lemma congrrule_invar u v :
invar inv u v -> all (invar inv u) (congrrule v).
+ +
+Lemma congrrule_sym u v : v \in congrrule u -> u \in congrrule v.
+ +
+Definition invcont_congr :=
+  InvariantContext (Hinvar_refl inv) congrrule_invar (@Hbound _ _ inv).
+ +
+Definition gencongr := rtrans invcont_congr.
+Definition genclass := rclass invcont_congr.
+ +
+Lemma genclassE u v : (u \in genclass v) = (u \in gencongr v).
+ +
+Lemma gencongr_equiv : equivalence_rel gencongr.
+ +
+Lemma gencongr_is_congr : congruence_rel gencongr.
+ +
+Lemma rule_gencongr u v : v \in rule u -> v \in gencongr u.
+ +
+Lemma gencongr_min (r : rel word) :
+  equivalence_rel r -> congruence_rel r ->
+  (forall x y, y \in rule x -> r x y) ->
+  forall x y, gencongr x y -> r x y.
+ +
+Theorem gencongr_ind (P : word -> Prop) x :
+  P x ->
+  (forall a b1 c b2, P (a ++ b1 ++ c) -> b2 \in rule b1 -> P (a ++ b2 ++ c)) ->
+  forall y, gencongr x y -> P y.
+ +
+Lemma gencongr_invar u v : gencongr u v-> invar inv u v.
+ +
+Variant Generated_EquivCongruence (grel : rel word) :=
+  GenCongr : equivalence_rel grel ->
+             congruence_rel grel ->
+             ( forall u v, v \in rule u -> grel u v ) ->
+             ( forall r : rel word,
+                      equivalence_rel r -> congruence_rel r ->
+                      (forall x y, y \in rule x -> r x y) ->
+                      forall x y, grel x y -> r x y
+             ) -> Generated_EquivCongruence grel.
+ +
+Theorem gencongrP : Generated_EquivCongruence gencongr.
+ +
+Lemma gencongr_imply r1 r2 :
+  Generated_EquivCongruence r1 -> Generated_EquivCongruence r2 ->
+  forall x y, r1 x y -> r2 x y.
+ +
+Theorem gencongr_unique grel :
+  Generated_EquivCongruence grel -> grel =2 gencongr.
+ +
+Theorem gencongr_generic_ind grel (P : word -> Prop) x :
+  Generated_EquivCongruence grel ->
+  P x ->
+  (forall a b1 c b2, P (a ++ b1 ++ c) -> b2 \in rule b1 -> P (a ++ b2 ++ c)) ->
+  forall y, grel x y -> P y.
+ +
+End CongruenceClosure.
+ +
+
+ +
+

Multi-homogeneous congruence rules

+ +
+
+Section InvarContMultHom.
+ +
+Variable Alph : eqType.
+Notation word := (seq Alph).
+ +
+Variable rule : word -> seq word.
+Hypothesis Hmulthom : forall u : word, all (perm_eq u) (rule u).
+ +
+Lemma perm_bound (x : word) (s : seq word) :
+  all (perm_eq x) s -> uniq s -> size s <= (size x)`!.
+ +
+Lemma perm_invar (x0 x : word) : perm_eq x0 x -> all (perm_eq x0) (rule x).
+ +
+Definition invcont_perm :=
+  InvariantContext (@perm_refl _) perm_invar perm_bound.
+ +
+Hypothesis Hsym : forall u v : word, v \in rule u -> u \in rule v.
+Hypothesis Hcongr : congruence_rule rule.
+ +
+Lemma perm_invar_congr u (a b1 b2 c : word) :
+  invar invcont_perm b1 b2 ->
+  invar invcont_perm u (a ++ b1 ++ c) -> invar invcont_perm u (a ++ b2 ++ c).
+ +
+Definition gencongr_multhom := gencongr perm_invar_congr.
+Definition genclass_multhom := genclass perm_invar_congr.
+ +
+End InvarContMultHom.
+ +
+
+ +
+

Homogeneous congruence rules on a finite type

+ +
+
+Section InvarContHom.
+ +
+Variable Alph : finType.
+Notation word := (seq Alph).
+ +
+Variable rule : word -> seq word.
+Let szinvar (u : word) := [pred v : word | size v == size u].
+Hypothesis Hhom : forall u : word, all (szinvar u) (rule u).
+ +
+Lemma size_bound (x : word) (s : seq word) :
+  all (szinvar x) s -> uniq s -> size s <= #|Alph|^(size x).
+ +
+Lemma size_invar (x0 x : word) : szinvar x0 x -> all (szinvar x0) (rule x).
+ +
+Lemma size_invar_refl (x : word) : szinvar x x.
+ +
+Definition invcont_size :=
+  InvariantContext size_invar_refl size_invar size_bound.
+ +
+Hypothesis Hcongr : congruence_rule rule.
+ +
+Lemma size_invar_congr u (a b1 b2 c : word) :
+  invar invcont_size b1 b2 ->
+  invar invcont_size u (a ++ b1 ++ c) -> invar invcont_size u (a ++ b2 ++ c).
+ +
+Definition gencongr_hom := gencongr size_invar_congr.
+Definition genclass_hom := genclass size_invar_congr.
+ +
+End InvarContHom.
+ +
+
+
+ + + +
+ + + \ No newline at end of file diff --git a/combi/1.1.0/Combi.Basic.ordtype.html b/combi/1.1.0/Combi.Basic.ordtype.html new file mode 100644 index 00000000..69967258 --- /dev/null +++ b/combi/1.1.0/Combi.Basic.ordtype.html @@ -0,0 +1,578 @@ + + + + + +Combi.Basic.ordtype: Ordered Types + + + + +
+ + + +
+ +

Library Combi.Basic.ordtype: Ordered Types

+ +
+
+ +
+ +
+
+
+ +
+

Ordered type

+ + +
+ +Inhabited Types: + +
+ +
    +
  • inhType == interface for inhabited types + +
  • +
  • inhPordType == interface for partially ordered inhabited types + +
  • +
  • inhOrdType == interface for totally ordered inhabited types + +
  • +
  • inhOrdFinType == interface for totally ordered finite types + +
  • +
+ +
+ +Sequence on a totally ordered type: + +
+ +
    +
  • maxL a L == the maximum of a and the element of the sequence L + +
  • +
  • allLeq v a == a is smaller or equal than all the element of v + +
  • +
  • allLnt v a == a is strictly smaller than all the element of v + +
    + + +
  • +
  • rembig w == w minus last occurence of its largest letter + +
  • +
  • posbig w == the position of the last occurence of the largest letter of w + +
    + + +
  • +
  • shift_pos pos i == if i < pos then i else i.+1 + +
  • +
  • shiftinv_pos pos i == if i < pos then i else i.-1 + +
  • +
+ +
+ +Cover relation: + +
+ +
    +
  • covers x y == y covers x where x and y belongs to a common + finPOrderType. + + +
  • +
+
+
+From HB Require Import structures.
+From mathcomp Require Import all_boot.
+From mathcomp Require Import order.
+Require Import tools.
+ +
+Set Implicit Arguments.
+ +
+#[local] Open Scope order_scope.
+Import Order.Theory.
+ +
+
+ +
+

Induction on partially ordered types

+ +
+
+ +
+Lemma finord_wf disp (T : finPOrderType disp) (P : T -> Type) :
+  (forall x, (forall y, y < x -> P y) -> P x) -> forall x, P x.
+ +
+Lemma finord_wf_down disp (T : finPOrderType disp) (P : T -> Type) :
+  (forall x, (forall y, y > x -> P y) -> P x) -> forall x, P x.
+ +
+
+ +
+

Covering relation

+ +
+ + We only define covering relation for finite type, since it cannot be decided and it is not very useful for infinite orders. +
+
+Definition covers {disp} {T : finPOrderType disp} :=
+  [rel x y : T | (x < y) && [forall z, ~~(x < z < y)]].
+ +
+Section CoversFinPOrder.
+ +
+Context disp (T : finPOrderType disp).
+Implicit Type (x y : T).
+ +
+Lemma coversP x y : reflect (x < y /\ (forall z, ~(x < z < y))) (covers x y).
+ +
+Lemma ltcovers x y : covers x y -> x < y.
+ +
+Lemma coversEV x y : covers x y -> forall z, x <= z <= y -> z = x \/ z = y.
+ +
+Lemma covers_dual x y :
+  covers (T := T^d) y x = covers x y.
+ +
+Lemma covers_ind (P : T -> Type) :
+  (forall x y, covers x y -> P x -> P y) ->
+  forall x, P x -> forall y, x <= y -> P y.
+ +
+Lemma covers_connect x y : (connect covers x y) = (x <= y).
+ +
+Lemma covers_path x y :
+  reflect (exists2 s, path covers x s & y = last x s) (x <= y).
+ +
+End CoversFinPOrder.
+ +
+Lemma covers_rind disp (T : finPOrderType disp) (P : T -> Type) :
+  (forall x y, covers y x -> P x -> P y) ->
+  forall x, P x -> forall y, x >= y -> P y.
+ +
+
+ +
+

Inhabited types

+ +
+
+ +
+#[short(type=inhType)]
+HB.structure Definition Inhabited := {T of isInhabited T & Choice T}.
+ +
+#[warning="-HB.no-new-instance"]
+HB.instance Definition _ := isInhabited.Build T (ex_intro _ x is_true_true).
+ +
+ +
+ +
+Definition inh {T : inhType} := xchoose (@inh_ex T).
+ +
+Lemma inh_xchooseE (T : inhType) (exP : exists x0 : T, true) :
+  xchoose exP = @inh T.
+ +
+Lemma inh_chooseE (T : inhType) (x0 : T) :
+  choose xpredT x0 = @inh T.
+ +
+#[short(type=inhFinType)]
+HB.structure Definition InhFinite := { T of isInhabited T & Finite T }.
+ +
+
+ +
+

Inhabited ordered types

+ +
+ + +
+

Inhabited finite partially ordered types

+ +
+ + +
+

sequences over an ordered types

+

Maximum of a sequence

+ +
+
+Section MaxSeq.
+ +
+Context disp (T : orderType disp).
+Implicit Type a b c : T.
+Implicit Type u v : seq T.
+ +
+Definition maxL a := foldl Order.max a.
+ +
+Lemma maxLb a u : a <= maxL a u.
+ +
+Lemma in_maxL a u : (maxL a u) \in a :: u.
+ +
+Lemma maxXL a b u : Order.max a (maxL b u) = maxL (Order.max a b) u.
+ +
+Lemma maxL_cat a u b v : maxL a (u ++ b :: v) = Order.max (maxL a u) (maxL b v).
+ +
+End MaxSeq.
+ +
+
+ +
+

Comparison of the elements of a sequence to an element

+ +
+
+Section AllLeqLtn.
+ +
+Context disp (T : orderType disp).
+Implicit Type a b c : T.
+Implicit Type u v : seq T.
+ +
+Definition allLeq v a := all (<= a) v.
+Definition allLtn v a := all (< a) v.
+ +
+Lemma allLtn_notin s b : allLeq s b -> b \notin s -> allLtn s b.
+ +
+Lemma maxLPt a u : allLeq u (maxL a u).
+Lemma maxLP a u : allLeq (a :: u) (maxL a u).
+ +
+Lemma allLtnW v a : allLtn v a -> allLeq v a.
+ +
+Lemma allLeqE u a : allLeq u a -> maxL a u = a.
+Lemma allLeqP u a : reflect (maxL a u = a) (allLeq u a).
+ +
+Lemma allLeqCons b u a : b <= a -> allLeq u a -> allLeq (b :: u) a.
+Lemma allLtnCons b u a : b < a -> allLtn u a -> allLtn (b :: u) a.
+ +
+Lemma allLeqConsE u a b : allLeq (b :: u) a = (maxL b u <= a).
+ +
+Lemma allLtnConsE u a b : allLtn (b :: u) a = (maxL b u < a).
+ +
+Lemma allLeq_consK b u a : allLeq (b :: u) a -> allLeq u a.
+Lemma allLtn_consK b u a : allLtn (b :: u) a -> allLtn u a.
+ +
+Lemma allLeq_catE u v a : allLeq (u ++ v) a = allLeq u a && allLeq v a.
+Lemma allLtn_catE u v a : allLtn (u ++ v) a = allLtn u a && allLtn v a.
+ +
+Lemma maxL_perm a u b v : perm_eq (a :: u) (b :: v) -> maxL a u = maxL b v.
+ +
+Lemma perm_allLeq u v a : perm_eq u v -> allLeq u a -> allLeq v a.
+Lemma perm_allLeqE u v a : perm_eq u v -> allLeq u a = allLeq v a.
+Lemma perm_allLtn u v a : perm_eq u v -> allLtn u a -> allLtn v a.
+Lemma perm_allLtnE u v a : perm_eq u v -> allLtn u a = allLtn v a.
+ +
+Lemma allLeq_rev u a : allLeq (rev u) a = allLeq u a.
+Lemma allLtn_rev u a : allLtn (rev u) a = allLtn u a.
+ +
+Lemma allLeq_rconsK b u a : allLeq (rcons u b) a -> allLeq u a.
+Lemma allLtn_rconsK b u a : allLtn (rcons u b) a -> allLtn u a.
+ +
+Lemma allLeq_last b u a : allLeq (rcons u b) a -> b <= a.
+Lemma allLtn_last b u a : allLtn (rcons u b) a -> b < a.
+ +
+Lemma maxL_LbR a v L b R :
+  a :: v = L ++ b :: R -> allLeq L b -> allLeq R b -> maxL a v = b.
+ +
+End AllLeqLtn.
+ +
+
+ +
+

Removing the largest letter of a sequence

+ +
+
+Section RemoveBig.
+ +
+Context disp (T : orderType disp).
+Variable Z : T.
+Implicit Type a b c : T.
+Implicit Type u v w r : seq T.
+ +
+
+ +
+Remove the last occurence of the largest letter from w +
+
+Fixpoint rembig w :=
+  if w is a :: v then
+    if allLtn v a then v else a :: rembig v
+  else [::].
+ +
+
+ +
+Position of the last occurence of the largest letter of w +
+
+Fixpoint posbig w :=
+  if w is a :: v then
+    if allLtn v a then 0 else (posbig v).+1
+  else 0.
+ +
+Lemma size_rembig w : size (rembig w) = (size w).-1.
+ +
+Lemma rembig_catR a u b v :
+  maxL a u <= maxL b v -> rembig (a :: u ++ b :: v) = a :: u ++ rembig (b :: v).
+ +
+Lemma rembig_catL a u b v :
+  maxL a u > maxL b v -> rembig (a :: u ++ b :: v) = rembig (a :: u) ++ b :: v.
+ +
+Lemma rembig_cat u v :
+  rembig (u ++ v) = (rembig u) ++ v \/ rembig (u ++ v) = u ++ (rembig v).
+ +
+Lemma rembig_eq_permL u1 u2 v :
+  perm_eq u1 u2 ->
+  (rembig (u1 ++ v) = (rembig u1) ++ v /\
+   rembig (u2 ++ v) = (rembig u2) ++ v)
+  \/
+  (rembig (u1 ++ v) = u1 ++ (rembig v) /\
+   rembig (u2 ++ v) = u2 ++ (rembig v)).
+ +
+Lemma rembig_eq_permR u v1 v2 :
+  perm_eq v1 v2 ->
+  (rembig (u ++ v1) = (rembig u) ++ v1 /\
+   rembig (u ++ v2) = (rembig u) ++ v2)
+  \/
+  (rembig (u ++ v1) = u ++ (rembig v1) /\
+   rembig (u ++ v2) = u ++ (rembig v2)).
+ +
+Lemma rembigP w wb : wb != [::] ->
+  reflect
+    (exists u b v, [/\ w = u ++ v, wb = u ++ b :: v, allLeq u b & allLtn v b])
+    (w == rembig wb).
+ +
+Lemma perm_rembig u v :
+  perm_eq u v -> perm_eq (rembig u) (rembig v).
+ +
+Lemma rembig_rev_uniq s : uniq s -> rev (rembig s) = rembig (rev s).
+ +
+Lemma rembig_subseq s : subseq (rembig s) s.
+ +
+Lemma rembig_uniq s : uniq s -> uniq (rembig s).
+ +
+Open Scope nat_scope.
+ +
+Lemma posbig_size_cons l s : posbig (l :: s) < size (l :: s).
+ +
+Lemma posbig_size s : s != [::] -> posbig s < size s.
+ +
+Lemma posbigE u b v :
+  (allLeq u b && allLtn v b) = (posbig (u ++ b :: v) == size u).
+ +
+Lemma posbig_take_dropE l s :
+  take (posbig (l :: s)) (rembig (l :: s)) ++
+     maxL l s
+     :: drop (posbig (l :: s)) (rembig (l :: s)) = l :: s.
+ +
+Lemma nth_posbig l s : nth Z (l :: s) (posbig (l :: s)) = maxL l s.
+ +
+Lemma allLeq_posbig l s :
+  allLeq (take (posbig (l :: s)) (l :: s)) (maxL l s).
+ +
+Lemma allLtn_posbig l s :
+  allLtn (drop (posbig (l :: s)).+1 (l :: s)) (maxL l s).
+ +
+Lemma rembigE l s :
+  take (posbig (l :: s)) (l :: s) ++
+       drop (posbig (l :: s)).+1 (l :: s) = rembig (l :: s).
+ +
+Lemma nth_lt_posbig i s : i < posbig s -> nth Z (rembig s) i = nth Z s i.
+ +
+Definition shift_pos pos i := if i < pos then i else i.+1.
+Definition shiftinv_pos pos i := if i < pos then i else i.-1.
+ +
+Lemma shift_posK pos i : shiftinv_pos pos (shift_pos pos i) = i.
+ +
+Lemma shiftinv_posK pos i : i != pos -> shift_pos pos (shiftinv_pos pos i) = i.
+ +
+Lemma nth_rembig s i :
+  nth Z s (shift_pos (posbig s) i) = nth Z (rembig s) i.
+ +
+Lemma nth_inspos s pos i n :
+  pos <= size s ->
+  nth Z ((take pos s) ++ n :: (drop pos s)) i =
+  if i == pos then n else nth Z s (shiftinv_pos pos i).
+ +
+Lemma shift_pos_mono pos : {mono shift_pos pos : i j / i <= j}.
+ +
+Lemma shiftinv_pos_homo pos : {homo shiftinv_pos pos : i j / i <= j}.
+ +
+End RemoveBig.
+ +
+ +
+Lemma maxL_iota n i : maxL i (iota i.+1 n) = i + n.
+ +
+Lemma maxL_iota_n n : maxL 0%N (iota 1 n) = n.
+ +
+Lemma rembig_iota n i : rembig (iota i n.+1) = iota i n.
+
+
+ + + +
+ + + \ No newline at end of file diff --git a/combi/1.1.0/Combi.Basic.unitriginv.html b/combi/1.1.0/Combi.Basic.unitriginv.html new file mode 100644 index 00000000..3f04e41a --- /dev/null +++ b/combi/1.1.0/Combi.Basic.unitriginv.html @@ -0,0 +1,208 @@ + + + + + +Combi.Basic.unitriginv: Uni-triangular Matrices + + + + +
+ + + +
+ +

Library Combi.Basic.unitriginv: Uni-triangular Matrices

+ +
+
+ +
+ +
+
+
+ +
+

Triangular matrix with 1 on the diagonal

+ + +
+ +We deal with "matrices" which are triangular for a possibly partial order +with 1 on the diagonal. The goal is to show that such a matrix is invertible +on any ring and to give formulas for the inverse. The matrices are given as a +function M : T -> T -> R for a finite partially ordered type T and a +commutative unit ring R. + +
+ +
    +
  • unitrig M == M is unitriangular where M. + +
  • +
  • Mat M == transform M to a usual mathcomp square matrix of order #|T| + +
  • +
  • Minv M == the inverse of the matrix M. + +
  • +
+ +
+ +We show that such a matrix has determinant 1 (Lemma det_unitrig) and is +therefore invertible. Moreover Lemma Minv_unitrig says that the inverse +is unitriangular too. + +
+
+From Corelib Require Import Setoid.
+From mathcomp Require Import ssreflect ssrfun ssrbool eqtype ssrnat order.
+From mathcomp Require Import fintype bigop ssralg.
+From mathcomp Require Import finset fingroup perm matrix.
+ +
+Require ordtype.
+ +
+Set Implicit Arguments.
+ +
+Import Order.TTheory.
+Import GRing.Theory.
+#[local] Open Scope ring_scope.
+ +
+Section UniTriangular.
+ +
+Variable R : comUnitRingType.
+Context disp (T : finPOrderType disp).
+Implicit Type M : T -> T -> R.
+Implicit Types t u v : T.
+ +
+Definition unitrig M :=
+  [forall t, M t t == 1] && [forall t, [forall (u | M u t != 0), (t <= u)%O]].
+Lemma unitrigP M :
+  reflect ((forall t, M t t = 1) /\ (forall t u, M u t != 0 -> (t <= u)%O))
+          (unitrig M).
+ +
+Lemma unitrig1 : unitrig (fun x y => (x == y)%:R).
+ +
+
+ +
+TODO : construct the group of unitriangular matrix +
+
+ +
+Lemma unitrig_suml M (Mod : lmodType R) (F : T -> Mod) u :
+  unitrig M ->
+  \sum_(t : T) M u t *: F t = \sum_(t | (t <= u)%O) M u t *: F t.
+ +
+Lemma unitrig_sum1l M (Mod : lmodType R) (F : T -> Mod) u :
+  unitrig M ->
+  \sum_(t : T) M u t *: F t = F u + \sum_(t | (t < u)%O) M u t *: F t.
+ +
+Lemma unitrig_sumr M (Mod : lmodType R) (F : T -> Mod) t :
+  unitrig M ->
+  \sum_(u : T) M u t *: F u = \sum_(u | (t <= u)%O) M u t *: F u.
+ +
+Lemma unitrig_sum1r M (Mod : lmodType R) (F : T -> Mod) t :
+  unitrig M ->
+  \sum_(u : T) M u t *: F u = F t + \sum_(u | (t < u)%O) M u t *: F u.
+ +
+Lemma unitrig_sumlV M (Mod : lmodType R) (F : T -> Mod) u :
+  unitrig M ->
+  \sum_(t : T) M t u *: F t = \sum_(t | (u <= t)%O) M t u *: F t.
+ +
+Lemma unitrig_sum1lV M (Mod : lmodType R) (F : T -> Mod) u :
+  unitrig M ->
+  \sum_(t : T) M t u *: F t = F u + \sum_(t | (u < t)%O) M t u *: F t.
+ +
+Lemma unitrig_sumrV M (Mod : lmodType R) (F : T -> Mod) t :
+  unitrig M ->
+  \sum_(u : T) M t u *: F u = \sum_(u | (u <= t)%O) M t u *: F u.
+ +
+Lemma unitrig_sum1rV M (Mod : lmodType R) (F : T -> Mod) t :
+  unitrig M ->
+  \sum_(u : T) M t u *: F u = F t + \sum_(u | (u < t)%O) M t u *: F u.
+ +
+End UniTriangular.
+ +
+Section TriangularInv.
+ +
+Context (R : comUnitRingType) disp (T : finPOrderType disp).
+Variable M : T -> T -> R.
+Implicit Types t u v : T.
+ +
+Hypothesis Munitrig : unitrig M.
+ +
+#[local] Notation n := #|{: T}|.
+Definition Mat : 'M[R]_n := \matrix_(i, j < n) M (enum_val i) (enum_val j).
+ +
+Lemma det_unitrig : \det Mat = 1.
+ +
+Definition Minv t u : R := invmx Mat (enum_rank t) (enum_rank u).
+ +
+Lemma Minvl t u : \sum_(v : T) (Minv t v) * (M v u) = (u == t)%:R.
+ +
+Lemma Minvr t u : \sum_(v : T) (M t v) * (Minv v u) = (u == t)%:R.
+ +
+Lemma Minv_trig t u : Minv u t != 0 -> (t <= u)%O.
+ +
+Lemma Minv_uni t : Minv t t = 1.
+ +
+Lemma Minv_unitrig : unitrig Minv.
+ +
+Lemma Minv_lincombl (Mod : lmodType R) (F G : T -> Mod) :
+  (forall t, F t = \sum_u M t u *: G u) ->
+  (forall t, G t = \sum_u Minv t u *: F u).
+ +
+Lemma Minv_lincombr (Mod : lmodType R) (F G : T -> Mod) :
+  (forall t, F t = \sum_u M u t *: G u) ->
+  (forall t, G t = \sum_u Minv u t *: F u).
+ +
+End TriangularInv.
+
+
+ + + +
+ + + \ No newline at end of file diff --git a/combi/1.1.0/Combi.Combi.Dyckword.html b/combi/1.1.0/Combi.Combi.Dyckword.html new file mode 100644 index 00000000..b13d8c6b --- /dev/null +++ b/combi/1.1.0/Combi.Combi.Dyckword.html @@ -0,0 +1,741 @@ + + + + + +Combi.Combi.Dyckword: Dyck Words + + + + +
+ + + +
+ +

Library Combi.Combi.Dyckword: Dyck Words

+ +
+
+ +
+ +
+
+
+ +
+

Dyck Words

+ + +
+ +A Dyck word is a word on the two letter alphabet "(" and ")" which is well +parentesized. More formally + +
+ +
    +
  • for all prefix, the number of "(" is larger that the number of ")"; + +
  • +
  • the total number of "(" is equal to those of ")". + +
  • +
+ +
+ +We encode those words using: + +
+ +
    +
  • brace == a type with two values Open and Close and locally use + the notations "{{" and "}}" + +
  • +
  • height w == the difference between the number of "{{" and "}}" + +
  • +
  • prefixes w == the list of all the prefix of w + +
    + + +
  • +
  • w is a Dyck_prefix <=> for all prefix, the number of "{{" is larger than + the number of "}}" + +
  • +
  • w is a Dyck_word <=> w is a Dyck word, that is a Dyck_prefix of height 0 + +
    + + +
  • +
  • Dyck == a Sigma-type for Dyck words. It is canonically a countType + +
  • +
  • [Dyck of s] == a Dyck word for the sequence s; the proof is canonically + infered. + +
  • +
  • [Dyck of s by pf] == a Dyck word for the sequence s using the proof pf + +
  • +
  • [Dyck {{ D1 }} D2] == the term of type Dyck corresponding to the word + "(D1)D2", assuming that D1 and D2 are of type Dyck + +
  • +
+ +
+ +Dyck words are in bijection with binary trees: + +
+ +
    +
  • Dyck_of_bintree t == the image of the binary tree t by the standard + bijection from trees to Dyck words. + +
  • +
  • bintree_of_Dyck D == the converse bijection + +
  • +
+ +
+ +The main result of this file is to show that the number of Dyck word is the +so-called Catalan numbers defined below: + +
+ +
    +
  • Catalan n == the n-th Catalan number 'C(n.*2, n) %/ n.+1 + +
  • +
  • Dyck_hsz n == the set of tuple of half size n which are Dyck words + +
  • +
  • bal_hsz n == the set of tuple of half size n which are balanced words + +
  • +
+ +
+ +We prove bijectively the equality with catalan binomial formula, using the +rotation trick: there is a (n+1) to 1 map from balanced words to Dyck words. + +
+ +
    +
  • minh w == the minimal height of prefixes of w + +
  • +
  • pfminh w == the first position where the minimal height is reached + +
  • +
  • Dyck_of_bal w == given a balanced word w returns the unique Dyck word + D such that D) is a rotation of w) + +
  • +
  • bal_of_Dyck rt w == the word obtained by rotating w) by rt and + removing the last letter. + +
    + + +
  • +
  • bal_part n == the partition of balanced words given by the fiber of the + Dyck_of_bal map. The main argument is to show that all the fibers + have the same cardinality n+1. + + +
  • +
+
+
+From HB Require Import structures.
+From mathcomp Require Import all_boot order.
+From mathcomp Require Import div ssralg ssrint ssrnum binomial.
+Require Import tools combclass bintree.
+ +
+Set Implicit Arguments.
+ +
+Import Order.TTheory GRing.Theory Num.Theory.
+ +
+Section PreimPartition.
+ +
+Variables (T rT : finType) (f : T -> rT) (D : {set T}).
+ +
+Lemma mem_preim_partition (B : {set T}) :
+  B \in preim_partition f D ->
+  exists x0 : T, (x0 \in B) /\ (B = D :&: f @^-1: [set f x0]).
+ +
+Lemma imset_transversal_preim :
+  f @: (transversal (preim_partition f D) D) = f @: D.
+ +
+Lemma card_preim_partition : #|preim_partition f D| = #|f @: D|.
+ +
+End PreimPartition.
+ +
+Lemma card_preim_nth (m : nat) (T : eqType) (s : seq T) (P : pred T) (u : T):
+  size s = m -> #|[set i : 'I_m | preim (nth u s) P i]| = count P s.
+ +
+
+ +
+

Braces and Dyck words

+ +
+
+Inductive brace : Set := | Open : brace | Close : brace.
+ +
+#[local] Notation "{{" := Open.
+#[local] Notation "}}" := Close.
+ +
+Definition bool_of_brace b := if b is {{ then true else false.
+Definition brace_of_bool b := if b then {{ else }}.
+ +
+Lemma bool_of_braceK : cancel bool_of_brace brace_of_bool.
+Lemma brace_of_boolK : cancel brace_of_bool bool_of_brace.
+ +
+ +
+Lemma size_count_braceE (w : seq brace) :
+  size w = count_mem {{ w + count_mem }} w.
+ +
+Import GRing.Theory Num.Theory.
+Open Scope int_scope.
+Open Scope ring_scope.
+ +
+
+ +
+

Height of a word

+ +
+
+Section Defs.
+ +
+Implicit Type n : nat.
+Implicit Type u v w : seq brace.
+ +
+Definition height w : int := Posz (count_mem {{ w) - Posz (count_mem }} w).
+ +
+Lemma height_nil : height [::] = 0.
+ +
+Lemma height_cons l v :
+  height (l :: v) = (if l == {{ then 1 else -1) + height v.
+ +
+Lemma height_rcons v l :
+  height (rcons v l) = height v + (if l == {{ then 1 else -1).
+ +
+Lemma height_cat u v : height (u ++ v) = height u + height v.
+ +
+Definition height_simpl := (height_cons, height_rcons, height_cat, height_nil).
+ +
+Lemma height_drop n u : height (drop n u) = height u - height (take n u).
+ +
+Lemma height_rev u : height (rev u) = height u.
+ +
+Lemma height_nseq n b :
+  height (nseq n b) = Posz n * (if b == {{ then 1 else -1).
+ +
+Definition prefixes w := [seq take n w | n <- iota 0 (size w).+1].
+ +
+Lemma take_prefixes w i : take i w \in prefixes w.
+Lemma mem_prefixesP w p : reflect (exists i, p = take i w) (p \in prefixes w).
+ +
+
+ +
+

Definitions

+ +
+
+Definition Dyck_prefix :=
+  [qualify a w : seq brace |
+   all (fun p : seq brace => height p >= 0) (prefixes w)].
+Definition Dyck_word :=
+  [qualify a w : seq brace | (w \is a Dyck_prefix) && (height w == 0)].
+ +
+Lemma Dyck_prefixP w :
+  reflect (forall n, height (take n w) >= 0) (w \is a Dyck_prefix).
+ +
+Lemma Dyck_wordP w :
+  reflect
+    ((forall n, height (take n w) >= 0) /\ (height w = 0))
+    (w \is a Dyck_word).
+ +
+Lemma height_take_leq (h : int) w :
+  (forall n : nat, h <= height (take n w)) <->
+  (forall n : nat, (n <= size w)%N -> h <= height (take n w)).
+ +
+Lemma Dyck_word_OwC w :
+  w \is a Dyck_word -> {{ :: w ++ [:: }}] \is a Dyck_word.
+ +
+Lemma Dyck_word_cat w1 w2 :
+  w1 \is a Dyck_word -> w2 \is a Dyck_word -> w1 ++ w2 \is a Dyck_word.
+Lemma Dyck_word_flatten l :
+  all (mem Dyck_word) l -> flatten l \is a Dyck_word.
+ +
+Lemma Dyck_word_OwCw w1 w2 :
+  w1 \is a Dyck_word -> w2 \is a Dyck_word ->
+  {{ :: w1 ++ }} :: w2 \is a Dyck_word.
+ +
+End Defs.
+ +
+
+ +
+

Sigma type for Dyck words

+ +
+
+Section DyckType.
+ +
+Record Dyck := DyckWord {dyckword :> seq brace;
+                         is_dyckword :> dyckword \is a Dyck_word}.
+ +
+Implicit Type D : Dyck.
+ +
+Lemma DyckP D : (dyckword D) \is a Dyck_word.
+ Hint Resolve DyckP : core.
+ +
+Definition dyck D mkD : Dyck :=
+  mkD (let: DyckWord _ DP := D return dyckword D \is a Dyck_word in DP).
+ +
+Lemma dyckE D : dyck (fun sP => @DyckWord D sP) = D.
+ +
+Canonical nil_Dyck := (@DyckWord [::] is_true_true).
+Canonical cat_Dyck D1 D2 := DyckWord (Dyck_word_cat D1 D2).
+Canonical join_Dyck D1 D2 := DyckWord (Dyck_word_OwCw D1 D2).
+ +
+End DyckType.
+ +
+#[warning="-notation-incompatible-prefix"]
+Notation "'[' 'Dyck' 'of' s ]" := (dyck (fun sP => @DyckWord s sP))
+  (at level 9, format "[ 'Dyck' 'of' s ]") : form_scope.
+ +
+#[warning="-notation-incompatible-prefix"]
+Notation "'[' 'Dyck' 'of' s 'by' pf ]" := (@DyckWord s pf)
+  (at level 9, format "[ 'Dyck' 'of' s 'by' pf ]") : form_scope.
+ +
+#[warning="-notation-incompatible-prefix"]
+Notation "'[' 'Dyck' '{{' D1 '}}' D2 ]" := (join_Dyck D1 D2)
+  (at level 8, format "[ 'Dyck' '{{' D1 '}}' D2 ]",
+   D1 at next level) : form_scope.
+ +
+
+ +
+

Standard factorization of Dyck words

+ +
+
+Section DyckFactor.
+ +
+Implicit Type D : Dyck.
+ +
+Lemma Dyck_cut_ex D :
+  D != [Dyck of [::]] -> exists i, (i != 0)%N && (height (take i D) == 0).
+ +
+Theorem factor_Dyck D :
+  D != [Dyck of [::]] -> { DD : Dyck * Dyck | D = [Dyck {{ DD.1 }} DD.2] }.
+ +
+Theorem join_Dyck_inj D1 D2 E1 E2 :
+  [Dyck {{D1}}D2] = [Dyck {{E1}}E2] -> (D1, D2) = (E1, E2).
+ +
+End DyckFactor.
+ +
+
+ +
+

Induction on Dyck words following the standard factorization

+ +
+
+Section DyckSetInd.
+ +
+Implicit Type D : Dyck.
+ +
+Variable P : Dyck -> Type.
+Hypotheses (Pnil : P nil_Dyck)
+           (Pcons : forall D1 D2, P D1 -> P D2 -> P [Dyck {{ D1 }} D2]).
+ +
+Theorem Dyck_ind D : P D.
+ +
+End DyckSetInd.
+ +
+
+ +
+

Examples of application of the induction principle

+ +
+
+Lemma Dyck_size_even (D : Dyck) : ~~ odd (size D).
+ +
+Lemma factor_Dyck_seq D :
+  { DS : seq Dyck | D = foldr join_Dyck nil_Dyck DS }.
+ +
+Lemma foldr_join_Dyck_inj : injective (foldr join_Dyck nil_Dyck).
+ +
+Lemma size_foldr_join_Dyck DS :
+  (size (foldr join_Dyck nil_Dyck DS) =
+   sumn (map (size \o dyckword) DS) + 2 * size DS)%N.
+ +
+
+ +
+

Bijection with binary trees

+ +
+
+Section BijBinTrees.
+ +
+Fixpoint Dyck_of_bintree t :=
+  if t is BinNode l r then
+    [Dyck {{ (Dyck_of_bintree l) }} Dyck_of_bintree r]
+  else nil_Dyck.
+ +
+Lemma bintree_of_Dyck_spec D :
+  { t : bintree | Dyck_of_bintree t = D /\
+                  forall t', Dyck_of_bintree t' = D -> t = t' }.
+Definition bintree_of_Dyck D := proj1_sig (bintree_of_Dyck_spec D).
+ +
+Lemma bintree_of_DyckK D : Dyck_of_bintree (bintree_of_Dyck D) = D.
+ +
+Lemma bintree_of_nil_Dyck : bintree_of_Dyck nil_Dyck = BinLeaf.
+ +
+Lemma bintree_of_join_Dyck D1 D2 :
+  bintree_of_Dyck ([Dyck {{ D1 }} D2]) =
+  BinNode (bintree_of_Dyck D1) (bintree_of_Dyck D2).
+ +
+Theorem Dyck_of_bintreeK t : bintree_of_Dyck (Dyck_of_bintree t) = t.
+ +
+Lemma size_Dyck_of_bintree t :
+  size (Dyck_of_bintree t) = (size_tree t).*2.
+ +
+Lemma size_bintree_of_Dyck D :
+  (size_tree (bintree_of_Dyck D)).*2 = size D.
+ +
+End BijBinTrees.
+ +
+
+ +
+

Dyck and balanced words

+

Rotation map from balanced words to a Dyck words

+ +
+
+Section BalToDyck.
+ +
+Variable w : seq brace.
+ +
+Definition minh :=
+  - Posz (\max_(s <- prefixes w) (count_mem }} s - count_mem {{ s)).
+ +
+Lemma minhE :
+  minh = - Posz (\max_(i < (size w).+1)
+                  (count_mem }} (take i w) - count_mem {{ (take i w))).
+ +
+Lemma minhP : forall i : nat, height (take i w) >= minh.
+ +
+Fact exists_minh : exists i : nat, height (take i w) == minh.
+Definition pfminh := ex_minn exists_minh.
+ +
+Lemma pfminhP : height (take pfminh w) = minh.
+ +
+Lemma pfminh_size : (pfminh <= size w)%N.
+ +
+Lemma pfminh_min :
+  forall i : nat, (i < pfminh)%N -> height (take i w) > minh.
+ +
+Lemma pfminhE n :
+  (n <= size w)%N ->
+  (forall i : nat, height (take i w) >= height (take n w)) ->
+  (forall i : nat, (i < n)%N -> height (take i w) > height (take n w)) ->
+  n = pfminh.
+ +
+Hypothesis Hbal1 : height w = -1.
+ +
+Lemma minh_neg : minh < 0.
+ +
+Lemma pfminh_pos : (pfminh > 0)%N.
+ +
+Lemma nth_pfminh : nth {{ w pfminh.-1 = }}.
+ +
+Lemma last_rot_pfminh : last {{ (rot pfminh w) = }}.
+ +
+Lemma rot_pfminhE :
+  rcons (take (size w).-1 (rot pfminh w)) }} = rot pfminh w.
+ +
+Theorem rot_is_Dyck : take (size w).-1 (rot pfminh w) \is a Dyck_word.
+ +
+End BalToDyck.
+ +
+Section DyckToBal.
+ +
+Variables (w : seq brace) (rt : nat).
+Hypothesis HDyck : w \is a Dyck_word.
+Hypothesis Hrt: (rt <= (size w))%N.
+ +
+Lemma rrw_bal1 : height (rot rt (rcons w }})) = -1.
+ +
+Lemma pfminh_rrw :
+  pfminh (rot rt (rcons w }})) = ((size w).+1 - rt)%N.
+ +
+Lemma minh_rrw : minh (rot rt (rcons w }})) = - height (take rt w) - 1.
+ +
+End DyckToBal.
+ +
+Close Scope ring_scope.
+ +
+
+ +
+

Catalan numbers

+ +
+
+Definition Catalan n := 'C(n.*2, n) %/ n.+1.
+ +
+Definition Dyck_hsz n : {set n.*2.-tuple brace} :=
+  [set w : n.*2.-tuple brace | tval w \is a Dyck_word].
+Definition bal_hsz n : {set n.*2.-tuple brace} :=
+  [set w : n.*2.-tuple brace | height w == 0].
+ +
+Theorem card_bintreesz_dyck n : #|bintreesz n| = #|Dyck_hsz n|.
+ +
+Lemma count_mem_height0 n (w : n.*2.-tuple brace) b :
+  height w = 0 -> count_mem b w = n.
+ +
+Lemma card_bal_hsz n : #|bal_hsz n| = 'C(n.*2, n).
+ +
+
+ +
+

The rotation bijection

+ +
+
+Section DyckWordRotationBijection.
+ +
+Variable n : nat.
+Implicit Types u v w D : n.*2.-tuple brace.
+ +
+Fact size_UnDn : size (nseq n {{ ++ nseq n }}) == n.*2.
+ Definition UnDn := Tuple size_UnDn.
+ +
+Lemma UnDn_Dyck : tval UnDn \is a Dyck_word.
+ +
+Fact size_UDn : size (flatten (nseq n [:: {{; }}])) == n.*2.
+ Definition UDn := Tuple size_UDn.
+ +
+Lemma UDn_Dyck : tval UDn \is a Dyck_word.
+ +
+Fact size_Dyck_of_bal w :
+  size (take (size w) (rot (pfminh (rcons w }})) (rcons w }}))) == n.*2.
+ Definition Dyck_of_bal w := Tuple (size_Dyck_of_bal w).
+ +
+Lemma Dyck_of_balP w : height w = 0 -> tval (Dyck_of_bal w) \is a Dyck_word.
+ +
+Lemma Dyck_of_Dyck_hsz D : tval D \is a Dyck_word -> Dyck_of_bal D = D.
+ +
+Fact size_bal_of_Dyck rt w :
+  size (take (size w) (rotr rt (rcons w }}))) == n.*2.
+ Definition bal_of_Dyck rt w := Tuple (size_bal_of_Dyck rt w).
+ +
+Lemma bal_of_DyckP rt w :
+  (rt <= size w)%N ->
+  nth {{ (rcons w }}) (size w - rt) = }} ->
+  height w = 0 -> height (bal_of_Dyck rt w) = 0.
+ +
+Lemma rcons_bal_of_Dyck w k :
+  (k <= size w)%N ->
+  nth {{ (rcons w }}) (size w - k) = }} ->
+  rcons (bal_of_Dyck k w) }} = rotr k (rcons w }}).
+ +
+Lemma bal_of_DyckK D rt :
+  (rt <= size D)%N ->
+  nth {{ (rcons D }}) (size D - rt) = }} ->
+  tval D \is a Dyck_word ->
+  Dyck_of_bal (bal_of_Dyck rt D) = D.
+ +
+Lemma Dyck_of_balK w :
+  height w = 0 -> w = bal_of_Dyck (pfminh (rcons w }})) (Dyck_of_bal w).
+ +
+Lemma preim_Dyck_of_balE D :
+  tval D \is a Dyck_word ->
+  (bal_hsz n) :&: (Dyck_of_bal @^-1: [set D]) =
+  [ set bal_of_Dyck (nat_of_ord rt) D |
+    rt : 'I_((size D).+1) & nth {{ (rcons D }}) (size D - rt) == }} ].
+ +
+Lemma card_preim_Dyck_of_bal D :
+  tval D \is a Dyck_word ->
+  #|(bal_hsz n) :&: (Dyck_of_bal @^-1: [set D])| = n.+1.
+ +
+End DyckWordRotationBijection.
+ +
+Arguments Dyck_of_bal {n}.
+Arguments bal_of_Dyck {n}.
+ +
+
+ +
+

Main theorem for catalan numbers

+ +
+
+Theorem card_bal_Dyck_hsz n : #|bal_hsz n| = #|Dyck_hsz n| * n.+1.
+ +
+Lemma div_central_binomial n : n.+1 %| 'C(n.*2, n).
+ +
+Theorem card_Dyck_hsz n : #|Dyck_hsz n| = Catalan n.
+ +
+Theorem Catalan_binE n : Catalan_bin n = Catalan n.
+
+
+ + + +
+ + + \ No newline at end of file diff --git a/combi/1.1.0/Combi.Combi.Yamanouchi.html b/combi/1.1.0/Combi.Combi.Yamanouchi.html new file mode 100644 index 00000000..7939cd0b --- /dev/null +++ b/combi/1.1.0/Combi.Combi.Yamanouchi.html @@ -0,0 +1,399 @@ + + + + + +Combi.Combi.Yamanouchi: Yamanouchi Words + + + + +
+ + + +
+ +

Library Combi.Combi.Yamanouchi: Yamanouchi Words

+ +
+
+ +
+ +
+
+
+ +
+

Yamanouchi words.

+ + +
+ +A Yamanouchi word w is a seq nat such as for all i in any suffix of w, +the number of occurence of i is larger than the number of occurence of i+1. +Yamanouchi words are in bijection with standard tableaux. + +
+ +We define the following notions and notations: + +
+ +
    +
  • evalseq s == the evaluation of the sequence s stored as a sequence, + that is the sequence whose i-th entry is the number + of occurences of i in s; the final zeroes are not stored + so that the sequence ends with a non zero entry. + +
  • +
  • evalseq_count == an alternate definition of the previous sequence + +
  • +
  • is_yam s == s is a Yamanouchi word + +
  • +
  • is_yam_of_eval ev s == s is a Yamanouchi word of evaluation ev. + +
  • +
  • decr_yam s == the Yamanouchi word obtained by removing the zero and + decrassing all the other entries by 1 + +
  • +
  • hyper_yam ev == the hyperstandard (decreasing) Yamanouchi word of + evaluation ev such as 33 2222 11111 0000000 + +
  • +
+ +
+ +Enumeration of Yamanouchi words: + +
+ +
    +
  • is_yam_of_eval ev y == y is a yamanouchi word of evalutation ev + +
  • +
  • is_yam_of_size n y == y is a yamanouchi word of size n + +
  • +
  • enum_yameval ev == the lists of all yamanouchi word of evalutation ev + +
  • +
+ +
+ + +
+ +Sigma types for Yamanouchi words: + +
+ +
    +
  • yameval ev == a type for seq nat which are Yamanouchi words of + evaluation ev; it is canonically a finType + +
  • +
  • yamn n == a type for seq nat which are Yamanouchi words of + size n; it is canonically a finType + +
  • +
  • hyper_yameval ev == the the hyperstandard (decreasing) Yamanouchi word of + evaluation ev such as 33 2222 11111 0000000 as a yameval + +
  • +
+ +
+ + +
+
+From HB Require Import structures.
+From mathcomp Require Import all_boot.
+Require Import tools combclass partition.
+ +
+Set Implicit Arguments.
+ +
+Section Yama.
+ +
+Implicit Type s : seq nat.
+ +
+
+ +
+

Evaluation of a sequence of integers (mostly Yamanouchi word)

+ +
+
+Fixpoint evalseq s :=
+  if s is s0 :: s'
+  then incr_nth (evalseq s') s0
+  else [::].
+ +
+
+ +
+equivalent definition +
+
+Definition evalseq_count :=
+  [fun s => [seq (count_mem i) s | i <- iota 0 (foldr maxn 0 (map S s))]].
+ +
+Lemma foldr_maxn s : foldr maxn 0 [seq i.+1 | i <- s] = \max_(i <- s) S i.
+ +
+Lemma evalseq_countE : evalseq_count =1 evalseq.
+ +
+Lemma nth_evalseq s i : nth 0 (evalseq s) i = count_mem i s.
+ +
+Lemma perm_evalseq s t : perm_eq s t = (evalseq s == evalseq t).
+ +
+Lemma evalseq0 y : evalseq y = [::] -> y = [::].
+ +
+Lemma evalseq_cons l s : evalseq (l :: s) = incr_nth (evalseq s) l.
+ +
+Lemma evalseq_eq_size y : sumn (evalseq y) = size y.
+ +
+
+ +
+

Yamanouchi words:

+ Sequence of rows of the corners for an increasing sequence of partitions. They are in bijection with standard tableaux +
+
+Fixpoint is_yam s :=
+  if s is s0 :: s'
+  then is_part (evalseq s) && is_yam s'
+  else true.
+Definition is_yam_of_eval ev y := (is_yam y) && (evalseq y == ev).
+ +
+Lemma is_yamP s :
+  reflect
+    (forall i n, count_mem n (drop i s) >= count_mem n.+1 (drop i s))
+    (is_yam s).
+ +
+Lemma is_yam_ijP s :
+  reflect
+    (forall d i j, i <= j -> count_mem i (drop d s) >= count_mem j (drop d s))
+    (is_yam s).
+ +
+Lemma is_part_eval_yam s : is_yam s -> is_part (evalseq s).
+ +
+Lemma is_yam_tl l0 s : is_yam (l0 :: s) -> is_yam s.
+ +
+Lemma is_yam_catr s t : is_yam (s ++ t) -> is_yam t.
+ +
+Lemma last_yam y : is_yam y -> last 0 y = 0.
+ +
+
+ +
+Remove the zeroes from a yam and decrease all the other entries by 1 +
+
+Fixpoint decr_yam s :=
+  if s is s0 :: s'
+  then if s0 is s0'.+1
+       then s0' :: (decr_yam s')
+       else (decr_yam s')
+  else [::].
+ +
+Lemma evalseq_decr_yam s : evalseq (decr_yam s) = behead (evalseq s).
+ +
+Lemma is_yam_decr s : is_yam s -> is_yam (decr_yam s).
+ +
+Lemma is_rem_corner_yam l0 s :
+  is_yam (l0 :: s) -> is_rem_corner (evalseq (l0 :: s)) l0.
+ +
+Lemma is_add_corner_yam l0 s :
+  is_yam (l0 :: s) -> is_add_corner (evalseq s) l0.
+ +
+
+ +
+

Hyperstandard Yamanouchi word : 33 2222 11111 0000000

+ +
+
+Fixpoint hyper_yam_rev ev :=
+  if ev is s0 :: s then
+    nseq s0 (size s) ++ hyper_yam_rev s
+  else [::].
+Definition hyper_yam ev := hyper_yam_rev (rev ev).
+ +
+Lemma size_hyper_yam ev : size (hyper_yam ev) = sumn ev.
+ +
+Lemma incr_nth_size s : incr_nth s (size s) = rcons s 1.
+ +
+Lemma part_rcons_ind s sn : is_part (rcons s sn.+2) -> is_part (rcons s sn.+1).
+ +
+
+ +
+"is_part ev" is just here to ensure that sh doesn't ends with a 0 +
+ + +
+

Enumeration of Yamanouchi words

+ +
+
+Fixpoint enum_yamevaln n ev :=
+  if n is n'.+1 then
+    flatten [seq [seq i :: y | y <- enum_yamevaln n' (decr_nth ev i)] |
+                  i <- iota 0 (size ev) & is_rem_corner ev i]
+  else [:: [::]].
+Definition enum_yameval ev := enum_yamevaln (sumn ev) ev.
+Definition is_yam_of_size n y := (is_yam y) && (size y == n).
+ +
+Lemma enum_yamevalP ev:
+  is_part ev -> all (is_yam_of_eval ev) (enum_yameval ev).
+ +
+Lemma enum_yameval_countE ev :
+  is_part ev ->
+  forall y, is_yam_of_eval ev y -> count_mem y (enum_yameval ev) = 1.
+ +
+
+ +
+

Sigma types for Yamanouchi words

+ +
+
+Section YamOfEval.
+ +
+Variable ev : intpart.
+ +
+Structure yameval : Set :=
+  YamEval {yamevalval :> seq nat; _ : is_yam_of_eval ev yamevalval}.
+ +
+Lemma yamevalP (y : yameval) : is_yam y.
+ +
+Lemma eval_yameval (y : yameval) : evalseq y = ev.
+ +
+Lemma size_yameval (y : yameval) : size y = sumn ev.
+ +
+Lemma enum_yamevalE : map val (enum {: yameval}) = enum_yameval ev.
+ +
+Definition hyper_yameval := YamEval (hyper_yam_of_eval (intpartP ev)).
+ +
+End YamOfEval.
+#[export] Hint Resolve yamevalP : core.
+ +
+Section YamOfSize.
+ +
+Variable n : nat.
+ +
+Lemma yamn_PredEq (ev : intpartn n) :
+  predI (is_yam_of_size n) (pred1 (val ev) \o evalseq)
+  =1 is_yam_of_eval (val ev).
+ +
+Lemma yamn_partition_evalseq yam :
+  is_yam_of_size n yam -> (is_part_of_n n) (evalseq yam).
+ +
+Structure yamn : Set :=
+  Yamn {yamnval :> seq nat; _ : is_yam_of_size n yamnval}.
+ +
+Lemma yamnP (y : yamn) : is_yam y.
+ +
+Lemma size_yamn (y : yamn) : size y = n.
+ +
+
+ +
+Check of disjoint union enumeration +
+
+Lemma enum_yamnE :
+  map val (enum {: yamn}) = flatten [seq enum_yameval p | p <- enum_partn n].
+ +
+End YamOfSize.
+ +
+#[export] Hint Resolve yamnP yamevalP : core.
+
+
+ + + +
+ + + \ No newline at end of file diff --git a/combi/1.1.0/Combi.Combi.bintree.html b/combi/1.1.0/Combi.Combi.bintree.html new file mode 100644 index 00000000..56b4a78b --- /dev/null +++ b/combi/1.1.0/Combi.Combi.bintree.html @@ -0,0 +1,1041 @@ + + + + + +Combi.Combi.bintree: Binary Trees + + + + +
+ + + +
+ +

Library Combi.Combi.bintree: Binary Trees

+ +
+
+ +
+ +
+
+
+ +
+

Binary Trees

+ + +
+ +A binary tree is a rooted tree such that each node has two distiguished, +children the left one and the right one. The main goal of this file is to +construct the Tamari lattice which is the transitive closure of the directed +graph of left rotation. We show that it is indeed a lattice. + +
+ +Basic definitions: + +
+ +
    +
  • bintree == the type of binary trees. This is canonically a countType + +
  • +
  • BinLeaf == the leaf for binary trees + +
  • +
  • BinNode left right == the binary tree with subtrees left right + +
  • +
+ +
+ +Binary trees of size n: + +
+ +
    +
  • size_tree t == the number of node of the tree t + +
  • +
  • enum_bintreesz n == the list of a trees of size n + +
  • +
  • bintreesz n == the Sigma type for trees of size n. This is + canonically a finType with enumeration enum_bintreesz n + +
  • +
  • Catalan_bin n == Catalan number defined using the binary tree recursion: + C_0 = 1 and C_{n+1} = sum__(i+j = n) C_i C_j. We show that they + count the number of binary trees of size n. The binomial formula + will be proved using Dyck word. + +
  • +
+ +
+ +Left branch surgery: + +
+ +
    +
  • left_branch t == the sequence of the right subtrees of the nodes + starting for the root of t and going only left + +
  • +
  • from_left s == the tree whose left branch is s + +
  • +
  • cat_left t1 t2 == the tree whose left branch is the concatenation of + the left branches of t1 and t2 + +
    + + +
  • +
  • rightcomb n == the right comb binary tree of size n as a bintree + +
  • +
  • leftcomb n == the left comb binary tree of size n as a bintree + +
  • +
  • flip t == the left/right mirror of t + +
  • +
  • rightcombsz n == the right comb binary tree of size n as a bintreesz n + +
  • +
  • leftcombsz n == the left comb binary tree of size n as a bintreesz n + +
  • +
  • flipsz t == the left/right mirror of t as a bintreesz n + +
  • +
+ +
+ +Rotations and Tamari order: + +
+ +
    +
  • rotations t == the list of right rotations of the tree t + +
  • +
  • t1 <=T t2 == t1 is smaller than t2 in the Tamari order + +
  • +
+ +
+ +Tamari bracketing vectors: + +
+ +
    +
  • right_sizes t == the sequence in infix order reading of the node of t + of the the sizes of the right subtrees + +
  • +
  • from_vct vct == recovers the tree t from its right sizes vector. + +
  • +
  • v \is a TamariVector == v is the right sizes vector of some tree t. + The characterization of a Tamari vector of size n is that + for all i < n then v_i + 1 < n and + for all j such that i < j <= v_i + i then v_j + j <= v_i + i. + +
  • +
+The function right_sizes and from_vct are two inverse bijections from +binary trees to Tamari vectors as stated in theorems right_sizesK, +right_sizesP and from_vctK. + +
+ +
    +
  • vctleq v1 v2 = v1 <=V v2 == v1 and v2 are of the same length + and v1 is smaller than v2 componentwise (ie. for all i then + v1_i <= v2_i + +
  • +
  • vctmin v1 v2 == the componentwise min of v1 and v2 + +
  • +
+ +
+ +Tamari Lattice: + +
+ +
    +
  • t1 \/T t2 == the meet of t1 and t2 in the Tamari lattice. + +
  • +
  • t1 /\T t2 == the join of t1 and t2 in the Tamari lattice. + + +
  • +
+
+
+From HB Require Import structures.
+From mathcomp Require Import all_boot order.
+Require Import tools combclass ordtype.
+ +
+Set Implicit Arguments.
+ +
+Import Order.Theory.
+ +
+Reserved Notation "x '<=T' y" (at level 70, y at next level).
+Reserved Notation "x '<T' y" (at level 70, y at next level).
+Reserved Notation "x '/\T' y" (at level 70, y at next level).
+Reserved Notation "x '\/T' y" (at level 70, y at next level).
+ +
+
+ +
+

Inductive type for binary trees

+ +
+
+Inductive bintree : Set :=
+  | BinLeaf : bintree
+  | BinNode : bintree -> bintree -> bintree.
+ +
+Fixpoint eq_bintree (b1 b2 : bintree) : bool :=
+  match b1, b2 with
+  | BinLeaf, BinLeaf => true
+  | BinNode l1 r1, BinNode l2 r2 => eq_bintree l1 l2 && eq_bintree r1 r2
+  | _, _ => false
+  end.
+ +
+Lemma eq_bintreeP : Equality.axiom eq_bintree.
+ +
+Fixpoint tree_encode (t : bintree) : GenTree.tree unit :=
+  match t with
+  | BinLeaf => GenTree.Leaf tt
+  | BinNode tl tr => GenTree.Node 2 [:: tree_encode tl; tree_encode tr]
+  end.
+Fixpoint tree_decode (gt : GenTree.tree unit) :=
+  match gt with
+  | GenTree.Leaf tt => BinLeaf
+  | GenTree.Node 2 [:: tl; tr] => BinNode (tree_decode tl) (tree_decode tr)
+  | _ => BinLeaf
+ +
+unused case +
+
+  end.
+ +
+Lemma tree_encodeK : cancel tree_encode tree_decode.
+ +
+ +
+Fixpoint size_tree t :=
+  match t with
+  | BinLeaf => 0
+  | BinNode l r => 1 + (size_tree l) + (size_tree r)
+  end.
+ +
+Lemma LeafP t : reflect (t = BinLeaf) (size_tree t == 0).
+ Lemma size_tree_eq0 t : (size_tree t == 0) = (t == BinLeaf).
+ +
+Section Size.
+ +
+Variable (n : nat).
+ +
+Structure bintreesz : predArgType :=
+  BinTreeSZ {trval :> bintree; _ : size_tree trval == n}.
+ +
+Lemma bintreeszP (t : bintreesz) : size_tree t = n.
+ +
+End Size.
+ +
+
+ +
+

Catalan numbers

+ +
+ + The intent of the two following recursive definition is the recursion of lemmas + CatalanS and enum_bintreeszS: +
+Fixpoint Catalan n :=
+  if n is n'.+1 then
+    sumn [Catalan i * Catalan (n - i) | i <- iota 0 n.+1]
+  else 1. +
+ +
however i and n - i are not structurally smaller than n.+1 so the +definition is refused by coq as not well founded. So we write the following +functions which returns a cache containing the list of the results of +Catalan i and enum_bintreesz i for i = 0 ... n. Otherwise said, to define +the enum_bintreesz function we need a strong nat induction where Coq only +allows simple nat induction. +
+ + A seq of size n.+1 whose i-th element is Catalan i +
+
+Fixpoint Catalan_bin_leq n :=
+  if n is n.+1 then
+    let cr := Catalan_bin_leq n in
+    let new := sumn [seq nth 0 cr i * nth 0 cr (n - i) | i <- iota 0 n.+1]
+    in rcons cr new
+  else [:: 1].
+Definition Catalan_bin n := last 0 (Catalan_bin_leq n).
+ +
+
+ +
+A seq of size n.+1 whose i-th element contains the list of all binary trees + of size i +
+
+Fixpoint enum_bintreesz_leq n :=
+  if n is n'.+1 then
+    let rec := enum_bintreesz_leq n' in
+    let listn :=
+        flatten [seq [seq BinNode tl tr |
+                      tl <- nth [::] rec i,
+                      tr <- nth [::] rec (n' - i)] | i <- iota 0 n'.+1]
+    in rcons rec listn
+  else [:: [:: BinLeaf]].
+Definition enum_bintreesz n := last [::] (enum_bintreesz_leq n).
+ +
+
+ +
+Some tests : +
+
+Goal [seq Catalan_bin n | n <- iota 0 10] =
+     [:: 1; 1; 2; 5; 14; 42; 132; 429; 1430; 4862].
+ Goal [seq size (enum_bintreesz n) | n <- iota 0 10] =
+     [:: 1; 1; 2; 5; 14; 42; 132; 429; 1430; 4862].
+ +
+Lemma size_Catalan_bin_leq n : size (Catalan_bin_leq n) = n.+1.
+ +
+Lemma size_enum_bintreesz n : size (enum_bintreesz_leq n) = n.+1.
+ +
+Lemma size_enum_bintreeszE n : size (enum_bintreesz n) = Catalan_bin n.
+ +
+Lemma Catalan_bin_leqE i m :
+  i <= m -> nth 0 (Catalan_bin_leq m) i = Catalan_bin i.
+ +
+Lemma enum_bintreesz_leq_leqE i n m :
+  i <= n <= m ->
+  nth [::] (enum_bintreesz_leq n) i = nth [::] (enum_bintreesz_leq m) i.
+ +
+Lemma enum_bintreesz_leqE n m :
+  n <= m -> enum_bintreesz n = nth [::] (enum_bintreesz_leq m) n.
+ +
+Lemma Catalan_bin0 : Catalan_bin 0 = 1.
+ +
+Lemma enum_bintreesz0 : enum_bintreesz 0 = [:: BinLeaf].
+ +
+Lemma Catalan_binS n :
+  Catalan_bin n.+1 = \sum_(0 <= i < n.+1) Catalan_bin i * Catalan_bin (n - i).
+ +
+Lemma enum_bintreeszE n :
+  enum_bintreesz n.+1 =
+  flatten [seq [seq BinNode tl tr |
+                tl <- enum_bintreesz i,
+                tr <- enum_bintreesz (n - i)] | i <- iota 0 n.+1].
+ +
+Lemma size_mem_enum_bintreeszP n t :
+  t \in enum_bintreesz n -> size_tree t = n.
+ +
+Lemma enum_bintreeszP n :
+  all (fun t => size_tree t == n) (enum_bintreesz n).
+ +
+Lemma enum_bintreesz_uniq n : uniq (enum_bintreesz n).
+ +
+Lemma mem_enum_bintreesz n t :
+  size_tree t == n -> t \in enum_bintreesz n.
+ +
+Lemma enum_bintreesz_countE n t :
+  size_tree t == n -> count_mem t (enum_bintreesz n) = 1.
+ +
+ +
+Theorem card_bintreesz n : #|bintreesz n| = Catalan_bin n.
+ +
+
+ +
+

Left branch surgery in binary trees

+ +
+
+Fixpoint left_branch t :=
+  if t is BinNode l r then r :: left_branch l else [::].
+Fixpoint from_left l :=
+  if l is l0 :: l then BinNode (from_left l) l0 else BinLeaf.
+Definition cat_left t1 t2 := from_left (left_branch t1 ++ left_branch t2).
+ +
+Lemma left_branchK : cancel left_branch from_left.
+ Lemma from_leftK : cancel from_left left_branch.
+ +
+Lemma cat_left0t t : cat_left BinLeaf t = t.
+ Lemma cat_leftt0 t : cat_left t BinLeaf = t.
+ Lemma cat_left_Node l r :
+  cat_left (BinNode BinLeaf r) l = BinNode l r.
+ Lemma cat_leftA t u v :
+  cat_left (cat_left t u) v = cat_left t (cat_left u v).
+ Lemma size_from_left s :
+  size_tree (from_left s) = sumn [seq (size_tree t).+1 | t <- s].
+ +
+Lemma size_cat_left t u :
+  size_tree (cat_left t u) = size_tree t + size_tree u.
+ +
+Lemma from_left_cat s1 s2 :
+  from_left (s1 ++ s2) = cat_left (from_left s1) (from_left s2).
+ +
+Lemma size_left_branch t :
+  all (fun l => size_tree l < size_tree t) (left_branch t).
+ +
+
+ +
+

Various particular binary trees

+ +
+
+Fixpoint rightcomb n :=
+  if n is n'.+1 then
+    BinNode BinLeaf (rightcomb n')
+  else BinLeaf.
+Fixpoint leftcomb n :=
+  if n is n'.+1 then
+    BinNode (leftcomb n') BinLeaf
+  else BinLeaf.
+Fixpoint flip t :=
+  if t is BinNode l r then
+    BinNode (flip r) (flip l)
+  else BinLeaf.
+ +
+Section SizeN.
+ +
+Variable (n : nat).
+ +
+Fact size_rightcomb : size_tree (rightcomb n) == n.
+ Canonical rightcombsz := BinTreeSZ size_rightcomb.
+ +
+Lemma size_leftcomb : size_tree (leftcomb n) == n.
+ Canonical leftcombsz := BinTreeSZ size_leftcomb.
+ +
+Lemma size_flip t : size_tree (flip t) = size_tree t.
+Lemma flipK : involutive flip.
+ Lemma flip_rightcomb : flip (rightcomb n) = leftcomb n.
+ Lemma flip_leftcomb : flip (leftcomb n) = rightcomb n.
+ +
+Fact flipsz_subproof (t : bintreesz n) : size_tree (flip t) == n.
+ Canonical flipsz t := BinTreeSZ (flipsz_subproof t).
+ +
+Lemma flipszK : involutive flipsz.
+ Lemma flipsz_rightcomb : flipsz rightcombsz = leftcombsz.
+ Lemma flipsz_leftcomb : flipsz leftcombsz = rightcombsz.
+ +
+End SizeN.
+ +
+
+ +
+

Tamari's lattice

+

Rotations in binary trees

+ +
+
+Fixpoint rotations t :=
+  if t is BinNode l r then
+    let rec := [seq BinNode lrot r | lrot <- rotations l] ++
+               [seq BinNode l rrot | rrot <- rotations r]
+    in if l is BinNode ll lr then
+         BinNode ll (BinNode lr r) :: rec
+       else rec
+  else [::].
+ +
+Lemma rotations_left_sub l1 l2 r :
+  l1 \in rotations l2 -> BinNode l1 r \in rotations (BinNode l2 r).
+ +
+Lemma rotations_right_sub l r1 r2 :
+  r1 \in rotations r2 -> BinNode l r1 \in rotations (BinNode l r2).
+ +
+Lemma rotationP t1 t2 :
+  reflect
+    (exists a b c,
+        [\/ [/\ t1 = BinNode (BinNode a b) c & t2 = BinNode a (BinNode b c)],
+            [/\ t1 = BinNode a c, t2 = BinNode b c & b \in rotations a] |
+            [/\ t1 = BinNode a b, t2 = BinNode a c & c \in rotations b]])
+    (t2 \in rotations t1).
+ +
+Lemma size_rotations t t' :
+  t' \in rotations t -> size_tree t' = size_tree t.
+ +
+Lemma rotations_flip_impl t1 t2:
+  (t1 \in rotations t2) -> (flip t2 \in rotations (flip t1)).
+ +
+Lemma rotations_flip t1 t2:
+  (t1 \in rotations t2) = (flip t2 \in rotations (flip t1)).
+ +
+Lemma catleft_rotations t t1 t2 :
+  t1 \in rotations t2 -> (cat_left t t1) \in rotations (cat_left t t2).
+ +
+Lemma rightcomb_rotations n : rotations (rightcomb n) = [::].
+ Lemma rightcomb_rotationsE t :
+  (rotations t == [::]) = (t == rightcomb (size_tree t)).
+Lemma leftcomb_rotations t : leftcomb (size_tree t) \notin rotations t.
+ +
+
+ +
+

Tamari vectors

+ +
+
+Fixpoint right_sizes t :=
+  if t is BinNode l r then
+        right_sizes l ++ size_tree r :: right_sizes r
+  else [::].
+Fixpoint is_Tamari v :=
+  if v is v0 :: v' then
+    [&& v0 <= size v',
+     is_Tamari v' &
+     all (fun i => nth 0 v' i + i < v0) (iota 0 v0)]
+  else true.
+Definition TamariVector := [qualify a v : seq nat | is_Tamari v].
+ +
+Lemma sumn_right_sizes_gt t t' :
+  t' \in rotations t -> sumn (right_sizes t) < sumn (right_sizes t').
+ +
+Lemma rotations_neq t t' : t' \in rotations t -> t != t'.
+ +
+Lemma size_right_sizes t : size (right_sizes t) = size_tree t.
+ +
+Lemma right_sizes_left_comb n :
+  right_sizes (leftcomb n) = nseq n 0.
+ +
+Lemma right_sizes_from_left s :
+  right_sizes (from_left s) =
+  flatten [seq size_tree t :: right_sizes t | t <- rev s].
+ +
+Lemma right_sizes_cat_left t1 t2 :
+  right_sizes (cat_left t1 t2) = right_sizes t2 ++ right_sizes t1.
+ +
+Lemma Tamari_consP v0 v :
+  reflect
+    [/\ v0 <= size v,
+     v \is a TamariVector &
+     forall i, i < v0 -> nth 0 v i + i < v0]
+    (v0 :: v \is a TamariVector).
+ +
+Lemma TamariP v :
+  reflect
+    ((forall i, i < size v -> nth 0 v i + i < size v) /\
+     (forall i j, i < j <= nth 0 v i + i -> nth 0 v j + j <= nth 0 v i + i))
+    (v \is a TamariVector).
+ +
+Lemma Tamari_drop n v :
+  v \is a TamariVector -> drop n v \is a TamariVector.
+ +
+Lemma Tamari_catr u v :
+  u ++ v \is a TamariVector -> v \is a TamariVector.
+ +
+Lemma Tamari_take v0 v :
+  v0 :: v \is a TamariVector -> take v0 v \is a TamariVector.
+ +
+Lemma Tamari_cat v1 v2 :
+  v1 \is a TamariVector ->
+  v2 \is a TamariVector ->
+  v1 ++ v2 \is a TamariVector.
+ +
+Lemma cons_TamariP v : v \is a TamariVector -> size v :: v \is a TamariVector.
+ +
+Theorem right_sizesP t : right_sizes t \is a TamariVector.
+ +
+#[local] Hint Resolve right_sizesP : core.
+ +
+
+ +
+

Bijection with Tamari vectors

+ +
+
+Fixpoint from_vct_rec fuel lft vct :=
+  if fuel is fuel.+1 then
+    if vct is v0 :: vct' then
+      from_vct_rec fuel
+                   (BinNode lft (from_vct_rec fuel BinLeaf (take v0 vct')))
+                   (drop v0 vct')
+    else lft
+  else BinLeaf.
+Definition from_vct_acc lft vct := from_vct_rec (size vct).+1 lft vct.
+Definition from_vct := from_vct_acc BinLeaf.
+ +
+Section Tests.
+ +
+Goal [seq right_sizes t | t <- enum_bintreesz 3] =
+[:: [:: 2; 1; 0]; [:: 2; 0; 0]; [:: 0; 1; 0]; [:: 1; 0; 0]; [:: 0; 0; 0]].
+ +
+Goal [seq right_sizes t | t <- enum_bintreesz 4] =
+[:: [:: 3; 2; 1; 0]; [:: 3; 2; 0; 0]; [:: 3; 0; 1; 0]; [:: 3; 1; 0; 0];
+    [:: 3; 0; 0; 0]; [:: 0; 2; 1; 0]; [:: 0; 2; 0; 0]; [:: 1; 0; 1; 0];
+    [:: 0; 0; 1; 0]; [:: 2; 1; 0; 0]; [:: 2; 0; 0; 0]; [:: 0; 1; 0; 0];
+    [:: 1; 0; 0; 0]; [:: 0; 0; 0; 0] ].
+ +
+Let bla := Eval hnf in nth BinLeaf (enum_bintreesz 5) 21.
+Goal right_sizes bla = [:: 0; 0; 2; 1; 0].
+ +
+Goal [seq right_sizes rot | rot <- rotations bla] =
+[:: [:: 0; 3; 2; 1; 0]; [:: 1; 0; 2; 1; 0]].
+ +
+Goal all
+     (fun i => all (fun t => t == from_vct (right_sizes t)) (enum_bintreesz i))
+     (iota 0 7).
+ +
+Goal all
+     (fun i => all (fun t => right_sizes t \is a TamariVector) (enum_bintreesz i))
+     (iota 0 7).
+ +
+Goal [:: 1; 1; 0] \isn't a TamariVector.
+ Goal [:: 2; 0; 1; 0] \isn't a TamariVector.
+ +
+Goal [:: 2; 0; 0; 1; 0] \is a TamariVector.
+ +
+End Tests.
+ +
+Lemma from_vct_acc_nil lft : from_vct_acc lft [::] = lft.
+ +
+Lemma from_vct_fuelE fuel lft vct :
+  size vct < fuel -> from_vct_rec fuel lft vct = from_vct_acc lft vct.
+ +
+Lemma from_vct_accE lft v0 vct :
+  from_vct_acc lft (v0 :: vct) =
+  from_vct_acc (BinNode lft (from_vct_acc BinLeaf (take v0 vct)))
+               (drop v0 vct).
+ +
+Lemma from_vct_cat_leftE lft vct :
+  from_vct_acc lft vct = cat_left (from_vct_acc BinLeaf vct) lft.
+ +
+Lemma size_from_vct_acc s :
+  size_tree (from_vct_acc BinLeaf s) = size s.
+ +
+Lemma size_from_vct s :
+  size_tree (from_vct s) = size s.
+ +
+Theorem right_sizesK : cancel right_sizes from_vct.
+ +
+Theorem from_vctK : {in TamariVector, cancel from_vct right_sizes}.
+ +
+Lemma from_vct_cat u v t :
+  u \is a TamariVector ->
+  from_vct_acc t (u ++ v) = from_vct_acc (from_vct_acc t u) v.
+ +
+Lemma from_vct0 n : from_vct (nseq n 0) = leftcomb n.
+ +
+
+ +
+

Comparison of Tamari vectors

+ +
+
+ +
+Definition vctleq v1 v2 :=
+  (size v1 == size v2) && (all (fun p => p.1 <= p.2) (zip v1 v2)).
+Definition vctmin v1 v2 := [seq minn p.1 p.2 | p <- zip v1 v2].
+ +
+#[local] Notation "x '<=V' y" := (vctleq x y) (at level 70, y at next level).
+ +
+Section TestsComp.
+ +
+Goal all (fun t => all
+                     (vctleq (right_sizes t))
+                     [seq right_sizes rot | rot <- rotations t])
+     (enum_bintreesz 6).
+ +
+End TestsComp.
+ +
+Lemma vctleqP v1 v2 :
+  reflect (size v1 = size v2 /\ forall i, nth 0 v1 i <= nth 0 v2 i)
+          (v1 <=V v2).
+ +
+Lemma vctleq_refl : reflexive vctleq.
+ Lemma vctleq_trans : transitive vctleq.
+Lemma vctleq_anti : antisymmetric vctleq.
+ +
+Lemma vctleq_sumn_right_sizes t1 t2 :
+  right_sizes t1 <=V right_sizes t2 ->
+  sumn (right_sizes t1) <= sumn (right_sizes t2) ?= iff (t1 == t2).
+ +
+Lemma all_leqzip_refl l : all (fun p => p.1 <= p.2) (zip l l).
+ +
+Lemma size_vctmin v1 v2 : size (vctmin v1 v2) = minn (size v1) (size v2).
+ Lemma nth_vctmin v1 v2 i :
+  nth 0 (vctmin v1 v2) i = minn (nth 0 v1 i) (nth 0 v2 i).
+ +
+Lemma vctminC: commutative vctmin.
+ +
+Lemma vctminPr v1 v2 :
+  size v1 = size v2 -> vctmin v1 v2 <=V v2.
+ +
+Lemma vctminPl v1 v2 :
+  size v1 = size v2 -> vctmin v1 v2 <=V v1.
+ +
+Lemma vctminP v1 v2 v :
+  v <=V v1 -> v <=V v2 -> v <=V (vctmin v1 v2).
+ +
+Lemma vctmin_Tamari v1 v2 :
+  size v1 = size v2 ->
+  v1 \is a TamariVector ->
+  v2 \is a TamariVector ->
+  vctmin v1 v2 \is a TamariVector.
+ +
+
+ +
+

Correspondence between rotation on binary trees and Tamari vectors

+ +
+
+ +
+Lemma rotations_vctleq_impl t1 t2 :
+  t1 \in rotations t2 -> right_sizes t2 <=V right_sizes t1.
+ +
+Lemma Tamari_add_head v0 v :
+  v0 :: v \is a TamariVector ->
+  v0 < size v ->
+  (nth 0 v v0 + v0).+1 :: v \is a TamariVector.
+ +
+Lemma rotations_add_head v0 v t :
+  v0 :: v \is a TamariVector ->
+  (nth 0 v v0 + v0).+1 :: v \is a TamariVector ->
+  from_vct_acc t ((nth 0 v v0 + v0).+1 :: v) \in
+    rotations (from_vct_acc t (v0 :: v)).
+ +
+Lemma Tamari_add_min u v0 v w0 w :
+  u ++ w0 :: w \is a TamariVector ->
+  u ++ v0 :: v <=V u ++ w0 :: w ->
+  v0 < w0 ->
+  nth 0 v v0 + v0 < w0.
+ +
+Lemma Tamari_add_bounded u v0 v w0 w :
+  u ++ v0 :: v \is a TamariVector ->
+  u ++ w0 :: w \is a TamariVector ->
+  u ++ v0 :: v <=V u ++ w0 :: w ->
+  v0 < w0 ->
+  u ++ (nth 0 v v0 + v0).+1 :: v \is a TamariVector.
+ +
+Lemma rotations_add u v0 v :
+  u ++ v0 :: v \is a TamariVector ->
+  u ++ (nth 0 v v0 + v0).+1 :: v \is a TamariVector ->
+  from_vct (u ++ (nth 0 v v0 + v0).+1 :: v)
+           \in rotations (from_vct (u ++ v0 :: v)).
+ +
+Lemma rotations_add_bounded u v0 v w0 w :
+  u ++ v0 :: v \is a TamariVector ->
+  u ++ w0 :: w \is a TamariVector ->
+  u ++ v0 :: v <=V u ++ w0 :: w ->
+  v0 < w0 ->
+  from_vct (u ++ (nth 0 v v0 + v0).+1 :: v)
+           \in rotations (from_vct (u ++ v0 :: v)).
+ +
+Lemma vctleq_rotation t1 t2 :
+  right_sizes t1 <=V right_sizes t2 ->
+  t1 != t2 ->
+  exists t, t \in rotations t1 /\ right_sizes t <=V right_sizes t2.
+ +
+Theorem rotations_right_sizesP t1 t2 :
+  reflect
+    (exists u v0 v,
+        right_sizes t1 = u ++ v0 :: v /\
+        right_sizes t2 = u ++ (nth 0 v v0 + v0).+1 :: v)
+    (t2 \in rotations t1).
+ +
+Lemma vct_succ u v0 v w :
+  w \is a TamariVector ->
+  u ++ v0 :: v <=V w ->
+  w <=V u ++ (nth 0 v v0 + v0).+1 :: v ->
+  w = u ++ v0 :: v \/ w = u ++ (nth 0 v v0 + v0).+1 :: v.
+ +
+Fact Tamari_display : Order.disp_t.
+Notation "x <=T y" := (@Order.le Tamari_display _ x y).
+Notation "x <T y" := (@Order.lt Tamari_display _ x y).
+Notation "x /\T y" := (@Order.meet Tamari_display _ x y).
+Notation "x \/T y" := (@Order.join Tamari_display _ x y).
+ +
+
+ +
+

Definition of Tamari order

+ +
+
+Module TamariLattice.
+Section TamariLattice.
+ +
+Variable n : nat.
+Implicit Type t : bintreesz n.
+ +
+Definition Tamari := connect (fun t1 t2 : bintreesz n => grel rotations t1 t2).
+ +
+Lemma Tamari_sumn_right_sizes t1 t2 :
+  Tamari t1 t2 ->
+  sumn (right_sizes t1) <= sumn (right_sizes t2) ?= iff (t1 == t2).
+ +
+Fact Tamari_refl : reflexive Tamari.
+ Fact Tamari_trans : transitive Tamari.
+ Fact Tamari_anti : antisymmetric Tamari.
+ +
+#[export] HB.instance Definition _ :=
+  Order.Le_isPOrder.Build Tamari_display (bintreesz n)
+    Tamari_refl Tamari_anti Tamari_trans.
+ +
+Lemma TamariE t1 t2 :
+  (t1 <=T t2) = connect (fun t t' => grel rotations t t') t1 t2.
+ +
+Lemma rotations_Tamari t t' : trval t' \in rotations t -> t <T t'.
+ +
+Lemma Tamari_flip t1 t2 : (flipsz t2 <=T flipsz t1) = (t1 <=T t2).
+ +
+Theorem Tamari_vctleq t1 t2 :
+  (right_sizes t1 <=V right_sizes t2) = (t1 <=T t2).
+ +
+Lemma Tmeet_proof t1 t2 :
+  size_tree (from_vct (vctmin (right_sizes t1) (right_sizes t2))) == n.
+Definition Tmeet t1 t2 := BinTreeSZ (Tmeet_proof t1 t2).
+Definition Tjoin t1 t2 := flipsz (Tmeet (flipsz t1) (flipsz t2)).
+ +
+Lemma TmeetC t1 t2 : Tmeet t1 t2 = Tmeet t2 t1.
+ +
+Lemma TmeetPr t1 t2 : Tmeet t1 t2 <=T t2.
+ +
+Fact TmeetP t t1 t2 : (t <=T Tmeet t1 t2) = (t <=T t1) && (t <=T t2).
+Fact TjoinP t1 t2 t : (Tjoin t1 t2 <=T t) = (t1 <=T t) && (t2 <=T t).
+ #[export] HB.instance Definition _ :=
+  Order.POrder_MeetJoin_isLattice.Build Tamari_display
+    (bintreesz n) TmeetP TjoinP.
+ +
+Lemma flipsz_meet t1 t2 : flipsz (t1 \/T t2) = (flipsz t1 /\T flipsz t2).
+ Lemma flipsz_join t1 t2 : flipsz (t1 /\T t2) = (flipsz t1 \/T flipsz t2).
+ +
+Lemma right_sizes_meet t1 t2 :
+  right_sizes (t1 /\T t2) = vctmin (right_sizes t1) (right_sizes t2).
+ +
+Fact leftcomb_bottom t : leftcombsz n <=T t.
+Fact rightcomb_top t : t <=T rightcombsz n.
+ #[export] HB.instance Definition _ :=
+  Order.hasBottom.Build Tamari_display (bintreesz n) leftcomb_bottom.
+#[export] HB.instance Definition _ :=
+  Order.hasTop.Build Tamari_display (bintreesz n) rightcomb_top.
+ +
+Lemma botETamari : \bot%O = leftcombsz n.
+ Lemma topETamari : \top%O = rightcombsz n.
+ +
+End TamariLattice.
+ +
+Module Exports.
+ +
+Definition TamariE := TamariE.
+Definition rotations_Tamari := rotations_Tamari.
+Definition Tamari_flip := Tamari_flip.
+Definition Tamari_vctleq := Tamari_vctleq.
+Definition flipsz_meet := flipsz_meet.
+Definition flipsz_join := flipsz_join.
+Definition right_sizes_meet := right_sizes_meet.
+Definition botETamari := botETamari.
+Definition topETamari := topETamari.
+ +
+End Exports.
+End TamariLattice.
+ +
+Section TamariCover.
+ +
+Variable n : nat.
+Implicit Type t : bintreesz n.
+ +
+Lemma Tamari_succ t1 t2 t :
+  trval t2 \in rotations t1 -> t1 <=T t -> t <=T t2 -> t = t1 \/ t = t2.
+ +
+Lemma covers_Tamari t1 t2 : (trval t2 \in rotations t1) = (covers t1 t2).
+ +
+End TamariCover.
+
+
+ + + +
+ + + \ No newline at end of file diff --git a/combi/1.1.0/Combi.Combi.composition.html b/combi/1.1.0/Combi.Combi.composition.html new file mode 100644 index 00000000..5d943e45 --- /dev/null +++ b/combi/1.1.0/Combi.Combi.composition.html @@ -0,0 +1,515 @@ + + + + + +Combi.Combi.composition: Integer Composition + + + + +
+ + + +
+ +

Library Combi.Combi.composition: Integer Composition

+ +
+
+ +
+ +
+
+
+ +
+

Integer Compositions.

+ + +
+ +Integer Composition are stored as seq nat. We define the following: + +
+ +
    +
  • is_comp s == s is a composition, ie. s doesn't contains any 0 + +
  • +
  • is_comp_of_n sm s == s is a composition of sum sm + +
  • +
  • intcomp == a sigma type for is_comp + +
    + + +
  • +
  • intcompn sm == a sigma type for the predicate is_comp_of_n sm. + this is canonically a subFinType + +
    + + +
  • +
  • rowcomp n == the trivial composition + +
  • +
  • rowcompn n == the trivial composition as a intcompn n + +
    + + +
  • +
  • colcomp n == the composition [:: 1; 1; ...] + +
  • +
  • colcompn n == the composition [:: 1; 1; ...] as a intcompn n + +
    + + +
  • +
  • rev_intcompn c == the reverse composition inside intcompn n. + +
  • +
+ +
+ +Bijection with subsets: Consistently, with permutation starting at 0, +descents are starting at zero and therefore of type 'I_n.-1. +In the following we assume. + +
+ +
    +
  • partsums s == sorted sequence of partial sums (excluding the trivial + and full sum) + +
  • +
  • descset c == the descent set of c : intcompn n + +
  • +
  • from_descset d == the composition (of type c : intcompn n) whose + descent set is d : {set 'I_n.-1}. + +
  • +
+ +
+ +Compositions and partitions: + +
+ +
    +
  • partn_of_compn n c == the partition in 'P_n obtained by sorting + c : intcompn n + +
  • +
+ +
+
+From HB Require Import structures.
+From mathcomp Require Import all_boot order.
+Require Import tools combclass sorted partition subseq ordtype.
+ +
+Set Implicit Arguments.
+ +
+ +
+ +
+Definition bottom := f' \bot%O.
+Lemma isobottom x : (bottom <= x)%O.
+ +
+ +
+ +
+ +
+Definition top := f' \top%O.
+Lemma isotop x : (x <= top)%O.
+ +
+ +
+
+ +
+

Definitions and basic properties

+ +
+
+Section Defs.
+ +
+Implicit Type s : seq nat.
+ +
+Definition is_comp s := 0 \notin s.
+ +
+Lemma is_compP s : reflect (forall i, i \in s -> i != 0) (is_comp s).
+ +
+Lemma is_comp1 i : is_comp [:: i] = (i != 0).
+ +
+Lemma is_comp_cons i s : is_comp (i :: s) = (i != 0) && (is_comp s).
+ +
+Lemma is_comp_rcons s sn : is_comp (rcons s sn) = (sn != 0) && (is_comp s).
+ +
+Lemma is_comp_cat s1 s2 : is_comp (s1 ++ s2) = (is_comp s1) && (is_comp s2).
+ +
+Lemma part_is_comp s : is_part s -> is_comp s.
+ +
+
+ +
+Compositions and sumn +
+
+Lemma comp0 s : is_comp s -> sumn s = 0 -> s = [::].
+ +
+Lemma size_comp s : is_comp s -> size s <= sumn s.
+ +
+End Defs.
+ +
+
+ +
+

Sigma Types for Compositions

+ +
+
+Structure intcomp : Type := IntComp {cval :> seq nat; _ : is_comp cval}.
+ +
+Lemma intcompP (p : intcomp) : is_comp p.
+ +
+#[export] Hint Resolve intcompP : core.
+ +
+Fixpoint enum_compn_rec aux n : (seq (seq nat)) :=
+  if aux is aux'.+1 then
+    if n == 0 then [:: [::]]
+ else
+      flatten [seq [seq i :: p | p <- enum_compn_rec aux' (n - i) ] |
+               i <- iota 1 n]
+  else [:: [::]].
+Definition enum_compn n := enum_compn_rec n n.
+ +
+Definition is_comp_of_n sm := [pred s | (sumn s == sm) & is_comp s].
+ +
+Lemma enum_compn_rec_any aux1 aux2 n :
+  n <= aux1 -> n <= aux2 -> enum_compn_rec aux1 n = enum_compn_rec aux2 n.
+ +
+Lemma enum_compn_any aux n :
+  n <= aux -> enum_compn_rec aux n = enum_compn n.
+ +
+Lemma enum_compnE n :
+  n != 0 ->
+  enum_compn n = flatten [seq [seq i :: p | p <- enum_compn (n - i) ] |
+                          i <- iota 1 n].
+ +
+Lemma enum_compn_allP n : all (is_comp_of_n n) (enum_compn n).
+ +
+Lemma enum_compn_countE n :
+  forall s, is_comp_of_n n s -> count_mem s (enum_compn n) = 1.
+ +
+Lemma enum_compnP n s : (is_comp_of_n n s) = (s \in enum_compn n).
+ +
+Section CompOfn.
+ +
+Variable n : nat.
+ +
+Structure intcompn : Set :=
+  IntCompN {cnval :> seq nat; _ : is_comp_of_n n cnval}.
+ +
+Implicit Type (c : intcompn) (d : {set 'I_n.-1}).
+ +
+Lemma intcompnP c : is_comp c.
+ +
+Hint Resolve intcompnP : core.
+ +
+Definition intcomp_of_intcompn c := IntComp (intcompnP c).
+Coercion intcomp_of_intcompn : intcompn >-> intcomp.
+ +
+Lemma intcompn_sumn c : sumn c = n.
+ +
+Lemma enum_intcompnE : map val (enum {: intcompn}) = enum_compn n.
+ +
+Lemma card_intcompn : #|{: intcompn}| = 2 ^ n.-1.
+ +
+Lemma rev_intcompn_spec c : is_comp_of_n n (rev c).
+ Definition rev_intcompn c := IntCompN (rev_intcompn_spec c).
+Lemma rev_intcompnK : involutive rev_intcompn.
+ +
+
+ +
+

Bijection with subsets

+ +
+
+Definition partsums s := [seq sumn (take i s) | i <- iota 1 (size s).-1].
+Definition descset c : {set 'I_n.-1} :=
+  [set i in pmap insub [seq i.-1 | i <- partsums c]].
+ +
+Lemma size_partsums s : size (partsums s) = (size s).-1.
+ +
+Lemma partsums_cat s1 s2 :
+  s1 != [::] -> s2 != [::] ->
+  partsums (s1 ++ s2) =
+  partsums s1 ++ sumn s1 :: [seq sumn s1 + i | i <- partsums s2].
+ +
+Lemma partsums_cons i s :
+  s != [::] -> partsums (i :: s) = i :: [seq i + j | j <- partsums s].
+ +
+Lemma all_partsums c : all (fun i => 0 < i < n) (partsums c).
+ +
+Lemma from_descset_spec d :
+  is_comp_of_n n (if n is 0 then [::]
+                  else pairmap (fun a b => b - a) 0
+                               (rcons [seq (val i).+1 | i in d] n)).
+Definition from_descset d := IntCompN (from_descset_spec d).
+ +
+Lemma diff_nth_sumn_take s i m :
+  m <= size s -> i.+1 < m ->
+  nth 0 [seq sumn (take i0 s) | i0 <- iota 1 m] i.+1 -
+  nth 0 [seq sumn (take i0 s) | i0 <- iota 1 m] i = nth 0 s i.+1.
+ +
+Lemma sorted_ltn_partsums c : sorted ltn (partsums c).
+ +
+Lemma val_descset c : [seq (val i).+1 | i in descset c] = partsums c.
+ +
+Lemma card_descset c : #|descset c| = (size c).-1.
+ +
+Lemma descsetK : cancel descset from_descset.
+ +
+Lemma descset_inj : injective descset.
+ +
+Lemma descset_bij : bijective descset.
+ +
+Lemma from_descsetK : cancel from_descset descset.
+ +
+End CompOfn.
+ +
+Lemma intcompn0 (sh : intcompn 0) : sh = [::] :> seq nat.
+ +
+Lemma intcompn1 (sh : intcompn 1) : sh = [:: 1] :> seq nat.
+ +
+Lemma intcompn2 (sh : intcompn 2) :
+  sh = [:: 2] :> seq nat \/ sh = [:: 1; 1] :> seq nat.
+ +
+Definition intcompn_cast m n (eq_mn : m = n) p :=
+  let: erefl in _ = n := eq_mn return intcompn n in p.
+ +
+Lemma intcompn_castE m n (eq_mn : m = n) p :
+  val (intcompn_cast eq_mn p) = val p.
+ +
+Definition rowcomp d := if d is _.+1 then [:: d] else [::].
+Fact rowcompnP d : is_comp_of_n d (rowcomp d).
+ Canonical rowcompn d : intcompn d := IntCompN (rowcompnP d).
+ +
+Definition colcomp d := nseq d 1%N.
+Fact colcompnP d : is_comp_of_n d (colcomp d).
+ Canonical colcompn d : intcompn d := IntCompN (colcompnP d).
+ +
+Section DescSet.
+ +
+Variable (n : nat).
+Implicit Types (c : intcompn n) (d : {set 'I_n.-1}).
+ +
+Lemma mem_partsum_non0 u0 u i : i \in partsums (u0 :: u) -> u != [::].
+ +
+Lemma mem_partsum_gt x v0 v1 v :
+  v0 < x -> x \in partsums (v0 :: v1 :: v) -> x \in partsums (v0 + v1 :: v).
+ +
+Lemma subdescset_partsumP c1 c2 :
+  reflect {subset partsums c1 <= partsums c2} (descset c1 \subset descset c2).
+ +
+Lemma subseq_partsumE c1 c2 :
+  (subseq (partsums c1) (partsums c2)) = (descset c1 \subset descset c2).
+ +
+Lemma subdescsetP c1 c2 :
+  reflect (exists2 c : seq (seq nat), c1 = map sumn c :> seq nat &
+                                      c2 = flatten c :> seq nat)
+          (descset c1 \subset descset c2).
+ +
+End DescSet.
+ +
+Module RefinementOrder.
+Section RefinementOrder.
+Import Order.DefaultSetSubsetOrder.
+ +
+Variable (n : nat).
+Definition type := intcompn n.
+#[local] Notation "'CRef" := type.
+Implicit Types (c : 'CRef) (d : {set 'I_n.-1}).
+#[local] Notation SetIn := ({set ('I_n.-1 : finType)}).
+ +
+#[export] HB.instance Definition _ := SubType.copy 'CRef (intcompn n).
+#[export] HB.instance Definition _ := Finite.copy 'CRef (intcompn n).
+Fact compnref_display : Order.disp_t.
+#[export] HB.instance Definition _ : Order.isPOrder compnref_display 'CRef :=
+  Order.CanIsPartial compnref_display (@descsetK n).
+#[export] HB.instance Definition _ :=
+  isInhabitedType.Build 'CRef (rowcompn n).
+ +
+Lemma leEcompnref c1 c2 :
+  (c1 <= c2)%O = (descset c1 \subset descset c2).
+ +
+Lemma descset_mono :
+  {mono (@descset n) : A B / (A <= B :> 'CRef)%O >-> (A <= B :> SetIn)%O}.
+ +
+#[export] HB.instance Definition _ :=
+  Order.IsoLattice.Build compnref_display 'CRef
+    (@descsetK n) (@from_descsetK n) descset_mono.
+ +
+Lemma descset_meet c1 c2 :
+  descset (c1 `&` c2)%O = descset c1 :&: descset c2.
+ Lemma descset_join c1 c2 :
+  descset (c1 `|` c2)%O = descset c1 :|: descset c2.
+ +
+#[export] HB.instance Definition _ :=
+  Order.IsoDistrLattice.Build compnref_display 'CRef
+    (@descsetK n) (@from_descsetK n) descset_mono.
+ +
+Lemma descset_rowcompn : descset (rowcompn n) = set0.
+ Lemma descset_colcompn : descset (colcompn n) = setT.
+ +
+#[export] HB.instance Definition _ :=
+  IsoBottom.Build compnref_display 'CRef
+                 (@descsetK n) (@from_descsetK n) descset_mono.
+#[export] HB.instance Definition _ :=
+  IsoTop.Build compnref_display 'CRef
+                 (@descsetK n) (@from_descsetK n) descset_mono.
+ +
+Lemma topEcompnref : \top%O = colcompn n :> 'CRef.
+ +
+Lemma botEcompnref : \bot%O = rowcompn n :> 'CRef.
+ +
+Lemma compnref_rev c1 c2 :
+  (rev_intcompn c1 <= rev_intcompn c2 :> 'CRef)%O = (c1 <= c2)%O.
+ +
+End RefinementOrder.
+ +
+Module Exports.
+ +
+Notation intcompnref := type.
+Definition leEcompnref := leEcompnref.
+Definition descset_mono := descset_mono.
+Definition descset_meet := descset_meet.
+Definition descset_join := descset_join.
+Definition topEcompnref := topEcompnref.
+Definition botEcompnref := botEcompnref.
+Definition compnref_rev := compnref_rev.
+ +
+End Exports.
+End RefinementOrder.
+ +
+#[export] Hint Resolve intcompP intcompnP : core.
+ +
+Lemma part_of_comp_subproof n (c : intcompn n) :
+  is_part_of_n n (sort geq c).
+Canonical partn_of_compn n (c : intcompn n) :=
+  IntPartN (part_of_comp_subproof c).
+
+
+ + + +
+ + + \ No newline at end of file diff --git a/combi/1.1.0/Combi.Combi.fibered_set.html b/combi/1.1.0/Combi.Combi.fibered_set.html new file mode 100644 index 00000000..e9fcd50c --- /dev/null +++ b/combi/1.1.0/Combi.Combi.fibered_set.html @@ -0,0 +1,141 @@ + + + + + +Combi.Combi.fibered_set: Bijection beetween fibered sets + + + + +
+ + + +
+ +

Library Combi.Combi.fibered_set: Bijection beetween fibered sets

+ +
+
+ +
+ +
+
+
+ +
+

Bijection beetween fibered sets

+ + +
+ +Given a type with equality I a fiberedset is a set fbset in an ihnabited +fintype T equiped with a function fbfun : fbset -> I. The preimage of some +i under fbfun is called the fiber of i. The goal of this file is to show +that if two fibered set S1 S2 have their fiber of i of the same +cardinality for all i, then there there exists a bijection fbbij from S1 +to S2 which sends the fiber of i to the fiber of i. That is fbbij +commute with the fbfun : forall x, fbfun2 (fbbij x) = fbfun1 x. + +
+ +
    +
  • fibered_set == record for fibered sets on a carrier finType + +
  • +
  • fiber S i == the i-fiber of S + +
    + + +
  • +
  • fbbij U V == a bijection from U to V provided the two fibered sets + U and V have their fiber of i of the same cardinality: + +
    + + Hypothesis HcardEq : forall i, #|fiber U i| = #|fiber V i|. + +
  • +
+ +
+ + +
+
+From Corelib Require Import Setoid.
+From mathcomp Require Import ssreflect ssrfun ssrbool eqtype ssrnat seq fintype finset.
+ +
+Set Implicit Arguments.
+ +
+Section BijFiberedSet.
+ +
+Variable I : eqType.
+ +
+Record fibered_set := FiberedSet {
+                          carrier : finType;
+                          elt : carrier;
+                          fbset :> {set carrier};
+                          fbfun : carrier -> I }.
+ +
+Definition fiber (S : fibered_set) v := [set x | x in S & fbfun x == v].
+ +
+Lemma mem_fiber (S : fibered_set) x : x \in S -> x \in fiber S (fbfun x).
+ +
+Definition fbbij (U V : fibered_set) (x : carrier U) : carrier V :=
+  nth (elt V) (enum (fiber V (fbfun x))) (index x (enum (fiber U (fbfun x)))).
+ +
+Section Defs.
+ +
+Variable U V : fibered_set.
+Hypothesis HcardEq : forall i, #|fiber U i| = #|fiber V i|.
+ +
+Lemma fbbij_in_fiber x : x \in U -> fbbij V x \in fiber V (fbfun x).
+ +
+Lemma fbset_fbbij x : x \in U -> fbbij V x \in V.
+ +
+Lemma equi_fbbij x : x \in U -> fbfun (fbbij V x) = fbfun x.
+ +
+Lemma fbbijK : {in U, cancel (fbbij V) (fbbij U)}.
+ +
+End Defs.
+ +
+Lemma fbbijP (U V : fibered_set) :
+  (forall i, #|fiber U i| = #|fiber V i|) ->
+  [/\ {in U &, injective (fbbij V)},
+   [set fbbij V x | x in U] = V &
+   {in U, forall x, fbfun (fbbij V x) = fbfun x} ].
+ +
+End BijFiberedSet.
+
+
+ + + +
+ + + \ No newline at end of file diff --git a/combi/1.1.0/Combi.Combi.multinomial.html b/combi/1.1.0/Combi.Combi.multinomial.html new file mode 100644 index 00000000..30329ac6 --- /dev/null +++ b/combi/1.1.0/Combi.Combi.multinomial.html @@ -0,0 +1,118 @@ + + + + + +Combi.Combi.multinomial: Multinomial Coefficients + + + + +
+ + + +
+ +

Library Combi.Combi.multinomial: Multinomial Coefficients

+ +
+
+ +
+ +
+
+
+ +
+

Multinomial Coefficients

+ + +
+ +We define: +
    +
  • 'Cs == the multinomial coefficient associated to the sequence s. + +
  • +
+ +
+ +The main expression is Lemma multinomial_factd: + +
+ + 'C[s] = (sumn s)`! %/ \prod_(i <- s) i`!. + +
+ + +
+
+From Corelib Require Import Setoid.
+From mathcomp Require Import ssreflect ssrbool ssrfun ssrnat eqtype fintype choice seq.
+From mathcomp Require Import bigop div binomial.
+ +
+Require Import tools.
+ +
+Set Implicit Arguments.
+ +
+Implicit Type (i a b : nat) (s t : seq nat).
+ +
+Fixpoint multinomial_rec s :=
+  if s is i :: s' then 'C(sumn s, i) * (multinomial_rec s') else 1.
+Arguments multinomial_rec : simpl nomatch.
+Definition multinomial := multinomial_rec.
+Arguments multinomial : simpl never.
+Notation "''C' [ s ]" := (multinomial s)
+  (at level 0, format "''C' [ s ]") : nat_scope.
+ +
+Lemma multinomial0 : 'C[[::]] = 1.
+ Lemma multinomial1 i : 'C[[:: i]] = 1.
+ Lemma multinomialE i s : 'C[i :: s] = 'C(i + sumn s, i) * 'C[s].
+ Lemma multinomial2 a b : 'C[[:: a; b]] = 'C(a + b, a).
+ +
+Lemma multinomial_fact s : 'C[s] * \prod_(i <- s) i`! = (sumn s)`!.
+ +
+Lemma multinomial_nseq n a : 'C[nseq n a] * (a`! ^ n) = (a * n)`!.
+ +
+Lemma multinomial_nseq1 n : 'C[nseq n 1] = n`!.
+ +
+Lemma dvdn_prodfact s : \prod_(i <- s) i`! %| (sumn s)`! .
+ +
+Lemma multinomial_factd s : 'C[s] = (sumn s)`! %/ \prod_(i <- s) i`!.
+ +
+Lemma multinomial_cat s t :
+  'C[s ++ t] = 'C(sumn s + sumn t, sumn s) * 'C[s] * 'C[t].
+ +
+Lemma perm_multinomial s t : perm_eq s t -> 'C[s] = 'C[t].
+ +
+Lemma multinomial_filter_neq0 s : 'C[[seq i <- s | i != 0]] = 'C[s].
+
+
+ + + +
+ + + \ No newline at end of file diff --git a/combi/1.1.0/Combi.Combi.ordtree.html b/combi/1.1.0/Combi.Combi.ordtree.html new file mode 100644 index 00000000..5f251133 --- /dev/null +++ b/combi/1.1.0/Combi.Combi.ordtree.html @@ -0,0 +1,270 @@ + + + + + +Combi.Combi.ordtree + + + + +
+ + + +
+ +

Library Combi.Combi.ordtree

+ +
+
+ +
+

Combi.Combi.ordree : Ordered Trees

+ +
+
+
+ +
+

Ordered Trees

+ + +
+ +An ordered tree is a rooted tree such that each node has a possibly empty +list of child that are ordered trees. + +
+ +Basic definitions: + +
+ +
    +
  • ordtree == the type of ordered trees. This is canonically a countType + +
  • +
  • forest == the type of forest, that is sequence of ordered trees + +
  • +
  • OrdNode f == the ordered tree with subtrees from the forest f + +
  • +
+ +
+ +Ordered trees of size n: + +
+ +
    +
  • size_ordtree t == the number of node of the ordered tree t + +
  • +
  • enum_ordtreesz n == the list of a ordered trees of size n + +
  • +
  • ordtreesz n == the Sigma type for ordered trees of size n. + This is canonically a finType with enumeration enum_ordtreesz n + +
  • +
  • depth_ordtree t == the depth of the ordered tree t, that is the + maximum number of node on a branch. + +
    + + + +
  • +
+
+
+From HB Require Import structures.
+From mathcomp Require Import all_boot.
+Require Import tools combclass bintree.
+ +
+Set Implicit Arguments.
+ +
+
+ +
+

Inductive type for ordered trees

+ +
+
+Inductive ordtree : Set := OrdNode : seq ordtree -> ordtree.
+Notation forest := (seq ordtree).
+ +
+Lemma OrdNode_inj : injective OrdNode.
+ +
+
+ +
+Induction scheme for ordtrees +
+
+Section Recursion.
+ +
+Variables (P : ordtree -> Type) (PF : seq ordtree -> Type).
+Hypothesis HPnil : PF [::].
+Hypothesis IHforest : forall tr f, P tr -> PF f -> PF (tr :: f).
+Hypothesis IHtree : forall f, PF f -> P (OrdNode f).
+ +
+Fixpoint recforest rt f : PF f :=
+  if f is tr :: tlf then IHforest (rt tr) (recforest rt tlf)
+  else HPnil.
+Fixpoint rectree t : P t :=
+  let: OrdNode f := t in IHtree (recforest rectree f).
+ +
+End Recursion.
+Definition indtreeforest
+  (P : ordtree -> Prop) (PF : forest -> Prop) := @rectree P PF.
+ +
+Fixpoint eq_forest (eqtr : ordtree -> ordtree -> bool) (f1 f2 : seq ordtree) :=
+  match f1, f2 with
+  | [::], [::] => true
+  | tr1 :: tl1, tr2 :: tl2 => eqtr tr1 tr2 && eq_forest eqtr tl1 tl2
+  | _, _ => false
+  end.
+Fixpoint eq_ordtree tr1 tr2 :=
+  match tr1, tr2 with
+    OrdNode f1, OrdNode f2 => eq_forest eq_ordtree f1 f2
+  end.
+Fact eq_ordtreeP : Equality.axiom eq_ordtree.
+ +
+Section SimpleRecursion.
+ +
+Variables (P : ordtree -> Type).
+Hypothesis IHtree :
+  forall f : forest, (forall t : ordtree, t \in f -> P t) -> P (OrdNode f).
+Lemma rec_tree t : P t.
+ +
+End SimpleRecursion.
+Definition indtree (P : ordtree -> Prop) := @rec_tree P.
+ +
+Fixpoint ord_to_bintree (t : ordtree) : bintree :=
+  let fix f_to_bin t_to_bin (f : forest) : bintree :=
+    match f with
+    | [::] => BinLeaf
+    | t :: ftl => BinNode (t_to_bin t) (f_to_bin t_to_bin ftl)
+    end
+  in let: OrdNode f := t in f_to_bin ord_to_bintree f.
+Definition forest_to_bintree f := ord_to_bintree (OrdNode f).
+ +
+Fixpoint bin_to_forest (t : bintree) : forest :=
+  if t is BinNode l r then OrdNode (bin_to_forest l) :: bin_to_forest r
+  else [::].
+Definition bin_to_ordtree t := OrdNode (bin_to_forest t).
+ +
+Lemma bin_to_forestK : cancel bin_to_forest forest_to_bintree.
+ Lemma bin_to_ordtreeK : cancel bin_to_ordtree ord_to_bintree.
+ +
+Lemma ord_to_bintreeK : cancel ord_to_bintree bin_to_ordtree.
+Lemma forest_to_bintreeK : cancel forest_to_bintree bin_to_forest.
+ +
+ +
+Fixpoint size_ordtree t :=
+  let: OrdNode f := t in (sumn [seq size_ordtree t | t <- f]).+1.
+Lemma size_ordtreeE f :
+  size_ordtree (OrdNode f) = (sumn [seq size_ordtree t | t <- f]).+1.
+ Lemma size_ordtree_pos t : size_ordtree t > 0.
+ Lemma size_tree_eq1 t : (size_ordtree t == 1) = (t == OrdNode [::]).
+Lemma size_bin_to_ordtree bt :
+  size_ordtree (bin_to_ordtree bt) = (size_tree bt).+1.
+Lemma size_ord_to_bintree t :
+  size_ordtree t = (size_tree (ord_to_bintree t)).+1.
+ +
+Section OfSize.
+ +
+Variable (n : nat).
+ +
+Structure ordtreesz : predArgType :=
+  OrdTreeSZ {trval :> ordtree; _ : size_ordtree trval == n}.
+ +
+Lemma ordtreeszP (t : ordtreesz) : size_ordtree t = n.
+ +
+End OfSize.
+ +
+Section FinType.
+ +
+Implicit Type (t : ordtree).
+ +
+Definition enum_ordtreesz n :=
+  if n is n'.+1 then [seq bin_to_ordtree b | b <- enum_bintreesz n']
+  else [::].
+ +
+Lemma size_mem_enum_ordtreeszP n t :
+  t \in enum_ordtreesz n -> size_ordtree t = n.
+ +
+Lemma enum_ordtreeszP n :
+  all (fun t => size_ordtree t == n) (enum_ordtreesz n).
+ +
+Lemma enum_ordtreesz_uniq n : uniq (enum_ordtreesz n).
+ +
+Lemma mem_enum_ordtreesz n t :
+  size_ordtree t == n -> t \in enum_ordtreesz n.
+ +
+Lemma enum_ordtreesz_countE n t :
+  size_ordtree t == n -> count_mem t (enum_ordtreesz n) = 1.
+ +
+Theorem card_ordtreesz n : #|ordtreesz n.+1| = Catalan_bin n.
+ +
+End FinType.
+ +
+Fixpoint depth_ordtree t :=
+  let: OrdNode f := t in (foldr maxn 0 [seq depth_ordtree t | t <- f]).+1.
+Lemma depth_ordtreeE f :
+  depth_ordtree (OrdNode f) = (foldr maxn 0 [seq depth_ordtree t | t <- f]).+1.
+ Lemma depth_ordtree_pos t : depth_ordtree t > 0.
+ Lemma depth_tree_eq1 t : (depth_ordtree t == 1) = (t == OrdNode [::]).
+Lemma depth_tree_eq2P t :
+  reflect (exists n, t = OrdNode (nseq n.+1 (OrdNode [::])))
+    (depth_ordtree t == 2).
+
+
+ + + +
+ + + \ No newline at end of file diff --git a/combi/1.1.0/Combi.Combi.partition.html b/combi/1.1.0/Combi.Combi.partition.html new file mode 100644 index 00000000..4924e7d2 --- /dev/null +++ b/combi/1.1.0/Combi.Combi.partition.html @@ -0,0 +1,1929 @@ + + + + + +Combi.Combi.partition: Integer Partitions + + + + +
+ + + +
+ +

Library Combi.Combi.partition: Integer Partitions

+ +
+
+ +
+ +
+
+
+ +
+

Shapes and Integer Partitions

+ + +
+ +Partitions (and more generally shapes) are stored by terms of type seq nat. +We define the following predicates and operations on seq nat: + +
+ +
    +
  • in_shape sh (r, c) == the box with coordinate (r, c) belongs to the shape + sh, that is: c < sh[r]. + +
  • +
  • in_skew inn out (r, c) == the box with coordinate (r, c) belongs to the + shape out but not inn + +
  • +
  • box_in sh == a sigma type for boxes in sh : { b | in_shape sh b }; + it is canonically a subFinType. + +
  • +
  • box_skew inn out == a sigma type for boxes in the skew shape out / inn + +
  • +
  • enum_box_in sh == a full duplicate free list of the boxes in sh. + +
  • +
  • enum_box_skew inn out == a full duplicate free list of the boxes in + the skew shape out / inn + +
  • +
+ +
+ +Integer Partitions: + +
+ +
    +
  • is_part sh == sh is a partition + +
  • +
  • rem_trail0 sh == remove the trailing zeroes of a shape + +
  • +
  • is_add_corner sh i == i is the row of an addable corner of sh + +
  • +
  • is_rem_corner sh i == i is the row of a removable corner of sh + +
  • +
  • incr_nth sh i == the shape obtained by adding a box at the end of the + i-th row. This gives a partition if i is an addable + corner of sh (Lemma is_part_incr_nth) + +
  • +
  • decr_nth sh i == the shape obtained by removing a box at the end of the + i-th row. This gives a partition if i is an removable + corner of sh (Lemma is_part_decr_nth) + +
  • +
  • rem_corners sh == the list of the rows of the removable corners of sh. + +
  • +
  • incr_first_n sh n == adding 1 to the n'th first part of sh, + always gives a partition + +
  • +
  • conj_part sh == the conjugate of a partition + +
  • +
  • included s t == the Ferrers diagram of s is included in the + Ferrers diagram of t. This is an order. + +
  • +
  • s / t = diff_shape s t == the difference of the shapes s and t + +
  • +
  • outer_shape s t == add t to the shape s + +
  • +
+ +
+ + +
+ +Enumeration of integer partitions: + +
+ +
    +
  • is_part_of_n sm sh == sh is a partition of n + +
  • +
  • is_part_of_ns sm sz sh == sh is a partition of n of size sz + ("size" means "length") + +
  • +
  • is_part_of_nsk sm sz mx sh == sh is a partition of n of size sz + in parts at most mx + +
  • +
  • enum_partn sm == the list of all partitions of n + +
  • +
  • enum_partns sm sz == the list of all partitions of n of size sz + +
  • +
  • enum_partnsk sm sz mx == the list of all partitions of n of size sz + in parts at most mx + +
  • +
  • intpartn_nb sm == the number of partitions of n + +
  • +
  • intpartns_nb sm sz == the number of partitions of n of size sz + +
  • +
  • intpartnsk_nb sm sz mx == the number of partitions of n of size sz + in parts at most mx + +
  • +
+ +
+ + +
+ +Sigma types for integer partitions: + +
+ +
    +
  • intpart == a type for seq nat which are partitions; + canonically a subCountType of seq nat + +
  • +
  • conj_intpart == the conjugate of a intpart as a intpart + +
  • +
  • empty_intpart == the empty intpart + +
    + + +
  • +
  • 'P_n == a type for seq nat which are partitions of n; + canonically a finType + +
  • +
  • cast_intpartn m n eq_mn == the cast from 'P_m to 'P_n + +
  • +
  • rowpartn n == the one-row partition of sum n as a 'P_n + +
  • +
  • colpartn n == the one-column partition of sum n as a 'P_n + +
  • +
  • conj_intpartn == the conjugate of a 'P_n as a 'P_n + +
  • +
  • hookpartm n k == the hook shape partition of sum n.+1 as a 'P_n.+1 + whose arm length is k (not counting the corner), + that is, (k+1, 1, ..., 1). + +
    + + +
  • +
  • decr_nth_intpart p i == the shape obtained by removing a box at the end + of the i-th row if the result is a partition, else p + +
  • +
+ +
+ +Operations on partitions: + +
+ +
    +
  • union_intpart l k == the partition of type intpart obtained by + gathering the parts of l and k + +
  • +
  • l +|+ k = union_intpartn l k == the partition of type 'P_(m + n) + obtained by gathering the parts of l : 'P_m and k : 'P_n + +
  • +
+ +
+ +Comparison of partitions: + +
+ +
    +
  • 'YL == a type convertible to intpart which is canonically + a lattice partially ordered by included + ("Young's lattice"). + +
  • +
  • partdom s t == s is dominated by t, that is, the partial sums of s are + less-or-equal to the partial sums of t. + +
  • +
  • 'PDom_d == a type convertible to 'P_d which is canonically + a finite lattice partially ordered by partdom. + +
  • +
  • 'PLexi_d == a type convertible to 'P_d which is canonically + finite and totally ordered by the lexicographic order. + +
  • +
+ +
+ +Relation with set partitions: + +
+ +
    +
  • setpart_shape P == the shape of a set partition, i.e. + the sorted list of the cardinalities of the parts + +
  • +
+ +
+
+From HB Require Import structures.
+From mathcomp Require Import all_boot order.
+From mathcomp Require Import div ssralg ssrint ssrnum binomial.
+Require Import tools combclass sorted ordtype.
+ +
+Set Implicit Arguments.
+ +
+Import LeqGeqOrder.
+Import Order.TTheory.
+ +
+Open Scope nat_scope.
+Declare Scope Combi_scope.
+Delimit Scope Combi_scope with Combi.
+Open Scope Combi_scope.
+ +
+Reserved Notation "''P_' n"
+         (at level 8, n at level 2, format "''P_' n").
+Reserved Notation "''PDom_' n"
+         (at level 8, n at level 2, format "''PDom_' n").
+Reserved Notation "''PLexi_' n"
+         (at level 8, n at level 2, format "''PLexi_' n").
+ +
+
+ +
+

Shapes

+ +
+
+Definition in_shape sh b := b.2 < nth 0 sh b.1.
+Definition in_skew inn out b := nth 0 inn b.1 <= b.2 < nth 0 out b.1.
+ +
+Lemma in_skewE inn out b :
+  in_skew inn out b = ~~ in_shape inn b && in_shape out b.
+ Lemma in_skew_out inn out b : in_skew inn out b -> in_shape out b.
+ Lemma in_skew_in inn out b : in_skew inn out b -> ~~ in_shape inn b.
+ +
+Lemma in_shape_nil : in_shape [::] =1 pred0.
+ Lemma in_skew_nil : in_skew [::] =2 in_shape.
+ +
+Lemma in_shape_size sh r c : in_shape sh (r, c) -> r < size sh.
+ +
+
+ +
+

Integer Partitions

+

Definitions and basic properties

+ +
+
+Section Defs.
+ +
+Implicit Types (s sh : seq nat) (i j r c : nat).
+ +
+Fixpoint is_part sh :=
+  if sh is sh0 :: sh'
+  then (sh0 >= head 1 sh') && (is_part sh')
+  else true.
+ +
+
+ +
+Partitions don't have 0 parts +
+
+Lemma part_head0F sh : head 1 sh == 0 -> is_part sh = false.
+ +
+Lemma part_head_non0 sh : is_part sh -> head 1 sh != 0.
+ +
+Lemma notin0_part sh : is_part sh -> 0 \notin sh.
+ +
+Lemma in_part_non0 sh i : is_part sh -> i \in sh -> i != 0.
+ +
+Lemma nth_part_non0 sh i : is_part sh -> i < size sh -> nth 0 sh i != 0.
+ +
+Lemma leq_head_sumn sh : head 0 sh <= sumn sh.
+ +
+Lemma part_leq_head sh i : is_part sh -> i \in sh -> i <= head 0 sh.
+ +
+
+ +
+Three equivalent definitions +
+
+Lemma is_partP sh :
+  reflect
+    (last 1 sh != 0 /\ forall i, (nth 0 sh i) >= nth 0 sh i.+1)
+    (is_part sh).
+ +
+Lemma is_part_ijP sh :
+  reflect
+    (last 1 sh != 0 /\ forall i j, i <= j -> (nth 0 sh i) >= nth 0 sh j)
+    (is_part sh).
+ +
+Lemma is_part_sortedE sh : (is_part sh) = (sorted geq sh) && (0 \notin sh).
+ +
+
+ +
+Sub-partitions +
+
+ +
+Lemma is_part_consK l0 sh : is_part (l0 :: sh) -> is_part sh.
+ +
+Lemma is_part_behead sh : is_part sh -> is_part (behead sh).
+ +
+Lemma is_part_subseq sh1 sh2 : subseq sh1 sh2 -> is_part sh2 -> is_part sh1.
+ +
+Lemma is_part_rconsK sh sn : is_part (rcons sh sn) -> is_part sh.
+ +
+Lemma is_part_catl sh1 sh2 : is_part (sh1 ++ sh2) -> is_part sh2.
+ Lemma is_part_catr sh1 sh2 : is_part (sh1 ++ sh2) -> is_part sh1.
+ +
+
+ +
+Boxes in a partitions +
+
+ +
+Lemma in_part_le sh r c j k :
+  is_part sh -> in_shape sh (r, c) -> j <= r -> k <= c -> in_shape sh (j, k).
+ +
+Lemma in_part_is_part sh :
+  (forall r c j k, j <= r -> k <= c ->
+                   in_shape sh (r, c) -> in_shape sh (j, k)) ->
+  last 1 sh != 0 -> is_part sh.
+ +
+
+ +
+Equality of partitions +
+
+Lemma part_eqP p q :
+  is_part p -> is_part q -> reflect (forall i, nth 0 p i = nth 0 q i) (p == q).
+ +
+
+ +
+Partitions and sumn +
+
+Lemma part0 sh : is_part sh -> sumn sh = 0 -> sh = [::].
+ +
+Lemma size_part sh : is_part sh -> size sh <= sumn sh.
+ +
+Lemma part_sumn_rectangle sh :
+  is_part sh -> sumn sh <= (head 0 sh) * (size sh).
+ +
+
+ +
+Removing trailing zeroes +
+
+Fixpoint rem_trail0 s :=
+  if s is s0 :: s' then
+    if (rem_trail0 s') is t1 :: t' then s0 :: t1 :: t'
+    else if s0 == 0 then [::] else [:: s0]
+  else [::].
+ +
+Lemma size_rem_trail0 s : size (rem_trail0 s) <= size s.
+ +
+Lemma nth_rem_trail0 s i : nth 0 (rem_trail0 s) i = nth 0 s i.
+ +
+Lemma sumn_rem_trail0 s : sumn (rem_trail0 s) = sumn s.
+ +
+Lemma is_part_rem_trail0 s : sorted geq s -> is_part (rem_trail0 s).
+ +
+
+ +
+

Corners, adding and removing corners

+ +
+
+Definition is_rem_corner sh i := nth 0 sh i > nth 0 sh i.+1.
+Definition is_add_corner sh i := (i == 0) || (nth 0 sh i < nth 0 sh i.-1).
+ +
+Lemma last_incr_nth_non0 sh i : last 1 sh != 0 -> last 1 (incr_nth sh i) != 0.
+ +
+Lemma is_part_incr_nth_size sh i :
+  is_part sh -> is_part (incr_nth sh i) -> i <= size sh.
+ +
+Lemma is_part_incr_nth sh i :
+  is_part sh -> is_add_corner sh i -> is_part (incr_nth sh i).
+ +
+Lemma del_rem_corner sh i :
+  last 1 sh != 0 -> is_part (incr_nth sh i) ->
+  is_rem_corner (incr_nth sh i) i = is_part sh.
+ +
+Lemma rem_corner_incr_nth sh i :
+  is_part sh -> is_add_corner sh i -> is_rem_corner (incr_nth sh i) i.
+ +
+Lemma is_rem_cornerP sh i : is_part sh ->
+  (i < size sh) && (~~ in_shape sh (i.+1, (nth 0 sh i).-1)) =
+  (is_rem_corner sh i).
+ +
+Fixpoint decr_nth v i {struct i} :=
+  if v is n :: v' then
+    if i is i'.+1 then n :: decr_nth v' i'
+    else if n is n'.+1 then
+           if n' is _.+1 then
+             n' :: v'
+           else [::]
+         else [::]
+  else [::].
+ +
+Lemma incr_nthK sh i :
+  is_part sh -> is_part (incr_nth sh i) -> decr_nth (incr_nth sh i) i = sh.
+ +
+Lemma decr_nthK sh i :
+  is_part sh -> is_rem_corner sh i -> incr_nth (decr_nth sh i) i = sh.
+ +
+Lemma sumn_incr_nth s i : sumn (incr_nth s i) = (sumn s).+1.
+ +
+Lemma nth_decr_nth sh i :
+  nth 0 (decr_nth sh i) i = (nth 0 sh i).-1.
+ +
+Lemma nth_decr_nth_neq sh i j :
+  is_part sh -> is_rem_corner sh i -> i != j ->
+  nth 0 (decr_nth sh i) j = nth 0 sh j.
+ +
+Lemma sumn_decr_nth sh i :
+  is_part sh -> is_rem_corner sh i -> (sumn (decr_nth sh i)) = (sumn sh).-1.
+ +
+Lemma is_part_decr_nth sh i :
+  is_part sh -> is_rem_corner sh i -> is_part (decr_nth sh i).
+ +
+Lemma add_corner_decr_nth sh i :
+  is_part sh -> is_rem_corner sh i -> is_add_corner (decr_nth sh i) i.
+ +
+Definition rem_corners sh := filter (is_rem_corner sh) (iota 0 (size sh)).
+ +
+Lemma rem_corners_uniq sh : uniq (rem_corners sh).
+ +
+
+ +
+

Conjugate of a partition

+ +
+
+ +
+Fixpoint incr_first_n sh n :=
+  if sh is s0 :: s then
+    if n is n'.+1 then s0.+1 :: incr_first_n s n'
+    else sh
+  else nseq n 1.
+Fixpoint conj_part sh :=
+  if sh is s0 :: sh then incr_first_n (conj_part sh) s0
+  else [::].
+ +
+Lemma is_part_nseq1 n : is_part (nseq n 1).
+ +
+Lemma nth_incr_first_n sh n i :
+  nth 0 (incr_first_n sh n) i = if i < n then (nth 0 sh i).+1 else nth 0 sh i.
+ +
+Lemma incr_first_n_nthC sh i j :
+  incr_first_n (incr_nth sh i) j = incr_nth (incr_first_n sh j) i.
+ +
+Lemma is_part_incr_first_n sh n :
+  is_part sh -> is_part (incr_first_n sh n).
+ +
+Lemma is_part_conj sh : is_part sh -> is_part (conj_part sh).
+ +
+Lemma conj_nseq n : 0 < n -> conj_part (nseq n 1) = [:: n].
+ +
+Lemma size_incr_first_n sh n :
+  size sh <= n -> size (incr_first_n sh n) = n.
+ +
+Lemma size_conj_part sh : is_part sh -> size (conj_part sh) = head 0 sh.
+ +
+Lemma sumn_incr_first_n sh n : sumn (incr_first_n sh n) = sumn sh + n.
+ +
+Lemma sumn_conj_part sh : sumn (conj_part sh) = sumn sh.
+ +
+Lemma conj_part_ind sh l :
+  sh != [::] -> is_part sh -> l >= size sh ->
+  conj_part (incr_first_n sh l) = l :: conj_part sh.
+ +
+Lemma conj_partK sh : is_part sh -> conj_part (conj_part sh) = sh.
+ +
+Lemma conj_part_incr_nth sh i :
+  is_part sh -> is_add_corner sh i ->
+  conj_part (incr_nth sh i) = incr_nth (conj_part sh) (nth 0 sh i).
+ +
+Lemma in_conj_part_impl sh : is_part sh ->
+  forall r c, in_shape sh (r, c) -> in_shape (conj_part sh) (c, r).
+ +
+Lemma in_conj_part sh : is_part sh ->
+  forall r c, in_shape sh (r, c) = in_shape (conj_part sh) (c, r).
+ +
+Lemma conj_ltnE sh :
+  is_part sh -> forall i j, nth 0 sh i > j = (nth 0 (conj_part sh) j > i).
+ +
+Lemma conj_leqE sh :
+  is_part sh -> forall i j, (nth 0 sh i <= j) = (nth 0 (conj_part sh) j <= i).
+ +
+Lemma nth_conjE sh r c :
+  is_part sh -> c != 0 ->
+  (nth 0 (conj_part sh) r == c) = (nth 0 sh c <= r < nth 0 sh c.-1).
+ +
+Lemma rem_corner_incr_first_n sh i :
+  is_part sh -> is_rem_corner (incr_first_n sh i.+1) i.
+ +
+Lemma rem_corner_incr_first_nE sh n i :
+  is_part sh -> is_rem_corner sh i -> is_rem_corner (incr_first_n sh n) i.
+ +
+Lemma is_add_corner_conj_part sh r :
+  is_part sh -> is_add_corner sh r -> is_add_corner (conj_part sh) (nth 0 sh r).
+ +
+Lemma rem_corner_conj_part sh i :
+  is_part sh -> is_rem_corner sh i ->
+  is_rem_corner (conj_part sh) (nth 0 sh i).-1.
+ +
+
+ +
+

Partial sum of partitions

+ +
+
+ +
+Lemma sumn_take_leq s k1 k2 :
+  k1 <= k2 -> sumn (take k1 s) <= sumn (take k2 s).
+ +
+Lemma sum_conj sh k : \sum_(l <- sh) minn l k = sumn (take k (conj_part sh)).
+ +
+Lemma sumn_take_inj s t :
+  is_part s -> is_part t ->
+  (forall k, sumn (take k s) = sumn (take k t)) -> s = t.
+ +
+
+ +
+

Inclusion of Partitions and Skew Partitions

+ +
+
+ +
+Fixpoint included inner outer :=
+  if inner is inn0 :: inn then
+    if outer is out0 :: out then
+      (inn0 <= out0) && (included inn out)
+    else false
+  else true.
+ +
+Lemma includedP inner outer :
+  reflect (size inner <= size outer /\ forall i, nth 0 inner i <= nth 0 outer i)
+          (included inner outer).
+ +
+Lemma part_includedP inner outer :
+  is_part inner ->
+  reflect (forall i, nth 0 inner i <= nth 0 outer i) (included inner outer).
+ +
+Lemma included_behead p1 p2 :
+  included p1 p2 -> included (behead p1) (behead p2).
+ +
+Lemma included_refl sh : included sh sh.
+ +
+Lemma included_trans : transitive included.
+ +
+Lemma included_incr_nth sh i : included sh (incr_nth sh i).
+ +
+Lemma included_decr_nth u i : included (decr_nth u i) u.
+ +
+Lemma included_incr_nth_inner inner outer i :
+  nth 0 inner i < nth 0 outer i ->
+  included inner outer -> included (incr_nth inner i) outer.
+ +
+Lemma size_included inner outer :
+  included inner outer -> size inner <= size outer.
+ +
+Lemma sumn_included inner outer :
+  included inner outer -> sumn inner <= sumn outer.
+ +
+Lemma included_sumnE inner outer :
+  is_part outer ->
+  included inner outer ->
+  sumn inner = sumn outer ->
+  inner = outer.
+ +
+Lemma included_anti sh1 sh2 :
+  is_part sh1 -> is_part sh2 ->
+  included sh1 sh2 -> included sh2 sh1 ->
+  sh1 = sh2.
+ +
+Lemma included_conj_part inner outer :
+  is_part inner -> is_part outer ->
+  included inner outer -> included (conj_part inner) (conj_part outer).
+ +
+Lemma included_conj_partE inner outer :
+  is_part inner -> is_part outer ->
+  included inner outer = included (conj_part inner) (conj_part outer).
+ +
+Fixpoint diff_shape inner outer :=
+  if inner is inn0 :: inn then
+    if outer is out0 :: out then
+      out0 - inn0 :: diff_shape inn out
+    else [::]
+  else outer.
+ +
+Notation "outer / inner" := (diff_shape inner outer) : Combi_scope.
+ +
+Definition pad (T : Type) (x : T) sz := [fun s => s ++ nseq (sz - size s) x].
+ +
+Lemma nth_pad (T : Type) n (p : T) (s : seq T) i :
+  nth p (pad p n s) i = nth p s i.
+ +
+Lemma head_pad (T : Type) n (p : T) (s : seq T) :
+  head p (pad p n s) = head p s.
+ +
+Definition outer_shape inner size_seq :=
+  [seq p.1 + p.2 | p <- zip (pad 0 (size (size_seq)) inner) size_seq].
+ +
+Lemma diff_shape_eq s : s / s = nseq (size s) 0.
+ +
+Lemma sumn_diff_shape_eq s : sumn (s / s) = 0.
+ +
+Lemma size_diff_shape inner outer : size (outer / inner) = size outer.
+ +
+Lemma nth_diff_shape inn out i :
+  nth 0 (out / inn) i = nth 0 out i - nth 0 inn i.
+ +
+Lemma sumn_diff_shape inner outer :
+  included inner outer -> sumn (outer / inner) = sumn outer - sumn inner.
+ +
+Lemma diff_shape_pad0 inner outer :
+  outer / ((pad 0 (size outer)) inner) = outer / inner.
+ +
+Lemma diff_shapeK inner outer :
+  included inner outer -> outer_shape inner (outer / inner) = outer.
+ +
+Lemma outer_shapeK inner diff :
+  size inner <= size diff -> (outer_shape inner diff) / inner = diff.
+ +
+Lemma outer_shape_pad0 inner sz :
+  outer_shape (pad 0 (size sz) inner) sz = outer_shape inner sz.
+ +
+Lemma included_pad0 inner outer :
+  included inner outer = included (pad 0 (size outer) inner) outer.
+ +
+End Defs.
+Notation "outer / inner" := (diff_shape inner outer) : Combi_scope.
+ +
+
+ +
+

Sigma Types for Partitions

+ +
+
+ +
+Structure intpart : Set := IntPart {pval :> seq nat; _ : is_part pval}.
+ +
+Lemma intpartP (p : intpart) : is_part p.
+ +
+Lemma intpart_sorted (p : intpart) : sorted geq p.
+ +
+#[export] Hint Resolve intpartP intpart_sorted : core.
+ +
+Lemma intpart_eqP (p q : intpart) :
+  reflect (forall i, nth 0 p i = nth 0 q i) (p == q).
+ +
+Canonical conj_intpart p := IntPart (is_part_conj (intpartP p)).
+ +
+Lemma conj_intpartK : involutive conj_intpart.
+ +
+Lemma intpart_sumn_take_inj (s t : intpart) :
+  (forall k, sumn (take k s) = sumn (take k t)) -> s = t.
+ +
+Canonical empty_intpart := IntPart (pval := [::]) is_true_true.
+ +
+Lemma empty_intpartP (p : intpart) : sumn p = 0 -> p = empty_intpart.
+ +
+Fixpoint enum_partnsk sm sz mx : (seq (seq nat)) :=
+  if sz is sz.+1 then
+    flatten [seq [seq i :: p | p <- enum_partnsk (sm - i) sz i] |
+             i <- iota 1 (minn sm mx)]
+  else if sm is sm.+1 then [::] else [:: [::]].
+ +
+Definition enum_partns sm sz := enum_partnsk sm sz sm.
+Definition enum_partn sm := flatten [seq enum_partns sm sz | sz <- iota 0 sm.+1 ].
+ +
+Definition is_part_of_n sm :=
+  [pred p | (sumn p == sm) & is_part p ].
+Definition is_part_of_ns sm sz :=
+  [pred p | (size p == sz) & is_part_of_n sm p].
+Definition is_part_of_nsk sm sz mx :=
+  [pred p | (head 1 p <= mx) & is_part_of_ns sm sz p].
+ +
+Lemma enum_partnsk_allP sm sz mx :
+  mx >= 1 -> all (is_part_of_nsk sm sz mx) (enum_partnsk sm sz mx).
+ +
+Lemma enum_partnsk_countE sm sz mx :
+  mx >= 1 ->
+  forall p, is_part_of_nsk sm sz mx p ->
+            count_mem p (enum_partnsk sm sz mx) = 1.
+ +
+Lemma enum_partnskE sm sz mx :
+  mx >= 1 ->
+  forall p, count_mem p (enum_partnsk sm sz mx) = is_part_of_nsk sm sz mx p.
+ +
+Lemma enum_partns_allP sm sz : all (is_part_of_ns sm sz) (enum_partns sm sz).
+ +
+Lemma enum_partns_countE sm sz p :
+  is_part_of_ns sm sz p -> count_mem p (enum_partns sm sz) = 1.
+ +
+Lemma enum_partnsE sm sz p :
+  count_mem p (enum_partns sm sz) = is_part_of_ns sm sz p.
+ +
+Lemma enum_partn_allP sm : all (is_part_of_n sm) (enum_partn sm).
+ +
+Lemma enum_partn_countE sm p :
+  is_part_of_n sm p -> count_mem p (enum_partn sm) = 1.
+ +
+Lemma enum_partnP n p : (is_part_of_n n p) = (p \in enum_partn n).
+ +
+Section PartOfn.
+ +
+Variable n : nat.
+ +
+Structure intpartn : Set :=
+  IntPartN {pnval :> seq nat; _ : is_part_of_n n pnval}.
+ +
+#[local] Notation "''P'" := intpartn.
+ +
+Implicit Type (p : 'P).
+Lemma intpartnP p : is_part p.
+ +
+Lemma intpartn_sorted p : sorted geq p.
+ +
+Hint Resolve intpartnP intpartn_sorted : core.
+ +
+Definition intpart_of_intpartn p := IntPart (intpartnP p).
+Coercion intpart_of_intpartn : intpartn >-> intpart.
+ +
+Lemma sumn_intpartn p : sumn p = n.
+ +
+Lemma intpartn_leq_head p i : i \in pnval p -> i <= head 0 p.
+ +
+Lemma intpartn_leq p i : i \in pnval p -> i <= n.
+ +
+Lemma enum_intpartnE : map val (enum {: 'P}) = enum_partn n.
+ +
+Fact conj_intpartnP p : is_part_of_n n (conj_part p).
+Canonical conj_intpartn p := IntPartN (conj_intpartnP p).
+ +
+Lemma conj_intpartnK : involutive conj_intpartn.
+ +
+End PartOfn.
+ +
+Notation "''P_' n" := (intpartn n).
+ +
+Lemma val_intpartn0 (sh : 'P_0) : sh = [::] :> seq nat.
+ +
+Lemma val_intpartn1 (sh : 'P_1) : sh = [:: 1] :> seq nat.
+ +
+Lemma val_intpartn2 (sh : 'P_2) :
+  sh = [:: 2] :> seq nat \/ sh = [:: 1; 1] :> seq nat.
+ +
+Lemma val_intpartn3 (sh : 'P_3) :
+  [\/ sh = [:: 3] :> seq nat,
+      sh = [:: 2; 1] :> seq nat |
+      sh = [:: 1; 1; 1] :> seq nat].
+ +
+Definition cast_intpartn m n (eq_mn : m = n) p :=
+  let: erefl in _ = n := eq_mn return 'P_n in p.
+ +
+Lemma cast_intpartnE m n (eq_mn : m = n) p :
+  val (cast_intpartn eq_mn p) = val p.
+ +
+Lemma cast_intpartn_id n eq_n (s : 'P_n) : cast_intpartn eq_n s = s.
+ +
+Lemma cast_intpartnK m n eq_m_n :
+  cancel (@cast_intpartn m n eq_m_n) (cast_intpartn (esym eq_m_n)).
+ +
+Lemma cast_intpartnKV m n eq_m_n :
+  cancel (cast_intpartn (esym eq_m_n)) (@cast_intpartn m n eq_m_n).
+ +
+Lemma cast_intpartn_inj m n eq_m_n : injective (@cast_intpartn m n eq_m_n).
+ +
+Lemma cast_intpartn_bij m n eq_m_n : bijective (@cast_intpartn m n eq_m_n).
+ +
+Lemma cast_conj_inpart m n eq_m_n (s : 'P_m) :
+  (@cast_intpartn m n eq_m_n) (conj_intpartn s) =
+  conj_intpartn (@cast_intpartn m n eq_m_n s).
+ +
+Fact rowpartn_subproof d : is_part_of_n d (if d is 0 then [::] else [:: d]).
+ Definition rowpartn d : 'P_d := locked (IntPartN (rowpartn_subproof d)).
+ +
+Fact colpartn_subproof d : is_part_of_n d (nseq d 1%N).
+Definition colpartn d : 'P_d := locked (IntPartN (colpartn_subproof d)).
+ +
+ +
+Lemma rowpartnE d : rowpartn d = (if d is 0 then [::] else [:: d]) :> seq nat.
+ Lemma colpartnE d : colpartn d = nseq d 1%N :> seq nat.
+ +
+Lemma rowpartn0E : rowpartn 0 = [::] :> seq nat.
+ Lemma rowpartnSE d : rowpartn d.+1 = [:: d.+1] :> seq nat.
+ +
+Lemma size_colpartn d : size (colpartn d) = d.
+ Lemma size_rowpartn d : size (rowpartn d) = (d != 0).
+ +
+Lemma part_nseq1P x0 sh :
+  is_part sh -> head x0 sh <= 1 -> sh = nseq (sumn sh) 1.
+Lemma colpartnP x0 d (la : 'P_d) : head x0 la <= 1 -> la = colpartn d.
+ +
+Lemma conj_rowpartn d : conj_intpartn (rowpartn d) = colpartn d.
+ Lemma conj_colpartn d : conj_intpartn (colpartn d) = rowpartn d.
+ +
+
+ +
+

Hook shaped partitions

+ +
+
+ +
+Definition hookpart d k :=
+  if d is d'.+1 then minn d'.+1 k.+1 :: nseq (d' - k) 1%N else [::].
+Fact hookpartn_subproof d k : is_part_of_n d (hookpart d k).
+Definition hookpartn d k : 'P_d :=
+  locked (IntPartN (hookpartn_subproof d k)).
+ +
+Lemma hookpartnE d k :
+  k < d -> (hookpartn d k) = k.+1 :: nseq (d.-1 - k) 1%N :> seq nat.
+ +
+Lemma size_hookpartn d k : k < d -> size (hookpartn d k) = d - k.
+ +
+Lemma behead_hookpartn d k : behead (hookpartn d k) = nseq (d.-1 - k) 1%N.
+ +
+Lemma hookpartn_col d : hookpartn d 0 = colpartn d.
+Lemma hookpartn_row d : hookpartn d d.-1 = rowpartn d.
+Lemma conj_hookpartn d k :
+  k < d -> conj_intpartn (hookpartn d k) = hookpartn d (d.-1 - k).
+ +
+Lemma sorted_geq_count_leq2E (s : seq nat) :
+  sorted geq s -> (count (leq 2) s <= 1) = (nth 0 s 1 <= 1).
+ +
+Lemma sorted_geq_nth0E (s : seq nat) :
+  sorted geq s -> nth 0 s 0 = \max_(i <- s) i.
+ +
+Lemma intpartn_count_leq2E d (la : 'P_d) :
+  (count (leq 2) la <= 1) = (nth 0 la 1 <= 1).
+Lemma intpartn_nth0 d (la : 'P_d) :
+  nth 0 la 0 = \max_(i <- la) i.
+ +
+Lemma hookpartnPE x0 x1 d (la : 'P_d) :
+  nth x0 la 1 <= 1 -> la = hookpartn d (nth x1 la 0).-1.
+ +
+Lemma hookpartnP d (la : 'P_d.+1) :
+  reflect (exists k, k < d.+1 /\ la = hookpartn d.+1 k) (nth 0 la 1 <= 1).
+ +
+Lemma intpartn0 : all_equal_to (rowpartn 0).
+ +
+Lemma intpartn1 : all_equal_to (rowpartn 1).
+ +
+Lemma intpartn2 (sh : 'P_2) : sh = rowpartn 2 \/ sh = colpartn 2.
+ +
+Lemma intpartn3 (sh : 'P_3) :
+  [\/ sh = rowpartn 3, sh = hookpartn 3 1 | sh = colpartn 3].
+ +
+
+ +
+

Removing a corner from a partition

+ +
+
+ +
+Lemma is_part_decr_nth_part (p : intpart) i :
+  is_part (if is_rem_corner p i then decr_nth p i else p).
+ +
+Definition decr_nth_intpart (p : intpart) i : intpart :=
+  IntPart (is_part_decr_nth_part p i).
+ +
+Lemma decr_nth_intpartE (p : intpart) i :
+  is_rem_corner p i -> decr_nth_intpart p i = decr_nth p i :> seq nat.
+ +
+Lemma intpart_rem_corner_ind (F : intpart -> Type) :
+  F empty_intpart ->
+  (forall p : intpart,
+      (forall i, is_rem_corner p i -> F (decr_nth_intpart p i)) -> F p) ->
+  forall p : intpart, F p.
+ +
+Lemma part_rem_corner_ind (F : seq nat -> Type) :
+  F [::] ->
+  (forall p, is_part p ->
+             (forall i, is_rem_corner p i -> F (decr_nth p i)) -> F p) ->
+  forall p, is_part p -> F p.
+ +
+
+ +
+

Lexicographic order on partitions of a fixed sum

+ +
+
+ +
+Module IntPartNLexi.
+Section IntPartNLexi.
+Import DefaultSeqLexiOrder.
+ +
+Variable d : nat.
+Definition intpartnlexi := 'P_d.
+#[local] Notation "'PLexi" := intpartnlexi.
+Implicit Type (sh : 'PLexi).
+ +
+#[export] HB.instance Definition _ := SubType.copy 'PLexi 'P_d.
+#[export] HB.instance Definition _ := Finite.copy 'PLexi 'P_d.
+#[export] HB.instance Definition _ := [Order of 'PLexi by <:].
+ +
+Lemma leEintpartnlexi sh1 sh2 :
+  (sh1 <= sh2)%O = (sh1 <= sh2 :> seqlexi nat)%O.
+ Lemma ltEintpartnlexi sh1 sh2 :
+  (sh1 < sh2)%O = (sh1 < sh2 :> seqlexi nat)%O.
+ +
+Lemma rowpartn_top sh : (sh <= rowpartn d :> 'PLexi)%O.
+Lemma colpartn_bot sh : (colpartn d <= sh :> 'PLexi)%O.
+ +
+#[export] HB.instance Definition _ :=
+  Order.hasBottom.Build _ 'PLexi colpartn_bot.
+#[export] HB.instance Definition _ :=
+  Order.hasTop.Build _ 'PLexi rowpartn_top.
+#[export] HB.instance Definition _ :=
+  isInhabitedType.Build 'PLexi (rowpartn d).
+ +
+Lemma botEintpartnlexi : \bot%O = colpartn d :> 'PLexi.
+ Lemma topEintpartnlexi : \top%O = rowpartn d :> 'PLexi.
+ +
+End IntPartNLexi.
+ +
+Module Exports.
+ +
+Notation "''PLexi_' n" := (intpartnlexi n).
+ +
+Definition leEintpartnlexi := leEintpartnlexi.
+Definition ltEintpartnlexi := ltEintpartnlexi.
+Definition botEintpartnlexi := botEintpartnlexi.
+Definition topEintpartnlexi := topEintpartnlexi.
+ +
+End Exports.
+End IntPartNLexi.
+ +
+
+ +
+

Counting functions

+ +
+
+ +
+Fixpoint intpartnsk_nb sm sz mx : nat :=
+  if sz is sz.+1 then
+    
+    iteri (minn sm mx) (fun i n => n + intpartnsk_nb (sm - i.+1) sz i.+1) 0
+  else if sm is sm.+1 then 0 else 1.
+Definition intpartns_nb sm sz := intpartnsk_nb sm sz sm.
+Definition intpartn_nb sm :=
+  iteri (sm.+1) (fun sz n => n + intpartns_nb sm sz) 0.
+ +
+Lemma size_enum_partnsk sm sz mx :
+  size (enum_partnsk sm sz mx) = (intpartnsk_nb sm sz mx).
+ +
+Lemma size_enum_partns sm sz : size (enum_partns sm sz) = (intpartns_nb sm sz).
+ +
+Lemma size_enum_partn sm : size (enum_partn sm) = intpartn_nb sm.
+ +
+Lemma card_intpartn sm : #|{: 'P_sm}| = intpartn_nb sm.
+ +
+#[export] Hint Resolve intpartP intpart_sorted intpartnP intpartn_sorted : core.
+ +
+
+ +
+

A finite type finType for coordinate of boxes inside a shape

+ +
+
+Section BoxInSkew.
+ +
+Variable inner outer : seq nat.
+ +
+Structure box_skew : Set :=
+  BoxSkew {box_skewval :> nat * nat; _ : in_skew inner outer box_skewval}.
+ +
+ +
+Lemma box_skewP (rc : box_skew) : in_skew inner outer rc.
+ +
+Definition enum_box_skew :=
+  [seq (r, c) | r <- iota 0 (size outer),
+                c <- iota (nth 0 inner r) (nth 0 outer r - nth 0 inner r)].
+ +
+Lemma enum_box_skew_uniq : uniq enum_box_skew.
+ +
+Lemma mem_enum_box_skew : enum_box_skew =i in_skew inner outer.
+ +
+ +
+Lemma enum_box_skewE : map val (enum {: box_skew}) = enum_box_skew.
+ +
+Lemma card_box_skew : #|{: box_skew}| = sumn (outer / inner).
+ +
+
+ +
+

Rewriting bigops running along the boxes of a shape

+ +
+
+Lemma big_box_skew R (idx : R) (op : Monoid.com_law idx) (f : nat * nat -> R):
+  \big[op/idx]_(b : box_skew) f b = \big[op/idx]_(b <- enum_box_skew) f b.
+ +
+Lemma big_box_skew2 R (idx : R) (op : Monoid.com_law idx) (f : nat -> nat -> R):
+  \big[op/idx]_(b : box_skew) f b.1 b.2 =
+  \big[op/idx]_(b <- enum_box_skew) f b.1 b.2.
+ +
+Lemma big_enum_box_skew
+      (R : Type) (idx : R) (op : Monoid.law idx) (f : nat -> nat -> R):
+  \big[op/idx]_(b <- enum_box_skew) f b.1 b.2 =
+  \big[op/idx]_(0 <= r < size outer)
+   \big[op/idx]_(nth 0 inner r <= c < nth 0 outer r) f r c.
+ +
+End BoxInSkew.
+#[export] Hint Resolve box_skewP : core.
+ +
+Notation box_in := (box_skew [::]).
+Notation enum_box_in := (enum_box_skew [::]).
+ +
+Lemma BoxIn_subproof sh rc : in_shape sh rc -> in_skew [::] sh rc.
+ Definition BoxIn sh rc (rc_sh : in_shape sh rc) : box_in sh :=
+  BoxSkew (BoxIn_subproof rc_sh).
+ +
+Lemma box_inP sh (rc : box_in sh) : in_shape sh rc.
+ +
+Lemma big_enum_box_in sh
+      (R : Type) (idx : R) (op : Monoid.law idx) (f : nat -> nat -> R):
+  \big[op/idx]_(b <- enum_box_in sh ) f b.1 b.2 =
+  \big[op/idx]_(0 <= r < size sh)
+   \big[op/idx]_(0 <= c < nth 0 sh r) f r c.
+ +
+Lemma card_box_in sh : #|{: box_in sh}| = sumn sh.
+ +
+Lemma enum_box_in_uniq sh : uniq (enum_box_in sh).
+ +
+Lemma mem_enum_box_in sh : enum_box_in sh =i in_shape sh.
+ +
+
+ +
+

Adding a box to a shape

+ +
+
+Lemma box_in_incr_nth sh i :
+  perm_eq ((i, nth 0 sh i) :: enum_box_in sh) (enum_box_in (incr_nth sh i)).
+ +
+
+ +
+

The union of two integer partitions

+ +
+
+ +
+Lemma merge_is_part l k :
+  is_part l -> is_part k -> is_part (merge geq l k).
+ +
+Lemma merge_sortedE l k :
+  is_part l -> is_part k -> merge geq l k = sort geq (l ++ k).
+ +
+Lemma sumn_union_part l k : sumn (merge geq l k) = sumn l + sumn k.
+ +
+Fact union_intpart_subproof (l : intpart) (k : intpart) :
+  is_part (merge geq l k).
+ Definition union_intpart (l : intpart) (k : intpart) :=
+  IntPart (union_intpart_subproof l k).
+ +
+Lemma union_intpartE l k : val (union_intpart l k) = sort geq (l ++ k).
+ +
+Lemma perm_union_intpart l k : perm_eq (union_intpart l k) (l ++ k).
+ +
+Lemma union_intpartC l k : union_intpart l k = union_intpart k l.
+ +
+Lemma union_intpartA l k j :
+  union_intpart l (union_intpart k j) = union_intpart (union_intpart k l) j.
+ +
+Section UnionPart.
+ +
+Variables (m n : nat) (l : 'P_m) (k : 'P_n).
+ +
+Lemma union_intpartn_subproof : is_part_of_n (m + n) (merge geq l k).
+Definition union_intpartn := IntPartN union_intpartn_subproof.
+ +
+Lemma union_intpartnE : val union_intpartn = sort geq (l ++ k).
+ +
+Lemma perm_union_intpartn : perm_eq union_intpartn (l ++ k).
+ +
+End UnionPart.
+ +
+Notation "a +|+ b" := (union_intpartn a b) (at level 50) : Combi_scope.
+Bind Scope Combi_scope with intpartn.
+ +
+Section IntpartnCons.
+ +
+Import LeqGeqOrder.
+ +
+Variables (d l0 : nat) (la : seq nat).
+Hypotheses (Hla : is_part_of_n d la)
+           (Hlla : is_part_of_n (l0 + d)%N (l0 :: la)).
+ +
+Lemma intpartn_cons : IntPartN Hlla = rowpartn l0 +|+ IntPartN Hla.
+ +
+End IntpartnCons.
+ +
+
+ +
+

Young lattice on partition

+ +
+
+Module YoungLattice.
+Section YoungLattice.
+ +
+Definition intpartYoung := intpart.
+#[local] Notation "'YL" := intpartYoung.
+Implicit Type (p q sh : 'YL).
+ +
+Definition le_Young p q := included p q.
+Fact le_Young_refl : reflexive le_Young.
+ Fact le_Young_trans : transitive le_Young.
+ Fact le_Young_anti : antisymmetric le_Young.
+#[export] HB.instance Definition _ := Countable.copy 'YL intpart.
+#[export] HB.instance Definition _ := Inhabited.copy 'YL intpart.
+ +
+Fact Young_display : Order.disp_t.
+#[export] HB.instance Definition _ :=
+  Order.Le_isPOrder.Build
+    Young_display 'YL le_Young_refl le_Young_anti le_Young_trans.
+ +
+Lemma le_YoungE sh1 sh2 : (sh1 <= sh2)%O = (included sh1 sh2).
+ Lemma le_YoungP sh1 sh2 :
+  reflect (forall i, nth 0 sh1 i <= nth 0 sh2 i) (sh1 <= sh2)%O.
+ +
+Lemma le_Young_sumn: {homo (fun x : 'YL => sumn x) : x y / (x <= y)%O }.
+ Lemma lt_Young_sumn: {homo (fun x : 'YL => sumn x) : x y / (x < y)%O }.
+ +
+Definition meet_Young_fun sh1 sh2 := [seq minn a.1 a.2 | a <- zip sh1 sh2].
+Lemma size_meet_Young sh1 sh2 :
+  size (meet_Young_fun sh1 sh2) = minn (size sh1) (size sh2).
+ Lemma nth_meet_Young sh1 sh2 i :
+  nth 0 (meet_Young_fun sh1 sh2) i = minn (nth 0 sh1 i) (nth 0 sh2 i).
+ +
+Fact meet_Young_subproof sh1 sh2 : is_part (meet_Young_fun sh1 sh2).
+Definition meet_Young sh1 sh2 : 'YL := IntPart (meet_Young_subproof sh1 sh2).
+ +
+Lemma meet_YoungC : commutative meet_Young.
+ +
+Lemma meet_Young_le sh1 sh2 : (meet_Young sh1 sh2 <= sh1)%O.
+ +
+Fact meet_YoungP sh sh1 sh2 :
+  (sh <= meet_Young sh1 sh2)%O = (sh <= sh1)%O && (sh <= sh2)%O.
+ +
+Definition join_Young_fun sh1 sh2 :=
+  [seq maxn a.1 a.2 | a <- zip (pad 0 (maxn (size sh1) (size sh2)) sh1)
+                               (pad 0 (maxn (size sh1) (size sh2)) sh2)].
+ +
+Lemma size_join_Young sh1 sh2 :
+  size (join_Young_fun sh1 sh2) = maxn (size sh1) (size sh2).
+ +
+Lemma nth_join_Young sh1 sh2 i :
+  nth 0 (join_Young_fun sh1 sh2) i = maxn (nth 0 sh1 i) (nth 0 sh2 i).
+ +
+Fact join_Young_subproof sh1 sh2 : is_part (join_Young_fun sh1 sh2).
+Definition join_Young sh1 sh2 : 'YL := IntPart (join_Young_subproof sh1 sh2).
+ +
+Lemma join_Young_le sh1 sh2 : (sh1 <= join_Young sh1 sh2)%O.
+ +
+Lemma join_YoungC : commutative join_Young.
+ +
+Fact join_YoungP sh1 sh2 sh :
+  (join_Young sh1 sh2 <= sh)%O = (sh1 <= sh)%O && (sh2 <= sh)%O.
+#[export] HB.instance Definition _ :=
+  Order.POrder_MeetJoin_isLattice.Build
+    Young_display 'YL meet_YoungP join_YoungP.
+ +
+Fact emptypart_bottom sh : (empty_intpart <= sh :> 'YL)%O.
+ +
+Lemma bottom_YoungE : \bot%O = empty_intpart :> 'YL.
+ +
+Fact Young_meetUl : @left_distributive 'YL 'YL Order.meet Order.join.
+#[export] HB.instance Definition _ :=
+  Order.Lattice_Meet_isDistrLattice.Build Young_display 'YL Young_meetUl.
+ +
+End YoungLattice.
+ +
+Module Exports.
+ +
+Implicit Type (p q : intpartYoung).
+ +
+Notation intpartYoung := intpartYoung.
+Definition le_YoungE := le_YoungE.
+Definition le_YoungP := le_YoungP.
+Definition le_Young_sumn := le_Young_sumn.
+Definition lt_Young_sumn := lt_Young_sumn.
+ +
+Lemma meet_YoungE p q :
+  (p `&` q)%O = [seq minn a.1 a.2 | a <- zip p q] :> seq nat.
+ Lemma nth_meet_Young p q i :
+  nth 0 (p `&` q)%O i = minn (nth 0 p i) (nth 0 q i).
+ Lemma size_meet_Young p q : size (p `&` q)%O = minn (size p) (size q).
+ +
+Lemma join_YoungE p q :
+  (p `|` q)%O =
+    [seq maxn a.1 a.2 | a <- zip (pad 0 (maxn (size p) (size q)) p)
+                                 (pad 0 (maxn (size p) (size q)) q)] :> seq nat.
+ Lemma nth_join_Young p q i :
+  nth 0 (p `|` q)%O i = maxn (nth 0 p i) (nth 0 q i).
+ Lemma size_join_Young p q : size (p `|` q)%O = maxn (size p) (size q).
+ +
+Definition bottom_YoungE := bottom_YoungE.
+ +
+End Exports.
+End YoungLattice.
+ +
+
+ +
+

Dominance order on partition

+ +
+
+Definition partdomsh n1 n2 (s1 s2 : seq nat) :=
+  all
+    (fun i => n1 + sumn (take i s1) <= n2 + sumn (take i s2))
+    (iota 0 (size s1).+1).
+Definition partdom := partdomsh 0 0.
+ +
+Lemma partdomshP {n1 n2 s1 s2} :
+  reflect (forall i, n1 + sumn (take i s1) <= n2 + sumn (take i s2))
+          (partdomsh n1 n2 s1 s2).
+ +
+Lemma partdomP s1 s2 :
+  reflect (forall i, sumn (take i s1) <= sumn (take i s2)) (partdom s1 s2).
+ +
+Lemma partdomsh_add y n1 n2 s1 s2 :
+  partdomsh (y + n1) (y + n2) s1 s2 = partdomsh n1 n2 s1 s2.
+ +
+Lemma partdom_nil s : partdom [::] s.
+ +
+Lemma partdom_refl : reflexive partdom.
+ +
+#[export] Hint Resolve partdom_nil partdom_refl : core.
+ +
+Lemma partdom_trans : transitive partdom.
+ +
+Lemma partdom_anti s1 s2 :
+  is_part s1 -> is_part s2 -> partdom s1 s2 -> partdom s2 s1 -> s1 = s2.
+ +
+Lemma partdomsh_cons2 y1 y2 s t n1 n2 :
+  partdomsh n1 n2 (y1 :: s) (y2 :: t) =
+  (n1 <= n2) && (partdomsh (n1 + y1) (n2 + y2) s t).
+ +
+Lemma partdomsh_cons2E y s t n1 n2 :
+  partdomsh n1 n2 (y :: s) (y :: t) = partdomsh n1 n2 s t.
+ +
+Lemma partdom_consK x s1 s2 : partdom (x :: s1) (x :: s2) -> partdom s1 s2.
+ +
+Lemma sumn_take_merge t x i :
+  is_part t ->
+  sumn (take i.+1 (merge geq [:: x] t)) =
+  maxn (sumn (take i.+1 t)) (x + sumn (take i t)).
+ +
+Lemma merge_cons x s t :
+  is_part (x :: s) -> is_part t ->
+  merge geq (x :: s) t = merge geq [:: x] (merge geq s t).
+ +
+Lemma partdomsh_merge1 n1 n2 x t1 t2 :
+  is_part t1 -> is_part t2 ->
+  partdomsh n1 n2 t1 t2 ->
+  partdomsh n1 n2 (merge geq [:: x] t1) (merge geq [:: x] t2).
+ +
+Lemma partdomsh_merge n1 n2 s t1 t2 :
+  is_part s -> is_part t1 -> is_part t2 ->
+  partdomsh n1 n2 t1 t2 ->
+  partdomsh n1 n2 (merge geq s t1) (merge geq s t2).
+ +
+Lemma partdom_union_intpartl (s t1 t2 : intpart) :
+  partdom t1 t2 -> partdom (union_intpart s t1) (union_intpart s t2).
+ +
+Lemma partdom_union_intpartr (s t1 t2 : intpart) :
+  partdom t1 t2 -> partdom (union_intpart t1 s) (union_intpart t2 s).
+ +
+Lemma partdom_union_intpart (s1 s2 t1 t2 : intpart) :
+  partdom s1 s2 -> partdom t1 t2 ->
+  partdom (union_intpart s1 t1) (union_intpart s2 t2).
+ +
+Module IntPartNDom.
+Section IntPartNDom.
+ +
+Variable d : nat.
+Definition intpartndom := 'P_d.
+#[local] Notation "'PDom" := intpartndom.
+Implicit Type (sh : 'PDom).
+ +
+#[export] HB.instance Definition _ := Finite.copy 'PDom 'P_d.
+#[export] HB.instance Definition _ := Inhabited.copy 'PDom 'P_d.
+ +
+Fact partdom_antisym : antisymmetric (fun x y : 'P_d => partdom x y).
+ +
+Lemma partdom_display : Order.disp_t.
+#[export] HB.instance Definition _ :=
+  Order.Le_isPOrder.Build partdom_display 'PDom
+    partdom_refl partdom_antisym partdom_trans.
+ +
+Lemma leEpartdom : @Order.le partdom_display 'PDom = partdom.
+ +
+#[local] Notation "sh '^#'" := (conj_intpartn sh : 'PDom)
+                              (at level 10, format "sh '^#'").
+ +
+Lemma sum_diff sh i :
+  \sum_(l <- sh) (l - i) =
+    \sum_(l <- take (nth 0 (conj_part sh) i) sh) (l - i).
+ +
+Lemma partdom_conj_intpartn sh1 sh2 : (sh2^# <= sh1^#)%O = (sh1 <= sh2)%O.
+ +
+Lemma take_intpartn_over sh i : d <= i -> take i sh = sh.
+ +
+Implicit Type t : d.+1.-tuple nat.
+ +
+Definition parttuple sh := [tuple sumn (take i sh) | i < d.+1].
+Definition from_parttuple t :=
+  rem_trail0 [seq nth 0 t i.+1 - nth 0 t i | i <- iota 0 d].
+Definition is_parttuple t :=
+  [&& tnth t ord0 == 0, tnth t ord_max == d, sorted leq t &
+      all (fun i => (nth 0 t i).*2 >= nth 0 t i.-1 + nth 0 t i.+1)
+          (iota 1 d.-1)].
+ +
+Lemma is_parttupleP t :
+  reflect
+    [/\ tnth t ord0 = 0, tnth t ord_max = d, sorted leq t &
+      forall i, 0 < i < d -> (nth 0 t i).*2 >= nth 0 t i.-1 + nth 0 t i.+1]
+    (is_parttuple t).
+ +
+Lemma nth_parttuple i sh :
+  i < d.+1 -> nth 0 (parttuple sh) i = sumn (take i sh).
+ +
+Lemma parttupleP sh : is_parttuple (parttuple sh).
+ +
+Lemma sum_diff_tuple t :
+  sorted leq t ->
+  forall i, i < d.+1 ->
+    \sum_(0 <= j < i) (nth 0 t j.+1 - nth 0 t j) = nth 0 t i - nth 0 t 0.
+ +
+Lemma from_parttupleP t : is_parttuple t -> is_part_of_n d (from_parttuple t).
+Definition part_fromtuple t (H : is_parttuple t) :=
+  IntPartN (from_parttupleP H).
+ +
+Lemma sumn_take_part_fromtuple t (H : is_parttuple t) i :
+  i < d.+1 -> sumn (take i (part_fromtuple H)) = nth 0 t i.
+Lemma from_parttupleK t (H : is_parttuple t) :
+  parttuple (part_fromtuple H) = t.
+ +
+Lemma parttupleK sh : from_parttuple (parttuple sh) = sh.
+Lemma parttuplePK sh : part_fromtuple (parttupleP sh) = sh.
+ +
+Definition parttuple_minn sh1 sh2 :=
+  [tuple minn (tnth (parttuple sh1) i) (tnth (parttuple sh2) i) | i < d.+1].
+ +
+Lemma parttuple_minnC sh1 sh2 :
+  parttuple_minn sh1 sh2 = parttuple_minn sh2 sh1.
+ +
+Lemma nth_parttuple_minn i sh1 sh2 :
+  i < d.+1 -> nth 0 (parttuple_minn sh1 sh2) i =
+              minn (sumn (take i sh1)) (sumn (take i sh2)).
+ +
+Lemma double_minn m n : (minn m n).*2 = minn m.*2 n.*2.
+ +
+Lemma parttuple_minnP sh1 sh2 : is_parttuple (parttuple_minn sh1 sh2).
+Definition meet_intpartn sh1 sh2 : 'PDom :=
+  IntPartN (from_parttupleP (parttuple_minnP sh1 sh2)).
+Definition join_intpartn sh1 sh2 := (meet_intpartn (sh1^#) (sh2^#))^#.
+ +
+Lemma meet_intpartnC sh1 sh2 : meet_intpartn sh1 sh2 = meet_intpartn sh2 sh1.
+ +
+Lemma le_meet_intpartn sh1 sh2 : (meet_intpartn sh1 sh2 <= sh1)%O.
+ +
+Fact meet_intpartnP sh sh1 sh2 :
+  (sh <= meet_intpartn sh1 sh2)%O = (sh <= sh1)%O && (sh <= sh2)%O.
+Fact join_intpartnP sh1 sh2 sh :
+  (join_intpartn sh1 sh2 <= sh)%O = (sh1 <= sh)%O && (sh2 <= sh)%O.
+#[export] HB.instance Definition _ :=
+  Order.POrder_MeetJoin_isLattice.Build partdom_display
+    'PDom meet_intpartnP join_intpartnP.
+ +
+Lemma sumn_take_pardom_meet i sh1 sh2 :
+  sumn (take i (sh1 `&` sh2)%O) = minn (sumn (take i sh1)) (sumn (take i sh2)).
+ +
+Lemma join_intpartnE sh1 sh2 : (sh1 `|` sh2)%O = (sh1^# `&` sh2^#)%O^#.
+ +
+End IntPartNDom.
+Section IntPartNTopBottom.
+ +
+Variable d : nat.
+#[local] Notation "'PDom" := (intpartndom d).
+Implicit Type (sh : 'PDom).
+ +
+Lemma partdom_rowpartn sh : (sh <= rowpartn d)%O.
+ +
+Lemma partdom_colpartn sh : (colpartn d <= sh :> 'PDom)%O.
+ +
+#[export] HB.instance Definition _ :=
+  Order.hasBottom.Build partdom_display 'PDom partdom_colpartn.
+#[export] HB.instance Definition _ :=
+  Order.hasTop.Build partdom_display 'PDom partdom_rowpartn.
+ +
+Lemma botEintpartndom : \bot%O = colpartn d :> 'PDom.
+ Lemma topEintpartndom : \top%O = rowpartn d :> 'PDom.
+ +
+End IntPartNTopBottom.
+ +
+Module Exports.
+ +
+Notation "''PDom_' n" := (intpartndom n).
+ +
+Definition leEpartdom := leEpartdom.
+Definition partdom_conj_intpartn := partdom_conj_intpartn.
+Definition sumn_take_pardom_meet := sumn_take_pardom_meet.
+Definition join_intpartnE := join_intpartnE.
+Definition botEintpartndom := botEintpartndom.
+Definition topEintpartndom := topEintpartndom.
+ +
+End Exports.
+End IntPartNDom.
+ +
+Lemma le_intpartndomlexi d :
+  {homo (id : 'PDom_d -> 'PLexi_d) : x y / (x <= y)%O}.
+Lemma lt_intpartndomlexi d :
+  {homo (id : 'PDom_d -> 'PLexi_d) : x y / (x < y)%O}.
+ +
+
+ +
+

Shape of set partitions and integer partitions

+ +
+
+Section SetPartitionShape.
+ +
+Variable T : finType.
+Implicit Types (A B X : {set T}) (P Q : {set {set T}}).
+ +
+Lemma count_set_of_card (p : pred nat) P :
+  count p [seq #{x} | x in P] = #|P :&: [set x | p #{x}]|.
+ +
+Definition setpart_shape P := sort geq [seq #{X} | X in P].
+ +
+Lemma setpart_shapeP P D :
+  partition P D -> is_part_of_n #|D| (setpart_shape P).
+ +
+Lemma ex_subset_card B k :
+  k <= #{B} -> exists2 A : {set T}, A \subset B & #{A} == k.
+ +
+Lemma ex_setpart_shape (s : seq nat) (A : {set T}) :
+  sumn s = #|A| -> 0 \notin s ->
+  exists P : seq {set T},
+    [/\ uniq P, partition [set X in P] A & [seq #{X} | X <- P] = s].
+ +
+Lemma ex_set_setpart_shape A (sh : 'P_#|A|) :
+  exists2 P, partition P A & setpart_shape P = sh.
+ +
+Lemma setpart_shape_union P Q :
+  [disjoint P & Q] ->
+  setpart_shape (P :|: Q) = sort geq (setpart_shape P ++ setpart_shape Q).
+ +
+End SetPartitionShape.
+ +
+Lemma setpart_shape_imset
+      (T1 T2 : finType) (f : T1 -> T2) (A : {set {set T1}}) :
+  injective f ->
+  setpart_shape [set f @: x | x : {set T1} in A] = setpart_shape A.
+
+
+ + + +
+ + + \ No newline at end of file diff --git a/combi/1.1.0/Combi.Combi.permuted.html b/combi/1.1.0/Combi.Combi.permuted.html new file mode 100644 index 00000000..9d47298a --- /dev/null +++ b/combi/1.1.0/Combi.Combi.permuted.html @@ -0,0 +1,294 @@ + + + + + +Combi.Combi.permuted: Listing the Permutations of a tuple or seq + + + + +
+ + + +
+ +

Library Combi.Combi.permuted: Listing the Permutations of a tuple or seq

+ +
+
+ +
+ +
+
+
+ +
+

The list of the permuted tuple of a given tuple

+ + +
+ +The main goal is to show that, given a sequence s over an eqType there +are only finitely many sequences s' which are a permutation of s (that is +perm_eq s s') and to show that the number is a multinomial coefficient. + +
+ +
    +
  • permuted_tuple t == a sequence of tuples containing (with duplicates) all + tuple t' such that perm_eq t t' + +
  • +
  • permuted_seq s == a sequence of seqs containing (with duplicates) all seqs + s' such that perm_eq s s' + +
  • +
  • permuted t == sigma typle for tuple t' such that perm_eq t t'. this + is canonically a fintype, provided the type of the elements of + t is a countType. + +
    + + +
  • +
  • permutedact t s == the n tuple t permuted by the permutation s + +
  • +
  • permuted_action == the corresponding action of the symmetric group 'S_n + +
  • +
+ +
+ +The main result is the cardinality of the set of permuted of a tuple expressed +as a multinomial card_permuted_multinomial. + +
+
+From HB Require Import structures.
+From mathcomp Require Import all_boot.
+From mathcomp Require Import perm fingroup action gproduct.
+ +
+Require Import tools combclass sorted partition composition multinomial.
+Require Import permcomp cycles.
+ +
+Set Implicit Arguments.
+ +
+
+ +
+

Enumeration of the permutation of a tuple

+ +
+
+Section Permuted.
+ +
+Variable T : eqType.
+ +
+Section SizeN.
+ +
+Variable n : nat.
+ +
+Definition permuted_tuple (t : n.-tuple T) :=
+  [seq [tuple tnth t (aperm i p) | i < n] | p : 'S_n ].
+ +
+Lemma size_permuted_tuple (t : n.-tuple T) : size (permuted_tuple t) = n`!.
+ +
+Lemma perm_eq_permuted_tuple (s : seq T) (H : size s == n) :
+  forall s1, perm_eq s s1 ->
+             s1 \in [seq tval t | t <- permuted_tuple (Tuple H)].
+ +
+Lemma mem_enum_permuted (s t : n.-tuple T) :
+  perm_eq s t -> t \in permuted_tuple s.
+ +
+Lemma all_permuted (s : n.-tuple T) :
+  all (fun x : n.-tuple T => perm_eq s x) (permuted_tuple s).
+ +
+End SizeN.
+ +
+Definition permuted_seq s :=
+  [seq tval t | t <- permuted_tuple (Tuple (eq_refl (size s)))].
+ +
+Lemma size_permuted_seq s : size (permuted_seq s) = (size s)`!.
+ +
+Lemma eq_seqE s s1 : perm_eq s s1 -> s1 \in permuted_seq s.
+ +
+End Permuted.
+ +
+
+ +
+

Permutation of a tuple as a fintype

+ +
+
+Section FinType.
+ +
+Variable T : countType.
+Variable n : nat.
+Variable w : n.-tuple T.
+ +
+Structure permuted : predArgType :=
+  Permuted { tpval :> n.-tuple T; _ : perm_eq w tpval }.
+ +
+ +
+Lemma permutedP (p : permuted) : perm_eq w p.
+ +
+End FinType.
+ +
+#[export] Hint Resolve permutedP : core.
+ +
+Import GroupScope.
+ +
+
+ +
+

Action of 'S_n on permuted for and n.-tuple T.

+ + +
+ +There is no use defining an action on general tuple because most of the lemmas +on actions assume that the type acted upon is a finType. We could require +moreover that the underlying type is a fintype so that the set of tuple is a +fintype too, but the use we have in mind is T = nat allowing to deal with +the action on monomials. Instead of that, we decide to act only on the sigma +type permuted. + +
+
+ +
+Section ActOnTuple.
+ +
+Variables (T : countType) (n : nat) (w : n.-tuple T).
+Implicit Type (t : permuted w).
+ +
+#[local] Notation wp := (Permuted (perm_refl w)).
+ +
+Lemma permutedact_subproof t (s : 'S_n) :
+  perm_eq w [tuple tnth t (s^-1 i) | i < n].
+Definition permutedact t s := Permuted (permutedact_subproof t s).
+ +
+#[local] Notation "t # s" := (permutedact t s)
+  (at level 40, left associativity, format "t # s").
+ +
+Lemma permutedact_is_action : is_action [set: 'S_n] permutedact.
+Canonical permuted_action := Action permutedact_is_action.
+#[local] Notation pact := permuted_action.
+ +
+Lemma permuted_action_trans :
+  [transitive [set: 'S_n], on [set: permuted w] | pact].
+ +
+
+ +
+

The stabilizer of a tuple under permutation

+ +
+
+Lemma stab_tuple_prod :
+  'C[wp | pact] =
+  (\prod_(x : seq_sub w) Sym_group [set i | tnth w i == val x])%G.
+ +
+Lemma stab_tuple_dprod :
+  'C[wp | pact] =
+  \big[dprod/1]_(x : seq_sub w) Sym [set i | tnth w i == val x].
+ +
+Close Scope group_scope.
+ +
+Lemma card_stab_tuple :
+  #|('C[wp | pact])%G| = \prod_(x : seq_sub w) (count_mem (val x) w)`!.
+ +
+Lemma card_permuted_prod :
+  #|[set: permuted w]| * \prod_(x : seq_sub w) (count_mem (val x) w)`! = n`!.
+ +
+Lemma dvdn_card_permuted :
+  \prod_(x : seq_sub w) (count_mem (val x) w)`! %| n`!.
+ +
+Lemma card_permuted_seq_sub :
+  #|[set: permuted w]| = n`! %/ \prod_(x : seq_sub w) (count_mem (val x) w)`!.
+ +
+Lemma card_permuted :
+  #|[set: permuted w]| = n`! %/ \prod_(x <- undup w) (count_mem x w)`!.
+ +
+Lemma size_count_mem_undup (s : seq T) :
+  size s = \sum_(j <- undup s) count_mem j s.
+ +
+Theorem card_permuted_multinomial :
+  #|[set: permuted w]| = 'C[[seq count_mem x w | x <- undup w]].
+ +
+Corollary card_permuted_multinomial_subset (s : seq T) :
+  {subset w <= s} -> uniq s ->
+  #|[set: permuted w]| = 'C[[seq count_mem x w | x <- s]].
+ +
+End ActOnTuple.
+ +
+Require Import sorted.
+Import LeqGeqOrder.
+ +
+Lemma card_preim_part_of_compn n (sh : 'P_n) :
+  #|[set c | partn_of_compn c == sh]| =
+  (size sh)`! %/ \prod_(i <- iota 1 n) (count_mem i sh)`!.
+
+
+ + + +
+ + + \ No newline at end of file diff --git a/combi/1.1.0/Combi.Combi.setpartition.html b/combi/1.1.0/Combi.Combi.setpartition.html new file mode 100644 index 00000000..88d5db3f --- /dev/null +++ b/combi/1.1.0/Combi.Combi.setpartition.html @@ -0,0 +1,405 @@ + + + + + +Combi.Combi.setpartition: Set Partitions + + + + +
+ + + +
+ +

Library Combi.Combi.setpartition: Set Partitions

+ +
+
+ +
+ +
+
+
+ +
+

Set Partitions and refinment lattice

+ + +
+ +In what follows T is a finType and S : {set T}. + +
+ +
    +
  • setpart S == a sigma type for partition of S. setpart S bears a + canonical structure of an inhabited finite lattice type. + +
  • +
  • setpart1 S == the partition of S made only of singleton + +
  • +
  • trivsetpart S == the partition whose only block is S itself + if S is non empty + +
  • +
  • setpart_set0 T == the trivial empty partition of set0 in setpart set0 + +
  • +
  • setpart_set1 x == the trivial partition of [set x] in setpart [set x] + +
    + + +
  • +
  • join_finer_eq P Q == the equivalence relation obtained as the join of + the one of P and Q. + + +
  • +
+
+
+From HB Require Import structures.
+From mathcomp Require Import all_boot order.
+From mathcomp Require Import div ssralg ssrint ssrnum binomial.
+Require Import tools combclass sorted ordtype partition.
+ +
+Set Implicit Arguments.
+ +
+Import LeqGeqOrder.
+Import Order.TTheory.
+ +
+Lemma pblock_in (T : finType) (P : {set {set T}}) (x : T) :
+  set0 \notin P -> (pblock P x \in P) = (x \in cover P).
+ +
+Lemma mem_pblockC (T : finType) (P : {set {set T}}) :
+  trivIset P -> forall x y : T, (x \in pblock P y) = (y \in pblock P x).
+ +
+Lemma equivalence_partitionE (T : finType) (R S : rel T) (D : {set T}) :
+  R =2 S -> equivalence_partition R D = equivalence_partition S D.
+ +
+Section Defs.
+ +
+Variable T : finType.
+Variable S : {set T}.
+ +
+Structure setpart : predArgType :=
+  SetPart {setpartval :> {set {set T}}; _ : partition setpartval S}.
+ +
+Implicit Type (P Q : setpart) (A B : {set T}).
+ +
+Lemma setpartP P : partition P S.
+ +
+Lemma trivIsetpart P : trivIset P.
+ +
+Lemma cover_setpart P : cover P = S.
+ +
+Lemma setpart_non0 P : set0 \notin P.
+ +
+Hint Resolve setpartP trivIsetpart setpart_non0 : core.
+ +
+Lemma setpart_subset P A : A \in P -> A \subset S.
+ +
+Lemma setpart_eq P x A B :
+  A \in P -> B \in P -> x \in A -> x \in B -> A = B.
+ +
+Lemma mem_eq_pblock P A : A \in P -> forall x, x \in A -> pblock P x = A.
+ +
+Lemma mem_setpart_pblock P A : A \in P -> exists x, x \in A.
+ +
+Lemma mem_pblock_setpart P x y : x \in pblock P y -> x \in S.
+ +
+Lemma pblock_notin P x : (pblock P x != set0) = (x \in S).
+ +
+Fact setpart1_subproof : partition [set [set x] | x in S] S.
+Canonical setpart1 := SetPart setpart1_subproof.
+ +
+Lemma pblock_setpart1 x : x \in S -> pblock setpart1 x = [set x].
+ +
+Fact trivsetpart_subproof :
+  partition (T := T) (if S == set0 then set0 else [set S]) S.
+Canonical trivsetpart := SetPart trivsetpart_subproof.
+ +
+Lemma pblock_trivsetpart x : x \in S -> pblock trivsetpart x = S.
+ +
+End Defs.
+#[export] Hint Resolve setpartP trivIsetpart setpart_non0 : core.
+ +
+Section Empty.
+ +
+Variable T : finType.
+ +
+Fact part_ordinal0 : partition (T := T) set0 set0.
+Definition setpart_set0 := SetPart part_ordinal0.
+ +
+Lemma setpart_set0_eq_set0 (p : setpart set0) : p = setpart_set0.
+ +
+Lemma enum_setpart_set0 : enum (setpart (@set0 T)) = [:: setpart_set0 ].
+ +
+End Empty.
+ +
+Section Singleton.
+ +
+Variable T : finType.
+Variable x : T.
+ +
+Implicit Type (A B : {set T}).
+ +
+Fact part_ordinal1 : partition [set [set x]] [set x].
+Definition setpart_set1 := SetPart part_ordinal1.
+ +
+Lemma subset_set1 A :
+  A \subset [set x] -> (A = set0) \/ (A = [set x]).
+ +
+Lemma part_set1_eq (P : {set {set T}}) :
+  partition P [set x] -> P = [set [set x]].
+ +
+Lemma setpart_set1_eq_set1 (p : setpart [set x]) : p = setpart_set1.
+ +
+Lemma enum_setpart_set1 : enum (setpart [set x]) = [:: setpart_set1].
+ +
+End Singleton.
+ +
+Module RefinmentOrder.
+Section RefinmentOrder.
+ +
+Import LeqGeqOrder.
+ +
+Context {T : finType} (S : {set T}).
+ +
+Implicit Type (P Q R : setpart S) (A B X Y : {set T}).
+ +
+Definition is_finer P Q :=
+  [forall (x | x \in S), pblock P x \subset pblock Q x].
+ +
+Lemma is_finer_pblockP P Q :
+  reflect (forall x, x \in S -> pblock P x \subset pblock Q x) (is_finer P Q).
+ +
+Lemma is_finer_refl : reflexive is_finer.
+ +
+Lemma is_finer_trans : transitive is_finer.
+ +
+Fact is_finer_setpart_anti : antisymmetric is_finer.
+Lemma setpartfiner_display : Order.disp_t.
+#[export]
+HB.instance Definition _ :=
+  Order.Le_isPOrder.Build setpartfiner_display (setpart S)
+    is_finer_refl is_finer_setpart_anti is_finer_trans.
+ +
+Lemma is_finerP P Q :
+  reflect
+    (forall A, A \in P -> exists2 B : {set T}, B \in Q & A \subset B)
+    (P <= Q)%O.
+ +
+Fact setpart1_bottom P : (setpart1 S <= P)%O.
+Fact trivsetpart_top P : (P <= trivsetpart S)%O.
+#[export]
+HB.instance Definition _ :=
+  Order.hasBottom.Build setpartfiner_display (setpart S) setpart1_bottom.
+#[export]
+HB.instance Definition _ :=
+  Order.hasTop.Build setpartfiner_display (setpart S) trivsetpart_top.
+ +
+Fact meet_finer_subproof P Q :
+  partition [set A :&: B | A in P, B in Q & A :&: B != set0] S.
+Definition meet_finer P Q := SetPart (meet_finer_subproof P Q).
+ +
+Variant meet_spec P Q X : Prop :=
+  MeetSpec A B of A \in P & B \in Q & A :&: B != set0 & X = A :&: B.
+Lemma mem_meet_finerP P Q X :
+  reflect (meet_spec P Q X) (X \in meet_finer P Q).
+ +
+Lemma meet_finerC : commutative meet_finer.
+ +
+Lemma le_meet_finer P Q : (meet_finer P Q <= P)%O.
+ +
+Fact meet_finerP R P Q : (R <= meet_finer P Q)%O = (R <= P)%O && (R <= Q)%O.
+ +
+Lemma setpart_conn P : connect_sym (fun x y : T => y \in (pblock P x)).
+ +
+Definition join_finer_eq P Q :=
+  connect (relU (fun x y => y \in pblock P x) (fun x y => y \in pblock Q x)).
+ +
+Lemma join_finer_equivalence P Q :
+  {in S & &, equivalence_rel (join_finer_eq P Q)}.
+ +
+Definition join_finer P Q :=
+  SetPart (equivalence_partitionP (join_finer_equivalence P Q)).
+ +
+Lemma join_finerC : commutative join_finer.
+ +
+Lemma le_join_finer P Q : (P <= join_finer P Q)%O.
+ +
+Fact join_finerP P Q R : (join_finer P Q <= R)%O = (P <= R)%O && (Q <= R)%O.
+#[export]
+HB.instance Definition _ :=
+  Order.POrder_MeetJoin_isLattice.Build setpartfiner_display (setpart S)
+    meet_finerP join_finerP.
+ +
+End RefinmentOrder.
+ +
+Module Exports.
+ +
+Section Finer.
+ +
+Context {T : finType} (S : {set T}).
+Implicit Type (P Q R : setpart S) (A B X Y : {set T}).
+ +
+Definition is_finerP P := is_finerP P.
+Definition is_finer_pblockP P Q :
+  reflect (forall x, x \in S -> pblock P x \subset pblock Q x) (P <= Q)%O
+  := is_finer_pblockP P Q.
+ +
+Lemma is_finer_subpartP P Q :
+  reflect
+    (exists2 subpart : {set T} -> {set {set T}},
+        forall B, B \in Q -> partition (subpart B) B
+        & \bigcup_(B in Q) subpart B = P)
+    (P <= Q)%O.
+ +
+Lemma setpart_bottomE : \bot%O = setpart1 S.
+ Lemma setpart_topE : \top%O = trivsetpart S.
+ +
+Definition mem_meet_finerP P Q X : reflect (meet_spec P Q X) (X \in P `&` Q)%O
+  := mem_meet_finerP P Q X.
+ +
+Lemma join_finer_eq_in_S P Q x y :
+  x \in S -> join_finer_eq P Q x y -> y \in S.
+ +
+Lemma join_finerE P Q x y :
+  x \in S -> y \in pblock (P `|` Q)%O x = join_finer_eq P Q x y.
+ +
+End Finer.
+ +
+Notation join_finer_eq := join_finer_eq.
+ +
+End Exports.
+End RefinmentOrder.
+ +
+Section FinerCard.
+ +
+Context {T : finType} (S : {set T})
+  (P Q : setpart S) (finPQ : (P <= Q)%O).
+ +
+Implicit Types (A B : {set T}).
+ +
+Definition map_finer A : {set T} :=
+    if (boolP (A \in P)) is AltTrue pin then
+      let: exist2 B _ _ := sig2W (is_finerP P Q finPQ A pin) in B
+    else set0.
+ +
+Lemma map_finer_subset A : A \in P -> A \subset map_finer A.
+ +
+Lemma map_finer_in A : A \in P -> map_finer A \in Q.
+ +
+Lemma map_finer_pblock x : map_finer (pblock P x) = pblock Q x.
+ +
+Lemma image_map_finer : [set map_finer x | x in P] = Q.
+ +
+Lemma is_finer_card : #|Q| <= #|P| ?= iff (P == Q).
+ +
+End FinerCard.
+
+
+ + + +
+ + + \ No newline at end of file diff --git a/combi/1.1.0/Combi.Combi.skewpart.html b/combi/1.1.0/Combi.Combi.skewpart.html new file mode 100644 index 00000000..5288756f --- /dev/null +++ b/combi/1.1.0/Combi.Combi.skewpart.html @@ -0,0 +1,955 @@ + + + + + +Combi.Combi.skewpart: Skew Partitions + + + + +
+ + + +
+ +

Library Combi.Combi.skewpart: Skew Partitions

+ +
+
+ +
+ +
+
+
+ +
+

Skew partitions:

+ + +
+ +Horizontal and vertical border strips: + +
+ +
    +
  • hb_strip inn out == out/inn is an horizontal border strip. That is inn + is included in out and each column contain at most one box + +
  • +
  • vb_strip inn out == out/inn is a vertical border strip. That is inn + is included in out and each row contain at most one box + +
  • +
+ +
+ +Ribbon border strips: + +
+ +According to the textbook definition, a ribbon is a non empty skew shape +which is connected and contains no 2x2 square. Unfortunately this definition +is totally inoperative. We use a different definition and prove the +equivalence with the textbook one. + +
+ +
    +
  • mindropeq s1 s2 == the minimal d such that drop d s1 == drop d s2 + +
  • +
  • ribbon_from inn out == out/inn is a ribbon shape starting at row 0 + +
  • +
  • ribbon inn out == out/inn is a ribbon shape + +
  • +
  • ribbon_on start stop inn out <-> out/inn is a ribbon shape starting and + ending at rows start and stop. + +
  • +
  • ribbon_height inn out == the height of the shape out/inn + +
  • +
  • add_ribbon_on sh start stop rem == adds a ribbon to sh from + start to stop with rem boxes at row start. The result + may not be a partition if there is an extra box. + +
  • +
  • add_ribbon sh nbox pos == tries to add a ribbon of size nbox.+1 + ending at row pos to the shape sh. Returns Some (res, h) + where res is the outer shape partition and h its height + on success, or None if not. Compared to add_ribbon_on, the + result is always a partition on success. + +
  • +
  • add_ribbon_intpartn sh nbox pos == sigma type version of add_ribbon. + Takes sh : 'P_d for some d and returns None or + Some (res, hgt) where res is of type 'P_(nbox.+1 + m). + +
  • +
+ +
+ +Textbook definition of ribbon: + +
+ +
    +
  • neig4 (r, c) == the 4 neighbors of r, c. + +
  • +
  • neig4box b == idem as a box_in_skew inner outer where b is itself a + box in out/inn + +
  • +
  • conn4_skew inner outer == the skew shape out/inn is 4-connected + +
  • +
  • has_no_square inner outer == the shape out/inn has no 2x2 square + +
  • +
  • ribbon_textbook inner outer == the textbook definition. + +
  • +
+ +
+ + +
+
+From HB Require Import structures.
+From mathcomp Require Import all_boot.
+Require Import tools sorted partition.
+ +
+Set Implicit Arguments.
+ +
+
+ +
+

Horizontal and vertical border strips

+ +
+
+Fixpoint hb_strip inner outer :=
+  if inner is inn0 :: inn then
+    if outer is out0 :: out then
+      (head 0 out <= inn0 <= out0) && (hb_strip inn out)
+    else false
+  else if outer is out0 :: out then out == [::]
+       else true.
+ +
+Fixpoint vb_strip inner outer :=
+  if outer is out0 :: out then
+    if inner is inn0 :: inn then
+      (inn0 <= out0 <= inn0.+1) && (vb_strip inn out)
+    else (out0 == 1) && (vb_strip [::] out)
+  else inner == [::].
+ +
+Lemma hb_strip_included inner outer :
+  hb_strip inner outer -> included inner outer.
+ +
+Lemma hb_strip_size inner outer :
+  hb_strip inner outer -> size inner <= size outer <= (size inner).+1.
+ +
+Lemma vb_strip_included inner outer :
+  vb_strip inner outer -> included inner outer.
+ +
+Lemma hb_stripP inner outer :
+  is_part inner -> is_part outer ->
+  reflect
+    (forall i, nth 0 outer i.+1 <= nth 0 inner i <= nth 0 outer i)
+    (hb_strip inner outer).
+ +
+Lemma vb_stripP inner outer :
+  is_part inner -> is_part outer ->
+  reflect
+    (forall i, nth 0 inner i <= nth 0 outer i <= (nth 0 inner i).+1)
+    (vb_strip inner outer).
+ +
+
+ +
+Usual definition : at most one box on each row +
+ + +
+

Ribbon border strip

+ +
+ +

The first common drop of two sequences

+ +
+
+Section MinDropEq.
+ +
+Variable (T : eqType).
+Implicit Types (s : seq T).
+ +
+Fact ex_dropeq s1 s2 : exists n, drop n s1 == drop n s2.
+Definition mindropeq s1 s2 := ex_minn (ex_dropeq s1 s2).
+ +
+Lemma mindropeqC s1 s2 : mindropeq s1 s2 = mindropeq s2 s1.
+ +
+Lemma mindropeq0 s1 s2 : mindropeq s1 s2 = 0 -> s1 = s2.
+ +
+Lemma mindropeq_eq s : mindropeq s s = 0.
+ +
+Lemma mindropeq_leq s1 s2 : mindropeq s1 s2 <= maxn (size s1) (size s2).
+ +
+Lemma mindropeq_nil s : mindropeq [::] s = size s.
+ +
+Lemma mindropeq_cons_eq a b s : a != b -> mindropeq (a :: s) (b :: s) = 1.
+ +
+Lemma mindropeq_cons_neq a b s1 s2 :
+  s1 != s2 -> mindropeq (a :: s1) (b :: s2) = (mindropeq s1 s2).+1.
+ +
+Lemma mindropeq_nthP x0 s t p :
+  x0 \notin s -> x0 \notin t ->
+  reflect
+    (nth x0 s p != nth x0 t p /\ (forall i, i > p -> nth x0 s i = nth x0 t i))
+    (mindropeq s t == p.+1).
+ +
+End MinDropEq.
+ +
+
+ +
+

An operative definition for ribbon border strips

+ +
+
+Fixpoint ribbon_from inner outer :=
+  if inner is inn0 :: inn then
+    if outer is out0 :: out then
+      (inn0 < out0) &&
+      ((out == inn) || ((head 0 out == inn0.+1) && (ribbon_from inn out)))
+    else false
+  else if outer is out0 :: out then head 0 out <= 1
+       else false.
+Fixpoint ribbon inner outer :=
+  ribbon_from inner outer ||
+  if (inner, outer) is (inn0 :: inn, out0 :: out) then
+    (out0 == inn0) && (ribbon inn out)
+  else false.
+ +
+Definition ribbon_on start stop inner outer :=
+  [/\ forall i, i > stop -> nth 0 outer i = nth 0 inner i,
+     forall i, start <= i < stop -> nth 0 outer i.+1 = (nth 0 inner i).+1,
+     nth 0 inner start < nth 0 outer start &
+     forall i, i < start -> nth 0 outer i = nth 0 inner i].
+Definition ribbon_height inner outer := count (ltn 0) (outer / inner).
+ +
+Section Test.
+ +
+Goal ~~ ribbon_from [::] [::].
+ Goal ~~ ribbon_from [:: 2] [:: 2].
+ Goal ribbon_from [::] [:: 4].
+ Goal ribbon_from [:: 2] [:: 4].
+ Goal ~~ ribbon_from [:: 2] [:: 4; 2].
+ Goal ribbon_from [:: 2] [:: 3].
+ Goal ribbon_from [:: 2] [:: 4; 3].
+ Goal ribbon_from [:: 3; 2] [:: 4; 4].
+ Goal ~~ ribbon_from [:: 3; 2] [:: 4; 4; 1].
+ Goal ~~ ribbon_from [:: 3; 2] [:: 4; 4; 2].
+ Goal ribbon_from [:: 3; 2; 2] [:: 4; 4; 2].
+ Goal ~~ ribbon_from [:: 2; 2] [:: 4; 4].
+ +
+Goal ribbon [:: 2] [:: 3].
+ Goal ribbon [:: 2; 2] [:: 3; 2].
+ Goal ribbon [:: 2; 2] [:: 3; 3].
+ Goal ribbon [:: 5; 3; 2; 2] [:: 5; 4; 4; 2].
+ Goal ~~ ribbon [:: 5; 3; 2; 2] [:: 5; 4; 4; 2; 1].
+ Goal ~~ ribbon [::] [::].
+ Goal ~~ ribbon [:: 2; 1] [:: 2; 1].
+ +
+End Test.
+ +
+Lemma ribbon_from_impl inn out : ribbon_from inn out -> ribbon inn out.
+ +
+Lemma ribbon_consK inn0 inn out0 out :
+  ribbon (inn0 :: inn) (out0 :: out) -> (out == inn) || ribbon inn out.
+Lemma ribbonE inn0 inn out0 out :
+  inn0 < out0 ->
+  ribbon (inn0 :: inn) (out0 :: out) = ribbon_from (inn0 :: inn) (out0 :: out).
+ +
+Lemma ribbon_from_noneq inner outer : ribbon_from inner outer -> inner != outer.
+Lemma ribbon_noneq inner outer : ribbon inner outer -> outer != inner.
+ +
+Lemma ribbon_onSS start stop inn0 inn out0 out :
+  ribbon_on start.+1 stop.+1 (inn0 :: inn) (out0 :: out)
+  <-> inn0 == out0 /\ ribbon_on start stop inn out.
+ +
+Section RibbonOn.
+ +
+Variables (start stop : nat) (inner outer : seq nat).
+Hypotheses (partinn : is_part inner)
+           (partout : is_part outer)
+           (Hrib : ribbon_on start stop inner outer).
+ +
+Lemma ribbon_on_start_stop : start <= stop.
+ +
+Lemma ribbon_on_nth_leq i :
+  (start <= i <= stop) = (nth 0 inner i < nth 0 outer i).
+ +
+Lemma ribbon_on_is_skew r c :
+  in_skew inner outer (r, c) -> start <= r <= stop.
+ +
+Lemma ribbon_on_included : included inner outer.
+ +
+Lemma ribbon_on_start_le : start <= size inner.
+ +
+Lemma ribbon_on_stop_lt : stop < size outer.
+ +
+Lemma ribbon_on_height : (stop - start).+1 = ribbon_height inner outer.
+ +
+Lemma ribbon_on_mindropeq : mindropeq inner outer = stop.+1.
+ +
+Lemma ribbon_on_stopE : stop = (mindropeq inner outer).-1.
+ +
+Lemma ribbon_on_startE :
+  start = mindropeq inner outer - ribbon_height inner outer.
+ +
+Lemma ribbon_on_sumn :
+  sumn (outer / inner) = (stop - start) + (nth 0 outer start - nth 0 inner stop).
+ +
+End RibbonOn.
+ +
+Lemma ribbon_on_inj inner outer start1 stop1 start2 stop2 :
+  is_part inner ->
+  ribbon_on start1 stop1 inner outer ->
+  ribbon_on start2 stop2 inner outer ->
+  (start1, stop1) = (start2, stop2).
+ +
+Lemma ribbon_fromP inner outer :
+  is_part inner -> is_part outer ->
+  reflect (exists stop, ribbon_on 0 stop inner outer)
+          (ribbon_from inner outer).
+ +
+Lemma ribbon_from_mindropeq inner outer :
+  is_part inner -> is_part outer -> ribbon_from inner outer ->
+  ribbon_on 0 (mindropeq inner outer).-1 inner outer.
+ +
+Lemma ribbonP inner outer :
+  is_part inner -> is_part outer ->
+  reflect (exists start stop, ribbon_on start stop inner outer)
+          (ribbon inner outer).
+ +
+Lemma ribbon_mindropeq inner outer :
+  is_part inner -> is_part outer -> ribbon inner outer ->
+  let min := mindropeq inner outer in
+  let height := ribbon_height inner outer in
+  ribbon_on (min - height) min.-1 inner outer.
+ +
+Lemma ribbon_from_included inner outer :
+  ribbon_from inner outer -> included inner outer.
+Lemma ribbon_included inner outer :
+  ribbon inner outer -> included inner outer.
+ +
+Lemma ribbon_sumn_lt inner outer :
+  is_part outer -> ribbon inner outer -> sumn inner < sumn outer.
+ +
+Lemma ribbon_sumn_diffE inner outer :
+  is_part outer -> ribbon inner outer ->
+  (sumn (outer / inner)).-1.+1 = (sumn (outer / inner)).
+ +
+Fixpoint startrem acc sh nbox pos :=
+  if (pos, sh) is (p.+1, s0 :: s) then
+    let c := nth 0 s p + nbox in
+    let cpos := s0 + pos in
+    if c >= cpos then (acc, c - cpos)
+    else startrem acc.+1 s nbox p
+  else (acc + (pos - nbox), nbox - pos). +
+ +
+Lemma startrem_acc_geq acc sh nbox pos : acc <= (startrem acc sh nbox pos).1.
+ +
+Lemma startrem_leq_pos sh nbox pos : (startrem 0 sh nbox pos).1 <= pos.
+Lemma startrem_leq_size sh nbox pos :
+  let (start, rem) := startrem 0 sh nbox pos in
+  0 < rem -> start <= size sh.
+Lemma startrem_leq sh nbox pos :
+  let (start, rem) := startrem 0 sh nbox pos in
+  0 < rem -> start <= minn pos (size sh).
+ +
+Lemma startrem_accE acc sh nbox pos :
+  let (start, rem) := startrem acc sh nbox pos in
+  nth 0 sh (start - acc) + pos + rem = nth 0 sh pos + (start - acc) + nbox.
+Lemma startremE sh nbox pos :
+  let (start, rem) := startrem 0 sh nbox pos in
+  nth 0 sh start + pos + rem = nth 0 sh pos + start + nbox.
+ +
+Lemma eq_interv_part sh st1 st2 v :
+  is_part sh ->
+  nth 0 sh st1.+1 <= st1 + v <= nth 0 sh st1 ->
+  nth 0 sh st2.+1 <= st2 + v <= nth 0 sh st2 ->
+  st1 = st2.
+ +
+Lemma startrem_accP acc sh nbox pos :
+  is_part sh ->
+  let (start, rem) := startrem acc sh nbox pos in
+  0 < rem ->
+  (start == acc) || (nth 0 sh (start - acc) + rem <= nth 0 sh (start - acc).-1).
+ +
+Lemma startrem0P acc sh nbox pos :
+  nth 0 sh 0 + pos <= nth 0 sh pos + nbox ->
+  startrem acc sh nbox pos = (acc, nth 0 sh pos + nbox - (nth 0 sh 0 + pos)).
+ +
+Lemma ribbon_on0_startrem stop inner outer acc :
+  is_part inner ->
+  is_part outer ->
+  ribbon_on 0 stop inner outer ->
+  startrem acc inner (sumn (outer / inner)) stop =
+  (acc, nth 0 outer 0 - nth 0 inner 0).
+ +
+Lemma ribbon_on_startrem_acc start stop inner outer acc :
+  is_part inner ->
+  is_part outer ->
+  ribbon_on start stop inner outer ->
+  startrem acc inner (sumn (outer / inner)) stop =
+  (acc + start, nth 0 outer start - nth 0 inner start).
+ +
+Lemma ribbon_on_startrem start stop inner outer :
+  is_part inner ->
+  is_part outer ->
+  ribbon_on start stop inner outer ->
+  startrem 0 inner (sumn (outer / inner)) stop =
+  (start, nth 0 outer start - nth 0 inner start).
+ +
+Lemma ribbon_startrem inner outer :
+  is_part inner -> is_part outer -> ribbon inner outer ->
+  let min := mindropeq inner outer in
+  let height := ribbon_height inner outer in
+  startrem 0 inner (sumn (outer / inner)) (mindropeq inner outer).-1 =
+  (min - height, nth 0 outer (min - height) - nth 0 inner (min - height)).
+ +
+Definition add_ribbon_on sh start stop rem :=
+  (take start sh)
+    ++ (nth 0 sh start + rem :: map S (drop start (take stop sh)))
+            ++ drop stop.+1 sh ++ nseq (stop - size sh) 1.
+Definition add_ribbon sh nbox pos :=
+  let: (start, rem) := startrem 0 sh nbox.+1 pos in
+  if rem > 0 then
+    Some (add_ribbon_on sh start pos rem, (pos - start).+1)
+  else None.
+ +
+Section NThAddRibbon.
+ +
+Variable (sh : seq nat) (start stop rem : nat).
+Hypothesis (lesmin : start <= minn stop (size sh)).
+ +
+#[local] Notation res := (add_ribbon_on sh start stop rem).
+ +
+
+ +
+Put some local result in the environment +
+
+#[local] Lemma less : start <= stop.
+ Let less := less.
+#[local] Lemma lessz : start <= size sh.
+ Let lessz := lessz.
+#[local] Lemma sztd :
+  size (drop start (take stop sh)) = minn stop (size sh) - start.
+ Let sztd := sztd.
+ +
+Lemma nth_add_ribbon_lt_start i : i < start -> nth 0 res i = nth 0 sh i.
+ +
+Lemma nth_add_ribbon_start : nth 0 res start = nth 0 sh start + rem.
+ +
+Lemma nth_add_ribbon_in i :
+  start < i.+1 <= stop -> nth 0 res i.+1 = (nth 0 sh i).+1.
+ +
+Lemma nth_add_ribbon_stop_lt i : stop < i -> nth 0 res i = nth 0 sh i.
+ +
+Lemma add_ribbon_on_remP : rem > 0 -> ribbon_on start stop sh res.
+ +
+Lemma is_part_add_ribbon_on nbox :
+  is_part sh -> rem > 0 ->
+  startrem 0 sh nbox stop = (start, rem) -> is_part res.
+ +
+End NThAddRibbon.
+ +
+Section Tests.
+ +
+Goal add_ribbon_on [:: 2; 2; 1; 1] 0 0 2 = [:: 4; 2; 1; 1].
+ Goal add_ribbon_on [:: 2; 2; 1; 1] 1 1 2 = [:: 2; 4; 1; 1].
+ Goal add_ribbon_on [:: 2; 2; 1; 1] 0 1 2 = [:: 4; 3; 1; 1].
+ Goal add_ribbon_on [:: 2; 2; 1; 1] 0 2 2 = [:: 4; 3; 3; 1].
+ Goal add_ribbon_on [:: 2; 2; 1; 1] 2 2 1 = [:: 2; 2; 2; 1].
+ Goal add_ribbon_on [:: 2; 2; 1; 1] 2 3 1 = [:: 2; 2; 2; 2].
+ Goal add_ribbon_on [:: 2; 2; 1; 1] 2 4 1 = [:: 2; 2; 2; 2; 2].
+ Goal add_ribbon_on [:: 2; 2; 1; 1] 2 5 1 = [:: 2; 2; 2; 2; 2; 1].
+ Goal add_ribbon_on [:: 2; 2; 1; 1] 2 6 1 = [:: 2; 2; 2; 2; 2; 1; 1].
+ +
+Goal startrem 0 [:: 2; 2; 1; 1] 2 0 = (0, 2).
+ Goal add_ribbon [:: 2; 2; 1; 1] 1 0 = Some ([:: 4; 2; 1; 1], 1).
+ Goal startrem 0 [:: 2; 2; 1; 1] 2 1 = (0, 1).
+ Goal add_ribbon [:: 2; 2; 1; 1] 1 1 = Some ([:: 3; 3; 1; 1], 2).
+ +
+
+ +
+Tests : +
+sage: s[2, 2] * p[1]
+s[2, 2, 1] + s[3, 2]
+
+ +
+ + +
+Tests : +
+sage: s[2, 2] * p[2]
+-s[2, 2, 1, 1] + s[2, 2, 2] - s[3, 3] + s[4, 2]
+
+ +
+ + +
+Tests : +
+sage: s[3, 2, 1, 1] * p[4]
+-s[3, 2, 1, 1, 1, 1, 1, 1] + s[3, 2, 2, 2, 2] + s[3, 3, 3, 2] - s[5, 4, 1, 1]
+  + s[7, 2, 1, 1]
+
+ +
+
+Goal pmap (add_ribbon [:: 3; 2; 1; 1] 3) (iota 0 10) =
+  [:: ([:: 7; 2; 1; 1], 1);
+      ([:: 5; 4; 1; 1], 2);
+      ([:: 3; 3; 3; 2], 3);
+      ([:: 3; 2; 2; 2; 2], 3);
+      ([:: 3; 2; 1; 1; 1; 1; 1; 1], 4)].
+
+ +
+Tests : +
+sage: s[2, 2] * p[5]
+s[2, 2, 1, 1, 1, 1, 1] - s[2, 2, 2, 1, 1, 1] + s[3, 3, 3] - s[6, 3] + s[7, 2]
+
+ +
+ + +
+Tests : +
+sage: s[2, 2, 1] * p[5]
+s[2, 2, 1, 1, 1, 1, 1, 1] - s[2, 2, 2, 2, 1, 1] + s[4, 3, 3] - s[6, 3, 1] + s[7, 2, 1]
+
+ +
+ + +
+Tests : +
+s[5, 5, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1] - s[5, 5, 2, 2, 2, 2, 1, 1, 1] + s[5, 5, 3, 3, 2, 2, 1]
+ - s[5, 5, 4, 3, 2, 2] + s[7, 6, 6, 1, 1] - s[11, 6, 2, 1, 1] + s[12, 5, 2, 1, 1]
+
+ +
+
+Goal pmap (add_ribbon [:: 5; 5; 2; 1; 1] 6) (iota 0 15) =
+  [:: ([:: 12; 5; 2; 1; 1], 1); ([:: 11; 6; 2; 1; 1], 2);
+     ([:: 7; 6; 6; 1; 1], 3); ([:: 5; 5; 4; 3; 2; 2], 4);
+      ([:: 5; 5; 3; 3; 2; 2; 1], 5); ([:: 5; 5; 2; 2; 2; 2; 1; 1; 1], 6);
+      ([:: 5; 5; 2; 1; 1; 1; 1; 1; 1; 1; 1; 1], 7)].
+ +
+Goal let sh := [:: 2; 2] in
+     all (fun p => ribbon sh p.1) (pmap (add_ribbon sh 0) (iota 0 8)).
+ Goal let sh := [:: 2; 2] in
+     all (fun p => ribbon sh p.1) (pmap (add_ribbon sh 4) (iota 0 8)).
+ Goal let sh := [:: 2; 2; 1] in
+     all (fun p => ribbon sh p.1) (pmap (add_ribbon sh 4) (iota 0 8)).
+ Goal let sh := [:: 5; 5; 2; 1; 1] in
+     all (fun p => ribbon sh p.1) (pmap (add_ribbon sh 6) (iota 0 15)).
+ +
+End Tests.
+ +
+Section Spec.
+ +
+Variables (sh : seq nat).
+Hypothesis (partsh : is_part sh).
+Variable (nbox pos : nat).
+Variables (res : seq nat) (hgt : nat).
+Hypothesis (Hret : add_ribbon sh nbox pos = Some (res, hgt)).
+ +
+Lemma sumn_mapS s : sumn [seq i.+1 | i <- s] = sumn s + size s.
+ +
+Lemma sumn_add_ribbon : sumn res = nbox.+1 + sumn sh.
+Lemma is_part_add_ribbon : is_part res.
+Lemma is_part_of_add_ribbon : is_part_of_n (nbox.+1 + sumn sh) res.
+ +
+Lemma size_add_ribbon : size res = maxn (size sh) pos.+1.
+ +
+Lemma add_ribbon_height : hgt = ribbon_height sh res.
+ +
+Lemma add_ribbon_onP : ribbon_on (pos.+1 - hgt) pos sh res.
+ +
+Lemma add_ribbonP : ribbon sh res.
+ +
+Lemma included_add_ribbon : included sh res.
+ +
+End Spec.
+ +
+Lemma ribbon_on_addE start stop inner outer :
+  is_part inner -> is_part outer -> ribbon_on start stop inner outer ->
+  add_ribbon_on inner start stop (nth 0 outer start - nth 0 inner start) =
+  outer.
+ +
+Lemma ribbon_addE inner outer :
+  is_part inner -> is_part outer -> ribbon inner outer ->
+  add_ribbon inner (sumn (outer / inner)).-1 (mindropeq inner outer).-1 =
+  Some (outer, ribbon_height inner outer).
+ +
+Section IntPartN.
+ +
+Variable (m : nat) (la : 'P_m).
+Variable nbox : nat.
+#[local] Notation "'Pr" := 'P_(nbox.+1 + m).
+ +
+Let val_id := fun p : ('Pr * nat) => let: (sh, h) := p in (val sh, h).
+ +
+Fact add_ribbon_intpartn_spec pos :
+  { res : option ('Pr * nat) | omap val_id res = add_ribbon la nbox pos }.
+Definition add_ribbon_intpartn (pos : nat) : option ('Pr * nat) :=
+  let: exist res _ := add_ribbon_intpartn_spec pos in res.
+ +
+Lemma add_ribbon_intpartnE pos :
+  add_ribbon la nbox pos =omap val_id (add_ribbon_intpartn pos).
+ Lemma add_ribbon_intpartnP pos res h :
+  add_ribbon_intpartn pos = Some (res, h) ->
+  add_ribbon la nbox pos = Some (val res, h).
+ +
+End IntPartN.
+ +
+
+ +
+

Equivalence with the textbook definition

+

Some complement on connect

+ +
+
+Section ConnectCompl.
+ +
+Variables (T : finType) (e : rel T).
+ +
+Lemma connect_rev : (connect (fun x : T => e^~ x)) =2 (fun x => (connect e)^~x).
+ +
+Lemma connect_from_sym : symmetric e -> connect_sym e.
+ +
+Lemma same_connect_rev : connect_sym e -> connect e =2 connect (fun x y => e y x).
+ +
+End ConnectCompl.
+ +
+
+ +
+

4 neigborhood

+ +
+
+Definition neig4 rc :=
+  let: (r, c) := rc in [:: (r, c.-1); (r, c.+1); (r.-1, c); (r.+1, c)].
+Lemma neig4_sym rc1 rc2 : rc1 \in neig4 rc2 -> rc2 \in neig4 rc1.
+Lemma grel_neig4_sym : symmetric (grel neig4).
+ +
+Section Connected4.
+ +
+Variable (inner outer : seq nat).
+#[local] Notation box := (box_skew inner outer).
+ +
+Definition neig4box (b : box) : seq box := pmap insub (neig4 b).
+Lemma neig4boxE :
+  relpre val (grel neig4) =2 grel (fun b : box => pmap insub (neig4 b)).
+ +
+Lemma neig4box_sym : symmetric (grel neig4box).
+ +
+End Connected4.
+ +
+
+ +
+

The textbook definition

+ +
+
+Definition conn4_skew inner outer :=
+  n_comp (grel (@neig4box inner outer)) predT == 1.
+Definition has_no_square inner outer :=
+  [forall b : box_skew inner outer, ~~ in_skew inner outer (b.1.+1, b.2.+1)].
+Definition ribbon_textbook inner outer :=
+  [&& inner != outer,
+   included inner outer,
+   conn4_skew inner outer &
+   has_no_square inner outer].
+ +
+Section TextBookDefStartStop.
+ +
+Variable (start stop : nat) (inner outer : seq nat).
+Hypotheses (partinn : is_part inner) (partout : is_part outer).
+Hypothesis (Hrib : ribbon_on start stop inner outer).
+#[local] Notation box := (box_skew inner outer).
+Implicit Type (b : box).
+ +
+#[local] Notation neig4 := (grel (@neig4box inner outer)).
+ +
+Lemma conn4_sym : symmetric (connect neig4).
+ +
+#[local] Definition ribbon_box_ex inner outer :=
+  let start := (mindropeq inner outer) - ribbon_height inner outer in
+  (start, nth 0 inner start).
+ +
+Lemma ribbon_on_box_exE :
+  ribbon_box_ex inner outer = (start, nth 0 inner start).
+ +
+Lemma ribbon_on_box_exP : in_skew inner outer (ribbon_box_ex inner outer).
+Definition ribbon_on_box_ex : box := BoxSkew ribbon_on_box_exP.
+#[local] Notation boxex := ribbon_on_box_ex.
+ +
+Lemma ribbon_on_conn4_box_ex b : connect neig4 boxex b.
+ +
+Lemma ribbon_on_conn4 b1 b2 : connect neig4 b1 b2.
+ +
+Lemma ribbon_on_conn4_skew : conn4_skew inner outer.
+ +
+Lemma ribbon_on_no_square r c :
+  in_skew inner outer (r, c) -> ~~ in_skew inner outer (r.+1, c.+1).
+ +
+End TextBookDefStartStop.
+ +
+Section TextBookImplDef.
+ +
+Variable (inner outer : seq nat).
+Hypotheses (partinn : is_part inner) (partout : is_part outer).
+Hypothesis (Htb : ribbon_textbook inner outer).
+#[local] Notation box := (box_skew inner outer).
+#[local] Notation stop := (mindropeq inner outer).-1.
+#[local] Notation neig4 := (grel (@neig4box inner outer)).
+ +
+Implicit Type (b : box).
+ +
+#[local] Lemma incl : included inner outer.
+ +
+Lemma mindropeq_non0 : mindropeq inner outer != 0.
+ +
+Lemma ribbontb_stop_ltn : nth 0 inner stop < nth 0 outer stop.
+ +
+Lemma ribbontb_start_subproof : exists i, nth 0 inner i < nth 0 outer i.
+ Definition ribbontb_start := ex_minn ribbontb_start_subproof.
+#[local] Notation start := ribbontb_start.
+ +
+Lemma ribbon_textbook_on : ribbon_on start stop inner outer.
+ +
+End TextBookImplDef.
+ +
+Theorem ribbon_textbookE inner outer :
+  is_part inner -> is_part outer ->
+  ribbon inner outer = ribbon_textbook inner outer.
+
+
+ + + +
+ + + \ No newline at end of file diff --git a/combi/1.1.0/Combi.Combi.skewtab.html b/combi/1.1.0/Combi.Combi.skewtab.html new file mode 100644 index 00000000..413ed97b --- /dev/null +++ b/combi/1.1.0/Combi.Combi.skewtab.html @@ -0,0 +1,411 @@ + + + + + +Combi.Combi.skewtab: Skew Tableaux + + + + +
+ + + +
+ +

Library Combi.Combi.skewtab: Skew Tableaux

+ +
+
+ +
+ +
+
+
+ +
+

Skew tableau and skew yamanouchi words:

+ + +
+ +
    +
  • is_skew_yam inn out y == y ++ y0 is Yamanouchi of evaluation out for + any y0 of evaluation inn. + +
  • +
  • skew_dominate s u v == the row u dominate the row v when shifted by s. + +
  • +
  • is_skew_tableau inn t == t is a skew tableau with inner shape t. + +
  • +
  • skew_reshape inn out s == reshape the sequence s by the skew shape out/inn. + +
  • +
  • filter_leqX_tab n t == keeps only the entries greater than n in t. + +
  • +
  • join_tab t st == join the tableau t with the skew tableau st. + this gives a tableau if the inner shape of st is the shape of t and + the entries of t are smaller than the entries of st. + +
  • +
+ +
+
+From HB Require Import structures.
+From mathcomp Require Import all_boot order.
+ +
+Require Import tools partition skewpart Yamanouchi ordtype tableau std stdtab.
+ +
+Set Implicit Arguments.
+ +
+Import Order.Theory.
+ +
+
+ +
+

Skew Yamanouchi words

+ +
+ + +
+

Skew tableaux

+ +
+
+Section Dominate.
+ +
+Context disp (T : inhOrderType disp).
+Implicit Type u v : seq T.
+ +
+Definition skew_dominate sh u v := dominate (drop sh u) v.
+ +
+Lemma skew_dominate0 : skew_dominate 0 =2 (@dominate _ T).
+ +
+Lemma skew_dominate_take n sh u v :
+  skew_dominate sh u (take n v) -> skew_dominate sh u v.
+ +
+Lemma skew_dominate_no_overlap sh u v :
+  size u <= sh -> skew_dominate sh u v.
+ +
+Lemma skew_dominate_consl sh l u v :
+  skew_dominate sh u v -> skew_dominate sh.+1 (l :: u) v.
+ +
+Lemma skew_dominate_cut sh u v :
+  skew_dominate sh u v = skew_dominate sh u (take (size u - sh) v).
+ +
+Fixpoint is_skew_tableau inner t :=
+  if t is t0 :: t'
+  then [&& head 0 inner + size t0 != 0,
+        is_row t0,
+        skew_dominate ((head 0 inner) - (head 0 (behead inner)))
+                      (head [::] t') t0 & is_skew_tableau (behead inner) t']
+  else inner == [::].
+ +
+Lemma is_skew_tableauP inner t :
+  reflect
+    [/\ size inner <= size t,
+     forall i, i < size t -> nth 0 inner i + size (nth [::] t i) != 0,
+     forall i, is_row (nth [::] t i) &
+     forall i, skew_dominate ((nth 0 inner i) - (nth 0 inner i.+1))
+                             (nth [::] t i.+1) (nth [::] t i)]
+    (is_skew_tableau inner t).
+ +
+Lemma is_skew_tableau0 : is_skew_tableau [::] =1 is_tableau.
+ +
+Lemma is_skew_tableau_pad0 inner t :
+  is_skew_tableau inner t = is_skew_tableau (pad 0 (size t) inner) t.
+ +
+Definition skew_reshape (inner outer : seq nat) (s : seq T) :=
+  rev (reshape (rev (outer / inner)) s).
+ +
+Lemma size_skew_reshape inner outer s :
+  size (skew_reshape inner outer s) = size outer.
+ +
+Lemma shape_skew_reshape inner outer s :
+  included inner outer ->
+  size s = sumn (outer / inner) ->
+  shape (skew_reshape inner outer s) = outer / inner.
+ +
+Lemma to_word_skew_reshape inner outer s :
+  included inner outer ->
+  size s = sumn (outer / inner) ->
+  to_word (skew_reshape inner outer s) = s.
+ +
+Lemma skew_reshapeK inner t :
+  size inner <= size t ->
+  skew_reshape inner (outer_shape inner (shape t)) (to_word t) = t.
+ +
+Lemma row_hb_strip inner t :
+  is_part inner ->
+  is_skew_tableau inner t -> is_row (to_word t) ->
+  hb_strip inner (outer_shape inner (shape t)).
+ +
+Lemma hb_strip_rowE inner outer u :
+  is_part inner -> is_part outer ->
+  is_row u -> size u = sumn (outer / inner) ->
+  included inner outer &&
+           is_skew_tableau inner (skew_reshape inner outer u) =
+  hb_strip inner outer.
+ +
+End Dominate.
+ +
+
+ +
+

Skewing and joining tableaux

+ +
+
+Section FilterLeqGeq.
+ +
+Context disp (T : inhOrderType disp).
+Implicit Type l : T.
+Implicit Type r w : seq T.
+Implicit Type t : seq (seq T).
+ +
+Lemma filter_le_dominate n r1 r0 :
+  is_row r0 -> is_row r1 -> dominate r1 r0 ->
+  skew_dominate ((count (>%O n) r0) - (count (>%O n) r1))
+                (filter (<=%O n) r1) (filter (<=%O n) r0).
+ +
+Definition filter_le_tab n :=
+  [fun t : (seq (seq T)) => [seq [seq x <- i | (n <= x)%O] | i <- t]].
+ +
+Lemma is_skew_tableau_filter_le_tmp n t :
+  is_tableau t -> is_skew_tableau
+                    (shape ([seq [seq x <- i | (x < n)%O] | i <- t]))
+                    (filter_le_tab n t).
+ +
+Lemma filter_gt_first_row0 n r t :
+  is_tableau t ->
+  dominate (head [::] t) r ->
+  [seq x <- r | (x < n)%O] = [::] ->
+  [seq [seq x <- i | (n <= x)%O] | i <- t] = t.
+ +
+Lemma filter_le_first_row0 n r t :
+  is_tableau t ->
+  dominate (head [::] t) r ->
+  [seq x <- r | (x < n)%O] = [::] ->
+  [seq [seq x <- i | (x < n)%O] | i <- t] = nseq (size t) [::].
+ +
+Lemma included_shape_filter_gt c (t : seq (seq T)) :
+  is_tableau t -> included (shape (filter_gt_tab c t)) (shape t).
+ +
+Lemma shape_inner_filter_le n t :
+  is_tableau t ->
+  shape ([seq [seq x <- i | (x < n)%O] | i <- t]) =
+  pad 0 (size t) (shape (filter_gt_tab n t)).
+ +
+Lemma is_skew_tableau_filter_le n t:
+  is_tableau t ->
+  is_skew_tableau (shape (filter_gt_tab n t)) (filter_le_tab n t).
+ +
+Definition join_tab s t :=
+  [seq pr.1 ++ pr.2 | pr <- zip (pad [::] (size t) s) t].
+ +
+Lemma size_join_tab s t :
+  size s <= size t ->
+  size_tab (join_tab s t) = size_tab s + size_tab t.
+ +
+Lemma shape_join_tab s t :
+  shape (join_tab s t) =
+  ([seq pr.1 + pr.2 | pr <- zip (pad 0 (size t) (shape s)) (shape t)])%N.
+ +
+Lemma perm_join_tab s t :
+  size s <= size t ->
+  perm_eq (to_word (join_tab s t)) (to_word s ++ to_word t).
+ +
+Lemma join_tab_filter n t :
+  is_tableau t -> join_tab (filter_gt_tab n t) (filter_le_tab n t) = t.
+ +
+Lemma all_allLtn_cat (s0 s1 s : seq T) :
+  all (allLtn (s0 ++ s1)) s -> all (allLtn s0) s /\ all (allLtn s1) s.
+ +
+Lemma shape_join_tab_skew_reshape t sh w :
+  included (shape t) sh ->
+  size w = sumn (sh / (shape t)) ->
+  shape (join_tab t (skew_reshape (shape t) sh w)) = sh.
+ +
+Lemma join_tab_skew s t :
+  all (allLtn (to_word s)) (to_word t) ->
+  is_tableau s -> is_skew_tableau (shape s) t ->
+  is_tableau (join_tab s t).
+ +
+End FilterLeqGeq.
+ +
+
+ +
+

Standardisation of a tableau

+ +
+
+Section EqInvSkewTab.
+ +
+Lemma eq_inv_skew_dominate
+      d1 d2 (T1 : inhOrderType d1) (T2 : inhOrderType d2)
+      (u1 v1 : seq T1) (u2 v2 : seq T2) s :
+  eq_inv (u1 ++ v1) (u2 ++ v2) ->
+  size u1 = size u2 ->
+  skew_dominate s u1 v1 -> skew_dominate s u2 v2.
+ +
+Lemma eq_inv_is_skew_tableau_reshape_size
+      inner outer d1 d2 (T1 : inhOrderType d1) (T2 : inhOrderType d2)
+      (u1 : seq T1) (u2 : seq T2) :
+  size inner = size outer ->
+  eq_inv u1 u2 -> size u1 = sumn (outer / inner) ->
+  is_skew_tableau inner (skew_reshape inner outer u1) ->
+  is_skew_tableau inner (skew_reshape inner outer u2).
+ +
+Lemma is_skew_tableau_skew_reshape_pad0 inner outer
+      d (T : inhOrderType d) (u : seq T) :
+  is_skew_tableau inner (skew_reshape inner outer u) =
+  is_skew_tableau ((pad 0 (size outer)) inner)
+                  (skew_reshape ((pad 0 (size outer)) inner) outer u).
+ +
+Theorem eq_inv_is_skew_tableau_reshape
+        inner outer d1 d2 (T1 : inhOrderType d1) (T2 : inhOrderType d2)
+        (u1 : seq T1) (u2 : seq T2) :
+  size inner <= size outer ->
+  eq_inv u1 u2 ->
+  size u1 = sumn (outer / inner) ->
+  is_skew_tableau inner (skew_reshape inner outer u1) ->
+  is_skew_tableau inner (skew_reshape inner outer u2).
+ +
+Theorem is_skew_tableau_reshape_std inner outer
+        d (T : inhOrderType d) (u : seq T) :
+  size inner <= size outer ->
+  size u = sumn (outer / inner) ->
+  is_skew_tableau inner (skew_reshape inner outer u) =
+  is_skew_tableau inner (skew_reshape inner outer (std u)).
+ +
+Theorem is_tableau_reshape_std sh d (T : inhOrderType d) (u : seq T) :
+  size u = sumn sh ->
+  is_tableau (skew_reshape [::] sh u) =
+  is_tableau (skew_reshape [::] sh (std u)).
+ +
+Theorem is_tableau_std d (T : inhOrderType d) (t : seq (seq T)) :
+  is_tableau t = is_tableau (skew_reshape [::] (shape t) (std (to_word t))).
+ +
+End EqInvSkewTab.
+
+
+ + + +
+ + + \ No newline at end of file diff --git a/combi/1.1.0/Combi.Combi.std.html b/combi/1.1.0/Combi.Combi.std.html new file mode 100644 index 00000000..99d681c3 --- /dev/null +++ b/combi/1.1.0/Combi.Combi.std.html @@ -0,0 +1,663 @@ + + + + + +Combi.Combi.std: Standard Words, i.e. Permutation as Words + + + + +
+ + + +
+ +

Library Combi.Combi.std: Standard Words, i.e. Permutation as Words

+ +
+
+ +
+ +
+
+
+ +
+

Standard words

+ + +
+ +That is words wich are permutations of 0, 1, ..., n-1: + +
+ +
    +
  • is_std s == s is a standard word + +
  • +
  • is_std_of_n n s == s is a standard word of size n + +
  • +
  • wordperm p == the standard word associated with a permutation p of 'S_n + +
  • +
+ +
+ +Sigma types for standard word + +
+ +
    +
  • stdwordn n == a type for seq nat which standard words size n; + it is canonically a finType + +
  • +
+ +
+ +Inversions and standardisation of a word over a totally ordered alphabet + +
+ +
    +
  • std s == given a word w over an ordType returns the standard word with + the same set of inversion (lemmas stdP and std_eq_invP) + +
  • +
  • versions w i j == i j is an non-inversion of w that is + i <= j < size w and w_i <= w_j + +
    + + +
  • +
  • eq_inv w1 w2 == w1 and w2 have the same versions which is equivalent + to the same set of inversions; in particular w1 and w2 + have the same size. + +
    + + +
  • +
  • std_spec s p == p is a standard word with the same versions as s + +
  • +
+ +
+ +The main result here is std_eq_invP which says that having the same inversions +is the same as having the same standardized. + +
+ +
    +
  • linvseq s t == t is the left inverse of s + +
  • +
  • invseq s t == s and t are inverse on of each other + +
  • +
  • invstd w == the inverse of the standardized of w that is the permutation + which sorts w in a stable way. + +
  • +
+ +
+ + +
+
+From HB Require Import structures.
+From mathcomp Require Import all_boot order.
+From mathcomp Require Import perm fingroup.
+ +
+Require Import tools combclass ordtype permcomp.
+ +
+Set Implicit Arguments.
+ +
+Import Order.TTheory.
+ +
+Open Scope nat_scope.
+ +
+
+ +
+

Standard words and permutations

+ +
+
+Section StandardWords.
+ +
+Implicit Type n : nat.
+Definition is_std (s : seq nat) := perm_eq s (iota 0 (size s)).
+ +
+Lemma perm_std u v : is_std u -> perm_eq v u -> is_std v.
+ +
+Lemma std_perm u v : is_std u -> is_std v -> size u = size v -> perm_eq v u.
+ +
+Lemma mem_std p i : is_std p -> (i \in p) = (i < size p).
+ +
+Lemma std_uniq u : is_std u -> uniq u.
+ +
+Lemma std_max s0 s : is_std (s0 :: s) -> maxL s0 s = size s.
+ +
+Lemma is_stdP s : reflect (forall n, n < size s -> n \in s) (is_std s).
+ +
+Definition wordperm n (p : 'S_n) := [seq (p i : nat) | i : 'I_n].
+ +
+Open Scope group_scope.
+ +
+Lemma wordperm_iota n (p : 'S_n) : (wordperm p) =i iota 0 n.
+ +
+Lemma uniq_wordperm n (p : 'S_n) : uniq (wordperm p).
+ +
+Lemma wordperm_std n (p : 'S_n) : is_std (wordperm p).
+ +
+Lemma perm_of_std s : is_std s -> { p : 'S_(size s) | s = wordperm p }.
+ +
+Lemma is_std_wordpermP s :
+  reflect (exists p : 'S_(size s), s = wordperm p) (is_std s).
+ +
+Lemma wordperm_invP n (p : 'S_n) i (j : 'I_n) :
+  nth n (wordperm p) i = j <-> i = (p^-1) j.
+ +
+End StandardWords.
+ +
+
+ +
+

Standard words as a finType

+ +
+
+Section StdCombClass.
+ +
+Variable n : nat.
+ +
+Definition is_std_of_n := [pred w | (is_std w) && (size w == n) ].
+ +
+Structure stdwordn : Set :=
+  StdWordN {stdwordnval :> seq nat; _ : is_std_of_n stdwordnval}.
+ +
+ +
+Lemma stdwordnP (s : stdwordn) : is_std (val s).
+ +
+Lemma size_sdtn (s : stdwordn) : size (val s) = n.
+ +
+Definition enum_stdwordn := [seq wordperm p | p : 'S_n].
+ +
+Lemma enum_stdwordnE : enum_stdwordn =i is_std_of_n.
+ +
+Lemma wordperm_inj : injective (@wordperm n).
+ +
+Lemma enum_stdwordn_uniq : uniq enum_stdwordn.
+ +
+ +
+Lemma card_stdwordn : #|{: stdwordn}| = n`!.
+ +
+End StdCombClass.
+ +
+
+ +
+

Standardisation of a word over a totally ordered alphabet

+ +
+
+Section Standardisation.
+ +
+Context {disp} {Alph : orderType disp}.
+Implicit Type s u v w : seq Alph.
+ +
+Fixpoint std_rec n s :=
+  if n is n'.+1 then
+    let rec := std_rec n' (rembig s) in
+    let pos := posbig s in
+    take pos rec ++ n' :: drop pos rec
+  else [::].
+Definition std s := std_rec (size s) s.
+ +
+Lemma size_std_rec n s : size (std_rec n s) = n.
+ +
+Lemma size_std s : size (std s) = size s.
+ +
+Lemma std_is_std s : is_std (std s).
+ +
+Lemma in_std_ltn_size s i : i \in std s = (i < size s).
+ +
+Lemma allLtn_std_rec s : allLtn (std s) (size s).
+ +
+Lemma rembig_ins_std s pos :
+  rembig (take pos (std s) ++ size s :: drop pos (std s)) = std s.
+ +
+Lemma std_rembig s : std (rembig s) = rembig (std s).
+ +
+Lemma std_posbig s : posbig (std s) = posbig s.
+ +
+End Standardisation.
+ +
+Lemma std_std s : is_std s -> std s = s.
+ +
+Lemma std_stdE disp (T : orderType disp) (s : seq T) : std (std s) = std s.
+ +
+
+ +
+

Inversion sets and standardization

+ +
+
+Section EqInvDef.
+ +
+Definition versions d (T : inhOrderType d) (w : seq T) : rel nat :=
+  fun i j => (i <= j < size w) && (nth inh w i <= nth inh w j)%O.
+ +
+Definition eq_inv d1 d2 (T1 : inhOrderType d1) (T2 : inhOrderType d2)
+           (w1 : seq T1) (w2 : seq T2) :=
+  (versions w1) =2 (versions w2).
+ +
+Context disp1 disp2 disp3
+   (S : inhOrderType disp1)
+   (T : inhOrderType disp2)
+   (U : inhOrderType disp3).
+ +
+Lemma eq_inv_refl (w : seq T) : eq_inv w w.
+ +
+Lemma eq_inv_nil : eq_inv (@nil S) (@nil T).
+ +
+Lemma eq_inv_sym (w1 : seq S) (w2 : seq T) :
+  eq_inv w1 w2 -> eq_inv w2 w1.
+ +
+Lemma eq_inv_trans (w1 : seq S) (w2 : seq T) (w3 : seq U) :
+  eq_inv w1 w2 -> eq_inv w2 w3 -> eq_inv w1 w3.
+ +
+End EqInvDef.
+ +
+Lemma eq_inv_size d1 d2 (T1 : inhOrderType d1) (T2 : inhOrderType d2)
+      (w1 : seq T1) (w2 : seq T2) :
+  eq_inv w1 w2 -> size w1 = size w2.
+ +
+Section EqInvAltDef.
+ +
+Context disp1 disp2 disp3
+          (S : inhOrderType disp1)
+          (T : inhOrderType disp2)
+          (U : inhOrderType disp3).
+ +
+Lemma eq_invP (w1 : seq S) (w2 : seq T) :
+  (size w1 = size w2 /\
+   forall i j, i <= j < size w1 ->
+               ((nth inh w1 i <= nth inh w1 j) =
+                (nth inh w2 i <= nth inh w2 j))%O)
+    <-> (eq_inv w1 w2).
+ +
+Lemma eq_inv_inversionP (w1 : seq S) (w2 : seq T) :
+  (size w1 = size w2 /\
+   forall i j, i <= j < size w1 ->
+               (nth inh w1 i > nth inh w1 j) =
+               (nth inh w2 i > nth inh w2 j))%O
+    <-> (eq_inv w1 w2).
+ +
+Lemma eq_inv_consK (a : S) u (b : T) v :
+  eq_inv (a :: u) (b :: v) -> eq_inv u v.
+ +
+Lemma eq_inv_rconsK (a : S) u (b : T) v :
+  eq_inv (rcons u a) (rcons v b) -> eq_inv u v.
+ +
+End EqInvAltDef.
+ +
+Lemma eq_inv_allgt_imply
+      d1 d2 (S : inhOrderType d1) (T : inhOrderType d2) (a : S) u (b : T) v :
+  eq_inv (a :: u) (b :: v) -> (allLtn u a) -> (allLtn v b).
+ +
+Lemma eq_inv_allgtnX
+      d1 d2 (S : inhOrderType d1) (T : inhOrderType d2) (a : S) u (b : T) v :
+  eq_inv (a :: u) (b :: v) -> (allLtn u a) = (allLtn v b).
+ +
+Section EqInvPosRemBig.
+ +
+Context disp1 disp2 (S : inhOrderType disp1) (T : inhOrderType disp2).
+ +
+Lemma eq_inv_posbig (u : seq S) (v : seq T) :
+  eq_inv u v -> posbig u = posbig v.
+ +
+Lemma eq_inv_rembig (u : seq S) (v : seq T) :
+  eq_inv u v -> eq_inv (rembig u) (rembig v).
+ +
+Lemma std_eq_inv (u : seq S) (v : seq T) :
+  eq_inv u v -> std u = std v.
+ +
+Lemma eq_inv_std (u : seq T) : eq_inv u (std u).
+ +
+End EqInvPosRemBig.
+ +
+Section Spec.
+ +
+Context disp1 disp2 (S : inhOrderType disp1) (T : inhOrderType disp2).
+ +
+Variant std_spec (s : seq T) (p : seq nat) : Prop :=
+  | StdSpec : is_std p -> eq_inv s p -> std_spec s p.
+ +
+Lemma std_spec_uniq (u : seq T) p q :
+  std_spec u p -> std_spec u q -> p = q.
+ +
+Lemma std_specP (s : seq T) : std_spec s (std s).
+ +
+Lemma stdP (s : seq T) p :
+  reflect (std_spec s p) (std s == p).
+ +
+Lemma std_eq_invP (u : seq S) (v : seq T) :
+  reflect (eq_inv u v) (std u == std v).
+ +
+Lemma std_rconsK (u : seq S) (v : seq T) a b :
+  std (rcons u a) = std (rcons v b) -> std u = std v.
+ +
+Lemma eq_inv_catl (u1 v1 : seq S) (u2 v2 : seq T) :
+  eq_inv (u1 ++ v1) (u2 ++ v2) -> size u1 = size u2 -> eq_inv u1 u2.
+ +
+Lemma eq_inv_catr (u1 v1 : seq S) (u2 v2 : seq T) :
+  eq_inv (u1 ++ v1) (u2 ++ v2) -> size u1 = size u2 -> eq_inv v1 v2.
+ +
+End Spec.
+ +
+Section StdTakeDrop.
+ +
+Context disp1 disp2 (S : inhOrderType disp1) (T : inhOrderType disp2).
+Implicit Type u v : seq T.
+ +
+Lemma std_take_std u v : std (take (size u) (std (u ++ v))) = std u.
+ +
+Lemma std_drop_std u v : std (drop (size u) (std (u ++ v))) = std v.
+ +
+End StdTakeDrop.
+ +
+Section PermEq.
+ +
+Context disp (Alph : orderType disp).
+Implicit Type u v : seq Alph.
+ +
+Theorem perm_stdE u v : perm_eq u v -> std u = std v -> u = v.
+ +
+End PermEq.
+ +
+
+ +
+

Standardization and elementary transpositions of a word

+ +
+
+Section Transp.
+ +
+Context disp (Alph : inhOrderType disp).
+Implicit Type u v : seq Alph.
+ +
+Lemma nth_transp u v a b i :
+  i != size u -> i != (size u).+1 ->
+  nth inh (u ++ [:: a; b] ++ v) i = nth inh (u ++ [:: b; a] ++ v) i.
+ +
+Lemma nth_sizeu u v a b :
+  nth inh (u ++ [:: a; b] ++ v) (size u) = a.
+ +
+Lemma nth_sizeu1 u v a b :
+  nth inh (u ++ [:: a; b] ++ v) (size u).+1 = b.
+ +
+Lemma nth_sizeu2 u v a b c :
+  nth inh (u ++ [:: a; b; c] ++ v) (size u).+2 = c.
+ +
+End Transp.
+ +
+Lemma eq_inv_transp d1 d2 (S : inhOrderType d1) (T : inhOrderType d2)
+      (u v : seq S) a b (U V : seq T) A B :
+  (a < b)%O -> (A < B)%O -> size u = size U ->
+  eq_inv (u ++ [:: a; b] ++ v) (U ++ [:: A; B] ++ V) ->
+  eq_inv (u ++ [:: b; a] ++ v) (U ++ [:: B; A] ++ V).
+ +
+Lemma std_transp d (T : inhOrderType d)
+      (u v : seq T) a b
+      (U V : seq nat) A B :
+  (a < b)%O -> size u = size U ->
+  std (u ++ [:: a; b] ++ v) = (U ++ [:: A; B] ++ V) ->
+  std (u ++ [:: b; a] ++ v) = (U ++ [:: B; A] ++ V).
+ +
+Lemma std_cutabc d (T : orderType d) (u v : seq T) a b c :
+  exists U V A B C, size u = size U /\
+  std (u ++ [:: a; b; c] ++ v) = (U ++ [:: A; B; C] ++ V).
+ +
+
+ +
+

Inverse of a standard word

+ +
+
+Lemma perm_size_uniq (T : eqType) (s1 s2 : seq T) :
+  uniq s1 -> {subset s1 <= s2} -> size s2 <= size s1 -> perm_eq s1 s2.
+ +
+Section InvSeq.
+ +
+Implicit Type n : nat.
+ +
+Definition linvseq s :=
+  [fun t => all (fun i => nth (size s) t (nth (size t) s i) == i)
+              (iota 0 (size s))].
+Definition invseq s t := linvseq s t && linvseq t s.
+ +
+Lemma linvseqP s t :
+  reflect
+    (forall i, i < size s -> nth (size s) t (nth (size t) s i) = i)
+    (linvseq s t).
+ +
+Lemma invseq_sym s t : invseq s t -> invseq t s.
+ +
+Lemma size_all_leq n t : (forall i, i < n -> i \in t) -> n <= size t.
+ +
+Lemma linvseq_ltn_szt s t :
+  linvseq s t -> forall i, i < size s -> nth (size t) s i < size t.
+ +
+Lemma size_leq_invseq s t : linvseq s t -> size s <= size t.
+ +
+Lemma size_invseq s t : invseq s t -> size s = size t.
+ +
+Lemma linvseq_subset_iota s t : linvseq s t -> {subset iota 0 (size s) <= t}.
+ +
+Lemma invseq_is_std s t : invseq s t -> is_std s.
+ +
+Lemma linvseq_sizeP s t :
+  linvseq s t -> size s = size t -> invseq s t.
+ +
+Lemma invseq_nthE s t :
+  invseq s t ->
+  forall i j, i < size s -> j < size t ->
+              (i = nth (size s) t j <-> nth (size t) s i = j).
+ +
+
+ +
+

inverse of the standardized of w

+ +
+
+ +
+Definition invstd s := mkseq (fun i => index i s) (size s).
+ +
+Lemma invseq_invstd s : is_std s -> invseq s (invstd s).
+ +
+Lemma size_invstd p : size (invstd p) = size p.
+ +
+Lemma invstd_is_std p : is_std p -> is_std (invstd p).
+ +
+Lemma invseqE s t1 t2 : invseq s t1 -> invseq s t2 -> t1 = t2.
+ +
+Lemma invstdK s : is_std s -> invstd (invstd s) = s.
+ +
+Lemma invstd_inj s t :
+  is_std s -> is_std t -> (invstd s) = (invstd t) -> s = t.
+ +
+End InvSeq.
+ +
+Section Examples.
+ +
+Let u := [:: 4; 1; 2; 2; 5; 3].
+Let v := [:: 0; 4; 3; 3].
+ +
+Goal std u = [:: 4; 0; 1; 2; 5; 3].
+ Goal invstd (std u) = filter (gtn (size u)) (invstd (std (u ++ v))).
+ +
+End Examples.
+ +
+
+
+ + + +
+ + + \ No newline at end of file diff --git a/combi/1.1.0/Combi.Combi.stdtab.html b/combi/1.1.0/Combi.Combi.stdtab.html new file mode 100644 index 00000000..2b35d6d8 --- /dev/null +++ b/combi/1.1.0/Combi.Combi.stdtab.html @@ -0,0 +1,654 @@ + + + + + +Combi.Combi.stdtab: Standard Tableaux + + + + +
+ + + +
+ +

Library Combi.Combi.stdtab: Standard Tableaux

+ +
+
+ +
+ +
+
+
+ +
+

Standard Tableaux

+ + +
+ +We define the following notions: + +
+ +
    +
  • append_nth t b i == t with b appended to its i-th row + +
    + + +
  • +
  • is_stdtab t == t is a *standard tableau* that is a tableau whose + row reading is a standard word + +
  • +
  • last_big t b == the index of the first row of t which ends with b + +
  • +
  • remn t == remove the largest entry ie n from a standard tableau of size n + +
  • +
  • conj_tab t == the conjugate standard tableau of t (this is indeed a tableau + when t is itself a standard tableau. + +
  • +
+ +
+ +Bijection between Yamanouchi words and standard tableau + +
+ +
    +
  • stdtab_of_yam y == the standard tableau associated to y + +
  • +
  • yam_of_stdtab t == the Yamanouchi words associated to t + +
  • +
+ +
+ +Sigma type for standard tableaux: + +
+ +
    +
  • is_stdtab_of_shape sh == a predicate for standard tableau of shape sh. + +
  • +
  • stdtabsh sh == a sigma type for is_stdtab_of_shape sh where sh is an + integer partition (of type intpart). This is canonically a + finType. + +
    + + +
  • +
  • is_stdtab_of_n n == a predicate for standard tableau of size n + +
  • +
  • stdtabn n == a sigma type for is_stdtab_of_n n. This is canonically a + finType. + +
    + + +
  • +
  • shape_deg t == if t is of type stdtabn n, the shape of t in the + sigma type 'P_n + +
    + + +
  • +
  • hyper_stdtabsh sh == the hyperstandard tableau of shape sh : intpart, + that is the tableau obtained by filling the rows with consecutive + numbers, from bottom to top (in French conventions) + +
    + + +
  • +
  • conj_stdtabn t == the conjugate of t : stdtabn n in type stdtabn n + +
  • +
  • conj_stdtabsh t == the conjugate of t : stdtabsh sh + in type stdtabsh (conj_intpart sh) + +
  • +
+ +
+ + +
+ +Among the main results are the fact that stdtab_of_yam and yam_of_stdtab +are two converse bijections. That is: + +
+ +
    +
  • Lemma stdtab_of_yamP y : is_yam y -> is_stdtab (stdtab_of_yam y). + +
    + + +
  • +
  • Theorem stdtab_of_yamK y : is_yam y -> yam_of_stdtab (stdtab_of_yam y) = y. + +
    + + +
  • +
  • Lemma yam_of_stdtabP t : is_stdtab t -> is_yam (yam_of_stdtab t). + +
    + + +
  • +
  • Theorem yam_of_stdtabK t : is_stdtab t -> stdtab_of_yam (yam_of_stdtab t) = +t. + +
  • +
+ +
+ +Moreover, these bijections preserve the shape and therefore the size: + +
+ +
    +
  • Lemma shape_stdtab_of_yam y : shape (stdtab_of_yam y) = evalseq y. + +
    + + +
  • +
  • Lemma shape_yam_of_stdtab t : is_stdtab t -> evalseq (yam_of_stdtab t) = +shape t. + +
    + + +
  • +
  • Lemma size_stdtab_of_yam y : size_tab (stdtab_of_yam y) = size y. + +
    + + +
  • +
  • Lemma size_yam_of_stdtab t : is_stdtab t -> size (yam_of_stdtab t) = size_tab +t. + +
    + + +
  • +
+ +
+
+From HB Require Import structures.
+From mathcomp Require Import all_boot order.
+From mathcomp Require Import perm fingroup.
+Require Import tools combclass partition Yamanouchi ordtype std tableau.
+ +
+Set Implicit Arguments.
+ +
+Import Order.Theory.
+ +
+
+ +
+

Appending on the n-th row

+ +
+
+Section AppendNth.
+ +
+Context disp (T : inhOrderType disp).
+Implicit Type b : T.
+Implicit Type t : seq (seq T).
+ +
+Definition append_nth t b i := set_nth [::] t i (rcons (nth [::] t i) b).
+ +
+Lemma perm_append_nth t x pos :
+  perm_eq (to_word (append_nth t x pos)) (x :: to_word t).
+ +
+Lemma shape_append_nth t b i : shape (append_nth t b i) = incr_nth (shape t) i.
+ +
+Lemma size_append_nth t b i : size_tab (append_nth t b i) = (size_tab t).+1.
+ +
+Lemma get_tab_append_nth (t : seq (seq T)) l i r c :
+  get_tab (append_nth t l i) (r, c) =
+  if (r == i) && (c == nth 0 (shape t) i) then l else get_tab t (r, c).
+ +
+
+ +
+

Finding the largest entry

+ +
+
+Fixpoint last_big t b :=
+  if t is t0 :: t' then
+    if last b t0 == b then 0
+    else (last_big t' b).+1
+  else 0.
+ +
+Lemma allLeq_to_word_hd r t b : allLeq (to_word (r :: t)) b -> allLeq r b.
+Lemma allLeq_to_word_tl r t b : allLeq (to_word (r :: t)) b -> allLeq (to_word t) b.
+ +
+Lemma last_bigP t b i :
+  is_tableau t -> allLeq (to_word t) b ->
+  reflect (last b (nth [::] t i) = b /\
+           forall j, j < i -> (last b (nth [::] t j) < b)%O)
+          (i == last_big t b).
+ +
+Lemma last_big_append_nth t b lb :
+  (forall j : nat, j < lb -> (last b (nth [::] t j) < b)%O) ->
+  last_big (append_nth t b lb) b = lb.
+ +
+End AppendNth.
+ +
+
+ +
+

Bijection standard tableau <-> Yamanouchi words

+ +
+
+Section Bijection.
+ +
+Implicit Type y : seq nat.
+Implicit Types t : seq (seq nat).
+ +
+Definition is_stdtab t := is_tableau t && is_std (to_word t).
+ +
+Lemma stdtabP t : is_stdtab t -> is_tableau t.
+ +
+Fixpoint stdtab_of_yam y :=
+  if y is y0 :: y' then
+    append_nth (stdtab_of_yam y') (size y') y0
+  else [::].
+ +
+Lemma shape_stdtab_of_yam y : shape (stdtab_of_yam y) = evalseq y.
+ +
+Lemma size_stdtab_of_yam y : size_tab (stdtab_of_yam y) = size y.
+ +
+Lemma std_of_yam y : is_std (to_word (stdtab_of_yam y)).
+ +
+
+ +
+The following proof is an experiment to see if proof using get_tab are + easier than proof by induction on the structure of tableaux +
+
+Lemma is_tab_append_nth_size_alternative_proof r T n :
+   all (gtn n) (to_word T) ->
+   is_part (incr_nth (shape T) r) ->
+   is_tableau T -> is_tableau (append_nth T n r).
+ +
+Lemma is_tab_append_nth_size r T n :
+   all (gtn n) (to_word T) ->
+   is_part (incr_nth (shape T) r) ->
+   is_tableau T -> is_tableau (append_nth T n r).
+ +
+Lemma stdtab_of_yamP y : is_yam y -> is_stdtab (stdtab_of_yam y).
+ +
+Section StdTabInd.
+ +
+Fixpoint remn_rec t n :=
+  if t is t0 :: t' then
+    match t0 with
+      | [::] => [::]
+      | l0 :: t0' => if last l0 t0' == n then
+                       if t0' == [::] then [::]
+                       else (belast l0 t0') :: t'
+                     else t0 :: remn_rec t' n
+    end
+  else [::] .
+Definition remn t := remn_rec t (size_tab t).-1.
+ +
+Lemma remnP t :
+  is_stdtab t -> t != [::] ->
+  is_tableau (remn t) /\
+  append_nth (remn t) (size_tab t).-1 (last_big t (size_tab t).-1) = t.
+ +
+Lemma is_stdtab_remn t : is_stdtab t -> is_stdtab (remn t).
+ +
+Lemma append_nth_remn t :
+  is_stdtab t -> t != [::] ->
+  append_nth (remn t) (size_tab t).-1 (last_big t (size_tab t).-1) = t.
+ +
+Lemma size_tab_remn t :
+  is_stdtab t -> t != [::] -> size_tab (remn t) = (size_tab t).-1.
+ +
+End StdTabInd.
+ +
+Fixpoint yam_of_stdtab_rec n t :=
+  if n is n'.+1 then
+    (last_big t n') :: yam_of_stdtab_rec n' (remn t)
+  else [::].
+Definition yam_of_stdtab t := yam_of_stdtab_rec (size_tab t) t.
+ +
+Lemma size_yam_of_stdtab_rec n t : size (yam_of_stdtab_rec n t) = n.
+ +
+Theorem yam_of_stdtabK t : is_stdtab t -> stdtab_of_yam (yam_of_stdtab t) = t.
+ +
+Lemma find_append_nth (l : nat) t r :
+  l \notin (to_word t) ->
+  find (fun x : seq nat => l \in x) (append_nth t l r) = r.
+ +
+Lemma size_notin_stdtab_of_yam y : (size y) \notin (to_word (stdtab_of_yam y)).
+ +
+Lemma incr_nth_injl u v i :
+  0 \notin u -> 0 \notin v -> incr_nth u i = incr_nth v i -> u = v.
+ +
+Lemma shape0 d (T : orderType d) (u : seq (seq T)) :
+  [::] \notin u -> 0 \notin (shape u).
+ +
+Lemma append_nth_injl d (T : inhOrderType d) (u v : seq (seq T)) (l : T) p :
+  [::] \notin u -> [::] \notin v ->
+  append_nth u l p = append_nth v l p -> u = v.
+ +
+Lemma stdtab_of_yam_nil y : is_yam y -> [::] \notin (stdtab_of_yam y).
+ +
+Lemma stdtab_of_yam_inj x y :
+  is_yam x -> is_yam y -> stdtab_of_yam x = stdtab_of_yam y -> x = y.
+ +
+Lemma shape_yam_of_stdtab t :
+  is_stdtab t -> evalseq (yam_of_stdtab t) = shape t.
+ +
+Lemma size_yam_of_stdtab t :
+  is_stdtab t -> size (yam_of_stdtab t) = size_tab t.
+ +
+Lemma part_yam_of_stdtab t :
+  is_stdtab t -> is_part (evalseq (yam_of_stdtab t)).
+ +
+Lemma yam_of_stdtabP t : is_stdtab t -> is_yam (yam_of_stdtab t).
+ +
+Theorem stdtab_of_yamK y : is_yam y -> yam_of_stdtab (stdtab_of_yam y) = y.
+ +
+End Bijection.
+ +
+Lemma eq_inv_is_row d1 d2 (T1 : inhOrderType d1) (T2 : inhOrderType d2)
+      (u1 : seq T1) (u2 : seq T2) :
+  eq_inv u1 u2 -> is_row u1 -> is_row u2.
+ +
+Lemma is_row_stdE d (T : inhOrderType d) (w : seq T) :
+  is_row (std w) = is_row w.
+ +
+
+ +
+

Sigma type for standard tableaux

+ +
+
+Section StdtabOfShape.
+ +
+Definition is_stdtab_of_shape sh := [pred t | (is_stdtab t) && (shape t == sh) ].
+Definition enum_stdtabsh sh : seq (seq (seq nat)) :=
+  map stdtab_of_yam (enum_yameval sh).
+ +
+Variable sh : intpart.
+ +
+Structure stdtabsh : Set :=
+  StdtabSh {
+      stdtabshval :> seq (seq nat);
+      _ : is_stdtab_of_shape sh stdtabshval
+  }.
+ +
+Let stdtabsh_enum : seq stdtabsh := pmap insub (enum_stdtabsh sh).
+ +
+Fact finite_stdtabsh : Finite.axiom stdtabsh_enum.
+ +
+ +
+Lemma stdtabshP (t : stdtabsh) : is_stdtab t.
+ +
+Lemma shape_stdtabsh (t : stdtabsh) : shape t = sh.
+ +
+Lemma enum_stdtabshE : map val (enum {: stdtabsh}) = enum_stdtabsh sh.
+ +
+Fact hyper_stdtabsh_subproof :
+  is_stdtab_of_shape sh (stdtab_of_yam (locked (hyper_yameval sh))).
+Definition hyper_stdtabsh := StdtabSh hyper_stdtabsh_subproof.
+ +
+End StdtabOfShape.
+#[export] Hint Resolve stdtabshP : core.
+ +
+Section StdtabCombClass.
+ +
+Variable n : nat.
+ +
+Definition is_stdtab_of_n := [pred t | (is_stdtab t) && (size_tab t == n) ].
+ +
+Structure stdtabn : Set :=
+  StdtabN {stdtabnval :> seq (seq nat); _ : is_stdtab_of_n stdtabnval}.
+ +
+Definition enum_stdtabn : seq (seq (seq nat)) :=
+  map (stdtab_of_yam \o val) (enum ({: yamn n})).
+Let stdtabn_enum : seq stdtabn := pmap insub enum_stdtabn.
+ +
+Fact finite_stdtabn : Finite.axiom stdtabn_enum.
+ +
+Lemma stdtabnP (s : stdtabn) : is_stdtab s.
+ +
+Lemma size_tab_stdtabn (s : stdtabn) : size_tab s = n.
+ +
+Lemma sumn_shape_stdtabnE (Q : stdtabn) : (sumn (shape Q)) = n.
+ +
+Lemma is_part_shape_deg (Q : stdtabn) : is_part_of_n n (shape Q).
+Definition shape_deg (Q : stdtabn) := IntPartN (is_part_shape_deg Q).
+ +
+End StdtabCombClass.
+ +
+Section StdtabnOfStdtabsh.
+ +
+Variables (n : nat) (sh : intpartn n).
+ +
+Fact stdtabn_of_sh_subproof (t : stdtabsh sh) : is_stdtab_of_n n t.
+Definition stdtabn_of_sh t := StdtabN (stdtabn_of_sh_subproof t).
+ +
+Lemma shape_deg_stdtabn_of_sh t :
+  shape_deg (stdtabn_of_sh t) = sh.
+ +
+End StdtabnOfStdtabsh.
+ +
+
+ +
+

Conjugate of a standard tableau

+ +
+
+Section ConjTab.
+ +
+Variables (disp: _) (T : inhOrderType disp).
+ +
+Definition conj_tab (t : seq (seq T)) : seq (seq T) :=
+  let c := conj_part (shape t) in
+  mkseq (fun i => mkseq (fun j => get_tab t (j, i)) (nth 0 c i)) (size c).
+ +
+Lemma size_conj_tab t : size (conj_tab t) = size (conj_part (shape t)).
+ +
+Lemma shape_conj_tab t : shape (conj_tab t) = conj_part (shape t).
+ +
+Lemma get_conj_tab t :
+  is_part (shape t) ->
+  forall i j, get_tab (conj_tab t) (i, j) = get_tab t (j, i).
+ +
+Lemma eq_from_shape_get_tab (t u : seq (seq T)) :
+  shape t = shape u -> get_tab t =1 get_tab u -> t = u.
+ +
+Lemma conj_tab_shapeK t : is_part (shape t) -> conj_tab (conj_tab t) = t.
+ +
+Lemma conj_tabK t : is_tableau t -> conj_tab (conj_tab t) = t.
+ +
+Lemma append_nth_conj_tab (t : seq (seq T)) l i :
+  is_part (shape t) ->
+  is_add_corner (shape t) i ->
+  conj_tab (append_nth t l i) = append_nth (conj_tab t) l (nth 0 (shape t) i).
+ +
+End ConjTab.
+ +
+Example conj_tab_expl1 :
+  conj_tab [:: [:: 0; 1; 4]; [:: 2; 3]] ==
+           [:: [:: 0; 2]; [:: 1; 3]; [:: 4]].
+ Example conj_tab_expl2 :
+  conj_tab [:: [:: 0; 1; 3; 4]; [:: 2; 5]; [:: 6]] ==
+           [:: [:: 0; 2; 6]; [:: 1; 5]; [:: 3]; [:: 4]].
+ +
+Lemma stdtab_get_tabNE t :
+  is_stdtab t ->
+  forall rc1 rc2,
+    in_shape (shape t) rc1 ->
+    in_shape (shape t) rc2 ->
+    rc1 != rc2 -> get_tab t rc1 != get_tab t rc2.
+ +
+Lemma is_stdtab_conj t : is_stdtab t -> is_stdtab (conj_tab t).
+ +
+Lemma conj_stdtabnP n (t : stdtabn n):
+  is_stdtab_of_n n (conj_tab t).
+Canonical conj_stdtabn n (t : stdtabn n) := StdtabN (conj_stdtabnP t).
+ +
+Lemma conj_stdtabshP (sh : intpart) (t : stdtabsh sh) :
+  is_stdtab_of_shape (conj_part sh) (conj_tab t).
+Canonical conj_stdtabsh {sh : intpart} (t : stdtabsh sh) :=
+  StdtabSh (conj_stdtabshP t).
+ +
+Definition stdtabshcast m n (eq_mn : m = n) t :=
+  let: erefl in _ = n := eq_mn return stdtabsh n in t.
+ +
+Lemma val_stdtabshcast m n (eq_mn : m = n) t :
+  val (stdtabshcast eq_mn t) = val t.
+ +
+Lemma conj_stdtabsh_bij sh : bijective (@conj_stdtabsh sh).
+ +
+Lemma card_stdtabsh_conj_part (sh : intpart) :
+  #|{: stdtabsh (conj_part sh)}| = #|{: stdtabsh sh}|.
+ +
+#[export] Hint Resolve stdtabnP stdtabshP : core.
+
+
+ + + +
+ + + \ No newline at end of file diff --git a/combi/1.1.0/Combi.Combi.subseq.html b/combi/1.1.0/Combi.Combi.subseq.html new file mode 100644 index 00000000..336f6f26 --- /dev/null +++ b/combi/1.1.0/Combi.Combi.subseq.html @@ -0,0 +1,277 @@ + + + + + +Combi.Combi.subseq: Subsequence of a sequence as a fintype + + + + +
+ + + +
+ +

Library Combi.Combi.subseq: Subsequence of a sequence as a fintype

+ +
+
+ +
+ +
+
+
+ +
+

Subsequence of a sequence as a fintype

+ +We define a sigma-type subseqs w for subsequence of a given sequence w +We show that subseqs w is canonically a finType. We define the three +following constructor + +
+ +
    +
  • Subseqs Pf == construct a subseqs w from a proof subseq x w. + +
  • +
  • sub_nil w == the empty sequence [::] as a subseqs w. + +
  • +
  • sub_full w == w as as a subseqs w. + +
    + + + +
  • +
+
+
+From HB Require Import structures.
+From mathcomp Require Import all_boot.
+Require Import tools combclass sorted.
+ +
+Set Implicit Arguments.
+ +
+
+ +
+TODO: these probably should be contributed to path.v +
+ +

A few lemmas about subseq and rcons

+ +
+
+Section RCons.
+ +
+Variable (T : eqType).
+Implicit Type s w : seq T.
+Implicit Type a b l : T.
+ +
+Lemma subseq_rcons_eq s w l : subseq s w = subseq (rcons s l) (rcons w l).
+ +
+Lemma subseq_rcons_neq s si w wn :
+  si != wn -> subseq (rcons s si) (rcons w wn) = subseq (rcons s si) w.
+ +
+End RCons.
+ +
+Section SubseqSorted.
+ +
+Variable (T : eqType) (leT : rel T).
+Implicit Type s : seq T.
+ +
+Lemma sorted_subseqP s1 s2 :
+  transitive leT -> irreflexive leT -> sorted leT s1 -> sorted leT s2 ->
+  reflect {subset s1 <= s2} (subseq s1 s2).
+ +
+End SubseqSorted.
+ +
+Section SubseqSortedIn.
+ +
+Variable (T : eqType) (leT : rel T).
+Implicit Type s : seq T.
+ +
+Lemma sorted_subseq_inP s1 s2 :
+  {in s2 & &, transitive leT} -> {in s2, irreflexive leT} ->
+  sorted leT s1 -> sorted leT s2 ->
+  reflect {subset s1 <= s2} (subseq s1 s2).
+ +
+End SubseqSortedIn.
+ +
+
+ +
+

Subsequence of a sequence as a fintype

+ +
+ +We define a dependent type SubSeq w and provide it with a Canonical +finType structure + +
+
+ +
+Section FinType.
+ +
+Variables (T : choiceType) (w : seq T).
+ +
+Structure subseqs : predArgType :=
+  Subseqs {subseqsval :> seq T; _ : subseq subseqsval w}.
+ +
+Implicit Type (s : subseqs).
+ +
+Lemma to_mask_spec s : {m : (size w).-tuple bool | mask m w == s}.
+Definition to_mask s := let: exist m _ := to_mask_spec s in m.
+ +
+Lemma to_maskK : cancel to_mask (fun m => Subseqs (mask_subseq (val m) w)).
+ +
+ +
+Lemma subseqsP s : subseq s w.
+ +
+Definition sub_nil : subseqs := Subseqs (sub0seq w).
+Definition sub_full : subseqs := Subseqs (subseq_refl w).
+ +
+Lemma mask1E x0 i :
+  i < size w -> mask [tuple val x == i | x < size w] w = [:: nth x0 w i].
+ +
+Lemma mask_injP :
+  reflect (injective (fun m : (size w).-tuple bool => mask (val m) w))
+          (uniq w).
+ +
+Lemma Subseqs_maskK :
+  uniq w -> cancel (fun m => Subseqs (mask_subseq (val m) w)) to_mask.
+ +
+Lemma enum_subseqsE :
+  perm_eq
+    (enum {: subseqs})
+    (undup [seq Subseqs (mask_subseq (val m) w) | m : (size w).-tuple bool]).
+ +
+Lemma val_enum_subseqs :
+  perm_eq
+    (map val (enum {: subseqs}))
+    (undup [seq mask (val m) w | m : (size w).-tuple bool]).
+ +
+Lemma seq_masks_uniq :
+  uniq w -> uniq [seq mask (val m) w | m : (size w).-tuple bool].
+ +
+Lemma subseqs_masks_uniq :
+  uniq w ->
+  uniq [seq Subseqs (mask_subseq (val m) w) | m : (size w).-tuple bool].
+ +
+End FinType.
+ +
+Section Bigop.
+ +
+Context {R : Type} {idx : R} {op : Monoid.com_law idx}.
+#[local] Notation "1" := idx.
+#[local] Notation "'*%M'" := op (at level 0).
+#[local] Notation "x * y" := (op x y).
+Context {T : choiceType}.
+ +
+Lemma big_subseqs (F : seq T -> R) (s : seq T) :
+  uniq s ->
+  \big[*%M/1]_(i : subseqs s) F i =
+  \big[*%M/1]_(m : (size s).-tuple bool) F (mask m s).
+ +
+Lemma big_subseqs_cond (P : pred (seq T)) (F : seq T -> R) (s : seq T) :
+  uniq s ->
+  \big[*%M/1]_(i : subseqs s | P i) F i =
+  \big[*%M/1]_(m : (size s).-tuple bool | P (mask m s)) F (mask m s).
+ +
+Lemma big_subseqs0 (F : seq T -> R) :
+  \big[*%M/1]_(i : subseqs [::]) F i = F [::].
+ +
+Lemma big_subseqs_cons (F : seq T -> R) (a : T) (s : seq T) :
+  uniq (a :: s) ->
+  \big[*%M/1]_(i : subseqs (a :: s)) F i =
+  \big[*%M/1]_(i : subseqs s) F (a :: i) * \big[*%M/1]_(i : subseqs s) F (i).
+ +
+Lemma big_subseqs_cons_cond
+      (F : seq T -> R) (P : pred (seq T)) (a : T) (s : seq T) :
+  uniq (a :: s) ->
+  \big[*%M/1]_(i : subseqs (a :: s) | P i) F i =
+  \big[*%M/1]_(i : subseqs s | P (a :: i)) F (a :: i) *
+  \big[*%M/1]_(i : subseqs s | P i) F (i).
+ +
+Lemma big_subseqs_undup (F : seq T -> R) (s : seq T) :
+  idempotent_op op ->
+  \big[*%M/1]_(i : subseqs s) F i =
+  \big[*%M/1]_(m : (size s).-tuple bool) F (mask m s).
+ +
+Lemma big_subseqs_undup_cond (F : seq T -> R) (P : pred (seq T)) (s : seq T) :
+  idempotent_op op ->
+  \big[*%M/1]_(i : subseqs s | P i) F i =
+  \big[*%M/1]_(m : (size s).-tuple bool | P (mask m s)) F (mask m s).
+ +
+End Bigop.
+ +
+
+ +
+

Relating sub sequences of iota and being sorted

+ +
+
+Lemma sorted_subseq_iota_rcons s n :
+  subseq s (iota 0 n) = sorted ltn (rcons s n).
+
+
+ + + +
+ + + \ No newline at end of file diff --git a/combi/1.1.0/Combi.Combi.tableau.html b/combi/1.1.0/Combi.Combi.tableau.html new file mode 100644 index 00000000..05c9e2d8 --- /dev/null +++ b/combi/1.1.0/Combi.Combi.tableau.html @@ -0,0 +1,563 @@ + + + + + +Combi.Combi.tableau: Young Tableaux + + + + +
+ + + +
+ +

Library Combi.Combi.tableau: Young Tableaux

+ +
+
+ +
+ +
+
+
+ +
+

Young Tableaux over an ordtype

+ + +
+ +We define the notion of (semistandard) Young tableau over an ordType +denoted T. + +
+ +
    +
  • is_row r == r is sorted + +
  • +
  • dominate u v == u dominate v, that is v is longer than u and + the i-th letter of u is strictly larger than the i-th letter of v. + this is an order relation on seq T. + +
  • +
  • is_tableau t == t of type (seq (seq T)) is a tableau that is a sequence + of non empty rows which is sorted for the dominate order. + +
  • +
  • get_tab t (r, c) == the element of t of coordinate (r, c), + or inhabitant T if (r, c) is not is the tableau + +
  • +
  • to_word t == the row reading of the tableau t + +
  • +
  • size_tab t == the size (number of boxes) of t + +
  • +
  • filter_gtnX_tab n t == the sub-tableau of t formed by the element smaller + than n. + +
    + + +
  • +
  • tabsh_reading sh w == w is the row reading of a tableau of shape sh + +
  • +
+ +
+ +In the following tableaux are considered on 'I_n.+1 for a given n. + +
+ +
    +
  • is_tab_of_shape sh t == t is a tableau of shape sh. + +
  • +
  • tabsh sh == a sigma-type for the predicate is_tab_of_shape sh where + sh is a partition of d (type 'P_d). This is canonically + a subFinType. + +
  • +
  • tabrowconst pf == if pf is a proof that size sh <= n.+1 then + construct the tableau (of type tabsh sh) whose i-th row + contains only i's as elements of 'I_n.+1. + +
  • +
+ +
+
+From HB Require Import structures.
+From mathcomp Require Import all_boot order.
+Require Import tools partition ordtype sorted.
+ +
+Set Implicit Arguments.
+ +
+Open Scope N.
+ +
+Import Order.Theory.
+ +
+
+ +
+

Specialization of sorted Lemmas

+ +
+
+Section Rows.
+ +
+Context disp (T : inhOrderType disp).
+ +
+Implicit Type l : T.
+Implicit Type r : seq T.
+ +
+Notation is_row := (sorted <=%O).
+ +
+Definition is_row1P Z r := sortedP Z (e := <=%O) (s := r).
+Definition is_rowP Z r := sorted2P Z (@le_trans _ T) (@le_refl _ T) r.
+Definition is_row_cons := sorted_cons (@le_refl _ T).
+Definition is_row_consK := sorted_consK (T := T) (R := <=%O).
+Definition is_row_rcons := sorted_rcons (T := T) (R := <=%O).
+Definition is_row_rconsK := sorted_rconsK (T := T) (R := <=%O).
+Definition is_row_last := sorted_last (@le_refl _ T).
+Definition is_row_take := take_sorted (T := T) (leT := <=%O).
+Definition is_row_drop := drop_sorted (T := T) (leT := <=%O).
+Definition is_row_cat2 := cat_sorted2 (T := T) (leT := <=%O).
+Definition head_leq_last_row :=
+  head_leq_last_sorted (@le_trans _ T) (@le_refl _ T).
+Lemma row_lt_by_pos Z r p q:
+  is_row r -> p < size r -> q < size r ->
+  (nth Z r p < nth Z r q)%O -> p < q.
+ +
+End Rows.
+ +
+Notation is_row := (sorted <=%O).
+ +
+
+ +
+

Dominance order for rows

+ +
+
+Section Dominate.
+ +
+Context {disp} {T : inhOrderType disp}.
+ +
+Implicit Type l : T.
+Implicit Type r u v : seq T.
+Implicit Type t : seq (seq T).
+ +
+Lemma in_shape_tab_size t i j :
+  in_shape (shape t) (i, j) -> i < size t.
+ Lemma in_shape_tab i j t :
+  in_shape (shape t) (i, j) -> j < size (nth [::] t i).
+ +
+Lemma is_row_set_nth l r pos :
+  is_row r -> (l < nth l r pos)%O ->
+  (forall n : nat, (l < nth l r n)%O -> pos <= n) ->
+  is_row (set_nth l r pos l).
+ +
+Fixpoint dominate_rec u v :=
+  if u is u0 :: u' then
+    if v is v0 :: v' then (u0 > v0)%O && (dominate_rec u' v')
+    else false
+  else true.
+ +
+Definition dominate u v :=
+  (size u <= size v) &&
+   (all (fun i => nth inh u i > nth inh v i)%O (iota 0 (size u))).
+ +
+Lemma dominate_recE : dominate =2 dominate_rec.
+ +
+Lemma dominateP u v :
+  reflect (size u <= size v /\
+           forall i, i < size u -> (nth inh u i > nth inh v i)%O)
+          (dominate u v).
+ +
+Lemma dominate_trans : transitive dominate.
+ +
+Definition dominate_rev_trans := rev_trans dominate_trans.
+ +
+Lemma dominate_rcons v u l : dominate u v -> dominate u (rcons v l).
+ +
+Lemma dominate_take v u n : dominate u (take n v) -> dominate u v.
+ +
+Lemma dominate_cut u v w:
+  size u <= size v -> dominate u (v ++ w) -> dominate u v.
+ +
+Lemma dominate_head u v :
+  u != [::] -> dominate u v -> (head inh v < head inh u)%O.
+ +
+Lemma dominate_tl a u b v :
+  dominate (a :: u) (b :: v) -> dominate u v.
+ +
+End Dominate.
+Arguments dominate_trans {disp T}.
+Arguments dominate_rev_trans {disp T}.
+ +
+
+ +
+

Tableaux : definition and basic properties

+ +
+
+Section Tableau.
+ +
+Context disp (T : inhOrderType disp).
+ +
+Implicit Type l : T.
+Implicit Type r w : seq T.
+Implicit Type t : seq (seq T).
+ +
+Fixpoint is_tableau t :=
+  if t is t0 :: t'
+  then [&& (t0 != [::]), is_row t0, dominate (head [::] t') t0 & is_tableau t']
+  else true.
+ +
+Definition get_tab t (rc : nat * nat) := nth inh (nth [::] t rc.1) rc.2.
+ +
+Definition to_word t := flatten (rev t).
+ +
+ +
+Lemma is_tableauP t :
+  reflect
+    [/\ forall i, i < size t -> (nth [::] t i) != [::],
+        forall i, is_row (nth [::] t i) &
+        forall i j, i < j -> dominate (nth [::] t j) (nth [::] t i)]
+    (is_tableau t).
+ +
+Lemma get_tab_default t rc :
+  ~~ in_shape (shape t) rc -> get_tab t rc = inh.
+ +
+Lemma to_word_cons r t : to_word (r :: t) = to_word t ++ r.
+Lemma to_word_rcons r t : to_word (rcons t r) = r ++ to_word t.
+ +
+Lemma mem_to_word t rc :
+  in_shape (shape t) rc -> get_tab t rc \in (to_word t).
+ +
+Lemma to_wordK t : rev (reshape (rev (shape t)) (to_word t)) = t.
+ +
+Lemma tableau_is_row r t : is_tableau (r :: t) -> is_row r.
+ +
+Lemma is_tableau_rconsK t (tn : seq T) :
+  is_tableau (rcons t tn) -> is_tableau t.
+ +
+Lemma is_tableau_catl t1 t2 :
+  is_tableau (t1 ++ t2) -> is_tableau t1.
+ +
+Lemma is_tableau_catr t1 t2 :
+  is_tableau (t1 ++ t2) -> is_tableau t2.
+ +
+Lemma is_part_sht t : is_tableau t -> is_part (shape t).
+ +
+Lemma tab_eqP p q :
+  is_tableau p -> is_tableau q ->
+  reflect (forall i, nth [::] p i = nth [::] q i) (p == q).
+ +
+Lemma is_tableau_sorted_dominate t :
+  is_tableau t =
+  [&& is_part (shape t),
+   all (sorted <=%O) t &
+   sorted (fun (r s : seq T) => dominate s r) t].
+ +
+Lemma is_tableau_getP t :
+  reflect
+    [/\ is_part (shape t),
+     (forall (r c : nat), in_shape (shape t) (r, c.+1) ->
+                          (get_tab t (r, c) <= get_tab t (r, c.+1))%O) &
+     (forall (r c : nat), in_shape (shape t) (r.+1, c) ->
+                          (get_tab t (r, c) < get_tab t (r.+1, c))%O)]
+    (is_tableau t).
+ +
+
+ +
+

Cuting rows and tableaux

+ +
+
+Lemma row_dominate (u v : seq T) :
+  is_row (u ++ v) -> dominate u v -> u = [::].
+ +
+Lemma filter_gt_row r n :
+  is_row r -> filter (>%O n) r = take (count (>%O n) r) r.
+ +
+Lemma filter_le_row n r :
+  is_row r -> filter (<=%O n) r = drop (count (>%O n) r) r.
+ +
+Lemma count_gt_dominate r1 r0 n :
+  dominate r1 r0 -> (count (>%O n) r1) <= (count (>%O n) r0).
+ +
+Lemma filter_gt_dominate r1 r0 n :
+  is_row r0 -> is_row r1 -> dominate r1 r0 ->
+  dominate (filter (>%O n) r1) (filter (>%O n) r0).
+ +
+Definition filter_gt_tab n :=
+  [fun t : (seq (seq T)) => filter (fun r => r != [::])
+                                   [seq [seq x <- i | (n > x)%O] | i <- t]].
+ +
+Lemma to_word_filter_nnil t : to_word (filter (fun r => r != [::]) t) = to_word t.
+ +
+Lemma filter_to_word t p : filter p (to_word t) = to_word (map (filter p) t).
+ +
+Lemma head_filter_gt_tab n t :
+  is_tableau t ->
+  head [::] (filter_gt_tab n t) = [seq x <- head [::] t | (x < n)%O].
+ +
+Lemma is_tableau_filter_gt t n :
+  is_tableau t -> is_tableau (filter_gt_tab n t).
+ +
+
+ +
+

The size of a tableau

+ +
+
+Definition size_tab t := sumn (shape t).
+ +
+Lemma tab0 t : is_tableau t -> size_tab t = 0 -> t = [::].
+ +
+Lemma size_to_word t : size (to_word t) = size_tab t.
+ +
+End Tableau.
+ +
+ +
+
+ +
+

Tableaux from their row reading

+ +
+
+Section TableauReading.
+ +
+Context disp (A : inhOrderType disp).
+ +
+Definition tabsh_reading (sh : seq nat) (w : seq A) :=
+  (size w == sumn sh) && (is_tableau (rev (reshape (rev sh) w))).
+ +
+Lemma tabsh_readingP (sh : seq nat) (w : seq A) :
+  reflect
+    (exists tab, [/\ is_tableau tab, shape tab = sh & to_word tab = w])
+    (tabsh_reading sh w).
+ +
+End TableauReading.
+ +
+
+ +
+

Sigma type for tableaux

+ +
+
+Section FinType.
+ +
+Context {disp} {T : inhFinOrderType disp}.
+Variables (d : nat) (sh : 'P_d).
+ +
+Definition is_tab_of_shape (sh : seq nat) :=
+  [pred t : seq (seq T) | (is_tableau t) && (shape t == sh) ].
+ +
+Structure tabsh : predArgType :=
+  TabSh {tabshval :> seq (seq T); _ : is_tab_of_shape sh tabshval}.
+ +
+Implicit Type (t : tabsh).
+ +
+Lemma tabshP t : is_tableau t.
+ +
+Lemma shape_tabsh t : shape t = sh.
+ +
+Lemma tabsh_to_wordK t : rev (reshape (rev sh) (to_word (val t))) = t.
+ +
+Let tabsh_enum :
+  seq tabsh := pmap insub
+              [seq rev (reshape (rev sh) (val w)) | w in {: d.-tuple T}].
+ +
+Lemma finite_tabsh : Finite.axiom tabsh_enum.
+ +
+ +
+Lemma to_word_enum_tabsh :
+  perm_eq
+    [seq to_word (tabshval t) | t : tabsh]
+    [seq x <- [seq (i : seq _) | i : d.-tuple T] | tabsh_reading sh x].
+ +
+End FinType.
+ +
+Notation "'tabsh[' T ']' mu" :=
+  (tabsh (T := T : inhFinOrderType _) mu) (at level 10).
+ +
+#[export] Hint Resolve tabshP : core.
+ +
+
+ +
+TODO : Generalise to any finite order using Order.enum_val when released +
+
+Section OrdTableau.
+ +
+Variable n : nat.
+Variables (d : nat) (sh : 'P_d).
+ +
+Implicit Type (t : tabsh['I_n.+1] sh).
+ +
+Lemma all_ltn_nth_tabsh t (i : nat) :
+  all (fun x : 'I_n.+1 => (i <= x)%O) (nth [::] t i).
+ +
+Lemma size_tabsh t : size t <= n.+1.
+ +
+Hypothesis Hszs : size sh <= n.+1.
+Lemma tabrowconst_subproof :
+  is_tab_of_shape
+    sh (take (size sh) [tuple nseq (nth 0 sh (i : 'I_n.+1)) i | i < n.+1]).
+Definition tabrowconst := TabSh (tabrowconst_subproof).
+ +
+End OrdTableau.
+ +
+
+ +
+

Tableaux and increasing maps

+ +
+
+Section IncrMap.
+ +
+Context disp1 disp2 (T1 : inhOrderType disp1) (T2 : inhOrderType disp2).
+Variable F : T1 -> T2.
+ +
+Lemma shape_map_tab (t : seq (seq T1)) :
+  shape [seq map F r | r <- t] = shape t.
+ +
+Lemma get_map_tab (t : seq (seq T1)) rc :
+  in_shape (shape t) rc ->
+  get_tab [seq [seq F i | i <- r0] | r0 <- t] rc = F (get_tab t rc).
+ +
+Lemma to_word_map_tab (t : seq (seq T1)) :
+  to_word [seq map F r | r <- t] = map F (to_word t).
+ +
+Lemma incr_tab (t : seq (seq T1)) :
+  {in (to_word t) &, {homo F : x y / (x < y)%O}} ->
+  (is_tableau t) = (is_tableau [seq map F r | r <- t]).
+ +
+End IncrMap.
+
+
+ + + +
+ + + \ No newline at end of file diff --git a/combi/1.1.0/Combi.Combi.vectNK.html b/combi/1.1.0/Combi.Combi.vectNK.html new file mode 100644 index 00000000..56ff07ec --- /dev/null +++ b/combi/1.1.0/Combi.Combi.vectNK.html @@ -0,0 +1,167 @@ + + + + + +Combi.Combi.vectNK: Integer Vector of Given Sums and Sizes + + + + +
+ + + +
+ +

Library Combi.Combi.vectNK: Integer Vector of Given Sums and Sizes

+ +
+
+ +
+ +
+
+
+ +
+

Integer vectors of sum n and size k

+ + +
+ +
    +
  • vect_n_k n k == the list of integer vectors of sum n and size k + +
  • +
  • cut_k k s == the list of the cutting of s in k slices (the result is of + type seq (seq T)) + +
  • +
  • cut3 s == the list of the cutting of s in 3 slices (the result is of type + seq (seq T) * (seq T) * (seq T)) + +
  • +
+ +
+ + +
+
+From Corelib Require Import Setoid.
+From mathcomp Require Import ssreflect ssrbool ssrfun ssrnat eqtype seq.
+Require Import tools.
+ +
+Set Implicit Arguments.
+ +
+Section VectNK.
+ +
+Fixpoint vect_n_k n k :=
+  if k is k'.+1
+  then flatten (mkseq (fun i => map (cons i) (vect_n_k (n-i) k') ) n.+1)
+  else if n is 0 then [:: [::]] else [::].
+ +
+Lemma vect_n_k_in n k s : sumn s == n -> size s == k -> s \in vect_n_k n k.
+ +
+Lemma in_vect_n_k n k s : s \in vect_n_k n k -> (sumn s == n) && (size s == k).
+ +
+Lemma vect_n_kP n k s : s \in vect_n_k n k = (sumn s == n) && (size s == k).
+ +
+Lemma vect_0_k k : vect_n_k 0 k = [:: nseq k 0].
+ +
+Lemma count_mem_vect_n_k_eq_1 n k s :
+  s \in vect_n_k n k -> count_mem s (vect_n_k n k) = 1.
+ +
+Lemma uniq_vect_n_k n k : uniq (vect_n_k n k).
+ +
+End VectNK.
+ +
+
+ +
+Cutting a seq in k slices : the result is of type seq (seq T) +
+
+ +
+Section CutK.
+ +
+Variable T : eqType.
+Implicit Type (s : seq T) (ss : seq (seq T)).
+ +
+Lemma mem_shape_vect_n_k ss :
+  (shape ss) \in vect_n_k (size (flatten ss)) (size ss).
+ +
+Definition cut_k k s := [seq reshape sh s | sh <- vect_n_k (size s) k].
+ +
+Lemma cut_k_flatten ss : ss \in cut_k (size ss) (flatten ss).
+ +
+Lemma flatten_equiv_cut_k s ss : s == flatten ss <-> ss \in cut_k (size ss) s.
+ +
+Lemma size_cut_k k s ss : ss \in (cut_k k s) -> size ss = k.
+ +
+End CutK.
+ +
+
+ +
+Cutting a seq in 3 slices : the result is of type + seq (seq T) * (seq T) * (seq T) +
+
+ +
+Section Cut3.
+ +
+Variable T : eqType.
+Implicit Type (s : seq T) (ss : seq (seq T)).
+ +
+Let match3 :=
+  fun ss => match ss return (seq T) * (seq T) * (seq T) with
+              | [:: a; b; c] => (a, b, c) | _ => ([::], [::], [::]) end.
+ +
+Definition cut3 s : seq ((seq T) * (seq T) * (seq T)) :=
+  [seq match3 ss | ss <- cut_k 3 s].
+ +
+Lemma cat3_equiv_cut3 s a b c : s == a ++ b ++ c <-> (a, b, c) \in cut3 s.
+ +
+End Cut3.
+
+
+ + + +
+ + + \ No newline at end of file diff --git a/combi/1.1.0/Combi.Erdos_Szekeres.Erdos_Szekeres.html b/combi/1.1.0/Combi.Erdos_Szekeres.Erdos_Szekeres.html new file mode 100644 index 00000000..3544f58a --- /dev/null +++ b/combi/1.1.0/Combi.Erdos_Szekeres.Erdos_Szekeres.html @@ -0,0 +1,88 @@ + + + + + +Combi.Erdos_Szekeres.Erdos_Szekeres: The Erdös-Szekeres theorem + + + + +
+ + + +
+ +

Library Combi.Erdos_Szekeres.Erdos_Szekeres: The Erdös-Szekeres theorem

+ +
+
+ +
+ +
+
+
+ +
+

The Erdös-Szekeres theorem on monotonic subsequences.

+ + +
+ +A proof of the Erdös Szekeres theorem about longest increasing and +decreasing subsequences. The theorem is Erdos_Szekeres and +says that any sequence s of length at least n*m+1 over a totally ordered +type contains +
    +
  • either a nondecreasing subsequence of length n+1; + +
  • +
  • or a strictly decreasing subsequence of length m+1. + +
  • +
+We prove it as a corollary of Greene's theorem on the Robinson-Schensted +correspondance. Note that there are other proofs which require less theory. + +
+
+From Corelib Require Import Setoid.
+From mathcomp Require Import ssreflect ssrfun ssrbool eqtype ssrnat seq fintype.
+From mathcomp Require Import tuple finfun finset bigop path order.
+ +
+Require Import partition tableau Schensted ordtype Greene Greene_inv.
+ +
+Set Implicit Arguments.
+ +
+Import Order.TTheory.
+Open Scope N.
+ +
+Lemma Greene_rel_one (T : eqType) (s : seq T) (R : rel T) :
+  exists t : seq T, subseq t s /\ sorted R t /\ size t = (Greene_rel R s) 1.
+ +
+Theorem Erdos_Szekeres disp (T : inhOrderType disp) (m n : nat) (s : seq T) :
+  size s > m * n ->
+  (exists t, subseq t s /\ sorted <=%O t /\ size t > m) \/
+  (exists t, subseq t s /\ sorted >%O t /\ size t > n).
+ +
+
+
+ + + +
+ + + \ No newline at end of file diff --git a/combi/1.1.0/Combi.HookFormula.Frobenius_ident.html b/combi/1.1.0/Combi.HookFormula.Frobenius_ident.html new file mode 100644 index 00000000..da23f995 --- /dev/null +++ b/combi/1.1.0/Combi.HookFormula.Frobenius_ident.html @@ -0,0 +1,108 @@ + + + + + +Combi.HookFormula.Frobenius_ident + + + + +
+ + + +
+ +

Library Combi.HookFormula.Frobenius_ident

+ +
+
+ +
+

Combi.hook.Frobenius_ident : Frobenius identity

+ +
+
+
+ +
+

A proof of Frobenius identity:

+ + +
+ +The goal of this file is to prove the following identities: +
+Frobenius_ident n :
+    n`! = \sum_(p : 'P_n) (n`! %/ (hook_length_prod p))^2. +
+ +
and +
+Theorem Frobenius_ident_rat n :
+    1 / (n`!)%:Q = \sum_(p : 'P_n) 1 / (hook_length_prod p)%:Q ^+ 2. +
+ +
+
+
+ +
+From Corelib Require Import Setoid.
+From mathcomp Require Import ssreflect ssrfun ssrbool eqtype choice ssrnat seq
+        ssrint div rat fintype finset bigop path ssralg ssrnum order.
+ +
+Set Implicit Arguments.
+ +
+Require Import ordtype partition tableau Schensted std stdtab hook.
+ +
+Section Identity.
+ +
+Variable n : nat.
+ +
+#[local] Notation stpn := (stdtabn n * stdtabn n)%type.
+Lemma card_stpn_shape :
+  #|[set p : stpn | shape p.1 == shape p.2]| =
+    \sum_(sh : 'P_n) #|{: stdtabsh sh}|^2.
+ +
+Lemma card_stpn_shape_hook :
+  #|[set p : stpn | shape p.1 == shape p.2]| =
+    \sum_(sh : 'P_n) (n`! %/ (hook_length_prod sh))^2.
+ +
+Theorem Frobenius_ident :
+  n`! = \sum_(p : 'P_n) (n`! %/ (hook_length_prod p))^2.
+ +
+#[local] Open Scope ring_scope.
+ +
+Import GRing.Theory.
+Import Num.Theory.
+ +
+Theorem Frobenius_ident_rat :
+  1 / (n`!)%:Q = \sum_(p : 'P_n) 1 / (hook_length_prod p)%:Q ^+ 2.
+ +
+End Identity.
+
+
+ + + +
+ + + \ No newline at end of file diff --git a/combi/1.1.0/Combi.HookFormula.hook.html b/combi/1.1.0/Combi.HookFormula.hook.html new file mode 100644 index 00000000..0825617b --- /dev/null +++ b/combi/1.1.0/Combi.HookFormula.hook.html @@ -0,0 +1,818 @@ + + + + + +Combi.HookFormula.hook: A proof of the Hook-Length formula + + + + +
+ + + +
+ +

Library Combi.HookFormula.hook: A proof of the Hook-Length formula

+ +
+
+ +
+ +
+
+
+ +
+

A proof of the Hook-Length formula

+ + +
+ +This file contains a proof of the Frame-Robinson-Thrall (see [FRT]) hook-Length +formula for the number of standard Young tableau. It follows +closely the probabilistic proof of [GNW]. + +
+ +
    +
  • [FRT] -- J. S. Frame, G. de B. Robinson and R. M. Thrall, + The hook graphs of the symmetric group, Canad. J. Math. 6 (1954), 316-324. + +
    + + +
  • +
  • [GNW] -- Greene, C., Nijenhuis, A. and Wilf, H. S., A probabilistic + proof of a formula for the number of Young tableaux of a given + shape, Adv. in Math. 31 (1979), 104–109. + +
  • +
+ +
+ +Here are the contents of the file: + +
+ +Basic notions: boxes, hook, corners... + +
+ +
    +
  • corner_box sh (r, c) == (r, c) are the coordinate of a corner of sh + +
  • +
  • arm_length sh (r, c) == the arm length of sh of the box (r, c) + +
  • +
  • leg_length sh (r, c) == the leg length of sh of the box (r, c) + +
  • +
  • hook_length sh (r, c) == the hook length of sh of the box (r, c) + +
    + + +
  • +
  • in_hook (r, c) (k, l) == the box (k, l) is in the hook of the box (r, c) + +
  • +
  • hook_box_indices (r, c) == a sequence of indexes for boxes in the hook of + (r, c): leg boxes are inl k, arm boxes are inr + +
  • +
  • hook_box (r, c) n == the coordinate of the box of index n + +
  • +
  • hook_boxes (r, c) == sequence of the boxes in the hool of (r, c) + +
  • +
+ +
+ +The probabilistic algorithm: + +
+ +
    +
  • is_trace p A B == the trace of a trial path in the partition p, that is + the pair of the vertical and horizontal projection (see GNW). + Specifically A and B are two non-empty strictly increasing + sequences of naturals ending at a corner of p. + +
    + + +
  • +
  • trace_seq last == all stricly increasing sequences ending by last + +
  • +
  • enum_trace Alpha Beta == all trace ending at (Alpha, Beta) + +
    + + +
  • +
  • walk_to_corner m (i, j) == the probabilistic distribution of traces of a + hook path of length at most m starting at (i, j) + +
  • +
  • choose_corner p == the probalistic distribution of a trace starting at + a uniformly chosen box + +
    + + +
  • +
  • starts_at (r, c) t == the trace t starts as (r, c) + +
  • +
  • starts_at (r, c) t == the trace t ends as (r, c) + +
  • +
+ +
+ +Formulas: + +
+ +
    +
  • RHSL3 p a b A B == the right hand side of Lemma 3 for a path starting + at (a, b) with projections A and B + +
  • +
  • RHSL3_trace p t == the right hand side of Lemma 3 for trace t in p + +
    + + +
  • +
  • hook_length_prod sh == the product of the hook length of sh + +
  • +
+ +
+ +Finally the main Theorem is stated as: + +
+ +
+Theorem HookLengthFormula (p : intpart) :
+  #|{: stdtabsh p}| = (sumn p)`! %/ (hook_length_prod p). +
+ +
+
+ + +
+
+ +
+Require Import Misc Ccpo.
+From mathcomp Require Import all_boot.
+From mathcomp Require Import ssrint div rat ssralg ssrnum.
+ +
+Require Import tools subseq partition Yamanouchi stdtab Qmeasure.
+ +
+Set Implicit Arguments.
+ +
+Import GRing.Theory.
+Import Num.Theory.
+ +
+#[local] Open Scope nat_scope.
+ +
+
+ +
+

Recursion for the number of Yamanouchi words and standard tableaux

+ +
+
+Lemma card_yama_rec (p : intpart) :
+  p != empty_intpart ->
+  #|{: yameval p}| =
+      \sum_(i <- rem_corners p) #|{: yameval (decr_nth_intpart p i)}|.
+ +
+Lemma card_yama0 : #|{: yameval empty_intpart}| = 1.
+ +
+Lemma card_yam_stdtabE (p : intpart) :
+  #|{: yameval p}| = #|{: stdtabsh p}|.
+ +
+#[local] Open Scope ring_scope.
+ +
+Lemma card_stdtabsh_rat_rec (F : intpart -> rat) :
+  F empty_intpart = 1 ->
+  ( forall p : intpart,
+      p != empty_intpart ->
+      F p = \sum_(i <- rem_corners p) F (decr_nth_intpart p i) ) ->
+  forall p : intpart, F p = #|{: stdtabsh p}|%:Q.
+ +
+Close Scope ring_scope.
+ +
+
+ +
+

Boxes, Hooks and corners

+ +
+ + Corner Boxes +
+
+ +
+Definition corner_box sh rc :=
+  is_rem_corner sh rc.1 && (rc.2 == (nth 0 sh rc.1).-1).
+ +
+Lemma corner_box_in_part sh rc :
+  corner_box sh rc -> in_shape sh rc.
+ +
+Lemma corner_box_conj_part sh u v :
+  is_part sh -> corner_box sh (u, v) -> corner_box (conj_part sh) (v, u).
+ +
+
+ +
+Arm Leg and Hook lengths +
+
+ +
+Definition arm_length sh rc := ((nth 0 sh rc.1) - rc.2).-1.
+Definition leg_length sh rc := (arm_length (conj_part sh) (rc.2, rc.1)).
+Definition hook_length sh rc := (arm_length sh rc + leg_length sh rc).+1.
+ +
+
+ +
+The hook length product +
+
+Definition hook_length_prod sh := (\prod_(b : box_in sh) hook_length sh b)%N.
+#[local] Notation HLF sh := (((sumn sh)`!)%:Q / (hook_length_prod sh)%:Q)%R.
+ +
+Lemma hook_length_geq1 sh rc : hook_length sh rc >= 1.
+ #[local] Hint Resolve hook_length_geq1 : core.
+ +
+Lemma hook_length_conj_part sh r c :
+  is_part sh -> hook_length (conj_part sh) (r, c) = hook_length sh (c, r).
+ +
+Lemma arm_length_ler sh r c j :
+  is_part sh -> r < j -> in_shape sh (j, c) ->
+  arm_length sh (j, c) <= arm_length sh (r, c).
+ +
+Lemma arm_length_ltl sh r c j :
+  is_part sh -> c < j -> in_shape sh (r, j) ->
+  arm_length sh (r, j) < arm_length sh (r, c).
+ +
+Lemma leg_length_ltr sh r c j :
+  is_part sh -> r < j -> in_shape sh (j, c) ->
+  leg_length sh (j, c) < leg_length sh (r, c).
+ +
+Lemma leg_length_lel sh r c j :
+  is_part sh -> c < j -> in_shape sh (r, j) ->
+  leg_length sh (r, j) <= leg_length sh (r, c).
+ +
+Lemma hook_length_ltl sh r c j :
+  is_part sh -> c < j -> in_shape sh (r, j) ->
+  hook_length sh (r, j) < hook_length sh (r, c).
+ +
+Lemma hook_length_ltr sh r c j :
+  is_part sh -> r < j -> in_shape sh (j, c) ->
+  hook_length sh (j, c) < hook_length sh (r, c).
+ +
+Lemma hook_length1_corner sh rc :
+  is_part sh -> in_shape sh rc ->
+  hook_length sh rc = 1 -> corner_box sh rc.
+ +
+Lemma corner_arm_length0 sh rc :
+  is_part sh -> corner_box sh rc -> arm_length sh rc = 0.
+ +
+Lemma corner_leg_length0 sh rc :
+  is_part sh -> corner_box sh rc -> leg_length sh rc = 0.
+ +
+Lemma corner_hook_length1 sh rc :
+  is_part sh -> corner_box sh rc -> hook_length sh rc = 1.
+ +
+Lemma arm_length_corner_box sh r c u v :
+  is_part sh ->
+  r <= u -> c <= v -> corner_box sh (u, v) ->
+  arm_length sh (r, c) = arm_length sh (u, c) + arm_length sh (r, v).
+ +
+Lemma leg_length_corner_box sh r c u v :
+  is_part sh ->
+  r <= u -> c <= v -> corner_box sh (u, v) ->
+  leg_length sh (r, c) = leg_length sh (u, c) + leg_length sh (r, v).
+ +
+Lemma hook_length_corner_box sh r c u v :
+  is_part sh -> r <= u -> c <= v -> corner_box sh (u, v) ->
+  hook_length sh (r, c) = hook_length sh (u, c) + hook_length sh (r, v) - 1.
+ +
+Lemma arm_length_incr_nth_row sh r c :
+  in_shape sh (r, c) ->
+  arm_length (incr_nth sh r) (r, c) = (arm_length sh (r, c)).+1.
+ +
+Lemma arm_length_incr_nth_nrow sh r c i :
+  i != r -> arm_length (incr_nth sh i) (r, c) = arm_length sh (r, c).
+ +
+Lemma hook_length_incr_nth_row sh r c :
+  is_part sh -> is_add_corner sh r -> in_shape sh (r, c) ->
+  hook_length (incr_nth sh r) (r, c) = (hook_length sh (r, c)).+1.
+ +
+Lemma hook_length_incr_nth_col sh r i :
+  is_part sh -> is_add_corner sh r ->
+  in_shape sh (i, (nth 0 sh r)) ->
+  hook_length (incr_nth sh r) (i, nth 0 sh r)
+  = (hook_length sh (i, nth 0 sh r)).+1.
+ +
+Lemma hook_length_incr_nth sh i r c :
+  is_part sh -> is_add_corner sh i ->
+  in_shape sh (r, c) ->
+  i != r -> nth 0 sh i != c ->
+  hook_length (incr_nth sh i) (r, c) = hook_length sh (r, c).
+ +
+Open Scope ring_scope.
+ +
+Lemma hook_length_pred sh rc :
+  (hook_length sh rc)%:~R - 1 = ((hook_length sh rc).-1)%:~R :> rat.
+ +
+Lemma prod_hook_length_quot_row p Alpha Beta :
+  is_part p -> corner_box p (Alpha, Beta) ->
+  \prod_(i <- enum_box_in (decr_nth p Alpha) | i.1 == Alpha)
+     ( (hook_length p i)%:Q /
+        (hook_length (decr_nth p Alpha) i)%:Q ) =
+  \prod_(0 <= j < Beta) (1 + ((hook_length p (Alpha, j))%:Q - 1)^-1).
+ +
+Close Scope ring_scope.
+ +
+Section FindCorner.
+ +
+Variable p : intpart.
+Implicit Types (r c k l : nat) (rc kl : nat * nat).
+ +
+
+ +
+

Hook boxes

+ +
+
+ +
+#[local] Notation conj := (conj_part p).
+ +
+Definition in_hook rc kl :=
+  let: (r, c) := rc in let: (k, l) := kl in
+  ((r == k) && (c < l < nth 0 p r)) ||
+  ((c == l) && (r < k < nth 0 conj c)).
+ +
+Lemma in_hook_shape rc kl :
+   in_shape p rc -> in_hook rc kl -> in_shape p kl.
+ +
+Definition hook_box_indices rc : seq (nat+nat) :=
+  [seq inl k | k <- iota rc.1.+1 ((nth 0 conj rc.2).-1 - rc.1)] ++
+  [seq inr k | k <- iota rc.2.+1 ((nth 0 p rc.1).-1 - rc.2)].
+Definition hook_box rc n : nat * nat :=
+  match n with inl k => (k,rc.2) | inr k => (rc.1,k) end.
+Definition hook_boxes rc := [seq hook_box rc n | n <- hook_box_indices rc].
+ +
+Lemma size_hook_box_indices rc :
+  size (hook_box_indices rc) = (hook_length p rc).-1.
+ +
+#[local] Lemma ltnPred a b : a < b -> (a <= b.-1).
+ +
+#[local] Lemma iota_hookE a b c : a < b -> b < a.+1 + (c.-1 - a) = (b < c).
+ +
+Lemma in_hook_boxesP rc kl : (kl \in hook_boxes rc) = (in_hook rc kl).
+ +
+Lemma hook_boxes_empty rc :
+  in_shape p rc -> hook_boxes rc = [::] -> corner_box p rc.
+ +
+
+ +
+

Traces

+ +
+
+Definition is_trace (A B : seq nat) :=
+  [&& (A != [::]), (B != [::]),
+    sorted ltn A, sorted ltn B &
+    corner_box p (last 0 A, last 0 B) ].
+ +
+Lemma is_trace_tll a A B : A != [::] -> is_trace (a :: A) B -> is_trace A B.
+ +
+Lemma is_trace_tlr b A B : B != [::] -> is_trace A (b :: B) -> is_trace A B.
+ +
+Lemma is_trace_lastr (a b : nat) (A B : seq nat) :
+  is_trace (a :: A) (b :: B) -> is_trace (a :: A) [:: last b B].
+ +
+Lemma is_trace_lastl (a b : nat) (A B : seq nat) :
+  is_trace (a :: A) (b :: B) -> is_trace [:: last a A] (b :: B).
+ +
+Lemma sorted_in_leq_last A a : sorted ltn A -> a \in A -> a <= last 0 A.
+ +
+Lemma sorted_leq_last A a : sorted ltn (a :: A) -> a <= last a A.
+ +
+Lemma is_trace_in_in_shape (A B : seq nat) : is_trace A B ->
+  forall a b, a \in A -> b \in B -> in_shape p (a, b).
+ +
+Lemma is_trace_in_shape (a b : nat) (A B : seq nat) :
+  is_trace (a :: A) (b :: B) -> in_shape p (a, b).
+ +
+Lemma trace_size_arm_length (a b : nat) (A B : seq nat) :
+  is_trace (a :: A) (b :: B) -> size B <= arm_length p (a, b).
+ +
+Lemma trace_size_leg_length (a b : nat) (A B : seq nat) :
+  is_trace (a :: A) (b :: B) -> size A <= leg_length p (a, b).
+ +
+Lemma size_tracer (a b : nat) (A B : seq nat) :
+  is_trace (a :: A) (b :: B) -> size B < hook_length p (a, b).
+ +
+Lemma size_tracel (a b : nat) (A B : seq nat) :
+  is_trace (a :: A) (b :: B) -> size A < hook_length p (a, b).
+ +
+Lemma is_trace_corner_nil (a b : nat) (A B : seq nat) :
+  is_trace (a :: A) (b :: B) ->
+  (size (hook_box_indices (a, b)) == 0) = (A == [::]) && (B == [::]).
+ +
+Lemma hook_length_last_rectangle (a b : nat) (A B : seq nat) :
+  is_trace (a :: A) (b :: B) ->
+  hook_length p (a, b)
+  = hook_length p (last a A, b) + hook_length p (a, (last b B)) - 1.
+ +
+Definition trace_seq (last : nat) : seq (seq nat) :=
+  [seq rcons tr last | tr : subseqs (iota 0 last)].
+ +
+Definition enum_trace (Alpha Beta : nat) : seq ((seq nat) * (seq nat)) :=
+  [seq (A, B) | A <- trace_seq Alpha, B <- trace_seq Beta].
+ +
+Lemma trace_seq_uniq l : uniq (trace_seq l).
+ +
+Lemma enum_trace_uniq (Alpha Beta : nat) : uniq (enum_trace Alpha Beta).
+ +
+Lemma trace_corner_box (Alpha Beta : nat) :
+  corner_box p (Alpha, Beta) ->
+  forall A B, A \in trace_seq Alpha -> B \in trace_seq Beta -> is_trace A B.
+ +
+Lemma trace_seqlP (A B : seq nat) :
+  is_trace A B -> A \in trace_seq (last 0 A).
+ +
+Lemma trace_seqrP (A B : seq nat) :
+  is_trace A B -> B \in trace_seq (last 0 B).
+ +
+Lemma enum_traceP (Alpha Beta : nat) :
+  corner_box p (Alpha, Beta) ->
+  forall A B,
+    (A, B) \in enum_trace Alpha Beta =
+    [&& (is_trace A B), (last 0 A == Alpha) & (last 0 B == Beta)].
+ +
+
+ +
+

The probabilistic algorithm

+ +
+
+ +
+Fixpoint walk_to_corner_rec (m : nat) (i j : nat) : distr (seq nat * seq nat) :=
+  if m is m'.+1 then
+    let s := hook_box_indices (i, j) in
+    (if size s is _.+1
+     then Mlet (Uniform (unif_def (inl 0%N) s))
+       (fun n => match n with
+        | inl k => Mlet (walk_to_corner_rec m' k j) (fun X => Munit (i::X.1, X.2))
+        | inr k => Mlet (walk_to_corner_rec m' i k) (fun X => Munit (X.1, j::X.2))
+        end)
+      else Munit ([::i],[::j]))
+   else Munit ([::i],[::j]).
+Definition walk_to_corner m ij := walk_to_corner_rec m ij.1 ij.2.
+ +
+Lemma walk_to_corner0_simpl r c :
+  walk_to_corner 0 (r, c) = Munit ([:: r], [:: c]).
+ +
+Lemma walk_to_corner_end_simpl m r c :
+  size (hook_box_indices (r, c)) = 0 ->
+  walk_to_corner m (r, c) = Munit ([:: r], [:: c]).
+ +
+Lemma walk_to_corner_simpl m r c :
+  forall (Hs : (size (hook_box_indices (r, c)) != 0)),
+    walk_to_corner m.+1 (r, c) =
+    Mlet (Uniform (mkunif (hook_box_indices (r, c)) Hs))
+      (fun n => match n with
+       | inl k => Mlet (walk_to_corner m (k, c)) (fun X => Munit (r::X.1, X.2))
+       | inr k => Mlet (walk_to_corner m (r, k)) (fun X => Munit (X.1, c::X.2))
+       end).
+ +
+Open Scope ring_scope.
+ +
+Lemma walk_to_corner_inv m r c :
+  mu (walk_to_corner m (r, c))
+     (fun HS => [&& size HS.1 != 0, size HS.2 != 0,
+                    head 0 HS.1 == r& head 0 HS.2 == c]%N%:Q)
+      = 1.
+ +
+#[local] Definition charfun A B := fun x : seq nat * seq nat => (x == (A, B))%:Q.
+ +
+Lemma walk_to_corner_emptyl m rc (A B : seq nat) :
+  (A == [::])%B -> mu (walk_to_corner m rc) (charfun A B) = 0.
+ +
+Lemma walk_to_corner_emptyr m rc (A B : seq nat) :
+  (B == [::])%B -> mu (walk_to_corner m rc) (charfun A B) = 0.
+ +
+Lemma charfun_simpll a A B :
+  (fun x => charfun (a :: A) B (a :: x.1, x.2)) == charfun A B.
+ +
+Lemma charfun_simplr b A B :
+  (fun x => charfun A (b :: B) (x.1, b :: x.2)) == charfun A B.
+ +
+Lemma walk_to_corner_decomp m a b (A B : seq nat) :
+  (size (hook_box_indices (a, b)) != 0)%N ->
+  is_trace (a::A) (b::B) ->
+  mu (walk_to_corner m.+1 (a, b)) (charfun (a :: A) (b :: B))
+  =
+  ( mu (walk_to_corner m (a, head O B)) (charfun (a :: A) B) +
+    mu (walk_to_corner m (head O A, b)) (charfun A (b :: B))
+  ) / (size (hook_box_indices (a, b)))%:Q.
+ +
+Lemma mu_walk_to_corner_is_trace rc m :
+  in_shape p rc ->
+  ((hook_length p rc) <= m.+1)%N ->
+  mu (walk_to_corner m rc) (fun X => (is_trace X.1 X.2)%:Q) = 1.
+ +
+
+ +
+Right hand size formula of Lemma 3. +
+
+Definition RHSL3 (a b : nat) (A B : seq nat) : rat :=
+  \prod_(i <- belast a A) (1 / ((hook_length p (i, last b (b :: B)))%:Q - 1)) *
+  \prod_(j <- belast b B) (1 / ((hook_length p (last a (a :: A), j))%:Q - 1)).
+ +
+Lemma Lemma3 m a b (A B : seq nat) :
+  (size A + size B <= m)%N -> is_trace (a :: A) (b :: B) ->
+  mu (walk_to_corner m (a, b)) (charfun (a :: A) (b :: B)) = RHSL3 a b A B.
+ +
+
+ +
+Choose a box in p +
+
+ +
+Definition choose_corner : distr ((seq nat) * (seq nat)) :=
+  Mlet (Random (sumn p).-1)
+       (fun n => let (r, c) := (reshape_index p n, reshape_offset p n) in
+                 walk_to_corner (hook_length p (r, c)).-1 (r, c)).
+ +
+Section EndsAt.
+ +
+Definition starts_at rc t := (head O t.1 == rc.1) && (head O t.2 == rc.2).
+Definition ends_at rc t := (last O t.1 == rc.1) && (last O t.2 == rc.2).
+Definition RHSL3_trace t :=
+  (RHSL3 (head O t.1) (head O t.2) (behead t.1) (behead t.2)).
+ +
+Variable (Alpha Beta : nat).
+Hypothesis Hcorn : corner_box p (Alpha, Beta).
+ +
+Lemma sumnpSPE : (sumn p).-1.+1 = sumn p.
+ +
+Lemma reshape_index_walk_to i (r := reshape_index p i) (c := reshape_offset p i) :
+  (i < sumn p)%N ->
+  mu (walk_to_corner (hook_length p (r, c)).-1 (r, c))
+     (fun pair => (ends_at (Alpha, Beta) pair)%:Q) =
+  \sum_(X <- enum_trace Alpha Beta | starts_at (r, c) X) RHSL3_trace X.
+ +
+Lemma prob_choose_corner_ends_at :
+  mu choose_corner (fun pair => (ends_at (Alpha, Beta) pair)%:Q) =
+  1 / (sumn p)%:Q * \sum_(X <- enum_trace Alpha Beta) RHSL3_trace X.
+ +
+End EndsAt.
+ +
+
+ +
+

The proof

+ +
+
+Section Formula.
+ +
+Variable T : countType.
+Variable R : comPzRingType.
+Variable alpha : T -> R.
+ +
+Lemma expand_prod_add1_seq (S : seq T) :
+  uniq S ->
+  \prod_(i <- S) (1 + alpha i) = \sum_(s : subseqs S) \prod_(i <- s) alpha i.
+ +
+End Formula.
+ +
+Section Theorem2.
+ +
+Variable (Alpha Beta : nat).
+Hypothesis Hcorn : corner_box p (Alpha, Beta).
+ +
+Let p' := decr_nth p Alpha.
+ +
+Fact Hcrn : is_rem_corner p Alpha.
+Hint Resolve Hcrn : core.
+ +
+Fact Hp : incr_nth p' Alpha = p.
+Fact Hpart' : is_part p'.
+Let Hpartc' : is_part (conj_part p') := is_part_conj Hpart'.
+Hint Resolve Hpart' Hpartc' : core.
+ +
+Fact HBeta : Beta = (nth O p Alpha).-1.
+Fact HBeta' : Beta = (nth O p' Alpha).
+ +
+Lemma Formula1 :
+  (hook_length_prod p)%:Q / (hook_length_prod p')%:Q =
+  ( \prod_(0 <= i < Alpha) (1 + ((hook_length p (i, Beta) )%:Q - 1)^-1) ) *
+  ( \prod_(0 <= j < Beta) (1 + ((hook_length p (Alpha, j))%:Q - 1)^-1) ).
+ +
+Lemma SimpleCalculation :
+  \sum_(X <- enum_trace Alpha Beta) RHSL3_trace X =
+  (hook_length_prod p)%:Q / (hook_length_prod p')%:Q.
+ +
+Theorem Theorem2 :
+  mu choose_corner (fun pair => (ends_at (Alpha, Beta) pair)%:Q) =
+  (HLF p') / (HLF p).
+ +
+End Theorem2.
+ +
+Open Scope ring_scope.
+ +
+Lemma ends_at_rem_cornerE :
+  (fun X : seq nat * seq nat =>
+     \sum_(i0 <- rem_corners p) (ends_at (i0, (nth O p i0).-1) X)%:Q)
+    == (fun X => (corner_box p (last O X.1, last O X.2))%:Q).
+ +
+Corollary Corollary4 :
+  p != empty_intpart ->
+  \sum_(i <- rem_corners p) (HLF (decr_nth p i)) / (HLF p) = 1.
+ +
+Corollary Corollary4_eq :
+  p != empty_intpart ->
+  \sum_(i <- rem_corners p) (HLF (decr_nth_intpart p i)) = HLF p.
+ +
+End FindCorner.
+ +
+Theorem HookLengthFormula_rat (p : intpart) :
+  ( (#|{: stdtabsh p}|)%:Q = HLF p )%R.
+ +
+Lemma hook_length_prod_non0 (p : intpart) : (hook_length_prod p) != 0.
+ +
+Lemma hook_length_prod_nat (p : intpart) :
+  #|{: stdtabsh p}| * (hook_length_prod p) = (sumn p)`!.
+ +
+Lemma hook_length_prod_div (p : intpart) : (hook_length_prod p) %| (sumn p)`!.
+ +
+Theorem HookLengthFormula (p : intpart) :
+  #|{: stdtabsh p}| = (sumn p)`! %/ (hook_length_prod p).
+
+
+ + + +
+ + + \ No newline at end of file diff --git a/combi/1.1.0/Combi.LRrule.Greene.html b/combi/1.1.0/Combi.LRrule.Greene.html new file mode 100644 index 00000000..99d76622 --- /dev/null +++ b/combi/1.1.0/Combi.LRrule.Greene.html @@ -0,0 +1,887 @@ + + + + + +Combi.LRrule.Greene: Greene monotone subsequence numbers + + + + +
+ + + +
+ +

Library Combi.LRrule.Greene: Greene monotone subsequence numbers

+ +
+
+ +
+ +
+
+
+ +
+

Greene monotone subsequences numbers

+ + +
+ +We define the following notions and notations: + +
+ +
    +
  • trivIseq U == u : seq {set T} contains pairwise disjoint sets. + +
  • +
+ +
+ +In the following, we denote: + +
+ +
    +
  • wt : an n.-tuple Alph for an alphabet Alph. + +
  • +
  • R : a relation on Alph + +
  • +
+ +
+ +Then we define: + +
+ +
    +
  • extractpred wt P == the sequence of the entries of wt whose index verify + the predicate P. + +
  • +
  • extract wt S == the sequence of the entries of wt supported by S, + that is, whose index are in S. + +
  • +
  • P \is a k.-supp[R, wt] == P : {set {set 'I_N}} is a k-support of wt + w.r.t R. This means that P is of cardinality at most k, contains + pairwise disjoint sets and finally that for all S in P, the + subsequence of wt of support S is sorted for the relation R. + +
  • +
  • Greene_rel_t R wt k == the maximal cardinality of the union of a k-support + of wt w.r.t R + +
  • +
  • Greene_rel R s k == Greene_rel_t R (in_tuple s) k + +
  • +
+ +
+ +We now suppose that Alph is canonically ordered. Moreover t is a tableau +on Alph. Then + +
+ +
    +
  • tabrows t == the sequence of the supports in the row-reading of t of + the rows of t + +
  • +
  • tabcols t == the sequence of the supports in the row-reading of t of + the columns of t + +
  • +
  • tabrowsk t k == the sequence of the supports in the row-reading of t of + the k first rows of t + +
  • +
  • tabcolsk t k == the sequence of the supports in the row-reading of t of + the k first columns of t + +
    + + +
  • +
  • Greene_row s k == Greene number for nondecreasing subsequence + +
  • +
  • Greene_col s k == Greene number for strictly decreasing subsequence + +
    + + +
  • +
  • ksupp_inj R1 R2 k u1 u2 == for each k-support for R1 of u1 there + exists a k-support for R2 of u2 of the same size. + +
  • +
+ +
+ +Among the main results is Theorem Greene_row_tab which assert that the +k-th row Greene number of the row reading of a tableau is the sum of the +length of the k first rows of its shape. Similarly Theorem Greene_col_tab +link column green number with the length of the column of the shape (with is +the same as the length of the row of the conjugate. + +
+ +As a consequence two tableaux whose row readings have the same row (or column) +Greene numbers have the same shape (this is Theorem Greene_row_tab_eq_shape and +Greene_col_tab_eq_shape). + +
+
+From mathcomp Require Import all_boot order.
+From mathcomp Require Import perm.
+ +
+Require Import sorted tools subseq partition tableau.
+Require Import Schensted congr plactic ordcast.
+ +
+Set Implicit Arguments.
+ +
+Import Order.Theory.
+ +
+Open Scope bool.
+ +
+Lemma unlift_seqE n (l : seq 'I_n.+1) :
+  sorted (fun i j : 'I_n.+1 => i < j) (ord0 :: l) ->
+  exists l1 : seq 'I_n,
+    sorted (fun i j : 'I_n => i < j) l1 /\ l = map (lift ord0) l1.
+ +
+Lemma ord0_in_map_liftF n (l : seq 'I_n) :
+  ord0 \in [seq lift ord0 i | i <- l] = false.
+ +
+Lemma mem_enum_seqE n (l : seq 'I_n) :
+  sorted (fun i j : 'I_n => val i < val j) l ->
+  [seq i <- enum 'I_n | i \in l] = l.
+ +
+
+ +
+

Trivial intersection sequences

+ +
+
+Section TrivISeq.
+ +
+Variable T : finType.
+ +
+Lemma bigcup_seq_cover (u : seq {set T}) :
+  \bigcup_(s <- u) s = cover [set s in u].
+ +
+Lemma card_seq (s : seq T) : #|[set i in s]| <= size s.
+ +
+Definition trivIseq (u : seq {set T}) : Prop :=
+  forall i j, i < j < size u -> [disjoint (nth set0 u i) & (nth set0 u j)].
+ +
+Lemma trivIseq_consK u0 u : trivIseq (u0 :: u) -> trivIseq u.
+ +
+Lemma trivIsubseq u v :
+  subseq u v -> trivIseq v -> trivIseq u.
+ +
+Lemma trivIs u : trivIseq u -> trivIset [set i | i \in u].
+ +
+Lemma trivIseq_cover S :
+  trivIseq S -> \sum_(i <- S) #|i| = #|\bigcup_(i <- S) i|.
+ +
+Lemma size_coverI (S : {set {set T}}) B :
+  trivIset S -> \sum_(i in S) #|i :&: B| = #|cover S :&: B|.
+ +
+Lemma trivIset_I (S : {set {set T}}) B :
+  trivIset S -> \sum_(i in S) #|i :&: B| <= #|B|.
+ +
+End TrivISeq.
+ +
+Lemma trivIseq_map (T1 T2 : finType) (f : T1 -> T2) (S : seq {set T1}) :
+  injective f -> trivIseq S -> trivIseq (map (fun s : {set T1} => f @: s) S).
+ +
+Lemma set_nil (T : finType) : [set s : T in [::]] = set0.
+ +
+Lemma cover_nil (T : finType) : #|cover [set s : {set T} in [::]]| = 0.
+ +
+Lemma subseq_take (T : eqType) k (l : seq T) : subseq (take k l) l.
+ +
+Section BigTrivISeq.
+ +
+Variable T : finType.
+Variables (R : Type) (idx : R) (op : Monoid.com_law idx).
+ +
+Lemma bigop_trivIseq (S : seq {set T}) F :
+  all (fun s => s != set0) S -> trivIseq S ->
+  \big[op/idx]_(i in [set x in S]) F i = \big[op/idx]_(i <- S) F i.
+ +
+End BigTrivISeq.
+ +
+Require Import ordtype.
+ +
+
+ +
+

Greene subsequence numbers

+

Definition and basic properties

+ +
+
+Section GreeneDef.
+ +
+Context {Alph : eqType}.
+ +
+Definition extractpred n (wt : n.-tuple Alph) (P : pred 'I_n) :=
+  [seq tnth wt i | i <- enum P].
+ +
+Lemma extractIE n (wt : n.-tuple Alph) P :
+  extractpred wt P = [seq tnth wt i | i <- enum 'I_n & P i].
+ +
+Lemma extractmaskE n (wt : n.-tuple Alph) P :
+  extractpred wt P = mask [seq P i | i <- enum 'I_n] wt.
+ +
+Lemma extsubsIm n wt (P1 P2 : pred 'I_n) :
+  subpred P1 P2 -> subseq (extractpred wt P1) (extractpred wt P2).
+ +
+Lemma extsubsm n (w : n.-tuple Alph) (P : pred 'I_n) :
+  subseq (extractpred w P) w.
+ +
+Variable R : rel Alph.
+Hypothesis HR : transitive R.
+ +
+Variable N : nat.
+Variable wt : N.-tuple Alph.
+ +
+Definition extract := [fun s : {set 'I_N} => extractpred wt (mem s)].
+ +
+Lemma size_extract s : size (extract s) = #|s|.
+ +
+Lemma extsubsI (s1 s2 : {set 'I_N}) :
+  s1 \subset s2 -> subseq (extract s1) (extract s2).
+ +
+Lemma sorted_extract_cond s P :
+  sorted R (extract s) -> sorted R (extract (s :&: P)).
+ +
+Definition ksupp (k : nat) :=
+  [qualify a P : {set {set 'I_N}} |
+   [&& (#|P| <= k)%N, trivIset P & [forall (s | s \in P), sorted R (extract s)]]].
+ +
+#[local] Notation "k .-supp" := (ksupp k)
+  (at level 2, format "k .-supp") : form_scope.
+ +
+Lemma ksupp0 k : set0 \is a k.-supp.
+ +
+Definition Greene_rel_t k := \max_(P | P \is a k.-supp) #|cover P|.
+ +
+Notation Ik k := [set i : 'I_N | i < k].
+ +
+Lemma iotagtnk k : [seq x <- iota 0 N | gtn k x] = iota 0 (minn N k).
+ +
+Lemma sizeIk k : #|Ik k| = minn N k.
+ +
+Lemma extract0 : extract set0 = [::].
+ +
+Lemma extract1 i : extract [set i] = [:: tnth wt i].
+ +
+Lemma extractS (l : seq 'I_N) :
+  sorted (fun i j : 'I_N => val i < val j) l ->
+  extract [set i in l] = [seq tnth wt i | i <- l].
+ +
+Lemma extract2 i j :
+  val i < val j -> extract [set i; j] = [:: tnth wt i; tnth wt j].
+ +
+Lemma Greene_rel_t_inf k : Greene_rel_t k >= minn N k.
+ +
+Lemma Greene_rel_t_sup k : Greene_rel_t k <= N.
+ +
+Lemma Greene_rel_t_0 : Greene_rel_t 0 = 0.
+ +
+End GreeneDef.
+ +
+Notation "k '.-supp' [ R , wt ]" := (@ksupp _ R _ wt k)
+  (at level 2, format "k '.-supp' [ R , wt ]") : form_scope.
+ +
+Section Cast.
+ +
+Context {T : eqType}.
+ +
+Lemma ksupp_cast R (w1 w2 : seq T) (H : w1 = w2) k Q :
+  Q \is a k.-supp[R, in_tuple w1] ->
+  (cast_set (congr1 size H)) @: Q \is a k.-supp[R, in_tuple w2].
+ +
+Lemma eq_Greene_rel_t (R1 R2 : rel T) N (u : N.-tuple T) :
+  R1 =2 R2 -> Greene_rel_t R1 u =1 Greene_rel_t R2 u.
+ +
+Lemma Greene_rel_t_cast R M N (Heq : M = N) k (V : M.-tuple T) :
+  Greene_rel_t R (tcast Heq V) k = Greene_rel_t R V k.
+ +
+Lemma Greene_rel_t_uniq (leT : rel T) N (u : N.-tuple T) :
+  uniq u ->
+  Greene_rel_t leT u =1 Greene_rel_t (fun x y => (x != y) && (leT x y)) u.
+ +
+End Cast.
+ +
+
+ +
+

Greene numbers of a concatenation

+ +
+
+Section GreeneCat.
+ +
+Context {Alph : eqType}.
+Variable R : rel Alph.
+Hypothesis HR : transitive R.
+ +
+Variable M N : nat.
+Variable V : M.-tuple Alph.
+Variable W : N.-tuple Alph.
+ +
+#[local] Notation lsh := (@lshift M N).
+#[local] Notation rsh := (@rshift M N).
+ +
+Lemma enumIMN : enum 'I_(M + N) = map lsh (enum 'I_M) ++ map rsh (enum 'I_N).
+ +
+Let lsplit := [fun s : {set 'I_(M+N)} => lsh @^-1: s].
+Let rsplit := [fun s : {set 'I_(M+N)} => rsh @^-1: s].
+ +
+Lemma disjoint_inj (sM : {set 'I_M}) (sN : {set 'I_N}) :
+  [disjoint lsh @: sM & rsh @: sN].
+ +
+Lemma splitsetK (s : {set 'I_(M+N)}) :
+  s = (lsh @: lsplit s) :|: (rsh @: rsplit s).
+ +
+Lemma cutcover (p : {set {set 'I_(M + N)}}) :
+  cover p = lsh @: (cover (lsplit @: p)) :|: rsh @: (cover (rsplit @: p)).
+ +
+Lemma extlsplit s :
+  extract V (lsplit s) =
+  extract [tuple of V ++ W] (s :&: [set i : 'I_(M+N)| i < M]).
+ +
+Lemma extrsplit s :
+  extract W (rsplit s) =
+  extract [tuple of V ++ W] (s :&: [set i : 'I_(M+N)| i >= M]).
+ +
+#[local] Notation scover := (fun x => #|cover x|).
+ +
+Lemma Greene_rel_t_cat k :
+  Greene_rel_t R [tuple of V ++ W] k <= Greene_rel_t R V k + Greene_rel_t R W k.
+ +
+End GreeneCat.
+ +
+Section GreeneSeq.
+ +
+Context {Alph : eqType}.
+Variable R : rel Alph.
+Hypothesis HR : transitive R.
+ +
+Definition Greene_rel u := [fun k => Greene_rel_t R (in_tuple u) k].
+ +
+Lemma Greene_rel_cat k v w :
+  Greene_rel (v ++ w) k <= Greene_rel v k + Greene_rel w k.
+ +
+Let negR := (fun a b => ~~(R a b)).
+Hypothesis HnegR : transitive negR.
+ +
+Lemma Greene_rel_seq r k : sorted negR r -> Greene_rel r k = minn (size r) k.
+ +
+End GreeneSeq.
+ +
+Lemma eq_Greene_rel (T : eqType) (R1 R2 : rel T) u :
+  R1 =2 R2 -> Greene_rel R1 u =1 Greene_rel R2 u.
+ +
+Lemma Greene_rel_uniq (T : eqType) (leT : rel T) u :
+  uniq u ->
+  Greene_rel leT u =1 Greene_rel (fun x y => (x != y) && (leT x y)) u.
+ +
+Lemma size_cover_inj (T1 T2 : finType) (F : T1 -> T2) (P : {set {set T1}}):
+  injective F -> #|cover P| = #|cover [set F @: S | S : {set T1} in P]|.
+ +
+
+ +
+

Injection of k-supports

+ +
+
+Section GreeneInj.
+ +
+Context {T1 T2 : eqType}.
+Variable R1 : rel T1.
+Variable R2 : rel T2.
+ +
+Definition ksupp_inj k (u1 : seq T1) (u2 : seq T2) :=
+  forall s1, s1 \is a k.-supp[R1, in_tuple u1] ->
+             exists s2, (#|cover s1| == #|cover s2|)
+                          && (s2 \is a k.-supp[R2, in_tuple u2]).
+ +
+Lemma leq_Greene k (u1 : seq T1) (u2 : seq T2) :
+  ksupp_inj k u1 u2 -> Greene_rel R1 u1 k <= Greene_rel R2 u2 k.
+ +
+End GreeneInj.
+ +
+
+ +
+

Reverting a word on the dual alphabet

+ +
+
+Section Rev.
+ +
+Context {Alph : eqType}.
+Implicit Type u v w : seq Alph.
+Implicit Type p : seq nat.
+Implicit Type t : seq (seq Alph).
+ +
+#[local] Definition revset n (s : {set 'I_n}) : {set 'I_n} :=
+  [set rev_ord x | x in s].
+ +
+Lemma revsetK {n} : involutive (@revset n).
+ +
+Lemma ksupp_inj_rev (leT : rel Alph) u k :
+  ksupp_inj leT (fun y x => leT x y) k u (rev u).
+ +
+Lemma Greene_rel_rev (leT : rel Alph) u :
+  Greene_rel leT u =1 Greene_rel (fun y x => leT x y) (rev u).
+ +
+End Rev.
+ +
+
+ +
+

Greene number for tableaux

+ +
+
+Section GreeneRec.
+ +
+Context {disp} {Alph : inhOrderType disp}.
+Implicit Type u v w : seq Alph.
+Implicit Type t : seq (seq Alph).
+ +
+Let sym_cast m n (i : 'I_(m + n)) : 'I_(n + m) := cast_ord (addnC m n) i.
+ +
+ +
+#[local] Definition shiftset s0 sh :=
+  [fun s : {set 'I_(sumn sh)} => (sym_cast \o (@lshift (sumn sh) s0)) @: s].
+ +
+#[local] Fixpoint shrows sh : seq {set 'I_(sumn sh)} :=
+  if sh is s0 :: sh then
+    [set (sym_cast \o (@rshift (sumn sh) s0)) i | i in 'I_s0] ::
+    map (@shiftset s0 sh) (shrows sh)
+  else [::].
+#[local] Fixpoint shcols sh : seq {set 'I_(sumn sh)} :=
+  if sh is s0 :: sh then
+    [seq (sym_cast (@rshift (sumn sh) s0 i)) |:
+         (@shiftset s0 sh (nth set0 (shcols sh) i))
+    | i <- enum 'I_s0]
+  else [::].
+ +
+Let cast_set_tab t :=
+  [fun s : {set 'I_(sumn (shape t))} => (cast_ord (esym (size_to_word t))) @: s].
+ +
+Definition tabrows t := map (cast_set_tab t) (shrows (shape t)).
+Definition tabcols t := map (cast_set_tab t) (shcols (shape t)).
+Definition tabrowsk t := [fun k => take k (tabrows t)].
+Definition tabcolsk t := [fun k => take k (tabcols t)].
+ +
+Lemma size_shcols_cons s0 sh : size (shcols (s0 :: sh)) = s0.
+ +
+Lemma size_shcols sh : size (shcols sh) = head 0 sh.
+ +
+Lemma size_tabcols t : size (tabcols t) = size (head [::] t).
+ +
+Lemma size_shrows sh : size (shrows sh) = size sh.
+ +
+Lemma size_tabrows t : size (tabrows t) = size t.
+ +
+Lemma shcol_cards sh :
+  is_part sh ->
+  map (fun S : {set 'I_(sumn sh)} => #|S|) (shcols sh) = conj_part sh.
+ +
+Lemma shrows_cards sh :
+  map (fun S : {set 'I_(sumn sh)} => #|S|) (shrows sh) = sh.
+ +
+Lemma tabrows_non0 t :
+  is_part (shape t) -> forall s, s \in tabrows t -> s != set0.
+ +
+Lemma trivIseq_shrows sh : trivIseq (shrows sh).
+ +
+Lemma trivIset_tabrowsk k t : trivIset [set s | s \in (tabrowsk t k)].
+ +
+Lemma trivIseq_shcols sh : trivIseq (shcols sh).
+ +
+Lemma trivIseq_tabcols (t : seq (seq Alph)) : trivIseq (tabcols t).
+ +
+Lemma trivIset_tabcolsk k t : trivIset [set s | s \in (tabcolsk t k)].
+ +
+
+ +
+

Induction step: adding a row to a tableau

+ +
+
+Section Induction.
+ +
+Variable (t0 : seq Alph) (t : seq (seq Alph)).
+ +
+Lemma size_to_word_cons : size (to_word t) + size t0 = size (to_word (t0 :: t)).
+ +
+#[local] Definition cast_cons := cast_ord size_to_word_cons.
+#[local] Definition rsh_rec := (cast_cons \o (@rshift (size (to_word t)) (size t0))).
+#[local] Definition lsh_rec := (cast_cons \o (@lshift (size (to_word t)) (size t0))).
+ +
+Lemma lshift_recP : injective lsh_rec.
+Lemma rshift_recP : injective rsh_rec.
+ +
+Lemma lrshift_recF i j : (lsh_rec i == rsh_rec j) = false.
+ +
+Lemma rshift_in_lshift_recF i (s : {set 'I_(size (to_word t))}) :
+  rsh_rec i \in [set lsh_rec x | x in s] = false.
+ +
+Lemma lshift_in_rshift_recF i (s : {set 'I_(size t0)}) :
+  lsh_rec i \in [set rsh_rec x | x in s] = false.
+ +
+Lemma disjoint_inj_rec (st : {set 'I_(size (to_word t))}) (s0 : {set 'I_(size t0)}) :
+  [disjoint lsh_rec @: st & rsh_rec @: s0].
+ +
+#[local] Definition lsplit_rec :=
+  [fun s : {set 'I_(size (to_word (t0 :: t)))} => lsh_rec @^-1: s].
+#[local] Definition rsplit_rec :=
+  [fun s : {set 'I_(size (to_word (t0 :: t)))} => rsh_rec @^-1: s].
+ +
+Lemma split_recabK (s : {set 'I_(size (to_word (t0 :: t)))}) :
+  s = (lsh_rec @: lsplit_rec s) :|: (rsh_rec @: rsplit_rec s).
+ +
+Lemma split_rec_cover (p : {set {set 'I_(size (to_word (t0 :: t)))}}) :
+  cover p =
+  lsh_rec @: (cover (lsplit_rec @: p)) :|: rsh_rec @: (cover (rsplit_rec @: p)).
+ +
+Lemma lcast_com :
+  (cast_ord (esym (size_to_word (t0 :: t))))
+    \o sym_cast \o (@lshift (sumn (shape t)) (size t0))
+  =1 lsh_rec \o (cast_ord (esym (size_to_word t))).
+ +
+Lemma rcast_com :
(cast_ord (esym (size_to_word (t0 :: t))))
+   \o sym_cast \o (@rshift (sumn (shape t)) (size t0)) =1 rsh_rec.
+ +
+Lemma enumIsize_to_word :
+  enum 'I_(size (to_word (t0 :: t))) =
+  map lsh_rec (enum 'I_(size (to_word t))) ++ map rsh_rec (enum 'I_(size t0)).
+ +
+Lemma extract_tabrows_0 :
+  extract (in_tuple (to_word (t0 :: t))) (nth set0 (tabrows (t0 :: t)) 0) = t0.
+ +
+Lemma extract_tabrows_rec i :
+  i < size t ->
+  extract (in_tuple (to_word (t0 :: t))) (nth set0 (tabrows (t0 :: t)) i.+1) =
+  extract (in_tuple (to_word t)) (nth set0 (tabrows t) i).
+ +
+Lemma tabcols_cons :
+  tabcols (t0 :: t) =
+    [seq rsh_rec i |: (lsh_rec @: (nth set0 (tabcols t) i))
+      | i <- enum 'I_(size t0)].
+ +
+Lemma size_tabcols_cons : size (tabcols (t0 :: t)) = size t0.
+ +
+Lemma extract_tabcols_rec i :
+  i < size t0 ->
+  extract (in_tuple (to_word (t0 :: t))) (nth set0 (tabcols (t0 :: t)) i) =
+  rcons (extract (in_tuple (to_word t)) (nth set0 (tabcols t) i))
+        (nth inh t0 i).
+ +
+Lemma lsplit_rec_tab k :
+  head 0 (shape t) <= size t0 ->
+  cover [set lsplit_rec x | x in [set s in tabcolsk (t0 :: t) k]] =
+  cover [set s in tabcolsk t k].
+ +
+Lemma rsplit_rec_tab k :
+  cover [set rsplit_rec x | x in [set s in (tabcolsk (t0 :: t)) k]] =
+  [set i : 'I_(size t0) | i < k].
+ +
+Lemma cover_tabcols_rec k :
+  head 0 (shape t) <= size t0 ->
+  cover [set s in (tabcolsk (t0 :: t) k)] =
+  rsh_rec @: [set s : 'I_(size t0) | s < k]
+           :|: lsh_rec @: cover [set s in (tabcolsk t k)].
+ +
+End Induction.
+ +
+Lemma size_cover_tabrows k t :
+  is_part (shape t) ->
+  #|cover [set s | s \in (tabrowsk t k)]| = sumn (take k (shape t)).
+ +
+Lemma sorted_leqX_tabrows t i :
+  is_tableau t -> i < size (tabrows t) ->
+  sorted <=%O (extract (in_tuple (to_word t)) (nth set0 (tabrows t) i)).
+ +
+Lemma ksupp_leqX_tabrowsk k t :
+  is_tableau t ->
+  [set s | s \in (tabrowsk t k)] \is a k.-supp[<=%O, in_tuple (to_word t)].
+ +
+Lemma size_cover_tabcolsk k t :
+  is_part (shape t) ->
+  #|cover [set s | s \in (tabcolsk t k)]| = \sum_(l <- (shape t)) minn l k.
+ +
+Lemma cover_tabcols t :
+  is_part (shape t) -> cover [set s | s \in tabcols t] = setT.
+ +
+Lemma sorted_gt_tabcols t i :
+  is_tableau t -> i < size (tabcols t) ->
+  sorted >%O (extract (in_tuple (to_word t)) (nth set0 (tabcols t) i)).
+ +
+Lemma ksupp_gt_tabcolsk k t :
+  is_tableau t ->
+  [set s | s \in (tabcolsk t k)] \is a k.-supp[>%O, in_tuple (to_word t)].
+ +
+End GreeneRec.
+ +
+
+ +
+

Greene numbers of a tableau

+ +
+
+Section GreeneTab.
+ +
+Context {disp} {Alph : inhOrderType disp}.
+ +
+Implicit Type t : seq (seq Alph).
+ +
+Definition Greene_row := Greene_rel (@Order.le _ Alph).
+Definition Greene_col := Greene_rel (@Order.gt _ Alph).
+ +
+Lemma gt_trans : transitive (@Order.gt _ Alph).
+ +
+Lemma size_row_extract t U V :
+  is_tableau t -> V \in (tabcols t) ->
+  sorted <=%O (extract (in_tuple (to_word t)) U) ->
+  #|U :&: V| <= 1.
+ +
+Lemma tabcol_cut t :
+  is_part (shape t) -> forall B, \sum_(U <- tabcols t) #|B :&: U| = #|B|.
+ +
+Lemma shape_tabcols t:
+  is_tableau t ->
+  conj_part (shape t) = [seq #|s : {set 'I_(size (to_word t))}| | s <- tabcols t].
+ +
+Theorem Greene_row_tab k t :
+  is_tableau t -> Greene_row (to_word t) k = sumn (take k (shape t)).
+ +
+Theorem Greene_col_tab k t :
+  is_tableau t -> Greene_col (to_word t) k = sumn (take k (conj_part (shape t))).
+ +
+End GreeneTab.
+ +
+
+ +
+

Recovering a shape from Greene numbers on tableaux

+ +
+
+Theorem Greene_row_tab_eq_shape
+        d1 d2 (T1 : inhOrderType d1) (T2 : inhOrderType d2)
+        (t1 : seq (seq T1)) (t2 : seq (seq T2)) :
+  is_tableau t1 -> is_tableau t2 ->
+  (forall k, Greene_row (to_word t1) k = Greene_row (to_word t2) k) ->
+  (shape t1 = shape t2).
+ +
+Theorem Greene_col_tab_eq_shape
+        d1 d2 (T1 : inhOrderType d1) (T2 : inhOrderType d2)
+        (t1 : seq (seq T1)) (t2 : seq (seq T2)) :
+  is_tableau t1 -> is_tableau t2 ->
+  (forall k, Greene_col (to_word t1) k = Greene_col (to_word t2) k) ->
+  (shape t1 = shape t2).
+
+
+ + + +
+ + + \ No newline at end of file diff --git a/combi/1.1.0/Combi.LRrule.Greene_inv.html b/combi/1.1.0/Combi.LRrule.Greene_inv.html new file mode 100644 index 00000000..5d9c6562 --- /dev/null +++ b/combi/1.1.0/Combi.LRrule.Greene_inv.html @@ -0,0 +1,1158 @@ + + + + + +Combi.LRrule.Greene_inv: Greene subsequence theorem + + + + +
+ + + +
+ +

Library Combi.LRrule.Greene_inv: Greene subsequence theorem

+ +
+
+ +
+ +
+
+
+ +
+

Greene subsequence theorem

+ + +
+ +The goal of this file is to show that row and column Greene numbers are plactic +invariants. As a consequence, for any word w, the Greene numbers of w are +equal to the Greene numbers of the row reading of its insertion tableau. This +ultimately allows to prove the reciprocal of Sch_plact, that is + +
+ + Theorem plactic_RS u v : u =Pl v <-> RS u == RS v. + +
+ +The main tool of the proof is surgery of k-supports along plactic rewriting. +As a consequence, the whole file is rather technical with no external use except +for the final theorems. To keep notation short while avoiding to pollute the +global namespace we enclosed the different cases into Coq modules. +
+ + +
+ +Here is the content of the file: + +
+ +Greene numbers and duality: + +
+ +The following function allows to transfer k-support through duality: +
    +
  • rev_ord_cast w i == size w - i : 'I_(size (revdual w)) + +
  • +
  • rev_set w S == the image of S by rev_ord_cast w + +
  • +
  • rev_ksupp w P == the image of P by rev_set w + +
  • +
  • rev_ksupp_inv w == the inverse of rev_ksupp w + +
  • +
+ +
+ +The Greene numbers of a word and its reversed dual agrees: Lemmas +Greene_col_dual and Greene_row_dual. +
+ + +
+ +Swapping two letters: + +
+ +In Module Swap, we fix two words u v and two letters l0 l1. +We denote x the word x := u l0 l1 v. Then we define: +
    +
  • pos0 u v l0 l1 == the position of l0 in x as a 'I_(size x) + +
  • +
  • pos1 u v l0 l1 == the position of l1 in x as a 'I_(size x) + +
  • +
  • swap i == exchange l0 and l1 and fixes all the other positions. + +
  • +
  • swap_set S == then image of S by swap + +
  • +
+We prove then various lemmas such as swap_size_cover asserting that swaping +keep the size of the cover. +
+ + +
+ +In Module NoSetContainingBoth, we consider x := u a b v. +We assume that (the position of) a and b are not in the same set of a +given k-support P. We construct a k-support Q for y := u b a v of the +same cover size: +
    +
  • swap_set S == exchange the position of a and b in + S : {set 'I_(size x)} and return the result as a {set 'I_(size y)} + +
  • +
  • Q P == for a k-support P for x, then Q P is a k-support for y + of the same cardinality, assuming that a and b are not in the + same set of P. + +
  • +
+The main results are lemmas ksupp_Q and size_cover_Q. + +
+ +
+ + +
+ +In Module SetContainingBothLeft, we denote x := u b a c v and consider +a given k-support P containing both a and c. We want to deal at once with +the case where a < b <= c and R := <= and c < b <= a and R := >. +So we encaspulate the hypothesis in a record hypRabc which contains among +other that R b c holds but not R b a. Specifically: +
    +
  • hypRabc R a b c == a record encapsulating that a R b R c for a total + strict or non strict order R. + +
  • +
+We construct in lemmas RabcLeqX and RabcGtnX the two records dealing with +the two preceding cases. + +
+ +We are looking for a k-support for y := u b c a v of the same size. To be +able to apply the preceding module, we need to construct another k-support Q +for x with the same cover than P, but such that a and c are not in the +same set. There are two cases: + +
+ +1- if b is not in cover P: We define: + +
+ + Qbnotin P == P with a replaced by b. This is a still a k-support + for x of the same cardinality by lemmas ksupp_bnotin and + size_cover_bnotin. + +
+ +2- if b is in cover P: Due to monotonic condition, b must be in a + different set T in P than the set S which contains a and b. The + idea is that S and T should exchange their part in c :: v. We + therefore define: + +
+ + S1 S T == the elements of S which are on the left of a + + the elements of T which are in v + S1 S T == the elements of T which are on the left of b + + the elements of S which are in c :: v + Qbin P S T == P where we have replaced S and T by S1 and T1. + It is a k-support for x (Lemma ksupp_bin) with the same cover + than p (Lemma cover_bin). + +
+ +Then we prove consecutively two theorems: +
    +
  • SetContainingBothLeft.exists_Q_noboth which allows to to assume that there + is a k-support where no set contains both a and c. + +
  • +
  • SetContainingBothLeft.exists_Qy which find a k-support for + y := u b c a v of the same size of cover. + +
  • +
+ +
+ +This allow to show that each plactic rewriting rule leave the Greene numbers +invariant. +
+ + +
+ +We conclude by the main results: +
    +
  • Greene_row_invar_plactic and Greene_col_invar_plactic asserting than + Greene numbers are plactic invariants. + +
  • +
  • plactic_RS which shows that the plactic classes are the fiber of the + Robinson-Schensted map. + +
  • +
  • shape_RS_revdual asserting that the tableaux associated to a word and its + revdual have the same shapes. + +
  • +
  • RS_rev_uniq asserting that reverting a uniq word conjugate its insertion + tableau. + +
    + + + +
  • +
+
+
+From mathcomp Require Import all_boot order.
+From mathcomp Require Import perm.
+Require Import tools ordcast ordtype subseq partition tableau Yamanouchi stdtab.
+Require Import Schensted congr plactic Greene.
+ +
+Set Implicit Arguments.
+ +
+Import Order.Theory.
+ +
+Open Scope bool.
+ +
+Section Duality.
+ +
+Context {disp} {Alph : inhOrderType disp}.
+Let word := seq Alph.
+ +
+Lemma extract_cut (N : nat) (wt : N.-tuple Alph) (i : 'I_N) (S : {set 'I_N}) :
+  i \in S ->
+  extract wt S =
+  extract wt (S :&: [set j : 'I_N | j < i]) ++
+          (tnth wt i) :: extract wt (S :&: [set j : 'I_N | j > i]).
+ +
+
+ +
+

k-Support and order duality

+ +
+
+Implicit Type a b c : Alph.
+Implicit Type u v w r : word.
+ +
+Variable w : word.
+Variable k : nat.
+ +
+#[local] Definition rev_ord_cast : 'I_(size w) -> 'I_(size (revdual w)) :=
+  (cast_ord (size_revdual w)) \o (@rev_ord _).
+#[local] Definition rev_set (s : {set 'I_(size w)}) : {set 'I_(size (revdual w))} :=
+  [set rev_ord_cast i | i in s].
+ +
+#[local] Definition rev_ksupp (P : {set {set 'I_(size w)}}) :
+  {set {set 'I_(size (revdual w))}} :=
+  [set rev_set u | u in P].
+#[local] Definition rev_ksupp_inv (S : {set {set 'I_(size (revdual w))}}) :
+  {set {set 'I_(size w)}} :=
+  [set rev_ord_cast @^-1: s | s : {set 'I_(_)} in S].
+ +
+Lemma rev_ord_cast_inj : injective rev_ord_cast.
+ +
+Lemma rev_set_inj : injective rev_set.
+ +
+Lemma rev_ksuppK : cancel rev_ksupp rev_ksupp_inv.
+ +
+Lemma rev_ksuppKV : cancel rev_ksupp_inv rev_ksupp.
+ +
+#[local] Lemma irev_w i : i < size w -> size w - i.+1 < size w.
+ +
+Lemma rev_enum :
+  enum 'I_(size (revdual w)) = rev [seq rev_ord_cast i | i : 'I_(size w)].
+ +
+Lemma extract_rev_set S :
+  extract (in_tuple (revdual w)) (rev_set S) = revdual (extract (in_tuple w) S).
+ +
+Lemma is_row_dual T :
+  sorted <=%O (extract (in_tuple w) T) =
+  sorted <=%O (extract (in_tuple (revdual w)) (rev_set T)).
+ +
+Lemma is_col_dual T :
+  sorted >%O (extract (in_tuple w) T) =
+  sorted >%O (extract (in_tuple (revdual w)) (rev_set T)).
+ +
+Lemma size_rev_ksupp P : #|rev_ksupp P| = #|P|.
+ +
+Lemma trivIset_setrev P : trivIset P = trivIset (rev_ksupp P).
+ +
+Lemma rev_is_ksupp_row P :
+  (P \is a k.-supp[<=%O, in_tuple w]) =
+  (rev_ksupp P \is a k.-supp[<=%O, in_tuple (revdual w)]).
+ +
+Lemma rev_is_ksupp_col P :
+  (P \is a k.-supp[>%O, in_tuple w]) =
+  (rev_ksupp P \is a k.-supp[>%O, in_tuple (revdual w)]).
+ +
+Lemma size_cover_rev P : #|cover (rev_ksupp P)| = #|cover P|.
+ +
+Lemma Greene_row_dual : Greene_row w k = Greene_row (revdual w) k.
+ +
+Lemma Greene_col_dual : Greene_col w k = Greene_col (revdual w) k.
+ +
+End Duality.
+ +
+
+ +
+

Swaping two letters in a word and its k-supports

+ +
+
+Module Swap.
+Section Swap.
+ +
+Context {disp} {Alph : inhOrderType disp}.
+Let word := seq Alph.
+ +
+Implicit Type a b c : Alph.
+Implicit Type u v w r : word.
+ +
+Variable R : rel Alph.
+ +
+Variable u v : word.
+Variable l0 l1 : Alph.
+Let x := u ++ [:: l0; l1] ++ v.
+ +
+Lemma pos0_subproof : size u < size x.
+Definition pos0 := Ordinal pos0_subproof.
+Lemma pos1_subproof : (size u).+1 < size x.
+Definition pos1 := Ordinal pos1_subproof.
+ +
+Lemma tnth_pos0 : tnth (in_tuple x) pos0 = l0.
+ +
+Lemma tnth_pos1 : tnth (in_tuple x) pos1 = l1.
+ +
+Lemma pos01F : (pos0 == pos1) = false.
+ +
+Definition swap (i : 'I_(size x)) : 'I_(size x) :=
+  if i == pos0 then pos1 else if i == pos1 then pos0 else i.
+ +
+Lemma swap_invol : involutive swap.
+Lemma swap_inj : injective swap.
+ +
+Lemma swap0 : swap pos0 = pos1.
+Lemma swap1 : swap pos1 = pos0.
+Lemma swapL (i : 'I_(size x)) : i < size u -> swap i = i.
+Lemma swapR (i : 'I_(size x)) : i > (size u).+1 -> swap i = i.
+ +
+Definition swap_set :=
+  [fun s : {set 'I_(size x)} => swap @: s : {set 'I_(size x)}].
+Lemma swap_set_invol : involutive swap_set.
+Lemma swap_set_inj : injective swap_set.
+ +
+Lemma swap_cover (P : {set {set 'I_(size x)}}) :
+  cover (swap_set @: P) = swap_set (cover P).
+ +
+Lemma swap_size_cover (P : {set {set 'I_(size x)}}) :
+  #|cover (swap_set @: P)| = #|cover P|.
+ +
+Lemma enum_cut : enum 'I_(size x) =
+                 [seq i <- enum 'I_(size x) | val i < size u]
+                   ++ [:: pos0; pos1]
+                   ++ [seq i <- enum 'I_(size x) | val i >= (size u) + 2].
+ +
+Lemma size_cut_sizeu :
+  size [seq i <- enum 'I_(size x) | val i < size u] = size u.
+ +
+End Swap.
+End Swap.
+ +
+
+ +
+

Case where no sets contains both

+ + +
+ +The goal of this module is the following: given a k-support P for the word +u ++ [:: a; b] ++ v which doesn't have as subsequence containing both +a and b to construct a k-support Q for u ++ [:: b; a] ++ v with +the same cover size. These statements are Lemmas ksupp_Q and size_cover_Q + +
+
+Module NoSetContainingBoth.
+ +
+Section Case.
+ +
+Context {disp} {Alph : inhOrderType disp}.
+Let word := seq Alph.
+ +
+Implicit Type a b c : Alph.
+Implicit Type u v w r : word.
+ +
+Variable R : rel Alph.
+ +
+Variable u v : word.
+Variable a b : Alph.
+Variable k : nat.
+Let x := u ++ [:: a; b] ++ v.
+Let y := u ++ [:: b; a] ++ v.
+ +
+Variable P : {set {set 'I_(size x)}}.
+Hypothesis Px : P \is a k.-supp[R, in_tuple x].
+ +
+Notation posa := (Swap.pos0 u v a b).
+Notation posb := (Swap.pos1 u v a b).
+Notation swapX := (@Swap.swap _ u v a b).
+Notation swap_setX := (Swap.swap_set u v a b).
+ +
+Hypothesis HnoBoth :
+  forall S : {set 'I_(size x)}, S \in P -> ~ ((posa \in S) && (posb \in S)).
+ +
+Lemma Hcast : size x = size y.
+ +
+
+ +
+This is essentially : set cast_ord Hcast x | x in swap_setX S. +
+
+Definition swap_set : {set 'I_(size x)} -> {set 'I_(size y)} :=
+  (fun S : {set 'I_(size x)} => [set cast_ord Hcast x | x in S]) \o swap_setX.
+
+ +
+This is essentially : set swap_set x | x in P +
+
+Definition Q : {set {set 'I_(size y)}} := imset swap_set (mem P).
+ +
+Lemma swap_set_inj : injective swap_set.
+ +
+Lemma extract_swap_set S :
+  S \in P -> extract (in_tuple y) (swap_set S) = extract (in_tuple x) S.
+ +
+Lemma ksupp_Q : Q \is a k.-supp[R, in_tuple y].
+ +
+Lemma size_cover_Q : #|cover P| == #|cover Q|.
+ +
+End Case.
+ +
+End NoSetContainingBoth.
+ +
+
+ +
+

Cover surgery

+ +
+
+Section CoverSurgery.
+ +
+Variable N : nat.
+Variable S : {set 'I_N}.
+Variable P Q : {set {set 'I_N}}.
+ +
+Lemma trivIset_coverU1 :
+  trivIset P -> [disjoint S & cover P] -> trivIset (S |: P).
+ +
+Lemma disjoint_cover (A B : {set 'I_N}) :
+  [disjoint cover P & cover Q] -> A \in P -> B \in Q -> [disjoint A & B].
+ +
+Lemma trivIset_coverU :
+  trivIset P -> trivIset Q -> [disjoint cover P & cover Q] -> trivIset (P :|: Q).
+ +
+Lemma trivIset_coverD1 : trivIset P -> S \in P -> [disjoint S & cover (P :\ S)].
+ +
+End CoverSurgery.
+ +
+
+ +
+

Case where a set in P contains both a and c

+ + +
+ +In Module SetContainingBothLeft, we denote x := u b a c v and consider +a given k-support P containing both a and c. We construct another +k-support Q for x with the same cover than P, but such that a and c +are not in the same set. +
+
+Module SetContainingBothLeft.
+ +
+
+ +
+

Generic order hypothesis

+ +
+
+Section RelHypothesis.
+ +
+Context {disp} {Alph : inhOrderType disp}.
+Implicit Type a b c : Alph.
+ +
+Record hypRabc R a b c := HypRabc {
+                      Rtrans : transitive R;
+                      Hbc : R b c;
+                      Hba : ~~ R b a;
+                      Hxba : forall l, R l a -> R l b;
+                      Hbax : forall l, R b l -> R a l
+                  }.
+ +
+Lemma RabcLeqX a b c :
+  (a < b <= c)%O -> hypRabc <=%O a b c.
+ +
+Lemma RabcGtnX a b c :
+  (a < b <= c)%O -> hypRabc >%O c b a.
+ +
+End RelHypothesis.
+ +
+Section Case.
+ +
+Context {disp} {Alph : inhOrderType disp}.
+Let word := seq Alph.
+ +
+Implicit Type u v w r : word.
+ +
+Variable R : rel Alph.
+Variable u v : word.
+Variable a b c : Alph.
+ +
+Hypothesis HRabc : hypRabc R a b c.
+ +
+Let x := u ++ [:: b; a; c] ++ v.
+ +
+Variable k : nat.
+Variable P : {set {set 'I_(size x)}}.
+Hypothesis Px : P \is a k.-supp[R, in_tuple x].
+ +
+Notation posb := (Swap.pos0 u (c :: v) b a).
+Notation posa := (Swap.pos1 u (c :: v) b a).
+Notation swap := (@Swap.swap _ u (c :: v) b a).
+Notation swap_set := (Swap.swap_set u (c :: v) b a).
+ +
+Lemma posc_subproof : (size u).+2 < size x.
+Definition posc := Ordinal posc_subproof.
+ +
+Lemma tnth_posc : tnth (in_tuple x) posc = c.
+ +
+Variable S : {set 'I_(size x)}.
+Hypothesis HS : S \in P.
+Hypothesis Hposa : (posa \in S).
+Hypothesis Hposc : (posc \in S).
+ +
+
+ +
+

Case where b is not in cover P

+ + +
+ +Replacing a by b gives another k-support. + +
+
+Section BNotIn.
+ +
+Hypothesis HbNin : posb \notin (cover P).
+ +
+Lemma posbinSF : posb \in S = false.
+ +
+Definition Qbnotin : {set {set 'I_(size x)}} := imset swap_set (mem P).
+ +
+Lemma size_cover_bnotin : #|cover P| == #|cover Qbnotin|.
+ +
+Lemma inPQE T : T != swap_set S -> T \in Qbnotin -> T \in P.
+ +
+Lemma sorted_extract_swap_set T :
+  T != swap_set S -> T \in Qbnotin -> sorted R (extract (in_tuple x) T).
+ +
+Lemma extract_SE :
+  extract (in_tuple x) S =
+  (extract (in_tuple x) (S :&: [set j : 'I_(size x) | j < size u])) ++
+    a :: c ::
+    extract (in_tuple x) (S :&: [set j : 'I_(size x) | (size u).+2 < j]).
+ +
+Lemma extract_swap_setSE :
+  extract (in_tuple x) (swap_set S) =
+  (extract (in_tuple x) (S :&: [set j : 'I_(size x) | j < size u])) ++
+    b :: c ::
+    extract (in_tuple x) (S :&: [set j : 'I_(size x) | (size u).+2 < j]).
+ +
+Lemma sorted_extract_swap_set_S : sorted R (extract (in_tuple x) (swap_set S)).
+ +
+Lemma ksupp_bnotin : Qbnotin \is a k.-supp[R, in_tuple x].
+ +
+Lemma Qbnotin_noboth T : T \in Qbnotin -> ~ ((posa \in T) && (posc \in T)).
+ +
+End BNotIn.
+ +
+
+ +
+

Case where b is in cover P

+ + +
+ +We assume that it is in a set T and switch the right part of S and T + +
+
+Section BIn.
+ +
+Variable T : {set 'I_(size x)}.
+Hypothesis HT : T \in P.
+Hypothesis Hposb : posb \in T.
+ +
+Lemma TSneq : T != S.
+ +
+Lemma TS_disjoint : [disjoint S & T].
+ +
+Lemma posb_inSF : (posb \in S) = false.
+ +
+Lemma posa_inTF : (posa \in T) = false.
+ +
+Lemma posc_inTF : (posc \in T) = false.
+ +
+Definition S1 := (S :&: [set j : 'I_(size x) | j <= posa])
+                   :|: (T :&: [set j : 'I_(size x) | j > posc]).
+Definition T1 := (T :&: [set j : 'I_(size x) | j <= posb])
+                   :|: (S :&: [set j : 'I_(size x) | j >= posc]).
+ +
+Lemma S1_subsST : S1 \subset (S :|: T).
+ +
+Lemma T1_subsST : T1 \subset (S :|: T).
+ +
+Lemma coverS1T1 : cover [set S1; T1] = (S :|: T).
+ +
+Lemma disjointS1T1 : [disjoint S1 & T1].
+ +
+Lemma ST_cover_disjoint : [disjoint S :|: T & cover (P :\: [set S; T])].
+ +
+Definition Qbin : {set {set 'I_(size x)}} :=
+  [set S1; T1] :|: (P :\: [set S; T]).
+ +
+Lemma trivIset_Qbin : trivIset Qbin.
+ +
+Lemma cover_bin : cover Qbin = cover P.
+ +
+Lemma enumUltV (U V : {set 'I_(size x)}) d :
+  (forall l, l \in U -> l <= d) ->
+  (forall l, l \in V -> l > d) ->
+  enum (mem (U :|: V)) = enum U ++ enum V.
+ +
+Lemma extract_S1E :
+  extract (in_tuple x) S1 =
+  extract (in_tuple x) (S :&: [set j : 'I_(size x) | j <= posa]) ++
+  extract (in_tuple x) (T :&: [set j : 'I_(size x) | j > posc]).
+ +
+Lemma extract_T1E :
+  extract (in_tuple x) T1 =
+  extract (in_tuple x) (T :&: [set j : 'I_(size x) | j <= posb]) ++
+  extract (in_tuple x) (S :&: [set j : 'I_(size x) | j >= posc]).
+ +
+Lemma extract_Sa :
+  extract (in_tuple x) (S :&: [set j : 'I_(size x) | j <= posa]) =
+  rcons (extract (in_tuple x) (S :&: [set j : 'I_(size x) | j < posa])) a.
+ +
+Lemma extract_cS :
+  extract (in_tuple x) (S :&: [set j : 'I_(size x) | j >= posc]) =
+  c :: extract (in_tuple x) (S :&: [set j : 'I_(size x) | j > posc]).
+ +
+Lemma extract_Tb :
+  extract (in_tuple x) (T :&: [set j : 'I_(size x) | j <= posb]) =
+  rcons (extract (in_tuple x) (T :&: [set j : 'I_(size x) | j < posb])) b.
+ +
+Lemma extract_bT :
+  extract (in_tuple x) (T :&: [set j : 'I_(size x) | j >= posb]) =
+  b :: extract (in_tuple x) (T :&: [set j : 'I_(size x) | j > posc]).
+ +
+Lemma sorted_extract_S1 : sorted R (extract (in_tuple x) S1).
+ +
+Lemma sorted_extract_T1 : sorted R (extract (in_tuple x) T1).
+ +
+Lemma ksupp_bin : Qbin \is a k.-supp[R, in_tuple x].
+ +
+Lemma posaS1_bin : posa \in S1.
+ +
+Lemma posaT1_bin : posb \in T1.
+ +
+Lemma Qbin_noboth U : U \in Qbin -> ~ ((posa \in U) && ((posc \in U))).
+ +
+End BIn.
+ +
+
+ +
+

Existence theorem for k-supports

+ +
+
+Theorem exists_Q_noboth :
+  exists Q : {set {set 'I_(size x)}},
+    [/\ Q \is a k.-supp[R, in_tuple x], #|cover Q| = #|cover P| &
+      forall S, S \in Q -> ~ ((posa \in S) && ((posc \in S)))].
+ +
+Let x' := (u ++ [:: b]) ++ [:: a; c] ++ v.
+Let y := (u ++ [:: b]) ++ [:: c; a] ++ v.
+ +
+Theorem exists_Qy :
+  exists Q : {set {set 'I_(size y)}},
+    #|cover Q| = #|cover P| /\ Q \is a k.-supp[R, in_tuple y].
+ +
+End Case.
+End SetContainingBothLeft.
+ +
+
+ +
+

Greene numbers are invariant by each plactic rules

+ +
+
+Section GreeneInvariantsRule.
+ +
+Context {disp} {Alph : inhOrderType disp}.
+Let word := seq Alph.
+ +
+Variable u v1 w v2 : word.
+Variable k : nat.
+ +
+
+ +
+Rule: [:: c; a; b] => if (a <= b < c)%Ord then [:: [:: a; c; b]] else [::] +
+
+Lemma ksuppRow_inj_plact1i :
+  v2 \in plact1i v1 -> ksupp_inj <=%O <=%O k (u ++ v1 ++ w) (u ++ v2 ++ w).
+ +
+Corollary Greene_row_leq_plact1i :
+  v2 \in plact1i v1 ->
+  Greene_row (u ++ v1 ++ w) k <= Greene_row (u ++ v2 ++ w) k.
+ +
+
+ +
+Rule: [:: b; a; c] => + if (a < b <= c)%Ord then [:: [:: b; c; a]] else [::] +
+
+Lemma ksuppRow_inj_plact2 :
+  v2 \in plact2 v1 -> ksupp_inj <=%O <=%O k (u ++ v1 ++ w) (u ++ v2 ++ w).
+ +
+Corollary Greene_row_leq_plact2 :
+  v2 \in plact2 v1 ->
+  Greene_row (u ++ v1 ++ w) k <= Greene_row (u ++ v2 ++ w) k.
+ +
+
+ +
+Rule: [:: a; c; b] => + if (a <= b < c)%Ord then [:: [:: c; a; b]] else [::] +
+
+Lemma ksuppCol_inj_plact1 :
+  v2 \in plact1 v1 -> ksupp_inj >%O >%O k (u ++ v1 ++ w) (u ++ v2 ++ w).
+ +
+Corollary Greene_col_leq_plact1 :
+  v2 \in plact1 v1 ->
+  Greene_col (u ++ v1 ++ w) k <= Greene_col (u ++ v2 ++ w) k.
+ +
+
+ +
+Rule: [:: b; c; a] => + if (a < b <= c)%Ord then [:: [:: b; a; c]] else [::] +
+
+Lemma ksuppCol_inj_plact2i :
+  v2 \in plact2i v1 -> ksupp_inj >%O >%O k (u ++ v1 ++ w) (u ++ v2 ++ w).
+ +
+Corollary Greene_col_leq_plact2i :
+  v2 \in plact2i v1 ->
+  Greene_col (u ++ v1 ++ w) k <= Greene_col (u ++ v2 ++ w) k.
+ +
+End GreeneInvariantsRule.
+ +
+
+ +
+

Deducing the other comparisons by duality

+ +
+
+Section GreeneInvariantsDual.
+ +
+Context {disp} {Alph : inhOrderType disp}.
+Let word := seq Alph.
+Implicit Type u v w : word.
+ +
+Lemma Greene_row_leq_plact2i u v1 w v2 k :
+  v2 \in plact2i v1 ->
+  Greene_row (u ++ v1 ++ w) k <= Greene_row (u ++ v2 ++ w) k.
+ +
+Lemma Greene_row_leq_plact1 u v1 w v2 k :
+  v2 \in plact1 v1 ->
+  Greene_row (u ++ v1 ++ w) k <= Greene_row (u ++ v2 ++ w) k.
+ +
+Lemma Greene_col_leq_plact1i u v1 w v2 k :
+  v2 \in plact1i v1 ->
+  Greene_col (u ++ v1 ++ w) k <= Greene_col (u ++ v2 ++ w) k.
+ +
+Lemma Greene_col_leq_plact2 u v1 w v2 k :
+  v2 \in plact2 v1 ->
+  Greene_col (u ++ v1 ++ w) k <= Greene_col (u ++ v2 ++ w) k.
+ +
+
+ +
+

Invariance by the rules

+ +
+
+Lemma Greene_row_invar_plact1 u v1 w v2 k :
+  v2 \in plact1 v1 ->
+  Greene_row (u ++ v1 ++ w) k = Greene_row (u ++ v2 ++ w) k.
+ +
+Lemma Greene_row_invar_plact1i u v1 w v2 k :
+  v2 \in plact1i v1 ->
+  Greene_row (u ++ v1 ++ w) k = Greene_row (u ++ v2 ++ w) k.
+ +
+Lemma Greene_row_invar_plact2 u v1 w v2 k :
+  v2 \in plact2 v1 ->
+  Greene_row (u ++ v1 ++ w) k = Greene_row (u ++ v2 ++ w) k.
+ +
+Lemma Greene_row_invar_plact2i u v1 w v2 k :
+  v2 \in plact2i v1 ->
+  Greene_row (u ++ v1 ++ w) k = Greene_row (u ++ v2 ++ w) k.
+ +
+Lemma Greene_col_invar_plact1 u v1 w v2 k :
+  v2 \in plact1 v1 ->
+  Greene_col (u ++ v1 ++ w) k = Greene_col (u ++ v2 ++ w) k.
+ +
+Lemma Greene_col_invar_plact1i u v1 w v2 k :
+  v2 \in plact1i v1 ->
+  Greene_col (u ++ v1 ++ w) k = Greene_col (u ++ v2 ++ w) k.
+ +
+Lemma Greene_col_invar_plact2 u v1 w v2 k :
+  v2 \in plact2 v1 ->
+  Greene_col (u ++ v1 ++ w) k = Greene_col (u ++ v2 ++ w) k.
+ +
+Lemma Greene_col_invar_plact2i u v1 w v2 k :
+  v2 \in plact2i v1 ->
+  Greene_col (u ++ v1 ++ w) k = Greene_col (u ++ v2 ++ w) k.
+ +
+End GreeneInvariantsDual.
+ +
+
+ +
+

Main theorem

+ +
+
+Section GreeneInvariants.
+ +
+Context {disp} {Alph : inhOrderType disp}.
+Let word := seq Alph.
+ +
+Implicit Type a b c : Alph.
+Implicit Type u v w r : word.
+ +
+
+ +
+

Row Greene number

+ +
+
+Theorem Greene_row_invar_plactic u v :
+  u =Pl v -> forall k, Greene_row u k = Greene_row v k.
+ +
+Corollary Greene_row_RS k w : Greene_row w k = sumn (take k (shape (RS w))).
+ +
+Corollary plactic_shapeRS_row_proof u v :
+  u =Pl v -> shape (RS u) = shape (RS v).
+ +
+
+ +
+

Column Greene number

+ +
+
+Theorem Greene_col_invar_plactic u v :
+  u =Pl v -> forall k, Greene_col u k = Greene_col v k.
+ +
+Corollary Greene_col_RS k w :
+  Greene_col w k = sumn (take k (conj_part (shape (RS w)))).
+ +
+Corollary plactic_shapeRS u v : u =Pl v -> shape (RS u) = shape (RS v).
+ +
+
+ +
+

Robinson-Schensted and the plactic monoid

+ +
+
+Theorem plactic_RS u v : u =Pl v <-> RS u == RS v.
+ +
+Corollary RS_tabE (t : seq (seq Alph)) : is_tableau t -> RS (to_word t) = t.
+ +
+End GreeneInvariants.
+ +
+Section GreenEqShape.
+ +
+Context d1 d2 (S : inhOrderType d1) (T : inhOrderType d2).
+ +
+Corollary Greene_row_eq_shape_RS (s : seq S) (t : seq T) :
+  (forall k, Greene_row s k = Greene_row t k) -> shape (RS s) = shape (RS t).
+ +
+Corollary Greene_col_eq_shape_RS (s : seq S) (t : seq T) :
+  (forall k, Greene_col s k = Greene_col t k) -> shape (RS s) = shape (RS t).
+ +
+End GreenEqShape.
+ +
+
+ +
+

Reverting words

+ +
+
+Section RevConj.
+ +
+Context d {Alph : inhOrderType d}.
+Implicit Type s : seq Alph.
+ +
+Corollary shape_RS_revdual s : shape (RS (revdual s)) = shape (RS s).
+ +
+Theorem RS_rev_uniq s : uniq s -> RS (rev s) = conj_tab (RS s).
+ +
+End RevConj.
+
+
+ + + +
+ + + \ No newline at end of file diff --git a/combi/1.1.0/Combi.LRrule.Schensted.html b/combi/1.1.0/Combi.LRrule.Schensted.html new file mode 100644 index 00000000..31a2cd90 --- /dev/null +++ b/combi/1.1.0/Combi.LRrule.Schensted.html @@ -0,0 +1,1123 @@ + + + + + +Combi.LRrule.Schensted: The Robinson-Schensted correspondence + + + + +
+ + + +
+ +

Library Combi.LRrule.Schensted: The Robinson-Schensted correspondence

+ +
+
+ +
+ +
+
+
+ +
+

The Robinson-Schensted correspondence

+ + +
+ +This file is a formalization of Schensted's algorithm and the Robinson-Schensted +correspondence. In the latter, it is easier to first store record the insertion +as a Yamanouchi word, that is the reverted sequence of the index of the rows +where the elements were inserted. In a second step, we translate the Yamanouchi +word in a standard tableau. + +
+ +Note: There is some duplication is this file, essentially for pedagogical +purpose. And also because it was my first serious Coq/Mathcomp development ;-) + +
+ +Here are the contents: + +
+ +Insertion in a row: + +
+ +
    +
  • inspred r l i == l bump the i letter of r + +
  • +
  • bump r l == l bump when inserted in r + +
    + + +
  • +
  • mininspred r l == the position of the letter bumped by l + +
  • +
  • inspos r l == the position of the letter bumped by l defined recursively + +
    + + +
  • +
  • insmin r l == the insertion of l in r defined using mininspred + +
  • +
  • insrow r l == the insertion of l in r defined resursively + +
  • +
  • ins r l == the insertion of l in r defined using inspos + +
  • +
+ +
+ + +
+ +Schensted algorithm: + +
+ +
    +
  • Sch w == Schented algorithm applied to w + +
  • +
  • subseqrow s w == s is a nondeceasing subsequence of w + +
  • +
  • subseqrow_n s w n == s is a nondeceasing subsequence of w of size n + +
  • +
+The two main results are +
    +
  • Corollary size_ndec_Sch : subseqrow s w -> (size s) <= size (Sch w). + +
  • +
  • Corollary exist_size_Sch w : exists s : seq T, subseqrow_n s w (size (Sch w)). + +
  • +
+ +
+ + +
+ +Robinson-Schensted bumping: + +
+ +
    +
  • bumped r l == the letter bumped by l when inserted in r, l itself + if there is no bumping + +
  • +
  • bumprow r l == bump l in r of type (option T) * (seq T) + +
    + + +
  • +
  • instab t l == insert the letter l in the tableau t + +
  • +
  • RS w == the insertion tableau (P-symbol) of w. It is a tableau as stated + in Theorem is_tableau_RS. + +
  • +
+ +
+ + +
+ +Inverting the Robinson-Schensted map: + +
+ +
    +
  • invbump b s == b has been bumped by s that is head b s < b + +
  • +
  • invbumprow b s == the inverse bumping of b in the row s. The result is + a pair (r, l) such that bumprow r l give back (some b, s). + This is lemma bumprowinvK. + +
  • +
  • invins b s == the r in (r, l) := invbumprow b s + +
  • +
  • invbumped b s the l in (r, l) := invbumprow b s. + +
    + + +
  • +
  • instabnrow t l == a pair (s, n) where s is the result of the insertion + of l in t and n is the index of the row where the insertion + stopped. As stated in Lemma instabnrowE s = instab t l. + +
  • +
  • invinstabnrow s n == the inverse insertion, that the pair (t, l) such that + instabnrow t l = (s, n). This is Theorem invinstabnrowK. See also + Theorem instabnrowinvK. + +
    + + +
  • +
  • RSmap w == the Robinson-Schensted map where the recording tableau is + returned as a Yamanouchi word. + +
  • +
  • is_RSpair (P, Q) == P is a tableau, Q is a Yammanouchi word and the shape + of P is equal to the evaluation of Q. + +
  • +
+ +
+ +The main result is of course Theorem RSmap_spec w : is_RSpair (RSmap w). + +
+ +
    +
  • RSmapinv tab yam == the Robinson-Schensted inverse map of the pair + (tab, yam) + +
  • +
  • RSmapinv2 p == the uncurrying of RSmapinv. + +
  • +
+ +
+ +The bijectivity of RSmap and RSmapinv2 are stated in +
    +
  • Theorem RSmapK stated as RSmapinv2 (RSmap w) = w. + +
  • +
  • and Theorem RSmapinv2K as RSmap (RSmapinv2 pair) = pair. + +
  • +
+Moreover RS preserve the content: +
    +
  • Theorem perm_RS w : perm_eq w (to_word (RS w)). + +
  • +
+ +
+ + +
+ +A sigma type for Robinson-Schensted pairs: + +
+ +
    +
  • rspair T == a sigma type for RS pair with tableau in type T. + +
  • +
  • RSbij w == the rspair T associated to w : seq T + +
  • +
  • RSbijinv p == the seq T associated to p : rspair T + +
  • +
+ +
+ +On has Lemma bijRS : bijective RSbij. + +
+ +Robinson-Schensted classes: + +
+ +
    +
  • RSclass t == the list of word w having t as RS tableau. This is stated + in Lemma RSclassE which says w \in RSclass tab = (RS w == tab). + +
  • +
+ +
+ +Robinson-Schensted with standard recording tableau: + +
+ +
    +
  • is_RStabpair (P, Q) == P and Q are two tableau of the same shape, + and Q is standard. + +
  • +
  • rstabpair T == a sigma type for is_RStabpair. + +
    + + +
  • +
  • RStabmap w == the RS map applied to w is is a RS pair as stated in + Theorem RStabmap_spec. + +
    + + +
  • +
  • RStab w == the RS map applied to w as a rstabpair T. + +
  • +
  • RStabinv pair == the word w associated to a rstabpair + +
  • +
+ +
+ +Again, one has Lemma bijRStab : bijective RStab. + +
+
+From HB Require Import structures.
+From mathcomp Require Import all_boot order.
+From mathcomp Require Import perm fingroup.
+Require Import tools partition Yamanouchi ordtype subseq tableau std stdtab.
+ +
+Set Implicit Arguments.
+ +
+Open Scope N.
+ +
+Import Order.Theory.
+ +
+Section NonEmpty.
+ +
+Context disp (T : inhOrderType disp).
+
+ +
+

Schensted's algorithm

+ +
+ +

Row insertion

+ +
+
+Section Insert.
+ +
+Variable Row : seq T.
+Hypothesis HRow : is_row Row.
+Variable l : T.
+ +
+Definition inspred i := (l < nth l Row i)%O.
+Definition bump := (l < (last l Row))%O.
+ +
+Lemma notbump : ~~bump = (l >= (last l Row))%O.
+ +
+Lemma transf : bump -> (l < (nth l Row (size Row).-1))%O.
+ +
+Lemma inspred_any_bump i : inspred i -> bump.
+ +
+Definition mininspred : nat :=
+  if ltP l (last l Row) is Order.LtlNotGe Hlast
+  then ex_minn (ex_intro inspred (size Row).-1 (transf Hlast))
+  else size Row.
+Definition insmin := set_nth l Row mininspred l.
+ +
+Lemma bump_mininspredE (Hbump : bump) :
+  mininspred = ex_minn (ex_intro inspred (size Row).-1 (transf Hbump)).
+ +
+Lemma nbump_mininspredE : ~~bump -> mininspred = size Row.
+ +
+Fixpoint insrow r l : seq T :=
+  if r is l0 :: r then
+    if (l < l0)%O then l :: r
+    else l0 :: (insrow r l)
+  else [:: l].
+ +
+Fixpoint inspos r (l : T) : nat :=
+  if r is l0 :: r' then
+    if (l < l0)%O then 0
+    else (inspos r' l).+1
+  else 0.
+ +
+Notation pos := (inspos Row l).
+Definition ins := set_nth l Row pos l.
+ +
+Lemma inspos_leq_size : pos <= size Row.
+ +
+Lemma inspos_lt_size_ins : pos < size ins.
+ +
+Lemma nth_inspos_ins : nth l ins pos = l.
+ +
+Lemma nbump_insposE : ~~bump -> mininspred = pos.
+ +
+Lemma inspred_inspos : bump -> inspred pos.
+ +
+Lemma inspred_mininspred : bump -> inspred mininspred.
+ +
+Lemma nth_lt_inspos i : i < pos -> (nth l Row i <= l)%O.
+ +
+Lemma inspredN_lt_inspos i : i < pos -> ~~ (inspred i).
+ +
+Lemma bump_insposE : bump -> mininspred = pos.
+ +
+Lemma insposE : mininspred = pos.
+ +
+Lemma inspos_leq_exP i : inspred i -> pos <= i.
+ +
+Lemma insE : insmin = ins.
+ +
+Lemma insrowE : insmin = insrow Row l.
+ +
+Lemma bump_inspos_lt_size : bump -> pos < size Row.
+ +
+Lemma nbump_inspos_eq_size : ~~bump -> pos = size Row.
+ +
+Lemma lt_inspos_nth i : i < size Row -> (nth l Row i <= l)%O -> i < pos.
+ +
+Lemma insrow_head_lt : (head l (insrow Row l) <= l)%O.
+ +
+Lemma ins_head_lt : (head l ins <= l)%O.
+ +
+Lemma is_row_ins : is_row ins.
+ +
+Lemma bump_size_ins : bump -> size ins = size Row.
+ +
+Lemma nbump_size_ins : ~~bump -> size ins = (size Row).+1.
+ +
+Lemma nbump_ins_rconsE : ~~bump -> ins = rcons Row l.
+ +
+Lemma size_ins_inf : (size Row) <= size ins.
+ +
+Lemma size_ins_sup : size ins <= (size Row).+1.
+ +
+Lemma ins_leq i : i < size Row -> (nth l ins i <= nth l Row i)%O.
+ +
+Lemma ins_non_nil : ins != [::].
+ +
+Lemma size_ins_non_0 : 0 < size ins.
+ +
+End Insert.
+ +
+Lemma bump_nil l : bump [::] l = false.
+ +
+Lemma bump_tail l0 r l : bump (l0 :: r) l -> (l0 <= l -> bump r l)%O.
+ +
+
+ +
+

The algorithm

+ +
+
+Section Schensted.
+ +
+Implicit Type l : T.
+Implicit Type r w s : seq T.
+ +
+Fixpoint Sch_rev w := if w is l0 :: w' then ins (Sch_rev w') l0 else [::].
+Definition Sch w := Sch_rev (rev w).
+ +
+Lemma Sch_rcons l w : Sch (rcons w l) = ins (Sch w) l.
+ +
+Lemma is_row_Sch w : is_row (Sch w).
+ +
+Lemma Sch_size w : size (Sch w) <= size w.
+ +
+
+ +
+

Schensted's algorithem specifications

+ +
+
+Definition subseqrow s w := subseq s w && is_row s.
+Definition subseqrow_n s w n := [&& subseq s w , (size s == n) & is_row s].
+ +
+Theorem Sch_exists w i :
+  i < size (Sch w) ->
+  exists s : seq T, (last inh s == nth inh (Sch w) i) && subseqrow_n s w i.+1.
+ +
+Theorem Sch_leq_last w s si:
+  subseqrow (rcons s si) w ->
+  size s < size (Sch w) /\ (nth inh (Sch w) (size s) <= si)%O.
+ +
+Corollary size_ndec_Sch w s : subseqrow s w -> (size s) <= size (Sch w).
+ +
+Corollary exist_size_Sch w : exists s : seq T, subseqrow_n s w (size (Sch w)).
+ +
+End Schensted.
+ +
+Theorem Sch_max_size (w : seq T) :
+  size (Sch w) = \max_(s : subseqs w | is_row s) size s.
+ +
+
+ +
+

Robinson-Schensted bumping

+ +
+ +

bumping a letter

+ +
+
+Section Bump.
+ +
+Variable Row : seq T.
+Hypothesis HRow : is_row Row.
+Variable l : T.
+ +
+Definition bumped := nth l Row (inspos Row l).
+Notation ins := (ins Row l).
+Notation inspos := (inspos Row l).
+Notation insRow := (insrow Row l).
+Notation bump := (bump Row l).
+ +
+Lemma lt_bumped : bump -> (l < bumped)%O.
+ +
+Fixpoint bumprow r l : (option T) * (seq T) :=
+  if r is l0 :: r then
+    if (l < l0)%O then (Some l0, l :: r)
+    else let: (lr, rr) := bumprow r l in (lr, l0 :: rr)
+  else (None, [:: l]).
+ +
+Notation bumpRow := (bumprow Row l).
+ +
+Lemma ins_bumprowE : insRow = bumpRow.2.
+ +
+Lemma bump_bumprowE : bump -> bumpRow = (Some bumped, ins).
+ +
+Lemma nbump_bumprowE : ~~bump -> bumpRow = (None, ins).
+ +
+Lemma head_ins_lt_bumped i : bump -> (head i ins < bumped)%O.
+ +
+Lemma bumprow_size :
+  let: (lr, tr) := bumpRow in
+  (size Row).+1 == (size tr) + if lr is Some _ then 1 else 0.
+ +
+Lemma bumprow_count p :
+  let: (lr, tr) := bumpRow in
+  count p Row + (p l) == count p tr + if lr is Some ll then (p ll) else 0.
+ +
+End Bump.
+ +
+Lemma bumprow_rcons r l : is_row (rcons r l) -> bumprow r l = (None, rcons r l).
+ +
+Section Dominate.
+ +
+Implicit Type l : T.
+Implicit Type r u v : seq T.
+ +
+Lemma dominate_inspos r1 r0 l :
+  is_row r0 -> is_row r1 -> dominate r1 r0 ->
+  bump r0 l -> inspos r0 l >= inspos r1 (bumped r0 l).
+ +
+Lemma bump_dominate r1 r0 l :
+  is_row r0 -> is_row r1 -> bump r0 l ->
+  dominate r1 r0 -> dominate (ins r1 (bumped r0 l)) (ins r0 l).
+ +
+Lemma dominateK_inspos r1 r0 l0 :
+  is_row r0 -> is_row r1 -> dominate (ins r1 (bumped r0 l0)) (ins r0 l0) ->
+  bump r0 l0 -> inspos r0 l0 >= inspos r1 (bumped r0 l0).
+ +
+Lemma bump_dominateK r1 r0 l0 :
+  is_row r0 -> is_row r1 -> bump r0 l0 ->
+  dominate (ins r1 (bumped r0 l0)) (ins r0 l0) -> dominate r1 r0.
+ +
+End Dominate.
+ +
+
+ +
+

The insertion tableau

+ +
+
+Section Tableaux.
+ +
+Implicit Type l : T.
+Implicit Type r w : seq T.
+Implicit Type t : seq (seq T).
+ +
+Fixpoint instab t l : seq (seq T) :=
+  if t is t0 :: t' then
+    let: (lr, rr) := bumprow t0 l in
+    if lr is Some ll then rr :: (instab t' ll) else rr :: t'
+  else [:: [:: l]].
+ +
+Lemma head_instab (t0 : seq T) t l :
+  is_row t0 -> head [::] (instab (t0 :: t) l) = ins t0 l.
+ +
+Theorem is_tableau_instab t l : is_tableau t -> is_tableau (instab t l).
+ +
+Lemma instab_non_nil t l : instab t l != [::].
+ +
+Fixpoint RS_rev w : seq (seq T) :=
+  if w is w0 :: wr then instab (RS_rev wr) w0 else [::].
+Definition RS w := RS_rev (rev w).
+ +
+Theorem is_tableau_RS w : is_tableau (RS w).
+ +
+End Tableaux.
+ +
+
+ +
+

Inverting a bump

+ +
+
+Section InverseBump.
+ +
+Implicit Type a b l : T.
+Implicit Type r s w : seq T.
+Implicit Type t : seq (seq T).
+ +
+Definition invbump b s := ((head b s) < b)%O.
+ +
+Fixpoint invbumprow b s : (seq T) * T :=
+  if s is l0 :: s then
+    if (b <= head b s)%O
+    then (b :: s, l0)
+    else let: (rr, lr) := invbumprow b s in (l0 :: rr, lr)
+  else ([::], b).
+ +
+Definition invins b s := (invbumprow b s).1.
+Definition invbumped b s := (invbumprow b s).2.
+ +
+Lemma head_lt_invins b s i :
+  s != [::] -> invbump b s -> (head i s <= head i (invins b s))%O.
+ +
+Lemma is_row_invins b s : is_row s -> is_row (invins b s).
+ +
+Lemma head_leq_invbumped b s :
+  s != [::] -> is_row s -> (head inh s <= (invbumped b s))%O.
+ +
+Lemma invbumprowK r a :
+  is_row r -> bump r a ->
+  (invbumprow (bumped r a) (ins r a)) = (r, a).
+ +
+Lemma bumprowinvK b s :
+  s != [::] -> is_row s -> invbump b s ->
+  (bumprow (invins b s) (invbumped b s)) = (Some b, s).
+ +
+
+ +
+

The Robinson-Schensted insertion with recording

+ +
+
+Fixpoint instabnrow t l : seq (seq T) * nat :=
+  if t is t0 :: t then
+    let: (lr, rr) := bumprow t0 l
+    in if lr is Some ll then
+         let: (tres, nres) := instabnrow t ll
+         in (rr :: tres, nres.+1)
+       else (rr :: t, 0)
+  else ([:: [:: l]], 0).
+ +
+Lemma instabnrowE t l : (instabnrow t l).1 = instab t l.
+ +
+Lemma shape_instabnrow t l :
+  is_tableau t ->
+  let: (tr, nrow) := instabnrow t l in shape tr = incr_nth (shape t) nrow.
+ +
+End InverseBump.
+ +
+Section Inverse.
+ +
+Implicit Type a b l : T.
+Implicit Type r s w : seq T.
+Implicit Type t u : seq (seq T).
+ +
+Lemma is_rem_corner_instabnrow t l : is_tableau t ->
+    let: (res, nrow) := instabnrow t l in is_rem_corner (shape res) nrow.
+ +
+
+ +
+

Invertion a Robinson-Schensted step

+ +
+
+Fixpoint invinstabnrow t nrow : seq (seq T) * T :=
+  if t is t0 :: t
+  then if nrow is nrow.+1
+       then let: (tr, lr) := invinstabnrow t nrow in
+            let: (t0r, l0r) := invbumprow lr t0 in
+            (t0r :: tr, l0r)
+       else if t0 is l0 :: t0
+            then if t0 == [::]
+                 then (t, l0)
+                 else ((belast l0 t0) :: t, last l0 t0)
+            else ([::], inh)
+  else ([::], inh).
+ +
+Theorem invinstabnrowK t l :
+  is_tableau t -> invinstabnrow (instab t l) (instabnrow t l).2 = (t, l).
+ +
+Lemma invbump_geq_head t tin l nrow :
+  t != [::] -> is_tableau t -> invinstabnrow t nrow = (tin, l) ->
+  (l >= head l (head [::] t))%O.
+ +
+Lemma invbump_dom r0 t tin l nrow :
+  t != [::] -> is_tableau t -> invinstabnrow t nrow = (tin, l) ->
+  r0 != [::] -> dominate (head [::] t) r0 -> invbump l r0.
+ +
+Theorem instabnrowinvK t nrow :
+  is_tableau t -> t != [::] -> is_rem_corner (shape t) nrow ->
+  let: (tin, l) := invinstabnrow t nrow in (instabnrow tin l) = (t, nrow).
+ +
+
+ +
+

Robinson-Schensted correspondence

+ +
+ +

The Robinson-Schensted map

+ +
+
+Fixpoint RSmap_rev w : (seq (seq T)) * (seq nat) :=
+  if w is w0 :: wtl
+  then let: (t, rows) := RSmap_rev wtl in
+       let: (tr, nrow) := instabnrow t w0 in
+       (tr, nrow :: rows)
+  else ([::], [::]).
+Definition RSmap w := RSmap_rev (rev w).
+ +
+Lemma RSmapE w : (RSmap w).1 = RS w.
+ +
+Lemma size_RSmap2 w : size ((RSmap w).2) = size w.
+ +
+Lemma is_tableau_RSmap1 w : is_tableau (RSmap w).1.
+ +
+Lemma shape_RSmap_eq w : shape (RSmap w).1 = evalseq (RSmap w).2.
+ +
+Lemma is_yam_RSmap2 w : is_yam (RSmap w).2.
+ +
+Definition is_RSpair pair :=
+  let: (P, Q) := pair in
+  [&& is_tableau (T:=T) P, is_yam Q & (shape P == evalseq Q)].
+ +
+Theorem RSmap_spec w : is_RSpair (RSmap w).
+ +
+
+ +
+

The inverse Robinson-Schensted inverse map

+ +
+
+Fixpoint RSmapinv tab yam :=
+  if yam is nrow :: yam'
+  then let: (tr, lr) := invinstabnrow tab nrow in
+       rcons (RSmapinv tr yam') lr
+  else [::].
+Definition RSmapinv2 pair := RSmapinv (pair.1) (pair.2).
+ +
+Theorem RSmapK w : RSmapinv2 (RSmap w) = w.
+ +
+Lemma behead_incr_nth (s : seq nat) nrow :
+  behead (incr_nth s nrow.+1) = incr_nth (behead s) nrow.
+ +
+Lemma size_invins b s : size (invins b s) = (size s).
+ +
+Lemma yam_tail_non_nil (l : nat) (s : seq nat) :
+  is_yam (l.+1 :: s) -> s != [::].
+ +
+Lemma shape_instabnrowinv1 t nrow yam :
+  is_yam (nrow :: yam) -> shape t == evalseq (nrow :: yam) ->
+  shape (invinstabnrow t nrow).1 == evalseq yam.
+ +
+Lemma head_tableau_non_nil h t : is_tableau (h :: t) -> h != [::].
+ +
+Lemma is_tableau_instabnrowinv1 (s : seq (seq T)) nrow :
+  is_tableau s -> is_rem_corner (shape s) nrow ->
+  is_tableau (invinstabnrow s nrow).1.
+ +
+Theorem RSmapinv2K pair : is_RSpair pair -> RSmap (RSmapinv2 pair) = pair.
+ +
+End Inverse.
+ +
+
+ +
+

Statistics preserved by the Robinson-Schensted map

+ +
+
+Section Statistics.
+ +
+Implicit Type t : seq (seq T).
+ +
+Lemma size_instab t l : is_tableau t -> size_tab (instab t l) = (size_tab t).+1.
+ +
+Theorem size_RS w : size_tab (RS w) = size w.
+ +
+Lemma count_instab t l p :
+  is_tableau t -> count p (to_word (instab t l)) = (p l) + count p (to_word t).
+ +
+Theorem count_RS w p : count p w = count p (to_word (RS w)).
+ +
+Theorem perm_RS w : perm_eq w (to_word (RS w)).
+ +
+End Statistics.
+ +
+
+ +
+

Sigma types and bijections

+ +
+
+Section Bijection.
+ +
+Notation Pair := (seq (seq T) * seq nat : Type).
+ +
+Structure rspair : predArgType :=
+  RSpair { pyampair :> Pair; _ : is_RSpair pyampair }.
+ +
+Lemma pyampair_inj : injective pyampair.
+ +
+Definition RSbij w := RSpair (RSmap_spec w).
+Definition RSbijinv (ps : rspair) := RSmapinv2 ps.
+ +
+Lemma bijRS : bijective RSbij.
+ +
+End Bijection.
+ +
+
+ +
+

Robinson-Schensted classes

+ +
+
+Section Classes.
+ +
+Definition RSclass :=
+  [fun tab => [seq RSmapinv2 (tab, y) | y <- enum_yameval (shape tab)] ].
+ +
+Lemma RSclassP tab :
+  is_tableau tab -> all (fun w => RS w == tab) (RSclass tab).
+ +
+Lemma RSclass_countE w : count_mem w (RSclass (RS w)) = 1.
+ +
+Lemma mem_RSclass w : w \in (RSclass (RS w)).
+ +
+Lemma RSclassE tab w :
+  is_tableau tab -> w \in RSclass tab = (RS w == tab).
+ +
+End Classes.
+ +
+End NonEmpty.
+ +
+
+ +
+

The Robinson-Schensted map with standard recording tableau

+ +
+
+Lemma RSperm n (p : 'S_n) : is_stdtab (RS (wordperm p)).
+ +
+Lemma RSstdE (p : seq nat) : is_stdtab (RS p) = is_std p.
+ +
+Section QTableau.
+Context disp (T : inhOrderType disp).
+ +
+Notation TabPair := (seq (seq T) * seq (seq nat) : Type).
+ +
+Definition is_RStabpair (pair : TabPair) :=
+  let: (P, Q) := pair in [&& is_tableau P, is_stdtab Q & (shape P == shape Q)].
+ +
+Structure rstabpair : predArgType :=
+  RSTabPair { pqpair :> TabPair; _ : is_RStabpair pqpair }.
+ +
+ +
+Lemma pqpair_inj : injective pqpair.
+ +
+Definition RStabmap (w : seq T) :=
+  let (p, q) := (RSmap w) in (p, stdtab_of_yam q).
+ +
+Lemma RStabmapE (w : seq T) : (RStabmap w).1 = RS w.
+ +
+Theorem RStabmap_spec w : is_RStabpair (RStabmap w).
+ +
+Lemma shape_RStabmapE (w : seq T) : shape (RStabmap w).1 = shape (RStabmap w).2.
+ +
+Lemma is_stdtab_RStabmap2 (w : seq T) : is_stdtab (RStabmap w).2.
+ +
+Definition RStab w := RSTabPair (RStabmap_spec w).
+Definition RStabinv (pair : rstabpair) :=
+  let: (P, Q) := pqpair pair in RSmapinv2 (P, yam_of_stdtab Q).
+ +
+Lemma RStabK : cancel RStab RStabinv.
+Lemma RStabinvK : cancel RStabinv RStab.
+Lemma bijRStab : bijective RStab.
+ +
+End QTableau.
+ +
+Section Tests.
+ +
+Goal (insrow [:: 1; 1; 2; 3; 5] 2) = [:: 1; 1; 2; 2; 5].
+ +
+Goal (insrow [:: 1; 1; 2; 3; 5] 2) = [:: 1; 1; 2; 2; 5].
+ +
+Goal (ins [:: 1; 1; 2; 3; 5] 2) = [:: 1; 1; 2; 2; 5].
+ +
+Goal (Sch [:: 2; 5; 1; 6; 4; 3]) = [:: 1; 3; 6].
+ +
+Goal (RS [:: 2; 5; 1; 6; 4; 3]) = [:: [:: 1; 3; 6]; [:: 2; 4]; [:: 5]].
+ +
+Goal (to_word (RS [:: 2; 5; 1; 6; 4; 3])) = [:: 5; 2; 4; 1; 3; 6].
+ +
+Goal is_tableau (RS [:: 2; 5; 1; 6; 4; 3]).
+ +
+Goal (invbumprow 3 [:: 1; 1; 2; 2; 5]) = ([:: 1; 1; 2; 3; 5], 2).
+ +
+Goal (invbumprow 3 [:: 1; 1; 2; 2; 3]) = ([:: 1; 1; 2; 3; 3], 2).
+ +
+Goal instabnrow [:: [:: 1; 3; 6]; [:: 2; 4]; [:: 5]] 3 =
+               ([:: [:: 1; 3; 3]; [:: 2; 4; 6]; [:: 5]], 1).
+ +
+Goal invinstabnrow [:: [:: 1; 3; 3]; [:: 2; 4; 6]; [:: 5]] 1 =
+                  ([:: [:: 1; 3; 6]; [:: 2; 4]; [:: 5]], 3).
+ +
+Goal is_part [:: 0] = false.
+ +
+Goal evalseq [::] = [::].
+ +
+Goal evalseq [:: 0; 1; 2; 0; 1; 3] = [:: 2; 2; 1; 1].
+ +
+Goal (RSmapinv2 (RSmap [:: 4; 1; 2; 1; 3; 2])) = [:: 4; 1; 2; 1; 3; 2].
+ +
+End Tests.
+ +
+
+
+ + + +
+ + + \ No newline at end of file diff --git a/combi/1.1.0/Combi.LRrule.Yam_plact.html b/combi/1.1.0/Combi.LRrule.Yam_plact.html new file mode 100644 index 00000000..e28080fc --- /dev/null +++ b/combi/1.1.0/Combi.LRrule.Yam_plact.html @@ -0,0 +1,187 @@ + + + + + +Combi.LRrule.Yam_plact: Plactic classes and Yamanouchi words + + + + +
+ + + +
+ +

Library Combi.LRrule.Yam_plact: Plactic classes and Yamanouchi words

+ +
+
+ +
+ +
+
+
+ +
+

Plactic classes and Yamanouchi words

+ + +
+ +The goal of this file is to show that the Yamanouchi words of a given +evaluation form a plactic class. + +
+ +
    +
  • yamtab sh == the uniq Yamanouchi tableau of shape sh: the i-th line + contains only i's as in: 33 2222 11111 0000000. + +
  • +
+ +
+ +The main result is Corollary yam_plactic_shape + +
+ + + y =Pl z <-> (is_yam z /\ evalseq y = evalseq z). + + +
+ +We also show that for all partition sh the standardization defines a bijection +from Yamanouchi words of evaluation sh and a plactic class. In particular, it +is surjective. This is Theorem plact_from_yam: + +
+ + + w =Pl std (hyper_yam sh) -> { y | is_yam_of_eval sh y & std y = w }. + + +
+
+ +
+From Corelib Require Import Setoid.
+From mathcomp Require Import ssreflect ssrfun ssrbool eqtype ssrnat seq fintype.
+From mathcomp Require Import tuple finfun finset path bigop order.
+ +
+Require Import tools partition Yamanouchi ordtype std tableau stdtab.
+Require Import Schensted congr plactic Greene_inv stdplact.
+ +
+Set Implicit Arguments.
+ +
+Import Order.TTheory.
+Open Scope N.
+ +
+Lemma is_part_incr_nthE sh i j :
+  i.+1 < j -> is_part sh -> is_part (incr_nth (incr_nth sh j) i) ->
+  is_part (incr_nth sh i) = is_part (incr_nth sh j).
+ +
+Lemma is_part_incr_nth1E sh i :
+  is_part sh ->
+  is_part (incr_nth (incr_nth sh i.+1) i) = is_part (incr_nth sh i).
+ +
+Lemma is_yam_plactic y : is_yam y -> forall w, y =Pl w -> is_yam w.
+ +
+
+ +
+

The Yamanouchi tableau

+ +
+
+Fixpoint yamtab_rec i sh :=
+  if sh is s0 :: s then
+    nseq s0 i :: yamtab_rec (i.+1) s
+  else [::].
+Definition yamtab := yamtab_rec 0.
+ +
+Lemma shape_yamtab sh : shape (yamtab sh) = sh.
+ +
+Lemma to_word_yamtab sh : to_word (yamtab sh) = hyper_yam sh.
+ +
+Lemma yamtabP sh : is_part sh -> is_tableau (yamtab sh).
+ +
+Lemma yamtab_rcons sh sn :
+  yamtab (rcons sh sn) = rcons (yamtab sh) (nseq sn (size sh)).
+ +
+Lemma yamtab_unique t :
+  is_tableau t -> is_yam (to_word t) -> t = yamtab (shape t).
+ +
+Corollary RS_yam_RS y : is_yam y -> RS y = yamtab (shape (RS y)).
+ +
+Lemma shape_RS_yam y : is_yam y -> shape (RS y) = evalseq y.
+ +
+Lemma RS_yam y : is_yam y -> RS y = yamtab (evalseq y).
+ +
+Theorem yam_plactic_hyper y : is_yam y -> y =Pl hyper_yam (evalseq y).
+ +
+Corollary yam_plactic_shape y z :
+  is_yam y -> ( y =Pl z <-> (is_yam z /\ evalseq y = evalseq z)).
+ +
+
+ +
+

Yamanouchi words, standardization and plactic classes

+ +
+
+Lemma yam_std_inj : {in is_yam &, injective std}.
+ +
+Lemma auxbijP p (y : yameval p) : is_yam_of_eval p ((RSmap y).2).
+ +
+#[local] Definition auxbij (p : intpart) (y : yameval p) : yameval p :=
+  YamEval (auxbijP y).
+ +
+Lemma auxbij_inj (p : intpart) : injective (@auxbij p).
+ +
+#[local] Definition auxbij_inv (p : intpart) := invF (@auxbij_inj p).
+ +
+Theorem plact_from_yam sh w :
+  is_part sh ->
+  w =Pl std (hyper_yam sh) ->
+  { y | is_yam_of_eval sh y & std y = w }.
+
+
+ + + +
+ + + \ No newline at end of file diff --git a/combi/1.1.0/Combi.LRrule.extract.html b/combi/1.1.0/Combi.LRrule.extract.html new file mode 100644 index 00000000..d51dd8a1 --- /dev/null +++ b/combi/1.1.0/Combi.LRrule.extract.html @@ -0,0 +1,96 @@ + + + + + +Combi.LRrule.extract: Extracting the implementation to OCaml + + + + +
+ + + +
+ +

Library Combi.LRrule.extract: Extracting the implementation to OCaml

+ +
+
+ +
+ +
+
+
+ +
+

A certified OCaml implementation

+ + +
+ +We extract to OCaml the implementation of the Robinson-Schensted correspondance +and The Littlewood-Richardson Rule. + +
+
+From mathcomp Require Import all_boot order.
+From mathcomp Require Import ssralg.
+From mathcomp Require Import mpoly.
+Require Import subseq partition ordtype Schensted congr plactic Greene Greene_inv
+        std stdtab skewtab therule implem.
+ +
+ +
+From Stdlib Require Import Wf_nat.
+Extraction Inline Wf_nat.lt_wf_rec1 Wf_nat.lt_wf_rec
+  Wf_nat.lt_wf_ind Wf_nat.gt_wf_rec Wf_nat.gt_wf_ind.
+ +
+Extract Inductive bool => "bool" [ "true" "false" ].
+ +
+Extract Inductive list => "list" [ "[]" "(::)" ].
+ +
+Extract Inductive prod => "(*)" [ "(,)" ].
+ +
+ +
+Definition disp := Order.NatOrder.nat_display.
+Definition RS := (@RS disp nat).
+Definition RSbijnat := (@RSbij disp nat).
+Definition RSbijinvnat := (@RSbijinv disp nat).
+Definition RStabnat := (@RStab disp nat).
+Definition RStabinvnat := (@RStabinv disp nat).
+ +
+ +
+
+ +
+

The Littlewood-Richardson Rule

+ +
+
+Extraction "src/LRrule/lrcoeff.ml"
+           LRcoeff LRyamtab_list
+.
+
+
+ + + +
+ + + \ No newline at end of file diff --git a/combi/1.1.0/Combi.LRrule.freeSchur.html b/combi/1.1.0/Combi.LRrule.freeSchur.html new file mode 100644 index 00000000..61805df1 --- /dev/null +++ b/combi/1.1.0/Combi.LRrule.freeSchur.html @@ -0,0 +1,581 @@ + + + + + +Combi.LRrule.freeSchur: Free Schur functions + + + + +
+ + + +
+ +

Library Combi.LRrule.freeSchur: Free Schur functions

+ +
+
+ +
+ +
+
+
+ +
+

Free Schur functions

+ + +
+ +This file is the second step of the proof of the Littewood-Richardson rule. +We translate theorem LRtriple_cat_equiv in a algebraic setting. Specifically, +the main goal of this file is to lift the multiplication of Schur multivariate +polynomials to the non commutative setting. + +
+ +
    +
  • commword n R w == the commutative image of the word w as a multivariate + polynomial (of type {mpoly R[n]}). + +
  • +
  • homlang n d == the type of homogenous langage over 'I_n.+1 of degre d. + that is {set d.-tuple 'I_n}. + +
  • +
  • polylang n R s == the commutative image of the langage s where s is of + type homlang n d. + +
  • +
  • catlang l1 l2 == the concatenation of homogeneous language: given + s1 of degree d1 and s2 of degree d2 return an + homogeneous language of degree d1 + d2. + +
  • +
  • tabwordshape n sh == the set of reading of tableaux over 'I_n.+1 of + shape sh, where sh is of type 'P_d + +
  • +
  • freeSchur n t == the set of words whose recording tableau over 'I_n.+1 + is t, where t is of type stdtabn + +
  • +
  • tabword_of_tuple w == the bijection freeSchur -> tabwordshape as stated + in Theorem tabword_of_tuple_freeSchur: + +
    + + + forall Q : stdtabn d, + [set tabword_of_tuple x | x in freeSchur n0 Q] = tabwordshape n0 (shape_deg Q) + + +
  • +
+ +
+ +The free Littlewood-Richardson rule: + +
+ +
    +
  • LRsupport Q1 Q2 == the set of standard Littlewood-Richardson Q-tableau in + the product of the free Schur function indexed by Q1 + and Q2, that is the set of Q which forms a LRtriple + with Q1 and Q2. + +
  • +
+ +
+ +The main result here is the free LR rule free_LR_rule: + +
+ + + catlang (freeSchur Q1) (freeSchur Q2) = \bigcup_(Q in LRsupport) freeSchur Q. + + +
+ +We then go back to commutative Schur polynomials: + +
+ +
    +
  • hyper_stdtab sh == the hyper standard tableau of shape sh as a seq (seq nat). + +
  • +
  • hyper_stdtabn sh == the hyper standard tableau of shape sh as a + stdtabn d where sh is a 'P_d. + +
  • +
  • LRtab_set Q1 Q2 Q == the set of standard Littlewood-Richardson Q-tableau in + the product of the free Schur function indexed by Q1 + and Q2 of shape Q. + +
  • +
  • LRtab_coeff Q1 Q2 == the Littlewood-Richardson coefficient defined + as the cardinality of LRtab_set Q1 Q2 Q. + +
  • +
+ +
+ +Invariance with the choice of Q1 and Q2: + +
+ +
    +
  • bij_LRsupport Q1 Q2 == a bijection from LRsupport T1 T2 to LRsupport Q1 Q2 + as long as T1 and Q1 have the same shape as well as + T2 and Q2. It is used to show Theorem + LRtab_coeff_shapeE: + +
    + + + shape T1 = P1 -> shape T2 = P2 -> + LRtab_coeff P = #|[set Q in (LRsupport T1 T2) | (shape Q == P)]|. + + +
  • +
+ +
+ + +
+
+From HB Require Import structures.
+From mathcomp Require Import all_boot order.
+From mathcomp Require Import ssralg.
+From mathcomp Require Import ssrcomplements freeg mpoly.
+ +
+Require Import tools ordtype partition Yamanouchi std tableau stdtab.
+Require Import Schensted congr plactic stdplact Yam_plact Greene_inv shuffle.
+Require Import Schur_mpoly.
+ +
+Set Implicit Arguments.
+ +
+Import Order.TTheory.
+#[local] Open Scope ring_scope.
+Import GRing.Theory.
+ +
+
+ +
+

Commutative image of an homogeneous langage

+ +
+
+Section CommutativeImage.
+ +
+Variable n : nat.
+Variable R : comNzRingType.
+ +
+Definition commword (w : seq 'I_n) : {mpoly R[n]} := \prod_(i <- w) 'X_i.
+ +
+Lemma perm_commword (u v : seq 'I_n) :
+  perm_eq u v -> commword u = commword v.
+ +
+Lemma commword_morph (u v : seq 'I_n) :
+  commword (u ++ v) = (commword u) * (commword v).
+ +
+Lemma commtuple_morph d1 d2 (u : d1.-tuple 'I_n) (v : d2.-tuple 'I_n) :
+  commword (cat_tuple u v) = (commword u) * (commword v).
+ +
+Definition homlang d := {set d.-tuple 'I_n}.
+Definition polylang d (s : homlang d) := \sum_(w in s) commword w.
+Definition catlang d1 d2 (s1 : homlang d1) (s2 : homlang d2) :
+  homlang (d1 + d2) :=
[set cat_tuple w1 w2 | w1 in s1, w2 in s2].
+ +
+Lemma cat_tuple_inj d1 d2 (u x : d1.-tuple 'I_n) (v y : d2.-tuple 'I_n) :
+  cat_tuple u v = cat_tuple x y -> (u, v) = (x, y).
+ +
+Lemma catlangM d1 d2 (s1 : homlang d1) (s2 : homlang d2) :
+  polylang s1 * polylang s2 = polylang (catlang s1 s2).
+ +
+End CommutativeImage.
+ +
+
+ +
+

Row reading of tableau

+ +
+
+Section TableauReading.
+ +
+Context {disp} {A : inhOrderType disp}.
+ +
+Definition tabsh_reading_RS (sh : seq nat) (w : seq A) :=
+  (to_word (RS w) == w) && (shape (RS (w)) == sh).
+ +
+Lemma tabsh_reading_RSP (sh : seq nat) (w : seq A) :
+  reflect
+    (exists tab, [/\ is_tableau tab, shape tab = sh & to_word tab = w])
+    (tabsh_reading_RS sh w).
+ +
+Lemma tabsh_reading_RSE sh :
+  tabsh_reading sh =1 tabsh_reading_RS sh.
+ +
+End TableauReading.
+ +
+
+ +
+

Free Schur functions : lifting Schur functions in the free algebra

+ +
+
+Section FreeSchur.
+ +
+Variable R : comNzRingType.
+ +
+Variable n0 : nat.
+#[local] Notation n := (n0.+1).
+#[local] Notation Schur sh := (Schur n0 R sh).
+#[local] Notation homlang d := (homlang n d).
+ +
+Section Degree.
+ +
+Variable d : nat.
+ +
+Definition tabwordshape (sh : 'P_d) : homlang d :=
+  [set t : d.-tuple 'I_n | tabsh_reading sh t ].
+Definition freeSchur (Q : stdtabn d) : homlang d :=
+  [set t : d.-tuple 'I_n | (RStabmap t).2 == Q].
+ +
+Lemma freeSchurP Q (t : d.-tuple 'I_n) :
+  t \in freeSchur Q = (val t \in langQ Q).
+ +
+Lemma size_RS_tuple (t : d.-tuple 'I_n) : size (to_word (RS t)) == d.
+ +
+
+ +
+ Bijection freeSchur -> tabwordshape +
+
+Definition tabword_of_tuple (t : d.-tuple 'I_n) : d.-tuple 'I_n :=
+  Tuple (size_RS_tuple t).
+ +
+Lemma perm_tabword_of_tuple (t : d.-tuple 'I_n) :
+  perm_eq t (tabword_of_tuple t).
+ +
+Lemma tabword_of_tuple_freeSchur_inj (Q : stdtabn d) :
+  {in (freeSchur Q) &, injective tabword_of_tuple}.
+ +
+Lemma tabword_of_tuple_freeSchur (Q : stdtabn d) :
+  [set tabword_of_tuple x | x in freeSchur Q] = tabwordshape (shape_deg Q).
+ +
+End Degree.
+ +
+
+ +
+

Noncommutative lifting of Schur polynomials

+ +
+
+Lemma SchurE d (Q : stdtabn d) :
+  Schur (shape_deg Q) = polylang R (tabwordshape (shape_deg Q)).
+ +
+
+ +
+

Commutative image of freeSchur language

+ +
+
+Lemma Schur_freeSchurE d (Q : stdtabn d) :
+  Schur (shape_deg Q) = polylang R (freeSchur Q).
+ +
+
+ +
+

The free Littlewood-Richardson rule

+ +
+
+Section FreeLRrule.
+ +
+Variables (d1 d2 : nat).
+Variables (Q1 : stdtabn d1) (Q2 : stdtabn d2).
+ +
+Definition LRsupport :=
+  [set Q : stdtabn (d1 + d2) | pred_LRtriple_fast Q1 Q2 Q ].
+ +
+Lemma free_LR_rule :
+  catlang (freeSchur Q1) (freeSchur Q2) = \bigcup_(Q in LRsupport) freeSchur Q.
+ +
+
+ +
+Alternative proof from LRrule_langQ +
+
+Lemma free_LR_rule_alternate :
+  catlang (freeSchur Q1) (freeSchur Q2) = \bigcup_(Q in LRsupport) freeSchur Q.
+ +
+
+ +
+Passing to commutative image in the free LR rule +
+
+Theorem LR_rule_tab :
+  Schur (shape_deg Q1) * Schur (shape_deg Q2) =
+    \sum_(Q in LRsupport) (Schur (shape_deg Q)).
+ +
+End FreeLRrule.
+ +
+Definition hyper_stdtab sh := RS (std (hyper_yam sh)).
+Lemma hyper_stdtabP sh : is_stdtab (hyper_stdtab sh).
+ +
+Lemma hyper_stdtabnP d (P : 'P_d) : is_stdtab_of_n d (hyper_stdtab P).
+Canonical hyper_stdtabn d (P : 'P_d) := StdtabN (hyper_stdtabnP P).
+ +
+Lemma shape_hyper_stdtabnP d (P : 'P_d) : shape (hyper_stdtabn P) = P.
+Lemma shaped_hyper_stdtabnP d (P : 'P_d) : shape_deg (hyper_stdtabn P) = P.
+ +
+Section Coeffs.
+ +
+Variables d1 d2 : nat.
+Variables (P1 : 'P_d1) (P2 : 'P_d2).
+ +
+Definition LRtab_set (P : 'P_(d1 + d2)) :=
+  [set Q in (LRsupport (hyper_stdtabn P1) (hyper_stdtabn P2)) | (shape Q == P)].
+Definition LRtab_coeff (P : 'P_(d1 + d2)) := #|LRtab_set P|.
+ +
+Theorem LRtab_coeffP :
+  Schur P1 * Schur P2 = \sum_P (Schur P) *+ LRtab_coeff P.
+ +
+Lemma size_RSmapinv2_yam d disp (Typ : inhOrderType disp)
+      (tab : seq (seq Typ)) (T : stdtabn d) :
+  size (RSmapinv2 (tab, yam_of_stdtab T)) = d.
+ +
+
+ +
+

Invariance with respect to the choice of the Q-Tableau

+ +
+
+Section Bij_LRsupport.
+ +
+Section ChangeUT.
+ +
+Variable (U1 T1 : stdtabn d1) (U2 T2 : stdtabn d2).
+Hypothesis Hsh1 : shape U1 = shape T1.
+Hypothesis Hsh2 : shape U2 = shape T2.
+ +
+Section TakeDrop.
+ +
+Context {disp} {T : inhOrderType disp}.
+ +
+Lemma RStabE (w : seq T) : (RStab w).1 = (RS w).
+ +
+Definition changeUT T1 T2 (w : seq T) : seq T :=
+  (RSmapinv2 (RS (take d1 w), yam_of_stdtab T1)) ++
+  (RSmapinv2 (RS (drop d1 w), yam_of_stdtab T2)).
+ +
+Variable w : seq T.
+Hypothesis Htake : shape (RS (take d1 w)) = shape U1.
+Hypothesis Hdrop : shape (RS (drop d1 w)) = shape U2.
+ +
+Lemma changeUtakeP : is_RStabpair (RS (take d1 w), val U1).
+Lemma changeUdropP : is_RStabpair (RS (drop d1 w), val U2).
+Lemma changeTtakeP : is_RStabpair (RS (take d1 w), val T1).
+Lemma changeTdropP : is_RStabpair (RS (drop d1 w), val T2).
+Lemma toDepRSPair (u : seq T) d (t : stdtabn d) :
+  forall H : is_RStabpair (RS u, val t),
+  RSmapinv2 (RS u, yam_of_stdtab t) = RStabinv (RSTabPair H).
+ +
+Lemma plact_changeUT_take : take d1 (changeUT T1 T2 w) =Pl take d1 w.
+ +
+Lemma plact_changeUT_drop : drop d1 (changeUT T1 T2 w) =Pl drop d1 w.
+ +
+Lemma plact_changeUT : changeUT T1 T2 w =Pl w.
+ +
+End TakeDrop.
+ +
+Lemma changeUTK disp (T : inhOrderType disp) (w : seq T) :
+  (take d1 w) \in langQ U1 ->
+  (drop d1 w) \in langQ U2 ->
+  changeUT U1 U2 (changeUT T1 T2 w) = w.
+ +
+Section DefBij.
+ +
+Variable Q : stdtabn (d1 + d2).
+Hypothesis HTriple : pred_LRtriple U1 U2 Q.
+Let w := RSmapinv2 (yamtab (shape Q), yam_of_stdtab Q).
+ +
+Lemma RSpairyamQ : is_RSpair (yamtab (shape Q), yam_of_stdtab Q).
+ +
+Lemma bij_LRsupportP :
+  is_stdtab_of_n (d1 + d2)
+    (RStab (changeUT T1 T2 (RSmapinv2 (yamtab (shape Q), yam_of_stdtab Q)))).2.
+Definition bij_LRsupport := StdtabN bij_LRsupportP.
+ +
+Lemma take_drop_langQ :
+  ((take d1 w) \in langQ U1 /\ (drop d1 w) \in langQ U2).
+ +
+Lemma shape_bij_LRsupport : shape bij_LRsupport = shape Q.
+ +
+Lemma shape_takeRS : shape (RS (take d1 w)) = shape U1.
+ +
+Lemma shape_dropRS : shape (RS (drop d1 w)) = shape U2.
+ +
+Lemma predLR_bij_LRsupport : pred_LRtriple T1 T2 bij_LRsupport.
+ +
+End DefBij.
+ +
+Lemma card_LRtab_set_leq (P : seq nat) :
+  #|[set Q in (LRsupport U1 U2) | (shape Q == P)]| <=
+  #|[set Q in (LRsupport T1 T2) | (shape Q == P)]|.
+ +
+End ChangeUT.
+ +
+Lemma card_LRtab_set_shapeE P (U1 T1 : stdtabn d1) (U2 T2 : stdtabn d2) :
+  shape T1 = shape U1 -> shape T2 = shape U2 ->
+  #|[set Q in (LRsupport U1 U2) | (shape Q == P)]| =
+  #|[set Q in (LRsupport T1 T2) | (shape Q == P)]|.
+ +
+Theorem LRtab_coeff_shapeE (T1 : stdtabn d1) (T2 : stdtabn d2) P :
+  shape T1 = P1 -> shape T2 = P2 ->
+  LRtab_coeff P = #|[set Q in (LRsupport T1 T2) | (shape Q == P)]|.
+ +
+End Bij_LRsupport.
+ +
+End Coeffs.
+ +
+End FreeSchur.
+ +
+
+ +
+

Conjugating tableaux in the free LR rule

+ +
+
+Section Conj.
+ +
+Variables d1 d2 : nat.
+ +
+Lemma LRsupport_conj (T1 : stdtabn d1) (T2 : stdtabn d2):
+  LRsupport (conj_stdtabn T1) (conj_stdtabn T2) =
+            (@conj_stdtabn _) @: (LRsupport T1 T2).
+ +
+Theorem LRtab_coeff_conj (P1 : 'P_d1) (P2 : 'P_d2) (P : 'P_(d1 + d2)) :
+  LRtab_coeff P1 P2 P =
+  LRtab_coeff (conj_intpartn P1) (conj_intpartn P2) (conj_intpartn P).
+ +
+End Conj.
+
+
+ + + +
+ + + \ No newline at end of file diff --git a/combi/1.1.0/Combi.LRrule.implem.html b/combi/1.1.0/Combi.LRrule.implem.html new file mode 100644 index 00000000..8a82cbc2 --- /dev/null +++ b/combi/1.1.0/Combi.LRrule.implem.html @@ -0,0 +1,673 @@ + + + + + +Combi.LRrule.implem: A Coq implementation of the Littlewood-Richarson rule + + + + +
+ + + +
+ +

Library Combi.LRrule.implem: A Coq implementation of the Littlewood-Richarson rule

+ +
+
+ +
+ +
+
+
+ +
+

A Coq implementation of the Littlewood-Richarson rule

+ + +
+ +This file contains a Coq implementation of the Littlewood-Richardson rule. We +define the following main functions: +
    +
  • LRcoeff inner eval outer == the LR coefficient + +
  • +
  • LRyamtab_list inner eval outer == the list of LR tableaux of shape + outer/inner and evaluation eval + +
  • +
+ +
+ +The following lemma assert that LRcoeff agrees with LRyamtab_list + +
+ + Lemma LRcoeffP inner eval outer : + size (LRyamtab_list inner eval outer) = LRcoeff inner eval outer. + +
+ + +
+
+From mathcomp Require Import all_boot order.
+From mathcomp Require Import ssralg.
+From mathcomp Require Import mpoly.
+ +
+Require Import tools combclass partition Yamanouchi ordtype tableau.
+Require Import skewtab Schur_mpoly freeSchur therule.
+ +
+Set Implicit Arguments.
+ +
+Open Scope N.
+ +
+Lemma sorted_is_part p :
+  is_part p -> sorted geq p.
+ +
+Lemma is_part_pad0 n p :
+  is_part p -> sorted geq (pad 0 n p).
+ +
+Lemma head_row_skew_yam innev shape l r :
+  is_part innev -> sorted <=%O (l :: r) ->
+  is_skew_yam innev shape (l :: r) ->
+  l <= head (size innev) r.
+ +
+
+ +
+

Recursive enumeration and counting function

+ +
+
+Section OutEval.
+ +
+#[local] Fixpoint add m n := if m is m'.+1 then add m' n.+1 else n.
+Lemma addE : add =2 addn.
+ +
+Let tsumn := foldl add 0.
+Lemma tsumnE : tsumn =1 sumn.
+ +
+Variable outev : seq nat.
+ +
+
+ +
+Possible choice of a new letter: + +
+ +The new letter l must satisty the following conditions: +
    +
  • mini < l < maxi + +
  • +
  • l is an addable corner of innev + +
  • +
  • adding l to innev still is inside outev + + +
  • +
+
+
+Definition one_letter_choices innev mini maxi :=
+  filter
+    (fun i => is_add_corner innev i && (nth 0 innev i < nth 0 outev i))
+    (iota mini ((minn (size innev) maxi).+1 - mini) ).
+ +
+
+ +
+The possible new rows which dominates the given row + +
+ +Returns a seqence of pairs (r, ev) where +
    +
  • r is the new row + +
  • +
  • ev is the new evaluation + + +
  • +
+
+
+Fixpoint yamtab_rows innev row :=
+  if row is r0 :: tlr then
+    flatten [seq
+               [seq (i :: res.1, incr_nth res.2 i) |
+                i <- one_letter_choices res.2 r0.+1 (head (size innev) res.1)
+               ] |
+             res <- yamtab_rows innev tlr ]
+  else [:: ([::], innev) ].
+ +
+
+ +
+The possible new rows which are at the bottom of the shape + +
+ +
    +
  • maxi is the maximum letter (typically the head of sol below) + +
  • +
  • sh is the shape of the expected rows + +
  • +
  • sol is the already known end of the row + +
  • +
+Returns a seqence of pairs (r, ev) where +
    +
  • r is the new row + +
  • +
  • ev is the new evaluation + + +
  • +
+
+
+Fixpoint yamtab_shift innev maxi sh sol :=
+  if sh is s.+1 then
+    flatten [seq
+               [seq (i :: res.1, incr_nth res.2 i) |
+                i <- one_letter_choices res.2 0 (head maxi res.1)
+               ] |
+             res <- yamtab_shift innev maxi s sol ]
+  else [:: (sol, innev) ].
+ +
+
+ +
+Recursive step of the enumeration functions + +
+ +Compute the list of skew tableaux +
    +
  • of evaluation outev-innev + +
  • +
  • whose row reading is a innev-skew Yamanouchi word + +
  • +
  • of shape outer/inner + +
  • +
  • which are legitimate skew tableaux if lied over row0 shifted by sh0 + +
  • +
+ +
+
+Fixpoint LRyamtab_list_rec innev inner outer sh0 row0 :=
+  if outer is out0 :: out then
+    let inn0 := head 0 inner in let inn := behead inner in
+    
+    let call_rec row := LRyamtab_list_rec row.2 inn out inn0 row.1 in
+    let rowres := yamtab_rows innev (take (out0 - sh0) row0) in
+    let rows :=
+        flatten [seq yamtab_shift res.2 (head (size innev) res.1)
+                     ((minn sh0 out0) - inn0) res.1
+                | res <- rowres ] in
+    flatten [seq [seq row.1 :: tab | tab <- call_rec row ] | row <- rows ]
+  else [:: [::]].
+ +
+
+ +
+Recursive step of the counting functions + +
+ +Compute the number of skew tableaux +
    +
  • of evaluation outev-innev + +
  • +
  • whose row reading is a innev-skew Yamanouchi word + +
  • +
  • of shape outer/inner + +
  • +
  • which are legitimate skew tableaux if lied over row0 shifted by sh0 + +
  • +
+ +
+
+Fixpoint LRyamtab_count_rec innev inner outer sh0 row0 :=
+  if outer is out0 :: out then
+    let inn0 := head 0 inner in let inn := behead inner in
+    
+    let call_rec row := LRyamtab_count_rec row.2 inn out inn0 row.1 in
+    let rowres := yamtab_rows innev (take (out0 - sh0) row0) in
+    tsumn [seq tsumn [seq call_rec row |
+                      row <- yamtab_shift res.2 (head (size innev) res.1)
+                          ((minn sh0 out0) - inn0) res.1 ]
+          | res <- rowres ]
+  else 1.
+ +
+Lemma size_LRyamtab_listE innev inner outer sh0 row0 :
+  size (LRyamtab_list_rec innev inner outer sh0 row0) =
+  LRyamtab_count_rec innev inner outer sh0 row0.
+ +
+
+ +
+Basic lemmas +
+
+Lemma yamtab_shift_drop innev maxi sh y :
+  forall res shape, (res, shape) \in yamtab_shift innev maxi sh y ->
+  drop sh res = y.
+ +
+
+ +
+

LRyamtab_list_rec returns only Yamanouchi words

+ +
+ + +
+

LRyamtab_list_rec returns words whose evaluation in included in outev

+ +
+ + +
+

LRyamtab_list_rec returns fillings of skew shape inner/outer

+ +
+
+Lemma yamtab_rows_size innev row :
+  forall res shape, (res, shape) \in yamtab_rows innev row ->
+  size res = size row.
+ +
+Lemma yamtab_shift_size innev maxi sh y :
+  forall res shape, (res, shape) \in yamtab_shift maxi innev sh y ->
+  size res = sh + size y.
+ +
+Lemma LRyamtab_list_pad0 innev inner outer sh0 row0 :
+      LRyamtab_list_rec innev inner outer sh0 row0 =
+      LRyamtab_list_rec innev (pad 0 (size outer) inner) outer sh0 row0.
+ +
+Lemma LRyamtab_list_size innev inner outer sh0 row0 :
+  forall res, res \in LRyamtab_list_rec innev inner outer sh0 row0 ->
+  size res = size outer.
+ +
+
+ +
+inner is padded with 0 +
+
+Lemma LRyamtab_list_shape0 innev inner outer sh0 row0 :
+  sorted geq (sh0 :: inner) -> is_part (sh0 + size row0 :: outer) ->
+  included inner outer -> size inner = size outer ->
+  forall res, res \in LRyamtab_list_rec innev inner outer sh0 row0 ->
+  shape res = outer / inner.
+ +
+
+ +
+

LRyamtab_list_rec returns legitimate skew_tableaux

+ +
+ + +
+inner is padded with 0 +
+
+Lemma LRyamtab_list_skew_tableau0 innev inner outer sh0 row0 :
+  sorted geq (sh0 :: inner) -> is_part (sh0 + size row0 :: outer) ->
+  included inner outer -> size inner = size outer ->
+  is_row row0 ->
+  forall res, res \in LRyamtab_list_rec innev inner outer sh0 row0 ->
+  is_skew_tableau (sh0 :: inner) (row0 :: res).
+ +
+
+ +
+

Mutiplicities are all one

+ +
+
+Lemma choose_one_countE shr innev shape mini maxi row l :
+  is_part innev ->
+  is_skew_yam innev shr row ->
+  is_skew_yam innev shape (l :: row) ->
+  included shape outev ->
+  mini <= l <= maxi ->
+  is_row (l :: row) ->
+  (count_mem l) (one_letter_choices shr mini maxi) = 1.
+ +
+Lemma yamtab_rows_countE innev shape row base :
+  is_part innev ->
+  size row = size base ->
+  dominate row base ->
+  is_row row ->
+  is_skew_yam innev shape row ->
+  included shape outev ->
+  count (preim (fst (B:=seq nat)) (pred1 row))
+        (yamtab_rows innev base) = 1.
+ +
+Lemma yamtab_shift_countE inn0 innev shape sh row sol :
+  is_part inn0 ->
+  is_row (row ++ sol) ->
+  size row = sh ->
+  is_skew_yam inn0 innev sol ->
+  is_skew_yam innev shape row ->
+  included shape outev ->
+  count (preim (fst (B:=seq nat)) (pred1 (row ++ sol)))
+        (yamtab_shift innev (head (size inn0) sol) sh sol) = 1.
+ +
+Lemma LRyamtab_list_countE innev inner sh0 row0 yamtab :
+  is_part innev ->
+  sorted geq (sh0 :: inner) ->
+  is_part (sh0 + size row0 :: (outer_shape inner (shape yamtab))) ->
+  size inner = size yamtab ->
+  is_skew_tableau (sh0 :: inner) (row0 :: yamtab) ->
+  is_skew_yam innev outev (to_word yamtab) ->
+  count_mem yamtab
+    (LRyamtab_list_rec innev inner (outer_shape inner (shape yamtab)) sh0 row0) = 1.
+ +
+End OutEval.
+ +
+
+ +
+

The main functions

+ +
+
+Definition LRyamtab_list inner eval outer :=
+  LRyamtab_list_rec eval [::] inner outer (head 1 outer) [::].
+Definition LRcoeff inner eval outer :=
+  LRyamtab_count_rec eval [::] inner outer (head 1 outer) [::].
+ +
+Lemma LRcoeffP inner eval outer :
+  size (LRyamtab_list inner eval outer) = LRcoeff inner eval outer.
+ +
+Lemma LRyamtab_yam inner eval outer tab:
+  tab \in (LRyamtab_list inner eval outer) -> is_yam (to_word tab).
+ +
+Lemma LRyamtab_included inner eval outer tab:
+  tab \in (LRyamtab_list inner eval outer) -> included (evalseq (to_word tab)) eval.
+ +
+Lemma LRyamtab_shape inner eval outer tab :
+  is_part inner -> is_part outer -> included inner outer ->
+  tab \in (LRyamtab_list inner eval outer) -> shape tab = outer / inner.
+ +
+Lemma LRyamtab_skew_tableau inner eval outer tab :
+  is_part inner -> is_part outer -> included inner outer ->
+  tab \in (LRyamtab_list inner eval outer) -> is_skew_tableau inner tab.
+ +
+Lemma LRyamtab_eval inner eval outer tab:
+  is_part inner -> is_part outer -> included inner outer ->
+  is_part eval -> sumn eval = sumn (outer / inner) ->
+  tab \in (LRyamtab_list inner eval outer) -> evalseq (to_word tab) = eval.
+ +
+Lemma count_mem_LRyamtab_list inner eval outer yamtab :
+  is_part inner -> is_part outer -> included inner outer ->
+  is_skew_tableau inner yamtab -> shape yamtab = outer / inner ->
+  is_yam_of_eval eval (to_word yamtab) ->
+  count_mem yamtab (LRyamtab_list inner eval outer) = 1.
+ +
+
+ +
+

The specification of the enumeration function

+ +
+
+Section PackedSpec.
+ +
+Variable inner eval outer : seq nat.
+ +
+Record inputSpec :=
+  InputSpec {
+      inner_part : is_part inner;
+      outer_part : is_part outer;
+      incl : included inner outer;
+      eval_part : is_part eval;
+      sumn_eq : sumn eval = sumn (outer / inner)
+    }.
+ +
+Record outputSpec (tab : seq (seq nat)) :=
+  OutputSpec {
+      skew : is_skew_tableau inner tab;
+      shaps_eq : shape tab = outer / inner;
+      yam_to_word : is_yam (to_word tab);
+      eval_eq : evalseq (to_word tab) = eval
+    }.
+ +
+Lemma outputSpecP tab :
+  inputSpec -> tab \in (LRyamtab_list inner eval outer) -> outputSpec tab.
+ +
+Lemma outputSpec_count_mem tab :
+  inputSpec -> outputSpec tab -> count_mem tab (LRyamtab_list inner eval outer) = 1.
+ +
+End PackedSpec.
+ +
+
+ +
+

The specification on sigma types

+ +
+
+Section Spec.
+ +
+Variables d1 d2 : nat.
+Variables (P1 : 'P_d1) (P2 : 'P_d2).
+Variable P : 'P_(d1 + d2).
+Hypothesis Hincl : included P1 P.
+ +
+Lemma LRyamtabP tab :
+  tab \in (LRyamtab_list P1 P2 P) -> is_yam_of_eval P2 (to_word tab).
+ +
+Lemma LRyamtab_all :
+  all (is_yam_of_eval P2) (map to_word (LRyamtab_list P1 P2 P)).
+Definition LRyam_list :=
+  subType_seq (yameval P2) (map to_word (LRyamtab_list P1 P2 P)).
+ +
+Lemma LRyamtab_spec_recip yam :
+  yam \in LRyam_set P1 P2 P ->
+  count_mem (val yam) (map to_word (LRyamtab_list P1 P2 P)) = 1.
+ +
+Lemma LRyam_spec_recip yam :
+  yam \in LRyam_set P1 P2 P -> count_mem yam LRyam_list = 1.
+ +
+Theorem LRcoeffE : LRyam_coeff P1 P2 P = LRcoeff P1 P2 P.
+ +
+End Spec.
+ +
+From mathcomp Require Import ssralg.
+ +
+
+ +
+

Back to the rule

+ +
+
+Section LR.
+ +
+Variables d1 d2 : nat.
+Variables (P1 : 'P_d1) (P2 : 'P_d2).
+ +
+#[local] Open Scope ring_scope.
+Import GRing.Theory.
+ +
+Variable (n0 : nat) (R : comNzRingType).
+#[local] Notation n := (n0.+1).
+Notation Schur p := (Schur n0 R p).
+ +
+Theorem LRtab_coeffP :
+  Schur P1 * Schur P2 =
+  \sum_(P : 'P_(d1 + d2) | included P1 P) Schur P *+ LRcoeff P1 P2 P.
+ +
+End LR.
+
+
+ + + +
+ + + \ No newline at end of file diff --git a/combi/1.1.0/Combi.LRrule.plactic.html b/combi/1.1.0/Combi.LRrule.plactic.html new file mode 100644 index 00000000..72b2530d --- /dev/null +++ b/combi/1.1.0/Combi.LRrule.plactic.html @@ -0,0 +1,639 @@ + + + + + +Combi.LRrule.plactic: The plactic monoid + + + + +
+ + + +
+ +

Library Combi.LRrule.plactic: The plactic monoid

+ +
+
+ +
+ +
+
+
+ +
+

The plactic monoid

+ + +
+ +Knuth rewriting rules: + +
+ +
    +
  • plact1 == rewriting rule acb -> cab if a <= b < c + +
  • +
  • plact1i == rewriting rule cab -> acb if a <= b < c + +
  • +
  • plact2 == rewriting rule bac -> bca if a < b <= c + +
  • +
  • plact2i == rewriting rule bca -> bac if a < b <= c + +
  • +
  • plactrule == the union of the four preceding rewriting rules + +
  • +
  • plactcongr == the plactic congruence + +
  • +
  • a =Pl b == a and b are plactic equivalent + +
  • +
+ +
+ +Reverse and dual alphabet: + +
+ +
    +
  • revdual s == rev s : seq Dual considered on the dual alphabet + +
  • +
  • from_revdual ds == rev ds where ds : seq Dual + +
  • +
+ +
+ +The two main result in this section are plact_dualE and plact_from_dualE +which assert that plactic equivalence is conserved by revdual and from_revdual. + +
+ +Plactic equivalence and Robinson-Schensted: + +
+ +Main results: +
    +
  • Theorem congr_RS w : w =Pl (to_word (RS w)). + +
  • +
  • Corollary Sch_plact u v : RS u == RS v -> u =Pl v. + +
  • +
+ +
+ + +
+ +Restriction to interval: + +
+ +Thanks to bisimulation we show (Theorem rembig_RS) that the last big letter +goes on the border of the tableau by Robinson-Schensted. As a consequence +filtering large or small letters preserve plactic congruence. These are Lemmas +plactic_filter_geqX, plactic_filter_gtnX, plactic_filter_leqX and +plactic_filter_ltnX + +
+ +Plactic congruence and increasing maps: + +
+ +We finally shows that plactic congruence is preserved by increasing maps: +Lemma plact_map_in_incr. + +
+ + +
+
+ +
+From mathcomp Require Import all_boot order.
+From mathcomp Require Import perm.
+Require Import tools partition ordtype tableau stdtab Schensted congr.
+ +
+Set Implicit Arguments.
+ +
+Open Scope bool.
+ +
+Import Order.Theory.
+ +
+
+ +
+

Definition of the Plactic monoid

+ +
+
+Section Defs.
+ +
+Context disp (Alph : inhOrderType disp).
+Let word := seq Alph.
+ +
+Implicit Type a b c : Alph.
+Implicit Type u v w : word.
+ +
+Definition plact1 :=
+  fun s => match s return seq word with
+             | [:: a; c; b] => if (a <= b < c)%O then [:: [:: c; a; b]] else [::]
+             | _ => [::]
+           end.
+ +
+Definition plact1i :=
+  fun s => match s return seq word with
+             | [:: c; a; b] => if (a <= b < c)%O then [:: [:: a; c; b]] else [::]
+             | _ => [::]
+           end.
+ +
+Definition plact2 :=
+  fun s => match s return seq word with
+             | [:: b; a; c] => if (a < b <= c)%O then [:: [:: b; c; a]] else [::]
+             | _ => [::]
+           end.
+ +
+Definition plact2i :=
+  fun s => match s return seq word with
+             | [:: b; c; a] => if (a < b <= c)%O then [:: [:: b; a; c]] else [::]
+             | _ => [::]
+           end.
+ +
+Lemma plact1P u v :
+  reflect (exists a b c,
+             [/\ (a <= b < c)%O, u = [:: a; c; b] & v = [:: c; a; b] ] )
+          (v \in plact1 u).
+ +
+Lemma plact1iP u v :
+  reflect (exists a b c,
+             [/\ (a <= b < c)%O, v = [:: a; c; b] & u = [:: c; a; b] ] )
+          (v \in plact1i u).
+ +
+Lemma plact2P u v :
+  reflect (exists a b c,
+             [/\ (a < b <= c)%O, u = [:: b; a; c] & v = [:: b; c; a] ] )
+          (v \in plact2 u).
+ +
+Lemma plact2iP u v :
+  reflect (exists a b c,
+             [/\ (a < b <= c)%O, v = [:: b; a; c] & u = [:: b; c; a] ] )
+          (v \in plact2i u).
+ +
+Lemma plact1I u v : u \in plact1 v <-> v \in plact1i u.
+ +
+Lemma plact2I u v : u \in plact2 v <-> v \in plact2i u.
+ +
+Definition plactrule := [fun s => plact1 s ++ plact1i s ++ plact2 s ++ plact2i s].
+ +
+Lemma plactruleP u v :
+  reflect ([\/ v \in plact1 u, v \in plact1i u, v \in plact2 u | v \in plact2i u ])
+          (v \in plactrule u).
+ +
+Lemma plactrule_sym u v : v \in (plactrule u) -> u \in (plactrule v).
+ +
+Lemma plact1_homog : forall u : word, all (perm_eq u) (plact1 u).
+ +
+Lemma plact1i_homog : forall u : word, all (perm_eq u) (plact1i u).
+ +
+Lemma plact2_homog : forall u : word, all (perm_eq u) (plact2 u).
+ +
+Lemma plact2i_homog : forall u : word, all (perm_eq u) (plact2i u).
+ +
+Lemma plactrule_homog : forall u : word, all (perm_eq u) (plactrule u).
+ +
+Definition plactcongr := gencongr_multhom plactrule_homog.
+ +
+Lemma plact_equiv : equivalence_rel plactcongr.
+ +
+Lemma plact_refl : reflexive plactcongr.
+ +
+Lemma plact_sym : symmetric plactcongr.
+ +
+Lemma plact_ltrans : left_transitive plactcongr.
+ +
+Lemma plact_trans : transitive plactcongr.
+ +
+Lemma plact_is_congr : congruence_rel plactcongr.
+ +
+Definition plact_cons := congr_cons plact_is_congr.
+Definition plact_rcons := congr_rcons plact_is_congr.
+Definition plact_catl := congr_catl plact_is_congr.
+Definition plact_catr := congr_catr plact_is_congr.
+Definition plact_cat := congr_cat plact_is_congr plact_equiv.
+ +
+Lemma plact_homog u v : plactcongr u v -> perm_eq u v.
+ +
+Lemma size_plact u v : plactcongr u v -> size u = size v.
+ +
+End Defs.
+ +
+Notation "a =Pl b" := (plactcongr a b) (at level 70).
+#[export] Hint Resolve plact_refl : core.
+ +
+Section RowsAndCols.
+ +
+Context disp (Alph : inhOrderType disp).
+Let word := seq Alph.
+Implicit Type u v w : word.
+ +
+Lemma plact_row u v : is_row u -> u =Pl v -> u = v.
+ +
+Lemma sorted_center u v w :
+  sorted >%O (u ++ v ++ w) -> sorted >%O v.
+ +
+Lemma plact_col u v : sorted >%O u -> u =Pl v -> u = v.
+ +
+End RowsAndCols.
+ +
+
+ +
+

Plactic equivalence and reversal

+ +
+
+Section Rev.
+ +
+Context disp (Alph : inhOrderType disp).
+Let word := seq Alph.
+Implicit Type u v w : word.
+ +
+Lemma plact_uniq_rev u v : uniq u -> u =Pl v -> rev u =Pl rev v.
+ +
+Lemma plact_uniq_revE u v : uniq u -> (u =Pl v) = (rev u =Pl rev v).
+ +
+End Rev.
+ +
+
+ +
+

Plactic equivalence and order duality

+ +
+
+Section DualRule.
+ +
+Context disp (Alph : inhOrderType disp).
+Let word := seq Alph.
+Implicit Type u v w : word.
+ +
+Definition revdual := [fun s : seq Alph => rev s : seq Alph^d].
+Definition from_revdual := [fun s : seq Alph^d => (rev s) : seq Alph].
+ +
+Lemma revdualK : cancel revdual from_revdual.
+ +
+Lemma from_revdualK : cancel from_revdual revdual.
+ +
+Lemma size_revdual u : size u = size (revdual u).
+ +
+Lemma plact2dual u v :
+  u \in plact2 v = (revdual u \in @plact1 _ Alph^d (revdual v)).
+ +
+Lemma plact1dual u v :
+  u \in plact1 v = (revdual u \in @plact2 _ Alph^d (revdual v)).
+ +
+Lemma plact1idual u v : u \in plact1i v = (revdual u \in plact2i (revdual v)).
+ +
+Lemma plact2idual u v : u \in plact2i v = (revdual u \in plact1i (revdual v)).
+ +
+End DualRule.
+ +
+Arguments revdual {disp Alph}.
+Arguments from_revdual {disp Alph}.
+ +
+Section PlactDual.
+ +
+Context disp (Alph : inhOrderType disp).
+Let word := seq Alph.
+Implicit Type u v w : word.
+ +
+Theorem plact_revdual u v : u =Pl v -> revdual u =Pl revdual v.
+ +
+Theorem plact_from_revdual (u v : seq Alph^d) :
+  u =Pl v -> from_revdual u =Pl from_revdual v.
+ +
+Theorem plact_dualE u v : u =Pl v <-> revdual u =Pl revdual v.
+ +
+Theorem plact_from_dualE (u v : seq Alph^d) :
+  u =Pl v <-> from_revdual u =Pl from_revdual v.
+ +
+End PlactDual.
+ +
+
+ +
+

Plactic monoid and Robinson-Schensted map

+ +
+
+Section RSToPlactic.
+ +
+Context disp (Alph : inhOrderType disp).
+Let word := seq Alph.
+ +
+Implicit Type a b c : Alph.
+Implicit Type u v w r : word.
+ +
+Lemma rcons_rcons w a b : rcons (rcons w a) b = w ++ [:: a; b].
+ +
+Lemma congr_row_1 r b l :
+  is_row (rcons r l) -> (l < b)%O -> rcons (rcons r b) l =Pl b :: rcons r l.
+ +
+Lemma congr_row_2 a r l :
+  is_row (a :: r) -> (l < a)%O -> a :: rcons r l =Pl a :: l :: r.
+ +
+Lemma set_nth_LxR L c R l pos :
+  (size L) = pos -> set_nth l (L ++ c :: R) pos l = L ++ l :: R.
+ +
+Lemma congr_bump r l :
+  r != [::] -> is_row r -> bump r l -> r ++ [:: l] =Pl [:: bumped r l] ++ ins r l.
+ +
+Theorem congr_RS w : w =Pl (to_word (RS w)).
+ +
+Corollary Sch_plact u v : RS u == RS v -> u =Pl v .
+ +
+End RSToPlactic.
+ +
+
+ +
+

Removing the last big letter and plactic congruence

+ +
+
+Section RemoveBig.
+ +
+Context disp (Alph : inhOrderType disp).
+Let word := seq Alph.
+ +
+Implicit Type a b c : Alph.
+Implicit Type u v w r : word.
+ +
+Lemma rembig_plact1 u v : u \in (plact1 v) -> rembig u = rembig v.
+ +
+Lemma rembig_plact1i u v : u \in (plact1i v) -> rembig u = rembig v.
+ +
+Lemma rembig_plact2 u v : u \in (plact2 v) -> rembig u = rembig v.
+ +
+Lemma rembig_plact2i u v : u \in (plact2i v) -> rembig u = rembig v.
+ +
+Lemma rembig_plact u v : u \in (plactrule _ v) -> rembig u = rembig v.
+ +
+Theorem rembig_plactcongr u v : u =Pl v -> (rembig u) =Pl (rembig v).
+ +
+Lemma inspos_rcons l r b : (l < b)%O -> inspos r l = inspos (rcons r b) l.
+ +
+Lemma bump_bumprow_rconsE l r b :
+  is_row (rcons r b) -> (l < b)%O -> bump r l ->
+  let: (lres, rres) := bumprow r l in
+  bumprow (rcons r b) l = (lres, rcons rres b).
+ +
+Lemma nbump_bumprow_rconsE l r b :
+  is_row (rcons r b) -> (l < b)%O -> ~~bump r l ->
+  let: (lres, rres) := bumprow r l in bumprow (rcons r b) l = (Some b, rres).
+ +
+Lemma allLeq_is_row_rcons w b :
+  allLeq w b -> forall row, row \in RS w -> is_row (rcons row b).
+ +
+Lemma last_ins_lt r l b : (l < b -> last b r < b -> last b (ins r l) < b)%O.
+ +
+Lemma bumped_lt r b l : is_row r -> (l < b -> last b r < b -> bumped r l < b)%O.
+ +
+Lemma bisimul_instab t l b lb :
+  is_tableau t -> (l < b)%O ->
+  (forall row, row \in t -> is_row (rcons row b)) ->
+  (forall j : nat, j < lb -> (last b (nth [::] t j) < b)%O) ->
+  let tres := (append_nth t b lb) in
+  instab tres l = append_nth (instab t l) b (last_big (instab tres l) b).
+ +
+Theorem rembig_RS_last_big a v :
+  RS (a :: v) = append_nth (RS (rembig (a :: v)))
+                           (maxL a v)
+                           (last_big (RS (a :: v)) (maxL a v)).
+ +
+Theorem rembig_RS a v :
+  {i | RS (a :: v) = append_nth (RS (rembig (a :: v))) (maxL a v) i}.
+ +
+End RemoveBig.
+ +
+Section RestrIntervSmall.
+ +
+Context disp (Alph : inhOrderType disp).
+Let word := seq Alph.
+ +
+Implicit Type a b c : Alph.
+Implicit Type u v w r : word.
+ +
+Lemma plact1_ge L u v1 w v2 :
+   v2 \in plact1 v1 ->
+   [seq x <- u ++ v1 ++ w | (L >= x)%O] =Pl [seq x <- u ++ v2 ++ w | (L >= x)%O].
+ +
+Lemma plact2_ge L u v1 w v2 :
+   v2 \in plact2 v1 ->
+   [seq x <- u ++ v1 ++ w | (L >= x)%O] =Pl [seq x <- u ++ v2 ++ w | (L >= x)%O].
+ +
+Lemma plactic_filter_ge L u v :
+  u =Pl v -> [seq x <- u | (L >= x)%O] =Pl [seq x <- v | (L >= x)%O].
+ +
+Lemma plactic_filter_gt L u v :
+  u =Pl v -> [seq x <- u | (L > x)%O] =Pl [seq x <- v | (L > x)%O].
+ +
+End RestrIntervSmall.
+ +
+Section RestrIntervBig.
+ +
+Context disp (Alph : inhOrderType disp).
+Let word := seq Alph.
+ +
+Implicit Type a b c : Alph.
+Implicit Type u v w r : word.
+ +
+Variable L : Alph.
+Notation leL := (@Order.le _ Alph L).
+Notation geL := (@Order.ge _ Alph^d L).
+Notation ltL := (@Order.lt _ Alph L).
+Notation gtL := (@Order.gt _ Alph^d L).
+ +
+Lemma leL_geLdualE u :
+  filter leL u = from_revdual (filter geL (revdual u)).
+ +
+Lemma ltL_gtLdualE u :
+  filter ltL u = from_revdual (filter gtL (revdual u)).
+ +
+Lemma plactic_filter_le u v : u =Pl v -> filter leL u =Pl filter leL v.
+ +
+Lemma plactic_filter_lt u v : u =Pl v -> filter ltL u =Pl filter ltL v.
+ +
+End RestrIntervBig.
+ +
+
+ +
+

Plactic congruence and increasing maps

+ +
+
+Section IncrMap.
+ +
+Context disp1 disp2 (T1 : inhOrderType disp1) (T2 : inhOrderType disp2).
+Variable F : T1 -> T2.
+Variable u v : seq T1.
+ +
+Hypothesis Hincr : {in u &, {homo F : x y / (x < y)%O}}.
+ +
+Lemma subset_abc l a b c r :
+  {subset l ++ [:: a; b; c] ++ r <= u} -> [/\ a \in u, b \in u & c \in u].
+ +
+Lemma plact_map_in_incr : u =Pl v -> (map F u) =Pl (map F v).
+ +
+End IncrMap.
+ +
+
+
+ + + +
+ + + \ No newline at end of file diff --git a/combi/1.1.0/Combi.LRrule.shuffle.html b/combi/1.1.0/Combi.LRrule.shuffle.html new file mode 100644 index 00000000..84367c4b --- /dev/null +++ b/combi/1.1.0/Combi.LRrule.shuffle.html @@ -0,0 +1,558 @@ + + + + + +Combi.LRrule.shuffle: Shuffle and shifted shuffle + + + + +
+ + + +
+ +

Library Combi.LRrule.shuffle: Shuffle and shifted shuffle

+ +
+
+ +
+ +
+
+
+ +
+

Shuffle, shifted shuffle and plactic classes

+ + +
+ +This file contains the core of Schützenberger proof of the Littlewood-Richardson +rule. Namely, the theorem saying that the shifted shuffle of two plactic classes +is a union of plactic classes. The set of those class is described by the +pred_LRtriple predicate. + +
+ +However, to prove the rule, instead of taking the road of plactic Schur +function, we follow Duchamp-Hivert-Thibon using free Schur functions. We +nevertheless prove Schützenberger theorem Schutzenberger_shuffle_plact but +we don't use it. + +
+ +Here are the new notions: + +
+ +
    +
  • shuffle u v == the sequence of shuffling of u and v + +
  • +
  • shiftn n u == add n to all the entries of the sequence u + +
  • +
  • sfiltergtn n v == filter all the entries smaller than n in v + +
  • +
  • sfilterleq n v == filter and substract n to the entries of v larger + than n in v + +
    + + +
  • +
  • shsh u v == the shifted shuffle of u and v + +
    + + +
  • +
  • langQ t == the set of words whose Q-symbol is t + +
  • +
+ +
+ +The Littlewood-Richardson triple: + +
+ +
    +
  • LRtriple t1 t2 t == there exists three words p1 p2 p of respective + P-symbol t1 t2 t such that p appears in the shifted shuffle + of p1 and p2. Otherwise said, the row reading of t appears + in the shifted shuffle of the plactic classes of t1 and t2. + This is an inductive proposition. + +
  • +
  • pred_LRtriple t1 t2 t == a predicate deciding LRtriple t1 t2 t + +
  • +
  • pred_LRtriple_fast t1 t2 t == a faster predicate deciding LRtriple t1 t2 t + only computing the shifted shuffle of (the row reading of) t1 with + the plactic class of t2 + +
  • +
+ +
+ +The main statement is LRtriple_cat_equiv which stats the equivalence, +for two standard tableau t1 and t2 and two words u1 u2 of the right length, +between the two following statements: +
    +
  • u1 \in langQ t1 /\ u2 \in langQ t2 + +
  • +
  • exists t, LRtriple t1 t2 t /\ u1 ++ u2 \in langQ t + +
  • +
+ +
+ +Then to get a first version of the LR rule, we will need to do the necessary +abgebraic translation of the rule and recode the triple by some standard +skew tableaux. + +
+
+ +
+From Corelib Require Import Setoid.
+From mathcomp Require Import ssreflect ssrbool ssrfun ssrnat eqtype fintype choice.
+From mathcomp Require Import order seq tuple finfun finset perm binomial bigop.
+Require Import tools vectNK subseq partition Yamanouchi ordtype std tableau stdtab.
+Require Import Schensted plactic Greene_inv stdplact.
+ +
+Set Implicit Arguments.
+ +
+Open Scope bool.
+ +
+Import Order.TTheory.
+ +
+
+ +
+

The shuffle of two sequences

+ +
+
+Section Defs.
+ +
+Variable Alph : eqType.
+Let word := seq Alph.
+ +
+Implicit Type a b c : Alph.
+Implicit Type u v w : word.
+ +
+
+ +
+A well founded recursive definition of shuffle (a :: u) v +
+
+Fixpoint shuffle_from_rec a u shuffu' v {struct v} :=
+  if v is b :: v' then
+    [seq a :: w | w <- shuffu' v] ++
+    [seq b :: w | w <- shuffle_from_rec a u shuffu' v']
+  else [:: (a :: u)].
+ +
+Fixpoint shuffle u v {struct u} :=
+  if u is a :: u' then
+    shuffle_from_rec a u' (shuffle u') v
+  else [:: v].
+ +
+Lemma shuffle_nil u : shuffle u [::] = [:: u].
+ +
+Lemma size_shuffle u v :
+  size (shuffle u v) = binomial ((size u) + (size v)) (size u).
+ +
+Lemma shuffleC u v : perm_eq (shuffle u v) (shuffle v u).
+ +
+Lemma perm_shuffle u v : all (perm_eq (u ++ v)) (shuffle u v).
+ +
+Lemma all_size_shuffle u v :
+  all (fun s => size s == size u + size v) (shuffle u v).
+ +
+
+ +
+

Shuffling two disjoint sequences

+ +
+
+Lemma all_in_shufflel u v :
+  predI (mem u) (mem v) =i pred0 ->
+  all (fun s => filter (mem u) s == u) (shuffle u v).
+ +
+Lemma all_in_shuffler u v :
+  predI (mem u) (mem v) =i pred0 ->
+  all (fun s => filter (mem v) s == v) (shuffle u v).
+ +
+Lemma mem_shuffle_predU u v s Pu Pv:
+  predI Pu Pv =i pred0 ->
+  filter Pu s = u -> filter Pv s = v -> size s = size u + size v ->
+  filter (predU Pu Pv) s = s.
+ +
+Lemma mem_shuffle_pred u v s Pu Pv:
+  predI Pu Pv =i pred0 ->
+  filter Pu s = u -> filter Pv s = v -> size s = size u + size v ->
+  s \in shuffle u v.
+ +
+Lemma mem_shuffle u v s :
+  predI (mem u) (mem v) =i pred0 ->
+  [&& filter (mem u) s == u,
+      filter (mem v) s == v &
+      (size s == size u + size v)] = (s \in shuffle u v).
+ +
+End Defs.
+ +
+
+ +
+

The shifted shuffle of two standard words

+ +
+
+Section ShiftedShuffle.
+ +
+Implicit Type u v w : seq nat.
+ +
+Definition shiftn n := map (addn n).
+Definition sfiltergtn n := [fun v => filter (gtn n) v].
+Definition sfilterleq n := [fun v => map (subn^~ n) (filter (leq n) v)].
+ +
+Lemma shiftuK n : cancel (shiftn n) (map (subn^~ n)).
+ +
+Lemma sfilterleqK n v : shiftn n (sfilterleq n v) = [seq x <- v | n <= x].
+ +
+Lemma sfilterleqE n u v : u = sfilterleq n v <-> shiftn n u = filter (leq n) v.
+ +
+Lemma mem_sfilterleqK n v i : i \in (sfilterleq n v) = (i + n \in v).
+ +
+Lemma perm_shiftn_std n s :
+  is_std s -> perm_eq (shiftn n s) (iota n (size s)).
+ +
+Definition shsh u v := shuffle u (shiftn (size u) v).
+ +
+Lemma std_shsh u v : is_std u -> is_std v -> all is_std (shsh u v).
+ +
+Lemma pred0_std u v : is_std u -> [predI u & shiftn (size u) v] =i pred0.
+ +
+Lemma shsh_sfiltergtn p u v :
+  is_std u -> p \in shsh u v -> u = sfiltergtn (size u) p.
+ +
+Lemma shsh_sfilterleq p u v :
+  is_std u -> p \in shsh u v -> v = sfilterleq (size u) p.
+ +
+Lemma mem_shsh p u v :
+  is_std u ->
+  (p \in shsh u v) =
+  ((sfiltergtn (size u) p == u) && (sfilterleq (size u) p == v)).
+ +
+Lemma shift_plactcongr n u v : (u =Pl v) = (shiftn n u =Pl shiftn n v).
+ +
+
+ +
+

Schützenberger theorem

+ +
+ + +
+

Shifted shuffle and inverse standardized

+ +
+
+Section LRTriple.
+ +
+Context {disp} {Alph : inhOrderType disp}.
+Let word := seq Alph.
+ +
+Implicit Type a b c : Alph.
+Implicit Type u v w : word.
+Implicit Type t : seq (seq nat).
+ +
+Lemma perm_sfiltergtn p n :
+  is_std p -> perm_eq (sfiltergtn n p) (iota 0 (minn n (size p))).
+ +
+Lemma perm_sfilterleq p n :
+  is_std p -> perm_eq (sfilterleq n p) (iota 0 ((size p) - n)).
+ +
+Lemma size_sfiltergtn p n :
+  is_std p -> size (sfiltergtn n p) = minn n (size p).
+Lemma size_sfilterleq p n :
+  is_std p -> size (sfilterleq n p) = (size p) - n.
+ +
+Lemma sfiltergtn_is_std p n : is_std p -> is_std (sfiltergtn n p).
+Lemma sfilterleq_is_std p n : is_std p -> is_std (sfilterleq n p).
+ +
+Lemma size_sfiltergtn_cat u v :
+  size (sfiltergtn (size u) (invstd (std (u ++ v)))) = size u.
+Lemma size_sfilterleq_cat u v :
+  size (sfilterleq (size u) (invstd (std (u ++ v)))) = size v.
+ +
+Lemma index_leq_filter s (P : pred nat) i j :
+  P i -> P j ->
+  (index i (filter P s)) <= (index j (filter P s)) = (index i s <= index j s).
+ +
+Lemma index_sfilterleq n s i :
+  index i (sfilterleq n s) = index (i + n) (filter (leq n) s).
+ +
+Lemma index_invstd l i :
+  is_std l -> i < size l -> index i (invstd l) = nth inh l i.
+ +
+Lemma invstd_catgtn u v :
+  invstd (std u) = sfiltergtn (size u) (invstd (std (u ++ v))).
+ +
+Lemma invstd_catleq u v :
+  invstd (std v) = sfilterleq (size u) (invstd (std (u ++ v))).
+ +
+
+ +
+This is essentially the product rule of FQSym +
+
+Theorem invstd_cat_in_shsh u v :
+  invstd (std (u ++ v)) \in shsh (invstd (std u)) (invstd (std v)).
+ +
+
+ +
+Free Schur functions as predicates +
+
+Definition langQ t := [pred w : word | (RStabmap w).2 == t].
+ +
+Lemma langQE u t : (u \in langQ t) = (RS (invstd (std u)) == t).
+ +
+Lemma size_langQ t u : u \in langQ t -> size u = size_tab t.
+ +
+
+ +
+

Littlewood-Richardson-Schützenberger triple

+ +
+
+Inductive LRtriple t1 t2 t : Prop :=
+  LRTriple :
+    forall p1 p2 p, RS p1 = t1 -> RS p2 = t2 -> RS p = t ->
+                    p \in shsh p1 p2 -> LRtriple t1 t2 t.
+Definition pred_LRtriple (t1 t2 : seq (seq nat)) :=
+  [pred t : (seq (seq nat)) |
+   has (fun p => RS p == t)
+       (flatten [seq shsh p1 p2 | p1 <- RSclass _ t1, p2 <- RSclass _ t2])].
+Definition pred_LRtriple_fast (t1 t2 : seq (seq nat)) :=
+  [pred t : (seq (seq nat)) |
+   has (fun p2 => to_word t \in shsh (to_word t1) p2) (RSclass _ t2)].
+ +
+Lemma LRtripleP t1 t2 t :
+  is_stdtab t1 -> is_stdtab t2 ->
+  reflect (LRtriple t1 t2 t) (pred_LRtriple t1 t2 t).
+ +
+Lemma filter_gt_RS d (T : inhOrderType d) (w : seq T) n :
+  RS (filter (>%O n) w) = filter_gt_tab n (RS w).
+ +
+Lemma pred_LRtriple_fast_filter_gt t1 t2 t :
+  is_stdtab t1 -> is_stdtab t ->
+  pred_LRtriple_fast t1 t2 t -> t1 = filter_gt_tab (size_tab t1) t.
+ +
+Lemma LRtriple_fastE t1 t2 t :
+  is_stdtab t1 -> is_stdtab t2 -> is_stdtab t ->
+  pred_LRtriple t1 t2 t = pred_LRtriple_fast t1 t2 t.
+ +
+Lemma is_stdtab_of_n_LRtriple t1 t2 t :
+  is_stdtab t1 -> is_stdtab t2 -> LRtriple t1 t2 t ->
+  is_stdtab_of_n ((size_tab t1) + (size_tab t2)) t.
+ +
+Theorem LRtriple_cat_langQ t1 t2 u1 u2:
+  is_stdtab t1 -> is_stdtab t2 -> u1 \in langQ t1 -> u2 \in langQ t2 ->
+  LRtriple t1 t2 (RStabmap (u1 ++ u2)).2.
+ +
+
+ +
+This is essentially the free LR rule: + +
+ +The concatenation of langQ t1 and langQ t2 is the union of langQ t for +t such that LRtriple t1 t2 t. + +
+
+Theorem LRtriple_cat_equiv t1 t2 :
+  is_stdtab t1 -> is_stdtab t2 ->
+  forall u1 u2 : word,
+  ( (u1 \in langQ t1 /\ u2 \in langQ t2) <->
+    [/\ size u1 = size_tab t1, size u2 = size_tab t2 &
+     exists t, LRtriple t1 t2 t /\ u1 ++ u2 \in langQ t] ).
+ +
+
+ +
+

A longer alternative road

+ In the following we goes along the proof of Schützenberger theorem + but we end up duplicating the whole proof: compare the statement and proofs + of +
    +
  • sfiltergtn_invstd below with invstd_catgtn + +
  • +
  • sfilterleq_invstd below with invstd_catleq + +
  • +
+ +
+
+ +
+Lemma sfiltergtn_invstd w n :
+  n <= size w -> sfiltergtn n (invstd (std w)) = invstd (std (take n w)).
+ +
+Lemma sfilterleq_invstd w n :
+  n <= size w -> sfilterleq n (invstd (std w)) = invstd (std (drop n w)).
+ +
+
+ +
+Yet another form of Schützenberger theorem +
+ + +
+Alternative proof from LRtriple_cat_equiv +
+ + +
+

Conjugating LRtriple

+ +
+ +
+ + + +
+ + + \ No newline at end of file diff --git a/combi/1.1.0/Combi.LRrule.stdplact.html b/combi/1.1.0/Combi.LRrule.stdplact.html new file mode 100644 index 00000000..070c53f3 --- /dev/null +++ b/combi/1.1.0/Combi.LRrule.stdplact.html @@ -0,0 +1,239 @@ + + + + + +Combi.LRrule.stdplact: Plactic congruences and standardization + + + + +
+ + + +
+ +

Library Combi.LRrule.stdplact: Plactic congruences and standardization

+ +
+
+ +
+ +
+
+
+ +
+

Plactic congruences and standardization

+ + +
+ +The goal of this file is to show a few important properties of plactic +congruence related to standardisation. + +
+ +The first one is easy: it says that standardization preserve plactic congruence. +This is Theorem std_plact and is stated as u =Pl v -> std u =Pl std v. + +
+ +The next series of results relates the result of the RS map applied on +u and std u: +
    +
  • the insertion tableau have the same shape: Theorem shape_RS_std; + +
  • +
  • the recording tableau are equal: Theorem RSmap_std and RStabmap_std. + +
  • +
+ +
+ +And finally, inverting a standard word amount to exchange the insertion and +the recording tableaux: Theorem invseqRSPQE, and Corollaries invseqRSE, +invstdRSE, RSTabmapstdE and RSinvstdE. + +
+
+From mathcomp Require Import all_boot order.
+From mathcomp Require Import perm fingroup.
+ +
+Require Import tools combclass ordcast partition Yamanouchi ordtype std tableau.
+Require Import stdtab sorted Schensted congr plactic Greene Greene_inv.
+ +
+Set Implicit Arguments.
+ +
+Import Order.TTheory.
+ +
+
+ +
+

Plactic congruence and standardization

+ +
+
+Section StdRS.
+ +
+Context {disp} {Alph : inhOrderType disp}.
+Implicit Type s u v w : seq Alph.
+Implicit Type p : seq nat.
+Implicit Type t : seq (seq Alph).
+ +
+Lemma std_plact1 (u v1 w v2 : seq Alph) :
+  v2 \in plact1 v1 -> std (u ++ v1 ++ w) =Pl std (u ++ v2 ++ w).
+ +
+Lemma std_plact2 (u v1 w v2 : seq Alph) :
+  v2 \in plact2 v1 -> std (u ++ v1 ++ w) =Pl std (u ++ v2 ++ w).
+ +
+Theorem std_plact u v : u =Pl v -> std u =Pl std v.
+ +
+
+ +
+

Robinson-Schensted correspondence and standardization

+ +
+
+Lemma cast_enum u (S : {set 'I_(size u)}) :
+  enum (mem (cast_set (esym (size_std u)) S)) =
+  map (cast_ord (esym (size_std u))) (enum (mem S)).
+ +
+Lemma sorted_std_extract u (S : {set 'I_(size u)}) :
+  sorted <=%O (extractpred (in_tuple u) (mem S)) =
+  sorted <=%O (extractpred (in_tuple (std u))
+                           (mem (cast_set (esym (size_std u)) S))).
+ +
+Lemma ksupp_inj_std u k : ksupp_inj <=%O <=%O k u (std u).
+ +
+Lemma ksupp_inj_stdI u k : ksupp_inj <=%O <=%O k (std u) u.
+ +
+Lemma Greene_std u k : Greene_row (std u) k = Greene_row u k.
+ +
+Theorem shape_RS_std u : shape (RS (std u)) = shape (RS u).
+ +
+End StdRS.
+ +
+Theorem RSmap_std disp (T : inhOrderType disp) (w : seq T) :
+  (RSmap (std w)).2 = (RSmap w).2.
+ +
+Corollary RStabmap_std disp (T : inhOrderType disp) (w : seq T) :
+  (RStabmap (std w)).2 = (RStabmap w).2.
+ +
+
+ +
+

Robinson-Schensted correspondence and inversion

+ +
+
+Section KsuppInj.
+ +
+Variable s t : seq nat.
+Hypothesis Hinv : invseq s t.
+ +
+#[local] Lemma Hinvst : linvseq s t.
+#[local] Lemma Hinvts : linvseq t s.
+ +
+#[local] Definition val2pos :=
+  fun (i : 'I_(size s)) => Ordinal (linvseq_ltn_szt Hinvst (ltn_ord i)).
+ +
+Lemma val2posE : val \o val2pos =1 nth (size t) s.
+Lemma val2pos_inj : injective val2pos.
+ +
+Lemma val2pos_enum (p : {set 'I_(size s)}) :
+  
+  sorted <=%O [seq tnth (in_tuple s) i | i <- enum (mem p)] ->
+  enum (mem [set val2pos x | x in p]) = [seq val2pos x | x <- enum p].
+ +
+Lemma ksupp_inj_invseq k : ksupp_inj <=%O <=%O k s t.
+ +
+End KsuppInj.
+ +
+Lemma Greene_invseq s t k : invseq s t -> Greene_row s k = Greene_row t k.
+ +
+Lemma shape_invseq s t : invseq s t -> shape (RS s) = shape (RS t).
+ +
+Lemma std_rcons_shiftinv t tn :
+  is_std (rcons t tn) -> std t = map (shiftinv_pos tn) t.
+ +
+Lemma posbig_invseq s0 s t tn :
+  invseq (s0 :: s) (rcons t tn) -> posbig (s0 :: s) = tn.
+ +
+Lemma nth_std_pos s i x :
+  is_std s -> i < size s -> i != posbig s -> nth x s i < (size s).-1.
+ +
+Lemma linvseqK s0 s t tn :
+  invseq (s0 :: s) (rcons t tn) -> linvseq (rembig (s0 :: s)) (std t).
+ +
+Lemma invseqK s0 s t tn :
+  invseq (s0 :: s) (rcons t tn) -> invseq (rembig (s0 :: s)) (std t).
+ +
+Theorem invseqRSPQE s t :
+  invseq s t -> (RStabmap s).1 = (RStabmap t).2.
+ +
+Corollary invseqRSE s t :
+  invseq s t -> RStabmap s = ((RStabmap t).2, (RStabmap t).1).
+ +
+Corollary invstdRSE s :
+  is_std s -> let (P, Q) := RStabmap (invstd s) in RStabmap s = (Q, P).
+ +
+Corollary RSTabmapstdE disp (T : inhOrderType disp) (w : seq T) :
+  (RStabmap (invstd (std w))).1 = (RStabmap (std w)).2.
+ +
+Corollary RSinvstdE disp (T : inhOrderType disp) (w : seq T) :
+  RS (invstd (std w)) = (RStabmap w).2.
+
+
+ + + +
+ + + \ No newline at end of file diff --git a/combi/1.1.0/Combi.LRrule.therule.html b/combi/1.1.0/Combi.LRrule.therule.html new file mode 100644 index 00000000..d2c86c70 --- /dev/null +++ b/combi/1.1.0/Combi.LRrule.therule.html @@ -0,0 +1,439 @@ + + + + + +Combi.LRrule.therule: The Littlewood-Richardson rule + + + + +
+ + + +
+ +

Library Combi.LRrule.therule: The Littlewood-Richardson rule

+ +
+
+ +
+ +
+
+
+ +
+

The Littlewood-Richardson rule

+ + +
+ +The goal of this file is to formalize the final step ot the proof: a bijection +beetween LR-standard tableau as defined in LRsupport Q1 Q2 and LR-Yamanouchi +tableaux. + +
+ +Below we use the following notation: +
    +
  • d1 and d2 are nat, + +
  • +
  • P1 : a partition of d1 (of type: inpartn d1). + +
  • +
  • P2 : a partition of d2 (of type: inpartn d2). + +
  • +
  • P : a partition of d1 + d2 (of type: inpartn d1 + d2). + +
  • +
+ +
+ + +
+ +We define the following: +
    +
  • is_skew_reshape_tableau P P1 w == w is the row reading of a skew tableau of + shape P/P1. Equivalently, the P/P1-reshape of w is a skew tableau. + +
  • +
  • bijLRyam P P1 == a map from seq nat to seq (seq nat) which defines a + bijection between LR yamanouchi tableaux and LR-standard tableaux + +
  • +
  • bijLR P P1 == the sigma-type version of bijLRyam: + (yam : yameval P2) -> stdtabn (d1 + d2) + +
    + + +
  • +
  • LRyam_set P1 P2 P == the set of LR Yamanouchi words. + +
  • +
  • LRyam_coeff P1 P2 P == the LR coefficient defined as the cardinality of + the set of LR Yamanouchi words. + +
    + + +
  • +
  • LRyam_enum P1 P2 P == a list for the LR Yamanouchi words. + +
  • +
  • LRyam_compute P1 P2 P == the length LRyam_enum, allows to compute LR-coeffs + and LR-tableaux from the definition inside coq. As an + implementation, its a very slow way to compute LR-coeff. Indeed, + the set of Yamanouchi words where we are looking for LR words is + much too large. The module implem will provide a much efficient + way using backtracking instead of filtering to enumerate those. + +
    + + +
  • +
  • yamrow n == the trivial Yamanouchi word of size n whis is constant to 0 + +
  • +
+ +
+ + +
+ +The main theorem is Theorem LRyam_coeffP: + +
+ + + Schur P1 * Schur P2 = + \sum_(P : 'P_(d1 + d2) | included P1 P) Schur P *+ LRyam_coeff P. + + +
+ +As a corollary we provide the two Pieri rules Pieri_rowpartn and +Pieri_colpartn. + +
+
+From HB Require Import structures.
+From mathcomp Require Import all_boot order.
+From mathcomp Require Import ssralg.
+From mathcomp Require Import mpoly.
+ +
+Require Import tools ordcast combclass partition skewpart Yamanouchi ordtype.
+Require Import std tableau stdtab Schensted congr plactic Greene_inv.
+Require Import stdplact Yam_plact skewtab shuffle Schur_mpoly freeSchur.
+ +
+Set Implicit Arguments.
+ +
+Import Order.TTheory.
+Open Scope N.
+#[local] Open Scope Combi.
+ +
+
+ +
+

Gluing a standard tableaux with a skew tableau

+ +
+
+Section LR.
+ +
+Lemma to_word_map_shiftn sh t :
+  to_word (map (shiftn sh) t) = shiftn sh (to_word t).
+ +
+Lemma filter_le_shiftn sh t :
+  [seq x - sh | x <- [seq sh + i | i <- t] & sh <= x] = t.
+ +
+Lemma filter_gt_shiftn sh t :
+  [seq x <- [seq sh + i | i <- t] | gtn sh x] = [::].
+ +
+Lemma shiftn_skew_dominate n sh u v :
+  skew_dominate sh u v -> skew_dominate sh (shiftn n u) (shiftn n v).
+ +
+Lemma is_skew_tableau_map_shiftn sh inn t :
+  is_skew_tableau inn t -> is_skew_tableau inn (map (shiftn sh) t).
+ +
+Lemma join_stdtab s t :
+  is_stdtab s -> is_skew_tableau (shape s) t ->
+  is_tableau (join_tab s (map (shiftn (size_tab s)) t)).
+ +
+Lemma join_stdtab_in_shuffle s t :
+  is_stdtab s ->
+  size s <= size t ->
+  to_word (join_tab s (map (shiftn (size_tab s)) t)) \in
+       shsh (to_word s) (to_word t).
+ +
+Variables d1 d2 : nat.
+ +
+Section TheRule.
+ +
+Variables (P1 : 'P_d1) (P2 : 'P_d2).
+ +
+Lemma sfilterleq_LRsupportP Q :
+  Q \in LRsupport (hyper_stdtabn P1) (hyper_stdtabn P2) ->
+  exists y : yameval P2, std y = (sfilterleq d1 (to_word Q)).
+ +
+Lemma filter_gt_to_word disp (T : inhOrderType disp) n (t : seq (seq T)) :
+  filter (>%O n) (to_word t) = to_word (filter_gt_tab n t).
+ +
+Lemma filter_le_to_word disp (T : inhOrderType disp) n (t : seq (seq T)) :
+  filter (<=%O n) (to_word t) = to_word (filter_le_tab n t).
+ +
+
+ +
+

Littlewood-Richardson Yamanouchi tableaux

+ +
+
+Section OneCoeff.
+ +
+Variable P : 'P_(d1 + d2).
+Hypothesis Hincl : included P1 P.
+ +
+Lemma sumn_diff_shape_intpartE : sumn (P / P1) = sumn P2.
+ +
+Definition is_skew_reshape_tableau (P P1 : seq nat) (w : seq nat) :=
+  is_skew_tableau P1 (skew_reshape P1 P w).
+Definition LRyam_set :=
+  [set y : yameval P2 | is_skew_reshape_tableau P P1 y].
+Definition LRyam_coeff := #|LRyam_set|.
+ +
+Lemma is_skew_reshape_tableauP (w : seq nat) :
+  size w = sumn (P / P1) ->
+  reflect
+    (exists tab, [/\ is_skew_tableau P1 tab,
+                  shape tab = P / P1 & to_word tab = w])
+    (is_skew_reshape_tableau P P1 w).
+ +
+Lemma size_leq_skew_reshape (y : seq nat) :
+  size (RS (std (hyper_yam P1))) <= size (skew_reshape P1 P y).
+ +
+
+ +
+

The final bijection

+ +
+
+Definition bijLRyam :=
+  [fun y : seq nat =>
+     join_tab (hyper_stdtabn P1) (map (shiftn d1) (skew_reshape P1 P (std y)))].
+ +
+Lemma pred_LRtriple_fast_bijLRyam (yam : yameval P2) :
+  is_skew_reshape_tableau P P1 yam ->
+  pred_LRtriple_fast (hyper_stdtabn P1) (hyper_stdtabn P2) (bijLRyam yam).
+ +
+Lemma bijLRyamP (yam : yameval P2) :
+  is_skew_reshape_tableau P P1 yam -> is_stdtab_of_n (d1 + d2) (bijLRyam yam).
+ +
+Definition bijLR (yam : yameval P2) : stdtabn (d1 + d2) :=
+  if (boolP (is_skew_reshape_tableau P P1 yam)) is AltTrue pf then
+    StdtabN (bijLRyamP pf)
+  else
+    hyper_stdtabn P.
+ +
+Lemma bijLR_LRsupport yam :
+  yam \in LRyam_set ->
+  bijLR yam \in LRsupport (hyper_stdtabn P1) (hyper_stdtabn P2).
+ +
+Lemma filtergtn_LRsupport Q :
+  Q \in LRsupport (hyper_stdtabn P1) (hyper_stdtabn P2) ->
+  filter_gt_tab d1 Q = hyper_stdtabn P1.
+ +
+Lemma size_zip2 (T : Type) (s t : seq (seq T)) :
+  [seq size p.1 + size p.2 | p <- zip s t] =
+  [seq p.1 + p.2 | p <- zip (map size s) (map size t)].
+ +
+Lemma shape_bijLR yam : yam \in LRyam_set -> shape (bijLR yam) = P.
+ +
+Lemma filterleq_LRsupport Q :
+  Q \in LRtab_set P1 P2 P ->
+  (skew_reshape P1 P [seq x <- to_word Q | d1 <= x]) = filter_le_tab d1 Q.
+ +
+Lemma sfilterleq_LRsupport_skew Q :
+  Q \in LRtab_set P1 P2 P ->
+        is_skew_reshape_tableau P P1 (sfilterleq d1 (to_word Q)).
+ +
+Lemma bijLR_surj Q :
+  Q \in LRtab_set P1 P2 P -> exists2 yam, yam \in LRyam_set & bijLR yam = Q.
+ +
+Lemma bijLR_inj : {in LRyam_set &, injective bijLR}.
+ +
+Lemma bijLR_image : LRtab_set P1 P2 P = [set bijLR x | x in LRyam_set].
+ +
+Theorem LRyam_coeffE : LRtab_coeff P1 P2 P = LRyam_coeff.
+ +
+
+ +
+

A slow way to compute LR coefficients in coq:

+ + +
+ +We enumerate Yamanouchi words and filter those who are row reading of the skew +tableaux of shape P/P1. This is very innefficient. A better way is to use +backtracking as in implem. + +
+
+ +
+Definition LRyam_enum (P1 P2 P : seq nat) :=
+  [seq x <- enum_yameval P2 | is_skew_reshape_tableau P P1 x].
+Definition LRyam_compute (P1 P2 P : seq nat) := size (LRyam_enum P1 P2 P).
+ +
+Lemma LRcoeff_computeP : LRyam_compute P1 P2 P = LRyam_coeff.
+ +
+End OneCoeff.
+ +
+Lemma included_shape_filter_gt_tab disp (T : inhOrderType disp) (n : T) t :
+  is_tableau t -> included (shape (filter_gt_tab n t)) (shape t).
+ +
+Lemma LRtab_set_included (P : 'P_(d1 + d2)) Q :
+  Q \in LRtab_set P1 P2 P -> included P1 P.
+ +
+
+ +
+

The statement of the Littlewood-Richardson rule

+ +
+
+#[local] Open Scope ring_scope.
+Import GRing.Theory.
+ +
+Variable (n0 : nat) (R : comNzRingType).
+#[local] Notation n := (n0.+1).
+Notation Schur p := (Schur n0 R p).
+ +
+Theorem LRyam_coeffP :
+  Schur P1 * Schur P2 =
+  \sum_(P : 'P_(d1 + d2) | included P1 P) Schur P *+ LRyam_coeff P.
+ +
+End TheRule.
+ +
+
+ +
+

Pieri's rules

+ +
+
+Section Pieri.
+ +
+#[local] Open Scope ring_scope.
+Import GRing.Theory.
+ +
+Variable (n0 : nat) (R : comNzRingType).
+#[local] Notation n := (n0.+1).
+Notation Schur p := (Schur n0 R p).
+ +
+Lemma yamrowP :
+  is_yam_of_eval (intpart_of_intpartn (rowpartn d2)) (ncons d2 0%N [::]).
+Definition yamrow : yameval (rowpartn d2) := YamEval yamrowP.
+ +
+Lemma is_row_yamrow : is_row (ncons d2 0%N [::]).
+ +
+Lemma yam_of_rowpart d y : is_yam_of_eval (rowpartn d) y -> y = ncons d 0%N [::].
+ +
+Theorem LRyam_coeff_rowpart (P1 : 'P_d1) (P : 'P_(d1 + d2)) :
+included P1 P -> LRyam_coeff P1 (rowpartn d2) P = hb_strip P1 P.
+ +
+Theorem Pieri_rowpartn (P1 : 'P_d1) :
+  Schur P1 * Schur (rowpartn d2) =
+  \sum_(P : 'P_(d1 + d2) | hb_strip P1 P) Schur P.
+ +
+Theorem LRyam_coeff_colpartn (P1 : 'P_d1) (P : 'P_(d1 + d2)) :
+  included P1 P -> LRyam_coeff P1 (colpartn d2) P = vb_strip P1 P.
+ +
+Theorem Pieri_colpartn (P1 : 'P_d1) :
+  Schur P1 * Schur (colpartn d2) =
+  \sum_(P : 'P_(d1 + d2) | vb_strip P1 P) Schur P.
+ +
+End Pieri.
+ +
+End LR.
+
+
+ + + +
+ + + \ No newline at end of file diff --git a/combi/1.1.0/Combi.MPoly.Cauchy.html b/combi/1.1.0/Combi.MPoly.Cauchy.html new file mode 100644 index 00000000..a320f5be --- /dev/null +++ b/combi/1.1.0/Combi.MPoly.Cauchy.html @@ -0,0 +1,507 @@ + + + + + +Combi.MPoly.Cauchy: Cauchy formula for symmetric polynomials + + + + +
+ + + +
+ +

Library Combi.MPoly.Cauchy: Cauchy formula for symmetric polynomials

+ +
+
+ +
+ +
+
+
+ +
+

Cauchy formula for symmetric polynomials

+ + +
+ +In this file we fix two non zero natural m and n and consider the two sets +of variables X := (x_i)_{i < m} and Y := (y_j)_{j < n}. We also consider +the variables z_{i,j} := x_i * y_j. + +
+ +We encode polynomial in X \cup Y as polynomials in X whose coefficient are +polynomials in Y. We denote by mz a monomial in the Z. + +
+ +
    +
  • monX mz == the monomial in X obtained by setting all the y_i to 1. + +
  • +
  • monsY mz == the m.-tuple of whose i-th element is the monomial in Y + obtained by putting x_i to 1 and all the others to 0. + +
  • +
  • Ymon ms == given ms : m.-tuple 'X_{1.. n} assemble them to get a + monomial in the Z. + +
  • +
  • polXY m n R == polynomial in m variable whose coefficients are polynomials + in n over the commutative ring R. This is canonically a + algType over R. + +
  • +
  • polXY_scale c p == base ring multiplication for elements of polXY m n R + +
  • +
  • p(X) == the image of p by the canonical inclusion algebra morphism + polX -> polXY + +
  • +
  • p(Y) == the image of p by the canonical inclusion algebra morphism + polY -> polXY + +
  • +
  • p(XY) == the polynomial in polXY from a polynomials in the Z_{i,j}. + +
  • +
  • Cauchy_kernel d == the Cauchy reproducing kernel in degree d, that is + the sum of all monomial in x_i*y_i of degree d + which is defined as 'h_d(XY) + +
  • +
  • co_hp la p == if p is symmetric in X, returns the coefficient of p on + 'hp[la] + +
  • +
  • co_hpXY la mu p == if p is symmetric both in X and Y, returns the + coefficient of p on 'hp[la](X) 'hp[mu](Y). + +
  • +
+ +
+ +The main result is Theorem homsymdotss which asserts that Schur function are +orthonormal for the scalar product. + +
+
+From HB Require Import structures.
+From mathcomp Require Import all_boot.
+From mathcomp Require Import ssrint rat ssralg ssrnum algC matrix vector.
+From mathcomp Require Import sesquilinear.
+From mathcomp Require Import mpoly.
+ +
+Require Import tools partition ordtype.
+Require Import antisym Schur_mpoly Schur_altdef sympoly homogsym permcent.
+ +
+Require ordtype.
+ +
+Set Implicit Arguments.
+ +
+Import GRing.Theory Num.Theory.
+#[local] Open Scope ring_scope.
+ +
+#[local] Lemma pchar0_rat : [pchar rat] =i pred0.
+ #[local] Lemma pchar0_algC : [pchar algC] =i pred0.
+ #[local] Hint Resolve pchar0_algC pchar0_rat : core.
+ +
+Reserved Notation "p '(Y)'" (at level 20, format "p '(Y)'").
+Reserved Notation "p '(X)'" (at level 20, format "p '(X)'").
+Reserved Notation "p '(XY)'" (at level 20, format "p '(XY)'").
+ +
+
+ +
+

Polynomials in two sets of variables

+ +
+
+Section CauchyKernel.
+ +
+Variables (m0 n0 : nat).
+Notation m := m0.+1.
+Notation n := n0.+1.
+Notation mxvec_index := (@mxvec_index m n).
+ +
+Let vecmx_index : 'I_(m * n) -> 'I_m * 'I_n :=
+  (enum_val \o cast_ord (esym (mxvec_cast m n))).
+ +
+Lemma vecmx_indexK i : mxvec_index (vecmx_index i).1 (vecmx_index i).2 = i.
+Lemma mxvec_indexK i j : vecmx_index (mxvec_index i j) = (i, j).
+ +
+Section Big.
+ +
+Variables (R : Type) (idx : R).
+Variable op : Monoid.com_law idx.
+ +
+Lemma big_mxvec_index P F :
+  \big[op/idx]_(i : 'I_(m * n) | P i) F i =
+   \big[op/idx]_(i < m)
+    \big[op/idx]_(j < n | P (mxvec_index i j)) F (mxvec_index i j).
+ +
+End Big.
+ +
+Definition monX (mon : 'X_{1.. m*n}) : 'X_{1.. m} :=
+  [multinom (\sum_(j < n) mon (mxvec_index i j))%N | i < m].
+ +
+Lemma mdeg_monX mon : mdeg (monX mon) = mdeg mon.
+ +
+Definition monsY (mz : 'X_{1.. m*n}) :=
+  [tuple [multinom mz (mxvec_index i j) | j < n] | i < m].
+ +
+Definition Ymon (ms : m.-tuple 'X_{1.. n}) :=
+  [multinom (tnth ms (vecmx_index i).1) (vecmx_index i).2 | i < m*n].
+ +
+Lemma monsYK : cancel monsY Ymon.
+Lemma YmonK : cancel Ymon monsY.
+Lemma monsY_bij : bijective monsY.
+ Lemma Ymon_bij : bijective Ymon.
+ +
+Lemma mdeg_tnth_monsY mz i :
+  mdeg (tnth (monsY mz) i) = tnth (monX mz) i.
+ +
+Variable (R : comNzRingType).
+ +
+#[local] Notation polZ := {mpoly R[m * n]}.
+#[local] Notation polX := {mpoly R[m]}.
+#[local] Notation polY := {mpoly R[n]}.
+Definition polXY := {mpoly polY[m]}.
+Definition polXY_scale (c : R) (p : polXY) : polXY := c%:MP *: p.
+#[local] Notation "c *:M p" := (polXY_scale c p)
+  (at level 40, left associativity).
+ +
+ +
+Fact scale_polXYA a b p : a *:M (b *:M p) = (a * b) *:M p.
+ Fact scale_polXY1m p : 1 *:M p = p.
+ Fact scale_polXYDr c p1 p2 :
+  c *:M (p1 + p2) = c *:M p1 + c *:M p2.
+ Fact scale_polXYDl p c1 c2 :
+  (c1 + c2) *:M p = c1 *:M p + c2 *:M p.
+ +
+Lemma scale_polXYE (c : R) (p : polXY) : c *: p = c *:M p.
+ +
+Fact polXY_scaleAl (c : R) (p q : polXY) : c *: (p * q : polXY) = (c *: p) * q.
+ +
+Fact polXY_scaleAr (c : R) (p q : polXY) : c *: (p * q : polXY) = p * (c *: q).
+ +
+Definition polX_XY : polX -> polXY := map_mpoly (mpolyC n (R := R)).
+ +
+Fact polX_XY_is_zmod_morphism : zmod_morphism polX_XY.
+ +
+Fact polX_XY_is_monoid_morphism : monoid_morphism polX_XY.
+ +
+Fact polX_XY_is_linear : linear polX_XY.
+ +
+Definition polY_XY : polY -> polXY := mpolyC m (R := {mpoly R[n]}).
+ +
+Fact polY_XY_is_zmod_morphism : zmod_morphism polY_XY.
+ +
+Fact polY_XY_is_monoid_morphism : monoid_morphism polY_XY.
+ +
+Fact polY_XY_is_linear : linear polY_XY.
+ +
+Notation "p '(Y)'" := (polY_XY p).
+Notation "p '(X)'" := (polX_XY p).
+ +
+Lemma polyXY_scale p q : p(X) * q(Y) = q *: p(X).
+ +
+Lemma symmX d (la : 'P_d) : 'hm[la](X) = 'hm[la].
+ +
+Definition evalXY : polZ -> polXY :=
+  mmap ((@mpolyC m _) \o (@mpolyC n R))
+       (fun i => 'X_((vecmx_index i).1) (X) * 'X_((vecmx_index i).2) (Y)).
+Notation "p '(XY)'" := (evalXY p).
+ +
+Fact evalXY_is_zmod_morphism : zmod_morphism evalXY.
+ +
+Fact evalXY_is_monoid_morphism : monoid_morphism evalXY.
+ +
+Fact evalXY_is_linear : linear evalXY.
+ +
+Lemma evalXY_XE mz :
+  'X_[mz](XY) = 'X_[monX mz](X) * \prod_(i < m) 'X_[tnth (monsY mz) i](Y).
+ +
+Lemma evalXY_homog d p : p \is d.-homog -> p(XY) \is d.-homog.
+ +
+Lemma sympXY k : 'p_k(XY) = 'p_k(X) * 'p_k(Y).
+ +
+Lemma prod_sympXY d (la : 'P_d) : 'hp[la](XY) = 'hp[la](X) * 'hp[la](Y).
+ +
+
+ +
+

The Cauchy reproducing kernel

+ +
+
+Definition Cauchy_kernel d := 'h_d(XY).
+ +
+Lemma Cauchy_kernel_dhomog d : Cauchy_kernel d \is d.-homog.
+ +
+Section BijectionFam.
+ +
+Variable d : nat.
+ +
+Fact famY_subproof (mz : 'X_{1.. (m * n) < d.+1}) i :
+    (mdeg (tnth (monsY (val mz)) i) < d.+1)%N.
+Definition famY mz : {ffun 'I_m -> 'X_{1.. n < d.+1}} :=
+  [ffun i : 'I_m => BMultinom (famY_subproof mz i)].
+ +
+Let famYinv_fun (ff : {ffun 'I_m -> 'X_{1.. n < d.+1}}) :=
+  let mz := [multinom (ff (vecmx_index i).1 (vecmx_index i).2) | i < m * n]
+  in if (mdeg mz < d.+1)%N then mz else 0%MM.
+Fact famYinv_subproof ff : (mdeg (famYinv_fun ff) < d.+1)%N.
+Definition famYinv ff := BMultinom (famYinv_subproof ff).
+ +
+Lemma famY_bij (mon : 'X_{1.. m}) :
+  mdeg mon = d ->
+  {on [pred i in
+       family (fun i0 (j : 'X_{1.. n < d.+1}) => mdeg j == tnth mon i0)],
+    bijective famY}.
+ +
+End BijectionFam.
+ +
+Variable d : nat.
+ +
+
+ +
+

Cauchy formula for complete and monomial symmetric polynomials

+ +
+
+Lemma Cauchy_symm_symh :
+  Cauchy_kernel d = \sum_(la : 'P_d) ('h[la] : polY) *: ('m[la] : polXY).
+ +
+Lemma Cauchy_homsymm_homsymh :
+  Cauchy_kernel d = \sum_(la : 'P_d) 'hm[la](X) * 'hh[la](Y).
+ +
+
+ +
+

Cauchy formula for Schur symmetric polynomials

+ +
+ + +
+Unused lemma +
+
+Lemma Cauchy_kernel_symmetric : Cauchy_kernel d \is symmetric.
+ +
+
+ +
+Unused lemma +
+
+Lemma Cauchy_kernel_coeff_symmetric mon :
+  (Cauchy_kernel d)@_mon \is symmetric.
+ +
+
+ +
+Unused lemma +
+
+Lemma Cauchy_kernel_coeff_homog mon :
+  (Cauchy_kernel d)@_mon \is d.-homog.
+ +
+End CauchyKernel.
+ +
+Notation "p '(Y)'" := (@polY_XY _ _ _ p).
+Notation "p '(X)'" := (@polX_XY _ _ _ p).
+Notation "p '(XY)'" := (@evalXY _ _ _ p).
+ +
+Section CauchyKernelField.
+Variable R : fieldType.
+ +
+
+ +
+

Cauchy formula for power sum symmetric polynomials

+ +
+
+Lemma Cauchy_homsymp_zhomsymp m n d :
+  [pchar R] =i pred0 ->
+  Cauchy_kernel m n R d =
+  \sum_(la : 'P_d) 'hp[la](X) * ((zcard la)%:R^-1 *: 'hp[la](Y)).
+ +
+End CauchyKernelField.
+ +
+
+ +
+

Cauchy kernel and scalar product of symmetric functions

+ +
+
+Section Scalar.
+ +
+Variable n0 d : nat.
+#[local] Notation n := n0.+1.
+Hypothesis Hd : (d <= n)%N.
+ +
+#[local] Notation HSC := {homsym algC[n, d]}.
+#[local] Notation polXY := (polXY n0 n0 algC).
+#[local] Notation pol := {mpoly algC[n]}.
+#[local] Notation "p '(Y)'" := (@polY_XY n0 n0 _ p).
+#[local] Notation "p '(X)'" := (@polX_XY n0 n0 _ p).
+ +
+#[local] Notation "''hsC[' la ]" := ('hs[la] : HSC).
+#[local] Notation "''hpC[' la ]" := ('hp[la] : HSC).
+ +
+Definition co_hp (la : 'P_d) : pol -> algC :=
+  homsymdot^~ 'hp[la] \o in_homsym d (R := algC).
+Definition co_hpXY (la mu : 'P_d) : polXY -> algC :=
+  locked (co_hp la \o map_mpoly (co_hp mu)).
+ +
+Fact co_hp_is_zmod_morphism la : zmod_morphism (co_hp la).
+ +
+Fact co_hp_is_scalar la : scalar (co_hp la).
+ +
+Lemma co_hp_hp la mu : co_hp la 'hp[mu] = (zcard mu)%:R * (mu == la)%:R.
+ +
+Fact co_hpXY_is_zmod_morphism la mu : zmod_morphism (co_hpXY la mu).
+ +
+Lemma co_hpYE la (p q : pol) :
+  map_mpoly (co_hp la) (p(X) * q(Y)) = (co_hp la q) *: p.
+ +
+Lemma co_hprXYE la mu (p q : pol) :
+  co_hpXY la mu (p(X) * q(Y)) = (co_hp la p) * (co_hp mu q).
+ +
+Lemma coord_zsympsps (la mu : 'P_d) :
+  (\sum_nu
+    (coord 'hp (enum_rank la) 'hsC[nu]) *
+    ((zcard mu)%:R * coord 'hp (enum_rank mu) 'hsC[nu]))
+  = (la == mu)%:R.
+ +
+Lemma coord_zsymspsp (la mu : 'P_d) :
+  (\sum_nu
+    (coord 'hp (enum_rank nu) 'hsC[la]) *
+    ((zcard nu)%:R * coord 'hp (enum_rank nu) 'hsC[mu]))
+  = (la == mu)%:R.
+ +
+
+ +
+

Schur function are orthonormal

+ +
+
+Theorem homsymdotss la mu : '[ 'hsC[la] | 'hsC[mu] ] = (la == mu)%:R.
+ +
+Theorem homsyms_orthonormal : orthonormal homsymdot ('hs : seq HSC).
+ +
+End Scalar.
+
+
+ + + +
+ + + \ No newline at end of file diff --git a/combi/1.1.0/Combi.MPoly.MurnaghanNakayama.html b/combi/1.1.0/Combi.MPoly.MurnaghanNakayama.html new file mode 100644 index 00000000..b2cc422f --- /dev/null +++ b/combi/1.1.0/Combi.MPoly.MurnaghanNakayama.html @@ -0,0 +1,510 @@ + + + + + +Combi.MPoly.MurnaghanNakayama: Murnaghan-Nakayama rule + + + + +
+ + + +
+ +

Library Combi.MPoly.MurnaghanNakayama: Murnaghan-Nakayama rule

+ +
+
+ +
+ +
+
+
+ +
+

The Murnaghan-Nakayama rule

+ + +
+ +See the page +Murnaghan-Nakayama on Wikipedia for a statement. The fixpoint MN_coeff la mu +implement the recursive version, as stated in +
+Theorem MN_coeff_consE la m0 mu :
+  MN_coeff la (m0 :: mu) =
+  \sum_(sh : 'P_(sumn mu) | ribbon sh la)
+   MN_coeff sh mu * (-1) ^+ (ribbon_height sh la).-1. +
+ +
and the base case +
+Lemma MN_coeff0 : MN_coeff [::] [::] = 1. +
+ +
The Murnaghan-Nakayama rule stated in terms of symmetric polynomials is then +
+Theorem MN_coeffP d (la : 'P_d) :
+  'p[la] = \sum_(sh : 'P_d) (MN_coeff sh la)%:~R *: 's[sh] :> {sympoly R[n]}. +
+ +
There is a second implementation which goes bottom up, adding ribbons instead +of removing them. It allows to compute skew Murnaghan-Nakayama coefficients. + +
+ +We provide the following definitions: + +
+ +
    +
  • MN_coeff la mu == then Murnaghan-Nakayama coefficients. That is the + alternating number of ribbon filling of the shape la + with content mu, defined recursively. + +
  • +
  • MN_coeff_fast la mu == fast version of MN_coeff la mu + +
  • +
  • MN_coeff_rec la nu mu == The alternating number of ribbon filling of + the skew shape la / nu with content mu, defined recursively. + + +
  • +
+
+
+From HB Require Import structures.
+From mathcomp Require Import all_boot.
+From mathcomp Require Import ssralg ssrint perm fingroup tuple vector rat.
+From mathcomp Require Import ssrcomplements mpoly.
+ +
+Require Import sorted tools ordtype permuted partition skewpart.
+Require Import antisym Schur_mpoly Schur_altdef sympoly homogsym.
+ +
+Set Implicit Arguments.
+ +
+#[local] Open Scope ring_scope.
+Import GRing.Theory.
+ +
+#[local] Reserved Notation "''a_' k"
+      (at level 8, k at level 2, format "''a_' k").
+#[local] Reserved Notation "m # s"
+      (at level 40, left associativity, format "m # s").
+ +
+
+ +
+

Product of an alternating polynomial and a power sum

+ +
+
+Section MultAlternSymp.
+ +
+Variable n0 : nat.
+Variable R : comNzRingType.
+ +
+#[local] Notation n := n0.+1.
+#[local] Notation rho := (rho n).
+#[local] Notation "''a_' k" := (@alternpol n R 'X_[k]).
+ +
+Lemma mult_altern_symp_pol p d :
+  'a_(mpart p + rho) * (symp_pol n R d.+1) =
+   \sum_(i < n) 'a_(mpart p + rho + U_(i) *+ d.+1).
+ +
+Lemma mult_altern_oapp p d :
+  is_part p -> size p <= n ->
+  'a_(mpart p + rho) * (symp_pol n R d.+1) =
+  \sum_(i < n) oapp (fun ph => (-1) ^+ ph.2.-1 *: 'a_(mpart ph.1 + rho)) 0
+   (add_ribbon p d i).
+ +
+Lemma mult_altern_pmap p d :
+  is_part p -> size p <= n ->
+  'a_(mpart p + rho) * (symp_pol n R d.+1) =
+  \sum_(psh <- pmap (add_ribbon p d) (iota 0 n))
+   (-1) ^+ (psh.2).-1 *: 'a_(mpart psh.1 + rho).
+ +
+End MultAlternSymp.
+ +
+
+ +
+

Product of a Schur polynomial and a power sum

+ +
+
+Section MultSymsSympIDomain.
+ +
+Variable n0 : nat.
+#[local] Notation n := n0.+1.
+#[local] Notation SF := {sympoly int[n]}.
+ +
+Lemma syms_sympM_oapp_int d (la : 'P_d) m :
+  m != 0%N -> size la <= n ->
+  's[la] * 'p_m =
+  \sum_(i < n) oapp (fun ph => (-1) ^+ ph.2.-1 *: 's[ph.1]) 0
+   (add_ribbon_intpartn la m.-1 i) :> SF.
+ +
+End MultSymsSympIDomain.
+ +
+Section MultSymsSymp.
+ +
+Variable n0 : nat.
+Variable R : comNzRingType.
+#[local] Notation n := n0.+1.
+#[local] Notation SF := {sympoly R[n]}.
+ +
+Lemma syms_sympM_oapp d (la : 'P_d) m :
+  m != 0%N ->
+  's[la] * 'p_m =
+  \sum_(i < n) oapp (fun ph => (-1) ^+ ph.2.-1 *: 's[ph.1]) 0
+   (add_ribbon_intpartn la m.-1 i) :> SF.
+ +
+Lemma syms_sympM_pmap d (la : 'P_d) m :
+  m != 0%N ->
+  's[la] * 'p_m =
+  \sum_(ph <- pmap (add_ribbon_intpartn la m.-1) (iota 0 n))
+   (-1) ^+ ph.2.-1 *: 's[ph.1] :> SF.
+ +
+
+ +
+The following theorem is a step of the Murnaghan-Nakayama rule +
+
+Theorem syms_sympM d (la : 'P_d) m :
+  m != 0%N ->
+  's[la] * 'p_m =
+  \sum_(sh : 'P_(m + d) | ribbon la sh)
+   (-1) ^+ (ribbon_height la sh).-1 *: 's[sh] :> SF.
+ +
+End MultSymsSymp.
+ +
+
+ +
+

Murnaghan-Nakayama coefficients

+ +
+ + We define those for any sequence of nat, but MN_coeff should only be used when sumn la == sumn mu. +
+
+Fixpoint MN_coeff (la mu : seq nat) : int :=
+  if mu is m0 :: m then
+    foldr (fun sh acc =>
+             if ribbon sh la then
+               MN_coeff sh m * (-1) ^+ (ribbon_height sh la).-1 + acc
+             else acc)
+          0 (enum_partn (sumn m))
+  else 1.
+ +
+
+ +
+Base case +
+
+Lemma MN_coeff0 : MN_coeff [::] [::] = 1.
+ +
+
+ +
+Recursive step +
+
+Theorem MN_coeff_consE la m0 mu :
+  MN_coeff la (m0 :: mu) =
+  \sum_(sh : 'P_(sumn mu) | ribbon sh la)
+   MN_coeff sh mu * (-1) ^+ (ribbon_height sh la).-1.
+ +
+Section Tests.
+
+ +
+Tests : +
+sage: s(p[2,1,1])
+-s[1, 1, 1, 1] - s[2, 1, 1] + s[3, 1] + s[4]
+
+ +
+
+Goal ([seq x | x <- [seq (p, MN_coeff p [:: 2; 1; 1]) | p <- enum_partn 4]
+               & x.2 != 0%R] =
+      [:: ([:: 4], Posz 1);
+      ([:: 3; 1], Posz 1);
+      ([:: 2; 1; 1], Negz 0);
+      ([:: 1; 1; 1; 1], Negz 0)])%N.
+ +
+
+ +
+Tests : +
+sage: s(p[4,2,1,1])
+s[1, 1, 1, 1, 1, 1, 1, 1] + s[2, 1, 1, 1, 1, 1, 1] - s[3, 1, 1, 1, 1, 1]
+ - 2*s[3, 3, 2] - s[4, 1, 1, 1, 1] + 2*s[4, 2, 1, 1] - s[5, 1, 1, 1]
+ - s[6, 1, 1] + s[7, 1] + s[8]
+
+ +
+
+Goal ([seq x | x <- [seq (p, MN_coeff p [:: 4; 2; 1; 1]) | p <- enum_partn 8]
+               & x.2 != 0%R] =
+      [:: ([:: 8], Posz 1);
+      ([:: 7; 1], Posz 1);
+      ([:: 3; 3; 2], Negz 1);
+      ([:: 6; 1; 1], Negz 0);
+      ([:: 4; 2; 1; 1], Posz 2);
+      ([:: 5; 1; 1; 1], Negz 0);
+      ([:: 4; 1; 1; 1; 1], Negz 0);
+      ([:: 3; 1; 1; 1; 1; 1], Negz 0);
+      ([:: 2; 1; 1; 1; 1; 1; 1], Posz 1);
+      ([:: 1; 1; 1; 1; 1; 1; 1; 1], Posz 1)])%N.
+ +
+End Tests.
+ +
+
+ +
+

Murnaghan-Nakayama rule

+ +
+
+Section MNRule.
+ +
+Variable n0 : nat.
+#[local] Notation n := n0.+1.
+ +
+Theorem MN_coeffP_int d (la : 'P_d) :
+  'p[la] = \sum_(sh : 'P_d) MN_coeff sh la *: 's[sh] :> {sympoly int[n]}.
+ +
+Variable R : comNzRingType.
+#[local] Notation SF := {sympoly R[n]}.
+#[local] Notation HSF := {homsym R[n, _]}.
+ +
+Theorem MN_coeffP d (la : 'P_d) :
+  'p[la] = \sum_(sh : 'P_d) (MN_coeff sh la)%:~R *: 's[sh] :> SF.
+ +
+Corollary MN_coeff_homogP d (la : 'P_d) :
+  'hp[la] = \sum_(sh : 'P_d) (MN_coeff sh la)%:~R *: 'hs[sh] :> HSF.
+ +
+End MNRule.
+ +
+
+ +
+MN_coeff_rec should only be used when sumn la == sum nu + sumn mu. +
+
+Fixpoint MN_coeff_rec (la nu mu : seq nat) : int :=
+  if mu is m0 :: m then
+    foldr (fun psh acc =>
+             MN_coeff_rec la psh.1 m * (-1) ^+ psh.2.-1 + acc)
+          0
+          [seq psh | psh <- pmap (add_ribbon nu m0.-1) (iota 0 (size la))
+                   & included psh.1 la]
+  else (la == nu).
+Definition MN_coeff_fast la mu := MN_coeff_rec la [::] mu.
+ +
+Lemma MN_coeff_rec_szE la nu m0 mu :
+  MN_coeff_rec la nu (m0 :: mu) =
+  \sum_(psh <- pmap (add_ribbon nu m0.-1) (iota 0 (size la))
+       | included psh.1 la)
+   MN_coeff_rec la psh.1 mu * (-1) ^+ psh.2.-1.
+ +
+Lemma MN_coeff_rec_notincl la nu mu :
+  0%N \notin mu -> is_part nu -> ~~ included nu la ->
+  MN_coeff_rec la nu mu = 0.
+ +
+Lemma MN_coeff_rec_consE n la nu m0 mu :
+  m0 != 0%N -> size la <= n ->
+  MN_coeff_rec la nu (m0 :: mu) =
+  \sum_(psh <- pmap (add_ribbon nu m0.-1) (iota 0 n) | included psh.1 la)
+   MN_coeff_rec la psh.1 mu * (-1) ^+ psh.2.-1.
+ +
+Section Tests.
+ +
+
+ +
+Tests : +
+sage: s(p[3, 3, 1, 1]).coefficient([5, 2, 1])
+-2
+
+ +
+ + +
+Tests : +
+sage: s(p[5, 2, 1]).coefficient([3, 3, 1, 1])
+1
+
+ +
+ + +
+Tests : +
+sage: s(p[6, 5, 5, 4, 2, 1]).coefficient([12, 5, 2, 2, 1, 1])
+4
+
+ +
+ + +
+Tests : +
+sage: s(p[6, 5, 5, 4, 2, 1]).coefficient([12, 5, 3, 1, 1, 1])
+-2
+
+ +
+
+Goal MN_coeff_fast [:: 12; 5; 3; 1; 1; 1]%N [:: 6; 5; 5; 4; 2; 1]%N = - 2%:R.
+ Goal MN_coeff_fast [:: 12; 5; 3; 2; 1]%N [:: 6; 5; 5; 4; 2; 1]%N = - 3%:R.
+ Goal MN_coeff_fast [:: 12; 5; 4; 1; 1]%N [:: 6; 5; 5; 4; 2; 1]%N = 2%:R.
+ Goal MN_coeff_fast [:: 12; 5; 4; 2]%N [:: 6; 5; 5; 4; 2; 1]%N = 4%:R.
+ +
+Local Open Scope int_scope.
+ +
+ +
+Let partn := rev (enum_partn 5).
+Goal [seq [seq MN_coeff_fast la mu | mu <- partn] | la <- partn]
= [:: [:: 1; -1; 1; 1; -1; -1; 1];
+       [:: 4; -2; 1; 0; 0; 1; -1];
+       [:: 6; 0; 0; -2; 0; 0; 1];
+       [:: 5; -1; -1; 1; 1; -1; 0];
+       [:: 4; 2; 1; 0; 0; -1; -1];
+       [:: 5; 1; -1; 1; -1; 1; 0];
+       [:: 1; 1; 1; 1; 1; 1; 1]].
+ +
+End Tests.
+ +
+Section FastImplem.
+ +
+Variable n0 : nat.
+#[local] Notation n := n0.+1.
+ +
+Lemma syms_prod_sympM_int dn (nu : 'P_dn) dm (mu : 'P_dm) :
+  's[nu] * 'p[mu] =
+  \sum_(la : 'P_(dn + dm)) MN_coeff_rec la nu mu *: 's[la] :> {sympoly int[n]}.
+ +
+Section ComRing.
+ +
+Variable R : comNzRingType.
+#[local] Notation SF := {sympoly R[n]}.
+#[local] Notation HSF := {homsym R[n, _]}.
+ +
+Theorem syms_prod_sympM dn (nu : 'P_dn) dm (mu : 'P_dm) :
+  's[nu] * 'p[mu] =
+  \sum_(la : 'P_(dn + dm)) (MN_coeff_rec la nu mu)%:~R *: 's[la] :> SF.
+ +
+Corollary homsyms_homsympM dn (nu : 'P_dn) dm (mu : 'P_dm) :
+  'hs[nu] *h 'hp[mu] =
+  \sum_(la : 'P_(dn + dm)) (MN_coeff_rec la nu mu)%:~R *: 'hs[la] :> HSF.
+ +
+Corollary MN_coeff_recP d (la : 'P_d) :
+  'p[la] = \sum_(sh : 'P_d) (MN_coeff_fast sh la)%:~R *: 's[sh] :> SF.
+ +
+Corollary MN_coeff_rec_homogP d (la : 'P_d) :
+  'hp[la] = \sum_(sh : 'P_d) (MN_coeff_fast sh la)%:~R *: 'hs[sh] :> HSF.
+ +
+End ComRing.
+ +
+End FastImplem.
+ +
+
+ +
+The two implementations coincide +
+
+Corollary MN_coeffE d (la mu : 'P_d) : MN_coeff_fast la mu = MN_coeff la mu.
+
+
+ + + +
+ + + \ No newline at end of file diff --git a/combi/1.1.0/Combi.MPoly.Schur_altdef.html b/combi/1.1.0/Combi.MPoly.Schur_altdef.html new file mode 100644 index 00000000..3d64e1fc --- /dev/null +++ b/combi/1.1.0/Combi.MPoly.Schur_altdef.html @@ -0,0 +1,833 @@ + + + + + +Combi.MPoly.Schur_altdef: Alternants definition of Schur polynomials + + + + +
+ + + +
+ +

Library Combi.MPoly.Schur_altdef: Alternants definition of Schur polynomials

+ +
+
+ +
+ +
+
+
+ +
+

Definition of Schur polynomials as quotient of alternant and Kostka numbers

+ + +
+ +In the combinatorial definitions below, we use the following notations: +
    +
  • n : an integer denoting the number of variable. + +
  • +
  • la mu : partitions of an integer d + +
  • +
  • m : a monomial for the ring of polynomials {mpoly R[n]} + +
  • +
  • w : a sequence of 'I_n + +
  • +
  • t : a tableau + +
  • +
+ +
+ +We define the following notions: + +
+ +
    +
  • add_mesym la S == for a set S of 'I_n the partition obtained by + incrementing the parts in S if its a partition. If not + the value is unspecified. + +
  • +
  • setdiff la mu == the set of elements i of 'I_n for which the + i-th part of la is smaller than the one of mu. + +
  • +
+ +
+ +Kostka numbers: + +
+ +
    +
  • eval w == the evaluation of w as a n.-tuple nat. + +
  • +
  • KostkaTab la m == the set of tableaux of shape la and evaluation m. + +
  • +
  • KostkaMon la m == the number of Kostka tableau : #|KostkaTab la m|. + +
  • +
  • Kostka la mu == + +
  • +
  • 'K(la, mu) == the Kostka number associated to la and mu + as a nat in nat_scope and as an element of R (inferred from + the context) in ring_scope. + +
  • +
  • Kostak_rec la mu == a Coq implementation of the computation of the Kostka + number. It suppose that sumn la = sumn mu. + +
  • +
  • 'K^-1(la, mu) == the inverse Kostka number, that is the coefficient of the + inverse Kostka matrix computed using matrix inversion. + +
  • +
  • eqeval t la == the evaluation of t is la. More precisely, the evaluation + of the row reading of the tableau t is equal to the monomial + associated to la + +
  • +
+ +
+ +Kostka numbers and standard tableaux: + +
+ +In this section, we fix two nat n and d with hypothesis Hd : d <= n.+1. + +
+ +
    +
  • tabnat_of_ord Hd t == the standard tableau of shape la corresponding to + the tableau t : tabsh n la + +
  • +
  • tabord_of_nat Hd t == the tableau over 'I_n.+1 of shape la + corresponding to t : stdtabsh la + +
  • +
+ +
+ +Extension of tableaux: + +
+ +In this section, we fix +
    +
  • a non empty sequence of integers rcons s m whose size is less than n. + +
  • +
  • la : a partition of sumn s whose size is less than n. + +
  • +
  • mu : a partition of (sumn s) + m whose size is less than n. + +
  • +
+We are given some proofs Hs Hla Hmu that all these partition are of size +less than n. We suppose moreover that mu/la is an horizontal border +strip. The proof is denoted Hstrip. + +
+ +We denote by +
    +
  • T : any tableau of shape la and evaluation s. + +
  • +
  • Tm : any tableau of shape mu and evaluation rcons s m. + +
  • +
+Then we define: + +
+ +
    +
  • shape_res_tab Hsz Tm == the shape obtained by removing from Tm the boxes + containing size s + +
  • +
  • res_tab Hsz Hmu Hstrip Tm == the tableau obtained by removing from Tm + the boxes containing size s if its of shape la. Otherwise the result + is unspecified. + +
  • +
  • ext_tab Hsz Hmu Hstrip T == the tableau obtained by filling the boxes of mu/la + with size s. + +
  • +
+ +
+ +Then ext_tab and res_tab are two inverse bijections. + +
+
+From HB Require Import structures.
+From mathcomp Require Import all_boot order.
+From mathcomp Require Import ssralg ssrint fingroup perm.
+From mathcomp Require Import mpoly.
+ +
+Require Import tools combclass ordtype sorted partition tableau.
+Require Import skewpart skewtab antisym Schur_mpoly freeSchur therule.
+Require Import std stdtab unitriginv presentSn.
+ +
+Set Implicit Arguments.
+ +
+Import Order.TTheory.
+Import GRing.Theory.
+ +
+#[local] Open Scope ring_scope.
+#[local] Open Scope Combi_scope.
+ +
+#[local] Reserved Notation "''a_' k"
+      (at level 8, k at level 2, format "''a_' k").
+#[local] Reserved Notation "''e_' k"
+      (at level 8, k at level 2, format "''e_' k").
+#[local] Reserved Notation "m # s"
+      (at level 40, left associativity, format "m # s").
+ +
+
+ +
+Alternating and symmetric polynomial +
+
+Section Alternant.
+ +
+Variables (n : nat) (R : comNzRingType).
+ +
+#[local] Notation rho := (rho n).
+#[local] Notation "''e_' k" := (mesym n R k).
+#[local] Notation "''a_' k" := (@alternpol n R 'X_[k]).
+ +
+Lemma alt_syme (m : 'X_{1..n}) k :
+  'a_(m + rho) * 'e_k =
+  \sum_(h : {set 'I_n} | #|h| == k) 'a_(m + mesym1 h + rho).
+ +
+#[local] Open Scope nat_scope.
+ +
+Section HasIncr.
+ +
+Variables (d k : nat) (la : 'P_d) (h : {set 'I_n}).
+ +
+#[local] Definition hasincr :=
+  has (fun i => (nth 0 (mpart la + mesym1 h)%MM i).+1 ==
+                 nth 0 (mpart la + mesym1 h)%MM i.+1) (iota 0 n.-1).
+ +
+Lemma hasincr0 : hasincr -> 'a_(mpart la + mesym1 h + rho) = 0%R :> {mpoly R[n]}.
+ +
+Lemma not_hasincr_part :
+  size la <= n -> ~~ hasincr ->
+  is_part_of_n (d + #|h|) (rem_trail0 (mpart la + mesym1 h)%MM).
+ +
+Let add_mpart_mesym :=
+  if [&& size la <= n, #|h| == k & ~~ hasincr]
+  then (rem_trail0 (mpart la + mesym1 h)%MM)
+  else rowpartn (d + k) .
+Lemma add_mpart_mesymP : is_part_of_n (d + k) add_mpart_mesym.
+Definition add_mesym : 'P_(d + k) := IntPartN add_mpart_mesymP.
+ +
+Lemma add_mesymE :
+  size la <= n -> #|h| == k -> ~~ hasincr ->
+  mpart add_mesym = (mpart la + mesym1 h)%MM.
+ +
+End HasIncr.
+ +
+Definition setdiff (la mu : seq nat) : {set 'I_n} :=
+  [set i : 'I_n | nth 0 la i < nth 0 mu i].
+ +
+Lemma card_setdiff d k (la : 'P_d) (mu : 'P_(d + k)) :
+  size mu <= n -> size la <= n -> vb_strip la mu -> #|setdiff la mu| = k.
+ +
+Lemma nth_add_setdiff d k (la : 'P_d) (mu : 'P_(d + k)) :
+  size mu <= n -> size la <= n -> vb_strip la mu ->
+  forall i,
+  nth 0 [seq (mpart la) i0 + (mesym1 (setdiff la mu)) i0 | i0 : 'I_n] i =
+  nth 0 mu i.
+ +
+Lemma nohasincr_setdiff d k (la : 'P_d) (mu : 'P_(d + k)) :
+  size mu <= n -> size la <= n ->
+  vb_strip la mu -> ~~ hasincr la (setdiff la mu).
+ +
+Lemma add_mesymK d k (la : 'P_d) :
+  size la <= n ->
+  {in [pred mu : 'P_(d + k) | vb_strip la mu && (size mu <= n)],
+  cancel (fun mu : 'P_(d + k) => setdiff la (val mu)) (add_mesym k la)}.
+ +
+
+ +
+

Piery's rule multplying an alternant by an elementary polynomial

+ +
+
+Theorem alt_mpart_syme d (la : 'P_d) k :
+  size la <= n ->
+  ('a_(mpart la + rho) * 'e_k =
+  \sum_(mu : 'P_(d + k) | vb_strip la mu && (size mu <= n))
+     'a_(mpart mu + rho))%R.
+ +
+Lemma vb_strip_rem_col0 d (la : 'P_d) :
+  vb_strip (conj_part (behead (conj_part la))) la.
+ +
+Lemma vb_strip_lexi (d1 k : nat) (la : 'P_(d1 + k)) (mu : seq nat) :
+  vb_strip mu la ->
+  sumn mu = d1 ->
+  is_part mu -> (val la <= incr_first_n mu k :> seqlexi nat)%O.
+ +
+End Alternant.
+ +
+
+ +
+

Cauchy-Jacobi definition of Schur function

+ +
+
+Section SchurAlternantDef.
+ +
+Variable (n0 : nat) (R : comNzRingType).
+#[local] Notation n := (n0.+1).
+#[local] Notation rho := (rho n).
+#[local] Notation "''s_[' k ']'" := (Schur n0 R k).
+#[local] Notation "''a_' k" := (@alternpol n R 'X_[k]).
+ +
+Lemma Schur_cast d d' (la : 'P_d) (Heq : d = d') :
+  Schur n0 R (cast_intpartn Heq la) = 's_[la].
+ +
+Theorem alt_SchurE d (la : 'P_d) :
+  size la <= n -> 'a_rho * 's_[la] = 'a_(mpart la + rho).
+ +
+Import LeqGeqOrder.
+ +
+Lemma mcoeff_alt_SchurE d (la mu : 'P_d) :
+  size la <= n -> size mu <= n ->
+  ('a_rho * Schur n0 R la)@_(mpart mu + rho) = (la == mu)%:R.
+ +
+End SchurAlternantDef.
+ +
+
+ +
+

Schur polynomials are symmetric at last

+ +
+
+Section IdomainSchurSym.
+ +
+Variable (n0 : nat) (R : idomainType).
+#[local] Notation n := (n0.+1).
+#[local] Notation rho := (rho n).
+#[local] Notation "''s_' k" := (Schur n0 R k).
+#[local] Notation "''a_' k" := (@alternpol n R 'X_[k]).
+ +
+Theorem alt_uniq d (la : 'P_d) (s : {mpoly R[n]}) :
+  size la <= n -> 'a_rho * s = 'a_(mpart la + rho) -> s = 's_la.
+ +
+Theorem Schur_sym_idomain d (la : 'P_d) : 's_la \is symmetric.
+ +
+End IdomainSchurSym.
+ +
+Section RingSchurSym.
+ +
+Variable (n0 : nat) (R : nzRingType).
+#[local] Notation n := (n0.+1).
+#[local] Notation "''s_' k" := (Schur n0 R k).
+ +
+Theorem Schur_sym d (la : 'P_d) : 's_la \is symmetric.
+ +
+Lemma Schur_homog (d : nat) (la : 'P_d) : 's_la \is d.-homog.
+ +
+End RingSchurSym.
+ +
+
+ +
+

Kostka numbers

+ +
+
+#[local] Open Scope nat_scope.
+ +
+Section DefsKostkaMon.
+ +
+Variables (d : nat) (la : 'P_d) (n : nat).
+Implicit Type m : 'X_{1..n.+1}.
+Definition eval (w : seq 'I_n.+1) := [tuple count_mem i w | i < n.+1].
+Definition KostkaTab m := [set t : tabsh la | eval (to_word t) == m].
+Definition KostkaMon m := #|KostkaTab m|.
+ +
+Lemma sumn_eval w : sumn (eval w) = size w.
+ +
+Lemma KostkaMon_sumeval m :
+  mdeg m != sumn la -> KostkaMon m = 0.
+ +
+Lemma evalE (R : nzRingType) m w :
+  (\prod_(v <- w) 'X_v)@_m = (eval w == m)%:R :> R.
+ +
+Lemma Kostka_Coeff (R : nzRingType) m : (Schur n R la)@_m = (KostkaMon m)%:R.
+ +
+Lemma perm_KostkaMon m1 m2 :
+  perm_eq m1 m2 -> KostkaMon m1 = KostkaMon m2.
+ +
+Lemma tab_eval_partdom (t : tabsh la) : partdom (eval (to_word t)) la.
+ +
+Lemma KostkaMon_partdom m : KostkaMon m != 0 -> partdom m la.
+ +
+End DefsKostkaMon.
+ +
+Section KostkaEq.
+ +
+Variables (d : nat) (la : 'P_d).
+ +
+Lemma Kostka_mnmwiden n (m : 'X_{1..n.+1}) :
+  KostkaMon la m = KostkaMon la (mnmwiden m).
+ +
+End KostkaEq.
+ +
+Section Kostka.
+ +
+Variable d : nat.
+Implicit Type la : 'P_d.
+ +
+Definition Kostka la mu :=
+  KostkaMon la (mpart (n := (size mu).-1.+1) mu).
+#[local] Notation "''K' ( la , mu )" := (Kostka la mu)
+  (at level 8, format "''K' ( la , mu )") : nat_scope.
+#[local] Notation "''K' ( la , mu )" := ((Kostka la mu)%:R : int)
+  (at level 8, format "''K' ( la , mu )") : ring_scope.
+ +
+#[local] Arguments mpart n s : clear implicits.
+ +
+Lemma mpartS n mu :
+  size mu <= n -> mnmwiden (mpart n mu) = mpart n.+1 mu.
+ +
+Lemma Kostka_any la mu n :
+  size mu <= n.+1 -> 'K(la, mu) = KostkaMon la (mpart n.+1 mu).
+ +
+Lemma Kostka_sumnE la mu : d != sumn mu -> Kostka la mu = 0.
+ +
+Lemma Kostka_size0 la mu :
+  size la > size mu -> 'K(la, mu) = 0.
+ +
+Lemma Kostka_partdom (la mu : 'PDom_d) : 'K(la, mu) != 0 -> (mu <= la)%O.
+ +
+Lemma Kostka0 (la mu : 'PDom_d) : ~~ (mu <= la)%O -> 'K(la, mu) = 0.
+ +
+Lemma Kostka_diag la : 'K(la, la) = 1.
+ +
+End Kostka.
+ +
+
+ +
+

Converting between standard tableau and tableau over 'I_n.

+ + +
+ +The type stdtabsh sh is a subtype of seq nat whereas tabsh sh is a subtype +of seq 'I_n.+1. We provide two conversion functions tabnat_of_ord and +tabord_of_nat +
+
+Section StdKostka.
+ +
+Variables (d : nat) (la : 'P_d).
+ +
+Section Nvar.
+ +
+Variable n : nat.
+Hypothesis Hd : d <= n.+1.
+ +
+Let td := [tuple ((i < d) : nat) | i < n.+1].
+ +
+Lemma stdtabsh_eval_to_word (t : stdtabsh la) :
+  eval [seq inord i | i <- to_word t] = td.
+ +
+Lemma tabsh_is_std (t : tabsh la) :
+  eval (to_word t) = td -> is_std [seq (i : nat) | i : 'I_n.+1 <- to_word t].
+ +
+Definition tabnat_of_ord_fun (t : tabsh la) :=
+  if (eval (to_word t) == td)
+  then [seq [seq (i : nat) | i : 'I_n.+1 <- r] | r <- t]
+  else hyper_stdtabsh la.
+ +
+Definition tabord_of_nat_fun (t : stdtabsh la) : seq (seq 'I_n.+1) :=
+  [seq map inord r | r <- t].
+ +
+Lemma tabnat_of_ord_subproof (t : tabsh la) :
+  is_stdtab_of_shape la (tabnat_of_ord_fun t).
+Definition tabnat_of_ord (t : tabsh la) :=
+  StdtabSh (sh := la) (tabnat_of_ord_subproof t).
+ +
+Lemma tabord_of_nat_subproof (t : stdtabsh la) :
+  is_tab_of_shape la (tabord_of_nat_fun t).
+Definition tabord_of_nat (t : stdtabsh la) :=
+  TabSh (sh := la) (tabord_of_nat_subproof t).
+ +
+Lemma tabord_of_natK : cancel tabord_of_nat tabnat_of_ord.
+ +
+Lemma tabnat_of_ordK :
+  {in [pred t : tabsh la | eval (to_word t) == td],
+   cancel tabnat_of_ord tabord_of_nat }.
+ +
+End Nvar.
+ +
+Lemma KostkaStd : Kostka la (colpartn d) = #|{: stdtabsh la}|.
+ +
+End StdKostka.
+ +
+Definition eqeval n (t : (seq (seq 'I_n.+1))) (la : seq nat) :=
+  eval (to_word t) == mpart la.
+ +
+Lemma eqevalP n (t : (seq (seq 'I_n.+1))) (la : seq nat) :
+  size la <= n.+1 ->
+  reflect (forall i : 'I_n.+1, count_mem i (to_word t) = nth 0 la i)
+          (eqeval t la).
+ +
+
+ +
+

Restricting and extending tableaux

+ +
+
+Section BijectionExtTab.
+ +
+Variable n : nat.
+ +
+#[local] Open Scope nat_scope.
+ +
+Variables (s : seq nat) (m : nat).
+Hypothesis (Hsz : size s < n.+1).
+#[local] Notation sz := (Ordinal Hsz).
+#[local] Lemma Hszrcons : size (rcons s m) <= n.+1.
+ +
+#[local] Notation P := ('P_(sumn s)).
+#[local] Notation Pm := ('P_((sumn s) + m)).
+Variable (mu : Pm).
+#[local] Notation Tm := (tabsh mu).
+Hypothesis Hmu : size mu <= n.+1.
+ +
+Lemma shape_res_tab_subproof (t : Tm) :
+  is_part_of_n (sumn s) (
+                 if eqeval t (rcons s m) then shape (filter_gt_tab sz t)
+                 else locked rowpartn (sumn s)).
+Definition shape_res_tab (t : Tm) := IntPartN (shape_res_tab_subproof t).
+ +
+Lemma hb_strip_shape_res_tab (t : Tm) :
+  eqeval t (rcons s m) -> hb_strip (shape_res_tab t) mu.
+ +
+Variable (la : P).
+Hypothesis Hstrip : hb_strip la mu.
+#[local] Notation T := (tabsh la).
+ +
+#[local] Definition Hlamu := size_included (hb_strip_included Hstrip).
+#[local] Definition Hla : size la <= n.+1 := leq_trans Hlamu Hmu.
+ +
+Definition res_tab (t : Tm) : T :=
+  if insub (filter_gt_tab sz t) is Some tr then tr
+  else locked (tabrowconst Hla).
+#[local] Definition ext_tab_fun (t : T) :=
+  if eqeval t s then join_tab t (skew_reshape la mu (nseq m sz))
+  else locked (tabrowconst Hmu).
+ +
+#[local] Lemma sumndiff : sumn (mu / la) = m.
+ +
+Lemma ext_tab_subproof t : is_tab_of_shape mu (ext_tab_fun t).
+Definition ext_tab t := TabSh (ext_tab_subproof t).
+ +
+Lemma res_tabP (t : Tm) :
+  shape (filter_gt_tab sz t) == la ->
+  is_tab_of_shape la (filter_gt_tab sz t).
+ +
+Lemma eval_res_tab (t : Tm) :
+  shape (filter_gt_tab sz t) == la ->
+  eqeval t (rcons s m) -> eqeval (res_tab t) s.
+ +
+Lemma eval_ext_tab (t : T) :
+  eqeval t s -> eqeval (ext_tab t) (rcons s m).
+ +
+Lemma res_tabK (t : Tm) :
+  shape (filter_gt_tab sz t) == la ->
+  eqeval t (rcons s m) -> ext_tab (res_tab t) = t.
+ +
+Corollary res_tab_inj :
+  {in [set x : Tm | eqeval x (rcons s m) & shape_res_tab x == la] &,
+      injective res_tab}.
+ +
+Lemma filter_ext_tab (t : T) :
+  eqeval t s -> filter_gt_tab sz (ext_tab t) = t.
+ +
+Lemma ext_tabK (t : T) : eqeval t s -> res_tab (ext_tab t) = t.
+ +
+Corollary ext_tab_inj : {in [pred t : T | eqeval t s] &, injective ext_tab }.
+ +
+Lemma card_eq_eval :
+  #|[set t : tabsh['I_n.+1] mu |
+     (eqeval t (rcons s m)) && (shape (filter_gt_tab sz t) == la)]|
+  = #|[set t : tabsh['I_n.+1] la | eqeval t s]|.
+ +
+End BijectionExtTab.
+ +
+
+ +
+

Recursive computation of Kostka numbers

+ +
+
+Section KostkaRec.
+ +
+#[local] Open Scope nat_scope.
+ +
+Lemma Kostka_ind d (la : 'P_d) m mu :
+  d = m + sumn mu ->
+  Kostka la (m :: mu) =
+  \sum_(nu : 'P_(sumn mu) | hb_strip nu la) Kostka nu mu.
+ +
+Fixpoint Kostka_rec (la mu : seq nat) : nat :=
+  if mu is m :: mu then
+    sumn [seq Kostka_rec nu mu | nu <- enum_partn (sumn mu) & hb_strip nu la]
+  else la == [::].
+ +
+Example Kostka_expl1 :
+  Kostka_rec [:: 4; 3] [:: 3; 2; 2] == 2.
+ Example Kostka_expl2 :
+  Kostka_rec [:: 4; 3; 1] [:: 3; 2; 2; 1] == 5.
+ Example Kostka_expl3 :
+  Kostka_rec [:: 4; 4; 3; 1] [:: 3; 3; 2; 2; 1; 1] == 25.
+ +
+Lemma Kostka_rec_size0 la mu :
+  size la > size mu -> Kostka_rec la mu = 0.
+ +
+Lemma Kostka_recE d (la : 'P_d) mu :
+  sumn mu = d -> Kostka_rec la mu = Kostka la mu.
+ +
+End KostkaRec.
+ +
+Notation "''K' ( la , mu )" := (Kostka la mu)
+  (at level 8, format "''K' ( la , mu )") : nat_scope.
+Notation "''K' ( la , mu )" := (Kostka la mu)%:R
+  (at level 8, format "''K' ( la , mu )") : ring_scope.
+ +
+Lemma Kostka_unitrig (R : comUnitRingType) d :
+  unitrig (fun la mu : 'PDom_d => 'K(la, mu)%:R : R).
+ +
+
+ +
+

Inverse Kostka numbers

+ +
+
+Definition KostkaInv d : 'P_d -> 'P_d -> int :=
+  Minv (fun la mu : 'PDom_d => 'K(la, mu)%:R : int).
+ +
+Lemma KostkaInv_unitrig d :
+  unitrig (fun la mu : 'PDom_d => KostkaInv la mu).
+ +
+Notation "''K^-1' ( la , mu )" := ((KostkaInv la mu)%:~R)
+  (at level 8, format "''K^-1' ( la , mu )") : ring_scope.
+ +
+
+ +
+

Straightening of alternant polynomials

+ +
+
+Section AlternStraighten.
+ +
+Variable n0 : nat.
+Variable R : comNzRingType.
+ +
+#[local] Notation n := n0.+1.
+#[local] Notation rho := (rho n).
+#[local] Notation "''a_' k" := (@alternpol n R 'X_[k]).
+#[local] Notation "m # s" := [multinom m (s i) | i < n].
+ +
+Lemma alt_straight_step (m : 'X_{1..n}) (i : nat) :
+  i < n0 -> m (inord i.+1) != 0%N ->
+  'a_(m + rho) = - 'a_(m # 's_i - U_(inord i) + U_(inord i.+1) + rho).
+ +
+Lemma alt_straight_add_ribbon0 (p : seq nat) (i : 'I_n) (d : nat) :
+  is_part p -> size p <= n ->
+  add_ribbon p d i == None -> 'a_(mpart p + rho + U_(i) *+ d.+1) = 0%R.
+ +
+Lemma alt_straight_add_ribbon (p : seq nat) (i : 'I_n) (d : nat) :
+  is_part p -> size p <= n ->
+  forall res h, add_ribbon p d i = Some (res, h) ->
+    'a_(mpart p + rho + U_(i) *+ d.+1) = (-1) ^+ h.-1 *: 'a_(mpart res + rho).
+ +
+End AlternStraighten.
+
+
+ + + +
+ + + \ No newline at end of file diff --git a/combi/1.1.0/Combi.MPoly.Schur_mpoly.html b/combi/1.1.0/Combi.MPoly.Schur_mpoly.html new file mode 100644 index 00000000..1b67f28b --- /dev/null +++ b/combi/1.1.0/Combi.MPoly.Schur_mpoly.html @@ -0,0 +1,169 @@ + + + + + +Combi.MPoly.Schur_mpoly: Schur symmetric polynomials + + + + +
+ + + +
+ +

Library Combi.MPoly.Schur_mpoly: Schur symmetric polynomials

+ +
+
+ +
+ +
+
+
+ +
+

Combinatorial definition of Schur symmetric polynomials

+ + +
+ +
    +
  • Schur n0 R la == The Schur polynomial associated to the partition la in + {mpoly R[n0.+1]} as the sum of all tableau of shape + la over the alphabet 'I_n0.+1. + +
  • +
+ +
+ +We give some values for particular partition such as small one, rows and columns. + +
+
+From HB Require Import structures.
+From mathcomp Require Import all_boot order.
+From mathcomp Require Import ssralg.
+From mathcomp Require Import ssrcomplements freeg mpoly.
+ +
+Require Import tools ordtype partition tableau.
+ +
+Set Implicit Arguments.
+ +
+Import Order.TTheory.
+#[local] Open Scope ring_scope.
+Import GRing.Theory.
+ +
+Section Schur.
+ +
+Variable n0 : nat.
+#[local] Notation n := n0.+1.
+Variable R : nzRingType.
+ +
+Lemma mons2mE s : 'X_[s2m s] = \prod_(i <- s) 'X_i :> {mpoly R[n]}.
+ +
+Definition Schur d (sh : 'P_d) : {mpoly R[n]} :=
+  \sum_(t : tabsh sh) \prod_(i <- to_word t) 'X_i.
+ +
+Lemma Schur_tabsh_readingE d (sh : 'P_d) :
+  Schur sh =
+  \sum_(t : d.-tuple 'I_n | tabsh_reading sh t) \prod_(i <- t) 'X_i.
+ +
+
+ +
+

Some particular Schur functions

+ +
+
+ +
+Lemma Schur0 (sh : 'P_0) : Schur sh = 1.
+ +
+Lemma Schur_oversize d (sh : 'P_d) : (size sh > n)%N -> Schur sh = 0.
+ +
+
+ +
+Equivalent definition of symh symmetric function +
+
+ +
+Lemma tabwordshape_row d (w : d.-tuple 'I_n) :
+  tabsh_reading (rowpartn d) w = sorted leq [seq val i | i <- w].
+ +
+Lemma symh_basisE d :
+  \sum_(s in basis n d) 'X_[s2m s] = Schur (rowpartn d).
+ +
+End Schur.
+ +
+Section SchurComRingType.
+ +
+Variable n0 : nat.
+#[local] Notation n := (n0.+1).
+Variable R : comNzRingType.
+ +
+Lemma perm_enum_basis d :
+  perm_eq [seq s2m (tval s) | s in basis n d]
+          [seq val m | m in [set m : 'X_{1..n < d.+1} | mdeg m == d]].
+ +
+Lemma Schur_rowpartn d :
+  \sum_(m : 'X_{1..n < d.+1} | mdeg m == d) 'X_[m] = Schur n0 R (rowpartn d).
+ +
+
+ +
+The definition of column Schur symmetric polynomials agrees with mesym + from mpoly +
+
+ +
+Lemma tabwordshape_col d (w : d.-tuple 'I_n) :
+  tabsh_reading (colpartn d) w = sorted >%O w.
+ +
+Lemma mesym_SchurE d :
+  mesym n R d = Schur n0 R (colpartn d).
+ +
+Lemma Schur1 (sh : 'P_1) : Schur n0 R sh = \sum_(i < n) 'X_i.
+ +
+End SchurComRingType.
+
+
+ + + +
+ + + \ No newline at end of file diff --git a/combi/1.1.0/Combi.MPoly.antisym.html b/combi/1.1.0/Combi.MPoly.antisym.html new file mode 100644 index 00000000..47cf76d9 --- /dev/null +++ b/combi/1.1.0/Combi.MPoly.antisym.html @@ -0,0 +1,636 @@ + + + + + +Combi.MPoly.antisym: Antisymmetric polynomials and Vandermonde product + + + + +
+ + + +
+ +

Library Combi.MPoly.antisym: Antisymmetric polynomials and Vandermonde product

+ +
+
+ +
+ +
+
+
+ +
+

Antisymmetric polynomials

+ + +
+ +Monomials and partitions: + +
+ +
    +
  • mpart s == the multi-monomial whose exponent are s if size s is smaller + than the number of variables. + +
  • +
  • partm m == the partition obtained by sorting the exponent of m. + +
  • +
  • m \is dominant == the exponent of m are sorted in reverse order. + +
  • +
+ +
+ +Antisymmetric polynomials: + +
+ +
    +
  • p \is antisym == p is an antisymmetric polynomial. This is a keyed predicate + closed by submodule operations submodPred. + +
  • +
+ +
+ +Vandermonde products and determinants: + +
+ +
    +
  • alternpol f == the alternating sunm of the permuted of f. + +
  • +
  • rho == the multi-monomial [n-1, n-2, ..., 1, 0] + +
  • +
  • Vanprod n R == the Vandermonde product in {mpoly R[n]}, that is the product + \prod_(i < j) ('X_i - 'X_j) . + +
    + + +
  • +
  • antim s == the n x n - matrix whose (i, j) coefficient is + 'X_i^(s j - rho j) + +
  • +
  • Vanmx == the Vandermonde matrix 'X_i^(n - 1 - j) = 'X_i^(rho j) . + +
  • +
  • Vandet == the Vandermonde determinant + +
  • +
+ +
+ +The main results are the Vandermonde determinant expansion: + +
+ +
    +
  • Vanprod_alt : Vanprod = alternpol 'X_[(rho n)] + +
  • +
  • Vandet_VanprodE : Vandet = Vanprod + +
  • +
+ +
+ + +
+
+From HB Require Import structures.
+From mathcomp Require Import all_boot order.
+From mathcomp Require Import ssralg ssrint fingroup perm zmodp binomial.
+From mathcomp Require Import ssrcomplements freeg mpoly.
+ +
+Require Import tools permcomp presentSn sorted partition.
+ +
+Set Implicit Arguments.
+ +
+Import LeqGeqOrder.
+ +
+#[local] Reserved Notation "''a_' k"
+      (at level 8, k at level 2, format "''a_' k").
+#[local] Reserved Notation "m # s"
+      (at level 40, left associativity, format "m # s").
+ +
+#[local] Notation "''II_' n" := ('I_n * 'I_n)%type (at level 8, n at level 2).
+ +
+Open Scope group_scope.
+Open Scope nat_scope.
+ +
+
+ +
+

monomials and partitions

+ +
+
+Section MonomPart.
+ +
+Variable n : nat.
+Implicit Type m : 'X_{1.. n}.
+ +
+Definition dominant : qualifier 0 'X_{1.. n} :=
+  [qualify m : 'X_{1.. n} | sorted geq m].
+Definition mpart (s : seq nat) :=
+  if size s <= n then [multinom (nth 0 s i)%N | i < n] else mnm0.
+ +
+Lemma dominant_eq m1 m2 :
+  m1 \is dominant -> m2 \is dominant -> perm_eq m1 m2 -> m1 = m2.
+ +
+Fact partmP m : is_part (sort geq [seq d <- m | d != 0]).
+Definition partm m := locked (IntPart (partmP m)).
+Lemma partmE m : partm m = sort geq [seq d <- m | d != 0] :> seq nat.
+ +
+Lemma size_partm m : size (partm m) <= n.
+ +
+Lemma mpart_is_dominant sh : is_part sh -> mpart sh \is dominant.
+ +
+Lemma is_dominant_partm m :
+  m \is dominant -> partm m = [seq d <- m | d != 0] :> seq nat.
+ +
+Lemma is_dominant_nth_partm m (i : 'I_n) :
+  m \is dominant -> nth 0 (partm m) i = m i.
+ +
+Lemma partmK m : m \is dominant -> mpart (partm m) = m.
+ +
+Lemma mpartK sh :
+  is_part sh -> size sh <= n -> partm (mpart sh) = sh :> seq nat.
+ +
+Lemma mpartE s i : size s <= n -> mpart s i = nth 0 s i.
+ +
+Lemma mpart0 : @mpart [::] = 0%MM.
+ +
+Lemma perm_mpart s1 s2 : perm_eq s1 s2 -> perm_eq (mpart s1) (mpart s2).
+ +
+Lemma perm_partm m1 m2 : perm_eq m1 m2 -> partm m1 = partm m2.
+ +
+Lemma partm_permK m : perm_eq m (mpart (partm m)).
+ +
+Lemma sumn_mpart sh : size sh <= n -> sumn (mpart sh) = sumn sh.
+ +
+Lemma mdeg_mpart sh : size sh <= n -> mdeg (mpart sh) = sumn sh.
+ +
+Lemma sumn_partm m : sumn (partm m) = mdeg m.
+ +
+#[local] Notation "m # s" := [multinom m (s i) | i < n].
+ +
+Lemma mnm_perm m1 m2 : perm_eq m1 m2 -> {s : 'S_n | m1 == m2 # s}.
+ +
+Lemma perm_mpart_partm m : {s : 'S_n | (mpart (partm m)) # s == m}.
+ +
+Lemma mpart_partm_perm m : {s : 'S_n | (mpart (partm m)) == m # s}.
+ +
+End MonomPart.
+ +
+Arguments mpart [n] s.
+Arguments dominant {n}.
+ +
+Import GRing.Theory.
+#[local] Open Scope ring_scope.
+#[local] Definition simplexp := (expr0, expr1, scale1r, scaleN1r,
+                              mulrN, mulNr, mulrNN).
+ +
+
+ +
+

Change of scalar in multivariate polynomials

+ +
+
+Section ScalarChange.
+ +
+Variables R S : nzRingType.
+Variable mor : {rmorphism R -> S}.
+Variable n : nat.
+ +
+Lemma map_mpolyX (m : 'X_{1..n}) : map_mpoly mor 'X_[m] = 'X_[m].
+ +
+Lemma msym_map_mpoly s (p : {mpoly R[n]}) :
+  msym s (map_mpoly mor p) = map_mpoly mor (msym s p).
+ +
+End ScalarChange.
+ +
+
+ +
+

Characteristic of multivariate polynomials

+ +
+
+Lemma char_mpoly n (R : nzRingType) : [pchar R] =i [pchar {mpoly R[n]}].
+ +
+
+ +
+

Symmetric and Antisymmetric multivariate polynomials

+ +
+
+Section MPolySym.
+ +
+Variable n : nat.
+Variable R : nzRingType.
+ +
+Implicit Types p q r : {mpoly R[n]}.
+ +
+Lemma issym_tpermP p :
+  reflect (forall i j, msym (tperm i j) p = p) (p \is symmetric).
+ +
+Definition antisym : qualifier 0 {mpoly R[n]} :=
+  [qualify p | [forall s, msym s p == (-1) ^+ s *: p]].
+ +
+Fact antisym_key : pred_key antisym.
+Canonical antisym_keyed := KeyedQualifier antisym_key.
+ +
+Lemma isantisymP p :
+  reflect (forall s, msym s p = (-1) ^+ s *: p) (p \is antisym).
+ +
+Lemma isantisym_tpermP p :
+  reflect (forall i j, msym (tperm i j) p = if (i != j) then - p else p)
+          (p \is antisym).
+ +
+Lemma antisym_pchar2 : (2 \in [pchar R]) -> symmetric =i antisym.
+ +
+Lemma perm_smalln : n <= 1 -> forall s : 'S_n, s = 1%g.
+ +
+Lemma sym_smalln : n <= 1 -> (@symmetric n R) =i predT.
+ +
+Lemma antisym_smalln : n <= 1 -> antisym =i predT.
+ +
+Lemma antisym_zmod : zmod_closed antisym.
+ +
+ +
+Lemma antisym_submod_closed : submod_closed antisym.
+ +
+ +
+Lemma sym_anti p q :
+  p \is antisym -> q \is symmetric -> p * q \is antisym.
+ +
+Lemma anti_anti p q :
+  p \is antisym -> q \is antisym -> p * q \is symmetric.
+ +
+#[local] Notation "m # s" := [multinom m (s i) | i < n].
+ +
+Lemma isantisym_msupp p (s : 'S_n) (m : 'X_{1..n}) : p \is antisym ->
+  (m#s \in msupp p) = (m \in msupp p).
+ +
+Import Order Order.Syntax Order.TotalTheory.
+ +
+Lemma mlead_antisym_sorted (p : {mpoly R[n]}) : p \is antisym ->
+  forall (i j : 'I_n), i <= j -> (mlead p) j <= (mlead p) i.
+ +
+End MPolySym.
+ +
+Arguments antisym {n R}.
+ +
+Lemma issym_eltrP n (R : nzRingType) (p : {mpoly R[n.+1]}) :
+  reflect (forall i, i < n -> msym 's_i p = p) (p \is symmetric).
+ +
+Lemma isantisym_eltrP n (R : nzRingType) (p : {mpoly R[n.+1]}) :
+  reflect (forall i, i < n -> msym 's_i p = - p) (p \is antisym).
+ +
+
+ +
+

Alternating polynomials

+ +
+
+Definition alternpol n (R : nzRingType) (f : {mpoly R[n]}) : {mpoly R[n]} :=
+  \sum_(s : 'S_n) (-1) ^+ s *: msym s f.
+ +
+Section AlternIDomain.
+ +
+Variable n : nat.
+Variable R : idomainType.
+Hypothesis Hchar : ~~ (2 \in [pchar R]).
+ +
+#[local] Notation "''a_' k" := (@alternpol n R 'X_[k]).
+#[local] Notation "m # s" := [multinom m (s i) | i < n].
+ +
+Lemma sym_antisym_char_not2 :
+  n >= 2 -> forall p : {mpoly R[n]}, p \is symmetric -> p \is antisym -> p = 0.
+ +
+Definition rho := [multinom (n - 1 - i)%N | i < n].
+ +
+Lemma rho_iota : rho = rev (iota 0 n) :> seq nat.
+ +
+Lemma rho_uniq : uniq rho.
+ +
+Lemma mdeg_rho : mdeg rho = 'C(n, 2).
+ +
+Lemma alt_homog : 'a_(rho) \is 'C(n, 2).-homog.
+ +
+Lemma alt_anti m : 'a_m \is antisym.
+ +
+
+ +
+

The leading monomial of an antisymmetric polynomial

+ +
+
+Section LeadingMonomial.
+ +
+Variable p : {mpoly R[n]}.
+ +
+Implicit Types q r : {mpoly R[n]}.
+ +
+Hypothesis Hpn0 : p != 0.
+Hypothesis Hpanti : p \is antisym.
+ +
+Lemma sym_antiE q : (q \is symmetric) = (p * q \is antisym).
+ +
+Lemma isantisym_msupp_uniq (m : 'X_{1..n}) : m \in msupp p -> uniq m.
+ +
+Hypothesis Hphomog : p \is 'C(n , 2).-homog.
+ +
+Lemma isantisym_mlead_iota : mlead p = rev (iota 0 n) :> seq nat.
+ +
+Lemma isantisym_mlead_rho : mlead p = rho.
+ +
+End LeadingMonomial.
+ +
+Lemma isantisym_alt (p : {mpoly R[n]}) :
+  p != 0 -> p \is antisym -> p \is ('C(n, 2)).-homog -> p = p@_(rho) *: 'a_rho.
+ +
+End AlternIDomain.
+ +
+
+ +
+

Vandermonde product

+ +
+
+Definition Vanprod {n} {R : nzRingType} : {mpoly R[n]} :=
+  \prod_(p : 'II_n | p.1 < p.2) ('X_p.1 - 'X_p.2).
+ +
+Section EltrP.
+ +
+Variable n i : nat.
+Implicit Type (p : 'II_n.+1).
+ +
+#[local] Definition eltrp p := ('s_i p.1, 's_i p.2).
+#[local] Definition predi p := (p.1 < p.2) && (p != (inord i, inord i.+1)).
+ +
+Lemma eltrpK : involutive eltrp.
+ +
+Lemma predi_eltrp p : i < n -> predi p -> predi (eltrp p).
+ +
+Lemma predi_eltrpE p : i < n -> predi p = predi ('s_i p.1, 's_i p.2).
+ +
+End EltrP.
+ +
+Lemma Vanprod_anti n (R : comNzRingType) : @Vanprod n R \is antisym.
+ +
+Lemma sym_VanprodM n (R : comNzRingType) (p : {mpoly R[n]}) :
+  p \is symmetric -> Vanprod * p \is antisym.
+ +
+Section Vanprod.
+ +
+Variable n : nat.
+Variable R : comNzRingType.
+ +
+#[local] Notation Delta := (@Vanprod n R).
+#[local] Notation "'X_ i" := (@mpolyX n R U_(i)). #[local] Notation rho := (rho n).
+#[local] Notation "''a_' k" := (alternpol 'X_[k]).
+ +
+Lemma polyX_inj (i j : 'I_n) : 'X_i = 'X_j -> i = j.
+ +
+Lemma diffX_neq0 (i j : 'I_n) : i != j -> 'X_i - 'X_j != 0.
+ +
+Lemma msuppX1 i : msupp 'X_i = [:: U_(i)%MM].
+ +
+Let abound b : {mpoly R[n]} :=
+  \prod_(p : 'II_n | p.1 < p.2 <= b) ('X_p.1 - 'X_p.2).
+Let rbound b := [multinom (b - i)%N | i < n].
+ +
+Lemma mesymlm_rbound b : (mesymlm n b <= rbound b)%MM.
+ +
+Lemma coeffXdiff (b : 'I_n) (k : 'X_{1..n}) (i : 'I_n) :
+  (k <= rbound b)%MM -> ('X_i - 'X_b)@_k = (k == U_(i)%MM)%:R.
+ +
+Lemma coeff_prodXdiff (b : 'I_n) (k : 'X_{1..n}) :
+  (k <= rbound b)%MM ->
+  (\prod_(i < n | i < b) ('X_i - 'X_b))@_k = (k == mesymlm n b)%:R.
+ +
+Lemma mcoeff_arbound b : b < n -> (abound b)@_(rbound b) = 1.
+ +
+Lemma Vanprod_coeff_rho : Delta@_rho = 1.
+ +
+Corollary Vanprod_neq0 : Delta != 0.
+ +
+Lemma Vanprod_dhomog : Delta \is 'C(n, 2).-homog.
+ +
+End Vanprod.
+ +
+Theorem Vanprod_alt_int n :
+  Vanprod = alternpol 'X_[rho n] :> {mpoly int[n]}.
+ +
+Corollary Vanprod_alt n (R : nzRingType) :
+  Vanprod = alternpol 'X_[rho n] :> {mpoly R[n]}.
+ +
+From mathcomp Require Import matrix.
+ +
+
+ +
+

Vandermonde matrix and determinant

+ +
+
+Section VandermondeDet.
+ +
+Variable n : nat.
+Variable R : comNzRingType.
+ +
+#[local] Notation "''a_' k" := (@alternpol n R 'X_[k]).
+#[local] Notation rho := (rho n).
+ +
+Definition antim (s : seq nat) : 'M[ {mpoly R[n]} ]_n :=
+  \matrix_(i, j < n) 'X_i ^+ (nth 0 s j + (n - 1) - j)%N.
+Definition Vanmx : 'M[ {mpoly R[n]} ]_n :=
+  \matrix_(i, j < n) 'X_i ^+ (n - 1 - j).
+Definition Vandet := \det Vanmx.
+ +
+#[local] Open Scope ring_scope.
+ +
+Lemma Vanmx_antimE : Vanmx = antim [::].
+ +
+Lemma alt_detE s : 'a_(s + rho) = \det (antim s).
+ +
+Corollary Vandet_VanprodE : Vandet = Vanprod.
+ +
+Lemma mcoeff_alt (m : 'X_{1..n}) : uniq m -> ('a_m)@_m = 1.
+ +
+Lemma alt_uniq_non0 (m : 'X_{1..n}) : uniq m -> 'a_m != 0.
+ +
+Lemma alt_rho_non0 : 'a_rho != 0.
+ +
+Lemma alt_alternate (m : 'X_{1..n}) (i j : 'I_n) :
+  i != j -> m i = m j -> 'a_m = 0.
+ +
+Lemma alt_add1_0 (m : 'X_{1..n}) i :
+  (nth 0%N m i).+1 = nth 0%N m i.+1 -> 'a_(m + rho) = 0.
+ +
+End VandermondeDet.
+
+
+ + + +
+ + + \ No newline at end of file diff --git a/combi/1.1.0/Combi.MPoly.homogsym.html b/combi/1.1.0/Combi.MPoly.homogsym.html new file mode 100644 index 00000000..1a9289fb --- /dev/null +++ b/combi/1.1.0/Combi.MPoly.homogsym.html @@ -0,0 +1,870 @@ + + + + + +Combi.MPoly.homogsym: Homogenous Symmetric Polynomials + + + + +
+ + + +
+ +

Library Combi.MPoly.homogsym: Homogenous Symmetric Polynomials

+ +
+
+ +
+ +
+
+
+ +
+

The Space of Homogeneous Symmetric Polynomials

+ + +
+ +In this file we study the vector space of homogeneous symmetric polynomials. +The main goal is to construct its classical basis and Cauchy's scalar product. + +
+ +
    +
  • f \is d.-homsym == f is a homogenerous of degree d symmetric polynomial. + +
  • +
  • f \is [in R[n], d.-homsym] == idem specifying the ring and number of + variables. + +
  • +
  • {homsym R[n, d]} == the space of homogenerous of degree d symmetric + polynomials in n variables over R. + +
  • +
  • p *h q == the product of two homogeneous symmetric polynomial as a + homogeneous symmetric polynomials. + +
  • +
+ +
+ +The classical bases: + +
+ +
    +
  • 'he[la] == the elementary hom. sym. poly. associated to la + +
  • +
  • 'hh[la] == the complete hom. sym. poly. associated to la + +
  • +
  • 'hp[la] == the power sum hom. sym. poly. associated to la + +
  • +
  • 'hm[la] == the monomial hom. sym. poly. associated to la + +
  • +
  • 'hs[la] == the Schur hom. sym. poly. associated to la + +
    + + +
  • +
  • in_homsym d p == if p is a polynomial {mpoly R[n]} which is both + symmetric and homogeneous of degree d, return it as a + {homsym R[n, d]}. It is canonically linear. + +
    + + +
  • +
  • 'he == the elementary hom. sym. basis + +
  • +
  • 'hh == the complete hom. sym. basis + +
  • +
  • 'hp == the power sum hom. sym. basis + +
  • +
  • 'hm == the monomial hom. sym. basis + +
  • +
  • 'hs == the Schur hom. sym. basis + +
  • +
+ +
+ +The omega involution + +
+ +
    +
  • omegahomsym f == the image of f under the omega involution. + +
  • +
+ +
+ +Changing the base ring and the number of variables: + +
+ +
    +
  • intpart_of_mon m == if m is the monomial x_1^{i_1}x_2^{i_2}...x_n^{i_n} + returns the integer partition n^{i_n}...2^{i_2}1^{i_1} + +
  • +
  • intpartn_of_mon H == the same as an intpart_of_mon d where H is a proof of + mnmwgt m = d + +
    + + +
  • +
  • map_homsym mor f == change the base ring of the hom. sym. poly f using + the ring morphism mor. + This is canonically a zmodule morphism. + +
  • +
  • cnvarhomsym n f == change the number of variables of the hom. sym. poly + f by sending elementary to elementary. This is + canonically linear. + +
  • +
+ +
+ +The scalar product: + +
+ +
    +
  • '[ u | v ] == the scalar product of hom. sym. poly., only defined over + the field algC. + +
  • +
  • '[ u | v ] _(n, d) == the scalar product of hom. sym. poly. specifying + the number of variable and degree. + +
  • +
+ +
+ +The main results are symbm_basis, symbe_basis, symbs_basis, +symbh_basis, symbp_basis which asserts that they are all bases (if the +characteristic of the base ring is zero for symbp_basis), and the definition +of the scalar product. + +
+
+From HB Require Import structures.
+From mathcomp Require Import all_boot.
+From mathcomp Require Import ssralg matrix vector ssrnum algC archimedean.
+From mathcomp Require Import sesquilinear.
+From mathcomp Require Import fingroup perm.
+From mathcomp Require Import ssrcomplements freeg mpoly.
+ +
+Require Import tools sorted ordtype permuted partition permcent.
+Require Import antisym Schur_mpoly Schur_altdef sympoly.
+ +
+Set Implicit Arguments.
+ +
+Import GRing.Theory.
+Import ssrnum algC GRing.Theory Num.Theory.
+ +
+#[local] Open Scope nat_scope.
+#[local] Open Scope ring_scope.
+ +
+Reserved Notation "d .-homsym" (at level 1, format "d .-homsym").
+Reserved Notation "[ 'in' R [ n ] , d .-homsym ]"
+  (at level 0, R, n at level 2, d at level 0,
+     format "[ 'in' R [ n ] , d .-homsym ]").
+Reserved Notation "{ 'homsym' T [ n , d ] }"
+  (at level 0, T, n, d at level 2, format "{ 'homsym' T [ n , d ] }").
+ +
+Reserved Notation "''he[' k ]" (at level 8, k at level 2, format "''he[' k ]").
+Reserved Notation "''hh[' k ]" (at level 8, k at level 2, format "''hh[' k ]").
+Reserved Notation "''hp[' k ]" (at level 8, k at level 2, format "''hp[' k ]").
+Reserved Notation "''hm[' k ]" (at level 8, k at level 2, format "''hm[' k ]").
+Reserved Notation "''hs[' k ]" (at level 8, k at level 2, format "''hs[' k ]").
+ +
+Reserved Notation "''he'" (at level 8, format "''he'").
+Reserved Notation "''hh'" (at level 8, format "''hh'").
+Reserved Notation "''hp'" (at level 8, format "''hp'").
+Reserved Notation "''hm'" (at level 8, format "''hm'").
+Reserved Notation "''hs'" (at level 8, format "''hs'").
+ +
+Reserved Notation "p *h q" (at level 20, format "p *h q").
+ +
+Reserved Notation "'[ p | q ]"
+  (at level 0, format "'[hv' ''[' p | '/ ' q ] ']'").
+Reserved Notation "'[ p | q ] _( R , n )"
+  (at level 0, format "'[hv' ''[' p | '/ ' q ] ']' '_(' R , n )").
+ +
+ +
+Definition ishomogsym1 {n} {R : nzRingType} (d : nat) :
+  qualifier 0 {sympoly R[n]} := [qualify p | sympol p \is d.-homog].
+ +
+Module SymPolyHomogKey.
+Fact homogsym1_key {n} {R : nzRingType} d : pred_key (@ishomogsym1 n R d).
+ Definition homogsym1_keyed {n R} d := KeyedQualifier (@homogsym1_key n R d).
+End SymPolyHomogKey.
+Canonical SymPolyHomogKey.homogsym1_keyed.
+ +
+Notation "d .-homsym" := (@ishomogsym1 _ _ d) : form_scope.
+Notation "[ 'in' R [ n ] , d .-homsym ]" := (@ishomogsym1 n R d) : form_scope.
+ +
+
+ +
+

Homogeneous symmetric polynomials

+ +
+
+Section DefType.
+ +
+Variable n : nat.
+Variable R : nzRingType.
+Variable d : nat.
+ +
+Implicit Types p q : {sympoly R[n]}.
+ +
+Definition is_homsym p := sympol p \is d.-homog.
+ +
+Lemma homsymE p : (p \is d.-homsym) = (is_homsym p).
+ +
+Hypothesis Hvar : (d <= n.+1)%N.
+ +
+Record homogsym : predArgType :=
+  HomogSym {homsym :> {sympoly R[n]}; _ : is_homsym homsym}.
+ +
+ +
+Lemma homsym_inj : injective homsym.
+ +
+End DefType.
+ +
+Bind Scope ring_scope with homogsym.
+ +
+Notation "{ 'homsym' T [ n , d ] }" := (homogsym n T d).
+ +
+Section HomogSymLModType.
+ +
+Variable n : nat.
+Variable R : nzRingType.
+Variable d : nat.
+ +
+#[local] Notation is_homsym := (@is_homsym n R d).
+ +
+Fact is_homsym_submod_closed : submod_closed is_homsym.
+ +
+Lemma homsym_is_linear :
+  linear (@homsym n R d : {homsym R[n, d]} -> {sympoly R[n]}).
+ +
+Fact homsym_is_dhomog (x : {homsym R[n, d]}) : sympol x \is d.-homog.
+ Definition dhomog_of_homogsym (p : {homsym R[n, d]}) :=
+  DHomog (homsym_is_dhomog p).
+ +
+Fact dhomog_of_sym_is_linear : linear dhomog_of_homogsym.
+ +
+End HomogSymLModType.
+ +
+
+ +
+

Homogeneous symmetric polynomials as a vector space

+ +
+
+Section Vector.
+ +
+Variable n0 : nat.
+#[local] Notation n := (n0.+1).
+Variable R : comNzRingType.
+ +
+Variable d : nat.
+#[local] Notation SF := {sympoly R[n]}.
+Implicit Type (la : 'P_d).
+ +
+Definition homsymm la : {homsym R[n, d]} := HomogSym (symm_homog n R la).
+Definition homsyme la : {homsym R[n, d]} := HomogSym (prod_syme_homog n R la).
+Definition homsymh la : {homsym R[n, d]} := HomogSym (prod_symh_homog n R la).
+Definition homsymp la : {homsym R[n, d]} := HomogSym (prod_symp_homog n R la).
+Definition homsyms la : {homsym R[n, d]} := HomogSym (syms_homog n0 R la).
+ +
+Lemma homsymmE (f : {homsym R[n, d]}) :
+  f = \sum_(l : 'P_d) f@_(mpart l) *: homsymm l.
+ +
+Fact homogsym_vecaxiom :
+  Vector.axiom #|[set p : 'P_d | (size p <= n)%N]| {homsym R[n, d]}.
+ +
+End Vector.
+ +
+Notation "''he[' k ]" := (homsyme _ _ k).
+Notation "''hh[' k ]" := (homsymh _ _ k).
+Notation "''hp[' k ]" := (homsymp _ _ k).
+Notation "''hm[' k ]" := (homsymm _ _ k).
+Notation "''hs[' k ]" := (homsyms _ _ k).
+ +
+
+ +
+

Products of homogeneous symmetric polynomials

+ +
+
+Section HomogSymProd.
+ +
+Variable n : nat.
+Variable R : comNzRingType.
+Variable c d : nat.
+ +
+Fact homsymprod_subproof (p : {homsym R[n, c]}) (q : {homsym R[n, d]}) :
+  homsym p * homsym q \is (c + d).-homsym.
+ Canonical homsymprod p q : {homsym R[n, c + d]} :=
+  HomogSym (homsymprod_subproof p q).
+Fact homsymprod_is_bilinear : bilinear_for *:%R *:%R homsymprod.
+ +
+#[local] Notation "p *h q" := (homsymprod p q).
+ +
+Lemma homsymprod0r p : p *h 0 = 0.
+Lemma homsymprodBr p q1 q2 : p *h (q1 - q2) = p *h q1 - p *h q2.
+ Lemma homsymprodNr p q : p *h (- q) = - p *h q.
+ Lemma homsymprodDr p q1 q2 : p *h (q1 + q2) = p *h q1 + p *h q2.
+ Lemma homsymprodMnr p q m : p *h (q *+ m) = (p *h q) *+ m.
+ Lemma homsymprod_sumr p I r (P : pred I) (q : I -> {homsym R[n, d]}) :
+  p *h (\sum_(i <- r | P i) q i) = \sum_(i <- r | P i) p *h q i.
+ Lemma homsymprodZr a p q : p *h (a *: q) = a *: (p *h q).
+ +
+Lemma homsymprod0l p : 0 *h p = 0.
+ Lemma homsymprodNl p q : (- q) *h p = - q *h p.
+ Lemma homsymprodDl p q1 q2 : (q1 + q2) *h p = q1 *h p + q2 *h p.
+ Lemma homsymprodBl p q1 q2 : (q1 - q2) *h p = q1 *h p - q2 *h p.
+ Lemma homsymprodMnl p q m : (q *+ m) *h p = q *h p *+ m.
+ Lemma homsymprod_suml p I r (P : pred I) (q : I -> {homsym R[n, c]}) :
+  (\sum_(i <- r | P i) q i) *h p = \sum_(i <- r | P i) q i *h p.
+ Lemma homsymprodZl p a q : (a *: q) *h p = a *: q *h p.
+ +
+End HomogSymProd.
+ +
+Notation "p *h q" := (homsymprod p q).
+ +
+Section HomSymProdGen.
+ +
+Variable n0 : nat.
+#[local] Notation n := (n0.+1).
+Variable R : comNzRingType.
+#[local] Notation HSF := {homsym R[n, _]}.
+ +
+Section Merge.
+Variables (d1 d2 : nat) (la : 'P_d1) (mu : 'P_d2).
+ +
+Lemma homsymprod_hh : 'hh[la] *h 'hh[mu] = 'hh[la +|+ mu] :> HSF.
+ Lemma homsymprod_he : 'he[la] *h 'he[mu] = 'he[la +|+ mu] :> HSF.
+ Lemma homsymprod_hp : 'hp[la] *h 'hp[mu] = 'hp[la +|+ mu] :> HSF.
+ End Merge.
+ +
+Section Cons.
+Variables (d l0 : nat) (la : seq nat).
+Hypotheses (Hla : is_part_of_n d la)
+           (Hlla : is_part_of_n (l0 + d)%N (l0 :: la)).
+Notation Plla := (IntPartN Hlla).
+Notation Pla := (IntPartN Hla).
+ +
+Lemma homsymprod_h1h : 'hh[Plla] = 'hh[rowpartn l0] *h 'hh[Pla] :> HSF.
+ Lemma homsymprod_h1e : 'he[Plla] = 'he[rowpartn l0] *h 'he[Pla] :> HSF.
+ Lemma homsymprod_h1p : 'hp[Plla] = 'hp[rowpartn l0] *h 'hp[Pla] :> HSF.
+ End Cons.
+ +
+End HomSymProdGen.
+ +
+Section InHomSym.
+ +
+Variable n0 d : nat.
+#[local] Notation n := (n0.+1).
+Variable R : comNzRingType.
+#[local] Notation Pol := {mpoly R[n]}.
+#[local] Notation HSF := {homsym R[n, d]}.
+ +
+#[local] Notation "''pi_' d" :=
+  (pihomog mdeg d) (at level 5, format "''pi_' d").
+ +
+
+ +
+TODO: Contribute to Pierre-Yves's multinomials +
+
+Lemma msym_pihomog nv s (p : {mpoly R[nv]}) :
+  msym s ('pi_d p) = 'pi_d (msym s p).
+ +
+Lemma pihomog_sym nv (p : {mpoly R[nv]}) :
+  p \is symmetric -> 'pi_d p \is symmetric.
+ +
+Definition in_homsym (p : Pol) : HSF :=
+  \sum_(la : 'P_d) p@_(mpart la) *: 'hm[la].
+ +
+Fact in_homsym_is_linear : linear in_homsym.
+ +
+Lemma in_homsymE (p : HSF) : in_homsym p = p.
+ +
+End InHomSym.
+ +
+
+ +
+

The omega involution

+ +
+
+Section OmegaHomSym.
+ +
+Variable n0 d : nat.
+#[local] Notation n := (n0.+1).
+Variable R : comNzRingType.
+#[local] Notation HSF := {homsym R[n, d]}.
+Implicit Types (p q : HSF) (la : intpartn d).
+ +
+Fact omegahomsym_subproof p : is_homsym d (omegasf p).
+Definition omegahomsym p : HSF := HomogSym (omegahomsym_subproof p).
+Fact omegahomsym_is_linear : linear omegahomsym.
+ +
+Lemma omega_homsymh la :
+  (head 0%N la <= n)%N -> omegahomsym 'hh[la] = 'he[la].
+Lemma omega_homsyme la :
+  (head 0%N la <= n)%N -> omegahomsym 'he[la] = 'hh[la].
+Lemma omega_homsyms la :
+  (d <= n)%N -> omegahomsym 'hs[la] = 'hs[conj_intpartn la].
+Lemma omega_homsymp la :
+  (head 0%N la <= n)%N -> omegahomsym 'hp[la] = (-1) ^+ (d - size la) *: 'hp[la].
+ +
+End OmegaHomSym.
+ +
+Section OmegaProd.
+ +
+Variable n0 : nat.
+#[local] Notation n := (n0.+1).
+Variable R : comNzRingType.
+ +
+Lemma omegahomsym_rmorph c d (p : {homsym R[n, c]}) (q : {homsym R[n, d]}) :
+  omegahomsym (p *h q) = (omegahomsym p) *h (omegahomsym q).
+ +
+End OmegaProd.
+ +
+
+ +
+

The classical bases of homogeneous symmetric polynomials

+ +
+
+Section HomSymField.
+ +
+Variable n0 d : nat.
+#[local] Notation n := (n0.+1).
+Variable R : fieldType.
+#[local] Notation HSF := {homsym R[n, d]}.
+ +
+#[local] Notation Basis := (#|{: 'P_d}|.-tuple HSF).
+Definition symbe : Basis := [tuple of [seq 'he[la] | la : 'P_d]].
+Definition symbh : Basis := [tuple of [seq 'hh[la] | la : 'P_d]].
+Definition symbm : Basis := [tuple of [seq 'hm[la] | la : 'P_d]].
+Definition symbs : Basis := [tuple of [seq 'hs[la] | la : 'P_d]].
+Definition symbp : Basis := [tuple of [seq 'hp[la] | la : 'P_d]].
+ +
+Hypothesis Hd : (d <= n)%N.
+ +
+Lemma basis_homsym : [set p : 'P_d | (size p <= n)%N] =i {: 'P_d}.
+ +
+Lemma dim_homsym :
+  \dim (fullv (vT := HSF)) = #|{: 'P_d}|.
+ +
+Lemma symbm_free : free symbm.
+ +
+Lemma symbm_basis : basis_of fullv symbm.
+ +
+Lemma symbs_basis : basis_of fullv symbs.
+Lemma symbs_free : free symbs.
+ +
+Theorem mcoeff_symbs (la : 'P_d) f :
+  coord symbs (enum_rank la) f =
+  (alternpol 'X_[rho n] * sympol (homsym f))@_(mpart la + rho n).
+ +
+#[local] Notation E := [tuple mesym n R i.+1 | i < n].
+ +
+Definition intpart_of_mon m : seq nat :=
+  rev (flatten [tuple nseq (m i) i.+1 | i < n]).
+ +
+Lemma intpart_of_monP m : mnmwgt m = d -> is_part_of_n d (intpart_of_mon m).
+Canonical intpartn_of_mon m (H : mnmwgt m = d) := IntPartN (intpart_of_monP H).
+ +
+#[local] Lemma Esym : (forall i : 'I_n, E`_i \is symmetric).
+ +
+Lemma comp_symbe m (H : mnmwgt m = d) :
+  'X_[m] \mPo E = 'he[intpartn_of_mon H].
+ +
+Lemma in_homsym_comp_symbe m (H : mnmwgt m = d) :
+  in_homsym d ('X_[m] \mPo E) = 'he[intpartn_of_mon H].
+ +
+Lemma symbe_basis : basis_of fullv symbe.
+Lemma symbe_free : free symbe.
+ +
+Lemma symbh_basis : basis_of fullv symbh.
+Lemma symbh_free : free symbh.
+ +
+Lemma symbp_basis : [pchar R] =i pred0 -> basis_of fullv symbp.
+Lemma symbp_free : [pchar R] =i pred0 -> free symbp.
+ +
+End HomSymField.
+ +
+Notation "''he'" := (symbe _ _ _).
+Notation "''hh'" := (symbh _ _ _).
+Notation "''hp'" := (symbp _ _ _).
+Notation "''hm'" := (symbm _ _ _).
+Notation "''hs'" := (symbs _ _ _).
+ +
+
+ +
+

Changing the base field

+ +
+
+Section ChangeField.
+ +
+Variable R S : fieldType.
+Variable mor : {rmorphism R -> S}.
+ +
+Variable n0 d : nat.
+#[local] Notation n := (n0.+1).
+#[local] Notation HSFR := {homsym R[n, d]}.
+#[local] Notation HSFS := {homsym S[n, d]}.
+ +
+Fact map_sympoly_d_homog (p : HSFR) : map_sympoly mor p \is d.-homsym.
+Definition map_homsym (p : HSFR) : HSFS := HomogSym (map_sympoly_d_homog p).
+ +
+Fact map_homsym_is_zmod_morphism : zmod_morphism map_homsym.
+ +
+Lemma map_homsym_is_scalable : scalable_for (mor \; *:%R) map_homsym.
+ +
+Lemma coord_map_homsym (b : #|{: 'P_d}|.-tuple HSFR) j (f : HSFR) :
+  basis_of fullv b ->
+  basis_of fullv (map_tuple map_homsym b) ->
+  coord (map_tuple map_homsym b) j (map_homsym f) = mor (coord b j f).
+ +
+Lemma map_homsymm la : map_homsym 'hm[la] = 'hm[la].
+ Lemma map_homsyme la : map_homsym 'he[la] = 'he[la].
+ Lemma map_homsymh la : map_homsym 'hh[la] = 'hh[la].
+ Lemma map_homsymp la : map_homsym 'hp[la] = 'hp[la].
+ Lemma map_homsyms la : map_homsym 'hs[la] = 'hs[la].
+ +
+Lemma map_homsymbm : map_tuple map_homsym 'hm = 'hm.
+ Lemma map_homsymbe : map_tuple map_homsym 'he = 'he.
+ Lemma map_homsymbh : map_tuple map_homsym 'hh = 'hh.
+ Lemma map_homsymbp : map_tuple map_homsym 'hp = 'hp.
+ Lemma map_homsymbs : map_tuple map_homsym 'hs = 'hs.
+ +
+End ChangeField.
+ +
+
+ +
+

Extracting coords

+ +
+
+Section Coord.
+ +
+Variable n0 d : nat.
+#[local] Notation n := (n0.+1).
+Variable R : fieldType.
+#[local] Notation HSF := {homsym R[n, d]}.
+Implicit Type (la : 'P_d).
+ +
+Lemma symbmE la : ('hm)`_(enum_rank la) = 'hm[la] :> HSF.
+ Lemma symbeE la : ('he)`_(enum_rank la) = 'he[la] :> HSF.
+ Lemma symbhE la : ('hh)`_(enum_rank la) = 'hh[la] :> HSF.
+ Lemma symbpE la : ('hp)`_(enum_rank la) = 'hp[la] :> HSF.
+ Lemma symbsE la : ('hs)`_(enum_rank la) = 'hs[la] :> HSF.
+ +
+#[local] Lemma er_eqE (la mu : 'P_d) :
+  (enum_rank la == enum_rank mu) = (la == mu).
+ +
+#[local] Notation coord := (coord (vT := HSF)).
+ +
+Hypothesis (Hd : (d <= n)%N).
+Lemma coord_symbm la mu : coord 'hm (enum_rank mu) 'hm[la] = (la == mu)%:R.
+ Lemma coord_symbe la mu : coord 'he (enum_rank mu) 'he[la] = (la == mu)%:R.
+ Lemma coord_symbh la mu : coord 'hh (enum_rank mu) 'hh[la] = (la == mu)%:R.
+ Lemma coord_symbs la mu : coord 'hs (enum_rank mu) 'hs[la] = (la == mu)%:R.
+ +
+Lemma coord_symbp (char0 : [pchar R] =i pred0) la mu :
+  coord 'hp (enum_rank mu) 'hp[la] = (la == mu)%:R.
+ +
+End Coord.
+ +
+
+ +
+

Changing the number of variables

+ +
+
+Section ChangeNVar.
+ +
+Variable R : comNzRingType.
+Variable m0 n0 : nat.
+#[local] Notation m := m0.+1.
+#[local] Notation n := n0.+1.
+Variable d : nat.
+Hypothesis Hd : (d <= m)%N || (n0 < m)%N.
+ +
+Fact cnvarhomsym_subproof (p : {homsym R[m, d]}) :
+  (cnvarsym n0 p) \is d.-homsym.
+Definition cnvarhomsym (p : {homsym R[m, d]}) : {homsym R[n, d]} :=
+  HomogSym (cnvarhomsym_subproof p).
+Fact cnvarhomsym_is_linear : linear cnvarhomsym.
+ +
+Lemma cnvarhomsyme la : cnvarhomsym 'he[la] = 'he[la].
+Lemma cnvarhomsymh la : cnvarhomsym 'hh[la] = 'hh[la].
+Lemma cnvarhomsymp la : cnvarhomsym 'hp[la] = 'hp[la].
+Lemma cnvarhomsymm la : cnvarhomsym 'hm[la] = 'hm[la].
+Lemma cnvarhomsyms la : cnvarhomsym 'hs[la] = 'hs[la].
+ +
+End ChangeNVar.
+ +
+#[local] Lemma pchar0_algC : [pchar algC] =i pred0.
+ #[local] Hint Resolve pchar0_algC : core.
+ +
+
+ +
+

The scalar product

+ +
+
+Section ScalarProduct.
+ +
+Context {n0 d : nat}.
+#[local] Notation n := (n0.+1).
+#[local] Notation HSF := {homsym algC[n, d]}.
+ +
+Implicit Type (p q u v : HSF).
+ +
+Definition homsymdot p q : algC :=
+  \sum_(i < #|{: 'P_d}|)
+    (zcard (enum_val i))%:R * (coord 'hp i p) * (coord 'hp i q)^*.
+Notation "''[' u | v ]" := (homsymdot u v) : ring_scope.
+ +
+Lemma homsymdotE p q :
+  '[ p | q ] =
+  \sum_(la : 'P_d) (zcard la)%:R *
+    (coord 'hp (enum_rank la) p) * (coord 'hp (enum_rank la) q)^*.
+Lemma homsymdotC p q : '[p | q] = ('[q | p])^*.
+Fact homsymdot_is_bilinear : bilinear_for *%R (Num.conj \; *%R) homsymdot.
+Notation "''[' u | v ]" := (homsymdot u v) : ring_scope.
+ +
+Fact homsymdot_is_hermitian p q : '[p | q] = (-1) ^+ false * '[q | p]^*.
+ +
+Lemma homsymdot0l p : '[0 | p] = 0.
+ Lemma homsymdotNl p q : '[- q | p] = - '[q | p].
+ Lemma homsymdotDl p q1 q2 : '[q1 + q2 | p] = '[q1 | p] + '[q2 | p].
+ Lemma homsymdotBl p q1 q2 : '[q1 - q2 | p] = '[q1 | p] - '[q2 | p].
+ Lemma homsymdotMnl p q n : '[q *+ n | p] = '[q | p] *+ n.
+ Lemma homsymdot_suml p I r (P : pred I) (q : I -> HSF) :
+  '[\sum_(i <- r | P i) q i | p] = \sum_(i <- r | P i) '[q i | p].
+ Lemma homsymdotZl p a q : '[a *: q | p] = a * '[q | p].
+ +
+Lemma homsymdot0r p : '[p | 0] = 0.
+ Lemma homsymdotNr p q : '[p | - q] = - '[p | q].
+ Lemma homsymdotDr p q1 q2 : '[p | q1 + q2] = '[p | q1] + '[p | q2].
+ Lemma homsymdotBr p q1 q2 : '[p | q1 - q2] = '[p | q1] - '[p | q2].
+ Lemma homsymdotMnr p q n : '[p | q *+ n] = '[p | q] *+ n.
+ Lemma homsymdot_sumr p I r (P : pred I) (q : I -> HSF) :
+  '[p | \sum_(i <- r | P i) q i] = \sum_(i <- r | P i) '[p | q i].
+ Lemma homsymdotZr a p q : '[p | a *: q] = a^* * '[p | q].
+ +
+Hypothesis (Hd : (d <= n)%N).
+ +
+Fact homsymdot_is_dot f : f != 0 -> 0 < '[f | f].
+ +
+
+ +
+Formulas for other bases will be proved in Cauchy +
+
+Lemma homsymdotpp la mu :
+  '['hp[la] | 'hp[mu]] = (zcard la)%:R * (la == mu)%:R.
+ +
+Lemma homsymdot_omegasf f g :
+  '[omegahomsym f |omegahomsym g ] = '[f | g].
+ +
+Lemma homsymp_orthogonal : pairwise_orthogonal homsymdot 'hp.
+ +
+End ScalarProduct.
+ +
+Notation "''[' u | v ]" := (homsymdot u v) : ring_scope.
+Notation "''[' u | v ] _( n , d )" :=
+  (@homsymdot n d u v) (only parsing) : ring_scope.
+
+
+ + + +
+ + + \ No newline at end of file diff --git a/combi/1.1.0/Combi.MPoly.sympoly.html b/combi/1.1.0/Combi.MPoly.sympoly.html new file mode 100644 index 00000000..a4dea71d --- /dev/null +++ b/combi/1.1.0/Combi.MPoly.sympoly.html @@ -0,0 +1,1521 @@ + + + + + +Combi.MPoly.sympoly: Symmetric Polynomials + + + + +
+ + + +
+ +

Library Combi.MPoly.sympoly: Symmetric Polynomials

+ +
+
+ +
+ +
+
+
+ +
+

The Ring of Symmetric Polynomials

+ + +
+ +
    +
  • {sympoly R[n]} == the ring of symmetric polynomial in n variable over R. + +
  • +
  • sympol f == the coercion from {sympoly R[n]} to {mpoly R[n]} + +
  • +
+ +
+ +Classical bases + +
+ +
    +
  • 'e_k == the k-th elementary symmetric polynomial + +
  • +
  • 'h_k == the k-th complete homogeneous symmetric polynomial + +
  • +
  • 'p_k == the k-th power sum symmetric polynomial + +
    + + +
  • +
  • prod_gen G la == given a familly of generators G : nat -> {sympoly R[n]} + the product \prod_(i <- la) G i. + +
    + + +
  • +
  • 'e[mu] == the product of elementary symmetric polynomial + +
  • +
  • 'h[mu] == the product of complete homogeneous symmetric polynomial + +
  • +
  • 'p[mu] == the product of power sum symmetric polynomial + +
  • +
  • 'm[mu] == the monomial symmetric polynomial + +
  • +
  • 's[mu] == the Schur symmetric polynomial + +
    + + +
  • +
  • coeff_prodgen Co la mu == the coefficient of the product 'g[la] + on 'g_[mu] assuming that co : forall d : nat, 'P_d -> R gives + the coefficients of 'f_i on 'g_[mu] + +
  • +
+ +
+ +Change of scalars + +
+ +
    +
  • map_sympoly M == the ring morphism {sympoly R[n]} -> {sympoly S[n]} + obtained by the change of scalar M : {rmorphism R -> S} + +
  • +
+ +
+ +Formula for basis changes + +
+ +
    +
  • perm_partn la == the number of composition which are permuted of la + +
  • +
  • prod_partsum la == the product of the sum of all the prefix of la + +
  • +
+ +
+ +We list here a few theorems expressing a basis in another one. See the file +for a more comprehensive list. The rule is that we call syma_to_symb when +we expand a genrator of syma in symb. We call syma_symb the expansion +of a basis element of syma in symb + +
+ +
    +
  • e and h : syme_to_symh symh_to_syme + +
  • +
  • s and m : syms_symm symm_syms + +
  • +
  • s and h : syms_symh symh_syms + +
  • +
  • h and p : symh_to_symp and Newton's formulas Newton_symh Newton_symh1 + +
  • +
  • e and p : Newton's formulas Newton_syme1 + +
  • +
  • h and m : symh_to_symm + +
  • +
  • p and m : symp_to_symm + +
  • +
+ +
+ +The omega involution + +
+ +
    +
  • omegasf == the omega involution, that is the unique ring morphism + exchanging 'e_k and 'h_k wheneven k is smaller than the + number of variables. + +
  • +
+ +
+ +Change of the number of variables + +
+ +
    +
  • sympolyf R m == the algebra morphism expanding any symetric polynomial + (in {sympoly R[m]}) as a polynomial in the 'e_i + (in {mpoly R[m]}) by the fundamental theorem of symmetric + polynomials. + +
  • +
  • cnvarsym R m n == the canonical algebra morphism + {sympoly R[m.+1]} -> {sympoly R[n.+1]} sending 'e_i to 'e_i + computed thanks to the fundamental theorem. + +
  • +
+ +
+ +We show that if d m or n m, for any partition in 'P_d the change of +number of variables sends a basis element 'b[la] to the same element. These +are lemmas + +
+ +cnvar_prodsyme, cnvar_prodsymh, cnvar_prodsymp, cnvar_syms +and cnvar_symm. + +
+ + +
+
+From HB Require Import structures.
+From mathcomp Require Import all_boot order.
+From mathcomp Require Import ssralg ssrint fingroup perm.
+From mathcomp Require Import ssrcomplements freeg mpoly.
+ +
+Require Import sorted tools ordtype permuted partition skewpart composition.
+Require Import Yamanouchi std tableau stdtab skewtab permcent.
+Require Import antisym Schur_mpoly therule Schur_altdef unitriginv.
+ +
+Set Implicit Arguments.
+ +
+#[local] Open Scope ring_scope.
+Import GRing.Theory.
+ +
+Lemma boolRP (R : nzRingType) (b : bool) : reflect (b%:R = 0 :> R) (~~b).
+ +
+Section MultinomCompl.
+ +
+Variables (n : nat) (R : comNzRingType).
+ +
+Lemma mnm_n0E : @all_equal_to 'X_{1..0} 0%MM.
+ +
+Lemma eq_mnm1 (i j : 'I_n) : (U_(i)%MM == U_(j)%MM) = (i == j).
+ +
+Lemma mcoeffXU (i j : 'I_n) : ('X_i @_U_(j) : R) = (i == j)%:R.
+ +
+End MultinomCompl.
+ +
+Reserved Notation "{ 'sympoly' T [ n ] }"
+  (at level 0, T, n at level 2, format "{ 'sympoly' T [ n ] }").
+Reserved Notation "''e_' k" (at level 8, k at level 2, format "''e_' k").
+Reserved Notation "''h_' k" (at level 8, k at level 2, format "''h_' k").
+Reserved Notation "''p_' k" (at level 8, k at level 2, format "''p_' k").
+Reserved Notation "''e[' k ]" (at level 0, format "''e[' k ]").
+Reserved Notation "''h[' k ]" (at level 0, format "''h[' k ]").
+Reserved Notation "''p[' k ]" (at level 0, format "''p[' k ]").
+Reserved Notation "''m[' k ]" (at level 0, format "''m[' k ]").
+Reserved Notation "''s[' k ]" (at level 0, format "''s[' k ]").
+ +
+Section DefType.
+ +
+Variable n : nat.
+Variable R : nzRingType.
+ +
+Record sympoly : predArgType :=
+  SymPoly {sympol :> {mpoly R[n]}; _ : sympol \is symmetric}.
+ +
+ +
+Lemma sympol_inj : injective sympol.
+ +
+End DefType.
+ +
+Bind Scope ring_scope with sympoly.
+ +
+Notation "{ 'sympoly' T [ n ] }" := (sympoly n T).
+ +
+Section SymPolyRingType.
+ +
+Variable n : nat.
+Variable R : nzRingType.
+ +
+ +
+Fact sympol_is_linear : linear (@sympol n R).
+ Fact sympol_is_monoid_morphism : monoid_morphism (@sympol n R).
+ +
+Lemma sympolP (x : {sympoly R[n]}) : sympol x \is symmetric.
+ +
+End SymPolyRingType.
+ +
+#[export] Hint Resolve sympolP : core.
+ +
+Section SymPolyComRingType.
+ +
+Variable n : nat.
+Variable R : comNzRingType.
+ +
+ +
+End SymPolyComRingType.
+ +
+Section SymPolyIdomainType.
+ +
+Variable n : nat.
+Variable R : idomainType.
+ +
+ +
+End SymPolyIdomainType.
+ +
+Section Bases.
+ +
+Variable n : nat.
+ +
+Variable R : comNzRingType.
+Implicit Type m : 'X_{1.. n}.
+ +
+#[local] Notation "m # s" := [multinom m (s i) | i < n]
+  (at level 40, left associativity, format "m # s").
+ +
+
+ +
+

Elementary symmetric polynomials

+ +
+
+Fact syme_sym d : mesym n R d \is symmetric.
+Canonical syme d : {sympoly R[n]} := SymPoly (syme_sym d).
+#[local] Notation "''e_' k" := (syme k).
+ +
+Lemma syme_geqnE d : d > n -> 'e_d = 0.
+ Lemma syme_homog d : sympol 'e_d \is d.-homog.
+ +
+
+ +
+

Complete homogeneous symmetric polynomials

+ +
+
+Definition symh_pol_bound b d : {mpoly R[n]} :=
+  \sum_(m : 'X_{1..n < b} | mdeg m == d) 'X_[m].
+Definition symh_pol d : {mpoly R[n]} := symh_pol_bound d.+1 d.
+Lemma mcoeff_symh_pol_bound b d m :
+  b > d -> (symh_pol_bound b d)@_m = (mdeg m == d)%:R.
+Lemma mcoeff_symh_pol d m : (symh_pol d)@_m = (mdeg m == d)%:R.
+ Lemma symh_pol_any b d : d < b -> symh_pol d = symh_pol_bound b d.
+Fact symh_sym d : symh_pol d \is symmetric.
+Canonical symh d : {sympoly R[n]} := SymPoly (symh_sym d).
+#[local] Notation "''h_' k" := (symh k).
+ +
+Lemma mcoeff_symh d m : 'h_d@_m = (mdeg m == d)%:R.
+ Lemma symh_homog d : sympol 'h_d \is d.-homog.
+ +
+
+ +
+

Power sum symmetric polynomials

+ +
+
+Definition symp_pol d : {mpoly R[n]} := \sum_(i < n) 'X_i ^+ d.
+Fact symp_sym d : symp_pol d \is symmetric.
+Canonical symp d : {sympoly R[n]} := SymPoly (symp_sym d).
+#[local] Notation "''p_' k" := (symp k).
+ +
+Lemma symp_homog d : sympol 'p_d \is d.-homog.
+ +
+
+ +
+

Monomial symmetric polynomials

+ +
+
+Definition symm_pol (sh : n.-tuple nat) : {mpoly R[n]} :=
+  \sum_(p : permuted sh) 'X_[Multinom p].
+Lemma mcoeff_symm_pol sh m : (symm_pol sh)@_m = (perm_eq sh m)%:R.
+Fact symm_sym sh : symm_pol sh \is symmetric.
+Definition symm sh : {sympoly R[n]} :=
+  if size sh <= n then SymPoly (symm_sym (mpart sh)) else 0 : {sympoly R[n]}.
+Notation "''m[' k ]" := (symm k).
+ +
+Lemma symm_oversize sh : n < size sh -> 'm[sh] = 0.
+ Lemma mcoeff_symm sh m :
+  size sh <= n -> 'm[sh]@_m = (perm_eq (mpart (n := n) sh) m)%:R.
+ Lemma symm_homog d (sh : 'P_d) : sympol 'm[sh] \is d.-homog.
+ +
+Lemma symE (p q : {sympoly R[n]}) :
+  reflect (forall m, m \is dominant -> p@_m = q@_m) (p == q).
+ +
+
+ +
+

Expansion of symmetric polynomials on monomials

+ +
+
+Lemma sym_symmE (p : {sympoly R[n]}) :
+  p = \sum_(m <- msupp p | m \is dominant) p@_m *: 'm[partm m].
+ +
+Lemma size_mpart_in_supp (f : {mpoly R[n]}) d (p : 'P_d) :
+  f \is d.-homog -> mpart p \in msupp f -> size p <= n.
+ +
+Lemma dominant_mpart d m :
+  m \is dominant -> mdeg m = d -> { p : 'P_d | m = mpart p }.
+ +
+Lemma homog_symmE d (f : {sympoly R[n]}) :
+  sympol f \is d.-homog -> f = \sum_(l : 'P_d) f@_(mpart l) *: 'm[l].
+ +
+Lemma symm_unique d (f : {sympoly R[n]}) c :
+  f = \sum_(l : 'P_d) (c l) *: 'm[l] ->
+  forall l : 'P_d, size l <= n -> c l = f@_(mpart l).
+ +
+Lemma symm_unique0 d c :
+  \sum_(l : 'P_d) (c l) *: 'm[l] = 0 ->
+  forall l : 'P_d, size l <= n -> c l = 0.
+ +
+Lemma sum_symmE d (f : {sympoly R[n]}) :
+  \sum_(l : 'P_d) f@_(mpart l) *: 'm[l] =
+  \sum_(l <- [seq val p | p <- enum {: 'P_d}]) f@_(mpart l) *: 'm[l].
+ +
+
+ +
+

Basis at degree 0

+ +
+
+Lemma syme0 : 'e_0 = 1.
+ +
+Lemma symp0 : 'p_0 = n%:R.
+ +
+Lemma symh0 : 'h_0 = 1.
+ +
+Lemma symm0 : 'm[[::]] = 1.
+ +
+
+ +
+

All basis agrees at degree 1

+ +
+
+Lemma syme1 : val ('e_1) = \sum_(i < n) 'X_i.
+ +
+Lemma sympe1E : 'p_1 = 'e_1.
+ +
+Lemma symhe1E : 'h_1 = 'e_1.
+ +
+End Bases.
+ +
+Notation "''e_' k" := (syme _ _ k).
+Notation "''h_' k" := (symh _ _ k).
+Notation "''p_' k" := (symp _ _ k).
+Notation "''m[' k ]" := (symm _ _ k).
+ +
+Section ChangeBaseMonomial.
+ +
+Variables (n : nat) (R : comNzRingType).
+#[local] Notation SP := {sympoly R[n]}.
+ +
+Lemma expUmpartE nv k :
+  (U_(ord0) *+ k)%MM = mpart (rowpartn k) :> 'X_{1..nv.+1}.
+ +
+Lemma expUmpartNE nv k i (P : intpartn k.+1) :
+  ((U_(i) *+ k.+1)%MM == mpart P :> 'X_{1..nv.+1})
+  = (i == ord0) && (P == rowpartn k.+1).
+ +
+Lemma symp_to_symm k : 'p_k.+1 = 'm[rowpartn k.+1] :> SP.
+ +
+Lemma symh_to_symm k : 'h_k = \sum_(l : 'P_k) 'm[l] :> SP.
+ +
+Lemma syme_to_symm k : 'e_k = 'm[colpartn k] :> SP.
+ +
+End ChangeBaseMonomial.
+ +
+
+ +
+

Schur symmetric polynomials

+ +
+
+Section Schur.
+ +
+Variable n0 : nat.
+Variable R : comNzRingType.
+ +
+#[local] Notation n := n0.+1.
+ +
+Definition syms d (la : 'P_d) : {sympoly R[n]} :=
+  SymPoly (Schur_sym n0 R la).
+ +
+#[local] Notation "''s[' k ]" := (syms k).
+ +
+Lemma syms_homog d (la : 'P_d) : sympol 's[la] \is d.-homog.
+ +
+Lemma syms0 (la : 'P_0) : 's[la] = 1.
+ +
+Lemma syms1 (la : 'P_1) : 's[la] = \sum_(i < n) 'X_i :> {mpoly R[n]}.
+ +
+Lemma syms_rowpartn d : 's[rowpartn d] = 'h_d.
+ +
+Lemma syms_colpartn d : 's[colpartn d] = 'e_d.
+ +
+Lemma syms_oversize d (la : 'P_d) : n < size la -> 's[la] = 0.
+ +
+End Schur.
+ +
+Notation "''s[' k ]" := (syms _ _ k).
+ +
+
+ +
+

Multiplicative bases.

+ + +
+ +Given a family of generators 'g_k, we define 'g[la] as the product of the +generators \prod(i <- la) 'g_i. + +
+
+Section ProdGen.
+ +
+Variable n : nat.
+Variable R : comNzRingType.
+#[local] Notation SF := {sympoly R[n]}.
+ +
+Section Defs.
+ +
+Variable gen : nat -> SF.
+Hypothesis gen_homog : forall d, sympol (gen d) \is d.-homog.
+ +
+Definition prod_gen d (sh : 'P_d) := \prod_(i <- sh) gen i.
+ +
+#[local] Notation "''g_' k" := (gen k) (at level 8, format "''g_' k").
+#[local] Notation "''g[' k ]" := (prod_gen k) (at level 8, format "''g[' k ]").
+ +
+Lemma prod_gen_homog d (sh : 'P_d) : sympol 'g[sh] \is d.-homog.
+ +
+Lemma prod_gen0 (l : 'P_0) : 'g[l] = 1.
+ +
+Lemma prod_genM c d (l : 'P_c) (k : 'P_d) : 'g[l] * 'g[k] = 'g[l +|+ k].
+ +
+Lemma prod_gen_colpartn d : 'g[colpartn d] = 'g_1 ^+ d.
+ +
+Lemma prod_gen_cast d1 d2 (eq_d : d1 = d2) (la : 'P_d1) :
+  'g[cast_intpartn eq_d la] = 'g[la].
+ +
+End Defs.
+ +
+Variable gA gB : nat -> SF.
+Variable co : forall (d : nat), 'P_d -> R.
+ +
+#[local] Notation "''gA_' k" := (gA k) (at level 8, format "''gA_' k").
+#[local] Notation "''gA[' k ]" :=
+  (prod_gen gA k) (at level 8, format "''gA[' k ]").
+#[local] Notation "''gB_' k" := (gB k) (at level 8, format "''gB_' k").
+#[local] Notation "''gB[' k ]" :=
+  (prod_gen gB k) (at level 8, format "''gB[' k ]").
+ +
+Fixpoint coeff_prodgen_seq l : 'P_(sumn l) -> R :=
+  if l is l0 :: l' then
+    fun la : 'P_(sumn (l0 :: l')) =>
+             \sum_(p | la == p.1 +|+ p.2) co p.1 * coeff_prodgen_seq p.2
+  else fun _ => 1.
+ +
+#[local] Notation "''co[' k ]" := (coeff_prodgen_seq k)
+                                 (at level 8, format "''co[' k ]").
+#[local] Notation "''co[' k ]_ l" := (coeff_prodgen_seq (l := l) k)
+                                 (at level 8, only parsing).
+ +
+Definition coeff_prodgen d (la mu : 'P_d) : R :=
+  'co[cast_intpartn (esym (sumn_intpartn la)) mu].
+ +
+Lemma coeff_prodgen_cast l k nu (eqlamu : l = k) (eqsum : sumn l = sumn k) :
+  'co[cast_intpartn eqsum nu] = 'co[nu].
+ +
+Lemma prod_prodgen :
+  (forall d, 'gA_d = \sum_(la : 'P_d) co la *: 'gB[la] :> SF) ->
+  forall d (la : 'P_d),
+    'gA[la] = \sum_(mu : 'P_d)
+               coeff_prodgen la mu *: 'gB[mu] :> SF.
+ +
+Definition prod_syme := prod_gen (@syme n R).
+Definition prod_syme_homog := prod_gen_homog (@syme_homog n R).
+Definition prod_symh := prod_gen (@symh n R).
+Definition prod_symh_homog := prod_gen_homog (@symh_homog n R).
+Definition prod_symp := prod_gen (@symp n R).
+Definition prod_symp_homog := prod_gen_homog (@symp_homog n R).
+ +
+End ProdGen.
+ +
+Notation "''e[' k ]" := (prod_syme _ _ k).
+Notation "''h[' k ]" := (prod_symh _ _ k).
+Notation "''p[' k ]" := (prod_symp _ _ k).
+ +
+
+ +
+Casting the index +
+
+Section Cast.
+ +
+Variable n0 : nat.
+#[local] Notation n := n0.+1.
+Variables R : comNzRingType.
+#[local] Notation SF := {sympoly R[n]}.
+ +
+Variables (d1 d2 : nat) (eq_d : d1 = d2) (la : 'P_d1).
+ +
+Lemma syms_cast : 's[cast_intpartn eq_d la] = 's[la] :> SF.
+ Lemma syme_cast : 'e[cast_intpartn eq_d la] = 'e[la] :> SF.
+ Lemma symh_cast : 'h[cast_intpartn eq_d la] = 'h[la] :> SF.
+ Lemma symp_cast : 'p[cast_intpartn eq_d la] = 'p[la] :> SF.
+ Lemma symm_cast : 'm[cast_intpartn eq_d la] = 'm[la] :> SF.
+ +
+End Cast.
+ +
+
+ +
+

Littlewood-Richardson and Pieri rules

+ +
+
+Section LRrule_Pieri.
+ +
+Variable n0 : nat.
+#[local] Notation n := n0.+1.
+Variables R : comNzRingType.
+#[local] Notation SF := {sympoly R[n]}.
+ +
+Lemma syms_symsM d1 (la : 'P_d1) d2 (mu : 'P_d2) :
+  's[la] * 's[mu] =
+  \sum_(nu : 'P_(d1 + d2) | included la nu)
+     's[nu] *+ LRyam_coeff la mu nu :> SF.
+ +
+Lemma syms_symhM d1 (la : 'P_d1) d2 :
+  's[la] * 'h_d2 = \sum_(nu : 'P_(d1 + d2) | hb_strip la nu) 's[nu] :> SF.
+ +
+Lemma syms_symeM d1 (la : 'P_d1) d2 :
+  's[la] * 'e_d2 = \sum_(nu : 'P_(d1 + d2) | vb_strip la nu) 's[nu] :> SF.
+ +
+End LRrule_Pieri.
+ +
+
+ +
+

Change of scalars

+ +
+
+Section ScalarChange.
+ +
+Variables R S : comNzRingType.
+Variable mor : {rmorphism R -> S}.
+Variable n0 : nat.
+#[local] Notation n := n0.+1.
+ +
+Lemma map_mpoly_issym (f : {sympoly R[n]}) : map_mpoly mor f \is symmetric.
+Definition map_sympoly (f : {sympoly R[n]}) : {sympoly S[n]} :=
+           SymPoly (map_mpoly_issym f).
+ +
+Fact map_sympoly_is_zmod_morphism : zmod_morphism map_sympoly.
+ +
+Fact map_sympoly_is_monoid_morphism : monoid_morphism map_sympoly.
+ +
+Lemma map_sympoly_is_scalable : scalable_for (mor \; *:%R) map_sympoly.
+ +
+Lemma map_symm d : map_sympoly 'm[d] = 'm[d].
+ +
+Lemma map_syme d : map_sympoly 'e_d = 'e_d.
+Lemma map_syme_prod d (l : 'P_d) : map_sympoly 'e[l] = 'e[l].
+ +
+Lemma map_symh d : map_sympoly 'h_d = 'h_d.
+Lemma map_symh_prod d (l : 'P_d) : map_sympoly 'h[l] = 'h[l].
+ +
+Lemma map_symp d : map_sympoly 'p_d = 'p_d.
+Lemma map_symp_prod d (l : 'P_d) : map_sympoly 'p[l] = 'p[l].
+ +
+Lemma map_syms d (la : 'P_d) :
+  map_sympoly 's[la] = 's[la].
+ +
+End ScalarChange.
+ +
+
+ +
+

Bases change formulas

+ +
+
+Section ChangeBasis.
+ +
+Variable n0 : nat.
+#[local] Notation n := n0.+1.
+Variable R : comNzRingType.
+ +
+#[local] Notation "''Xn'" := 'X_{1.. n}.
+#[local] Notation "''Xn_' m" := 'X_{1.. n < (mdeg m).+1}
+          (at level 10, m at next level, format "''Xn_' m").
+#[local] Notation "''XXn_' m" := 'X_{1.. n < (mdeg m).+1, (mdeg m).+1}
+          (at level 10, m at next level, format "''XXn_' m").
+Implicit Type m : 'Xn.
+#[local] Notation SF := {sympoly R[n]}.
+ +
+
+ +
+

Bases change between homogeneous and elementary

+ +
+
+Lemma sum_symh_syme (d : nat) :
+  d != 0%N ->
+  \sum_(0 <= i < d.+1) (-1) ^+ i *: ('h_i * 'e_(d - i)) = 0 :> SF.
+ +
+Lemma sum_syme_symh (d : nat) :
+  d != 0%N ->
+  \sum_(0 <= i < d.+1) (-1) ^+ i *: ('e_i * 'h_(d - i)) = 0 :> SF.
+ +
+Section HandE.
+ +
+Variable E H : nat -> {sympoly R[n]}.
+ +
+Hypothesis E0 : E 0 = 1.
+Hypothesis H0 : H 0 = 1.
+Hypothesis Hanti : forall d : nat,
+    d != 0%N ->
+    \sum_(0 <= i < d.+1) (-1) ^+ i *: (H i * E (d - i)) = 0.
+ +
+Lemma symHE_rec (d : nat) :
+  d != 0%N ->
+  E d = \sum_(1 <= i < d.+1) H i * ((-1) ^+ i.-1 *: E (d - i)).
+ +
+Lemma symHE_prod_intcomp d :
+  E d = \sum_(c : intcompn d) (-1) ^+ (d - size c) *: (\prod_(i <- c) H i).
+ +
+Lemma symHE_intcompn d :
+  E d = \sum_(c : intcompn d)
+         (-1)^+(d - size c) *: prod_gen H (partn_of_compn c).
+ +
+Definition perm_partn d (la : 'P_d) :=
+  #|[set c : intcompn d | sort geq c == la]|.
+ +
+Lemma symHE_intpartn d :
+  E d = \sum_(la : 'P_d)
+         (-1)^+(d - size la) * (perm_partn la)%:R *: prod_gen H la.
+ +
+End HandE.
+ +
+Lemma syme_symhE (d : nat) :
+  d != 0%N ->
+  'e_d = \sum_(1 <= i < d.+1) 'h_i * ((-1) ^+ i.-1 *: 'e_(d - i)) :> SF.
+ +
+Lemma symh_symeE (d : nat) :
+  d != 0%N ->
+  'h_d = \sum_(1 <= i < d.+1) 'e_i * ((-1) ^+ i.-1 *: 'h_(d - i)) :> SF.
+ +
+Lemma syme_to_symh d :
+  'e_d = \sum_(la : 'P_d)
+          (-1) ^+ (d - size la) * (perm_partn la)%:R *: 'h[la] :> SF.
+ +
+Lemma symh_to_syme d :
+  'h_d = \sum_(la : 'P_d)
+          (-1) ^+ (d - size la) * (perm_partn la)%:R *: 'e[la] :> SF.
+ +
+
+ +
+

Newton formulas

+ +
+
+Lemma mult_symh_U k d i m :
+  (('h_k : {mpoly R[n]}) * 'X_i ^+ d)@_m =
+  ((mdeg m == (k + d)%N) && (m i >= d))%:R.
+ +
+Lemma mult_symh_powersum k d m :
+  ('h_k * 'p_d : SF)@_m =
+  (mdeg m == (k + d)%N)%:R * \sum_(i < n) (m i >= d)%:R.
+ +
+Lemma Newton_symh (k : nat) :
+  k%:R *: 'h_k = \sum_(0 <= i < k) 'h_i * 'p_(k - i) :> SF.
+ +
+Lemma Newton_symh1 (k : nat) :
+  k%:R *: 'h_k = \sum_(1 <= i < k.+1) 'p_i * 'h_(k - i) :> SF.
+ +
+Lemma mult_syme_U k d i m :
+  (('e_k : {mpoly R[n]}) * 'X_i ^+ d)@_m =
+  [&& mdeg m == (k + d)%N, (d <= m i <= d.+1) &
+   [forall j : 'I_n, (j != i) ==> (m j <= 1%N)]]%:R.
+ +
+Lemma mul_ek_p1 (k : nat) :
+  'e_k.+1 * 'p_1 = k.+2%:R *: 'e_k.+2 + 'm[hookpartn k.+2 1] :> SF.
+ +
+Lemma mul_ek_pk (k l : nat) :
+  'e_k.+1 * 'p_l.+2 =
+  'm[hookpartn (k + l).+3 l.+1] + 'm[hookpartn (k + l).+3 l.+2] :> SF.
+ +
+Lemma expri2 i : (-1) ^+ i.+2 = (-1) ^+ i :> R.
+ Lemma Newton_syme1 (k : nat) :
+  k%:R *: 'e_k =
+  \sum_(1 <= i < k.+1) (-1) ^+ i.+1 *: 'p_i * 'e_(k - i) :> SF.
+ +
+Lemma Newton_syme (k : nat) :
+  k%:R *: 'e_k =
+  \sum_(0 <= i < k) (-1) ^+ (k - i).+1 *: 'e_i * 'p_(k - i) :> SF.
+ +
+End ChangeBasis.
+ +
+
+ +
+

Basis change from Schur to monomial

+ +
+ + We start by doing the computation on int using Kostka and KostkaInv +and then tranfer to any commutative ring +
+
+Section SymsSymmInt.
+ +
+Variable (n : nat) (d : nat).
+#[local] Notation SF := {sympoly int[n.+1]}.
+Implicit Type (la mu : 'P_d).
+ +
+Lemma syms_symm_int la :
+  's[la] = \sum_(mu : 'P_d) 'K(la, mu)%:R *: 'm[mu] :> SF.
+ +
+Lemma syms_symm_partdom_int la :
+  's[la] =
+  'm[la] + \sum_(mu : 'PDom_d | (mu < la)%O) 'K(la, mu) *: 'm[mu] :> SF.
+ +
+Lemma symm_syms_int la :
+  'm[la] = \sum_(mu : 'P_d) KostkaInv la mu *: 's[mu] :> SF.
+ +
+Lemma symm_syms_partdom_int la :
+  'm[la] =
+  's[la] + \sum_(mu : 'PDom_d | (mu < la)%O) KostkaInv la mu *:'s[mu] :> SF.
+ +
+End SymsSymmInt.
+ +
+Section SymsSymm.
+ +
+Variable (n : nat) (R : comNzRingType) (d : nat).
+#[local] Notation SF := {sympoly R[n.+1]}.
+Implicit Type (la mu : 'P_d).
+ +
+Lemma syms_symm la :
+  's[la] = \sum_(mu : 'P_d) 'K(la, mu)%:R *: 'm[mu] :> SF.
+ +
+Lemma syms_symm_partdom la :
+  's[la] =
+  'm[la] + \sum_(mu | (mu < la :> 'PDom_d)%O) 'K(la, mu) *: 'm[mu] :> SF.
+ +
+Lemma symm_syms la :
+  'm[la] = \sum_(mu : 'P_d) 'K^-1(la, mu) *: 's[mu] :> SF.
+ +
+Lemma symm_syms_partdom la :
+  'm[la] =
+  's[la] + \sum_(mu | (mu < la :> 'PDom_d)%O) 'K^-1(la, mu) *: 's[mu] :> SF.
+ +
+End SymsSymm.
+ +
+
+ +
+

Basis change from complete and elementary to Schur

+ +
+ + We start by doing the computation on int using Kostka and KostkaInv +and then tranfer to any commutative ring +
+
+Section SymheSymsInt.
+ +
+Variables (n : nat) (d : nat).
+#[local] Notation SF := {sympoly int[n.+1]}.
+Implicit Type la mu : 'P_d.
+ +
+Lemma symh_syms_int mu :
+  'h[mu] = \sum_(la : 'P_d) 'K(la, mu) *: 's[la] :> SF.
+ +
+Lemma symh_syms_partdom_int mu :
+  'h[mu] =
+  's[mu] + \sum_(la | (mu < la :> 'PDom_d)%O) 'K(la, mu) *: 's[la] :> SF.
+ +
+Lemma syms_symh_int mu :
+  's[mu] = \sum_(la : 'P_d) KostkaInv la mu *: 'h[la] :> SF.
+ +
+Lemma syms_symh_partdom_int mu :
+  's[mu] =
+  'h[mu] + \sum_(la | (mu < la :> 'PDom_d)%O) KostkaInv la mu *: 'h[la] :> SF.
+ +
+#[local] Notation "la '^~'" := (conj_intpartn la) (at level 10).
+ +
+Lemma syme_syms_int mu :
+  'e[mu] = \sum_(la : 'P_d) 'K(la, mu) *: 's[la^~] :> SF.
+ +
+Lemma syme_syms_partdom_int mu :
+  'e[mu] =
+  's[mu^~] + \sum_(la | (mu < la :> 'PDom_d)%O) 'K(la, mu) *: 's[la^~] :> SF.
+ +
+Lemma syms_syme_int mu :
+  's[mu^~] = \sum_(la : 'P_d) KostkaInv la mu *: 'e[la] :> SF.
+ +
+Lemma syms_syme_partdom_int mu :
+  's[mu^~] =
+  'e[mu] + \sum_(la | (mu < la :> 'PDom_d)%O) KostkaInv la mu *: 'e[la] :> SF.
+ +
+End SymheSymsInt.
+ +
+Section SymheSyms.
+ +
+Variables (R : comNzRingType) (n : nat) (d : nat).
+#[local] Notation SF := {sympoly R[n.+1]}.
+Implicit Type la mu : 'P_d.
+ +
+Lemma symh_syms mu : 'h[mu] = \sum_(la : 'P_d) 'K(la, mu) *: 's[la] :> SF.
+ +
+Lemma symh_syms_partdom mu :
+  'h[mu] =
+  's[mu] + \sum_(la | (mu < la :> 'PDom_d)%O) 'K(la, mu) *: 's[la] :> SF.
+ +
+Lemma syms_symh mu : 's[mu] = \sum_(la : 'P_d) 'K^-1(la, mu) *: 'h[la] :> SF.
+ +
+Lemma syms_symh_partdom mu :
+  's[mu] =
+  'h[mu] + \sum_(la | (mu < la :> 'PDom_d)%O) 'K^-1(la, mu) *: 'h[la] :> SF.
+ +
+#[local] Notation "la '^~'" := (conj_intpartn la) (at level 10).
+ +
+Lemma syme_syms mu : 'e[mu] = \sum_(la : 'P_d) 'K(la, mu) *: 's[la ^~] :> SF.
+ +
+Lemma syme_syms_partdom mu :
+  'e[mu] =
+  's[mu^~] + \sum_(la | (mu < la :> 'PDom_d)%O) 'K(la, mu) *: 's[la^~] :> SF.
+ +
+Lemma syms_syme mu : 's[mu^~] = \sum_(la : 'P_d) 'K^-1(la, mu) *: 'e[la] :> SF.
+ +
+Lemma syms_syme_partdom mu :
+  's[mu^~] =
+  'e[mu] + \sum_(la | (mu < la :> 'PDom_d)%O) 'K^-1(la, mu) *: 'e[la] :> SF.
+ +
+End SymheSyms.
+ +
+
+ +
+

Basis change from complete to power sums

+ +
+
+Section ChangeBasisSymhPowerSum.
+ +
+Variable nvar0 : nat.
+Variable R : fieldType.
+#[local] Notation nvar := nvar0.+1.
+#[local] Notation SF := {sympoly R[nvar]}.
+ +
+Fixpoint prod_partsum (s : seq nat) :=
+  if s is _ :: s' then (sumn s * prod_partsum s')%N else 1%N.
+ +
+#[local] Notation "\Pi s" := (prod_partsum s)%:R^-1 (at level 0, s at level 2).
+ +
+Lemma symh_to_symp_prod_partsum n :
+  [pchar R] =i pred0 ->
+  'h_n = \sum_(c : intcompn n) \Pi c *: \prod_(i <- c) 'p_i :> SF.
+ +
+Import LeqGeqOrder.
+ +
+Lemma symh_to_symp_intpartn n :
+  [pchar R] =i pred0 ->
+  'h_n = \sum_(l : 'P_n)
+           (\sum_(c : intcompn n | perm_eq l c) \Pi c) *: 'p[l] :> SF.
+ +
+Lemma intcompn_cons_sub_proof i n (c : intcompn (n - i)) :
+  i != 0%N -> i <= n -> is_comp_of_n n (i :: c).
+#[local] Definition intcompn_cons i (Hi : i != 0%N) n (Hin : i <= n) c :=
+  IntCompN (intcompn_cons_sub_proof c Hi Hin).
+ +
+Lemma intcompn_behead_sub_proof i n (c : intcompn n) :
+  i != 0%N -> i <= n ->
+  is_comp_of_n (n - i)%N (if head 0%N c == i then behead c else rowcompn (n-i)).
+#[local] Definition intcompn_behead i (Hi : i != 0%N) n (Hin : i <= n) c :=
+  IntCompN (intcompn_behead_sub_proof c Hi Hin).
+ +
+Lemma part_sumn_count l :
+  is_part l ->
+  (\sum_(i < (sumn l).+1 | val i \in l) i * (count_mem (val i) l))%N
+  = sumn l.
+ +
+Lemma coeff_symh_to_symp n (l : 'P_n) :
+  [pchar R] =i pred0 ->
+  \sum_(c : intcompn n | perm_eq l c) \Pi c = (zcard l)%:R^-1 :> R.
+ +
+Theorem symh_to_symp n :
+  [pchar R] =i pred0 -> 'h_n = \sum_(l : 'P_n) (zcard l)%:R^-1 *: 'p[l] :> SF.
+ +
+End ChangeBasisSymhPowerSum.
+ +
+Section Generators.
+ +
+Variables (n : nat) (R : comNzRingType).
+ +
+Lemma prod_homog nv l (df : 'I_l -> nat) (mf : 'I_l -> {mpoly R[nv]}) :
+  (forall i : 'I_l, mf i \is (df i).-homog) ->
+  \prod_(i < l) mf i \is (\sum_(i < l) df i).-homog.
+ +
+Variable gen : forall nv : nat, nat -> {mpoly R[nv]}.
+Hypothesis gen_homog : forall nv i : nat, gen nv i \is i.-homog.
+#[local] Notation G nv := [tuple gen nv i.+1 | i < n].
+ +
+Lemma homog_X_mPo_gen nv m : 'X_[m] \mPo G nv \is (mnmwgt m).-homog.
+ +
+Lemma pihomog_mPo nv p d :
+  pihomog mdeg d (p \mPo G nv) = (pihomog mnmwgt d p) \mPo G nv.
+ +
+End Generators.
+ +
+
+ +
+

Symmetric polynomials expressed as polynomial in the elementary

+ +
+
+Section MPoESymHomog.
+ +
+Variables (n : nat) (R : comNzRingType).
+#[local] Notation E nv := [tuple mesym nv R i.+1 | i < n].
+ +
+Lemma mwmwgt_homogP (p : {mpoly R[n]}) d :
+  reflect
+    (forall nv, p \mPo E nv \is d.-homog)
+    (p \is d.-homog for mnmwgt).
+ +
+Lemma sym_fundamental_homog (p : {mpoly R[n]}) (d : nat) :
+  p \is symmetric -> p \is d.-homog ->
+  { t | t \mPo (E n) = p /\ t \is d.-homog for mnmwgt }.
+ +
+End MPoESymHomog.
+ +
+Section SymPolF.
+ +
+Variable R : comNzRingType.
+Variable m : nat.
+Implicit Type p : {sympoly R[m]}.
+ +
+#[local] Notation SF p := (sym_fundamental (sympolP p)).
+ +
+Definition sympolyf p := let: exist t _ := SF p in t.
+ +
+Fact sympolyf_is_linear : linear sympolyf.
+ +
+Fact sympolyf_is_monoid_morphism : monoid_morphism sympolyf.
+ +
+
+ +
+

Fundamental theorem of symmetric polynomials

+ +
+
+Lemma sympolyfP p : (sympolyf p) \mPo [tuple sympol 'e_i.+1 | i < m] = p.
+ +
+Definition sympolyf_eval : {mpoly R[m]} -> {sympoly R[m]} :=
+  mmap (GRing.in_alg {sympoly R[m]}) (fun i : 'I_m => 'e_i.+1).
+Lemma sympolyf_evalE (q : {mpoly R[m]}) :
+  q \mPo [tuple sympol 'e_i.+1 | i < m] = sympolyf_eval q.
+ +
+Lemma sympolyfK p : sympolyf_eval (sympolyf p) = p.
+ +
+Lemma sympolyf_evalK q : sympolyf (sympolyf_eval q) = q.
+ +
+Fact esympolyf_eval_is_linear : linear sympolyf_eval.
+ +
+Fact esympolyf_eval_is_monoid_morphism : monoid_morphism sympolyf_eval.
+ +
+Lemma sympolyf_evalX (i : 'I_m) : sympolyf_eval 'X_i = 'e_i.+1.
+ +
+End SymPolF.
+ +
+Section Omega.
+ +
+Variable R : comNzRingType.
+Variable n0 : nat.
+#[local] Notation n := n0.+1.
+Implicit Type p : {sympoly R[n]}.
+#[local] Notation SF p := (sym_fundamental (sympolP p)).
+ +
+Fact omegasf_is_symmetric p :
+  (sympolyf p) \mPo [tuple sympol 'h_i.+1 | i < n] \is @symmetric n R.
+Definition omegasf p : {sympoly R[n]} := SymPoly (omegasf_is_symmetric p).
+ +
+Lemma val_omegasf p :
+  sympol (omegasf p) = (sympolyf p) \mPo [tuple sympol 'h_i.+1 | i < n].
+ +
+Fact omegasf_is_linear : linear omegasf.
+ +
+Fact omegasf_is_monoid_morphism : monoid_morphism omegasf.
+ +
+Lemma omegasf_syme i : i <= n -> omegasf 'e_i = 'h_i.
+ +
+Lemma omegasf_symh i : i <= n -> omegasf 'h_i = 'e_i.
+ +
+Lemma omegasfK : involutive omegasf.
+ +
+Lemma omegasf_symp i : 0 < i <= n -> omegasf 'p_i = (-1) ^+ i.+1 *: 'p_i.
+ +
+Lemma omegasf_homog d :
+  {homo omegasf: p / sympol p \in [in R[n], d.-homog]}.
+ +
+Lemma omegasf_homogE d :
+  {mono omegasf: p / sympol p \in [in R[n], d.-homog]}.
+ +
+Notation S := ([tuple sympol 'h_i.+1 | i < n] : n.-tuple {mpoly R[n]}).
+Notation E := ([tuple sympol 'e_i.+1 | i < n] : n.-tuple {mpoly R[n]}).
+ +
+Lemma msym_fundamental_symh_un (t1 t2 : {mpoly R[n]}) :
+  t1 \mPo S = t2 \mPo S -> t1 = t2.
+ +
+Lemma omegasf_sympolyf_eval q :
+  sympol (omegasf (sympolyf_eval q)) = q \mPo [tuple sympol 'h_i.+1 | i < n].
+ +
+Lemma omegasf_compsymh p q :
+  (sympol p == q \mPo [tuple sympol 'h_i.+1 | i < n]) =
+  (sympol (omegasf p) == q \mPo [tuple sympol 'e_i.+1 | i < n]).
+ +
+Lemma sym_fundamental_symh_homog (p : {mpoly R[n]}) (d : nat) :
+  p \is symmetric -> p \is d.-homog ->
+  { t | t \mPo S = p /\ t \is d.-homog for mnmwgt }.
+ +
+Lemma sym_fundamental_symh (p : {mpoly R[n]}) :
+  p \is symmetric -> { t | t \mPo S = p }.
+ +
+Variable (d : nat).
+Implicit Type (la : 'P_d).
+ +
+Lemma omegasf_prodsyme la : head 0%N la <= n -> omegasf 'e[la] = 'h[la].
+ +
+Lemma omegasf_prodsymh la : head 0%N la <= n -> omegasf 'h[la] = 'e[la].
+ +
+Lemma exp1sumnDsize la :
+  (-1) ^+ (d - size la) = \prod_(i <- la) (-1) ^+ i.+1 :> R.
+ +
+Lemma omegasf_prodsymp la :
+  head 0%N la <= n -> omegasf 'p[la] = (-1) ^+ (d - size la) *: 'p[la].
+ +
+Lemma omegasf_syms la : d <= n -> omegasf 's[la] = 's[conj_intpartn la].
+ +
+End Omega.
+ +
+#[local] Close Scope Combi_scope.
+ +
+
+ +
+

Change of the number of variables

+ +
+
+Section ChangeNVar.
+ +
+Variable R : comNzRingType.
+Variable m0 n0 : nat.
+#[local] Notation m := m0.+1.
+#[local] Notation n := n0.+1.
+#[local] Notation SF p := (sym_fundamental (sympolP p)).
+#[local] Notation E := [tuple sympol 'e_(i.+1) : {mpoly R[n]} | i < m].
+ +
+Lemma cnvarsym_subproof (p : {sympoly R[m]}) : sympolyf p \mPo E \is symmetric.
+ Definition cnvarsym p : {sympoly R[n]} := SymPoly (cnvarsym_subproof p).
+ +
+Fact cnvarsym_is_linear : linear cnvarsym.
+ +
+Fact cnvarsym_is_monoid_morphism : monoid_morphism cnvarsym.
+ +
+Lemma cnvar_leq_symeE i : i <= m -> cnvarsym 'e_i = 'e_i.
+ +
+Lemma cnvar_syme i : (i <= m) || (n <= m) -> cnvarsym 'e_i = 'e_i.
+ +
+Lemma cnvar_symh i : (i <= m) || (n <= m) -> cnvarsym 'h_i = 'h_i.
+ +
+Lemma cnvar_symp i : (i < m) || (n <= m) -> cnvarsym 'p_i.+1 = 'p_i.+1.
+ +
+Section ProdGen.
+ +
+Variable Gen : forall nvar d : nat, {sympoly R[nvar]}.
+Hypothesis Hcnvargen :
+  forall d : nat, (d < m) || (n <= m) -> cnvarsym (Gen m d.+1) = (Gen n d.+1).
+ +
+Lemma cnvar_prodgen d (la : 'P_d) :
+  (d <= m) || (n <= m) ->
+  cnvarsym (prod_gen (Gen m) la) = prod_gen (Gen n) la.
+ +
+End ProdGen.
+ +
+Variable d : nat.
+ +
+Hypothesis Hd : (d <= m) || (n <= m).
+ +
+Lemma cnvar_prodsyme (la : 'P_d) : cnvarsym 'e[la] = 'e[la].
+ +
+Lemma cnvar_prodsymh (la : 'P_d) : cnvarsym 'h[la] = 'h[la].
+ +
+Lemma cnvar_prodsymp (la : 'P_d) : cnvarsym 'p[la] = 'p[la].
+ +
+Lemma cnvar_syms (la : 'P_d) : cnvarsym 's[la] = 's[la].
+ +
+Lemma cnvar_symm (la : 'P_d) : cnvarsym 'm[la] = 'm[la].
+ +
+End ChangeNVar.
+ +
+Section CategoricalSystems.
+ +
+Variable R : comNzRingType.
+ +
+Lemma cnvarsym_id n : @cnvarsym R n n =1 id.
+ +
+Lemma cnvarsym_leq_trans m n p :
+  (m <= n) -> (n <= p) ->
+  @cnvarsym R n p \o @cnvarsym R m n =1 @cnvarsym R m p.
+ +
+Lemma cnvarsym_geq_trans m n p :
+  (m >= n) -> (n >= p) ->
+  @cnvarsym R n p \o @cnvarsym R m n =1 @cnvarsym R m p.
+ +
+End CategoricalSystems.
+ +
+
+
+ + + +
+ + + \ No newline at end of file diff --git a/combi/1.1.0/Combi.SSRcomplements.ordcast.html b/combi/1.1.0/Combi.SSRcomplements.ordcast.html new file mode 100644 index 00000000..62c3a6bd --- /dev/null +++ b/combi/1.1.0/Combi.SSRcomplements.ordcast.html @@ -0,0 +1,96 @@ + + + + + +Combi.SSRcomplements.ordcast: Cast between ordinals + + + + +
+ + + +
+ +

Library Combi.SSRcomplements.ordcast: Cast between ordinals

+ +
+
+ +
+ +
+
+
+ +
+

Some complement on casts between ordinals

+ + +
+ +Aside a few basic lemmas, the only new definition is: +
    +
  • cast_set (H : n = m) S == cast S : {set 'I_n} to S : {set 'I_m}. + +
  • +
+ +
+
+From Corelib Require Import Setoid.
+From mathcomp Require Import ssreflect ssrbool ssrfun ssrnat eqtype finfun fintype choice seq tuple.
+From mathcomp Require Import finset tuple bigop.
+ +
+Require Import tools.
+ +
+Set Implicit Arguments.
+ +
+Lemma enum_cast_ord m n (H : n = m):
+  enum 'I_m = [seq cast_ord H i | i <- enum 'I_n].
+ +
+Section Casts.
+ +
+Lemma cast_map_cond (T: Type) n m (P : pred 'I_n) (F : 'I_n -> T) (H : m = n) :
+  [seq F i | i <- enum 'I_n & P i] =
+  [seq F (cast_ord H i) | i <- enum 'I_m & P (cast_ord H i) ].
+ +
+Lemma mem_cast m n (H : m = n) (i : 'I_m) (S : {set 'I_m}) :
+  (cast_ord H i) \in [set cast_ord H i | i in S] = (i \in S).
+ +
+Definition cast_set n m (H : n = m) : {set 'I_n} -> {set 'I_m} :=
+  [fun s : {set 'I_n} => (cast_ord H) @: s].
+ +
+Lemma cast_set_inj n m (H : n = m) : injective (cast_set H).
+ +
+Lemma cover_cast m n (P : {set {set 'I_n}}) (H : n = m) :
+  cover (imset (cast_set H) (mem P)) = (cast_set H) (cover P).
+ +
+End Casts.
+ +
+
+
+ + + +
+ + + \ No newline at end of file diff --git a/combi/1.1.0/Combi.SSRcomplements.permcomp.html b/combi/1.1.0/Combi.SSRcomplements.permcomp.html new file mode 100644 index 00000000..c327222b --- /dev/null +++ b/combi/1.1.0/Combi.SSRcomplements.permcomp.html @@ -0,0 +1,100 @@ + + + + + +Combi.SSRcomplements.permcomp: Complement on permutations + + + + +
+ + + +
+ +

Library Combi.SSRcomplements.permcomp: Complement on permutations

+ +
+
+ +
+ +
+
+
+ +
+

A few lemmas on permutation

+ + +
+
+From Corelib Require Import Setoid.
+From mathcomp Require Import ssreflect ssrfun ssrbool eqtype ssrnat seq choice fintype div.
+From mathcomp Require Import finset fingroup perm morphism action.
+ +
+Set Implicit Arguments.
+ +
+Import GroupScope.
+ +
+
+ +
+

Orbit and cycles

+ +
+
+Section PermComp.
+ +
+Variable T : finType.
+Implicit Type (s : {perm T}) (X : {set T}) (P : {set {set T}}).
+ +
+Lemma permKP s : reflect (involutive s) (s^-1 == s).
+ +
+End PermComp.
+ +
+Section SetAct.
+ +
+Variables (aT : finGroupType) (D : {set aT}) (rT : finType) (to : action D rT).
+ +
+
+ +
+TODO: complete setactU, setactI, setactD ... and submit to mathcomp +
+
+Lemma setact0 a : to^* set0 a = set0.
+Lemma setact1 x a : to^* [set x] a = [set to x a].
+Lemma setactI S T a : to^* (S :&: T) a = to^* S a :&: to^* T a.
+ Lemma setactU S T a : to^* (S :|: T) a = to^* S a :|: to^* T a.
+ Lemma setactU1 x T a : to^* (x |: T) a = to x a |: to^* T a.
+ +
+Lemma setactC S a : to^* (~: S) a = ~: to^* S a.
+ +
+End SetAct.
+
+
+ + + +
+ + + \ No newline at end of file diff --git a/combi/1.1.0/Combi.SSRcomplements.sorted.html b/combi/1.1.0/Combi.SSRcomplements.sorted.html new file mode 100644 index 00000000..6bf4c536 --- /dev/null +++ b/combi/1.1.0/Combi.SSRcomplements.sorted.html @@ -0,0 +1,178 @@ + + + + + +Combi.SSRcomplements.sorted: [path] and [sorted] complements + + + + +
+ + + +
+ +

Library Combi.SSRcomplements.sorted: [path] and [sorted] complements

+ +
+
+ +
+ +
+
+
+ +
+

Various Lemmas about path and sorted which are missing in MathComp

+ TODO: these probably should be contributed to path.v +
+
+From Corelib Require Import Setoid.
+From mathcomp Require Import ssreflect ssrbool ssrfun ssrnat eqtype fintype choice seq.
+From mathcomp Require Import path order.
+ +
+Set Implicit Arguments.
+ +
+Open Scope N.
+ +
+Module LeqGeqOrder.
+ +
+Definition geq_refl : reflexive geq :=
+  fun x => leqnn x.
+Definition geq_total : total geq :=
+  fun x y => leq_total y x.
+Definition geq_trans : transitive geq :=
+  fun x y z H1 H2 => leq_trans H2 H1.
+Definition anti_geq : antisymmetric geq :=
+  fun x y H => esym (anti_leq H).
+Definition ltn_irr : irreflexive ltn :=
+  fun x => ltnn x.
+Definition gtn_trans : transitive gtn :=
+  fun x y z H1 H2 => ltn_trans H2 H1.
+Definition gtn_irr : irreflexive gtn :=
+  fun x => ltnn x.
+ +
+#[export] Hint Resolve leq_total leq_trans anti_leq : core.
+#[export] Hint Resolve geq_refl geq_total geq_trans anti_geq : core.
+#[export] Hint Resolve ltn_trans ltn_irr gtn_trans gtn_irr : core.
+ +
+End LeqGeqOrder.
+ +
+Import LeqGeqOrder.
+ +
+Section Sorted.
+ +
+Variable T : eqType.
+Variable Z : T.
+Variable R : rel T.
+ +
+Implicit Type l : T.
+Implicit Type r : seq T.
+ +
+#[local] Notation sorted r := (sorted R r).
+#[local] Notation "x <=R y" := (R x y) (at level 70, y at next level).
+ +
+Lemma sorted_consK l r : sorted (cons l r) -> sorted r.
+ +
+Lemma sorted_rconsK l r : sorted (rcons r l) -> sorted r.
+ +
+Lemma sorted_rcons l r : sorted r -> (last l r <=R l) -> sorted (rcons r l).
+ +
+Hypothesis Rtrans : transitive R.
+ +
+Lemma incr_equiv r :
+  (forall (i j : nat), i < j < (size r) -> nth Z r i <=R nth Z r j)
+  <->
+  (forall (i : nat), i.+1 < (size r) -> nth Z r i <=R nth Z r i.+1).
+ +
+Lemma sorted_strictP r :
+  reflect
+    (forall (i j : nat), i < j < (size r) -> (nth Z r i <=R nth Z r j))
+    (sorted r).
+ +
+Hypothesis Rrefl : reflexive R.
+ +
+Lemma non_decr_equiv r :
+  (forall (i j : nat), i <= j < (size r) -> nth Z r i <=R nth Z r j)
+  <->
+  (forall (i : nat), i.+1 < (size r) -> nth Z r i <=R nth Z r i.+1).
+ +
+Lemma sorted2P r :
+  reflect
+    (forall (i j : nat), i <= j < (size r) -> (nth Z r i <=R nth Z r j))
+    (sorted r).
+ +
+Lemma sorted_cons l r : sorted (cons l r) -> (l <=R head l r) /\ sorted r.
+ +
+Lemma sorted_last l r : sorted (rcons r l) -> (last l r <=R l).
+ +
+Lemma head_leq_last_sorted l r : sorted (l :: r) -> (l <=R last l r).
+ +
+Hypothesis Hanti : antisymmetric R.
+ +
+Lemma sorted_lt_by_pos r p q :
+  sorted r -> p < size r -> q < size r ->
+   (nth Z r p != nth Z r q) && (nth Z r p <=R nth Z r q) -> p < q.
+ +
+End Sorted.
+ +
+Require Import tools.
+ +
+Lemma enum_ord_sorted_ltn N :
+  sorted (fun i j : 'I_N => i < j) (enum 'I_N).
+ +
+Lemma enum_ord_sorted N :
+  sorted (fun i j : 'I_N => i <= j) (enum 'I_N).
+ +
+Lemma sorted_ltn_ind s :
+  sorted ltn s -> sumn (iota 0 (size s)) <= sumn s /\ last 0 s >= (size s).-1.
+ +
+Lemma sorted_sumn_iotaE s :
+  sorted ltn s -> sumn s = sumn (iota 0 (size s)) -> s = iota 0 (size s).
+
+
+ + + +
+ + + \ No newline at end of file diff --git a/combi/1.1.0/Combi.SSRcomplements.tools.html b/combi/1.1.0/Combi.SSRcomplements.tools.html new file mode 100644 index 00000000..11dd2a4d --- /dev/null +++ b/combi/1.1.0/Combi.SSRcomplements.tools.html @@ -0,0 +1,357 @@ + + + + + +Combi.SSRcomplements.tools: Missing SSReflect sequence and set lemmas + + + + +
+ + + +
+ +

Library Combi.SSRcomplements.tools: Missing SSReflect sequence and set lemmas

+ +
+
+ +
+ +
+
+
+ +
+

A bunch of lemmas about seqs and sets which are missing in SSReflect

+ + +
+ +No new notions are defined here. + +
+ +TODO: these probably should be contributed to SSReflect itself + +
+
+From Corelib Require Import Setoid.
+From mathcomp Require Import ssreflect ssrbool ssrfun ssrnat eqtype fintype choice.
+From mathcomp Require Import seq finset bigop path binomial order.
+ +
+Set Implicit Arguments.
+ +
+ +
+#[export] Hint Resolve nth_nil addn0 : core.
+ +
+Lemma leq_addE m1 m2 n1 n2 :
+  m1 <= m2 -> n1 <= n2 -> m1 + n1 = m2 + n2 -> m1 = m2 /\ n1 = n2.
+ +
+
+ +
+

rcons and cons related lemmas

+ +
+
+Section SeqLemmas.
+ +
+Variable (T : eqType).
+Implicit Type s w : seq T.
+Implicit Type a b : T.
+ +
+Lemma drop_nilE s m :
+  (drop m s == [::]) = (size s <= m).
+ +
+Lemma cons_head_behead x s : (s != [::]) -> head x s :: behead s = s.
+ +
+Lemma belast_behead_rcons x l s :
+  belast (head x (rcons s l)) (behead (rcons s l)) = s.
+ +
+Lemma last_behead_rcons x l s :
+  last (head x (rcons s l)) (behead (rcons s l)) = l.
+ +
+Lemma set_head_default b a s : s != [::] -> head a s = head b s.
+ +
+Lemma rcons_set_nth a s l : set_nth a s (size s) l = rcons s l.
+ +
+Lemma set_nth_rcons x0 s x n y :
+  set_nth x0 (rcons s x) n y =
+  if n < size s then rcons (set_nth x0 s n y) x
+  else if n == size s then rcons s y
+       else (rcons s x) ++ ncons (n - size s).-1 x0 [:: y].
+ +
+Lemma rconsK a b u v : rcons u a = rcons v b -> u = v.
+ +
+Lemma rcons_nilF s l : ((rcons s l) == [::]) = false.
+ +
+Lemma cons_in_map_cons a b s w (l : seq (seq T)) :
+  a :: s \in [seq b :: s1 | s1 <- l] -> a == b.
+ +
+Lemma count_rcons w P l :
+  count P (rcons w l) = count P w + P l.
+ +
+
+ +
+

set_nth related lemmas

+ +
+
+Lemma set_nth_non_nil d s n y : set_nth d s n y != [::].
+ +
+Lemma nth_set_nth_expand a b l i c j :
+  (size l <= j < i) -> nth a (set_nth b l i c) j = b.
+ +
+Lemma nth_set_nth_any a b l i c j :
+  nth a (set_nth b l i c) j =
+  if j == i then c else
+    if j < size l then nth a l j else
+      if j <= i then b else a.
+ +
+Lemma eq_from_nth_notin x0 s1 s2 :
+  x0 \notin s1 -> x0 \notin s2 ->
+  (forall i : nat, nth x0 s1 i = nth x0 s2 i) -> s1 = s2.
+ +
+End SeqLemmas.
+ +
+
+ +
+

minn related lemmas

+ +
+
+Lemma minSS i j : minn i.+1 j.+1 = (minn i j).+1.
+ +
+
+ +
+

sumn related lemmas

+ +
+
+Lemma leq_sumn_in (sh : seq nat) i : i \in sh -> i <= sumn sh.
+ +
+Lemma sumn_map_condE (T : Type) (s : seq T) (f : T -> nat) (P : pred T) :
+  sumn [seq f i | i <- s & P i] = \sum_(i <- s | P i) f i.
+ +
+Lemma sumn_mapE (T : Type) (s : seq T) (f : T -> nat) :
+  sumn [seq f i | i <- s] = \sum_(i <- s) f i.
+ +
+Lemma sum_minn s b :
+  \sum_(l <- s) minn l b = sumn s - \sum_(l <- s) (l - b).
+ +
+Lemma sum_take r s F :
+  F 0 = 0 -> \sum_(l <- take r s) F l = \sum_(0 <= i < r) F (nth 0 s i).
+ +
+Lemma sumn_take r s : sumn (take r s) = \sum_(0 <= i < r) nth 0 s i.
+ Lemma sumn_drop r s : sumn (drop r s) = \sum_(r <= i < size s) nth 0 s i.
+ +
+Lemma sumn_nth_le l n :
+  size l <= n -> sumn l = \sum_(0 <= i < n) nth 0 l i.
+ +
+
+ +
+

iota related lemmas

+ +
+
+Lemma binomial_sumn_iota n : 'C(n, 2) = sumn (iota 0 n).
+ +
+Lemma sumn_pred1_iota a b x :
+  sumn [seq ((i == x) : nat) | i <- iota a b] = (a <= x < a + b).
+ +
+Lemma count_mem_iota a b i :
+  count_mem i (iota a b) = (a <= i < a + b).
+ +
+Lemma iota_ltn a b : b <= a -> [seq i <- iota 0 a | i < b] = iota 0 b.
+ +
+Lemma iota_geq a b : [seq i <- iota 0 a | b <= i] = iota b (a - b).
+ +
+Section FinSet.
+ +
+Variable T : finType.
+ +
+Lemma setU1E (x : T) (S : {set T}) : (x \in S) = (x |: S == S).
+ +
+End FinSet.
+ +
+Lemma uniq_sum_count_mem (T : eqType) (P : pred T) l s :
+  uniq s ->
+  \sum_(i <- s | P i) (count_mem i) l = count (predI (mem s) P) l.
+ +
+Lemma sumn_sort l S : sumn (sort S l) = sumn l.
+ +
+Lemma map_filter_comp (T1 T2: Type) (l : seq T1) (PP : pred T2) (F : T1 -> T2) :
+  [seq F i | i <- l & PP (F i)] = [seq i | i <- map F l & PP i ].
+ +
+Lemma set1_disjoint (T : finType) (i j : T) :
+  [set i] != [set j] -> [disjoint [set i] & [set j]].
+ +
+Lemma subset_imsetK (T1 T2 : finType) (f : T1 -> T2) (s t : {set T1}):
+  injective f -> f @: s \subset f @: t -> s \subset t.
+ +
+Section SSRComplFinset.
+ +
+Variables aT rT : finType.
+Variables (f : aT -> rT).
+ +
+Lemma imsetD (A B : {set aT}) :
+  {in A :|: B &, injective f} -> f @: (B :\: A) = (f @: B) :\: (f @: A).
+ +
+End SSRComplFinset.
+ +
+Section ImsetInj.
+ +
+Variables (T T1 T2 : finType) (f : T1 -> T2).
+ +
+Lemma preimset_trivIset (P : {set {set T2}}) :
+  trivIset P -> trivIset ((fun s : {set T2} => f @^-1: s) @: P).
+ +
+Hypothesis (f_inj : injective f).
+ +
+Lemma imset_inj : injective (fun s : {set T1} => imset f (mem s)).
+ +
+Lemma imset_trivIset (P : {set {set T1}}) :
+  trivIset P -> trivIset ((fun s : {set T1} => f @: s) @: P).
+ +
+Lemma disjoint_imset (A B : {set T1}) :
+  [disjoint A & B] -> [disjoint [set f x | x in A] & [set f x | x in B]].
+ +
+End ImsetInj.
+ +
+Lemma uniq_next (T : eqType) (p : seq T) : uniq p -> injective (next p).
+ +
+Lemma mem_takeP (T : eqType) x0 x k (s : seq T) :
+  reflect (exists2 i, i < minn k (size s) & x = nth x0 s i) (x \in take k s).
+ +
+Lemma mem_take_enumI n (i : 'I_n) k : i \in take k (enum 'I_n) = (i < k).
+ +
+Lemma take_enumI n k : take k (enum 'I_n) = filter ((gtn k) \o val) (enum 'I_n).
+ +
+Lemma mem_drop_enumI n (i : 'I_n) k : i \in drop k (enum 'I_n) = (i >= k).
+ +
+Lemma drop_enumI n k : drop k (enum 'I_n) = filter ((leq k) \o val) (enum 'I_n).
+ +
+Lemma enum0 : enum 'I_0 = [::].
+ +
+Section AbelianBigOp.
+ +
+Import Monoid.Theory.
+ +
+Variable R : Type.
+Variable idx : R.
+#[local] Notation "1" := idx.
+Variable op : Monoid.com_law 1.
+#[local] Notation "'*%M'" := op (at level 0).
+#[local] Notation "x * y" := (op x y).
+ +
+Lemma big_seq_sub (T : countType) (s : seq T) F :
+  \big[op/idx]_(x : seq_sub s) F (ssval x) = \big[op/idx]_(x <- undup s) F x.
+ +
+End AbelianBigOp.
+Arguments partition_big [R idx op I s J P] p Q [F].
+ +
+Section SetPartition.
+ +
+Variable T : finType.
+Implicit Types (X : {set T}) (P : {set {set T}}).
+ +
+Lemma triv_part P X : X \in P -> partition P X -> P = [set X].
+ +
+End SetPartition.
+ +
+Notation "#{ x }" := #|(x : {set _})|
+                      (at level 0, x at level 10, format "#{ x }").
+
+
+ + + +
+ + + \ No newline at end of file diff --git a/combi/1.1.0/Combi.SymGroup.Frobenius_char.html b/combi/1.1.0/Combi.SymGroup.Frobenius_char.html new file mode 100644 index 00000000..e5115711 --- /dev/null +++ b/combi/1.1.0/Combi.SymGroup.Frobenius_char.html @@ -0,0 +1,499 @@ + + + + + +Combi.SymGroup.Frobenius_char: Frobenius characteristic + + + + +
+ + + +
+ +

Library Combi.SymGroup.Frobenius_char: Frobenius characteristic

+ +
+
+ +
+ +
+
+
+ +
+

Frobenius / Schur character theory for the symmetric groups.

+ + +
+ +We develop the theory of Frobenius characteristic associated to a class +function of 'SG_n, it is an isometry from class function to symmetric +functions, mapping +
    +
  • 1%g to 'HH[rowpartn n] (this is Fchar_triv); + +
  • +
  • 1z_l to 'hpl (this is Fchar_ncfuniCT); + +
  • +
  • induction product to product Fchar_ind_morph; + +
  • +
  • omega involution to multiplication by the sign character omega_Fchar. + +
  • +
+ +
+ +We define the following notions and notations: + +
+ +
    +
  • Fchar f == the Frobenius characteristic of the class function f. + the number of variable is inferred from the context. + +
  • +
  • Fchar_inv f == the inverse Frobenius characteristic of the + homogeneous symmetric polynomial f. + +
    + + +
  • +
  • 'M[la] == the Young character for 'SG_n associated to the + partition la of n. If la = (l1, ..., lk) it is the + character induced from the trivial representations of the + group 'SG_l1 * ... * SG_lk. + +
  • +
  • 'irrSG[la] == the irreducible character for 'SG_n associated to the + partition la of n. + +
  • +
+ +
+ +Here is a list of fundamental results: + +
+ +
    +
  • Fchar_isometry : The Frobenius characteristic is an isometry. + +
  • +
  • Young_rule : The Young's rule for character of 'SG_n. + +
  • +
  • irrSGP : The 'irrSG[la] | la : 'P_n forms a complete set of + irreducible characters for 'SG_n. + +
  • +
  • Frobenius_char : Frobenius character formula for 'SG_n. + +
  • +
  • Murnaghan_Nakayama_char : Murnaghan-Nakayama character formula for 'SG_n. + +
  • +
  • dim_cfReprSG : the dimension of irreducible representation of 'SG_n. + +
  • +
  • LR_rule_irrSG : Littlewood-Richardson rule for characters of 'SG_n. + + +
  • +
+
+
+From HB Require Import structures.
+From mathcomp Require Import all_boot order.
+From mathcomp Require Import fingroup perm morphism gproduct.
+From mathcomp Require Import rat ssralg ssrint ssrnum algC vector archimedean.
+From mathcomp Require Import mxrepresentation classfun character.
+From mathcomp Require Import sesquilinear.
+From mathcomp Require Import mpoly.
+ +
+Require Import sorted ordtype tools partition antisym sympoly homogsym Cauchy
+        Schur_altdef stdtab therule.
+Require Import permcomp cycletype towerSn permcent reprSn unitriginv.
+Require Import MurnaghanNakayama.
+ +
+Require ordtype.
+ +
+Set Implicit Arguments.
+ +
+Import LeqGeqOrder.
+Import GroupScope GRing.Theory Num.Theory.
+Open Scope ring_scope.
+ +
+Reserved Notation "''irrSG[' l ']'"
+         (at level 0, l at level 2, format "''irrSG[' l ]").
+Reserved Notation "''M[' l ']'"
+         (at level 0, l at level 2, format "''M[' l ]").
+ +
+#[local] Lemma pchar0_rat : [pchar rat] =i pred0.
+ #[local] Lemma pchar0_algC : [pchar algC] =i pred0.
+ #[local] Hint Resolve pchar0_algC pchar0_rat : core.
+ +
+
+ +
+TODO: contribute to mathcomp +
+
+Section CharDotProduct.
+ +
+Variable (gT : finGroupType) (G : {group gT}).
+ +
+#[local] Notation cfdot := (cfdot (B := G)).
+ +
+Fact cfdot_is_bilinear :
+  bilinear_for *%R (Num.conj \; *%R) cfdot.
+ +
+Fact cfdot_is_hermitian (phi psi : 'CF(G)) :
+  '[phi, psi] = (-1) ^+ false * '[psi, phi]^*.
+ +
+Fact cfdot_is_dot (phi : 'CF(G)) : phi != 0 -> 0 < '[phi].
+ +
+End CharDotProduct.
+ +
+
+ +
+

Definition and basic properties

+ +
+
+Section NVar.
+ +
+Variable nvar0 : nat.
+#[local] Notation nvar := nvar0.+1.
+ +
+Section Defs.
+ +
+Variable n : nat.
+#[local] Notation HS := {homsym algC[nvar, n]}.
+ +
+Definition Fchar (f : 'CF('SG_n)) : HS :=
+  locked (\sum_(la : 'P_n) (f (permCT la) / 'z_la) *: 'hp[la]).
+ +
+Definition Fchar_inv (p : HS) : 'CF('SG_n) :=
+  locked (\sum_(la : 'P_n) (coord 'hp (enum_rank la) p) *: '1z_[la]).
+ +
+Lemma FcharE (f : 'CF('SG_n)) :
+  Fchar f = \sum_(la : 'P_n) (f (permCT la) / 'z_la) *: 'hp[la].
+ +
+Lemma Fchar_invE (p : HS) :
+  Fchar_inv p = \sum_(la : 'P_n) (coord 'hp (enum_rank la) p) *: '1z_[la].
+ +
+Lemma Fchar_is_linear : linear Fchar.
+ +
+Lemma Fchar_ncfuniCT (l : 'P_n) : Fchar '1z_[l] = 'hp[l].
+ +
+Lemma Fchar_inv_is_linear : linear Fchar_inv.
+ +
+Hypothesis Hn : (n <= nvar)%N.
+ +
+Lemma FcharK : cancel Fchar Fchar_inv.
+ +
+Lemma Fchar_invK : cancel Fchar_inv Fchar.
+ +
+Lemma Fchar_triv : Fchar 1 = 'hh[rowpartn n].
+ +
+Lemma Fchar_inv_homsymp (l : 'P_n) : Fchar_inv 'hp[l] = '1z_[l].
+ +
+
+ +
+

Frobenius Characteristic and omega involution

+ +
+ + +
+

The Frobenius Characteristic is an isometry

+ +
+
+Corollary Fchar_isometry : isometry homsymdot cfdot Fchar.
+ +
+Theorem Fchar_inv_isometry p q : '[Fchar_inv p, Fchar_inv q] = '[p | q].
+ +
+End Defs.
+ +
+
+ +
+

The Frobenius Characteristic is a graded ring morphism

+ +
+ +This cannot be written as a SSReflect {morph Fchar : f g / ... >-> ... } +because the dependency of Fchar on the degree n. The three Fchar below are +actually three different functions. + +
+ +Note: this can be solved using a dependant record {n; 'CF('S_n)} with a +dependent equality but I'm not sure this is really needed. + +
+
+Theorem Fchar_ind_morph m n (f : 'CF('SG_m)) (g : 'CF('SG_n)) :
+  Fchar ('Ind['SG_(m + n)] (f \o^ g)) = Fchar f *h Fchar g.
+ +
+
+ +
+

Combinatorics of characters of the symmetric groups

+ +
+ +

Young characters and Young's Rule

+ +
+
+Section Character.
+ +
+Import LeqGeqOrder.
+ +
+Variable n : nat.
+Hypothesis Hn : (n <= nvar)%N.
+#[local] Notation HS := {homsym algC[nvar, n]}.
+ +
+Lemma homsymh_character (la : 'P_n) : Fchar_inv 'hh[la] \is a character.
+ +
+Lemma homsyme_character (la : 'P_n) : Fchar_inv 'he[la] \is a character.
+ +
+End Character.
+ +
+End NVar.
+#[local] Hint Resolve leqSpred : core.
+ +
+Arguments Fchar nvar0 [n] f.
+Arguments Fchar_inv nvar0 [n] p.
+ +
+Lemma FcharNvar (nvar0 nvar1 n : nat) (f : 'CF('SG_n)) :
+  (n <= nvar0.+1)%N || (nvar1 < nvar0.+1)%N ->
+  cnvarhomsym nvar1 (Fchar nvar0 f) = (Fchar nvar1 f).
+ +
+Section YoungIrrDef.
+ +
+Variable (n : nat).
+Implicit Type (la mu : 'P_n).
+ +
+Definition YoungSG la : 'CF('SG_n) := Fchar_inv (n.-1) 'hh[la].
+Definition irrSG la : 'CF('SG_n) := Fchar_inv (n.-1) 'hs[la].
+ +
+Notation "''M[' l ']'" := (YoungSG l).
+Notation "''irrSG[' l ']'" := (irrSG l).
+ +
+Lemma Fchar_irrSGE nvar0 la : Fchar nvar0 'irrSG[la] = 'hs[la].
+ +
+Lemma Young_char la : 'M[la] \is a character.
+ +
+Lemma Young_rule la : 'M[la] = \sum_(mu : 'P_n) 'K(mu, la) *: 'irrSG[mu].
+ +
+Lemma Young_rule_partdom la :
+  'M[la] =
+  'irrSG[la] + \sum_(mu | (la < mu :> 'PDom_n)%O) 'K(mu, la) *: 'irrSG[mu].
+ +
+
+ +
+

Irreducible character

+ +
+ + Substracting characters +
+
+Lemma rem_irr1 (xi phi : 'CF('SG_n)) :
+  xi \in irr 'SG_n -> phi \is a character -> '[phi, xi] != 0 ->
+     phi - xi \is a character.
+ +
+Lemma rem_irr (xi phi : 'CF('SG_n)) :
+  xi \in irr 'SG_n -> phi \is a character ->
+     phi - '[phi, xi] *: xi \is a character.
+ +
+Lemma irrSG_orthonormal la mu :
+  '['irrSG[la], 'irrSG[mu]] = (la == mu)%:R.
+ +
+Theorem irrSG_irr la : 'irrSG[la] \in irr 'SG_n.
+ +
+
+ +
+The 'irrSG[la] forms a complete set of irreducible character +
+
+Theorem irrSGP : perm_eq [seq 'irrSG[la] | la : 'P_n] (irr 'SG_n).
+ +
+
+ +
+

Frobenius character formula for the symmetric group 'SG_n

+ +
+ + The value of the irreducible character 'irrSG[la] using scalar product of + symmetric function +
+
+Theorem Frobenius_char_homsymdot la (sigma : 'S_n) :
+  'irrSG[la] sigma = '[ 'hs[la] | 'hp[cycle_typeSn sigma] ] _(n.-1, n).
+ +
+Theorem Frobenius_char_coord la (sigma : 'S_n) :
+  'irrSG[la] sigma =
+  coord 'hs (enum_rank la) ('hp[cycle_typeSn sigma] : {homsym algC[n.-1.+1, n]}).
+ +
+End YoungIrrDef.
+Notation "''M[' l ']'" := (YoungSG l).
+Notation "''irrSG[' l ']'" := (irrSG l).
+ +
+
+ +
+Frobenius character formula for 'SG_n +
+
+Theorem Frobenius_char n (la mu : 'P_n) :
+  'irrSG[la] (permCT mu) =
+  (Vanprod * \prod_(d <- mu) (symp_pol n algC d))@_(mpart la + rho n).
+ +
+
+ +
+The Murnaghan Nakayama rule for irreducible character 'irrSG[la] +
+
+Theorem Murnaghan_Nakayama_char n la (sigma : 'S_n) :
+  'irrSG[la] sigma = (MN_coeff la (cycle_typeSn sigma))%:~R.
+Corollary Murnaghan_NakayamaCT n (la mu : 'P_n) :
+  'irrSG[la] (permCT mu) = (MN_coeff la mu)%:~R.
+ +
+Corollary irrSG_char_int n (la mu : 'P_n) : 'irrSG[la] (permCT mu) \in Num.int.
+ +
+Example Wikipedia_Murnaghan_Nakayama :
+  let p521 := @IntPartN 8 [:: 5; 2; 1]%N is_true_true in
+  let p3311 := @IntPartN 8 [:: 3; 3; 1; 1]%N is_true_true in
+  'irrSG[p521] (permCT p3311) = - 2%:~R.
+ +
+
+ +
+The dimension of the irreducible character 'irrSG[la] is the number of + standard tableau of shape la +
+
+Theorem dim_irrSG n (la : 'P_n) : 'irrSG[la] 1%g = #|{: stdtabsh la}|%:R.
+ +
+Theorem dim_cfReprSG n (la : 'P_n) d (rG : mx_representation algC 'SG_n d) :
+  cfRepr rG = 'irrSG[la] -> d = #|{: stdtabsh la}|.
+ +
+
+ +
+

Littlewood-Richardson rule for irreducible characters

+ +
+
+Theorem LR_rule_irrSG c d (la : 'P_c) (mu : 'P_d) :
+  'Ind['SG_(c + d)] ('irrSG[la] \o^ 'irrSG[mu]) =
+  \sum_(nu : 'P_(c + d) | included la nu) 'irrSG[nu] *+ LRyam_coeff la mu nu.
+
+
+ + + +
+ + + \ No newline at end of file diff --git a/combi/1.1.0/Combi.SymGroup.cycles.html b/combi/1.1.0/Combi.SymGroup.cycles.html new file mode 100644 index 00000000..a96a9414 --- /dev/null +++ b/combi/1.1.0/Combi.SymGroup.cycles.html @@ -0,0 +1,383 @@ + + + + + +Combi.SymGroup.cycles: The Cycle Decomposition of a Permutation + + + + +
+ + + +
+ +

Library Combi.SymGroup.cycles: The Cycle Decomposition of a Permutation

+ +
+
+ +
+ +
+
+
+ +
+

The Cycle Decomposition of a Permutation

+ + +
+ +This files deals with decomposition of permutation into cycles. We define the +following notions, where s is a permutation over a finite type T: + +
+ +
    +
  • psupport s == the set of non fixed points for s + +
  • +
  • porbit_set s == the set of the supports of the cycles of s + +
  • +
  • s \is cyclic == s is a cyclic permutation + +
  • +
  • perm_dec E s == for E : {set {set T}} the set of the restriction of s + to the elements of E. + +
  • +
  • cycle_dec s == the decomposition of s in cyclic permutations. + +
  • +
  • disjoint_supports A == For A : {set {perm T}}, the element of A + have pairwise dijoint supports. + +
  • +
  • cycle_dec_spec s A == A is a decomposition of s into disjoint cycles. + +
  • +
+ +
+ +The main result is Theorem cycle_decP which asserts that cycle_dec s is +the unique decomposition of s into disjoint cycles: + +
+ + unique (cycle_dec_spec s) (cycle_dec s). + +
+ + +
+
+ +
+From Corelib Require Import Setoid.
+From mathcomp Require Import ssreflect ssrfun ssrbool eqtype ssrnat seq fintype.
+From mathcomp Require Import tuple path bigop finset div.
+From mathcomp Require Import fingroup perm action ssralg.
+From mathcomp Require finmodule.
+ +
+Require Import tools permcomp.
+ +
+Set Implicit Arguments.
+ +
+Import GroupScope.
+ +
+#[export] Hint Resolve porbit_id : core.
+ +
+Section PermCycles.
+Variable T : finType.
+Implicit Type (s : {perm T}).
+Implicit Type (X : {set T}).
+Implicit Type (A : {set {perm T}}).
+ +
+
+ +
+

Support of a permutation

+ +
+
+Definition psupport s := ~: 'Fix_('P)([set s]).
+ +
+Lemma in_psupport s x : (x \in psupport s) = (s x != x).
+ +
+Lemma psupport_expg s n : psupport (s ^+ n) \subset psupport s.
+ +
+Lemma psupport_perm_on S s : (perm_on S s) = (psupport s \subset S).
+ +
+Lemma psupport1 : psupport (perm_one T) = set0.
+ +
+Lemma psupport_eq0 s : (s == 1) = (psupport s == set0).
+ +
+Lemma psupport_stable s x : (x \in psupport s) = (s x \in psupport s).
+ +
+Lemma card_psupport_noteq1 s : #|psupport s| != 1%N.
+ +
+Lemma psupport_card_porbit s x : (#|porbit s x| != 1%N) = (x \in psupport s).
+ +
+
+ +
+Complement on porbit +
+
+Lemma porbit_fix s x : (s x == x) = (porbit s x == [set x]).
+ +
+Lemma porbit_mod s x i :
+  (s ^+ i)%g x = (s ^+ (i %% #|porbit s x|))%g x.
+ +
+Lemma eq_in_porbit s x i j :
+  ((s ^+ i)%g x == (s ^+ j)%g x) = (i == j %[mod #|porbit s x|]).
+ +
+
+ +
+

porbit_set of a permutation

+ +
+
+Definition porbit_set s : {set {set T}} := [set x in porbits s | #|x| != 1%N].
+ +
+Lemma in_porbit_setP s X x:
+  reflect (exists2 X, X \in porbit_set s & x \in X) (s x != x).
+ +
+Lemma partition_porbits s : partition (porbits s) setT.
+ +
+Lemma partition_psupport s : partition (porbit_set s) (psupport s).
+ +
+Lemma porbit_set_eq0 s : (s == perm_one T) = (porbit_set s == set0).
+ +
+Lemma porbit_set_astabs s X : X \in porbit_set s -> s \in 'N(X | 'P).
+ +
+
+ +
+

Cyclic permutations

+ +
+
+Definition cyclic := [qualify s | #|porbit_set s| == 1%N].
+ +
+Lemma cyclicP c :
+  reflect (exists2 x, x \in psupport c & psupport c = porbit c x)
+          (c \is cyclic).
+ +
+Lemma cycle_cyclic t :
+  t \is cyclic -> cycle t = [set t ^+ i | i : 'I_#|psupport t|].
+ +
+Lemma order_cyclic t : t \is cyclic -> #[t] = #|psupport t|.
+ +
+
+ +
+Complement about restr_perm +
+
+Lemma psupport_restr_perm_incl X s :
+  psupport (restr_perm X s) \subset X.
+ +
+Lemma restr_perm_neq X s x :
+  restr_perm X s x != x -> restr_perm X s x = s x.
+ +
+Lemma psupport_restr_perm X s :
+  X \in porbit_set s -> psupport (restr_perm X s) = X.
+ +
+Lemma restr_perm_psupportE X s :
+  restr_perm (psupport (restr_perm X s)) s = restr_perm X s.
+ +
+Lemma porbit_restr_perm s x :
+  porbit (restr_perm (porbit s x) s) x = porbit s x.
+ +
+Lemma porbit_set_restr s X :
+  X \in porbit_set s -> porbit_set (restr_perm X s) = [set X].
+ +
+
+ +
+

Decomposition of a permutation by restriction to disjoint stable subsets

+ +
+
+Definition perm_dec (S : {set {set T}}) s : {set {perm T}} :=
+  [set restr_perm X s | X in S].
+Definition cycle_dec s : {set {perm T}} := perm_dec (porbit_set s) s.
+ +
+Lemma cyclic_dec s : {in (cycle_dec s), forall C, C \is cyclic}.
+ +
+Lemma psupport_cycle_dec s :
+  [set psupport C | C in cycle_dec s] = porbit_set s.
+ +
+
+ +
+

Disjoint psupport and commutation

+ +
+
+Definition disjoint_psupports A :=
+  trivIset [set psupport C| C in A] /\ {in A &, injective psupport}.
+ +
+Lemma disjoint_psupport_subset (S1 S2 : {set {perm T}}) :
+  S1 \subset S2 -> disjoint_psupports S2 -> disjoint_psupports S1.
+ +
+Lemma disjoint_perm_dec S s :
+  trivIset S -> disjoint_psupports (perm_dec S s).
+ +
+Lemma disjoint_cycle_dec s :
+  disjoint_psupports (cycle_dec s).
+ +
+Lemma psupport_disjointC s t :
+  [disjoint psupport s & psupport t] -> commute s t.
+ +
+Lemma abelian_disjoint_psupports A : disjoint_psupports A -> abelian <<A>>.
+ +
+Lemma abelian_perm_dec S s : trivIset S -> abelian <<perm_dec S s>>.
+ +
+Lemma abelian_cycle_dec s : abelian <<cycle_dec s>>.
+ +
+Lemma restr_perm_inj s :
+  {in porbit_set s &, injective ((restr_perm (T:=T))^~ s)}.
+ +
+Lemma out_perm_prod A x :
+  {in A, forall C, x \notin psupport C} -> (\prod_(C in A) C) x = x.
+ +
+Import finmodule.FiniteModule morphism.
+ +
+Lemma prod_of_disjoint A C x:
+  disjoint_psupports A -> C \in A ->
+  x \in psupport C -> (\prod_(C0 in A) C0) x = C x.
+ +
+Lemma expg_prod_of_disjoint A C x i:
+  disjoint_psupports A -> C \in A ->
+  x \in psupport C -> ((\prod_(C0 in A) C0) ^+ i) x = (C ^+ i) x.
+ +
+Lemma psupport_of_disjoint A :
+  disjoint_psupports A ->
+  psupport (\prod_(C0 in A) C0) = \bigcup_(C0 in A) psupport C0.
+ +
+Lemma porbit_set_of_disjoint A :
+  disjoint_psupports A ->
+  porbit_set (\prod_(C0 in A) C0) = \bigcup_(C0 in A) porbit_set C0.
+ +
+Lemma perm_decE S s :
+  trivIset S -> psupport s \subset cover S ->
+  s \in 'C(S | ('P)^* ) ->
+  \prod_(C in perm_dec S s) C = s.
+ +
+Lemma cycle_decE s : \prod_(C in cycle_dec s) C = s.
+ +
+Lemma disjoint_psupports_of_decomp A B :
+  disjoint_psupports A -> disjoint_psupports B ->
+    \prod_(C in A) C = \prod_(C in B) C ->
+    {in A & B, forall c1 c2, psupport c1 = psupport c2 -> c1 = c2}.
+ +
+Lemma disjoint_psupports_cycles A :
+  {in A, forall C, C \is cyclic} ->
+  disjoint_psupports A ->
+  {in A, forall C, psupport C \in porbits (\prod_(C in A) C)}.
+ +
+Lemma disjoint_psupports_porbits A :
+  {in A, forall C, C \is cyclic} ->
+  disjoint_psupports A ->
+  {in porbit_set (\prod_(C in A) C),
+    forall X, exists2 C, C \in A & psupport C = X}.
+ +
+
+ +
+

Cycle decomposition of a permutation

+ +
+
+Variant cycle_dec_spec s A : Prop :=
+  CycleDecSpec of
+    {in A, forall C, C \is cyclic} &
+    disjoint_psupports A &
+    \prod_(C in A) C = s : cycle_dec_spec s A.
+ +
+Theorem cycle_decP s : unique (cycle_dec_spec s) (cycle_dec s).
+ +
+End PermCycles.
+ +
+Arguments cyclic {T}.
+
+
+ + + +
+ + + \ No newline at end of file diff --git a/combi/1.1.0/Combi.SymGroup.cycletype.html b/combi/1.1.0/Combi.SymGroup.cycletype.html new file mode 100644 index 00000000..4d18bfee --- /dev/null +++ b/combi/1.1.0/Combi.SymGroup.cycletype.html @@ -0,0 +1,637 @@ + + + + + +Combi.SymGroup.cycletype: The Cycle Type of a Permutation + + + + +
+ + + +
+ +

Library Combi.SymGroup.cycletype: The Cycle Type of a Permutation

+ +
+
+ +
+ +
+
+
+ +
+

Cycle type and conjugacy classes in the symmetric groups

+ + +
+ +This files deals with cycle type of permutations. We define the following +notions, where s is a permutation over a finite type T: + +
+ +
    +
  • canporbit s x == a chosen canonical element in the s-cycle of x + +
  • +
  • indporbit s x == the position of x in its cycle wrt canporbit s x + +
  • +
+ +
+ +Cycle maps: + +
+ +
    +
  • porbits_map s t == if s and t are respectively two permutations of + two fintype U and V, then porbits_map s t is a record for + maps {set U} -> {set V}, sending cycles of s of a given size + to cycles of t of the same size. + +
  • +
  • cymap P == if P : porbits_map s t then cymap P is a map U -> V + which commute with s and t: + +
    + + Lemma cymapP x : cymap (s x) = t (cymap x). + +
    + + moreover, cymap P sends canonical to canonical canporbit_cymap. + +
  • +
+ +
+ +Cycle Type: + +
+ +
    +
  • cycle_type s == the cycle typle of s as a 'P_#|T|. + +
  • +
  • conjbij s t pf == if pf : cycle_type s = cycle_type t, a bijection U -> V + which commute with s and t + +
  • +
+ +
+ +The main results here is Theorem conj_permP which says that +two permutations are conjugate if and only if they have the same cycle type: + +
+ + reflect (exists c, t = (s ^ c)%g) (cycle_type s == cycle_type t). + +
+ +We moreover show that there exists permutations in each partitions: + +
+ +
    +
  • perm_of_porbit C == a cyclic permutation with support C + +
  • +
  • perm_of_setpart P == a permutation whose cycle supports are the part of + the set partition P + +
  • +
  • permCT p == a permutation of cycle type p : P_#|T|. + +
  • +
  • classCT p == the set of permutations of cycle type p : P_#|T|. + +
  • +
+ +
+ +Central functions: + +
+ +
    +
  • '1_[p] == the class function associated to p : P_#|T|. + +
  • +
  • partnCT p == cast a p : 'P_#|'I_n| to a 'P_n. + +
  • +
  • cycle_typeSn s == the cycle type in 'P_n of a permutations in 'S_n. + +
  • +
+ +
+ + +
+
+From Corelib Require Import Setoid.
+From mathcomp Require Import ssreflect ssrfun ssrbool ssrnat eqtype choice fintype.
+From mathcomp Require Import seq tuple finfun finset path bigop.
+From mathcomp Require Import fingroup perm action.
+From mathcomp Require Import ssralg matrix mxalgebra algC classfun.
+ +
+Require Import partition tools sorted.
+Require Import permcomp fibered_set cycles.
+ +
+Set Implicit Arguments.
+ +
+Import LeqGeqOrder.
+ +
+#[local] Hint Resolve porbit_id : core.
+ +
+Reserved Notation "''1_[' G ]"
+         (at level 0, G at level 2, format "''1_[' G ]").
+ +
+Section CanPorbit.
+ +
+Variable T : finType.
+Variable s : {perm T}.
+ +
+Definition canporbit x := odflt x [pick y in porbit s x].
+ +
+Lemma canporbitP x : x \in porbit s (canporbit x).
+ +
+Lemma canporbitE x y :
+  (porbit s x == porbit s y) = (canporbit x == canporbit y).
+ +
+Lemma porbitPb x y :
+  y \in porbit s x -> exists i, y == (s ^+ i)%g x.
+ +
+Definition indporbit (x : T) : nat := ex_minn (porbitPb (canporbitP x)).
+ +
+Lemma indporbitP x : ((s ^+ (indporbit x)) (canporbit x))%g = x.
+ +
+End CanPorbit.
+ +
+
+ +
+

Cycle maps

+ +
+
+Section PorbitBijection.
+ +
+Variables (U V : finType).
+Variables (s : {perm U}) (t : {perm V}).
+ +
+Record porbits_map := PorbitMap {
+                          fs :> {set U} -> {set V};
+                          fs_stab : fs @: porbits s \subset porbits t;
+                          fs_homog : {in porbits s, forall C, #|fs C| = #|C| }
+                        }.
+ +
+Variable CM : porbits_map.
+ +
+Fact cymapcan_aux (x : U) : V.
+ +
+#[local] Definition cymapcan x :=
+  odflt (cymapcan_aux x) [pick y in CM (porbit s x)].
+Definition cymap x := ((t ^+ (indporbit s x)) (cymapcan x))%g.
+ +
+Lemma fs_porbitP x : CM (porbit s x) \in porbits t.
+ +
+Lemma porbit_cymapcan x : porbit t (cymapcan x) = CM (porbit s x).
+ +
+Lemma porbit_cymap x : porbit t (cymap x) = CM (porbit s x).
+ +
+Lemma cymapcan_perm i x : cymapcan ((s ^+ i)%g x) = cymapcan x.
+ +
+Lemma cymapP x : cymap (s x) = t (cymap x).
+ +
+Lemma canporbit_cymap x : canporbit t (cymap x) = cymapcan x.
+ +
+Lemma indporbit_cymap x : indporbit t (cymap x) = indporbit s x.
+ +
+End PorbitBijection.
+ +
+Lemma cymapE (U V : finType) (s : {perm U}) (t : {perm V})
+      (CM1 CM2 : porbits_map s t) :
+   {in porbits s, CM1 =1 CM2} -> cymap CM1 =1 cymap CM2.
+ +
+Lemma cymap_id (U : finType) (s : {perm U}) (CM : porbits_map s s) :
+  {in porbits s, CM =1 id} -> cymap CM =1 id.
+ +
+Lemma cymap_comp (U V W: finType)
+      (u : {perm U}) (v : {perm V}) (w : {perm W})
+      (CMuv : porbits_map u v) (CMvw : porbits_map v w) (CMuw : porbits_map u w) :
+  {in porbits u, CMvw \o CMuv =1 CMuw} ->
+  (cymap CMvw) \o (cymap CMuv) =1 (cymap CMuw).
+ +
+Lemma cymapK (U V : finType)
+      (u : {perm U}) (v : {perm V})
+      (CM : porbits_map u v) (CMi : porbits_map v u) :
+  {in porbits u, cancel CM CMi} -> cancel (cymap CM) (cymap CMi).
+ +
+
+ +
+

Cycle type and conjugacy classes

+ +
+
+Section CycleTypeConj.
+ +
+Variable T : finType.
+Implicit Types (a b s t : {perm T}) (n : nat).
+ +
+Fact cycle_type_subproof s : is_part_of_n #|T| (setpart_shape (porbits s)).
+Definition cycle_type s := IntPartN (cycle_type_subproof s).
+ +
+Lemma size_cycle_type s : size (cycle_type s) = #|porbits s|.
+ +
+Lemma odd_cycle_type s :
+  odd_perm s = odd (sumn (cycle_type s) - size (cycle_type s)).
+ +
+Lemma cycle_type1 : cycle_type 1%g = colpartn #|T|.
+ +
+Lemma cycle_typeV s : cycle_type s^-1 = cycle_type s.
+ +
+Lemma conjg_cycle s a : (<[s]> :^ a = <[s ^ a]>)%g.
+ +
+Lemma porbit_conjg s a x :
+  porbit ((s ^ a)%g) (a x) = [set a y | y in porbit s x].
+ +
+Lemma porbits_conjg s a :
+  porbits (s ^ a)%g = [set [set a y | y in (X : {set T})] | X in porbits s].
+ +
+Lemma cycle_type_conjg s a : cycle_type (s ^ a)%g = cycle_type s.
+ +
+Lemma card_pred_card_porbits s (P : pred nat) :
+  #|[set x in porbits s | P #|x| ]| = count P (cycle_type s).
+ +
+Lemma cycle_type_cyclic s :
+  (s \is cyclic) = (count (fun x => x != 1) (cycle_type s) == 1).
+ +
+Lemma cyclic_conjg s a : s \is cyclic -> (s ^ a)%g \is cyclic.
+ +
+Lemma psupport_conjg s a : psupport (s ^ a) = [set a x | x in psupport s].
+ +
+Lemma card_psupport_conjg s a : #|psupport s| = #|psupport (s ^ a)%g|.
+ +
+Lemma disjoint_psupports_conjg (A : {set {perm T}}) a :
+  disjoint_psupports A -> disjoint_psupports [set (s ^ a)%g | s in A].
+ +
+Import finmodule.FiniteModule morphism.
+ +
+Lemma cycle_dec_conjg s a:
+  [set (c ^ a)%g | c in cycle_dec s] = cycle_dec (s ^ a)%g.
+ +
+End CycleTypeConj.
+ +
+#[local] Definition slporbits (T : finType) (s : {perm T}) :=
+  FiberedSet set0 (porbits s) (fun x => #{x}).
+ +
+Lemma fiber_slporbitE (T : finType) (s : {perm T}) i :
+  #|fiber (slporbits s) i| = count_mem i (cycle_type s).
+ +
+Section DefsFiber.
+ +
+Variables (U V : finType).
+Variables (s : {perm U}) (t : {perm V}).
+Hypothesis eqct : cycle_type s = cycle_type t :> seq nat.
+ +
+Lemma cycle_type_eq :
+  forall i, #|fiber (slporbits s) i| = #|fiber (slporbits t) i|.
+ +
+Fact conjg_porbits_stab :
+  [set fbbij (slporbits t) x | x in (slporbits s)] \subset slporbits t.
+Fact conjg_porbits_homog :
+  {in porbits s, forall C, #|fbbij (U := slporbits s) (slporbits t) C| = #|C| }.
+#[local] Definition CMbij := PorbitMap conjg_porbits_stab conjg_porbits_homog.
+Definition conjbij := cymap CMbij.
+ +
+Lemma conjbijP x : conjbij (s x) = t (conjbij x).
+ +
+End DefsFiber.
+ +
+Lemma conjbijK
+      (U V : finType) (s : {perm U}) (t : {perm V})
+      (eqct : cycle_type s = cycle_type t :> seq nat) :
+  cancel (conjbij eqct) (conjbij (esym eqct)).
+ +
+Section CycleType.
+ +
+Variable T : finType.
+Implicit Types (s t : {perm T}) (C : {set T}) (P : {set {set T}}).
+ +
+Theorem conj_permP s t :
+  reflect (exists c, t = (s ^ c)%g) (cycle_type s == cycle_type t).
+ +
+Lemma classes_of_permP s t :
+  (t \in (s ^: [set: {perm T}])%g) = (cycle_type s == cycle_type t).
+ +
+Section Permofcycletype.
+ +
+Implicit Types (l : nat) (ct : 'P_#|T|).
+ +
+Fact perm_of_porbit_subproof C : injective (next (enum C)).
+Definition perm_of_porbit C := perm (@perm_of_porbit_subproof C).
+ +
+Lemma psupport_perm_of_porbit C :
+  #|C| > 1 -> psupport (perm_of_porbit C) = C.
+ +
+Lemma perm_of_porbitE C x :
+  x \in C -> C = porbit (perm_of_porbit C) (head x (enum C)).
+ +
+Lemma porbits_of_set C : #|C| > 1 -> C \in porbits (perm_of_porbit C).
+ +
+Lemma porbit_set_of_set C : #|C| > 1 -> porbit_set (perm_of_porbit C) = [set C].
+ +
+Lemma isperm_of_porbit C : #|C| > 1 -> perm_of_porbit C \is cyclic.
+ +
+Definition perm_of_setpart P : {perm T} :=
+  (\prod_(C in [set perm_of_porbit s | s in [set X in P |#|X|>1]]) C)%g.
+ +
+Lemma psupports_perm_of_porbit P :
+  [set psupport (perm_of_porbit s) | s in [set X in P | 1 < #|X| ]] =
+  [set X in P | 1 < #|X|].
+ +
+Lemma disj_perm_of_setpart P :
+  partition P [set: T] ->
+  disjoint_psupports [set perm_of_porbit s| s in [set X0 in P | 1 < #|X0|]].
+ +
+Lemma porbits_perm_of_setpart P :
+  partition P [set: T] -> porbits (perm_of_setpart P) = P.
+ +
+Lemma perm_of_setpartE P :
+  partition P [set: T] ->
+  cycle_type (perm_of_setpart P) = setpart_shape P :> seq nat.
+ +
+End Permofcycletype.
+ +
+Section TPerm.
+ +
+Implicit Types (x y z : T).
+ +
+Lemma porbit_tpermD x y z :
+  x != z -> y != z -> porbit (tperm x y) z = [set z].
+ +
+Lemma porbit_tpermL x y : porbit (tperm x y) x = [set x; y].
+Lemma porbit_tpermR x y : porbit (tperm x y) y = [set x; y].
+Lemma porbits_tperm x y :
+  porbits (tperm x y) =
+  [set x; y] |: [set [set z] | z : T & (x != z) && (y != z)].
+ +
+Lemma cycle_type_tperm x y :
+  x != y -> cycle_type (tperm x y) = hookpartn #|T| 1.
+ +
+Lemma tperm_conj x1 y1 x2 y2 :
+  x1 != y1 -> x2 != y2 -> exists t, tperm x2 y2 = ((tperm x1 y1) ^ t)%g.
+ +
+Lemma cycle_type_tpermP (s : {perm T}) :
+  #|T| > 1 ->
+  cycle_type s = hookpartn #|T| 1 ->
+  exists x y, x != y /\ s = tperm x y.
+ +
+End TPerm.
+ +
+Section Classes.
+ +
+Variable ct : 'P_#|T|.
+ +
+Lemma permCT_exists : {s | cycle_type s == ct}.
+Definition permCT := val permCT_exists.
+Lemma permCTP : cycle_type permCT = ct.
+ +
+Definition classCT : {set {perm T}} := class permCT [set: {perm T}].
+ +
+Lemma classCTP s :
+  (cycle_type s == ct) = (s \in classCT).
+ +
+Lemma card_classCT_neq0 : #|classCT| != 0%N.
+ +
+End Classes.
+ +
+Lemma permCT_colpartn_card : permCT (colpartn #|T|) = 1%g.
+ +
+Lemma classCT_inj : injective classCT.
+ +
+Lemma imset_classCT :
+  [set classCT p | p in setT] = classes [set: {perm T}].
+ +
+Lemma card_classes_perm :
+  #|classes [set: {perm T}]| = #|{: 'P_#|T| }|.
+ +
+Import GroupScope GRing.Theory.
+#[local] Open Scope ring_scope.
+ +
+
+ +
+

Cycle indicator

+ +
+
+Section CFunIndicator.
+ +
+Variable ct : 'P_#|T|.
+ +
+Definition cfuniCT :=
+  cfun_indicator [set: {perm T}] (classCT ct).
+ +
+#[local] Notation "''1_[' p ]" := (cfuniCT p) : ring_scope.
+ +
+Lemma cfuniCTE s :
+  ('1_[s]) = (cycle_type s == ct)%:R.
+ +
+End CFunIndicator.
+End CycleType.
+ +
+Notation "''1_[' p ]" := (cfuniCT p) : ring_scope.
+ +
+Coercion CTpartn n := cast_intpartn (esym (card_ord n)).
+ +
+Import GroupScope GRing.Theory.
+#[local] Open Scope ring_scope.
+ +
+
+ +
+

Central function for 'S_n

+ +
+
+Section Sn.
+ +
+Variable n : nat.
+ +
+Definition partnCT : 'P_#|'I_n| -> 'P_n := cast_intpartn (card_ord n).
+Definition cycle_typeSn (s : 'S_n) : 'P_n := partnCT (cycle_type s).
+ +
+Lemma CTpartnK (p : 'P_n) : partnCT p = p.
+ +
+Lemma partnCTE p1 p2 : (p1 == p2) = (partnCT p1 == partnCT p2).
+ +
+Lemma partnCTK (p : 'P_#|'I_n|) : p = partnCT p.
+ +
+Lemma partnCT_congr p1 (p2 : 'P_n) : (partnCT p1 == p2) = (p1 == p2).
+ +
+Lemma CTpartn_colpartn : CTpartn (colpartn n) = colpartn #|'I_n|.
+ +
+Lemma cycle_typeSn1 : cycle_typeSn 1%g = colpartn n.
+ +
+Lemma permCT_colpartn : permCT (colpartn n) = 1%g.
+ +
+Lemma cfuniCTnE (ct : 'P_n) (s : 'S_n) :
+  '1_[ct] s = (cycle_typeSn s == ct)%:R.
+ +
+Lemma cycle_typeSn_permCT (ct : 'P_n) : cycle_typeSn (permCT ct) = ct.
+ +
+End Sn.
+ +
+Lemma cast_cycle_typeSN m n (s : 'S_m) (eq_mn : m = n) :
+  cycle_typeSn (cast_perm eq_mn s) = cast_intpartn eq_mn (cycle_typeSn s).
+
+
+ + + +
+ + + \ No newline at end of file diff --git a/combi/1.1.0/Combi.SymGroup.permcent.html b/combi/1.1.0/Combi.SymGroup.permcent.html new file mode 100644 index 00000000..3fed4e1e --- /dev/null +++ b/combi/1.1.0/Combi.SymGroup.permcent.html @@ -0,0 +1,396 @@ + + + + + +Combi.SymGroup.permcent: The Centralizer of a Permutation + + + + +
+ + + +
+ +

Library Combi.SymGroup.permcent: The Centralizer of a Permutation

+ +
+
+ +
+ +
+
+
+ +
+

The Centralizer of a Permutation

+ + +
+ +The main goal is to understand the structure of the centralizer group of a +given permutation s, compute its cardinality and deduce the cardinality +of the conjugacy class of s. + +
+ +Here are the notion defined is this file, where s is a fixed permutation on +a finite type T: + +
+ +
    +
  • 'CC(s) == the group of permutations of T which commute with s and + stabilize each cycle of s. + +
  • +
  • stab_iporbits s == the group of permutations of T which only move + the cycles of s and sends any cycle to a cycle of the same + length. + +
  • +
  • inporbits s t == the permutation induced by t on the set of the cycles + of s. inporbits s is a morphism from {perm T} to + stab_iporbits s. + +
  • +
  • permcycles s P == a right inverse morphism from stab_iporbits s to + {perm T}. If P belongs to stab_iporbits s then + permcycles s P si a compatible lifting of P in {perm T}, + otherwise the identity. + +
    + + +
  • +
  • zcard l == where is the number of + occurrence of in l. + +
  • +
+ +
+ +Here are the main results: + +
+ +
    +
  • 'CC(s)' is the direct product of the group generated by the cycles of s. + Lemma porbitgrpE: + +
    + + 'CC(s) = \big[dprod/1]_(c in cycle_dec s) <[c]>. + +
    + + +
  • +
  • stab_iporbits s is the direct product over i of the group permuting + the set of the cycles of size i. Theorem stab_iporbitsE: + +
    + + + stab_iporbits s = + \big[dprod/1]_(i < #|T|.+1) Sym (porbits s :&: 'SC_i). + + +
    + + +
  • +
  • The centralizer 'C[s] is the semidirect product of 'CC(s)' and the + lifting of stab_iporbits s. Theorem cent1_permE: + +
    + + 'C[s] = 'CC(s) ><| (permcycles s) @* (stab_iporbits s). + +
    + + +
  • +
  • The cardinality of the centralizer of s given by zcard. + Corollary card_cent1_perm: + +
    + + #|'C[s]| = zcard (cycle_type s). + +
    + + +
  • +
  • The cardinality of the conjugacy class associated to the partition l + of an integer n is given by Theorem card_class_of_part: + +
    + + #|classCT l| = n`! %/ zcard l. + +
  • +
+ +
+ + +
+
+From Corelib Require Import Setoid.
+From mathcomp Require Import ssreflect ssrfun ssrbool eqtype ssrnat seq fintype.
+From mathcomp Require Import tuple path bigop finset div.
+From mathcomp Require Import fingroup perm action gproduct morphism.
+ +
+Require Import tools partition permcomp cycles cycletype.
+ +
+Import GroupScope.
+ +
+Set Implicit Arguments.
+ +
+#[local] Hint Resolve porbit_id : core.
+ +
+#[local] Notation "''SC_' i " := (finset (fun x => #{x} == i))
+    (at level 0).
+ +
+
+ +
+

Support and cycle in the centralizer

+ +
+
+Section PermCycles.
+ +
+Variable T : finType.
+Implicit Type (s t c : {perm T}).
+ +
+Lemma disjoint_psupport_dprodE (S : {set {perm T}}) :
+  disjoint_psupports S ->
+  (\big[dprod/1]_(s in S) <[s]>) = (\prod_(s in S) <[s]>)%G.
+ +
+Lemma cent1_act_porbit s t x :
+  t \in 'C[s] -> ('P)^* (porbit s x) t = porbit s (t x).
+ +
+Lemma cent1_act_on_porbits s : [acts 'C[s], on porbits s | ('P)^*].
+ +
+Lemma cent1_act_on_iporbits s i :
+  [acts 'C[s], on porbits s :&: 'SC_i | ('P)^*].
+ +
+Lemma commute_cyclic c t :
+  c \is cyclic -> t \in 'C[c] -> perm_on (psupport c) t -> exists i, t = c ^+ i.
+ +
+
+ +
+

The cyclic centralizer

+ +
+
+Notation "''CC' ( s )" :=
+  'C_('C[s])(porbits s | ('P)^* ) (format "''CC' ( s )") : group_scope.
+ +
+Lemma restr_perm_genC C s t :
+  C \in porbit_set s -> t \in 'CC(s) -> restr_perm C t \in <[restr_perm C s]>%G.
+ +
+Lemma stab_porbit S s :
+  s \in 'N(S | 'P) -> forall x, (x \in S) = (porbit s x \subset S).
+ +
+Lemma restr_perm_porbits S s :
+  restr_perm S s \in 'C(porbits s | ('P)^* ).
+ +
+Lemma porbitgrpE s : 'CC(s) = \big[dprod/1]_(c in cycle_dec s) <[c]>.
+ +
+Lemma card_porbitgrpE s : #|'CC(s)| = (\prod_(i <- cycle_type s) i)%N.
+ +
+
+ +
+

Permuting the cycles among themselves

+ +
+
+Definition stab_iporbits s : {set {perm {set T}}} :=
+  Sym (porbits s) :&:
+    \bigcap_(i : 'I_#|T|.+1) 'N(porbits s :&: 'SC_i | 'P).
+ +
+Definition inporbits s : {perm T} -> {perm {set T}} :=
+  restr_perm (porbits s) \o actperm 'P^*.
+ +
+Section CM.
+ +
+Variable s : {perm T}.
+Implicit Type P : {perm {set T}}.
+ +
+Lemma stab_iporbits_stab P :
+  (if P \in stab_iporbits s then P else 1) @: porbits s \subset porbits s.
+ +
+Lemma stab_iporbits_homog P :
+  {in porbits s, forall C : {set T},
+       #|(if P \in stab_iporbits s then P else 1) C| = #|C| }.
+ +
+#[local] Definition stab_iporbits_porbitmap P :=
+  PorbitMap (stab_iporbits_stab P) (stab_iporbits_homog P).
+#[local] Definition stab_iporbits_map P := cymap (stab_iporbits_porbitmap P).
+ +
+Lemma stab_iporbits_map_inj P : injective (stab_iporbits_map P).
+Definition permcycles P := perm (@stab_iporbits_map_inj P).
+ +
+Lemma permcyclesC P : commute (permcycles P) s.
+ +
+Lemma permcyclesP P : (permcycles P) \in 'C[s].
+ +
+Lemma porbit_permcycles P x :
+  P \in stab_iporbits s -> porbit s (permcycles P x) = P (porbit s x).
+ +
+End CM.
+ +
+Lemma permcyclesM s :
+  {in stab_iporbits s &, {morph permcycles s : P Q / P * Q}}.
+Canonical permcycles_morphism s := Morphism (permcyclesM (s := s)).
+ +
+Lemma permcyclesK s :
+  {in stab_iporbits s, cancel (permcycles s) (inporbits s)}.
+ +
+Lemma permcycles_inj s : 'injm (permcycles s).
+ +
+Lemma inporbits_im s : inporbits s @: 'C[s] = stab_iporbits s.
+ +
+Lemma trivIset_iporbits s : trivIset [set porbits s :&: 'SC_i | i : 'I_#|T|.+1].
+ +
+Lemma cover_iporbits s :
+  cover [set porbits s :&: 'SC_i | i : 'I_#|T|.+1] = porbits s.
+ +
+Lemma stab_iporbitsE_prod s :
+  stab_iporbits s =
+  (\prod_(i < #|T|.+1) Sym_group (porbits s :&: 'SC_i))%G.
+ +
+Theorem stab_iporbitsE s :
+  stab_iporbits s = \big[dprod/1]_(i < #|T|.+1) Sym (porbits s :&: 'SC_i).
+ +
+Lemma card_stab_iporbits s :
+  #|stab_iporbits s| =
+    (\prod_(i < #|T|.+1) (count_mem (nat_of_ord i) (cycle_type s))`!)%N.
+ +
+Lemma conj_porbitgrp s y z :
+  y \in 'C[s] -> z \in 'CC(s) -> z ^ y \in 'CC(s).
+ +
+Lemma inporbits1 s t : t \in 'C(porbits s | ('P)^* ) -> inporbits s t = 1.
+ +
+Lemma cent1_stab_iporbit_porbitgrpS s :
+  'C[s] \subset permcycles s @* stab_iporbits s * 'CC(s).
+ +
+
+ +
+

Main theorem

+ +
+
+Theorem cent1_permE s :
+  'C[s] = 'CC(s) ><| (permcycles s) @* (stab_iporbits s).
+ +
+#[local] Open Scope nat_scope.
+ +
+
+ +
+

Conjugacy class cardinality

+ +
+
+Definition zcard l :=
+  \prod_(i <- l) i * \prod_(i < (sumn l).+1) (count_mem (i : nat) l)`!.
+ +
+Lemma zcard_nil : zcard [::] = 1.
+ +
+Lemma zcard_any l b :
+  (sumn l < b) ->
+  \prod_(i <- l) i * \prod_(i < b) (count_mem (i : nat) l)`! = zcard l.
+ +
+Lemma zcard_rem i l :
+  i != 0 -> i \in l -> i * (count_mem i l) * (zcard (rem i l)) = zcard l.
+ +
+Corollary card_cent1_perm s : #|'C[s]| = zcard (cycle_type s).
+ +
+Theorem card_class_perm s :
+  #|class s [set: {perm T}]| = #|T|`! %/ zcard (cycle_type s).
+ +
+End PermCycles.
+ +
+Lemma dvdn_zcard_fact n (l : 'P_n) : zcard l %| n`!.
+ +
+Lemma neq0zcard n (l : 'P_n) : zcard l != 0.
+ +
+Theorem card_class_of_part n (l : 'P_n) : #|classCT l| = n`! %/ zcard l.
+
+
+ + + +
+ + + \ No newline at end of file diff --git a/combi/1.1.0/Combi.SymGroup.presentSn.html b/combi/1.1.0/Combi.SymGroup.presentSn.html new file mode 100644 index 00000000..6eace5e6 --- /dev/null +++ b/combi/1.1.0/Combi.SymGroup.presentSn.html @@ -0,0 +1,1454 @@ + + + + + +Combi.SymGroup.presentSn: The Coxeter Presentation of the Symmetric Group + + + + +
+ + + +
+ +

Library Combi.SymGroup.presentSn: The Coxeter Presentation of the Symmetric Group

+ +
+
+ +
+ +
+
+
+ +
+

The Coxeter Presentation of the Symmetric Group

+ + +
+ +The main goal is to show that elementary transpositions generate the symmetric +groups as a Coxeter group. We follow the proofs from Alain Lascoux "The +Symmetric Group", unfinished notes. It is not the shortest nor the simplest, +but it is fully explicit and algorithmic. In particular, it goes through two +algorithms to +
    +
  • compute the size-lexicographically minimal reduced word of a permutation + +
  • +
  • straighten a word to the previous reduced word. + +
  • +
+ +
+ +Here are the notion defined is this file: + +
+ +Elementary tranpositions + +
+ +
    +
  • 's_i == the i-th elementary transposition. It is of type 'S_n.+1 + where n is inferred from the context. i is an integer + smaller than n (otherwise eltr i is the identity) + +
  • +
+ +
+ +Inversion sets + +
+ +
    +
  • invset s == the set of inversion of s + +
  • +
  • Delta == the set of pair (i, j) such that 0 <= i < j < n.+1; + n is infered from the context + +
  • +
  • is_invset IS == IS is the inversion set of a permutation, that is + subdiagonal transitive and co-transitive + +
  • +
  • length s == the number of inversion of s we show latter that this is the + Coxeter length of s + +
  • +
  • rsymrel IS == the reflexive and antisymmetric closure of the binary + relation associated to the inversion set IS + +
  • +
  • perm_of_invset IS == the permutation whose inversion set is IS + +
  • +
+ +
+ +Notion of code + +
+ +
    +
  • c \is a code == c is a list such that c_i <= i. + +
  • +
  • wordcd c == for a code c the list 0, 1-c1..1, 2-c2..2, .. + +
    + + +
  • +
  • is_code_of_size c n == the predicate c is a code of size n + +
  • +
  • enum_codesz n == a list enumerating all the code of size n + +
  • +
  • codesz n == sigma type for codes of size n, canonically a finType + +
  • +
+ +
+ +Inverse Lehmer code + +
+ +
    +
  • cocode s == the recursively defined Lehmer code of s^-1 + +
  • +
  • canword s == the canonical reduced word for s as a seq 'I_n + +
  • +
  • prods_codesz c == the product eltr i associated to the code c that + is for i <- wordcd c. Lemma prods_codesz_bij shows that it + is a bijection from codesz n.+1 to 'S_n.+1. + +
  • +
+ +
+ +Reduced words + +
+ +
    +
  • w \is reduced == w is a word of size length 's_[w]. + +
  • +
+ +
+ +Braid relations + +
+ +
    +
  • braid_aba == the braid rewriting rule a a.+1 a == a.+1 a a.+1 + +
  • +
  • braidC == the braid rewriting rule a b == b a if |b - a| > 1 + +
  • +
  • braidrule == the union of the two previous rules + +
  • +
  • braidcongr == the braid monoid congruence generated by braidrule + +
  • +
  • braidclass s == the braid monoid class of s + +
  • +
  • a =Br b == a and b are equivalent under the braid congruence + +
    + + +
  • +
  • reduce u v == u reduces to v using the rule [:: i i] -> [::] + +
  • +
  • braidred u v == either u =Br v or reduce u v + +
  • +
+ +
+ +The algorithms + +
+ +
    +
  • inscode c i == the insertion the letter i in the code c. If c is the + code for the permutation s then it is the code for the + permutation s * 's_i + +
  • +
  • path_catl p w == append w to all the sequences of p that is + [seq v ++ w | v <- p] + +
  • +
  • straighten w == the straigtened reduced word equivalent to w + +
  • +
+ +
+ +The presentation + +
+ +
    +
  • relat_Sn n g == if g : nat -> gT for a finGroupType gt. A + proposition which asserts that the relation of the symmetric + group holds for the g i denoted 'g_i. Namely + +
    + +
      +
    • forall i, i < n -> 'g_i^+2 = 1 + +
    • +
    • forall i, i.+1 < n -> 'g_i * 'g_i.+1 * 'g_i = 'g_i.+1 * 'g_i * 'g_i.+1 + +
    • +
    • forall i j, i.+1 < j < n -> 'g_i * 'g_j = 'g_j * 'g_i + +
    • +
    + +
  • +
+ +
+ +The main result is thus Theorem presentation_Sn_eltr: + +
+ + + relat_Sn -> + exists f : {morphism 'SG_n.+1 >-> gT}, forall i, i < n -> f 's_i = 'g_i. + + +
+
+From HB Require Import structures.
+From mathcomp Require Import all_boot.
+From mathcomp Require Import fingroup perm morphism presentation.
+From mathcomp Require Import ssralg poly ssrint.
+ +
+Require Import permcomp tools permuted combclass congr.
+ +
+Set Implicit Arguments.
+ +
+Section SRel.
+ +
+Variable T : finType.
+Implicit Type (S A B : {set T * T}).
+Definition srel S := [rel x y : T | (x, y) \in S].
+ +
+Lemma srelE S1 S2 : srel S1 =2 srel S2 -> S1 = S2.
+ +
+Definition tclosure A : {set T * T} :=
+  [set p | (p.1 != p.2) && (connect (srel A) p.1 p.2)].
+ +
+Lemma tclosure_sub A B :
+  A \subset B -> transitive (srel B) -> tclosure A \subset B.
+ +
+End SRel.
+ +
+Notation "''SG_' n" := [set: 'S_n]
+  (at level 8, n at level 2, format "''SG_' n").
+ +
+Reserved Notation "''s_' i"
+      (at level 8, i at level 2, format "''s_' i").
+Reserved Notation "''s_[' w ] "
+      (at level 0, w at level 100, format "''s_[' w ]").
+ +
+#[local] Reserved Notation "''II_' n" (at level 8, n at level 2).
+#[local] Reserved Notation "a =Br b" (at level 70).
+#[local] Reserved Notation "''I[' a '..' b ']'" (at level 0, a, b at level 2).
+ +
+Lemma ieqi1F i : (i == i.+1) = false.
+Lemma ieqi2F i : (i == i.+2) = false.
+Lemma i1eqiF i : (i.+1 == i) = false.
+Lemma i2eqiF i : (i.+2 == i) = false.
+ +
+Lemma inordi n i : i < n -> (@inord n i = i :> nat).
+ +
+Lemma inordi1 n i : i < n -> (@inord n i.+1 = i.+1 :> nat).
+ +
+Lemma inord1i n i : i.+1 < n -> (@inord n i = i :> nat).
+ +
+Lemma inordi_neq_i1 n i : i < n -> (@inord n i != @inord n i.+1).
+ +
+Definition trivSimpl := (eq_refl, eqSS, ieqi1F, ieqi2F, i1eqiF, i2eqiF).
+ +
+
+ +
+

Codes for permutations

+ +
+
+Section Codes.
+ +
+Definition code := [qualify a c : seq nat |
+  all (fun i => nth 0 c i <= i) (iota 0 (size c)) ].
+ +
+Definition wordcd (c : seq nat) : seq nat :=
+  flatten [seq rev (iota (i - nth 0 c i) (nth 0 c i)) | i <- iota 0 (size c)].
+ +
+Lemma size_wordcd c : size (wordcd c) = sumn c.
+ +
+Lemma is_codeP c :
+  reflect (forall i, i < size c -> nth 0 c i <= i) (c \is a code).
+ +
+Lemma is_code_rcons c i : i <= size c -> c \is a code -> rcons c i \is a code.
+ +
+Lemma is_code_rconsK c i : rcons c i \is a code -> c \is a code.
+ +
+Lemma code_ltn_size c : c \is a code -> all (gtn (size c)) c.
+ +
+Lemma wordcd_ltn c :
+  c \is a code -> all (gtn (size c).-1) (wordcd c).
+ +
+Lemma insub_wordcdK n c :
+  c \is a code -> size c <= n.+1 ->
+  [seq (i : nat) | i : 'I_n <- pmap insub (wordcd c)] = wordcd c.
+ +
+Definition is_code_of_size n c := (c \is a code) && (size c == n).
+ +
+Fixpoint enum_codesz n :=
+  if n is n'.+1 then
+    flatten [seq [seq rcons c i | c <- enum_codesz n'] | i <- iota 0 n]
+  else [:: [::]].
+ +
+Lemma enum_codeszP n : all (is_code_of_size n) (enum_codesz n).
+ +
+Lemma enum_codesz_countE n c :
+  is_code_of_size n c -> count_mem c (enum_codesz n) = 1.
+ +
+
+ +
+

Fintype for codes for permutations of size n

+ +
+
+Section FinType.
+ +
+Variable n : nat.
+ +
+Structure codesz : Set :=
+  CodeSZ {cdval :> seq nat; _ : (cdval \is a code) && (size cdval == n)}.
+ +
+Implicit Type (c : codesz).
+ +
+Lemma codeszP c : val c \is a code.
+ +
+Lemma size_codesz c : size c = n.
+ +
+Lemma enum_codeszE : map val (enum {: codesz}) = enum_codesz n.
+ +
+End FinType.
+ +
+Lemma card_codesz n : #|{: codesz n}| = n`!.
+ +
+End Codes.
+#[export] Hint Resolve codeszP : core.
+ +
+Import GroupScope.
+ +
+
+ +
+

Elementary transpositions

+ +
+
+Section Transp.
+ +
+Variable T : finType.
+Implicit Types (x y z t : T).
+ +
+Lemma tperm_braid x y z :
+  x != y -> y != z ->
+  tperm x y * tperm y z * tperm x y = tperm y z * tperm x y * tperm y z.
+ +
+Lemma tpermC x y a b :
+  x != a -> y != a -> x != b -> y != b ->
+  tperm x y * tperm a b = tperm a b * tperm x y.
+ +
+End Transp.
+ +
+Section MaxPerm.
+ +
+Context {n : nat}.
+Definition maxperm : 'S_n := perm (@rev_ord_inj n).
+ +
+Lemma maxpermK : involutive maxperm.
+ Lemma maxpermV : maxperm^-1 = maxperm.
+ +
+End MaxPerm.
+ +
+#[local] Notation "''II_' n" := ('I_n * 'I_n)%type.
+ +
+
+ +
+

Inversion set of a permutation

+ +
+
+Section InvSet.
+ +
+Context {n : nat}.
+ +
+Implicit Type (p : 'II_n) (IS S : {set 'II_n}).
+Implicit Type s t : 'S_n.
+ +
+Definition Delta : {set 'II_n} := [set p : 'II_n | (p.1 < p.2)].
+Definition invset s : {set 'II_n} :=
+  [set p : 'II_n | (p.1 < p.2) && (s p.1 > s p.2) ].
+Definition rsymrel IS :=
+  [rel i j : 'I_n |
+   [|| (i == j), (j, i) \in IS | (i < j) && ((i, j) \notin IS)]].
+Definition length s := #|invset s|.
+ +
+Variant is_invset IS : Prop :=
+  IsInvset of IS \subset Delta
+  & transitive (srel IS)
+  & transitive (srel (Delta :\: IS)).
+ +
+Lemma mem_Delta i j : (i, j) \in Delta = (i < j).
+ Lemma DeltaP i j : (i, j) \in Delta -> (i < j).
+ +
+Lemma card_Delta : #|Delta| = 'C(n, 2).
+ +
+Lemma is_invset_Delta IS : is_invset IS -> IS \subset Delta.
+ +
+Lemma transitive_DeltaI1 IS :
+  (transitive (srel (Delta :\: IS))) <->
+  (forall i j k : 'I_n,
+      i < j < k -> (i, k) \in IS -> ((i, j) \in IS \/ (j, k) \in IS)).
+ +
+Lemma invset_Delta s : invset s \subset Delta.
+ +
+Lemma invset_permV s :
+  invset s^-1 = [set (s (p.2), s (p.1)) | p in invset s].
+ +
+Lemma invsetP s : is_invset (invset s).
+ +
+Lemma invset_maxperm : invset (@maxperm n) = Delta.
+ +
+Lemma invset_maxpermMr s : invset (s * maxperm) = Delta :\: invset s.
+Lemma invset_maxpermMl s :
+  invset (maxperm * s) =
+  Delta :\: [set (maxperm p.2, maxperm p.1) | p in invset s].
+ +
+Lemma rsymrel_refl IS : reflexive (rsymrel IS).
+ Lemma rsymrel_anti IS :
+  IS \subset Delta -> antisymmetric (rsymrel IS).
+Lemma rsymrel_trans IS : is_invset IS -> transitive (rsymrel IS).
+Lemma rsymrel_total (IS : {set 'II_n}) :
+  IS \subset Delta -> total (rsymrel IS).
+ +
+Lemma rsym_invset_refl s : reflexive (rsymrel (invset s)).
+ Lemma rsym_invset_anti s : antisymmetric (rsymrel (invset s)).
+ Lemma rsym_invset_trans s : transitive (rsymrel (invset s)).
+ Lemma rsym_invset_total s : total (rsymrel (invset s)).
+ +
+Lemma perm_of_relP (r : rel 'I_n) :
+  injective (fun i : 'I_n => nth i (sort r (enum 'I_n)) i).
+Definition perm_of_invset IS :=
+  (perm (@perm_of_relP (rsymrel IS)))^-1.
+ +
+Lemma rsym_invsetP s :
+  sorted (rsymrel (invset s)) [seq s^-1 i | i : 'I_n].
+ +
+Lemma invsetK : cancel invset perm_of_invset.
+ +
+Theorem invset_inj : injective invset.
+ +
+Theorem perm_of_invsetK (IS : {set 'II_n}) :
+  is_invset IS -> invset (perm_of_invset IS) = IS.
+ +
+Lemma length1 : length 1 = 0.
+ +
+Lemma lengthV s : length s^-1 = length s.
+ +
+Lemma length_max s : length s <= 'C(n, 2).
+ +
+Lemma length_maxperm : length (@maxperm n) = 'C(n, 2).
+ Lemma length_maxpermE s : length s = 'C(n, 2) -> s = (@maxperm n).
+ +
+Lemma length_maxpermMr s : length (s * maxperm) = 'C(n, 2) - length s.
+Lemma length_maxpermMl s : length (maxperm * s) = 'C(n, 2) - length s.
+ +
+End InvSet.
+ +
+Section ElemTransp.
+ +
+Variable n0 : nat.
+Notation n := n0.+1.
+ +
+Definition eltr i : 'S_n0.+1 := tperm (inord i) (inord i.+1).
+ +
+Notation "''s_' i" := (eltr i).
+Notation "''s_[' w ]" := (\prod_(i <- w) 's_i).
+ +
+Implicit Type s t : 'S_n.
+ +
+Lemma eltrV i : ('s_i)^-1 = 's_i.
+Lemma eltrK i : involutive 's_i.
+Lemma eltr2 i : 's_i * 's_i = 1.
+ +
+Lemma eltr_braid i :
+  i.+1 < n0 -> 's_i * 's_i.+1 * 's_i = 's_i.+1 * 's_i * 's_i.+1.
+ +
+Lemma eltr_comm i j :
+  i.+1 < j < n0 -> 's_i * 's_j = 's_j * 's_i.
+ +
+#[local] Lemma eltrL_ord (i : 'I_n) : 's_i i = inord i.+1.
+ #[local] Lemma eltrR_ord (i : 'I_n) : 's_i (inord i.+1) = i.
+ #[local] Lemma eltrD_ord (i j : 'I_n) : i != j -> inord i.+1 != j -> 's_i j = j.
+ +
+Definition eltrL := (eltrL_ord, tpermL).
+Definition eltrR := (eltrR_ord, tpermR).
+Definition eltrD := (eltrD_ord, tpermD).
+ +
+Lemma prods_iota_mi (m : 'I_n) i :
+  i <= m -> 's_[iota (m - i) i] (inord (m - i)) = m.
+ +
+Lemma prods_iota_ltmi i (m u : 'I_n) :
+  u < m - i -> 's_[(iota (m - i) i)] u = u.
+ +
+Lemma cycleij_j (i j : 'I_n) :
+  i <= j -> 's_[index_iota i j] i = j.
+ +
+Lemma cycleij_lt (i j k : 'I_n) :
+  i <= j -> k < i -> 's_[index_iota i j] k = k.
+ +
+Lemma cycleij_gt (i j : nat) (k : 'I_n) :
+  j < k -> 's_[index_iota i j] k = k.
+ +
+Lemma cycleij_inS i (j k : 'I_n) :
+  i <= k < j -> 's_[index_iota i j] (inord k.+1) = k.
+ +
+Lemma cycleij_in i (j k : 'I_n) :
+  i < k <= j -> 's_[index_iota i j] k = (inord k.-1).
+ +
+Lemma prodsK w : 's_[w] * 's_[rev w] = 1.
+ +
+Lemma prodsV w : 's_[rev w] = 's_[w]^-1.
+ +
+Lemma odd_eltr i : (i < n0)%N -> odd_perm 's_i.
+ +
+End ElemTransp.
+ +
+Section PermOfInvSetEltr.
+ +
+Variable n0 : nat.
+Local Notation n := n0.+1.
+Implicit Type s t : 'S_n.
+ +
+Notation "''s_' i" := (eltr _ i).
+Notation "''s_[' w ]" := (\prod_(i <- w) 's_i).
+ +
+Lemma eltr_exchange i (a b : 'I_n) :
+  i < n0 -> a < b -> 's_i a < 's_i b = (i != a) || (i.+1 != b).
+ +
+Lemma invset_eltrL s (i : 'I_n) :
+  i < n0 -> s i < s (inord i.+1) ->
+  invset ('s_i * s) =
+  (i, inord i.+1) |: [set ('s_i p.1, 's_i p.2) | p in invset s].
+ +
+Lemma invset_eltrR s (i : 'I_n) :
+  i < n0 -> s^-1 i < s^-1 (inord i.+1) ->
+  invset (s * 's_i) = (s^-1 i, s^-1 (inord i.+1)) |: invset s.
+ +
+End PermOfInvSetEltr.
+Arguments Delta {n}.
+ +
+Section Length.
+ +
+Variable n0 : nat.
+Notation n := n0.+1.
+ +
+Notation "''s_' i" := (eltr n0 i).
+Notation "''s_[' w ]" := (\prod_(i <- w) 's_i).
+ +
+Implicit Type s t u : 'S_n.
+ +
+
+ +
+

Length of a permutation

+ the length was defined with invset +
+
+ +
+Lemma length_add1L s (i : 'I_n) :
+  i < n0 -> s i < s (inord i.+1) -> length ('s_i * s) = (length s).+1.
+ +
+Lemma length_sub1L s (i : 'I_n) :
+  i < n0 -> s i > s (inord i.+1) -> length s = (length ('s_i * s)).+1.
+ +
+Lemma length_descL s (i : 'I_n) :
+  i < n0 -> (s i < s (inord i.+1)) = (length ('s_i * s) > length s).
+ +
+Lemma length_add1R s (i : 'I_n) :
+  i < n0 -> s^-1 i < s^-1 (inord i.+1) -> length (s * 's_i) = (length s).+1.
+ +
+Lemma length_sub1R s (i : 'I_n) :
+  i < n0 -> s^-1 i > s^-1 (inord i.+1) -> length s = (length (s * 's_i)).+1.
+ +
+Lemma length_descR s (i : 'I_n) :
+  i < n0 -> (s^-1 i < s^-1 (inord i.+1)) = (length (s * 's_i) > length s).
+ +
+Lemma length_eltr (i : 'I_n0) : length 's_i = 1%N.
+ +
+Lemma length_prods (w : seq 'I_n0) : length 's_[w] <= size w.
+ +
+
+ +
+

The canonical reduced word of a permutation

+ +
+
+Fixpoint cocode_rec m c (s : 'S_n) : seq nat :=
+  if m is m'.+1 then
+    let mo := inord m' in
+    cocode_rec m' (mo - s mo :: c) (s * 's_[iota (s mo) (mo - s mo)])
+  else c.
+Definition cocode s := cocode_rec n [::] s.
+Definition canword s : seq 'I_n0 := pmap insub (wordcd (cocode s)).
+ +
+ +
+
+ +
+

Properties of the dual code

+ +
+
+Lemma cocode_rec_cat m c s : cocode_rec m c s = (cocode_rec m [::] s ++ c).
+ +
+Lemma wordcdE c :
+  's_[wordcd c] =
+  \prod_(i <- iota 0 (size c)) 's_[rev (iota (i - nth 0 c i) (nth 0 c i))].
+ +
+Lemma size_cocode_rec m s c : size (cocode_rec m c s) = m + size c.
+ +
+Lemma size_cocode s : size (cocode s) = n.
+ +
+
+ +
+

Partial codes

+ +
+
+Section PartCode.
+ +
+Let is_partcode m c :=
+  forall i, i < size c -> nth 0 c i <= i + m.
+Let word_of_partcocode m c : seq nat :=
+  flatten [seq rev (iota (m + i - nth 0 c i) (nth 0 c i)) |
+           i <- iota 0 (size c)].
+ +
+Lemma perm_on_cocode_recP m c s0 s :
+  m <= n ->
+  is_partcode m c ->
+  s0 = s * 's_[word_of_partcocode m c] ->
+  perm_on [set k : 'I_n | k < m] s ->
+  let cf := cocode_rec m c s in cf \is a code /\ s0 = 's_[wordcd cf].
+ +
+End PartCode.
+ +
+Lemma perm_on_prods c m :
+  c \is a code -> m <= size c -> m <= n ->
+  perm_on [set k : 'I_n | k < m]
+          (\prod_(i <- iota 0 m) 's_[(rev (iota (i - nth 0 c i) (nth 0 c i)))]).
+ +
+Lemma perm_on_prods_length_ord s i (m : 'I_n) :
+  i <= m -> perm_on [set k : 'I_n | k < m] s ->
+  length (s * 's_[rev (iota (m - i) i)]) = length s + i.
+ +
+Lemma perm_on_prods_length s i m :
+  m < n -> i <= m -> perm_on [set k : 'I_n | k < m] s ->
+  length (s * 's_[(rev (iota (m - i) i))]) = length s + i.
+ +
+Lemma length_permcd c :
+  c \is a code -> size c <= n -> length 's_[wordcd c] = sumn c.
+ +
+Lemma cocode2P s :
+  let c := cocode s in c \is a code /\ s = 's_[wordcd c].
+ +
+Lemma cocodeP s : cocode s \is a code.
+ +
+Lemma cocodeE s : s = 's_[wordcd (cocode s)].
+ +
+
+ +
+

Properties of canword s

+ + +
+ +We show that canword s meets it specification : The canonical reduced word +of s is indeed a word whose length is the size of s, that is a reduced +word (defined later). + +
+
+ +
+Lemma canwordE s :
+  [seq (i : nat) | i : 'I_n0 <- canword s] = wordcd (cocode s).
+ +
+Theorem canwordP s : 's_[canword s] = s.
+ +
+
+ +
+As a consequence 'SG_n is generated by the elementary transpositions +
+
+Corollary eltr_genSn : 'SG_n = <<[set 's_(i : 'I_n0) | i in 'I_n0]>>%G.
+ +
+
+ +
+The corresponding induction theorem +
+
+Theorem eltr_ind (P : 'S_n -> Type) :
+  P 1 -> (forall s i, i < n0 -> P s -> P ('s_i * s)) ->
+  forall s, P s.
+ +
+Corollary morph_eltr (gT : finGroupType)
+          (f g : {morphism 'SG_n >-> gT}) :
+  (forall i : 'I_n0, f 's_i = g 's_i) -> f =1 g.
+ +
+
+ +
+A simple application +
+
+Lemma odd_size_permE ts :
+  all (gtn n0) ts -> odd (size ts) = odd_perm 's_[ts].
+ +
+
+ +
+

Various properties of the length

+ +
+
+Lemma sumn_cocode s : sumn (cocode s) = length s.
+Theorem size_canword s : size (canword s) = length s.
+ +
+Corollary length_eq0 s : length s = 0 -> s = 1.
+ +
+Corollary length_eq1 s : length s = 1%N -> exists i : 'I_n0, s = 's_i.
+ +
+Corollary lengthM s t : length (s * t) <= length s + length t.
+ +
+Corollary lengthME s t :
+  length s + length t <= length (s * t) -> length (s * t) = length s + length t.
+ +
+Corollary lengthKR s t u :
+  length (s * t * u) = length s + length t + length u ->
+  length (t * u) = length t + length u.
+ +
+Corollary lengthKL s t u :
+  length (s * t * u) = length s + length t + length u ->
+  length (s * t) = length s + length t.
+ +
+Definition prods_codesz (c : codesz n) : 'S_n := 's_[wordcd c].
+ +
+Lemma prods_codesz_bij : bijective prods_codesz.
+ +
+Lemma prods_wordcd_inj c1 c2 :
+  c1 \is a code -> c2 \is a code -> size c1 = n -> size c2 = n ->
+  's_[wordcd c1] = 's_[wordcd c2] -> c1 = c2.
+ +
+End Length.
+#[export] Hint Resolve cocodeP : core.
+#[export] Hint Resolve codeszP : core.
+ +
+
+ +
+

Let's do some real combinatorics !!!

+ + +
+ +The generating polynomial for permutations counted by their length. + +
+
+ +
+Section Combi.
+ +
+Import GRing.Theory.
+Open Scope ring_scope.
+ +
+Corollary genfun_length n :
+  \sum_(s : 'S_n) 'X^(length s) =
+  \prod_(0 <= i < n) \sum_(0 <= j < i.+1) 'X^j :> {poly int}.
+ +
+End Combi.
+ +
+
+ +
+

Reduced words

+ +
+
+Section Reduced.
+ +
+Variable n : nat.
+Implicit Type u v w : seq 'I_n.
+ +
+Notation "''s_' i" := (eltr n i).
+Notation "''s_[' w ]" := (\prod_(i <- w) 's_i).
+ +
+Definition reduced_word := [qualify w : seq 'I_n | length 's_[w] == size w ].
+Notation reduced := reduced_word.
+ +
+Lemma reducedP w : reflect (length 's_[w] = size w) (w \is reduced).
+ +
+Lemma reduced_nil : [::] \is reduced.
+ +
+Hint Resolve reduced_nil : core.
+ +
+Lemma reduced_iiF i : [:: i; i] \is reduced = false.
+ +
+Lemma reduced_rev w : w \is reduced -> rev w \is reduced.
+ +
+Lemma reduced_revE w : (w \is reduced) = (rev w \is reduced).
+ +
+Lemma reduced_sprod_code c :
+  c \is a code -> size c <= n.+1 -> pmap insub (wordcd c) \is reduced.
+ +
+
+ +
+

canword s is reduced

+ +
+
+Theorem canword_reduced s : canword s \is reduced.
+ +
+Lemma reduced_catr u v : u ++ v \is reduced -> v \is reduced.
+ +
+Lemma reduced_catl u v : u ++ v \is reduced -> u \is reduced.
+ +
+Lemma reduced_consK i u : i :: u \is reduced -> u \is reduced.
+ +
+Lemma reduced_rconsK u i : rcons u i \is reduced -> u \is reduced.
+ +
+Lemma reducedM (s t : 'S_(n.+1)) :
+  length (s * t) = length s + length t -> canword s ++ canword t \is reduced.
+ +
+Lemma canword1 : canword (1 : 'S_n.+1) = [::].
+ +
+
+ +
+

Braid monoid relations

+ +
+
+Definition braid_aba :=
+  fun s : seq 'I_n => match s with
+             | [:: a; b; c] => if (a == c) && ((a.+1 == b) || (b.+1 == a))
+                               then [:: [:: b; a; b]] else [::]
+             | _ => [::]
+           end.
+ +
+Definition braidC :=
+  fun s : seq 'I_n => match s with
+             | [:: a; b] => if (a.+1 < b) || (b.+1 < a)
+                            then [:: [:: b; a]] else [::]
+             | _ => [::]
+           end.
+ +
+Definition braidrule := [fun s => braid_aba s ++ braidC s].
+ +
+Lemma braid_abaP (u v : seq 'I_n) :
+  reflect (exists a b : 'I_n,
+              [/\ ((a.+1 == b) || (b.+1 == a)),
+               u = [:: a; b; a] & v = [:: b; a; b] ] )
+          (v \in braid_aba u).
+ +
+Lemma braidCP (u v : seq 'I_n) :
+  reflect (exists a b : 'I_n,
+             [/\ ((a.+1 < b) || (b.+1 < a)), u = [:: a; b] & v = [:: b; a] ] )
+          (v \in braidC u).
+ +
+Lemma braidrule_sym (u v : seq 'I_n) :
+  v \in (braidrule u) -> u \in (braidrule v).
+ +
+Lemma braidrule_homog (u : seq 'I_n) :
+  all [pred v | size v == size u] (braidrule u).
+ +
+Definition braidcongr := gencongr_hom braidrule_homog.
+Definition braidclass := genclass_hom braidrule_homog.
+ +
+#[local] Notation "a =Br b" := (braidcongr a b).
+ +
+Lemma braid_equiv : equivalence_rel braidcongr.
+ +
+Lemma braid_refl : reflexive braidcongr.
+ +
+Lemma braidww w : braidcongr w w.
+ +
+Lemma braid_sym : symmetric braidcongr.
+ +
+Lemma braid_ltrans : left_transitive braidcongr.
+ +
+Lemma braid_trans : transitive braidcongr.
+ +
+Lemma braid_is_congr : congruence_rel braidcongr.
+ +
+Definition braid_cons := congr_cons braid_is_congr.
+Definition braid_rcons := congr_rcons braid_is_congr.
+Definition braid_catl := congr_catl braid_is_congr.
+Definition braid_catr := congr_catr braid_is_congr.
+Definition braid_cat := congr_cat braid_is_congr braid_equiv.
+ +
+Lemma size_braid u v : u =Br v -> size u = size v.
+ +
+Lemma braid_rev u v : u =Br v -> rev u =Br rev v.
+ +
+Lemma class_braid1 (i : 'I_n) u : u =Br [:: i] -> u = [:: i].
+ +
+Theorem braid_prods v w : v =Br w -> 's_[v] = 's_[w].
+ +
+Corollary braid_reduced (v w : seq 'I_n) :
+  v =Br w -> v \is reduced -> w \is reduced.
+ +
+
+ +
+

reducing words for permutation

+ +
+
+Fixpoint reduces (u v : seq 'I_n) :=
+  match u with
+    | [::] | [:: _] => false
+    | [:: a, b & l] =>
+      ((a == b) && (l == v))
+        || if v is v0 :: v' then (a == v0) && reduces (b :: l) v'
+           else false
+  end.
+ +
+Lemma reducesP (u v : seq 'I_n) :
+  reflect
+    (exists x i y, u = x ++ [:: i; i] ++ y /\ v = x ++ y)
+    (reduces u v).
+ +
+Lemma reduces_catl u v w : reduces u v -> reduces (u ++ w) (v ++ w).
+ +
+Lemma prods_reducesE u v : reduces u v -> 's_[u] = 's_[v].
+ +
+Definition braid_reduces (u v : seq 'I_n) := (u =Br v) || (reduces u v).
+ +
+Lemma braidred_catl (u v w : seq 'I_n) :
+  braid_reduces u v -> braid_reduces (u ++ w) (v ++ w).
+ +
+Lemma braidredE u v : braid_reduces u v -> 's_[u] = 's_[v].
+ +
+End Reduced.
+Arguments reducedP {n w}.
+ +
+Notation reduced := (reduced_word _).
+Notation braidred := (@braid_reduces _).
+ +
+#[export] Hint Resolve braidww : core.
+ +
+
+ +
+

The cocode insertion algorithm

+ +
+
+Section CanWord.
+ +
+Variable (n0 : nat).
+#[local] Notation n := n0.+1.
+#[local] Notation "''s_' i" := (eltr n i) : group_scope.
+#[local] Notation "''s_[' w ]" := (\prod_(i <- w) 's_i).
+#[local] Notation "a =Br b" := (braidcongr a b).
+ +
+Fixpoint inscode (c : seq nat) (i : 'I_n) :=
+  if c is c0 :: c' then
+    let m := size c' in
+    if i > m - c0 then c0 :: inscode c' (inord i.-1)
+    else if i == m - c0 :> nat then c0.-1 :: c'
+    else if i.+1 == m - c0 :> nat then c0.+1 :: c'
+    else c0 :: inscode c' i
+  else [::].
+ +
+Lemma size_inscode c i : size (inscode c i) = size c.
+ +
+Lemma head_revcode c0 c : rev (c0 :: c) \is a code -> c0 <= size c.
+ +
+Lemma inord_predS (i : 'I_n) a b :
+  a < i -> i < b -> (inord (n' := n0) i.-1).+1 < b.
+ +
+Lemma inscodeP c (i : 'I_n) :
+  rev c \is a code -> i.+1 < size c -> rev (inscode c i) \is a code.
+ +
+Definition wcord c : seq 'I_n := map inord (wordcd (rev c)).
+ +
+Lemma wcordE c :
+  rev c \is a code -> size c <= n.+1 -> wcord c = pmap insub (wordcd (rev c)).
+ +
+Lemma reduced_wcord c :
+  rev c \is a code -> size c <= n.+1 -> wcord c \is reduced.
+ +
+Lemma wcord_cons c i :
+  wcord (i :: c) = wcord c ++ map inord (rev (iota (size c - i) i)).
+ +
+Lemma ltn_braidC (s : seq 'I_n) (i : 'I_n) :
+  (forall u, u \in s -> u.+1 < i) -> [:: i] ++ s =Br s ++ [:: i].
+ +
+Lemma gtn_braidC (s : seq 'I_n) (i : 'I_n) :
+  (forall u, u \in s -> i.+1 < u) -> [:: i] ++ s =Br s ++ [:: i].
+ +
+Lemma iota_cut_i (l b : nat) (i : 'I_n) :
+  l <= b -> b - l < i -> i < b -> iota (b - l) l =
+  (iota (b - l) (i.-1 - (b - l))) ++ [:: i.-1; i : nat] ++ (iota i.+1 (b - i.+1)).
+ +
+#[local] Notation "''I[' a '..' b ']'" :=
+  [seq inord i | i <- rev (iota (b - a) a)].
+ +
+Lemma braid_pred_lineC (i : 'I_n) (sz c : nat) :
+  sz <= n -> i < sz -> c <= sz -> sz - c < i ->
+  ([:: inord i.-1] ++ 'I[c .. sz]) =Br ('I[c .. sz] ++ [:: i]).
+ +
+Lemma braid_ltn_lineC (i : 'I_n) (sz c : nat) :
+  sz <= n -> i.+1 < sz - c -> c <= sz ->
+  [:: i] ++ 'I[c .. sz] =Br 'I[c .. sz] ++ [:: i].
+ +
+Implicit Type (u v w : seq 'I_n).
+ +
+Lemma path_braidred_catl p u w :
+  path braidred u p -> path braidred (u ++ w) [seq v ++ w | v <- p].
+ +
+Lemma braidred_inscode_path c (i : 'I_n) :
+  rev c \is a code -> size c <= n.+1 -> i.+1 < size c ->
+  { p | path braidred ((wcord c) ++ [:: i]) p /\
+        last ((wcord c) ++ [:: i]) p = wcord (inscode c i) }.
+ +
+
+ +
+

Straigthening a word

+ +
+
+Fixpoint straighten_rev w :=
+  if w is w0 :: w then inscode (straighten_rev w) w0 else (nseq n.+1 0).
+Definition straighten w := straighten_rev (rev w).
+ +
+Lemma size_straighten w : size (straighten w) = n.+1.
+ +
+Lemma is_code_straighten w : rev (straighten w) \is a code.
+ +
+Lemma straighten_path_npos w :
+  { p | path braidred w p /\ last w p = wcord (straighten w) }.
+ +
+Theorem prods_straighten w : 's_[wcord (straighten w)] = 's_[w].
+ +
+Corollary cocode_straightenE w : rev (straighten w) = cocode 's_[w].
+ +
+Corollary canword_straightenE w : wcord (straighten w) = canword 's_[w].
+ +
+Corollary canword_path_npos w :
+  { p | path braidred w p /\ last w p = canword 's_[w] }.
+ +
+End CanWord.
+ +
+Notation "''s_' i" := (eltr _ i) : group_scope.
+Notation "''s_[' w ']'" := (\prod_(i <- w) 's_i) : group_scope.
+ +
+#[local] Notation "a =Br b" := (braidcongr a b) : bool_scope.
+ +
+Section BraidRed.
+ +
+Variable n : nat.
+Implicit Types (u v w : seq 'I_n).
+ +
+Theorem braidred_to_canword w :
+  { p | path braidred w p /\ last w p = canword 's_[w] }.
+ +
+Lemma braidred_size_decr w p : path braidred w p -> size w >= size (last w p).
+ +
+Theorem braid_to_canword w : w \is reduced -> w =Br canword 's_[w].
+ +
+Theorem reduceP u : u \isn't reduced -> exists v w, u =Br v /\ reduces v w.
+ +
+
+ +
+Matsumoto Theorem +
+
+Corollary reduced_braid v w :
+  v \is reduced -> w \is reduced -> ('s_[v] == 's_[w] :> 'S_n.+1) = (v =Br w).
+ +
+Lemma canword_eltr (i : 'I_n) : canword 's_i = [:: i].
+ +
+End BraidRed.
+ +
+
+ +
+

The presentation of the symmetric groups

+ +
+
+Section PresentationSn.
+ +
+Variable n : nat.
+Variable gT : finGroupType.
+Variable eltrG : nat -> gT.
+ +
+#[local] Notation "''g_' i" :=
+  (eltrG i) (at level 8, i at level 2, format "''g_' i").
+ +
+Variant relat_Sn : Prop :=
+  RelatSn of
+    (forall i, i < n -> 'g_i^+2 = 1) &
+    (forall i, i.+1 < n -> 'g_i * 'g_i.+1 * 'g_i = 'g_i.+1 * 'g_i * 'g_i.+1) &
+    (forall i j, i.+1 < j < n -> 'g_i * 'g_j = 'g_j * 'g_i)
+  : relat_Sn.
+ +
+Theorem presentation_Sn_eltr :
+  relat_Sn ->
+  exists f : {morphism 'SG_n.+1 >-> gT}, forall i, i < n -> f 's_i = 'g_i.
+ +
+End PresentationSn.
+ +
+Lemma joingU1 (gt : finGroupType) (a : gt) (S : {set gt}) :
+  <[a]> <*> <<S>> = << a |: S >>.
+ +
+Lemma presentation_S2 :
+  'SG_2 \isog Grp ( s0 : s0^+2 ).
+ +
+Lemma presentation_S3 :
+  'SG_3 \isog Grp ( s0 : s1 : (s0^+2 = s1^+2 = 1, s0*s1*s0 = s1*s0*s1) ).
+ +
+Lemma presentation_S4 :
+  'SG_4 \isog Grp (
+          s0 : s1 : s2 :
+            (s0^+2, s1^+2, s2^+2,
+             s0*s1*s0 = s1*s0*s1, s1*s2*s1 = s2*s1*s2,
+             s0*s2 = s2*s0
+        ) ).
+ +
+
+
+ + + +
+ + + \ No newline at end of file diff --git a/combi/1.1.0/Combi.SymGroup.reprSn.html b/combi/1.1.0/Combi.SymGroup.reprSn.html new file mode 100644 index 00000000..b7240a34 --- /dev/null +++ b/combi/1.1.0/Combi.SymGroup.reprSn.html @@ -0,0 +1,309 @@ + + + + + +Combi.SymGroup.reprSn: Basic representations of the Symmetric Groups + + + + +
+ + + +
+ +

Library Combi.SymGroup.reprSn: Basic representations of the Symmetric Groups

+ +
+
+ +
+ +
+
+
+ +
+

Basic representation of the Symmetric Groups

+ + +
+ +We define the two representations of dimension 1 together with the natural +representation, and show that 'S_2 has only 2 representations. More precisely, +for a fixed n and g : 'S_n: + +
+ +
    +
  • triv_mx g == the 1x1 identity matrix. + +
  • +
  • sign_mx g == the 1x1 scalar matrix equal to the sign of g. + +
  • +
  • signed_mx R g == given a representation R the matrix sign g * R g + +
  • +
  • nat_mx g == the permutation matrix associated to g + +
  • +
+ +
+ +These four matrices are actually representation matrices: + +
+ +
    +
  • triv_repr == the trivial representation + +
  • +
  • sign_repr == the sign representation + +
  • +
  • signed_repr R == the representation R times the sign + +
  • +
  • nat_repr n == the natural representation of degree n + +
  • +
+ +
+ +We show in Lemmas repr1 and repr_S2 that triv_repr and sign_repr +exhausts all representations of 'S_n of degree 1 and all irreducible +representations of of 'S_2. + +
+
+From mathcomp Require Import all_boot.
+From mathcomp Require Import fingroup perm ssralg morphism perm action.
+From mathcomp Require Import zmodp. From mathcomp Require Import vector matrix mxalgebra ssrnum algC.
+From mathcomp Require Import mxrepresentation classfun character.
+ +
+Require Import permcomp tools partition congr cycles cycletype presentSn.
+ +
+Set Implicit Arguments.
+ +
+Import GroupScope GRing.Theory Num.Theory.
+#[local] Open Scope ring_scope.
+ +
+#[local] Notation reprS n d := (mx_representation algC 'SG_n d).
+ +
+Section TcastVal.
+Variable (T : eqType).
+ +
+Lemma tval_tcastE m n (eq_mn : m = n) (t : m.-tuple T) :
+  tcast eq_mn t = t :> seq T.
+ +
+End TcastVal.
+ +
+Section LinRepr.
+ +
+Variables (gT : finGroupType) (G : {group gT}).
+ +
+Lemma cfRepr1_lin_char (rG : mx_representation algC G 1) :
+  cfRepr rG \is a linear_char.
+ +
+Lemma lin_char_reprP xi :
+  reflect (exists rG : mx_representation algC G 1, xi = cfRepr rG)
+          (xi \is a linear_char).
+ +
+End LinRepr.
+ +
+Lemma NirrSn n : Nirr 'SG_n = #|{: 'P_n}|.
+ +
+Section EltrConj.
+ +
+Variable n : nat.
+ +
+Lemma cycle_type_eltr i :
+  (i < n)%N -> cycle_typeSn (eltr n i) = hookpartn n.+1 1.
+ +
+Lemma eltr_conj i j :
+  (i < n)%N -> (j < n)%N -> exists t, eltr n i = ((eltr n j) ^ t)%g.
+ +
+End EltrConj.
+ +
+
+ +
+

Representation of dimension 1 and natural representation

+ +
+
+Section DefTrivSign.
+ +
+Context {n : nat} (d : nat).
+ +
+Definition triv_mx (g : 'S_n) : 'M[algC]_1 := 1.
+Definition sign_mx (g : 'S_n) : 'M[algC]_1 := (-1) ^+ (odd_perm g).
+Definition signed_mx (rho : reprS n d) (g : 'S_n) : 'M[algC]_d :=
+  (-1) ^+ (odd_perm g) *: rho g.
+ +
+Definition nat_mx (g : 'S_n) : 'M[algC]_n := perm_mx g.
+ +
+Lemma triv_mx_repr : mx_repr 'SG_n triv_mx.
+ Canonical triv_repr : reprS n 1 := MxRepresentation triv_mx_repr.
+ +
+Lemma triv_irr : mx_irreducible triv_repr.
+ +
+Lemma sign_mx_repr : mx_repr 'SG_n sign_mx.
+Canonical sign_repr : reprS n 1 := MxRepresentation sign_mx_repr.
+ +
+Lemma sign_irr : mx_irreducible sign_repr.
+ +
+Lemma signed_mx_repr rho : mx_repr 'SG_n (signed_mx rho).
+Canonical signed_repr rho : reprS n d := MxRepresentation (signed_mx_repr rho).
+ +
+Lemma nat_mx_repr : mx_repr 'SG_n nat_mx.
+ Canonical nat_repr : reprS n n := MxRepresentation nat_mx_repr.
+ +
+Lemma cfRepr_triv : cfRepr triv_repr = 1.
+ +
+Lemma cfRepr_trivE : cfRepr triv_repr = 'chi_0.
+Lemma triv_Chi : mx_rsim triv_repr 'Chi_0.
+ +
+Lemma sign_char_subproof :
+  is_class_fun <<'SG_n>> [ffun g => (-1) ^+ (odd_perm g)].
+Definition sign_char := Cfun 0 sign_char_subproof.
+ +
+Lemma cfRepr_sign : cfRepr sign_repr = sign_char.
+Lemma sign_charP : sign_char \is a linear_char.
+ +
+Lemma cfRepr_signed (rho : reprS n d) :
+  cfRepr (signed_repr rho) = sign_char * cfRepr rho.
+ +
+End DefTrivSign.
+ +
+
+ +
+

Representations of the symmetric Group for n = 0 and 1

+ +
+
+ +
+Lemma row_free1 : row_free (1 : 'M[algC]_1).
+ +
+Lemma charSG0 X : X \in irr 'SG_0 -> X = 1.
+ +
+Lemma charSG1 X : X \in irr 'SG_1 -> X = 1.
+ +
+Lemma repr1_S0 (rho : reprS 0 1) : mx_rsim rho triv_repr.
+ +
+Lemma repr1_S1 (rho : reprS 1 1) : mx_rsim rho triv_repr.
+ +
+
+ +
+

Representations of dimension 1 the symmetric Group for n > 1

+ +
+
+ +
+Lemma triv_sign_neq n : (n > 1)%N -> 1 != sign_char :> 'CF('SG_n).
+ +
+Lemma triv_sign_not_sim n :
+  (n > 1)%N -> ~ mx_rsim (G := [group of 'SG_n]) triv_repr sign_repr.
+ +
+Lemma lin_char_Sn n (xi : 'CF('SG_n)) :
+  xi \is a linear_char -> xi = 1 \/ xi = sign_char.
+ +
+Lemma repr1 n (rho : reprS n 1) :
+  mx_rsim rho triv_repr \/ mx_rsim rho sign_repr.
+ +
+
+ +
+

Representations of the symmetric Group for n=2

+ +
+
+ +
+Lemma NirrS2 : Nirr 'SG_2 = 2.
+ +
+Lemma cast_IirrS2 (i : Iirr 'SG_2) :
+  i != 0 -> i = cast_ord (esym NirrS2) 1.
+ +
+Lemma sign_char2 : sign_char = 'chi_(cast_ord (esym NirrS2) 1).
+ +
+Lemma cfRepr_sign2 : cfRepr sign_repr = 'chi_(cast_ord (esym NirrS2) 1).
+ +
+Lemma sign_Chi2 : mx_rsim sign_repr 'Chi_(cast_ord (esym NirrS2) 1).
+ +
+Lemma irr_S2 : irr 'SG_2 = tcast (esym NirrS2) [tuple 1; sign_char].
+ +
+Lemma repr_S2 (rho : representation algC [group of 'SG_2]) :
+  mx_irreducible rho -> mx_rsim rho triv_repr \/ mx_rsim rho sign_repr.
+
+
+ + + +
+ + + \ No newline at end of file diff --git a/combi/1.1.0/Combi.SymGroup.towerSn.html b/combi/1.1.0/Combi.SymGroup.towerSn.html new file mode 100644 index 00000000..6fdb6be9 --- /dev/null +++ b/combi/1.1.0/Combi.SymGroup.towerSn.html @@ -0,0 +1,534 @@ + + + + + +Combi.SymGroup.towerSn: The Tower of the Symmetric Groups + + + + +
+ + + +
+ +

Library Combi.SymGroup.towerSn: The Tower of the Symmetric Groups

+ +
+
+ +
+ +
+
+
+ +
+

The Tower of the Symmetric Groups

+ + +
+ +External product of class functions: + +
+ +We fix two groups G and H. Then we define: + +
+ +
    +
  • f \ox g = cfextprod g h == the external product of class function, + defined by f \ox g (u, v) := f u * f v for (u, v) in G * H. + It is of of type 'CF(setX G H) when g : 'CF(G) and + h : 'CF(H). + +
  • +
  • cfextprodr g h == cfextprod h g + +
  • +
  • extprod_repr rG rH == the external product (tensor product) of matrix + representation. Its character is the external product of the + character of rG and rH. + +
  • +
+ +
+ + +
+ +The tower of the symmetric groups + +
+ +
    +
  • tinj == the tower injection morphism : 'S_m * 'S_n -> 'S_(m + n) + +
  • +
  • f \o^ g == the image along tinj of the external product of f and g. + +
  • +
+ +
+ +Induction and restriction of class functions + +
+ +
    +
  • 'z_p == zcoeff p == The cardinality of the centralizer of any + permutation of cycle type p in algC, that is + #|'S_k| / #|class p|. + +
  • +
  • '1z_p = ncfuniCT p == the normalized cycle indicator class function + for cycle type p == 'z_p *: '1_[p]. + +
  • +
+ +
+ +The two main results are: + +
+ +
    +
  • Theorem cfuni_Res which expands the restriction to 'S_m * 'S_n + of the cycle indicator class function '1_[l]: +
    +    'Res[tinj @* ('dom tinj)] '1_[l] =
    +      \sum_(pp | l == pp.1 +|+ pp.2) '1_[pp.1] \o^ '1_[pp.2]. +
    + +
    by Frobenius duality it implies: + +
    + + +
  • +
  • Theorem ncfuniCT_Ind which expands the induction of two normalized + cycle indicator class functions: +
    +    'Ind['SG_(m + n)] ('1z_[p] \o^ '1z_[q]) = '1z_[p +|+ q]. +
    + +
    +
  • +
+ +
+
+From HB Require Import structures.
+From mathcomp Require Import all_boot.
+From mathcomp Require Import ssralg fingroup morphism perm gproduct.
+From mathcomp Require Import ssrnum matrix vector mxalgebra algC.
+From mathcomp Require Import classfun character mxrepresentation.
+From mathcomp Require Import sesquilinear.
+ +
+Require Import tools ordcast partition sorted.
+Require Import permcomp cycles cycletype permcent.
+ +
+Notation "''SG_' n" := [set: 'S_n]
+  (at level 8, n at level 2, format "''SG_' n").
+ +
+Import LeqGeqOrder.
+ +
+Set Implicit Arguments.
+ +
+Import GroupScope GRing.Theory.
+#[local] Open Scope Combi_scope.
+ +
+Section classGroup.
+ +
+Variables gT aT: finGroupType.
+Variable G H : {group gT}.
+ +
+Lemma class_disj x y :
+  y \notin x ^: G -> x ^: G :&: y ^: G = set0.
+ +
+Lemma prod_conjg (x y : gT * aT) : x ^ y = (x.1 ^ y.1, x.2 ^ y.2).
+ +
+End classGroup.
+ +
+
+ +
+

External product of class functions

+ +
+
+Section CFExtProdDefs.
+ +
+Variables (gT aT : finGroupType).
+Variables (G : {group gT}) (H : {group aT}).
+ +
+#[local] Open Scope ring_scope.
+ +
+
+ +
+One could use the following alternative definition +
+Definition cast_cf (G H : {set gT}) (eq_GH : G = H) (f : 'CF(G)) :=
+  let: erefl in _ = H := eq_GH return 'CF(H) in f.
+Definition cfextprod (g : 'CF(G)) (h : 'CF(H)) : 'CF(setX G H) :=
+  (cfMorph (cast_cf (esym (@morphim_fstX _ _ G H)) g)) *
+  (cfMorph (cast_cf (esym (@morphim_sndX _ _ G H)) h)). +
+ +
and prove the equivalence: +
+Lemma cfextprodE g h x y : (g \ox h) (x, y) = (g x) * (h y). +
+ +
However, the more direct definition below leads to simpler proofs, at least +once we have proved that it is indeed a class function. + +
+
+Fact cfextprod_subproof (g : 'CF(G)) (h : 'CF(H)) :
+  is_class_fun <<setX G H>> [ffun x => g x.1 * h x.2].
+Definition cfextprod g h := Cfun 0 (cfextprod_subproof g h).
+ +
+End CFExtProdDefs.
+ +
+Notation "f \ox g" := (cfextprod f g) (at level 40, left associativity).
+ +
+Section CFExtProdTheory.
+ +
+Variables (gT aT : finGroupType).
+Variables (G : {group gT}) (H : {group aT}).
+Implicit Type (g : 'CF(G)) (h : 'CF(H)).
+ +
+#[local] Open Scope ring_scope.
+ +
+Fact cfextprod_is_bilinear :
+  bilinear_for *:%R *:%R (cfextprod (G := G) (H := H)).
+ +
+Lemma cfextprod0r g : g \ox (0 : 'CF(H)) = 0.
+Lemma cfextprodNr g h : g \ox - h = - (g \ox h).
+Lemma cfextprodDr g h1 h2 : g \ox (h1 + h2) = g \ox h1 + g \ox h2.
+Lemma cfextprodBr g h1 h2 : g \ox (h1 - h2) = g \ox h1 - g \ox h2.
+Lemma cfextprodMnr h g n : g \ox (h *+ n) = (g \ox h) *+ n.
+Lemma cfextprod_sumr g I r (P : pred I) (phi : I -> 'CF(H)) :
+  g \ox (\sum_(i <- r | P i) phi i) = \sum_(i <- r | P i) g \ox phi i.
+Lemma cfextprodZr g a h : g \ox (a *: h) = a *: (g \ox h).
+ +
+Lemma cfextprod0l h : (0 : 'CF(G)) \ox h = 0.
+Lemma cfextprodNl h g : - g \ox h = - g \ox h.
+Lemma cfextprodDl h g1 g2 : (g1 + g2) \ox h = g1 \ox h + g2 \ox h.
+Lemma cfextprodBl h g1 g2 : (g1 - g2) \ox h = g1 \ox h - g2 \ox h.
+Lemma cfextprodMnl h g n : g *+ n \ox h = g \ox h *+ n.
+Lemma cfextprod_suml h I r (P : pred I) (phi : I -> 'CF(G)) :
+  (\sum_(i <- r | P i) phi i) \ox h = \sum_(i <- r | P i) phi i \ox h.
+Lemma cfextprodZl h a g : (a *: g) \ox h = a *: (g \ox h).
+ +
+Section ReprExtProd.
+ +
+Variables (n1 n2 : nat).
+Variables (rG : mx_representation algC G n1)
+          (rH : mx_representation algC H n2).
+ +
+Fact extprod_mx_repr_subproof :
+  mx_repr (setX G H) (fun x => tprod (rG x.1) (rH x.2)).
+Definition extprod_mx_repr := MxRepresentation extprod_mx_repr_subproof.
+ +
+Lemma cfRepr_extprod : cfRepr extprod_mx_repr = cfRepr rG \ox cfRepr rH.
+ +
+End ReprExtProd.
+ +
+Lemma cfextprod_char g h :
+  g \is a character -> h \is a character -> g \ox h \is a character.
+ +
+End CFExtProdTheory.
+ +
+
+ +
+

Injection morphism of the tower of the symmetric groups

+ +
+
+Section TowerMorphism.
+ +
+Variables m n : nat.
+ +
+#[local] Notation ct := cycle_typeSn.
+#[local] Notation SnXm := (setX 'SG_m 'SG_n).
+ +
+Definition tinjval (s : 'S_m * 'S_n) :=
+  fun (x : 'I_(m + n)) => match split x with
+  | inl a => unsplit (inl (s.1 a))
+  | inr a => unsplit (inr (s.2 a))
+  end.
+ +
+Fact tinjval_inj s : injective (tinjval s).
+Definition tinj s : 'S_(m + n) := perm (@tinjval_inj s).
+ +
+Fact tinj_morphM : {morph tinj : x y / x * y >-> x * y}.
+Canonical morph_of_tinj := Morphism (D := SnXm) (in2W tinj_morphM).
+ +
+Lemma isom_tinj : isom SnXm (tinj @* ('dom tinj)) tinj.
+ +
+Lemma expg_tinj_lshift s a i :
(tinj s ^+ i) (lshift n a) = lshift n ((s.1 ^+ i) a).
+ +
+Lemma expg_tinj_rshift s a i :
+  (tinj s ^+ i) (rshift m a) = rshift m ((s.2 ^+ i) a).
+ +
+Lemma porbit_tinj_lshift s a :
+  porbit (tinj s) (lshift n a) = [set @lshift m n x | x in porbit s.1 a].
+ +
+Lemma porbit_tinj_rshift s a :
+  porbit (tinj s) (rshift m a) = [set @rshift m n x | x in porbit s.2 a].
+ +
+Lemma porbits_tinj s :
+  porbits (tinj s) =
+  [set (@lshift m n) @: x | x : {set 'I_m} in porbits s.1]
+    :|:
+    [set (@rshift m n) @: x | x : {set 'I_n} in porbits s.2].
+ +
+Lemma cycle_type_tinj s : ct (tinj s) = ct s.1 +|+ ct s.2.
+ +
+End TowerMorphism.
+ +
+Arguments tinj {m n} s.
+ +
+
+ +
+

The tower is associative (upto isomorphism) with unit

+ +
+
+Section Assoc.
+ +
+Variables m n p : nat.
+ +
+Lemma cast_rshift j : cast_ord (esym (add0n n)) j = rshift 0 j.
+ +
+Lemma cast_lshift j : cast_ord (esym (addn0 n)) j = lshift 0 j.
+ +
+Lemma tinj1E (t : 'S_n) : tinj (1%g, t) = cast_perm (esym (add0n n)) t.
+ +
+Lemma tinjE1 (t : 'S_n) : tinj (t, 1%g) = cast_perm (esym (addn0 n)) t.
+ +
+Lemma tinjA (s : 'S_m) (t : 'S_n) (u : 'S_p) :
+  tinj (tinj(s, t), u) = cast_perm (addnA m n p) (tinj (s, tinj (t, u))).
+ +
+Lemma cycle_type_tinjC (s : 'S_m) (t : 'S_n) :
+  cycle_typeSn (tinj (s, t)) =
+  cycle_typeSn (cast_perm (esym (addnC m n)) (tinj (t, s))).
+ +
+End Assoc.
+ +
+Notation "f \o^ g" := (cfIsom (isom_tinj _ _) (f \ox g)) (at level 40).
+ +
+#[local] Open Scope ring_scope.
+ +
+
+ +
+

Restriction formula

+ +
+
+Section Restriction.
+ +
+Variables m n : nat.
+#[local] Notation ct := cycle_typeSn.
+ +
+Lemma cfuni_tinj s (l : 'P_(m + n)) :
+  '1_[l] (tinj s) = (l == ct s.1 +|+ ct s.2)%:R.
+ +
+Theorem cfuni_Res (l : 'P_(m + n)) :
+  'Res[tinj @* ('dom tinj)] '1_[l] =
+  \sum_(pp | l == pp.1 +|+ pp.2) '1_[pp.1] \o^ '1_[pp.2].
+ +
+End Restriction.
+ +
+
+ +
+

Induction formula

+ +
+
+Section Induction.
+ +
+Variables m n : nat.
+ +
+Implicit Types (p : 'P_m) (q : 'P_n).
+ +
+#[local] Notation ct := cycle_typeSn.
+#[local] Notation SnXm := (setX 'SG_m 'SG_n).
+#[local] Notation classX p q := ((permCT p, permCT q) ^: SnXm).
+ +
+Import GroupScope GRing.Theory Num.Theory.
+#[local] Open Scope ring_scope.
+ +
+Lemma classXE p q : classX p q = setX (classCT p) (classCT q).
+ +
+Lemma cfextprod_cfuni p q : '1_[p] \ox '1_[q] = '1_(classX p q).
+ +
+Lemma cfdot_classfun_part p1 p2 :
+  '[ '1_[p1], '1_[p2] ] = #|'SG_m|%:R^-1 * #|classCT p1|%:R * (p1 == p2)%:R.
+ +
+Lemma decomp_cf_triv : \sum_(p : 'P_n) '1_[p] = 1.
+ +
+Lemma classXI p1 p2 q1 q2 :
+  (p2, q2) != (p1, q1) -> (classX p1 q1) :&: (classX p2 q2) = set0.
+ +
+
+ +
+The normalized cycle type indicator basis +
+
+Definition zcoeff (k : nat) (p : 'P_k) : algC :=
+  #|'SG_k|%:R / #|classCT p|%:R.
+ +
+Notation "''z_' p" := (zcoeff p) (at level 2, format "''z_' p").
+ +
+Lemma zcoeffE k (l : 'P_k) : zcoeff l = (zcard l)%:R.
+ +
+Lemma neq0zcoeff (k : nat) (p : 'P_k) : 'z_p != 0.
+ +
+Hint Resolve neq0zcoeff : core.
+ +
+Definition ncfuniCT (k : nat) (p : 'P_k) := 'z_p *: '1_[p].
+ +
+Notation "''1z_[' p ]" := (ncfuniCT p) (format "''1z_[' p ]").
+ +
+Lemma ncfuniCT_gen k (f : 'CF('SG_k)) :
+  f = \sum_(p : 'P_k) f (permCT p) / 'z_p *: '1z_[p].
+ +
+Lemma cfdotr_ncfuniCT k (f : 'CF('SG_k)) (s : 'S_k) : (f s) = '[f, '1z_[ct s]].
+ +
+
+ +
+Application of Frobenius duality : cfdot_Res_r +
+
+Lemma cfdot_Ind_cfuniCT p q (l : 'P_(m + n)) :
+  '[ 'Ind['SG_(m + n)] ('1_[p] \o^ '1_[q]), '1_[l] ] =
+  (p +|+ q == l)%:R / 'z_p / 'z_q.
+ +
+Lemma cfdot_Ind_ncfuniCT p q (l : 'P_(m + n)) :
+  '[ 'Ind['SG_(m + n)] ('1z_[p] \o^ '1z_[q]), '1z_[l] ] =
+  (p +|+ q == l)%:R * 'z_l.
+ +
+Theorem ncfuniCT_Ind p q :
+  'Ind['SG_(m + n)] ('1z_[p] \o^ '1z_[q]) = '1z_[p +|+ q].
+ +
+End Induction.
+ +
+Notation "''z_' p" := (zcoeff p) (at level 2, format "''z_' p").
+Notation "''1z_[' p ]" := (ncfuniCT p) (format "''1z_[' p ]").
+ +
+#[export] Hint Resolve neq0zcoeff : core.
+
+
+ + + +
+ + + \ No newline at end of file diff --git a/combi/1.1.0/Combi.SymGroup.weak_order.html b/combi/1.1.0/Combi.SymGroup.weak_order.html new file mode 100644 index 00000000..fc4f9062 --- /dev/null +++ b/combi/1.1.0/Combi.SymGroup.weak_order.html @@ -0,0 +1,313 @@ + + + + + +Combi.SymGroup.weak_order: The weak order on the Symmetric Group + + + + +
+ + + +
+ +

Library Combi.SymGroup.weak_order: The weak order on the Symmetric Group

+ +
+
+ +
+ +
+
+
+ +
+

The weak order on the Symmetric Group

+ + +
+ +We define the right (with the mathcomp convention of product of permutation) +weak order on the symmetric group. We show that it is equivalent to inclusion +of sets of inversions and that it is a lattice. + +
+ +We define the following notations: + +
+ +
    +
  • s <=R t == s is smaller than t for the right weak order. + +
  • +
  • s <R t == s is strictly smaller than t for the right weak order. + +
  • +
  • s \/R t == the meet of s and t for the right weak order. + +
  • +
  • s /\R t == the join of s and t for the right weak order. + +
  • +
+ +
+ + +
+
+From HB Require Import structures.
+From mathcomp Require Import all_boot order.
+From mathcomp Require Import fingroup perm morphism presentation.
+ +
+Require Import permcomp tools permuted combclass congr presentSn ordtype.
+ +
+Set Implicit Arguments.
+ +
+Import GroupScope.
+Import Order.Theory.
+ +
+#[local] Open Scope Combi_scope.
+ +
+Reserved Notation "s '<=R' t" (at level 70, t at next level).
+Reserved Notation "s '<R' t" (at level 70, t at next level).
+Reserved Notation "s '/\R' t" (at level 70, t at next level).
+Reserved Notation "s '\/R' t" (at level 70, t at next level).
+ +
+Fact perm_display : Order.disp_t.
+ +
+Module WeakOrder.
+Section Def.
+ +
+Context {n0 : nat}.
+#[local] Notation n := n0.+1.
+Implicit Type (s t u v : 'S_n).
+ +
+Definition leperm s t :=
+  [exists u, (t == s * u) && (length t == length s + length u)].
+ +
+#[local] Notation "s '<=R' t" := (leperm s t).
+ +
+Fact lepermP s t :
+  reflect (exists2 u, t = s * u & length t = length s + length u)
+          (s <=R t).
+ +
+Fact leperm_length s t : s <=R t -> length s <= length t.
+ +
+Fact leperm_lengthE s t : s <=R t -> length s = length t -> s = t.
+ +
+Fact leperm_refl s : s <=R s.
+ +
+Fact leperm_trans : transitive leperm.
+ +
+Fact leperm_anti : antisymmetric leperm.
+ +
+#[export] HB.instance Definition _ := Finite.on 'S_n.
+#[export] HB.instance Definition _ :=
+  Order.Le_isPOrder.Build perm_display 'S_n
+    leperm_refl leperm_anti leperm_trans.
+ +
+End Def.
+ +
+Module Exports.
+ +
+Notation "x <=R y" := (@Order.le perm_display _ (x : 'S__) y) : Combi_scope.
+Notation "x <R y" := (@Order.lt perm_display _ (x : 'S__) y) : Combi_scope.
+Notation "x /\R y" := (@Order.meet perm_display _ (x : 'S__) y) : Combi_scope.
+Notation "x \/R y" := (@Order.join perm_display _ (x : 'S__) y) : Combi_scope.
+ +
+Section WeakOrder.
+ +
+Variable (n0 : nat).
+#[local] Notation n := n0.+1.
+Implicit Type (s t u v : 'S_n).
+ +
+Definition lepermP s t :
+  reflect
+    (exists2 u : 'S_n, t = s * u & length t = length s + length u)
+    (s <=R t)
+  := lepermP s t.
+Definition leperm_length : forall s t, s <=R t -> length s <= length t
+  := leperm_length.
+Definition leperm_lengthE : forall s t, s <=R t -> length s = length t -> s = t
+  := leperm_lengthE.
+End WeakOrder.
+End Exports.
+End WeakOrder.
+ +
+Section LEPermTheory.
+ +
+Variable (n0 : nat).
+#[local] Notation n := n0.+1.
+Implicit Type (s t u v : 'S_n).
+ +
+Lemma ltperm_length s t : s <R t -> length s < length t.
+ +
+Lemma leperm1p s : (1%g : 'S_n) <=R s.
+ +
+Lemma leperm_maxpermMl s t : (maxperm * t <=R maxperm * s) = (s <=R t).
+ +
+Lemma leperm_maxperm s : s <=R maxperm.
+ +
+Lemma leperm_factorP s t :
+  reflect (exists2 w : seq 'I_n0, w \is reduced &
+              exists2 l : nat, t = 's_[w] & s = 's_[take l w])
+          (s <=R t).
+ +
+Lemma leperm_succ s t :
+  s <R t -> exists2 i : 'I_n0, (s <R s * 's_i) & (s * 's_i <=R t).
+ +
+Lemma covers_permP s t :
+  reflect (exists2 i : 'I_n0, s <R s * 's_i & t = s * 's_i) (covers s t).
+ +
+Theorem leperm_invset s t : (s <=R t) = (invset s \subset invset t).
+ +
+Corollary ltperm_invset s t : (s <R t) = (invset s \proper invset t).
+ +
+End LEPermTheory.
+ +
+Section TClosureInvset.
+ +
+Variable (n0 : nat).
+#[local] Notation n := n0.+1.
+Implicit Type (s t u v : 'S_n) (A B : {set 'I_n * 'I_n}).
+ +
+Lemma tclosure_Delta A : A \subset Delta -> tclosure A \subset Delta.
+ +
+Lemma tclosureP A : A \subset Delta -> transitive (srel (tclosure A)).
+ +
+Lemma is_invset_tclosureU A B :
+  is_invset A -> is_invset B -> is_invset (tclosure (A :|: B)).
+ +
+End TClosureInvset.
+ +
+Module PermLattice.
+Section PermLattice.
+ +
+Variable (n0 : nat).
+#[local] Notation n := n0.+1.
+Implicit Type (s t u v : 'S_n) (A B : {set 'I_n * 'I_n}).
+ +
+Definition supperm s t : 'S_n :=
+  perm_of_invset (tclosure (invset s :|: invset t)).
+Definition infperm s t : 'S_n :=
+  maxperm * (supperm (maxperm * s) (maxperm * t)).
+ +
+Lemma invset_supperm s t :
+  invset (supperm s t) = tclosure (invset s :|: invset t).
+ +
+Lemma suppermC s t : supperm s t = supperm t s.
+ +
+Lemma suppermPr s t : s <=R (supperm s t).
+ +
+Lemma suppermPl s t : t <=R (supperm s t).
+ +
+Fact suppermP s t w : s <=R w -> t <=R w -> (supperm s t) <=R w.
+ +
+Fact supperm_is_join x y z : (supperm x y <=R z) = (x <=R z) && (y <=R z).
+Fact infperm_is_meet x y z : (x <=R infperm y z) = (x <=R y) && (x <=R z).
+ +
+#[export] HB.instance Definition _ :=
+  Order.POrder_MeetJoin_isLattice.Build perm_display ('S_n)
+    infperm_is_meet supperm_is_join.
+#[export] HB.instance Definition _ :=
+  Order.hasBottom.Build perm_display ('S_n) (@leperm1p n0).
+#[export] HB.instance Definition _ :=
+  Order.hasTop.Build perm_display ('S_n) (@leperm_maxperm n0).
+ +
+End PermLattice.
+ +
+Module Exports.
+Section PermLattice.
+ +
+Variable (n0 : nat).
+#[local] Notation n := n0.+1.
+Implicit Type (s t u v : 'S_n) (A B : {set 'I_n * 'I_n}).
+ +
+Lemma bottom_perm : Order.bottom = (1 : 'S_n).
+Lemma top_perm : Order.top = @maxperm n.
+ +
+Lemma invset_join s t : invset (s \/R t) = tclosure (invset s :|: invset t).
+ +
+Lemma perm_join_meetE s t :
+  s /\R t = maxperm * (maxperm * s \/R maxperm * t).
+ +
+End PermLattice.
+End Exports.
+End PermLattice.
+
+
+ + + +
+ + + \ No newline at end of file diff --git a/combi/1.1.0/coqdoc.css b/combi/1.1.0/coqdoc.css new file mode 100644 index 00000000..48096e55 --- /dev/null +++ b/combi/1.1.0/coqdoc.css @@ -0,0 +1,338 @@ +body { padding: 0px 0px; + margin: 0px 0px; + background-color: white } + +#page { display: block; + padding: 0px; + margin: 0px; + padding-bottom: 10px; } + +#header { display: block; + position: relative; + padding: 0; + margin: 0; + vertical-align: middle; + border-bottom-style: solid; + border-width: thin } + +#header h1 { padding: 0; + margin: 0;} + + +/* Contents */ + +#main{ display: block; + padding: 10px; + font-family: sans-serif; + font-size: 100%; + line-height: 100% } + +#main h1 { line-height: 95% } /* allow for multi-line headers */ + +#main a.idref:visited {color : #416DFF; text-decoration : none; } +#main a.idref:link {color : #416DFF; text-decoration : none; } +#main a.idref:hover {text-decoration : none; } +#main a.idref:active {text-decoration : none; } + +#main a.modref:visited {color : #416DFF; text-decoration : none; } +#main a.modref:link {color : #416DFF; text-decoration : none; } +#main a.modref:hover {text-decoration : none; } +#main a.modref:active {text-decoration : none; } + +#main .keyword { color : #cf1d1d } +#main { color: black } + +.section { background-color: rgb(60%,60%,100%); + padding-top: 13px; + padding-bottom: 13px; + padding-left: 3px; + margin-top: 5px; + margin-bottom: 5px; + font-size : 175% } + +h2.section { background-color: rgb(80%,80%,100%); + padding-left: 3px; + padding-top: 12px; + padding-bottom: 10px; + font-size : 130% } + +h3.section { background-color: rgb(90%,90%,100%); + padding-left: 3px; + padding-top: 7px; + padding-bottom: 7px; + font-size : 115% } + +h4.section { +/* + background-color: rgb(80%,80%,80%); + max-width: 20em; + padding-left: 5px; + padding-top: 5px; + padding-bottom: 5px; +*/ + background-color: white; + padding-left: 0px; + padding-top: 0px; + padding-bottom: 0px; + font-size : 100%; + font-weight : bold; + text-decoration : underline; + } + +#main .doc { margin: 0px; + font-family: sans-serif; + font-size: 100%; + line-height: 125%; + max-width: 40em; + color: black; + padding: 10px; + background-color: #90bdff } + +.inlinecode { + display: inline; +/* font-size: 125%; */ + color: #666666; + font-family: monospace } + +.doc .inlinecode { + display: inline; + font-size: 120%; + color: rgb(30%,30%,70%); + font-family: monospace } + +.doc .inlinecode .id { + color: rgb(30%,30%,70%); +} + +.inlinecodenm { + display: inline; + color: #444444; +} + +.doc .code { + display: inline; + font-size: 120%; + color: rgb(30%,30%,70%); + font-family: monospace } + +.comment { + display: inline; + font-family: monospace; + color: rgb(50%,50%,80%); +} + +.code { + display: block; +/* padding-left: 15px; */ + font-size: 110%; + font-family: monospace; + } + +table.infrule { + border: 0px; + margin-left: 50px; + margin-top: 10px; + margin-bottom: 10px; +} + +td.infrule { + font-family: monospace; + text-align: center; +/* color: rgb(35%,35%,70%); */ + padding: 0px; + line-height: 100%; +} + +tr.infrulemiddle hr { + margin: 1px 0 1px 0; +} + +.infrulenamecol { + color: rgb(60%,60%,60%); + font-size: 80%; + padding-left: 1em; + padding-bottom: 0.1em +} + +/* Pied de page */ + +#footer { font-size: 65%; + font-family: sans-serif; } + +/* Identifiers: ) */ + +.id { display: inline; } + +.id[title="constructor"] { + color: rgb(60%,0%,0%); +} + +.id[title="var"] { + color: rgb(40%,0%,40%); +} + +.id[title="variable"] { + color: rgb(40%,0%,40%); +} + +.id[title="definition"] { + color: rgb(0%,40%,0%); +} + +.id[title="abbreviation"] { + color: rgb(0%,40%,0%); +} + +.id[title="lemma"] { + color: rgb(0%,40%,0%); +} + +.id[title="instance"] { + color: rgb(0%,40%,0%); +} + +.id[title="projection"] { + color: rgb(0%,40%,0%); +} + +.id[title="method"] { + color: rgb(0%,40%,0%); +} + +.id[title="inductive"] { + color: rgb(0%,0%,80%); +} + +.id[title="record"] { + color: rgb(0%,0%,80%); +} + +.id[title="class"] { + color: rgb(0%,0%,80%); +} + +.id[title="keyword"] { + color : #cf1d1d; +/* color: black; */ +} + +/* Deprecated rules using the 'type' attribute of (not xhtml valid) */ + +.id[type="constructor"] { + color: rgb(60%,0%,0%); +} + +.id[type="var"] { + color: rgb(40%,0%,40%); +} + +.id[type="variable"] { + color: rgb(40%,0%,40%); +} + +.id[title="binder"] { + color: rgb(40%,0%,40%); +} + +.id[type="definition"] { + color: rgb(0%,40%,0%); +} + +.id[type="abbreviation"] { + color: rgb(0%,40%,0%); +} + +.id[type="lemma"] { + color: rgb(0%,40%,0%); +} + +.id[type="instance"] { + color: rgb(0%,40%,0%); +} + +.id[type="projection"] { + color: rgb(0%,40%,0%); +} + +.id[type="method"] { + color: rgb(0%,40%,0%); +} + +.id[type="inductive"] { + color: rgb(0%,0%,80%); +} + +.id[type="record"] { + color: rgb(0%,0%,80%); +} + +.id[type="class"] { + color: rgb(0%,0%,80%); +} + +.id[type="keyword"] { + color : #cf1d1d; +/* color: black; */ +} + +.inlinecode .id { + color: rgb(0%,0%,0%); +} + + +/* TOC */ + +#toc h2 { + padding: 10px; + background-color: rgb(60%,60%,100%); +} + +#toc li { + padding-bottom: 8px; +} + +/* Index */ + +#index { + margin: 0; + padding: 0; + width: 100%; +} + +#index #frontispiece { + margin: 1em auto; + padding: 1em; + width: 60%; +} + +.booktitle { font-size : 140% } +.authors { font-size : 90%; + line-height: 115%; } +.moreauthors { font-size : 60% } + +#index #entrance { + text-align: center; +} + +#index #entrance .spacer { + margin: 0 30px 0 30px; +} + +#index #footer { + position: absolute; + bottom: 0; +} + +.paragraph { + height: 0.75em; +} + +ul.doclist { + margin-top: 0em; + margin-bottom: 0em; +} + +.code :target { + border: 2px solid #D4D4D4; + background-color: #e5eecc; +} diff --git a/combi/1.1.0/depend.map b/combi/1.1.0/depend.map new file mode 100644 index 00000000..23e38a13 --- /dev/null +++ b/combi/1.1.0/depend.map @@ -0,0 +1,59 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/combi/1.1.0/depend.png b/combi/1.1.0/depend.png new file mode 100644 index 0000000000000000000000000000000000000000..23e95f987d81a4495ae75f5deaf61391f25d24ad GIT binary patch literal 323971 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ý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%0D$+ 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 + + + + + +depend + + +Ccpo + + +Ccpo + + + + + +florent + +florent + + + +Ccpo->florent + + + + + +Misc + + +Misc + + + + + +Misc->florent + + + + + +Qmeasure + + +Qmeasure + + + + + +Qmeasure->Ccpo + + + + + +Qmeasure->Misc + + + + + +combclass + + +combclass + + + + + +tools + + +tools + + + + + +combclass->tools + + + + + +congr + + +congr + + + + + +permuted + + +permuted + + + + + +congr->permuted + + + + + +vectNK + + +vectNK + + + + + +congr->vectNK + + + + + +ordtype + + +ordtype + + + + + +ordtype->tools + + + + + +unitriginv + + +unitriginv + + + + + +unitriginv->ordtype + + + + + +Dyckword + + +Dyckword + + + + + +bintree + + +bintree + + + + + +Dyckword->bintree + + + + + +Yamanouchi + + +Yamanouchi + + + + + +partition + + +partition + + + + + +Yamanouchi->partition + + + + + +bintree->combclass + + + + + +bintree->ordtype + + + + + +composition + + +composition + + + + + +composition->partition + + + + + +subseq + + +subseq + + + + + +composition->subseq + + + + + +fibered_set + + +fibered_set + + + + + +fibered_set->florent + + + + + +multinomial + + +multinomial + + + + + +multinomial->tools + + + + + +ordtree + + +ordtree + + + + + +ordtree->bintree + + + + + +partition->combclass + + + + + +partition->ordtype + + + + + +sorted + + +sorted + + + + + +partition->sorted + + + + + +permuted->composition + + + + + +permuted->multinomial + + + + + +cycles + + +cycles + + + + + +permuted->cycles + + + + + +setpartition + + +setpartition + + + + + +setpartition->partition + + + + + +skewpart + + +skewpart + + + + + +skewpart->partition + + + + + +skewtab + + +skewtab + + + + + +skewtab->skewpart + + + + + +stdtab + + +stdtab + + + + + +skewtab->stdtab + + + + + +std + + +std + + + + + +std->combclass + + + + + +std->ordtype + + + + + +permcomp + + +permcomp + + + + + +std->permcomp + + + + + +stdtab->Yamanouchi + + + + + +stdtab->std + + + + + +tableau + + +tableau + + + + + +stdtab->tableau + + + + + +subseq->combclass + + + + + +subseq->sorted + + + + + +tableau->partition + + + + + +vectNK->tools + + + + + +Erdos_Szekeres + + +Erdos_Szekeres + + + + + +Greene_inv + + +Greene_inv + + + + + +Erdos_Szekeres->Greene_inv + + + + + +Frobenius_ident + + +Frobenius_ident + + + + + +hook + + +hook + + + + + +Frobenius_ident->hook + + + + + +Schensted + + +Schensted + + + + + +Frobenius_ident->Schensted + + + + + +hook->Qmeasure + + + + + +hook->stdtab + + + + + +hook->subseq + + + + + +Greene + + +Greene + + + + + +plactic + + +plactic + + + + + +Greene->plactic + + + + + +ordcast + + +ordcast + + + + + +Greene->ordcast + + + + + +Greene_inv->Greene + + + + + +Schensted->stdtab + + + + + +Schensted->subseq + + + + + +Yam_plact + + +Yam_plact + + + + + +stdplact + + +stdplact + + + + + +Yam_plact->stdplact + + + + + +extract + + +extract + + + + + +implem + + +implem + + + + + +extract->implem + + + + + +freeSchur + + +freeSchur + + + + + +freeSchur->Yam_plact + + + + + +shuffle + + +shuffle + + + + + +freeSchur->shuffle + + + + + +Schur_mpoly + + +Schur_mpoly + + + + + +freeSchur->Schur_mpoly + + + + + +therule + + +therule + + + + + +implem->therule + + + + + +plactic->congr + + + + + +plactic->Schensted + + + + + +shuffle->stdplact + + + + + +stdplact->Greene_inv + + + + + +therule->skewtab + + + + + +therule->freeSchur + + + + + +Cauchy + + +Cauchy + + + + + +homogsym + + +homogsym + + + + + +Cauchy->homogsym + + + + + +MurnaghanNakayama + + +MurnaghanNakayama + + + + + +MurnaghanNakayama->homogsym + + + + + +Schur_altdef + + +Schur_altdef + + + + + +Schur_altdef->unitriginv + + + + + +Schur_altdef->therule + + + + + +antisym + + +antisym + + + + + +Schur_altdef->antisym + + + + + +Schur_mpoly->tableau + + + + + +presentSn + + +presentSn + + + + + +antisym->presentSn + + + + + +sympoly + + +sympoly + + + + + +homogsym->sympoly + + + + + +sympoly->Schur_altdef + + + + + +permcent + + +permcent + + + + + +sympoly->permcent + + + + + +ordcast->tools + + + + + +permcomp->florent + + + + + +sorted->tools + + + + + +tools->florent + + + + + +Frobenius_char + + +Frobenius_char + + + + + +Frobenius_char->Cauchy + + + + + +Frobenius_char->MurnaghanNakayama + + + + + +reprSn + + +reprSn + + + + + +Frobenius_char->reprSn + + + + + +towerSn + + +towerSn + + + + + +Frobenius_char->towerSn + + + + + +cycles->permcomp + + + + + +cycles->tools + + + + + +cycletype + + +cycletype + + + + + +cycletype->fibered_set + + + + + +cycletype->partition + + + + + +cycletype->cycles + + + + + +permcent->cycletype + + + + + +presentSn->congr + + + + + +reprSn->cycletype + + + + + +reprSn->presentSn + + + + + +towerSn->ordcast + + + + + +towerSn->permcent + + + + + +weak_order + + +weak_order + + + + + +weak_order->presentSn + + + + + diff --git a/combi/1.1.0/index.html b/combi/1.1.0/index.html new file mode 100644 index 00000000..07ca13ec --- /dev/null +++ b/combi/1.1.0/index.html @@ -0,0 +1,91 @@ + + + + + + +Algebraic Combinatorics in Coq/MathComp + + + + +

+ + diff --git a/combi/1.1.0/index_lib.html b/combi/1.1.0/index_lib.html new file mode 100644 index 00000000..41e18946 --- /dev/null +++ b/combi/1.1.0/index_lib.html @@ -0,0 +1,17921 @@ + + + + + +Index + + + + +
+ + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Global IndexABCDEFGHIJKLMNOPQRSTUVWXYZ_other(8361 entries)
Notation IndexABCDEFGHIJKLMNOPQRSTUVWXYZ_other(178 entries)
Module IndexABCDEFGHIJKLMNOPQRSTUVWXYZ_other(68 entries)
Variable IndexABCDEFGHIJKLMNOPQRSTUVWXYZ_other(910 entries)
Library IndexABCDEFGHIJKLMNOPQRSTUVWXYZ_other(57 entries)
Lemma IndexABCDEFGHIJKLMNOPQRSTUVWXYZ_other(3352 entries)
Constructor IndexABCDEFGHIJKLMNOPQRSTUVWXYZ_other(19 entries)
Projection IndexABCDEFGHIJKLMNOPQRSTUVWXYZ_other(181 entries)
Inductive IndexABCDEFGHIJKLMNOPQRSTUVWXYZ_other(17 entries)
Section IndexABCDEFGHIJKLMNOPQRSTUVWXYZ_other(363 entries)
Instance IndexABCDEFGHIJKLMNOPQRSTUVWXYZ_other(67 entries)
Abbreviation IndexABCDEFGHIJKLMNOPQRSTUVWXYZ_other(261 entries)
Definition IndexABCDEFGHIJKLMNOPQRSTUVWXYZ_other(2820 entries)
Record IndexABCDEFGHIJKLMNOPQRSTUVWXYZ_other(68 entries)
+
+

Global Index

+

A

+AbelianBigOp [section, in Combi.SSRcomplements.tools]
+AbelianBigOp.idx [variable, in Combi.SSRcomplements.tools]
+AbelianBigOp.op [variable, in Combi.SSRcomplements.tools]
+AbelianBigOp.R [variable, in Combi.SSRcomplements.tools]
+_ * _ [notation, in Combi.SSRcomplements.tools]
+*%M [notation, in Combi.SSRcomplements.tools]
+1 [notation, in Combi.SSRcomplements.tools]
+abelian_cycle_dec [lemma, in Combi.SymGroup.cycles]
+abelian_perm_dec [lemma, in Combi.SymGroup.cycles]
+abelian_disjoint_psupports [lemma, in Combi.SymGroup.cycles]
+ActOnTuple [section, in Combi.Combi.permuted]
+ActOnTuple.n [variable, in Combi.Combi.permuted]
+ActOnTuple.T [variable, in Combi.Combi.permuted]
+ActOnTuple.w [variable, in Combi.Combi.permuted]
+_ # _ [notation, in Combi.Combi.permuted]
+add [definition, in Combi.LRrule.implem]
+addE [lemma, in Combi.LRrule.implem]
+add_corner_decr_nth [lemma, in Combi.Combi.partition]
+add_mesymK [lemma, in Combi.MPoly.Schur_altdef]
+add_mesymE [lemma, in Combi.MPoly.Schur_altdef]
+add_mesym [definition, in Combi.MPoly.Schur_altdef]
+add_mpart_mesymP [lemma, in Combi.MPoly.Schur_altdef]
+add_ribbon_intpartnP [lemma, in Combi.Combi.skewpart]
+add_ribbon_intpartnE [lemma, in Combi.Combi.skewpart]
+add_ribbon_intpartn [definition, in Combi.Combi.skewpart]
+add_ribbon_intpartn_spec [lemma, in Combi.Combi.skewpart]
+add_ribbonP [lemma, in Combi.Combi.skewpart]
+add_ribbon_onP [lemma, in Combi.Combi.skewpart]
+add_ribbon_height [lemma, in Combi.Combi.skewpart]
+add_ribbon_on_remP [lemma, in Combi.Combi.skewpart]
+add_ribbon [definition, in Combi.Combi.skewpart]
+add_ribbon_on [definition, in Combi.Combi.skewpart]
+admissible [definition, in ALEA.Ccpo]
+admissible2 [definition, in ALEA.Ccpo]
+allLeq [definition, in Combi.Basic.ordtype]
+allLeqCons [lemma, in Combi.Basic.ordtype]
+allLeqConsE [lemma, in Combi.Basic.ordtype]
+allLeqE [lemma, in Combi.Basic.ordtype]
+AllLeqLtn [section, in Combi.Basic.ordtype]
+AllLeqLtn.disp [variable, in Combi.Basic.ordtype]
+AllLeqLtn.T [variable, in Combi.Basic.ordtype]
+allLeqP [lemma, in Combi.Basic.ordtype]
+allLeq_to_word_tl [lemma, in Combi.Combi.stdtab]
+allLeq_to_word_hd [lemma, in Combi.Combi.stdtab]
+allLeq_is_row_rcons [lemma, in Combi.LRrule.plactic]
+allLeq_posbig [lemma, in Combi.Basic.ordtype]
+allLeq_last [lemma, in Combi.Basic.ordtype]
+allLeq_rconsK [lemma, in Combi.Basic.ordtype]
+allLeq_rev [lemma, in Combi.Basic.ordtype]
+allLeq_catE [lemma, in Combi.Basic.ordtype]
+allLeq_consK [lemma, in Combi.Basic.ordtype]
+allLtn [definition, in Combi.Basic.ordtype]
+allLtnCons [lemma, in Combi.Basic.ordtype]
+allLtnConsE [lemma, in Combi.Basic.ordtype]
+allLtnW [lemma, in Combi.Basic.ordtype]
+allLtn_std_rec [lemma, in Combi.Combi.std]
+allLtn_posbig [lemma, in Combi.Basic.ordtype]
+allLtn_last [lemma, in Combi.Basic.ordtype]
+allLtn_rconsK [lemma, in Combi.Basic.ordtype]
+allLtn_rev [lemma, in Combi.Basic.ordtype]
+allLtn_catE [lemma, in Combi.Basic.ordtype]
+allLtn_consK [lemma, in Combi.Basic.ordtype]
+allLtn_notin [lemma, in Combi.Basic.ordtype]
+all_leqzip_refl [lemma, in Combi.Combi.bintree]
+all_in_shuffler [lemma, in Combi.LRrule.shuffle]
+all_in_shufflel [lemma, in Combi.LRrule.shuffle]
+all_size_shuffle [lemma, in Combi.LRrule.shuffle]
+all_allLtn_cat [lemma, in Combi.Combi.skewtab]
+all_ltn_nth_tabsh [lemma, in Combi.Combi.tableau]
+all_permuted [lemma, in Combi.Combi.permuted]
+all_unionP [lemma, in Combi.Basic.combclass]
+all_subenum [lemma, in Combi.Basic.combclass]
+all_partsums [lemma, in Combi.Combi.composition]
+Alternant [section, in Combi.MPoly.Schur_altdef]
+Alternant.HasIncr [section, in Combi.MPoly.Schur_altdef]
+Alternant.HasIncr.add_mpart_mesym [variable, in Combi.MPoly.Schur_altdef]
+Alternant.HasIncr.d [variable, in Combi.MPoly.Schur_altdef]
+Alternant.HasIncr.h [variable, in Combi.MPoly.Schur_altdef]
+Alternant.HasIncr.k [variable, in Combi.MPoly.Schur_altdef]
+Alternant.HasIncr.la [variable, in Combi.MPoly.Schur_altdef]
+Alternant.n [variable, in Combi.MPoly.Schur_altdef]
+Alternant.R [variable, in Combi.MPoly.Schur_altdef]
+'a_ _ [notation, in Combi.MPoly.Schur_altdef]
+'e_ _ [notation, in Combi.MPoly.Schur_altdef]
+AlternIDomain [section, in Combi.MPoly.antisym]
+AlternIDomain.Hchar [variable, in Combi.MPoly.antisym]
+AlternIDomain.LeadingMonomial [section, in Combi.MPoly.antisym]
+AlternIDomain.LeadingMonomial.Hpanti [variable, in Combi.MPoly.antisym]
+AlternIDomain.LeadingMonomial.Hphomog [variable, in Combi.MPoly.antisym]
+AlternIDomain.LeadingMonomial.Hpn0 [variable, in Combi.MPoly.antisym]
+AlternIDomain.LeadingMonomial.p [variable, in Combi.MPoly.antisym]
+AlternIDomain.n [variable, in Combi.MPoly.antisym]
+AlternIDomain.R [variable, in Combi.MPoly.antisym]
+_ # _ [notation, in Combi.MPoly.antisym]
+'a_ _ [notation, in Combi.MPoly.antisym]
+alternpol [definition, in Combi.MPoly.antisym]
+AlternStraighten [section, in Combi.MPoly.Schur_altdef]
+AlternStraighten.n0 [variable, in Combi.MPoly.Schur_altdef]
+AlternStraighten.R [variable, in Combi.MPoly.Schur_altdef]
+_ # _ [notation, in Combi.MPoly.Schur_altdef]
+'a_ _ [notation, in Combi.MPoly.Schur_altdef]
+alt_add1_0 [lemma, in Combi.MPoly.antisym]
+alt_alternate [lemma, in Combi.MPoly.antisym]
+alt_rho_non0 [lemma, in Combi.MPoly.antisym]
+alt_uniq_non0 [lemma, in Combi.MPoly.antisym]
+alt_detE [lemma, in Combi.MPoly.antisym]
+alt_anti [lemma, in Combi.MPoly.antisym]
+alt_homog [lemma, in Combi.MPoly.antisym]
+alt_straight_add_ribbon [lemma, in Combi.MPoly.Schur_altdef]
+alt_straight_add_ribbon0 [lemma, in Combi.MPoly.Schur_altdef]
+alt_straight_step [lemma, in Combi.MPoly.Schur_altdef]
+alt_uniq [lemma, in Combi.MPoly.Schur_altdef]
+alt_SchurE [lemma, in Combi.MPoly.Schur_altdef]
+alt_mpart_syme [lemma, in Combi.MPoly.Schur_altdef]
+alt_syme [lemma, in Combi.MPoly.Schur_altdef]
+antim [definition, in Combi.MPoly.antisym]
+antisym [definition, in Combi.MPoly.antisym]
+antisym [library]
+antisym_submod_closed [lemma, in Combi.MPoly.antisym]
+antisym_zmod [lemma, in Combi.MPoly.antisym]
+antisym_smalln [lemma, in Combi.MPoly.antisym]
+antisym_pchar2 [lemma, in Combi.MPoly.antisym]
+antisym_keyed [definition, in Combi.MPoly.antisym]
+antisym_key [lemma, in Combi.MPoly.antisym]
+anti_anti [lemma, in Combi.MPoly.antisym]
+AppendNth [section, in Combi.Combi.stdtab]
+AppendNth.disp [variable, in Combi.Combi.stdtab]
+AppendNth.T [variable, in Combi.Combi.stdtab]
+append_nth_conj_tab [lemma, in Combi.Combi.stdtab]
+append_nth_injl [lemma, in Combi.Combi.stdtab]
+append_nth_remn [lemma, in Combi.Combi.stdtab]
+append_nth [definition, in Combi.Combi.stdtab]
+app_mon [instance, in ALEA.Qmeasure]
+app2 [definition, in ALEA.Ccpo]
+app2_simpl [lemma, in ALEA.Ccpo]
+arm_length_incr_nth_nrow [lemma, in Combi.HookFormula.hook]
+arm_length_incr_nth_row [lemma, in Combi.HookFormula.hook]
+arm_length_corner_box [lemma, in Combi.HookFormula.hook]
+arm_length_ltl [lemma, in Combi.HookFormula.hook]
+arm_length_ler [lemma, in Combi.HookFormula.hook]
+arm_length [definition, in Combi.HookFormula.hook]
+Assoc [section, in Combi.SymGroup.towerSn]
+Assoc.m [variable, in Combi.SymGroup.towerSn]
+Assoc.n [variable, in Combi.SymGroup.towerSn]
+Assoc.p [variable, in Combi.SymGroup.towerSn]
+auxbij [definition, in Combi.LRrule.Yam_plact]
+auxbijP [lemma, in Combi.LRrule.Yam_plact]
+auxbij_inv [definition, in Combi.LRrule.Yam_plact]
+auxbij_inj [lemma, in Combi.LRrule.Yam_plact]
+

B

+BalToDyck [section, in Combi.Combi.Dyckword]
+BalToDyck.Hbal1 [variable, in Combi.Combi.Dyckword]
+BalToDyck.w [variable, in Combi.Combi.Dyckword]
+bal_of_DyckK [lemma, in Combi.Combi.Dyckword]
+bal_of_DyckP [lemma, in Combi.Combi.Dyckword]
+bal_of_Dyck [definition, in Combi.Combi.Dyckword]
+bal_hsz [definition, in Combi.Combi.Dyckword]
+Bases [section, in Combi.MPoly.sympoly]
+Bases.n [variable, in Combi.MPoly.sympoly]
+Bases.R [variable, in Combi.MPoly.sympoly]
+_ # _ [notation, in Combi.MPoly.sympoly]
+'e_ _ [notation, in Combi.MPoly.sympoly]
+'h_ _ [notation, in Combi.MPoly.sympoly]
+'m[ _ ] [notation, in Combi.MPoly.sympoly]
+'p_ _ [notation, in Combi.MPoly.sympoly]
+Basis [abbreviation, in Combi.MPoly.homogsym]
+basis_homsym [lemma, in Combi.MPoly.homogsym]
+behead_hookpartn [lemma, in Combi.Combi.partition]
+behead_incr_nth [lemma, in Combi.LRrule.Schensted]
+belast_behead_rcons [lemma, in Combi.SSRcomplements.tools]
+beq_nat_neq [lemma, in ALEA.Misc]
+bigcup_seq_cover [lemma, in Combi.LRrule.Greene]
+Bigop [section, in Combi.Combi.subseq]
+bigop_trivIseq [lemma, in Combi.LRrule.Greene]
+Bigop.idx [variable, in Combi.Combi.subseq]
+Bigop.op [variable, in Combi.Combi.subseq]
+Bigop.R [variable, in Combi.Combi.subseq]
+Bigop.T [variable, in Combi.Combi.subseq]
+_ * _ [notation, in Combi.Combi.subseq]
+*%M [notation, in Combi.Combi.subseq]
+1 [notation, in Combi.Combi.subseq]
+Bigsums [section, in ALEA.Qmeasure]
+Bigsums.A [variable, in ALEA.Qmeasure]
+BigTrivISeq [section, in Combi.LRrule.Greene]
+BigTrivISeq.idx [variable, in Combi.LRrule.Greene]
+BigTrivISeq.op [variable, in Combi.LRrule.Greene]
+BigTrivISeq.R [variable, in Combi.LRrule.Greene]
+BigTrivISeq.T [variable, in Combi.LRrule.Greene]
+big_mxvec_index [lemma, in Combi.MPoly.Cauchy]
+big_seq_sub [lemma, in Combi.SSRcomplements.tools]
+big_enum_box_in [lemma, in Combi.Combi.partition]
+big_enum_box_skew [lemma, in Combi.Combi.partition]
+big_box_skew2 [lemma, in Combi.Combi.partition]
+big_box_skew [lemma, in Combi.Combi.partition]
+big_subseqs_undup_cond [lemma, in Combi.Combi.subseq]
+big_subseqs_undup [lemma, in Combi.Combi.subseq]
+big_subseqs_cons_cond [lemma, in Combi.Combi.subseq]
+big_subseqs_cons [lemma, in Combi.Combi.subseq]
+big_subseqs0 [lemma, in Combi.Combi.subseq]
+big_subseqs_cond [lemma, in Combi.Combi.subseq]
+big_subseqs [lemma, in Combi.Combi.subseq]
+BijBinTrees [section, in Combi.Combi.Dyckword]
+Bijection [section, in Combi.Combi.stdtab]
+BijectionExtTab [section, in Combi.MPoly.Schur_altdef]
+BijectionExtTab.Hmu [variable, in Combi.MPoly.Schur_altdef]
+BijectionExtTab.Hstrip [variable, in Combi.MPoly.Schur_altdef]
+BijectionExtTab.Hsz [variable, in Combi.MPoly.Schur_altdef]
+BijectionExtTab.la [variable, in Combi.MPoly.Schur_altdef]
+BijectionExtTab.m [variable, in Combi.MPoly.Schur_altdef]
+BijectionExtTab.mu [variable, in Combi.MPoly.Schur_altdef]
+BijectionExtTab.n [variable, in Combi.MPoly.Schur_altdef]
+BijectionExtTab.s [variable, in Combi.MPoly.Schur_altdef]
+Bijection.StdTabInd [section, in Combi.Combi.stdtab]
+BijFiberedSet [section, in Combi.Combi.fibered_set]
+BijFiberedSet.Defs [section, in Combi.Combi.fibered_set]
+BijFiberedSet.Defs.HcardEq [variable, in Combi.Combi.fibered_set]
+BijFiberedSet.Defs.U [variable, in Combi.Combi.fibered_set]
+BijFiberedSet.Defs.V [variable, in Combi.Combi.fibered_set]
+BijFiberedSet.I [variable, in Combi.Combi.fibered_set]
+bijLR [definition, in Combi.LRrule.therule]
+bijLRyam [definition, in Combi.LRrule.therule]
+bijLRyamP [lemma, in Combi.LRrule.therule]
+bijLR_image [lemma, in Combi.LRrule.therule]
+bijLR_inj [lemma, in Combi.LRrule.therule]
+bijLR_surj [lemma, in Combi.LRrule.therule]
+bijLR_LRsupport [lemma, in Combi.LRrule.therule]
+bijRS [lemma, in Combi.LRrule.Schensted]
+bijRStab [lemma, in Combi.LRrule.Schensted]
+bij_LRsupport [definition, in Combi.LRrule.freeSchur]
+bij_LRsupportP [lemma, in Combi.LRrule.freeSchur]
+BinLeaf [constructor, in Combi.Combi.bintree]
+BinNode [constructor, in Combi.Combi.bintree]
+binomial_sumn_iota [lemma, in Combi.SSRcomplements.tools]
+bintree [inductive, in Combi.Combi.bintree]
+bintree [library]
+bintreesz [record, in Combi.Combi.bintree]
+bintreeszP [lemma, in Combi.Combi.bintree]
+bintree_bintreesz__canonical__fintype_SubFinite [definition, in Combi.Combi.bintree]
+bintree_bintreesz__canonical__fintype_Finite [definition, in Combi.Combi.bintree]
+bintree_bintreesz__canonical__choice_SubCountable [definition, in Combi.Combi.bintree]
+bintree_bintreesz__canonical__choice_Countable [definition, in Combi.Combi.bintree]
+bintree_bintreesz__canonical__choice_SubChoice [definition, in Combi.Combi.bintree]
+bintree_bintreesz__canonical__choice_Choice [definition, in Combi.Combi.bintree]
+bintree_bintreesz__canonical__eqtype_SubEquality [definition, in Combi.Combi.bintree]
+bintree_bintreesz__canonical__eqtype_Equality [definition, in Combi.Combi.bintree]
+bintree_bintreesz__canonical__eqtype_SubType [definition, in Combi.Combi.bintree]
+bintree_bintree__canonical__choice_Countable [definition, in Combi.Combi.bintree]
+bintree_bintree__canonical__choice_Choice [definition, in Combi.Combi.bintree]
+bintree_bintree__canonical__eqtype_Equality [definition, in Combi.Combi.bintree]
+bintree_sind [definition, in Combi.Combi.bintree]
+bintree_rec [definition, in Combi.Combi.bintree]
+bintree_ind [definition, in Combi.Combi.bintree]
+bintree_rect [definition, in Combi.Combi.bintree]
+bintree_of_join_Dyck [lemma, in Combi.Combi.Dyckword]
+bintree_of_nil_Dyck [lemma, in Combi.Combi.Dyckword]
+bintree_of_DyckK [lemma, in Combi.Combi.Dyckword]
+bintree_of_Dyck [definition, in Combi.Combi.Dyckword]
+bintree_of_Dyck_spec [lemma, in Combi.Combi.Dyckword]
+bin_to_ordtreeK [lemma, in Combi.Combi.ordtree]
+bin_to_forestK [lemma, in Combi.Combi.ordtree]
+bin_to_ordtree [definition, in Combi.Combi.ordtree]
+bin_to_forest [definition, in Combi.Combi.ordtree]
+bisimul_instab [lemma, in Combi.LRrule.plactic]
+boolRP [lemma, in Combi.MPoly.sympoly]
+bool_of_braceK [lemma, in Combi.Combi.Dyckword]
+bool_of_brace [definition, in Combi.Combi.Dyckword]
+bound [projection, in Combi.Basic.congr]
+box [abbreviation, in Combi.Combi.skewpart]
+box [abbreviation, in Combi.Combi.skewpart]
+box [abbreviation, in Combi.Combi.skewpart]
+boxex [abbreviation, in Combi.Combi.skewpart]
+BoxIn [definition, in Combi.Combi.partition]
+BoxInSkew [section, in Combi.Combi.partition]
+BoxInSkew.inner [variable, in Combi.Combi.partition]
+BoxInSkew.outer [variable, in Combi.Combi.partition]
+BoxIn_subproof [lemma, in Combi.Combi.partition]
+box_in_incr_nth [lemma, in Combi.Combi.partition]
+box_inP [lemma, in Combi.Combi.partition]
+box_in [abbreviation, in Combi.Combi.partition]
+box_skewP [lemma, in Combi.Combi.partition]
+box_skewval [projection, in Combi.Combi.partition]
+box_skew [record, in Combi.Combi.partition]
+brace [inductive, in Combi.Combi.Dyckword]
+brace_of_boolK [lemma, in Combi.Combi.Dyckword]
+brace_of_bool [definition, in Combi.Combi.Dyckword]
+brace_sind [definition, in Combi.Combi.Dyckword]
+brace_rec [definition, in Combi.Combi.Dyckword]
+brace_ind [definition, in Combi.Combi.Dyckword]
+brace_rect [definition, in Combi.Combi.Dyckword]
+braidC [definition, in Combi.SymGroup.presentSn]
+braidclass [definition, in Combi.SymGroup.presentSn]
+braidcongr [definition, in Combi.SymGroup.presentSn]
+braidCP [lemma, in Combi.SymGroup.presentSn]
+BraidRed [section, in Combi.SymGroup.presentSn]
+braidred [abbreviation, in Combi.SymGroup.presentSn]
+braidredE [lemma, in Combi.SymGroup.presentSn]
+braidred_size_decr [lemma, in Combi.SymGroup.presentSn]
+braidred_to_canword [lemma, in Combi.SymGroup.presentSn]
+braidred_inscode_path [lemma, in Combi.SymGroup.presentSn]
+braidred_catl [lemma, in Combi.SymGroup.presentSn]
+BraidRed.n [variable, in Combi.SymGroup.presentSn]
+braidrule [definition, in Combi.SymGroup.presentSn]
+braidrule_homog [lemma, in Combi.SymGroup.presentSn]
+braidrule_sym [lemma, in Combi.SymGroup.presentSn]
+braidww [lemma, in Combi.SymGroup.presentSn]
+braid_to_canword [lemma, in Combi.SymGroup.presentSn]
+braid_ltn_lineC [lemma, in Combi.SymGroup.presentSn]
+braid_pred_lineC [lemma, in Combi.SymGroup.presentSn]
+braid_reduces [definition, in Combi.SymGroup.presentSn]
+braid_reduced [lemma, in Combi.SymGroup.presentSn]
+braid_prods [lemma, in Combi.SymGroup.presentSn]
+braid_rev [lemma, in Combi.SymGroup.presentSn]
+braid_cat [definition, in Combi.SymGroup.presentSn]
+braid_catr [definition, in Combi.SymGroup.presentSn]
+braid_catl [definition, in Combi.SymGroup.presentSn]
+braid_rcons [definition, in Combi.SymGroup.presentSn]
+braid_cons [definition, in Combi.SymGroup.presentSn]
+braid_is_congr [lemma, in Combi.SymGroup.presentSn]
+braid_trans [lemma, in Combi.SymGroup.presentSn]
+braid_ltrans [lemma, in Combi.SymGroup.presentSn]
+braid_sym [lemma, in Combi.SymGroup.presentSn]
+braid_refl [lemma, in Combi.SymGroup.presentSn]
+braid_equiv [lemma, in Combi.SymGroup.presentSn]
+braid_abaP [lemma, in Combi.SymGroup.presentSn]
+braid_aba [definition, in Combi.SymGroup.presentSn]
+Builders_1.Builders_Export_5 [module, in Combi.Basic.ordtype]
+Builders_1.HB_unnamed_factory_3 [definition, in Combi.Basic.ordtype]
+Builders_1.x [abbreviation, in Combi.Basic.ordtype]
+Builders_1.Builders_1.fresh_name_2 [variable, in Combi.Basic.ordtype]
+Builders_1.Builders_1.T [variable, in Combi.Basic.ordtype]
+Builders_1.Builders_1.Builders_1 [section, in Combi.Basic.ordtype]
+Builders_1.Super [module, in Combi.Basic.ordtype]
+Builders_1 [module, in Combi.Basic.ordtype]
+Builders_6.Builders_Export_10 [module, in Combi.Combi.composition]
+Builders_6.Builders_6_T__canonical__Order_TPOrder [definition, in Combi.Combi.composition]
+Builders_6.Builders_6_T__canonical__Order_TPreorder [definition, in Combi.Combi.composition]
+Builders_6.HB_unnamed_factory_8 [definition, in Combi.Combi.composition]
+Builders_6.isotop [lemma, in Combi.Combi.composition]
+Builders_6.top [definition, in Combi.Combi.composition]
+Builders_6.f_mono [abbreviation, in Combi.Combi.composition]
+Builders_6.f'_can [abbreviation, in Combi.Combi.composition]
+Builders_6.f_can [abbreviation, in Combi.Combi.composition]
+Builders_6.f' [abbreviation, in Combi.Combi.composition]
+Builders_6.f [abbreviation, in Combi.Combi.composition]
+Builders_6.T' [abbreviation, in Combi.Combi.composition]
+Builders_6.disp' [abbreviation, in Combi.Combi.composition]
+Builders_6.Builders_6.fresh_name_7 [variable, in Combi.Combi.composition]
+Builders_6.Builders_6_T__canonical__Order_POrder [definition, in Combi.Combi.composition]
+Builders_6.Builders_6.local_mixin_Order_Preorder_isDuallyPOrder [variable, in Combi.Combi.composition]
+Builders_6.Builders_6_T__canonical__Order_Preorder [definition, in Combi.Combi.composition]
+Builders_6.Builders_6.local_mixin_Order_isDuallyPreorder [variable, in Combi.Combi.composition]
+Builders_6.Builders_6_T__canonical__choice_Choice [definition, in Combi.Combi.composition]
+Builders_6.Builders_6_T__canonical__eqtype_Equality [definition, in Combi.Combi.composition]
+Builders_6.Builders_6.local_mixin_eqtype_hasDecEq [variable, in Combi.Combi.composition]
+Builders_6.Builders_6.local_mixin_choice_hasChoice [variable, in Combi.Combi.composition]
+Builders_6.Builders_6.T [variable, in Combi.Combi.composition]
+Builders_6.Builders_6.disp [variable, in Combi.Combi.composition]
+Builders_6.Builders_6.Builders_6 [section, in Combi.Combi.composition]
+Builders_6.Super [module, in Combi.Combi.composition]
+Builders_6 [module, in Combi.Combi.composition]
+Builders_1.Builders_Export_5 [module, in Combi.Combi.composition]
+Builders_1.Builders_1_T__canonical__Order_BPOrder [definition, in Combi.Combi.composition]
+Builders_1.Builders_1_T__canonical__Order_BPreorder [definition, in Combi.Combi.composition]
+Builders_1.HB_unnamed_factory_3 [definition, in Combi.Combi.composition]
+Builders_1.isobottom [lemma, in Combi.Combi.composition]
+Builders_1.bottom [definition, in Combi.Combi.composition]
+Builders_1.f_mono [abbreviation, in Combi.Combi.composition]
+Builders_1.f'_can [abbreviation, in Combi.Combi.composition]
+Builders_1.f_can [abbreviation, in Combi.Combi.composition]
+Builders_1.f' [abbreviation, in Combi.Combi.composition]
+Builders_1.f [abbreviation, in Combi.Combi.composition]
+Builders_1.T' [abbreviation, in Combi.Combi.composition]
+Builders_1.disp' [abbreviation, in Combi.Combi.composition]
+Builders_1.Builders_1.fresh_name_2 [variable, in Combi.Combi.composition]
+Builders_1.Builders_1_T__canonical__Order_POrder [definition, in Combi.Combi.composition]
+Builders_1.Builders_1.local_mixin_Order_Preorder_isDuallyPOrder [variable, in Combi.Combi.composition]
+Builders_1.Builders_1_T__canonical__Order_Preorder [definition, in Combi.Combi.composition]
+Builders_1.Builders_1.local_mixin_Order_isDuallyPreorder [variable, in Combi.Combi.composition]
+Builders_1.Builders_1_T__canonical__choice_Choice [definition, in Combi.Combi.composition]
+Builders_1.Builders_1_T__canonical__eqtype_Equality [definition, in Combi.Combi.composition]
+Builders_1.Builders_1.local_mixin_eqtype_hasDecEq [variable, in Combi.Combi.composition]
+Builders_1.Builders_1.local_mixin_choice_hasChoice [variable, in Combi.Combi.composition]
+Builders_1.Builders_1.T [variable, in Combi.Combi.composition]
+Builders_1.Builders_1.disp [variable, in Combi.Combi.composition]
+Builders_1.Builders_1.Builders_1 [section, in Combi.Combi.composition]
+Builders_1.Super [module, in Combi.Combi.composition]
+Builders_1 [module, in Combi.Combi.composition]
+bump [abbreviation, in Combi.LRrule.Schensted]
+bump [definition, in Combi.LRrule.Schensted]
+bumped [definition, in Combi.LRrule.Schensted]
+bumped_lt [lemma, in Combi.LRrule.plactic]
+bumpRow [abbreviation, in Combi.LRrule.Schensted]
+bumprow [definition, in Combi.LRrule.Schensted]
+bumprowinvK [lemma, in Combi.LRrule.Schensted]
+bumprow_rcons [lemma, in Combi.LRrule.Schensted]
+bumprow_count [lemma, in Combi.LRrule.Schensted]
+bumprow_size [lemma, in Combi.LRrule.Schensted]
+bump_dominateK [lemma, in Combi.LRrule.Schensted]
+bump_dominate [lemma, in Combi.LRrule.Schensted]
+bump_bumprowE [lemma, in Combi.LRrule.Schensted]
+bump_tail [lemma, in Combi.LRrule.Schensted]
+bump_nil [lemma, in Combi.LRrule.Schensted]
+bump_size_ins [lemma, in Combi.LRrule.Schensted]
+bump_inspos_lt_size [lemma, in Combi.LRrule.Schensted]
+bump_insposE [lemma, in Combi.LRrule.Schensted]
+bump_mininspredE [lemma, in Combi.LRrule.Schensted]
+bump_bumprow_rconsE [lemma, in Combi.LRrule.plactic]
+

C

+canporbit [definition, in Combi.SymGroup.cycletype]
+CanPorbit [section, in Combi.SymGroup.cycletype]
+canporbitE [lemma, in Combi.SymGroup.cycletype]
+canporbitP [lemma, in Combi.SymGroup.cycletype]
+canporbit_cymap [lemma, in Combi.SymGroup.cycletype]
+CanPorbit.s [variable, in Combi.SymGroup.cycletype]
+CanPorbit.T [variable, in Combi.SymGroup.cycletype]
+CanWord [section, in Combi.SymGroup.presentSn]
+canword [definition, in Combi.SymGroup.presentSn]
+canwordE [lemma, in Combi.SymGroup.presentSn]
+canwordP [lemma, in Combi.SymGroup.presentSn]
+canword_eltr [lemma, in Combi.SymGroup.presentSn]
+canword_path_npos [lemma, in Combi.SymGroup.presentSn]
+canword_straightenE [lemma, in Combi.SymGroup.presentSn]
+canword_reduced [lemma, in Combi.SymGroup.presentSn]
+CanWord.n0 [variable, in Combi.SymGroup.presentSn]
+'s_ _ (group_scope) [notation, in Combi.SymGroup.presentSn]
+_ =Br _ [notation, in Combi.SymGroup.presentSn]
+'I[ _ .. _ ] [notation, in Combi.SymGroup.presentSn]
+'s_[ _ ] [notation, in Combi.SymGroup.presentSn]
+canword1 [lemma, in Combi.SymGroup.presentSn]
+card_class_of_part [lemma, in Combi.SymGroup.permcent]
+card_class_perm [lemma, in Combi.SymGroup.permcent]
+card_cent1_perm [lemma, in Combi.SymGroup.permcent]
+card_stab_iporbits [lemma, in Combi.SymGroup.permcent]
+card_porbitgrpE [lemma, in Combi.SymGroup.permcent]
+card_stdwordn [lemma, in Combi.Combi.std]
+card_box_in [lemma, in Combi.Combi.partition]
+card_box_skew [lemma, in Combi.Combi.partition]
+card_intpartn [lemma, in Combi.Combi.partition]
+card_bintreesz [lemma, in Combi.Combi.bintree]
+card_seq [lemma, in Combi.LRrule.Greene]
+card_eq_eval [lemma, in Combi.MPoly.Schur_altdef]
+card_setdiff [lemma, in Combi.MPoly.Schur_altdef]
+card_stdtabsh_rat_rec [lemma, in Combi.HookFormula.hook]
+card_yam_stdtabE [lemma, in Combi.HookFormula.hook]
+card_yama0 [lemma, in Combi.HookFormula.hook]
+card_yama_rec [lemma, in Combi.HookFormula.hook]
+card_LRtab_set_shapeE [lemma, in Combi.LRrule.freeSchur]
+card_LRtab_set_leq [lemma, in Combi.LRrule.freeSchur]
+card_Dyck_hsz [lemma, in Combi.Combi.Dyckword]
+card_bal_Dyck_hsz [lemma, in Combi.Combi.Dyckword]
+card_preim_Dyck_of_bal [lemma, in Combi.Combi.Dyckword]
+card_bal_hsz [lemma, in Combi.Combi.Dyckword]
+card_bintreesz_dyck [lemma, in Combi.Combi.Dyckword]
+card_preim_nth [lemma, in Combi.Combi.Dyckword]
+card_preim_partition [lemma, in Combi.Combi.Dyckword]
+card_stdtabsh_conj_part [lemma, in Combi.Combi.stdtab]
+card_classes_perm [lemma, in Combi.SymGroup.cycletype]
+card_classCT_neq0 [lemma, in Combi.SymGroup.cycletype]
+card_psupport_conjg [lemma, in Combi.SymGroup.cycletype]
+card_pred_card_porbits [lemma, in Combi.SymGroup.cycletype]
+card_psupport_noteq1 [lemma, in Combi.SymGroup.cycles]
+card_ordtreesz [lemma, in Combi.Combi.ordtree]
+card_stpn_shape_hook [lemma, in Combi.HookFormula.Frobenius_ident]
+card_stpn_shape [lemma, in Combi.HookFormula.Frobenius_ident]
+card_preim_part_of_compn [lemma, in Combi.Combi.permuted]
+card_permuted_multinomial_subset [lemma, in Combi.Combi.permuted]
+card_permuted_multinomial [lemma, in Combi.Combi.permuted]
+card_permuted [lemma, in Combi.Combi.permuted]
+card_permuted_seq_sub [lemma, in Combi.Combi.permuted]
+card_permuted_prod [lemma, in Combi.Combi.permuted]
+card_stab_tuple [lemma, in Combi.Combi.permuted]
+card_Delta [lemma, in Combi.SymGroup.presentSn]
+card_codesz [lemma, in Combi.SymGroup.presentSn]
+card_unionE [lemma, in Combi.Basic.combclass]
+card_subE [lemma, in Combi.Basic.combclass]
+card_descset [lemma, in Combi.Combi.composition]
+card_intcompn [lemma, in Combi.Combi.composition]
+carrier [projection, in Combi.Combi.fibered_set]
+Cast [section, in Combi.LRrule.Greene]
+Cast [section, in Combi.MPoly.sympoly]
+Casts [section, in Combi.SSRcomplements.ordcast]
+cast_conj_inpart [lemma, in Combi.Combi.partition]
+cast_intpartn_bij [lemma, in Combi.Combi.partition]
+cast_intpartn_inj [lemma, in Combi.Combi.partition]
+cast_intpartnKV [lemma, in Combi.Combi.partition]
+cast_intpartnK [lemma, in Combi.Combi.partition]
+cast_intpartn_id [lemma, in Combi.Combi.partition]
+cast_intpartnE [lemma, in Combi.Combi.partition]
+cast_intpartn [definition, in Combi.Combi.partition]
+cast_enum [lemma, in Combi.LRrule.stdplact]
+cast_set_inj [lemma, in Combi.SSRcomplements.ordcast]
+cast_set [definition, in Combi.SSRcomplements.ordcast]
+cast_map_cond [lemma, in Combi.SSRcomplements.ordcast]
+cast_lshift [lemma, in Combi.SymGroup.towerSn]
+cast_rshift [lemma, in Combi.SymGroup.towerSn]
+cast_cons [definition, in Combi.LRrule.Greene]
+cast_cycle_typeSN [lemma, in Combi.SymGroup.cycletype]
+cast_IirrS2 [lemma, in Combi.SymGroup.reprSn]
+Cast.d1 [variable, in Combi.MPoly.sympoly]
+Cast.d2 [variable, in Combi.MPoly.sympoly]
+Cast.eq_d [variable, in Combi.MPoly.sympoly]
+Cast.la [variable, in Combi.MPoly.sympoly]
+Cast.n0 [variable, in Combi.MPoly.sympoly]
+Cast.R [variable, in Combi.MPoly.sympoly]
+Cast.T [variable, in Combi.LRrule.Greene]
+Catalan [definition, in Combi.Combi.Dyckword]
+Catalan_binS [lemma, in Combi.Combi.bintree]
+Catalan_bin0 [lemma, in Combi.Combi.bintree]
+Catalan_bin_leqE [lemma, in Combi.Combi.bintree]
+Catalan_bin [definition, in Combi.Combi.bintree]
+Catalan_bin_leq [definition, in Combi.Combi.bintree]
+Catalan_binE [lemma, in Combi.Combi.Dyckword]
+CategoricalSystems [section, in Combi.MPoly.sympoly]
+CategoricalSystems.R [variable, in Combi.MPoly.sympoly]
+catlang [definition, in Combi.LRrule.freeSchur]
+catlangM [lemma, in Combi.LRrule.freeSchur]
+catleft_rotations [lemma, in Combi.Combi.bintree]
+cat_leftA [lemma, in Combi.Combi.bintree]
+cat_left_Node [lemma, in Combi.Combi.bintree]
+cat_leftt0 [lemma, in Combi.Combi.bintree]
+cat_left0t [lemma, in Combi.Combi.bintree]
+cat_left [definition, in Combi.Combi.bintree]
+cat_tuple_inj [lemma, in Combi.LRrule.freeSchur]
+cat_Dyck [definition, in Combi.Combi.Dyckword]
+cat3_equiv_cut3 [lemma, in Combi.Combi.vectNK]
+Cauchy [library]
+CauchyKernel [section, in Combi.MPoly.Cauchy]
+CauchyKernelField [section, in Combi.MPoly.Cauchy]
+CauchyKernelField.R [variable, in Combi.MPoly.Cauchy]
+CauchyKernel.Big [section, in Combi.MPoly.Cauchy]
+CauchyKernel.Big.idx [variable, in Combi.MPoly.Cauchy]
+CauchyKernel.Big.op [variable, in Combi.MPoly.Cauchy]
+CauchyKernel.Big.R [variable, in Combi.MPoly.Cauchy]
+CauchyKernel.BijectionFam [section, in Combi.MPoly.Cauchy]
+CauchyKernel.BijectionFam.d [variable, in Combi.MPoly.Cauchy]
+CauchyKernel.BijectionFam.famYinv_fun [variable, in Combi.MPoly.Cauchy]
+CauchyKernel.d [variable, in Combi.MPoly.Cauchy]
+CauchyKernel.m0 [variable, in Combi.MPoly.Cauchy]
+CauchyKernel.n0 [variable, in Combi.MPoly.Cauchy]
+CauchyKernel.R [variable, in Combi.MPoly.Cauchy]
+CauchyKernel.vecmx_index [variable, in Combi.MPoly.Cauchy]
+_ (XY) [notation, in Combi.MPoly.Cauchy]
+_ (X) [notation, in Combi.MPoly.Cauchy]
+_ (Y) [notation, in Combi.MPoly.Cauchy]
+_ *:M _ [notation, in Combi.MPoly.Cauchy]
+Cauchy_co_hpXY__canonical__Algebra_Additive [definition, in Combi.MPoly.Cauchy]
+Cauchy_co_hp__canonical__GRing_Linear [definition, in Combi.MPoly.Cauchy]
+Cauchy_co_hp__canonical__Algebra_Additive [definition, in Combi.MPoly.Cauchy]
+Cauchy_homsymp_zhomsymp [lemma, in Combi.MPoly.Cauchy]
+Cauchy_kernel_coeff_homog [lemma, in Combi.MPoly.Cauchy]
+Cauchy_kernel_coeff_symmetric [lemma, in Combi.MPoly.Cauchy]
+Cauchy_kernel_symmetric [lemma, in Combi.MPoly.Cauchy]
+Cauchy_homsyms_homsyms [lemma, in Combi.MPoly.Cauchy]
+Cauchy_homsymm_homsymh [lemma, in Combi.MPoly.Cauchy]
+Cauchy_symm_symh [lemma, in Combi.MPoly.Cauchy]
+Cauchy_kernel_dhomog [lemma, in Combi.MPoly.Cauchy]
+Cauchy_kernel [definition, in Combi.MPoly.Cauchy]
+Cauchy_evalXY__canonical__GRing_LRMorphism [definition, in Combi.MPoly.Cauchy]
+Cauchy_evalXY__canonical__GRing_Linear [definition, in Combi.MPoly.Cauchy]
+Cauchy_evalXY__canonical__GRing_RMorphism [definition, in Combi.MPoly.Cauchy]
+Cauchy_evalXY__canonical__Algebra_Additive [definition, in Combi.MPoly.Cauchy]
+Cauchy_polY_XY__canonical__GRing_LRMorphism [definition, in Combi.MPoly.Cauchy]
+Cauchy_polY_XY__canonical__GRing_Linear [definition, in Combi.MPoly.Cauchy]
+Cauchy_polY_XY__canonical__GRing_RMorphism [definition, in Combi.MPoly.Cauchy]
+Cauchy_polY_XY__canonical__Algebra_Additive [definition, in Combi.MPoly.Cauchy]
+Cauchy_polX_XY__canonical__GRing_LRMorphism [definition, in Combi.MPoly.Cauchy]
+Cauchy_polX_XY__canonical__GRing_Linear [definition, in Combi.MPoly.Cauchy]
+Cauchy_polX_XY__canonical__GRing_RMorphism [definition, in Combi.MPoly.Cauchy]
+Cauchy_polX_XY__canonical__Algebra_Additive [definition, in Combi.MPoly.Cauchy]
+Cauchy_polXY__canonical__GRing_NzAlgebra [definition, in Combi.MPoly.Cauchy]
+Cauchy_polXY__canonical__GRing_NzSemiAlgebra [definition, in Combi.MPoly.Cauchy]
+Cauchy_polXY__canonical__GRing_PzAlgebra [definition, in Combi.MPoly.Cauchy]
+Cauchy_polXY__canonical__GRing_PzSemiAlgebra [definition, in Combi.MPoly.Cauchy]
+Cauchy_polXY__canonical__GRing_NzLalgebra [definition, in Combi.MPoly.Cauchy]
+Cauchy_polXY__canonical__GRing_NzLSemiAlgebra [definition, in Combi.MPoly.Cauchy]
+Cauchy_polXY__canonical__GRing_PzLalgebra [definition, in Combi.MPoly.Cauchy]
+Cauchy_polXY__canonical__GRing_PzLSemiAlgebra [definition, in Combi.MPoly.Cauchy]
+Cauchy_polXY__canonical__GRing_Lmodule [definition, in Combi.MPoly.Cauchy]
+Cauchy_polXY__canonical__GRing_LSemiModule [definition, in Combi.MPoly.Cauchy]
+Cauchy_polXY__canonical__GRing_NzRing [definition, in Combi.MPoly.Cauchy]
+Cauchy_polXY__canonical__GRing_NzSemiRing [definition, in Combi.MPoly.Cauchy]
+Cauchy_polXY__canonical__GRing_PzRing [definition, in Combi.MPoly.Cauchy]
+Cauchy_polXY__canonical__GRing_PzSemiRing [definition, in Combi.MPoly.Cauchy]
+Cauchy_polXY__canonical__Algebra_Zmodule [definition, in Combi.MPoly.Cauchy]
+Cauchy_polXY__canonical__Algebra_Nmodule [definition, in Combi.MPoly.Cauchy]
+Cauchy_polXY__canonical__Algebra_AddSemigroup [definition, in Combi.MPoly.Cauchy]
+Cauchy_polXY__canonical__Algebra_AddUMagma [definition, in Combi.MPoly.Cauchy]
+Cauchy_polXY__canonical__Algebra_AddMagma [definition, in Combi.MPoly.Cauchy]
+Cauchy_polXY__canonical__Algebra_BaseZmodule [definition, in Combi.MPoly.Cauchy]
+Cauchy_polXY__canonical__Algebra_ChoiceBaseAddUMagma [definition, in Combi.MPoly.Cauchy]
+Cauchy_polXY__canonical__Algebra_BaseAddUMagma [definition, in Combi.MPoly.Cauchy]
+Cauchy_polXY__canonical__Algebra_ChoiceBaseAddMagma [definition, in Combi.MPoly.Cauchy]
+Cauchy_polXY__canonical__Algebra_BaseAddMagma [definition, in Combi.MPoly.Cauchy]
+Cauchy_polXY__canonical__choice_Choice [definition, in Combi.MPoly.Cauchy]
+Cauchy_polXY__canonical__eqtype_Equality [definition, in Combi.MPoly.Cauchy]
+Ccpo [library]
+cdval [projection, in Combi.SymGroup.presentSn]
+cent1_permE [lemma, in Combi.SymGroup.permcent]
+cent1_stab_iporbit_porbitgrpS [lemma, in Combi.SymGroup.permcent]
+cent1_act_on_iporbits [lemma, in Combi.SymGroup.permcent]
+cent1_act_on_porbits [lemma, in Combi.SymGroup.permcent]
+cent1_act_porbit [lemma, in Combi.SymGroup.permcent]
+cfdot [abbreviation, in Combi.SymGroup.Frobenius_char]
+cfdotr_ncfuniCT [lemma, in Combi.SymGroup.towerSn]
+cfdot_Ind_ncfuniCT [lemma, in Combi.SymGroup.towerSn]
+cfdot_Ind_cfuniCT [lemma, in Combi.SymGroup.towerSn]
+cfdot_classfun_part [lemma, in Combi.SymGroup.towerSn]
+cfdot_is_dot [lemma, in Combi.SymGroup.Frobenius_char]
+cfdot_is_hermitian [lemma, in Combi.SymGroup.Frobenius_char]
+cfdot_is_bilinear [lemma, in Combi.SymGroup.Frobenius_char]
+cfextprod [definition, in Combi.SymGroup.towerSn]
+cfextprodBl [lemma, in Combi.SymGroup.towerSn]
+cfextprodBr [lemma, in Combi.SymGroup.towerSn]
+CFExtProdDefs [section, in Combi.SymGroup.towerSn]
+CFExtProdDefs.aT [variable, in Combi.SymGroup.towerSn]
+CFExtProdDefs.G [variable, in Combi.SymGroup.towerSn]
+CFExtProdDefs.gT [variable, in Combi.SymGroup.towerSn]
+CFExtProdDefs.H [variable, in Combi.SymGroup.towerSn]
+cfextprodDl [lemma, in Combi.SymGroup.towerSn]
+cfextprodDr [lemma, in Combi.SymGroup.towerSn]
+cfextprodMnl [lemma, in Combi.SymGroup.towerSn]
+cfextprodMnr [lemma, in Combi.SymGroup.towerSn]
+cfextprodNl [lemma, in Combi.SymGroup.towerSn]
+cfextprodNr [lemma, in Combi.SymGroup.towerSn]
+CFExtProdTheory [section, in Combi.SymGroup.towerSn]
+CFExtProdTheory.aT [variable, in Combi.SymGroup.towerSn]
+CFExtProdTheory.G [variable, in Combi.SymGroup.towerSn]
+CFExtProdTheory.gT [variable, in Combi.SymGroup.towerSn]
+CFExtProdTheory.H [variable, in Combi.SymGroup.towerSn]
+CFExtProdTheory.ReprExtProd [section, in Combi.SymGroup.towerSn]
+CFExtProdTheory.ReprExtProd.n1 [variable, in Combi.SymGroup.towerSn]
+CFExtProdTheory.ReprExtProd.n2 [variable, in Combi.SymGroup.towerSn]
+CFExtProdTheory.ReprExtProd.rG [variable, in Combi.SymGroup.towerSn]
+CFExtProdTheory.ReprExtProd.rH [variable, in Combi.SymGroup.towerSn]
+cfextprodZl [lemma, in Combi.SymGroup.towerSn]
+cfextprodZr [lemma, in Combi.SymGroup.towerSn]
+cfextprod_cfuni [lemma, in Combi.SymGroup.towerSn]
+cfextprod_char [lemma, in Combi.SymGroup.towerSn]
+cfextprod_suml [lemma, in Combi.SymGroup.towerSn]
+cfextprod_sumr [lemma, in Combi.SymGroup.towerSn]
+cfextprod_is_bilinear [lemma, in Combi.SymGroup.towerSn]
+cfextprod_subproof [lemma, in Combi.SymGroup.towerSn]
+cfextprod0l [lemma, in Combi.SymGroup.towerSn]
+cfextprod0r [lemma, in Combi.SymGroup.towerSn]
+cfRepr_extprod [lemma, in Combi.SymGroup.towerSn]
+cfRepr_sign2 [lemma, in Combi.SymGroup.reprSn]
+cfRepr_signed [lemma, in Combi.SymGroup.reprSn]
+cfRepr_sign [lemma, in Combi.SymGroup.reprSn]
+cfRepr_trivE [lemma, in Combi.SymGroup.reprSn]
+cfRepr_triv [lemma, in Combi.SymGroup.reprSn]
+cfRepr1_lin_char [lemma, in Combi.SymGroup.reprSn]
+cfuniCT [definition, in Combi.SymGroup.cycletype]
+cfuniCTE [lemma, in Combi.SymGroup.cycletype]
+cfuniCTnE [lemma, in Combi.SymGroup.cycletype]
+cfuni_Res [lemma, in Combi.SymGroup.towerSn]
+cfuni_tinj [lemma, in Combi.SymGroup.towerSn]
+ChangeBaseMonomial [section, in Combi.MPoly.sympoly]
+ChangeBaseMonomial.n [variable, in Combi.MPoly.sympoly]
+ChangeBaseMonomial.R [variable, in Combi.MPoly.sympoly]
+ChangeBasis [section, in Combi.MPoly.sympoly]
+ChangeBasisSymhPowerSum [section, in Combi.MPoly.sympoly]
+ChangeBasisSymhPowerSum.nvar0 [variable, in Combi.MPoly.sympoly]
+ChangeBasisSymhPowerSum.R [variable, in Combi.MPoly.sympoly]
+\Pi _ [notation, in Combi.MPoly.sympoly]
+ChangeBasis.HandE [section, in Combi.MPoly.sympoly]
+ChangeBasis.HandE.E [variable, in Combi.MPoly.sympoly]
+ChangeBasis.HandE.E0 [variable, in Combi.MPoly.sympoly]
+ChangeBasis.HandE.H [variable, in Combi.MPoly.sympoly]
+ChangeBasis.HandE.Hanti [variable, in Combi.MPoly.sympoly]
+ChangeBasis.HandE.H0 [variable, in Combi.MPoly.sympoly]
+ChangeBasis.n0 [variable, in Combi.MPoly.sympoly]
+ChangeBasis.R [variable, in Combi.MPoly.sympoly]
+'Xn_ _ [notation, in Combi.MPoly.sympoly]
+'Xn [notation, in Combi.MPoly.sympoly]
+'XXn_ _ [notation, in Combi.MPoly.sympoly]
+ChangeField [section, in Combi.MPoly.homogsym]
+ChangeField.d [variable, in Combi.MPoly.homogsym]
+ChangeField.mor [variable, in Combi.MPoly.homogsym]
+ChangeField.n0 [variable, in Combi.MPoly.homogsym]
+ChangeField.R [variable, in Combi.MPoly.homogsym]
+ChangeField.S [variable, in Combi.MPoly.homogsym]
+ChangeNVar [section, in Combi.MPoly.homogsym]
+ChangeNVar [section, in Combi.MPoly.sympoly]
+ChangeNVar.d [variable, in Combi.MPoly.homogsym]
+ChangeNVar.d [variable, in Combi.MPoly.sympoly]
+ChangeNVar.Hd [variable, in Combi.MPoly.homogsym]
+ChangeNVar.Hd [variable, in Combi.MPoly.sympoly]
+ChangeNVar.m0 [variable, in Combi.MPoly.homogsym]
+ChangeNVar.m0 [variable, in Combi.MPoly.sympoly]
+ChangeNVar.n0 [variable, in Combi.MPoly.homogsym]
+ChangeNVar.n0 [variable, in Combi.MPoly.sympoly]
+ChangeNVar.ProdGen [section, in Combi.MPoly.sympoly]
+ChangeNVar.ProdGen.Gen [variable, in Combi.MPoly.sympoly]
+ChangeNVar.ProdGen.Hcnvargen [variable, in Combi.MPoly.sympoly]
+ChangeNVar.R [variable, in Combi.MPoly.homogsym]
+ChangeNVar.R [variable, in Combi.MPoly.sympoly]
+changeTdropP [lemma, in Combi.LRrule.freeSchur]
+changeTtakeP [lemma, in Combi.LRrule.freeSchur]
+changeUdropP [lemma, in Combi.LRrule.freeSchur]
+changeUT [definition, in Combi.LRrule.freeSchur]
+changeUtakeP [lemma, in Combi.LRrule.freeSchur]
+changeUTK [lemma, in Combi.LRrule.freeSchur]
+CharDotProduct [section, in Combi.SymGroup.Frobenius_char]
+CharDotProduct.G [variable, in Combi.SymGroup.Frobenius_char]
+CharDotProduct.gT [variable, in Combi.SymGroup.Frobenius_char]
+charfun [definition, in Combi.HookFormula.hook]
+charfun_simplr [lemma, in Combi.HookFormula.hook]
+charfun_simpll [lemma, in Combi.HookFormula.hook]
+charSG0 [lemma, in Combi.SymGroup.reprSn]
+charSG1 [lemma, in Combi.SymGroup.reprSn]
+char_mpoly [lemma, in Combi.MPoly.antisym]
+choice_Countable__to__choice_Choice_isCountable [definition, in Combi.Combi.std]
+choice_Countable__to__eqtype_hasDecEq [definition, in Combi.Combi.std]
+choice_Countable__to__choice_hasChoice [definition, in Combi.Combi.std]
+choice_Choice__to__eqtype_hasDecEq [definition, in Combi.MPoly.homogsym]
+choice_Choice__to__choice_hasChoice [definition, in Combi.MPoly.homogsym]
+choice_Countable__to__choice_Choice_isCountable__78 [definition, in Combi.Combi.partition]
+choice_Countable__to__eqtype_hasDecEq__76 [definition, in Combi.Combi.partition]
+choice_Countable__to__choice_hasChoice__74 [definition, in Combi.Combi.partition]
+choice_Countable__to__choice_Choice_isCountable__21 [definition, in Combi.Combi.partition]
+choice_Countable__to__eqtype_hasDecEq__19 [definition, in Combi.Combi.partition]
+choice_Countable__to__choice_hasChoice__17 [definition, in Combi.Combi.partition]
+choice_Countable__to__choice_Choice_isCountable [definition, in Combi.Combi.partition]
+choice_Countable__to__eqtype_hasDecEq [definition, in Combi.Combi.partition]
+choice_Countable__to__choice_hasChoice [definition, in Combi.Combi.partition]
+choice_Countable__to__choice_Choice_isCountable__18 [definition, in Combi.Combi.bintree]
+choice_Countable__to__eqtype_hasDecEq [definition, in Combi.Combi.bintree]
+choice_Countable__to__choice_hasChoice [definition, in Combi.Combi.bintree]
+choice_Countable__to__choice_Choice_isCountable [definition, in Combi.Combi.bintree]
+choice_Choice__to__choice_hasChoice [definition, in Combi.Combi.bintree]
+choice_Choice__to__eqtype_hasDecEq [definition, in Combi.LRrule.Schensted]
+choice_Choice__to__choice_hasChoice__14 [definition, in Combi.LRrule.Schensted]
+choice_Choice__to__choice_hasChoice [definition, in Combi.LRrule.Schensted]
+choice_Countable__to__choice_Choice_isCountable__25 [definition, in Combi.Combi.Dyckword]
+choice_Countable__to__eqtype_hasDecEq [definition, in Combi.Combi.Dyckword]
+choice_Countable__to__choice_hasChoice [definition, in Combi.Combi.Dyckword]
+choice_Countable__to__choice_Choice_isCountable [definition, in Combi.Combi.Dyckword]
+choice_Choice__to__choice_hasChoice [definition, in Combi.Combi.Dyckword]
+choice_Countable__to__choice_Choice_isCountable__20 [definition, in Combi.Combi.stdtab]
+choice_Countable__to__eqtype_hasDecEq__18 [definition, in Combi.Combi.stdtab]
+choice_Countable__to__choice_hasChoice__16 [definition, in Combi.Combi.stdtab]
+choice_Countable__to__choice_Choice_isCountable [definition, in Combi.Combi.stdtab]
+choice_Countable__to__eqtype_hasDecEq [definition, in Combi.Combi.stdtab]
+choice_Countable__to__choice_hasChoice [definition, in Combi.Combi.stdtab]
+choice_Countable__to__choice_Choice_isCountable [definition, in Combi.Combi.tableau]
+choice_Countable__to__eqtype_hasDecEq [definition, in Combi.Combi.tableau]
+choice_Countable__to__choice_hasChoice [definition, in Combi.Combi.tableau]
+choice_Countable__to__choice_Choice_isCountable__18 [definition, in Combi.Combi.ordtree]
+choice_Countable__to__eqtype_hasDecEq [definition, in Combi.Combi.ordtree]
+choice_Countable__to__choice_hasChoice [definition, in Combi.Combi.ordtree]
+choice_Countable__to__choice_Choice_isCountable [definition, in Combi.Combi.ordtree]
+choice_Choice__to__choice_hasChoice [definition, in Combi.Combi.ordtree]
+choice_Countable__to__choice_Choice_isCountable__24 [definition, in Combi.Combi.Yamanouchi]
+choice_Countable__to__eqtype_hasDecEq__22 [definition, in Combi.Combi.Yamanouchi]
+choice_Countable__to__choice_hasChoice__20 [definition, in Combi.Combi.Yamanouchi]
+choice_Countable__to__choice_Choice_isCountable [definition, in Combi.Combi.Yamanouchi]
+choice_Countable__to__eqtype_hasDecEq [definition, in Combi.Combi.Yamanouchi]
+choice_Countable__to__choice_hasChoice [definition, in Combi.Combi.Yamanouchi]
+choice_Countable__to__choice_Choice_isCountable [definition, in Combi.Combi.permuted]
+choice_Countable__to__eqtype_hasDecEq [definition, in Combi.Combi.permuted]
+choice_Countable__to__choice_hasChoice [definition, in Combi.Combi.permuted]
+choice_Countable__to__choice_Choice_isCountable [definition, in Combi.SymGroup.presentSn]
+choice_Countable__to__eqtype_hasDecEq [definition, in Combi.SymGroup.presentSn]
+choice_Countable__to__choice_hasChoice [definition, in Combi.SymGroup.presentSn]
+choice_Choice__to__eqtype_hasDecEq [definition, in Combi.MPoly.sympoly]
+choice_Choice__to__choice_hasChoice [definition, in Combi.MPoly.sympoly]
+choice_Countable__to__choice_Choice_isCountable__28 [definition, in Combi.Combi.composition]
+choice_Countable__to__eqtype_hasDecEq__26 [definition, in Combi.Combi.composition]
+choice_Countable__to__choice_hasChoice__24 [definition, in Combi.Combi.composition]
+choice_Countable__to__choice_Choice_isCountable [definition, in Combi.Combi.composition]
+choice_Countable__to__eqtype_hasDecEq [definition, in Combi.Combi.composition]
+choice_Countable__to__choice_hasChoice [definition, in Combi.Combi.composition]
+choose_corner [definition, in Combi.HookFormula.hook]
+choose_one_countE [lemma, in Combi.LRrule.implem]
+class [definition, in ALEA.Misc]
+classCT [definition, in Combi.SymGroup.cycletype]
+classCTP [lemma, in Combi.SymGroup.cycletype]
+classCT_inj [lemma, in Combi.SymGroup.cycletype]
+classes_of_permP [lemma, in Combi.SymGroup.cycletype]
+classfun_cfdot__canonical__sesquilinear_Dot [definition, in Combi.SymGroup.Frobenius_char]
+classfun_cfdot__canonical__sesquilinear_Hermitian [definition, in Combi.SymGroup.Frobenius_char]
+classfun_cfdot__canonical__sesquilinear_Bilinear [definition, in Combi.SymGroup.Frobenius_char]
+classGroup [section, in Combi.SymGroup.towerSn]
+classGroup.aT [variable, in Combi.SymGroup.towerSn]
+classGroup.G [variable, in Combi.SymGroup.towerSn]
+classGroup.gT [variable, in Combi.SymGroup.towerSn]
+classGroup.H [variable, in Combi.SymGroup.towerSn]
+classX [abbreviation, in Combi.SymGroup.towerSn]
+classXE [lemma, in Combi.SymGroup.towerSn]
+classXI [lemma, in Combi.SymGroup.towerSn]
+class_disj [lemma, in Combi.SymGroup.towerSn]
+class_double_neg [lemma, in ALEA.Misc]
+class_exc [lemma, in ALEA.Misc]
+class_and [lemma, in ALEA.Misc]
+class_orc [lemma, in ALEA.Misc]
+class_false [lemma, in ALEA.Misc]
+class_neg [lemma, in ALEA.Misc]
+class_braid1 [lemma, in Combi.SymGroup.presentSn]
+Close [constructor, in Combi.Combi.Dyckword]
+CMbij [definition, in Combi.SymGroup.cycletype]
+cnval [projection, in Combi.Combi.composition]
+cnvarhomsym [definition, in Combi.MPoly.homogsym]
+cnvarhomsyme [lemma, in Combi.MPoly.homogsym]
+cnvarhomsymh [lemma, in Combi.MPoly.homogsym]
+cnvarhomsymm [lemma, in Combi.MPoly.homogsym]
+cnvarhomsymp [lemma, in Combi.MPoly.homogsym]
+cnvarhomsyms [lemma, in Combi.MPoly.homogsym]
+cnvarhomsym_is_linear [lemma, in Combi.MPoly.homogsym]
+cnvarhomsym_subproof [lemma, in Combi.MPoly.homogsym]
+cnvarsym [definition, in Combi.MPoly.sympoly]
+cnvarsym_geq_trans [lemma, in Combi.MPoly.sympoly]
+cnvarsym_leq_trans [lemma, in Combi.MPoly.sympoly]
+cnvarsym_id [lemma, in Combi.MPoly.sympoly]
+cnvarsym_is_monoid_morphism [lemma, in Combi.MPoly.sympoly]
+cnvarsym_is_linear [lemma, in Combi.MPoly.sympoly]
+cnvarsym_subproof [lemma, in Combi.MPoly.sympoly]
+cnvar_symm [lemma, in Combi.MPoly.sympoly]
+cnvar_syms [lemma, in Combi.MPoly.sympoly]
+cnvar_prodsymp [lemma, in Combi.MPoly.sympoly]
+cnvar_prodsymh [lemma, in Combi.MPoly.sympoly]
+cnvar_prodsyme [lemma, in Combi.MPoly.sympoly]
+cnvar_prodgen [lemma, in Combi.MPoly.sympoly]
+cnvar_symp [lemma, in Combi.MPoly.sympoly]
+cnvar_symh [lemma, in Combi.MPoly.sympoly]
+cnvar_syme [lemma, in Combi.MPoly.sympoly]
+cnvar_leq_symeE [lemma, in Combi.MPoly.sympoly]
+cocode [definition, in Combi.SymGroup.presentSn]
+cocodeE [lemma, in Combi.SymGroup.presentSn]
+cocodeP [lemma, in Combi.SymGroup.presentSn]
+cocode_straightenE [lemma, in Combi.SymGroup.presentSn]
+cocode_rec_cat [lemma, in Combi.SymGroup.presentSn]
+cocode_rec [definition, in Combi.SymGroup.presentSn]
+cocode2P [lemma, in Combi.SymGroup.presentSn]
+code [definition, in Combi.SymGroup.presentSn]
+Codes [section, in Combi.SymGroup.presentSn]
+codesz [record, in Combi.SymGroup.presentSn]
+codeszP [lemma, in Combi.SymGroup.presentSn]
+Codes.FinType [section, in Combi.SymGroup.presentSn]
+Codes.FinType.n [variable, in Combi.SymGroup.presentSn]
+code_ltn_size [lemma, in Combi.SymGroup.presentSn]
+coeff [projection, in ALEA.Qmeasure]
+coeffXdiff [lemma, in Combi.MPoly.antisym]
+coeff_prodXdiff [lemma, in Combi.MPoly.antisym]
+coeff_symh_to_symp [lemma, in Combi.MPoly.sympoly]
+coeff_prodgen_cast [lemma, in Combi.MPoly.sympoly]
+coeff_prodgen [definition, in Combi.MPoly.sympoly]
+coeff_prodgen_seq [definition, in Combi.MPoly.sympoly]
+colcomp [definition, in Combi.Combi.composition]
+colcompn [definition, in Combi.Combi.composition]
+colcompnP [lemma, in Combi.Combi.composition]
+colpartn [definition, in Combi.Combi.partition]
+colpartnE [lemma, in Combi.Combi.partition]
+colpartnP [lemma, in Combi.Combi.partition]
+colpartn_subproof [lemma, in Combi.Combi.partition]
+combclass [library]
+Combi [section, in Combi.SymGroup.presentSn]
+commtuple_morph [lemma, in Combi.LRrule.freeSchur]
+CommutativeImage [section, in Combi.LRrule.freeSchur]
+CommutativeImage.n [variable, in Combi.LRrule.freeSchur]
+CommutativeImage.R [variable, in Combi.LRrule.freeSchur]
+commute_cyclic [lemma, in Combi.SymGroup.permcent]
+commword [definition, in Combi.LRrule.freeSchur]
+commword_morph [lemma, in Combi.LRrule.freeSchur]
+comp [definition, in ALEA.Ccpo]
+compn [definition, in ALEA.Misc]
+CompOfn [section, in Combi.Combi.composition]
+CompOfn.n [variable, in Combi.Combi.composition]
+composition [library]
+composition_intcompn__canonical__fintype_SubFinite [definition, in Combi.Combi.composition]
+composition_intcompn__canonical__fintype_Finite [definition, in Combi.Combi.composition]
+composition_intcompn__canonical__choice_SubCountable [definition, in Combi.Combi.composition]
+composition_intcompn__canonical__choice_Countable [definition, in Combi.Combi.composition]
+composition_intcompn__canonical__choice_SubChoice [definition, in Combi.Combi.composition]
+composition_intcompn__canonical__choice_Choice [definition, in Combi.Combi.composition]
+composition_intcompn__canonical__eqtype_SubEquality [definition, in Combi.Combi.composition]
+composition_intcompn__canonical__eqtype_Equality [definition, in Combi.Combi.composition]
+composition_intcompn__canonical__eqtype_SubType [definition, in Combi.Combi.composition]
+composition_intcomp__canonical__choice_SubCountable [definition, in Combi.Combi.composition]
+composition_intcomp__canonical__choice_Countable [definition, in Combi.Combi.composition]
+composition_intcomp__canonical__choice_SubChoice [definition, in Combi.Combi.composition]
+composition_intcomp__canonical__choice_Choice [definition, in Combi.Combi.composition]
+composition_intcomp__canonical__eqtype_SubEquality [definition, in Combi.Combi.composition]
+composition_intcomp__canonical__eqtype_Equality [definition, in Combi.Combi.composition]
+composition_intcomp__canonical__eqtype_SubType [definition, in Combi.Combi.composition]
+compS [lemma, in ALEA.Misc]
+CompSpec_rect [lemma, in ALEA.Misc]
+comp_symbe [lemma, in Combi.MPoly.homogsym]
+comp_monotonic2 [instance, in ALEA.Ccpo]
+comp_monotonic_left [lemma, in ALEA.Ccpo]
+comp_monotonic_right [lemma, in ALEA.Ccpo]
+comp_simpl [lemma, in ALEA.Ccpo]
+comp0 [lemma, in ALEA.Misc]
+comp0 [lemma, in Combi.Combi.composition]
+congr [library]
+congrrule [definition, in Combi.Basic.congr]
+congrruleP [lemma, in Combi.Basic.congr]
+congrrule_sym [lemma, in Combi.Basic.congr]
+congrrule_invar [lemma, in Combi.Basic.congr]
+congrrule_is_congr [lemma, in Combi.Basic.congr]
+CongruenceClosure [section, in Combi.Basic.congr]
+CongruenceClosure.Alph [variable, in Combi.Basic.congr]
+CongruenceClosure.Hinvar_congr [variable, in Combi.Basic.congr]
+CongruenceClosure.Hsym [variable, in Combi.Basic.congr]
+CongruenceClosure.inv [variable, in Combi.Basic.congr]
+CongruenceClosure.rule [variable, in Combi.Basic.congr]
+CongruenceFacts [section, in Combi.Basic.congr]
+CongruenceFacts.Alph [variable, in Combi.Basic.congr]
+CongruenceFacts.Hcongr [variable, in Combi.Basic.congr]
+CongruenceFacts.Hequiv [variable, in Combi.Basic.congr]
+CongruenceFacts.r [variable, in Combi.Basic.congr]
+congruence_rule [definition, in Combi.Basic.congr]
+congruence_rel [definition, in Combi.Basic.congr]
+congr_RS [lemma, in Combi.LRrule.plactic]
+congr_bump [lemma, in Combi.LRrule.plactic]
+congr_row_2 [lemma, in Combi.LRrule.plactic]
+congr_row_1 [lemma, in Combi.LRrule.plactic]
+congr_cat [lemma, in Combi.Basic.congr]
+congr_catr [lemma, in Combi.Basic.congr]
+congr_catl [lemma, in Combi.Basic.congr]
+congr_rcons [lemma, in Combi.Basic.congr]
+congr_cons [lemma, in Combi.Basic.congr]
+conj [abbreviation, in Combi.HookFormula.hook]
+Conj [section, in Combi.LRrule.freeSchur]
+conjbij [definition, in Combi.SymGroup.cycletype]
+conjbijK [lemma, in Combi.SymGroup.cycletype]
+conjbijP [lemma, in Combi.SymGroup.cycletype]
+conjg_porbits_homog [lemma, in Combi.SymGroup.cycletype]
+conjg_porbits_stab [lemma, in Combi.SymGroup.cycletype]
+conjg_cycle [lemma, in Combi.SymGroup.cycletype]
+ConjTab [section, in Combi.Combi.stdtab]
+ConjTab.disp [variable, in Combi.Combi.stdtab]
+ConjTab.T [variable, in Combi.Combi.stdtab]
+conj_porbitgrp [lemma, in Combi.SymGroup.permcent]
+conj_hookpartn [lemma, in Combi.Combi.partition]
+conj_colpartn [lemma, in Combi.Combi.partition]
+conj_rowpartn [lemma, in Combi.Combi.partition]
+conj_intpartnK [lemma, in Combi.Combi.partition]
+conj_intpartn [definition, in Combi.Combi.partition]
+conj_intpartnP [lemma, in Combi.Combi.partition]
+conj_intpartK [lemma, in Combi.Combi.partition]
+conj_intpart [definition, in Combi.Combi.partition]
+conj_leqE [lemma, in Combi.Combi.partition]
+conj_ltnE [lemma, in Combi.Combi.partition]
+conj_part_incr_nth [lemma, in Combi.Combi.partition]
+conj_partK [lemma, in Combi.Combi.partition]
+conj_part_ind [lemma, in Combi.Combi.partition]
+conj_nseq [lemma, in Combi.Combi.partition]
+conj_part [definition, in Combi.Combi.partition]
+conj_stdtabsh_bij [lemma, in Combi.Combi.stdtab]
+conj_stdtabsh [definition, in Combi.Combi.stdtab]
+conj_stdtabshP [lemma, in Combi.Combi.stdtab]
+conj_stdtabn [definition, in Combi.Combi.stdtab]
+conj_stdtabnP [lemma, in Combi.Combi.stdtab]
+conj_tab_expl2 [definition, in Combi.Combi.stdtab]
+conj_tab_expl1 [definition, in Combi.Combi.stdtab]
+conj_tabK [lemma, in Combi.Combi.stdtab]
+conj_tab_shapeK [lemma, in Combi.Combi.stdtab]
+conj_tab [definition, in Combi.Combi.stdtab]
+conj_permP [lemma, in Combi.SymGroup.cycletype]
+Conj.d1 [variable, in Combi.LRrule.freeSchur]
+Conj.d2 [variable, in Combi.LRrule.freeSchur]
+ConnectCompl [section, in Combi.Combi.skewpart]
+ConnectCompl.e [variable, in Combi.Combi.skewpart]
+ConnectCompl.T [variable, in Combi.Combi.skewpart]
+Connected4 [section, in Combi.Combi.skewpart]
+Connected4.inner [variable, in Combi.Combi.skewpart]
+Connected4.outer [variable, in Combi.Combi.skewpart]
+connect_from_sym [lemma, in Combi.Combi.skewpart]
+connect_rev [lemma, in Combi.Combi.skewpart]
+conn4_sym [lemma, in Combi.Combi.skewpart]
+conn4_skew [definition, in Combi.Combi.skewpart]
+cons_in_map_cons [lemma, in Combi.SSRcomplements.tools]
+cons_head_behead [lemma, in Combi.SSRcomplements.tools]
+cons_TamariP [lemma, in Combi.Combi.bintree]
+continuous [record, in ALEA.Ccpo]
+continuous [inductive, in ALEA.Ccpo]
+continuous_comp [lemma, in ALEA.Ccpo]
+continuous_sym [lemma, in ALEA.Ccpo]
+continuous_continuous2 [lemma, in ALEA.Ccpo]
+continuous_eq_compat [lemma, in ALEA.Ccpo]
+continuous2 [record, in ALEA.Ccpo]
+continuous2 [inductive, in ALEA.Ccpo]
+continuous2_app2 [lemma, in ALEA.Ccpo]
+continuous2_comp2 [lemma, in ALEA.Ccpo]
+continuous2_comp [lemma, in ALEA.Ccpo]
+continuous2_sym [lemma, in ALEA.Ccpo]
+continuous2_right [lemma, in ALEA.Ccpo]
+continuous2_left [lemma, in ALEA.Ccpo]
+continuous2_continuous [lemma, in ALEA.Ccpo]
+continuous2_eq_compat [lemma, in ALEA.Ccpo]
+continuous2_app [lemma, in ALEA.Ccpo]
+continuous2_intro [projection, in ALEA.Ccpo]
+continuous2_intro [constructor, in ALEA.Ccpo]
+cont_app_simpl [lemma, in ALEA.Ccpo]
+cont_app [definition, in ALEA.Ccpo]
+cont_app_monotonic [instance, in ALEA.Ccpo]
+cont_intro [projection, in ALEA.Ccpo]
+cont_intro [constructor, in ALEA.Ccpo]
+cont0 [instance, in ALEA.Ccpo]
+cont2 [definition, in ALEA.Ccpo]
+cont2_continuous [instance, in ALEA.Ccpo]
+coord [abbreviation, in Combi.MPoly.homogsym]
+Coord [section, in Combi.MPoly.homogsym]
+coord_zsymspsp [lemma, in Combi.MPoly.Cauchy]
+coord_zsympsps [lemma, in Combi.MPoly.Cauchy]
+coord_symbp [lemma, in Combi.MPoly.homogsym]
+coord_symbs [lemma, in Combi.MPoly.homogsym]
+coord_symbh [lemma, in Combi.MPoly.homogsym]
+coord_symbe [lemma, in Combi.MPoly.homogsym]
+coord_symbm [lemma, in Combi.MPoly.homogsym]
+coord_map_homsym [lemma, in Combi.MPoly.homogsym]
+Coord.d [variable, in Combi.MPoly.homogsym]
+Coord.Hd [variable, in Combi.MPoly.homogsym]
+Coord.n0 [variable, in Combi.MPoly.homogsym]
+Coord.R [variable, in Combi.MPoly.homogsym]
+corner_hook_length1 [lemma, in Combi.HookFormula.hook]
+corner_leg_length0 [lemma, in Combi.HookFormula.hook]
+corner_arm_length0 [lemma, in Combi.HookFormula.hook]
+corner_box_conj_part [lemma, in Combi.HookFormula.hook]
+corner_box_in_part [lemma, in Combi.HookFormula.hook]
+corner_box [definition, in Combi.HookFormula.hook]
+Corollary4 [lemma, in Combi.HookFormula.hook]
+Corollary4_eq [lemma, in Combi.HookFormula.hook]
+count_mem_iota [lemma, in Combi.SSRcomplements.tools]
+count_rcons [lemma, in Combi.SSRcomplements.tools]
+count_set_of_card [lemma, in Combi.Combi.partition]
+count_mem_vect_n_k_eq_1 [lemma, in Combi.Combi.vectNK]
+count_RS [lemma, in Combi.LRrule.Schensted]
+count_instab [lemma, in Combi.LRrule.Schensted]
+count_mem_height0 [lemma, in Combi.Combi.Dyckword]
+count_gt_dominate [lemma, in Combi.Combi.tableau]
+count_mem_LRyamtab_list [lemma, in Combi.LRrule.implem]
+count_unionP [lemma, in Combi.Basic.combclass]
+covers [definition, in Combi.Basic.ordtype]
+coversEV [lemma, in Combi.Basic.ordtype]
+CoversFinPOrder [section, in Combi.Basic.ordtype]
+CoversFinPOrder.disp [variable, in Combi.Basic.ordtype]
+CoversFinPOrder.T [variable, in Combi.Basic.ordtype]
+coversP [lemma, in Combi.Basic.ordtype]
+CoverSurgery [section, in Combi.LRrule.Greene_inv]
+CoverSurgery.N [variable, in Combi.LRrule.Greene_inv]
+CoverSurgery.P [variable, in Combi.LRrule.Greene_inv]
+CoverSurgery.Q [variable, in Combi.LRrule.Greene_inv]
+CoverSurgery.S [variable, in Combi.LRrule.Greene_inv]
+covers_Tamari [lemma, in Combi.Combi.bintree]
+covers_permP [lemma, in Combi.SymGroup.weak_order]
+covers_rind [lemma, in Combi.Basic.ordtype]
+covers_path [lemma, in Combi.Basic.ordtype]
+covers_connect [lemma, in Combi.Basic.ordtype]
+covers_ind [lemma, in Combi.Basic.ordtype]
+covers_dual [lemma, in Combi.Basic.ordtype]
+cover_iporbits [lemma, in Combi.SymGroup.permcent]
+cover_cast [lemma, in Combi.SSRcomplements.ordcast]
+cover_tabcols [lemma, in Combi.LRrule.Greene]
+cover_tabcols_rec [lemma, in Combi.LRrule.Greene]
+cover_nil [lemma, in Combi.LRrule.Greene]
+cover_setpart [lemma, in Combi.Combi.setpartition]
+co_hprXYE [lemma, in Combi.MPoly.Cauchy]
+co_hpYE [lemma, in Combi.MPoly.Cauchy]
+co_hpXY_is_zmod_morphism [lemma, in Combi.MPoly.Cauchy]
+co_hp_hp [lemma, in Combi.MPoly.Cauchy]
+co_hp_is_scalar [lemma, in Combi.MPoly.Cauchy]
+co_hp_is_zmod_morphism [lemma, in Combi.MPoly.Cauchy]
+co_hpXY [definition, in Combi.MPoly.Cauchy]
+co_hp [definition, in Combi.MPoly.Cauchy]
+cpo [record, in ALEA.Ccpo]
+cpo_ord_equiv [definition, in ALEA.Ccpo]
+cshift [definition, in ALEA.Ccpo]
+cshift_simpl [lemma, in ALEA.Ccpo]
+cshift_continuous2 [instance, in ALEA.Ccpo]
+ct [abbreviation, in Combi.SymGroup.towerSn]
+ct [abbreviation, in Combi.SymGroup.towerSn]
+ct [abbreviation, in Combi.SymGroup.towerSn]
+cte [definition, in ALEA.Ccpo]
+CTpartn [definition, in Combi.SymGroup.cycletype]
+CTpartnK [lemma, in Combi.SymGroup.cycletype]
+CTpartn_colpartn [lemma, in Combi.SymGroup.cycletype]
+cutcover [lemma, in Combi.LRrule.Greene]
+CutK [section, in Combi.Combi.vectNK]
+CutK.T [variable, in Combi.Combi.vectNK]
+cut_k_flatten [lemma, in Combi.Combi.vectNK]
+cut_k [definition, in Combi.Combi.vectNK]
+cut3 [definition, in Combi.Combi.vectNK]
+Cut3 [section, in Combi.Combi.vectNK]
+Cut3.match3 [variable, in Combi.Combi.vectNK]
+Cut3.T [variable, in Combi.Combi.vectNK]
+cval [projection, in Combi.Combi.composition]
+CycleDecSpec [constructor, in Combi.SymGroup.cycles]
+cycleij_in [lemma, in Combi.SymGroup.presentSn]
+cycleij_inS [lemma, in Combi.SymGroup.presentSn]
+cycleij_gt [lemma, in Combi.SymGroup.presentSn]
+cycleij_lt [lemma, in Combi.SymGroup.presentSn]
+cycleij_j [lemma, in Combi.SymGroup.presentSn]
+cycles [library]
+CycleType [section, in Combi.SymGroup.cycletype]
+cycletype [library]
+CycleTypeConj [section, in Combi.SymGroup.cycletype]
+CycleTypeConj.T [variable, in Combi.SymGroup.cycletype]
+CycleType.CFunIndicator [section, in Combi.SymGroup.cycletype]
+CycleType.CFunIndicator.ct [variable, in Combi.SymGroup.cycletype]
+'1_[ _ ] (ring_scope) [notation, in Combi.SymGroup.cycletype]
+CycleType.Classes [section, in Combi.SymGroup.cycletype]
+CycleType.Classes.ct [variable, in Combi.SymGroup.cycletype]
+CycleType.Permofcycletype [section, in Combi.SymGroup.cycletype]
+CycleType.T [variable, in Combi.SymGroup.cycletype]
+CycleType.TPerm [section, in Combi.SymGroup.cycletype]
+cycle_type_tinjC [lemma, in Combi.SymGroup.towerSn]
+cycle_type_tinj [lemma, in Combi.SymGroup.towerSn]
+cycle_typeSn_permCT [lemma, in Combi.SymGroup.cycletype]
+cycle_typeSn1 [lemma, in Combi.SymGroup.cycletype]
+cycle_typeSn [definition, in Combi.SymGroup.cycletype]
+cycle_type_tpermP [lemma, in Combi.SymGroup.cycletype]
+cycle_type_tperm [lemma, in Combi.SymGroup.cycletype]
+cycle_type_eq [lemma, in Combi.SymGroup.cycletype]
+cycle_dec_conjg [lemma, in Combi.SymGroup.cycletype]
+cycle_type_cyclic [lemma, in Combi.SymGroup.cycletype]
+cycle_type_conjg [lemma, in Combi.SymGroup.cycletype]
+cycle_typeV [lemma, in Combi.SymGroup.cycletype]
+cycle_type1 [lemma, in Combi.SymGroup.cycletype]
+cycle_type [definition, in Combi.SymGroup.cycletype]
+cycle_type_subproof [lemma, in Combi.SymGroup.cycletype]
+cycle_decP [lemma, in Combi.SymGroup.cycles]
+cycle_dec_spec [inductive, in Combi.SymGroup.cycles]
+cycle_decE [lemma, in Combi.SymGroup.cycles]
+cycle_dec [definition, in Combi.SymGroup.cycles]
+cycle_cyclic [lemma, in Combi.SymGroup.cycles]
+cycle_type_eltr [lemma, in Combi.SymGroup.reprSn]
+cyclic [definition, in Combi.SymGroup.cycles]
+cyclicP [lemma, in Combi.SymGroup.cycles]
+cyclic_conjg [lemma, in Combi.SymGroup.cycletype]
+cyclic_dec [lemma, in Combi.SymGroup.cycles]
+cymap [definition, in Combi.SymGroup.cycletype]
+cymapcan [definition, in Combi.SymGroup.cycletype]
+cymapcan_perm [lemma, in Combi.SymGroup.cycletype]
+cymapcan_aux [lemma, in Combi.SymGroup.cycletype]
+cymapE [lemma, in Combi.SymGroup.cycletype]
+cymapK [lemma, in Combi.SymGroup.cycletype]
+cymapP [lemma, in Combi.SymGroup.cycletype]
+cymap_comp [lemma, in Combi.SymGroup.cycletype]
+cymap_id [lemma, in Combi.SymGroup.cycletype]
+

D

+Datatypes_nat__canonical__ordtype_InhOrder [definition, in Combi.Basic.ordtype]
+Datatypes_nat__canonical__ordtype_InhLattice [definition, in Combi.Basic.ordtype]
+Datatypes_nat__canonical__ordtype_InhPOrder [definition, in Combi.Basic.ordtype]
+Datatypes_bool__canonical__ordtype_InhTBLattice [definition, in Combi.Basic.ordtype]
+Datatypes_bool__canonical__ordtype_InhFinOrder [definition, in Combi.Basic.ordtype]
+Datatypes_bool__canonical__ordtype_InhFinLattice [definition, in Combi.Basic.ordtype]
+Datatypes_bool__canonical__ordtype_InhFinPOrder [definition, in Combi.Basic.ordtype]
+Datatypes_bool__canonical__ordtype_InhFinite [definition, in Combi.Basic.ordtype]
+Datatypes_bool__canonical__ordtype_InhOrder [definition, in Combi.Basic.ordtype]
+Datatypes_bool__canonical__ordtype_InhLattice [definition, in Combi.Basic.ordtype]
+Datatypes_bool__canonical__ordtype_InhPOrder [definition, in Combi.Basic.ordtype]
+Datatypes_prod__canonical__ordtype_Inhabited [definition, in Combi.Basic.ordtype]
+Datatypes_option__canonical__ordtype_Inhabited [definition, in Combi.Basic.ordtype]
+Datatypes_nat__canonical__ordtype_Inhabited [definition, in Combi.Basic.ordtype]
+Datatypes_bool__canonical__ordtype_Inhabited [definition, in Combi.Basic.ordtype]
+Datatypes_unit__canonical__ordtype_Inhabited [definition, in Combi.Basic.ordtype]
+Dbot [projection, in ALEA.Ccpo]
+decomp_cf_triv [lemma, in Combi.SymGroup.towerSn]
+decr_nth_intpartE [lemma, in Combi.Combi.partition]
+decr_nth_intpart [definition, in Combi.Combi.partition]
+decr_nthK [lemma, in Combi.Combi.partition]
+decr_nth [definition, in Combi.Combi.partition]
+decr_yam [definition, in Combi.Combi.Yamanouchi]
+dec_exists_lt [lemma, in ALEA.Misc]
+dec_sig_lt [lemma, in ALEA.Misc]
+Defs [section, in Combi.Combi.partition]
+Defs [section, in Combi.LRrule.shuffle]
+Defs [section, in Combi.Combi.Dyckword]
+Defs [section, in Combi.LRrule.plactic]
+Defs [section, in Combi.Combi.setpartition]
+Defs [section, in Combi.Combi.composition]
+DefsFiber [section, in Combi.SymGroup.cycletype]
+DefsFiber.eqct [variable, in Combi.SymGroup.cycletype]
+DefsFiber.s [variable, in Combi.SymGroup.cycletype]
+DefsFiber.t [variable, in Combi.SymGroup.cycletype]
+DefsFiber.U [variable, in Combi.SymGroup.cycletype]
+DefsFiber.V [variable, in Combi.SymGroup.cycletype]
+DefsKostkaMon [section, in Combi.MPoly.Schur_altdef]
+DefsKostkaMon.d [variable, in Combi.MPoly.Schur_altdef]
+DefsKostkaMon.la [variable, in Combi.MPoly.Schur_altdef]
+DefsKostkaMon.n [variable, in Combi.MPoly.Schur_altdef]
+Defs.Alph [variable, in Combi.LRrule.shuffle]
+Defs.Alph [variable, in Combi.LRrule.plactic]
+Defs.disp [variable, in Combi.LRrule.plactic]
+Defs.S [variable, in Combi.Combi.setpartition]
+Defs.T [variable, in Combi.Combi.setpartition]
+Defs.word [variable, in Combi.LRrule.shuffle]
+Defs.word [variable, in Combi.LRrule.plactic]
+_ / _ (Combi_scope) [notation, in Combi.Combi.partition]
+DefTrivSign [section, in Combi.SymGroup.reprSn]
+DefTrivSign.d [variable, in Combi.SymGroup.reprSn]
+DefTrivSign.n [variable, in Combi.SymGroup.reprSn]
+DefType [section, in Combi.MPoly.homogsym]
+DefType [section, in Combi.MPoly.sympoly]
+DefType.d [variable, in Combi.MPoly.homogsym]
+DefType.Hvar [variable, in Combi.MPoly.homogsym]
+DefType.n [variable, in Combi.MPoly.homogsym]
+DefType.n [variable, in Combi.MPoly.sympoly]
+DefType.R [variable, in Combi.MPoly.homogsym]
+DefType.R [variable, in Combi.MPoly.sympoly]
+Delta [abbreviation, in Combi.MPoly.antisym]
+Delta [definition, in Combi.SymGroup.presentSn]
+DeltaP [lemma, in Combi.SymGroup.presentSn]
+del_rem_corner [lemma, in Combi.Combi.partition]
+Depend [section, in Combi.Basic.congr]
+Depend.Hsym [variable, in Combi.Basic.congr]
+Depend.inv [variable, in Combi.Basic.congr]
+Depend.rule [variable, in Combi.Basic.congr]
+Depend.T [variable, in Combi.Basic.congr]
+depth_tree_eq2P [lemma, in Combi.Combi.ordtree]
+depth_tree_eq1 [lemma, in Combi.Combi.ordtree]
+depth_ordtree_pos [lemma, in Combi.Combi.ordtree]
+depth_ordtreeE [lemma, in Combi.Combi.ordtree]
+depth_ordtree [definition, in Combi.Combi.ordtree]
+DescSet [section, in Combi.Combi.composition]
+descset [definition, in Combi.Combi.composition]
+descsetK [lemma, in Combi.Combi.composition]
+descset_bij [lemma, in Combi.Combi.composition]
+descset_inj [lemma, in Combi.Combi.composition]
+DescSet.n [variable, in Combi.Combi.composition]
+det_unitrig [lemma, in Combi.Basic.unitriginv]
+dhomog_of_sym_is_linear [lemma, in Combi.MPoly.homogsym]
+dhomog_of_homogsym [definition, in Combi.MPoly.homogsym]
+diag [definition, in ALEA.Ccpo]
+diag_shift [lemma, in ALEA.Ccpo]
+diag_le_compat [lemma, in ALEA.Ccpo]
+diffX_neq0 [lemma, in Combi.MPoly.antisym]
+diff_shapeK [lemma, in Combi.Combi.partition]
+diff_shape_pad0 [lemma, in Combi.Combi.partition]
+diff_shape_eq [lemma, in Combi.Combi.partition]
+diff_shape [definition, in Combi.Combi.partition]
+diff_nth_sumn_take [lemma, in Combi.Combi.composition]
+dim_homsym [lemma, in Combi.MPoly.homogsym]
+dim_cfReprSG [lemma, in Combi.SymGroup.Frobenius_char]
+dim_irrSG [lemma, in Combi.SymGroup.Frobenius_char]
+disjoint_psupport_dprodE [lemma, in Combi.SymGroup.permcent]
+disjoint_imset [lemma, in Combi.SSRcomplements.tools]
+disjoint_cover [lemma, in Combi.LRrule.Greene_inv]
+disjoint_inj_rec [lemma, in Combi.LRrule.Greene]
+disjoint_inj [lemma, in Combi.LRrule.Greene]
+disjoint_psupports_conjg [lemma, in Combi.SymGroup.cycletype]
+disjoint_psupports_porbits [lemma, in Combi.SymGroup.cycles]
+disjoint_psupports_cycles [lemma, in Combi.SymGroup.cycles]
+disjoint_psupports_of_decomp [lemma, in Combi.SymGroup.cycles]
+disjoint_cycle_dec [lemma, in Combi.SymGroup.cycles]
+disjoint_perm_dec [lemma, in Combi.SymGroup.cycles]
+disjoint_psupport_subset [lemma, in Combi.SymGroup.cycles]
+disjoint_psupports [definition, in Combi.SymGroup.cycles]
+disj_perm_of_setpart [lemma, in Combi.SymGroup.cycletype]
+disp [definition, in Combi.LRrule.extract]
+distr [record, in ALEA.Qmeasure]
+div_central_binomial [lemma, in Combi.Combi.Dyckword]
+dominant [definition, in Combi.MPoly.antisym]
+dominant_eq [lemma, in Combi.MPoly.antisym]
+dominant_mpart [lemma, in Combi.MPoly.sympoly]
+Dominate [section, in Combi.Combi.skewtab]
+dominate [definition, in Combi.Combi.tableau]
+Dominate [section, in Combi.Combi.tableau]
+dominateK_inspos [lemma, in Combi.LRrule.Schensted]
+dominateP [lemma, in Combi.Combi.tableau]
+dominate_inspos [lemma, in Combi.LRrule.Schensted]
+dominate_tl [lemma, in Combi.Combi.tableau]
+dominate_head [lemma, in Combi.Combi.tableau]
+dominate_cut [lemma, in Combi.Combi.tableau]
+dominate_take [lemma, in Combi.Combi.tableau]
+dominate_rcons [lemma, in Combi.Combi.tableau]
+dominate_rev_trans [definition, in Combi.Combi.tableau]
+dominate_trans [lemma, in Combi.Combi.tableau]
+dominate_recE [lemma, in Combi.Combi.tableau]
+dominate_rec [definition, in Combi.Combi.tableau]
+Dominate.disp [variable, in Combi.Combi.skewtab]
+Dominate.disp [variable, in Combi.Combi.tableau]
+Dominate.T [variable, in Combi.Combi.skewtab]
+Dominate.T [variable, in Combi.Combi.tableau]
+double_app [definition, in ALEA.Ccpo]
+double_lub_shift [lemma, in ALEA.Ccpo]
+double_lub_diag [lemma, in ALEA.Ccpo]
+drop_enumI [lemma, in Combi.SSRcomplements.tools]
+drop_nilE [lemma, in Combi.SSRcomplements.tools]
+Dual [section, in Combi.Basic.ordtype]
+Duality [section, in Combi.LRrule.Greene_inv]
+Duality.Alph [variable, in Combi.LRrule.Greene_inv]
+Duality.disp [variable, in Combi.LRrule.Greene_inv]
+Duality.k [variable, in Combi.LRrule.Greene_inv]
+Duality.w [variable, in Combi.LRrule.Greene_inv]
+Duality.word [variable, in Combi.LRrule.Greene_inv]
+DualRule [section, in Combi.LRrule.plactic]
+DualRule.Alph [variable, in Combi.LRrule.plactic]
+DualRule.disp [variable, in Combi.LRrule.plactic]
+DualRule.word [variable, in Combi.LRrule.plactic]
+Dual.hb_instance_111.T [variable, in Combi.Basic.ordtype]
+Dual.hb_instance_111.d [variable, in Combi.Basic.ordtype]
+Dual.hb_instance_111.hb_instance_111 [section, in Combi.Basic.ordtype]
+Dual.hb_instance_100.T [variable, in Combi.Basic.ordtype]
+Dual.hb_instance_100.d [variable, in Combi.Basic.ordtype]
+Dual.hb_instance_100.hb_instance_100 [section, in Combi.Basic.ordtype]
+Dual.hb_instance_91.T [variable, in Combi.Basic.ordtype]
+Dual.hb_instance_91.d [variable, in Combi.Basic.ordtype]
+Dual.hb_instance_91.hb_instance_91 [section, in Combi.Basic.ordtype]
+Dual.hb_instance_80.T [variable, in Combi.Basic.ordtype]
+Dual.hb_instance_80.d [variable, in Combi.Basic.ordtype]
+Dual.hb_instance_80.hb_instance_80 [section, in Combi.Basic.ordtype]
+Dual.hb_instance_69.T [variable, in Combi.Basic.ordtype]
+Dual.hb_instance_69.d [variable, in Combi.Basic.ordtype]
+Dual.hb_instance_69.hb_instance_69 [section, in Combi.Basic.ordtype]
+Dual.hb_instance_60.T [variable, in Combi.Basic.ordtype]
+Dual.hb_instance_60.d [variable, in Combi.Basic.ordtype]
+Dual.hb_instance_60.hb_instance_60 [section, in Combi.Basic.ordtype]
+Dual.hb_instance_53.T [variable, in Combi.Basic.ordtype]
+Dual.hb_instance_53.d [variable, in Combi.Basic.ordtype]
+Dual.hb_instance_53.hb_instance_53 [section, in Combi.Basic.ordtype]
+Dual.hb_instance_48.T [variable, in Combi.Basic.ordtype]
+Dual.hb_instance_48.hb_instance_48 [section, in Combi.Basic.ordtype]
+dvdn_zcard_fact [lemma, in Combi.SymGroup.permcent]
+dvdn_prodfact [lemma, in Combi.Combi.multinomial]
+dvdn_card_permuted [lemma, in Combi.Combi.permuted]
+dyck [definition, in Combi.Combi.Dyckword]
+Dyck [record, in Combi.Combi.Dyckword]
+dyckE [lemma, in Combi.Combi.Dyckword]
+DyckFactor [section, in Combi.Combi.Dyckword]
+DyckP [lemma, in Combi.Combi.Dyckword]
+DyckSetInd [section, in Combi.Combi.Dyckword]
+DyckSetInd.P [variable, in Combi.Combi.Dyckword]
+DyckSetInd.Pcons [variable, in Combi.Combi.Dyckword]
+DyckSetInd.Pnil [variable, in Combi.Combi.Dyckword]
+DyckToBal [section, in Combi.Combi.Dyckword]
+DyckToBal.HDyck [variable, in Combi.Combi.Dyckword]
+DyckToBal.Hrt [variable, in Combi.Combi.Dyckword]
+DyckToBal.rt [variable, in Combi.Combi.Dyckword]
+DyckToBal.w [variable, in Combi.Combi.Dyckword]
+DyckType [section, in Combi.Combi.Dyckword]
+dyckword [projection, in Combi.Combi.Dyckword]
+Dyckword [library]
+DyckWordRotationBijection [section, in Combi.Combi.Dyckword]
+DyckWordRotationBijection.n [variable, in Combi.Combi.Dyckword]
+Dyckword_Dyck__canonical__choice_SubCountable [definition, in Combi.Combi.Dyckword]
+Dyckword_Dyck__canonical__choice_Countable [definition, in Combi.Combi.Dyckword]
+Dyckword_Dyck__canonical__choice_SubChoice [definition, in Combi.Combi.Dyckword]
+Dyckword_Dyck__canonical__choice_Choice [definition, in Combi.Combi.Dyckword]
+Dyckword_Dyck__canonical__eqtype_SubEquality [definition, in Combi.Combi.Dyckword]
+Dyckword_Dyck__canonical__eqtype_Equality [definition, in Combi.Combi.Dyckword]
+Dyckword_Dyck__canonical__eqtype_SubType [definition, in Combi.Combi.Dyckword]
+Dyckword_brace__canonical__fintype_Finite [definition, in Combi.Combi.Dyckword]
+Dyckword_brace__canonical__choice_Countable [definition, in Combi.Combi.Dyckword]
+Dyckword_brace__canonical__choice_Choice [definition, in Combi.Combi.Dyckword]
+Dyckword_brace__canonical__eqtype_Equality [definition, in Combi.Combi.Dyckword]
+Dyck_of_balK [lemma, in Combi.Combi.Dyckword]
+Dyck_of_Dyck_hsz [lemma, in Combi.Combi.Dyckword]
+Dyck_of_balP [lemma, in Combi.Combi.Dyckword]
+Dyck_of_bal [definition, in Combi.Combi.Dyckword]
+Dyck_hsz [definition, in Combi.Combi.Dyckword]
+Dyck_of_bintreeK [lemma, in Combi.Combi.Dyckword]
+Dyck_of_bintree [definition, in Combi.Combi.Dyckword]
+Dyck_size_even [lemma, in Combi.Combi.Dyckword]
+Dyck_ind [lemma, in Combi.Combi.Dyckword]
+Dyck_cut_ex [lemma, in Combi.Combi.Dyckword]
+Dyck_word_OwCw [lemma, in Combi.Combi.Dyckword]
+Dyck_word_flatten [lemma, in Combi.Combi.Dyckword]
+Dyck_word_cat [lemma, in Combi.Combi.Dyckword]
+Dyck_word_OwC [lemma, in Combi.Combi.Dyckword]
+Dyck_wordP [lemma, in Combi.Combi.Dyckword]
+Dyck_prefixP [lemma, in Combi.Combi.Dyckword]
+Dyck_word [definition, in Combi.Combi.Dyckword]
+Dyck_prefix [definition, in Combi.Combi.Dyckword]
+D0 [projection, in ALEA.Ccpo]
+

E

+E [abbreviation, in Combi.MPoly.homogsym]
+E [abbreviation, in Combi.MPoly.sympoly]
+E [abbreviation, in Combi.MPoly.sympoly]
+E [abbreviation, in Combi.MPoly.sympoly]
+ElemTransp [section, in Combi.SymGroup.presentSn]
+ElemTransp.n0 [variable, in Combi.SymGroup.presentSn]
+'s_[ _ ] [notation, in Combi.SymGroup.presentSn]
+'s_ _ [notation, in Combi.SymGroup.presentSn]
+elt [projection, in Combi.Combi.fibered_set]
+eltr [definition, in Combi.SymGroup.presentSn]
+EltrConj [section, in Combi.SymGroup.reprSn]
+EltrConj.n [variable, in Combi.SymGroup.reprSn]
+eltrD [definition, in Combi.SymGroup.presentSn]
+eltrD_ord [lemma, in Combi.SymGroup.presentSn]
+eltrK [lemma, in Combi.SymGroup.presentSn]
+eltrL [definition, in Combi.SymGroup.presentSn]
+eltrL_ord [lemma, in Combi.SymGroup.presentSn]
+eltrp [definition, in Combi.MPoly.antisym]
+EltrP [section, in Combi.MPoly.antisym]
+eltrpK [lemma, in Combi.MPoly.antisym]
+EltrP.i [variable, in Combi.MPoly.antisym]
+EltrP.n [variable, in Combi.MPoly.antisym]
+eltrR [definition, in Combi.SymGroup.presentSn]
+eltrR_ord [lemma, in Combi.SymGroup.presentSn]
+eltrV [lemma, in Combi.SymGroup.presentSn]
+eltr_conj [lemma, in Combi.SymGroup.reprSn]
+eltr_ind [lemma, in Combi.SymGroup.presentSn]
+eltr_genSn [lemma, in Combi.SymGroup.presentSn]
+eltr_exchange [lemma, in Combi.SymGroup.presentSn]
+eltr_comm [lemma, in Combi.SymGroup.presentSn]
+eltr_braid [lemma, in Combi.SymGroup.presentSn]
+eltr2 [lemma, in Combi.SymGroup.presentSn]
+Empty [section, in Combi.Combi.setpartition]
+empty_intpartP [lemma, in Combi.Combi.partition]
+empty_intpart [definition, in Combi.Combi.partition]
+Empty.T [variable, in Combi.Combi.setpartition]
+ends_at_rem_cornerE [lemma, in Combi.HookFormula.hook]
+ends_at [definition, in Combi.HookFormula.hook]
+EnumFintype [section, in Combi.Basic.combclass]
+EnumFintype.P [variable, in Combi.Basic.combclass]
+EnumFintype.subenum [variable, in Combi.Basic.combclass]
+EnumFintype.subenumP [variable, in Combi.Basic.combclass]
+EnumFintype.subenum_countE [variable, in Combi.Basic.combclass]
+EnumFintype.T [variable, in Combi.Basic.combclass]
+EnumFintype.TP [variable, in Combi.Basic.combclass]
+enumIMN [lemma, in Combi.LRrule.Greene]
+enumIsize_to_word [lemma, in Combi.LRrule.Greene]
+enum_stdwordn_uniq [lemma, in Combi.Combi.std]
+enum_stdwordnE [lemma, in Combi.Combi.std]
+enum_stdwordn [definition, in Combi.Combi.std]
+enum_box_in_uniq [lemma, in Combi.Combi.partition]
+enum_box_in [abbreviation, in Combi.Combi.partition]
+enum_box_skewE [lemma, in Combi.Combi.partition]
+enum_box_skew_uniq [lemma, in Combi.Combi.partition]
+enum_box_skew [definition, in Combi.Combi.partition]
+enum_intpartnE [lemma, in Combi.Combi.partition]
+enum_partnP [lemma, in Combi.Combi.partition]
+enum_partn_countE [lemma, in Combi.Combi.partition]
+enum_partn_allP [lemma, in Combi.Combi.partition]
+enum_partnsE [lemma, in Combi.Combi.partition]
+enum_partns_countE [lemma, in Combi.Combi.partition]
+enum_partns_allP [lemma, in Combi.Combi.partition]
+enum_partnskE [lemma, in Combi.Combi.partition]
+enum_partnsk_countE [lemma, in Combi.Combi.partition]
+enum_partnsk_allP [lemma, in Combi.Combi.partition]
+enum_partn [definition, in Combi.Combi.partition]
+enum_partns [definition, in Combi.Combi.partition]
+enum_partnsk [definition, in Combi.Combi.partition]
+enum_bintreesz_countE [lemma, in Combi.Combi.bintree]
+enum_bintreesz_uniq [lemma, in Combi.Combi.bintree]
+enum_bintreeszP [lemma, in Combi.Combi.bintree]
+enum_bintreeszE [lemma, in Combi.Combi.bintree]
+enum_bintreesz0 [lemma, in Combi.Combi.bintree]
+enum_bintreesz_leqE [lemma, in Combi.Combi.bintree]
+enum_bintreesz_leq_leqE [lemma, in Combi.Combi.bintree]
+enum_bintreesz [definition, in Combi.Combi.bintree]
+enum_bintreesz_leq [definition, in Combi.Combi.bintree]
+enum_cast_ord [lemma, in Combi.SSRcomplements.ordcast]
+enum_traceP [lemma, in Combi.HookFormula.hook]
+enum_trace_uniq [lemma, in Combi.HookFormula.hook]
+enum_trace [definition, in Combi.HookFormula.hook]
+enum_stdtabn [definition, in Combi.Combi.stdtab]
+enum_stdtabshE [lemma, in Combi.Combi.stdtab]
+enum_stdtabsh [definition, in Combi.Combi.stdtab]
+enum_subseqsE [lemma, in Combi.Combi.subseq]
+enum_ord_sorted [lemma, in Combi.SSRcomplements.sorted]
+enum_ord_sorted_ltn [lemma, in Combi.SSRcomplements.sorted]
+enum_ordtreesz_countE [lemma, in Combi.Combi.ordtree]
+enum_ordtreesz_uniq [lemma, in Combi.Combi.ordtree]
+enum_ordtreeszP [lemma, in Combi.Combi.ordtree]
+enum_ordtreesz [definition, in Combi.Combi.ordtree]
+enum_yamnE [lemma, in Combi.Combi.Yamanouchi]
+enum_yamevalE [lemma, in Combi.Combi.Yamanouchi]
+enum_yameval_countE [lemma, in Combi.Combi.Yamanouchi]
+enum_yamevalP [lemma, in Combi.Combi.Yamanouchi]
+enum_yameval [definition, in Combi.Combi.Yamanouchi]
+enum_yamevaln [definition, in Combi.Combi.Yamanouchi]
+enum_setpart_set1 [lemma, in Combi.Combi.setpartition]
+enum_setpart_set0 [lemma, in Combi.Combi.setpartition]
+enum_codeszE [lemma, in Combi.SymGroup.presentSn]
+enum_codesz_countE [lemma, in Combi.SymGroup.presentSn]
+enum_codeszP [lemma, in Combi.SymGroup.presentSn]
+enum_codesz [definition, in Combi.SymGroup.presentSn]
+enum_unionE [lemma, in Combi.Basic.combclass]
+enum_union [definition, in Combi.Basic.combclass]
+enum_sub_undupE [lemma, in Combi.Basic.combclass]
+enum_subE [lemma, in Combi.Basic.combclass]
+enum_intcompnE [lemma, in Combi.Combi.composition]
+enum_compnP [lemma, in Combi.Combi.composition]
+enum_compn_countE [lemma, in Combi.Combi.composition]
+enum_compn_allP [lemma, in Combi.Combi.composition]
+enum_compnE [lemma, in Combi.Combi.composition]
+enum_compn_any [lemma, in Combi.Combi.composition]
+enum_compn_rec_any [lemma, in Combi.Combi.composition]
+enum_compn [definition, in Combi.Combi.composition]
+enum_compn_rec [definition, in Combi.Combi.composition]
+enum0 [lemma, in Combi.SSRcomplements.tools]
+eqeval [definition, in Combi.MPoly.Schur_altdef]
+eqevalP [lemma, in Combi.MPoly.Schur_altdef]
+EqInvAltDef [section, in Combi.Combi.std]
+EqInvAltDef.disp1 [variable, in Combi.Combi.std]
+EqInvAltDef.disp2 [variable, in Combi.Combi.std]
+EqInvAltDef.disp3 [variable, in Combi.Combi.std]
+EqInvAltDef.S [variable, in Combi.Combi.std]
+EqInvAltDef.T [variable, in Combi.Combi.std]
+EqInvAltDef.U [variable, in Combi.Combi.std]
+EqInvDef [section, in Combi.Combi.std]
+EqInvDef.disp1 [variable, in Combi.Combi.std]
+EqInvDef.disp2 [variable, in Combi.Combi.std]
+EqInvDef.disp3 [variable, in Combi.Combi.std]
+EqInvDef.S [variable, in Combi.Combi.std]
+EqInvDef.T [variable, in Combi.Combi.std]
+EqInvDef.U [variable, in Combi.Combi.std]
+EqInvPosRemBig [section, in Combi.Combi.std]
+EqInvPosRemBig.disp1 [variable, in Combi.Combi.std]
+EqInvPosRemBig.disp2 [variable, in Combi.Combi.std]
+EqInvPosRemBig.S [variable, in Combi.Combi.std]
+EqInvPosRemBig.T [variable, in Combi.Combi.std]
+EqInvSkewTab [section, in Combi.Combi.skewtab]
+eqtype_Equality__to__eqtype_hasDecEq [definition, in Combi.LRrule.Schensted]
+eqtype_Equality__to__eqtype_hasDecEq [definition, in Combi.Combi.Dyckword]
+equivalence_partitionE [lemma, in Combi.Combi.setpartition]
+equiv_rtrans [lemma, in Combi.Basic.congr]
+equi_fbbij [lemma, in Combi.Combi.fibered_set]
+eq_inv_transp [lemma, in Combi.Combi.std]
+eq_inv_catr [lemma, in Combi.Combi.std]
+eq_inv_catl [lemma, in Combi.Combi.std]
+eq_inv_std [lemma, in Combi.Combi.std]
+eq_inv_rembig [lemma, in Combi.Combi.std]
+eq_inv_posbig [lemma, in Combi.Combi.std]
+eq_inv_allgtnX [lemma, in Combi.Combi.std]
+eq_inv_allgt_imply [lemma, in Combi.Combi.std]
+eq_inv_rconsK [lemma, in Combi.Combi.std]
+eq_inv_consK [lemma, in Combi.Combi.std]
+eq_inv_inversionP [lemma, in Combi.Combi.std]
+eq_invP [lemma, in Combi.Combi.std]
+eq_inv_size [lemma, in Combi.Combi.std]
+eq_inv_trans [lemma, in Combi.Combi.std]
+eq_inv_sym [lemma, in Combi.Combi.std]
+eq_inv_nil [lemma, in Combi.Combi.std]
+eq_inv_refl [lemma, in Combi.Combi.std]
+eq_inv [definition, in Combi.Combi.std]
+eq_from_nth_notin [lemma, in Combi.SSRcomplements.tools]
+eq_bintreeP [lemma, in Combi.Combi.bintree]
+eq_bintree [definition, in Combi.Combi.bintree]
+eq_inv_is_skew_tableau_reshape [lemma, in Combi.Combi.skewtab]
+eq_inv_is_skew_tableau_reshape_size [lemma, in Combi.Combi.skewtab]
+eq_inv_skew_dominate [lemma, in Combi.Combi.skewtab]
+eq_Greene_rel [lemma, in Combi.LRrule.Greene]
+eq_Greene_rel_t [lemma, in Combi.LRrule.Greene]
+eq_from_shape_get_tab [lemma, in Combi.Combi.stdtab]
+eq_inv_is_row [lemma, in Combi.Combi.stdtab]
+eq_ord_equiv [lemma, in ALEA.Ccpo]
+eq_ord [definition, in ALEA.Ccpo]
+eq_rel [definition, in ALEA.Ccpo]
+eq_in_porbit [lemma, in Combi.SymGroup.cycles]
+eq_ordtreeP [lemma, in Combi.Combi.ordtree]
+eq_ordtree [definition, in Combi.Combi.ordtree]
+eq_forest [definition, in Combi.Combi.ordtree]
+eq_interv_part [lemma, in Combi.Combi.skewpart]
+eq_seqE [lemma, in Combi.Combi.permuted]
+eq_nat2_dec [definition, in ALEA.Misc]
+eq_mnm1 [lemma, in Combi.MPoly.sympoly]
+Erdos_Szekeres [lemma, in Combi.Erdos_Szekeres.Erdos_Szekeres]
+Erdos_Szekeres [library]
+er_eqE [lemma, in Combi.MPoly.homogsym]
+Esym [lemma, in Combi.MPoly.homogsym]
+esympolyf_eval_is_monoid_morphism [lemma, in Combi.MPoly.sympoly]
+esympolyf_eval_is_linear [lemma, in Combi.MPoly.sympoly]
+eval [definition, in Combi.MPoly.Schur_altdef]
+evalE [lemma, in Combi.MPoly.Schur_altdef]
+evalseq [definition, in Combi.Combi.Yamanouchi]
+evalseq_hyper_yam [lemma, in Combi.Combi.Yamanouchi]
+evalseq_decr_yam [lemma, in Combi.Combi.Yamanouchi]
+evalseq_eq_size [lemma, in Combi.Combi.Yamanouchi]
+evalseq_cons [lemma, in Combi.Combi.Yamanouchi]
+evalseq_countE [lemma, in Combi.Combi.Yamanouchi]
+evalseq_count [definition, in Combi.Combi.Yamanouchi]
+evalseq0 [lemma, in Combi.Combi.Yamanouchi]
+evalXY [definition, in Combi.MPoly.Cauchy]
+evalXY_homog [lemma, in Combi.MPoly.Cauchy]
+evalXY_XE [lemma, in Combi.MPoly.Cauchy]
+evalXY_is_linear [lemma, in Combi.MPoly.Cauchy]
+evalXY_is_monoid_morphism [lemma, in Combi.MPoly.Cauchy]
+evalXY_is_zmod_morphism [lemma, in Combi.MPoly.Cauchy]
+eval_ext_tab [lemma, in Combi.MPoly.Schur_altdef]
+eval_res_tab [lemma, in Combi.MPoly.Schur_altdef]
+eval_yameval [lemma, in Combi.Combi.Yamanouchi]
+eval_eq [projection, in Combi.LRrule.implem]
+eval_part [projection, in Combi.LRrule.implem]
+Examples [section, in Combi.Combi.std]
+Examples.u [variable, in Combi.Combi.std]
+Examples.v [variable, in Combi.Combi.std]
+Example1 [module, in Combi.Basic.combclass]
+Example1.all_isOne [lemma, in Combi.Basic.combclass]
+Example1.card_isOne [lemma, in Combi.Basic.combclass]
+Example1.choice_Countable__to__choice_Choice_isCountable [definition, in Combi.Basic.combclass]
+Example1.choice_Countable__to__eqtype_hasDecEq [definition, in Combi.Basic.combclass]
+Example1.choice_Countable__to__choice_hasChoice [definition, in Combi.Basic.combclass]
+Example1.enum_isOne [lemma, in Combi.Basic.combclass]
+Example1.Example1_isOne__canonical__fintype_SubFinite [definition, in Combi.Basic.combclass]
+Example1.Example1_isOne__canonical__fintype_Finite [definition, in Combi.Basic.combclass]
+Example1.Example1_isOne__canonical__choice_SubCountable [definition, in Combi.Basic.combclass]
+Example1.Example1_isOne__canonical__choice_Countable [definition, in Combi.Basic.combclass]
+Example1.Example1_isOne__canonical__choice_SubChoice [definition, in Combi.Basic.combclass]
+Example1.Example1_isOne__canonical__choice_Choice [definition, in Combi.Basic.combclass]
+Example1.Example1_isOne__canonical__eqtype_SubEquality [definition, in Combi.Basic.combclass]
+Example1.Example1_isOne__canonical__eqtype_Equality [definition, in Combi.Basic.combclass]
+Example1.Example1_isOne__canonical__eqtype_SubType [definition, in Combi.Basic.combclass]
+Example1.fintype_Finite__to__fintype_isFinite [definition, in Combi.Basic.combclass]
+Example1.HB_unnamed_mixin_15 [definition, in Combi.Basic.combclass]
+Example1.HB_unnamed_factory_10 [definition, in Combi.Basic.combclass]
+Example1.HB_unnamed_mixin_9 [definition, in Combi.Basic.combclass]
+Example1.HB_unnamed_mixin_8 [definition, in Combi.Basic.combclass]
+Example1.HB_unnamed_mixin_7 [definition, in Combi.Basic.combclass]
+Example1.HB_unnamed_factory_3 [definition, in Combi.Basic.combclass]
+Example1.HB_unnamed_factory_1 [definition, in Combi.Basic.combclass]
+Example1.isOne [record, in Combi.Basic.combclass]
+Example1.isOne_count_1 [lemma, in Combi.Basic.combclass]
+Example1.is_one [definition, in Combi.Basic.combclass]
+Example1.one [projection, in Combi.Basic.combclass]
+Example2 [module, in Combi.Basic.combclass]
+Example2.all_isoneE [lemma, in Combi.Basic.combclass]
+Example2.card_isOne [lemma, in Combi.Basic.combclass]
+Example2.choice_Countable__to__choice_Choice_isCountable [definition, in Combi.Basic.combclass]
+Example2.choice_Countable__to__eqtype_hasDecEq [definition, in Combi.Basic.combclass]
+Example2.choice_Countable__to__choice_hasChoice [definition, in Combi.Basic.combclass]
+Example2.enum_isOne [lemma, in Combi.Basic.combclass]
+Example2.Example2_isOne__canonical__fintype_SubFinite [definition, in Combi.Basic.combclass]
+Example2.Example2_isOne__canonical__fintype_Finite [definition, in Combi.Basic.combclass]
+Example2.Example2_isOne__canonical__choice_SubCountable [definition, in Combi.Basic.combclass]
+Example2.Example2_isOne__canonical__choice_Countable [definition, in Combi.Basic.combclass]
+Example2.Example2_isOne__canonical__choice_SubChoice [definition, in Combi.Basic.combclass]
+Example2.Example2_isOne__canonical__choice_Choice [definition, in Combi.Basic.combclass]
+Example2.Example2_isOne__canonical__eqtype_SubEquality [definition, in Combi.Basic.combclass]
+Example2.Example2_isOne__canonical__eqtype_Equality [definition, in Combi.Basic.combclass]
+Example2.Example2_isOne__canonical__eqtype_SubType [definition, in Combi.Basic.combclass]
+Example2.fintype_Finite__to__fintype_isFinite [definition, in Combi.Basic.combclass]
+Example2.HB_unnamed_mixin_30 [definition, in Combi.Basic.combclass]
+Example2.HB_unnamed_factory_25 [definition, in Combi.Basic.combclass]
+Example2.HB_unnamed_mixin_24 [definition, in Combi.Basic.combclass]
+Example2.HB_unnamed_mixin_23 [definition, in Combi.Basic.combclass]
+Example2.HB_unnamed_mixin_22 [definition, in Combi.Basic.combclass]
+Example2.HB_unnamed_factory_18 [definition, in Combi.Basic.combclass]
+Example2.HB_unnamed_factory_16 [definition, in Combi.Basic.combclass]
+Example2.isOne [record, in Combi.Basic.combclass]
+Example2.isOne_uniq [lemma, in Combi.Basic.combclass]
+Example2.is_one [definition, in Combi.Basic.combclass]
+Example2.one [projection, in Combi.Basic.combclass]
+Example3 [module, in Combi.Basic.combclass]
+Example3.all_isOne [lemma, in Combi.Basic.combclass]
+Example3.card_isOne [lemma, in Combi.Basic.combclass]
+Example3.choice_Countable__to__choice_Choice_isCountable [definition, in Combi.Basic.combclass]
+Example3.choice_Countable__to__eqtype_hasDecEq [definition, in Combi.Basic.combclass]
+Example3.choice_Countable__to__choice_hasChoice [definition, in Combi.Basic.combclass]
+Example3.enum_isOne [lemma, in Combi.Basic.combclass]
+Example3.Example3_isOne__canonical__fintype_SubFinite [definition, in Combi.Basic.combclass]
+Example3.Example3_isOne__canonical__fintype_Finite [definition, in Combi.Basic.combclass]
+Example3.Example3_isOne__canonical__choice_SubCountable [definition, in Combi.Basic.combclass]
+Example3.Example3_isOne__canonical__choice_Countable [definition, in Combi.Basic.combclass]
+Example3.Example3_isOne__canonical__choice_SubChoice [definition, in Combi.Basic.combclass]
+Example3.Example3_isOne__canonical__choice_Choice [definition, in Combi.Basic.combclass]
+Example3.Example3_isOne__canonical__eqtype_SubEquality [definition, in Combi.Basic.combclass]
+Example3.Example3_isOne__canonical__eqtype_Equality [definition, in Combi.Basic.combclass]
+Example3.Example3_isOne__canonical__eqtype_SubType [definition, in Combi.Basic.combclass]
+Example3.fintype_Finite__to__fintype_isFinite [definition, in Combi.Basic.combclass]
+Example3.HB_unnamed_mixin_45 [definition, in Combi.Basic.combclass]
+Example3.HB_unnamed_factory_40 [definition, in Combi.Basic.combclass]
+Example3.HB_unnamed_mixin_39 [definition, in Combi.Basic.combclass]
+Example3.HB_unnamed_mixin_38 [definition, in Combi.Basic.combclass]
+Example3.HB_unnamed_mixin_37 [definition, in Combi.Basic.combclass]
+Example3.HB_unnamed_factory_33 [definition, in Combi.Basic.combclass]
+Example3.HB_unnamed_factory_31 [definition, in Combi.Basic.combclass]
+Example3.isOne [record, in Combi.Basic.combclass]
+Example3.isOne_in [lemma, in Combi.Basic.combclass]
+Example3.is_one [definition, in Combi.Basic.combclass]
+Example3.one [projection, in Combi.Basic.combclass]
+exc [definition, in ALEA.Misc]
+excluded_middle [lemma, in ALEA.Misc]
+exc_intro_class [lemma, in ALEA.Misc]
+exc_intro [lemma, in ALEA.Misc]
+exists_minh [lemma, in Combi.Combi.Dyckword]
+exist_size_Sch [lemma, in Combi.LRrule.Schensted]
+expand_prod_add1_seq [lemma, in Combi.HookFormula.hook]
+expg_tinj_rshift [lemma, in Combi.SymGroup.towerSn]
+expg_tinj_lshift [lemma, in Combi.SymGroup.towerSn]
+expg_prod_of_disjoint [lemma, in Combi.SymGroup.cycles]
+expri2 [lemma, in Combi.MPoly.sympoly]
+expUmpartE [lemma, in Combi.MPoly.sympoly]
+expUmpartNE [lemma, in Combi.MPoly.sympoly]
+exp1sumnDsize [lemma, in Combi.MPoly.sympoly]
+extlsplit [lemma, in Combi.LRrule.Greene]
+extprod_mx_repr [definition, in Combi.SymGroup.towerSn]
+extprod_mx_repr_subproof [lemma, in Combi.SymGroup.towerSn]
+extract [definition, in Combi.LRrule.Greene]
+extract [library]
+extractIE [lemma, in Combi.LRrule.Greene]
+extractmaskE [lemma, in Combi.LRrule.Greene]
+extractpred [definition, in Combi.LRrule.Greene]
+extractS [lemma, in Combi.LRrule.Greene]
+extract_rev_set [lemma, in Combi.LRrule.Greene_inv]
+extract_cut [lemma, in Combi.LRrule.Greene_inv]
+extract_tabcols_rec [lemma, in Combi.LRrule.Greene]
+extract_tabrows_rec [lemma, in Combi.LRrule.Greene]
+extract_tabrows_0 [lemma, in Combi.LRrule.Greene]
+extract0 [lemma, in Combi.LRrule.Greene]
+extract1 [lemma, in Combi.LRrule.Greene]
+extract2 [lemma, in Combi.LRrule.Greene]
+extrsplit [lemma, in Combi.LRrule.Greene]
+extsubsI [lemma, in Combi.LRrule.Greene]
+extsubsIm [lemma, in Combi.LRrule.Greene]
+extsubsm [lemma, in Combi.LRrule.Greene]
+ext_tab_inj [lemma, in Combi.MPoly.Schur_altdef]
+ext_tabK [lemma, in Combi.MPoly.Schur_altdef]
+ext_tab [definition, in Combi.MPoly.Schur_altdef]
+ext_tab_subproof [lemma, in Combi.MPoly.Schur_altdef]
+ext_tab_fun [definition, in Combi.MPoly.Schur_altdef]
+ex_set_setpart_shape [lemma, in Combi.Combi.partition]
+ex_setpart_shape [lemma, in Combi.Combi.partition]
+ex_subset_card [lemma, in Combi.Combi.partition]
+ex_dropeq [lemma, in Combi.Combi.skewpart]
+

F

+factor_Dyck_seq [lemma, in Combi.Combi.Dyckword]
+factor_Dyck [lemma, in Combi.Combi.Dyckword]
+famY [definition, in Combi.MPoly.Cauchy]
+famYinv [definition, in Combi.MPoly.Cauchy]
+famYinv_subproof [lemma, in Combi.MPoly.Cauchy]
+famY_bij [lemma, in Combi.MPoly.Cauchy]
+famY_subproof [lemma, in Combi.MPoly.Cauchy]
+FastImplem [section, in Combi.MPoly.MurnaghanNakayama]
+FastImplem.ComRing [section, in Combi.MPoly.MurnaghanNakayama]
+FastImplem.ComRing.R [variable, in Combi.MPoly.MurnaghanNakayama]
+FastImplem.n0 [variable, in Combi.MPoly.MurnaghanNakayama]
+fbbij [definition, in Combi.Combi.fibered_set]
+fbbijK [lemma, in Combi.Combi.fibered_set]
+fbbijP [lemma, in Combi.Combi.fibered_set]
+fbbij_in_fiber [lemma, in Combi.Combi.fibered_set]
+fbfun [projection, in Combi.Combi.fibered_set]
+fbset [projection, in Combi.Combi.fibered_set]
+fbset_fbbij [lemma, in Combi.Combi.fibered_set]
+Fchar [definition, in Combi.SymGroup.Frobenius_char]
+FcharE [lemma, in Combi.SymGroup.Frobenius_char]
+FcharK [lemma, in Combi.SymGroup.Frobenius_char]
+FcharNvar [lemma, in Combi.SymGroup.Frobenius_char]
+Fchar_irrSGE [lemma, in Combi.SymGroup.Frobenius_char]
+Fchar_ind_morph [lemma, in Combi.SymGroup.Frobenius_char]
+Fchar_inv_isometry [lemma, in Combi.SymGroup.Frobenius_char]
+Fchar_isometry [lemma, in Combi.SymGroup.Frobenius_char]
+Fchar_sign [lemma, in Combi.SymGroup.Frobenius_char]
+Fchar_inv_homsymp [lemma, in Combi.SymGroup.Frobenius_char]
+Fchar_triv [lemma, in Combi.SymGroup.Frobenius_char]
+Fchar_invK [lemma, in Combi.SymGroup.Frobenius_char]
+Fchar_inv_is_linear [lemma, in Combi.SymGroup.Frobenius_char]
+Fchar_ncfuniCT [lemma, in Combi.SymGroup.Frobenius_char]
+Fchar_is_linear [lemma, in Combi.SymGroup.Frobenius_char]
+Fchar_invE [lemma, in Combi.SymGroup.Frobenius_char]
+Fchar_inv [definition, in Combi.SymGroup.Frobenius_char]
+fcomp [definition, in ALEA.Ccpo]
+fcomp_simpl [lemma, in ALEA.Ccpo]
+fcomp2 [definition, in ALEA.Ccpo]
+fcomp2_simpl [lemma, in ALEA.Ccpo]
+fcont [record, in ALEA.Ccpo]
+fcontinuous [projection, in ALEA.Ccpo]
+Fcontm [definition, in ALEA.Ccpo]
+fcontm [projection, in ALEA.Ccpo]
+fcontm_fcont_comp_simpl [lemma, in ALEA.Ccpo]
+Fcontm_continuous [instance, in ALEA.Ccpo]
+fcontm_monotonic [instance, in ALEA.Ccpo]
+fcont_compn_com [lemma, in ALEA.Ccpo]
+fcont_compn_Sn_simpl [lemma, in ALEA.Ccpo]
+fcont_compn [definition, in ALEA.Ccpo]
+fcont_SEQ_simpl [lemma, in ALEA.Ccpo]
+fcont_SEQ [definition, in ALEA.Ccpo]
+fcont_continuous2 [instance, in ALEA.Ccpo]
+fcont_continuous [lemma, in ALEA.Ccpo]
+fcont_eq_compat2 [lemma, in ALEA.Ccpo]
+fcont_le_compat2 [lemma, in ALEA.Ccpo]
+fcont_COMP_simpl [lemma, in ALEA.Ccpo]
+fcont_COMP [definition, in ALEA.Ccpo]
+fcont_Comp_continuous2 [instance, in ALEA.Ccpo]
+fcont_Comp_simpl [lemma, in ALEA.Ccpo]
+fcont_Comp [definition, in ALEA.Ccpo]
+fcont_comp_le_compat [lemma, in ALEA.Ccpo]
+fcont_comp_simpl [lemma, in ALEA.Ccpo]
+fcont_comp [definition, in ALEA.Ccpo]
+fcont_comp_continuous [instance, in ALEA.Ccpo]
+fcont_lub_simpl [lemma, in ALEA.Ccpo]
+fcont_app_continuous [lemma, in ALEA.Ccpo]
+fcont_mshift [definition, in ALEA.Ccpo]
+fcont_ishift [definition, in ALEA.Ccpo]
+fcont_app_simpl [lemma, in ALEA.Ccpo]
+fcont_app [definition, in ALEA.Ccpo]
+fcont_cpo [instance, in ALEA.Ccpo]
+fcont_lub [definition, in ALEA.Ccpo]
+fcont_lub_continuous [instance, in ALEA.Ccpo]
+fcont_eq [lemma, in ALEA.Ccpo]
+fcont_le [lemma, in ALEA.Ccpo]
+fcont_eq_elim [lemma, in ALEA.Ccpo]
+fcont_eq_intro [lemma, in ALEA.Ccpo]
+fcont_le_elim [lemma, in ALEA.Ccpo]
+fcont_le_intro [lemma, in ALEA.Ccpo]
+fcont_ord [instance, in ALEA.Ccpo]
+fcont_fun [definition, in ALEA.Ccpo]
+fcont0 [definition, in ALEA.Ccpo]
+fcont2_comp_simpl [lemma, in ALEA.Ccpo]
+fcont2_comp [definition, in ALEA.Ccpo]
+fcont2_COMP [definition, in ALEA.Ccpo]
+fcpo [instance, in ALEA.Ccpo]
+fcpo_lub_simpl [lemma, in ALEA.Ccpo]
+feq [definition, in ALEA.Misc]
+feq_trans [lemma, in ALEA.Misc]
+feq_sym [lemma, in ALEA.Misc]
+feq_refl [lemma, in ALEA.Misc]
+fiber [definition, in Combi.Combi.fibered_set]
+fibered_set [record, in Combi.Combi.fibered_set]
+fibered_set [library]
+fiber_slporbitE [lemma, in Combi.SymGroup.cycletype]
+Fif [definition, in ALEA.Ccpo]
+fif [definition, in ALEA.Ccpo]
+fif_continuous2 [lemma, in ALEA.Ccpo]
+Fif_continuous2 [instance, in ALEA.Ccpo]
+fif_continuous_right [lemma, in ALEA.Ccpo]
+fif_continuous_left2 [lemma, in ALEA.Ccpo]
+fif_continuous_left [lemma, in ALEA.Ccpo]
+Fif_continuous_left [lemma, in ALEA.Ccpo]
+Fif_continuous_right [lemma, in ALEA.Ccpo]
+Fif_simpl [lemma, in ALEA.Ccpo]
+fif_mon2 [instance, in ALEA.Ccpo]
+filtergtn_LRsupport [lemma, in Combi.LRrule.therule]
+FilterLeqGeq [section, in Combi.Combi.skewtab]
+FilterLeqGeq.disp [variable, in Combi.Combi.skewtab]
+FilterLeqGeq.T [variable, in Combi.Combi.skewtab]
+filterleq_LRsupport [lemma, in Combi.LRrule.therule]
+filter_gt_RS [lemma, in Combi.LRrule.shuffle]
+filter_le_first_row0 [lemma, in Combi.Combi.skewtab]
+filter_gt_first_row0 [lemma, in Combi.Combi.skewtab]
+filter_le_tab [definition, in Combi.Combi.skewtab]
+filter_le_dominate [lemma, in Combi.Combi.skewtab]
+filter_ext_tab [lemma, in Combi.MPoly.Schur_altdef]
+filter_to_word [lemma, in Combi.Combi.tableau]
+filter_gt_tab [definition, in Combi.Combi.tableau]
+filter_gt_dominate [lemma, in Combi.Combi.tableau]
+filter_le_row [lemma, in Combi.Combi.tableau]
+filter_gt_row [lemma, in Combi.Combi.tableau]
+filter_le_to_word [lemma, in Combi.LRrule.therule]
+filter_gt_to_word [lemma, in Combi.LRrule.therule]
+filter_gt_shiftn [lemma, in Combi.LRrule.therule]
+filter_le_shiftn [lemma, in Combi.LRrule.therule]
+fin [record, in ALEA.Qmeasure]
+FindCorner [section, in Combi.HookFormula.hook]
+FindCorner.EndsAt [section, in Combi.HookFormula.hook]
+FindCorner.EndsAt.Alpha [variable, in Combi.HookFormula.hook]
+FindCorner.EndsAt.Beta [variable, in Combi.HookFormula.hook]
+FindCorner.EndsAt.Hcorn [variable, in Combi.HookFormula.hook]
+FindCorner.Formula [section, in Combi.HookFormula.hook]
+FindCorner.Formula.alpha [variable, in Combi.HookFormula.hook]
+FindCorner.Formula.R [variable, in Combi.HookFormula.hook]
+FindCorner.Formula.T [variable, in Combi.HookFormula.hook]
+FindCorner.p [variable, in Combi.HookFormula.hook]
+FindCorner.Theorem2 [section, in Combi.HookFormula.hook]
+FindCorner.Theorem2.Alpha [variable, in Combi.HookFormula.hook]
+FindCorner.Theorem2.Beta [variable, in Combi.HookFormula.hook]
+FindCorner.Theorem2.Hcorn [variable, in Combi.HookFormula.hook]
+FindCorner.Theorem2.Hpartc' [variable, in Combi.HookFormula.hook]
+FindCorner.Theorem2.p' [variable, in Combi.HookFormula.hook]
+find_append_nth [lemma, in Combi.Combi.stdtab]
+FinerCard [section, in Combi.Combi.setpartition]
+FinerCard.finPQ [variable, in Combi.Combi.setpartition]
+FinerCard.P [variable, in Combi.Combi.setpartition]
+FinerCard.Q [variable, in Combi.Combi.setpartition]
+FinerCard.S [variable, in Combi.Combi.setpartition]
+FinerCard.T [variable, in Combi.Combi.setpartition]
+Finite [definition, in ALEA.Qmeasure]
+FiniteDistributions [section, in ALEA.Qmeasure]
+FiniteDistributions.A [variable, in ALEA.Qmeasure]
+FiniteDistributions.p [variable, in ALEA.Qmeasure]
+Finite_in_seq [lemma, in ALEA.Qmeasure]
+Finite_eq_out [lemma, in ALEA.Qmeasure]
+Finite_eq_in [lemma, in ALEA.Qmeasure]
+Finite_simpl [lemma, in ALEA.Qmeasure]
+finite_stable_sub [lemma, in ALEA.Qmeasure]
+finite_simpl [lemma, in ALEA.Qmeasure]
+finite_mon [instance, in ALEA.Qmeasure]
+finite_stdtabn [lemma, in Combi.Combi.stdtab]
+finite_stdtabsh [lemma, in Combi.Combi.stdtab]
+finite_tabsh [lemma, in Combi.Combi.tableau]
+finite_unionP [lemma, in Combi.Basic.combclass]
+finite_sub_undupP [lemma, in Combi.Basic.combclass]
+finite_subP [lemma, in Combi.Basic.combclass]
+finord_wf_down [lemma, in Combi.Basic.ordtype]
+finord_wf [lemma, in Combi.Basic.ordtype]
+FinSet [section, in Combi.SSRcomplements.tools]
+finset_set_of__canonical__ordtype_Inhabited [definition, in Combi.Basic.ordtype]
+FinSet.T [variable, in Combi.SSRcomplements.tools]
+FinType [section, in Combi.Combi.subseq]
+FinType [section, in Combi.Combi.tableau]
+FinType [section, in Combi.Combi.ordtree]
+FinType [section, in Combi.Combi.permuted]
+fintype_Finite__to__fintype_isFinite [definition, in Combi.Combi.std]
+fintype_Finite__to__fintype_isFinite__87 [definition, in Combi.Combi.partition]
+fintype_Finite__to__fintype_isFinite [definition, in Combi.Combi.partition]
+fintype_Finite__to__fintype_isFinite [definition, in Combi.Combi.bintree]
+fintype_Finite__to__eqtype_hasDecEq [definition, in Combi.Combi.bintree]
+fintype_Finite__to__choice_Choice_isCountable [definition, in Combi.Combi.bintree]
+fintype_Finite__to__choice_hasChoice [definition, in Combi.Combi.bintree]
+fintype_Finite__to__fintype_isFinite [definition, in Combi.Combi.Dyckword]
+fintype_Finite__to__fintype_isFinite [definition, in Combi.Combi.subseq]
+fintype_Finite__to__eqtype_hasDecEq [definition, in Combi.Combi.subseq]
+fintype_Finite__to__choice_Choice_isCountable [definition, in Combi.Combi.subseq]
+fintype_Finite__to__choice_hasChoice [definition, in Combi.Combi.subseq]
+fintype_Finite__to__fintype_isFinite [definition, in Combi.Combi.ordtree]
+fintype_Finite__to__eqtype_hasDecEq [definition, in Combi.Combi.ordtree]
+fintype_Finite__to__choice_Choice_isCountable [definition, in Combi.Combi.ordtree]
+fintype_Finite__to__choice_hasChoice [definition, in Combi.Combi.ordtree]
+fintype_Finite__to__fintype_isFinite__33 [definition, in Combi.Combi.Yamanouchi]
+fintype_Finite__to__fintype_isFinite [definition, in Combi.Combi.Yamanouchi]
+fintype_Finite__to__fintype_isFinite [definition, in Combi.Combi.setpartition]
+fintype_Finite__to__eqtype_hasDecEq [definition, in Combi.Combi.setpartition]
+fintype_Finite__to__choice_Choice_isCountable [definition, in Combi.Combi.setpartition]
+fintype_Finite__to__choice_hasChoice [definition, in Combi.Combi.setpartition]
+fintype_Finite__to__fintype_isFinite [definition, in Combi.Combi.permuted]
+fintype_ordinal__canonical__Order_FinTBTotal [definition, in Combi.Basic.ordtype]
+fintype_ordinal__canonical__Order_TBTotal [definition, in Combi.Basic.ordtype]
+fintype_ordinal__canonical__Order_BTotal [definition, in Combi.Basic.ordtype]
+fintype_ordinal__canonical__Order_FinTBDistrLattice [definition, in Combi.Basic.ordtype]
+fintype_ordinal__canonical__Order_TBDistrLattice [definition, in Combi.Basic.ordtype]
+fintype_ordinal__canonical__Order_BDistrLattice [definition, in Combi.Basic.ordtype]
+fintype_ordinal__canonical__Order_FinTBLattice [definition, in Combi.Basic.ordtype]
+fintype_ordinal__canonical__ordtype_InhTBLattice [definition, in Combi.Basic.ordtype]
+fintype_ordinal__canonical__Order_SubTBLattice [definition, in Combi.Basic.ordtype]
+fintype_ordinal__canonical__Order_JoinSubTBLattice [definition, in Combi.Basic.ordtype]
+fintype_ordinal__canonical__Order_SubBLattice [definition, in Combi.Basic.ordtype]
+fintype_ordinal__canonical__Order_JoinSubBLattice [definition, in Combi.Basic.ordtype]
+fintype_ordinal__canonical__Order_MeetSubTBLattice [definition, in Combi.Basic.ordtype]
+fintype_ordinal__canonical__Order_MeetSubBLattice [definition, in Combi.Basic.ordtype]
+fintype_ordinal__canonical__Order_SubPOrderTBLattice [definition, in Combi.Basic.ordtype]
+fintype_ordinal__canonical__Order_SubPOrderBLattice [definition, in Combi.Basic.ordtype]
+fintype_ordinal__canonical__Order_TBLattice [definition, in Combi.Basic.ordtype]
+fintype_ordinal__canonical__Order_BLattice [definition, in Combi.Basic.ordtype]
+fintype_ordinal__canonical__Order_TBJoinSemilattice [definition, in Combi.Basic.ordtype]
+fintype_ordinal__canonical__Order_BJoinSemilattice [definition, in Combi.Basic.ordtype]
+fintype_ordinal__canonical__Order_FinBMeetSemilattice [definition, in Combi.Basic.ordtype]
+fintype_ordinal__canonical__Order_TBMeetSemilattice [definition, in Combi.Basic.ordtype]
+fintype_ordinal__canonical__Order_BMeetSemilattice [definition, in Combi.Basic.ordtype]
+fintype_ordinal__canonical__Order_FinTBPOrder [definition, in Combi.Basic.ordtype]
+fintype_ordinal__canonical__Order_FinBPOrder [definition, in Combi.Basic.ordtype]
+fintype_ordinal__canonical__Order_TBPOrder [definition, in Combi.Basic.ordtype]
+fintype_ordinal__canonical__Order_BPOrder [definition, in Combi.Basic.ordtype]
+fintype_ordinal__canonical__ordtype_InhFinOrder [definition, in Combi.Basic.ordtype]
+fintype_ordinal__canonical__ordtype_InhFinLattice [definition, in Combi.Basic.ordtype]
+fintype_ordinal__canonical__Order_FinTJoinSemilattice [definition, in Combi.Basic.ordtype]
+fintype_ordinal__canonical__Order_FinTPOrder [definition, in Combi.Basic.ordtype]
+fintype_ordinal__canonical__ordtype_InhFinPOrder [definition, in Combi.Basic.ordtype]
+fintype_ordinal__canonical__ordtype_InhFinite [definition, in Combi.Basic.ordtype]
+fintype_ordinal__canonical__ordtype_InhOrder [definition, in Combi.Basic.ordtype]
+fintype_ordinal__canonical__Order_TTotal [definition, in Combi.Basic.ordtype]
+fintype_ordinal__canonical__Order_TDistrLattice [definition, in Combi.Basic.ordtype]
+fintype_ordinal__canonical__ordtype_InhLattice [definition, in Combi.Basic.ordtype]
+fintype_ordinal__canonical__ordtype_InhPOrder [definition, in Combi.Basic.ordtype]
+fintype_ordinal__canonical__Order_SubTLattice [definition, in Combi.Basic.ordtype]
+fintype_ordinal__canonical__Order_JoinSubTLattice [definition, in Combi.Basic.ordtype]
+fintype_ordinal__canonical__Order_MeetSubTLattice [definition, in Combi.Basic.ordtype]
+fintype_ordinal__canonical__Order_SubPOrderTLattice [definition, in Combi.Basic.ordtype]
+fintype_ordinal__canonical__Order_TLattice [definition, in Combi.Basic.ordtype]
+fintype_ordinal__canonical__Order_TJoinSemilattice [definition, in Combi.Basic.ordtype]
+fintype_ordinal__canonical__Order_TMeetSemilattice [definition, in Combi.Basic.ordtype]
+fintype_ordinal__canonical__Order_TPOrder [definition, in Combi.Basic.ordtype]
+fintype_ordinal__canonical__ordtype_Inhabited [definition, in Combi.Basic.ordtype]
+fintype_Finite__to__fintype_isFinite [definition, in Combi.SymGroup.presentSn]
+fintype_Finite__to__fintype_isFinite [definition, in Combi.Combi.composition]
+FinType.d [variable, in Combi.Combi.tableau]
+FinType.disp [variable, in Combi.Combi.tableau]
+FinType.hb_instance_22.n [variable, in Combi.Combi.ordtree]
+FinType.hb_instance_22.hb_instance_22 [section, in Combi.Combi.ordtree]
+FinType.n [variable, in Combi.Combi.permuted]
+FinType.sh [variable, in Combi.Combi.tableau]
+FinType.T [variable, in Combi.Combi.subseq]
+FinType.T [variable, in Combi.Combi.tableau]
+FinType.T [variable, in Combi.Combi.permuted]
+FinType.tabsh_enum [variable, in Combi.Combi.tableau]
+FinType.w [variable, in Combi.Combi.subseq]
+FinType.w [variable, in Combi.Combi.permuted]
+FIXP [definition, in ALEA.Ccpo]
+Fixp [definition, in ALEA.Ccpo]
+fixp [definition, in ALEA.Ccpo]
+fixp_le_lub [lemma, in ALEA.Ccpo]
+fixp_ind_rel [lemma, in ALEA.Ccpo]
+fixp_ind [lemma, in ALEA.Ccpo]
+fixp_double [lemma, in ALEA.Ccpo]
+FIXP_compn [lemma, in ALEA.Ccpo]
+FIXP_comp [lemma, in ALEA.Ccpo]
+FIXP_comp_com [lemma, in ALEA.Ccpo]
+FIXP_inv [lemma, in ALEA.Ccpo]
+FIXP_eq [lemma, in ALEA.Ccpo]
+FIXP_eq_compat [lemma, in ALEA.Ccpo]
+FIXP_le_compat [lemma, in ALEA.Ccpo]
+FIXP_simpl [lemma, in ALEA.Ccpo]
+Fixp_cont_continuous [instance, in ALEA.Ccpo]
+Fixp_cont_simpl [lemma, in ALEA.Ccpo]
+Fixp_cont [definition, in ALEA.Ccpo]
+fixp_continuous_eq [lemma, in ALEA.Ccpo]
+fixp_continuous [lemma, in ALEA.Ccpo]
+Fixp_simpl [lemma, in ALEA.Ccpo]
+fixp_monotonic [instance, in ALEA.Ccpo]
+fixp_le_compat [lemma, in ALEA.Ccpo]
+fixp_cte [definition, in ALEA.Ccpo]
+fixp_inv [lemma, in ALEA.Ccpo]
+fixp_eq [lemma, in ALEA.Ccpo]
+fixp_le [lemma, in ALEA.Ccpo]
+flatten_equiv_cut_k [lemma, in Combi.Combi.vectNK]
+Flip [definition, in ALEA.Qmeasure]
+flip [definition, in ALEA.Qmeasure]
+flip [definition, in Combi.Combi.bintree]
+flipK [lemma, in Combi.Combi.bintree]
+flipsz [definition, in Combi.Combi.bintree]
+flipszK [lemma, in Combi.Combi.bintree]
+flipsz_leftcomb [lemma, in Combi.Combi.bintree]
+flipsz_rightcomb [lemma, in Combi.Combi.bintree]
+flipsz_subproof [lemma, in Combi.Combi.bintree]
+Flip_simpl [lemma, in ALEA.Qmeasure]
+flip_false [lemma, in ALEA.Qmeasure]
+flip_true [lemma, in ALEA.Qmeasure]
+flip_prob [lemma, in ALEA.Qmeasure]
+flip_stable_sub [lemma, in ALEA.Qmeasure]
+flip_mon [instance, in ALEA.Qmeasure]
+flip_leftcomb [lemma, in Combi.Combi.bintree]
+flip_rightcomb [lemma, in Combi.Combi.bintree]
+fmon [record, in ALEA.Ccpo]
+fmono [instance, in ALEA.Ccpo]
+fmonotonic [projection, in ALEA.Ccpo]
+fmonotonic2 [instance, in ALEA.Ccpo]
+fmont [projection, in ALEA.Ccpo]
+fmon_lub_simpl [lemma, in ALEA.Ccpo]
+fmon_cpo [instance, in ALEA.Ccpo]
+fmon_cte_comp [lemma, in ALEA.Ccpo]
+fmon_le_compat2 [lemma, in ALEA.Ccpo]
+fmon_diag_simpl [lemma, in ALEA.Ccpo]
+fmon_eq [lemma, in ALEA.Ccpo]
+fmon_le [lemma, in ALEA.Ccpo]
+fmon2_mon [instance, in ALEA.Ccpo]
+fnatO_elim [lemma, in ALEA.Ccpo]
+fnatO_intro [definition, in ALEA.Ccpo]
+foldr_join_Dyck_inj [lemma, in Combi.Combi.Dyckword]
+foldr_maxn [lemma, in Combi.Combi.Yamanouchi]
+ford [instance, in ALEA.Ccpo]
+ford_eq_intro [lemma, in ALEA.Ccpo]
+ford_eq_elim [lemma, in ALEA.Ccpo]
+ford_le_intro [lemma, in ALEA.Ccpo]
+ford_le_elim [lemma, in ALEA.Ccpo]
+forest [abbreviation, in Combi.Combi.ordtree]
+forest_to_bintreeK [lemma, in Combi.Combi.ordtree]
+forest_to_bintree [definition, in Combi.Combi.ordtree]
+Formula1 [lemma, in Combi.HookFormula.hook]
+fprob [definition, in ALEA.Qmeasure]
+freeSchur [definition, in Combi.LRrule.freeSchur]
+FreeSchur [section, in Combi.LRrule.freeSchur]
+freeSchur [library]
+freeSchurP [lemma, in Combi.LRrule.freeSchur]
+FreeSchur.Coeffs [section, in Combi.LRrule.freeSchur]
+FreeSchur.Coeffs.Bij_LRsupport.ChangeUT.DefBij.w [variable, in Combi.LRrule.freeSchur]
+FreeSchur.Coeffs.Bij_LRsupport.ChangeUT.DefBij.HTriple [variable, in Combi.LRrule.freeSchur]
+FreeSchur.Coeffs.Bij_LRsupport.ChangeUT.DefBij.Q [variable, in Combi.LRrule.freeSchur]
+FreeSchur.Coeffs.Bij_LRsupport.ChangeUT.DefBij [section, in Combi.LRrule.freeSchur]
+FreeSchur.Coeffs.Bij_LRsupport.ChangeUT.TakeDrop.Hdrop [variable, in Combi.LRrule.freeSchur]
+FreeSchur.Coeffs.Bij_LRsupport.ChangeUT.TakeDrop.Htake [variable, in Combi.LRrule.freeSchur]
+FreeSchur.Coeffs.Bij_LRsupport.ChangeUT.TakeDrop.w [variable, in Combi.LRrule.freeSchur]
+FreeSchur.Coeffs.Bij_LRsupport.ChangeUT.TakeDrop.T [variable, in Combi.LRrule.freeSchur]
+FreeSchur.Coeffs.Bij_LRsupport.ChangeUT.TakeDrop.disp [variable, in Combi.LRrule.freeSchur]
+FreeSchur.Coeffs.Bij_LRsupport.ChangeUT.TakeDrop [section, in Combi.LRrule.freeSchur]
+FreeSchur.Coeffs.Bij_LRsupport.ChangeUT.Hsh2 [variable, in Combi.LRrule.freeSchur]
+FreeSchur.Coeffs.Bij_LRsupport.ChangeUT.Hsh1 [variable, in Combi.LRrule.freeSchur]
+FreeSchur.Coeffs.Bij_LRsupport.ChangeUT.T2 [variable, in Combi.LRrule.freeSchur]
+FreeSchur.Coeffs.Bij_LRsupport.ChangeUT.U2 [variable, in Combi.LRrule.freeSchur]
+FreeSchur.Coeffs.Bij_LRsupport.ChangeUT.T1 [variable, in Combi.LRrule.freeSchur]
+FreeSchur.Coeffs.Bij_LRsupport.ChangeUT.U1 [variable, in Combi.LRrule.freeSchur]
+FreeSchur.Coeffs.Bij_LRsupport.ChangeUT [section, in Combi.LRrule.freeSchur]
+FreeSchur.Coeffs.Bij_LRsupport [section, in Combi.LRrule.freeSchur]
+FreeSchur.Coeffs.d1 [variable, in Combi.LRrule.freeSchur]
+FreeSchur.Coeffs.d2 [variable, in Combi.LRrule.freeSchur]
+FreeSchur.Coeffs.P1 [variable, in Combi.LRrule.freeSchur]
+FreeSchur.Coeffs.P2 [variable, in Combi.LRrule.freeSchur]
+FreeSchur.Degree [section, in Combi.LRrule.freeSchur]
+FreeSchur.Degree.d [variable, in Combi.LRrule.freeSchur]
+FreeSchur.FreeLRrule [section, in Combi.LRrule.freeSchur]
+FreeSchur.FreeLRrule.d1 [variable, in Combi.LRrule.freeSchur]
+FreeSchur.FreeLRrule.d2 [variable, in Combi.LRrule.freeSchur]
+FreeSchur.FreeLRrule.Q1 [variable, in Combi.LRrule.freeSchur]
+FreeSchur.FreeLRrule.Q2 [variable, in Combi.LRrule.freeSchur]
+FreeSchur.n0 [variable, in Combi.LRrule.freeSchur]
+FreeSchur.R [variable, in Combi.LRrule.freeSchur]
+free_LR_rule_alternate [lemma, in Combi.LRrule.freeSchur]
+free_LR_rule [lemma, in Combi.LRrule.freeSchur]
+Frobenius_char [lemma, in Combi.SymGroup.Frobenius_char]
+Frobenius_char_coord [lemma, in Combi.SymGroup.Frobenius_char]
+Frobenius_char_homsymdot [lemma, in Combi.SymGroup.Frobenius_char]
+Frobenius_char_Fchar_inv__canonical__GRing_Linear [definition, in Combi.SymGroup.Frobenius_char]
+Frobenius_char_Fchar_inv__canonical__Algebra_Additive [definition, in Combi.SymGroup.Frobenius_char]
+Frobenius_char_Fchar__canonical__GRing_Linear [definition, in Combi.SymGroup.Frobenius_char]
+Frobenius_char_Fchar__canonical__Algebra_Additive [definition, in Combi.SymGroup.Frobenius_char]
+Frobenius_ident_rat [lemma, in Combi.HookFormula.Frobenius_ident]
+Frobenius_ident [lemma, in Combi.HookFormula.Frobenius_ident]
+Frobenius_char [library]
+Frobenius_ident [library]
+from_vct0 [lemma, in Combi.Combi.bintree]
+from_vct_cat [lemma, in Combi.Combi.bintree]
+from_vctK [lemma, in Combi.Combi.bintree]
+from_vct_cat_leftE [lemma, in Combi.Combi.bintree]
+from_vct_accE [lemma, in Combi.Combi.bintree]
+from_vct_fuelE [lemma, in Combi.Combi.bintree]
+from_vct_acc_nil [lemma, in Combi.Combi.bintree]
+from_vct [definition, in Combi.Combi.bintree]
+from_vct_acc [definition, in Combi.Combi.bintree]
+from_vct_rec [definition, in Combi.Combi.bintree]
+from_left_cat [lemma, in Combi.Combi.bintree]
+from_leftK [lemma, in Combi.Combi.bintree]
+from_left [definition, in Combi.Combi.bintree]
+from_revdualK [lemma, in Combi.LRrule.plactic]
+from_revdual [definition, in Combi.LRrule.plactic]
+from_descsetK [lemma, in Combi.Combi.composition]
+from_descset [definition, in Combi.Combi.composition]
+from_descset_spec [lemma, in Combi.Combi.composition]
+fs [projection, in Combi.SymGroup.cycletype]
+fstable [instance, in ALEA.Ccpo]
+fstable2 [instance, in ALEA.Ccpo]
+fs_porbitP [lemma, in Combi.SymGroup.cycletype]
+fs_homog [projection, in Combi.SymGroup.cycletype]
+fs_stab [projection, in Combi.SymGroup.cycletype]
+full_bound [lemma, in Combi.Basic.congr]
+fun_ext [definition, in ALEA.Ccpo]
+fun2 [definition, in ALEA.Ccpo]
+fun2_mon2 [lemma, in ALEA.Ccpo]
+fun2_monotonic [instance, in ALEA.Ccpo]
+

G

+G [abbreviation, in Combi.MPoly.sympoly]
+geL [abbreviation, in Combi.LRrule.plactic]
+genclass [definition, in Combi.Basic.congr]
+genclassE [lemma, in Combi.Basic.congr]
+genclass_hom [definition, in Combi.Basic.congr]
+genclass_multhom [definition, in Combi.Basic.congr]
+GenCongr [constructor, in Combi.Basic.congr]
+gencongr [definition, in Combi.Basic.congr]
+gencongrP [lemma, in Combi.Basic.congr]
+gencongr_hom [definition, in Combi.Basic.congr]
+gencongr_multhom [definition, in Combi.Basic.congr]
+gencongr_generic_ind [lemma, in Combi.Basic.congr]
+gencongr_unique [lemma, in Combi.Basic.congr]
+gencongr_imply [lemma, in Combi.Basic.congr]
+gencongr_invar [lemma, in Combi.Basic.congr]
+gencongr_ind [lemma, in Combi.Basic.congr]
+gencongr_min [lemma, in Combi.Basic.congr]
+gencongr_is_congr [lemma, in Combi.Basic.congr]
+gencongr_equiv [lemma, in Combi.Basic.congr]
+Generated_EquivCongruence [inductive, in Combi.Basic.congr]
+Generators [section, in Combi.MPoly.sympoly]
+Generators.gen [variable, in Combi.MPoly.sympoly]
+Generators.gen_homog [variable, in Combi.MPoly.sympoly]
+Generators.n [variable, in Combi.MPoly.sympoly]
+Generators.R [variable, in Combi.MPoly.sympoly]
+genfun_length [lemma, in Combi.SymGroup.presentSn]
+get_conj_tab [lemma, in Combi.Combi.stdtab]
+get_tab_append_nth [lemma, in Combi.Combi.stdtab]
+get_map_tab [lemma, in Combi.Combi.tableau]
+get_tab_default [lemma, in Combi.Combi.tableau]
+get_tab [definition, in Combi.Combi.tableau]
+Greene [library]
+GreeneCat [section, in Combi.LRrule.Greene]
+GreeneCat.Alph [variable, in Combi.LRrule.Greene]
+GreeneCat.HR [variable, in Combi.LRrule.Greene]
+GreeneCat.lsplit [variable, in Combi.LRrule.Greene]
+GreeneCat.M [variable, in Combi.LRrule.Greene]
+GreeneCat.N [variable, in Combi.LRrule.Greene]
+GreeneCat.R [variable, in Combi.LRrule.Greene]
+GreeneCat.rsplit [variable, in Combi.LRrule.Greene]
+GreeneCat.V [variable, in Combi.LRrule.Greene]
+GreeneCat.W [variable, in Combi.LRrule.Greene]
+GreeneDef [section, in Combi.LRrule.Greene]
+GreeneDef.Alph [variable, in Combi.LRrule.Greene]
+GreeneDef.HR [variable, in Combi.LRrule.Greene]
+GreeneDef.N [variable, in Combi.LRrule.Greene]
+GreeneDef.R [variable, in Combi.LRrule.Greene]
+GreeneDef.wt [variable, in Combi.LRrule.Greene]
+_ .-supp (form_scope) [notation, in Combi.LRrule.Greene]
+GreeneInj [section, in Combi.LRrule.Greene]
+GreeneInj.R1 [variable, in Combi.LRrule.Greene]
+GreeneInj.R2 [variable, in Combi.LRrule.Greene]
+GreeneInj.T1 [variable, in Combi.LRrule.Greene]
+GreeneInj.T2 [variable, in Combi.LRrule.Greene]
+GreeneInvariants [section, in Combi.LRrule.Greene_inv]
+GreeneInvariantsDual [section, in Combi.LRrule.Greene_inv]
+GreeneInvariantsDual.Alph [variable, in Combi.LRrule.Greene_inv]
+GreeneInvariantsDual.disp [variable, in Combi.LRrule.Greene_inv]
+GreeneInvariantsDual.word [variable, in Combi.LRrule.Greene_inv]
+GreeneInvariantsRule [section, in Combi.LRrule.Greene_inv]
+GreeneInvariantsRule.Alph [variable, in Combi.LRrule.Greene_inv]
+GreeneInvariantsRule.disp [variable, in Combi.LRrule.Greene_inv]
+GreeneInvariantsRule.k [variable, in Combi.LRrule.Greene_inv]
+GreeneInvariantsRule.u [variable, in Combi.LRrule.Greene_inv]
+GreeneInvariantsRule.v1 [variable, in Combi.LRrule.Greene_inv]
+GreeneInvariantsRule.v2 [variable, in Combi.LRrule.Greene_inv]
+GreeneInvariantsRule.w [variable, in Combi.LRrule.Greene_inv]
+GreeneInvariantsRule.word [variable, in Combi.LRrule.Greene_inv]
+GreeneInvariants.Alph [variable, in Combi.LRrule.Greene_inv]
+GreeneInvariants.disp [variable, in Combi.LRrule.Greene_inv]
+GreeneInvariants.word [variable, in Combi.LRrule.Greene_inv]
+GreenEqShape [section, in Combi.LRrule.Greene_inv]
+GreenEqShape.d1 [variable, in Combi.LRrule.Greene_inv]
+GreenEqShape.d2 [variable, in Combi.LRrule.Greene_inv]
+GreenEqShape.S [variable, in Combi.LRrule.Greene_inv]
+GreenEqShape.T [variable, in Combi.LRrule.Greene_inv]
+GreeneRec [section, in Combi.LRrule.Greene]
+GreeneRec.Alph [variable, in Combi.LRrule.Greene]
+GreeneRec.cast_set_tab [variable, in Combi.LRrule.Greene]
+GreeneRec.disp [variable, in Combi.LRrule.Greene]
+GreeneRec.Induction [section, in Combi.LRrule.Greene]
+GreeneRec.Induction.t [variable, in Combi.LRrule.Greene]
+GreeneRec.Induction.t0 [variable, in Combi.LRrule.Greene]
+GreeneRec.sym_cast [variable, in Combi.LRrule.Greene]
+GreeneSeq [section, in Combi.LRrule.Greene]
+GreeneSeq.Alph [variable, in Combi.LRrule.Greene]
+GreeneSeq.HnegR [variable, in Combi.LRrule.Greene]
+GreeneSeq.HR [variable, in Combi.LRrule.Greene]
+GreeneSeq.negR [variable, in Combi.LRrule.Greene]
+GreeneSeq.R [variable, in Combi.LRrule.Greene]
+GreeneTab [section, in Combi.LRrule.Greene]
+GreeneTab.Alph [variable, in Combi.LRrule.Greene]
+GreeneTab.disp [variable, in Combi.LRrule.Greene]
+Greene_rel_one [lemma, in Combi.Erdos_Szekeres.Erdos_Szekeres]
+Greene_invseq [lemma, in Combi.LRrule.stdplact]
+Greene_std [lemma, in Combi.LRrule.stdplact]
+Greene_col_eq_shape_RS [lemma, in Combi.LRrule.Greene_inv]
+Greene_row_eq_shape_RS [lemma, in Combi.LRrule.Greene_inv]
+Greene_col_RS [lemma, in Combi.LRrule.Greene_inv]
+Greene_col_invar_plactic [lemma, in Combi.LRrule.Greene_inv]
+Greene_row_RS [lemma, in Combi.LRrule.Greene_inv]
+Greene_row_invar_plactic [lemma, in Combi.LRrule.Greene_inv]
+Greene_col_invar_plact2i [lemma, in Combi.LRrule.Greene_inv]
+Greene_col_invar_plact2 [lemma, in Combi.LRrule.Greene_inv]
+Greene_col_invar_plact1i [lemma, in Combi.LRrule.Greene_inv]
+Greene_col_invar_plact1 [lemma, in Combi.LRrule.Greene_inv]
+Greene_row_invar_plact2i [lemma, in Combi.LRrule.Greene_inv]
+Greene_row_invar_plact2 [lemma, in Combi.LRrule.Greene_inv]
+Greene_row_invar_plact1i [lemma, in Combi.LRrule.Greene_inv]
+Greene_row_invar_plact1 [lemma, in Combi.LRrule.Greene_inv]
+Greene_col_leq_plact2 [lemma, in Combi.LRrule.Greene_inv]
+Greene_col_leq_plact1i [lemma, in Combi.LRrule.Greene_inv]
+Greene_row_leq_plact1 [lemma, in Combi.LRrule.Greene_inv]
+Greene_row_leq_plact2i [lemma, in Combi.LRrule.Greene_inv]
+Greene_col_leq_plact2i [lemma, in Combi.LRrule.Greene_inv]
+Greene_col_leq_plact1 [lemma, in Combi.LRrule.Greene_inv]
+Greene_row_leq_plact2 [lemma, in Combi.LRrule.Greene_inv]
+Greene_row_leq_plact1i [lemma, in Combi.LRrule.Greene_inv]
+Greene_col_dual [lemma, in Combi.LRrule.Greene_inv]
+Greene_row_dual [lemma, in Combi.LRrule.Greene_inv]
+Greene_col_tab_eq_shape [lemma, in Combi.LRrule.Greene]
+Greene_row_tab_eq_shape [lemma, in Combi.LRrule.Greene]
+Greene_col_tab [lemma, in Combi.LRrule.Greene]
+Greene_row_tab [lemma, in Combi.LRrule.Greene]
+Greene_col [definition, in Combi.LRrule.Greene]
+Greene_row [definition, in Combi.LRrule.Greene]
+Greene_rel_rev [lemma, in Combi.LRrule.Greene]
+Greene_rel_uniq [lemma, in Combi.LRrule.Greene]
+Greene_rel_seq [lemma, in Combi.LRrule.Greene]
+Greene_rel_cat [lemma, in Combi.LRrule.Greene]
+Greene_rel [definition, in Combi.LRrule.Greene]
+Greene_rel_t_cat [lemma, in Combi.LRrule.Greene]
+Greene_rel_t_uniq [lemma, in Combi.LRrule.Greene]
+Greene_rel_t_cast [lemma, in Combi.LRrule.Greene]
+Greene_rel_t_0 [lemma, in Combi.LRrule.Greene]
+Greene_rel_t_sup [lemma, in Combi.LRrule.Greene]
+Greene_rel_t_inf [lemma, in Combi.LRrule.Greene]
+Greene_rel_t [definition, in Combi.LRrule.Greene]
+Greene_inv [library]
+grel_neig4_sym [lemma, in Combi.Combi.skewpart]
+GRing_isZmodMorphism__to__Algebra_isNmodMorphism__76 [definition, in Combi.MPoly.Cauchy]
+GRing_isLinear__to__Algebra_isNmodMorphism [definition, in Combi.MPoly.Cauchy]
+GRing_isLinear__to__GRing_isScalable__70 [definition, in Combi.MPoly.Cauchy]
+GRing_isZmodMorphism__to__Algebra_isNmodMorphism__65 [definition, in Combi.MPoly.Cauchy]
+GRing_isLinear__to__GRing_isScalable__59 [definition, in Combi.MPoly.Cauchy]
+GRing_isZmodMorphism__to__Algebra_isNmodMorphism__53 [definition, in Combi.MPoly.Cauchy]
+GRing_isLinear__to__GRing_isScalable__48 [definition, in Combi.MPoly.Cauchy]
+GRing_isZmodMorphism__to__Algebra_isNmodMorphism__42 [definition, in Combi.MPoly.Cauchy]
+GRing_isLinear__to__GRing_isScalable [definition, in Combi.MPoly.Cauchy]
+GRing_isZmodMorphism__to__Algebra_isNmodMorphism [definition, in Combi.MPoly.Cauchy]
+GRing_Zmodule_isLmodule__to__GRing_Nmodule_isLSemiModule [definition, in Combi.MPoly.Cauchy]
+GRing_NzRing__to__GRing_PzSemiRing_isNonZero [definition, in Combi.MPoly.Cauchy]
+GRing_NzRing__to__GRing_Nmodule_isPzSemiRing [definition, in Combi.MPoly.Cauchy]
+GRing_NzRing__to__Algebra_AddMagma_isAddSemigroup [definition, in Combi.MPoly.Cauchy]
+GRing_NzRing__to__Algebra_BaseAddMagma_isAddMagma [definition, in Combi.MPoly.Cauchy]
+GRing_NzRing__to__Algebra_BaseAddUMagma_isAddUMagma [definition, in Combi.MPoly.Cauchy]
+GRing_NzRing__to__Algebra_BaseZmoduleNmodule_isZmodule [definition, in Combi.MPoly.Cauchy]
+GRing_NzRing__to__Algebra_hasAdd [definition, in Combi.MPoly.Cauchy]
+GRing_NzRing__to__Algebra_hasZero [definition, in Combi.MPoly.Cauchy]
+GRing_NzRing__to__Algebra_hasOpp [definition, in Combi.MPoly.Cauchy]
+GRing_NzRing__to__eqtype_hasDecEq [definition, in Combi.MPoly.Cauchy]
+GRing_NzRing__to__choice_hasChoice [definition, in Combi.MPoly.Cauchy]
+GRing_isLinear__to__Algebra_isNmodMorphism__77 [definition, in Combi.MPoly.homogsym]
+GRing_isLinear__to__GRing_isScalable__75 [definition, in Combi.MPoly.homogsym]
+GRing_isZmodMorphism__to__Algebra_isNmodMorphism [definition, in Combi.MPoly.homogsym]
+GRing_isLinear__to__Algebra_isNmodMorphism__65 [definition, in Combi.MPoly.homogsym]
+GRing_isLinear__to__GRing_isScalable__63 [definition, in Combi.MPoly.homogsym]
+GRing_isLinear__to__Algebra_isNmodMorphism__58 [definition, in Combi.MPoly.homogsym]
+GRing_isLinear__to__GRing_isScalable__56 [definition, in Combi.MPoly.homogsym]
+GRing_isLinear__to__Algebra_isNmodMorphism__45 [definition, in Combi.MPoly.homogsym]
+GRing_isLinear__to__GRing_isScalable__43 [definition, in Combi.MPoly.homogsym]
+GRing_isLinear__to__Algebra_isNmodMorphism [definition, in Combi.MPoly.homogsym]
+GRing_isLinear__to__GRing_isScalable [definition, in Combi.MPoly.homogsym]
+GRing_SubChoice_isSubLmodule__to__Algebra_BaseAddMagma_isAddMagma [definition, in Combi.MPoly.homogsym]
+GRing_SubChoice_isSubLmodule__to__Algebra_isSubBaseAddUMagma [definition, in Combi.MPoly.homogsym]
+GRing_SubChoice_isSubLmodule__to__Algebra_hasAdd [definition, in Combi.MPoly.homogsym]
+GRing_SubChoice_isSubLmodule__to__Algebra_AddMagma_isAddSemigroup [definition, in Combi.MPoly.homogsym]
+GRing_SubChoice_isSubLmodule__to__Algebra_hasZero [definition, in Combi.MPoly.homogsym]
+GRing_SubChoice_isSubLmodule__to__Algebra_BaseZmoduleNmodule_isZmodule [definition, in Combi.MPoly.homogsym]
+GRing_SubChoice_isSubLmodule__to__Algebra_hasOpp [definition, in Combi.MPoly.homogsym]
+GRing_SubChoice_isSubLmodule__to__Algebra_BaseAddUMagma_isAddUMagma [definition, in Combi.MPoly.homogsym]
+GRing_SubChoice_isSubLmodule__to__GRing_isSubLSemiModule [definition, in Combi.MPoly.homogsym]
+GRing_SubChoice_isSubLmodule__to__GRing_Nmodule_isLSemiModule [definition, in Combi.MPoly.homogsym]
+GRing_isSubmodClosed__to__Algebra_isAddClosed [definition, in Combi.MPoly.homogsym]
+GRing_isSubmodClosed__to__Algebra_isOppClosed [definition, in Combi.MPoly.homogsym]
+GRing_isSubmodClosed__to__GRing_isScaleClosed [definition, in Combi.MPoly.homogsym]
+GRing_isSubmodClosed__to__GRing_isScaleClosed [definition, in Combi.MPoly.antisym]
+GRing_isZmodClosed__to__Algebra_isOppClosed [definition, in Combi.MPoly.antisym]
+GRing_isZmodClosed__to__Algebra_isAddClosed [definition, in Combi.MPoly.antisym]
+GRing_isLinear__to__Algebra_isNmodMorphism__17 [definition, in Combi.SymGroup.Frobenius_char]
+GRing_isLinear__to__GRing_isScalable__15 [definition, in Combi.SymGroup.Frobenius_char]
+GRing_isLinear__to__Algebra_isNmodMorphism [definition, in Combi.SymGroup.Frobenius_char]
+GRing_isLinear__to__GRing_isScalable [definition, in Combi.SymGroup.Frobenius_char]
+GRing_isLinear__to__Algebra_isNmodMorphism__108 [definition, in Combi.MPoly.sympoly]
+GRing_isLinear__to__GRing_isScalable__106 [definition, in Combi.MPoly.sympoly]
+GRing_isLinear__to__Algebra_isNmodMorphism__99 [definition, in Combi.MPoly.sympoly]
+GRing_isLinear__to__GRing_isScalable__97 [definition, in Combi.MPoly.sympoly]
+GRing_isLinear__to__Algebra_isNmodMorphism__90 [definition, in Combi.MPoly.sympoly]
+GRing_isLinear__to__GRing_isScalable__88 [definition, in Combi.MPoly.sympoly]
+GRing_isLinear__to__Algebra_isNmodMorphism__81 [definition, in Combi.MPoly.sympoly]
+GRing_isLinear__to__GRing_isScalable__79 [definition, in Combi.MPoly.sympoly]
+GRing_isZmodMorphism__to__Algebra_isNmodMorphism [definition, in Combi.MPoly.sympoly]
+GRing_SubComUnitRing_isSubIntegralDomain__to__GRing_ComUnitRing_isIntegral [definition, in Combi.MPoly.sympoly]
+GRing_SubNzRing_isSubUnitRing__to__GRing_NzRing_hasMulInverse [definition, in Combi.MPoly.sympoly]
+GRing_SubSemiRing_isSubComSemiRing__to__GRing_SemiRing_hasCommutativeMul [definition, in Combi.MPoly.sympoly]
+GRing_SubChoice_isSubNzAlgebra__to__Algebra_AddMagma_isAddSemigroup [definition, in Combi.MPoly.sympoly]
+GRing_SubChoice_isSubNzAlgebra__to__Algebra_hasZero [definition, in Combi.MPoly.sympoly]
+GRing_SubChoice_isSubNzAlgebra__to__Algebra_BaseZmoduleNmodule_isZmodule [definition, in Combi.MPoly.sympoly]
+GRing_SubChoice_isSubNzAlgebra__to__Algebra_hasOpp [definition, in Combi.MPoly.sympoly]
+GRing_SubChoice_isSubNzAlgebra__to__Algebra_BaseAddUMagma_isAddUMagma [definition, in Combi.MPoly.sympoly]
+GRing_SubChoice_isSubNzAlgebra__to__GRing_isSubPzSemiRing [definition, in Combi.MPoly.sympoly]
+GRing_SubChoice_isSubNzAlgebra__to__GRing_Nmodule_isPzSemiRing [definition, in Combi.MPoly.sympoly]
+GRing_SubChoice_isSubNzAlgebra__to__Algebra_BaseAddMagma_isAddMagma [definition, in Combi.MPoly.sympoly]
+GRing_SubChoice_isSubNzAlgebra__to__GRing_isSubLSemiModule [definition, in Combi.MPoly.sympoly]
+GRing_SubChoice_isSubNzAlgebra__to__GRing_Nmodule_isLSemiModule [definition, in Combi.MPoly.sympoly]
+GRing_SubChoice_isSubNzAlgebra__to__GRing_LSemiModule_isLSemiAlgebra [definition, in Combi.MPoly.sympoly]
+GRing_SubChoice_isSubNzAlgebra__to__Algebra_isSubBaseAddUMagma [definition, in Combi.MPoly.sympoly]
+GRing_SubChoice_isSubNzAlgebra__to__GRing_LSemiAlgebra_isSemiAlgebra [definition, in Combi.MPoly.sympoly]
+GRing_SubChoice_isSubNzAlgebra__to__Algebra_hasAdd [definition, in Combi.MPoly.sympoly]
+GRing_SubChoice_isSubNzAlgebra__to__GRing_PzSemiRing_isNonZero [definition, in Combi.MPoly.sympoly]
+GRing_isLinear__to__Algebra_isNmodMorphism [definition, in Combi.MPoly.sympoly]
+GRing_isLinear__to__GRing_isScalable [definition, in Combi.MPoly.sympoly]
+GRing_SubChoice_isSubNzLalgebra__to__Algebra_hasAdd [definition, in Combi.MPoly.sympoly]
+GRing_SubChoice_isSubNzLalgebra__to__Algebra_AddMagma_isAddSemigroup [definition, in Combi.MPoly.sympoly]
+GRing_SubChoice_isSubNzLalgebra__to__Algebra_hasZero [definition, in Combi.MPoly.sympoly]
+GRing_SubChoice_isSubNzLalgebra__to__Algebra_BaseZmoduleNmodule_isZmodule [definition, in Combi.MPoly.sympoly]
+GRing_SubChoice_isSubNzLalgebra__to__Algebra_hasOpp [definition, in Combi.MPoly.sympoly]
+GRing_SubChoice_isSubNzLalgebra__to__Algebra_BaseAddUMagma_isAddUMagma [definition, in Combi.MPoly.sympoly]
+GRing_SubChoice_isSubNzLalgebra__to__GRing_isSubPzSemiRing [definition, in Combi.MPoly.sympoly]
+GRing_SubChoice_isSubNzLalgebra__to__GRing_Nmodule_isPzSemiRing [definition, in Combi.MPoly.sympoly]
+GRing_SubChoice_isSubNzLalgebra__to__Algebra_BaseAddMagma_isAddMagma [definition, in Combi.MPoly.sympoly]
+GRing_SubChoice_isSubNzLalgebra__to__GRing_isSubLSemiModule [definition, in Combi.MPoly.sympoly]
+GRing_SubChoice_isSubNzLalgebra__to__GRing_Nmodule_isLSemiModule [definition, in Combi.MPoly.sympoly]
+GRing_SubChoice_isSubNzLalgebra__to__GRing_LSemiModule_isLSemiAlgebra [definition, in Combi.MPoly.sympoly]
+GRing_SubChoice_isSubNzLalgebra__to__Algebra_isSubBaseAddUMagma [definition, in Combi.MPoly.sympoly]
+GRing_SubChoice_isSubNzLalgebra__to__GRing_PzSemiRing_isNonZero [definition, in Combi.MPoly.sympoly]
+gtL [abbreviation, in Combi.LRrule.plactic]
+gtn_braidC [lemma, in Combi.SymGroup.presentSn]
+gt_trans [lemma, in Combi.LRrule.Greene]
+

H

+hasincr [definition, in Combi.MPoly.Schur_altdef]
+hasincr0 [lemma, in Combi.MPoly.Schur_altdef]
+has_no_square [definition, in Combi.Combi.skewpart]
+HBeta [lemma, in Combi.HookFormula.hook]
+HBeta' [lemma, in Combi.HookFormula.hook]
+Hbound [projection, in Combi.Basic.congr]
+HB_unnamed_mixin_77 [definition, in Combi.MPoly.Cauchy]
+HB_unnamed_factory_74 [definition, in Combi.MPoly.Cauchy]
+HB_unnamed_mixin_72 [definition, in Combi.MPoly.Cauchy]
+HB_unnamed_factory_68 [definition, in Combi.MPoly.Cauchy]
+HB_unnamed_mixin_66 [definition, in Combi.MPoly.Cauchy]
+HB_unnamed_factory_63 [definition, in Combi.MPoly.Cauchy]
+HB_unnamed_mixin_61 [definition, in Combi.MPoly.Cauchy]
+HB_unnamed_factory_57 [definition, in Combi.MPoly.Cauchy]
+HB_unnamed_factory_55 [definition, in Combi.MPoly.Cauchy]
+HB_unnamed_mixin_54 [definition, in Combi.MPoly.Cauchy]
+HB_unnamed_factory_51 [definition, in Combi.MPoly.Cauchy]
+HB_unnamed_mixin_50 [definition, in Combi.MPoly.Cauchy]
+HB_unnamed_factory_46 [definition, in Combi.MPoly.Cauchy]
+HB_unnamed_factory_44 [definition, in Combi.MPoly.Cauchy]
+HB_unnamed_mixin_43 [definition, in Combi.MPoly.Cauchy]
+HB_unnamed_factory_40 [definition, in Combi.MPoly.Cauchy]
+HB_unnamed_mixin_39 [definition, in Combi.MPoly.Cauchy]
+HB_unnamed_factory_36 [definition, in Combi.MPoly.Cauchy]
+HB_unnamed_factory_34 [definition, in Combi.MPoly.Cauchy]
+HB_unnamed_mixin_33 [definition, in Combi.MPoly.Cauchy]
+HB_unnamed_factory_31 [definition, in Combi.MPoly.Cauchy]
+HB_unnamed_factory_29 [definition, in Combi.MPoly.Cauchy]
+HB_unnamed_factory_27 [definition, in Combi.MPoly.Cauchy]
+HB_unnamed_mixin_26 [definition, in Combi.MPoly.Cauchy]
+HB_unnamed_factory_24 [definition, in Combi.MPoly.Cauchy]
+HB_unnamed_mixin_23 [definition, in Combi.MPoly.Cauchy]
+HB_unnamed_mixin_22 [definition, in Combi.MPoly.Cauchy]
+HB_unnamed_mixin_21 [definition, in Combi.MPoly.Cauchy]
+HB_unnamed_mixin_20 [definition, in Combi.MPoly.Cauchy]
+HB_unnamed_mixin_19 [definition, in Combi.MPoly.Cauchy]
+HB_unnamed_mixin_18 [definition, in Combi.MPoly.Cauchy]
+HB_unnamed_mixin_17 [definition, in Combi.MPoly.Cauchy]
+HB_unnamed_mixin_16 [definition, in Combi.MPoly.Cauchy]
+HB_unnamed_mixin_15 [definition, in Combi.MPoly.Cauchy]
+HB_unnamed_mixin_14 [definition, in Combi.MPoly.Cauchy]
+HB_unnamed_mixin_13 [definition, in Combi.MPoly.Cauchy]
+HB_unnamed_factory_1 [definition, in Combi.MPoly.Cauchy]
+HB_unnamed_mixin_15 [definition, in Combi.Combi.std]
+HB_unnamed_factory_10 [definition, in Combi.Combi.std]
+HB_unnamed_mixin_9 [definition, in Combi.Combi.std]
+HB_unnamed_mixin_8 [definition, in Combi.Combi.std]
+HB_unnamed_mixin_7 [definition, in Combi.Combi.std]
+HB_unnamed_factory_3 [definition, in Combi.Combi.std]
+HB_unnamed_factory_1 [definition, in Combi.Combi.std]
+HB_unnamed_factory_86 [definition, in Combi.MPoly.homogsym]
+HB_unnamed_factory_84 [definition, in Combi.MPoly.homogsym]
+HB_unnamed_mixin_83 [definition, in Combi.MPoly.homogsym]
+HB_unnamed_factory_80 [definition, in Combi.MPoly.homogsym]
+HB_unnamed_mixin_79 [definition, in Combi.MPoly.homogsym]
+HB_unnamed_mixin_78 [definition, in Combi.MPoly.homogsym]
+HB_unnamed_factory_73 [definition, in Combi.MPoly.homogsym]
+HB_unnamed_factory_71 [definition, in Combi.MPoly.homogsym]
+HB_unnamed_mixin_70 [definition, in Combi.MPoly.homogsym]
+HB_unnamed_factory_68 [definition, in Combi.MPoly.homogsym]
+HB_unnamed_mixin_67 [definition, in Combi.MPoly.homogsym]
+HB_unnamed_mixin_66 [definition, in Combi.MPoly.homogsym]
+HB_unnamed_factory_61 [definition, in Combi.MPoly.homogsym]
+HB_unnamed_mixin_60 [definition, in Combi.MPoly.homogsym]
+HB_unnamed_mixin_59 [definition, in Combi.MPoly.homogsym]
+HB_unnamed_factory_54 [definition, in Combi.MPoly.homogsym]
+HB_unnamed_mixin_53 [definition, in Combi.MPoly.homogsym]
+HB_unnamed_factory_51 [definition, in Combi.MPoly.homogsym]
+HB_unnamed_mixin_50 [definition, in Combi.MPoly.homogsym]
+HB_unnamed_factory_48 [definition, in Combi.MPoly.homogsym]
+HB_unnamed_mixin_47 [definition, in Combi.MPoly.homogsym]
+HB_unnamed_mixin_46 [definition, in Combi.MPoly.homogsym]
+HB_unnamed_factory_41 [definition, in Combi.MPoly.homogsym]
+HB_unnamed_mixin_40 [definition, in Combi.MPoly.homogsym]
+HB_unnamed_mixin_39 [definition, in Combi.MPoly.homogsym]
+HB_unnamed_factory_36 [definition, in Combi.MPoly.homogsym]
+HB_unnamed_mixin_35 [definition, in Combi.MPoly.homogsym]
+HB_unnamed_mixin_34 [definition, in Combi.MPoly.homogsym]
+HB_unnamed_mixin_33 [definition, in Combi.MPoly.homogsym]
+HB_unnamed_mixin_32 [definition, in Combi.MPoly.homogsym]
+HB_unnamed_mixin_31 [definition, in Combi.MPoly.homogsym]
+HB_unnamed_mixin_30 [definition, in Combi.MPoly.homogsym]
+HB_unnamed_mixin_29 [definition, in Combi.MPoly.homogsym]
+HB_unnamed_mixin_28 [definition, in Combi.MPoly.homogsym]
+HB_unnamed_mixin_27 [definition, in Combi.MPoly.homogsym]
+HB_unnamed_mixin_26 [definition, in Combi.MPoly.homogsym]
+HB_unnamed_factory_15 [definition, in Combi.MPoly.homogsym]
+HB_unnamed_mixin_14 [definition, in Combi.MPoly.homogsym]
+HB_unnamed_mixin_13 [definition, in Combi.MPoly.homogsym]
+HB_unnamed_mixin_12 [definition, in Combi.MPoly.homogsym]
+HB_unnamed_factory_8 [definition, in Combi.MPoly.homogsym]
+HB_unnamed_mixin_7 [definition, in Combi.MPoly.homogsym]
+HB_unnamed_mixin_6 [definition, in Combi.MPoly.homogsym]
+HB_unnamed_factory_3 [definition, in Combi.MPoly.homogsym]
+HB_unnamed_factory_1 [definition, in Combi.MPoly.homogsym]
+HB_unnamed_mixin_88 [definition, in Combi.Combi.partition]
+HB_unnamed_factory_82 [definition, in Combi.Combi.partition]
+HB_unnamed_mixin_81 [definition, in Combi.Combi.partition]
+HB_unnamed_mixin_80 [definition, in Combi.Combi.partition]
+HB_unnamed_mixin_79 [definition, in Combi.Combi.partition]
+HB_unnamed_factory_72 [definition, in Combi.Combi.partition]
+HB_unnamed_factory_70 [definition, in Combi.Combi.partition]
+HB_unnamed_mixin_35 [definition, in Combi.Combi.partition]
+HB_unnamed_factory_32 [definition, in Combi.Combi.partition]
+hb_instance_31.d [variable, in Combi.Combi.partition]
+hb_instance_31.hb_instance_31 [section, in Combi.Combi.partition]
+HB_unnamed_mixin_30 [definition, in Combi.Combi.partition]
+HB_unnamed_factory_25 [definition, in Combi.Combi.partition]
+HB_unnamed_mixin_24 [definition, in Combi.Combi.partition]
+HB_unnamed_mixin_23 [definition, in Combi.Combi.partition]
+HB_unnamed_mixin_22 [definition, in Combi.Combi.partition]
+HB_unnamed_factory_15 [definition, in Combi.Combi.partition]
+HB_unnamed_factory_13 [definition, in Combi.Combi.partition]
+HB_unnamed_mixin_12 [definition, in Combi.Combi.partition]
+HB_unnamed_factory_10 [definition, in Combi.Combi.partition]
+HB_unnamed_mixin_9 [definition, in Combi.Combi.partition]
+HB_unnamed_mixin_8 [definition, in Combi.Combi.partition]
+HB_unnamed_mixin_7 [definition, in Combi.Combi.partition]
+HB_unnamed_factory_3 [definition, in Combi.Combi.partition]
+HB_unnamed_factory_1 [definition, in Combi.Combi.partition]
+HB_unnamed_mixin_28 [definition, in Combi.Combi.bintree]
+HB_unnamed_factory_23 [definition, in Combi.Combi.bintree]
+hb_instance_22.n [variable, in Combi.Combi.bintree]
+hb_instance_22.hb_instance_22 [section, in Combi.Combi.bintree]
+HB_unnamed_mixin_21 [definition, in Combi.Combi.bintree]
+HB_unnamed_mixin_20 [definition, in Combi.Combi.bintree]
+HB_unnamed_mixin_19 [definition, in Combi.Combi.bintree]
+HB_unnamed_factory_14 [definition, in Combi.Combi.bintree]
+HB_unnamed_factory_12 [definition, in Combi.Combi.bintree]
+HB_unnamed_mixin_11 [definition, in Combi.Combi.bintree]
+HB_unnamed_factory_7 [definition, in Combi.Combi.bintree]
+HB_unnamed_mixin_6 [definition, in Combi.Combi.bintree]
+HB_unnamed_factory_3 [definition, in Combi.Combi.bintree]
+HB_unnamed_factory_1 [definition, in Combi.Combi.bintree]
+HB_unnamed_mixin_3 [definition, in Combi.SymGroup.towerSn]
+HB_unnamed_factory_1 [definition, in Combi.SymGroup.towerSn]
+HB_unnamed_mixin_10 [definition, in Combi.MPoly.antisym]
+HB_unnamed_factory_6 [definition, in Combi.MPoly.antisym]
+HB_unnamed_mixin_5 [definition, in Combi.MPoly.antisym]
+HB_unnamed_mixin_4 [definition, in Combi.MPoly.antisym]
+HB_unnamed_factory_1 [definition, in Combi.MPoly.antisym]
+hb_strip_rowE [lemma, in Combi.Combi.skewtab]
+hb_strip_shape_res_tab [lemma, in Combi.MPoly.Schur_altdef]
+HB_unnamed_mixin_17 [definition, in Combi.LRrule.Schensted]
+HB_unnamed_mixin_16 [definition, in Combi.LRrule.Schensted]
+HB_unnamed_factory_12 [definition, in Combi.LRrule.Schensted]
+HB_unnamed_factory_10 [definition, in Combi.LRrule.Schensted]
+HB_unnamed_mixin_9 [definition, in Combi.LRrule.Schensted]
+HB_unnamed_factory_6 [definition, in Combi.LRrule.Schensted]
+HB_unnamed_mixin_5 [definition, in Combi.LRrule.Schensted]
+HB_unnamed_factory_3 [definition, in Combi.LRrule.Schensted]
+HB_unnamed_factory_1 [definition, in Combi.LRrule.Schensted]
+HB_unnamed_mixin_19 [definition, in Combi.SymGroup.Frobenius_char]
+HB_unnamed_mixin_18 [definition, in Combi.SymGroup.Frobenius_char]
+HB_unnamed_factory_13 [definition, in Combi.SymGroup.Frobenius_char]
+HB_unnamed_mixin_12 [definition, in Combi.SymGroup.Frobenius_char]
+HB_unnamed_mixin_11 [definition, in Combi.SymGroup.Frobenius_char]
+HB_unnamed_factory_8 [definition, in Combi.SymGroup.Frobenius_char]
+HB_unnamed_factory_6 [definition, in Combi.SymGroup.Frobenius_char]
+HB_unnamed_factory_4 [definition, in Combi.SymGroup.Frobenius_char]
+HB_unnamed_mixin_3 [definition, in Combi.SymGroup.Frobenius_char]
+HB_unnamed_factory_1 [definition, in Combi.SymGroup.Frobenius_char]
+HB_unnamed_mixin_28 [definition, in Combi.Combi.Dyckword]
+HB_unnamed_mixin_27 [definition, in Combi.Combi.Dyckword]
+HB_unnamed_mixin_26 [definition, in Combi.Combi.Dyckword]
+HB_unnamed_factory_21 [definition, in Combi.Combi.Dyckword]
+HB_unnamed_factory_19 [definition, in Combi.Combi.Dyckword]
+HB_unnamed_mixin_18 [definition, in Combi.Combi.Dyckword]
+HB_unnamed_factory_13 [definition, in Combi.Combi.Dyckword]
+HB_unnamed_mixin_12 [definition, in Combi.Combi.Dyckword]
+HB_unnamed_factory_8 [definition, in Combi.Combi.Dyckword]
+HB_unnamed_mixin_7 [definition, in Combi.Combi.Dyckword]
+HB_unnamed_factory_4 [definition, in Combi.Combi.Dyckword]
+HB_unnamed_mixin_3 [definition, in Combi.Combi.Dyckword]
+HB_unnamed_factory_1 [definition, in Combi.Combi.Dyckword]
+HB_unnamed_factory_24 [definition, in Combi.Combi.stdtab]
+HB_unnamed_mixin_23 [definition, in Combi.Combi.stdtab]
+HB_unnamed_mixin_22 [definition, in Combi.Combi.stdtab]
+HB_unnamed_mixin_21 [definition, in Combi.Combi.stdtab]
+HB_unnamed_factory_14 [definition, in Combi.Combi.stdtab]
+HB_unnamed_factory_12 [definition, in Combi.Combi.stdtab]
+HB_unnamed_factory_10 [definition, in Combi.Combi.stdtab]
+HB_unnamed_mixin_9 [definition, in Combi.Combi.stdtab]
+HB_unnamed_mixin_8 [definition, in Combi.Combi.stdtab]
+HB_unnamed_mixin_7 [definition, in Combi.Combi.stdtab]
+HB_unnamed_factory_3 [definition, in Combi.Combi.stdtab]
+HB_unnamed_factory_1 [definition, in Combi.Combi.stdtab]
+HB_unnamed_mixin_11 [definition, in Combi.Combi.subseq]
+HB_unnamed_mixin_10 [definition, in Combi.Combi.subseq]
+HB_unnamed_mixin_9 [definition, in Combi.Combi.subseq]
+HB_unnamed_mixin_8 [definition, in Combi.Combi.subseq]
+HB_unnamed_factory_3 [definition, in Combi.Combi.subseq]
+HB_unnamed_factory_1 [definition, in Combi.Combi.subseq]
+HB_unnamed_factory_10 [definition, in Combi.Combi.tableau]
+HB_unnamed_mixin_9 [definition, in Combi.Combi.tableau]
+HB_unnamed_mixin_8 [definition, in Combi.Combi.tableau]
+HB_unnamed_mixin_7 [definition, in Combi.Combi.tableau]
+HB_unnamed_factory_3 [definition, in Combi.Combi.tableau]
+HB_unnamed_factory_1 [definition, in Combi.Combi.tableau]
+HB_unnamed_mixin_28 [definition, in Combi.Combi.ordtree]
+HB_unnamed_factory_23 [definition, in Combi.Combi.ordtree]
+HB_unnamed_mixin_21 [definition, in Combi.Combi.ordtree]
+HB_unnamed_mixin_20 [definition, in Combi.Combi.ordtree]
+HB_unnamed_mixin_19 [definition, in Combi.Combi.ordtree]
+HB_unnamed_factory_14 [definition, in Combi.Combi.ordtree]
+HB_unnamed_factory_12 [definition, in Combi.Combi.ordtree]
+HB_unnamed_mixin_11 [definition, in Combi.Combi.ordtree]
+HB_unnamed_factory_7 [definition, in Combi.Combi.ordtree]
+HB_unnamed_mixin_6 [definition, in Combi.Combi.ordtree]
+HB_unnamed_factory_3 [definition, in Combi.Combi.ordtree]
+HB_unnamed_factory_1 [definition, in Combi.Combi.ordtree]
+HB_unnamed_mixin_34 [definition, in Combi.Combi.Yamanouchi]
+HB_unnamed_factory_28 [definition, in Combi.Combi.Yamanouchi]
+HB_unnamed_mixin_27 [definition, in Combi.Combi.Yamanouchi]
+HB_unnamed_mixin_26 [definition, in Combi.Combi.Yamanouchi]
+HB_unnamed_mixin_25 [definition, in Combi.Combi.Yamanouchi]
+HB_unnamed_factory_18 [definition, in Combi.Combi.Yamanouchi]
+HB_unnamed_factory_16 [definition, in Combi.Combi.Yamanouchi]
+HB_unnamed_mixin_15 [definition, in Combi.Combi.Yamanouchi]
+HB_unnamed_factory_10 [definition, in Combi.Combi.Yamanouchi]
+HB_unnamed_mixin_9 [definition, in Combi.Combi.Yamanouchi]
+HB_unnamed_mixin_8 [definition, in Combi.Combi.Yamanouchi]
+HB_unnamed_mixin_7 [definition, in Combi.Combi.Yamanouchi]
+HB_unnamed_factory_3 [definition, in Combi.Combi.Yamanouchi]
+HB_unnamed_factory_1 [definition, in Combi.Combi.Yamanouchi]
+HB_unnamed_mixin_14 [definition, in Combi.Combi.setpartition]
+HB_unnamed_factory_12 [definition, in Combi.Combi.setpartition]
+HB_unnamed_mixin_11 [definition, in Combi.Combi.setpartition]
+HB_unnamed_mixin_10 [definition, in Combi.Combi.setpartition]
+HB_unnamed_mixin_9 [definition, in Combi.Combi.setpartition]
+HB_unnamed_mixin_8 [definition, in Combi.Combi.setpartition]
+HB_unnamed_factory_3 [definition, in Combi.Combi.setpartition]
+HB_unnamed_factory_1 [definition, in Combi.Combi.setpartition]
+hb_strip_conjE [lemma, in Combi.Combi.skewpart]
+hb_strip_conj [lemma, in Combi.Combi.skewpart]
+hb_stripP [lemma, in Combi.Combi.skewpart]
+hb_strip_size [lemma, in Combi.Combi.skewpart]
+hb_strip_included [lemma, in Combi.Combi.skewpart]
+hb_strip [definition, in Combi.Combi.skewpart]
+HB_unnamed_mixin_15 [definition, in Combi.Combi.permuted]
+HB_unnamed_factory_10 [definition, in Combi.Combi.permuted]
+HB_unnamed_mixin_9 [definition, in Combi.Combi.permuted]
+HB_unnamed_mixin_8 [definition, in Combi.Combi.permuted]
+HB_unnamed_mixin_7 [definition, in Combi.Combi.permuted]
+HB_unnamed_factory_3 [definition, in Combi.Combi.permuted]
+HB_unnamed_factory_1 [definition, in Combi.Combi.permuted]
+HB_unnamed_factory_112 [definition, in Combi.Basic.ordtype]
+HB_unnamed_factory_101 [definition, in Combi.Basic.ordtype]
+HB_unnamed_factory_92 [definition, in Combi.Basic.ordtype]
+HB_unnamed_factory_81 [definition, in Combi.Basic.ordtype]
+HB_unnamed_factory_70 [definition, in Combi.Basic.ordtype]
+HB_unnamed_factory_61 [definition, in Combi.Basic.ordtype]
+HB_unnamed_factory_54 [definition, in Combi.Basic.ordtype]
+HB_unnamed_mixin_52 [definition, in Combi.Basic.ordtype]
+HB_unnamed_factory_49 [definition, in Combi.Basic.ordtype]
+HB_unnamed_factory_44 [definition, in Combi.Basic.ordtype]
+hb_instance_43.n [variable, in Combi.Basic.ordtype]
+hb_instance_43.hb_instance_43 [section, in Combi.Basic.ordtype]
+HB_unnamed_factory_39 [definition, in Combi.Basic.ordtype]
+HB_unnamed_factory_35 [definition, in Combi.Basic.ordtype]
+HB_unnamed_factory_33 [definition, in Combi.Basic.ordtype]
+hb_instance_32.T' [variable, in Combi.Basic.ordtype]
+hb_instance_32.T [variable, in Combi.Basic.ordtype]
+hb_instance_32.hb_instance_32 [section, in Combi.Basic.ordtype]
+HB_unnamed_mixin_31 [definition, in Combi.Basic.ordtype]
+HB_unnamed_factory_28 [definition, in Combi.Basic.ordtype]
+hb_instance_27.T [variable, in Combi.Basic.ordtype]
+hb_instance_27.hb_instance_27 [section, in Combi.Basic.ordtype]
+HB_unnamed_mixin_26 [definition, in Combi.Basic.ordtype]
+HB_unnamed_factory_23 [definition, in Combi.Basic.ordtype]
+hb_instance_22.T [variable, in Combi.Basic.ordtype]
+hb_instance_22.hb_instance_22 [section, in Combi.Basic.ordtype]
+HB_unnamed_mixin_21 [definition, in Combi.Basic.ordtype]
+HB_unnamed_factory_18 [definition, in Combi.Basic.ordtype]
+hb_instance_17.n [variable, in Combi.Basic.ordtype]
+hb_instance_17.hb_instance_17 [section, in Combi.Basic.ordtype]
+HB_unnamed_mixin_16 [definition, in Combi.Basic.ordtype]
+HB_unnamed_factory_13 [definition, in Combi.Basic.ordtype]
+HB_unnamed_mixin_12 [definition, in Combi.Basic.ordtype]
+HB_unnamed_factory_9 [definition, in Combi.Basic.ordtype]
+HB_unnamed_mixin_8 [definition, in Combi.Basic.ordtype]
+HB_unnamed_factory_6 [definition, in Combi.Basic.ordtype]
+HB_unnamed_mixin_15 [definition, in Combi.SymGroup.presentSn]
+HB_unnamed_factory_10 [definition, in Combi.SymGroup.presentSn]
+HB_unnamed_mixin_9 [definition, in Combi.SymGroup.presentSn]
+HB_unnamed_mixin_8 [definition, in Combi.SymGroup.presentSn]
+HB_unnamed_mixin_7 [definition, in Combi.SymGroup.presentSn]
+HB_unnamed_factory_3 [definition, in Combi.SymGroup.presentSn]
+HB_unnamed_factory_1 [definition, in Combi.SymGroup.presentSn]
+HB_unnamed_factory_111 [definition, in Combi.MPoly.sympoly]
+HB_unnamed_mixin_110 [definition, in Combi.MPoly.sympoly]
+HB_unnamed_mixin_109 [definition, in Combi.MPoly.sympoly]
+HB_unnamed_factory_104 [definition, in Combi.MPoly.sympoly]
+HB_unnamed_factory_102 [definition, in Combi.MPoly.sympoly]
+HB_unnamed_mixin_101 [definition, in Combi.MPoly.sympoly]
+HB_unnamed_mixin_100 [definition, in Combi.MPoly.sympoly]
+HB_unnamed_factory_95 [definition, in Combi.MPoly.sympoly]
+HB_unnamed_factory_93 [definition, in Combi.MPoly.sympoly]
+HB_unnamed_mixin_92 [definition, in Combi.MPoly.sympoly]
+HB_unnamed_mixin_91 [definition, in Combi.MPoly.sympoly]
+HB_unnamed_factory_86 [definition, in Combi.MPoly.sympoly]
+HB_unnamed_factory_84 [definition, in Combi.MPoly.sympoly]
+HB_unnamed_mixin_83 [definition, in Combi.MPoly.sympoly]
+HB_unnamed_mixin_82 [definition, in Combi.MPoly.sympoly]
+HB_unnamed_factory_77 [definition, in Combi.MPoly.sympoly]
+HB_unnamed_factory_75 [definition, in Combi.MPoly.sympoly]
+HB_unnamed_factory_73 [definition, in Combi.MPoly.sympoly]
+HB_unnamed_mixin_72 [definition, in Combi.MPoly.sympoly]
+HB_unnamed_factory_70 [definition, in Combi.MPoly.sympoly]
+HB_unnamed_mixin_69 [definition, in Combi.MPoly.sympoly]
+HB_unnamed_factory_67 [definition, in Combi.MPoly.sympoly]
+HB_unnamed_mixin_66 [definition, in Combi.MPoly.sympoly]
+HB_unnamed_factory_64 [definition, in Combi.MPoly.sympoly]
+HB_unnamed_mixin_63 [definition, in Combi.MPoly.sympoly]
+HB_unnamed_factory_61 [definition, in Combi.MPoly.sympoly]
+HB_unnamed_mixin_60 [definition, in Combi.MPoly.sympoly]
+HB_unnamed_factory_44 [definition, in Combi.MPoly.sympoly]
+HB_unnamed_factory_42 [definition, in Combi.MPoly.sympoly]
+HB_unnamed_mixin_41 [definition, in Combi.MPoly.sympoly]
+HB_unnamed_mixin_40 [definition, in Combi.MPoly.sympoly]
+HB_unnamed_factory_37 [definition, in Combi.MPoly.sympoly]
+HB_unnamed_mixin_36 [definition, in Combi.MPoly.sympoly]
+HB_unnamed_mixin_35 [definition, in Combi.MPoly.sympoly]
+HB_unnamed_mixin_34 [definition, in Combi.MPoly.sympoly]
+HB_unnamed_mixin_33 [definition, in Combi.MPoly.sympoly]
+HB_unnamed_mixin_32 [definition, in Combi.MPoly.sympoly]
+HB_unnamed_mixin_31 [definition, in Combi.MPoly.sympoly]
+HB_unnamed_mixin_30 [definition, in Combi.MPoly.sympoly]
+HB_unnamed_mixin_29 [definition, in Combi.MPoly.sympoly]
+HB_unnamed_mixin_28 [definition, in Combi.MPoly.sympoly]
+HB_unnamed_mixin_27 [definition, in Combi.MPoly.sympoly]
+HB_unnamed_mixin_26 [definition, in Combi.MPoly.sympoly]
+HB_unnamed_mixin_25 [definition, in Combi.MPoly.sympoly]
+HB_unnamed_mixin_24 [definition, in Combi.MPoly.sympoly]
+HB_unnamed_mixin_23 [definition, in Combi.MPoly.sympoly]
+HB_unnamed_factory_8 [definition, in Combi.MPoly.sympoly]
+HB_unnamed_mixin_7 [definition, in Combi.MPoly.sympoly]
+HB_unnamed_mixin_6 [definition, in Combi.MPoly.sympoly]
+HB_unnamed_factory_3 [definition, in Combi.MPoly.sympoly]
+HB_unnamed_factory_1 [definition, in Combi.MPoly.sympoly]
+HB_unnamed_mixin_37 [definition, in Combi.Combi.composition]
+HB_unnamed_factory_32 [definition, in Combi.Combi.composition]
+HB_unnamed_mixin_31 [definition, in Combi.Combi.composition]
+HB_unnamed_mixin_30 [definition, in Combi.Combi.composition]
+HB_unnamed_mixin_29 [definition, in Combi.Combi.composition]
+HB_unnamed_factory_22 [definition, in Combi.Combi.composition]
+HB_unnamed_factory_20 [definition, in Combi.Combi.composition]
+HB_unnamed_mixin_19 [definition, in Combi.Combi.composition]
+HB_unnamed_mixin_18 [definition, in Combi.Combi.composition]
+HB_unnamed_mixin_17 [definition, in Combi.Combi.composition]
+HB_unnamed_factory_13 [definition, in Combi.Combi.composition]
+HB_unnamed_factory_11 [definition, in Combi.Combi.composition]
+Hcrn [lemma, in Combi.HookFormula.hook]
+head_pad [lemma, in Combi.Combi.partition]
+head_tableau_non_nil [lemma, in Combi.LRrule.Schensted]
+head_leq_invbumped [lemma, in Combi.LRrule.Schensted]
+head_lt_invins [lemma, in Combi.LRrule.Schensted]
+head_instab [lemma, in Combi.LRrule.Schensted]
+head_ins_lt_bumped [lemma, in Combi.LRrule.Schensted]
+head_leq_last_sorted [lemma, in Combi.SSRcomplements.sorted]
+head_filter_gt_tab [lemma, in Combi.Combi.tableau]
+head_leq_last_row [definition, in Combi.Combi.tableau]
+head_revcode [lemma, in Combi.SymGroup.presentSn]
+head_row_skew_yam [lemma, in Combi.LRrule.implem]
+height [definition, in Combi.Combi.Dyckword]
+height_take_leq [lemma, in Combi.Combi.Dyckword]
+height_nseq [lemma, in Combi.Combi.Dyckword]
+height_rev [lemma, in Combi.Combi.Dyckword]
+height_drop [lemma, in Combi.Combi.Dyckword]
+height_simpl [definition, in Combi.Combi.Dyckword]
+height_cat [lemma, in Combi.Combi.Dyckword]
+height_rcons [lemma, in Combi.Combi.Dyckword]
+height_cons [lemma, in Combi.Combi.Dyckword]
+height_nil [lemma, in Combi.Combi.Dyckword]
+Hinvar_all [projection, in Combi.Basic.congr]
+Hinvar_refl [projection, in Combi.Basic.congr]
+Hinvst [lemma, in Combi.LRrule.stdplact]
+Hinvts [lemma, in Combi.LRrule.stdplact]
+Hla [definition, in Combi.MPoly.Schur_altdef]
+Hlamu [definition, in Combi.MPoly.Schur_altdef]
+HLF [abbreviation, in Combi.HookFormula.hook]
+homlang [abbreviation, in Combi.LRrule.freeSchur]
+homlang [definition, in Combi.LRrule.freeSchur]
+homogsym [record, in Combi.MPoly.homogsym]
+homogsym [library]
+HomogSymLModType [section, in Combi.MPoly.homogsym]
+HomogSymLModType.d [variable, in Combi.MPoly.homogsym]
+HomogSymLModType.n [variable, in Combi.MPoly.homogsym]
+HomogSymLModType.R [variable, in Combi.MPoly.homogsym]
+HomogSymProd [section, in Combi.MPoly.homogsym]
+HomogSymProd.c [variable, in Combi.MPoly.homogsym]
+HomogSymProd.d [variable, in Combi.MPoly.homogsym]
+HomogSymProd.n [variable, in Combi.MPoly.homogsym]
+HomogSymProd.R [variable, in Combi.MPoly.homogsym]
+_ *h _ [notation, in Combi.MPoly.homogsym]
+homogsym_homsymdot__canonical__sesquilinear_Dot [definition, in Combi.MPoly.homogsym]
+homogsym_homsymdot__canonical__sesquilinear_Hermitian [definition, in Combi.MPoly.homogsym]
+homogsym_homsymdot__canonical__sesquilinear_Bilinear [definition, in Combi.MPoly.homogsym]
+homogsym_cnvarhomsym__canonical__GRing_Linear [definition, in Combi.MPoly.homogsym]
+homogsym_cnvarhomsym__canonical__Algebra_Additive [definition, in Combi.MPoly.homogsym]
+homogsym_map_homsym__canonical__GRing_Linear [definition, in Combi.MPoly.homogsym]
+homogsym_map_homsym__canonical__Algebra_Additive [definition, in Combi.MPoly.homogsym]
+homogsym_omegahomsym__canonical__GRing_Linear [definition, in Combi.MPoly.homogsym]
+homogsym_omegahomsym__canonical__Algebra_Additive [definition, in Combi.MPoly.homogsym]
+homogsym_in_homsym__canonical__GRing_Linear [definition, in Combi.MPoly.homogsym]
+homogsym_in_homsym__canonical__Algebra_Additive [definition, in Combi.MPoly.homogsym]
+homogsym_homsymprod__canonical__sesquilinear_Bilinear [definition, in Combi.MPoly.homogsym]
+homogsym_homogsym__canonical__vector_Vector [definition, in Combi.MPoly.homogsym]
+homogsym_homogsym__canonical__vector_SemiVector [definition, in Combi.MPoly.homogsym]
+homogsym_vecaxiom [lemma, in Combi.MPoly.homogsym]
+homogsym_dhomog_of_homogsym__canonical__GRing_Linear [definition, in Combi.MPoly.homogsym]
+homogsym_dhomog_of_homogsym__canonical__Algebra_Additive [definition, in Combi.MPoly.homogsym]
+homogsym_homsym__canonical__GRing_Linear [definition, in Combi.MPoly.homogsym]
+homogsym_homsym__canonical__Algebra_Additive [definition, in Combi.MPoly.homogsym]
+homogsym_homogsym__canonical__GRing_SubLmodule [definition, in Combi.MPoly.homogsym]
+homogsym_homogsym__canonical__GRing_Lmodule [definition, in Combi.MPoly.homogsym]
+homogsym_homogsym__canonical__GRing_SubLSemiModule [definition, in Combi.MPoly.homogsym]
+homogsym_homogsym__canonical__GRing_LSemiModule [definition, in Combi.MPoly.homogsym]
+homogsym_homogsym__canonical__Algebra_SubZmodule [definition, in Combi.MPoly.homogsym]
+homogsym_homogsym__canonical__Algebra_SubNmodule [definition, in Combi.MPoly.homogsym]
+homogsym_homogsym__canonical__Algebra_Zmodule [definition, in Combi.MPoly.homogsym]
+homogsym_homogsym__canonical__Algebra_Nmodule [definition, in Combi.MPoly.homogsym]
+homogsym_homogsym__canonical__Algebra_AddSemigroup [definition, in Combi.MPoly.homogsym]
+homogsym_homogsym__canonical__Algebra_SubAddUMagma [definition, in Combi.MPoly.homogsym]
+homogsym_homogsym__canonical__Algebra_AddUMagma [definition, in Combi.MPoly.homogsym]
+homogsym_homogsym__canonical__Algebra_AddMagma [definition, in Combi.MPoly.homogsym]
+homogsym_homogsym__canonical__Algebra_SubBaseAddUMagma [definition, in Combi.MPoly.homogsym]
+homogsym_homogsym__canonical__Algebra_BaseZmodule [definition, in Combi.MPoly.homogsym]
+homogsym_homogsym__canonical__Algebra_ChoiceBaseAddUMagma [definition, in Combi.MPoly.homogsym]
+homogsym_homogsym__canonical__Algebra_BaseAddUMagma [definition, in Combi.MPoly.homogsym]
+homogsym_homogsym__canonical__Algebra_ChoiceBaseAddMagma [definition, in Combi.MPoly.homogsym]
+homogsym_homogsym__canonical__Algebra_BaseAddMagma [definition, in Combi.MPoly.homogsym]
+homogsym_is_homsym__canonical__GRing_SubmodClosed [definition, in Combi.MPoly.homogsym]
+homogsym_is_homsym__canonical__Algebra_ZmodClosed [definition, in Combi.MPoly.homogsym]
+homogsym_is_homsym__canonical__Algebra_AddClosed [definition, in Combi.MPoly.homogsym]
+homogsym_is_homsym__canonical__Algebra_OppClosed [definition, in Combi.MPoly.homogsym]
+homogsym_homogsym__canonical__choice_SubChoice [definition, in Combi.MPoly.homogsym]
+homogsym_homogsym__canonical__choice_Choice [definition, in Combi.MPoly.homogsym]
+homogsym_homogsym__canonical__eqtype_SubEquality [definition, in Combi.MPoly.homogsym]
+homogsym_homogsym__canonical__eqtype_Equality [definition, in Combi.MPoly.homogsym]
+homogsym_homogsym__canonical__eqtype_SubType [definition, in Combi.MPoly.homogsym]
+homog_X_mPo_gen [lemma, in Combi.MPoly.sympoly]
+homog_symmE [lemma, in Combi.MPoly.sympoly]
+homsym [projection, in Combi.MPoly.homogsym]
+homsymdot [definition, in Combi.MPoly.homogsym]
+homsymdotBl [lemma, in Combi.MPoly.homogsym]
+homsymdotBr [lemma, in Combi.MPoly.homogsym]
+homsymdotC [lemma, in Combi.MPoly.homogsym]
+homsymdotDl [lemma, in Combi.MPoly.homogsym]
+homsymdotDr [lemma, in Combi.MPoly.homogsym]
+homsymdotE [lemma, in Combi.MPoly.homogsym]
+homsymdotMnl [lemma, in Combi.MPoly.homogsym]
+homsymdotMnr [lemma, in Combi.MPoly.homogsym]
+homsymdotNl [lemma, in Combi.MPoly.homogsym]
+homsymdotNr [lemma, in Combi.MPoly.homogsym]
+homsymdotpp [lemma, in Combi.MPoly.homogsym]
+homsymdotss [lemma, in Combi.MPoly.Cauchy]
+homsymdotZl [lemma, in Combi.MPoly.homogsym]
+homsymdotZr [lemma, in Combi.MPoly.homogsym]
+homsymdot_omegasf [lemma, in Combi.MPoly.homogsym]
+homsymdot_is_dot [lemma, in Combi.MPoly.homogsym]
+homsymdot_sumr [lemma, in Combi.MPoly.homogsym]
+homsymdot_suml [lemma, in Combi.MPoly.homogsym]
+homsymdot_is_hermitian [lemma, in Combi.MPoly.homogsym]
+homsymdot_is_bilinear [lemma, in Combi.MPoly.homogsym]
+homsymdot0l [lemma, in Combi.MPoly.homogsym]
+homsymdot0r [lemma, in Combi.MPoly.homogsym]
+homsyme [definition, in Combi.MPoly.homogsym]
+homsymE [lemma, in Combi.MPoly.homogsym]
+homsyme_character [lemma, in Combi.SymGroup.Frobenius_char]
+HomSymField [section, in Combi.MPoly.homogsym]
+HomSymField.d [variable, in Combi.MPoly.homogsym]
+HomSymField.Hd [variable, in Combi.MPoly.homogsym]
+HomSymField.n0 [variable, in Combi.MPoly.homogsym]
+HomSymField.R [variable, in Combi.MPoly.homogsym]
+homsymh [definition, in Combi.MPoly.homogsym]
+homsymh_character [lemma, in Combi.SymGroup.Frobenius_char]
+homsymm [definition, in Combi.MPoly.homogsym]
+homsymmE [lemma, in Combi.MPoly.homogsym]
+homsymp [definition, in Combi.MPoly.homogsym]
+homsymprod [definition, in Combi.MPoly.homogsym]
+homsymprodBl [lemma, in Combi.MPoly.homogsym]
+homsymprodBr [lemma, in Combi.MPoly.homogsym]
+homsymprodDl [lemma, in Combi.MPoly.homogsym]
+homsymprodDr [lemma, in Combi.MPoly.homogsym]
+HomSymProdGen [section, in Combi.MPoly.homogsym]
+HomSymProdGen.Cons [section, in Combi.MPoly.homogsym]
+HomSymProdGen.Cons.d [variable, in Combi.MPoly.homogsym]
+HomSymProdGen.Cons.Hla [variable, in Combi.MPoly.homogsym]
+HomSymProdGen.Cons.Hlla [variable, in Combi.MPoly.homogsym]
+HomSymProdGen.Cons.la [variable, in Combi.MPoly.homogsym]
+HomSymProdGen.Cons.l0 [variable, in Combi.MPoly.homogsym]
+HomSymProdGen.Merge [section, in Combi.MPoly.homogsym]
+HomSymProdGen.Merge.d1 [variable, in Combi.MPoly.homogsym]
+HomSymProdGen.Merge.d2 [variable, in Combi.MPoly.homogsym]
+HomSymProdGen.Merge.la [variable, in Combi.MPoly.homogsym]
+HomSymProdGen.Merge.mu [variable, in Combi.MPoly.homogsym]
+HomSymProdGen.n0 [variable, in Combi.MPoly.homogsym]
+HomSymProdGen.R [variable, in Combi.MPoly.homogsym]
+homsymprodMnl [lemma, in Combi.MPoly.homogsym]
+homsymprodMnr [lemma, in Combi.MPoly.homogsym]
+homsymprodNl [lemma, in Combi.MPoly.homogsym]
+homsymprodNr [lemma, in Combi.MPoly.homogsym]
+homsymprodZl [lemma, in Combi.MPoly.homogsym]
+homsymprodZr [lemma, in Combi.MPoly.homogsym]
+homsymprod_h1p [lemma, in Combi.MPoly.homogsym]
+homsymprod_h1e [lemma, in Combi.MPoly.homogsym]
+homsymprod_h1h [lemma, in Combi.MPoly.homogsym]
+homsymprod_hp [lemma, in Combi.MPoly.homogsym]
+homsymprod_he [lemma, in Combi.MPoly.homogsym]
+homsymprod_hh [lemma, in Combi.MPoly.homogsym]
+homsymprod_suml [lemma, in Combi.MPoly.homogsym]
+homsymprod_sumr [lemma, in Combi.MPoly.homogsym]
+homsymprod_is_bilinear [lemma, in Combi.MPoly.homogsym]
+homsymprod_subproof [lemma, in Combi.MPoly.homogsym]
+homsymprod0l [lemma, in Combi.MPoly.homogsym]
+homsymprod0r [lemma, in Combi.MPoly.homogsym]
+homsymp_orthogonal [lemma, in Combi.MPoly.homogsym]
+homsyms [definition, in Combi.MPoly.homogsym]
+homsyms_orthonormal [lemma, in Combi.MPoly.Cauchy]
+homsyms_homsympM [lemma, in Combi.MPoly.MurnaghanNakayama]
+homsym_is_dhomog [lemma, in Combi.MPoly.homogsym]
+homsym_is_linear [lemma, in Combi.MPoly.homogsym]
+homsym_inj [lemma, in Combi.MPoly.homogsym]
+hook [library]
+HookLengthFormula [lemma, in Combi.HookFormula.hook]
+HookLengthFormula_rat [lemma, in Combi.HookFormula.hook]
+hookpart [definition, in Combi.Combi.partition]
+hookpartn [definition, in Combi.Combi.partition]
+hookpartnE [lemma, in Combi.Combi.partition]
+hookpartnP [lemma, in Combi.Combi.partition]
+hookpartnPE [lemma, in Combi.Combi.partition]
+hookpartn_row [lemma, in Combi.Combi.partition]
+hookpartn_col [lemma, in Combi.Combi.partition]
+hookpartn_subproof [lemma, in Combi.Combi.partition]
+hook_length_prod_div [lemma, in Combi.HookFormula.hook]
+hook_length_prod_nat [lemma, in Combi.HookFormula.hook]
+hook_length_prod_non0 [lemma, in Combi.HookFormula.hook]
+hook_length_last_rectangle [lemma, in Combi.HookFormula.hook]
+hook_boxes_empty [lemma, in Combi.HookFormula.hook]
+hook_boxes [definition, in Combi.HookFormula.hook]
+hook_box [definition, in Combi.HookFormula.hook]
+hook_box_indices [definition, in Combi.HookFormula.hook]
+hook_length_pred [lemma, in Combi.HookFormula.hook]
+hook_length_incr_nth [lemma, in Combi.HookFormula.hook]
+hook_length_incr_nth_col [lemma, in Combi.HookFormula.hook]
+hook_length_incr_nth_row [lemma, in Combi.HookFormula.hook]
+hook_length_corner_box [lemma, in Combi.HookFormula.hook]
+hook_length1_corner [lemma, in Combi.HookFormula.hook]
+hook_length_ltr [lemma, in Combi.HookFormula.hook]
+hook_length_ltl [lemma, in Combi.HookFormula.hook]
+hook_length_conj_part [lemma, in Combi.HookFormula.hook]
+hook_length_geq1 [lemma, in Combi.HookFormula.hook]
+hook_length_prod [definition, in Combi.HookFormula.hook]
+hook_length [definition, in Combi.HookFormula.hook]
+Hp [lemma, in Combi.HookFormula.hook]
+Hpart' [lemma, in Combi.HookFormula.hook]
+HS [abbreviation, in Combi.SymGroup.Frobenius_char]
+HS [abbreviation, in Combi.SymGroup.Frobenius_char]
+HSC [abbreviation, in Combi.MPoly.Cauchy]
+HSF [abbreviation, in Combi.MPoly.homogsym]
+HSF [abbreviation, in Combi.MPoly.homogsym]
+HSF [abbreviation, in Combi.MPoly.homogsym]
+HSF [abbreviation, in Combi.MPoly.homogsym]
+HSF [abbreviation, in Combi.MPoly.homogsym]
+HSF [abbreviation, in Combi.MPoly.homogsym]
+HSF [abbreviation, in Combi.MPoly.MurnaghanNakayama]
+HSF [abbreviation, in Combi.MPoly.MurnaghanNakayama]
+HSFR [abbreviation, in Combi.MPoly.homogsym]
+HSFS [abbreviation, in Combi.MPoly.homogsym]
+Hszrcons [lemma, in Combi.MPoly.Schur_altdef]
+hyper_stdtabn [definition, in Combi.LRrule.freeSchur]
+hyper_stdtabnP [lemma, in Combi.LRrule.freeSchur]
+hyper_stdtabP [lemma, in Combi.LRrule.freeSchur]
+hyper_stdtab [definition, in Combi.LRrule.freeSchur]
+hyper_stdtabsh [definition, in Combi.Combi.stdtab]
+hyper_stdtabsh_subproof [lemma, in Combi.Combi.stdtab]
+hyper_yameval [definition, in Combi.Combi.Yamanouchi]
+hyper_yam_of_eval [lemma, in Combi.Combi.Yamanouchi]
+hyper_yamP [lemma, in Combi.Combi.Yamanouchi]
+hyper_yam [definition, in Combi.Combi.Yamanouchi]
+hyper_yam_rev [definition, in Combi.Combi.Yamanouchi]
+

I

+Id [definition, in ALEA.Ccpo]
+id [definition, in ALEA.Ccpo]
+Identity [section, in Combi.HookFormula.Frobenius_ident]
+Identity.n [variable, in Combi.HookFormula.Frobenius_ident]
+IdomainSchurSym [section, in Combi.MPoly.Schur_altdef]
+IdomainSchurSym.n0 [variable, in Combi.MPoly.Schur_altdef]
+IdomainSchurSym.R [variable, in Combi.MPoly.Schur_altdef]
+'a_ _ [notation, in Combi.MPoly.Schur_altdef]
+'s_ _ [notation, in Combi.MPoly.Schur_altdef]
+Id_simpl [lemma, in ALEA.Ccpo]
+Id_mon [instance, in ALEA.Ccpo]
+ieqi1F [lemma, in Combi.SymGroup.presentSn]
+ieqi2F [lemma, in Combi.SymGroup.presentSn]
+ifte [definition, in ALEA.Misc]
+if_else_not [lemma, in ALEA.Misc]
+if_then_not [lemma, in ALEA.Misc]
+if_else [lemma, in ALEA.Misc]
+if_then [lemma, in ALEA.Misc]
+if_beq_nat_nat_eq_dec [lemma, in ALEA.Misc]
+Ik [abbreviation, in Combi.LRrule.Greene]
+image_map_finer [lemma, in Combi.Combi.setpartition]
+Imon [definition, in ALEA.Ccpo]
+imon [definition, in ALEA.Ccpo]
+Imonotonic [lemma, in ALEA.Ccpo]
+Imonotonic2 [lemma, in ALEA.Ccpo]
+Imon_simpl [lemma, in ALEA.Ccpo]
+imon_simpl [lemma, in ALEA.Ccpo]
+imon2 [definition, in ALEA.Ccpo]
+Imon2 [definition, in ALEA.Ccpo]
+imon2_simpl [lemma, in ALEA.Ccpo]
+Imon2_simpl [lemma, in ALEA.Ccpo]
+implem [library]
+imsetD [lemma, in Combi.SSRcomplements.tools]
+ImsetInj [section, in Combi.SSRcomplements.tools]
+ImsetInj.f [variable, in Combi.SSRcomplements.tools]
+ImsetInj.f_inj [variable, in Combi.SSRcomplements.tools]
+ImsetInj.T [variable, in Combi.SSRcomplements.tools]
+ImsetInj.T1 [variable, in Combi.SSRcomplements.tools]
+ImsetInj.T2 [variable, in Combi.SSRcomplements.tools]
+imset_trivIset [lemma, in Combi.SSRcomplements.tools]
+imset_inj [lemma, in Combi.SSRcomplements.tools]
+imset_transversal_preim [lemma, in Combi.Combi.Dyckword]
+imset_classCT [lemma, in Combi.SymGroup.cycletype]
+incl [lemma, in Combi.Combi.skewpart]
+incl [projection, in Combi.LRrule.implem]
+included [definition, in Combi.Combi.partition]
+includedP [lemma, in Combi.Combi.partition]
+included_pad0 [lemma, in Combi.Combi.partition]
+included_conj_partE [lemma, in Combi.Combi.partition]
+included_conj_part [lemma, in Combi.Combi.partition]
+included_anti [lemma, in Combi.Combi.partition]
+included_sumnE [lemma, in Combi.Combi.partition]
+included_incr_nth_inner [lemma, in Combi.Combi.partition]
+included_decr_nth [lemma, in Combi.Combi.partition]
+included_incr_nth [lemma, in Combi.Combi.partition]
+included_trans [lemma, in Combi.Combi.partition]
+included_refl [lemma, in Combi.Combi.partition]
+included_behead [lemma, in Combi.Combi.partition]
+included_shape_filter_gt [lemma, in Combi.Combi.skewtab]
+included_shape_filter_gt_tab [lemma, in Combi.LRrule.therule]
+included_add_ribbon [lemma, in Combi.Combi.skewpart]
+IncrMap [section, in Combi.LRrule.plactic]
+IncrMap [section, in Combi.Combi.tableau]
+IncrMap.disp1 [variable, in Combi.LRrule.plactic]
+IncrMap.disp1 [variable, in Combi.Combi.tableau]
+IncrMap.disp2 [variable, in Combi.LRrule.plactic]
+IncrMap.disp2 [variable, in Combi.Combi.tableau]
+IncrMap.F [variable, in Combi.LRrule.plactic]
+IncrMap.F [variable, in Combi.Combi.tableau]
+IncrMap.Hincr [variable, in Combi.LRrule.plactic]
+IncrMap.T1 [variable, in Combi.LRrule.plactic]
+IncrMap.T1 [variable, in Combi.Combi.tableau]
+IncrMap.T2 [variable, in Combi.LRrule.plactic]
+IncrMap.T2 [variable, in Combi.Combi.tableau]
+IncrMap.u [variable, in Combi.LRrule.plactic]
+IncrMap.v [variable, in Combi.LRrule.plactic]
+incr_first_n_nthC [lemma, in Combi.Combi.partition]
+incr_first_n [definition, in Combi.Combi.partition]
+incr_nthK [lemma, in Combi.Combi.partition]
+incr_nth_injl [lemma, in Combi.Combi.stdtab]
+incr_equiv [lemma, in Combi.SSRcomplements.sorted]
+incr_tab [lemma, in Combi.Combi.tableau]
+incr_nth_size [lemma, in Combi.Combi.Yamanouchi]
+index_invstd [lemma, in Combi.LRrule.shuffle]
+index_sfilterleq [lemma, in Combi.LRrule.shuffle]
+index_leq_filter [lemma, in Combi.LRrule.shuffle]
+indporbit [definition, in Combi.SymGroup.cycletype]
+indporbitP [lemma, in Combi.SymGroup.cycletype]
+indporbit_cymap [lemma, in Combi.SymGroup.cycletype]
+indtree [definition, in Combi.Combi.ordtree]
+indtreeforest [definition, in Combi.Combi.ordtree]
+Induction [section, in Combi.SymGroup.towerSn]
+Induction.m [variable, in Combi.SymGroup.towerSn]
+Induction.n [variable, in Combi.SymGroup.towerSn]
+'z_ _ [notation, in Combi.SymGroup.towerSn]
+'1z_[ _ ] [notation, in Combi.SymGroup.towerSn]
+inh [definition, in Combi.Basic.ordtype]
+Inhabited [abbreviation, in Combi.Basic.ordtype]
+Inhabited [module, in Combi.Basic.ordtype]
+InhabitedElpiOperations [module, in Combi.Basic.ordtype]
+Inhabited.axioms_ [record, in Combi.Basic.ordtype]
+Inhabited.choice_hasChoice_mixin [projection, in Combi.Basic.ordtype]
+Inhabited.class [projection, in Combi.Basic.ordtype]
+Inhabited.clone [abbreviation, in Combi.Basic.ordtype]
+Inhabited.copy [abbreviation, in Combi.Basic.ordtype]
+Inhabited.eqtype_hasDecEq_mixin [projection, in Combi.Basic.ordtype]
+Inhabited.Exports [module, in Combi.Basic.ordtype]
+Inhabited.Exports.inhType [abbreviation, in Combi.Basic.ordtype]
+Inhabited.Exports.ordtype_Inhabited__to__choice_Choice [definition, in Combi.Basic.ordtype]
+Inhabited.Exports.ordtype_Inhabited_class__to__choice_Choice_class [definition, in Combi.Basic.ordtype]
+Inhabited.Exports.ordtype_Inhabited__to__eqtype_Equality [definition, in Combi.Basic.ordtype]
+Inhabited.Exports.ordtype_Inhabited_class__to__eqtype_Equality_class [definition, in Combi.Basic.ordtype]
+Inhabited.on [abbreviation, in Combi.Basic.ordtype]
+Inhabited.on_ [abbreviation, in Combi.Basic.ordtype]
+Inhabited.ordtype_isInhabited_mixin [projection, in Combi.Basic.ordtype]
+Inhabited.pack_ [definition, in Combi.Basic.ordtype]
+Inhabited.phant_on_ [definition, in Combi.Basic.ordtype]
+Inhabited.phant_clone [definition, in Combi.Basic.ordtype]
+Inhabited.sort [projection, in Combi.Basic.ordtype]
+Inhabited.type [record, in Combi.Basic.ordtype]
+InhFinite [abbreviation, in Combi.Basic.ordtype]
+InhFinite [module, in Combi.Basic.ordtype]
+InhFiniteElpiOperations [module, in Combi.Basic.ordtype]
+InhFinite.axioms_ [record, in Combi.Basic.ordtype]
+InhFinite.choice_Choice_isCountable_mixin [projection, in Combi.Basic.ordtype]
+InhFinite.choice_hasChoice_mixin [projection, in Combi.Basic.ordtype]
+InhFinite.class [projection, in Combi.Basic.ordtype]
+InhFinite.clone [abbreviation, in Combi.Basic.ordtype]
+InhFinite.copy [abbreviation, in Combi.Basic.ordtype]
+InhFinite.eqtype_hasDecEq_mixin [projection, in Combi.Basic.ordtype]
+InhFinite.Exports [module, in Combi.Basic.ordtype]
+InhFinite.Exports.inhFinType [abbreviation, in Combi.Basic.ordtype]
+InhFinite.Exports.join_ordtype_InhFinite_between_fintype_Finite_and_ordtype_Inhabited [definition, in Combi.Basic.ordtype]
+InhFinite.Exports.join_ordtype_InhFinite_between_choice_Countable_and_ordtype_Inhabited [definition, in Combi.Basic.ordtype]
+InhFinite.Exports.ordtype_InhFinite__to__fintype_Finite [definition, in Combi.Basic.ordtype]
+InhFinite.Exports.ordtype_InhFinite_class__to__fintype_Finite_class [definition, in Combi.Basic.ordtype]
+InhFinite.Exports.ordtype_InhFinite__to__choice_Countable [definition, in Combi.Basic.ordtype]
+InhFinite.Exports.ordtype_InhFinite_class__to__choice_Countable_class [definition, in Combi.Basic.ordtype]
+InhFinite.Exports.ordtype_InhFinite__to__ordtype_Inhabited [definition, in Combi.Basic.ordtype]
+InhFinite.Exports.ordtype_InhFinite_class__to__ordtype_Inhabited_class [definition, in Combi.Basic.ordtype]
+InhFinite.Exports.ordtype_InhFinite__to__choice_Choice [definition, in Combi.Basic.ordtype]
+InhFinite.Exports.ordtype_InhFinite_class__to__choice_Choice_class [definition, in Combi.Basic.ordtype]
+InhFinite.Exports.ordtype_InhFinite__to__eqtype_Equality [definition, in Combi.Basic.ordtype]
+InhFinite.Exports.ordtype_InhFinite_class__to__eqtype_Equality_class [definition, in Combi.Basic.ordtype]
+InhFinite.fintype_isFinite_mixin [projection, in Combi.Basic.ordtype]
+InhFinite.on [abbreviation, in Combi.Basic.ordtype]
+InhFinite.on_ [abbreviation, in Combi.Basic.ordtype]
+InhFinite.ordtype_isInhabited_mixin [projection, in Combi.Basic.ordtype]
+InhFinite.pack_ [definition, in Combi.Basic.ordtype]
+InhFinite.phant_on_ [definition, in Combi.Basic.ordtype]
+InhFinite.phant_clone [definition, in Combi.Basic.ordtype]
+InhFinite.sort [projection, in Combi.Basic.ordtype]
+InhFinite.type [record, in Combi.Basic.ordtype]
+InhFinLattice [abbreviation, in Combi.Basic.ordtype]
+InhFinLattice [module, in Combi.Basic.ordtype]
+InhFinLatticeElpiOperations [module, in Combi.Basic.ordtype]
+InhFinLattice.axioms_ [record, in Combi.Basic.ordtype]
+InhFinLattice.choice_hasChoice_mixin [projection, in Combi.Basic.ordtype]
+InhFinLattice.choice_Choice_isCountable_mixin [projection, in Combi.Basic.ordtype]
+InhFinLattice.class [projection, in Combi.Basic.ordtype]
+InhFinLattice.clone [abbreviation, in Combi.Basic.ordtype]
+InhFinLattice.copy [abbreviation, in Combi.Basic.ordtype]
+InhFinLattice.eqtype_hasDecEq_mixin [projection, in Combi.Basic.ordtype]
+InhFinLattice.Exports [module, in Combi.Basic.ordtype]
+InhFinLattice.Exports.inhFinLatticeType [abbreviation, in Combi.Basic.ordtype]
+InhFinLattice.Exports.join_ordtype_InhFinLattice_between_Order_FinLattice_and_ordtype_InhFinPOrder [definition, in Combi.Basic.ordtype]
+InhFinLattice.Exports.join_ordtype_InhFinLattice_between_Order_FinLattice_and_ordtype_InhFinite [definition, in Combi.Basic.ordtype]
+InhFinLattice.Exports.join_ordtype_InhFinLattice_between_Order_FinLattice_and_ordtype_InhLattice [definition, in Combi.Basic.ordtype]
+InhFinLattice.Exports.join_ordtype_InhFinLattice_between_Order_FinLattice_and_ordtype_InhPOrder [definition, in Combi.Basic.ordtype]
+InhFinLattice.Exports.join_ordtype_InhFinLattice_between_Order_FinLattice_and_ordtype_Inhabited [definition, in Combi.Basic.ordtype]
+InhFinLattice.Exports.join_ordtype_InhFinLattice_between_Order_FinJoinSemilattice_and_ordtype_InhFinPOrder [definition, in Combi.Basic.ordtype]
+InhFinLattice.Exports.join_ordtype_InhFinLattice_between_Order_FinJoinSemilattice_and_ordtype_InhFinite [definition, in Combi.Basic.ordtype]
+InhFinLattice.Exports.join_ordtype_InhFinLattice_between_Order_FinJoinSemilattice_and_ordtype_InhLattice [definition, in Combi.Basic.ordtype]
+InhFinLattice.Exports.join_ordtype_InhFinLattice_between_Order_FinJoinSemilattice_and_ordtype_InhPOrder [definition, in Combi.Basic.ordtype]
+InhFinLattice.Exports.join_ordtype_InhFinLattice_between_Order_FinJoinSemilattice_and_ordtype_Inhabited [definition, in Combi.Basic.ordtype]
+InhFinLattice.Exports.join_ordtype_InhFinLattice_between_Order_FinMeetSemilattice_and_ordtype_InhFinPOrder [definition, in Combi.Basic.ordtype]
+InhFinLattice.Exports.join_ordtype_InhFinLattice_between_Order_FinMeetSemilattice_and_ordtype_InhFinite [definition, in Combi.Basic.ordtype]
+InhFinLattice.Exports.join_ordtype_InhFinLattice_between_Order_FinMeetSemilattice_and_ordtype_InhLattice [definition, in Combi.Basic.ordtype]
+InhFinLattice.Exports.join_ordtype_InhFinLattice_between_Order_FinMeetSemilattice_and_ordtype_InhPOrder [definition, in Combi.Basic.ordtype]
+InhFinLattice.Exports.join_ordtype_InhFinLattice_between_Order_FinMeetSemilattice_and_ordtype_Inhabited [definition, in Combi.Basic.ordtype]
+InhFinLattice.Exports.join_ordtype_InhFinLattice_between_ordtype_InhFinPOrder_and_ordtype_InhLattice [definition, in Combi.Basic.ordtype]
+InhFinLattice.Exports.join_ordtype_InhFinLattice_between_ordtype_InhFinPOrder_and_Order_Lattice [definition, in Combi.Basic.ordtype]
+InhFinLattice.Exports.join_ordtype_InhFinLattice_between_ordtype_InhFinPOrder_and_Order_JoinSemilattice [definition, in Combi.Basic.ordtype]
+InhFinLattice.Exports.join_ordtype_InhFinLattice_between_ordtype_InhFinPOrder_and_Order_MeetSemilattice [definition, in Combi.Basic.ordtype]
+InhFinLattice.Exports.join_ordtype_InhFinLattice_between_Order_FinPOrder_and_ordtype_InhLattice [definition, in Combi.Basic.ordtype]
+InhFinLattice.Exports.join_ordtype_InhFinLattice_between_Order_FinPreorder_and_ordtype_InhLattice [definition, in Combi.Basic.ordtype]
+InhFinLattice.Exports.join_ordtype_InhFinLattice_between_ordtype_InhFinite_and_ordtype_InhLattice [definition, in Combi.Basic.ordtype]
+InhFinLattice.Exports.join_ordtype_InhFinLattice_between_ordtype_InhFinite_and_Order_Lattice [definition, in Combi.Basic.ordtype]
+InhFinLattice.Exports.join_ordtype_InhFinLattice_between_ordtype_InhFinite_and_Order_JoinSemilattice [definition, in Combi.Basic.ordtype]
+InhFinLattice.Exports.join_ordtype_InhFinLattice_between_ordtype_InhFinite_and_Order_MeetSemilattice [definition, in Combi.Basic.ordtype]
+InhFinLattice.Exports.join_ordtype_InhFinLattice_between_fintype_Finite_and_ordtype_InhLattice [definition, in Combi.Basic.ordtype]
+InhFinLattice.Exports.join_ordtype_InhFinLattice_between_choice_Countable_and_ordtype_InhLattice [definition, in Combi.Basic.ordtype]
+InhFinLattice.Exports.ordtype_InhFinLattice__to__Order_FinLattice [definition, in Combi.Basic.ordtype]
+InhFinLattice.Exports.ordtype_InhFinLattice_class__to__Order_FinLattice_class [definition, in Combi.Basic.ordtype]
+InhFinLattice.Exports.ordtype_InhFinLattice__to__Order_FinJoinSemilattice [definition, in Combi.Basic.ordtype]
+InhFinLattice.Exports.ordtype_InhFinLattice_class__to__Order_FinJoinSemilattice_class [definition, in Combi.Basic.ordtype]
+InhFinLattice.Exports.ordtype_InhFinLattice__to__Order_FinMeetSemilattice [definition, in Combi.Basic.ordtype]
+InhFinLattice.Exports.ordtype_InhFinLattice_class__to__Order_FinMeetSemilattice_class [definition, in Combi.Basic.ordtype]
+InhFinLattice.Exports.ordtype_InhFinLattice__to__ordtype_InhFinPOrder [definition, in Combi.Basic.ordtype]
+InhFinLattice.Exports.ordtype_InhFinLattice_class__to__ordtype_InhFinPOrder_class [definition, in Combi.Basic.ordtype]
+InhFinLattice.Exports.ordtype_InhFinLattice__to__Order_FinPOrder [definition, in Combi.Basic.ordtype]
+InhFinLattice.Exports.ordtype_InhFinLattice_class__to__Order_FinPOrder_class [definition, in Combi.Basic.ordtype]
+InhFinLattice.Exports.ordtype_InhFinLattice__to__Order_FinPreorder [definition, in Combi.Basic.ordtype]
+InhFinLattice.Exports.ordtype_InhFinLattice_class__to__Order_FinPreorder_class [definition, in Combi.Basic.ordtype]
+InhFinLattice.Exports.ordtype_InhFinLattice__to__ordtype_InhFinite [definition, in Combi.Basic.ordtype]
+InhFinLattice.Exports.ordtype_InhFinLattice_class__to__ordtype_InhFinite_class [definition, in Combi.Basic.ordtype]
+InhFinLattice.Exports.ordtype_InhFinLattice__to__fintype_Finite [definition, in Combi.Basic.ordtype]
+InhFinLattice.Exports.ordtype_InhFinLattice_class__to__fintype_Finite_class [definition, in Combi.Basic.ordtype]
+InhFinLattice.Exports.ordtype_InhFinLattice__to__choice_Countable [definition, in Combi.Basic.ordtype]
+InhFinLattice.Exports.ordtype_InhFinLattice_class__to__choice_Countable_class [definition, in Combi.Basic.ordtype]
+InhFinLattice.Exports.ordtype_InhFinLattice__to__ordtype_InhLattice [definition, in Combi.Basic.ordtype]
+InhFinLattice.Exports.ordtype_InhFinLattice_class__to__ordtype_InhLattice_class [definition, in Combi.Basic.ordtype]
+InhFinLattice.Exports.ordtype_InhFinLattice__to__ordtype_InhPOrder [definition, in Combi.Basic.ordtype]
+InhFinLattice.Exports.ordtype_InhFinLattice_class__to__ordtype_InhPOrder_class [definition, in Combi.Basic.ordtype]
+InhFinLattice.Exports.ordtype_InhFinLattice__to__ordtype_Inhabited [definition, in Combi.Basic.ordtype]
+InhFinLattice.Exports.ordtype_InhFinLattice_class__to__ordtype_Inhabited_class [definition, in Combi.Basic.ordtype]
+InhFinLattice.Exports.ordtype_InhFinLattice__to__Order_Lattice [definition, in Combi.Basic.ordtype]
+InhFinLattice.Exports.ordtype_InhFinLattice_class__to__Order_Lattice_class [definition, in Combi.Basic.ordtype]
+InhFinLattice.Exports.ordtype_InhFinLattice__to__Order_JoinSemilattice [definition, in Combi.Basic.ordtype]
+InhFinLattice.Exports.ordtype_InhFinLattice_class__to__Order_JoinSemilattice_class [definition, in Combi.Basic.ordtype]
+InhFinLattice.Exports.ordtype_InhFinLattice__to__Order_MeetSemilattice [definition, in Combi.Basic.ordtype]
+InhFinLattice.Exports.ordtype_InhFinLattice_class__to__Order_MeetSemilattice_class [definition, in Combi.Basic.ordtype]
+InhFinLattice.Exports.ordtype_InhFinLattice__to__Order_POrder [definition, in Combi.Basic.ordtype]
+InhFinLattice.Exports.ordtype_InhFinLattice_class__to__Order_POrder_class [definition, in Combi.Basic.ordtype]
+InhFinLattice.Exports.ordtype_InhFinLattice__to__Order_Preorder [definition, in Combi.Basic.ordtype]
+InhFinLattice.Exports.ordtype_InhFinLattice_class__to__Order_Preorder_class [definition, in Combi.Basic.ordtype]
+InhFinLattice.Exports.ordtype_InhFinLattice__to__choice_Choice [definition, in Combi.Basic.ordtype]
+InhFinLattice.Exports.ordtype_InhFinLattice_class__to__choice_Choice_class [definition, in Combi.Basic.ordtype]
+InhFinLattice.Exports.ordtype_InhFinLattice__to__eqtype_Equality [definition, in Combi.Basic.ordtype]
+InhFinLattice.Exports.ordtype_InhFinLattice_class__to__eqtype_Equality_class [definition, in Combi.Basic.ordtype]
+InhFinLattice.fintype_isFinite_mixin [projection, in Combi.Basic.ordtype]
+InhFinLattice.on [abbreviation, in Combi.Basic.ordtype]
+InhFinLattice.on_ [abbreviation, in Combi.Basic.ordtype]
+InhFinLattice.Order_POrder_isJoinSemilattice_mixin [projection, in Combi.Basic.ordtype]
+InhFinLattice.Order_POrder_isMeetSemilattice_mixin [projection, in Combi.Basic.ordtype]
+InhFinLattice.Order_Preorder_isDuallyPOrder_mixin [projection, in Combi.Basic.ordtype]
+InhFinLattice.Order_isDuallyPreorder_mixin [projection, in Combi.Basic.ordtype]
+InhFinLattice.ordtype_isInhabited_mixin [projection, in Combi.Basic.ordtype]
+InhFinLattice.pack_ [definition, in Combi.Basic.ordtype]
+InhFinLattice.phant_on_ [definition, in Combi.Basic.ordtype]
+InhFinLattice.phant_clone [definition, in Combi.Basic.ordtype]
+InhFinLattice.sort [projection, in Combi.Basic.ordtype]
+InhFinLattice.type [record, in Combi.Basic.ordtype]
+InhFinOrder [abbreviation, in Combi.Basic.ordtype]
+InhFinOrder [module, in Combi.Basic.ordtype]
+InhFinOrderElpiOperations [module, in Combi.Basic.ordtype]
+InhFinOrder.axioms_ [record, in Combi.Basic.ordtype]
+InhFinOrder.choice_hasChoice_mixin [projection, in Combi.Basic.ordtype]
+InhFinOrder.choice_Choice_isCountable_mixin [projection, in Combi.Basic.ordtype]
+InhFinOrder.class [projection, in Combi.Basic.ordtype]
+InhFinOrder.clone [abbreviation, in Combi.Basic.ordtype]
+InhFinOrder.copy [abbreviation, in Combi.Basic.ordtype]
+InhFinOrder.eqtype_hasDecEq_mixin [projection, in Combi.Basic.ordtype]
+InhFinOrder.Exports [module, in Combi.Basic.ordtype]
+InhFinOrder.Exports.inhFinOrderType [abbreviation, in Combi.Basic.ordtype]
+InhFinOrder.Exports.join_ordtype_InhFinOrder_between_Order_FinTotal_and_ordtype_InhFinLattice [definition, in Combi.Basic.ordtype]
+InhFinOrder.Exports.join_ordtype_InhFinOrder_between_Order_FinTotal_and_ordtype_InhFinPOrder [definition, in Combi.Basic.ordtype]
+InhFinOrder.Exports.join_ordtype_InhFinOrder_between_Order_FinTotal_and_ordtype_InhFinite [definition, in Combi.Basic.ordtype]
+InhFinOrder.Exports.join_ordtype_InhFinOrder_between_Order_FinTotal_and_ordtype_InhOrder [definition, in Combi.Basic.ordtype]
+InhFinOrder.Exports.join_ordtype_InhFinOrder_between_Order_FinTotal_and_ordtype_InhLattice [definition, in Combi.Basic.ordtype]
+InhFinOrder.Exports.join_ordtype_InhFinOrder_between_Order_FinTotal_and_ordtype_InhPOrder [definition, in Combi.Basic.ordtype]
+InhFinOrder.Exports.join_ordtype_InhFinOrder_between_Order_FinTotal_and_ordtype_Inhabited [definition, in Combi.Basic.ordtype]
+InhFinOrder.Exports.join_ordtype_InhFinOrder_between_Order_FinDistrLattice_and_ordtype_InhFinLattice [definition, in Combi.Basic.ordtype]
+InhFinOrder.Exports.join_ordtype_InhFinOrder_between_Order_FinDistrLattice_and_ordtype_InhFinPOrder [definition, in Combi.Basic.ordtype]
+InhFinOrder.Exports.join_ordtype_InhFinOrder_between_Order_FinDistrLattice_and_ordtype_InhFinite [definition, in Combi.Basic.ordtype]
+InhFinOrder.Exports.join_ordtype_InhFinOrder_between_Order_FinDistrLattice_and_ordtype_InhOrder [definition, in Combi.Basic.ordtype]
+InhFinOrder.Exports.join_ordtype_InhFinOrder_between_Order_FinDistrLattice_and_ordtype_InhLattice [definition, in Combi.Basic.ordtype]
+InhFinOrder.Exports.join_ordtype_InhFinOrder_between_Order_FinDistrLattice_and_ordtype_InhPOrder [definition, in Combi.Basic.ordtype]
+InhFinOrder.Exports.join_ordtype_InhFinOrder_between_Order_FinDistrLattice_and_ordtype_Inhabited [definition, in Combi.Basic.ordtype]
+InhFinOrder.Exports.join_ordtype_InhFinOrder_between_ordtype_InhFinLattice_and_ordtype_InhOrder [definition, in Combi.Basic.ordtype]
+InhFinOrder.Exports.join_ordtype_InhFinOrder_between_ordtype_InhFinLattice_and_Order_Total [definition, in Combi.Basic.ordtype]
+InhFinOrder.Exports.join_ordtype_InhFinOrder_between_Order_FinLattice_and_ordtype_InhOrder [definition, in Combi.Basic.ordtype]
+InhFinOrder.Exports.join_ordtype_InhFinOrder_between_Order_FinJoinSemilattice_and_ordtype_InhOrder [definition, in Combi.Basic.ordtype]
+InhFinOrder.Exports.join_ordtype_InhFinOrder_between_Order_FinMeetSemilattice_and_ordtype_InhOrder [definition, in Combi.Basic.ordtype]
+InhFinOrder.Exports.join_ordtype_InhFinOrder_between_ordtype_InhFinPOrder_and_ordtype_InhOrder [definition, in Combi.Basic.ordtype]
+InhFinOrder.Exports.join_ordtype_InhFinOrder_between_ordtype_InhFinPOrder_and_Order_Total [definition, in Combi.Basic.ordtype]
+InhFinOrder.Exports.join_ordtype_InhFinOrder_between_Order_FinPOrder_and_ordtype_InhOrder [definition, in Combi.Basic.ordtype]
+InhFinOrder.Exports.join_ordtype_InhFinOrder_between_Order_FinPreorder_and_ordtype_InhOrder [definition, in Combi.Basic.ordtype]
+InhFinOrder.Exports.join_ordtype_InhFinOrder_between_ordtype_InhFinite_and_ordtype_InhOrder [definition, in Combi.Basic.ordtype]
+InhFinOrder.Exports.join_ordtype_InhFinOrder_between_ordtype_InhFinite_and_Order_Total [definition, in Combi.Basic.ordtype]
+InhFinOrder.Exports.join_ordtype_InhFinOrder_between_fintype_Finite_and_ordtype_InhOrder [definition, in Combi.Basic.ordtype]
+InhFinOrder.Exports.join_ordtype_InhFinOrder_between_choice_Countable_and_ordtype_InhOrder [definition, in Combi.Basic.ordtype]
+InhFinOrder.Exports.join_ordtype_InhFinOrder_between_Order_DistrLattice_and_ordtype_InhFinLattice [definition, in Combi.Basic.ordtype]
+InhFinOrder.Exports.join_ordtype_InhFinOrder_between_Order_DistrLattice_and_ordtype_InhFinPOrder [definition, in Combi.Basic.ordtype]
+InhFinOrder.Exports.join_ordtype_InhFinOrder_between_Order_DistrLattice_and_ordtype_InhFinite [definition, in Combi.Basic.ordtype]
+InhFinOrder.Exports.ordtype_InhFinOrder__to__Order_FinTotal [definition, in Combi.Basic.ordtype]
+InhFinOrder.Exports.ordtype_InhFinOrder_class__to__Order_FinTotal_class [definition, in Combi.Basic.ordtype]
+InhFinOrder.Exports.ordtype_InhFinOrder__to__Order_FinDistrLattice [definition, in Combi.Basic.ordtype]
+InhFinOrder.Exports.ordtype_InhFinOrder_class__to__Order_FinDistrLattice_class [definition, in Combi.Basic.ordtype]
+InhFinOrder.Exports.ordtype_InhFinOrder__to__ordtype_InhFinLattice [definition, in Combi.Basic.ordtype]
+InhFinOrder.Exports.ordtype_InhFinOrder_class__to__ordtype_InhFinLattice_class [definition, in Combi.Basic.ordtype]
+InhFinOrder.Exports.ordtype_InhFinOrder__to__Order_FinLattice [definition, in Combi.Basic.ordtype]
+InhFinOrder.Exports.ordtype_InhFinOrder_class__to__Order_FinLattice_class [definition, in Combi.Basic.ordtype]
+InhFinOrder.Exports.ordtype_InhFinOrder__to__Order_FinJoinSemilattice [definition, in Combi.Basic.ordtype]
+InhFinOrder.Exports.ordtype_InhFinOrder_class__to__Order_FinJoinSemilattice_class [definition, in Combi.Basic.ordtype]
+InhFinOrder.Exports.ordtype_InhFinOrder__to__Order_FinMeetSemilattice [definition, in Combi.Basic.ordtype]
+InhFinOrder.Exports.ordtype_InhFinOrder_class__to__Order_FinMeetSemilattice_class [definition, in Combi.Basic.ordtype]
+InhFinOrder.Exports.ordtype_InhFinOrder__to__ordtype_InhFinPOrder [definition, in Combi.Basic.ordtype]
+InhFinOrder.Exports.ordtype_InhFinOrder_class__to__ordtype_InhFinPOrder_class [definition, in Combi.Basic.ordtype]
+InhFinOrder.Exports.ordtype_InhFinOrder__to__Order_FinPOrder [definition, in Combi.Basic.ordtype]
+InhFinOrder.Exports.ordtype_InhFinOrder_class__to__Order_FinPOrder_class [definition, in Combi.Basic.ordtype]
+InhFinOrder.Exports.ordtype_InhFinOrder__to__Order_FinPreorder [definition, in Combi.Basic.ordtype]
+InhFinOrder.Exports.ordtype_InhFinOrder_class__to__Order_FinPreorder_class [definition, in Combi.Basic.ordtype]
+InhFinOrder.Exports.ordtype_InhFinOrder__to__ordtype_InhFinite [definition, in Combi.Basic.ordtype]
+InhFinOrder.Exports.ordtype_InhFinOrder_class__to__ordtype_InhFinite_class [definition, in Combi.Basic.ordtype]
+InhFinOrder.Exports.ordtype_InhFinOrder__to__fintype_Finite [definition, in Combi.Basic.ordtype]
+InhFinOrder.Exports.ordtype_InhFinOrder_class__to__fintype_Finite_class [definition, in Combi.Basic.ordtype]
+InhFinOrder.Exports.ordtype_InhFinOrder__to__choice_Countable [definition, in Combi.Basic.ordtype]
+InhFinOrder.Exports.ordtype_InhFinOrder_class__to__choice_Countable_class [definition, in Combi.Basic.ordtype]
+InhFinOrder.Exports.ordtype_InhFinOrder__to__ordtype_InhOrder [definition, in Combi.Basic.ordtype]
+InhFinOrder.Exports.ordtype_InhFinOrder_class__to__ordtype_InhOrder_class [definition, in Combi.Basic.ordtype]
+InhFinOrder.Exports.ordtype_InhFinOrder__to__Order_Total [definition, in Combi.Basic.ordtype]
+InhFinOrder.Exports.ordtype_InhFinOrder_class__to__Order_Total_class [definition, in Combi.Basic.ordtype]
+InhFinOrder.Exports.ordtype_InhFinOrder__to__Order_DistrLattice [definition, in Combi.Basic.ordtype]
+InhFinOrder.Exports.ordtype_InhFinOrder_class__to__Order_DistrLattice_class [definition, in Combi.Basic.ordtype]
+InhFinOrder.Exports.ordtype_InhFinOrder__to__ordtype_InhLattice [definition, in Combi.Basic.ordtype]
+InhFinOrder.Exports.ordtype_InhFinOrder_class__to__ordtype_InhLattice_class [definition, in Combi.Basic.ordtype]
+InhFinOrder.Exports.ordtype_InhFinOrder__to__ordtype_InhPOrder [definition, in Combi.Basic.ordtype]
+InhFinOrder.Exports.ordtype_InhFinOrder_class__to__ordtype_InhPOrder_class [definition, in Combi.Basic.ordtype]
+InhFinOrder.Exports.ordtype_InhFinOrder__to__ordtype_Inhabited [definition, in Combi.Basic.ordtype]
+InhFinOrder.Exports.ordtype_InhFinOrder_class__to__ordtype_Inhabited_class [definition, in Combi.Basic.ordtype]
+InhFinOrder.Exports.ordtype_InhFinOrder__to__Order_Lattice [definition, in Combi.Basic.ordtype]
+InhFinOrder.Exports.ordtype_InhFinOrder_class__to__Order_Lattice_class [definition, in Combi.Basic.ordtype]
+InhFinOrder.Exports.ordtype_InhFinOrder__to__Order_JoinSemilattice [definition, in Combi.Basic.ordtype]
+InhFinOrder.Exports.ordtype_InhFinOrder_class__to__Order_JoinSemilattice_class [definition, in Combi.Basic.ordtype]
+InhFinOrder.Exports.ordtype_InhFinOrder__to__Order_MeetSemilattice [definition, in Combi.Basic.ordtype]
+InhFinOrder.Exports.ordtype_InhFinOrder_class__to__Order_MeetSemilattice_class [definition, in Combi.Basic.ordtype]
+InhFinOrder.Exports.ordtype_InhFinOrder__to__Order_POrder [definition, in Combi.Basic.ordtype]
+InhFinOrder.Exports.ordtype_InhFinOrder_class__to__Order_POrder_class [definition, in Combi.Basic.ordtype]
+InhFinOrder.Exports.ordtype_InhFinOrder__to__Order_Preorder [definition, in Combi.Basic.ordtype]
+InhFinOrder.Exports.ordtype_InhFinOrder_class__to__Order_Preorder_class [definition, in Combi.Basic.ordtype]
+InhFinOrder.Exports.ordtype_InhFinOrder__to__choice_Choice [definition, in Combi.Basic.ordtype]
+InhFinOrder.Exports.ordtype_InhFinOrder_class__to__choice_Choice_class [definition, in Combi.Basic.ordtype]
+InhFinOrder.Exports.ordtype_InhFinOrder__to__eqtype_Equality [definition, in Combi.Basic.ordtype]
+InhFinOrder.Exports.ordtype_InhFinOrder_class__to__eqtype_Equality_class [definition, in Combi.Basic.ordtype]
+InhFinOrder.fintype_isFinite_mixin [projection, in Combi.Basic.ordtype]
+InhFinOrder.on [abbreviation, in Combi.Basic.ordtype]
+InhFinOrder.on_ [abbreviation, in Combi.Basic.ordtype]
+InhFinOrder.Order_DistrLattice_isTotal_mixin [projection, in Combi.Basic.ordtype]
+InhFinOrder.Order_Lattice_isDistributive_mixin [projection, in Combi.Basic.ordtype]
+InhFinOrder.Order_POrder_isJoinSemilattice_mixin [projection, in Combi.Basic.ordtype]
+InhFinOrder.Order_POrder_isMeetSemilattice_mixin [projection, in Combi.Basic.ordtype]
+InhFinOrder.Order_Preorder_isDuallyPOrder_mixin [projection, in Combi.Basic.ordtype]
+InhFinOrder.Order_isDuallyPreorder_mixin [projection, in Combi.Basic.ordtype]
+InhFinOrder.ordtype_isInhabited_mixin [projection, in Combi.Basic.ordtype]
+InhFinOrder.pack_ [definition, in Combi.Basic.ordtype]
+InhFinOrder.phant_on_ [definition, in Combi.Basic.ordtype]
+InhFinOrder.phant_clone [definition, in Combi.Basic.ordtype]
+InhFinOrder.sort [projection, in Combi.Basic.ordtype]
+InhFinOrder.type [record, in Combi.Basic.ordtype]
+InhFinPOrder [abbreviation, in Combi.Basic.ordtype]
+InhFinPOrder [module, in Combi.Basic.ordtype]
+InhFinPOrderElpiOperations [module, in Combi.Basic.ordtype]
+InhFinPOrder.axioms_ [record, in Combi.Basic.ordtype]
+InhFinPOrder.choice_Choice_isCountable_mixin [projection, in Combi.Basic.ordtype]
+InhFinPOrder.choice_hasChoice_mixin [projection, in Combi.Basic.ordtype]
+InhFinPOrder.class [projection, in Combi.Basic.ordtype]
+InhFinPOrder.clone [abbreviation, in Combi.Basic.ordtype]
+InhFinPOrder.copy [abbreviation, in Combi.Basic.ordtype]
+InhFinPOrder.eqtype_hasDecEq_mixin [projection, in Combi.Basic.ordtype]
+InhFinPOrder.Exports [module, in Combi.Basic.ordtype]
+InhFinPOrder.Exports.inhFinPOrderType [abbreviation, in Combi.Basic.ordtype]
+InhFinPOrder.Exports.join_ordtype_InhFinPOrder_between_Order_FinPOrder_and_ordtype_InhFinite [definition, in Combi.Basic.ordtype]
+InhFinPOrder.Exports.join_ordtype_InhFinPOrder_between_Order_FinPOrder_and_ordtype_InhPOrder [definition, in Combi.Basic.ordtype]
+InhFinPOrder.Exports.join_ordtype_InhFinPOrder_between_Order_FinPOrder_and_ordtype_Inhabited [definition, in Combi.Basic.ordtype]
+InhFinPOrder.Exports.join_ordtype_InhFinPOrder_between_Order_FinPreorder_and_ordtype_InhFinite [definition, in Combi.Basic.ordtype]
+InhFinPOrder.Exports.join_ordtype_InhFinPOrder_between_Order_FinPreorder_and_ordtype_InhPOrder [definition, in Combi.Basic.ordtype]
+InhFinPOrder.Exports.join_ordtype_InhFinPOrder_between_Order_FinPreorder_and_ordtype_Inhabited [definition, in Combi.Basic.ordtype]
+InhFinPOrder.Exports.join_ordtype_InhFinPOrder_between_ordtype_InhFinite_and_ordtype_InhPOrder [definition, in Combi.Basic.ordtype]
+InhFinPOrder.Exports.join_ordtype_InhFinPOrder_between_ordtype_InhFinite_and_Order_POrder [definition, in Combi.Basic.ordtype]
+InhFinPOrder.Exports.join_ordtype_InhFinPOrder_between_ordtype_InhFinite_and_Order_Preorder [definition, in Combi.Basic.ordtype]
+InhFinPOrder.Exports.join_ordtype_InhFinPOrder_between_fintype_Finite_and_ordtype_InhPOrder [definition, in Combi.Basic.ordtype]
+InhFinPOrder.Exports.join_ordtype_InhFinPOrder_between_choice_Countable_and_ordtype_InhPOrder [definition, in Combi.Basic.ordtype]
+InhFinPOrder.Exports.ordtype_InhFinPOrder__to__Order_FinPOrder [definition, in Combi.Basic.ordtype]
+InhFinPOrder.Exports.ordtype_InhFinPOrder_class__to__Order_FinPOrder_class [definition, in Combi.Basic.ordtype]
+InhFinPOrder.Exports.ordtype_InhFinPOrder__to__Order_FinPreorder [definition, in Combi.Basic.ordtype]
+InhFinPOrder.Exports.ordtype_InhFinPOrder_class__to__Order_FinPreorder_class [definition, in Combi.Basic.ordtype]
+InhFinPOrder.Exports.ordtype_InhFinPOrder__to__ordtype_InhFinite [definition, in Combi.Basic.ordtype]
+InhFinPOrder.Exports.ordtype_InhFinPOrder_class__to__ordtype_InhFinite_class [definition, in Combi.Basic.ordtype]
+InhFinPOrder.Exports.ordtype_InhFinPOrder__to__fintype_Finite [definition, in Combi.Basic.ordtype]
+InhFinPOrder.Exports.ordtype_InhFinPOrder_class__to__fintype_Finite_class [definition, in Combi.Basic.ordtype]
+InhFinPOrder.Exports.ordtype_InhFinPOrder__to__choice_Countable [definition, in Combi.Basic.ordtype]
+InhFinPOrder.Exports.ordtype_InhFinPOrder_class__to__choice_Countable_class [definition, in Combi.Basic.ordtype]
+InhFinPOrder.Exports.ordtype_InhFinPOrder__to__ordtype_InhPOrder [definition, in Combi.Basic.ordtype]
+InhFinPOrder.Exports.ordtype_InhFinPOrder_class__to__ordtype_InhPOrder_class [definition, in Combi.Basic.ordtype]
+InhFinPOrder.Exports.ordtype_InhFinPOrder__to__ordtype_Inhabited [definition, in Combi.Basic.ordtype]
+InhFinPOrder.Exports.ordtype_InhFinPOrder_class__to__ordtype_Inhabited_class [definition, in Combi.Basic.ordtype]
+InhFinPOrder.Exports.ordtype_InhFinPOrder__to__Order_POrder [definition, in Combi.Basic.ordtype]
+InhFinPOrder.Exports.ordtype_InhFinPOrder_class__to__Order_POrder_class [definition, in Combi.Basic.ordtype]
+InhFinPOrder.Exports.ordtype_InhFinPOrder__to__Order_Preorder [definition, in Combi.Basic.ordtype]
+InhFinPOrder.Exports.ordtype_InhFinPOrder_class__to__Order_Preorder_class [definition, in Combi.Basic.ordtype]
+InhFinPOrder.Exports.ordtype_InhFinPOrder__to__choice_Choice [definition, in Combi.Basic.ordtype]
+InhFinPOrder.Exports.ordtype_InhFinPOrder_class__to__choice_Choice_class [definition, in Combi.Basic.ordtype]
+InhFinPOrder.Exports.ordtype_InhFinPOrder__to__eqtype_Equality [definition, in Combi.Basic.ordtype]
+InhFinPOrder.Exports.ordtype_InhFinPOrder_class__to__eqtype_Equality_class [definition, in Combi.Basic.ordtype]
+InhFinPOrder.fintype_isFinite_mixin [projection, in Combi.Basic.ordtype]
+InhFinPOrder.on [abbreviation, in Combi.Basic.ordtype]
+InhFinPOrder.on_ [abbreviation, in Combi.Basic.ordtype]
+InhFinPOrder.Order_Preorder_isDuallyPOrder_mixin [projection, in Combi.Basic.ordtype]
+InhFinPOrder.Order_isDuallyPreorder_mixin [projection, in Combi.Basic.ordtype]
+InhFinPOrder.ordtype_isInhabited_mixin [projection, in Combi.Basic.ordtype]
+InhFinPOrder.pack_ [definition, in Combi.Basic.ordtype]
+InhFinPOrder.phant_on_ [definition, in Combi.Basic.ordtype]
+InhFinPOrder.phant_clone [definition, in Combi.Basic.ordtype]
+InhFinPOrder.sort [projection, in Combi.Basic.ordtype]
+InhFinPOrder.type [record, in Combi.Basic.ordtype]
+InhLattice [abbreviation, in Combi.Basic.ordtype]
+InhLattice [module, in Combi.Basic.ordtype]
+InhLatticeElpiOperations [module, in Combi.Basic.ordtype]
+InhLattice.axioms_ [record, in Combi.Basic.ordtype]
+InhLattice.choice_hasChoice_mixin [projection, in Combi.Basic.ordtype]
+InhLattice.class [projection, in Combi.Basic.ordtype]
+InhLattice.clone [abbreviation, in Combi.Basic.ordtype]
+InhLattice.copy [abbreviation, in Combi.Basic.ordtype]
+InhLattice.eqtype_hasDecEq_mixin [projection, in Combi.Basic.ordtype]
+InhLattice.Exports [module, in Combi.Basic.ordtype]
+InhLattice.Exports.inhLatticeType [abbreviation, in Combi.Basic.ordtype]
+InhLattice.Exports.join_ordtype_InhLattice_between_ordtype_InhPOrder_and_Order_Lattice [definition, in Combi.Basic.ordtype]
+InhLattice.Exports.join_ordtype_InhLattice_between_ordtype_InhPOrder_and_Order_JoinSemilattice [definition, in Combi.Basic.ordtype]
+InhLattice.Exports.join_ordtype_InhLattice_between_ordtype_InhPOrder_and_Order_MeetSemilattice [definition, in Combi.Basic.ordtype]
+InhLattice.Exports.join_ordtype_InhLattice_between_ordtype_Inhabited_and_Order_Lattice [definition, in Combi.Basic.ordtype]
+InhLattice.Exports.join_ordtype_InhLattice_between_ordtype_Inhabited_and_Order_JoinSemilattice [definition, in Combi.Basic.ordtype]
+InhLattice.Exports.join_ordtype_InhLattice_between_ordtype_Inhabited_and_Order_MeetSemilattice [definition, in Combi.Basic.ordtype]
+InhLattice.Exports.ordtype_InhLattice__to__ordtype_InhPOrder [definition, in Combi.Basic.ordtype]
+InhLattice.Exports.ordtype_InhLattice_class__to__ordtype_InhPOrder_class [definition, in Combi.Basic.ordtype]
+InhLattice.Exports.ordtype_InhLattice__to__ordtype_Inhabited [definition, in Combi.Basic.ordtype]
+InhLattice.Exports.ordtype_InhLattice_class__to__ordtype_Inhabited_class [definition, in Combi.Basic.ordtype]
+InhLattice.Exports.ordtype_InhLattice__to__Order_Lattice [definition, in Combi.Basic.ordtype]
+InhLattice.Exports.ordtype_InhLattice_class__to__Order_Lattice_class [definition, in Combi.Basic.ordtype]
+InhLattice.Exports.ordtype_InhLattice__to__Order_JoinSemilattice [definition, in Combi.Basic.ordtype]
+InhLattice.Exports.ordtype_InhLattice_class__to__Order_JoinSemilattice_class [definition, in Combi.Basic.ordtype]
+InhLattice.Exports.ordtype_InhLattice__to__Order_MeetSemilattice [definition, in Combi.Basic.ordtype]
+InhLattice.Exports.ordtype_InhLattice_class__to__Order_MeetSemilattice_class [definition, in Combi.Basic.ordtype]
+InhLattice.Exports.ordtype_InhLattice__to__Order_POrder [definition, in Combi.Basic.ordtype]
+InhLattice.Exports.ordtype_InhLattice_class__to__Order_POrder_class [definition, in Combi.Basic.ordtype]
+InhLattice.Exports.ordtype_InhLattice__to__Order_Preorder [definition, in Combi.Basic.ordtype]
+InhLattice.Exports.ordtype_InhLattice_class__to__Order_Preorder_class [definition, in Combi.Basic.ordtype]
+InhLattice.Exports.ordtype_InhLattice__to__choice_Choice [definition, in Combi.Basic.ordtype]
+InhLattice.Exports.ordtype_InhLattice_class__to__choice_Choice_class [definition, in Combi.Basic.ordtype]
+InhLattice.Exports.ordtype_InhLattice__to__eqtype_Equality [definition, in Combi.Basic.ordtype]
+InhLattice.Exports.ordtype_InhLattice_class__to__eqtype_Equality_class [definition, in Combi.Basic.ordtype]
+InhLattice.on [abbreviation, in Combi.Basic.ordtype]
+InhLattice.on_ [abbreviation, in Combi.Basic.ordtype]
+InhLattice.Order_POrder_isJoinSemilattice_mixin [projection, in Combi.Basic.ordtype]
+InhLattice.Order_POrder_isMeetSemilattice_mixin [projection, in Combi.Basic.ordtype]
+InhLattice.Order_Preorder_isDuallyPOrder_mixin [projection, in Combi.Basic.ordtype]
+InhLattice.Order_isDuallyPreorder_mixin [projection, in Combi.Basic.ordtype]
+InhLattice.ordtype_isInhabited_mixin [projection, in Combi.Basic.ordtype]
+InhLattice.pack_ [definition, in Combi.Basic.ordtype]
+InhLattice.phant_on_ [definition, in Combi.Basic.ordtype]
+InhLattice.phant_clone [definition, in Combi.Basic.ordtype]
+InhLattice.sort [projection, in Combi.Basic.ordtype]
+InhLattice.type [record, in Combi.Basic.ordtype]
+InHomSym [section, in Combi.MPoly.homogsym]
+InHomSym.d [variable, in Combi.MPoly.homogsym]
+InHomSym.n0 [variable, in Combi.MPoly.homogsym]
+InHomSym.R [variable, in Combi.MPoly.homogsym]
+'pi_ _ [notation, in Combi.MPoly.homogsym]
+InhOrder [abbreviation, in Combi.Basic.ordtype]
+InhOrder [module, in Combi.Basic.ordtype]
+InhOrderElpiOperations [module, in Combi.Basic.ordtype]
+InhOrder.axioms_ [record, in Combi.Basic.ordtype]
+InhOrder.choice_hasChoice_mixin [projection, in Combi.Basic.ordtype]
+InhOrder.class [projection, in Combi.Basic.ordtype]
+InhOrder.clone [abbreviation, in Combi.Basic.ordtype]
+InhOrder.copy [abbreviation, in Combi.Basic.ordtype]
+InhOrder.eqtype_hasDecEq_mixin [projection, in Combi.Basic.ordtype]
+InhOrder.Exports [module, in Combi.Basic.ordtype]
+InhOrder.Exports.inhOrderType [abbreviation, in Combi.Basic.ordtype]
+InhOrder.Exports.join_ordtype_InhOrder_between_Order_DistrLattice_and_ordtype_InhLattice [definition, in Combi.Basic.ordtype]
+InhOrder.Exports.join_ordtype_InhOrder_between_Order_DistrLattice_and_ordtype_InhPOrder [definition, in Combi.Basic.ordtype]
+InhOrder.Exports.join_ordtype_InhOrder_between_Order_DistrLattice_and_ordtype_Inhabited [definition, in Combi.Basic.ordtype]
+InhOrder.Exports.join_ordtype_InhOrder_between_ordtype_InhLattice_and_Order_Total [definition, in Combi.Basic.ordtype]
+InhOrder.Exports.join_ordtype_InhOrder_between_ordtype_InhPOrder_and_Order_Total [definition, in Combi.Basic.ordtype]
+InhOrder.Exports.join_ordtype_InhOrder_between_ordtype_Inhabited_and_Order_Total [definition, in Combi.Basic.ordtype]
+InhOrder.Exports.ordtype_InhOrder__to__Order_Total [definition, in Combi.Basic.ordtype]
+InhOrder.Exports.ordtype_InhOrder_class__to__Order_Total_class [definition, in Combi.Basic.ordtype]
+InhOrder.Exports.ordtype_InhOrder__to__Order_DistrLattice [definition, in Combi.Basic.ordtype]
+InhOrder.Exports.ordtype_InhOrder_class__to__Order_DistrLattice_class [definition, in Combi.Basic.ordtype]
+InhOrder.Exports.ordtype_InhOrder__to__ordtype_InhLattice [definition, in Combi.Basic.ordtype]
+InhOrder.Exports.ordtype_InhOrder_class__to__ordtype_InhLattice_class [definition, in Combi.Basic.ordtype]
+InhOrder.Exports.ordtype_InhOrder__to__ordtype_InhPOrder [definition, in Combi.Basic.ordtype]
+InhOrder.Exports.ordtype_InhOrder_class__to__ordtype_InhPOrder_class [definition, in Combi.Basic.ordtype]
+InhOrder.Exports.ordtype_InhOrder__to__ordtype_Inhabited [definition, in Combi.Basic.ordtype]
+InhOrder.Exports.ordtype_InhOrder_class__to__ordtype_Inhabited_class [definition, in Combi.Basic.ordtype]
+InhOrder.Exports.ordtype_InhOrder__to__Order_Lattice [definition, in Combi.Basic.ordtype]
+InhOrder.Exports.ordtype_InhOrder_class__to__Order_Lattice_class [definition, in Combi.Basic.ordtype]
+InhOrder.Exports.ordtype_InhOrder__to__Order_JoinSemilattice [definition, in Combi.Basic.ordtype]
+InhOrder.Exports.ordtype_InhOrder_class__to__Order_JoinSemilattice_class [definition, in Combi.Basic.ordtype]
+InhOrder.Exports.ordtype_InhOrder__to__Order_MeetSemilattice [definition, in Combi.Basic.ordtype]
+InhOrder.Exports.ordtype_InhOrder_class__to__Order_MeetSemilattice_class [definition, in Combi.Basic.ordtype]
+InhOrder.Exports.ordtype_InhOrder__to__Order_POrder [definition, in Combi.Basic.ordtype]
+InhOrder.Exports.ordtype_InhOrder_class__to__Order_POrder_class [definition, in Combi.Basic.ordtype]
+InhOrder.Exports.ordtype_InhOrder__to__Order_Preorder [definition, in Combi.Basic.ordtype]
+InhOrder.Exports.ordtype_InhOrder_class__to__Order_Preorder_class [definition, in Combi.Basic.ordtype]
+InhOrder.Exports.ordtype_InhOrder__to__choice_Choice [definition, in Combi.Basic.ordtype]
+InhOrder.Exports.ordtype_InhOrder_class__to__choice_Choice_class [definition, in Combi.Basic.ordtype]
+InhOrder.Exports.ordtype_InhOrder__to__eqtype_Equality [definition, in Combi.Basic.ordtype]
+InhOrder.Exports.ordtype_InhOrder_class__to__eqtype_Equality_class [definition, in Combi.Basic.ordtype]
+InhOrder.on [abbreviation, in Combi.Basic.ordtype]
+InhOrder.on_ [abbreviation, in Combi.Basic.ordtype]
+InhOrder.Order_DistrLattice_isTotal_mixin [projection, in Combi.Basic.ordtype]
+InhOrder.Order_Lattice_isDistributive_mixin [projection, in Combi.Basic.ordtype]
+InhOrder.Order_POrder_isJoinSemilattice_mixin [projection, in Combi.Basic.ordtype]
+InhOrder.Order_POrder_isMeetSemilattice_mixin [projection, in Combi.Basic.ordtype]
+InhOrder.Order_Preorder_isDuallyPOrder_mixin [projection, in Combi.Basic.ordtype]
+InhOrder.Order_isDuallyPreorder_mixin [projection, in Combi.Basic.ordtype]
+InhOrder.ordtype_isInhabited_mixin [projection, in Combi.Basic.ordtype]
+InhOrder.pack_ [definition, in Combi.Basic.ordtype]
+InhOrder.phant_on_ [definition, in Combi.Basic.ordtype]
+InhOrder.phant_clone [definition, in Combi.Basic.ordtype]
+InhOrder.sort [projection, in Combi.Basic.ordtype]
+InhOrder.type [record, in Combi.Basic.ordtype]
+InhPOrder [abbreviation, in Combi.Basic.ordtype]
+InhPOrder [module, in Combi.Basic.ordtype]
+InhPOrderElpiOperations [module, in Combi.Basic.ordtype]
+InhPOrder.axioms_ [record, in Combi.Basic.ordtype]
+InhPOrder.choice_hasChoice_mixin [projection, in Combi.Basic.ordtype]
+InhPOrder.class [projection, in Combi.Basic.ordtype]
+InhPOrder.clone [abbreviation, in Combi.Basic.ordtype]
+InhPOrder.copy [abbreviation, in Combi.Basic.ordtype]
+InhPOrder.eqtype_hasDecEq_mixin [projection, in Combi.Basic.ordtype]
+InhPOrder.Exports [module, in Combi.Basic.ordtype]
+InhPOrder.Exports.inhPOrderType [abbreviation, in Combi.Basic.ordtype]
+InhPOrder.Exports.join_ordtype_InhPOrder_between_ordtype_Inhabited_and_Order_POrder [definition, in Combi.Basic.ordtype]
+InhPOrder.Exports.join_ordtype_InhPOrder_between_ordtype_Inhabited_and_Order_Preorder [definition, in Combi.Basic.ordtype]
+InhPOrder.Exports.ordtype_InhPOrder__to__ordtype_Inhabited [definition, in Combi.Basic.ordtype]
+InhPOrder.Exports.ordtype_InhPOrder_class__to__ordtype_Inhabited_class [definition, in Combi.Basic.ordtype]
+InhPOrder.Exports.ordtype_InhPOrder__to__Order_POrder [definition, in Combi.Basic.ordtype]
+InhPOrder.Exports.ordtype_InhPOrder_class__to__Order_POrder_class [definition, in Combi.Basic.ordtype]
+InhPOrder.Exports.ordtype_InhPOrder__to__Order_Preorder [definition, in Combi.Basic.ordtype]
+InhPOrder.Exports.ordtype_InhPOrder_class__to__Order_Preorder_class [definition, in Combi.Basic.ordtype]
+InhPOrder.Exports.ordtype_InhPOrder__to__choice_Choice [definition, in Combi.Basic.ordtype]
+InhPOrder.Exports.ordtype_InhPOrder_class__to__choice_Choice_class [definition, in Combi.Basic.ordtype]
+InhPOrder.Exports.ordtype_InhPOrder__to__eqtype_Equality [definition, in Combi.Basic.ordtype]
+InhPOrder.Exports.ordtype_InhPOrder_class__to__eqtype_Equality_class [definition, in Combi.Basic.ordtype]
+InhPOrder.on [abbreviation, in Combi.Basic.ordtype]
+InhPOrder.on_ [abbreviation, in Combi.Basic.ordtype]
+InhPOrder.Order_Preorder_isDuallyPOrder_mixin [projection, in Combi.Basic.ordtype]
+InhPOrder.Order_isDuallyPreorder_mixin [projection, in Combi.Basic.ordtype]
+InhPOrder.ordtype_isInhabited_mixin [projection, in Combi.Basic.ordtype]
+InhPOrder.pack_ [definition, in Combi.Basic.ordtype]
+InhPOrder.phant_on_ [definition, in Combi.Basic.ordtype]
+InhPOrder.phant_clone [definition, in Combi.Basic.ordtype]
+InhPOrder.sort [projection, in Combi.Basic.ordtype]
+InhPOrder.type [record, in Combi.Basic.ordtype]
+InhTBLattice [abbreviation, in Combi.Basic.ordtype]
+InhTBLattice [module, in Combi.Basic.ordtype]
+InhTBLatticeElpiOperations [module, in Combi.Basic.ordtype]
+InhTBLattice.axioms_ [record, in Combi.Basic.ordtype]
+InhTBLattice.choice_hasChoice_mixin [projection, in Combi.Basic.ordtype]
+InhTBLattice.class [projection, in Combi.Basic.ordtype]
+InhTBLattice.clone [abbreviation, in Combi.Basic.ordtype]
+InhTBLattice.copy [abbreviation, in Combi.Basic.ordtype]
+InhTBLattice.eqtype_hasDecEq_mixin [projection, in Combi.Basic.ordtype]
+InhTBLattice.Exports [module, in Combi.Basic.ordtype]
+InhTBLattice.Exports.inhTBLatticeType [abbreviation, in Combi.Basic.ordtype]
+InhTBLattice.Exports.join_ordtype_InhTBLattice_between_Order_BLattice_and_ordtype_InhLattice [definition, in Combi.Basic.ordtype]
+InhTBLattice.Exports.join_ordtype_InhTBLattice_between_Order_BLattice_and_ordtype_InhPOrder [definition, in Combi.Basic.ordtype]
+InhTBLattice.Exports.join_ordtype_InhTBLattice_between_Order_BLattice_and_ordtype_Inhabited [definition, in Combi.Basic.ordtype]
+InhTBLattice.Exports.join_ordtype_InhTBLattice_between_Order_BJoinSemilattice_and_ordtype_InhLattice [definition, in Combi.Basic.ordtype]
+InhTBLattice.Exports.join_ordtype_InhTBLattice_between_Order_BJoinSemilattice_and_ordtype_InhPOrder [definition, in Combi.Basic.ordtype]
+InhTBLattice.Exports.join_ordtype_InhTBLattice_between_Order_BJoinSemilattice_and_ordtype_Inhabited [definition, in Combi.Basic.ordtype]
+InhTBLattice.Exports.join_ordtype_InhTBLattice_between_Order_BMeetSemilattice_and_ordtype_InhLattice [definition, in Combi.Basic.ordtype]
+InhTBLattice.Exports.join_ordtype_InhTBLattice_between_Order_BMeetSemilattice_and_ordtype_InhPOrder [definition, in Combi.Basic.ordtype]
+InhTBLattice.Exports.join_ordtype_InhTBLattice_between_Order_BMeetSemilattice_and_ordtype_Inhabited [definition, in Combi.Basic.ordtype]
+InhTBLattice.Exports.join_ordtype_InhTBLattice_between_Order_BPOrder_and_ordtype_InhLattice [definition, in Combi.Basic.ordtype]
+InhTBLattice.Exports.join_ordtype_InhTBLattice_between_Order_BPOrder_and_ordtype_InhPOrder [definition, in Combi.Basic.ordtype]
+InhTBLattice.Exports.join_ordtype_InhTBLattice_between_Order_BPOrder_and_ordtype_Inhabited [definition, in Combi.Basic.ordtype]
+InhTBLattice.Exports.join_ordtype_InhTBLattice_between_Order_BPreorder_and_ordtype_InhLattice [definition, in Combi.Basic.ordtype]
+InhTBLattice.Exports.join_ordtype_InhTBLattice_between_Order_BPreorder_and_ordtype_InhPOrder [definition, in Combi.Basic.ordtype]
+InhTBLattice.Exports.join_ordtype_InhTBLattice_between_Order_BPreorder_and_ordtype_Inhabited [definition, in Combi.Basic.ordtype]
+InhTBLattice.Exports.join_ordtype_InhTBLattice_between_ordtype_InhLattice_and_Order_TBLattice [definition, in Combi.Basic.ordtype]
+InhTBLattice.Exports.join_ordtype_InhTBLattice_between_ordtype_InhLattice_and_Order_TBJoinSemilattice [definition, in Combi.Basic.ordtype]
+InhTBLattice.Exports.join_ordtype_InhTBLattice_between_ordtype_InhLattice_and_Order_TBMeetSemilattice [definition, in Combi.Basic.ordtype]
+InhTBLattice.Exports.join_ordtype_InhTBLattice_between_ordtype_InhLattice_and_Order_TBPOrder [definition, in Combi.Basic.ordtype]
+InhTBLattice.Exports.join_ordtype_InhTBLattice_between_ordtype_InhLattice_and_Order_TBPreorder [definition, in Combi.Basic.ordtype]
+InhTBLattice.Exports.join_ordtype_InhTBLattice_between_ordtype_InhLattice_and_Order_TLattice [definition, in Combi.Basic.ordtype]
+InhTBLattice.Exports.join_ordtype_InhTBLattice_between_ordtype_InhLattice_and_Order_TJoinSemilattice [definition, in Combi.Basic.ordtype]
+InhTBLattice.Exports.join_ordtype_InhTBLattice_between_ordtype_InhLattice_and_Order_TMeetSemilattice [definition, in Combi.Basic.ordtype]
+InhTBLattice.Exports.join_ordtype_InhTBLattice_between_ordtype_InhLattice_and_Order_TPOrder [definition, in Combi.Basic.ordtype]
+InhTBLattice.Exports.join_ordtype_InhTBLattice_between_ordtype_InhLattice_and_Order_TPreorder [definition, in Combi.Basic.ordtype]
+InhTBLattice.Exports.join_ordtype_InhTBLattice_between_ordtype_InhPOrder_and_Order_TBLattice [definition, in Combi.Basic.ordtype]
+InhTBLattice.Exports.join_ordtype_InhTBLattice_between_ordtype_InhPOrder_and_Order_TBJoinSemilattice [definition, in Combi.Basic.ordtype]
+InhTBLattice.Exports.join_ordtype_InhTBLattice_between_ordtype_InhPOrder_and_Order_TBMeetSemilattice [definition, in Combi.Basic.ordtype]
+InhTBLattice.Exports.join_ordtype_InhTBLattice_between_ordtype_InhPOrder_and_Order_TBPOrder [definition, in Combi.Basic.ordtype]
+InhTBLattice.Exports.join_ordtype_InhTBLattice_between_ordtype_InhPOrder_and_Order_TBPreorder [definition, in Combi.Basic.ordtype]
+InhTBLattice.Exports.join_ordtype_InhTBLattice_between_ordtype_InhPOrder_and_Order_TLattice [definition, in Combi.Basic.ordtype]
+InhTBLattice.Exports.join_ordtype_InhTBLattice_between_ordtype_InhPOrder_and_Order_TJoinSemilattice [definition, in Combi.Basic.ordtype]
+InhTBLattice.Exports.join_ordtype_InhTBLattice_between_ordtype_InhPOrder_and_Order_TMeetSemilattice [definition, in Combi.Basic.ordtype]
+InhTBLattice.Exports.join_ordtype_InhTBLattice_between_ordtype_InhPOrder_and_Order_TPOrder [definition, in Combi.Basic.ordtype]
+InhTBLattice.Exports.join_ordtype_InhTBLattice_between_ordtype_InhPOrder_and_Order_TPreorder [definition, in Combi.Basic.ordtype]
+InhTBLattice.Exports.join_ordtype_InhTBLattice_between_ordtype_Inhabited_and_Order_TBLattice [definition, in Combi.Basic.ordtype]
+InhTBLattice.Exports.join_ordtype_InhTBLattice_between_ordtype_Inhabited_and_Order_TBJoinSemilattice [definition, in Combi.Basic.ordtype]
+InhTBLattice.Exports.join_ordtype_InhTBLattice_between_ordtype_Inhabited_and_Order_TBMeetSemilattice [definition, in Combi.Basic.ordtype]
+InhTBLattice.Exports.join_ordtype_InhTBLattice_between_ordtype_Inhabited_and_Order_TBPOrder [definition, in Combi.Basic.ordtype]
+InhTBLattice.Exports.join_ordtype_InhTBLattice_between_ordtype_Inhabited_and_Order_TBPreorder [definition, in Combi.Basic.ordtype]
+InhTBLattice.Exports.join_ordtype_InhTBLattice_between_ordtype_Inhabited_and_Order_TLattice [definition, in Combi.Basic.ordtype]
+InhTBLattice.Exports.join_ordtype_InhTBLattice_between_ordtype_Inhabited_and_Order_TJoinSemilattice [definition, in Combi.Basic.ordtype]
+InhTBLattice.Exports.join_ordtype_InhTBLattice_between_ordtype_Inhabited_and_Order_TMeetSemilattice [definition, in Combi.Basic.ordtype]
+InhTBLattice.Exports.join_ordtype_InhTBLattice_between_ordtype_Inhabited_and_Order_TPOrder [definition, in Combi.Basic.ordtype]
+InhTBLattice.Exports.join_ordtype_InhTBLattice_between_ordtype_Inhabited_and_Order_TPreorder [definition, in Combi.Basic.ordtype]
+InhTBLattice.Exports.ordtype_InhTBLattice__to__Order_TBLattice [definition, in Combi.Basic.ordtype]
+InhTBLattice.Exports.ordtype_InhTBLattice_class__to__Order_TBLattice_class [definition, in Combi.Basic.ordtype]
+InhTBLattice.Exports.ordtype_InhTBLattice__to__Order_BLattice [definition, in Combi.Basic.ordtype]
+InhTBLattice.Exports.ordtype_InhTBLattice_class__to__Order_BLattice_class [definition, in Combi.Basic.ordtype]
+InhTBLattice.Exports.ordtype_InhTBLattice__to__Order_TBJoinSemilattice [definition, in Combi.Basic.ordtype]
+InhTBLattice.Exports.ordtype_InhTBLattice_class__to__Order_TBJoinSemilattice_class [definition, in Combi.Basic.ordtype]
+InhTBLattice.Exports.ordtype_InhTBLattice__to__Order_BJoinSemilattice [definition, in Combi.Basic.ordtype]
+InhTBLattice.Exports.ordtype_InhTBLattice_class__to__Order_BJoinSemilattice_class [definition, in Combi.Basic.ordtype]
+InhTBLattice.Exports.ordtype_InhTBLattice__to__Order_TBMeetSemilattice [definition, in Combi.Basic.ordtype]
+InhTBLattice.Exports.ordtype_InhTBLattice_class__to__Order_TBMeetSemilattice_class [definition, in Combi.Basic.ordtype]
+InhTBLattice.Exports.ordtype_InhTBLattice__to__Order_BMeetSemilattice [definition, in Combi.Basic.ordtype]
+InhTBLattice.Exports.ordtype_InhTBLattice_class__to__Order_BMeetSemilattice_class [definition, in Combi.Basic.ordtype]
+InhTBLattice.Exports.ordtype_InhTBLattice__to__Order_TBPOrder [definition, in Combi.Basic.ordtype]
+InhTBLattice.Exports.ordtype_InhTBLattice_class__to__Order_TBPOrder_class [definition, in Combi.Basic.ordtype]
+InhTBLattice.Exports.ordtype_InhTBLattice__to__Order_BPOrder [definition, in Combi.Basic.ordtype]
+InhTBLattice.Exports.ordtype_InhTBLattice_class__to__Order_BPOrder_class [definition, in Combi.Basic.ordtype]
+InhTBLattice.Exports.ordtype_InhTBLattice__to__Order_TBPreorder [definition, in Combi.Basic.ordtype]
+InhTBLattice.Exports.ordtype_InhTBLattice_class__to__Order_TBPreorder_class [definition, in Combi.Basic.ordtype]
+InhTBLattice.Exports.ordtype_InhTBLattice__to__Order_BPreorder [definition, in Combi.Basic.ordtype]
+InhTBLattice.Exports.ordtype_InhTBLattice_class__to__Order_BPreorder_class [definition, in Combi.Basic.ordtype]
+InhTBLattice.Exports.ordtype_InhTBLattice__to__ordtype_InhLattice [definition, in Combi.Basic.ordtype]
+InhTBLattice.Exports.ordtype_InhTBLattice_class__to__ordtype_InhLattice_class [definition, in Combi.Basic.ordtype]
+InhTBLattice.Exports.ordtype_InhTBLattice__to__ordtype_InhPOrder [definition, in Combi.Basic.ordtype]
+InhTBLattice.Exports.ordtype_InhTBLattice_class__to__ordtype_InhPOrder_class [definition, in Combi.Basic.ordtype]
+InhTBLattice.Exports.ordtype_InhTBLattice__to__ordtype_Inhabited [definition, in Combi.Basic.ordtype]
+InhTBLattice.Exports.ordtype_InhTBLattice_class__to__ordtype_Inhabited_class [definition, in Combi.Basic.ordtype]
+InhTBLattice.Exports.ordtype_InhTBLattice__to__Order_TLattice [definition, in Combi.Basic.ordtype]
+InhTBLattice.Exports.ordtype_InhTBLattice_class__to__Order_TLattice_class [definition, in Combi.Basic.ordtype]
+InhTBLattice.Exports.ordtype_InhTBLattice__to__Order_Lattice [definition, in Combi.Basic.ordtype]
+InhTBLattice.Exports.ordtype_InhTBLattice_class__to__Order_Lattice_class [definition, in Combi.Basic.ordtype]
+InhTBLattice.Exports.ordtype_InhTBLattice__to__Order_TJoinSemilattice [definition, in Combi.Basic.ordtype]
+InhTBLattice.Exports.ordtype_InhTBLattice_class__to__Order_TJoinSemilattice_class [definition, in Combi.Basic.ordtype]
+InhTBLattice.Exports.ordtype_InhTBLattice__to__Order_JoinSemilattice [definition, in Combi.Basic.ordtype]
+InhTBLattice.Exports.ordtype_InhTBLattice_class__to__Order_JoinSemilattice_class [definition, in Combi.Basic.ordtype]
+InhTBLattice.Exports.ordtype_InhTBLattice__to__Order_TMeetSemilattice [definition, in Combi.Basic.ordtype]
+InhTBLattice.Exports.ordtype_InhTBLattice_class__to__Order_TMeetSemilattice_class [definition, in Combi.Basic.ordtype]
+InhTBLattice.Exports.ordtype_InhTBLattice__to__Order_MeetSemilattice [definition, in Combi.Basic.ordtype]
+InhTBLattice.Exports.ordtype_InhTBLattice_class__to__Order_MeetSemilattice_class [definition, in Combi.Basic.ordtype]
+InhTBLattice.Exports.ordtype_InhTBLattice__to__Order_TPOrder [definition, in Combi.Basic.ordtype]
+InhTBLattice.Exports.ordtype_InhTBLattice_class__to__Order_TPOrder_class [definition, in Combi.Basic.ordtype]
+InhTBLattice.Exports.ordtype_InhTBLattice__to__Order_POrder [definition, in Combi.Basic.ordtype]
+InhTBLattice.Exports.ordtype_InhTBLattice_class__to__Order_POrder_class [definition, in Combi.Basic.ordtype]
+InhTBLattice.Exports.ordtype_InhTBLattice__to__Order_TPreorder [definition, in Combi.Basic.ordtype]
+InhTBLattice.Exports.ordtype_InhTBLattice_class__to__Order_TPreorder_class [definition, in Combi.Basic.ordtype]
+InhTBLattice.Exports.ordtype_InhTBLattice__to__Order_Preorder [definition, in Combi.Basic.ordtype]
+InhTBLattice.Exports.ordtype_InhTBLattice_class__to__Order_Preorder_class [definition, in Combi.Basic.ordtype]
+InhTBLattice.Exports.ordtype_InhTBLattice__to__choice_Choice [definition, in Combi.Basic.ordtype]
+InhTBLattice.Exports.ordtype_InhTBLattice_class__to__choice_Choice_class [definition, in Combi.Basic.ordtype]
+InhTBLattice.Exports.ordtype_InhTBLattice__to__eqtype_Equality [definition, in Combi.Basic.ordtype]
+InhTBLattice.Exports.ordtype_InhTBLattice_class__to__eqtype_Equality_class [definition, in Combi.Basic.ordtype]
+InhTBLattice.on [abbreviation, in Combi.Basic.ordtype]
+InhTBLattice.on_ [abbreviation, in Combi.Basic.ordtype]
+InhTBLattice.Order_POrder_isJoinSemilattice_mixin [projection, in Combi.Basic.ordtype]
+InhTBLattice.Order_POrder_isMeetSemilattice_mixin [projection, in Combi.Basic.ordtype]
+InhTBLattice.Order_Preorder_isDuallyPOrder_mixin [projection, in Combi.Basic.ordtype]
+InhTBLattice.Order_hasBottom_mixin [projection, in Combi.Basic.ordtype]
+InhTBLattice.Order_hasTop_mixin [projection, in Combi.Basic.ordtype]
+InhTBLattice.Order_isDuallyPreorder_mixin [projection, in Combi.Basic.ordtype]
+InhTBLattice.ordtype_isInhabited_mixin [projection, in Combi.Basic.ordtype]
+InhTBLattice.pack_ [definition, in Combi.Basic.ordtype]
+InhTBLattice.phant_on_ [definition, in Combi.Basic.ordtype]
+InhTBLattice.phant_clone [definition, in Combi.Basic.ordtype]
+InhTBLattice.sort [projection, in Combi.Basic.ordtype]
+InhTBLattice.type [record, in Combi.Basic.ordtype]
+inh_chooseE [lemma, in Combi.Basic.ordtype]
+inh_xchooseE [lemma, in Combi.Basic.ordtype]
+inh_ex [definition, in Combi.Basic.ordtype]
+inj_strict_mon [lemma, in ALEA.Ccpo]
+inner_part [projection, in Combi.LRrule.implem]
+inordi [lemma, in Combi.SymGroup.presentSn]
+inordi_neq_i1 [lemma, in Combi.SymGroup.presentSn]
+inordi1 [lemma, in Combi.SymGroup.presentSn]
+inord_predS [lemma, in Combi.SymGroup.presentSn]
+inord1i [lemma, in Combi.SymGroup.presentSn]
+inporbits [definition, in Combi.SymGroup.permcent]
+inporbits_im [lemma, in Combi.SymGroup.permcent]
+inporbits1 [lemma, in Combi.SymGroup.permcent]
+inputSpec [record, in Combi.LRrule.implem]
+ins [abbreviation, in Combi.LRrule.Schensted]
+ins [definition, in Combi.LRrule.Schensted]
+inscode [definition, in Combi.SymGroup.presentSn]
+inscodeP [lemma, in Combi.SymGroup.presentSn]
+insE [lemma, in Combi.LRrule.Schensted]
+insmin [definition, in Combi.LRrule.Schensted]
+inspos [abbreviation, in Combi.LRrule.Schensted]
+inspos [definition, in Combi.LRrule.Schensted]
+insposE [lemma, in Combi.LRrule.Schensted]
+inspos_leq_exP [lemma, in Combi.LRrule.Schensted]
+inspos_lt_size_ins [lemma, in Combi.LRrule.Schensted]
+inspos_leq_size [lemma, in Combi.LRrule.Schensted]
+inspos_rcons [lemma, in Combi.LRrule.plactic]
+inspred [definition, in Combi.LRrule.Schensted]
+inspredN_lt_inspos [lemma, in Combi.LRrule.Schensted]
+inspred_mininspred [lemma, in Combi.LRrule.Schensted]
+inspred_inspos [lemma, in Combi.LRrule.Schensted]
+inspred_any_bump [lemma, in Combi.LRrule.Schensted]
+insRow [abbreviation, in Combi.LRrule.Schensted]
+insrow [definition, in Combi.LRrule.Schensted]
+insrowE [lemma, in Combi.LRrule.Schensted]
+insrow_head_lt [lemma, in Combi.LRrule.Schensted]
+instab [definition, in Combi.LRrule.Schensted]
+instabnrow [definition, in Combi.LRrule.Schensted]
+instabnrowE [lemma, in Combi.LRrule.Schensted]
+instabnrowinvK [lemma, in Combi.LRrule.Schensted]
+instab_non_nil [lemma, in Combi.LRrule.Schensted]
+insub_wordcdK [lemma, in Combi.SymGroup.presentSn]
+ins_bumprowE [lemma, in Combi.LRrule.Schensted]
+ins_non_nil [lemma, in Combi.LRrule.Schensted]
+ins_leq [lemma, in Combi.LRrule.Schensted]
+ins_head_lt [lemma, in Combi.LRrule.Schensted]
+intcomp [record, in Combi.Combi.composition]
+intcompn [record, in Combi.Combi.composition]
+intcompnP [lemma, in Combi.Combi.composition]
+intcompn_behead [definition, in Combi.MPoly.sympoly]
+intcompn_behead_sub_proof [lemma, in Combi.MPoly.sympoly]
+intcompn_cons [definition, in Combi.MPoly.sympoly]
+intcompn_cons_sub_proof [lemma, in Combi.MPoly.sympoly]
+intcompn_castE [lemma, in Combi.Combi.composition]
+intcompn_cast [definition, in Combi.Combi.composition]
+intcompn_sumn [lemma, in Combi.Combi.composition]
+intcompn0 [lemma, in Combi.Combi.composition]
+intcompn1 [lemma, in Combi.Combi.composition]
+intcompn2 [lemma, in Combi.Combi.composition]
+intcompP [lemma, in Combi.Combi.composition]
+intcomp_of_intcompn [definition, in Combi.Combi.composition]
+intpart [record, in Combi.Combi.partition]
+intpartn [record, in Combi.Combi.partition]
+IntPartN [section, in Combi.Combi.skewpart]
+IntpartnCons [section, in Combi.Combi.partition]
+IntpartnCons.d [variable, in Combi.Combi.partition]
+IntpartnCons.Hla [variable, in Combi.Combi.partition]
+IntpartnCons.Hlla [variable, in Combi.Combi.partition]
+IntpartnCons.la [variable, in Combi.Combi.partition]
+IntpartnCons.l0 [variable, in Combi.Combi.partition]
+IntPartNDom [module, in Combi.Combi.partition]
+IntPartNDom.botEintpartndom [lemma, in Combi.Combi.partition]
+IntPartNDom.double_minn [lemma, in Combi.Combi.partition]
+IntPartNDom.Exports [module, in Combi.Combi.partition]
+IntPartNDom.Exports.botEintpartndom [definition, in Combi.Combi.partition]
+IntPartNDom.Exports.join_intpartnE [definition, in Combi.Combi.partition]
+IntPartNDom.Exports.leEpartdom [definition, in Combi.Combi.partition]
+IntPartNDom.Exports.partdom_conj_intpartn [definition, in Combi.Combi.partition]
+IntPartNDom.Exports.sumn_take_pardom_meet [definition, in Combi.Combi.partition]
+IntPartNDom.Exports.topEintpartndom [definition, in Combi.Combi.partition]
+'PDom_ _ [notation, in Combi.Combi.partition]
+IntPartNDom.fintype_Finite__to__fintype_isFinite [definition, in Combi.Combi.partition]
+IntPartNDom.fintype_Finite__to__eqtype_hasDecEq [definition, in Combi.Combi.partition]
+IntPartNDom.fintype_Finite__to__choice_Choice_isCountable [definition, in Combi.Combi.partition]
+IntPartNDom.fintype_Finite__to__choice_hasChoice [definition, in Combi.Combi.partition]
+IntPartNDom.from_parttupleK [lemma, in Combi.Combi.partition]
+IntPartNDom.from_parttupleP [lemma, in Combi.Combi.partition]
+IntPartNDom.from_parttuple [definition, in Combi.Combi.partition]
+IntPartNDom.HB_unnamed_factory_142 [definition, in Combi.Combi.partition]
+IntPartNDom.HB_unnamed_factory_140 [definition, in Combi.Combi.partition]
+IntPartNDom.HB_unnamed_mixin_139 [definition, in Combi.Combi.partition]
+IntPartNDom.HB_unnamed_mixin_138 [definition, in Combi.Combi.partition]
+IntPartNDom.HB_unnamed_factory_135 [definition, in Combi.Combi.partition]
+IntPartNDom.HB_unnamed_mixin_134 [definition, in Combi.Combi.partition]
+IntPartNDom.HB_unnamed_mixin_133 [definition, in Combi.Combi.partition]
+IntPartNDom.HB_unnamed_factory_130 [definition, in Combi.Combi.partition]
+IntPartNDom.HB_unnamed_mixin_129 [definition, in Combi.Combi.partition]
+IntPartNDom.HB_unnamed_factory_125 [definition, in Combi.Combi.partition]
+IntPartNDom.HB_unnamed_mixin_124 [definition, in Combi.Combi.partition]
+IntPartNDom.HB_unnamed_mixin_123 [definition, in Combi.Combi.partition]
+IntPartNDom.HB_unnamed_mixin_122 [definition, in Combi.Combi.partition]
+IntPartNDom.HB_unnamed_mixin_121 [definition, in Combi.Combi.partition]
+IntPartNDom.HB_unnamed_factory_116 [definition, in Combi.Combi.partition]
+IntPartNDom.intpartndom [definition, in Combi.Combi.partition]
+IntPartNDom.IntPartNDom [section, in Combi.Combi.partition]
+IntPartNDom.IntPartNDom_intpartndom__canonical__Order_FinTBLattice [definition, in Combi.Combi.partition]
+IntPartNDom.IntPartNDom_intpartndom__canonical__Order_FinTBPOrder [definition, in Combi.Combi.partition]
+IntPartNDom.IntPartNDom_intpartndom__canonical__Order_FinTBPreorder [definition, in Combi.Combi.partition]
+IntPartNDom.IntPartNDom_intpartndom__canonical__Order_FinTJoinSemilattice [definition, in Combi.Combi.partition]
+IntPartNDom.IntPartNDom_intpartndom__canonical__Order_FinTPOrder [definition, in Combi.Combi.partition]
+IntPartNDom.IntPartNDom_intpartndom__canonical__Order_FinTPreorder [definition, in Combi.Combi.partition]
+IntPartNDom.IntPartNDom_intpartndom__canonical__ordtype_InhTBLattice [definition, in Combi.Combi.partition]
+IntPartNDom.IntPartNDom_intpartndom__canonical__Order_TBLattice [definition, in Combi.Combi.partition]
+IntPartNDom.IntPartNDom_intpartndom__canonical__Order_TBJoinSemilattice [definition, in Combi.Combi.partition]
+IntPartNDom.IntPartNDom_intpartndom__canonical__Order_TBMeetSemilattice [definition, in Combi.Combi.partition]
+IntPartNDom.IntPartNDom_intpartndom__canonical__Order_TBPOrder [definition, in Combi.Combi.partition]
+IntPartNDom.IntPartNDom_intpartndom__canonical__Order_TBPreorder [definition, in Combi.Combi.partition]
+IntPartNDom.IntPartNDom_intpartndom__canonical__Order_TLattice [definition, in Combi.Combi.partition]
+IntPartNDom.IntPartNDom_intpartndom__canonical__Order_TJoinSemilattice [definition, in Combi.Combi.partition]
+IntPartNDom.IntPartNDom_intpartndom__canonical__Order_TMeetSemilattice [definition, in Combi.Combi.partition]
+IntPartNDom.IntPartNDom_intpartndom__canonical__Order_TPOrder [definition, in Combi.Combi.partition]
+IntPartNDom.IntPartNDom_intpartndom__canonical__Order_TPreorder [definition, in Combi.Combi.partition]
+IntPartNDom.IntPartNDom_intpartndom__canonical__Order_BLattice [definition, in Combi.Combi.partition]
+IntPartNDom.IntPartNDom_intpartndom__canonical__Order_BJoinSemilattice [definition, in Combi.Combi.partition]
+IntPartNDom.IntPartNDom_intpartndom__canonical__Order_FinBMeetSemilattice [definition, in Combi.Combi.partition]
+IntPartNDom.IntPartNDom_intpartndom__canonical__Order_BMeetSemilattice [definition, in Combi.Combi.partition]
+IntPartNDom.IntPartNDom_intpartndom__canonical__Order_FinBPOrder [definition, in Combi.Combi.partition]
+IntPartNDom.IntPartNDom_intpartndom__canonical__Order_BPOrder [definition, in Combi.Combi.partition]
+IntPartNDom.IntPartNDom_intpartndom__canonical__Order_FinBPreorder [definition, in Combi.Combi.partition]
+IntPartNDom.IntPartNDom_intpartndom__canonical__Order_BPreorder [definition, in Combi.Combi.partition]
+IntPartNDom.IntPartNDom_intpartndom__canonical__ordtype_InhFinLattice [definition, in Combi.Combi.partition]
+IntPartNDom.IntPartNDom_intpartndom__canonical__Order_FinLattice [definition, in Combi.Combi.partition]
+IntPartNDom.IntPartNDom_intpartndom__canonical__Order_FinMeetSemilattice [definition, in Combi.Combi.partition]
+IntPartNDom.IntPartNDom_intpartndom__canonical__ordtype_InhLattice [definition, in Combi.Combi.partition]
+IntPartNDom.IntPartNDom_intpartndom__canonical__Order_Lattice [definition, in Combi.Combi.partition]
+IntPartNDom.IntPartNDom_intpartndom__canonical__Order_MeetSemilattice [definition, in Combi.Combi.partition]
+IntPartNDom.IntPartNDom_intpartndom__canonical__Order_FinJoinSemilattice [definition, in Combi.Combi.partition]
+IntPartNDom.IntPartNDom_intpartndom__canonical__Order_JoinSemilattice [definition, in Combi.Combi.partition]
+IntPartNDom.IntPartNDom_intpartndom__canonical__ordtype_InhFinPOrder [definition, in Combi.Combi.partition]
+IntPartNDom.IntPartNDom_intpartndom__canonical__Order_FinPOrder [definition, in Combi.Combi.partition]
+IntPartNDom.IntPartNDom_intpartndom__canonical__Order_FinPreorder [definition, in Combi.Combi.partition]
+IntPartNDom.IntPartNDom_intpartndom__canonical__ordtype_InhPOrder [definition, in Combi.Combi.partition]
+IntPartNDom.IntPartNDom_intpartndom__canonical__Order_POrder [definition, in Combi.Combi.partition]
+IntPartNDom.IntPartNDom_intpartndom__canonical__Order_Preorder [definition, in Combi.Combi.partition]
+IntPartNDom.IntPartNDom_intpartndom__canonical__ordtype_InhFinite [definition, in Combi.Combi.partition]
+IntPartNDom.IntPartNDom_intpartndom__canonical__ordtype_Inhabited [definition, in Combi.Combi.partition]
+IntPartNDom.IntPartNDom_intpartndom__canonical__fintype_Finite [definition, in Combi.Combi.partition]
+IntPartNDom.IntPartNDom_intpartndom__canonical__choice_Countable [definition, in Combi.Combi.partition]
+IntPartNDom.IntPartNDom_intpartndom__canonical__choice_Choice [definition, in Combi.Combi.partition]
+IntPartNDom.IntPartNDom_intpartndom__canonical__eqtype_Equality [definition, in Combi.Combi.partition]
+IntPartNDom.IntPartNDom.d [variable, in Combi.Combi.partition]
+_ ^# [notation, in Combi.Combi.partition]
+'PDom [notation, in Combi.Combi.partition]
+IntPartNDom.IntPartNTopBottom [section, in Combi.Combi.partition]
+IntPartNDom.IntPartNTopBottom.d [variable, in Combi.Combi.partition]
+'PDom [notation, in Combi.Combi.partition]
+IntPartNDom.is_parttupleP [lemma, in Combi.Combi.partition]
+IntPartNDom.is_parttuple [definition, in Combi.Combi.partition]
+IntPartNDom.join_intpartnE [lemma, in Combi.Combi.partition]
+IntPartNDom.join_intpartnP [lemma, in Combi.Combi.partition]
+IntPartNDom.join_intpartn [definition, in Combi.Combi.partition]
+IntPartNDom.leEpartdom [lemma, in Combi.Combi.partition]
+IntPartNDom.le_meet_intpartn [lemma, in Combi.Combi.partition]
+IntPartNDom.meet_intpartnP [lemma, in Combi.Combi.partition]
+IntPartNDom.meet_intpartnC [lemma, in Combi.Combi.partition]
+IntPartNDom.meet_intpartn [definition, in Combi.Combi.partition]
+IntPartNDom.nth_parttuple_minn [lemma, in Combi.Combi.partition]
+IntPartNDom.nth_parttuple [lemma, in Combi.Combi.partition]
+IntPartNDom.Order_POrder_MeetJoin_isLattice__to__Order_POrder_isMeetSemilattice [definition, in Combi.Combi.partition]
+IntPartNDom.Order_POrder_MeetJoin_isLattice__to__Order_POrder_isJoinSemilattice [definition, in Combi.Combi.partition]
+IntPartNDom.Order_Le_isPOrder__to__Order_isDuallyPreorder [definition, in Combi.Combi.partition]
+IntPartNDom.Order_Le_isPOrder__to__Order_Preorder_isDuallyPOrder [definition, in Combi.Combi.partition]
+IntPartNDom.ordtype_Inhabited__to__ordtype_isInhabited [definition, in Combi.Combi.partition]
+IntPartNDom.partdom_colpartn [lemma, in Combi.Combi.partition]
+IntPartNDom.partdom_rowpartn [lemma, in Combi.Combi.partition]
+IntPartNDom.partdom_conj_intpartn [lemma, in Combi.Combi.partition]
+IntPartNDom.partdom_display [lemma, in Combi.Combi.partition]
+IntPartNDom.partdom_antisym [lemma, in Combi.Combi.partition]
+IntPartNDom.parttuple [definition, in Combi.Combi.partition]
+IntPartNDom.parttupleK [lemma, in Combi.Combi.partition]
+IntPartNDom.parttupleP [lemma, in Combi.Combi.partition]
+IntPartNDom.parttuplePK [lemma, in Combi.Combi.partition]
+IntPartNDom.parttuple_minnP [lemma, in Combi.Combi.partition]
+IntPartNDom.parttuple_minnC [lemma, in Combi.Combi.partition]
+IntPartNDom.parttuple_minn [definition, in Combi.Combi.partition]
+IntPartNDom.part_fromtuple [definition, in Combi.Combi.partition]
+IntPartNDom.sumn_take_pardom_meet [lemma, in Combi.Combi.partition]
+IntPartNDom.sumn_take_part_fromtuple [lemma, in Combi.Combi.partition]
+IntPartNDom.sum_diff_tuple [lemma, in Combi.Combi.partition]
+IntPartNDom.sum_diff [lemma, in Combi.Combi.partition]
+IntPartNDom.take_intpartn_over [lemma, in Combi.Combi.partition]
+IntPartNDom.topEintpartndom [lemma, in Combi.Combi.partition]
+IntPartNLexi [module, in Combi.Combi.partition]
+IntPartNLexi.botEintpartnlexi [lemma, in Combi.Combi.partition]
+IntPartNLexi.colpartn_bot [lemma, in Combi.Combi.partition]
+IntPartNLexi.eqtype_SubType__to__eqtype_isSub [definition, in Combi.Combi.partition]
+IntPartNLexi.Exports [module, in Combi.Combi.partition]
+IntPartNLexi.Exports.botEintpartnlexi [definition, in Combi.Combi.partition]
+IntPartNLexi.Exports.leEintpartnlexi [definition, in Combi.Combi.partition]
+IntPartNLexi.Exports.ltEintpartnlexi [definition, in Combi.Combi.partition]
+IntPartNLexi.Exports.topEintpartnlexi [definition, in Combi.Combi.partition]
+'PLexi_ _ [notation, in Combi.Combi.partition]
+IntPartNLexi.fintype_Finite__to__fintype_isFinite [definition, in Combi.Combi.partition]
+IntPartNLexi.fintype_Finite__to__eqtype_hasDecEq [definition, in Combi.Combi.partition]
+IntPartNLexi.fintype_Finite__to__choice_Choice_isCountable [definition, in Combi.Combi.partition]
+IntPartNLexi.fintype_Finite__to__choice_hasChoice [definition, in Combi.Combi.partition]
+IntPartNLexi.HB_unnamed_mixin_69 [definition, in Combi.Combi.partition]
+IntPartNLexi.HB_unnamed_factory_67 [definition, in Combi.Combi.partition]
+IntPartNLexi.HB_unnamed_factory_65 [definition, in Combi.Combi.partition]
+IntPartNLexi.HB_unnamed_factory_63 [definition, in Combi.Combi.partition]
+IntPartNLexi.HB_unnamed_mixin_62 [definition, in Combi.Combi.partition]
+IntPartNLexi.HB_unnamed_mixin_61 [definition, in Combi.Combi.partition]
+IntPartNLexi.HB_unnamed_mixin_60 [definition, in Combi.Combi.partition]
+IntPartNLexi.HB_unnamed_mixin_59 [definition, in Combi.Combi.partition]
+IntPartNLexi.HB_unnamed_mixin_58 [definition, in Combi.Combi.partition]
+IntPartNLexi.HB_unnamed_mixin_57 [definition, in Combi.Combi.partition]
+IntPartNLexi.HB_unnamed_factory_48 [definition, in Combi.Combi.partition]
+IntPartNLexi.HB_unnamed_mixin_47 [definition, in Combi.Combi.partition]
+IntPartNLexi.HB_unnamed_mixin_46 [definition, in Combi.Combi.partition]
+IntPartNLexi.HB_unnamed_mixin_45 [definition, in Combi.Combi.partition]
+IntPartNLexi.HB_unnamed_mixin_44 [definition, in Combi.Combi.partition]
+IntPartNLexi.HB_unnamed_factory_39 [definition, in Combi.Combi.partition]
+IntPartNLexi.HB_unnamed_mixin_38 [definition, in Combi.Combi.partition]
+IntPartNLexi.HB_unnamed_factory_36 [definition, in Combi.Combi.partition]
+IntPartNLexi.intpartnlexi [definition, in Combi.Combi.partition]
+IntPartNLexi.IntPartNLexi [section, in Combi.Combi.partition]
+IntPartNLexi.IntPartNLexi_intpartnlexi__canonical__ordtype_InhFinOrder [definition, in Combi.Combi.partition]
+IntPartNLexi.IntPartNLexi_intpartnlexi__canonical__ordtype_InhFinLattice [definition, in Combi.Combi.partition]
+IntPartNLexi.IntPartNLexi_intpartnlexi__canonical__ordtype_InhFinPOrder [definition, in Combi.Combi.partition]
+IntPartNLexi.IntPartNLexi_intpartnlexi__canonical__ordtype_InhFinite [definition, in Combi.Combi.partition]
+IntPartNLexi.IntPartNLexi_intpartnlexi__canonical__ordtype_InhOrder [definition, in Combi.Combi.partition]
+IntPartNLexi.IntPartNLexi_intpartnlexi__canonical__ordtype_InhTBLattice [definition, in Combi.Combi.partition]
+IntPartNLexi.IntPartNLexi_intpartnlexi__canonical__ordtype_InhLattice [definition, in Combi.Combi.partition]
+IntPartNLexi.IntPartNLexi_intpartnlexi__canonical__ordtype_InhPOrder [definition, in Combi.Combi.partition]
+IntPartNLexi.IntPartNLexi_intpartnlexi__canonical__ordtype_Inhabited [definition, in Combi.Combi.partition]
+IntPartNLexi.IntPartNLexi_intpartnlexi__canonical__Order_FinTBTotal [definition, in Combi.Combi.partition]
+IntPartNLexi.IntPartNLexi_intpartnlexi__canonical__Order_FinTBDistrLattice [definition, in Combi.Combi.partition]
+IntPartNLexi.IntPartNLexi_intpartnlexi__canonical__Order_FinTBLattice [definition, in Combi.Combi.partition]
+IntPartNLexi.IntPartNLexi_intpartnlexi__canonical__Order_FinTBPOrder [definition, in Combi.Combi.partition]
+IntPartNLexi.IntPartNLexi_intpartnlexi__canonical__Order_FinTBPreorder [definition, in Combi.Combi.partition]
+IntPartNLexi.IntPartNLexi_intpartnlexi__canonical__Order_FinTJoinSemilattice [definition, in Combi.Combi.partition]
+IntPartNLexi.IntPartNLexi_intpartnlexi__canonical__Order_FinTPOrder [definition, in Combi.Combi.partition]
+IntPartNLexi.IntPartNLexi_intpartnlexi__canonical__Order_FinTPreorder [definition, in Combi.Combi.partition]
+IntPartNLexi.IntPartNLexi_intpartnlexi__canonical__Order_TBTotal [definition, in Combi.Combi.partition]
+IntPartNLexi.IntPartNLexi_intpartnlexi__canonical__Order_TBDistrLattice [definition, in Combi.Combi.partition]
+IntPartNLexi.IntPartNLexi_intpartnlexi__canonical__Order_TBLattice [definition, in Combi.Combi.partition]
+IntPartNLexi.IntPartNLexi_intpartnlexi__canonical__Order_TBJoinSemilattice [definition, in Combi.Combi.partition]
+IntPartNLexi.IntPartNLexi_intpartnlexi__canonical__Order_TBMeetSemilattice [definition, in Combi.Combi.partition]
+IntPartNLexi.IntPartNLexi_intpartnlexi__canonical__Order_TBPOrder [definition, in Combi.Combi.partition]
+IntPartNLexi.IntPartNLexi_intpartnlexi__canonical__Order_TBPreorder [definition, in Combi.Combi.partition]
+IntPartNLexi.IntPartNLexi_intpartnlexi__canonical__Order_TTotal [definition, in Combi.Combi.partition]
+IntPartNLexi.IntPartNLexi_intpartnlexi__canonical__Order_TDistrLattice [definition, in Combi.Combi.partition]
+IntPartNLexi.IntPartNLexi_intpartnlexi__canonical__Order_TLattice [definition, in Combi.Combi.partition]
+IntPartNLexi.IntPartNLexi_intpartnlexi__canonical__Order_TJoinSemilattice [definition, in Combi.Combi.partition]
+IntPartNLexi.IntPartNLexi_intpartnlexi__canonical__Order_TMeetSemilattice [definition, in Combi.Combi.partition]
+IntPartNLexi.IntPartNLexi_intpartnlexi__canonical__Order_TPOrder [definition, in Combi.Combi.partition]
+IntPartNLexi.IntPartNLexi_intpartnlexi__canonical__Order_TPreorder [definition, in Combi.Combi.partition]
+IntPartNLexi.IntPartNLexi_intpartnlexi__canonical__Order_BTotal [definition, in Combi.Combi.partition]
+IntPartNLexi.IntPartNLexi_intpartnlexi__canonical__Order_BDistrLattice [definition, in Combi.Combi.partition]
+IntPartNLexi.IntPartNLexi_intpartnlexi__canonical__Order_BLattice [definition, in Combi.Combi.partition]
+IntPartNLexi.IntPartNLexi_intpartnlexi__canonical__Order_BJoinSemilattice [definition, in Combi.Combi.partition]
+IntPartNLexi.IntPartNLexi_intpartnlexi__canonical__Order_FinBMeetSemilattice [definition, in Combi.Combi.partition]
+IntPartNLexi.IntPartNLexi_intpartnlexi__canonical__Order_BMeetSemilattice [definition, in Combi.Combi.partition]
+IntPartNLexi.IntPartNLexi_intpartnlexi__canonical__Order_FinBPOrder [definition, in Combi.Combi.partition]
+IntPartNLexi.IntPartNLexi_intpartnlexi__canonical__Order_BPOrder [definition, in Combi.Combi.partition]
+IntPartNLexi.IntPartNLexi_intpartnlexi__canonical__Order_FinBPreorder [definition, in Combi.Combi.partition]
+IntPartNLexi.IntPartNLexi_intpartnlexi__canonical__Order_BPreorder [definition, in Combi.Combi.partition]
+IntPartNLexi.IntPartNLexi_intpartnlexi__canonical__Order_FinTotal [definition, in Combi.Combi.partition]
+IntPartNLexi.IntPartNLexi_intpartnlexi__canonical__Order_Total [definition, in Combi.Combi.partition]
+IntPartNLexi.IntPartNLexi_intpartnlexi__canonical__Order_FinDistrLattice [definition, in Combi.Combi.partition]
+IntPartNLexi.IntPartNLexi_intpartnlexi__canonical__Order_DistrLattice [definition, in Combi.Combi.partition]
+IntPartNLexi.IntPartNLexi_intpartnlexi__canonical__Order_FinLattice [definition, in Combi.Combi.partition]
+IntPartNLexi.IntPartNLexi_intpartnlexi__canonical__Order_FinJoinSemilattice [definition, in Combi.Combi.partition]
+IntPartNLexi.IntPartNLexi_intpartnlexi__canonical__Order_Lattice [definition, in Combi.Combi.partition]
+IntPartNLexi.IntPartNLexi_intpartnlexi__canonical__Order_JoinSemilattice [definition, in Combi.Combi.partition]
+IntPartNLexi.IntPartNLexi_intpartnlexi__canonical__Order_FinMeetSemilattice [definition, in Combi.Combi.partition]
+IntPartNLexi.IntPartNLexi_intpartnlexi__canonical__Order_MeetSemilattice [definition, in Combi.Combi.partition]
+IntPartNLexi.IntPartNLexi_intpartnlexi__canonical__Order_FinPOrder [definition, in Combi.Combi.partition]
+IntPartNLexi.IntPartNLexi_intpartnlexi__canonical__Order_POrder [definition, in Combi.Combi.partition]
+IntPartNLexi.IntPartNLexi_intpartnlexi__canonical__Order_FinPreorder [definition, in Combi.Combi.partition]
+IntPartNLexi.IntPartNLexi_intpartnlexi__canonical__Order_Preorder [definition, in Combi.Combi.partition]
+IntPartNLexi.IntPartNLexi_intpartnlexi__canonical__fintype_SubFinite [definition, in Combi.Combi.partition]
+IntPartNLexi.IntPartNLexi_intpartnlexi__canonical__fintype_Finite [definition, in Combi.Combi.partition]
+IntPartNLexi.IntPartNLexi_intpartnlexi__canonical__choice_SubCountable [definition, in Combi.Combi.partition]
+IntPartNLexi.IntPartNLexi_intpartnlexi__canonical__choice_Countable [definition, in Combi.Combi.partition]
+IntPartNLexi.IntPartNLexi_intpartnlexi__canonical__choice_SubChoice [definition, in Combi.Combi.partition]
+IntPartNLexi.IntPartNLexi_intpartnlexi__canonical__choice_Choice [definition, in Combi.Combi.partition]
+IntPartNLexi.IntPartNLexi_intpartnlexi__canonical__eqtype_SubEquality [definition, in Combi.Combi.partition]
+IntPartNLexi.IntPartNLexi_intpartnlexi__canonical__eqtype_Equality [definition, in Combi.Combi.partition]
+IntPartNLexi.IntPartNLexi_intpartnlexi__canonical__eqtype_SubType [definition, in Combi.Combi.partition]
+IntPartNLexi.IntPartNLexi.d [variable, in Combi.Combi.partition]
+'PLexi [notation, in Combi.Combi.partition]
+IntPartNLexi.leEintpartnlexi [lemma, in Combi.Combi.partition]
+IntPartNLexi.ltEintpartnlexi [lemma, in Combi.Combi.partition]
+IntPartNLexi.Order_Total__to__Order_DistrLattice_isTotal [definition, in Combi.Combi.partition]
+IntPartNLexi.Order_Total__to__Order_Lattice_isDistributive [definition, in Combi.Combi.partition]
+IntPartNLexi.Order_Total__to__Order_POrder_isJoinSemilattice [definition, in Combi.Combi.partition]
+IntPartNLexi.Order_Total__to__Order_POrder_isMeetSemilattice [definition, in Combi.Combi.partition]
+IntPartNLexi.Order_Total__to__Order_Preorder_isDuallyPOrder [definition, in Combi.Combi.partition]
+IntPartNLexi.Order_Total__to__Order_isDuallyPreorder [definition, in Combi.Combi.partition]
+IntPartNLexi.ordtype_isInhabitedType__to__ordtype_isInhabited [definition, in Combi.Combi.partition]
+IntPartNLexi.rowpartn_top [lemma, in Combi.Combi.partition]
+IntPartNLexi.topEintpartnlexi [lemma, in Combi.Combi.partition]
+intpartnP [lemma, in Combi.Combi.partition]
+intpartnsk_nb [definition, in Combi.Combi.partition]
+intpartns_nb [definition, in Combi.Combi.partition]
+intpartn_of_mon [definition, in Combi.MPoly.homogsym]
+intpartn_cons [lemma, in Combi.Combi.partition]
+intpartn_nb [definition, in Combi.Combi.partition]
+intpartn_nth0 [lemma, in Combi.Combi.partition]
+intpartn_count_leq2E [lemma, in Combi.Combi.partition]
+intpartn_leq [lemma, in Combi.Combi.partition]
+intpartn_leq_head [lemma, in Combi.Combi.partition]
+intpartn_sorted [lemma, in Combi.Combi.partition]
+IntPartN.la [variable, in Combi.Combi.skewpart]
+IntPartN.m [variable, in Combi.Combi.skewpart]
+IntPartN.nbox [variable, in Combi.Combi.skewpart]
+IntPartN.val_id [variable, in Combi.Combi.skewpart]
+'Pr [notation, in Combi.Combi.skewpart]
+intpartn0 [lemma, in Combi.Combi.partition]
+intpartn1 [lemma, in Combi.Combi.partition]
+intpartn2 [lemma, in Combi.Combi.partition]
+intpartn3 [lemma, in Combi.Combi.partition]
+intpartP [lemma, in Combi.Combi.partition]
+intpart_of_monP [lemma, in Combi.MPoly.homogsym]
+intpart_of_mon [definition, in Combi.MPoly.homogsym]
+intpart_rem_corner_ind [lemma, in Combi.Combi.partition]
+intpart_of_intpartn [definition, in Combi.Combi.partition]
+intpart_sumn_take_inj [lemma, in Combi.Combi.partition]
+intpart_eqP [lemma, in Combi.Combi.partition]
+intpart_sorted [lemma, in Combi.Combi.partition]
+invar [projection, in Combi.Basic.congr]
+InvarContHom [section, in Combi.Basic.congr]
+InvarContHom.Alph [variable, in Combi.Basic.congr]
+InvarContHom.Hcongr [variable, in Combi.Basic.congr]
+InvarContHom.Hhom [variable, in Combi.Basic.congr]
+InvarContHom.rule [variable, in Combi.Basic.congr]
+InvarContHom.szinvar [variable, in Combi.Basic.congr]
+InvarContMultHom [section, in Combi.Basic.congr]
+InvarContMultHom.Alph [variable, in Combi.Basic.congr]
+InvarContMultHom.Hcongr [variable, in Combi.Basic.congr]
+InvarContMultHom.Hmulthom [variable, in Combi.Basic.congr]
+InvarContMultHom.Hsym [variable, in Combi.Basic.congr]
+InvarContMultHom.rule [variable, in Combi.Basic.congr]
+invariant_context [record, in Combi.Basic.congr]
+invar_rewrite_path [lemma, in Combi.Basic.congr]
+invar_step [lemma, in Combi.Basic.congr]
+invar_undupE [lemma, in Combi.Basic.congr]
+invbump [definition, in Combi.LRrule.Schensted]
+invbumped [definition, in Combi.LRrule.Schensted]
+invbumprow [definition, in Combi.LRrule.Schensted]
+invbumprowK [lemma, in Combi.LRrule.Schensted]
+invbump_dom [lemma, in Combi.LRrule.Schensted]
+invbump_geq_head [lemma, in Combi.LRrule.Schensted]
+invcont_size [definition, in Combi.Basic.congr]
+invcont_perm [definition, in Combi.Basic.congr]
+invcont_congr [definition, in Combi.Basic.congr]
+invins [definition, in Combi.LRrule.Schensted]
+invinstabnrow [definition, in Combi.LRrule.Schensted]
+invinstabnrowK [lemma, in Combi.LRrule.Schensted]
+invseq [definition, in Combi.Combi.std]
+InvSeq [section, in Combi.Combi.std]
+invseqE [lemma, in Combi.Combi.std]
+invseqK [lemma, in Combi.LRrule.stdplact]
+invseqRSE [lemma, in Combi.LRrule.stdplact]
+invseqRSPQE [lemma, in Combi.LRrule.stdplact]
+invseq_invstd [lemma, in Combi.Combi.std]
+invseq_nthE [lemma, in Combi.Combi.std]
+invseq_is_std [lemma, in Combi.Combi.std]
+invseq_sym [lemma, in Combi.Combi.std]
+invset [definition, in Combi.SymGroup.presentSn]
+InvSet [section, in Combi.SymGroup.presentSn]
+invsetK [lemma, in Combi.SymGroup.presentSn]
+invsetP [lemma, in Combi.SymGroup.presentSn]
+invset_eltrR [lemma, in Combi.SymGroup.presentSn]
+invset_eltrL [lemma, in Combi.SymGroup.presentSn]
+invset_inj [lemma, in Combi.SymGroup.presentSn]
+invset_maxpermMl [lemma, in Combi.SymGroup.presentSn]
+invset_maxpermMr [lemma, in Combi.SymGroup.presentSn]
+invset_maxperm [lemma, in Combi.SymGroup.presentSn]
+invset_permV [lemma, in Combi.SymGroup.presentSn]
+invset_Delta [lemma, in Combi.SymGroup.presentSn]
+InvSet.n [variable, in Combi.SymGroup.presentSn]
+invstd [definition, in Combi.Combi.std]
+invstdK [lemma, in Combi.Combi.std]
+invstdRSE [lemma, in Combi.LRrule.stdplact]
+invstd_inj [lemma, in Combi.Combi.std]
+invstd_is_std [lemma, in Combi.Combi.std]
+invstd_cat_in_shsh [lemma, in Combi.LRrule.shuffle]
+invstd_catleq [lemma, in Combi.LRrule.shuffle]
+invstd_catgtn [lemma, in Combi.LRrule.shuffle]
+inv_weight_pos [lemma, in ALEA.Qmeasure]
+in_seq_sum [lemma, in ALEA.Qmeasure]
+in_std_ltn_size [lemma, in Combi.Combi.std]
+in_homsym_comp_symbe [lemma, in Combi.MPoly.homogsym]
+in_homsymE [lemma, in Combi.MPoly.homogsym]
+in_homsym_is_linear [lemma, in Combi.MPoly.homogsym]
+in_homsym [definition, in Combi.MPoly.homogsym]
+in_conj_part [lemma, in Combi.Combi.partition]
+in_conj_part_impl [lemma, in Combi.Combi.partition]
+in_part_is_part [lemma, in Combi.Combi.partition]
+in_part_le [lemma, in Combi.Combi.partition]
+in_part_non0 [lemma, in Combi.Combi.partition]
+in_shape_size [lemma, in Combi.Combi.partition]
+in_skew_nil [lemma, in Combi.Combi.partition]
+in_shape_nil [lemma, in Combi.Combi.partition]
+in_skew_in [lemma, in Combi.Combi.partition]
+in_skew_out [lemma, in Combi.Combi.partition]
+in_skewE [lemma, in Combi.Combi.partition]
+in_skew [definition, in Combi.Combi.partition]
+in_shape [definition, in Combi.Combi.partition]
+in_vect_n_k [lemma, in Combi.Combi.vectNK]
+in_hook_boxesP [lemma, in Combi.HookFormula.hook]
+in_hook_shape [lemma, in Combi.HookFormula.hook]
+in_hook [definition, in Combi.HookFormula.hook]
+in_porbit_setP [lemma, in Combi.SymGroup.cycles]
+in_psupport [lemma, in Combi.SymGroup.cycles]
+in_shape_tab [lemma, in Combi.Combi.tableau]
+in_shape_tab_size [lemma, in Combi.Combi.tableau]
+in_maxL [lemma, in Combi.Basic.ordtype]
+Iord [definition, in ALEA.Ccpo]
+Iord_app [lemma, in ALEA.Ccpo]
+iotagtnk [lemma, in Combi.LRrule.Greene]
+iota_geq [lemma, in Combi.SSRcomplements.tools]
+iota_ltn [lemma, in Combi.SSRcomplements.tools]
+iota_hookE [lemma, in Combi.HookFormula.hook]
+iota_cut_i [lemma, in Combi.SymGroup.presentSn]
+irev_w [lemma, in Combi.LRrule.Greene_inv]
+irrSG [definition, in Combi.SymGroup.Frobenius_char]
+irrSGP [lemma, in Combi.SymGroup.Frobenius_char]
+irrSG_char_int [lemma, in Combi.SymGroup.Frobenius_char]
+irrSG_irr [lemma, in Combi.SymGroup.Frobenius_char]
+irrSG_orthonormal [lemma, in Combi.SymGroup.Frobenius_char]
+irr_S2 [lemma, in Combi.SymGroup.reprSn]
+isantisymP [lemma, in Combi.MPoly.antisym]
+isantisym_alt [lemma, in Combi.MPoly.antisym]
+isantisym_mlead_rho [lemma, in Combi.MPoly.antisym]
+isantisym_mlead_iota [lemma, in Combi.MPoly.antisym]
+isantisym_msupp_uniq [lemma, in Combi.MPoly.antisym]
+isantisym_eltrP [lemma, in Combi.MPoly.antisym]
+isantisym_msupp [lemma, in Combi.MPoly.antisym]
+isantisym_tpermP [lemma, in Combi.MPoly.antisym]
+isglb [definition, in ALEA.Ccpo]
+isglb_decr_lift [lemma, in ALEA.Ccpo]
+isglb_decr_ext [lemma, in ALEA.Ccpo]
+isglb_eq_compat_right [lemma, in ALEA.Ccpo]
+isglb_eq_compat_left [lemma, in ALEA.Ccpo]
+isglb_eq_compat [lemma, in ALEA.Ccpo]
+isglb_le [lemma, in ALEA.Ccpo]
+ishift [definition, in ALEA.Ccpo]
+ishift_continuous [instance, in ALEA.Ccpo]
+ishift_le_compat [lemma, in ALEA.Ccpo]
+ishift_simpl [lemma, in ALEA.Ccpo]
+ishift_mon [instance, in ALEA.Ccpo]
+ishomogsym1 [definition, in Combi.MPoly.homogsym]
+isInhabited [abbreviation, in Combi.Basic.ordtype]
+isInhabited [module, in Combi.Basic.ordtype]
+isInhabitedType [abbreviation, in Combi.Basic.ordtype]
+isInhabitedType [module, in Combi.Basic.ordtype]
+isInhabitedType.axioms [abbreviation, in Combi.Basic.ordtype]
+isInhabitedType.axioms_ [record, in Combi.Basic.ordtype]
+isInhabitedType.Build [abbreviation, in Combi.Basic.ordtype]
+isInhabitedType.Exports [module, in Combi.Basic.ordtype]
+isInhabitedType.isInhabitedType.isInhabitedType [section, in Combi.Basic.ordtype]
+isInhabitedType.isInhabitedType.T [variable, in Combi.Basic.ordtype]
+isInhabitedType.phant_axioms [definition, in Combi.Basic.ordtype]
+isInhabitedType.phant_Build [definition, in Combi.Basic.ordtype]
+isInhabitedType.x [projection, in Combi.Basic.ordtype]
+isInhabited.axioms [abbreviation, in Combi.Basic.ordtype]
+isInhabited.axioms_ [record, in Combi.Basic.ordtype]
+isInhabited.Build [abbreviation, in Combi.Basic.ordtype]
+isInhabited.Exports [module, in Combi.Basic.ordtype]
+isInhabited.identity_builder [definition, in Combi.Basic.ordtype]
+isInhabited.inh_ex [projection, in Combi.Basic.ordtype]
+isInhabited.isInhabited.isInhabited [section, in Combi.Basic.ordtype]
+isInhabited.isInhabited.T [variable, in Combi.Basic.ordtype]
+isInhabited.phant_axioms [definition, in Combi.Basic.ordtype]
+isInhabited.phant_Build [definition, in Combi.Basic.ordtype]
+IsInvset [constructor, in Combi.SymGroup.presentSn]
+islub [record, in ALEA.Ccpo]
+islub_lub [lemma, in ALEA.Ccpo]
+islub_mlub [lemma, in ALEA.Ccpo]
+islub_fun_intro [lemma, in ALEA.Ccpo]
+islub_unique [lemma, in ALEA.Ccpo]
+islub_unique_eq [lemma, in ALEA.Ccpo]
+islub_decr [lemma, in ALEA.Ccpo]
+islub_exch [lemma, in ALEA.Ccpo]
+islub_incr_lift [lemma, in ALEA.Ccpo]
+islub_incr_ext [lemma, in ALEA.Ccpo]
+islub_eq_compat_right [lemma, in ALEA.Ccpo]
+islub_eq_compat_left [lemma, in ALEA.Ccpo]
+islub_eq_compat [lemma, in ALEA.Ccpo]
+islub_le [projection, in ALEA.Ccpo]
+IsoBottom [abbreviation, in Combi.Combi.composition]
+IsoBottom [module, in Combi.Combi.composition]
+IsoBottom.axioms [abbreviation, in Combi.Combi.composition]
+IsoBottom.axioms_ [record, in Combi.Combi.composition]
+IsoBottom.Build [abbreviation, in Combi.Combi.composition]
+IsoBottom.disp' [projection, in Combi.Combi.composition]
+IsoBottom.Exports [module, in Combi.Combi.composition]
+IsoBottom.f [projection, in Combi.Combi.composition]
+IsoBottom.f_mono [projection, in Combi.Combi.composition]
+IsoBottom.f_can [projection, in Combi.Combi.composition]
+IsoBottom.f' [projection, in Combi.Combi.composition]
+IsoBottom.f'_can [projection, in Combi.Combi.composition]
+IsoBottom.IsoBottom_T__canonical__Order_POrder [definition, in Combi.Combi.composition]
+IsoBottom.IsoBottom_T__canonical__Order_Preorder [definition, in Combi.Combi.composition]
+IsoBottom.IsoBottom_T__canonical__choice_Choice [definition, in Combi.Combi.composition]
+IsoBottom.IsoBottom_T__canonical__eqtype_Equality [definition, in Combi.Combi.composition]
+IsoBottom.IsoBottom.disp [variable, in Combi.Combi.composition]
+IsoBottom.IsoBottom.IsoBottom [section, in Combi.Combi.composition]
+IsoBottom.IsoBottom.local_mixin_Order_Preorder_isDuallyPOrder [variable, in Combi.Combi.composition]
+IsoBottom.IsoBottom.local_mixin_Order_isDuallyPreorder [variable, in Combi.Combi.composition]
+IsoBottom.IsoBottom.local_mixin_eqtype_hasDecEq [variable, in Combi.Combi.composition]
+IsoBottom.IsoBottom.local_mixin_choice_hasChoice [variable, in Combi.Combi.composition]
+IsoBottom.IsoBottom.T [variable, in Combi.Combi.composition]
+IsoBottom.phant_axioms [definition, in Combi.Combi.composition]
+IsoBottom.phant_Build [definition, in Combi.Combi.composition]
+IsoBottom.T' [projection, in Combi.Combi.composition]
+isom_tinj [lemma, in Combi.SymGroup.towerSn]
+IsoTop [abbreviation, in Combi.Combi.composition]
+IsoTop [module, in Combi.Combi.composition]
+IsoTop.axioms [abbreviation, in Combi.Combi.composition]
+IsoTop.axioms_ [record, in Combi.Combi.composition]
+IsoTop.Build [abbreviation, in Combi.Combi.composition]
+IsoTop.disp' [projection, in Combi.Combi.composition]
+IsoTop.Exports [module, in Combi.Combi.composition]
+IsoTop.f [projection, in Combi.Combi.composition]
+IsoTop.f_mono [projection, in Combi.Combi.composition]
+IsoTop.f_can [projection, in Combi.Combi.composition]
+IsoTop.f' [projection, in Combi.Combi.composition]
+IsoTop.f'_can [projection, in Combi.Combi.composition]
+IsoTop.IsoTop_T__canonical__Order_POrder [definition, in Combi.Combi.composition]
+IsoTop.IsoTop_T__canonical__Order_Preorder [definition, in Combi.Combi.composition]
+IsoTop.IsoTop_T__canonical__choice_Choice [definition, in Combi.Combi.composition]
+IsoTop.IsoTop_T__canonical__eqtype_Equality [definition, in Combi.Combi.composition]
+IsoTop.IsoTop.disp [variable, in Combi.Combi.composition]
+IsoTop.IsoTop.IsoTop [section, in Combi.Combi.composition]
+IsoTop.IsoTop.local_mixin_Order_Preorder_isDuallyPOrder [variable, in Combi.Combi.composition]
+IsoTop.IsoTop.local_mixin_Order_isDuallyPreorder [variable, in Combi.Combi.composition]
+IsoTop.IsoTop.local_mixin_eqtype_hasDecEq [variable, in Combi.Combi.composition]
+IsoTop.IsoTop.local_mixin_choice_hasChoice [variable, in Combi.Combi.composition]
+IsoTop.IsoTop.T [variable, in Combi.Combi.composition]
+IsoTop.phant_axioms [definition, in Combi.Combi.composition]
+IsoTop.phant_Build [definition, in Combi.Combi.composition]
+IsoTop.T' [projection, in Combi.Combi.composition]
+isperm_of_porbit [lemma, in Combi.SymGroup.cycletype]
+issym_eltrP [lemma, in Combi.MPoly.antisym]
+issym_tpermP [lemma, in Combi.MPoly.antisym]
+is_std_of_n [definition, in Combi.Combi.std]
+is_std_wordpermP [lemma, in Combi.Combi.std]
+is_stdP [lemma, in Combi.Combi.std]
+is_std [definition, in Combi.Combi.std]
+is_homsym_submod_closed [lemma, in Combi.MPoly.homogsym]
+is_homsym [abbreviation, in Combi.MPoly.homogsym]
+is_homsym [definition, in Combi.MPoly.homogsym]
+is_part_decr_nth_part [lemma, in Combi.Combi.partition]
+is_part_of_nsk [definition, in Combi.Combi.partition]
+is_part_of_ns [definition, in Combi.Combi.partition]
+is_part_of_n [definition, in Combi.Combi.partition]
+is_add_corner_conj_part [lemma, in Combi.Combi.partition]
+is_part_conj [lemma, in Combi.Combi.partition]
+is_part_incr_first_n [lemma, in Combi.Combi.partition]
+is_part_nseq1 [lemma, in Combi.Combi.partition]
+is_part_decr_nth [lemma, in Combi.Combi.partition]
+is_rem_cornerP [lemma, in Combi.Combi.partition]
+is_part_incr_nth [lemma, in Combi.Combi.partition]
+is_part_incr_nth_size [lemma, in Combi.Combi.partition]
+is_add_corner [definition, in Combi.Combi.partition]
+is_rem_corner [definition, in Combi.Combi.partition]
+is_part_rem_trail0 [lemma, in Combi.Combi.partition]
+is_part_catr [lemma, in Combi.Combi.partition]
+is_part_catl [lemma, in Combi.Combi.partition]
+is_part_rconsK [lemma, in Combi.Combi.partition]
+is_part_subseq [lemma, in Combi.Combi.partition]
+is_part_behead [lemma, in Combi.Combi.partition]
+is_part_consK [lemma, in Combi.Combi.partition]
+is_part_sortedE [lemma, in Combi.Combi.partition]
+is_part_ijP [lemma, in Combi.Combi.partition]
+is_partP [lemma, in Combi.Combi.partition]
+is_part [definition, in Combi.Combi.partition]
+is_Tamari [definition, in Combi.Combi.bintree]
+is_col_dual [lemma, in Combi.LRrule.Greene_inv]
+is_row_dual [lemma, in Combi.LRrule.Greene_inv]
+is_dominant_nth_partm [lemma, in Combi.MPoly.antisym]
+is_dominant_partm [lemma, in Combi.MPoly.antisym]
+is_stdtab_of_n_LRtriple [lemma, in Combi.LRrule.shuffle]
+is_tableau_std [lemma, in Combi.Combi.skewtab]
+is_tableau_reshape_std [lemma, in Combi.Combi.skewtab]
+is_skew_tableau_reshape_std [lemma, in Combi.Combi.skewtab]
+is_skew_tableau_skew_reshape_pad0 [lemma, in Combi.Combi.skewtab]
+is_skew_tableau_filter_le [lemma, in Combi.Combi.skewtab]
+is_skew_tableau_filter_le_tmp [lemma, in Combi.Combi.skewtab]
+is_skew_tableau_pad0 [lemma, in Combi.Combi.skewtab]
+is_skew_tableau0 [lemma, in Combi.Combi.skewtab]
+is_skew_tableauP [lemma, in Combi.Combi.skewtab]
+is_skew_tableau [definition, in Combi.Combi.skewtab]
+is_part_skew_yam [lemma, in Combi.Combi.skewtab]
+is_skew_yamE [lemma, in Combi.Combi.skewtab]
+is_skew_yam [definition, in Combi.Combi.skewtab]
+is_stdtab_RStabmap2 [lemma, in Combi.LRrule.Schensted]
+is_RStabpair [definition, in Combi.LRrule.Schensted]
+is_tableau_instabnrowinv1 [lemma, in Combi.LRrule.Schensted]
+is_RSpair [definition, in Combi.LRrule.Schensted]
+is_yam_RSmap2 [lemma, in Combi.LRrule.Schensted]
+is_tableau_RSmap1 [lemma, in Combi.LRrule.Schensted]
+is_rem_corner_instabnrow [lemma, in Combi.LRrule.Schensted]
+is_row_invins [lemma, in Combi.LRrule.Schensted]
+is_tableau_RS [lemma, in Combi.LRrule.Schensted]
+is_tableau_instab [lemma, in Combi.LRrule.Schensted]
+is_row_Sch [lemma, in Combi.LRrule.Schensted]
+is_row_ins [lemma, in Combi.LRrule.Schensted]
+is_trace_corner_nil [lemma, in Combi.HookFormula.hook]
+is_trace_in_shape [lemma, in Combi.HookFormula.hook]
+is_trace_in_in_shape [lemma, in Combi.HookFormula.hook]
+is_trace_lastl [lemma, in Combi.HookFormula.hook]
+is_trace_lastr [lemma, in Combi.HookFormula.hook]
+is_trace_tlr [lemma, in Combi.HookFormula.hook]
+is_trace_tll [lemma, in Combi.HookFormula.hook]
+is_trace [definition, in Combi.HookFormula.hook]
+is_dyckword [projection, in Combi.Combi.Dyckword]
+is_yam_plactic [lemma, in Combi.LRrule.Yam_plact]
+is_part_incr_nth1E [lemma, in Combi.LRrule.Yam_plact]
+is_part_incr_nthE [lemma, in Combi.LRrule.Yam_plact]
+is_stdtab_conj [lemma, in Combi.Combi.stdtab]
+is_part_shape_deg [lemma, in Combi.Combi.stdtab]
+is_stdtab_of_n [definition, in Combi.Combi.stdtab]
+is_stdtab_of_shape [definition, in Combi.Combi.stdtab]
+is_row_stdE [lemma, in Combi.Combi.stdtab]
+is_stdtab_remn [lemma, in Combi.Combi.stdtab]
+is_tab_append_nth_size [lemma, in Combi.Combi.stdtab]
+is_tab_append_nth_size_alternative_proof [lemma, in Combi.Combi.stdtab]
+is_stdtab [definition, in Combi.Combi.stdtab]
+is_tab_of_shape [definition, in Combi.Combi.tableau]
+is_tableau_filter_gt [lemma, in Combi.Combi.tableau]
+is_tableau_getP [lemma, in Combi.Combi.tableau]
+is_tableau_sorted_dominate [lemma, in Combi.Combi.tableau]
+is_part_sht [lemma, in Combi.Combi.tableau]
+is_tableau_catr [lemma, in Combi.Combi.tableau]
+is_tableau_catl [lemma, in Combi.Combi.tableau]
+is_tableau_rconsK [lemma, in Combi.Combi.tableau]
+is_tableauP [lemma, in Combi.Combi.tableau]
+is_tableau [definition, in Combi.Combi.tableau]
+is_row_set_nth [lemma, in Combi.Combi.tableau]
+is_row [abbreviation, in Combi.Combi.tableau]
+is_row_cat2 [definition, in Combi.Combi.tableau]
+is_row_drop [definition, in Combi.Combi.tableau]
+is_row_take [definition, in Combi.Combi.tableau]
+is_row_last [definition, in Combi.Combi.tableau]
+is_row_rconsK [definition, in Combi.Combi.tableau]
+is_row_rcons [definition, in Combi.Combi.tableau]
+is_row_consK [definition, in Combi.Combi.tableau]
+is_row_cons [definition, in Combi.Combi.tableau]
+is_rowP [definition, in Combi.Combi.tableau]
+is_row1P [definition, in Combi.Combi.tableau]
+is_row [abbreviation, in Combi.Combi.tableau]
+is_row_yamrow [lemma, in Combi.LRrule.therule]
+is_skew_reshape_tableauP [lemma, in Combi.LRrule.therule]
+is_skew_reshape_tableau [definition, in Combi.LRrule.therule]
+is_skew_tableau_map_shiftn [lemma, in Combi.LRrule.therule]
+is_yam_of_size [definition, in Combi.Combi.Yamanouchi]
+is_yam_cat_any [lemma, in Combi.Combi.Yamanouchi]
+is_add_corner_yam [lemma, in Combi.Combi.Yamanouchi]
+is_rem_corner_yam [lemma, in Combi.Combi.Yamanouchi]
+is_yam_decr [lemma, in Combi.Combi.Yamanouchi]
+is_yam_catr [lemma, in Combi.Combi.Yamanouchi]
+is_yam_tl [lemma, in Combi.Combi.Yamanouchi]
+is_part_eval_yam [lemma, in Combi.Combi.Yamanouchi]
+is_yam_ijP [lemma, in Combi.Combi.Yamanouchi]
+is_yamP [lemma, in Combi.Combi.Yamanouchi]
+is_yam_of_eval [definition, in Combi.Combi.Yamanouchi]
+is_yam [definition, in Combi.Combi.Yamanouchi]
+is_finer_card [lemma, in Combi.Combi.setpartition]
+is_invset_tclosureU [lemma, in Combi.SymGroup.weak_order]
+is_part_of_add_ribbon [lemma, in Combi.Combi.skewpart]
+is_part_add_ribbon [lemma, in Combi.Combi.skewpart]
+is_part_add_ribbon_on [lemma, in Combi.Combi.skewpart]
+is_code_straighten [lemma, in Combi.SymGroup.presentSn]
+is_invset_Delta [lemma, in Combi.SymGroup.presentSn]
+is_invset [inductive, in Combi.SymGroup.presentSn]
+is_code_of_size [definition, in Combi.SymGroup.presentSn]
+is_code_rconsK [lemma, in Combi.SymGroup.presentSn]
+is_code_rcons [lemma, in Combi.SymGroup.presentSn]
+is_codeP [lemma, in Combi.SymGroup.presentSn]
+is_part_pad0 [lemma, in Combi.LRrule.implem]
+is_comp_of_n [definition, in Combi.Combi.composition]
+is_comp_cat [lemma, in Combi.Combi.composition]
+is_comp_rcons [lemma, in Combi.Combi.composition]
+is_comp_cons [lemma, in Combi.Combi.composition]
+is_comp1 [lemma, in Combi.Combi.composition]
+is_compP [lemma, in Combi.Combi.composition]
+is_comp [definition, in Combi.Combi.composition]
+Iter [definition, in ALEA.Ccpo]
+iter [definition, in ALEA.Ccpo]
+iterO_simpl [lemma, in ALEA.Ccpo]
+iterS_simpl [lemma, in ALEA.Ccpo]
+IterS_simpl [lemma, in ALEA.Ccpo]
+iter_continuous_eq [lemma, in ALEA.Ccpo]
+iter_continuous [lemma, in ALEA.Ccpo]
+iter_monotonic [instance, in ALEA.Ccpo]
+iter_mon [instance, in ALEA.Ccpo]
+iter_incr [lemma, in ALEA.Ccpo]
+iter_ [definition, in ALEA.Ccpo]
+i1eqiF [lemma, in Combi.SymGroup.presentSn]
+i2eqiF [lemma, in Combi.SymGroup.presentSn]
+

J

+joingU1 [lemma, in Combi.SymGroup.presentSn]
+join_tab_skew [lemma, in Combi.Combi.skewtab]
+join_tab_filter [lemma, in Combi.Combi.skewtab]
+join_tab [definition, in Combi.Combi.skewtab]
+join_Dyck_inj [lemma, in Combi.Combi.Dyckword]
+join_Dyck [definition, in Combi.Combi.Dyckword]
+join_stdtab_in_shuffle [lemma, in Combi.LRrule.therule]
+join_stdtab [lemma, in Combi.LRrule.therule]
+

K

+Kostka [definition, in Combi.MPoly.Schur_altdef]
+Kostka [section, in Combi.MPoly.Schur_altdef]
+KostkaEq [section, in Combi.MPoly.Schur_altdef]
+KostkaEq.d [variable, in Combi.MPoly.Schur_altdef]
+KostkaEq.la [variable, in Combi.MPoly.Schur_altdef]
+KostkaInv [definition, in Combi.MPoly.Schur_altdef]
+KostkaInv_unitrig [lemma, in Combi.MPoly.Schur_altdef]
+KostkaMon [definition, in Combi.MPoly.Schur_altdef]
+KostkaMon_partdom [lemma, in Combi.MPoly.Schur_altdef]
+KostkaMon_sumeval [lemma, in Combi.MPoly.Schur_altdef]
+KostkaRec [section, in Combi.MPoly.Schur_altdef]
+KostkaStd [lemma, in Combi.MPoly.Schur_altdef]
+KostkaTab [definition, in Combi.MPoly.Schur_altdef]
+Kostka_unitrig [lemma, in Combi.MPoly.Schur_altdef]
+Kostka_recE [lemma, in Combi.MPoly.Schur_altdef]
+Kostka_rec_size0 [lemma, in Combi.MPoly.Schur_altdef]
+Kostka_expl3 [definition, in Combi.MPoly.Schur_altdef]
+Kostka_expl2 [definition, in Combi.MPoly.Schur_altdef]
+Kostka_expl1 [definition, in Combi.MPoly.Schur_altdef]
+Kostka_rec [definition, in Combi.MPoly.Schur_altdef]
+Kostka_ind [lemma, in Combi.MPoly.Schur_altdef]
+Kostka_diag [lemma, in Combi.MPoly.Schur_altdef]
+Kostka_partdom [lemma, in Combi.MPoly.Schur_altdef]
+Kostka_size0 [lemma, in Combi.MPoly.Schur_altdef]
+Kostka_sumnE [lemma, in Combi.MPoly.Schur_altdef]
+Kostka_any [lemma, in Combi.MPoly.Schur_altdef]
+Kostka_mnmwiden [lemma, in Combi.MPoly.Schur_altdef]
+Kostka_Coeff [lemma, in Combi.MPoly.Schur_altdef]
+Kostka.d [variable, in Combi.MPoly.Schur_altdef]
+'K ( _ , _ ) (nat_scope) [notation, in Combi.MPoly.Schur_altdef]
+'K ( _ , _ ) (ring_scope) [notation, in Combi.MPoly.Schur_altdef]
+Kostka0 [lemma, in Combi.MPoly.Schur_altdef]
+ksupp [definition, in Combi.LRrule.Greene]
+ksuppCol_inj_plact2i [lemma, in Combi.LRrule.Greene_inv]
+ksuppCol_inj_plact1 [lemma, in Combi.LRrule.Greene_inv]
+KsuppInj [section, in Combi.LRrule.stdplact]
+KsuppInj.Hinv [variable, in Combi.LRrule.stdplact]
+KsuppInj.s [variable, in Combi.LRrule.stdplact]
+KsuppInj.t [variable, in Combi.LRrule.stdplact]
+ksuppRow_inj_plact2 [lemma, in Combi.LRrule.Greene_inv]
+ksuppRow_inj_plact1i [lemma, in Combi.LRrule.Greene_inv]
+ksupp_inj_invseq [lemma, in Combi.LRrule.stdplact]
+ksupp_inj_stdI [lemma, in Combi.LRrule.stdplact]
+ksupp_inj_std [lemma, in Combi.LRrule.stdplact]
+ksupp_gt_tabcolsk [lemma, in Combi.LRrule.Greene]
+ksupp_leqX_tabrowsk [lemma, in Combi.LRrule.Greene]
+ksupp_inj_rev [lemma, in Combi.LRrule.Greene]
+ksupp_inj [definition, in Combi.LRrule.Greene]
+ksupp_cast [lemma, in Combi.LRrule.Greene]
+ksupp0 [lemma, in Combi.LRrule.Greene]
+

L

+langQ [definition, in Combi.LRrule.shuffle]
+langQE [lemma, in Combi.LRrule.shuffle]
+last_behead_rcons [lemma, in Combi.SSRcomplements.tools]
+last_incr_nth_non0 [lemma, in Combi.Combi.partition]
+last_rot_pfminh [lemma, in Combi.Combi.Dyckword]
+last_big_append_nth [lemma, in Combi.Combi.stdtab]
+last_bigP [lemma, in Combi.Combi.stdtab]
+last_big [definition, in Combi.Combi.stdtab]
+last_ins_lt [lemma, in Combi.LRrule.plactic]
+last_yam [lemma, in Combi.Combi.Yamanouchi]
+law1 [lemma, in ALEA.Qmeasure]
+law2 [lemma, in ALEA.Qmeasure]
+law3 [lemma, in ALEA.Qmeasure]
+lcast_com [lemma, in Combi.LRrule.Greene]
+LeafP [lemma, in Combi.Combi.bintree]
+leftcomb [definition, in Combi.Combi.bintree]
+leftcombsz [definition, in Combi.Combi.bintree]
+leftcomb_rotations [lemma, in Combi.Combi.bintree]
+left_branchK [lemma, in Combi.Combi.bintree]
+left_branch [definition, in Combi.Combi.bintree]
+leg_length_corner_box [lemma, in Combi.HookFormula.hook]
+leg_length_lel [lemma, in Combi.HookFormula.hook]
+leg_length_ltr [lemma, in Combi.HookFormula.hook]
+leg_length [definition, in Combi.HookFormula.hook]
+leL [abbreviation, in Combi.LRrule.plactic]
+leL_geLdualE [lemma, in Combi.LRrule.plactic]
+Lemma3 [lemma, in Combi.HookFormula.hook]
+Length [section, in Combi.SymGroup.presentSn]
+length [definition, in Combi.SymGroup.presentSn]
+lengthKL [lemma, in Combi.SymGroup.presentSn]
+lengthKR [lemma, in Combi.SymGroup.presentSn]
+lengthM [lemma, in Combi.SymGroup.presentSn]
+lengthME [lemma, in Combi.SymGroup.presentSn]
+lengthV [lemma, in Combi.SymGroup.presentSn]
+length_eq1 [lemma, in Combi.SymGroup.presentSn]
+length_eq0 [lemma, in Combi.SymGroup.presentSn]
+length_permcd [lemma, in Combi.SymGroup.presentSn]
+length_prods [lemma, in Combi.SymGroup.presentSn]
+length_eltr [lemma, in Combi.SymGroup.presentSn]
+length_descR [lemma, in Combi.SymGroup.presentSn]
+length_sub1R [lemma, in Combi.SymGroup.presentSn]
+length_add1R [lemma, in Combi.SymGroup.presentSn]
+length_descL [lemma, in Combi.SymGroup.presentSn]
+length_sub1L [lemma, in Combi.SymGroup.presentSn]
+length_add1L [lemma, in Combi.SymGroup.presentSn]
+length_maxpermMl [lemma, in Combi.SymGroup.presentSn]
+length_maxpermMr [lemma, in Combi.SymGroup.presentSn]
+length_maxpermE [lemma, in Combi.SymGroup.presentSn]
+length_maxperm [lemma, in Combi.SymGroup.presentSn]
+length_max [lemma, in Combi.SymGroup.presentSn]
+Length.n0 [variable, in Combi.SymGroup.presentSn]
+Length.PartCode [section, in Combi.SymGroup.presentSn]
+Length.PartCode.is_partcode [variable, in Combi.SymGroup.presentSn]
+Length.PartCode.word_of_partcocode [variable, in Combi.SymGroup.presentSn]
+'s_[ _ ] [notation, in Combi.SymGroup.presentSn]
+'s_ _ [notation, in Combi.SymGroup.presentSn]
+length1 [lemma, in Combi.SymGroup.presentSn]
+LEPermTheory [section, in Combi.SymGroup.weak_order]
+LEPermTheory.n0 [variable, in Combi.SymGroup.weak_order]
+leperm_invset [lemma, in Combi.SymGroup.weak_order]
+leperm_succ [lemma, in Combi.SymGroup.weak_order]
+leperm_factorP [lemma, in Combi.SymGroup.weak_order]
+leperm_maxperm [lemma, in Combi.SymGroup.weak_order]
+leperm_maxpermMl [lemma, in Combi.SymGroup.weak_order]
+leperm1p [lemma, in Combi.SymGroup.weak_order]
+LeqGeqOrder [module, in Combi.SSRcomplements.sorted]
+LeqGeqOrder.anti_geq [definition, in Combi.SSRcomplements.sorted]
+LeqGeqOrder.geq_trans [definition, in Combi.SSRcomplements.sorted]
+LeqGeqOrder.geq_total [definition, in Combi.SSRcomplements.sorted]
+LeqGeqOrder.geq_refl [definition, in Combi.SSRcomplements.sorted]
+LeqGeqOrder.gtn_irr [definition, in Combi.SSRcomplements.sorted]
+LeqGeqOrder.gtn_trans [definition, in Combi.SSRcomplements.sorted]
+LeqGeqOrder.ltn_irr [definition, in Combi.SSRcomplements.sorted]
+leq_sumn_in [lemma, in Combi.SSRcomplements.tools]
+leq_addE [lemma, in Combi.SSRcomplements.tools]
+leq_head_sumn [lemma, in Combi.Combi.partition]
+leq_Greene [lemma, in Combi.LRrule.Greene]
+less [lemma, in Combi.Combi.skewpart]
+lessz [lemma, in Combi.Combi.skewpart]
+let_indep_distr [lemma, in ALEA.Qmeasure]
+let_indep [lemma, in ALEA.Qmeasure]
+le_intpartndomlexi [lemma, in Combi.Combi.partition]
+le_mlub [lemma, in ALEA.Ccpo]
+le_lub [projection, in ALEA.Ccpo]
+le_isglb [lemma, in ALEA.Ccpo]
+le_islub [projection, in ALEA.Ccpo]
+le_Ole [lemma, in ALEA.Ccpo]
+LinRepr [section, in Combi.SymGroup.reprSn]
+LinRepr.G [variable, in Combi.SymGroup.reprSn]
+LinRepr.gT [variable, in Combi.SymGroup.reprSn]
+linvseq [definition, in Combi.Combi.std]
+linvseqK [lemma, in Combi.LRrule.stdplact]
+linvseqP [lemma, in Combi.Combi.std]
+linvseq_sizeP [lemma, in Combi.Combi.std]
+linvseq_subset_iota [lemma, in Combi.Combi.std]
+linvseq_ltn_szt [lemma, in Combi.Combi.std]
+lin_char_Sn [lemma, in Combi.SymGroup.reprSn]
+lin_char_reprP [lemma, in Combi.SymGroup.reprSn]
+LR [section, in Combi.LRrule.therule]
+LR [section, in Combi.LRrule.implem]
+LRcoeff [definition, in Combi.LRrule.implem]
+LRcoeffE [lemma, in Combi.LRrule.implem]
+LRcoeffP [lemma, in Combi.LRrule.implem]
+LRcoeff_computeP [lemma, in Combi.LRrule.therule]
+LRrule_langQ_alternate [lemma, in Combi.LRrule.shuffle]
+LRrule_langQ [lemma, in Combi.LRrule.shuffle]
+LRrule_Pieri.R [variable, in Combi.MPoly.sympoly]
+LRrule_Pieri.n0 [variable, in Combi.MPoly.sympoly]
+LRrule_Pieri [section, in Combi.MPoly.sympoly]
+lrshift_recF [lemma, in Combi.LRrule.Greene]
+LRsupport [definition, in Combi.LRrule.freeSchur]
+LRsupport_conj [lemma, in Combi.LRrule.freeSchur]
+LRtab_coeff_conj [lemma, in Combi.LRrule.freeSchur]
+LRtab_coeff_shapeE [lemma, in Combi.LRrule.freeSchur]
+LRtab_coeffP [lemma, in Combi.LRrule.freeSchur]
+LRtab_coeff [definition, in Combi.LRrule.freeSchur]
+LRtab_set [definition, in Combi.LRrule.freeSchur]
+LRtab_set_included [lemma, in Combi.LRrule.therule]
+LRtab_coeffP [lemma, in Combi.LRrule.implem]
+LRTriple [constructor, in Combi.LRrule.shuffle]
+LRtriple [inductive, in Combi.LRrule.shuffle]
+LRTriple [section, in Combi.LRrule.shuffle]
+LRtripleP [lemma, in Combi.LRrule.shuffle]
+LRtriple_conj [lemma, in Combi.LRrule.shuffle]
+LRtriple_cat_equiv [lemma, in Combi.LRrule.shuffle]
+LRtriple_cat_langQ [lemma, in Combi.LRrule.shuffle]
+LRtriple_fastE [lemma, in Combi.LRrule.shuffle]
+LRtriple_sind [definition, in Combi.LRrule.shuffle]
+LRtriple_ind [definition, in Combi.LRrule.shuffle]
+LRTriple.Alph [variable, in Combi.LRrule.shuffle]
+LRTriple.disp [variable, in Combi.LRrule.shuffle]
+LRTriple.word [variable, in Combi.LRrule.shuffle]
+LRyamtabP [lemma, in Combi.LRrule.implem]
+LRyamtab_spec_recip [lemma, in Combi.LRrule.implem]
+LRyamtab_all [lemma, in Combi.LRrule.implem]
+LRyamtab_eval [lemma, in Combi.LRrule.implem]
+LRyamtab_skew_tableau [lemma, in Combi.LRrule.implem]
+LRyamtab_shape [lemma, in Combi.LRrule.implem]
+LRyamtab_included [lemma, in Combi.LRrule.implem]
+LRyamtab_yam [lemma, in Combi.LRrule.implem]
+LRyamtab_list [definition, in Combi.LRrule.implem]
+LRyamtab_list_countE [lemma, in Combi.LRrule.implem]
+LRyamtab_list_skew_tableau0 [lemma, in Combi.LRrule.implem]
+LRyamtab_list_shape0 [lemma, in Combi.LRrule.implem]
+LRyamtab_list_size [lemma, in Combi.LRrule.implem]
+LRyamtab_list_pad0 [lemma, in Combi.LRrule.implem]
+LRyamtab_list_included [lemma, in Combi.LRrule.implem]
+LRyamtab_list_recP [lemma, in Combi.LRrule.implem]
+LRyamtab_count_rec [definition, in Combi.LRrule.implem]
+LRyamtab_list_rec [definition, in Combi.LRrule.implem]
+LRyam_coeff_colpartn [lemma, in Combi.LRrule.therule]
+LRyam_coeff_rowpart [lemma, in Combi.LRrule.therule]
+LRyam_coeffP [lemma, in Combi.LRrule.therule]
+LRyam_compute [definition, in Combi.LRrule.therule]
+LRyam_enum [definition, in Combi.LRrule.therule]
+LRyam_coeffE [lemma, in Combi.LRrule.therule]
+LRyam_coeff [definition, in Combi.LRrule.therule]
+LRyam_set [definition, in Combi.LRrule.therule]
+LRyam_spec_recip [lemma, in Combi.LRrule.implem]
+LRyam_list [definition, in Combi.LRrule.implem]
+LR_rule_irrSG [lemma, in Combi.SymGroup.Frobenius_char]
+LR_rule_tab [lemma, in Combi.LRrule.freeSchur]
+LR.d1 [variable, in Combi.LRrule.therule]
+LR.d1 [variable, in Combi.LRrule.implem]
+LR.d2 [variable, in Combi.LRrule.therule]
+LR.d2 [variable, in Combi.LRrule.implem]
+LR.n0 [variable, in Combi.LRrule.implem]
+LR.Pieri [section, in Combi.LRrule.therule]
+LR.Pieri.n0 [variable, in Combi.LRrule.therule]
+LR.Pieri.R [variable, in Combi.LRrule.therule]
+LR.P1 [variable, in Combi.LRrule.implem]
+LR.P2 [variable, in Combi.LRrule.implem]
+LR.R [variable, in Combi.LRrule.implem]
+LR.TheRule [section, in Combi.LRrule.therule]
+LR.TheRule.n0 [variable, in Combi.LRrule.therule]
+LR.TheRule.OneCoeff [section, in Combi.LRrule.therule]
+LR.TheRule.OneCoeff.Hincl [variable, in Combi.LRrule.therule]
+LR.TheRule.OneCoeff.P [variable, in Combi.LRrule.therule]
+LR.TheRule.P1 [variable, in Combi.LRrule.therule]
+LR.TheRule.P2 [variable, in Combi.LRrule.therule]
+LR.TheRule.R [variable, in Combi.LRrule.therule]
+lsh [abbreviation, in Combi.LRrule.Greene]
+lshift_in_rshift_recF [lemma, in Combi.LRrule.Greene]
+lshift_recP [lemma, in Combi.LRrule.Greene]
+lsh_rec [definition, in Combi.LRrule.Greene]
+lsplit_rec_tab [lemma, in Combi.LRrule.Greene]
+lsplit_rec [definition, in Combi.LRrule.Greene]
+ltcovers [lemma, in Combi.Basic.ordtype]
+ltL [abbreviation, in Combi.LRrule.plactic]
+ltL_gtLdualE [lemma, in Combi.LRrule.plactic]
+ltnPred [lemma, in Combi.HookFormula.hook]
+ltn_braidC [lemma, in Combi.SymGroup.presentSn]
+ltperm_invset [lemma, in Combi.SymGroup.weak_order]
+ltperm_length [lemma, in Combi.SymGroup.weak_order]
+lt_intpartndomlexi [lemma, in Combi.Combi.partition]
+lt_bumped [lemma, in Combi.LRrule.Schensted]
+lt_inspos_nth [lemma, in Combi.LRrule.Schensted]
+Lub [definition, in ALEA.Ccpo]
+lub [projection, in ALEA.Ccpo]
+lub_le_fixp [lemma, in ALEA.Ccpo]
+lub_continuous [instance, in ALEA.Ccpo]
+lub_cont2_app2_eq [lemma, in ALEA.Ccpo]
+lub_app2_eq [lemma, in ALEA.Ccpo]
+lub_comp_eq [lemma, in ALEA.Ccpo]
+lub_app2_le [lemma, in ALEA.Ccpo]
+lub_comp_le [lemma, in ALEA.Ccpo]
+lub_fcpo_mon [lemma, in ALEA.Ccpo]
+lub_mon_fcpo [lemma, in ALEA.Ccpo]
+lub_ishift [lemma, in ALEA.Ccpo]
+lub_shift_mon [instance, in ALEA.Ccpo]
+lub_fun [definition, in ALEA.Ccpo]
+lub_Olt [lemma, in ALEA.Ccpo]
+lub_seq_eq [lemma, in ALEA.Ccpo]
+lub_eq_lift [lemma, in ALEA.Ccpo]
+lub_le_lift [lemma, in ALEA.Ccpo]
+lub_lift_left [lemma, in ALEA.Ccpo]
+lub_lift_right [lemma, in ALEA.Ccpo]
+lub_cte [lemma, in ALEA.Ccpo]
+lub_mon [instance, in ALEA.Ccpo]
+lub_le [projection, in ALEA.Ccpo]
+

M

+m [abbreviation, in Combi.MPoly.Cauchy]
+M [definition, in ALEA.Qmeasure]
+m [abbreviation, in Combi.MPoly.homogsym]
+m [abbreviation, in Combi.MPoly.sympoly]
+map_homsymbs [lemma, in Combi.MPoly.homogsym]
+map_homsymbp [lemma, in Combi.MPoly.homogsym]
+map_homsymbh [lemma, in Combi.MPoly.homogsym]
+map_homsymbe [lemma, in Combi.MPoly.homogsym]
+map_homsymbm [lemma, in Combi.MPoly.homogsym]
+map_homsyms [lemma, in Combi.MPoly.homogsym]
+map_homsymp [lemma, in Combi.MPoly.homogsym]
+map_homsymh [lemma, in Combi.MPoly.homogsym]
+map_homsyme [lemma, in Combi.MPoly.homogsym]
+map_homsymm [lemma, in Combi.MPoly.homogsym]
+map_homsym_is_scalable [lemma, in Combi.MPoly.homogsym]
+map_homsym_is_zmod_morphism [lemma, in Combi.MPoly.homogsym]
+map_homsym [definition, in Combi.MPoly.homogsym]
+map_sympoly_d_homog [lemma, in Combi.MPoly.homogsym]
+map_filter_comp [lemma, in Combi.SSRcomplements.tools]
+map_mpolyX [lemma, in Combi.MPoly.antisym]
+map_finer_pblock [lemma, in Combi.Combi.setpartition]
+map_finer_in [lemma, in Combi.Combi.setpartition]
+map_finer_subset [lemma, in Combi.Combi.setpartition]
+map_finer [definition, in Combi.Combi.setpartition]
+map_syms [lemma, in Combi.MPoly.sympoly]
+map_symp_prod [lemma, in Combi.MPoly.sympoly]
+map_symp [lemma, in Combi.MPoly.sympoly]
+map_symh_prod [lemma, in Combi.MPoly.sympoly]
+map_symh [lemma, in Combi.MPoly.sympoly]
+map_syme_prod [lemma, in Combi.MPoly.sympoly]
+map_syme [lemma, in Combi.MPoly.sympoly]
+map_symm [lemma, in Combi.MPoly.sympoly]
+map_sympoly_is_scalable [lemma, in Combi.MPoly.sympoly]
+map_sympoly_is_monoid_morphism [lemma, in Combi.MPoly.sympoly]
+map_sympoly_is_zmod_morphism [lemma, in Combi.MPoly.sympoly]
+map_sympoly [definition, in Combi.MPoly.sympoly]
+map_mpoly_issym [lemma, in Combi.MPoly.sympoly]
+mask_injP [lemma, in Combi.Combi.subseq]
+mask1E [lemma, in Combi.Combi.subseq]
+Mat [definition, in Combi.Basic.unitriginv]
+maxL [definition, in Combi.Basic.ordtype]
+maxLb [lemma, in Combi.Basic.ordtype]
+maxLP [lemma, in Combi.Basic.ordtype]
+maxLPt [lemma, in Combi.Basic.ordtype]
+maxL_iota_n [lemma, in Combi.Basic.ordtype]
+maxL_iota [lemma, in Combi.Basic.ordtype]
+maxL_LbR [lemma, in Combi.Basic.ordtype]
+maxL_perm [lemma, in Combi.Basic.ordtype]
+maxL_cat [lemma, in Combi.Basic.ordtype]
+maxperm [definition, in Combi.SymGroup.presentSn]
+MaxPerm [section, in Combi.SymGroup.presentSn]
+maxpermK [lemma, in Combi.SymGroup.presentSn]
+maxpermV [lemma, in Combi.SymGroup.presentSn]
+MaxPerm.n [variable, in Combi.SymGroup.presentSn]
+MaxSeq [section, in Combi.Basic.ordtype]
+MaxSeq.disp [variable, in Combi.Basic.ordtype]
+MaxSeq.T [variable, in Combi.Basic.ordtype]
+maxXL [lemma, in Combi.Basic.ordtype]
+mcoeffXU [lemma, in Combi.MPoly.sympoly]
+mcoeff_symbs [lemma, in Combi.MPoly.homogsym]
+mcoeff_alt [lemma, in Combi.MPoly.antisym]
+mcoeff_arbound [lemma, in Combi.MPoly.antisym]
+mcoeff_alt_SchurE [lemma, in Combi.MPoly.Schur_altdef]
+mcoeff_symm [lemma, in Combi.MPoly.sympoly]
+mcoeff_symm_pol [lemma, in Combi.MPoly.sympoly]
+mcoeff_symh [lemma, in Combi.MPoly.sympoly]
+mcoeff_symh_pol [lemma, in Combi.MPoly.sympoly]
+mcoeff_symh_pol_bound [lemma, in Combi.MPoly.sympoly]
+mdeg_tnth_monsY [lemma, in Combi.MPoly.Cauchy]
+mdeg_monX [lemma, in Combi.MPoly.Cauchy]
+mdeg_rho [lemma, in Combi.MPoly.antisym]
+mdeg_mpart [lemma, in Combi.MPoly.antisym]
+MeasureProp [section, in ALEA.Qmeasure]
+MeasureProp.A [variable, in ALEA.Qmeasure]
+MeasureProp.m [variable, in ALEA.Qmeasure]
+mem_std [lemma, in Combi.Combi.std]
+mem_drop_enumI [lemma, in Combi.SSRcomplements.tools]
+mem_take_enumI [lemma, in Combi.SSRcomplements.tools]
+mem_takeP [lemma, in Combi.SSRcomplements.tools]
+mem_enum_box_in [lemma, in Combi.Combi.partition]
+mem_enum_box_skew [lemma, in Combi.Combi.partition]
+mem_enum_bintreesz [lemma, in Combi.Combi.bintree]
+mem_cast [lemma, in Combi.SSRcomplements.ordcast]
+mem_shsh [lemma, in Combi.LRrule.shuffle]
+mem_sfilterleqK [lemma, in Combi.LRrule.shuffle]
+mem_shuffle [lemma, in Combi.LRrule.shuffle]
+mem_shuffle_pred [lemma, in Combi.LRrule.shuffle]
+mem_shuffle_predU [lemma, in Combi.LRrule.shuffle]
+mem_shape_vect_n_k [lemma, in Combi.Combi.vectNK]
+mem_enum_seqE [lemma, in Combi.LRrule.Greene]
+mem_RSclass [lemma, in Combi.LRrule.Schensted]
+mem_prefixesP [lemma, in Combi.Combi.Dyckword]
+mem_preim_partition [lemma, in Combi.Combi.Dyckword]
+mem_to_word [lemma, in Combi.Combi.tableau]
+mem_enum_ordtreesz [lemma, in Combi.Combi.ordtree]
+mem_pblock_setpart [lemma, in Combi.Combi.setpartition]
+mem_setpart_pblock [lemma, in Combi.Combi.setpartition]
+mem_eq_pblock [lemma, in Combi.Combi.setpartition]
+mem_pblockC [lemma, in Combi.Combi.setpartition]
+mem_enum_permuted [lemma, in Combi.Combi.permuted]
+mem_fiber [lemma, in Combi.Combi.fibered_set]
+mem_Delta [lemma, in Combi.SymGroup.presentSn]
+mem_partsum_gt [lemma, in Combi.Combi.composition]
+mem_partsum_non0 [lemma, in Combi.Combi.composition]
+merge_cons [lemma, in Combi.Combi.partition]
+merge_sortedE [lemma, in Combi.Combi.partition]
+merge_is_part [lemma, in Combi.Combi.partition]
+mesymlm_rbound [lemma, in Combi.MPoly.antisym]
+mesym_SchurE [lemma, in Combi.MPoly.Schur_mpoly]
+MF [definition, in ALEA.Qmeasure]
+mfinite [definition, in ALEA.Qmeasure]
+MFO [instance, in ALEA.Qmeasure]
+mfun2 [definition, in ALEA.Ccpo]
+mfun2_mon [instance, in ALEA.Ccpo]
+mfun2_simpl [lemma, in ALEA.Ccpo]
+mindropeq [definition, in Combi.Combi.skewpart]
+MinDropEq [section, in Combi.Combi.skewpart]
+mindropeqC [lemma, in Combi.Combi.skewpart]
+mindropeq_non0 [lemma, in Combi.Combi.skewpart]
+mindropeq_nthP [lemma, in Combi.Combi.skewpart]
+mindropeq_cons_neq [lemma, in Combi.Combi.skewpart]
+mindropeq_cons_eq [lemma, in Combi.Combi.skewpart]
+mindropeq_nil [lemma, in Combi.Combi.skewpart]
+mindropeq_leq [lemma, in Combi.Combi.skewpart]
+mindropeq_eq [lemma, in Combi.Combi.skewpart]
+MinDropEq.T [variable, in Combi.Combi.skewpart]
+mindropeq0 [lemma, in Combi.Combi.skewpart]
+minh [definition, in Combi.Combi.Dyckword]
+minhE [lemma, in Combi.Combi.Dyckword]
+minhP [lemma, in Combi.Combi.Dyckword]
+minh_rrw [lemma, in Combi.Combi.Dyckword]
+minh_neg [lemma, in Combi.Combi.Dyckword]
+mininspred [definition, in Combi.LRrule.Schensted]
+minSS [lemma, in Combi.SSRcomplements.tools]
+Minv [definition, in Combi.Basic.unitriginv]
+Minvl [lemma, in Combi.Basic.unitriginv]
+Minvr [lemma, in Combi.Basic.unitriginv]
+Minv_lincombr [lemma, in Combi.Basic.unitriginv]
+Minv_lincombl [lemma, in Combi.Basic.unitriginv]
+Minv_unitrig [lemma, in Combi.Basic.unitriginv]
+Minv_uni [lemma, in Combi.Basic.unitriginv]
+Minv_trig [lemma, in Combi.Basic.unitriginv]
+Misc [library]
+mk_isglb [lemma, in ALEA.Ccpo]
+mlead_antisym_sorted [lemma, in Combi.MPoly.antisym]
+MLet [definition, in ALEA.Qmeasure]
+Mlet [definition, in ALEA.Qmeasure]
+Mlet_assoc [lemma, in ALEA.Qmeasure]
+Mlet_ext [lemma, in ALEA.Qmeasure]
+Mlet_unit [lemma, in ALEA.Qmeasure]
+Mlet_eq_compat [lemma, in ALEA.Qmeasure]
+MLet_simpl [lemma, in ALEA.Qmeasure]
+Mlet_mon2 [instance, in ALEA.Qmeasure]
+Mlet_le_compat [lemma, in ALEA.Qmeasure]
+Mlet_simpl_eq [lemma, in ALEA.Qmeasure]
+Mlet_simpl [lemma, in ALEA.Qmeasure]
+mlub_lift_left [lemma, in ALEA.Ccpo]
+mlub_lift_right [lemma, in ALEA.Ccpo]
+mlub_le [lemma, in ALEA.Ccpo]
+mlub_eq_compat [lemma, in ALEA.Ccpo]
+mlub_le_compat [lemma, in ALEA.Ccpo]
+mnm_perm [lemma, in Combi.MPoly.antisym]
+mnm_n0E [lemma, in Combi.MPoly.sympoly]
+MNRule [section, in Combi.MPoly.MurnaghanNakayama]
+MNRule.n0 [variable, in Combi.MPoly.MurnaghanNakayama]
+MNRule.R [variable, in Combi.MPoly.MurnaghanNakayama]
+MN_coeffE [lemma, in Combi.MPoly.MurnaghanNakayama]
+MN_coeff_rec_homogP [lemma, in Combi.MPoly.MurnaghanNakayama]
+MN_coeff_recP [lemma, in Combi.MPoly.MurnaghanNakayama]
+MN_coeff_rec_consE [lemma, in Combi.MPoly.MurnaghanNakayama]
+MN_coeff_rec_notincl [lemma, in Combi.MPoly.MurnaghanNakayama]
+MN_coeff_rec_szE [lemma, in Combi.MPoly.MurnaghanNakayama]
+MN_coeff_fast [definition, in Combi.MPoly.MurnaghanNakayama]
+MN_coeff_rec [definition, in Combi.MPoly.MurnaghanNakayama]
+MN_coeff_homogP [lemma, in Combi.MPoly.MurnaghanNakayama]
+MN_coeffP [lemma, in Combi.MPoly.MurnaghanNakayama]
+MN_coeffP_int [lemma, in Combi.MPoly.MurnaghanNakayama]
+MN_coeff_consE [lemma, in Combi.MPoly.MurnaghanNakayama]
+MN_coeff0 [lemma, in Combi.MPoly.MurnaghanNakayama]
+MN_coeff [definition, in Combi.MPoly.MurnaghanNakayama]
+MO [instance, in ALEA.Qmeasure]
+MonDistrib [section, in ALEA.Qmeasure]
+MonDistrib.A [variable, in ALEA.Qmeasure]
+MonDistrib.B [variable, in ALEA.Qmeasure]
+MonomPart [section, in Combi.MPoly.antisym]
+MonomPart.n [variable, in Combi.MPoly.antisym]
+_ # _ [notation, in Combi.MPoly.antisym]
+monotonic [record, in ALEA.Ccpo]
+monotonic [inductive, in ALEA.Ccpo]
+monotonic_sym [lemma, in ALEA.Ccpo]
+monotonic_lub_comp [instance, in ALEA.Ccpo]
+monotonic_comp_mon [instance, in ALEA.Ccpo]
+monotonic_comp [instance, in ALEA.Ccpo]
+monotonic_stable [instance, in ALEA.Ccpo]
+monotonic_intro [lemma, in ALEA.Ccpo]
+monotonic_def [projection, in ALEA.Ccpo]
+monotonic_def [constructor, in ALEA.Ccpo]
+monotonic2 [record, in ALEA.Ccpo]
+monotonic2 [inductive, in ALEA.Ccpo]
+monotonic2_sym [lemma, in ALEA.Ccpo]
+monotonic2_stable2 [instance, in ALEA.Ccpo]
+monotonic2_intro [projection, in ALEA.Ccpo]
+monotonic2_intro [constructor, in ALEA.Ccpo]
+monsY [definition, in Combi.MPoly.Cauchy]
+monsYK [lemma, in Combi.MPoly.Cauchy]
+monsY_bij [lemma, in Combi.MPoly.Cauchy]
+mons2mE [lemma, in Combi.MPoly.Schur_mpoly]
+monX [definition, in Combi.MPoly.Cauchy]
+mon_fun_lub [instance, in ALEA.Ccpo]
+mon_ord_equiv_simpl [lemma, in ALEA.Ccpo]
+mon_ord_equiv [definition, in ALEA.Ccpo]
+mon_app2_mon [instance, in ALEA.Ccpo]
+mon_app2 [instance, in ALEA.Ccpo]
+mon_diag [instance, in ALEA.Ccpo]
+mon_cte [instance, in ALEA.Ccpo]
+mon_id [instance, in ALEA.Ccpo]
+mon_seq_lift_right [instance, in ALEA.Ccpo]
+mon_seq_lift_left [instance, in ALEA.Ccpo]
+mon_fun_mon [instance, in ALEA.Ccpo]
+mon_comp [definition, in ALEA.Ccpo]
+mon_fun_eq [lemma, in ALEA.Ccpo]
+mon_fun_subst [definition, in ALEA.Ccpo]
+mon_fun_eq_monotonic [lemma, in ALEA.Ccpo]
+mon_eq_compat [lemma, in ALEA.Ccpo]
+mon_le_compat [lemma, in ALEA.Ccpo]
+mon_simpl [lemma, in ALEA.Ccpo]
+mon2 [definition, in ALEA.Ccpo]
+mon2_fun2 [lemma, in ALEA.Ccpo]
+mon2_le_compat [lemma, in ALEA.Ccpo]
+mon2_simpl [lemma, in ALEA.Ccpo]
+mon2_elim2 [lemma, in ALEA.Ccpo]
+mon2_elim1 [lemma, in ALEA.Ccpo]
+mon2_intro [instance, in ALEA.Ccpo]
+morph_of_tinj [definition, in Combi.SymGroup.towerSn]
+morph_eltr [lemma, in Combi.SymGroup.presentSn]
+mpart [definition, in Combi.MPoly.antisym]
+mpartE [lemma, in Combi.MPoly.antisym]
+mpartK [lemma, in Combi.MPoly.antisym]
+mpartS [lemma, in Combi.MPoly.Schur_altdef]
+mpart_partm_perm [lemma, in Combi.MPoly.antisym]
+mpart_is_dominant [lemma, in Combi.MPoly.antisym]
+mpart0 [lemma, in Combi.MPoly.antisym]
+MPoESymHomog [section, in Combi.MPoly.sympoly]
+MPoESymHomog.n [variable, in Combi.MPoly.sympoly]
+MPoESymHomog.R [variable, in Combi.MPoly.sympoly]
+MPolySym [section, in Combi.MPoly.antisym]
+MPolySym.n [variable, in Combi.MPoly.antisym]
+MPolySym.R [variable, in Combi.MPoly.antisym]
+_ # _ [notation, in Combi.MPoly.antisym]
+mseq_cte [definition, in ALEA.Ccpo]
+mseq_lift_right_left [lemma, in ALEA.Ccpo]
+mseq_lift_right_le_compat [lemma, in ALEA.Ccpo]
+mseq_lift_right_simpl [lemma, in ALEA.Ccpo]
+mseq_lift_right [definition, in ALEA.Ccpo]
+mseq_lift_left_le_compat [lemma, in ALEA.Ccpo]
+mseq_lift_left_simpl [lemma, in ALEA.Ccpo]
+mseq_lift_left [definition, in ALEA.Ccpo]
+mshift [definition, in ALEA.Ccpo]
+mshift_continuous [instance, in ALEA.Ccpo]
+mshift_continuous2 [lemma, in ALEA.Ccpo]
+mshift_le_compat [lemma, in ALEA.Ccpo]
+mshift_simpl [lemma, in ALEA.Ccpo]
+mshift2_eq [lemma, in ALEA.Ccpo]
+Mstable_linear [lemma, in ALEA.Qmeasure]
+Mstable_mull [lemma, in ALEA.Qmeasure]
+Mstable_divi [lemma, in ALEA.Qmeasure]
+Mstable_muli [lemma, in ALEA.Qmeasure]
+Mstable_addi [lemma, in ALEA.Qmeasure]
+Mstable_divn [lemma, in ALEA.Qmeasure]
+Mstable_subn [lemma, in ALEA.Qmeasure]
+Mstable_addn [lemma, in ALEA.Qmeasure]
+Mstable_add [lemma, in ALEA.Qmeasure]
+Mstable_opp [lemma, in ALEA.Qmeasure]
+Mstable_eq [lemma, in ALEA.Qmeasure]
+Mstable0 [lemma, in ALEA.Qmeasure]
+mstar [definition, in ALEA.Qmeasure]
+msuppX1 [lemma, in Combi.MPoly.antisym]
+msym_pihomog [lemma, in Combi.MPoly.homogsym]
+msym_map_mpoly [lemma, in Combi.MPoly.antisym]
+msym_fundamental_symh_un [lemma, in Combi.MPoly.sympoly]
+mu [projection, in ALEA.Qmeasure]
+MultAlternSymp [section, in Combi.MPoly.MurnaghanNakayama]
+MultAlternSymp.n0 [variable, in Combi.MPoly.MurnaghanNakayama]
+MultAlternSymp.R [variable, in Combi.MPoly.MurnaghanNakayama]
+'a_ _ [notation, in Combi.MPoly.MurnaghanNakayama]
+MultinomCompl [section, in Combi.MPoly.sympoly]
+MultinomCompl.n [variable, in Combi.MPoly.sympoly]
+MultinomCompl.R [variable, in Combi.MPoly.sympoly]
+multinomial [definition, in Combi.Combi.multinomial]
+multinomial [library]
+multinomialE [lemma, in Combi.Combi.multinomial]
+multinomial_filter_neq0 [lemma, in Combi.Combi.multinomial]
+multinomial_cat [lemma, in Combi.Combi.multinomial]
+multinomial_factd [lemma, in Combi.Combi.multinomial]
+multinomial_nseq1 [lemma, in Combi.Combi.multinomial]
+multinomial_nseq [lemma, in Combi.Combi.multinomial]
+multinomial_fact [lemma, in Combi.Combi.multinomial]
+multinomial_rec [definition, in Combi.Combi.multinomial]
+multinomial0 [lemma, in Combi.Combi.multinomial]
+multinomial1 [lemma, in Combi.Combi.multinomial]
+multinomial2 [lemma, in Combi.Combi.multinomial]
+MultSymsSymp [section, in Combi.MPoly.MurnaghanNakayama]
+MultSymsSympIDomain [section, in Combi.MPoly.MurnaghanNakayama]
+MultSymsSympIDomain.n0 [variable, in Combi.MPoly.MurnaghanNakayama]
+MultSymsSymp.n0 [variable, in Combi.MPoly.MurnaghanNakayama]
+MultSymsSymp.R [variable, in Combi.MPoly.MurnaghanNakayama]
+mult_altern_pmap [lemma, in Combi.MPoly.MurnaghanNakayama]
+mult_altern_oapp [lemma, in Combi.MPoly.MurnaghanNakayama]
+mult_altern_symp_pol [lemma, in Combi.MPoly.MurnaghanNakayama]
+mult_syme_U [lemma, in Combi.MPoly.sympoly]
+mult_symh_powersum [lemma, in Combi.MPoly.sympoly]
+mult_symh_U [lemma, in Combi.MPoly.sympoly]
+mul_ek_pk [lemma, in Combi.MPoly.sympoly]
+mul_ek_p1 [lemma, in Combi.MPoly.sympoly]
+Munit [definition, in ALEA.Qmeasure]
+munit [definition, in ALEA.Qmeasure]
+Munit_eq_compat [lemma, in ALEA.Qmeasure]
+Munit_simpl_eq [lemma, in ALEA.Qmeasure]
+Munit_simpl [lemma, in ALEA.Qmeasure]
+MurnaghanNakayama [library]
+Murnaghan_NakayamaCT [lemma, in Combi.SymGroup.Frobenius_char]
+Murnaghan_Nakayama_char [lemma, in Combi.SymGroup.Frobenius_char]
+mu_pos_cond [lemma, in ALEA.Qmeasure]
+mu_bool_cond [lemma, in ALEA.Qmeasure]
+mu_in_seq [lemma, in ALEA.Qmeasure]
+mu_stable_sum [lemma, in ALEA.Qmeasure]
+mu_random_sum [lemma, in ALEA.Qmeasure]
+mu_uniform_sum [lemma, in ALEA.Qmeasure]
+mu_bool_negb1 [lemma, in ALEA.Qmeasure]
+mu_bool_negb [lemma, in ALEA.Qmeasure]
+mu_bool_negb0 [lemma, in ALEA.Qmeasure]
+mu_bool_impl1 [lemma, in ALEA.Qmeasure]
+mu_bool_impl [lemma, in ALEA.Qmeasure]
+mu_bool_0le [lemma, in ALEA.Qmeasure]
+mu_bool_le1 [lemma, in ALEA.Qmeasure]
+mu_eq_compat [lemma, in ALEA.Qmeasure]
+mu_le_compat [lemma, in ALEA.Qmeasure]
+mu_stable_inv_inv [lemma, in ALEA.Qmeasure]
+mu_stable_mulr [lemma, in ALEA.Qmeasure]
+mu_cte [lemma, in ALEA.Qmeasure]
+mu_stable_le1 [lemma, in ALEA.Qmeasure]
+mu_stable_pos [lemma, in ALEA.Qmeasure]
+mu_add_zero [lemma, in ALEA.Qmeasure]
+mu_stable_mull [lemma, in ALEA.Qmeasure]
+mu_stable_add [lemma, in ALEA.Qmeasure]
+mu_stable_inv [lemma, in ALEA.Qmeasure]
+mu_one_eq [lemma, in ALEA.Qmeasure]
+mu_zero_eq [lemma, in ALEA.Qmeasure]
+mu_zero [lemma, in ALEA.Qmeasure]
+mu_stable_eq [lemma, in ALEA.Qmeasure]
+mu_monotonic [lemma, in ALEA.Qmeasure]
+mu_prob [projection, in ALEA.Qmeasure]
+mu_stable_sub [projection, in ALEA.Qmeasure]
+mu_walk_to_corner_is_trace [lemma, in Combi.HookFormula.hook]
+mwmwgt_homogP [lemma, in Combi.MPoly.sympoly]
+mxvec_indexK [lemma, in Combi.MPoly.Cauchy]
+mxvec_index [abbreviation, in Combi.MPoly.Cauchy]
+

N

+n [abbreviation, in Combi.MPoly.Cauchy]
+n [abbreviation, in Combi.MPoly.Cauchy]
+n [abbreviation, in Combi.MPoly.homogsym]
+n [abbreviation, in Combi.MPoly.homogsym]
+n [abbreviation, in Combi.MPoly.homogsym]
+n [abbreviation, in Combi.MPoly.homogsym]
+n [abbreviation, in Combi.MPoly.homogsym]
+n [abbreviation, in Combi.MPoly.homogsym]
+n [abbreviation, in Combi.MPoly.homogsym]
+n [abbreviation, in Combi.MPoly.homogsym]
+n [abbreviation, in Combi.MPoly.homogsym]
+n [abbreviation, in Combi.MPoly.homogsym]
+n [abbreviation, in Combi.MPoly.Schur_mpoly]
+n [abbreviation, in Combi.MPoly.Schur_mpoly]
+n [abbreviation, in Combi.Basic.unitriginv]
+n [abbreviation, in Combi.MPoly.Schur_altdef]
+n [abbreviation, in Combi.MPoly.Schur_altdef]
+n [abbreviation, in Combi.MPoly.Schur_altdef]
+n [abbreviation, in Combi.MPoly.Schur_altdef]
+n [abbreviation, in Combi.LRrule.freeSchur]
+n [abbreviation, in Combi.LRrule.therule]
+n [abbreviation, in Combi.LRrule.therule]
+n [abbreviation, in Combi.SymGroup.weak_order]
+n [abbreviation, in Combi.SymGroup.weak_order]
+n [abbreviation, in Combi.MPoly.MurnaghanNakayama]
+n [abbreviation, in Combi.MPoly.MurnaghanNakayama]
+n [abbreviation, in Combi.MPoly.MurnaghanNakayama]
+n [abbreviation, in Combi.MPoly.MurnaghanNakayama]
+n [abbreviation, in Combi.MPoly.MurnaghanNakayama]
+n [abbreviation, in Combi.SymGroup.presentSn]
+n [abbreviation, in Combi.SymGroup.presentSn]
+n [abbreviation, in Combi.SymGroup.presentSn]
+n [abbreviation, in Combi.SymGroup.presentSn]
+n [abbreviation, in Combi.LRrule.implem]
+n [abbreviation, in Combi.MPoly.sympoly]
+n [abbreviation, in Combi.MPoly.sympoly]
+n [abbreviation, in Combi.MPoly.sympoly]
+n [abbreviation, in Combi.MPoly.sympoly]
+n [abbreviation, in Combi.MPoly.sympoly]
+n [abbreviation, in Combi.MPoly.sympoly]
+n [abbreviation, in Combi.MPoly.sympoly]
+natO [instance, in ALEA.Ccpo]
+nat_monotonic_inv [lemma, in ALEA.Ccpo]
+nat_monotonic [lemma, in ALEA.Ccpo]
+nat_repr [definition, in Combi.SymGroup.reprSn]
+nat_mx_repr [lemma, in Combi.SymGroup.reprSn]
+nat_mx [definition, in Combi.SymGroup.reprSn]
+nat_compare_specT [lemma, in ALEA.Misc]
+nbump_bumprowE [lemma, in Combi.LRrule.Schensted]
+nbump_ins_rconsE [lemma, in Combi.LRrule.Schensted]
+nbump_size_ins [lemma, in Combi.LRrule.Schensted]
+nbump_inspos_eq_size [lemma, in Combi.LRrule.Schensted]
+nbump_insposE [lemma, in Combi.LRrule.Schensted]
+nbump_mininspredE [lemma, in Combi.LRrule.Schensted]
+nbump_bumprow_rconsE [lemma, in Combi.LRrule.plactic]
+ncfuniCT [definition, in Combi.SymGroup.towerSn]
+ncfuniCT_Ind [lemma, in Combi.SymGroup.towerSn]
+ncfuniCT_gen [lemma, in Combi.SymGroup.towerSn]
+neig4 [abbreviation, in Combi.Combi.skewpart]
+neig4 [abbreviation, in Combi.Combi.skewpart]
+neig4 [definition, in Combi.Combi.skewpart]
+neig4box [definition, in Combi.Combi.skewpart]
+neig4boxE [lemma, in Combi.Combi.skewpart]
+neig4box_sym [lemma, in Combi.Combi.skewpart]
+neig4_sym [lemma, in Combi.Combi.skewpart]
+Neq_lt_0 [lemma, in ALEA.Misc]
+neq0zcard [lemma, in Combi.SymGroup.permcent]
+neq0zcoeff [lemma, in Combi.SymGroup.towerSn]
+Newton_syme [lemma, in Combi.MPoly.sympoly]
+Newton_syme1 [lemma, in Combi.MPoly.sympoly]
+Newton_symh1 [lemma, in Combi.MPoly.sympoly]
+Newton_symh [lemma, in Combi.MPoly.sympoly]
+nil_Dyck [definition, in Combi.Combi.Dyckword]
+NirrSn [lemma, in Combi.SymGroup.reprSn]
+NirrS2 [lemma, in Combi.SymGroup.reprSn]
+Nlt0_le1 [lemma, in ALEA.Misc]
+nohasincr_setdiff [lemma, in Combi.MPoly.Schur_altdef]
+NonEmpty [section, in Combi.LRrule.Schensted]
+NonEmpty.Bijection [section, in Combi.LRrule.Schensted]
+NonEmpty.Bump [section, in Combi.LRrule.Schensted]
+NonEmpty.Bump.HRow [variable, in Combi.LRrule.Schensted]
+NonEmpty.Bump.l [variable, in Combi.LRrule.Schensted]
+NonEmpty.Bump.Row [variable, in Combi.LRrule.Schensted]
+NonEmpty.Classes [section, in Combi.LRrule.Schensted]
+NonEmpty.disp [variable, in Combi.LRrule.Schensted]
+NonEmpty.Dominate [section, in Combi.LRrule.Schensted]
+NonEmpty.Insert [section, in Combi.LRrule.Schensted]
+NonEmpty.Insert.HRow [variable, in Combi.LRrule.Schensted]
+NonEmpty.Insert.l [variable, in Combi.LRrule.Schensted]
+NonEmpty.Insert.Row [variable, in Combi.LRrule.Schensted]
+NonEmpty.Inverse [section, in Combi.LRrule.Schensted]
+NonEmpty.InverseBump [section, in Combi.LRrule.Schensted]
+NonEmpty.Schensted [section, in Combi.LRrule.Schensted]
+NonEmpty.Statistics [section, in Combi.LRrule.Schensted]
+NonEmpty.T [variable, in Combi.LRrule.Schensted]
+NonEmpty.Tableaux [section, in Combi.LRrule.Schensted]
+non_decr_equiv [lemma, in Combi.SSRcomplements.sorted]
+NoSetContainingBoth [module, in Combi.LRrule.Greene_inv]
+NoSetContainingBoth.Case [section, in Combi.LRrule.Greene_inv]
+NoSetContainingBoth.Case.a [variable, in Combi.LRrule.Greene_inv]
+NoSetContainingBoth.Case.Alph [variable, in Combi.LRrule.Greene_inv]
+NoSetContainingBoth.Case.b [variable, in Combi.LRrule.Greene_inv]
+NoSetContainingBoth.Case.disp [variable, in Combi.LRrule.Greene_inv]
+NoSetContainingBoth.Case.HnoBoth [variable, in Combi.LRrule.Greene_inv]
+NoSetContainingBoth.Case.k [variable, in Combi.LRrule.Greene_inv]
+NoSetContainingBoth.Case.P [variable, in Combi.LRrule.Greene_inv]
+NoSetContainingBoth.Case.Px [variable, in Combi.LRrule.Greene_inv]
+NoSetContainingBoth.Case.R [variable, in Combi.LRrule.Greene_inv]
+NoSetContainingBoth.Case.u [variable, in Combi.LRrule.Greene_inv]
+NoSetContainingBoth.Case.v [variable, in Combi.LRrule.Greene_inv]
+NoSetContainingBoth.Case.word [variable, in Combi.LRrule.Greene_inv]
+NoSetContainingBoth.Case.x [variable, in Combi.LRrule.Greene_inv]
+NoSetContainingBoth.Case.y [variable, in Combi.LRrule.Greene_inv]
+NoSetContainingBoth.extract_swap_set [lemma, in Combi.LRrule.Greene_inv]
+NoSetContainingBoth.Hcast [lemma, in Combi.LRrule.Greene_inv]
+NoSetContainingBoth.ksupp_Q [lemma, in Combi.LRrule.Greene_inv]
+NoSetContainingBoth.posa [abbreviation, in Combi.LRrule.Greene_inv]
+NoSetContainingBoth.posb [abbreviation, in Combi.LRrule.Greene_inv]
+NoSetContainingBoth.Q [definition, in Combi.LRrule.Greene_inv]
+NoSetContainingBoth.size_cover_Q [lemma, in Combi.LRrule.Greene_inv]
+NoSetContainingBoth.swapX [abbreviation, in Combi.LRrule.Greene_inv]
+NoSetContainingBoth.swap_set_inj [lemma, in Combi.LRrule.Greene_inv]
+NoSetContainingBoth.swap_set [definition, in Combi.LRrule.Greene_inv]
+NoSetContainingBoth.swap_setX [abbreviation, in Combi.LRrule.Greene_inv]
+notbump [lemma, in Combi.LRrule.Schensted]
+notin0_part [lemma, in Combi.Combi.partition]
+not_hasincr_part [lemma, in Combi.MPoly.Schur_altdef]
+not_and_elim_right [lemma, in ALEA.Misc]
+not_and_elim_left [lemma, in ALEA.Misc]
+Npos [lemma, in ALEA.Misc]
+Nsucc_pred_pos [lemma, in ALEA.Misc]
+NThAddRibbon [section, in Combi.Combi.skewpart]
+NThAddRibbon.lesmin [variable, in Combi.Combi.skewpart]
+NThAddRibbon.less [variable, in Combi.Combi.skewpart]
+NThAddRibbon.lessz [variable, in Combi.Combi.skewpart]
+NThAddRibbon.rem [variable, in Combi.Combi.skewpart]
+NThAddRibbon.sh [variable, in Combi.Combi.skewpart]
+NThAddRibbon.start [variable, in Combi.Combi.skewpart]
+NThAddRibbon.stop [variable, in Combi.Combi.skewpart]
+NThAddRibbon.sztd [variable, in Combi.Combi.skewpart]
+nth_sizeu2 [lemma, in Combi.Combi.std]
+nth_sizeu1 [lemma, in Combi.Combi.std]
+nth_sizeu [lemma, in Combi.Combi.std]
+nth_transp [lemma, in Combi.Combi.std]
+nth_set_nth_any [lemma, in Combi.SSRcomplements.tools]
+nth_set_nth_expand [lemma, in Combi.SSRcomplements.tools]
+nth_diff_shape [lemma, in Combi.Combi.partition]
+nth_pad [lemma, in Combi.Combi.partition]
+nth_conjE [lemma, in Combi.Combi.partition]
+nth_incr_first_n [lemma, in Combi.Combi.partition]
+nth_decr_nth_neq [lemma, in Combi.Combi.partition]
+nth_decr_nth [lemma, in Combi.Combi.partition]
+nth_rem_trail0 [lemma, in Combi.Combi.partition]
+nth_part_non0 [lemma, in Combi.Combi.partition]
+nth_std_pos [lemma, in Combi.LRrule.stdplact]
+nth_vctmin [lemma, in Combi.Combi.bintree]
+nth_add_setdiff [lemma, in Combi.MPoly.Schur_altdef]
+nth_lt_inspos [lemma, in Combi.LRrule.Schensted]
+nth_inspos_ins [lemma, in Combi.LRrule.Schensted]
+nth_pfminh [lemma, in Combi.Combi.Dyckword]
+nth_evalseq [lemma, in Combi.Combi.Yamanouchi]
+nth_add_ribbon_stop_lt [lemma, in Combi.Combi.skewpart]
+nth_add_ribbon_in [lemma, in Combi.Combi.skewpart]
+nth_add_ribbon_start [lemma, in Combi.Combi.skewpart]
+nth_add_ribbon_lt_start [lemma, in Combi.Combi.skewpart]
+nth_inspos [lemma, in Combi.Basic.ordtype]
+nth_rembig [lemma, in Combi.Basic.ordtype]
+nth_lt_posbig [lemma, in Combi.Basic.ordtype]
+nth_posbig [lemma, in Combi.Basic.ordtype]
+nvar [abbreviation, in Combi.SymGroup.Frobenius_char]
+NVar [section, in Combi.SymGroup.Frobenius_char]
+nvar [abbreviation, in Combi.MPoly.sympoly]
+NVar.Character [section, in Combi.SymGroup.Frobenius_char]
+NVar.Character.Hn [variable, in Combi.SymGroup.Frobenius_char]
+NVar.Character.n [variable, in Combi.SymGroup.Frobenius_char]
+NVar.Defs [section, in Combi.SymGroup.Frobenius_char]
+NVar.Defs.Hn [variable, in Combi.SymGroup.Frobenius_char]
+NVar.Defs.n [variable, in Combi.SymGroup.Frobenius_char]
+NVar.nvar0 [variable, in Combi.SymGroup.Frobenius_char]
+N2Nat_inj_pos [lemma, in ALEA.Misc]
+N2Nat_inj_le [lemma, in ALEA.Misc]
+N2Nat_inj_lt [lemma, in ALEA.Misc]
+N2Nat_le_mono [lemma, in ALEA.Misc]
+N2Nat_lt_mono [lemma, in ALEA.Misc]
+

O

+odd_cycle_type [lemma, in Combi.SymGroup.cycletype]
+odd_size_permE [lemma, in Combi.SymGroup.presentSn]
+odd_eltr [lemma, in Combi.SymGroup.presentSn]
+Odistr [instance, in ALEA.Qmeasure]
+Oeq [projection, in ALEA.Ccpo]
+Oeq_trans [lemma, in ALEA.Ccpo]
+Oeq_le_sym [lemma, in ALEA.Ccpo]
+Oeq_le [lemma, in ALEA.Ccpo]
+Oeq_sym [lemma, in ALEA.Ccpo]
+Oeq_refl_eq [lemma, in ALEA.Ccpo]
+Oeq_refl [lemma, in ALEA.Ccpo]
+OfSize [section, in Combi.Combi.ordtree]
+OfSize.n [variable, in Combi.Combi.ordtree]
+Oge [definition, in ALEA.Ccpo]
+Ole [projection, in ALEA.Ccpo]
+Ole_not_lt [lemma, in ALEA.Ccpo]
+Ole_lt_trans [lemma, in ALEA.Ccpo]
+Ole_notle_lt [lemma, in ALEA.Ccpo]
+Ole_diff_lt [lemma, in ALEA.Ccpo]
+Ole_eq_left [lemma, in ALEA.Ccpo]
+Ole_eq_right [lemma, in ALEA.Ccpo]
+Ole_eq_compat [lemma, in ALEA.Ccpo]
+Ole_antisym [lemma, in ALEA.Ccpo]
+Ole_refl [lemma, in ALEA.Ccpo]
+Ole_trans [lemma, in ALEA.Ccpo]
+Ole_refl_eq_inv [lemma, in ALEA.Ccpo]
+Ole_refl_eq [lemma, in ALEA.Ccpo]
+Olt [definition, in ALEA.Ccpo]
+Olt_le_trans [lemma, in ALEA.Ccpo]
+Olt_antirefl [lemma, in ALEA.Ccpo]
+Olt_trans [lemma, in ALEA.Ccpo]
+Olt_notle [lemma, in ALEA.Ccpo]
+Olt_le [lemma, in ALEA.Ccpo]
+Olt_neq_rev [lemma, in ALEA.Ccpo]
+Olt_neq [lemma, in ALEA.Ccpo]
+Olt_eq_compat [lemma, in ALEA.Ccpo]
+Omega [section, in Combi.MPoly.sympoly]
+omegahomsym [definition, in Combi.MPoly.homogsym]
+OmegaHomSym [section, in Combi.MPoly.homogsym]
+omegahomsym_rmorph [lemma, in Combi.MPoly.homogsym]
+omegahomsym_is_linear [lemma, in Combi.MPoly.homogsym]
+omegahomsym_subproof [lemma, in Combi.MPoly.homogsym]
+OmegaHomSym.d [variable, in Combi.MPoly.homogsym]
+OmegaHomSym.n0 [variable, in Combi.MPoly.homogsym]
+OmegaHomSym.R [variable, in Combi.MPoly.homogsym]
+OmegaProd [section, in Combi.MPoly.homogsym]
+OmegaProd.n0 [variable, in Combi.MPoly.homogsym]
+OmegaProd.R [variable, in Combi.MPoly.homogsym]
+omegasf [definition, in Combi.MPoly.sympoly]
+omegasfK [lemma, in Combi.MPoly.sympoly]
+omegasf_syms [lemma, in Combi.MPoly.sympoly]
+omegasf_prodsymp [lemma, in Combi.MPoly.sympoly]
+omegasf_prodsymh [lemma, in Combi.MPoly.sympoly]
+omegasf_prodsyme [lemma, in Combi.MPoly.sympoly]
+omegasf_compsymh [lemma, in Combi.MPoly.sympoly]
+omegasf_sympolyf_eval [lemma, in Combi.MPoly.sympoly]
+omegasf_homogE [lemma, in Combi.MPoly.sympoly]
+omegasf_homog [lemma, in Combi.MPoly.sympoly]
+omegasf_symp [lemma, in Combi.MPoly.sympoly]
+omegasf_symh [lemma, in Combi.MPoly.sympoly]
+omegasf_syme [lemma, in Combi.MPoly.sympoly]
+omegasf_is_monoid_morphism [lemma, in Combi.MPoly.sympoly]
+omegasf_is_linear [lemma, in Combi.MPoly.sympoly]
+omegasf_is_symmetric [lemma, in Combi.MPoly.sympoly]
+omega_homsymp [lemma, in Combi.MPoly.homogsym]
+omega_homsyms [lemma, in Combi.MPoly.homogsym]
+omega_homsyme [lemma, in Combi.MPoly.homogsym]
+omega_homsymh [lemma, in Combi.MPoly.homogsym]
+omega_Fchar [lemma, in Combi.SymGroup.Frobenius_char]
+omega_Fchar_inv [lemma, in Combi.SymGroup.Frobenius_char]
+Omega.d [variable, in Combi.MPoly.sympoly]
+Omega.n0 [variable, in Combi.MPoly.sympoly]
+Omega.R [variable, in Combi.MPoly.sympoly]
+one_letter_included [lemma, in Combi.LRrule.implem]
+one_letter_choicesP [lemma, in Combi.LRrule.implem]
+one_letter_choices [definition, in Combi.LRrule.implem]
+Open [constructor, in Combi.Combi.Dyckword]
+OperDistr [section, in ALEA.Qmeasure]
+OperDistr.A [variable, in ALEA.Qmeasure]
+OperDistr.B [variable, in ALEA.Qmeasure]
+OperDistr.C [variable, in ALEA.Qmeasure]
+OperDistr.MuBool [section, in ALEA.Qmeasure]
+OperDistr.MuBool.m [variable, in ALEA.Qmeasure]
+orc [definition, in ALEA.Misc]
+orc_intro [lemma, in ALEA.Misc]
+orc_right [lemma, in ALEA.Misc]
+orc_left [lemma, in ALEA.Misc]
+ord [record, in ALEA.Ccpo]
+ordcast [library]
+Order [record, in ALEA.Ccpo]
+OrderEqRefl [instance, in ALEA.Ccpo]
+OrderEqSym [instance, in ALEA.Ccpo]
+OrderEqTrans [instance, in ALEA.Ccpo]
+OrderEquiv [instance, in ALEA.Ccpo]
+order_rel [projection, in ALEA.Ccpo]
+order_eq [projection, in ALEA.Ccpo]
+order_cyclic [lemma, in Combi.SymGroup.cycles]
+Order_dual__canonical__ordtype_InhFinOrder [definition, in Combi.Basic.ordtype]
+Order_dual__canonical__ordtype_InhFinLattice [definition, in Combi.Basic.ordtype]
+Order_dual__canonical__ordtype_InhFinPOrder [definition, in Combi.Basic.ordtype]
+Order_dual__canonical__ordtype_InhFinite [definition, in Combi.Basic.ordtype]
+Order_dual__canonical__ordtype_InhOrder [definition, in Combi.Basic.ordtype]
+Order_dual__canonical__ordtype_InhTBLattice [definition, in Combi.Basic.ordtype]
+Order_dual__canonical__ordtype_InhLattice [definition, in Combi.Basic.ordtype]
+Order_dual__canonical__ordtype_InhPOrder [definition, in Combi.Basic.ordtype]
+Order_dual__canonical__ordtype_Inhabited [definition, in Combi.Basic.ordtype]
+OrdNode [constructor, in Combi.Combi.ordtree]
+OrdNode_inj [lemma, in Combi.Combi.ordtree]
+OrdSetoid [lemma, in ALEA.Ccpo]
+OrdTableau [section, in Combi.Combi.tableau]
+OrdTableau.d [variable, in Combi.Combi.tableau]
+OrdTableau.Hszs [variable, in Combi.Combi.tableau]
+OrdTableau.n [variable, in Combi.Combi.tableau]
+OrdTableau.sh [variable, in Combi.Combi.tableau]
+ordtree [inductive, in Combi.Combi.ordtree]
+ordtree [library]
+ordtreesz [record, in Combi.Combi.ordtree]
+ordtreeszP [lemma, in Combi.Combi.ordtree]
+ordtree_ordtreesz__canonical__fintype_SubFinite [definition, in Combi.Combi.ordtree]
+ordtree_ordtreesz__canonical__fintype_Finite [definition, in Combi.Combi.ordtree]
+ordtree_ordtreesz__canonical__choice_SubCountable [definition, in Combi.Combi.ordtree]
+ordtree_ordtreesz__canonical__choice_Countable [definition, in Combi.Combi.ordtree]
+ordtree_ordtreesz__canonical__choice_SubChoice [definition, in Combi.Combi.ordtree]
+ordtree_ordtreesz__canonical__choice_Choice [definition, in Combi.Combi.ordtree]
+ordtree_ordtreesz__canonical__eqtype_SubEquality [definition, in Combi.Combi.ordtree]
+ordtree_ordtreesz__canonical__eqtype_Equality [definition, in Combi.Combi.ordtree]
+ordtree_ordtreesz__canonical__eqtype_SubType [definition, in Combi.Combi.ordtree]
+ordtree_ordtree__canonical__choice_Countable [definition, in Combi.Combi.ordtree]
+ordtree_ordtree__canonical__choice_Choice [definition, in Combi.Combi.ordtree]
+ordtree_ordtree__canonical__eqtype_Equality [definition, in Combi.Combi.ordtree]
+ordtype [library]
+ordtype_isInhabitedType__to__ordtype_isInhabited__34 [definition, in Combi.Combi.partition]
+ordtype_isInhabitedType__to__ordtype_isInhabited [definition, in Combi.Combi.partition]
+ordtype_isInhabitedType__to__ordtype_isInhabited [definition, in Combi.Combi.setpartition]
+ordtype_InhFinOrder__to__Order_DistrLattice_isTotal [definition, in Combi.Basic.ordtype]
+ordtype_InhFinOrder__to__Order_Lattice_isDistributive [definition, in Combi.Basic.ordtype]
+ordtype_InhFinOrder__to__Order_POrder_isJoinSemilattice [definition, in Combi.Basic.ordtype]
+ordtype_InhFinOrder__to__Order_POrder_isMeetSemilattice [definition, in Combi.Basic.ordtype]
+ordtype_InhFinOrder__to__Order_Preorder_isDuallyPOrder [definition, in Combi.Basic.ordtype]
+ordtype_InhFinOrder__to__Order_isDuallyPreorder [definition, in Combi.Basic.ordtype]
+ordtype_InhFinOrder__to__fintype_isFinite [definition, in Combi.Basic.ordtype]
+ordtype_InhFinOrder__to__eqtype_hasDecEq [definition, in Combi.Basic.ordtype]
+ordtype_InhFinOrder__to__choice_hasChoice [definition, in Combi.Basic.ordtype]
+ordtype_InhFinOrder__to__choice_Choice_isCountable [definition, in Combi.Basic.ordtype]
+ordtype_InhFinOrder__to__ordtype_isInhabited [definition, in Combi.Basic.ordtype]
+ordtype_InhFinLattice__to__Order_POrder_isJoinSemilattice [definition, in Combi.Basic.ordtype]
+ordtype_InhFinLattice__to__Order_POrder_isMeetSemilattice [definition, in Combi.Basic.ordtype]
+ordtype_InhFinLattice__to__Order_Preorder_isDuallyPOrder [definition, in Combi.Basic.ordtype]
+ordtype_InhFinLattice__to__Order_isDuallyPreorder [definition, in Combi.Basic.ordtype]
+ordtype_InhFinLattice__to__fintype_isFinite [definition, in Combi.Basic.ordtype]
+ordtype_InhFinLattice__to__eqtype_hasDecEq [definition, in Combi.Basic.ordtype]
+ordtype_InhFinLattice__to__choice_hasChoice [definition, in Combi.Basic.ordtype]
+ordtype_InhFinLattice__to__choice_Choice_isCountable [definition, in Combi.Basic.ordtype]
+ordtype_InhFinLattice__to__ordtype_isInhabited [definition, in Combi.Basic.ordtype]
+ordtype_InhFinPOrder__to__fintype_isFinite [definition, in Combi.Basic.ordtype]
+ordtype_InhFinPOrder__to__Order_Preorder_isDuallyPOrder [definition, in Combi.Basic.ordtype]
+ordtype_InhFinPOrder__to__Order_isDuallyPreorder [definition, in Combi.Basic.ordtype]
+ordtype_InhFinPOrder__to__eqtype_hasDecEq [definition, in Combi.Basic.ordtype]
+ordtype_InhFinPOrder__to__choice_Choice_isCountable [definition, in Combi.Basic.ordtype]
+ordtype_InhFinPOrder__to__choice_hasChoice [definition, in Combi.Basic.ordtype]
+ordtype_InhFinPOrder__to__ordtype_isInhabited [definition, in Combi.Basic.ordtype]
+ordtype_InhOrder__to__Order_DistrLattice_isTotal [definition, in Combi.Basic.ordtype]
+ordtype_InhOrder__to__Order_Lattice_isDistributive [definition, in Combi.Basic.ordtype]
+ordtype_InhOrder__to__Order_POrder_isJoinSemilattice [definition, in Combi.Basic.ordtype]
+ordtype_InhOrder__to__Order_POrder_isMeetSemilattice [definition, in Combi.Basic.ordtype]
+ordtype_InhOrder__to__Order_Preorder_isDuallyPOrder [definition, in Combi.Basic.ordtype]
+ordtype_InhOrder__to__Order_isDuallyPreorder [definition, in Combi.Basic.ordtype]
+ordtype_InhOrder__to__eqtype_hasDecEq [definition, in Combi.Basic.ordtype]
+ordtype_InhOrder__to__choice_hasChoice [definition, in Combi.Basic.ordtype]
+ordtype_InhOrder__to__ordtype_isInhabited [definition, in Combi.Basic.ordtype]
+ordtype_InhTBLattice__to__Order_POrder_isJoinSemilattice [definition, in Combi.Basic.ordtype]
+ordtype_InhTBLattice__to__Order_POrder_isMeetSemilattice [definition, in Combi.Basic.ordtype]
+ordtype_InhTBLattice__to__Order_Preorder_isDuallyPOrder [definition, in Combi.Basic.ordtype]
+ordtype_InhTBLattice__to__Order_hasBottom [definition, in Combi.Basic.ordtype]
+ordtype_InhTBLattice__to__Order_hasTop [definition, in Combi.Basic.ordtype]
+ordtype_InhTBLattice__to__Order_isDuallyPreorder [definition, in Combi.Basic.ordtype]
+ordtype_InhTBLattice__to__eqtype_hasDecEq [definition, in Combi.Basic.ordtype]
+ordtype_InhTBLattice__to__choice_hasChoice [definition, in Combi.Basic.ordtype]
+ordtype_InhTBLattice__to__ordtype_isInhabited [definition, in Combi.Basic.ordtype]
+ordtype_InhLattice__to__Order_POrder_isJoinSemilattice [definition, in Combi.Basic.ordtype]
+ordtype_InhLattice__to__Order_POrder_isMeetSemilattice [definition, in Combi.Basic.ordtype]
+ordtype_InhLattice__to__Order_Preorder_isDuallyPOrder [definition, in Combi.Basic.ordtype]
+ordtype_InhLattice__to__Order_isDuallyPreorder [definition, in Combi.Basic.ordtype]
+ordtype_InhLattice__to__eqtype_hasDecEq [definition, in Combi.Basic.ordtype]
+ordtype_InhLattice__to__choice_hasChoice [definition, in Combi.Basic.ordtype]
+ordtype_InhLattice__to__ordtype_isInhabited [definition, in Combi.Basic.ordtype]
+ordtype_InhPOrder__to__Order_Preorder_isDuallyPOrder [definition, in Combi.Basic.ordtype]
+ordtype_InhPOrder__to__Order_isDuallyPreorder [definition, in Combi.Basic.ordtype]
+ordtype_InhPOrder__to__eqtype_hasDecEq [definition, in Combi.Basic.ordtype]
+ordtype_InhPOrder__to__choice_hasChoice [definition, in Combi.Basic.ordtype]
+ordtype_InhPOrder__to__ordtype_isInhabited [definition, in Combi.Basic.ordtype]
+ordtype_isInhabitedType__to__ordtype_isInhabited__51 [definition, in Combi.Basic.ordtype]
+ordtype_Inhabited__to__eqtype_hasDecEq [definition, in Combi.Basic.ordtype]
+ordtype_Inhabited__to__choice_hasChoice [definition, in Combi.Basic.ordtype]
+ordtype_Inhabited__to__ordtype_isInhabited [definition, in Combi.Basic.ordtype]
+ordtype_isInhabitedType__to__ordtype_isInhabited__30 [definition, in Combi.Basic.ordtype]
+ordtype_isInhabitedType__to__ordtype_isInhabited__25 [definition, in Combi.Basic.ordtype]
+ordtype_isInhabitedType__to__ordtype_isInhabited__20 [definition, in Combi.Basic.ordtype]
+ordtype_isInhabitedType__to__ordtype_isInhabited__15 [definition, in Combi.Basic.ordtype]
+ordtype_isInhabitedType__to__ordtype_isInhabited__11 [definition, in Combi.Basic.ordtype]
+ordtype_isInhabitedType__to__ordtype_isInhabited [definition, in Combi.Basic.ordtype]
+ord_to_bintreeK [lemma, in Combi.Combi.ordtree]
+ord_to_bintree [definition, in Combi.Combi.ordtree]
+ord0_in_map_liftF [lemma, in Combi.LRrule.Greene]
+outer_shape_pad0 [lemma, in Combi.Combi.partition]
+outer_shapeK [lemma, in Combi.Combi.partition]
+outer_shape [definition, in Combi.Combi.partition]
+outer_part [projection, in Combi.LRrule.implem]
+OutEval [section, in Combi.LRrule.implem]
+OutEval.outev [variable, in Combi.LRrule.implem]
+OutEval.tsumn [variable, in Combi.LRrule.implem]
+outputSpec [record, in Combi.LRrule.implem]
+outputSpecP [lemma, in Combi.LRrule.implem]
+outputSpec_count_mem [lemma, in Combi.LRrule.implem]
+out_perm_prod [lemma, in Combi.SymGroup.cycles]
+

P

+P [abbreviation, in Combi.MPoly.Schur_altdef]
+PackedSpec [section, in Combi.LRrule.implem]
+PackedSpec.eval [variable, in Combi.LRrule.implem]
+PackedSpec.inner [variable, in Combi.LRrule.implem]
+PackedSpec.outer [variable, in Combi.LRrule.implem]
+pact [abbreviation, in Combi.Combi.permuted]
+pad [definition, in Combi.Combi.partition]
+Pair [abbreviation, in Combi.LRrule.Schensted]
+partdom [definition, in Combi.Combi.partition]
+partdomP [lemma, in Combi.Combi.partition]
+partdomsh [definition, in Combi.Combi.partition]
+partdomshP [lemma, in Combi.Combi.partition]
+partdomsh_merge [lemma, in Combi.Combi.partition]
+partdomsh_merge1 [lemma, in Combi.Combi.partition]
+partdomsh_cons2E [lemma, in Combi.Combi.partition]
+partdomsh_cons2 [lemma, in Combi.Combi.partition]
+partdomsh_add [lemma, in Combi.Combi.partition]
+partdom_union_intpart [lemma, in Combi.Combi.partition]
+partdom_union_intpartr [lemma, in Combi.Combi.partition]
+partdom_union_intpartl [lemma, in Combi.Combi.partition]
+partdom_consK [lemma, in Combi.Combi.partition]
+partdom_anti [lemma, in Combi.Combi.partition]
+partdom_trans [lemma, in Combi.Combi.partition]
+partdom_refl [lemma, in Combi.Combi.partition]
+partdom_nil [lemma, in Combi.Combi.partition]
+partition [library]
+partition_box_skew__canonical__fintype_SubFinite [definition, in Combi.Combi.partition]
+partition_box_skew__canonical__fintype_Finite [definition, in Combi.Combi.partition]
+partition_box_skew__canonical__choice_SubCountable [definition, in Combi.Combi.partition]
+partition_box_skew__canonical__choice_Countable [definition, in Combi.Combi.partition]
+partition_box_skew__canonical__choice_SubChoice [definition, in Combi.Combi.partition]
+partition_box_skew__canonical__choice_Choice [definition, in Combi.Combi.partition]
+partition_box_skew__canonical__eqtype_SubEquality [definition, in Combi.Combi.partition]
+partition_box_skew__canonical__eqtype_Equality [definition, in Combi.Combi.partition]
+partition_box_skew__canonical__eqtype_SubType [definition, in Combi.Combi.partition]
+partition_intpartn__canonical__ordtype_InhFinite [definition, in Combi.Combi.partition]
+partition_intpartn__canonical__ordtype_Inhabited [definition, in Combi.Combi.partition]
+partition_intpartn__canonical__fintype_SubFinite [definition, in Combi.Combi.partition]
+partition_intpartn__canonical__fintype_Finite [definition, in Combi.Combi.partition]
+partition_intpartn__canonical__choice_SubCountable [definition, in Combi.Combi.partition]
+partition_intpartn__canonical__choice_Countable [definition, in Combi.Combi.partition]
+partition_intpartn__canonical__choice_SubChoice [definition, in Combi.Combi.partition]
+partition_intpartn__canonical__choice_Choice [definition, in Combi.Combi.partition]
+partition_intpartn__canonical__eqtype_SubEquality [definition, in Combi.Combi.partition]
+partition_intpartn__canonical__eqtype_Equality [definition, in Combi.Combi.partition]
+partition_intpartn__canonical__eqtype_SubType [definition, in Combi.Combi.partition]
+partition_intpart__canonical__ordtype_Inhabited [definition, in Combi.Combi.partition]
+partition_intpart__canonical__choice_SubCountable [definition, in Combi.Combi.partition]
+partition_intpart__canonical__choice_Countable [definition, in Combi.Combi.partition]
+partition_intpart__canonical__choice_SubChoice [definition, in Combi.Combi.partition]
+partition_intpart__canonical__choice_Choice [definition, in Combi.Combi.partition]
+partition_intpart__canonical__eqtype_SubEquality [definition, in Combi.Combi.partition]
+partition_intpart__canonical__eqtype_Equality [definition, in Combi.Combi.partition]
+partition_intpart__canonical__eqtype_SubType [definition, in Combi.Combi.partition]
+partition_psupport [lemma, in Combi.SymGroup.cycles]
+partition_porbits [lemma, in Combi.SymGroup.cycles]
+partm [definition, in Combi.MPoly.antisym]
+partmE [lemma, in Combi.MPoly.antisym]
+partmK [lemma, in Combi.MPoly.antisym]
+partmP [lemma, in Combi.MPoly.antisym]
+partm_permK [lemma, in Combi.MPoly.antisym]
+partnCT [definition, in Combi.SymGroup.cycletype]
+partnCTE [lemma, in Combi.SymGroup.cycletype]
+partnCTK [lemma, in Combi.SymGroup.cycletype]
+partnCT_congr [lemma, in Combi.SymGroup.cycletype]
+partn_of_compn [definition, in Combi.Combi.composition]
+PartOfn [section, in Combi.Combi.partition]
+PartOfn.n [variable, in Combi.Combi.partition]
+'P [notation, in Combi.Combi.partition]
+partsums [definition, in Combi.Combi.composition]
+partsums_cons [lemma, in Combi.Combi.composition]
+partsums_cat [lemma, in Combi.Combi.composition]
+part_rem_corner_ind [lemma, in Combi.Combi.partition]
+part_nseq1P [lemma, in Combi.Combi.partition]
+part_includedP [lemma, in Combi.Combi.partition]
+part_sumn_rectangle [lemma, in Combi.Combi.partition]
+part_eqP [lemma, in Combi.Combi.partition]
+part_leq_head [lemma, in Combi.Combi.partition]
+part_head_non0 [lemma, in Combi.Combi.partition]
+part_head0F [lemma, in Combi.Combi.partition]
+part_yam_of_stdtab [lemma, in Combi.Combi.stdtab]
+part_rcons_ind [lemma, in Combi.Combi.Yamanouchi]
+part_set1_eq [lemma, in Combi.Combi.setpartition]
+part_ordinal1 [lemma, in Combi.Combi.setpartition]
+part_ordinal0 [lemma, in Combi.Combi.setpartition]
+part_sumn_count [lemma, in Combi.MPoly.sympoly]
+part_of_comp_subproof [lemma, in Combi.Combi.composition]
+part_is_comp [lemma, in Combi.Combi.composition]
+part0 [lemma, in Combi.Combi.partition]
+path_braidred_catl [lemma, in Combi.SymGroup.presentSn]
+pblock_trivsetpart [lemma, in Combi.Combi.setpartition]
+pblock_setpart1 [lemma, in Combi.Combi.setpartition]
+pblock_notin [lemma, in Combi.Combi.setpartition]
+pblock_in [lemma, in Combi.Combi.setpartition]
+pchar0_algC [lemma, in Combi.MPoly.Cauchy]
+pchar0_rat [lemma, in Combi.MPoly.Cauchy]
+pchar0_algC [lemma, in Combi.MPoly.homogsym]
+pchar0_algC [lemma, in Combi.SymGroup.Frobenius_char]
+pchar0_rat [lemma, in Combi.SymGroup.Frobenius_char]
+permcent [library]
+PermComp [section, in Combi.SSRcomplements.permcomp]
+permcomp [library]
+PermComp.T [variable, in Combi.SSRcomplements.permcomp]
+permCT [definition, in Combi.SymGroup.cycletype]
+permCTP [lemma, in Combi.SymGroup.cycletype]
+permCT_colpartn [lemma, in Combi.SymGroup.cycletype]
+permCT_colpartn_card [lemma, in Combi.SymGroup.cycletype]
+permCT_exists [lemma, in Combi.SymGroup.cycletype]
+permcycles [definition, in Combi.SymGroup.permcent]
+PermCycles [section, in Combi.SymGroup.permcent]
+PermCycles [section, in Combi.SymGroup.cycles]
+permcyclesC [lemma, in Combi.SymGroup.permcent]
+permcyclesK [lemma, in Combi.SymGroup.permcent]
+permcyclesM [lemma, in Combi.SymGroup.permcent]
+permcyclesP [lemma, in Combi.SymGroup.permcent]
+permcycles_inj [lemma, in Combi.SymGroup.permcent]
+permcycles_morphism [definition, in Combi.SymGroup.permcent]
+PermCycles.CM [section, in Combi.SymGroup.permcent]
+PermCycles.CM.s [variable, in Combi.SymGroup.permcent]
+PermCycles.T [variable, in Combi.SymGroup.permcent]
+PermCycles.T [variable, in Combi.SymGroup.cycles]
+'CC ( _ ) (group_scope) [notation, in Combi.SymGroup.permcent]
+PermEq [section, in Combi.Combi.std]
+PermEq.Alph [variable, in Combi.Combi.std]
+PermEq.disp [variable, in Combi.Combi.std]
+permKP [lemma, in Combi.SSRcomplements.permcomp]
+PermLattice [module, in Combi.SymGroup.weak_order]
+PermLattice.Exports [module, in Combi.SymGroup.weak_order]
+PermLattice.Exports.bottom_perm [lemma, in Combi.SymGroup.weak_order]
+PermLattice.Exports.invset_join [lemma, in Combi.SymGroup.weak_order]
+PermLattice.Exports.n [abbreviation, in Combi.SymGroup.weak_order]
+PermLattice.Exports.PermLattice [section, in Combi.SymGroup.weak_order]
+PermLattice.Exports.PermLattice.n0 [variable, in Combi.SymGroup.weak_order]
+PermLattice.Exports.perm_join_meetE [lemma, in Combi.SymGroup.weak_order]
+PermLattice.Exports.top_perm [lemma, in Combi.SymGroup.weak_order]
+PermLattice.HB_unnamed_factory_22 [definition, in Combi.SymGroup.weak_order]
+PermLattice.HB_unnamed_factory_20 [definition, in Combi.SymGroup.weak_order]
+PermLattice.HB_unnamed_mixin_19 [definition, in Combi.SymGroup.weak_order]
+PermLattice.HB_unnamed_mixin_18 [definition, in Combi.SymGroup.weak_order]
+PermLattice.HB_unnamed_factory_15 [definition, in Combi.SymGroup.weak_order]
+PermLattice.infperm [definition, in Combi.SymGroup.weak_order]
+PermLattice.infperm_is_meet [lemma, in Combi.SymGroup.weak_order]
+PermLattice.invset_supperm [lemma, in Combi.SymGroup.weak_order]
+PermLattice.n [abbreviation, in Combi.SymGroup.weak_order]
+PermLattice.Order_POrder_MeetJoin_isLattice__to__Order_POrder_isMeetSemilattice [definition, in Combi.SymGroup.weak_order]
+PermLattice.Order_POrder_MeetJoin_isLattice__to__Order_POrder_isJoinSemilattice [definition, in Combi.SymGroup.weak_order]
+PermLattice.PermLattice [section, in Combi.SymGroup.weak_order]
+PermLattice.PermLattice.n0 [variable, in Combi.SymGroup.weak_order]
+PermLattice.perm_perm_of__canonical__Order_FinTBLattice [definition, in Combi.SymGroup.weak_order]
+PermLattice.perm_perm_of__canonical__Order_FinTBPOrder [definition, in Combi.SymGroup.weak_order]
+PermLattice.perm_perm_of__canonical__Order_FinTBPreorder [definition, in Combi.SymGroup.weak_order]
+PermLattice.perm_perm_of__canonical__Order_FinTJoinSemilattice [definition, in Combi.SymGroup.weak_order]
+PermLattice.perm_perm_of__canonical__Order_FinTPOrder [definition, in Combi.SymGroup.weak_order]
+PermLattice.perm_perm_of__canonical__Order_FinTPreorder [definition, in Combi.SymGroup.weak_order]
+PermLattice.perm_perm_of__canonical__Order_TBLattice [definition, in Combi.SymGroup.weak_order]
+PermLattice.perm_perm_of__canonical__Order_TBJoinSemilattice [definition, in Combi.SymGroup.weak_order]
+PermLattice.perm_perm_of__canonical__Order_TBMeetSemilattice [definition, in Combi.SymGroup.weak_order]
+PermLattice.perm_perm_of__canonical__Order_TBPOrder [definition, in Combi.SymGroup.weak_order]
+PermLattice.perm_perm_of__canonical__Order_TBPreorder [definition, in Combi.SymGroup.weak_order]
+PermLattice.perm_perm_of__canonical__Order_TLattice [definition, in Combi.SymGroup.weak_order]
+PermLattice.perm_perm_of__canonical__Order_TJoinSemilattice [definition, in Combi.SymGroup.weak_order]
+PermLattice.perm_perm_of__canonical__Order_TMeetSemilattice [definition, in Combi.SymGroup.weak_order]
+PermLattice.perm_perm_of__canonical__Order_TPOrder [definition, in Combi.SymGroup.weak_order]
+PermLattice.perm_perm_of__canonical__Order_TPreorder [definition, in Combi.SymGroup.weak_order]
+PermLattice.perm_perm_of__canonical__Order_BLattice [definition, in Combi.SymGroup.weak_order]
+PermLattice.perm_perm_of__canonical__Order_BJoinSemilattice [definition, in Combi.SymGroup.weak_order]
+PermLattice.perm_perm_of__canonical__Order_FinBMeetSemilattice [definition, in Combi.SymGroup.weak_order]
+PermLattice.perm_perm_of__canonical__Order_BMeetSemilattice [definition, in Combi.SymGroup.weak_order]
+PermLattice.perm_perm_of__canonical__Order_FinBPOrder [definition, in Combi.SymGroup.weak_order]
+PermLattice.perm_perm_of__canonical__Order_BPOrder [definition, in Combi.SymGroup.weak_order]
+PermLattice.perm_perm_of__canonical__Order_FinBPreorder [definition, in Combi.SymGroup.weak_order]
+PermLattice.perm_perm_of__canonical__Order_BPreorder [definition, in Combi.SymGroup.weak_order]
+PermLattice.perm_perm_of__canonical__Order_FinLattice [definition, in Combi.SymGroup.weak_order]
+PermLattice.perm_perm_of__canonical__Order_FinMeetSemilattice [definition, in Combi.SymGroup.weak_order]
+PermLattice.perm_perm_of__canonical__Order_Lattice [definition, in Combi.SymGroup.weak_order]
+PermLattice.perm_perm_of__canonical__Order_MeetSemilattice [definition, in Combi.SymGroup.weak_order]
+PermLattice.perm_perm_of__canonical__Order_FinJoinSemilattice [definition, in Combi.SymGroup.weak_order]
+PermLattice.perm_perm_of__canonical__Order_JoinSemilattice [definition, in Combi.SymGroup.weak_order]
+PermLattice.supperm [definition, in Combi.SymGroup.weak_order]
+PermLattice.suppermC [lemma, in Combi.SymGroup.weak_order]
+PermLattice.suppermP [lemma, in Combi.SymGroup.weak_order]
+PermLattice.suppermPl [lemma, in Combi.SymGroup.weak_order]
+PermLattice.suppermPr [lemma, in Combi.SymGroup.weak_order]
+PermLattice.supperm_is_join [lemma, in Combi.SymGroup.weak_order]
+PermOfInvSetEltr [section, in Combi.SymGroup.presentSn]
+PermOfInvSetEltr.n0 [variable, in Combi.SymGroup.presentSn]
+'s_[ _ ] [notation, in Combi.SymGroup.presentSn]
+'s_ _ [notation, in Combi.SymGroup.presentSn]
+permuted [record, in Combi.Combi.permuted]
+Permuted [section, in Combi.Combi.permuted]
+permuted [library]
+permutedact [definition, in Combi.Combi.permuted]
+permutedact_is_action [lemma, in Combi.Combi.permuted]
+permutedact_subproof [lemma, in Combi.Combi.permuted]
+permutedP [lemma, in Combi.Combi.permuted]
+permuted_action_trans [lemma, in Combi.Combi.permuted]
+permuted_action [definition, in Combi.Combi.permuted]
+permuted_permuted__canonical__fintype_SubFinite [definition, in Combi.Combi.permuted]
+permuted_permuted__canonical__fintype_Finite [definition, in Combi.Combi.permuted]
+permuted_permuted__canonical__choice_SubCountable [definition, in Combi.Combi.permuted]
+permuted_permuted__canonical__choice_Countable [definition, in Combi.Combi.permuted]
+permuted_permuted__canonical__choice_SubChoice [definition, in Combi.Combi.permuted]
+permuted_permuted__canonical__choice_Choice [definition, in Combi.Combi.permuted]
+permuted_permuted__canonical__eqtype_SubEquality [definition, in Combi.Combi.permuted]
+permuted_permuted__canonical__eqtype_Equality [definition, in Combi.Combi.permuted]
+permuted_permuted__canonical__eqtype_SubType [definition, in Combi.Combi.permuted]
+permuted_seq [definition, in Combi.Combi.permuted]
+permuted_tuple [definition, in Combi.Combi.permuted]
+Permuted.SizeN [section, in Combi.Combi.permuted]
+Permuted.SizeN.n [variable, in Combi.Combi.permuted]
+Permuted.T [variable, in Combi.Combi.permuted]
+perm_size_uniq [lemma, in Combi.Combi.std]
+perm_stdE [lemma, in Combi.Combi.std]
+perm_of_std [lemma, in Combi.Combi.std]
+perm_std [lemma, in Combi.Combi.std]
+perm_union_intpartn [lemma, in Combi.Combi.partition]
+perm_union_intpart [lemma, in Combi.Combi.partition]
+perm_enum_basis [lemma, in Combi.MPoly.Schur_mpoly]
+perm_smalln [lemma, in Combi.MPoly.antisym]
+perm_mpart_partm [lemma, in Combi.MPoly.antisym]
+perm_partm [lemma, in Combi.MPoly.antisym]
+perm_mpart [lemma, in Combi.MPoly.antisym]
+perm_sfilterleq [lemma, in Combi.LRrule.shuffle]
+perm_sfiltergtn [lemma, in Combi.LRrule.shuffle]
+perm_shiftn_std [lemma, in Combi.LRrule.shuffle]
+perm_shuffle [lemma, in Combi.LRrule.shuffle]
+perm_join_tab [lemma, in Combi.Combi.skewtab]
+perm_KostkaMon [lemma, in Combi.MPoly.Schur_altdef]
+perm_RS [lemma, in Combi.LRrule.Schensted]
+perm_tabword_of_tuple [lemma, in Combi.LRrule.freeSchur]
+perm_commword [lemma, in Combi.LRrule.freeSchur]
+perm_multinomial [lemma, in Combi.Combi.multinomial]
+perm_append_nth [lemma, in Combi.Combi.stdtab]
+perm_of_setpartE [lemma, in Combi.SymGroup.cycletype]
+perm_of_setpart [definition, in Combi.SymGroup.cycletype]
+perm_of_porbitE [lemma, in Combi.SymGroup.cycletype]
+perm_of_porbit [definition, in Combi.SymGroup.cycletype]
+perm_of_porbit_subproof [lemma, in Combi.SymGroup.cycletype]
+perm_decE [lemma, in Combi.SymGroup.cycles]
+perm_dec [definition, in Combi.SymGroup.cycles]
+perm_evalseq [lemma, in Combi.Combi.Yamanouchi]
+perm_display [lemma, in Combi.SymGroup.weak_order]
+perm_eq_permuted_tuple [lemma, in Combi.Combi.permuted]
+perm_invar_congr [lemma, in Combi.Basic.congr]
+perm_invar [lemma, in Combi.Basic.congr]
+perm_bound [lemma, in Combi.Basic.congr]
+perm_rembig [lemma, in Combi.Basic.ordtype]
+perm_allLtnE [lemma, in Combi.Basic.ordtype]
+perm_allLtn [lemma, in Combi.Basic.ordtype]
+perm_allLeqE [lemma, in Combi.Basic.ordtype]
+perm_allLeq [lemma, in Combi.Basic.ordtype]
+perm_on_prods_length [lemma, in Combi.SymGroup.presentSn]
+perm_on_prods_length_ord [lemma, in Combi.SymGroup.presentSn]
+perm_on_prods [lemma, in Combi.SymGroup.presentSn]
+perm_on_cocode_recP [lemma, in Combi.SymGroup.presentSn]
+perm_of_invsetK [lemma, in Combi.SymGroup.presentSn]
+perm_of_invset [definition, in Combi.SymGroup.presentSn]
+perm_of_relP [lemma, in Combi.SymGroup.presentSn]
+perm_partn [definition, in Combi.MPoly.sympoly]
+pfminh [definition, in Combi.Combi.Dyckword]
+pfminhE [lemma, in Combi.Combi.Dyckword]
+pfminhP [lemma, in Combi.Combi.Dyckword]
+pfminh_rrw [lemma, in Combi.Combi.Dyckword]
+pfminh_pos [lemma, in Combi.Combi.Dyckword]
+pfminh_min [lemma, in Combi.Combi.Dyckword]
+pfminh_size [lemma, in Combi.Combi.Dyckword]
+Pieri_colpartn [lemma, in Combi.LRrule.therule]
+Pieri_rowpartn [lemma, in Combi.LRrule.therule]
+pihomog_sym [lemma, in Combi.MPoly.homogsym]
+pihomog_mPo [lemma, in Combi.MPoly.sympoly]
+Pla [abbreviation, in Combi.MPoly.homogsym]
+plactcongr [definition, in Combi.LRrule.plactic]
+PlactDual [section, in Combi.LRrule.plactic]
+PlactDual.Alph [variable, in Combi.LRrule.plactic]
+PlactDual.disp [variable, in Combi.LRrule.plactic]
+PlactDual.word [variable, in Combi.LRrule.plactic]
+plactic [library]
+plactic_RS [lemma, in Combi.LRrule.Greene_inv]
+plactic_shapeRS [lemma, in Combi.LRrule.Greene_inv]
+plactic_shapeRS_row_proof [lemma, in Combi.LRrule.Greene_inv]
+plactic_filter_lt [lemma, in Combi.LRrule.plactic]
+plactic_filter_le [lemma, in Combi.LRrule.plactic]
+plactic_filter_gt [lemma, in Combi.LRrule.plactic]
+plactic_filter_ge [lemma, in Combi.LRrule.plactic]
+plactrule [definition, in Combi.LRrule.plactic]
+plactruleP [lemma, in Combi.LRrule.plactic]
+plactrule_homog [lemma, in Combi.LRrule.plactic]
+plactrule_sym [lemma, in Combi.LRrule.plactic]
+plact_changeUT [lemma, in Combi.LRrule.freeSchur]
+plact_changeUT_drop [lemma, in Combi.LRrule.freeSchur]
+plact_changeUT_take [lemma, in Combi.LRrule.freeSchur]
+plact_from_yam [lemma, in Combi.LRrule.Yam_plact]
+plact_map_in_incr [lemma, in Combi.LRrule.plactic]
+plact_from_dualE [lemma, in Combi.LRrule.plactic]
+plact_dualE [lemma, in Combi.LRrule.plactic]
+plact_from_revdual [lemma, in Combi.LRrule.plactic]
+plact_revdual [lemma, in Combi.LRrule.plactic]
+plact_uniq_revE [lemma, in Combi.LRrule.plactic]
+plact_uniq_rev [lemma, in Combi.LRrule.plactic]
+plact_col [lemma, in Combi.LRrule.plactic]
+plact_row [lemma, in Combi.LRrule.plactic]
+plact_homog [lemma, in Combi.LRrule.plactic]
+plact_cat [definition, in Combi.LRrule.plactic]
+plact_catr [definition, in Combi.LRrule.plactic]
+plact_catl [definition, in Combi.LRrule.plactic]
+plact_rcons [definition, in Combi.LRrule.plactic]
+plact_cons [definition, in Combi.LRrule.plactic]
+plact_is_congr [lemma, in Combi.LRrule.plactic]
+plact_trans [lemma, in Combi.LRrule.plactic]
+plact_ltrans [lemma, in Combi.LRrule.plactic]
+plact_sym [lemma, in Combi.LRrule.plactic]
+plact_refl [lemma, in Combi.LRrule.plactic]
+plact_equiv [lemma, in Combi.LRrule.plactic]
+plact1 [definition, in Combi.LRrule.plactic]
+plact1dual [lemma, in Combi.LRrule.plactic]
+plact1I [lemma, in Combi.LRrule.plactic]
+plact1i [definition, in Combi.LRrule.plactic]
+plact1idual [lemma, in Combi.LRrule.plactic]
+plact1iP [lemma, in Combi.LRrule.plactic]
+plact1i_homog [lemma, in Combi.LRrule.plactic]
+plact1P [lemma, in Combi.LRrule.plactic]
+plact1_ge [lemma, in Combi.LRrule.plactic]
+plact1_homog [lemma, in Combi.LRrule.plactic]
+plact2 [definition, in Combi.LRrule.plactic]
+plact2dual [lemma, in Combi.LRrule.plactic]
+plact2I [lemma, in Combi.LRrule.plactic]
+plact2i [definition, in Combi.LRrule.plactic]
+plact2idual [lemma, in Combi.LRrule.plactic]
+plact2iP [lemma, in Combi.LRrule.plactic]
+plact2i_homog [lemma, in Combi.LRrule.plactic]
+plact2P [lemma, in Combi.LRrule.plactic]
+plact2_ge [lemma, in Combi.LRrule.plactic]
+plact2_homog [lemma, in Combi.LRrule.plactic]
+Plla [abbreviation, in Combi.MPoly.homogsym]
+Pm [abbreviation, in Combi.MPoly.Schur_altdef]
+pnval [projection, in Combi.Combi.partition]
+points [projection, in ALEA.Qmeasure]
+pol [abbreviation, in Combi.MPoly.Cauchy]
+Pol [abbreviation, in Combi.MPoly.homogsym]
+polX [abbreviation, in Combi.MPoly.Cauchy]
+polXY [abbreviation, in Combi.MPoly.Cauchy]
+polXY [definition, in Combi.MPoly.Cauchy]
+polXY_scaleAr [lemma, in Combi.MPoly.Cauchy]
+polXY_scaleAl [lemma, in Combi.MPoly.Cauchy]
+polXY_scale [definition, in Combi.MPoly.Cauchy]
+polX_XY_is_linear [lemma, in Combi.MPoly.Cauchy]
+polX_XY_is_monoid_morphism [lemma, in Combi.MPoly.Cauchy]
+polX_XY_is_zmod_morphism [lemma, in Combi.MPoly.Cauchy]
+polX_XY [definition, in Combi.MPoly.Cauchy]
+polY [abbreviation, in Combi.MPoly.Cauchy]
+polylang [definition, in Combi.LRrule.freeSchur]
+polyXY_scale [lemma, in Combi.MPoly.Cauchy]
+polyX_inj [lemma, in Combi.MPoly.antisym]
+polY_XY_is_linear [lemma, in Combi.MPoly.Cauchy]
+polY_XY_is_monoid_morphism [lemma, in Combi.MPoly.Cauchy]
+polY_XY_is_zmod_morphism [lemma, in Combi.MPoly.Cauchy]
+polY_XY [definition, in Combi.MPoly.Cauchy]
+polZ [abbreviation, in Combi.MPoly.Cauchy]
+PorbitBijection [section, in Combi.SymGroup.cycletype]
+PorbitBijection.CM [variable, in Combi.SymGroup.cycletype]
+PorbitBijection.s [variable, in Combi.SymGroup.cycletype]
+PorbitBijection.t [variable, in Combi.SymGroup.cycletype]
+PorbitBijection.U [variable, in Combi.SymGroup.cycletype]
+PorbitBijection.V [variable, in Combi.SymGroup.cycletype]
+porbitgrpE [lemma, in Combi.SymGroup.permcent]
+porbitPb [lemma, in Combi.SymGroup.cycletype]
+porbits_tinj [lemma, in Combi.SymGroup.towerSn]
+porbits_tperm [lemma, in Combi.SymGroup.cycletype]
+porbits_perm_of_setpart [lemma, in Combi.SymGroup.cycletype]
+porbits_of_set [lemma, in Combi.SymGroup.cycletype]
+porbits_conjg [lemma, in Combi.SymGroup.cycletype]
+porbits_map [record, in Combi.SymGroup.cycletype]
+porbit_permcycles [lemma, in Combi.SymGroup.permcent]
+porbit_tinj_rshift [lemma, in Combi.SymGroup.towerSn]
+porbit_tinj_lshift [lemma, in Combi.SymGroup.towerSn]
+porbit_tpermR [lemma, in Combi.SymGroup.cycletype]
+porbit_tpermL [lemma, in Combi.SymGroup.cycletype]
+porbit_tpermD [lemma, in Combi.SymGroup.cycletype]
+porbit_set_of_set [lemma, in Combi.SymGroup.cycletype]
+porbit_conjg [lemma, in Combi.SymGroup.cycletype]
+porbit_cymap [lemma, in Combi.SymGroup.cycletype]
+porbit_cymapcan [lemma, in Combi.SymGroup.cycletype]
+porbit_set_of_disjoint [lemma, in Combi.SymGroup.cycles]
+porbit_set_restr [lemma, in Combi.SymGroup.cycles]
+porbit_restr_perm [lemma, in Combi.SymGroup.cycles]
+porbit_set_astabs [lemma, in Combi.SymGroup.cycles]
+porbit_set_eq0 [lemma, in Combi.SymGroup.cycles]
+porbit_set [definition, in Combi.SymGroup.cycles]
+porbit_mod [lemma, in Combi.SymGroup.cycles]
+porbit_fix [lemma, in Combi.SymGroup.cycles]
+pos [abbreviation, in Combi.LRrule.Schensted]
+posbig [definition, in Combi.Basic.ordtype]
+posbigE [lemma, in Combi.Basic.ordtype]
+posbig_invseq [lemma, in Combi.LRrule.stdplact]
+posbig_take_dropE [lemma, in Combi.Basic.ordtype]
+posbig_size [lemma, in Combi.Basic.ordtype]
+posbig_size_cons [lemma, in Combi.Basic.ordtype]
+pqpair [projection, in Combi.LRrule.Schensted]
+pqpair_inj [lemma, in Combi.LRrule.Schensted]
+predi [definition, in Combi.MPoly.antisym]
+predi_eltrpE [lemma, in Combi.MPoly.antisym]
+predi_eltrp [lemma, in Combi.MPoly.antisym]
+predLR_bij_LRsupport [lemma, in Combi.LRrule.freeSchur]
+pred_LRtriple_conj [lemma, in Combi.LRrule.shuffle]
+pred_LRtriple_fast_filter_gt [lemma, in Combi.LRrule.shuffle]
+pred_LRtriple_fast [definition, in Combi.LRrule.shuffle]
+pred_LRtriple [definition, in Combi.LRrule.shuffle]
+pred_LRtriple_fast_bijLRyam [lemma, in Combi.LRrule.therule]
+pred0_std [lemma, in Combi.LRrule.shuffle]
+prefixes [definition, in Combi.Combi.Dyckword]
+PreimPartition [section, in Combi.Combi.Dyckword]
+PreimPartition.D [variable, in Combi.Combi.Dyckword]
+PreimPartition.f [variable, in Combi.Combi.Dyckword]
+PreimPartition.rT [variable, in Combi.Combi.Dyckword]
+PreimPartition.T [variable, in Combi.Combi.Dyckword]
+preimset_trivIset [lemma, in Combi.SSRcomplements.tools]
+preim_Dyck_of_balE [lemma, in Combi.Combi.Dyckword]
+PresentationSn [section, in Combi.SymGroup.presentSn]
+PresentationSn.eltrG [variable, in Combi.SymGroup.presentSn]
+PresentationSn.gT [variable, in Combi.SymGroup.presentSn]
+PresentationSn.n [variable, in Combi.SymGroup.presentSn]
+'g_ _ [notation, in Combi.SymGroup.presentSn]
+presentation_S4 [lemma, in Combi.SymGroup.presentSn]
+presentation_S3 [lemma, in Combi.SymGroup.presentSn]
+presentation_S2 [lemma, in Combi.SymGroup.presentSn]
+presentation_Sn_eltr [lemma, in Combi.SymGroup.presentSn]
+presentSn [library]
+presentSn_codesz__canonical__fintype_SubFinite [definition, in Combi.SymGroup.presentSn]
+presentSn_codesz__canonical__fintype_Finite [definition, in Combi.SymGroup.presentSn]
+presentSn_codesz__canonical__choice_SubCountable [definition, in Combi.SymGroup.presentSn]
+presentSn_codesz__canonical__choice_Countable [definition, in Combi.SymGroup.presentSn]
+presentSn_codesz__canonical__choice_SubChoice [definition, in Combi.SymGroup.presentSn]
+presentSn_codesz__canonical__choice_Choice [definition, in Combi.SymGroup.presentSn]
+presentSn_codesz__canonical__eqtype_SubEquality [definition, in Combi.SymGroup.presentSn]
+presentSn_codesz__canonical__eqtype_Equality [definition, in Combi.SymGroup.presentSn]
+presentSn_codesz__canonical__eqtype_SubType [definition, in Combi.SymGroup.presentSn]
+prob_choose_corner_ends_at [lemma, in Combi.HookFormula.hook]
+ProdGen [section, in Combi.MPoly.sympoly]
+ProdGen.co [variable, in Combi.MPoly.sympoly]
+ProdGen.Defs [section, in Combi.MPoly.sympoly]
+ProdGen.Defs.gen [variable, in Combi.MPoly.sympoly]
+ProdGen.Defs.gen_homog [variable, in Combi.MPoly.sympoly]
+'g_ _ [notation, in Combi.MPoly.sympoly]
+'g[ _ ] [notation, in Combi.MPoly.sympoly]
+ProdGen.gA [variable, in Combi.MPoly.sympoly]
+ProdGen.gB [variable, in Combi.MPoly.sympoly]
+ProdGen.n [variable, in Combi.MPoly.sympoly]
+ProdGen.R [variable, in Combi.MPoly.sympoly]
+'co[ _ ]_ _ [notation, in Combi.MPoly.sympoly]
+'co[ _ ] [notation, in Combi.MPoly.sympoly]
+'gA_ _ [notation, in Combi.MPoly.sympoly]
+'gA[ _ ] [notation, in Combi.MPoly.sympoly]
+'gB_ _ [notation, in Combi.MPoly.sympoly]
+'gB[ _ ] [notation, in Combi.MPoly.sympoly]
+prodsK [lemma, in Combi.SymGroup.presentSn]
+prodsV [lemma, in Combi.SymGroup.presentSn]
+prods_straighten [lemma, in Combi.SymGroup.presentSn]
+prods_reducesE [lemma, in Combi.SymGroup.presentSn]
+prods_wordcd_inj [lemma, in Combi.SymGroup.presentSn]
+prods_codesz_bij [lemma, in Combi.SymGroup.presentSn]
+prods_codesz [definition, in Combi.SymGroup.presentSn]
+prods_iota_ltmi [lemma, in Combi.SymGroup.presentSn]
+prods_iota_mi [lemma, in Combi.SymGroup.presentSn]
+prod_sympXY [lemma, in Combi.MPoly.Cauchy]
+prod_conjg [lemma, in Combi.SymGroup.towerSn]
+prod_hook_length_quot_row [lemma, in Combi.HookFormula.hook]
+prod_of_disjoint [lemma, in Combi.SymGroup.cycles]
+prod_homog [lemma, in Combi.MPoly.sympoly]
+prod_partsum [definition, in Combi.MPoly.sympoly]
+prod_symp_homog [definition, in Combi.MPoly.sympoly]
+prod_symp [definition, in Combi.MPoly.sympoly]
+prod_symh_homog [definition, in Combi.MPoly.sympoly]
+prod_symh [definition, in Combi.MPoly.sympoly]
+prod_syme_homog [definition, in Combi.MPoly.sympoly]
+prod_syme [definition, in Combi.MPoly.sympoly]
+prod_prodgen [lemma, in Combi.MPoly.sympoly]
+prod_gen_cast [lemma, in Combi.MPoly.sympoly]
+prod_gen_colpartn [lemma, in Combi.MPoly.sympoly]
+prod_genM [lemma, in Combi.MPoly.sympoly]
+prod_gen0 [lemma, in Combi.MPoly.sympoly]
+prod_gen_homog [lemma, in Combi.MPoly.sympoly]
+prod_gen [definition, in Combi.MPoly.sympoly]
+psupport [definition, in Combi.SymGroup.cycles]
+psupports_perm_of_porbit [lemma, in Combi.SymGroup.cycletype]
+psupport_perm_of_porbit [lemma, in Combi.SymGroup.cycletype]
+psupport_conjg [lemma, in Combi.SymGroup.cycletype]
+psupport_of_disjoint [lemma, in Combi.SymGroup.cycles]
+psupport_disjointC [lemma, in Combi.SymGroup.cycles]
+psupport_cycle_dec [lemma, in Combi.SymGroup.cycles]
+psupport_restr_perm [lemma, in Combi.SymGroup.cycles]
+psupport_restr_perm_incl [lemma, in Combi.SymGroup.cycles]
+psupport_card_porbit [lemma, in Combi.SymGroup.cycles]
+psupport_stable [lemma, in Combi.SymGroup.cycles]
+psupport_eq0 [lemma, in Combi.SymGroup.cycles]
+psupport_perm_on [lemma, in Combi.SymGroup.cycles]
+psupport_expg [lemma, in Combi.SymGroup.cycles]
+psupport1 [lemma, in Combi.SymGroup.cycles]
+pval [projection, in Combi.Combi.partition]
+pyampair [projection, in Combi.LRrule.Schensted]
+pyampair_inj [lemma, in Combi.LRrule.Schensted]
+

Q

+Qmeasure [library]
+QTableau [section, in Combi.LRrule.Schensted]
+QTableau.disp [variable, in Combi.LRrule.Schensted]
+QTableau.T [variable, in Combi.LRrule.Schensted]
+

R

+Random [definition, in ALEA.Qmeasure]
+Random_in_range [lemma, in ALEA.Qmeasure]
+Random_eq_out [lemma, in ALEA.Qmeasure]
+Random_eq_in [lemma, in ALEA.Qmeasure]
+Random_simpl [lemma, in ALEA.Qmeasure]
+ratO [instance, in ALEA.Qmeasure]
+rcast_com [lemma, in Combi.LRrule.Greene]
+rclass [definition, in Combi.Basic.congr]
+RCons [section, in Combi.Combi.subseq]
+rconsK [lemma, in Combi.SSRcomplements.tools]
+rcons_nilF [lemma, in Combi.SSRcomplements.tools]
+rcons_set_nth [lemma, in Combi.SSRcomplements.tools]
+rcons_bal_of_Dyck [lemma, in Combi.Combi.Dyckword]
+rcons_rcons [lemma, in Combi.LRrule.plactic]
+RCons.T [variable, in Combi.Combi.subseq]
+recforest [definition, in Combi.Combi.ordtree]
+rectree [definition, in Combi.Combi.ordtree]
+Recursion [section, in Combi.Combi.ordtree]
+Recursion.HPnil [variable, in Combi.Combi.ordtree]
+Recursion.IHforest [variable, in Combi.Combi.ordtree]
+Recursion.IHtree [variable, in Combi.Combi.ordtree]
+Recursion.P [variable, in Combi.Combi.ordtree]
+Recursion.PF [variable, in Combi.Combi.ordtree]
+rec_tree [lemma, in Combi.Combi.ordtree]
+reduced [abbreviation, in Combi.SymGroup.presentSn]
+reduced [abbreviation, in Combi.SymGroup.presentSn]
+Reduced [section, in Combi.SymGroup.presentSn]
+reducedM [lemma, in Combi.SymGroup.presentSn]
+reducedP [lemma, in Combi.SymGroup.presentSn]
+reduced_braid [lemma, in Combi.SymGroup.presentSn]
+reduced_wcord [lemma, in Combi.SymGroup.presentSn]
+reduced_rconsK [lemma, in Combi.SymGroup.presentSn]
+reduced_consK [lemma, in Combi.SymGroup.presentSn]
+reduced_catl [lemma, in Combi.SymGroup.presentSn]
+reduced_catr [lemma, in Combi.SymGroup.presentSn]
+reduced_sprod_code [lemma, in Combi.SymGroup.presentSn]
+reduced_revE [lemma, in Combi.SymGroup.presentSn]
+reduced_rev [lemma, in Combi.SymGroup.presentSn]
+reduced_iiF [lemma, in Combi.SymGroup.presentSn]
+reduced_nil [lemma, in Combi.SymGroup.presentSn]
+reduced_word [definition, in Combi.SymGroup.presentSn]
+Reduced.n [variable, in Combi.SymGroup.presentSn]
+_ =Br _ [notation, in Combi.SymGroup.presentSn]
+'s_[ _ ] [notation, in Combi.SymGroup.presentSn]
+'s_ _ [notation, in Combi.SymGroup.presentSn]
+reduceP [lemma, in Combi.SymGroup.presentSn]
+reduces [definition, in Combi.SymGroup.presentSn]
+reducesP [lemma, in Combi.SymGroup.presentSn]
+reduces_catl [lemma, in Combi.SymGroup.presentSn]
+RefinementOrder [module, in Combi.Combi.composition]
+RefinementOrder.botEcompnref [lemma, in Combi.Combi.composition]
+RefinementOrder.compnref_rev [lemma, in Combi.Combi.composition]
+RefinementOrder.compnref_display [lemma, in Combi.Combi.composition]
+RefinementOrder.composition_IsoTop__to__Order_hasTop [definition, in Combi.Combi.composition]
+RefinementOrder.composition_IsoBottom__to__Order_hasBottom [definition, in Combi.Combi.composition]
+RefinementOrder.descset_colcompn [lemma, in Combi.Combi.composition]
+RefinementOrder.descset_rowcompn [lemma, in Combi.Combi.composition]
+RefinementOrder.descset_join [lemma, in Combi.Combi.composition]
+RefinementOrder.descset_meet [lemma, in Combi.Combi.composition]
+RefinementOrder.descset_mono [lemma, in Combi.Combi.composition]
+RefinementOrder.eqtype_SubType__to__eqtype_isSub [definition, in Combi.Combi.composition]
+RefinementOrder.Exports [module, in Combi.Combi.composition]
+RefinementOrder.Exports.botEcompnref [definition, in Combi.Combi.composition]
+RefinementOrder.Exports.compnref_rev [definition, in Combi.Combi.composition]
+RefinementOrder.Exports.descset_join [definition, in Combi.Combi.composition]
+RefinementOrder.Exports.descset_meet [definition, in Combi.Combi.composition]
+RefinementOrder.Exports.descset_mono [definition, in Combi.Combi.composition]
+RefinementOrder.Exports.intcompnref [abbreviation, in Combi.Combi.composition]
+RefinementOrder.Exports.leEcompnref [definition, in Combi.Combi.composition]
+RefinementOrder.Exports.topEcompnref [definition, in Combi.Combi.composition]
+RefinementOrder.fintype_Finite__to__fintype_isFinite [definition, in Combi.Combi.composition]
+RefinementOrder.fintype_Finite__to__eqtype_hasDecEq [definition, in Combi.Combi.composition]
+RefinementOrder.fintype_Finite__to__choice_Choice_isCountable [definition, in Combi.Combi.composition]
+RefinementOrder.fintype_Finite__to__choice_hasChoice [definition, in Combi.Combi.composition]
+RefinementOrder.HB_unnamed_mixin_73 [definition, in Combi.Combi.composition]
+RefinementOrder.HB_unnamed_factory_71 [definition, in Combi.Combi.composition]
+RefinementOrder.HB_unnamed_mixin_70 [definition, in Combi.Combi.composition]
+RefinementOrder.HB_unnamed_factory_68 [definition, in Combi.Combi.composition]
+RefinementOrder.HB_unnamed_mixin_67 [definition, in Combi.Combi.composition]
+RefinementOrder.HB_unnamed_factory_63 [definition, in Combi.Combi.composition]
+RefinementOrder.HB_unnamed_mixin_62 [definition, in Combi.Combi.composition]
+RefinementOrder.HB_unnamed_mixin_61 [definition, in Combi.Combi.composition]
+RefinementOrder.HB_unnamed_factory_58 [definition, in Combi.Combi.composition]
+RefinementOrder.HB_unnamed_mixin_57 [definition, in Combi.Combi.composition]
+RefinementOrder.HB_unnamed_factory_55 [definition, in Combi.Combi.composition]
+RefinementOrder.HB_unnamed_mixin_54 [definition, in Combi.Combi.composition]
+RefinementOrder.HB_unnamed_mixin_53 [definition, in Combi.Combi.composition]
+RefinementOrder.HB_unnamed_factory_50 [definition, in Combi.Combi.composition]
+RefinementOrder.HB_unnamed_mixin_49 [definition, in Combi.Combi.composition]
+RefinementOrder.HB_unnamed_mixin_48 [definition, in Combi.Combi.composition]
+RefinementOrder.HB_unnamed_mixin_47 [definition, in Combi.Combi.composition]
+RefinementOrder.HB_unnamed_mixin_46 [definition, in Combi.Combi.composition]
+RefinementOrder.HB_unnamed_factory_41 [definition, in Combi.Combi.composition]
+RefinementOrder.HB_unnamed_mixin_40 [definition, in Combi.Combi.composition]
+RefinementOrder.HB_unnamed_factory_38 [definition, in Combi.Combi.composition]
+RefinementOrder.leEcompnref [lemma, in Combi.Combi.composition]
+RefinementOrder.Order_IsoDistrLattice__to__Order_Lattice_isDistributive [definition, in Combi.Combi.composition]
+RefinementOrder.Order_IsoLattice__to__Order_POrder_isMeetSemilattice [definition, in Combi.Combi.composition]
+RefinementOrder.Order_IsoLattice__to__Order_POrder_isJoinSemilattice [definition, in Combi.Combi.composition]
+RefinementOrder.Order_isPOrder__to__Order_isDuallyPreorder [definition, in Combi.Combi.composition]
+RefinementOrder.Order_isPOrder__to__Order_Preorder_isDuallyPOrder [definition, in Combi.Combi.composition]
+RefinementOrder.ordtype_isInhabitedType__to__ordtype_isInhabited [definition, in Combi.Combi.composition]
+RefinementOrder.RefinementOrder [section, in Combi.Combi.composition]
+RefinementOrder.RefinementOrder_type__canonical__Order_FinTBDistrLattice [definition, in Combi.Combi.composition]
+RefinementOrder.RefinementOrder_type__canonical__Order_FinTBLattice [definition, in Combi.Combi.composition]
+RefinementOrder.RefinementOrder_type__canonical__Order_FinTBPOrder [definition, in Combi.Combi.composition]
+RefinementOrder.RefinementOrder_type__canonical__Order_FinTBPreorder [definition, in Combi.Combi.composition]
+RefinementOrder.RefinementOrder_type__canonical__Order_FinTJoinSemilattice [definition, in Combi.Combi.composition]
+RefinementOrder.RefinementOrder_type__canonical__Order_FinTPOrder [definition, in Combi.Combi.composition]
+RefinementOrder.RefinementOrder_type__canonical__Order_FinTPreorder [definition, in Combi.Combi.composition]
+RefinementOrder.RefinementOrder_type__canonical__ordtype_InhTBLattice [definition, in Combi.Combi.composition]
+RefinementOrder.RefinementOrder_type__canonical__Order_TBDistrLattice [definition, in Combi.Combi.composition]
+RefinementOrder.RefinementOrder_type__canonical__Order_TBLattice [definition, in Combi.Combi.composition]
+RefinementOrder.RefinementOrder_type__canonical__Order_TBJoinSemilattice [definition, in Combi.Combi.composition]
+RefinementOrder.RefinementOrder_type__canonical__Order_TBMeetSemilattice [definition, in Combi.Combi.composition]
+RefinementOrder.RefinementOrder_type__canonical__Order_TBPOrder [definition, in Combi.Combi.composition]
+RefinementOrder.RefinementOrder_type__canonical__Order_TBPreorder [definition, in Combi.Combi.composition]
+RefinementOrder.RefinementOrder_type__canonical__Order_TDistrLattice [definition, in Combi.Combi.composition]
+RefinementOrder.RefinementOrder_type__canonical__Order_TLattice [definition, in Combi.Combi.composition]
+RefinementOrder.RefinementOrder_type__canonical__Order_TJoinSemilattice [definition, in Combi.Combi.composition]
+RefinementOrder.RefinementOrder_type__canonical__Order_TMeetSemilattice [definition, in Combi.Combi.composition]
+RefinementOrder.RefinementOrder_type__canonical__Order_TPOrder [definition, in Combi.Combi.composition]
+RefinementOrder.RefinementOrder_type__canonical__Order_TPreorder [definition, in Combi.Combi.composition]
+RefinementOrder.RefinementOrder_type__canonical__Order_BDistrLattice [definition, in Combi.Combi.composition]
+RefinementOrder.RefinementOrder_type__canonical__Order_BLattice [definition, in Combi.Combi.composition]
+RefinementOrder.RefinementOrder_type__canonical__Order_BJoinSemilattice [definition, in Combi.Combi.composition]
+RefinementOrder.RefinementOrder_type__canonical__Order_FinBMeetSemilattice [definition, in Combi.Combi.composition]
+RefinementOrder.RefinementOrder_type__canonical__Order_BMeetSemilattice [definition, in Combi.Combi.composition]
+RefinementOrder.RefinementOrder_type__canonical__Order_FinBPOrder [definition, in Combi.Combi.composition]
+RefinementOrder.RefinementOrder_type__canonical__Order_BPOrder [definition, in Combi.Combi.composition]
+RefinementOrder.RefinementOrder_type__canonical__Order_FinBPreorder [definition, in Combi.Combi.composition]
+RefinementOrder.RefinementOrder_type__canonical__Order_BPreorder [definition, in Combi.Combi.composition]
+RefinementOrder.RefinementOrder_type__canonical__Order_FinDistrLattice [definition, in Combi.Combi.composition]
+RefinementOrder.RefinementOrder_type__canonical__Order_DistrLattice [definition, in Combi.Combi.composition]
+RefinementOrder.RefinementOrder_type__canonical__ordtype_InhFinLattice [definition, in Combi.Combi.composition]
+RefinementOrder.RefinementOrder_type__canonical__Order_FinLattice [definition, in Combi.Combi.composition]
+RefinementOrder.RefinementOrder_type__canonical__Order_FinMeetSemilattice [definition, in Combi.Combi.composition]
+RefinementOrder.RefinementOrder_type__canonical__ordtype_InhLattice [definition, in Combi.Combi.composition]
+RefinementOrder.RefinementOrder_type__canonical__Order_Lattice [definition, in Combi.Combi.composition]
+RefinementOrder.RefinementOrder_type__canonical__Order_MeetSemilattice [definition, in Combi.Combi.composition]
+RefinementOrder.RefinementOrder_type__canonical__Order_FinJoinSemilattice [definition, in Combi.Combi.composition]
+RefinementOrder.RefinementOrder_type__canonical__Order_JoinSemilattice [definition, in Combi.Combi.composition]
+RefinementOrder.RefinementOrder_type__canonical__ordtype_InhFinPOrder [definition, in Combi.Combi.composition]
+RefinementOrder.RefinementOrder_type__canonical__ordtype_InhFinite [definition, in Combi.Combi.composition]
+RefinementOrder.RefinementOrder_type__canonical__ordtype_InhPOrder [definition, in Combi.Combi.composition]
+RefinementOrder.RefinementOrder_type__canonical__ordtype_Inhabited [definition, in Combi.Combi.composition]
+RefinementOrder.RefinementOrder_type__canonical__Order_FinPOrder [definition, in Combi.Combi.composition]
+RefinementOrder.RefinementOrder_type__canonical__Order_FinPreorder [definition, in Combi.Combi.composition]
+RefinementOrder.RefinementOrder_type__canonical__Order_POrder [definition, in Combi.Combi.composition]
+RefinementOrder.RefinementOrder_type__canonical__Order_Preorder [definition, in Combi.Combi.composition]
+RefinementOrder.RefinementOrder_type__canonical__fintype_SubFinite [definition, in Combi.Combi.composition]
+RefinementOrder.RefinementOrder_type__canonical__fintype_Finite [definition, in Combi.Combi.composition]
+RefinementOrder.RefinementOrder_type__canonical__choice_SubCountable [definition, in Combi.Combi.composition]
+RefinementOrder.RefinementOrder_type__canonical__choice_Countable [definition, in Combi.Combi.composition]
+RefinementOrder.RefinementOrder_type__canonical__choice_SubChoice [definition, in Combi.Combi.composition]
+RefinementOrder.RefinementOrder_type__canonical__choice_Choice [definition, in Combi.Combi.composition]
+RefinementOrder.RefinementOrder_type__canonical__eqtype_SubEquality [definition, in Combi.Combi.composition]
+RefinementOrder.RefinementOrder_type__canonical__eqtype_Equality [definition, in Combi.Combi.composition]
+RefinementOrder.RefinementOrder_type__canonical__eqtype_SubType [definition, in Combi.Combi.composition]
+RefinementOrder.RefinementOrder.n [variable, in Combi.Combi.composition]
+'CRef [notation, in Combi.Combi.composition]
+RefinementOrder.SetIn [abbreviation, in Combi.Combi.composition]
+RefinementOrder.topEcompnref [lemma, in Combi.Combi.composition]
+RefinementOrder.type [definition, in Combi.Combi.composition]
+RefinmentOrder [module, in Combi.Combi.setpartition]
+RefinmentOrder.Exports [module, in Combi.Combi.setpartition]
+RefinmentOrder.Exports.Finer [section, in Combi.Combi.setpartition]
+RefinmentOrder.Exports.Finer.S [variable, in Combi.Combi.setpartition]
+RefinmentOrder.Exports.Finer.T [variable, in Combi.Combi.setpartition]
+RefinmentOrder.Exports.is_finer_subpartP [lemma, in Combi.Combi.setpartition]
+RefinmentOrder.Exports.is_finer_pblockP [definition, in Combi.Combi.setpartition]
+RefinmentOrder.Exports.is_finerP [definition, in Combi.Combi.setpartition]
+RefinmentOrder.Exports.join_finer_eq [abbreviation, in Combi.Combi.setpartition]
+RefinmentOrder.Exports.join_finerE [lemma, in Combi.Combi.setpartition]
+RefinmentOrder.Exports.join_finer_eq_in_S [lemma, in Combi.Combi.setpartition]
+RefinmentOrder.Exports.mem_meet_finerP [definition, in Combi.Combi.setpartition]
+RefinmentOrder.Exports.setpart_topE [lemma, in Combi.Combi.setpartition]
+RefinmentOrder.Exports.setpart_bottomE [lemma, in Combi.Combi.setpartition]
+RefinmentOrder.HB_unnamed_mixin_28 [definition, in Combi.Combi.setpartition]
+RefinmentOrder.HB_unnamed_mixin_27 [definition, in Combi.Combi.setpartition]
+RefinmentOrder.HB_unnamed_factory_24 [definition, in Combi.Combi.setpartition]
+RefinmentOrder.HB_unnamed_factory_22 [definition, in Combi.Combi.setpartition]
+RefinmentOrder.HB_unnamed_factory_20 [definition, in Combi.Combi.setpartition]
+RefinmentOrder.HB_unnamed_mixin_19 [definition, in Combi.Combi.setpartition]
+RefinmentOrder.HB_unnamed_mixin_18 [definition, in Combi.Combi.setpartition]
+RefinmentOrder.HB_unnamed_factory_15 [definition, in Combi.Combi.setpartition]
+RefinmentOrder.is_finerP [lemma, in Combi.Combi.setpartition]
+RefinmentOrder.is_finer_setpart_anti [lemma, in Combi.Combi.setpartition]
+RefinmentOrder.is_finer_trans [lemma, in Combi.Combi.setpartition]
+RefinmentOrder.is_finer_refl [lemma, in Combi.Combi.setpartition]
+RefinmentOrder.is_finer_pblockP [lemma, in Combi.Combi.setpartition]
+RefinmentOrder.is_finer [definition, in Combi.Combi.setpartition]
+RefinmentOrder.join_finerP [lemma, in Combi.Combi.setpartition]
+RefinmentOrder.join_finerC [lemma, in Combi.Combi.setpartition]
+RefinmentOrder.join_finer [definition, in Combi.Combi.setpartition]
+RefinmentOrder.join_finer_equivalence [lemma, in Combi.Combi.setpartition]
+RefinmentOrder.join_finer_eq [definition, in Combi.Combi.setpartition]
+RefinmentOrder.le_join_finer [lemma, in Combi.Combi.setpartition]
+RefinmentOrder.le_meet_finer [lemma, in Combi.Combi.setpartition]
+RefinmentOrder.MeetSpec [constructor, in Combi.Combi.setpartition]
+RefinmentOrder.meet_finerP [lemma, in Combi.Combi.setpartition]
+RefinmentOrder.meet_finerC [lemma, in Combi.Combi.setpartition]
+RefinmentOrder.meet_spec [inductive, in Combi.Combi.setpartition]
+RefinmentOrder.meet_finer [definition, in Combi.Combi.setpartition]
+RefinmentOrder.meet_finer_subproof [lemma, in Combi.Combi.setpartition]
+RefinmentOrder.mem_meet_finerP [lemma, in Combi.Combi.setpartition]
+RefinmentOrder.Order_POrder_MeetJoin_isLattice__to__Order_POrder_isMeetSemilattice [definition, in Combi.Combi.setpartition]
+RefinmentOrder.Order_POrder_MeetJoin_isLattice__to__Order_POrder_isJoinSemilattice [definition, in Combi.Combi.setpartition]
+RefinmentOrder.Order_Le_isPOrder__to__Order_isDuallyPreorder [definition, in Combi.Combi.setpartition]
+RefinmentOrder.Order_Le_isPOrder__to__Order_Preorder_isDuallyPOrder [definition, in Combi.Combi.setpartition]
+RefinmentOrder.RefinmentOrder [section, in Combi.Combi.setpartition]
+RefinmentOrder.RefinmentOrder.S [variable, in Combi.Combi.setpartition]
+RefinmentOrder.RefinmentOrder.T [variable, in Combi.Combi.setpartition]
+RefinmentOrder.setpartfiner_display [lemma, in Combi.Combi.setpartition]
+RefinmentOrder.setpartition_setpart__canonical__Order_FinTBLattice [definition, in Combi.Combi.setpartition]
+RefinmentOrder.setpartition_setpart__canonical__ordtype_InhTBLattice [definition, in Combi.Combi.setpartition]
+RefinmentOrder.setpartition_setpart__canonical__Order_TBLattice [definition, in Combi.Combi.setpartition]
+RefinmentOrder.setpartition_setpart__canonical__Order_BLattice [definition, in Combi.Combi.setpartition]
+RefinmentOrder.setpartition_setpart__canonical__Order_FinBMeetSemilattice [definition, in Combi.Combi.setpartition]
+RefinmentOrder.setpartition_setpart__canonical__Order_TBMeetSemilattice [definition, in Combi.Combi.setpartition]
+RefinmentOrder.setpartition_setpart__canonical__Order_BMeetSemilattice [definition, in Combi.Combi.setpartition]
+RefinmentOrder.setpartition_setpart__canonical__ordtype_InhFinLattice [definition, in Combi.Combi.setpartition]
+RefinmentOrder.setpartition_setpart__canonical__Order_FinLattice [definition, in Combi.Combi.setpartition]
+RefinmentOrder.setpartition_setpart__canonical__Order_FinMeetSemilattice [definition, in Combi.Combi.setpartition]
+RefinmentOrder.setpartition_setpart__canonical__ordtype_InhLattice [definition, in Combi.Combi.setpartition]
+RefinmentOrder.setpartition_setpart__canonical__Order_TLattice [definition, in Combi.Combi.setpartition]
+RefinmentOrder.setpartition_setpart__canonical__Order_Lattice [definition, in Combi.Combi.setpartition]
+RefinmentOrder.setpartition_setpart__canonical__Order_TMeetSemilattice [definition, in Combi.Combi.setpartition]
+RefinmentOrder.setpartition_setpart__canonical__Order_MeetSemilattice [definition, in Combi.Combi.setpartition]
+RefinmentOrder.setpartition_setpart__canonical__Order_TBJoinSemilattice [definition, in Combi.Combi.setpartition]
+RefinmentOrder.setpartition_setpart__canonical__Order_BJoinSemilattice [definition, in Combi.Combi.setpartition]
+RefinmentOrder.setpartition_setpart__canonical__Order_FinTJoinSemilattice [definition, in Combi.Combi.setpartition]
+RefinmentOrder.setpartition_setpart__canonical__Order_FinJoinSemilattice [definition, in Combi.Combi.setpartition]
+RefinmentOrder.setpartition_setpart__canonical__Order_TJoinSemilattice [definition, in Combi.Combi.setpartition]
+RefinmentOrder.setpartition_setpart__canonical__Order_JoinSemilattice [definition, in Combi.Combi.setpartition]
+RefinmentOrder.setpartition_setpart__canonical__Order_FinTBPOrder [definition, in Combi.Combi.setpartition]
+RefinmentOrder.setpartition_setpart__canonical__Order_FinTBPreorder [definition, in Combi.Combi.setpartition]
+RefinmentOrder.setpartition_setpart__canonical__Order_FinTPOrder [definition, in Combi.Combi.setpartition]
+RefinmentOrder.setpartition_setpart__canonical__Order_FinTPreorder [definition, in Combi.Combi.setpartition]
+RefinmentOrder.setpartition_setpart__canonical__Order_TBPOrder [definition, in Combi.Combi.setpartition]
+RefinmentOrder.setpartition_setpart__canonical__Order_TBPreorder [definition, in Combi.Combi.setpartition]
+RefinmentOrder.setpartition_setpart__canonical__Order_TPOrder [definition, in Combi.Combi.setpartition]
+RefinmentOrder.setpartition_setpart__canonical__Order_TPreorder [definition, in Combi.Combi.setpartition]
+RefinmentOrder.setpartition_setpart__canonical__Order_FinBPOrder [definition, in Combi.Combi.setpartition]
+RefinmentOrder.setpartition_setpart__canonical__Order_BPOrder [definition, in Combi.Combi.setpartition]
+RefinmentOrder.setpartition_setpart__canonical__Order_FinBPreorder [definition, in Combi.Combi.setpartition]
+RefinmentOrder.setpartition_setpart__canonical__Order_BPreorder [definition, in Combi.Combi.setpartition]
+RefinmentOrder.setpartition_setpart__canonical__ordtype_InhFinPOrder [definition, in Combi.Combi.setpartition]
+RefinmentOrder.setpartition_setpart__canonical__Order_FinPOrder [definition, in Combi.Combi.setpartition]
+RefinmentOrder.setpartition_setpart__canonical__Order_FinPreorder [definition, in Combi.Combi.setpartition]
+RefinmentOrder.setpartition_setpart__canonical__ordtype_InhPOrder [definition, in Combi.Combi.setpartition]
+RefinmentOrder.setpartition_setpart__canonical__Order_POrder [definition, in Combi.Combi.setpartition]
+RefinmentOrder.setpartition_setpart__canonical__Order_Preorder [definition, in Combi.Combi.setpartition]
+RefinmentOrder.setpart_conn [lemma, in Combi.Combi.setpartition]
+RefinmentOrder.setpart1_bottom [lemma, in Combi.Combi.setpartition]
+RefinmentOrder.trivsetpart_top [lemma, in Combi.Combi.setpartition]
+reflexive [projection, in ALEA.Ccpo]
+RelatSn [constructor, in Combi.SymGroup.presentSn]
+relat_Sn [inductive, in Combi.SymGroup.presentSn]
+rembig [definition, in Combi.Basic.ordtype]
+rembigE [lemma, in Combi.Basic.ordtype]
+rembigP [lemma, in Combi.Basic.ordtype]
+rembig_ins_std [lemma, in Combi.Combi.std]
+rembig_RS [lemma, in Combi.LRrule.plactic]
+rembig_RS_last_big [lemma, in Combi.LRrule.plactic]
+rembig_plactcongr [lemma, in Combi.LRrule.plactic]
+rembig_plact [lemma, in Combi.LRrule.plactic]
+rembig_plact2i [lemma, in Combi.LRrule.plactic]
+rembig_plact2 [lemma, in Combi.LRrule.plactic]
+rembig_plact1i [lemma, in Combi.LRrule.plactic]
+rembig_plact1 [lemma, in Combi.LRrule.plactic]
+rembig_iota [lemma, in Combi.Basic.ordtype]
+rembig_uniq [lemma, in Combi.Basic.ordtype]
+rembig_subseq [lemma, in Combi.Basic.ordtype]
+rembig_rev_uniq [lemma, in Combi.Basic.ordtype]
+rembig_eq_permR [lemma, in Combi.Basic.ordtype]
+rembig_eq_permL [lemma, in Combi.Basic.ordtype]
+rembig_cat [lemma, in Combi.Basic.ordtype]
+rembig_catL [lemma, in Combi.Basic.ordtype]
+rembig_catR [lemma, in Combi.Basic.ordtype]
+remn [definition, in Combi.Combi.stdtab]
+remnP [lemma, in Combi.Combi.stdtab]
+remn_rec [definition, in Combi.Combi.stdtab]
+RemoveBig [section, in Combi.LRrule.plactic]
+RemoveBig [section, in Combi.Basic.ordtype]
+RemoveBig.Alph [variable, in Combi.LRrule.plactic]
+RemoveBig.disp [variable, in Combi.LRrule.plactic]
+RemoveBig.disp [variable, in Combi.Basic.ordtype]
+RemoveBig.T [variable, in Combi.Basic.ordtype]
+RemoveBig.word [variable, in Combi.LRrule.plactic]
+RemoveBig.Z [variable, in Combi.Basic.ordtype]
+rem_corner_conj_part [lemma, in Combi.Combi.partition]
+rem_corner_incr_first_nE [lemma, in Combi.Combi.partition]
+rem_corner_incr_first_n [lemma, in Combi.Combi.partition]
+rem_corners_uniq [lemma, in Combi.Combi.partition]
+rem_corners [definition, in Combi.Combi.partition]
+rem_corner_incr_nth [lemma, in Combi.Combi.partition]
+rem_trail0 [definition, in Combi.Combi.partition]
+rem_irr [lemma, in Combi.SymGroup.Frobenius_char]
+rem_irr1 [lemma, in Combi.SymGroup.Frobenius_char]
+reprS [abbreviation, in Combi.SymGroup.reprSn]
+reprSn [library]
+repr_S2 [lemma, in Combi.SymGroup.reprSn]
+repr1 [lemma, in Combi.SymGroup.reprSn]
+repr1_S1 [lemma, in Combi.SymGroup.reprSn]
+repr1_S0 [lemma, in Combi.SymGroup.reprSn]
+res [abbreviation, in Combi.Combi.skewpart]
+reshape_index_walk_to [lemma, in Combi.HookFormula.hook]
+Restriction [section, in Combi.SymGroup.towerSn]
+Restriction.m [variable, in Combi.SymGroup.towerSn]
+Restriction.n [variable, in Combi.SymGroup.towerSn]
+RestrIntervBig [section, in Combi.LRrule.plactic]
+RestrIntervBig.Alph [variable, in Combi.LRrule.plactic]
+RestrIntervBig.disp [variable, in Combi.LRrule.plactic]
+RestrIntervBig.L [variable, in Combi.LRrule.plactic]
+RestrIntervBig.word [variable, in Combi.LRrule.plactic]
+RestrIntervSmall [section, in Combi.LRrule.plactic]
+RestrIntervSmall.Alph [variable, in Combi.LRrule.plactic]
+RestrIntervSmall.disp [variable, in Combi.LRrule.plactic]
+RestrIntervSmall.word [variable, in Combi.LRrule.plactic]
+restr_perm_porbits [lemma, in Combi.SymGroup.permcent]
+restr_perm_genC [lemma, in Combi.SymGroup.permcent]
+restr_perm_inj [lemma, in Combi.SymGroup.cycles]
+restr_perm_psupportE [lemma, in Combi.SymGroup.cycles]
+restr_perm_neq [lemma, in Combi.SymGroup.cycles]
+res_tab_inj [lemma, in Combi.MPoly.Schur_altdef]
+res_tabK [lemma, in Combi.MPoly.Schur_altdef]
+res_tabP [lemma, in Combi.MPoly.Schur_altdef]
+res_tab [definition, in Combi.MPoly.Schur_altdef]
+Rev [section, in Combi.LRrule.Greene]
+Rev [section, in Combi.LRrule.plactic]
+RevConj [section, in Combi.LRrule.Greene_inv]
+RevConj.Alph [variable, in Combi.LRrule.Greene_inv]
+RevConj.d [variable, in Combi.LRrule.Greene_inv]
+revdual [definition, in Combi.LRrule.plactic]
+revdualK [lemma, in Combi.LRrule.plactic]
+revset [definition, in Combi.LRrule.Greene]
+revsetK [lemma, in Combi.LRrule.Greene]
+rev_is_ksupp_col [lemma, in Combi.LRrule.Greene_inv]
+rev_is_ksupp_row [lemma, in Combi.LRrule.Greene_inv]
+rev_enum [lemma, in Combi.LRrule.Greene_inv]
+rev_ksuppKV [lemma, in Combi.LRrule.Greene_inv]
+rev_ksuppK [lemma, in Combi.LRrule.Greene_inv]
+rev_set_inj [lemma, in Combi.LRrule.Greene_inv]
+rev_ord_cast_inj [lemma, in Combi.LRrule.Greene_inv]
+rev_ksupp_inv [definition, in Combi.LRrule.Greene_inv]
+rev_ksupp [definition, in Combi.LRrule.Greene_inv]
+rev_set [definition, in Combi.LRrule.Greene_inv]
+rev_ord_cast [definition, in Combi.LRrule.Greene_inv]
+rev_intcompnK [lemma, in Combi.Combi.composition]
+rev_intcompn [definition, in Combi.Combi.composition]
+rev_intcompn_spec [lemma, in Combi.Combi.composition]
+Rev.Alph [variable, in Combi.LRrule.Greene]
+Rev.Alph [variable, in Combi.LRrule.plactic]
+Rev.disp [variable, in Combi.LRrule.plactic]
+Rev.word [variable, in Combi.LRrule.plactic]
+Rew [constructor, in Combi.Basic.congr]
+rewrite_path_min [lemma, in Combi.Basic.congr]
+rewrite_path_sym [lemma, in Combi.Basic.congr]
+rewrite_path_trans [lemma, in Combi.Basic.congr]
+rewrite_path [inductive, in Combi.Basic.congr]
+rho [abbreviation, in Combi.MPoly.antisym]
+rho [abbreviation, in Combi.MPoly.antisym]
+rho [definition, in Combi.MPoly.antisym]
+rho [abbreviation, in Combi.MPoly.Schur_altdef]
+rho [abbreviation, in Combi.MPoly.Schur_altdef]
+rho [abbreviation, in Combi.MPoly.Schur_altdef]
+rho [abbreviation, in Combi.MPoly.Schur_altdef]
+rho [abbreviation, in Combi.MPoly.MurnaghanNakayama]
+rho_uniq [lemma, in Combi.MPoly.antisym]
+rho_iota [lemma, in Combi.MPoly.antisym]
+RHSL3 [definition, in Combi.HookFormula.hook]
+RHSL3_trace [definition, in Combi.HookFormula.hook]
+ribbon [definition, in Combi.Combi.skewpart]
+ribbonE [lemma, in Combi.Combi.skewpart]
+RibbonOn [section, in Combi.Combi.skewpart]
+RibbonOn.Hrib [variable, in Combi.Combi.skewpart]
+RibbonOn.inner [variable, in Combi.Combi.skewpart]
+RibbonOn.outer [variable, in Combi.Combi.skewpart]
+RibbonOn.partinn [variable, in Combi.Combi.skewpart]
+RibbonOn.partout [variable, in Combi.Combi.skewpart]
+RibbonOn.start [variable, in Combi.Combi.skewpart]
+RibbonOn.stop [variable, in Combi.Combi.skewpart]
+ribbonP [lemma, in Combi.Combi.skewpart]
+ribbontb_start [definition, in Combi.Combi.skewpart]
+ribbontb_start_subproof [lemma, in Combi.Combi.skewpart]
+ribbontb_stop_ltn [lemma, in Combi.Combi.skewpart]
+ribbon_textbookE [lemma, in Combi.Combi.skewpart]
+ribbon_textbook_on [lemma, in Combi.Combi.skewpart]
+ribbon_on_no_square [lemma, in Combi.Combi.skewpart]
+ribbon_on_conn4_skew [lemma, in Combi.Combi.skewpart]
+ribbon_on_conn4 [lemma, in Combi.Combi.skewpart]
+ribbon_on_conn4_box_ex [lemma, in Combi.Combi.skewpart]
+ribbon_on_box_ex [definition, in Combi.Combi.skewpart]
+ribbon_on_box_exP [lemma, in Combi.Combi.skewpart]
+ribbon_on_box_exE [lemma, in Combi.Combi.skewpart]
+ribbon_box_ex [definition, in Combi.Combi.skewpart]
+ribbon_textbook [definition, in Combi.Combi.skewpart]
+ribbon_addE [lemma, in Combi.Combi.skewpart]
+ribbon_on_addE [lemma, in Combi.Combi.skewpart]
+ribbon_startrem [lemma, in Combi.Combi.skewpart]
+ribbon_on_startrem [lemma, in Combi.Combi.skewpart]
+ribbon_on_startrem_acc [lemma, in Combi.Combi.skewpart]
+ribbon_on0_startrem [lemma, in Combi.Combi.skewpart]
+ribbon_sumn_diffE [lemma, in Combi.Combi.skewpart]
+ribbon_sumn_lt [lemma, in Combi.Combi.skewpart]
+ribbon_included [lemma, in Combi.Combi.skewpart]
+ribbon_from_included [lemma, in Combi.Combi.skewpart]
+ribbon_mindropeq [lemma, in Combi.Combi.skewpart]
+ribbon_from_mindropeq [lemma, in Combi.Combi.skewpart]
+ribbon_fromP [lemma, in Combi.Combi.skewpart]
+ribbon_on_inj [lemma, in Combi.Combi.skewpart]
+ribbon_on_sumn [lemma, in Combi.Combi.skewpart]
+ribbon_on_startE [lemma, in Combi.Combi.skewpart]
+ribbon_on_stopE [lemma, in Combi.Combi.skewpart]
+ribbon_on_mindropeq [lemma, in Combi.Combi.skewpart]
+ribbon_on_height [lemma, in Combi.Combi.skewpart]
+ribbon_on_stop_lt [lemma, in Combi.Combi.skewpart]
+ribbon_on_start_le [lemma, in Combi.Combi.skewpart]
+ribbon_on_included [lemma, in Combi.Combi.skewpart]
+ribbon_on_is_skew [lemma, in Combi.Combi.skewpart]
+ribbon_on_nth_leq [lemma, in Combi.Combi.skewpart]
+ribbon_on_start_stop [lemma, in Combi.Combi.skewpart]
+ribbon_onSS [lemma, in Combi.Combi.skewpart]
+ribbon_noneq [lemma, in Combi.Combi.skewpart]
+ribbon_from_noneq [lemma, in Combi.Combi.skewpart]
+ribbon_consK [lemma, in Combi.Combi.skewpart]
+ribbon_from_impl [lemma, in Combi.Combi.skewpart]
+ribbon_height [definition, in Combi.Combi.skewpart]
+ribbon_on [definition, in Combi.Combi.skewpart]
+ribbon_from [definition, in Combi.Combi.skewpart]
+rightcomb [definition, in Combi.Combi.bintree]
+rightcombsz [definition, in Combi.Combi.bintree]
+rightcomb_rotationsE [lemma, in Combi.Combi.bintree]
+rightcomb_rotations [lemma, in Combi.Combi.bintree]
+right_sizesK [lemma, in Combi.Combi.bintree]
+right_sizesP [lemma, in Combi.Combi.bintree]
+right_sizes_cat_left [lemma, in Combi.Combi.bintree]
+right_sizes_from_left [lemma, in Combi.Combi.bintree]
+right_sizes_left_comb [lemma, in Combi.Combi.bintree]
+right_sizes [definition, in Combi.Combi.bintree]
+RingSchurSym [section, in Combi.MPoly.Schur_altdef]
+RingSchurSym.n0 [variable, in Combi.MPoly.Schur_altdef]
+RingSchurSym.R [variable, in Combi.MPoly.Schur_altdef]
+'s_ _ [notation, in Combi.MPoly.Schur_altdef]
+rotationP [lemma, in Combi.Combi.bintree]
+rotations [definition, in Combi.Combi.bintree]
+rotations_right_sizesP [lemma, in Combi.Combi.bintree]
+rotations_add_bounded [lemma, in Combi.Combi.bintree]
+rotations_add [lemma, in Combi.Combi.bintree]
+rotations_add_head [lemma, in Combi.Combi.bintree]
+rotations_vctleq_impl [lemma, in Combi.Combi.bintree]
+rotations_neq [lemma, in Combi.Combi.bintree]
+rotations_flip [lemma, in Combi.Combi.bintree]
+rotations_flip_impl [lemma, in Combi.Combi.bintree]
+rotations_right_sub [lemma, in Combi.Combi.bintree]
+rotations_left_sub [lemma, in Combi.Combi.bintree]
+rot_is_Dyck [lemma, in Combi.Combi.Dyckword]
+rot_pfminhE [lemma, in Combi.Combi.Dyckword]
+rowcomp [definition, in Combi.Combi.composition]
+rowcompn [definition, in Combi.Combi.composition]
+rowcompnP [lemma, in Combi.Combi.composition]
+rowpartn [definition, in Combi.Combi.partition]
+rowpartnE [lemma, in Combi.Combi.partition]
+rowpartnSE [lemma, in Combi.Combi.partition]
+rowpartn_subproof [lemma, in Combi.Combi.partition]
+rowpartn0E [lemma, in Combi.Combi.partition]
+Rows [section, in Combi.Combi.tableau]
+RowsAndCols [section, in Combi.LRrule.plactic]
+RowsAndCols.Alph [variable, in Combi.LRrule.plactic]
+RowsAndCols.disp [variable, in Combi.LRrule.plactic]
+RowsAndCols.word [variable, in Combi.LRrule.plactic]
+Rows.disp [variable, in Combi.Combi.tableau]
+Rows.T [variable, in Combi.Combi.tableau]
+row_hb_strip [lemma, in Combi.Combi.skewtab]
+row_dominate [lemma, in Combi.Combi.tableau]
+row_lt_by_pos [lemma, in Combi.Combi.tableau]
+row_free1 [lemma, in Combi.SymGroup.reprSn]
+rrw_bal1 [lemma, in Combi.Combi.Dyckword]
+RS [definition, in Combi.LRrule.extract]
+RS [definition, in Combi.LRrule.Schensted]
+RSbij [definition, in Combi.LRrule.Schensted]
+RSbijinv [definition, in Combi.LRrule.Schensted]
+RSbijinvnat [definition, in Combi.LRrule.extract]
+RSbijnat [definition, in Combi.LRrule.extract]
+RSclass [definition, in Combi.LRrule.Schensted]
+RSclassE [lemma, in Combi.LRrule.Schensted]
+RSclassP [lemma, in Combi.LRrule.Schensted]
+RSclass_countE [lemma, in Combi.LRrule.Schensted]
+rsh [abbreviation, in Combi.LRrule.Greene]
+rshift_in_lshift_recF [lemma, in Combi.LRrule.Greene]
+rshift_recP [lemma, in Combi.LRrule.Greene]
+rsh_rec [definition, in Combi.LRrule.Greene]
+RSinvstdE [lemma, in Combi.LRrule.stdplact]
+RSmap [definition, in Combi.LRrule.Schensted]
+RSmapE [lemma, in Combi.LRrule.Schensted]
+RSmapinv [definition, in Combi.LRrule.Schensted]
+RSmapinv2 [definition, in Combi.LRrule.Schensted]
+RSmapinv2K [lemma, in Combi.LRrule.Schensted]
+RSmapK [lemma, in Combi.LRrule.Schensted]
+RSmap_std [lemma, in Combi.LRrule.stdplact]
+RSmap_spec [lemma, in Combi.LRrule.Schensted]
+RSmap_rev [definition, in Combi.LRrule.Schensted]
+rspair [record, in Combi.LRrule.Schensted]
+RSpairyamQ [lemma, in Combi.LRrule.freeSchur]
+RSperm [lemma, in Combi.LRrule.Schensted]
+rsplit_rec_tab [lemma, in Combi.LRrule.Greene]
+rsplit_rec [definition, in Combi.LRrule.Greene]
+RSstdE [lemma, in Combi.LRrule.Schensted]
+RStab [definition, in Combi.LRrule.Schensted]
+RStabE [lemma, in Combi.LRrule.freeSchur]
+RStabinv [definition, in Combi.LRrule.Schensted]
+RStabinvK [lemma, in Combi.LRrule.Schensted]
+RStabinvnat [definition, in Combi.LRrule.extract]
+RStabK [lemma, in Combi.LRrule.Schensted]
+RStabmap [definition, in Combi.LRrule.Schensted]
+RStabmapE [lemma, in Combi.LRrule.Schensted]
+RSTabmapstdE [lemma, in Combi.LRrule.stdplact]
+RStabmap_std [lemma, in Combi.LRrule.stdplact]
+RStabmap_spec [lemma, in Combi.LRrule.Schensted]
+RStabnat [definition, in Combi.LRrule.extract]
+rstabpair [record, in Combi.LRrule.Schensted]
+RSToPlactic [section, in Combi.LRrule.plactic]
+RSToPlactic.Alph [variable, in Combi.LRrule.plactic]
+RSToPlactic.disp [variable, in Combi.LRrule.plactic]
+RSToPlactic.word [variable, in Combi.LRrule.plactic]
+rsymrel [definition, in Combi.SymGroup.presentSn]
+rsymrel_total [lemma, in Combi.SymGroup.presentSn]
+rsymrel_trans [lemma, in Combi.SymGroup.presentSn]
+rsymrel_anti [lemma, in Combi.SymGroup.presentSn]
+rsymrel_refl [lemma, in Combi.SymGroup.presentSn]
+rsym_invsetP [lemma, in Combi.SymGroup.presentSn]
+rsym_invset_total [lemma, in Combi.SymGroup.presentSn]
+rsym_invset_trans [lemma, in Combi.SymGroup.presentSn]
+rsym_invset_anti [lemma, in Combi.SymGroup.presentSn]
+rsym_invset_refl [lemma, in Combi.SymGroup.presentSn]
+RS_rev_uniq [lemma, in Combi.LRrule.Greene_inv]
+RS_tabE [lemma, in Combi.LRrule.Greene_inv]
+RS_rev [definition, in Combi.LRrule.Schensted]
+RS_yam [lemma, in Combi.LRrule.Yam_plact]
+RS_yam_RS [lemma, in Combi.LRrule.Yam_plact]
+rtrans [definition, in Combi.Basic.congr]
+rtransP [lemma, in Combi.Basic.congr]
+rtrans_min [lemma, in Combi.Basic.congr]
+rtrans_ind [lemma, in Combi.Basic.congr]
+rule_gencongr [lemma, in Combi.Basic.congr]
+rule_congrrule [lemma, in Combi.Basic.congr]
+rule_rtrans [lemma, in Combi.Basic.congr]
+

S

+S [abbreviation, in Combi.MPoly.sympoly]
+same_connect_rev [lemma, in Combi.Combi.skewpart]
+Scalar [section, in Combi.MPoly.Cauchy]
+ScalarChange [section, in Combi.MPoly.antisym]
+ScalarChange [section, in Combi.MPoly.sympoly]
+ScalarChange.mor [variable, in Combi.MPoly.antisym]
+ScalarChange.mor [variable, in Combi.MPoly.sympoly]
+ScalarChange.n [variable, in Combi.MPoly.antisym]
+ScalarChange.n0 [variable, in Combi.MPoly.sympoly]
+ScalarChange.R [variable, in Combi.MPoly.antisym]
+ScalarChange.R [variable, in Combi.MPoly.sympoly]
+ScalarChange.S [variable, in Combi.MPoly.antisym]
+ScalarChange.S [variable, in Combi.MPoly.sympoly]
+ScalarProduct [section, in Combi.MPoly.homogsym]
+ScalarProduct.d [variable, in Combi.MPoly.homogsym]
+ScalarProduct.Hd [variable, in Combi.MPoly.homogsym]
+ScalarProduct.n0 [variable, in Combi.MPoly.homogsym]
+'[ _ | _ ] (ring_scope) [notation, in Combi.MPoly.homogsym]
+'[ _ | _ ] (ring_scope) [notation, in Combi.MPoly.homogsym]
+Scalar.d [variable, in Combi.MPoly.Cauchy]
+Scalar.hb_instance_73.mu [variable, in Combi.MPoly.Cauchy]
+Scalar.hb_instance_73.la [variable, in Combi.MPoly.Cauchy]
+Scalar.hb_instance_73.hb_instance_73 [section, in Combi.MPoly.Cauchy]
+Scalar.hb_instance_67.p [variable, in Combi.MPoly.Cauchy]
+Scalar.hb_instance_67.hb_instance_67 [section, in Combi.MPoly.Cauchy]
+Scalar.hb_instance_62.la [variable, in Combi.MPoly.Cauchy]
+Scalar.hb_instance_62.hb_instance_62 [section, in Combi.MPoly.Cauchy]
+Scalar.Hd [variable, in Combi.MPoly.Cauchy]
+Scalar.n0 [variable, in Combi.MPoly.Cauchy]
+_ (X) [notation, in Combi.MPoly.Cauchy]
+_ (Y) [notation, in Combi.MPoly.Cauchy]
+'hpC[ _ ] [notation, in Combi.MPoly.Cauchy]
+'hsC[ _ ] [notation, in Combi.MPoly.Cauchy]
+scale_polXYE [lemma, in Combi.MPoly.Cauchy]
+scale_polXYDl [lemma, in Combi.MPoly.Cauchy]
+scale_polXYDr [lemma, in Combi.MPoly.Cauchy]
+scale_polXY1m [lemma, in Combi.MPoly.Cauchy]
+scale_polXYA [lemma, in Combi.MPoly.Cauchy]
+Sch [definition, in Combi.LRrule.Schensted]
+Schensted [library]
+Schensted_rstabpair__canonical__choice_SubChoice [definition, in Combi.LRrule.Schensted]
+Schensted_rstabpair__canonical__choice_Choice [definition, in Combi.LRrule.Schensted]
+Schensted_rstabpair__canonical__eqtype_SubEquality [definition, in Combi.LRrule.Schensted]
+Schensted_rstabpair__canonical__eqtype_Equality [definition, in Combi.LRrule.Schensted]
+Schensted_rstabpair__canonical__eqtype_SubType [definition, in Combi.LRrule.Schensted]
+Schensted_rspair__canonical__choice_SubChoice [definition, in Combi.LRrule.Schensted]
+Schensted_rspair__canonical__choice_Choice [definition, in Combi.LRrule.Schensted]
+Schensted_rspair__canonical__eqtype_SubEquality [definition, in Combi.LRrule.Schensted]
+Schensted_rspair__canonical__eqtype_Equality [definition, in Combi.LRrule.Schensted]
+Schensted_rspair__canonical__eqtype_SubType [definition, in Combi.LRrule.Schensted]
+Schur [definition, in Combi.MPoly.Schur_mpoly]
+Schur [section, in Combi.MPoly.Schur_mpoly]
+Schur [abbreviation, in Combi.LRrule.freeSchur]
+Schur [abbreviation, in Combi.LRrule.therule]
+Schur [abbreviation, in Combi.LRrule.therule]
+Schur [abbreviation, in Combi.LRrule.implem]
+Schur [section, in Combi.MPoly.sympoly]
+SchurAlternantDef [section, in Combi.MPoly.Schur_altdef]
+SchurAlternantDef.n0 [variable, in Combi.MPoly.Schur_altdef]
+SchurAlternantDef.R [variable, in Combi.MPoly.Schur_altdef]
+'a_ _ [notation, in Combi.MPoly.Schur_altdef]
+'s_[ _ ] [notation, in Combi.MPoly.Schur_altdef]
+SchurComRingType [section, in Combi.MPoly.Schur_mpoly]
+SchurComRingType.n0 [variable, in Combi.MPoly.Schur_mpoly]
+SchurComRingType.R [variable, in Combi.MPoly.Schur_mpoly]
+SchurE [lemma, in Combi.LRrule.freeSchur]
+Schur_rowpartn [lemma, in Combi.MPoly.Schur_mpoly]
+Schur_oversize [lemma, in Combi.MPoly.Schur_mpoly]
+Schur_tabsh_readingE [lemma, in Combi.MPoly.Schur_mpoly]
+Schur_homog [lemma, in Combi.MPoly.Schur_altdef]
+Schur_sym [lemma, in Combi.MPoly.Schur_altdef]
+Schur_sym_idomain [lemma, in Combi.MPoly.Schur_altdef]
+Schur_cast [lemma, in Combi.MPoly.Schur_altdef]
+Schur_freeSchurE [lemma, in Combi.LRrule.freeSchur]
+Schur_altdef [library]
+Schur_mpoly [library]
+Schur.n0 [variable, in Combi.MPoly.Schur_mpoly]
+Schur.n0 [variable, in Combi.MPoly.sympoly]
+Schur.R [variable, in Combi.MPoly.Schur_mpoly]
+Schur.R [variable, in Combi.MPoly.sympoly]
+'s[ _ ] [notation, in Combi.MPoly.sympoly]
+Schur0 [lemma, in Combi.MPoly.Schur_mpoly]
+Schur1 [lemma, in Combi.MPoly.Schur_mpoly]
+Schutzenberger_shuffle_plact [lemma, in Combi.LRrule.shuffle]
+Sch_max_size [lemma, in Combi.LRrule.Schensted]
+Sch_leq_last [lemma, in Combi.LRrule.Schensted]
+Sch_exists [lemma, in Combi.LRrule.Schensted]
+Sch_size [lemma, in Combi.LRrule.Schensted]
+Sch_rcons [lemma, in Combi.LRrule.Schensted]
+Sch_rev [definition, in Combi.LRrule.Schensted]
+Sch_plact [lemma, in Combi.LRrule.plactic]
+scover [abbreviation, in Combi.LRrule.Greene]
+SeqLemmas [section, in Combi.SSRcomplements.tools]
+SeqLemmas.T [variable, in Combi.SSRcomplements.tools]
+seq_masks_uniq [lemma, in Combi.Combi.subseq]
+seq_lift_right [definition, in ALEA.Ccpo]
+seq_lift_left [definition, in ALEA.Ccpo]
+seq_finType [definition, in Combi.Basic.combclass]
+sesquilinear_bilinear_isBilinear__to__sesquilinear_isBilinear__82 [definition, in Combi.MPoly.homogsym]
+sesquilinear_bilinear_isBilinear__to__sesquilinear_isBilinear [definition, in Combi.MPoly.homogsym]
+sesquilinear_bilinear_isBilinear__to__sesquilinear_isBilinear [definition, in Combi.SymGroup.towerSn]
+sesquilinear_bilinear_isBilinear__to__sesquilinear_isBilinear [definition, in Combi.SymGroup.Frobenius_char]
+SetAct [section, in Combi.SSRcomplements.permcomp]
+setactC [lemma, in Combi.SSRcomplements.permcomp]
+setactI [lemma, in Combi.SSRcomplements.permcomp]
+setactU [lemma, in Combi.SSRcomplements.permcomp]
+setactU1 [lemma, in Combi.SSRcomplements.permcomp]
+SetAct.aT [variable, in Combi.SSRcomplements.permcomp]
+SetAct.D [variable, in Combi.SSRcomplements.permcomp]
+SetAct.rT [variable, in Combi.SSRcomplements.permcomp]
+SetAct.to [variable, in Combi.SSRcomplements.permcomp]
+setact0 [lemma, in Combi.SSRcomplements.permcomp]
+setact1 [lemma, in Combi.SSRcomplements.permcomp]
+SetContainingBothLeft [module, in Combi.LRrule.Greene_inv]
+SetContainingBothLeft.Case [section, in Combi.LRrule.Greene_inv]
+SetContainingBothLeft.Case.a [variable, in Combi.LRrule.Greene_inv]
+SetContainingBothLeft.Case.Alph [variable, in Combi.LRrule.Greene_inv]
+SetContainingBothLeft.Case.b [variable, in Combi.LRrule.Greene_inv]
+SetContainingBothLeft.Case.BIn [section, in Combi.LRrule.Greene_inv]
+SetContainingBothLeft.Case.BIn.Hposb [variable, in Combi.LRrule.Greene_inv]
+SetContainingBothLeft.Case.BIn.HT [variable, in Combi.LRrule.Greene_inv]
+SetContainingBothLeft.Case.BIn.T [variable, in Combi.LRrule.Greene_inv]
+SetContainingBothLeft.Case.BNotIn [section, in Combi.LRrule.Greene_inv]
+SetContainingBothLeft.Case.BNotIn.HbNin [variable, in Combi.LRrule.Greene_inv]
+SetContainingBothLeft.Case.c [variable, in Combi.LRrule.Greene_inv]
+SetContainingBothLeft.Case.disp [variable, in Combi.LRrule.Greene_inv]
+SetContainingBothLeft.Case.Hposa [variable, in Combi.LRrule.Greene_inv]
+SetContainingBothLeft.Case.Hposc [variable, in Combi.LRrule.Greene_inv]
+SetContainingBothLeft.Case.HRabc [variable, in Combi.LRrule.Greene_inv]
+SetContainingBothLeft.Case.HS [variable, in Combi.LRrule.Greene_inv]
+SetContainingBothLeft.Case.k [variable, in Combi.LRrule.Greene_inv]
+SetContainingBothLeft.Case.P [variable, in Combi.LRrule.Greene_inv]
+SetContainingBothLeft.Case.Px [variable, in Combi.LRrule.Greene_inv]
+SetContainingBothLeft.Case.R [variable, in Combi.LRrule.Greene_inv]
+SetContainingBothLeft.Case.S [variable, in Combi.LRrule.Greene_inv]
+SetContainingBothLeft.Case.u [variable, in Combi.LRrule.Greene_inv]
+SetContainingBothLeft.Case.v [variable, in Combi.LRrule.Greene_inv]
+SetContainingBothLeft.Case.word [variable, in Combi.LRrule.Greene_inv]
+SetContainingBothLeft.Case.x [variable, in Combi.LRrule.Greene_inv]
+SetContainingBothLeft.Case.x' [variable, in Combi.LRrule.Greene_inv]
+SetContainingBothLeft.Case.y [variable, in Combi.LRrule.Greene_inv]
+SetContainingBothLeft.coverS1T1 [lemma, in Combi.LRrule.Greene_inv]
+SetContainingBothLeft.cover_bin [lemma, in Combi.LRrule.Greene_inv]
+SetContainingBothLeft.disjointS1T1 [lemma, in Combi.LRrule.Greene_inv]
+SetContainingBothLeft.enumUltV [lemma, in Combi.LRrule.Greene_inv]
+SetContainingBothLeft.exists_Qy [lemma, in Combi.LRrule.Greene_inv]
+SetContainingBothLeft.exists_Q_noboth [lemma, in Combi.LRrule.Greene_inv]
+SetContainingBothLeft.extract_bT [lemma, in Combi.LRrule.Greene_inv]
+SetContainingBothLeft.extract_Tb [lemma, in Combi.LRrule.Greene_inv]
+SetContainingBothLeft.extract_cS [lemma, in Combi.LRrule.Greene_inv]
+SetContainingBothLeft.extract_Sa [lemma, in Combi.LRrule.Greene_inv]
+SetContainingBothLeft.extract_T1E [lemma, in Combi.LRrule.Greene_inv]
+SetContainingBothLeft.extract_S1E [lemma, in Combi.LRrule.Greene_inv]
+SetContainingBothLeft.extract_swap_setSE [lemma, in Combi.LRrule.Greene_inv]
+SetContainingBothLeft.extract_SE [lemma, in Combi.LRrule.Greene_inv]
+SetContainingBothLeft.Hba [projection, in Combi.LRrule.Greene_inv]
+SetContainingBothLeft.Hbax [projection, in Combi.LRrule.Greene_inv]
+SetContainingBothLeft.Hbc [projection, in Combi.LRrule.Greene_inv]
+SetContainingBothLeft.Hxba [projection, in Combi.LRrule.Greene_inv]
+SetContainingBothLeft.hypRabc [record, in Combi.LRrule.Greene_inv]
+SetContainingBothLeft.inPQE [lemma, in Combi.LRrule.Greene_inv]
+SetContainingBothLeft.ksupp_bin [lemma, in Combi.LRrule.Greene_inv]
+SetContainingBothLeft.ksupp_bnotin [lemma, in Combi.LRrule.Greene_inv]
+SetContainingBothLeft.posa [abbreviation, in Combi.LRrule.Greene_inv]
+SetContainingBothLeft.posaS1_bin [lemma, in Combi.LRrule.Greene_inv]
+SetContainingBothLeft.posaT1_bin [lemma, in Combi.LRrule.Greene_inv]
+SetContainingBothLeft.posa_inTF [lemma, in Combi.LRrule.Greene_inv]
+SetContainingBothLeft.posb [abbreviation, in Combi.LRrule.Greene_inv]
+SetContainingBothLeft.posbinSF [lemma, in Combi.LRrule.Greene_inv]
+SetContainingBothLeft.posb_inSF [lemma, in Combi.LRrule.Greene_inv]
+SetContainingBothLeft.posc [definition, in Combi.LRrule.Greene_inv]
+SetContainingBothLeft.posc_inTF [lemma, in Combi.LRrule.Greene_inv]
+SetContainingBothLeft.posc_subproof [lemma, in Combi.LRrule.Greene_inv]
+SetContainingBothLeft.Qbin [definition, in Combi.LRrule.Greene_inv]
+SetContainingBothLeft.Qbin_noboth [lemma, in Combi.LRrule.Greene_inv]
+SetContainingBothLeft.Qbnotin [definition, in Combi.LRrule.Greene_inv]
+SetContainingBothLeft.Qbnotin_noboth [lemma, in Combi.LRrule.Greene_inv]
+SetContainingBothLeft.RabcGtnX [lemma, in Combi.LRrule.Greene_inv]
+SetContainingBothLeft.RabcLeqX [lemma, in Combi.LRrule.Greene_inv]
+SetContainingBothLeft.RelHypothesis [section, in Combi.LRrule.Greene_inv]
+SetContainingBothLeft.RelHypothesis.Alph [variable, in Combi.LRrule.Greene_inv]
+SetContainingBothLeft.RelHypothesis.disp [variable, in Combi.LRrule.Greene_inv]
+SetContainingBothLeft.Rtrans [projection, in Combi.LRrule.Greene_inv]
+SetContainingBothLeft.size_cover_bnotin [lemma, in Combi.LRrule.Greene_inv]
+SetContainingBothLeft.sorted_extract_T1 [lemma, in Combi.LRrule.Greene_inv]
+SetContainingBothLeft.sorted_extract_S1 [lemma, in Combi.LRrule.Greene_inv]
+SetContainingBothLeft.sorted_extract_swap_set_S [lemma, in Combi.LRrule.Greene_inv]
+SetContainingBothLeft.sorted_extract_swap_set [lemma, in Combi.LRrule.Greene_inv]
+SetContainingBothLeft.ST_cover_disjoint [lemma, in Combi.LRrule.Greene_inv]
+SetContainingBothLeft.swap [abbreviation, in Combi.LRrule.Greene_inv]
+SetContainingBothLeft.swap_set [abbreviation, in Combi.LRrule.Greene_inv]
+SetContainingBothLeft.S1 [definition, in Combi.LRrule.Greene_inv]
+SetContainingBothLeft.S1_subsST [lemma, in Combi.LRrule.Greene_inv]
+SetContainingBothLeft.tnth_posc [lemma, in Combi.LRrule.Greene_inv]
+SetContainingBothLeft.trivIset_Qbin [lemma, in Combi.LRrule.Greene_inv]
+SetContainingBothLeft.TSneq [lemma, in Combi.LRrule.Greene_inv]
+SetContainingBothLeft.TS_disjoint [lemma, in Combi.LRrule.Greene_inv]
+SetContainingBothLeft.T1 [definition, in Combi.LRrule.Greene_inv]
+SetContainingBothLeft.T1_subsST [lemma, in Combi.LRrule.Greene_inv]
+setdiff [definition, in Combi.MPoly.Schur_altdef]
+setpart [record, in Combi.Combi.setpartition]
+SetPartition [section, in Combi.SSRcomplements.tools]
+setpartition [library]
+SetPartitionShape [section, in Combi.Combi.partition]
+SetPartitionShape.T [variable, in Combi.Combi.partition]
+setpartition_setpart__canonical__ordtype_InhFinite [definition, in Combi.Combi.setpartition]
+setpartition_setpart__canonical__ordtype_Inhabited [definition, in Combi.Combi.setpartition]
+setpartition_setpart__canonical__fintype_SubFinite [definition, in Combi.Combi.setpartition]
+setpartition_setpart__canonical__fintype_Finite [definition, in Combi.Combi.setpartition]
+setpartition_setpart__canonical__choice_SubCountable [definition, in Combi.Combi.setpartition]
+setpartition_setpart__canonical__choice_Countable [definition, in Combi.Combi.setpartition]
+setpartition_setpart__canonical__choice_SubChoice [definition, in Combi.Combi.setpartition]
+setpartition_setpart__canonical__choice_Choice [definition, in Combi.Combi.setpartition]
+setpartition_setpart__canonical__eqtype_SubEquality [definition, in Combi.Combi.setpartition]
+setpartition_setpart__canonical__eqtype_Equality [definition, in Combi.Combi.setpartition]
+setpartition_setpart__canonical__eqtype_SubType [definition, in Combi.Combi.setpartition]
+SetPartition.T [variable, in Combi.SSRcomplements.tools]
+setpartP [lemma, in Combi.Combi.setpartition]
+setpartval [projection, in Combi.Combi.setpartition]
+setpart_shape_imset [lemma, in Combi.Combi.partition]
+setpart_shape_union [lemma, in Combi.Combi.partition]
+setpart_shapeP [lemma, in Combi.Combi.partition]
+setpart_shape [definition, in Combi.Combi.partition]
+setpart_set1_eq_set1 [lemma, in Combi.Combi.setpartition]
+setpart_set1 [definition, in Combi.Combi.setpartition]
+setpart_set0_eq_set0 [lemma, in Combi.Combi.setpartition]
+setpart_set0 [definition, in Combi.Combi.setpartition]
+setpart_eq [lemma, in Combi.Combi.setpartition]
+setpart_subset [lemma, in Combi.Combi.setpartition]
+setpart_non0 [lemma, in Combi.Combi.setpartition]
+setpart1 [definition, in Combi.Combi.setpartition]
+setpart1_subproof [lemma, in Combi.Combi.setpartition]
+setU1E [lemma, in Combi.SSRcomplements.tools]
+set_nth_non_nil [lemma, in Combi.SSRcomplements.tools]
+set_nth_rcons [lemma, in Combi.SSRcomplements.tools]
+set_head_default [lemma, in Combi.SSRcomplements.tools]
+set_nil [lemma, in Combi.LRrule.Greene]
+set_nth_LxR [lemma, in Combi.LRrule.plactic]
+set1_disjoint [lemma, in Combi.SSRcomplements.tools]
+SF [abbreviation, in Combi.MPoly.homogsym]
+SF [abbreviation, in Combi.MPoly.MurnaghanNakayama]
+SF [abbreviation, in Combi.MPoly.MurnaghanNakayama]
+SF [abbreviation, in Combi.MPoly.MurnaghanNakayama]
+SF [abbreviation, in Combi.MPoly.MurnaghanNakayama]
+SF [abbreviation, in Combi.MPoly.sympoly]
+SF [abbreviation, in Combi.MPoly.sympoly]
+SF [abbreviation, in Combi.MPoly.sympoly]
+SF [abbreviation, in Combi.MPoly.sympoly]
+SF [abbreviation, in Combi.MPoly.sympoly]
+SF [abbreviation, in Combi.MPoly.sympoly]
+SF [abbreviation, in Combi.MPoly.sympoly]
+SF [abbreviation, in Combi.MPoly.sympoly]
+SF [abbreviation, in Combi.MPoly.sympoly]
+SF [abbreviation, in Combi.MPoly.sympoly]
+SF [abbreviation, in Combi.MPoly.sympoly]
+SF [abbreviation, in Combi.MPoly.sympoly]
+sfiltergtn [definition, in Combi.LRrule.shuffle]
+sfiltergtn_invstd [lemma, in Combi.LRrule.shuffle]
+sfiltergtn_is_std [lemma, in Combi.LRrule.shuffle]
+sfilterleq [definition, in Combi.LRrule.shuffle]
+sfilterleqE [lemma, in Combi.LRrule.shuffle]
+sfilterleqK [lemma, in Combi.LRrule.shuffle]
+sfilterleq_invstd [lemma, in Combi.LRrule.shuffle]
+sfilterleq_is_std [lemma, in Combi.LRrule.shuffle]
+sfilterleq_LRsupport_skew [lemma, in Combi.LRrule.therule]
+sfilterleq_LRsupportP [lemma, in Combi.LRrule.therule]
+shaped_hyper_stdtabnP [lemma, in Combi.LRrule.freeSchur]
+shape_invseq [lemma, in Combi.LRrule.stdplact]
+shape_RS_std [lemma, in Combi.LRrule.stdplact]
+shape_RS_revdual [lemma, in Combi.LRrule.Greene_inv]
+shape_join_tab_skew_reshape [lemma, in Combi.Combi.skewtab]
+shape_join_tab [lemma, in Combi.Combi.skewtab]
+shape_inner_filter_le [lemma, in Combi.Combi.skewtab]
+shape_skew_reshape [lemma, in Combi.Combi.skewtab]
+shape_tabcols [lemma, in Combi.LRrule.Greene]
+shape_res_tab [definition, in Combi.MPoly.Schur_altdef]
+shape_res_tab_subproof [lemma, in Combi.MPoly.Schur_altdef]
+shape_RStabmapE [lemma, in Combi.LRrule.Schensted]
+shape_instabnrowinv1 [lemma, in Combi.LRrule.Schensted]
+shape_RSmap_eq [lemma, in Combi.LRrule.Schensted]
+shape_instabnrow [lemma, in Combi.LRrule.Schensted]
+shape_dropRS [lemma, in Combi.LRrule.freeSchur]
+shape_takeRS [lemma, in Combi.LRrule.freeSchur]
+shape_bij_LRsupport [lemma, in Combi.LRrule.freeSchur]
+shape_hyper_stdtabnP [lemma, in Combi.LRrule.freeSchur]
+shape_RS_yam [lemma, in Combi.LRrule.Yam_plact]
+shape_yamtab [lemma, in Combi.LRrule.Yam_plact]
+shape_conj_tab [lemma, in Combi.Combi.stdtab]
+shape_deg_stdtabn_of_sh [lemma, in Combi.Combi.stdtab]
+shape_deg [definition, in Combi.Combi.stdtab]
+shape_stdtabsh [lemma, in Combi.Combi.stdtab]
+shape_yam_of_stdtab [lemma, in Combi.Combi.stdtab]
+shape_stdtab_of_yam [lemma, in Combi.Combi.stdtab]
+shape_append_nth [lemma, in Combi.Combi.stdtab]
+shape_map_tab [lemma, in Combi.Combi.tableau]
+shape_tabsh [lemma, in Combi.Combi.tableau]
+shape_bijLR [lemma, in Combi.LRrule.therule]
+shape0 [lemma, in Combi.Combi.stdtab]
+shaps_eq [projection, in Combi.LRrule.implem]
+shcols [definition, in Combi.LRrule.Greene]
+shcol_cards [lemma, in Combi.LRrule.Greene]
+shift [definition, in ALEA.Ccpo]
+ShiftedShuffle [section, in Combi.LRrule.shuffle]
+shiftinv_pos_homo [lemma, in Combi.Basic.ordtype]
+shiftinv_posK [lemma, in Combi.Basic.ordtype]
+shiftinv_pos [definition, in Combi.Basic.ordtype]
+shiftn [definition, in Combi.LRrule.shuffle]
+shiftn_skew_dominate [lemma, in Combi.LRrule.therule]
+shiftset [definition, in Combi.LRrule.Greene]
+shiftuK [lemma, in Combi.LRrule.shuffle]
+shift_plactcongr [lemma, in Combi.LRrule.shuffle]
+shift_mon2 [instance, in ALEA.Ccpo]
+shift_fun_mon [instance, in ALEA.Ccpo]
+shift_le_compat [lemma, in ALEA.Ccpo]
+shift_simpl [lemma, in ALEA.Ccpo]
+shift_mon_fun [instance, in ALEA.Ccpo]
+shift_pos_mono [lemma, in Combi.Basic.ordtype]
+shift_posK [lemma, in Combi.Basic.ordtype]
+shift_pos [definition, in Combi.Basic.ordtype]
+shrows [definition, in Combi.LRrule.Greene]
+shrows_cards [lemma, in Combi.LRrule.Greene]
+shsh [definition, in Combi.LRrule.shuffle]
+shsh_sfilterleq [lemma, in Combi.LRrule.shuffle]
+shsh_sfiltergtn [lemma, in Combi.LRrule.shuffle]
+shuffle [definition, in Combi.LRrule.shuffle]
+shuffle [library]
+shuffleC [lemma, in Combi.LRrule.shuffle]
+shuffle_nil [lemma, in Combi.LRrule.shuffle]
+shuffle_from_rec [definition, in Combi.LRrule.shuffle]
+signed_repr [definition, in Combi.SymGroup.reprSn]
+signed_mx_repr [lemma, in Combi.SymGroup.reprSn]
+signed_mx [definition, in Combi.SymGroup.reprSn]
+sign_Chi2 [lemma, in Combi.SymGroup.reprSn]
+sign_char2 [lemma, in Combi.SymGroup.reprSn]
+sign_charP [lemma, in Combi.SymGroup.reprSn]
+sign_char [definition, in Combi.SymGroup.reprSn]
+sign_char_subproof [lemma, in Combi.SymGroup.reprSn]
+sign_irr [lemma, in Combi.SymGroup.reprSn]
+sign_repr [definition, in Combi.SymGroup.reprSn]
+sign_mx_repr [lemma, in Combi.SymGroup.reprSn]
+sign_mx [definition, in Combi.SymGroup.reprSn]
+SimpleCalculation [lemma, in Combi.HookFormula.hook]
+SimpleRecursion [section, in Combi.Combi.ordtree]
+SimpleRecursion.IHtree [variable, in Combi.Combi.ordtree]
+SimpleRecursion.P [variable, in Combi.Combi.ordtree]
+simplexp [definition, in Combi.MPoly.antisym]
+Singleton [section, in Combi.Combi.setpartition]
+Singleton.T [variable, in Combi.Combi.setpartition]
+Singleton.x [variable, in Combi.Combi.setpartition]
+Size [section, in Combi.Combi.bintree]
+sizeIk [lemma, in Combi.LRrule.Greene]
+SizeN [section, in Combi.Combi.bintree]
+SizeN.n [variable, in Combi.Combi.bintree]
+size_invstd [lemma, in Combi.Combi.std]
+size_invseq [lemma, in Combi.Combi.std]
+size_leq_invseq [lemma, in Combi.Combi.std]
+size_all_leq [lemma, in Combi.Combi.std]
+size_std [lemma, in Combi.Combi.std]
+size_std_rec [lemma, in Combi.Combi.std]
+size_sdtn [lemma, in Combi.Combi.std]
+size_enum_partn [lemma, in Combi.Combi.partition]
+size_enum_partns [lemma, in Combi.Combi.partition]
+size_enum_partnsk [lemma, in Combi.Combi.partition]
+size_hookpartn [lemma, in Combi.Combi.partition]
+size_rowpartn [lemma, in Combi.Combi.partition]
+size_colpartn [lemma, in Combi.Combi.partition]
+size_diff_shape [lemma, in Combi.Combi.partition]
+size_included [lemma, in Combi.Combi.partition]
+size_conj_part [lemma, in Combi.Combi.partition]
+size_incr_first_n [lemma, in Combi.Combi.partition]
+size_rem_trail0 [lemma, in Combi.Combi.partition]
+size_part [lemma, in Combi.Combi.partition]
+size_vctmin [lemma, in Combi.Combi.bintree]
+size_from_vct [lemma, in Combi.Combi.bintree]
+size_from_vct_acc [lemma, in Combi.Combi.bintree]
+size_right_sizes [lemma, in Combi.Combi.bintree]
+size_rotations [lemma, in Combi.Combi.bintree]
+size_flip [lemma, in Combi.Combi.bintree]
+size_leftcomb [lemma, in Combi.Combi.bintree]
+size_rightcomb [lemma, in Combi.Combi.bintree]
+size_left_branch [lemma, in Combi.Combi.bintree]
+size_cat_left [lemma, in Combi.Combi.bintree]
+size_from_left [lemma, in Combi.Combi.bintree]
+size_mem_enum_bintreeszP [lemma, in Combi.Combi.bintree]
+size_enum_bintreeszE [lemma, in Combi.Combi.bintree]
+size_enum_bintreesz [lemma, in Combi.Combi.bintree]
+size_Catalan_bin_leq [lemma, in Combi.Combi.bintree]
+size_tree_eq0 [lemma, in Combi.Combi.bintree]
+size_tree [definition, in Combi.Combi.bintree]
+size_cover_rev [lemma, in Combi.LRrule.Greene_inv]
+size_rev_ksupp [lemma, in Combi.LRrule.Greene_inv]
+size_partm [lemma, in Combi.MPoly.antisym]
+size_langQ [lemma, in Combi.LRrule.shuffle]
+size_sfilterleq_cat [lemma, in Combi.LRrule.shuffle]
+size_sfiltergtn_cat [lemma, in Combi.LRrule.shuffle]
+size_sfilterleq [lemma, in Combi.LRrule.shuffle]
+size_sfiltergtn [lemma, in Combi.LRrule.shuffle]
+size_shuffle [lemma, in Combi.LRrule.shuffle]
+size_cut_k [lemma, in Combi.Combi.vectNK]
+size_join_tab [lemma, in Combi.Combi.skewtab]
+size_skew_reshape [lemma, in Combi.Combi.skewtab]
+size_row_extract [lemma, in Combi.LRrule.Greene]
+size_cover_tabcolsk [lemma, in Combi.LRrule.Greene]
+size_cover_tabrows [lemma, in Combi.LRrule.Greene]
+size_tabcols_cons [lemma, in Combi.LRrule.Greene]
+size_to_word_cons [lemma, in Combi.LRrule.Greene]
+size_tabrows [lemma, in Combi.LRrule.Greene]
+size_shrows [lemma, in Combi.LRrule.Greene]
+size_tabcols [lemma, in Combi.LRrule.Greene]
+size_shcols [lemma, in Combi.LRrule.Greene]
+size_shcols_cons [lemma, in Combi.LRrule.Greene]
+size_cover_inj [lemma, in Combi.LRrule.Greene]
+size_extract [lemma, in Combi.LRrule.Greene]
+size_coverI [lemma, in Combi.LRrule.Greene]
+size_RS [lemma, in Combi.LRrule.Schensted]
+size_instab [lemma, in Combi.LRrule.Schensted]
+size_invins [lemma, in Combi.LRrule.Schensted]
+size_RSmap2 [lemma, in Combi.LRrule.Schensted]
+size_ndec_Sch [lemma, in Combi.LRrule.Schensted]
+size_ins_non_0 [lemma, in Combi.LRrule.Schensted]
+size_ins_sup [lemma, in Combi.LRrule.Schensted]
+size_ins_inf [lemma, in Combi.LRrule.Schensted]
+size_tracel [lemma, in Combi.HookFormula.hook]
+size_tracer [lemma, in Combi.HookFormula.hook]
+size_hook_box_indices [lemma, in Combi.HookFormula.hook]
+size_RSmapinv2_yam [lemma, in Combi.LRrule.freeSchur]
+size_RS_tuple [lemma, in Combi.LRrule.freeSchur]
+size_bal_of_Dyck [lemma, in Combi.Combi.Dyckword]
+size_Dyck_of_bal [lemma, in Combi.Combi.Dyckword]
+size_UDn [lemma, in Combi.Combi.Dyckword]
+size_UnDn [lemma, in Combi.Combi.Dyckword]
+size_bintree_of_Dyck [lemma, in Combi.Combi.Dyckword]
+size_Dyck_of_bintree [lemma, in Combi.Combi.Dyckword]
+size_foldr_join_Dyck [lemma, in Combi.Combi.Dyckword]
+size_count_braceE [lemma, in Combi.Combi.Dyckword]
+size_conj_tab [lemma, in Combi.Combi.stdtab]
+size_tab_stdtabn [lemma, in Combi.Combi.stdtab]
+size_yam_of_stdtab [lemma, in Combi.Combi.stdtab]
+size_notin_stdtab_of_yam [lemma, in Combi.Combi.stdtab]
+size_yam_of_stdtab_rec [lemma, in Combi.Combi.stdtab]
+size_tab_remn [lemma, in Combi.Combi.stdtab]
+size_stdtab_of_yam [lemma, in Combi.Combi.stdtab]
+size_append_nth [lemma, in Combi.Combi.stdtab]
+size_cycle_type [lemma, in Combi.SymGroup.cycletype]
+size_revdual [lemma, in Combi.LRrule.plactic]
+size_plact [lemma, in Combi.LRrule.plactic]
+size_tabsh [lemma, in Combi.Combi.tableau]
+size_to_word [lemma, in Combi.Combi.tableau]
+size_tab [definition, in Combi.Combi.tableau]
+size_zip2 [lemma, in Combi.LRrule.therule]
+size_leq_skew_reshape [lemma, in Combi.LRrule.therule]
+size_mem_enum_ordtreeszP [lemma, in Combi.Combi.ordtree]
+size_ord_to_bintree [lemma, in Combi.Combi.ordtree]
+size_bin_to_ordtree [lemma, in Combi.Combi.ordtree]
+size_tree_eq1 [lemma, in Combi.Combi.ordtree]
+size_ordtree_pos [lemma, in Combi.Combi.ordtree]
+size_ordtreeE [lemma, in Combi.Combi.ordtree]
+size_ordtree [definition, in Combi.Combi.ordtree]
+size_yamn [lemma, in Combi.Combi.Yamanouchi]
+size_yameval [lemma, in Combi.Combi.Yamanouchi]
+size_hyper_yam [lemma, in Combi.Combi.Yamanouchi]
+size_add_ribbon [lemma, in Combi.Combi.skewpart]
+size_count_mem_undup [lemma, in Combi.Combi.permuted]
+size_permuted_seq [lemma, in Combi.Combi.permuted]
+size_permuted_tuple [lemma, in Combi.Combi.permuted]
+size_invar_congr [lemma, in Combi.Basic.congr]
+size_invar_refl [lemma, in Combi.Basic.congr]
+size_invar [lemma, in Combi.Basic.congr]
+size_bound [lemma, in Combi.Basic.congr]
+size_rembig [lemma, in Combi.Basic.ordtype]
+size_straighten [lemma, in Combi.SymGroup.presentSn]
+size_inscode [lemma, in Combi.SymGroup.presentSn]
+size_braid [lemma, in Combi.SymGroup.presentSn]
+size_canword [lemma, in Combi.SymGroup.presentSn]
+size_cocode [lemma, in Combi.SymGroup.presentSn]
+size_cocode_rec [lemma, in Combi.SymGroup.presentSn]
+size_codesz [lemma, in Combi.SymGroup.presentSn]
+size_wordcd [lemma, in Combi.SymGroup.presentSn]
+size_LRyamtab_listE [lemma, in Combi.LRrule.implem]
+size_mpart_in_supp [lemma, in Combi.MPoly.sympoly]
+size_partsums [lemma, in Combi.Combi.composition]
+size_comp [lemma, in Combi.Combi.composition]
+Size.n [variable, in Combi.Combi.bintree]
+skew [projection, in Combi.LRrule.implem]
+skewpart [library]
+skewtab [library]
+skew_reshapeK [lemma, in Combi.Combi.skewtab]
+skew_reshape [definition, in Combi.Combi.skewtab]
+skew_dominate_cut [lemma, in Combi.Combi.skewtab]
+skew_dominate_consl [lemma, in Combi.Combi.skewtab]
+skew_dominate_no_overlap [lemma, in Combi.Combi.skewtab]
+skew_dominate_take [lemma, in Combi.Combi.skewtab]
+skew_dominate0 [lemma, in Combi.Combi.skewtab]
+skew_dominate [definition, in Combi.Combi.skewtab]
+skew_yam_included [lemma, in Combi.Combi.skewtab]
+skew_yam_catK [lemma, in Combi.Combi.skewtab]
+skew_yam_consK [lemma, in Combi.Combi.skewtab]
+skew_yam_catrK [lemma, in Combi.Combi.skewtab]
+skew_yam_cat [lemma, in Combi.Combi.skewtab]
+skew_nil_yamE [lemma, in Combi.Combi.skewtab]
+skew_yam_nil [lemma, in Combi.Combi.skewtab]
+slporbits [definition, in Combi.SymGroup.cycletype]
+Sn [section, in Combi.SymGroup.cycletype]
+SnXm [abbreviation, in Combi.SymGroup.towerSn]
+SnXm [abbreviation, in Combi.SymGroup.towerSn]
+Sn.n [variable, in Combi.SymGroup.cycletype]
+sorted [abbreviation, in Combi.SSRcomplements.sorted]
+Sorted [section, in Combi.SSRcomplements.sorted]
+sorted [library]
+sorted_geq_nth0E [lemma, in Combi.Combi.partition]
+sorted_geq_count_leq2E [lemma, in Combi.Combi.partition]
+sorted_std_extract [lemma, in Combi.LRrule.stdplact]
+sorted_gt_tabcols [lemma, in Combi.LRrule.Greene]
+sorted_leqX_tabrows [lemma, in Combi.LRrule.Greene]
+sorted_extract_cond [lemma, in Combi.LRrule.Greene]
+sorted_leq_last [lemma, in Combi.HookFormula.hook]
+sorted_in_leq_last [lemma, in Combi.HookFormula.hook]
+sorted_center [lemma, in Combi.LRrule.plactic]
+sorted_subseq_iota_rcons [lemma, in Combi.Combi.subseq]
+sorted_subseq_inP [lemma, in Combi.Combi.subseq]
+sorted_subseqP [lemma, in Combi.Combi.subseq]
+sorted_sumn_iotaE [lemma, in Combi.SSRcomplements.sorted]
+sorted_ltn_ind [lemma, in Combi.SSRcomplements.sorted]
+sorted_lt_by_pos [lemma, in Combi.SSRcomplements.sorted]
+sorted_last [lemma, in Combi.SSRcomplements.sorted]
+sorted_cons [lemma, in Combi.SSRcomplements.sorted]
+sorted_strictP [lemma, in Combi.SSRcomplements.sorted]
+sorted_rcons [lemma, in Combi.SSRcomplements.sorted]
+sorted_rconsK [lemma, in Combi.SSRcomplements.sorted]
+sorted_consK [lemma, in Combi.SSRcomplements.sorted]
+sorted_is_part [lemma, in Combi.LRrule.implem]
+sorted_ltn_partsums [lemma, in Combi.Combi.composition]
+Sorted.Hanti [variable, in Combi.SSRcomplements.sorted]
+Sorted.R [variable, in Combi.SSRcomplements.sorted]
+Sorted.Rrefl [variable, in Combi.SSRcomplements.sorted]
+Sorted.Rtrans [variable, in Combi.SSRcomplements.sorted]
+Sorted.T [variable, in Combi.SSRcomplements.sorted]
+Sorted.Z [variable, in Combi.SSRcomplements.sorted]
+_ <=R _ [notation, in Combi.SSRcomplements.sorted]
+sorted2P [lemma, in Combi.SSRcomplements.sorted]
+SP [abbreviation, in Combi.MPoly.sympoly]
+Spec [section, in Combi.Combi.std]
+Spec [section, in Combi.Combi.skewpart]
+Spec [section, in Combi.LRrule.implem]
+Spec.disp1 [variable, in Combi.Combi.std]
+Spec.disp2 [variable, in Combi.Combi.std]
+Spec.d1 [variable, in Combi.LRrule.implem]
+Spec.d2 [variable, in Combi.LRrule.implem]
+Spec.hgt [variable, in Combi.Combi.skewpart]
+Spec.Hincl [variable, in Combi.LRrule.implem]
+Spec.Hret [variable, in Combi.Combi.skewpart]
+Spec.nbox [variable, in Combi.Combi.skewpart]
+Spec.P [variable, in Combi.LRrule.implem]
+Spec.partsh [variable, in Combi.Combi.skewpart]
+Spec.pos [variable, in Combi.Combi.skewpart]
+Spec.P1 [variable, in Combi.LRrule.implem]
+Spec.P2 [variable, in Combi.LRrule.implem]
+Spec.res [variable, in Combi.Combi.skewpart]
+Spec.S [variable, in Combi.Combi.std]
+Spec.sh [variable, in Combi.Combi.skewpart]
+Spec.T [variable, in Combi.Combi.std]
+splitsetK [lemma, in Combi.LRrule.Greene]
+split_rec_cover [lemma, in Combi.LRrule.Greene]
+split_recabK [lemma, in Combi.LRrule.Greene]
+srel [definition, in Combi.SymGroup.presentSn]
+SRel [section, in Combi.SymGroup.presentSn]
+srelE [lemma, in Combi.SymGroup.presentSn]
+SRel.T [variable, in Combi.SymGroup.presentSn]
+ssrbool_has_quality__canonical__GRing_SubmodClosed [definition, in Combi.MPoly.antisym]
+ssrbool_has_quality__canonical__Algebra_ZmodClosed [definition, in Combi.MPoly.antisym]
+ssrbool_has_quality__canonical__Algebra_OppClosed [definition, in Combi.MPoly.antisym]
+ssrbool_has_quality__canonical__Algebra_AddClosed [definition, in Combi.MPoly.antisym]
+SSRComplFinset [section, in Combi.SSRcomplements.tools]
+SSRComplFinset.aT [variable, in Combi.SSRcomplements.tools]
+SSRComplFinset.f [variable, in Combi.SSRcomplements.tools]
+SSRComplFinset.rT [variable, in Combi.SSRcomplements.tools]
+StabilityProperties [section, in ALEA.Qmeasure]
+StabilityProperties.A [variable, in ALEA.Qmeasure]
+StabilityProperties.m [variable, in ALEA.Qmeasure]
+StabilityProperties.Mstable_sub [variable, in ALEA.Qmeasure]
+stable [record, in ALEA.Ccpo]
+stable [inductive, in ALEA.Ccpo]
+stable_opp [definition, in ALEA.Qmeasure]
+stable_mull [definition, in ALEA.Qmeasure]
+stable_sub [definition, in ALEA.Qmeasure]
+stable_add [definition, in ALEA.Qmeasure]
+stable_intro [lemma, in ALEA.Ccpo]
+stable_def [projection, in ALEA.Ccpo]
+stable_def [constructor, in ALEA.Ccpo]
+stable2 [record, in ALEA.Ccpo]
+stable2 [inductive, in ALEA.Ccpo]
+stable2_intro [projection, in ALEA.Ccpo]
+stable2_intro [constructor, in ALEA.Ccpo]
+stab_iporbitsE [lemma, in Combi.SymGroup.permcent]
+stab_iporbitsE_prod [lemma, in Combi.SymGroup.permcent]
+stab_iporbits_map_inj [lemma, in Combi.SymGroup.permcent]
+stab_iporbits_map [definition, in Combi.SymGroup.permcent]
+stab_iporbits_porbitmap [definition, in Combi.SymGroup.permcent]
+stab_iporbits_homog [lemma, in Combi.SymGroup.permcent]
+stab_iporbits_stab [lemma, in Combi.SymGroup.permcent]
+stab_iporbits [definition, in Combi.SymGroup.permcent]
+stab_porbit [lemma, in Combi.SymGroup.permcent]
+stab_tuple_dprod [lemma, in Combi.Combi.permuted]
+stab_tuple_prod [lemma, in Combi.Combi.permuted]
+Standardisation [section, in Combi.Combi.std]
+Standardisation.Alph [variable, in Combi.Combi.std]
+Standardisation.disp [variable, in Combi.Combi.std]
+StandardWords [section, in Combi.Combi.std]
+start [abbreviation, in Combi.Combi.skewpart]
+startrem [definition, in Combi.Combi.skewpart]
+startremE [lemma, in Combi.Combi.skewpart]
+startrem_accP [lemma, in Combi.Combi.skewpart]
+startrem_accE [lemma, in Combi.Combi.skewpart]
+startrem_leq [lemma, in Combi.Combi.skewpart]
+startrem_leq_size [lemma, in Combi.Combi.skewpart]
+startrem_leq_pos [lemma, in Combi.Combi.skewpart]
+startrem_acc_geq [lemma, in Combi.Combi.skewpart]
+startrem0P [lemma, in Combi.Combi.skewpart]
+starts_at [definition, in Combi.HookFormula.hook]
+star_stable_sub [lemma, in ALEA.Qmeasure]
+star_le_compat [lemma, in ALEA.Qmeasure]
+star_monotonic [lemma, in ALEA.Qmeasure]
+star_stable_eq [lemma, in ALEA.Qmeasure]
+star_simpl [lemma, in ALEA.Qmeasure]
+std [definition, in Combi.Combi.std]
+std [library]
+StdCombClass [section, in Combi.Combi.std]
+StdCombClass.n [variable, in Combi.Combi.std]
+StdKostka [section, in Combi.MPoly.Schur_altdef]
+StdKostka.d [variable, in Combi.MPoly.Schur_altdef]
+StdKostka.la [variable, in Combi.MPoly.Schur_altdef]
+StdKostka.Nvar [section, in Combi.MPoly.Schur_altdef]
+StdKostka.Nvar.Hd [variable, in Combi.MPoly.Schur_altdef]
+StdKostka.Nvar.n [variable, in Combi.MPoly.Schur_altdef]
+StdKostka.Nvar.td [variable, in Combi.MPoly.Schur_altdef]
+stdP [lemma, in Combi.Combi.std]
+stdplact [library]
+StdRS [section, in Combi.LRrule.stdplact]
+StdRS.Alph [variable, in Combi.LRrule.stdplact]
+StdRS.disp [variable, in Combi.LRrule.stdplact]
+StdSpec [constructor, in Combi.Combi.std]
+stdtab [library]
+StdtabCombClass [section, in Combi.Combi.stdtab]
+StdtabCombClass.n [variable, in Combi.Combi.stdtab]
+StdtabCombClass.stdtabn_enum [variable, in Combi.Combi.stdtab]
+stdtabn [record, in Combi.Combi.stdtab]
+StdtabnOfStdtabsh [section, in Combi.Combi.stdtab]
+StdtabnOfStdtabsh.n [variable, in Combi.Combi.stdtab]
+StdtabnOfStdtabsh.sh [variable, in Combi.Combi.stdtab]
+stdtabnP [lemma, in Combi.Combi.stdtab]
+stdtabnval [projection, in Combi.Combi.stdtab]
+stdtabn_of_sh [definition, in Combi.Combi.stdtab]
+stdtabn_of_sh_subproof [lemma, in Combi.Combi.stdtab]
+StdtabOfShape [section, in Combi.Combi.stdtab]
+StdtabOfShape.sh [variable, in Combi.Combi.stdtab]
+StdtabOfShape.stdtabsh_enum [variable, in Combi.Combi.stdtab]
+stdtabP [lemma, in Combi.Combi.stdtab]
+stdtabsh [record, in Combi.Combi.stdtab]
+stdtabshcast [definition, in Combi.Combi.stdtab]
+stdtabshP [lemma, in Combi.Combi.stdtab]
+stdtabshval [projection, in Combi.Combi.stdtab]
+stdtabsh_eval_to_word [lemma, in Combi.MPoly.Schur_altdef]
+stdtab_get_tabNE [lemma, in Combi.Combi.stdtab]
+stdtab_stdtabn__canonical__fintype_SubFinite [definition, in Combi.Combi.stdtab]
+stdtab_stdtabn__canonical__fintype_Finite [definition, in Combi.Combi.stdtab]
+stdtab_stdtabn__canonical__choice_SubCountable [definition, in Combi.Combi.stdtab]
+stdtab_stdtabn__canonical__choice_Countable [definition, in Combi.Combi.stdtab]
+stdtab_stdtabn__canonical__choice_SubChoice [definition, in Combi.Combi.stdtab]
+stdtab_stdtabn__canonical__choice_Choice [definition, in Combi.Combi.stdtab]
+stdtab_stdtabn__canonical__eqtype_SubEquality [definition, in Combi.Combi.stdtab]
+stdtab_stdtabn__canonical__eqtype_Equality [definition, in Combi.Combi.stdtab]
+stdtab_stdtabn__canonical__eqtype_SubType [definition, in Combi.Combi.stdtab]
+stdtab_stdtabsh__canonical__fintype_SubFinite [definition, in Combi.Combi.stdtab]
+stdtab_stdtabsh__canonical__fintype_Finite [definition, in Combi.Combi.stdtab]
+stdtab_stdtabsh__canonical__choice_SubCountable [definition, in Combi.Combi.stdtab]
+stdtab_stdtabsh__canonical__choice_Countable [definition, in Combi.Combi.stdtab]
+stdtab_stdtabsh__canonical__choice_SubChoice [definition, in Combi.Combi.stdtab]
+stdtab_stdtabsh__canonical__choice_Choice [definition, in Combi.Combi.stdtab]
+stdtab_stdtabsh__canonical__eqtype_SubEquality [definition, in Combi.Combi.stdtab]
+stdtab_stdtabsh__canonical__eqtype_Equality [definition, in Combi.Combi.stdtab]
+stdtab_stdtabsh__canonical__eqtype_SubType [definition, in Combi.Combi.stdtab]
+stdtab_of_yamK [lemma, in Combi.Combi.stdtab]
+stdtab_of_yam_inj [lemma, in Combi.Combi.stdtab]
+stdtab_of_yam_nil [lemma, in Combi.Combi.stdtab]
+stdtab_of_yamP [lemma, in Combi.Combi.stdtab]
+stdtab_of_yam [definition, in Combi.Combi.stdtab]
+StdTakeDrop [section, in Combi.Combi.std]
+StdTakeDrop.disp1 [variable, in Combi.Combi.std]
+StdTakeDrop.disp2 [variable, in Combi.Combi.std]
+StdTakeDrop.S [variable, in Combi.Combi.std]
+StdTakeDrop.T [variable, in Combi.Combi.std]
+stdwordn [record, in Combi.Combi.std]
+stdwordnP [lemma, in Combi.Combi.std]
+stdwordnval [projection, in Combi.Combi.std]
+std_cutabc [lemma, in Combi.Combi.std]
+std_transp [lemma, in Combi.Combi.std]
+std_drop_std [lemma, in Combi.Combi.std]
+std_take_std [lemma, in Combi.Combi.std]
+std_rconsK [lemma, in Combi.Combi.std]
+std_eq_invP [lemma, in Combi.Combi.std]
+std_specP [lemma, in Combi.Combi.std]
+std_spec_uniq [lemma, in Combi.Combi.std]
+std_spec [inductive, in Combi.Combi.std]
+std_eq_inv [lemma, in Combi.Combi.std]
+std_stdE [lemma, in Combi.Combi.std]
+std_std [lemma, in Combi.Combi.std]
+std_posbig [lemma, in Combi.Combi.std]
+std_rembig [lemma, in Combi.Combi.std]
+std_is_std [lemma, in Combi.Combi.std]
+std_rec [definition, in Combi.Combi.std]
+std_stdwordn__canonical__fintype_SubFinite [definition, in Combi.Combi.std]
+std_stdwordn__canonical__fintype_Finite [definition, in Combi.Combi.std]
+std_stdwordn__canonical__choice_SubCountable [definition, in Combi.Combi.std]
+std_stdwordn__canonical__choice_Countable [definition, in Combi.Combi.std]
+std_stdwordn__canonical__choice_SubChoice [definition, in Combi.Combi.std]
+std_stdwordn__canonical__choice_Choice [definition, in Combi.Combi.std]
+std_stdwordn__canonical__eqtype_SubEquality [definition, in Combi.Combi.std]
+std_stdwordn__canonical__eqtype_Equality [definition, in Combi.Combi.std]
+std_stdwordn__canonical__eqtype_SubType [definition, in Combi.Combi.std]
+std_max [lemma, in Combi.Combi.std]
+std_uniq [lemma, in Combi.Combi.std]
+std_perm [lemma, in Combi.Combi.std]
+std_rcons_shiftinv [lemma, in Combi.LRrule.stdplact]
+std_plact [lemma, in Combi.LRrule.stdplact]
+std_plact2 [lemma, in Combi.LRrule.stdplact]
+std_plact1 [lemma, in Combi.LRrule.stdplact]
+std_shsh [lemma, in Combi.LRrule.shuffle]
+std_of_yam [lemma, in Combi.Combi.stdtab]
+step [definition, in Combi.Basic.congr]
+step_closed [lemma, in Combi.Basic.congr]
+step_mem [lemma, in Combi.Basic.congr]
+stop [abbreviation, in Combi.Combi.skewpart]
+stpn [abbreviation, in Combi.HookFormula.Frobenius_ident]
+straighten [definition, in Combi.SymGroup.presentSn]
+straighten_path_npos [lemma, in Combi.SymGroup.presentSn]
+straighten_rev [definition, in Combi.SymGroup.presentSn]
+subdescsetP [lemma, in Combi.Combi.composition]
+subdescset_partsumP [lemma, in Combi.Combi.composition]
+subenum_countE [lemma, in Combi.Basic.combclass]
+subseq [library]
+subseqrow [definition, in Combi.LRrule.Schensted]
+subseqrow_n [definition, in Combi.LRrule.Schensted]
+subseqs [record, in Combi.Combi.subseq]
+SubseqSorted [section, in Combi.Combi.subseq]
+SubseqSortedIn [section, in Combi.Combi.subseq]
+SubseqSortedIn.leT [variable, in Combi.Combi.subseq]
+SubseqSortedIn.T [variable, in Combi.Combi.subseq]
+SubseqSorted.leT [variable, in Combi.Combi.subseq]
+SubseqSorted.T [variable, in Combi.Combi.subseq]
+subseqsP [lemma, in Combi.Combi.subseq]
+subseqsval [projection, in Combi.Combi.subseq]
+subseqs_masks_uniq [lemma, in Combi.Combi.subseq]
+Subseqs_maskK [lemma, in Combi.Combi.subseq]
+subseq_take [lemma, in Combi.LRrule.Greene]
+subseq_subseqs__canonical__fintype_SubFinite [definition, in Combi.Combi.subseq]
+subseq_subseqs__canonical__fintype_Finite [definition, in Combi.Combi.subseq]
+subseq_subseqs__canonical__choice_SubCountable [definition, in Combi.Combi.subseq]
+subseq_subseqs__canonical__choice_Countable [definition, in Combi.Combi.subseq]
+subseq_subseqs__canonical__choice_SubChoice [definition, in Combi.Combi.subseq]
+subseq_subseqs__canonical__choice_Choice [definition, in Combi.Combi.subseq]
+subseq_subseqs__canonical__eqtype_SubEquality [definition, in Combi.Combi.subseq]
+subseq_subseqs__canonical__eqtype_Equality [definition, in Combi.Combi.subseq]
+subseq_subseqs__canonical__eqtype_SubType [definition, in Combi.Combi.subseq]
+subseq_rcons_neq [lemma, in Combi.Combi.subseq]
+subseq_rcons_eq [lemma, in Combi.Combi.subseq]
+subseq_partsumE [lemma, in Combi.Combi.composition]
+subset_imsetK [lemma, in Combi.SSRcomplements.tools]
+subset_abc [lemma, in Combi.LRrule.plactic]
+subset_set1 [lemma, in Combi.Combi.setpartition]
+subset_s_trans_s [lemma, in Combi.Basic.congr]
+subset_undup_step [lemma, in Combi.Basic.congr]
+subset_step [lemma, in Combi.Basic.congr]
+SubtypesDisjointUnion [section, in Combi.Basic.combclass]
+SubtypesDisjointUnion.FI [variable, in Combi.Basic.combclass]
+SubtypesDisjointUnion.Hpart [variable, in Combi.Basic.combclass]
+SubtypesDisjointUnion.HPTi [variable, in Combi.Basic.combclass]
+SubtypesDisjointUnion.P [variable, in Combi.Basic.combclass]
+SubtypesDisjointUnion.Pi [variable, in Combi.Basic.combclass]
+SubtypesDisjointUnion.PI [variable, in Combi.Basic.combclass]
+SubtypesDisjointUnion.T [variable, in Combi.Basic.combclass]
+SubtypesDisjointUnion.TI [variable, in Combi.Basic.combclass]
+SubtypesDisjointUnion.TP [variable, in Combi.Basic.combclass]
+SubtypesDisjointUnion.TPi [variable, in Combi.Basic.combclass]
+SubtypesDisjointUnion.TPI [variable, in Combi.Basic.combclass]
+SubtypesDisjointUnion.union_enum [variable, in Combi.Basic.combclass]
+subType_unionE [lemma, in Combi.Basic.combclass]
+subType_seqP [lemma, in Combi.Basic.combclass]
+subType_seq [definition, in Combi.Basic.combclass]
+SubUndup [section, in Combi.Basic.combclass]
+SubUndup.P [variable, in Combi.Basic.combclass]
+SubUndup.subenum [variable, in Combi.Basic.combclass]
+SubUndup.subenumP [variable, in Combi.Basic.combclass]
+SubUndup.subenum_in [variable, in Combi.Basic.combclass]
+SubUndup.T [variable, in Combi.Basic.combclass]
+SubUndup.TP [variable, in Combi.Basic.combclass]
+sub_full [definition, in Combi.Combi.subseq]
+sub_nil [definition, in Combi.Combi.subseq]
+sub_enumE [lemma, in Combi.Basic.combclass]
+succ_neq0 [lemma, in ALEA.Qmeasure]
+sumndiff [lemma, in Combi.MPoly.Schur_altdef]
+sumnpSPE [lemma, in Combi.HookFormula.hook]
+sumn_sort [lemma, in Combi.SSRcomplements.tools]
+sumn_pred1_iota [lemma, in Combi.SSRcomplements.tools]
+sumn_nth_le [lemma, in Combi.SSRcomplements.tools]
+sumn_drop [lemma, in Combi.SSRcomplements.tools]
+sumn_take [lemma, in Combi.SSRcomplements.tools]
+sumn_mapE [lemma, in Combi.SSRcomplements.tools]
+sumn_map_condE [lemma, in Combi.SSRcomplements.tools]
+sumn_take_merge [lemma, in Combi.Combi.partition]
+sumn_union_part [lemma, in Combi.Combi.partition]
+sumn_intpartn [lemma, in Combi.Combi.partition]
+sumn_diff_shape [lemma, in Combi.Combi.partition]
+sumn_diff_shape_eq [lemma, in Combi.Combi.partition]
+sumn_included [lemma, in Combi.Combi.partition]
+sumn_take_inj [lemma, in Combi.Combi.partition]
+sumn_take_leq [lemma, in Combi.Combi.partition]
+sumn_conj_part [lemma, in Combi.Combi.partition]
+sumn_incr_first_n [lemma, in Combi.Combi.partition]
+sumn_decr_nth [lemma, in Combi.Combi.partition]
+sumn_incr_nth [lemma, in Combi.Combi.partition]
+sumn_rem_trail0 [lemma, in Combi.Combi.partition]
+sumn_right_sizes_gt [lemma, in Combi.Combi.bintree]
+sumn_partm [lemma, in Combi.MPoly.antisym]
+sumn_mpart [lemma, in Combi.MPoly.antisym]
+sumn_eval [lemma, in Combi.MPoly.Schur_altdef]
+sumn_shape_stdtabnE [lemma, in Combi.Combi.stdtab]
+sumn_diff_shape_intpartE [lemma, in Combi.LRrule.therule]
+sumn_add_ribbon [lemma, in Combi.Combi.skewpart]
+sumn_mapS [lemma, in Combi.Combi.skewpart]
+sumn_cocode [lemma, in Combi.SymGroup.presentSn]
+sumn_eq [projection, in Combi.LRrule.implem]
+sum_take [lemma, in Combi.SSRcomplements.tools]
+sum_minn [lemma, in Combi.SSRcomplements.tools]
+sum_conj [lemma, in Combi.Combi.partition]
+sum_count_mem [lemma, in Combi.Basic.combclass]
+sum_syme_symh [lemma, in Combi.MPoly.sympoly]
+sum_symh_syme [lemma, in Combi.MPoly.sympoly]
+sum_symmE [lemma, in Combi.MPoly.sympoly]
+Swap [module, in Combi.LRrule.Greene_inv]
+Swap.enum_cut [lemma, in Combi.LRrule.Greene_inv]
+Swap.pos0 [definition, in Combi.LRrule.Greene_inv]
+Swap.pos0_subproof [lemma, in Combi.LRrule.Greene_inv]
+Swap.pos01F [lemma, in Combi.LRrule.Greene_inv]
+Swap.pos1 [definition, in Combi.LRrule.Greene_inv]
+Swap.pos1_subproof [lemma, in Combi.LRrule.Greene_inv]
+Swap.size_cut_sizeu [lemma, in Combi.LRrule.Greene_inv]
+Swap.swap [definition, in Combi.LRrule.Greene_inv]
+Swap.Swap [section, in Combi.LRrule.Greene_inv]
+Swap.swapL [lemma, in Combi.LRrule.Greene_inv]
+Swap.swapR [lemma, in Combi.LRrule.Greene_inv]
+Swap.swap_size_cover [lemma, in Combi.LRrule.Greene_inv]
+Swap.swap_cover [lemma, in Combi.LRrule.Greene_inv]
+Swap.swap_set_inj [lemma, in Combi.LRrule.Greene_inv]
+Swap.swap_set_invol [lemma, in Combi.LRrule.Greene_inv]
+Swap.swap_set [definition, in Combi.LRrule.Greene_inv]
+Swap.swap_inj [lemma, in Combi.LRrule.Greene_inv]
+Swap.swap_invol [lemma, in Combi.LRrule.Greene_inv]
+Swap.Swap.Alph [variable, in Combi.LRrule.Greene_inv]
+Swap.Swap.disp [variable, in Combi.LRrule.Greene_inv]
+Swap.Swap.l0 [variable, in Combi.LRrule.Greene_inv]
+Swap.Swap.l1 [variable, in Combi.LRrule.Greene_inv]
+Swap.Swap.R [variable, in Combi.LRrule.Greene_inv]
+Swap.Swap.u [variable, in Combi.LRrule.Greene_inv]
+Swap.Swap.v [variable, in Combi.LRrule.Greene_inv]
+Swap.Swap.word [variable, in Combi.LRrule.Greene_inv]
+Swap.Swap.x [variable, in Combi.LRrule.Greene_inv]
+Swap.swap0 [lemma, in Combi.LRrule.Greene_inv]
+Swap.swap1 [lemma, in Combi.LRrule.Greene_inv]
+Swap.tnth_pos1 [lemma, in Combi.LRrule.Greene_inv]
+Swap.tnth_pos0 [lemma, in Combi.LRrule.Greene_inv]
+symbe [definition, in Combi.MPoly.homogsym]
+symbeE [lemma, in Combi.MPoly.homogsym]
+symbe_free [lemma, in Combi.MPoly.homogsym]
+symbe_basis [lemma, in Combi.MPoly.homogsym]
+symbh [definition, in Combi.MPoly.homogsym]
+symbhE [lemma, in Combi.MPoly.homogsym]
+symbh_free [lemma, in Combi.MPoly.homogsym]
+symbh_basis [lemma, in Combi.MPoly.homogsym]
+symbm [definition, in Combi.MPoly.homogsym]
+symbmE [lemma, in Combi.MPoly.homogsym]
+symbm_basis [lemma, in Combi.MPoly.homogsym]
+symbm_free [lemma, in Combi.MPoly.homogsym]
+symbp [definition, in Combi.MPoly.homogsym]
+symbpE [lemma, in Combi.MPoly.homogsym]
+symbp_free [lemma, in Combi.MPoly.homogsym]
+symbp_basis [lemma, in Combi.MPoly.homogsym]
+symbs [definition, in Combi.MPoly.homogsym]
+symbsE [lemma, in Combi.MPoly.homogsym]
+symbs_free [lemma, in Combi.MPoly.homogsym]
+symbs_basis [lemma, in Combi.MPoly.homogsym]
+symE [lemma, in Combi.MPoly.sympoly]
+syme [definition, in Combi.MPoly.sympoly]
+syme_syms_partdom [lemma, in Combi.MPoly.sympoly]
+syme_syms [lemma, in Combi.MPoly.sympoly]
+syme_syms_partdom_int [lemma, in Combi.MPoly.sympoly]
+syme_syms_int [lemma, in Combi.MPoly.sympoly]
+syme_to_symh [lemma, in Combi.MPoly.sympoly]
+syme_symhE [lemma, in Combi.MPoly.sympoly]
+syme_cast [lemma, in Combi.MPoly.sympoly]
+syme_to_symm [lemma, in Combi.MPoly.sympoly]
+syme_homog [lemma, in Combi.MPoly.sympoly]
+syme_geqnE [lemma, in Combi.MPoly.sympoly]
+syme_sym [lemma, in Combi.MPoly.sympoly]
+syme0 [lemma, in Combi.MPoly.sympoly]
+syme1 [lemma, in Combi.MPoly.sympoly]
+symh [definition, in Combi.MPoly.sympoly]
+SymheSyms [section, in Combi.MPoly.sympoly]
+SymheSymsInt [section, in Combi.MPoly.sympoly]
+SymheSymsInt.d [variable, in Combi.MPoly.sympoly]
+SymheSymsInt.n [variable, in Combi.MPoly.sympoly]
+_ ^~ [notation, in Combi.MPoly.sympoly]
+SymheSyms.d [variable, in Combi.MPoly.sympoly]
+SymheSyms.n [variable, in Combi.MPoly.sympoly]
+SymheSyms.R [variable, in Combi.MPoly.sympoly]
+_ ^~ [notation, in Combi.MPoly.sympoly]
+symHE_intpartn [lemma, in Combi.MPoly.sympoly]
+symHE_intcompn [lemma, in Combi.MPoly.sympoly]
+symHE_prod_intcomp [lemma, in Combi.MPoly.sympoly]
+symHE_rec [lemma, in Combi.MPoly.sympoly]
+symhe1E [lemma, in Combi.MPoly.sympoly]
+symh_basisE [lemma, in Combi.MPoly.Schur_mpoly]
+symh_to_symp [lemma, in Combi.MPoly.sympoly]
+symh_to_symp_intpartn [lemma, in Combi.MPoly.sympoly]
+symh_to_symp_prod_partsum [lemma, in Combi.MPoly.sympoly]
+symh_syms_partdom [lemma, in Combi.MPoly.sympoly]
+symh_syms [lemma, in Combi.MPoly.sympoly]
+symh_syms_partdom_int [lemma, in Combi.MPoly.sympoly]
+symh_syms_int [lemma, in Combi.MPoly.sympoly]
+symh_to_syme [lemma, in Combi.MPoly.sympoly]
+symh_symeE [lemma, in Combi.MPoly.sympoly]
+symh_cast [lemma, in Combi.MPoly.sympoly]
+symh_to_symm [lemma, in Combi.MPoly.sympoly]
+symh_homog [lemma, in Combi.MPoly.sympoly]
+symh_sym [lemma, in Combi.MPoly.sympoly]
+symh_pol_any [lemma, in Combi.MPoly.sympoly]
+symh_pol [definition, in Combi.MPoly.sympoly]
+symh_pol_bound [definition, in Combi.MPoly.sympoly]
+symh0 [lemma, in Combi.MPoly.sympoly]
+symm [definition, in Combi.MPoly.sympoly]
+symmX [lemma, in Combi.MPoly.Cauchy]
+symm_syms_partdom [lemma, in Combi.MPoly.sympoly]
+symm_syms [lemma, in Combi.MPoly.sympoly]
+symm_syms_partdom_int [lemma, in Combi.MPoly.sympoly]
+symm_syms_int [lemma, in Combi.MPoly.sympoly]
+symm_cast [lemma, in Combi.MPoly.sympoly]
+symm_unique0 [lemma, in Combi.MPoly.sympoly]
+symm_unique [lemma, in Combi.MPoly.sympoly]
+symm_homog [lemma, in Combi.MPoly.sympoly]
+symm_oversize [lemma, in Combi.MPoly.sympoly]
+symm_sym [lemma, in Combi.MPoly.sympoly]
+symm_pol [definition, in Combi.MPoly.sympoly]
+symm0 [lemma, in Combi.MPoly.sympoly]
+symp [definition, in Combi.MPoly.sympoly]
+sympe1E [lemma, in Combi.MPoly.sympoly]
+sympol [projection, in Combi.MPoly.sympoly]
+SymPolF [section, in Combi.MPoly.sympoly]
+SymPolF.m [variable, in Combi.MPoly.sympoly]
+SymPolF.R [variable, in Combi.MPoly.sympoly]
+sympolP [lemma, in Combi.MPoly.sympoly]
+sympoly [record, in Combi.MPoly.sympoly]
+sympoly [library]
+SymPolyComRingType [section, in Combi.MPoly.sympoly]
+SymPolyComRingType.n [variable, in Combi.MPoly.sympoly]
+SymPolyComRingType.R [variable, in Combi.MPoly.sympoly]
+sympolyf [definition, in Combi.MPoly.sympoly]
+sympolyfK [lemma, in Combi.MPoly.sympoly]
+sympolyfP [lemma, in Combi.MPoly.sympoly]
+sympolyf_evalX [lemma, in Combi.MPoly.sympoly]
+sympolyf_evalK [lemma, in Combi.MPoly.sympoly]
+sympolyf_evalE [lemma, in Combi.MPoly.sympoly]
+sympolyf_eval [definition, in Combi.MPoly.sympoly]
+sympolyf_is_monoid_morphism [lemma, in Combi.MPoly.sympoly]
+sympolyf_is_linear [lemma, in Combi.MPoly.sympoly]
+SymPolyHomogKey [module, in Combi.MPoly.homogsym]
+SymPolyHomogKey.homogsym1_keyed [definition, in Combi.MPoly.homogsym]
+SymPolyHomogKey.homogsym1_key [lemma, in Combi.MPoly.homogsym]
+SymPolyIdomainType [section, in Combi.MPoly.sympoly]
+SymPolyIdomainType.n [variable, in Combi.MPoly.sympoly]
+SymPolyIdomainType.R [variable, in Combi.MPoly.sympoly]
+SymPolyRingType [section, in Combi.MPoly.sympoly]
+SymPolyRingType.n [variable, in Combi.MPoly.sympoly]
+SymPolyRingType.R [variable, in Combi.MPoly.sympoly]
+sympoly_cnvarsym__canonical__GRing_LRMorphism [definition, in Combi.MPoly.sympoly]
+sympoly_cnvarsym__canonical__GRing_RMorphism [definition, in Combi.MPoly.sympoly]
+sympoly_cnvarsym__canonical__GRing_Linear [definition, in Combi.MPoly.sympoly]
+sympoly_cnvarsym__canonical__Algebra_Additive [definition, in Combi.MPoly.sympoly]
+sympoly_omegasf__canonical__GRing_LRMorphism [definition, in Combi.MPoly.sympoly]
+sympoly_omegasf__canonical__GRing_RMorphism [definition, in Combi.MPoly.sympoly]
+sympoly_omegasf__canonical__GRing_Linear [definition, in Combi.MPoly.sympoly]
+sympoly_omegasf__canonical__Algebra_Additive [definition, in Combi.MPoly.sympoly]
+sympoly_sympolyf_eval__canonical__GRing_LRMorphism [definition, in Combi.MPoly.sympoly]
+sympoly_sympolyf_eval__canonical__GRing_RMorphism [definition, in Combi.MPoly.sympoly]
+sympoly_sympolyf_eval__canonical__GRing_Linear [definition, in Combi.MPoly.sympoly]
+sympoly_sympolyf_eval__canonical__Algebra_Additive [definition, in Combi.MPoly.sympoly]
+sympoly_sympolyf__canonical__GRing_LRMorphism [definition, in Combi.MPoly.sympoly]
+sympoly_sympolyf__canonical__GRing_RMorphism [definition, in Combi.MPoly.sympoly]
+sympoly_sympolyf__canonical__GRing_Linear [definition, in Combi.MPoly.sympoly]
+sympoly_sympolyf__canonical__Algebra_Additive [definition, in Combi.MPoly.sympoly]
+sympoly_map_sympoly__canonical__GRing_LRMorphism [definition, in Combi.MPoly.sympoly]
+sympoly_map_sympoly__canonical__GRing_Linear [definition, in Combi.MPoly.sympoly]
+sympoly_map_sympoly__canonical__GRing_RMorphism [definition, in Combi.MPoly.sympoly]
+sympoly_map_sympoly__canonical__Algebra_Additive [definition, in Combi.MPoly.sympoly]
+sympoly_sympoly__canonical__GRing_SubIntegralDomain [definition, in Combi.MPoly.sympoly]
+sympoly_sympoly__canonical__GRing_IntegralDomain [definition, in Combi.MPoly.sympoly]
+sympoly_sympoly__canonical__GRing_ComUnitAlgebra [definition, in Combi.MPoly.sympoly]
+sympoly_sympoly__canonical__GRing_SubComUnitRing [definition, in Combi.MPoly.sympoly]
+sympoly_sympoly__canonical__GRing_ComUnitRing [definition, in Combi.MPoly.sympoly]
+sympoly_sympoly__canonical__GRing_SubUnitRing [definition, in Combi.MPoly.sympoly]
+sympoly_sympoly__canonical__GRing_UnitAlgebra [definition, in Combi.MPoly.sympoly]
+sympoly_sympoly__canonical__GRing_UnitRing [definition, in Combi.MPoly.sympoly]
+sympoly_sympoly__canonical__GRing_ComNzAlgebra [definition, in Combi.MPoly.sympoly]
+sympoly_sympoly__canonical__GRing_SubComNzRing [definition, in Combi.MPoly.sympoly]
+sympoly_sympoly__canonical__GRing_ComNzRing [definition, in Combi.MPoly.sympoly]
+sympoly_sympoly__canonical__GRing_ComNzSemiAlgebra [definition, in Combi.MPoly.sympoly]
+sympoly_sympoly__canonical__GRing_SubComNzSemiRing [definition, in Combi.MPoly.sympoly]
+sympoly_sympoly__canonical__GRing_ComNzSemiRing [definition, in Combi.MPoly.sympoly]
+sympoly_sympoly__canonical__GRing_ComPzAlgebra [definition, in Combi.MPoly.sympoly]
+sympoly_sympoly__canonical__GRing_SubComPzRing [definition, in Combi.MPoly.sympoly]
+sympoly_sympoly__canonical__GRing_ComPzRing [definition, in Combi.MPoly.sympoly]
+sympoly_sympoly__canonical__GRing_ComPzSemiAlgebra [definition, in Combi.MPoly.sympoly]
+sympoly_sympoly__canonical__GRing_SubComPzSemiRing [definition, in Combi.MPoly.sympoly]
+sympoly_sympoly__canonical__GRing_ComPzSemiRing [definition, in Combi.MPoly.sympoly]
+sympoly_sympoly__canonical__GRing_SubNzAlgebra [definition, in Combi.MPoly.sympoly]
+sympoly_sympoly__canonical__GRing_NzAlgebra [definition, in Combi.MPoly.sympoly]
+sympoly_sympoly__canonical__GRing_SubPzAlgebra [definition, in Combi.MPoly.sympoly]
+sympoly_sympoly__canonical__GRing_PzAlgebra [definition, in Combi.MPoly.sympoly]
+sympoly_sympoly__canonical__GRing_SubNzSemiAlgebra [definition, in Combi.MPoly.sympoly]
+sympoly_sympoly__canonical__GRing_NzSemiAlgebra [definition, in Combi.MPoly.sympoly]
+sympoly_sympoly__canonical__GRing_SubPzSemiAlgebra [definition, in Combi.MPoly.sympoly]
+sympoly_sympoly__canonical__GRing_PzSemiAlgebra [definition, in Combi.MPoly.sympoly]
+sympoly_sympol__canonical__GRing_LRMorphism [definition, in Combi.MPoly.sympoly]
+sympoly_sympol__canonical__GRing_RMorphism [definition, in Combi.MPoly.sympoly]
+sympoly_sympol__canonical__GRing_Linear [definition, in Combi.MPoly.sympoly]
+sympoly_sympol__canonical__Algebra_Additive [definition, in Combi.MPoly.sympoly]
+sympoly_sympoly__canonical__GRing_SubNzLalgebra [definition, in Combi.MPoly.sympoly]
+sympoly_sympoly__canonical__GRing_NzLalgebra [definition, in Combi.MPoly.sympoly]
+sympoly_sympoly__canonical__GRing_SubPzLalgebra [definition, in Combi.MPoly.sympoly]
+sympoly_sympoly__canonical__GRing_PzLalgebra [definition, in Combi.MPoly.sympoly]
+sympoly_sympoly__canonical__GRing_SubLmodule [definition, in Combi.MPoly.sympoly]
+sympoly_sympoly__canonical__GRing_Lmodule [definition, in Combi.MPoly.sympoly]
+sympoly_sympoly__canonical__GRing_SubNzLSemiAlgebra [definition, in Combi.MPoly.sympoly]
+sympoly_sympoly__canonical__GRing_NzLSemiAlgebra [definition, in Combi.MPoly.sympoly]
+sympoly_sympoly__canonical__GRing_SubPzLSemiAlgebra [definition, in Combi.MPoly.sympoly]
+sympoly_sympoly__canonical__GRing_PzLSemiAlgebra [definition, in Combi.MPoly.sympoly]
+sympoly_sympoly__canonical__GRing_SubLSemiModule [definition, in Combi.MPoly.sympoly]
+sympoly_sympoly__canonical__GRing_LSemiModule [definition, in Combi.MPoly.sympoly]
+sympoly_sympoly__canonical__GRing_SubNzRing [definition, in Combi.MPoly.sympoly]
+sympoly_sympoly__canonical__GRing_NzRing [definition, in Combi.MPoly.sympoly]
+sympoly_sympoly__canonical__GRing_SubNzSemiRing [definition, in Combi.MPoly.sympoly]
+sympoly_sympoly__canonical__GRing_NzSemiRing [definition, in Combi.MPoly.sympoly]
+sympoly_sympoly__canonical__GRing_SubPzRing [definition, in Combi.MPoly.sympoly]
+sympoly_sympoly__canonical__GRing_PzRing [definition, in Combi.MPoly.sympoly]
+sympoly_sympoly__canonical__GRing_SubPzSemiRing [definition, in Combi.MPoly.sympoly]
+sympoly_sympoly__canonical__GRing_PzSemiRing [definition, in Combi.MPoly.sympoly]
+sympoly_sympoly__canonical__Algebra_SubZmodule [definition, in Combi.MPoly.sympoly]
+sympoly_sympoly__canonical__Algebra_SubNmodule [definition, in Combi.MPoly.sympoly]
+sympoly_sympoly__canonical__Algebra_Zmodule [definition, in Combi.MPoly.sympoly]
+sympoly_sympoly__canonical__Algebra_Nmodule [definition, in Combi.MPoly.sympoly]
+sympoly_sympoly__canonical__Algebra_AddSemigroup [definition, in Combi.MPoly.sympoly]
+sympoly_sympoly__canonical__Algebra_SubAddUMagma [definition, in Combi.MPoly.sympoly]
+sympoly_sympoly__canonical__Algebra_AddUMagma [definition, in Combi.MPoly.sympoly]
+sympoly_sympoly__canonical__Algebra_AddMagma [definition, in Combi.MPoly.sympoly]
+sympoly_sympoly__canonical__Algebra_BaseZmodule [definition, in Combi.MPoly.sympoly]
+sympoly_sympoly__canonical__Algebra_SubBaseAddUMagma [definition, in Combi.MPoly.sympoly]
+sympoly_sympoly__canonical__Algebra_ChoiceBaseAddUMagma [definition, in Combi.MPoly.sympoly]
+sympoly_sympoly__canonical__Algebra_BaseAddUMagma [definition, in Combi.MPoly.sympoly]
+sympoly_sympoly__canonical__Algebra_ChoiceBaseAddMagma [definition, in Combi.MPoly.sympoly]
+sympoly_sympoly__canonical__Algebra_BaseAddMagma [definition, in Combi.MPoly.sympoly]
+sympoly_sympoly__canonical__choice_SubChoice [definition, in Combi.MPoly.sympoly]
+sympoly_sympoly__canonical__choice_Choice [definition, in Combi.MPoly.sympoly]
+sympoly_sympoly__canonical__eqtype_SubEquality [definition, in Combi.MPoly.sympoly]
+sympoly_sympoly__canonical__eqtype_Equality [definition, in Combi.MPoly.sympoly]
+sympoly_sympoly__canonical__eqtype_SubType [definition, in Combi.MPoly.sympoly]
+sympol_is_monoid_morphism [lemma, in Combi.MPoly.sympoly]
+sympol_is_linear [lemma, in Combi.MPoly.sympoly]
+sympol_inj [lemma, in Combi.MPoly.sympoly]
+sympXY [lemma, in Combi.MPoly.Cauchy]
+symp_cast [lemma, in Combi.MPoly.sympoly]
+symp_to_symm [lemma, in Combi.MPoly.sympoly]
+symp_homog [lemma, in Combi.MPoly.sympoly]
+symp_sym [lemma, in Combi.MPoly.sympoly]
+symp_pol [definition, in Combi.MPoly.sympoly]
+symp0 [lemma, in Combi.MPoly.sympoly]
+syms [definition, in Combi.MPoly.sympoly]
+SymsSymm [section, in Combi.MPoly.sympoly]
+SymsSymmInt [section, in Combi.MPoly.sympoly]
+SymsSymmInt.d [variable, in Combi.MPoly.sympoly]
+SymsSymmInt.n [variable, in Combi.MPoly.sympoly]
+SymsSymm.d [variable, in Combi.MPoly.sympoly]
+SymsSymm.n [variable, in Combi.MPoly.sympoly]
+SymsSymm.R [variable, in Combi.MPoly.sympoly]
+syms_prod_sympM [lemma, in Combi.MPoly.MurnaghanNakayama]
+syms_prod_sympM_int [lemma, in Combi.MPoly.MurnaghanNakayama]
+syms_sympM [lemma, in Combi.MPoly.MurnaghanNakayama]
+syms_sympM_pmap [lemma, in Combi.MPoly.MurnaghanNakayama]
+syms_sympM_oapp [lemma, in Combi.MPoly.MurnaghanNakayama]
+syms_sympM_oapp_int [lemma, in Combi.MPoly.MurnaghanNakayama]
+syms_syme_partdom [lemma, in Combi.MPoly.sympoly]
+syms_syme [lemma, in Combi.MPoly.sympoly]
+syms_symh_partdom [lemma, in Combi.MPoly.sympoly]
+syms_symh [lemma, in Combi.MPoly.sympoly]
+syms_syme_partdom_int [lemma, in Combi.MPoly.sympoly]
+syms_syme_int [lemma, in Combi.MPoly.sympoly]
+syms_symh_partdom_int [lemma, in Combi.MPoly.sympoly]
+syms_symh_int [lemma, in Combi.MPoly.sympoly]
+syms_symm_partdom [lemma, in Combi.MPoly.sympoly]
+syms_symm [lemma, in Combi.MPoly.sympoly]
+syms_symm_partdom_int [lemma, in Combi.MPoly.sympoly]
+syms_symm_int [lemma, in Combi.MPoly.sympoly]
+syms_symeM [lemma, in Combi.MPoly.sympoly]
+syms_symhM [lemma, in Combi.MPoly.sympoly]
+syms_symsM [lemma, in Combi.MPoly.sympoly]
+syms_cast [lemma, in Combi.MPoly.sympoly]
+syms_oversize [lemma, in Combi.MPoly.sympoly]
+syms_colpartn [lemma, in Combi.MPoly.sympoly]
+syms_rowpartn [lemma, in Combi.MPoly.sympoly]
+syms_homog [lemma, in Combi.MPoly.sympoly]
+syms0 [lemma, in Combi.MPoly.sympoly]
+syms1 [lemma, in Combi.MPoly.sympoly]
+sym_VanprodM [lemma, in Combi.MPoly.antisym]
+sym_antiE [lemma, in Combi.MPoly.antisym]
+sym_antisym_char_not2 [lemma, in Combi.MPoly.antisym]
+sym_anti [lemma, in Combi.MPoly.antisym]
+sym_smalln [lemma, in Combi.MPoly.antisym]
+sym_fundamental_symh [lemma, in Combi.MPoly.sympoly]
+sym_fundamental_symh_homog [lemma, in Combi.MPoly.sympoly]
+sym_fundamental_homog [lemma, in Combi.MPoly.sympoly]
+sym_symmE [lemma, in Combi.MPoly.sympoly]
+sz [abbreviation, in Combi.MPoly.Schur_altdef]
+sztd [lemma, in Combi.Combi.skewpart]
+

T

+T [abbreviation, in Combi.MPoly.Schur_altdef]
+tabcols [definition, in Combi.LRrule.Greene]
+tabcolsk [definition, in Combi.LRrule.Greene]
+tabcols_cons [lemma, in Combi.LRrule.Greene]
+tabcol_cut [lemma, in Combi.LRrule.Greene]
+Tableau [section, in Combi.Combi.tableau]
+tableau [library]
+TableauReading [section, in Combi.LRrule.freeSchur]
+TableauReading [section, in Combi.Combi.tableau]
+TableauReading.A [variable, in Combi.LRrule.freeSchur]
+TableauReading.A [variable, in Combi.Combi.tableau]
+TableauReading.disp [variable, in Combi.LRrule.freeSchur]
+TableauReading.disp [variable, in Combi.Combi.tableau]
+tableau_tabsh__canonical__fintype_SubFinite [definition, in Combi.Combi.tableau]
+tableau_tabsh__canonical__fintype_Finite [definition, in Combi.Combi.tableau]
+tableau_tabsh__canonical__choice_SubCountable [definition, in Combi.Combi.tableau]
+tableau_tabsh__canonical__choice_Countable [definition, in Combi.Combi.tableau]
+tableau_tabsh__canonical__choice_SubChoice [definition, in Combi.Combi.tableau]
+tableau_tabsh__canonical__choice_Choice [definition, in Combi.Combi.tableau]
+tableau_tabsh__canonical__eqtype_SubEquality [definition, in Combi.Combi.tableau]
+tableau_tabsh__canonical__eqtype_Equality [definition, in Combi.Combi.tableau]
+tableau_tabsh__canonical__eqtype_SubType [definition, in Combi.Combi.tableau]
+tableau_is_row [lemma, in Combi.Combi.tableau]
+Tableau.disp [variable, in Combi.Combi.tableau]
+Tableau.T [variable, in Combi.Combi.tableau]
+tabnat_of_ordK [lemma, in Combi.MPoly.Schur_altdef]
+tabnat_of_ord [definition, in Combi.MPoly.Schur_altdef]
+tabnat_of_ord_subproof [lemma, in Combi.MPoly.Schur_altdef]
+tabnat_of_ord_fun [definition, in Combi.MPoly.Schur_altdef]
+tabord_of_natK [lemma, in Combi.MPoly.Schur_altdef]
+tabord_of_nat [definition, in Combi.MPoly.Schur_altdef]
+tabord_of_nat_subproof [lemma, in Combi.MPoly.Schur_altdef]
+tabord_of_nat_fun [definition, in Combi.MPoly.Schur_altdef]
+TabPair [abbreviation, in Combi.LRrule.Schensted]
+tabrowconst [definition, in Combi.Combi.tableau]
+tabrowconst_subproof [lemma, in Combi.Combi.tableau]
+tabrows [definition, in Combi.LRrule.Greene]
+tabrowsk [definition, in Combi.LRrule.Greene]
+tabrows_non0 [lemma, in Combi.LRrule.Greene]
+tabsh [record, in Combi.Combi.tableau]
+tabshP [lemma, in Combi.Combi.tableau]
+tabshval [projection, in Combi.Combi.tableau]
+tabsh_is_std [lemma, in Combi.MPoly.Schur_altdef]
+tabsh_reading_RSE [lemma, in Combi.LRrule.freeSchur]
+tabsh_reading_RSP [lemma, in Combi.LRrule.freeSchur]
+tabsh_reading_RS [definition, in Combi.LRrule.freeSchur]
+tabsh_to_wordK [lemma, in Combi.Combi.tableau]
+tabsh_readingP [lemma, in Combi.Combi.tableau]
+tabsh_reading [definition, in Combi.Combi.tableau]
+tabwordshape [definition, in Combi.LRrule.freeSchur]
+tabwordshape_col [lemma, in Combi.MPoly.Schur_mpoly]
+tabwordshape_row [lemma, in Combi.MPoly.Schur_mpoly]
+tabword_of_tuple_freeSchur [lemma, in Combi.LRrule.freeSchur]
+tabword_of_tuple_freeSchur_inj [lemma, in Combi.LRrule.freeSchur]
+tabword_of_tuple [definition, in Combi.LRrule.freeSchur]
+tab_eval_partdom [lemma, in Combi.MPoly.Schur_altdef]
+tab_eqP [lemma, in Combi.Combi.tableau]
+tab0 [lemma, in Combi.Combi.tableau]
+take_enumI [lemma, in Combi.SSRcomplements.tools]
+take_drop_langQ [lemma, in Combi.LRrule.freeSchur]
+take_prefixes [lemma, in Combi.Combi.Dyckword]
+TamariCover [section, in Combi.Combi.bintree]
+TamariCover.n [variable, in Combi.Combi.bintree]
+TamariLattice [module, in Combi.Combi.bintree]
+TamariLattice.bintree_bintreesz__canonical__Order_FinTBLattice [definition, in Combi.Combi.bintree]
+TamariLattice.bintree_bintreesz__canonical__Order_FinTBPOrder [definition, in Combi.Combi.bintree]
+TamariLattice.bintree_bintreesz__canonical__Order_FinTBPreorder [definition, in Combi.Combi.bintree]
+TamariLattice.bintree_bintreesz__canonical__Order_FinTJoinSemilattice [definition, in Combi.Combi.bintree]
+TamariLattice.bintree_bintreesz__canonical__Order_FinTPOrder [definition, in Combi.Combi.bintree]
+TamariLattice.bintree_bintreesz__canonical__Order_FinTPreorder [definition, in Combi.Combi.bintree]
+TamariLattice.bintree_bintreesz__canonical__Order_TBLattice [definition, in Combi.Combi.bintree]
+TamariLattice.bintree_bintreesz__canonical__Order_TBJoinSemilattice [definition, in Combi.Combi.bintree]
+TamariLattice.bintree_bintreesz__canonical__Order_TBMeetSemilattice [definition, in Combi.Combi.bintree]
+TamariLattice.bintree_bintreesz__canonical__Order_TBPOrder [definition, in Combi.Combi.bintree]
+TamariLattice.bintree_bintreesz__canonical__Order_TBPreorder [definition, in Combi.Combi.bintree]
+TamariLattice.bintree_bintreesz__canonical__Order_TLattice [definition, in Combi.Combi.bintree]
+TamariLattice.bintree_bintreesz__canonical__Order_TJoinSemilattice [definition, in Combi.Combi.bintree]
+TamariLattice.bintree_bintreesz__canonical__Order_TMeetSemilattice [definition, in Combi.Combi.bintree]
+TamariLattice.bintree_bintreesz__canonical__Order_TPOrder [definition, in Combi.Combi.bintree]
+TamariLattice.bintree_bintreesz__canonical__Order_TPreorder [definition, in Combi.Combi.bintree]
+TamariLattice.bintree_bintreesz__canonical__Order_BLattice [definition, in Combi.Combi.bintree]
+TamariLattice.bintree_bintreesz__canonical__Order_BJoinSemilattice [definition, in Combi.Combi.bintree]
+TamariLattice.bintree_bintreesz__canonical__Order_FinBMeetSemilattice [definition, in Combi.Combi.bintree]
+TamariLattice.bintree_bintreesz__canonical__Order_BMeetSemilattice [definition, in Combi.Combi.bintree]
+TamariLattice.bintree_bintreesz__canonical__Order_FinBPOrder [definition, in Combi.Combi.bintree]
+TamariLattice.bintree_bintreesz__canonical__Order_BPOrder [definition, in Combi.Combi.bintree]
+TamariLattice.bintree_bintreesz__canonical__Order_FinBPreorder [definition, in Combi.Combi.bintree]
+TamariLattice.bintree_bintreesz__canonical__Order_BPreorder [definition, in Combi.Combi.bintree]
+TamariLattice.bintree_bintreesz__canonical__Order_FinLattice [definition, in Combi.Combi.bintree]
+TamariLattice.bintree_bintreesz__canonical__Order_FinMeetSemilattice [definition, in Combi.Combi.bintree]
+TamariLattice.bintree_bintreesz__canonical__Order_Lattice [definition, in Combi.Combi.bintree]
+TamariLattice.bintree_bintreesz__canonical__Order_MeetSemilattice [definition, in Combi.Combi.bintree]
+TamariLattice.bintree_bintreesz__canonical__Order_FinJoinSemilattice [definition, in Combi.Combi.bintree]
+TamariLattice.bintree_bintreesz__canonical__Order_JoinSemilattice [definition, in Combi.Combi.bintree]
+TamariLattice.bintree_bintreesz__canonical__Order_FinPOrder [definition, in Combi.Combi.bintree]
+TamariLattice.bintree_bintreesz__canonical__Order_FinPreorder [definition, in Combi.Combi.bintree]
+TamariLattice.bintree_bintreesz__canonical__Order_POrder [definition, in Combi.Combi.bintree]
+TamariLattice.bintree_bintreesz__canonical__Order_Preorder [definition, in Combi.Combi.bintree]
+TamariLattice.botETamari [lemma, in Combi.Combi.bintree]
+TamariLattice.Exports [module, in Combi.Combi.bintree]
+TamariLattice.Exports.botETamari [definition, in Combi.Combi.bintree]
+TamariLattice.Exports.flipsz_join [definition, in Combi.Combi.bintree]
+TamariLattice.Exports.flipsz_meet [definition, in Combi.Combi.bintree]
+TamariLattice.Exports.right_sizes_meet [definition, in Combi.Combi.bintree]
+TamariLattice.Exports.rotations_Tamari [definition, in Combi.Combi.bintree]
+TamariLattice.Exports.TamariE [definition, in Combi.Combi.bintree]
+TamariLattice.Exports.Tamari_vctleq [definition, in Combi.Combi.bintree]
+TamariLattice.Exports.Tamari_flip [definition, in Combi.Combi.bintree]
+TamariLattice.Exports.topETamari [definition, in Combi.Combi.bintree]
+TamariLattice.flipsz_join [lemma, in Combi.Combi.bintree]
+TamariLattice.flipsz_meet [lemma, in Combi.Combi.bintree]
+TamariLattice.HB_unnamed_factory_41 [definition, in Combi.Combi.bintree]
+TamariLattice.HB_unnamed_factory_39 [definition, in Combi.Combi.bintree]
+TamariLattice.HB_unnamed_mixin_38 [definition, in Combi.Combi.bintree]
+TamariLattice.HB_unnamed_mixin_37 [definition, in Combi.Combi.bintree]
+TamariLattice.HB_unnamed_factory_34 [definition, in Combi.Combi.bintree]
+TamariLattice.HB_unnamed_mixin_33 [definition, in Combi.Combi.bintree]
+TamariLattice.HB_unnamed_mixin_32 [definition, in Combi.Combi.bintree]
+TamariLattice.HB_unnamed_factory_29 [definition, in Combi.Combi.bintree]
+TamariLattice.leftcomb_bottom [lemma, in Combi.Combi.bintree]
+TamariLattice.Order_POrder_MeetJoin_isLattice__to__Order_POrder_isMeetSemilattice [definition, in Combi.Combi.bintree]
+TamariLattice.Order_POrder_MeetJoin_isLattice__to__Order_POrder_isJoinSemilattice [definition, in Combi.Combi.bintree]
+TamariLattice.Order_Le_isPOrder__to__Order_isDuallyPreorder [definition, in Combi.Combi.bintree]
+TamariLattice.Order_Le_isPOrder__to__Order_Preorder_isDuallyPOrder [definition, in Combi.Combi.bintree]
+TamariLattice.rightcomb_top [lemma, in Combi.Combi.bintree]
+TamariLattice.right_sizes_meet [lemma, in Combi.Combi.bintree]
+TamariLattice.rotations_Tamari [lemma, in Combi.Combi.bintree]
+TamariLattice.Tamari [definition, in Combi.Combi.bintree]
+TamariLattice.TamariE [lemma, in Combi.Combi.bintree]
+TamariLattice.TamariLattice [section, in Combi.Combi.bintree]
+TamariLattice.TamariLattice.n [variable, in Combi.Combi.bintree]
+TamariLattice.Tamari_vctleq [lemma, in Combi.Combi.bintree]
+TamariLattice.Tamari_flip [lemma, in Combi.Combi.bintree]
+TamariLattice.Tamari_anti [lemma, in Combi.Combi.bintree]
+TamariLattice.Tamari_trans [lemma, in Combi.Combi.bintree]
+TamariLattice.Tamari_refl [lemma, in Combi.Combi.bintree]
+TamariLattice.Tamari_sumn_right_sizes [lemma, in Combi.Combi.bintree]
+TamariLattice.Tjoin [definition, in Combi.Combi.bintree]
+TamariLattice.TjoinP [lemma, in Combi.Combi.bintree]
+TamariLattice.Tmeet [definition, in Combi.Combi.bintree]
+TamariLattice.TmeetC [lemma, in Combi.Combi.bintree]
+TamariLattice.TmeetP [lemma, in Combi.Combi.bintree]
+TamariLattice.TmeetPr [lemma, in Combi.Combi.bintree]
+TamariLattice.Tmeet_proof [lemma, in Combi.Combi.bintree]
+TamariLattice.topETamari [lemma, in Combi.Combi.bintree]
+TamariP [lemma, in Combi.Combi.bintree]
+TamariVector [definition, in Combi.Combi.bintree]
+Tamari_succ [lemma, in Combi.Combi.bintree]
+Tamari_display [lemma, in Combi.Combi.bintree]
+Tamari_add_bounded [lemma, in Combi.Combi.bintree]
+Tamari_add_min [lemma, in Combi.Combi.bintree]
+Tamari_add_head [lemma, in Combi.Combi.bintree]
+Tamari_cat [lemma, in Combi.Combi.bintree]
+Tamari_take [lemma, in Combi.Combi.bintree]
+Tamari_catr [lemma, in Combi.Combi.bintree]
+Tamari_drop [lemma, in Combi.Combi.bintree]
+Tamari_consP [lemma, in Combi.Combi.bintree]
+TcastVal [section, in Combi.SymGroup.reprSn]
+TcastVal.T [variable, in Combi.SymGroup.reprSn]
+tclosure [definition, in Combi.SymGroup.presentSn]
+TClosureInvset [section, in Combi.SymGroup.weak_order]
+TClosureInvset.n0 [variable, in Combi.SymGroup.weak_order]
+tclosureP [lemma, in Combi.SymGroup.weak_order]
+tclosure_Delta [lemma, in Combi.SymGroup.weak_order]
+tclosure_sub [lemma, in Combi.SymGroup.presentSn]
+Test [section, in Combi.Combi.skewpart]
+Tests [section, in Combi.Combi.bintree]
+Tests [section, in Combi.LRrule.Schensted]
+Tests [section, in Combi.Combi.skewpart]
+Tests [section, in Combi.MPoly.MurnaghanNakayama]
+Tests [section, in Combi.MPoly.MurnaghanNakayama]
+TestsComp [section, in Combi.Combi.bintree]
+Tests.bla [variable, in Combi.Combi.bintree]
+Tests.partn [variable, in Combi.MPoly.MurnaghanNakayama]
+TextBookDefStartStop [section, in Combi.Combi.skewpart]
+TextBookDefStartStop.Hrib [variable, in Combi.Combi.skewpart]
+TextBookDefStartStop.inner [variable, in Combi.Combi.skewpart]
+TextBookDefStartStop.outer [variable, in Combi.Combi.skewpart]
+TextBookDefStartStop.partinn [variable, in Combi.Combi.skewpart]
+TextBookDefStartStop.partout [variable, in Combi.Combi.skewpart]
+TextBookDefStartStop.start [variable, in Combi.Combi.skewpart]
+TextBookDefStartStop.stop [variable, in Combi.Combi.skewpart]
+TextBookImplDef [section, in Combi.Combi.skewpart]
+TextBookImplDef.Htb [variable, in Combi.Combi.skewpart]
+TextBookImplDef.inner [variable, in Combi.Combi.skewpart]
+TextBookImplDef.outer [variable, in Combi.Combi.skewpart]
+TextBookImplDef.partinn [variable, in Combi.Combi.skewpart]
+TextBookImplDef.partout [variable, in Combi.Combi.skewpart]
+Theorem2 [lemma, in Combi.HookFormula.hook]
+therule [library]
+tinj [definition, in Combi.SymGroup.towerSn]
+tinjA [lemma, in Combi.SymGroup.towerSn]
+tinjE1 [lemma, in Combi.SymGroup.towerSn]
+tinjval [definition, in Combi.SymGroup.towerSn]
+tinjval_inj [lemma, in Combi.SymGroup.towerSn]
+tinj_morphM [lemma, in Combi.SymGroup.towerSn]
+tinj1E [lemma, in Combi.SymGroup.towerSn]
+Tm [abbreviation, in Combi.MPoly.Schur_altdef]
+toDepRSPair [lemma, in Combi.LRrule.freeSchur]
+tools [library]
+TowerMorphism [section, in Combi.SymGroup.towerSn]
+TowerMorphism.m [variable, in Combi.SymGroup.towerSn]
+TowerMorphism.n [variable, in Combi.SymGroup.towerSn]
+towerSn [library]
+towerSn_cfextprod__canonical__sesquilinear_Bilinear [definition, in Combi.SymGroup.towerSn]
+to_word_skew_reshape [lemma, in Combi.Combi.skewtab]
+to_word_yamtab [lemma, in Combi.LRrule.Yam_plact]
+to_maskK [lemma, in Combi.Combi.subseq]
+to_mask [definition, in Combi.Combi.subseq]
+to_mask_spec [lemma, in Combi.Combi.subseq]
+to_word_map_tab [lemma, in Combi.Combi.tableau]
+to_word_enum_tabsh [lemma, in Combi.Combi.tableau]
+to_word_filter_nnil [lemma, in Combi.Combi.tableau]
+to_wordK [lemma, in Combi.Combi.tableau]
+to_word_rcons [lemma, in Combi.Combi.tableau]
+to_word_cons [lemma, in Combi.Combi.tableau]
+to_word [definition, in Combi.Combi.tableau]
+to_word_map_shiftn [lemma, in Combi.LRrule.therule]
+tpermC [lemma, in Combi.SymGroup.presentSn]
+tperm_conj [lemma, in Combi.SymGroup.cycletype]
+tperm_braid [lemma, in Combi.SymGroup.presentSn]
+tpval [projection, in Combi.Combi.permuted]
+trace_seqrP [lemma, in Combi.HookFormula.hook]
+trace_seqlP [lemma, in Combi.HookFormula.hook]
+trace_corner_box [lemma, in Combi.HookFormula.hook]
+trace_seq_uniq [lemma, in Combi.HookFormula.hook]
+trace_seq [definition, in Combi.HookFormula.hook]
+trace_size_leg_length [lemma, in Combi.HookFormula.hook]
+trace_size_arm_length [lemma, in Combi.HookFormula.hook]
+transf [lemma, in Combi.LRrule.Schensted]
+transitive [projection, in ALEA.Ccpo]
+Transitive [section, in Combi.Basic.congr]
+transitive_DeltaI1 [lemma, in Combi.SymGroup.presentSn]
+Transitive.bound [variable, in Combi.Basic.congr]
+Transitive.FullKnown [section, in Combi.Basic.congr]
+Transitive.FullKnown.full [variable, in Combi.Basic.congr]
+Transitive.FullKnown.Hfull [variable, in Combi.Basic.congr]
+Transitive.Hbound [variable, in Combi.Basic.congr]
+Transitive.Hinvar [variable, in Combi.Basic.congr]
+Transitive.invar [variable, in Combi.Basic.congr]
+Transitive.rule [variable, in Combi.Basic.congr]
+Transitive.T [variable, in Combi.Basic.congr]
+Transp [section, in Combi.Combi.std]
+transP [lemma, in Combi.Basic.congr]
+Transp [section, in Combi.SymGroup.presentSn]
+Transp.Alph [variable, in Combi.Combi.std]
+Transp.disp [variable, in Combi.Combi.std]
+Transp.T [variable, in Combi.SymGroup.presentSn]
+tree_encodeK [lemma, in Combi.Combi.bintree]
+tree_decode [definition, in Combi.Combi.bintree]
+tree_encode [definition, in Combi.Combi.bintree]
+TriangularInv [section, in Combi.Basic.unitriginv]
+TriangularInv.disp [variable, in Combi.Basic.unitriginv]
+TriangularInv.M [variable, in Combi.Basic.unitriginv]
+TriangularInv.Munitrig [variable, in Combi.Basic.unitriginv]
+TriangularInv.R [variable, in Combi.Basic.unitriginv]
+TriangularInv.T [variable, in Combi.Basic.unitriginv]
+trivIs [lemma, in Combi.LRrule.Greene]
+trivIseq [definition, in Combi.LRrule.Greene]
+TrivISeq [section, in Combi.LRrule.Greene]
+trivIseq_tabcols [lemma, in Combi.LRrule.Greene]
+trivIseq_shcols [lemma, in Combi.LRrule.Greene]
+trivIseq_shrows [lemma, in Combi.LRrule.Greene]
+trivIseq_map [lemma, in Combi.LRrule.Greene]
+trivIseq_cover [lemma, in Combi.LRrule.Greene]
+trivIseq_consK [lemma, in Combi.LRrule.Greene]
+TrivISeq.T [variable, in Combi.LRrule.Greene]
+trivIsetpart [lemma, in Combi.Combi.setpartition]
+trivIset_iporbits [lemma, in Combi.SymGroup.permcent]
+trivIset_coverD1 [lemma, in Combi.LRrule.Greene_inv]
+trivIset_coverU [lemma, in Combi.LRrule.Greene_inv]
+trivIset_coverU1 [lemma, in Combi.LRrule.Greene_inv]
+trivIset_setrev [lemma, in Combi.LRrule.Greene_inv]
+trivIset_tabcolsk [lemma, in Combi.LRrule.Greene]
+trivIset_tabrowsk [lemma, in Combi.LRrule.Greene]
+trivIset_I [lemma, in Combi.LRrule.Greene]
+trivIsubseq [lemma, in Combi.LRrule.Greene]
+trivsetpart [definition, in Combi.Combi.setpartition]
+trivsetpart_subproof [lemma, in Combi.Combi.setpartition]
+trivSimpl [definition, in Combi.SymGroup.presentSn]
+triv_part [lemma, in Combi.SSRcomplements.tools]
+triv_sign_not_sim [lemma, in Combi.SymGroup.reprSn]
+triv_sign_neq [lemma, in Combi.SymGroup.reprSn]
+triv_Chi [lemma, in Combi.SymGroup.reprSn]
+triv_irr [lemma, in Combi.SymGroup.reprSn]
+triv_repr [definition, in Combi.SymGroup.reprSn]
+triv_mx_repr [lemma, in Combi.SymGroup.reprSn]
+triv_mx [definition, in Combi.SymGroup.reprSn]
+trval [projection, in Combi.Combi.bintree]
+trval [projection, in Combi.Combi.ordtree]
+tsumnE [lemma, in Combi.LRrule.implem]
+tval_tcastE [lemma, in Combi.SymGroup.reprSn]
+

U

+UDn [definition, in Combi.Combi.Dyckword]
+UDn_Dyck [lemma, in Combi.Combi.Dyckword]
+UnDn [definition, in Combi.Combi.Dyckword]
+UnDn_Dyck [lemma, in Combi.Combi.Dyckword]
+undup_step [lemma, in Combi.Basic.congr]
+undup_finType [definition, in Combi.Basic.combclass]
+unif [record, in ALEA.Qmeasure]
+unifnat [definition, in ALEA.Qmeasure]
+UnifNat [section, in ALEA.Qmeasure]
+Uniform [definition, in ALEA.Qmeasure]
+Uniform_def_ne [lemma, in ALEA.Qmeasure]
+Uniform_unif_seq_eq [lemma, in ALEA.Qmeasure]
+Uniform_in_seq [lemma, in ALEA.Qmeasure]
+Uniform_eq_out [lemma, in ALEA.Qmeasure]
+Uniform_eq_in [lemma, in ALEA.Qmeasure]
+Uniform_simpl [lemma, in ALEA.Qmeasure]
+unif_def [definition, in ALEA.Qmeasure]
+unif2fin [definition, in ALEA.Qmeasure]
+UnionPart [section, in Combi.Combi.partition]
+UnionPart.k [variable, in Combi.Combi.partition]
+UnionPart.l [variable, in Combi.Combi.partition]
+UnionPart.m [variable, in Combi.Combi.partition]
+UnionPart.n [variable, in Combi.Combi.partition]
+union_intpartnE [lemma, in Combi.Combi.partition]
+union_intpartn [definition, in Combi.Combi.partition]
+union_intpartn_subproof [lemma, in Combi.Combi.partition]
+union_intpartA [lemma, in Combi.Combi.partition]
+union_intpartC [lemma, in Combi.Combi.partition]
+union_intpartE [lemma, in Combi.Combi.partition]
+union_intpart [definition, in Combi.Combi.partition]
+union_intpart_subproof [lemma, in Combi.Combi.partition]
+union_finType [definition, in Combi.Basic.combclass]
+UniqFinType [section, in Combi.Basic.combclass]
+UniqFinType.P [variable, in Combi.Basic.combclass]
+UniqFinType.subenum [variable, in Combi.Basic.combclass]
+UniqFinType.subenumE [variable, in Combi.Basic.combclass]
+UniqFinType.subenum_uniq [variable, in Combi.Basic.combclass]
+UniqFinType.T [variable, in Combi.Basic.combclass]
+UniqFinType.TP [variable, in Combi.Basic.combclass]
+uniq_wordperm [lemma, in Combi.Combi.std]
+uniq_next [lemma, in Combi.SSRcomplements.tools]
+uniq_sum_count_mem [lemma, in Combi.SSRcomplements.tools]
+uniq_vect_n_k [lemma, in Combi.Combi.vectNK]
+uniq_step [lemma, in Combi.Basic.congr]
+uniq_finType [definition, in Combi.Basic.combclass]
+UniTriangular [section, in Combi.Basic.unitriginv]
+UniTriangular.disp [variable, in Combi.Basic.unitriginv]
+UniTriangular.R [variable, in Combi.Basic.unitriginv]
+UniTriangular.T [variable, in Combi.Basic.unitriginv]
+unitrig [definition, in Combi.Basic.unitriginv]
+unitriginv [library]
+unitrigP [lemma, in Combi.Basic.unitriginv]
+unitrig_sum1rV [lemma, in Combi.Basic.unitriginv]
+unitrig_sumrV [lemma, in Combi.Basic.unitriginv]
+unitrig_sum1lV [lemma, in Combi.Basic.unitriginv]
+unitrig_sumlV [lemma, in Combi.Basic.unitriginv]
+unitrig_sum1r [lemma, in Combi.Basic.unitriginv]
+unitrig_sumr [lemma, in Combi.Basic.unitriginv]
+unitrig_sum1l [lemma, in Combi.Basic.unitriginv]
+unitrig_suml [lemma, in Combi.Basic.unitriginv]
+unitrig1 [lemma, in Combi.Basic.unitriginv]
+unit_stable_sub [lemma, in ALEA.Qmeasure]
+unit_monotonic [lemma, in ALEA.Qmeasure]
+unit_stable_eq [lemma, in ALEA.Qmeasure]
+unlift_seqE [lemma, in Combi.LRrule.Greene]
+Unnamed_thm0 [definition, in Combi.Combi.std]
+Unnamed_thm [definition, in Combi.Combi.std]
+Unnamed_thm10 [definition, in Combi.Combi.bintree]
+Unnamed_thm9 [definition, in Combi.Combi.bintree]
+Unnamed_thm8 [definition, in Combi.Combi.bintree]
+Unnamed_thm7 [definition, in Combi.Combi.bintree]
+Unnamed_thm6 [definition, in Combi.Combi.bintree]
+Unnamed_thm5 [definition, in Combi.Combi.bintree]
+Unnamed_thm4 [definition, in Combi.Combi.bintree]
+Unnamed_thm3 [definition, in Combi.Combi.bintree]
+Unnamed_thm2 [definition, in Combi.Combi.bintree]
+Unnamed_thm1 [definition, in Combi.Combi.bintree]
+Unnamed_thm0 [definition, in Combi.Combi.bintree]
+Unnamed_thm [definition, in Combi.Combi.bintree]
+Unnamed_thm13 [definition, in Combi.LRrule.Schensted]
+Unnamed_thm12 [definition, in Combi.LRrule.Schensted]
+Unnamed_thm11 [definition, in Combi.LRrule.Schensted]
+Unnamed_thm10 [definition, in Combi.LRrule.Schensted]
+Unnamed_thm9 [definition, in Combi.LRrule.Schensted]
+Unnamed_thm8 [definition, in Combi.LRrule.Schensted]
+Unnamed_thm7 [definition, in Combi.LRrule.Schensted]
+Unnamed_thm6 [definition, in Combi.LRrule.Schensted]
+Unnamed_thm5 [definition, in Combi.LRrule.Schensted]
+Unnamed_thm4 [definition, in Combi.LRrule.Schensted]
+Unnamed_thm3 [definition, in Combi.LRrule.Schensted]
+Unnamed_thm2 [definition, in Combi.LRrule.Schensted]
+Unnamed_thm1 [definition, in Combi.LRrule.Schensted]
+Unnamed_thm0 [definition, in Combi.LRrule.Schensted]
+Unnamed_thm [definition, in Combi.LRrule.Schensted]
+Unnamed_thm40 [definition, in Combi.Combi.skewpart]
+Unnamed_thm39 [definition, in Combi.Combi.skewpart]
+Unnamed_thm38 [definition, in Combi.Combi.skewpart]
+Unnamed_thm37 [definition, in Combi.Combi.skewpart]
+Unnamed_thm36 [definition, in Combi.Combi.skewpart]
+Unnamed_thm35 [definition, in Combi.Combi.skewpart]
+Unnamed_thm34 [definition, in Combi.Combi.skewpart]
+Unnamed_thm33 [definition, in Combi.Combi.skewpart]
+Unnamed_thm32 [definition, in Combi.Combi.skewpart]
+Unnamed_thm31 [definition, in Combi.Combi.skewpart]
+Unnamed_thm30 [definition, in Combi.Combi.skewpart]
+Unnamed_thm29 [definition, in Combi.Combi.skewpart]
+Unnamed_thm28 [definition, in Combi.Combi.skewpart]
+Unnamed_thm27 [definition, in Combi.Combi.skewpart]
+Unnamed_thm26 [definition, in Combi.Combi.skewpart]
+Unnamed_thm25 [definition, in Combi.Combi.skewpart]
+Unnamed_thm24 [definition, in Combi.Combi.skewpart]
+Unnamed_thm23 [definition, in Combi.Combi.skewpart]
+Unnamed_thm22 [definition, in Combi.Combi.skewpart]
+Unnamed_thm21 [definition, in Combi.Combi.skewpart]
+Unnamed_thm20 [definition, in Combi.Combi.skewpart]
+Unnamed_thm19 [definition, in Combi.Combi.skewpart]
+Unnamed_thm18 [definition, in Combi.Combi.skewpart]
+Unnamed_thm17 [definition, in Combi.Combi.skewpart]
+Unnamed_thm16 [definition, in Combi.Combi.skewpart]
+Unnamed_thm15 [definition, in Combi.Combi.skewpart]
+Unnamed_thm14 [definition, in Combi.Combi.skewpart]
+Unnamed_thm13 [definition, in Combi.Combi.skewpart]
+Unnamed_thm12 [definition, in Combi.Combi.skewpart]
+Unnamed_thm11 [definition, in Combi.Combi.skewpart]
+Unnamed_thm10 [definition, in Combi.Combi.skewpart]
+Unnamed_thm9 [definition, in Combi.Combi.skewpart]
+Unnamed_thm8 [definition, in Combi.Combi.skewpart]
+Unnamed_thm7 [definition, in Combi.Combi.skewpart]
+Unnamed_thm6 [definition, in Combi.Combi.skewpart]
+Unnamed_thm5 [definition, in Combi.Combi.skewpart]
+Unnamed_thm4 [definition, in Combi.Combi.skewpart]
+Unnamed_thm3 [definition, in Combi.Combi.skewpart]
+Unnamed_thm2 [definition, in Combi.Combi.skewpart]
+Unnamed_thm1 [definition, in Combi.Combi.skewpart]
+Unnamed_thm0 [definition, in Combi.Combi.skewpart]
+Unnamed_thm [definition, in Combi.Combi.skewpart]
+Unnamed_thm8 [definition, in Combi.MPoly.MurnaghanNakayama]
+Unnamed_thm7 [definition, in Combi.MPoly.MurnaghanNakayama]
+Unnamed_thm6 [definition, in Combi.MPoly.MurnaghanNakayama]
+Unnamed_thm5 [definition, in Combi.MPoly.MurnaghanNakayama]
+Unnamed_thm4 [definition, in Combi.MPoly.MurnaghanNakayama]
+Unnamed_thm3 [definition, in Combi.MPoly.MurnaghanNakayama]
+Unnamed_thm2 [definition, in Combi.MPoly.MurnaghanNakayama]
+Unnamed_thm1 [definition, in Combi.MPoly.MurnaghanNakayama]
+Unnamed_thm0 [definition, in Combi.MPoly.MurnaghanNakayama]
+Unnamed_thm [definition, in Combi.MPoly.MurnaghanNakayama]
+upoints [projection, in ALEA.Qmeasure]
+usize [definition, in ALEA.Qmeasure]
+usize_pos [lemma, in ALEA.Qmeasure]
+

V

+val_intpartn3 [lemma, in Combi.Combi.partition]
+val_intpartn2 [lemma, in Combi.Combi.partition]
+val_intpartn1 [lemma, in Combi.Combi.partition]
+val_intpartn0 [lemma, in Combi.Combi.partition]
+val_stdtabshcast [lemma, in Combi.Combi.stdtab]
+val_enum_subseqs [lemma, in Combi.Combi.subseq]
+val_omegasf [lemma, in Combi.MPoly.sympoly]
+val_descset [lemma, in Combi.Combi.composition]
+val2pos [definition, in Combi.LRrule.stdplact]
+val2posE [lemma, in Combi.LRrule.stdplact]
+val2pos_enum [lemma, in Combi.LRrule.stdplact]
+val2pos_inj [lemma, in Combi.LRrule.stdplact]
+VandermondeDet [section, in Combi.MPoly.antisym]
+VandermondeDet.n [variable, in Combi.MPoly.antisym]
+VandermondeDet.R [variable, in Combi.MPoly.antisym]
+'a_ _ [notation, in Combi.MPoly.antisym]
+Vandet [definition, in Combi.MPoly.antisym]
+Vandet_VanprodE [lemma, in Combi.MPoly.antisym]
+Vanmx [definition, in Combi.MPoly.antisym]
+Vanmx_antimE [lemma, in Combi.MPoly.antisym]
+Vanprod [section, in Combi.MPoly.antisym]
+Vanprod [definition, in Combi.MPoly.antisym]
+Vanprod_alt [lemma, in Combi.MPoly.antisym]
+Vanprod_alt_int [lemma, in Combi.MPoly.antisym]
+Vanprod_dhomog [lemma, in Combi.MPoly.antisym]
+Vanprod_neq0 [lemma, in Combi.MPoly.antisym]
+Vanprod_coeff_rho [lemma, in Combi.MPoly.antisym]
+Vanprod_anti [lemma, in Combi.MPoly.antisym]
+Vanprod.abound [variable, in Combi.MPoly.antisym]
+Vanprod.n [variable, in Combi.MPoly.antisym]
+Vanprod.R [variable, in Combi.MPoly.antisym]
+Vanprod.rbound [variable, in Combi.MPoly.antisym]
+'a_ _ [notation, in Combi.MPoly.antisym]
+'X_ _ [notation, in Combi.MPoly.antisym]
+vb_strip_lexi [lemma, in Combi.MPoly.Schur_altdef]
+vb_strip_rem_col0 [lemma, in Combi.MPoly.Schur_altdef]
+vb_strip_conjE [lemma, in Combi.Combi.skewpart]
+vb_strip_conj [lemma, in Combi.Combi.skewpart]
+vb_strip_diffP [lemma, in Combi.Combi.skewpart]
+vb_stripP [lemma, in Combi.Combi.skewpart]
+vb_strip_included [lemma, in Combi.Combi.skewpart]
+vb_strip [definition, in Combi.Combi.skewpart]
+vctleq [definition, in Combi.Combi.bintree]
+vctleqP [lemma, in Combi.Combi.bintree]
+vctleq_rotation [lemma, in Combi.Combi.bintree]
+vctleq_sumn_right_sizes [lemma, in Combi.Combi.bintree]
+vctleq_anti [lemma, in Combi.Combi.bintree]
+vctleq_trans [lemma, in Combi.Combi.bintree]
+vctleq_refl [lemma, in Combi.Combi.bintree]
+vctmin [definition, in Combi.Combi.bintree]
+vctminC [lemma, in Combi.Combi.bintree]
+vctminP [lemma, in Combi.Combi.bintree]
+vctminPl [lemma, in Combi.Combi.bintree]
+vctminPr [lemma, in Combi.Combi.bintree]
+vctmin_Tamari [lemma, in Combi.Combi.bintree]
+vct_succ [lemma, in Combi.Combi.bintree]
+vecmx_indexK [lemma, in Combi.MPoly.Cauchy]
+VectNK [section, in Combi.Combi.vectNK]
+vectNK [library]
+Vector [section, in Combi.MPoly.homogsym]
+vector_Lmodule_hasFinDim__to__vector_LSemiModule_hasFinDim [definition, in Combi.MPoly.homogsym]
+Vector.d [variable, in Combi.MPoly.homogsym]
+Vector.n0 [variable, in Combi.MPoly.homogsym]
+Vector.R [variable, in Combi.MPoly.homogsym]
+vect_0_k [lemma, in Combi.Combi.vectNK]
+vect_n_kP [lemma, in Combi.Combi.vectNK]
+vect_n_k_in [lemma, in Combi.Combi.vectNK]
+vect_n_k [definition, in Combi.Combi.vectNK]
+versions [definition, in Combi.Combi.std]
+

W

+walk_to_corner_decomp [lemma, in Combi.HookFormula.hook]
+walk_to_corner_emptyr [lemma, in Combi.HookFormula.hook]
+walk_to_corner_emptyl [lemma, in Combi.HookFormula.hook]
+walk_to_corner_inv [lemma, in Combi.HookFormula.hook]
+walk_to_corner_simpl [lemma, in Combi.HookFormula.hook]
+walk_to_corner_end_simpl [lemma, in Combi.HookFormula.hook]
+walk_to_corner0_simpl [lemma, in Combi.HookFormula.hook]
+walk_to_corner [definition, in Combi.HookFormula.hook]
+walk_to_corner_rec [definition, in Combi.HookFormula.hook]
+wcord [definition, in Combi.SymGroup.presentSn]
+wcordE [lemma, in Combi.SymGroup.presentSn]
+wcord_cons [lemma, in Combi.SymGroup.presentSn]
+WeakOrder [module, in Combi.SymGroup.weak_order]
+WeakOrder.Def [section, in Combi.SymGroup.weak_order]
+WeakOrder.Def.n0 [variable, in Combi.SymGroup.weak_order]
+_ <=R _ [notation, in Combi.SymGroup.weak_order]
+WeakOrder.Exports [module, in Combi.SymGroup.weak_order]
+WeakOrder.Exports.lepermP [definition, in Combi.SymGroup.weak_order]
+WeakOrder.Exports.leperm_lengthE [definition, in Combi.SymGroup.weak_order]
+WeakOrder.Exports.leperm_length [definition, in Combi.SymGroup.weak_order]
+WeakOrder.Exports.n [abbreviation, in Combi.SymGroup.weak_order]
+WeakOrder.Exports.WeakOrder [section, in Combi.SymGroup.weak_order]
+WeakOrder.Exports.WeakOrder.n0 [variable, in Combi.SymGroup.weak_order]
+_ \/R _ (Combi_scope) [notation, in Combi.SymGroup.weak_order]
+_ /\R _ (Combi_scope) [notation, in Combi.SymGroup.weak_order]
+_ <R _ (Combi_scope) [notation, in Combi.SymGroup.weak_order]
+_ <=R _ (Combi_scope) [notation, in Combi.SymGroup.weak_order]
+WeakOrder.fintype_Finite__to__fintype_isFinite [definition, in Combi.SymGroup.weak_order]
+WeakOrder.fintype_Finite__to__eqtype_hasDecEq [definition, in Combi.SymGroup.weak_order]
+WeakOrder.fintype_Finite__to__choice_Choice_isCountable [definition, in Combi.SymGroup.weak_order]
+WeakOrder.fintype_Finite__to__choice_hasChoice [definition, in Combi.SymGroup.weak_order]
+WeakOrder.HB_unnamed_mixin_14 [definition, in Combi.SymGroup.weak_order]
+WeakOrder.HB_unnamed_mixin_13 [definition, in Combi.SymGroup.weak_order]
+WeakOrder.HB_unnamed_factory_10 [definition, in Combi.SymGroup.weak_order]
+WeakOrder.HB_unnamed_mixin_9 [definition, in Combi.SymGroup.weak_order]
+WeakOrder.HB_unnamed_mixin_8 [definition, in Combi.SymGroup.weak_order]
+WeakOrder.HB_unnamed_mixin_7 [definition, in Combi.SymGroup.weak_order]
+WeakOrder.HB_unnamed_mixin_6 [definition, in Combi.SymGroup.weak_order]
+WeakOrder.HB_unnamed_factory_1 [definition, in Combi.SymGroup.weak_order]
+WeakOrder.leperm [definition, in Combi.SymGroup.weak_order]
+WeakOrder.lepermP [lemma, in Combi.SymGroup.weak_order]
+WeakOrder.leperm_anti [lemma, in Combi.SymGroup.weak_order]
+WeakOrder.leperm_trans [lemma, in Combi.SymGroup.weak_order]
+WeakOrder.leperm_refl [lemma, in Combi.SymGroup.weak_order]
+WeakOrder.leperm_lengthE [lemma, in Combi.SymGroup.weak_order]
+WeakOrder.leperm_length [lemma, in Combi.SymGroup.weak_order]
+WeakOrder.n [abbreviation, in Combi.SymGroup.weak_order]
+WeakOrder.Order_Le_isPOrder__to__Order_isDuallyPreorder [definition, in Combi.SymGroup.weak_order]
+WeakOrder.Order_Le_isPOrder__to__Order_Preorder_isDuallyPOrder [definition, in Combi.SymGroup.weak_order]
+WeakOrder.perm_perm_of__canonical__Order_FinPOrder [definition, in Combi.SymGroup.weak_order]
+WeakOrder.perm_perm_of__canonical__Order_FinPreorder [definition, in Combi.SymGroup.weak_order]
+WeakOrder.perm_perm_of__canonical__Order_POrder [definition, in Combi.SymGroup.weak_order]
+WeakOrder.perm_perm_of__canonical__Order_Preorder [definition, in Combi.SymGroup.weak_order]
+WeakOrder.perm_perm_of__canonical__fintype_Finite [definition, in Combi.SymGroup.weak_order]
+WeakOrder.perm_perm_of__canonical__choice_Countable [definition, in Combi.SymGroup.weak_order]
+WeakOrder.perm_perm_of__canonical__choice_Choice [definition, in Combi.SymGroup.weak_order]
+WeakOrder.perm_perm_of__canonical__eqtype_Equality [definition, in Combi.SymGroup.weak_order]
+weak_order [library]
+weight [definition, in ALEA.Qmeasure]
+weight_is_unit [lemma, in ALEA.Qmeasure]
+weight_pos [projection, in ALEA.Qmeasure]
+weight_case [lemma, in ALEA.Qmeasure]
+weight_nonneg [lemma, in ALEA.Qmeasure]
+weight1_size [lemma, in ALEA.Qmeasure]
+Wikipedia_Murnaghan_Nakayama [definition, in Combi.SymGroup.Frobenius_char]
+word [abbreviation, in Combi.Basic.congr]
+word [abbreviation, in Combi.Basic.congr]
+word [abbreviation, in Combi.Basic.congr]
+word [abbreviation, in Combi.Basic.congr]
+wordcd [definition, in Combi.SymGroup.presentSn]
+wordcdE [lemma, in Combi.SymGroup.presentSn]
+wordcd_ltn [lemma, in Combi.SymGroup.presentSn]
+wordperm [definition, in Combi.Combi.std]
+wordperm_inj [lemma, in Combi.Combi.std]
+wordperm_invP [lemma, in Combi.Combi.std]
+wordperm_std [lemma, in Combi.Combi.std]
+wordperm_iota [lemma, in Combi.Combi.std]
+wp [abbreviation, in Combi.Combi.permuted]
+

Y

+Yama [section, in Combi.Combi.Yamanouchi]
+Yamanouchi [library]
+Yamanouchi_yamn__canonical__fintype_SubFinite [definition, in Combi.Combi.Yamanouchi]
+Yamanouchi_yamn__canonical__fintype_Finite [definition, in Combi.Combi.Yamanouchi]
+Yamanouchi_yamn__canonical__choice_SubCountable [definition, in Combi.Combi.Yamanouchi]
+Yamanouchi_yamn__canonical__choice_Countable [definition, in Combi.Combi.Yamanouchi]
+Yamanouchi_yamn__canonical__choice_SubChoice [definition, in Combi.Combi.Yamanouchi]
+Yamanouchi_yamn__canonical__choice_Choice [definition, in Combi.Combi.Yamanouchi]
+Yamanouchi_yamn__canonical__eqtype_SubEquality [definition, in Combi.Combi.Yamanouchi]
+Yamanouchi_yamn__canonical__eqtype_Equality [definition, in Combi.Combi.Yamanouchi]
+Yamanouchi_yamn__canonical__eqtype_SubType [definition, in Combi.Combi.Yamanouchi]
+Yamanouchi_yameval__canonical__fintype_SubFinite [definition, in Combi.Combi.Yamanouchi]
+Yamanouchi_yameval__canonical__fintype_Finite [definition, in Combi.Combi.Yamanouchi]
+Yamanouchi_yameval__canonical__choice_SubCountable [definition, in Combi.Combi.Yamanouchi]
+Yamanouchi_yameval__canonical__choice_Countable [definition, in Combi.Combi.Yamanouchi]
+Yamanouchi_yameval__canonical__choice_SubChoice [definition, in Combi.Combi.Yamanouchi]
+Yamanouchi_yameval__canonical__choice_Choice [definition, in Combi.Combi.Yamanouchi]
+Yamanouchi_yameval__canonical__eqtype_SubEquality [definition, in Combi.Combi.Yamanouchi]
+Yamanouchi_yameval__canonical__eqtype_Equality [definition, in Combi.Combi.Yamanouchi]
+Yamanouchi_yameval__canonical__eqtype_SubType [definition, in Combi.Combi.Yamanouchi]
+yameval [record, in Combi.Combi.Yamanouchi]
+yamevalP [lemma, in Combi.Combi.Yamanouchi]
+yamevalval [projection, in Combi.Combi.Yamanouchi]
+yamn [record, in Combi.Combi.Yamanouchi]
+yamnP [lemma, in Combi.Combi.Yamanouchi]
+yamnval [projection, in Combi.Combi.Yamanouchi]
+yamn_partition_evalseq [lemma, in Combi.Combi.Yamanouchi]
+yamn_PredEq [lemma, in Combi.Combi.Yamanouchi]
+YamOfEval [section, in Combi.Combi.Yamanouchi]
+YamOfEval.ev [variable, in Combi.Combi.Yamanouchi]
+YamOfSize [section, in Combi.Combi.Yamanouchi]
+YamOfSize.n [variable, in Combi.Combi.Yamanouchi]
+yamrow [definition, in Combi.LRrule.therule]
+yamrowP [lemma, in Combi.LRrule.therule]
+yamtab [definition, in Combi.LRrule.Yam_plact]
+yamtabP [lemma, in Combi.LRrule.Yam_plact]
+yamtab_unique [lemma, in Combi.LRrule.Yam_plact]
+yamtab_rcons [lemma, in Combi.LRrule.Yam_plact]
+yamtab_rec [definition, in Combi.LRrule.Yam_plact]
+yamtab_shift_countE [lemma, in Combi.LRrule.implem]
+yamtab_rows_countE [lemma, in Combi.LRrule.implem]
+yamtab_shift_is_row [lemma, in Combi.LRrule.implem]
+yamtab_rows_is_row [lemma, in Combi.LRrule.implem]
+yamtab_shift_dominate [lemma, in Combi.LRrule.implem]
+yamtab_rows_dominate [lemma, in Combi.LRrule.implem]
+yamtab_shift_size [lemma, in Combi.LRrule.implem]
+yamtab_rows_size [lemma, in Combi.LRrule.implem]
+yamtab_shift_included [lemma, in Combi.LRrule.implem]
+yamtab_rows_included [lemma, in Combi.LRrule.implem]
+yamtab_shiftP [lemma, in Combi.LRrule.implem]
+yamtab_rowsP [lemma, in Combi.LRrule.implem]
+yamtab_shift_drop [lemma, in Combi.LRrule.implem]
+yamtab_shift [definition, in Combi.LRrule.implem]
+yamtab_rows [definition, in Combi.LRrule.implem]
+yam_tail_non_nil [lemma, in Combi.LRrule.Schensted]
+yam_std_inj [lemma, in Combi.LRrule.Yam_plact]
+yam_plactic_shape [lemma, in Combi.LRrule.Yam_plact]
+yam_plactic_hyper [lemma, in Combi.LRrule.Yam_plact]
+yam_of_stdtabP [lemma, in Combi.Combi.stdtab]
+yam_of_stdtabK [lemma, in Combi.Combi.stdtab]
+yam_of_stdtab [definition, in Combi.Combi.stdtab]
+yam_of_stdtab_rec [definition, in Combi.Combi.stdtab]
+yam_of_rowpart [lemma, in Combi.LRrule.therule]
+yam_to_word [projection, in Combi.LRrule.implem]
+Yam_plact [library]
+Ymon [definition, in Combi.MPoly.Cauchy]
+YmonK [lemma, in Combi.MPoly.Cauchy]
+Ymon_bij [lemma, in Combi.MPoly.Cauchy]
+YoungIrrDef [section, in Combi.SymGroup.Frobenius_char]
+YoungIrrDef.n [variable, in Combi.SymGroup.Frobenius_char]
+'irrSG[ _ ] [notation, in Combi.SymGroup.Frobenius_char]
+'M[ _ ] [notation, in Combi.SymGroup.Frobenius_char]
+YoungLattice [module, in Combi.Combi.partition]
+YoungLattice.bottom_YoungE [lemma, in Combi.Combi.partition]
+YoungLattice.choice_Countable__to__choice_Choice_isCountable [definition, in Combi.Combi.partition]
+YoungLattice.choice_Countable__to__eqtype_hasDecEq [definition, in Combi.Combi.partition]
+YoungLattice.choice_Countable__to__choice_hasChoice [definition, in Combi.Combi.partition]
+YoungLattice.emptypart_bottom [lemma, in Combi.Combi.partition]
+YoungLattice.Exports [module, in Combi.Combi.partition]
+YoungLattice.Exports.bottom_YoungE [definition, in Combi.Combi.partition]
+YoungLattice.Exports.intpartYoung [abbreviation, in Combi.Combi.partition]
+YoungLattice.Exports.join_YoungE [lemma, in Combi.Combi.partition]
+YoungLattice.Exports.le_Young_sumn [definition, in Combi.Combi.partition]
+YoungLattice.Exports.le_YoungP [definition, in Combi.Combi.partition]
+YoungLattice.Exports.le_YoungE [definition, in Combi.Combi.partition]
+YoungLattice.Exports.lt_Young_sumn [definition, in Combi.Combi.partition]
+YoungLattice.Exports.meet_YoungE [lemma, in Combi.Combi.partition]
+YoungLattice.Exports.nth_join_Young [lemma, in Combi.Combi.partition]
+YoungLattice.Exports.nth_meet_Young [lemma, in Combi.Combi.partition]
+YoungLattice.Exports.size_join_Young [lemma, in Combi.Combi.partition]
+YoungLattice.Exports.size_meet_Young [lemma, in Combi.Combi.partition]
+YoungLattice.HB_unnamed_mixin_115 [definition, in Combi.Combi.partition]
+YoungLattice.HB_unnamed_factory_113 [definition, in Combi.Combi.partition]
+YoungLattice.HB_unnamed_factory_111 [definition, in Combi.Combi.partition]
+YoungLattice.HB_unnamed_mixin_110 [definition, in Combi.Combi.partition]
+YoungLattice.HB_unnamed_mixin_109 [definition, in Combi.Combi.partition]
+YoungLattice.HB_unnamed_factory_106 [definition, in Combi.Combi.partition]
+YoungLattice.HB_unnamed_mixin_105 [definition, in Combi.Combi.partition]
+YoungLattice.HB_unnamed_mixin_104 [definition, in Combi.Combi.partition]
+YoungLattice.HB_unnamed_factory_101 [definition, in Combi.Combi.partition]
+YoungLattice.HB_unnamed_mixin_100 [definition, in Combi.Combi.partition]
+YoungLattice.HB_unnamed_factory_96 [definition, in Combi.Combi.partition]
+YoungLattice.HB_unnamed_mixin_95 [definition, in Combi.Combi.partition]
+YoungLattice.HB_unnamed_mixin_94 [definition, in Combi.Combi.partition]
+YoungLattice.HB_unnamed_mixin_93 [definition, in Combi.Combi.partition]
+YoungLattice.HB_unnamed_factory_89 [definition, in Combi.Combi.partition]
+YoungLattice.intpartYoung [definition, in Combi.Combi.partition]
+YoungLattice.join_YoungP [lemma, in Combi.Combi.partition]
+YoungLattice.join_YoungC [lemma, in Combi.Combi.partition]
+YoungLattice.join_Young_le [lemma, in Combi.Combi.partition]
+YoungLattice.join_Young [definition, in Combi.Combi.partition]
+YoungLattice.join_Young_subproof [lemma, in Combi.Combi.partition]
+YoungLattice.join_Young_fun [definition, in Combi.Combi.partition]
+YoungLattice.le_Young_sumn [lemma, in Combi.Combi.partition]
+YoungLattice.le_YoungP [lemma, in Combi.Combi.partition]
+YoungLattice.le_YoungE [lemma, in Combi.Combi.partition]
+YoungLattice.le_Young_anti [lemma, in Combi.Combi.partition]
+YoungLattice.le_Young_trans [lemma, in Combi.Combi.partition]
+YoungLattice.le_Young_refl [lemma, in Combi.Combi.partition]
+YoungLattice.le_Young [definition, in Combi.Combi.partition]
+YoungLattice.lt_Young_sumn [lemma, in Combi.Combi.partition]
+YoungLattice.meet_YoungP [lemma, in Combi.Combi.partition]
+YoungLattice.meet_Young_le [lemma, in Combi.Combi.partition]
+YoungLattice.meet_YoungC [lemma, in Combi.Combi.partition]
+YoungLattice.meet_Young [definition, in Combi.Combi.partition]
+YoungLattice.meet_Young_subproof [lemma, in Combi.Combi.partition]
+YoungLattice.meet_Young_fun [definition, in Combi.Combi.partition]
+YoungLattice.nth_join_Young [lemma, in Combi.Combi.partition]
+YoungLattice.nth_meet_Young [lemma, in Combi.Combi.partition]
+YoungLattice.Order_Lattice_Meet_isDistrLattice__to__Order_Lattice_isDistributive [definition, in Combi.Combi.partition]
+YoungLattice.Order_POrder_MeetJoin_isLattice__to__Order_POrder_isMeetSemilattice [definition, in Combi.Combi.partition]
+YoungLattice.Order_POrder_MeetJoin_isLattice__to__Order_POrder_isJoinSemilattice [definition, in Combi.Combi.partition]
+YoungLattice.Order_Le_isPOrder__to__Order_isDuallyPreorder [definition, in Combi.Combi.partition]
+YoungLattice.Order_Le_isPOrder__to__Order_Preorder_isDuallyPOrder [definition, in Combi.Combi.partition]
+YoungLattice.ordtype_Inhabited__to__ordtype_isInhabited [definition, in Combi.Combi.partition]
+YoungLattice.size_join_Young [lemma, in Combi.Combi.partition]
+YoungLattice.size_meet_Young [lemma, in Combi.Combi.partition]
+YoungLattice.YoungLattice [section, in Combi.Combi.partition]
+YoungLattice.YoungLattice_intpartYoung__canonical__Order_BDistrLattice [definition, in Combi.Combi.partition]
+YoungLattice.YoungLattice_intpartYoung__canonical__Order_DistrLattice [definition, in Combi.Combi.partition]
+YoungLattice.YoungLattice_intpartYoung__canonical__Order_BLattice [definition, in Combi.Combi.partition]
+YoungLattice.YoungLattice_intpartYoung__canonical__Order_BJoinSemilattice [definition, in Combi.Combi.partition]
+YoungLattice.YoungLattice_intpartYoung__canonical__Order_BMeetSemilattice [definition, in Combi.Combi.partition]
+YoungLattice.YoungLattice_intpartYoung__canonical__Order_BPOrder [definition, in Combi.Combi.partition]
+YoungLattice.YoungLattice_intpartYoung__canonical__Order_BPreorder [definition, in Combi.Combi.partition]
+YoungLattice.YoungLattice_intpartYoung__canonical__ordtype_InhLattice [definition, in Combi.Combi.partition]
+YoungLattice.YoungLattice_intpartYoung__canonical__Order_Lattice [definition, in Combi.Combi.partition]
+YoungLattice.YoungLattice_intpartYoung__canonical__Order_MeetSemilattice [definition, in Combi.Combi.partition]
+YoungLattice.YoungLattice_intpartYoung__canonical__Order_JoinSemilattice [definition, in Combi.Combi.partition]
+YoungLattice.YoungLattice_intpartYoung__canonical__ordtype_InhPOrder [definition, in Combi.Combi.partition]
+YoungLattice.YoungLattice_intpartYoung__canonical__Order_POrder [definition, in Combi.Combi.partition]
+YoungLattice.YoungLattice_intpartYoung__canonical__Order_Preorder [definition, in Combi.Combi.partition]
+YoungLattice.YoungLattice_intpartYoung__canonical__ordtype_Inhabited [definition, in Combi.Combi.partition]
+YoungLattice.YoungLattice_intpartYoung__canonical__choice_Countable [definition, in Combi.Combi.partition]
+YoungLattice.YoungLattice_intpartYoung__canonical__choice_Choice [definition, in Combi.Combi.partition]
+YoungLattice.YoungLattice_intpartYoung__canonical__eqtype_Equality [definition, in Combi.Combi.partition]
+'YL [notation, in Combi.Combi.partition]
+YoungLattice.Young_meetUl [lemma, in Combi.Combi.partition]
+YoungLattice.Young_display [lemma, in Combi.Combi.partition]
+YoungSG [definition, in Combi.SymGroup.Frobenius_char]
+Young_rule_partdom [lemma, in Combi.SymGroup.Frobenius_char]
+Young_rule [lemma, in Combi.SymGroup.Frobenius_char]
+Young_char [lemma, in Combi.SymGroup.Frobenius_char]
+

Z

+zcard [definition, in Combi.SymGroup.permcent]
+zcard_rem [lemma, in Combi.SymGroup.permcent]
+zcard_any [lemma, in Combi.SymGroup.permcent]
+zcard_nil [lemma, in Combi.SymGroup.permcent]
+zcoeff [definition, in Combi.SymGroup.towerSn]
+zcoeffE [lemma, in Combi.SymGroup.towerSn]
+

other

+_ =Br _ (bool_scope) [notation, in Combi.SymGroup.presentSn]
+_ +|+ _ (Combi_scope) [notation, in Combi.Combi.partition]
+_ / _ (Combi_scope) [notation, in Combi.Combi.partition]
+[ in _ [ _ ] , _ .-homsym ] (form_scope) [notation, in Combi.MPoly.homogsym]
+_ .-homsym (form_scope) [notation, in Combi.MPoly.homogsym]
+_ .-supp [ _ , _ ] (form_scope) [notation, in Combi.LRrule.Greene]
+[ Dyck {{ _ }} _ ] (form_scope) [notation, in Combi.Combi.Dyckword]
+[ Dyck of _ by _ ] (form_scope) [notation, in Combi.Combi.Dyckword]
+[ Dyck of _ ] (form_scope) [notation, in Combi.Combi.Dyckword]
+'s_[ _ ] (group_scope) [notation, in Combi.SymGroup.presentSn]
+'s_ _ (group_scope) [notation, in Combi.SymGroup.presentSn]
+'K ( _ , _ ) (nat_scope) [notation, in Combi.MPoly.Schur_altdef]
+'C [ _ ] (nat_scope) [notation, in Combi.Combi.multinomial]
+_ @@_ _ (O_scope) [notation, in ALEA.Ccpo]
+_ @_ _ (O_scope) [notation, in ALEA.Ccpo]
+_ <_> _ (O_scope) [notation, in ALEA.Ccpo]
+_ -c> _ (O_scope) [notation, in ALEA.Ccpo]
+mlub _ (O_scope) [notation, in ALEA.Ccpo]
+0 (O_scope) [notation, in ALEA.Ccpo]
+_ @2 _ (O_scope) [notation, in ALEA.Ccpo]
+_ @ _ (O_scope) [notation, in ALEA.Ccpo]
+_ <o> _ (O_scope) [notation, in ALEA.Ccpo]
+_ -m-> _ (O_scope) [notation, in ALEA.Ccpo]
+_ --m-> _ (O_scope) [notation, in ALEA.Ccpo]
+_ --m> _ (O_scope) [notation, in ALEA.Ccpo]
+_ -m> _ (O_scope) [notation, in ALEA.Ccpo]
+_ < _ (O_scope) [notation, in ALEA.Ccpo]
+_ >= _ (O_scope) [notation, in ALEA.Ccpo]
+_ <= _ (O_scope) [notation, in ALEA.Ccpo]
+'[ _ | _ ] _( _ , _ ) (ring_scope) [notation, in Combi.MPoly.homogsym]
+'[ _ | _ ] (ring_scope) [notation, in Combi.MPoly.homogsym]
+'K^-1 ( _ , _ ) (ring_scope) [notation, in Combi.MPoly.Schur_altdef]
+'K ( _ , _ ) (ring_scope) [notation, in Combi.MPoly.Schur_altdef]
+'1_[ _ ] (ring_scope) [notation, in Combi.SymGroup.cycletype]
+_ == _ (type_scope) [notation, in ALEA.Ccpo]
+_ (XY) [notation, in Combi.MPoly.Cauchy]
+_ (X) [notation, in Combi.MPoly.Cauchy]
+_ (Y) [notation, in Combi.MPoly.Cauchy]
+_ *h _ [notation, in Combi.MPoly.homogsym]
+_ \/T _ [notation, in Combi.Combi.bintree]
+_ /\T _ [notation, in Combi.Combi.bintree]
+_ <T _ [notation, in Combi.Combi.bintree]
+_ <=T _ [notation, in Combi.Combi.bintree]
+_ <=V _ [notation, in Combi.Combi.bintree]
+_ \o^ _ [notation, in Combi.SymGroup.towerSn]
+_ \ox _ [notation, in Combi.SymGroup.towerSn]
+_ =Pl _ [notation, in Combi.LRrule.plactic]
+tabsh[ _ ] _ [notation, in Combi.Combi.tableau]
+#{ _ } [notation, in Combi.SSRcomplements.tools]
+'e_ _ [notation, in Combi.MPoly.sympoly]
+'e[ _ ] [notation, in Combi.MPoly.sympoly]
+'he [notation, in Combi.MPoly.homogsym]
+'he[ _ ] [notation, in Combi.MPoly.homogsym]
+'hh [notation, in Combi.MPoly.homogsym]
+'hh[ _ ] [notation, in Combi.MPoly.homogsym]
+'hm [notation, in Combi.MPoly.homogsym]
+'hm[ _ ] [notation, in Combi.MPoly.homogsym]
+'hp [notation, in Combi.MPoly.homogsym]
+'hp[ _ ] [notation, in Combi.MPoly.homogsym]
+'hs [notation, in Combi.MPoly.homogsym]
+'hs[ _ ] [notation, in Combi.MPoly.homogsym]
+'h_ _ [notation, in Combi.MPoly.sympoly]
+'h[ _ ] [notation, in Combi.MPoly.sympoly]
+'II_ _ [notation, in Combi.MPoly.antisym]
+'II_ _ [notation, in Combi.SymGroup.presentSn]
+'irrSG[ _ ] [notation, in Combi.SymGroup.Frobenius_char]
+'M[ _ ] [notation, in Combi.SymGroup.Frobenius_char]
+'m[ _ ] [notation, in Combi.MPoly.sympoly]
+'P_ _ [notation, in Combi.Combi.partition]
+'p_ _ [notation, in Combi.MPoly.sympoly]
+'p[ _ ] [notation, in Combi.MPoly.sympoly]
+'SC_ _ [notation, in Combi.SymGroup.permcent]
+'SG_ _ [notation, in Combi.SymGroup.towerSn]
+'SG_ _ [notation, in Combi.SymGroup.presentSn]
+'s[ _ ] [notation, in Combi.MPoly.sympoly]
+'z_ _ [notation, in Combi.SymGroup.towerSn]
+'1z_[ _ ] [notation, in Combi.SymGroup.towerSn]
+[1/2] [notation, in ALEA.Qmeasure]
+{ homsym _ [ _ , _ ] } [notation, in Combi.MPoly.homogsym]
+{ sympoly _ [ _ ] } [notation, in Combi.MPoly.sympoly]
+{{ [notation, in Combi.Combi.Dyckword]
+}} [notation, in Combi.Combi.Dyckword]
+


+

Notation Index

+

A

+_ * _ [in Combi.SSRcomplements.tools]
+*%M [in Combi.SSRcomplements.tools]
+1 [in Combi.SSRcomplements.tools]
+_ # _ [in Combi.Combi.permuted]
+'a_ _ [in Combi.MPoly.Schur_altdef]
+'e_ _ [in Combi.MPoly.Schur_altdef]
+_ # _ [in Combi.MPoly.antisym]
+'a_ _ [in Combi.MPoly.antisym]
+_ # _ [in Combi.MPoly.Schur_altdef]
+'a_ _ [in Combi.MPoly.Schur_altdef]
+

B

+_ # _ [in Combi.MPoly.sympoly]
+'e_ _ [in Combi.MPoly.sympoly]
+'h_ _ [in Combi.MPoly.sympoly]
+'m[ _ ] [in Combi.MPoly.sympoly]
+'p_ _ [in Combi.MPoly.sympoly]
+_ * _ [in Combi.Combi.subseq]
+*%M [in Combi.Combi.subseq]
+1 [in Combi.Combi.subseq]
+

C

+'s_ _ (group_scope) [in Combi.SymGroup.presentSn]
+_ =Br _ [in Combi.SymGroup.presentSn]
+'I[ _ .. _ ] [in Combi.SymGroup.presentSn]
+'s_[ _ ] [in Combi.SymGroup.presentSn]
+_ (XY) [in Combi.MPoly.Cauchy]
+_ (X) [in Combi.MPoly.Cauchy]
+_ (Y) [in Combi.MPoly.Cauchy]
+_ *:M _ [in Combi.MPoly.Cauchy]
+\Pi _ [in Combi.MPoly.sympoly]
+'Xn_ _ [in Combi.MPoly.sympoly]
+'Xn [in Combi.MPoly.sympoly]
+'XXn_ _ [in Combi.MPoly.sympoly]
+'1_[ _ ] (ring_scope) [in Combi.SymGroup.cycletype]
+

D

+_ / _ (Combi_scope) [in Combi.Combi.partition]
+

E

+'s_[ _ ] [in Combi.SymGroup.presentSn]
+'s_ _ [in Combi.SymGroup.presentSn]
+

G

+_ .-supp (form_scope) [in Combi.LRrule.Greene]
+

H

+_ *h _ [in Combi.MPoly.homogsym]
+

I

+'a_ _ [in Combi.MPoly.Schur_altdef]
+'s_ _ [in Combi.MPoly.Schur_altdef]
+'z_ _ [in Combi.SymGroup.towerSn]
+'1z_[ _ ] [in Combi.SymGroup.towerSn]
+'pi_ _ [in Combi.MPoly.homogsym]
+'PDom_ _ [in Combi.Combi.partition]
+_ ^# [in Combi.Combi.partition]
+'PDom [in Combi.Combi.partition]
+'PDom [in Combi.Combi.partition]
+'PLexi_ _ [in Combi.Combi.partition]
+'PLexi [in Combi.Combi.partition]
+'Pr [in Combi.Combi.skewpart]
+

K

+'K ( _ , _ ) (nat_scope) [in Combi.MPoly.Schur_altdef]
+'K ( _ , _ ) (ring_scope) [in Combi.MPoly.Schur_altdef]
+

L

+'s_[ _ ] [in Combi.SymGroup.presentSn]
+'s_ _ [in Combi.SymGroup.presentSn]
+

M

+_ # _ [in Combi.MPoly.antisym]
+_ # _ [in Combi.MPoly.antisym]
+'a_ _ [in Combi.MPoly.MurnaghanNakayama]
+

P

+'P [in Combi.Combi.partition]
+'CC ( _ ) (group_scope) [in Combi.SymGroup.permcent]
+'s_[ _ ] [in Combi.SymGroup.presentSn]
+'s_ _ [in Combi.SymGroup.presentSn]
+'g_ _ [in Combi.SymGroup.presentSn]
+'g_ _ [in Combi.MPoly.sympoly]
+'g[ _ ] [in Combi.MPoly.sympoly]
+'co[ _ ]_ _ [in Combi.MPoly.sympoly]
+'co[ _ ] [in Combi.MPoly.sympoly]
+'gA_ _ [in Combi.MPoly.sympoly]
+'gA[ _ ] [in Combi.MPoly.sympoly]
+'gB_ _ [in Combi.MPoly.sympoly]
+'gB[ _ ] [in Combi.MPoly.sympoly]
+

R

+_ =Br _ [in Combi.SymGroup.presentSn]
+'s_[ _ ] [in Combi.SymGroup.presentSn]
+'s_ _ [in Combi.SymGroup.presentSn]
+'CRef [in Combi.Combi.composition]
+'s_ _ [in Combi.MPoly.Schur_altdef]
+

S

+'[ _ | _ ] (ring_scope) [in Combi.MPoly.homogsym]
+'[ _ | _ ] (ring_scope) [in Combi.MPoly.homogsym]
+_ (X) [in Combi.MPoly.Cauchy]
+_ (Y) [in Combi.MPoly.Cauchy]
+'hpC[ _ ] [in Combi.MPoly.Cauchy]
+'hsC[ _ ] [in Combi.MPoly.Cauchy]
+'a_ _ [in Combi.MPoly.Schur_altdef]
+'s_[ _ ] [in Combi.MPoly.Schur_altdef]
+'s[ _ ] [in Combi.MPoly.sympoly]
+_ <=R _ [in Combi.SSRcomplements.sorted]
+_ ^~ [in Combi.MPoly.sympoly]
+_ ^~ [in Combi.MPoly.sympoly]
+

V

+'a_ _ [in Combi.MPoly.antisym]
+'a_ _ [in Combi.MPoly.antisym]
+'X_ _ [in Combi.MPoly.antisym]
+

W

+_ <=R _ [in Combi.SymGroup.weak_order]
+_ \/R _ (Combi_scope) [in Combi.SymGroup.weak_order]
+_ /\R _ (Combi_scope) [in Combi.SymGroup.weak_order]
+_ <R _ (Combi_scope) [in Combi.SymGroup.weak_order]
+_ <=R _ (Combi_scope) [in Combi.SymGroup.weak_order]
+

Y

+'irrSG[ _ ] [in Combi.SymGroup.Frobenius_char]
+'M[ _ ] [in Combi.SymGroup.Frobenius_char]
+'YL [in Combi.Combi.partition]
+

other

+_ =Br _ (bool_scope) [in Combi.SymGroup.presentSn]
+_ +|+ _ (Combi_scope) [in Combi.Combi.partition]
+_ / _ (Combi_scope) [in Combi.Combi.partition]
+[ in _ [ _ ] , _ .-homsym ] (form_scope) [in Combi.MPoly.homogsym]
+_ .-homsym (form_scope) [in Combi.MPoly.homogsym]
+_ .-supp [ _ , _ ] (form_scope) [in Combi.LRrule.Greene]
+[ Dyck {{ _ }} _ ] (form_scope) [in Combi.Combi.Dyckword]
+[ Dyck of _ by _ ] (form_scope) [in Combi.Combi.Dyckword]
+[ Dyck of _ ] (form_scope) [in Combi.Combi.Dyckword]
+'s_[ _ ] (group_scope) [in Combi.SymGroup.presentSn]
+'s_ _ (group_scope) [in Combi.SymGroup.presentSn]
+'K ( _ , _ ) (nat_scope) [in Combi.MPoly.Schur_altdef]
+'C [ _ ] (nat_scope) [in Combi.Combi.multinomial]
+_ @@_ _ (O_scope) [in ALEA.Ccpo]
+_ @_ _ (O_scope) [in ALEA.Ccpo]
+_ <_> _ (O_scope) [in ALEA.Ccpo]
+_ -c> _ (O_scope) [in ALEA.Ccpo]
+mlub _ (O_scope) [in ALEA.Ccpo]
+0 (O_scope) [in ALEA.Ccpo]
+_ @2 _ (O_scope) [in ALEA.Ccpo]
+_ @ _ (O_scope) [in ALEA.Ccpo]
+_ <o> _ (O_scope) [in ALEA.Ccpo]
+_ -m-> _ (O_scope) [in ALEA.Ccpo]
+_ --m-> _ (O_scope) [in ALEA.Ccpo]
+_ --m> _ (O_scope) [in ALEA.Ccpo]
+_ -m> _ (O_scope) [in ALEA.Ccpo]
+_ < _ (O_scope) [in ALEA.Ccpo]
+_ >= _ (O_scope) [in ALEA.Ccpo]
+_ <= _ (O_scope) [in ALEA.Ccpo]
+'[ _ | _ ] _( _ , _ ) (ring_scope) [in Combi.MPoly.homogsym]
+'[ _ | _ ] (ring_scope) [in Combi.MPoly.homogsym]
+'K^-1 ( _ , _ ) (ring_scope) [in Combi.MPoly.Schur_altdef]
+'K ( _ , _ ) (ring_scope) [in Combi.MPoly.Schur_altdef]
+'1_[ _ ] (ring_scope) [in Combi.SymGroup.cycletype]
+_ == _ (type_scope) [in ALEA.Ccpo]
+_ (XY) [in Combi.MPoly.Cauchy]
+_ (X) [in Combi.MPoly.Cauchy]
+_ (Y) [in Combi.MPoly.Cauchy]
+_ *h _ [in Combi.MPoly.homogsym]
+_ \/T _ [in Combi.Combi.bintree]
+_ /\T _ [in Combi.Combi.bintree]
+_ <T _ [in Combi.Combi.bintree]
+_ <=T _ [in Combi.Combi.bintree]
+_ <=V _ [in Combi.Combi.bintree]
+_ \o^ _ [in Combi.SymGroup.towerSn]
+_ \ox _ [in Combi.SymGroup.towerSn]
+_ =Pl _ [in Combi.LRrule.plactic]
+tabsh[ _ ] _ [in Combi.Combi.tableau]
+#{ _ } [in Combi.SSRcomplements.tools]
+'e_ _ [in Combi.MPoly.sympoly]
+'e[ _ ] [in Combi.MPoly.sympoly]
+'he [in Combi.MPoly.homogsym]
+'he[ _ ] [in Combi.MPoly.homogsym]
+'hh [in Combi.MPoly.homogsym]
+'hh[ _ ] [in Combi.MPoly.homogsym]
+'hm [in Combi.MPoly.homogsym]
+'hm[ _ ] [in Combi.MPoly.homogsym]
+'hp [in Combi.MPoly.homogsym]
+'hp[ _ ] [in Combi.MPoly.homogsym]
+'hs [in Combi.MPoly.homogsym]
+'hs[ _ ] [in Combi.MPoly.homogsym]
+'h_ _ [in Combi.MPoly.sympoly]
+'h[ _ ] [in Combi.MPoly.sympoly]
+'II_ _ [in Combi.MPoly.antisym]
+'II_ _ [in Combi.SymGroup.presentSn]
+'irrSG[ _ ] [in Combi.SymGroup.Frobenius_char]
+'M[ _ ] [in Combi.SymGroup.Frobenius_char]
+'m[ _ ] [in Combi.MPoly.sympoly]
+'P_ _ [in Combi.Combi.partition]
+'p_ _ [in Combi.MPoly.sympoly]
+'p[ _ ] [in Combi.MPoly.sympoly]
+'SC_ _ [in Combi.SymGroup.permcent]
+'SG_ _ [in Combi.SymGroup.towerSn]
+'SG_ _ [in Combi.SymGroup.presentSn]
+'s[ _ ] [in Combi.MPoly.sympoly]
+'z_ _ [in Combi.SymGroup.towerSn]
+'1z_[ _ ] [in Combi.SymGroup.towerSn]
+[1/2] [in ALEA.Qmeasure]
+{ homsym _ [ _ , _ ] } [in Combi.MPoly.homogsym]
+{ sympoly _ [ _ ] } [in Combi.MPoly.sympoly]
+{{ [in Combi.Combi.Dyckword]
+}} [in Combi.Combi.Dyckword]
+


+

Module Index

+

B

+Builders_1.Builders_Export_5 [in Combi.Basic.ordtype]
+Builders_1.Super [in Combi.Basic.ordtype]
+Builders_1 [in Combi.Basic.ordtype]
+Builders_6.Builders_Export_10 [in Combi.Combi.composition]
+Builders_6.Super [in Combi.Combi.composition]
+Builders_6 [in Combi.Combi.composition]
+Builders_1.Builders_Export_5 [in Combi.Combi.composition]
+Builders_1.Super [in Combi.Combi.composition]
+Builders_1 [in Combi.Combi.composition]
+

E

+Example1 [in Combi.Basic.combclass]
+Example2 [in Combi.Basic.combclass]
+Example3 [in Combi.Basic.combclass]
+

I

+Inhabited [in Combi.Basic.ordtype]
+InhabitedElpiOperations [in Combi.Basic.ordtype]
+Inhabited.Exports [in Combi.Basic.ordtype]
+InhFinite [in Combi.Basic.ordtype]
+InhFiniteElpiOperations [in Combi.Basic.ordtype]
+InhFinite.Exports [in Combi.Basic.ordtype]
+InhFinLattice [in Combi.Basic.ordtype]
+InhFinLatticeElpiOperations [in Combi.Basic.ordtype]
+InhFinLattice.Exports [in Combi.Basic.ordtype]
+InhFinOrder [in Combi.Basic.ordtype]
+InhFinOrderElpiOperations [in Combi.Basic.ordtype]
+InhFinOrder.Exports [in Combi.Basic.ordtype]
+InhFinPOrder [in Combi.Basic.ordtype]
+InhFinPOrderElpiOperations [in Combi.Basic.ordtype]
+InhFinPOrder.Exports [in Combi.Basic.ordtype]
+InhLattice [in Combi.Basic.ordtype]
+InhLatticeElpiOperations [in Combi.Basic.ordtype]
+InhLattice.Exports [in Combi.Basic.ordtype]
+InhOrder [in Combi.Basic.ordtype]
+InhOrderElpiOperations [in Combi.Basic.ordtype]
+InhOrder.Exports [in Combi.Basic.ordtype]
+InhPOrder [in Combi.Basic.ordtype]
+InhPOrderElpiOperations [in Combi.Basic.ordtype]
+InhPOrder.Exports [in Combi.Basic.ordtype]
+InhTBLattice [in Combi.Basic.ordtype]
+InhTBLatticeElpiOperations [in Combi.Basic.ordtype]
+InhTBLattice.Exports [in Combi.Basic.ordtype]
+IntPartNDom [in Combi.Combi.partition]
+IntPartNDom.Exports [in Combi.Combi.partition]
+IntPartNLexi [in Combi.Combi.partition]
+IntPartNLexi.Exports [in Combi.Combi.partition]
+isInhabited [in Combi.Basic.ordtype]
+isInhabitedType [in Combi.Basic.ordtype]
+isInhabitedType.Exports [in Combi.Basic.ordtype]
+isInhabited.Exports [in Combi.Basic.ordtype]
+IsoBottom [in Combi.Combi.composition]
+IsoBottom.Exports [in Combi.Combi.composition]
+IsoTop [in Combi.Combi.composition]
+IsoTop.Exports [in Combi.Combi.composition]
+

L

+LeqGeqOrder [in Combi.SSRcomplements.sorted]
+

N

+NoSetContainingBoth [in Combi.LRrule.Greene_inv]
+

P

+PermLattice [in Combi.SymGroup.weak_order]
+PermLattice.Exports [in Combi.SymGroup.weak_order]
+

R

+RefinementOrder [in Combi.Combi.composition]
+RefinementOrder.Exports [in Combi.Combi.composition]
+RefinmentOrder [in Combi.Combi.setpartition]
+RefinmentOrder.Exports [in Combi.Combi.setpartition]
+

S

+SetContainingBothLeft [in Combi.LRrule.Greene_inv]
+Swap [in Combi.LRrule.Greene_inv]
+SymPolyHomogKey [in Combi.MPoly.homogsym]
+

T

+TamariLattice [in Combi.Combi.bintree]
+TamariLattice.Exports [in Combi.Combi.bintree]
+

W

+WeakOrder [in Combi.SymGroup.weak_order]
+WeakOrder.Exports [in Combi.SymGroup.weak_order]
+

Y

+YoungLattice [in Combi.Combi.partition]
+YoungLattice.Exports [in Combi.Combi.partition]
+


+

Variable Index

+

A

+AbelianBigOp.idx [in Combi.SSRcomplements.tools]
+AbelianBigOp.op [in Combi.SSRcomplements.tools]
+AbelianBigOp.R [in Combi.SSRcomplements.tools]
+ActOnTuple.n [in Combi.Combi.permuted]
+ActOnTuple.T [in Combi.Combi.permuted]
+ActOnTuple.w [in Combi.Combi.permuted]
+AllLeqLtn.disp [in Combi.Basic.ordtype]
+AllLeqLtn.T [in Combi.Basic.ordtype]
+Alternant.HasIncr.add_mpart_mesym [in Combi.MPoly.Schur_altdef]
+Alternant.HasIncr.d [in Combi.MPoly.Schur_altdef]
+Alternant.HasIncr.h [in Combi.MPoly.Schur_altdef]
+Alternant.HasIncr.k [in Combi.MPoly.Schur_altdef]
+Alternant.HasIncr.la [in Combi.MPoly.Schur_altdef]
+Alternant.n [in Combi.MPoly.Schur_altdef]
+Alternant.R [in Combi.MPoly.Schur_altdef]
+AlternIDomain.Hchar [in Combi.MPoly.antisym]
+AlternIDomain.LeadingMonomial.Hpanti [in Combi.MPoly.antisym]
+AlternIDomain.LeadingMonomial.Hphomog [in Combi.MPoly.antisym]
+AlternIDomain.LeadingMonomial.Hpn0 [in Combi.MPoly.antisym]
+AlternIDomain.LeadingMonomial.p [in Combi.MPoly.antisym]
+AlternIDomain.n [in Combi.MPoly.antisym]
+AlternIDomain.R [in Combi.MPoly.antisym]
+AlternStraighten.n0 [in Combi.MPoly.Schur_altdef]
+AlternStraighten.R [in Combi.MPoly.Schur_altdef]
+AppendNth.disp [in Combi.Combi.stdtab]
+AppendNth.T [in Combi.Combi.stdtab]
+Assoc.m [in Combi.SymGroup.towerSn]
+Assoc.n [in Combi.SymGroup.towerSn]
+Assoc.p [in Combi.SymGroup.towerSn]
+

B

+BalToDyck.Hbal1 [in Combi.Combi.Dyckword]
+BalToDyck.w [in Combi.Combi.Dyckword]
+Bases.n [in Combi.MPoly.sympoly]
+Bases.R [in Combi.MPoly.sympoly]
+Bigop.idx [in Combi.Combi.subseq]
+Bigop.op [in Combi.Combi.subseq]
+Bigop.R [in Combi.Combi.subseq]
+Bigop.T [in Combi.Combi.subseq]
+Bigsums.A [in ALEA.Qmeasure]
+BigTrivISeq.idx [in Combi.LRrule.Greene]
+BigTrivISeq.op [in Combi.LRrule.Greene]
+BigTrivISeq.R [in Combi.LRrule.Greene]
+BigTrivISeq.T [in Combi.LRrule.Greene]
+BijectionExtTab.Hmu [in Combi.MPoly.Schur_altdef]
+BijectionExtTab.Hstrip [in Combi.MPoly.Schur_altdef]
+BijectionExtTab.Hsz [in Combi.MPoly.Schur_altdef]
+BijectionExtTab.la [in Combi.MPoly.Schur_altdef]
+BijectionExtTab.m [in Combi.MPoly.Schur_altdef]
+BijectionExtTab.mu [in Combi.MPoly.Schur_altdef]
+BijectionExtTab.n [in Combi.MPoly.Schur_altdef]
+BijectionExtTab.s [in Combi.MPoly.Schur_altdef]
+BijFiberedSet.Defs.HcardEq [in Combi.Combi.fibered_set]
+BijFiberedSet.Defs.U [in Combi.Combi.fibered_set]
+BijFiberedSet.Defs.V [in Combi.Combi.fibered_set]
+BijFiberedSet.I [in Combi.Combi.fibered_set]
+BoxInSkew.inner [in Combi.Combi.partition]
+BoxInSkew.outer [in Combi.Combi.partition]
+BraidRed.n [in Combi.SymGroup.presentSn]
+Builders_1.Builders_1.fresh_name_2 [in Combi.Basic.ordtype]
+Builders_1.Builders_1.T [in Combi.Basic.ordtype]
+Builders_6.Builders_6.fresh_name_7 [in Combi.Combi.composition]
+Builders_6.Builders_6.local_mixin_Order_Preorder_isDuallyPOrder [in Combi.Combi.composition]
+Builders_6.Builders_6.local_mixin_Order_isDuallyPreorder [in Combi.Combi.composition]
+Builders_6.Builders_6.local_mixin_eqtype_hasDecEq [in Combi.Combi.composition]
+Builders_6.Builders_6.local_mixin_choice_hasChoice [in Combi.Combi.composition]
+Builders_6.Builders_6.T [in Combi.Combi.composition]
+Builders_6.Builders_6.disp [in Combi.Combi.composition]
+Builders_1.Builders_1.fresh_name_2 [in Combi.Combi.composition]
+Builders_1.Builders_1.local_mixin_Order_Preorder_isDuallyPOrder [in Combi.Combi.composition]
+Builders_1.Builders_1.local_mixin_Order_isDuallyPreorder [in Combi.Combi.composition]
+Builders_1.Builders_1.local_mixin_eqtype_hasDecEq [in Combi.Combi.composition]
+Builders_1.Builders_1.local_mixin_choice_hasChoice [in Combi.Combi.composition]
+Builders_1.Builders_1.T [in Combi.Combi.composition]
+Builders_1.Builders_1.disp [in Combi.Combi.composition]
+

C

+CanPorbit.s [in Combi.SymGroup.cycletype]
+CanPorbit.T [in Combi.SymGroup.cycletype]
+CanWord.n0 [in Combi.SymGroup.presentSn]
+Cast.d1 [in Combi.MPoly.sympoly]
+Cast.d2 [in Combi.MPoly.sympoly]
+Cast.eq_d [in Combi.MPoly.sympoly]
+Cast.la [in Combi.MPoly.sympoly]
+Cast.n0 [in Combi.MPoly.sympoly]
+Cast.R [in Combi.MPoly.sympoly]
+Cast.T [in Combi.LRrule.Greene]
+CategoricalSystems.R [in Combi.MPoly.sympoly]
+CauchyKernelField.R [in Combi.MPoly.Cauchy]
+CauchyKernel.Big.idx [in Combi.MPoly.Cauchy]
+CauchyKernel.Big.op [in Combi.MPoly.Cauchy]
+CauchyKernel.Big.R [in Combi.MPoly.Cauchy]
+CauchyKernel.BijectionFam.d [in Combi.MPoly.Cauchy]
+CauchyKernel.BijectionFam.famYinv_fun [in Combi.MPoly.Cauchy]
+CauchyKernel.d [in Combi.MPoly.Cauchy]
+CauchyKernel.m0 [in Combi.MPoly.Cauchy]
+CauchyKernel.n0 [in Combi.MPoly.Cauchy]
+CauchyKernel.R [in Combi.MPoly.Cauchy]
+CauchyKernel.vecmx_index [in Combi.MPoly.Cauchy]
+CFExtProdDefs.aT [in Combi.SymGroup.towerSn]
+CFExtProdDefs.G [in Combi.SymGroup.towerSn]
+CFExtProdDefs.gT [in Combi.SymGroup.towerSn]
+CFExtProdDefs.H [in Combi.SymGroup.towerSn]
+CFExtProdTheory.aT [in Combi.SymGroup.towerSn]
+CFExtProdTheory.G [in Combi.SymGroup.towerSn]
+CFExtProdTheory.gT [in Combi.SymGroup.towerSn]
+CFExtProdTheory.H [in Combi.SymGroup.towerSn]
+CFExtProdTheory.ReprExtProd.n1 [in Combi.SymGroup.towerSn]
+CFExtProdTheory.ReprExtProd.n2 [in Combi.SymGroup.towerSn]
+CFExtProdTheory.ReprExtProd.rG [in Combi.SymGroup.towerSn]
+CFExtProdTheory.ReprExtProd.rH [in Combi.SymGroup.towerSn]
+ChangeBaseMonomial.n [in Combi.MPoly.sympoly]
+ChangeBaseMonomial.R [in Combi.MPoly.sympoly]
+ChangeBasisSymhPowerSum.nvar0 [in Combi.MPoly.sympoly]
+ChangeBasisSymhPowerSum.R [in Combi.MPoly.sympoly]
+ChangeBasis.HandE.E [in Combi.MPoly.sympoly]
+ChangeBasis.HandE.E0 [in Combi.MPoly.sympoly]
+ChangeBasis.HandE.H [in Combi.MPoly.sympoly]
+ChangeBasis.HandE.Hanti [in Combi.MPoly.sympoly]
+ChangeBasis.HandE.H0 [in Combi.MPoly.sympoly]
+ChangeBasis.n0 [in Combi.MPoly.sympoly]
+ChangeBasis.R [in Combi.MPoly.sympoly]
+ChangeField.d [in Combi.MPoly.homogsym]
+ChangeField.mor [in Combi.MPoly.homogsym]
+ChangeField.n0 [in Combi.MPoly.homogsym]
+ChangeField.R [in Combi.MPoly.homogsym]
+ChangeField.S [in Combi.MPoly.homogsym]
+ChangeNVar.d [in Combi.MPoly.homogsym]
+ChangeNVar.d [in Combi.MPoly.sympoly]
+ChangeNVar.Hd [in Combi.MPoly.homogsym]
+ChangeNVar.Hd [in Combi.MPoly.sympoly]
+ChangeNVar.m0 [in Combi.MPoly.homogsym]
+ChangeNVar.m0 [in Combi.MPoly.sympoly]
+ChangeNVar.n0 [in Combi.MPoly.homogsym]
+ChangeNVar.n0 [in Combi.MPoly.sympoly]
+ChangeNVar.ProdGen.Gen [in Combi.MPoly.sympoly]
+ChangeNVar.ProdGen.Hcnvargen [in Combi.MPoly.sympoly]
+ChangeNVar.R [in Combi.MPoly.homogsym]
+ChangeNVar.R [in Combi.MPoly.sympoly]
+CharDotProduct.G [in Combi.SymGroup.Frobenius_char]
+CharDotProduct.gT [in Combi.SymGroup.Frobenius_char]
+classGroup.aT [in Combi.SymGroup.towerSn]
+classGroup.G [in Combi.SymGroup.towerSn]
+classGroup.gT [in Combi.SymGroup.towerSn]
+classGroup.H [in Combi.SymGroup.towerSn]
+Codes.FinType.n [in Combi.SymGroup.presentSn]
+CommutativeImage.n [in Combi.LRrule.freeSchur]
+CommutativeImage.R [in Combi.LRrule.freeSchur]
+CompOfn.n [in Combi.Combi.composition]
+CongruenceClosure.Alph [in Combi.Basic.congr]
+CongruenceClosure.Hinvar_congr [in Combi.Basic.congr]
+CongruenceClosure.Hsym [in Combi.Basic.congr]
+CongruenceClosure.inv [in Combi.Basic.congr]
+CongruenceClosure.rule [in Combi.Basic.congr]
+CongruenceFacts.Alph [in Combi.Basic.congr]
+CongruenceFacts.Hcongr [in Combi.Basic.congr]
+CongruenceFacts.Hequiv [in Combi.Basic.congr]
+CongruenceFacts.r [in Combi.Basic.congr]
+ConjTab.disp [in Combi.Combi.stdtab]
+ConjTab.T [in Combi.Combi.stdtab]
+Conj.d1 [in Combi.LRrule.freeSchur]
+Conj.d2 [in Combi.LRrule.freeSchur]
+ConnectCompl.e [in Combi.Combi.skewpart]
+ConnectCompl.T [in Combi.Combi.skewpart]
+Connected4.inner [in Combi.Combi.skewpart]
+Connected4.outer [in Combi.Combi.skewpart]
+Coord.d [in Combi.MPoly.homogsym]
+Coord.Hd [in Combi.MPoly.homogsym]
+Coord.n0 [in Combi.MPoly.homogsym]
+Coord.R [in Combi.MPoly.homogsym]
+CoversFinPOrder.disp [in Combi.Basic.ordtype]
+CoversFinPOrder.T [in Combi.Basic.ordtype]
+CoverSurgery.N [in Combi.LRrule.Greene_inv]
+CoverSurgery.P [in Combi.LRrule.Greene_inv]
+CoverSurgery.Q [in Combi.LRrule.Greene_inv]
+CoverSurgery.S [in Combi.LRrule.Greene_inv]
+CutK.T [in Combi.Combi.vectNK]
+Cut3.match3 [in Combi.Combi.vectNK]
+Cut3.T [in Combi.Combi.vectNK]
+CycleTypeConj.T [in Combi.SymGroup.cycletype]
+CycleType.CFunIndicator.ct [in Combi.SymGroup.cycletype]
+CycleType.Classes.ct [in Combi.SymGroup.cycletype]
+CycleType.T [in Combi.SymGroup.cycletype]
+

D

+DefsFiber.eqct [in Combi.SymGroup.cycletype]
+DefsFiber.s [in Combi.SymGroup.cycletype]
+DefsFiber.t [in Combi.SymGroup.cycletype]
+DefsFiber.U [in Combi.SymGroup.cycletype]
+DefsFiber.V [in Combi.SymGroup.cycletype]
+DefsKostkaMon.d [in Combi.MPoly.Schur_altdef]
+DefsKostkaMon.la [in Combi.MPoly.Schur_altdef]
+DefsKostkaMon.n [in Combi.MPoly.Schur_altdef]
+Defs.Alph [in Combi.LRrule.shuffle]
+Defs.Alph [in Combi.LRrule.plactic]
+Defs.disp [in Combi.LRrule.plactic]
+Defs.S [in Combi.Combi.setpartition]
+Defs.T [in Combi.Combi.setpartition]
+Defs.word [in Combi.LRrule.shuffle]
+Defs.word [in Combi.LRrule.plactic]
+DefTrivSign.d [in Combi.SymGroup.reprSn]
+DefTrivSign.n [in Combi.SymGroup.reprSn]
+DefType.d [in Combi.MPoly.homogsym]
+DefType.Hvar [in Combi.MPoly.homogsym]
+DefType.n [in Combi.MPoly.homogsym]
+DefType.n [in Combi.MPoly.sympoly]
+DefType.R [in Combi.MPoly.homogsym]
+DefType.R [in Combi.MPoly.sympoly]
+Depend.Hsym [in Combi.Basic.congr]
+Depend.inv [in Combi.Basic.congr]
+Depend.rule [in Combi.Basic.congr]
+Depend.T [in Combi.Basic.congr]
+DescSet.n [in Combi.Combi.composition]
+Dominate.disp [in Combi.Combi.skewtab]
+Dominate.disp [in Combi.Combi.tableau]
+Dominate.T [in Combi.Combi.skewtab]
+Dominate.T [in Combi.Combi.tableau]
+Duality.Alph [in Combi.LRrule.Greene_inv]
+Duality.disp [in Combi.LRrule.Greene_inv]
+Duality.k [in Combi.LRrule.Greene_inv]
+Duality.w [in Combi.LRrule.Greene_inv]
+Duality.word [in Combi.LRrule.Greene_inv]
+DualRule.Alph [in Combi.LRrule.plactic]
+DualRule.disp [in Combi.LRrule.plactic]
+DualRule.word [in Combi.LRrule.plactic]
+Dual.hb_instance_111.T [in Combi.Basic.ordtype]
+Dual.hb_instance_111.d [in Combi.Basic.ordtype]
+Dual.hb_instance_100.T [in Combi.Basic.ordtype]
+Dual.hb_instance_100.d [in Combi.Basic.ordtype]
+Dual.hb_instance_91.T [in Combi.Basic.ordtype]
+Dual.hb_instance_91.d [in Combi.Basic.ordtype]
+Dual.hb_instance_80.T [in Combi.Basic.ordtype]
+Dual.hb_instance_80.d [in Combi.Basic.ordtype]
+Dual.hb_instance_69.T [in Combi.Basic.ordtype]
+Dual.hb_instance_69.d [in Combi.Basic.ordtype]
+Dual.hb_instance_60.T [in Combi.Basic.ordtype]
+Dual.hb_instance_60.d [in Combi.Basic.ordtype]
+Dual.hb_instance_53.T [in Combi.Basic.ordtype]
+Dual.hb_instance_53.d [in Combi.Basic.ordtype]
+Dual.hb_instance_48.T [in Combi.Basic.ordtype]
+DyckSetInd.P [in Combi.Combi.Dyckword]
+DyckSetInd.Pcons [in Combi.Combi.Dyckword]
+DyckSetInd.Pnil [in Combi.Combi.Dyckword]
+DyckToBal.HDyck [in Combi.Combi.Dyckword]
+DyckToBal.Hrt [in Combi.Combi.Dyckword]
+DyckToBal.rt [in Combi.Combi.Dyckword]
+DyckToBal.w [in Combi.Combi.Dyckword]
+DyckWordRotationBijection.n [in Combi.Combi.Dyckword]
+

E

+ElemTransp.n0 [in Combi.SymGroup.presentSn]
+EltrConj.n [in Combi.SymGroup.reprSn]
+EltrP.i [in Combi.MPoly.antisym]
+EltrP.n [in Combi.MPoly.antisym]
+Empty.T [in Combi.Combi.setpartition]
+EnumFintype.P [in Combi.Basic.combclass]
+EnumFintype.subenum [in Combi.Basic.combclass]
+EnumFintype.subenumP [in Combi.Basic.combclass]
+EnumFintype.subenum_countE [in Combi.Basic.combclass]
+EnumFintype.T [in Combi.Basic.combclass]
+EnumFintype.TP [in Combi.Basic.combclass]
+EqInvAltDef.disp1 [in Combi.Combi.std]
+EqInvAltDef.disp2 [in Combi.Combi.std]
+EqInvAltDef.disp3 [in Combi.Combi.std]
+EqInvAltDef.S [in Combi.Combi.std]
+EqInvAltDef.T [in Combi.Combi.std]
+EqInvAltDef.U [in Combi.Combi.std]
+EqInvDef.disp1 [in Combi.Combi.std]
+EqInvDef.disp2 [in Combi.Combi.std]
+EqInvDef.disp3 [in Combi.Combi.std]
+EqInvDef.S [in Combi.Combi.std]
+EqInvDef.T [in Combi.Combi.std]
+EqInvDef.U [in Combi.Combi.std]
+EqInvPosRemBig.disp1 [in Combi.Combi.std]
+EqInvPosRemBig.disp2 [in Combi.Combi.std]
+EqInvPosRemBig.S [in Combi.Combi.std]
+EqInvPosRemBig.T [in Combi.Combi.std]
+Examples.u [in Combi.Combi.std]
+Examples.v [in Combi.Combi.std]
+

F

+FastImplem.ComRing.R [in Combi.MPoly.MurnaghanNakayama]
+FastImplem.n0 [in Combi.MPoly.MurnaghanNakayama]
+FilterLeqGeq.disp [in Combi.Combi.skewtab]
+FilterLeqGeq.T [in Combi.Combi.skewtab]
+FindCorner.EndsAt.Alpha [in Combi.HookFormula.hook]
+FindCorner.EndsAt.Beta [in Combi.HookFormula.hook]
+FindCorner.EndsAt.Hcorn [in Combi.HookFormula.hook]
+FindCorner.Formula.alpha [in Combi.HookFormula.hook]
+FindCorner.Formula.R [in Combi.HookFormula.hook]
+FindCorner.Formula.T [in Combi.HookFormula.hook]
+FindCorner.p [in Combi.HookFormula.hook]
+FindCorner.Theorem2.Alpha [in Combi.HookFormula.hook]
+FindCorner.Theorem2.Beta [in Combi.HookFormula.hook]
+FindCorner.Theorem2.Hcorn [in Combi.HookFormula.hook]
+FindCorner.Theorem2.Hpartc' [in Combi.HookFormula.hook]
+FindCorner.Theorem2.p' [in Combi.HookFormula.hook]
+FinerCard.finPQ [in Combi.Combi.setpartition]
+FinerCard.P [in Combi.Combi.setpartition]
+FinerCard.Q [in Combi.Combi.setpartition]
+FinerCard.S [in Combi.Combi.setpartition]
+FinerCard.T [in Combi.Combi.setpartition]
+FiniteDistributions.A [in ALEA.Qmeasure]
+FiniteDistributions.p [in ALEA.Qmeasure]
+FinSet.T [in Combi.SSRcomplements.tools]
+FinType.d [in Combi.Combi.tableau]
+FinType.disp [in Combi.Combi.tableau]
+FinType.hb_instance_22.n [in Combi.Combi.ordtree]
+FinType.n [in Combi.Combi.permuted]
+FinType.sh [in Combi.Combi.tableau]
+FinType.T [in Combi.Combi.subseq]
+FinType.T [in Combi.Combi.tableau]
+FinType.T [in Combi.Combi.permuted]
+FinType.tabsh_enum [in Combi.Combi.tableau]
+FinType.w [in Combi.Combi.subseq]
+FinType.w [in Combi.Combi.permuted]
+FreeSchur.Coeffs.Bij_LRsupport.ChangeUT.DefBij.w [in Combi.LRrule.freeSchur]
+FreeSchur.Coeffs.Bij_LRsupport.ChangeUT.DefBij.HTriple [in Combi.LRrule.freeSchur]
+FreeSchur.Coeffs.Bij_LRsupport.ChangeUT.DefBij.Q [in Combi.LRrule.freeSchur]
+FreeSchur.Coeffs.Bij_LRsupport.ChangeUT.TakeDrop.Hdrop [in Combi.LRrule.freeSchur]
+FreeSchur.Coeffs.Bij_LRsupport.ChangeUT.TakeDrop.Htake [in Combi.LRrule.freeSchur]
+FreeSchur.Coeffs.Bij_LRsupport.ChangeUT.TakeDrop.w [in Combi.LRrule.freeSchur]
+FreeSchur.Coeffs.Bij_LRsupport.ChangeUT.TakeDrop.T [in Combi.LRrule.freeSchur]
+FreeSchur.Coeffs.Bij_LRsupport.ChangeUT.TakeDrop.disp [in Combi.LRrule.freeSchur]
+FreeSchur.Coeffs.Bij_LRsupport.ChangeUT.Hsh2 [in Combi.LRrule.freeSchur]
+FreeSchur.Coeffs.Bij_LRsupport.ChangeUT.Hsh1 [in Combi.LRrule.freeSchur]
+FreeSchur.Coeffs.Bij_LRsupport.ChangeUT.T2 [in Combi.LRrule.freeSchur]
+FreeSchur.Coeffs.Bij_LRsupport.ChangeUT.U2 [in Combi.LRrule.freeSchur]
+FreeSchur.Coeffs.Bij_LRsupport.ChangeUT.T1 [in Combi.LRrule.freeSchur]
+FreeSchur.Coeffs.Bij_LRsupport.ChangeUT.U1 [in Combi.LRrule.freeSchur]
+FreeSchur.Coeffs.d1 [in Combi.LRrule.freeSchur]
+FreeSchur.Coeffs.d2 [in Combi.LRrule.freeSchur]
+FreeSchur.Coeffs.P1 [in Combi.LRrule.freeSchur]
+FreeSchur.Coeffs.P2 [in Combi.LRrule.freeSchur]
+FreeSchur.Degree.d [in Combi.LRrule.freeSchur]
+FreeSchur.FreeLRrule.d1 [in Combi.LRrule.freeSchur]
+FreeSchur.FreeLRrule.d2 [in Combi.LRrule.freeSchur]
+FreeSchur.FreeLRrule.Q1 [in Combi.LRrule.freeSchur]
+FreeSchur.FreeLRrule.Q2 [in Combi.LRrule.freeSchur]
+FreeSchur.n0 [in Combi.LRrule.freeSchur]
+FreeSchur.R [in Combi.LRrule.freeSchur]
+

G

+Generators.gen [in Combi.MPoly.sympoly]
+Generators.gen_homog [in Combi.MPoly.sympoly]
+Generators.n [in Combi.MPoly.sympoly]
+Generators.R [in Combi.MPoly.sympoly]
+GreeneCat.Alph [in Combi.LRrule.Greene]
+GreeneCat.HR [in Combi.LRrule.Greene]
+GreeneCat.lsplit [in Combi.LRrule.Greene]
+GreeneCat.M [in Combi.LRrule.Greene]
+GreeneCat.N [in Combi.LRrule.Greene]
+GreeneCat.R [in Combi.LRrule.Greene]
+GreeneCat.rsplit [in Combi.LRrule.Greene]
+GreeneCat.V [in Combi.LRrule.Greene]
+GreeneCat.W [in Combi.LRrule.Greene]
+GreeneDef.Alph [in Combi.LRrule.Greene]
+GreeneDef.HR [in Combi.LRrule.Greene]
+GreeneDef.N [in Combi.LRrule.Greene]
+GreeneDef.R [in Combi.LRrule.Greene]
+GreeneDef.wt [in Combi.LRrule.Greene]
+GreeneInj.R1 [in Combi.LRrule.Greene]
+GreeneInj.R2 [in Combi.LRrule.Greene]
+GreeneInj.T1 [in Combi.LRrule.Greene]
+GreeneInj.T2 [in Combi.LRrule.Greene]
+GreeneInvariantsDual.Alph [in Combi.LRrule.Greene_inv]
+GreeneInvariantsDual.disp [in Combi.LRrule.Greene_inv]
+GreeneInvariantsDual.word [in Combi.LRrule.Greene_inv]
+GreeneInvariantsRule.Alph [in Combi.LRrule.Greene_inv]
+GreeneInvariantsRule.disp [in Combi.LRrule.Greene_inv]
+GreeneInvariantsRule.k [in Combi.LRrule.Greene_inv]
+GreeneInvariantsRule.u [in Combi.LRrule.Greene_inv]
+GreeneInvariantsRule.v1 [in Combi.LRrule.Greene_inv]
+GreeneInvariantsRule.v2 [in Combi.LRrule.Greene_inv]
+GreeneInvariantsRule.w [in Combi.LRrule.Greene_inv]
+GreeneInvariantsRule.word [in Combi.LRrule.Greene_inv]
+GreeneInvariants.Alph [in Combi.LRrule.Greene_inv]
+GreeneInvariants.disp [in Combi.LRrule.Greene_inv]
+GreeneInvariants.word [in Combi.LRrule.Greene_inv]
+GreenEqShape.d1 [in Combi.LRrule.Greene_inv]
+GreenEqShape.d2 [in Combi.LRrule.Greene_inv]
+GreenEqShape.S [in Combi.LRrule.Greene_inv]
+GreenEqShape.T [in Combi.LRrule.Greene_inv]
+GreeneRec.Alph [in Combi.LRrule.Greene]
+GreeneRec.cast_set_tab [in Combi.LRrule.Greene]
+GreeneRec.disp [in Combi.LRrule.Greene]
+GreeneRec.Induction.t [in Combi.LRrule.Greene]
+GreeneRec.Induction.t0 [in Combi.LRrule.Greene]
+GreeneRec.sym_cast [in Combi.LRrule.Greene]
+GreeneSeq.Alph [in Combi.LRrule.Greene]
+GreeneSeq.HnegR [in Combi.LRrule.Greene]
+GreeneSeq.HR [in Combi.LRrule.Greene]
+GreeneSeq.negR [in Combi.LRrule.Greene]
+GreeneSeq.R [in Combi.LRrule.Greene]
+GreeneTab.Alph [in Combi.LRrule.Greene]
+GreeneTab.disp [in Combi.LRrule.Greene]
+

H

+hb_instance_31.d [in Combi.Combi.partition]
+hb_instance_22.n [in Combi.Combi.bintree]
+hb_instance_43.n [in Combi.Basic.ordtype]
+hb_instance_32.T' [in Combi.Basic.ordtype]
+hb_instance_32.T [in Combi.Basic.ordtype]
+hb_instance_27.T [in Combi.Basic.ordtype]
+hb_instance_22.T [in Combi.Basic.ordtype]
+hb_instance_17.n [in Combi.Basic.ordtype]
+HomogSymLModType.d [in Combi.MPoly.homogsym]
+HomogSymLModType.n [in Combi.MPoly.homogsym]
+HomogSymLModType.R [in Combi.MPoly.homogsym]
+HomogSymProd.c [in Combi.MPoly.homogsym]
+HomogSymProd.d [in Combi.MPoly.homogsym]
+HomogSymProd.n [in Combi.MPoly.homogsym]
+HomogSymProd.R [in Combi.MPoly.homogsym]
+HomSymField.d [in Combi.MPoly.homogsym]
+HomSymField.Hd [in Combi.MPoly.homogsym]
+HomSymField.n0 [in Combi.MPoly.homogsym]
+HomSymField.R [in Combi.MPoly.homogsym]
+HomSymProdGen.Cons.d [in Combi.MPoly.homogsym]
+HomSymProdGen.Cons.Hla [in Combi.MPoly.homogsym]
+HomSymProdGen.Cons.Hlla [in Combi.MPoly.homogsym]
+HomSymProdGen.Cons.la [in Combi.MPoly.homogsym]
+HomSymProdGen.Cons.l0 [in Combi.MPoly.homogsym]
+HomSymProdGen.Merge.d1 [in Combi.MPoly.homogsym]
+HomSymProdGen.Merge.d2 [in Combi.MPoly.homogsym]
+HomSymProdGen.Merge.la [in Combi.MPoly.homogsym]
+HomSymProdGen.Merge.mu [in Combi.MPoly.homogsym]
+HomSymProdGen.n0 [in Combi.MPoly.homogsym]
+HomSymProdGen.R [in Combi.MPoly.homogsym]
+

I

+Identity.n [in Combi.HookFormula.Frobenius_ident]
+IdomainSchurSym.n0 [in Combi.MPoly.Schur_altdef]
+IdomainSchurSym.R [in Combi.MPoly.Schur_altdef]
+ImsetInj.f [in Combi.SSRcomplements.tools]
+ImsetInj.f_inj [in Combi.SSRcomplements.tools]
+ImsetInj.T [in Combi.SSRcomplements.tools]
+ImsetInj.T1 [in Combi.SSRcomplements.tools]
+ImsetInj.T2 [in Combi.SSRcomplements.tools]
+IncrMap.disp1 [in Combi.LRrule.plactic]
+IncrMap.disp1 [in Combi.Combi.tableau]
+IncrMap.disp2 [in Combi.LRrule.plactic]
+IncrMap.disp2 [in Combi.Combi.tableau]
+IncrMap.F [in Combi.LRrule.plactic]
+IncrMap.F [in Combi.Combi.tableau]
+IncrMap.Hincr [in Combi.LRrule.plactic]
+IncrMap.T1 [in Combi.LRrule.plactic]
+IncrMap.T1 [in Combi.Combi.tableau]
+IncrMap.T2 [in Combi.LRrule.plactic]
+IncrMap.T2 [in Combi.Combi.tableau]
+IncrMap.u [in Combi.LRrule.plactic]
+IncrMap.v [in Combi.LRrule.plactic]
+Induction.m [in Combi.SymGroup.towerSn]
+Induction.n [in Combi.SymGroup.towerSn]
+InHomSym.d [in Combi.MPoly.homogsym]
+InHomSym.n0 [in Combi.MPoly.homogsym]
+InHomSym.R [in Combi.MPoly.homogsym]
+IntpartnCons.d [in Combi.Combi.partition]
+IntpartnCons.Hla [in Combi.Combi.partition]
+IntpartnCons.Hlla [in Combi.Combi.partition]
+IntpartnCons.la [in Combi.Combi.partition]
+IntpartnCons.l0 [in Combi.Combi.partition]
+IntPartNDom.IntPartNDom.d [in Combi.Combi.partition]
+IntPartNDom.IntPartNTopBottom.d [in Combi.Combi.partition]
+IntPartNLexi.IntPartNLexi.d [in Combi.Combi.partition]
+IntPartN.la [in Combi.Combi.skewpart]
+IntPartN.m [in Combi.Combi.skewpart]
+IntPartN.nbox [in Combi.Combi.skewpart]
+IntPartN.val_id [in Combi.Combi.skewpart]
+InvarContHom.Alph [in Combi.Basic.congr]
+InvarContHom.Hcongr [in Combi.Basic.congr]
+InvarContHom.Hhom [in Combi.Basic.congr]
+InvarContHom.rule [in Combi.Basic.congr]
+InvarContHom.szinvar [in Combi.Basic.congr]
+InvarContMultHom.Alph [in Combi.Basic.congr]
+InvarContMultHom.Hcongr [in Combi.Basic.congr]
+InvarContMultHom.Hmulthom [in Combi.Basic.congr]
+InvarContMultHom.Hsym [in Combi.Basic.congr]
+InvarContMultHom.rule [in Combi.Basic.congr]
+InvSet.n [in Combi.SymGroup.presentSn]
+isInhabitedType.isInhabitedType.T [in Combi.Basic.ordtype]
+isInhabited.isInhabited.T [in Combi.Basic.ordtype]
+IsoBottom.IsoBottom.disp [in Combi.Combi.composition]
+IsoBottom.IsoBottom.local_mixin_Order_Preorder_isDuallyPOrder [in Combi.Combi.composition]
+IsoBottom.IsoBottom.local_mixin_Order_isDuallyPreorder [in Combi.Combi.composition]
+IsoBottom.IsoBottom.local_mixin_eqtype_hasDecEq [in Combi.Combi.composition]
+IsoBottom.IsoBottom.local_mixin_choice_hasChoice [in Combi.Combi.composition]
+IsoBottom.IsoBottom.T [in Combi.Combi.composition]
+IsoTop.IsoTop.disp [in Combi.Combi.composition]
+IsoTop.IsoTop.local_mixin_Order_Preorder_isDuallyPOrder [in Combi.Combi.composition]
+IsoTop.IsoTop.local_mixin_Order_isDuallyPreorder [in Combi.Combi.composition]
+IsoTop.IsoTop.local_mixin_eqtype_hasDecEq [in Combi.Combi.composition]
+IsoTop.IsoTop.local_mixin_choice_hasChoice [in Combi.Combi.composition]
+IsoTop.IsoTop.T [in Combi.Combi.composition]
+

K

+KostkaEq.d [in Combi.MPoly.Schur_altdef]
+KostkaEq.la [in Combi.MPoly.Schur_altdef]
+Kostka.d [in Combi.MPoly.Schur_altdef]
+KsuppInj.Hinv [in Combi.LRrule.stdplact]
+KsuppInj.s [in Combi.LRrule.stdplact]
+KsuppInj.t [in Combi.LRrule.stdplact]
+

L

+Length.n0 [in Combi.SymGroup.presentSn]
+Length.PartCode.is_partcode [in Combi.SymGroup.presentSn]
+Length.PartCode.word_of_partcocode [in Combi.SymGroup.presentSn]
+LEPermTheory.n0 [in Combi.SymGroup.weak_order]
+LinRepr.G [in Combi.SymGroup.reprSn]
+LinRepr.gT [in Combi.SymGroup.reprSn]
+LRrule_Pieri.R [in Combi.MPoly.sympoly]
+LRrule_Pieri.n0 [in Combi.MPoly.sympoly]
+LRTriple.Alph [in Combi.LRrule.shuffle]
+LRTriple.disp [in Combi.LRrule.shuffle]
+LRTriple.word [in Combi.LRrule.shuffle]
+LR.d1 [in Combi.LRrule.therule]
+LR.d1 [in Combi.LRrule.implem]
+LR.d2 [in Combi.LRrule.therule]
+LR.d2 [in Combi.LRrule.implem]
+LR.n0 [in Combi.LRrule.implem]
+LR.Pieri.n0 [in Combi.LRrule.therule]
+LR.Pieri.R [in Combi.LRrule.therule]
+LR.P1 [in Combi.LRrule.implem]
+LR.P2 [in Combi.LRrule.implem]
+LR.R [in Combi.LRrule.implem]
+LR.TheRule.n0 [in Combi.LRrule.therule]
+LR.TheRule.OneCoeff.Hincl [in Combi.LRrule.therule]
+LR.TheRule.OneCoeff.P [in Combi.LRrule.therule]
+LR.TheRule.P1 [in Combi.LRrule.therule]
+LR.TheRule.P2 [in Combi.LRrule.therule]
+LR.TheRule.R [in Combi.LRrule.therule]
+

M

+MaxPerm.n [in Combi.SymGroup.presentSn]
+MaxSeq.disp [in Combi.Basic.ordtype]
+MaxSeq.T [in Combi.Basic.ordtype]
+MeasureProp.A [in ALEA.Qmeasure]
+MeasureProp.m [in ALEA.Qmeasure]
+MinDropEq.T [in Combi.Combi.skewpart]
+MNRule.n0 [in Combi.MPoly.MurnaghanNakayama]
+MNRule.R [in Combi.MPoly.MurnaghanNakayama]
+MonDistrib.A [in ALEA.Qmeasure]
+MonDistrib.B [in ALEA.Qmeasure]
+MonomPart.n [in Combi.MPoly.antisym]
+MPoESymHomog.n [in Combi.MPoly.sympoly]
+MPoESymHomog.R [in Combi.MPoly.sympoly]
+MPolySym.n [in Combi.MPoly.antisym]
+MPolySym.R [in Combi.MPoly.antisym]
+MultAlternSymp.n0 [in Combi.MPoly.MurnaghanNakayama]
+MultAlternSymp.R [in Combi.MPoly.MurnaghanNakayama]
+MultinomCompl.n [in Combi.MPoly.sympoly]
+MultinomCompl.R [in Combi.MPoly.sympoly]
+MultSymsSympIDomain.n0 [in Combi.MPoly.MurnaghanNakayama]
+MultSymsSymp.n0 [in Combi.MPoly.MurnaghanNakayama]
+MultSymsSymp.R [in Combi.MPoly.MurnaghanNakayama]
+

N

+NonEmpty.Bump.HRow [in Combi.LRrule.Schensted]
+NonEmpty.Bump.l [in Combi.LRrule.Schensted]
+NonEmpty.Bump.Row [in Combi.LRrule.Schensted]
+NonEmpty.disp [in Combi.LRrule.Schensted]
+NonEmpty.Insert.HRow [in Combi.LRrule.Schensted]
+NonEmpty.Insert.l [in Combi.LRrule.Schensted]
+NonEmpty.Insert.Row [in Combi.LRrule.Schensted]
+NonEmpty.T [in Combi.LRrule.Schensted]
+NoSetContainingBoth.Case.a [in Combi.LRrule.Greene_inv]
+NoSetContainingBoth.Case.Alph [in Combi.LRrule.Greene_inv]
+NoSetContainingBoth.Case.b [in Combi.LRrule.Greene_inv]
+NoSetContainingBoth.Case.disp [in Combi.LRrule.Greene_inv]
+NoSetContainingBoth.Case.HnoBoth [in Combi.LRrule.Greene_inv]
+NoSetContainingBoth.Case.k [in Combi.LRrule.Greene_inv]
+NoSetContainingBoth.Case.P [in Combi.LRrule.Greene_inv]
+NoSetContainingBoth.Case.Px [in Combi.LRrule.Greene_inv]
+NoSetContainingBoth.Case.R [in Combi.LRrule.Greene_inv]
+NoSetContainingBoth.Case.u [in Combi.LRrule.Greene_inv]
+NoSetContainingBoth.Case.v [in Combi.LRrule.Greene_inv]
+NoSetContainingBoth.Case.word [in Combi.LRrule.Greene_inv]
+NoSetContainingBoth.Case.x [in Combi.LRrule.Greene_inv]
+NoSetContainingBoth.Case.y [in Combi.LRrule.Greene_inv]
+NThAddRibbon.lesmin [in Combi.Combi.skewpart]
+NThAddRibbon.less [in Combi.Combi.skewpart]
+NThAddRibbon.lessz [in Combi.Combi.skewpart]
+NThAddRibbon.rem [in Combi.Combi.skewpart]
+NThAddRibbon.sh [in Combi.Combi.skewpart]
+NThAddRibbon.start [in Combi.Combi.skewpart]
+NThAddRibbon.stop [in Combi.Combi.skewpart]
+NThAddRibbon.sztd [in Combi.Combi.skewpart]
+NVar.Character.Hn [in Combi.SymGroup.Frobenius_char]
+NVar.Character.n [in Combi.SymGroup.Frobenius_char]
+NVar.Defs.Hn [in Combi.SymGroup.Frobenius_char]
+NVar.Defs.n [in Combi.SymGroup.Frobenius_char]
+NVar.nvar0 [in Combi.SymGroup.Frobenius_char]
+

O

+OfSize.n [in Combi.Combi.ordtree]
+OmegaHomSym.d [in Combi.MPoly.homogsym]
+OmegaHomSym.n0 [in Combi.MPoly.homogsym]
+OmegaHomSym.R [in Combi.MPoly.homogsym]
+OmegaProd.n0 [in Combi.MPoly.homogsym]
+OmegaProd.R [in Combi.MPoly.homogsym]
+Omega.d [in Combi.MPoly.sympoly]
+Omega.n0 [in Combi.MPoly.sympoly]
+Omega.R [in Combi.MPoly.sympoly]
+OperDistr.A [in ALEA.Qmeasure]
+OperDistr.B [in ALEA.Qmeasure]
+OperDistr.C [in ALEA.Qmeasure]
+OperDistr.MuBool.m [in ALEA.Qmeasure]
+OrdTableau.d [in Combi.Combi.tableau]
+OrdTableau.Hszs [in Combi.Combi.tableau]
+OrdTableau.n [in Combi.Combi.tableau]
+OrdTableau.sh [in Combi.Combi.tableau]
+OutEval.outev [in Combi.LRrule.implem]
+OutEval.tsumn [in Combi.LRrule.implem]
+

P

+PackedSpec.eval [in Combi.LRrule.implem]
+PackedSpec.inner [in Combi.LRrule.implem]
+PackedSpec.outer [in Combi.LRrule.implem]
+PartOfn.n [in Combi.Combi.partition]
+PermComp.T [in Combi.SSRcomplements.permcomp]
+PermCycles.CM.s [in Combi.SymGroup.permcent]
+PermCycles.T [in Combi.SymGroup.permcent]
+PermCycles.T [in Combi.SymGroup.cycles]
+PermEq.Alph [in Combi.Combi.std]
+PermEq.disp [in Combi.Combi.std]
+PermLattice.Exports.PermLattice.n0 [in Combi.SymGroup.weak_order]
+PermLattice.PermLattice.n0 [in Combi.SymGroup.weak_order]
+PermOfInvSetEltr.n0 [in Combi.SymGroup.presentSn]
+Permuted.SizeN.n [in Combi.Combi.permuted]
+Permuted.T [in Combi.Combi.permuted]
+PlactDual.Alph [in Combi.LRrule.plactic]
+PlactDual.disp [in Combi.LRrule.plactic]
+PlactDual.word [in Combi.LRrule.plactic]
+PorbitBijection.CM [in Combi.SymGroup.cycletype]
+PorbitBijection.s [in Combi.SymGroup.cycletype]
+PorbitBijection.t [in Combi.SymGroup.cycletype]
+PorbitBijection.U [in Combi.SymGroup.cycletype]
+PorbitBijection.V [in Combi.SymGroup.cycletype]
+PreimPartition.D [in Combi.Combi.Dyckword]
+PreimPartition.f [in Combi.Combi.Dyckword]
+PreimPartition.rT [in Combi.Combi.Dyckword]
+PreimPartition.T [in Combi.Combi.Dyckword]
+PresentationSn.eltrG [in Combi.SymGroup.presentSn]
+PresentationSn.gT [in Combi.SymGroup.presentSn]
+PresentationSn.n [in Combi.SymGroup.presentSn]
+ProdGen.co [in Combi.MPoly.sympoly]
+ProdGen.Defs.gen [in Combi.MPoly.sympoly]
+ProdGen.Defs.gen_homog [in Combi.MPoly.sympoly]
+ProdGen.gA [in Combi.MPoly.sympoly]
+ProdGen.gB [in Combi.MPoly.sympoly]
+ProdGen.n [in Combi.MPoly.sympoly]
+ProdGen.R [in Combi.MPoly.sympoly]
+

Q

+QTableau.disp [in Combi.LRrule.Schensted]
+QTableau.T [in Combi.LRrule.Schensted]
+

R

+RCons.T [in Combi.Combi.subseq]
+Recursion.HPnil [in Combi.Combi.ordtree]
+Recursion.IHforest [in Combi.Combi.ordtree]
+Recursion.IHtree [in Combi.Combi.ordtree]
+Recursion.P [in Combi.Combi.ordtree]
+Recursion.PF [in Combi.Combi.ordtree]
+Reduced.n [in Combi.SymGroup.presentSn]
+RefinementOrder.RefinementOrder.n [in Combi.Combi.composition]
+RefinmentOrder.Exports.Finer.S [in Combi.Combi.setpartition]
+RefinmentOrder.Exports.Finer.T [in Combi.Combi.setpartition]
+RefinmentOrder.RefinmentOrder.S [in Combi.Combi.setpartition]
+RefinmentOrder.RefinmentOrder.T [in Combi.Combi.setpartition]
+RemoveBig.Alph [in Combi.LRrule.plactic]
+RemoveBig.disp [in Combi.LRrule.plactic]
+RemoveBig.disp [in Combi.Basic.ordtype]
+RemoveBig.T [in Combi.Basic.ordtype]
+RemoveBig.word [in Combi.LRrule.plactic]
+RemoveBig.Z [in Combi.Basic.ordtype]
+Restriction.m [in Combi.SymGroup.towerSn]
+Restriction.n [in Combi.SymGroup.towerSn]
+RestrIntervBig.Alph [in Combi.LRrule.plactic]
+RestrIntervBig.disp [in Combi.LRrule.plactic]
+RestrIntervBig.L [in Combi.LRrule.plactic]
+RestrIntervBig.word [in Combi.LRrule.plactic]
+RestrIntervSmall.Alph [in Combi.LRrule.plactic]
+RestrIntervSmall.disp [in Combi.LRrule.plactic]
+RestrIntervSmall.word [in Combi.LRrule.plactic]
+RevConj.Alph [in Combi.LRrule.Greene_inv]
+RevConj.d [in Combi.LRrule.Greene_inv]
+Rev.Alph [in Combi.LRrule.Greene]
+Rev.Alph [in Combi.LRrule.plactic]
+Rev.disp [in Combi.LRrule.plactic]
+Rev.word [in Combi.LRrule.plactic]
+RibbonOn.Hrib [in Combi.Combi.skewpart]
+RibbonOn.inner [in Combi.Combi.skewpart]
+RibbonOn.outer [in Combi.Combi.skewpart]
+RibbonOn.partinn [in Combi.Combi.skewpart]
+RibbonOn.partout [in Combi.Combi.skewpart]
+RibbonOn.start [in Combi.Combi.skewpart]
+RibbonOn.stop [in Combi.Combi.skewpart]
+RingSchurSym.n0 [in Combi.MPoly.Schur_altdef]
+RingSchurSym.R [in Combi.MPoly.Schur_altdef]
+RowsAndCols.Alph [in Combi.LRrule.plactic]
+RowsAndCols.disp [in Combi.LRrule.plactic]
+RowsAndCols.word [in Combi.LRrule.plactic]
+Rows.disp [in Combi.Combi.tableau]
+Rows.T [in Combi.Combi.tableau]
+RSToPlactic.Alph [in Combi.LRrule.plactic]
+RSToPlactic.disp [in Combi.LRrule.plactic]
+RSToPlactic.word [in Combi.LRrule.plactic]
+

S

+ScalarChange.mor [in Combi.MPoly.antisym]
+ScalarChange.mor [in Combi.MPoly.sympoly]
+ScalarChange.n [in Combi.MPoly.antisym]
+ScalarChange.n0 [in Combi.MPoly.sympoly]
+ScalarChange.R [in Combi.MPoly.antisym]
+ScalarChange.R [in Combi.MPoly.sympoly]
+ScalarChange.S [in Combi.MPoly.antisym]
+ScalarChange.S [in Combi.MPoly.sympoly]
+ScalarProduct.d [in Combi.MPoly.homogsym]
+ScalarProduct.Hd [in Combi.MPoly.homogsym]
+ScalarProduct.n0 [in Combi.MPoly.homogsym]
+Scalar.d [in Combi.MPoly.Cauchy]
+Scalar.hb_instance_73.mu [in Combi.MPoly.Cauchy]
+Scalar.hb_instance_73.la [in Combi.MPoly.Cauchy]
+Scalar.hb_instance_67.p [in Combi.MPoly.Cauchy]
+Scalar.hb_instance_62.la [in Combi.MPoly.Cauchy]
+Scalar.Hd [in Combi.MPoly.Cauchy]
+Scalar.n0 [in Combi.MPoly.Cauchy]
+SchurAlternantDef.n0 [in Combi.MPoly.Schur_altdef]
+SchurAlternantDef.R [in Combi.MPoly.Schur_altdef]
+SchurComRingType.n0 [in Combi.MPoly.Schur_mpoly]
+SchurComRingType.R [in Combi.MPoly.Schur_mpoly]
+Schur.n0 [in Combi.MPoly.Schur_mpoly]
+Schur.n0 [in Combi.MPoly.sympoly]
+Schur.R [in Combi.MPoly.Schur_mpoly]
+Schur.R [in Combi.MPoly.sympoly]
+SeqLemmas.T [in Combi.SSRcomplements.tools]
+SetAct.aT [in Combi.SSRcomplements.permcomp]
+SetAct.D [in Combi.SSRcomplements.permcomp]
+SetAct.rT [in Combi.SSRcomplements.permcomp]
+SetAct.to [in Combi.SSRcomplements.permcomp]
+SetContainingBothLeft.Case.a [in Combi.LRrule.Greene_inv]
+SetContainingBothLeft.Case.Alph [in Combi.LRrule.Greene_inv]
+SetContainingBothLeft.Case.b [in Combi.LRrule.Greene_inv]
+SetContainingBothLeft.Case.BIn.Hposb [in Combi.LRrule.Greene_inv]
+SetContainingBothLeft.Case.BIn.HT [in Combi.LRrule.Greene_inv]
+SetContainingBothLeft.Case.BIn.T [in Combi.LRrule.Greene_inv]
+SetContainingBothLeft.Case.BNotIn.HbNin [in Combi.LRrule.Greene_inv]
+SetContainingBothLeft.Case.c [in Combi.LRrule.Greene_inv]
+SetContainingBothLeft.Case.disp [in Combi.LRrule.Greene_inv]
+SetContainingBothLeft.Case.Hposa [in Combi.LRrule.Greene_inv]
+SetContainingBothLeft.Case.Hposc [in Combi.LRrule.Greene_inv]
+SetContainingBothLeft.Case.HRabc [in Combi.LRrule.Greene_inv]
+SetContainingBothLeft.Case.HS [in Combi.LRrule.Greene_inv]
+SetContainingBothLeft.Case.k [in Combi.LRrule.Greene_inv]
+SetContainingBothLeft.Case.P [in Combi.LRrule.Greene_inv]
+SetContainingBothLeft.Case.Px [in Combi.LRrule.Greene_inv]
+SetContainingBothLeft.Case.R [in Combi.LRrule.Greene_inv]
+SetContainingBothLeft.Case.S [in Combi.LRrule.Greene_inv]
+SetContainingBothLeft.Case.u [in Combi.LRrule.Greene_inv]
+SetContainingBothLeft.Case.v [in Combi.LRrule.Greene_inv]
+SetContainingBothLeft.Case.word [in Combi.LRrule.Greene_inv]
+SetContainingBothLeft.Case.x [in Combi.LRrule.Greene_inv]
+SetContainingBothLeft.Case.x' [in Combi.LRrule.Greene_inv]
+SetContainingBothLeft.Case.y [in Combi.LRrule.Greene_inv]
+SetContainingBothLeft.RelHypothesis.Alph [in Combi.LRrule.Greene_inv]
+SetContainingBothLeft.RelHypothesis.disp [in Combi.LRrule.Greene_inv]
+SetPartitionShape.T [in Combi.Combi.partition]
+SetPartition.T [in Combi.SSRcomplements.tools]
+SimpleRecursion.IHtree [in Combi.Combi.ordtree]
+SimpleRecursion.P [in Combi.Combi.ordtree]
+Singleton.T [in Combi.Combi.setpartition]
+Singleton.x [in Combi.Combi.setpartition]
+SizeN.n [in Combi.Combi.bintree]
+Size.n [in Combi.Combi.bintree]
+Sn.n [in Combi.SymGroup.cycletype]
+Sorted.Hanti [in Combi.SSRcomplements.sorted]
+Sorted.R [in Combi.SSRcomplements.sorted]
+Sorted.Rrefl [in Combi.SSRcomplements.sorted]
+Sorted.Rtrans [in Combi.SSRcomplements.sorted]
+Sorted.T [in Combi.SSRcomplements.sorted]
+Sorted.Z [in Combi.SSRcomplements.sorted]
+Spec.disp1 [in Combi.Combi.std]
+Spec.disp2 [in Combi.Combi.std]
+Spec.d1 [in Combi.LRrule.implem]
+Spec.d2 [in Combi.LRrule.implem]
+Spec.hgt [in Combi.Combi.skewpart]
+Spec.Hincl [in Combi.LRrule.implem]
+Spec.Hret [in Combi.Combi.skewpart]
+Spec.nbox [in Combi.Combi.skewpart]
+Spec.P [in Combi.LRrule.implem]
+Spec.partsh [in Combi.Combi.skewpart]
+Spec.pos [in Combi.Combi.skewpart]
+Spec.P1 [in Combi.LRrule.implem]
+Spec.P2 [in Combi.LRrule.implem]
+Spec.res [in Combi.Combi.skewpart]
+Spec.S [in Combi.Combi.std]
+Spec.sh [in Combi.Combi.skewpart]
+Spec.T [in Combi.Combi.std]
+SRel.T [in Combi.SymGroup.presentSn]
+SSRComplFinset.aT [in Combi.SSRcomplements.tools]
+SSRComplFinset.f [in Combi.SSRcomplements.tools]
+SSRComplFinset.rT [in Combi.SSRcomplements.tools]
+StabilityProperties.A [in ALEA.Qmeasure]
+StabilityProperties.m [in ALEA.Qmeasure]
+StabilityProperties.Mstable_sub [in ALEA.Qmeasure]
+Standardisation.Alph [in Combi.Combi.std]
+Standardisation.disp [in Combi.Combi.std]
+StdCombClass.n [in Combi.Combi.std]
+StdKostka.d [in Combi.MPoly.Schur_altdef]
+StdKostka.la [in Combi.MPoly.Schur_altdef]
+StdKostka.Nvar.Hd [in Combi.MPoly.Schur_altdef]
+StdKostka.Nvar.n [in Combi.MPoly.Schur_altdef]
+StdKostka.Nvar.td [in Combi.MPoly.Schur_altdef]
+StdRS.Alph [in Combi.LRrule.stdplact]
+StdRS.disp [in Combi.LRrule.stdplact]
+StdtabCombClass.n [in Combi.Combi.stdtab]
+StdtabCombClass.stdtabn_enum [in Combi.Combi.stdtab]
+StdtabnOfStdtabsh.n [in Combi.Combi.stdtab]
+StdtabnOfStdtabsh.sh [in Combi.Combi.stdtab]
+StdtabOfShape.sh [in Combi.Combi.stdtab]
+StdtabOfShape.stdtabsh_enum [in Combi.Combi.stdtab]
+StdTakeDrop.disp1 [in Combi.Combi.std]
+StdTakeDrop.disp2 [in Combi.Combi.std]
+StdTakeDrop.S [in Combi.Combi.std]
+StdTakeDrop.T [in Combi.Combi.std]
+SubseqSortedIn.leT [in Combi.Combi.subseq]
+SubseqSortedIn.T [in Combi.Combi.subseq]
+SubseqSorted.leT [in Combi.Combi.subseq]
+SubseqSorted.T [in Combi.Combi.subseq]
+SubtypesDisjointUnion.FI [in Combi.Basic.combclass]
+SubtypesDisjointUnion.Hpart [in Combi.Basic.combclass]
+SubtypesDisjointUnion.HPTi [in Combi.Basic.combclass]
+SubtypesDisjointUnion.P [in Combi.Basic.combclass]
+SubtypesDisjointUnion.Pi [in Combi.Basic.combclass]
+SubtypesDisjointUnion.PI [in Combi.Basic.combclass]
+SubtypesDisjointUnion.T [in Combi.Basic.combclass]
+SubtypesDisjointUnion.TI [in Combi.Basic.combclass]
+SubtypesDisjointUnion.TP [in Combi.Basic.combclass]
+SubtypesDisjointUnion.TPi [in Combi.Basic.combclass]
+SubtypesDisjointUnion.TPI [in Combi.Basic.combclass]
+SubtypesDisjointUnion.union_enum [in Combi.Basic.combclass]
+SubUndup.P [in Combi.Basic.combclass]
+SubUndup.subenum [in Combi.Basic.combclass]
+SubUndup.subenumP [in Combi.Basic.combclass]
+SubUndup.subenum_in [in Combi.Basic.combclass]
+SubUndup.T [in Combi.Basic.combclass]
+SubUndup.TP [in Combi.Basic.combclass]
+Swap.Swap.Alph [in Combi.LRrule.Greene_inv]
+Swap.Swap.disp [in Combi.LRrule.Greene_inv]
+Swap.Swap.l0 [in Combi.LRrule.Greene_inv]
+Swap.Swap.l1 [in Combi.LRrule.Greene_inv]
+Swap.Swap.R [in Combi.LRrule.Greene_inv]
+Swap.Swap.u [in Combi.LRrule.Greene_inv]
+Swap.Swap.v [in Combi.LRrule.Greene_inv]
+Swap.Swap.word [in Combi.LRrule.Greene_inv]
+Swap.Swap.x [in Combi.LRrule.Greene_inv]
+SymheSymsInt.d [in Combi.MPoly.sympoly]
+SymheSymsInt.n [in Combi.MPoly.sympoly]
+SymheSyms.d [in Combi.MPoly.sympoly]
+SymheSyms.n [in Combi.MPoly.sympoly]
+SymheSyms.R [in Combi.MPoly.sympoly]
+SymPolF.m [in Combi.MPoly.sympoly]
+SymPolF.R [in Combi.MPoly.sympoly]
+SymPolyComRingType.n [in Combi.MPoly.sympoly]
+SymPolyComRingType.R [in Combi.MPoly.sympoly]
+SymPolyIdomainType.n [in Combi.MPoly.sympoly]
+SymPolyIdomainType.R [in Combi.MPoly.sympoly]
+SymPolyRingType.n [in Combi.MPoly.sympoly]
+SymPolyRingType.R [in Combi.MPoly.sympoly]
+SymsSymmInt.d [in Combi.MPoly.sympoly]
+SymsSymmInt.n [in Combi.MPoly.sympoly]
+SymsSymm.d [in Combi.MPoly.sympoly]
+SymsSymm.n [in Combi.MPoly.sympoly]
+SymsSymm.R [in Combi.MPoly.sympoly]
+

T

+TableauReading.A [in Combi.LRrule.freeSchur]
+TableauReading.A [in Combi.Combi.tableau]
+TableauReading.disp [in Combi.LRrule.freeSchur]
+TableauReading.disp [in Combi.Combi.tableau]
+Tableau.disp [in Combi.Combi.tableau]
+Tableau.T [in Combi.Combi.tableau]
+TamariCover.n [in Combi.Combi.bintree]
+TamariLattice.TamariLattice.n [in Combi.Combi.bintree]
+TcastVal.T [in Combi.SymGroup.reprSn]
+TClosureInvset.n0 [in Combi.SymGroup.weak_order]
+Tests.bla [in Combi.Combi.bintree]
+Tests.partn [in Combi.MPoly.MurnaghanNakayama]
+TextBookDefStartStop.Hrib [in Combi.Combi.skewpart]
+TextBookDefStartStop.inner [in Combi.Combi.skewpart]
+TextBookDefStartStop.outer [in Combi.Combi.skewpart]
+TextBookDefStartStop.partinn [in Combi.Combi.skewpart]
+TextBookDefStartStop.partout [in Combi.Combi.skewpart]
+TextBookDefStartStop.start [in Combi.Combi.skewpart]
+TextBookDefStartStop.stop [in Combi.Combi.skewpart]
+TextBookImplDef.Htb [in Combi.Combi.skewpart]
+TextBookImplDef.inner [in Combi.Combi.skewpart]
+TextBookImplDef.outer [in Combi.Combi.skewpart]
+TextBookImplDef.partinn [in Combi.Combi.skewpart]
+TextBookImplDef.partout [in Combi.Combi.skewpart]
+TowerMorphism.m [in Combi.SymGroup.towerSn]
+TowerMorphism.n [in Combi.SymGroup.towerSn]
+Transitive.bound [in Combi.Basic.congr]
+Transitive.FullKnown.full [in Combi.Basic.congr]
+Transitive.FullKnown.Hfull [in Combi.Basic.congr]
+Transitive.Hbound [in Combi.Basic.congr]
+Transitive.Hinvar [in Combi.Basic.congr]
+Transitive.invar [in Combi.Basic.congr]
+Transitive.rule [in Combi.Basic.congr]
+Transitive.T [in Combi.Basic.congr]
+Transp.Alph [in Combi.Combi.std]
+Transp.disp [in Combi.Combi.std]
+Transp.T [in Combi.SymGroup.presentSn]
+TriangularInv.disp [in Combi.Basic.unitriginv]
+TriangularInv.M [in Combi.Basic.unitriginv]
+TriangularInv.Munitrig [in Combi.Basic.unitriginv]
+TriangularInv.R [in Combi.Basic.unitriginv]
+TriangularInv.T [in Combi.Basic.unitriginv]
+TrivISeq.T [in Combi.LRrule.Greene]
+

U

+UnionPart.k [in Combi.Combi.partition]
+UnionPart.l [in Combi.Combi.partition]
+UnionPart.m [in Combi.Combi.partition]
+UnionPart.n [in Combi.Combi.partition]
+UniqFinType.P [in Combi.Basic.combclass]
+UniqFinType.subenum [in Combi.Basic.combclass]
+UniqFinType.subenumE [in Combi.Basic.combclass]
+UniqFinType.subenum_uniq [in Combi.Basic.combclass]
+UniqFinType.T [in Combi.Basic.combclass]
+UniqFinType.TP [in Combi.Basic.combclass]
+UniTriangular.disp [in Combi.Basic.unitriginv]
+UniTriangular.R [in Combi.Basic.unitriginv]
+UniTriangular.T [in Combi.Basic.unitriginv]
+

V

+VandermondeDet.n [in Combi.MPoly.antisym]
+VandermondeDet.R [in Combi.MPoly.antisym]
+Vanprod.abound [in Combi.MPoly.antisym]
+Vanprod.n [in Combi.MPoly.antisym]
+Vanprod.R [in Combi.MPoly.antisym]
+Vanprod.rbound [in Combi.MPoly.antisym]
+Vector.d [in Combi.MPoly.homogsym]
+Vector.n0 [in Combi.MPoly.homogsym]
+Vector.R [in Combi.MPoly.homogsym]
+

W

+WeakOrder.Def.n0 [in Combi.SymGroup.weak_order]
+WeakOrder.Exports.WeakOrder.n0 [in Combi.SymGroup.weak_order]
+

Y

+YamOfEval.ev [in Combi.Combi.Yamanouchi]
+YamOfSize.n [in Combi.Combi.Yamanouchi]
+YoungIrrDef.n [in Combi.SymGroup.Frobenius_char]
+


+

Library Index

+

A

+antisym
+

B

+bintree
+

C

+Cauchy
+Ccpo
+combclass
+composition
+congr
+cycles
+cycletype
+

D

+Dyckword
+

E

+Erdos_Szekeres
+extract
+

F

+fibered_set
+freeSchur
+Frobenius_char
+Frobenius_ident
+

G

+Greene
+Greene_inv
+

H

+homogsym
+hook
+

I

+implem
+

M

+Misc
+multinomial
+MurnaghanNakayama
+

O

+ordcast
+ordtree
+ordtype
+

P

+partition
+permcent
+permcomp
+permuted
+plactic
+presentSn
+

Q

+Qmeasure
+

R

+reprSn
+

S

+Schensted
+Schur_altdef
+Schur_mpoly
+setpartition
+shuffle
+skewpart
+skewtab
+sorted
+std
+stdplact
+stdtab
+subseq
+sympoly
+

T

+tableau
+therule
+tools
+towerSn
+

U

+unitriginv
+

V

+vectNK
+

W

+weak_order
+

Y

+Yamanouchi
+Yam_plact
+


+

Lemma Index

+

A

+abelian_cycle_dec [in Combi.SymGroup.cycles]
+abelian_perm_dec [in Combi.SymGroup.cycles]
+abelian_disjoint_psupports [in Combi.SymGroup.cycles]
+addE [in Combi.LRrule.implem]
+add_corner_decr_nth [in Combi.Combi.partition]
+add_mesymK [in Combi.MPoly.Schur_altdef]
+add_mesymE [in Combi.MPoly.Schur_altdef]
+add_mpart_mesymP [in Combi.MPoly.Schur_altdef]
+add_ribbon_intpartnP [in Combi.Combi.skewpart]
+add_ribbon_intpartnE [in Combi.Combi.skewpart]
+add_ribbon_intpartn_spec [in Combi.Combi.skewpart]
+add_ribbonP [in Combi.Combi.skewpart]
+add_ribbon_onP [in Combi.Combi.skewpart]
+add_ribbon_height [in Combi.Combi.skewpart]
+add_ribbon_on_remP [in Combi.Combi.skewpart]
+allLeqCons [in Combi.Basic.ordtype]
+allLeqConsE [in Combi.Basic.ordtype]
+allLeqE [in Combi.Basic.ordtype]
+allLeqP [in Combi.Basic.ordtype]
+allLeq_to_word_tl [in Combi.Combi.stdtab]
+allLeq_to_word_hd [in Combi.Combi.stdtab]
+allLeq_is_row_rcons [in Combi.LRrule.plactic]
+allLeq_posbig [in Combi.Basic.ordtype]
+allLeq_last [in Combi.Basic.ordtype]
+allLeq_rconsK [in Combi.Basic.ordtype]
+allLeq_rev [in Combi.Basic.ordtype]
+allLeq_catE [in Combi.Basic.ordtype]
+allLeq_consK [in Combi.Basic.ordtype]
+allLtnCons [in Combi.Basic.ordtype]
+allLtnConsE [in Combi.Basic.ordtype]
+allLtnW [in Combi.Basic.ordtype]
+allLtn_std_rec [in Combi.Combi.std]
+allLtn_posbig [in Combi.Basic.ordtype]
+allLtn_last [in Combi.Basic.ordtype]
+allLtn_rconsK [in Combi.Basic.ordtype]
+allLtn_rev [in Combi.Basic.ordtype]
+allLtn_catE [in Combi.Basic.ordtype]
+allLtn_consK [in Combi.Basic.ordtype]
+allLtn_notin [in Combi.Basic.ordtype]
+all_leqzip_refl [in Combi.Combi.bintree]
+all_in_shuffler [in Combi.LRrule.shuffle]
+all_in_shufflel [in Combi.LRrule.shuffle]
+all_size_shuffle [in Combi.LRrule.shuffle]
+all_allLtn_cat [in Combi.Combi.skewtab]
+all_ltn_nth_tabsh [in Combi.Combi.tableau]
+all_permuted [in Combi.Combi.permuted]
+all_unionP [in Combi.Basic.combclass]
+all_subenum [in Combi.Basic.combclass]
+all_partsums [in Combi.Combi.composition]
+alt_add1_0 [in Combi.MPoly.antisym]
+alt_alternate [in Combi.MPoly.antisym]
+alt_rho_non0 [in Combi.MPoly.antisym]
+alt_uniq_non0 [in Combi.MPoly.antisym]
+alt_detE [in Combi.MPoly.antisym]
+alt_anti [in Combi.MPoly.antisym]
+alt_homog [in Combi.MPoly.antisym]
+alt_straight_add_ribbon [in Combi.MPoly.Schur_altdef]
+alt_straight_add_ribbon0 [in Combi.MPoly.Schur_altdef]
+alt_straight_step [in Combi.MPoly.Schur_altdef]
+alt_uniq [in Combi.MPoly.Schur_altdef]
+alt_SchurE [in Combi.MPoly.Schur_altdef]
+alt_mpart_syme [in Combi.MPoly.Schur_altdef]
+alt_syme [in Combi.MPoly.Schur_altdef]
+antisym_submod_closed [in Combi.MPoly.antisym]
+antisym_zmod [in Combi.MPoly.antisym]
+antisym_smalln [in Combi.MPoly.antisym]
+antisym_pchar2 [in Combi.MPoly.antisym]
+antisym_key [in Combi.MPoly.antisym]
+anti_anti [in Combi.MPoly.antisym]
+append_nth_conj_tab [in Combi.Combi.stdtab]
+append_nth_injl [in Combi.Combi.stdtab]
+append_nth_remn [in Combi.Combi.stdtab]
+app2_simpl [in ALEA.Ccpo]
+arm_length_incr_nth_nrow [in Combi.HookFormula.hook]
+arm_length_incr_nth_row [in Combi.HookFormula.hook]
+arm_length_corner_box [in Combi.HookFormula.hook]
+arm_length_ltl [in Combi.HookFormula.hook]
+arm_length_ler [in Combi.HookFormula.hook]
+auxbijP [in Combi.LRrule.Yam_plact]
+auxbij_inj [in Combi.LRrule.Yam_plact]
+

B

+bal_of_DyckK [in Combi.Combi.Dyckword]
+bal_of_DyckP [in Combi.Combi.Dyckword]
+basis_homsym [in Combi.MPoly.homogsym]
+behead_hookpartn [in Combi.Combi.partition]
+behead_incr_nth [in Combi.LRrule.Schensted]
+belast_behead_rcons [in Combi.SSRcomplements.tools]
+beq_nat_neq [in ALEA.Misc]
+bigcup_seq_cover [in Combi.LRrule.Greene]
+bigop_trivIseq [in Combi.LRrule.Greene]
+big_mxvec_index [in Combi.MPoly.Cauchy]
+big_seq_sub [in Combi.SSRcomplements.tools]
+big_enum_box_in [in Combi.Combi.partition]
+big_enum_box_skew [in Combi.Combi.partition]
+big_box_skew2 [in Combi.Combi.partition]
+big_box_skew [in Combi.Combi.partition]
+big_subseqs_undup_cond [in Combi.Combi.subseq]
+big_subseqs_undup [in Combi.Combi.subseq]
+big_subseqs_cons_cond [in Combi.Combi.subseq]
+big_subseqs_cons [in Combi.Combi.subseq]
+big_subseqs0 [in Combi.Combi.subseq]
+big_subseqs_cond [in Combi.Combi.subseq]
+big_subseqs [in Combi.Combi.subseq]
+bijLRyamP [in Combi.LRrule.therule]
+bijLR_image [in Combi.LRrule.therule]
+bijLR_inj [in Combi.LRrule.therule]
+bijLR_surj [in Combi.LRrule.therule]
+bijLR_LRsupport [in Combi.LRrule.therule]
+bijRS [in Combi.LRrule.Schensted]
+bijRStab [in Combi.LRrule.Schensted]
+bij_LRsupportP [in Combi.LRrule.freeSchur]
+binomial_sumn_iota [in Combi.SSRcomplements.tools]
+bintreeszP [in Combi.Combi.bintree]
+bintree_of_join_Dyck [in Combi.Combi.Dyckword]
+bintree_of_nil_Dyck [in Combi.Combi.Dyckword]
+bintree_of_DyckK [in Combi.Combi.Dyckword]
+bintree_of_Dyck_spec [in Combi.Combi.Dyckword]
+bin_to_ordtreeK [in Combi.Combi.ordtree]
+bin_to_forestK [in Combi.Combi.ordtree]
+bisimul_instab [in Combi.LRrule.plactic]
+boolRP [in Combi.MPoly.sympoly]
+bool_of_braceK [in Combi.Combi.Dyckword]
+BoxIn_subproof [in Combi.Combi.partition]
+box_in_incr_nth [in Combi.Combi.partition]
+box_inP [in Combi.Combi.partition]
+box_skewP [in Combi.Combi.partition]
+brace_of_boolK [in Combi.Combi.Dyckword]
+braidCP [in Combi.SymGroup.presentSn]
+braidredE [in Combi.SymGroup.presentSn]
+braidred_size_decr [in Combi.SymGroup.presentSn]
+braidred_to_canword [in Combi.SymGroup.presentSn]
+braidred_inscode_path [in Combi.SymGroup.presentSn]
+braidred_catl [in Combi.SymGroup.presentSn]
+braidrule_homog [in Combi.SymGroup.presentSn]
+braidrule_sym [in Combi.SymGroup.presentSn]
+braidww [in Combi.SymGroup.presentSn]
+braid_to_canword [in Combi.SymGroup.presentSn]
+braid_ltn_lineC [in Combi.SymGroup.presentSn]
+braid_pred_lineC [in Combi.SymGroup.presentSn]
+braid_reduced [in Combi.SymGroup.presentSn]
+braid_prods [in Combi.SymGroup.presentSn]
+braid_rev [in Combi.SymGroup.presentSn]
+braid_is_congr [in Combi.SymGroup.presentSn]
+braid_trans [in Combi.SymGroup.presentSn]
+braid_ltrans [in Combi.SymGroup.presentSn]
+braid_sym [in Combi.SymGroup.presentSn]
+braid_refl [in Combi.SymGroup.presentSn]
+braid_equiv [in Combi.SymGroup.presentSn]
+braid_abaP [in Combi.SymGroup.presentSn]
+Builders_6.isotop [in Combi.Combi.composition]
+Builders_1.isobottom [in Combi.Combi.composition]
+bumped_lt [in Combi.LRrule.plactic]
+bumprowinvK [in Combi.LRrule.Schensted]
+bumprow_rcons [in Combi.LRrule.Schensted]
+bumprow_count [in Combi.LRrule.Schensted]
+bumprow_size [in Combi.LRrule.Schensted]
+bump_dominateK [in Combi.LRrule.Schensted]
+bump_dominate [in Combi.LRrule.Schensted]
+bump_bumprowE [in Combi.LRrule.Schensted]
+bump_tail [in Combi.LRrule.Schensted]
+bump_nil [in Combi.LRrule.Schensted]
+bump_size_ins [in Combi.LRrule.Schensted]
+bump_inspos_lt_size [in Combi.LRrule.Schensted]
+bump_insposE [in Combi.LRrule.Schensted]
+bump_mininspredE [in Combi.LRrule.Schensted]
+bump_bumprow_rconsE [in Combi.LRrule.plactic]
+

C

+canporbitE [in Combi.SymGroup.cycletype]
+canporbitP [in Combi.SymGroup.cycletype]
+canporbit_cymap [in Combi.SymGroup.cycletype]
+canwordE [in Combi.SymGroup.presentSn]
+canwordP [in Combi.SymGroup.presentSn]
+canword_eltr [in Combi.SymGroup.presentSn]
+canword_path_npos [in Combi.SymGroup.presentSn]
+canword_straightenE [in Combi.SymGroup.presentSn]
+canword_reduced [in Combi.SymGroup.presentSn]
+canword1 [in Combi.SymGroup.presentSn]
+card_class_of_part [in Combi.SymGroup.permcent]
+card_class_perm [in Combi.SymGroup.permcent]
+card_cent1_perm [in Combi.SymGroup.permcent]
+card_stab_iporbits [in Combi.SymGroup.permcent]
+card_porbitgrpE [in Combi.SymGroup.permcent]
+card_stdwordn [in Combi.Combi.std]
+card_box_in [in Combi.Combi.partition]
+card_box_skew [in Combi.Combi.partition]
+card_intpartn [in Combi.Combi.partition]
+card_bintreesz [in Combi.Combi.bintree]
+card_seq [in Combi.LRrule.Greene]
+card_eq_eval [in Combi.MPoly.Schur_altdef]
+card_setdiff [in Combi.MPoly.Schur_altdef]
+card_stdtabsh_rat_rec [in Combi.HookFormula.hook]
+card_yam_stdtabE [in Combi.HookFormula.hook]
+card_yama0 [in Combi.HookFormula.hook]
+card_yama_rec [in Combi.HookFormula.hook]
+card_LRtab_set_shapeE [in Combi.LRrule.freeSchur]
+card_LRtab_set_leq [in Combi.LRrule.freeSchur]
+card_Dyck_hsz [in Combi.Combi.Dyckword]
+card_bal_Dyck_hsz [in Combi.Combi.Dyckword]
+card_preim_Dyck_of_bal [in Combi.Combi.Dyckword]
+card_bal_hsz [in Combi.Combi.Dyckword]
+card_bintreesz_dyck [in Combi.Combi.Dyckword]
+card_preim_nth [in Combi.Combi.Dyckword]
+card_preim_partition [in Combi.Combi.Dyckword]
+card_stdtabsh_conj_part [in Combi.Combi.stdtab]
+card_classes_perm [in Combi.SymGroup.cycletype]
+card_classCT_neq0 [in Combi.SymGroup.cycletype]
+card_psupport_conjg [in Combi.SymGroup.cycletype]
+card_pred_card_porbits [in Combi.SymGroup.cycletype]
+card_psupport_noteq1 [in Combi.SymGroup.cycles]
+card_ordtreesz [in Combi.Combi.ordtree]
+card_stpn_shape_hook [in Combi.HookFormula.Frobenius_ident]
+card_stpn_shape [in Combi.HookFormula.Frobenius_ident]
+card_preim_part_of_compn [in Combi.Combi.permuted]
+card_permuted_multinomial_subset [in Combi.Combi.permuted]
+card_permuted_multinomial [in Combi.Combi.permuted]
+card_permuted [in Combi.Combi.permuted]
+card_permuted_seq_sub [in Combi.Combi.permuted]
+card_permuted_prod [in Combi.Combi.permuted]
+card_stab_tuple [in Combi.Combi.permuted]
+card_Delta [in Combi.SymGroup.presentSn]
+card_codesz [in Combi.SymGroup.presentSn]
+card_unionE [in Combi.Basic.combclass]
+card_subE [in Combi.Basic.combclass]
+card_descset [in Combi.Combi.composition]
+card_intcompn [in Combi.Combi.composition]
+cast_conj_inpart [in Combi.Combi.partition]
+cast_intpartn_bij [in Combi.Combi.partition]
+cast_intpartn_inj [in Combi.Combi.partition]
+cast_intpartnKV [in Combi.Combi.partition]
+cast_intpartnK [in Combi.Combi.partition]
+cast_intpartn_id [in Combi.Combi.partition]
+cast_intpartnE [in Combi.Combi.partition]
+cast_enum [in Combi.LRrule.stdplact]
+cast_set_inj [in Combi.SSRcomplements.ordcast]
+cast_map_cond [in Combi.SSRcomplements.ordcast]
+cast_lshift [in Combi.SymGroup.towerSn]
+cast_rshift [in Combi.SymGroup.towerSn]
+cast_cycle_typeSN [in Combi.SymGroup.cycletype]
+cast_IirrS2 [in Combi.SymGroup.reprSn]
+Catalan_binS [in Combi.Combi.bintree]
+Catalan_bin0 [in Combi.Combi.bintree]
+Catalan_bin_leqE [in Combi.Combi.bintree]
+Catalan_binE [in Combi.Combi.Dyckword]
+catlangM [in Combi.LRrule.freeSchur]
+catleft_rotations [in Combi.Combi.bintree]
+cat_leftA [in Combi.Combi.bintree]
+cat_left_Node [in Combi.Combi.bintree]
+cat_leftt0 [in Combi.Combi.bintree]
+cat_left0t [in Combi.Combi.bintree]
+cat_tuple_inj [in Combi.LRrule.freeSchur]
+cat3_equiv_cut3 [in Combi.Combi.vectNK]
+Cauchy_homsymp_zhomsymp [in Combi.MPoly.Cauchy]
+Cauchy_kernel_coeff_homog [in Combi.MPoly.Cauchy]
+Cauchy_kernel_coeff_symmetric [in Combi.MPoly.Cauchy]
+Cauchy_kernel_symmetric [in Combi.MPoly.Cauchy]
+Cauchy_homsyms_homsyms [in Combi.MPoly.Cauchy]
+Cauchy_homsymm_homsymh [in Combi.MPoly.Cauchy]
+Cauchy_symm_symh [in Combi.MPoly.Cauchy]
+Cauchy_kernel_dhomog [in Combi.MPoly.Cauchy]
+cent1_permE [in Combi.SymGroup.permcent]
+cent1_stab_iporbit_porbitgrpS [in Combi.SymGroup.permcent]
+cent1_act_on_iporbits [in Combi.SymGroup.permcent]
+cent1_act_on_porbits [in Combi.SymGroup.permcent]
+cent1_act_porbit [in Combi.SymGroup.permcent]
+cfdotr_ncfuniCT [in Combi.SymGroup.towerSn]
+cfdot_Ind_ncfuniCT [in Combi.SymGroup.towerSn]
+cfdot_Ind_cfuniCT [in Combi.SymGroup.towerSn]
+cfdot_classfun_part [in Combi.SymGroup.towerSn]
+cfdot_is_dot [in Combi.SymGroup.Frobenius_char]
+cfdot_is_hermitian [in Combi.SymGroup.Frobenius_char]
+cfdot_is_bilinear [in Combi.SymGroup.Frobenius_char]
+cfextprodBl [in Combi.SymGroup.towerSn]
+cfextprodBr [in Combi.SymGroup.towerSn]
+cfextprodDl [in Combi.SymGroup.towerSn]
+cfextprodDr [in Combi.SymGroup.towerSn]
+cfextprodMnl [in Combi.SymGroup.towerSn]
+cfextprodMnr [in Combi.SymGroup.towerSn]
+cfextprodNl [in Combi.SymGroup.towerSn]
+cfextprodNr [in Combi.SymGroup.towerSn]
+cfextprodZl [in Combi.SymGroup.towerSn]
+cfextprodZr [in Combi.SymGroup.towerSn]
+cfextprod_cfuni [in Combi.SymGroup.towerSn]
+cfextprod_char [in Combi.SymGroup.towerSn]
+cfextprod_suml [in Combi.SymGroup.towerSn]
+cfextprod_sumr [in Combi.SymGroup.towerSn]
+cfextprod_is_bilinear [in Combi.SymGroup.towerSn]
+cfextprod_subproof [in Combi.SymGroup.towerSn]
+cfextprod0l [in Combi.SymGroup.towerSn]
+cfextprod0r [in Combi.SymGroup.towerSn]
+cfRepr_extprod [in Combi.SymGroup.towerSn]
+cfRepr_sign2 [in Combi.SymGroup.reprSn]
+cfRepr_signed [in Combi.SymGroup.reprSn]
+cfRepr_sign [in Combi.SymGroup.reprSn]
+cfRepr_trivE [in Combi.SymGroup.reprSn]
+cfRepr_triv [in Combi.SymGroup.reprSn]
+cfRepr1_lin_char [in Combi.SymGroup.reprSn]
+cfuniCTE [in Combi.SymGroup.cycletype]
+cfuniCTnE [in Combi.SymGroup.cycletype]
+cfuni_Res [in Combi.SymGroup.towerSn]
+cfuni_tinj [in Combi.SymGroup.towerSn]
+changeTdropP [in Combi.LRrule.freeSchur]
+changeTtakeP [in Combi.LRrule.freeSchur]
+changeUdropP [in Combi.LRrule.freeSchur]
+changeUtakeP [in Combi.LRrule.freeSchur]
+changeUTK [in Combi.LRrule.freeSchur]
+charfun_simplr [in Combi.HookFormula.hook]
+charfun_simpll [in Combi.HookFormula.hook]
+charSG0 [in Combi.SymGroup.reprSn]
+charSG1 [in Combi.SymGroup.reprSn]
+char_mpoly [in Combi.MPoly.antisym]
+choose_one_countE [in Combi.LRrule.implem]
+classCTP [in Combi.SymGroup.cycletype]
+classCT_inj [in Combi.SymGroup.cycletype]
+classes_of_permP [in Combi.SymGroup.cycletype]
+classXE [in Combi.SymGroup.towerSn]
+classXI [in Combi.SymGroup.towerSn]
+class_disj [in Combi.SymGroup.towerSn]
+class_double_neg [in ALEA.Misc]
+class_exc [in ALEA.Misc]
+class_and [in ALEA.Misc]
+class_orc [in ALEA.Misc]
+class_false [in ALEA.Misc]
+class_neg [in ALEA.Misc]
+class_braid1 [in Combi.SymGroup.presentSn]
+cnvarhomsyme [in Combi.MPoly.homogsym]
+cnvarhomsymh [in Combi.MPoly.homogsym]
+cnvarhomsymm [in Combi.MPoly.homogsym]
+cnvarhomsymp [in Combi.MPoly.homogsym]
+cnvarhomsyms [in Combi.MPoly.homogsym]
+cnvarhomsym_is_linear [in Combi.MPoly.homogsym]
+cnvarhomsym_subproof [in Combi.MPoly.homogsym]
+cnvarsym_geq_trans [in Combi.MPoly.sympoly]
+cnvarsym_leq_trans [in Combi.MPoly.sympoly]
+cnvarsym_id [in Combi.MPoly.sympoly]
+cnvarsym_is_monoid_morphism [in Combi.MPoly.sympoly]
+cnvarsym_is_linear [in Combi.MPoly.sympoly]
+cnvarsym_subproof [in Combi.MPoly.sympoly]
+cnvar_symm [in Combi.MPoly.sympoly]
+cnvar_syms [in Combi.MPoly.sympoly]
+cnvar_prodsymp [in Combi.MPoly.sympoly]
+cnvar_prodsymh [in Combi.MPoly.sympoly]
+cnvar_prodsyme [in Combi.MPoly.sympoly]
+cnvar_prodgen [in Combi.MPoly.sympoly]
+cnvar_symp [in Combi.MPoly.sympoly]
+cnvar_symh [in Combi.MPoly.sympoly]
+cnvar_syme [in Combi.MPoly.sympoly]
+cnvar_leq_symeE [in Combi.MPoly.sympoly]
+cocodeE [in Combi.SymGroup.presentSn]
+cocodeP [in Combi.SymGroup.presentSn]
+cocode_straightenE [in Combi.SymGroup.presentSn]
+cocode_rec_cat [in Combi.SymGroup.presentSn]
+cocode2P [in Combi.SymGroup.presentSn]
+codeszP [in Combi.SymGroup.presentSn]
+code_ltn_size [in Combi.SymGroup.presentSn]
+coeffXdiff [in Combi.MPoly.antisym]
+coeff_prodXdiff [in Combi.MPoly.antisym]
+coeff_symh_to_symp [in Combi.MPoly.sympoly]
+coeff_prodgen_cast [in Combi.MPoly.sympoly]
+colcompnP [in Combi.Combi.composition]
+colpartnE [in Combi.Combi.partition]
+colpartnP [in Combi.Combi.partition]
+colpartn_subproof [in Combi.Combi.partition]
+commtuple_morph [in Combi.LRrule.freeSchur]
+commute_cyclic [in Combi.SymGroup.permcent]
+commword_morph [in Combi.LRrule.freeSchur]
+compS [in ALEA.Misc]
+CompSpec_rect [in ALEA.Misc]
+comp_symbe [in Combi.MPoly.homogsym]
+comp_monotonic_left [in ALEA.Ccpo]
+comp_monotonic_right [in ALEA.Ccpo]
+comp_simpl [in ALEA.Ccpo]
+comp0 [in ALEA.Misc]
+comp0 [in Combi.Combi.composition]
+congrruleP [in Combi.Basic.congr]
+congrrule_sym [in Combi.Basic.congr]
+congrrule_invar [in Combi.Basic.congr]
+congrrule_is_congr [in Combi.Basic.congr]
+congr_RS [in Combi.LRrule.plactic]
+congr_bump [in Combi.LRrule.plactic]
+congr_row_2 [in Combi.LRrule.plactic]
+congr_row_1 [in Combi.LRrule.plactic]
+congr_cat [in Combi.Basic.congr]
+congr_catr [in Combi.Basic.congr]
+congr_catl [in Combi.Basic.congr]
+congr_rcons [in Combi.Basic.congr]
+congr_cons [in Combi.Basic.congr]
+conjbijK [in Combi.SymGroup.cycletype]
+conjbijP [in Combi.SymGroup.cycletype]
+conjg_porbits_homog [in Combi.SymGroup.cycletype]
+conjg_porbits_stab [in Combi.SymGroup.cycletype]
+conjg_cycle [in Combi.SymGroup.cycletype]
+conj_porbitgrp [in Combi.SymGroup.permcent]
+conj_hookpartn [in Combi.Combi.partition]
+conj_colpartn [in Combi.Combi.partition]
+conj_rowpartn [in Combi.Combi.partition]
+conj_intpartnK [in Combi.Combi.partition]
+conj_intpartnP [in Combi.Combi.partition]
+conj_intpartK [in Combi.Combi.partition]
+conj_leqE [in Combi.Combi.partition]
+conj_ltnE [in Combi.Combi.partition]
+conj_part_incr_nth [in Combi.Combi.partition]
+conj_partK [in Combi.Combi.partition]
+conj_part_ind [in Combi.Combi.partition]
+conj_nseq [in Combi.Combi.partition]
+conj_stdtabsh_bij [in Combi.Combi.stdtab]
+conj_stdtabshP [in Combi.Combi.stdtab]
+conj_stdtabnP [in Combi.Combi.stdtab]
+conj_tabK [in Combi.Combi.stdtab]
+conj_tab_shapeK [in Combi.Combi.stdtab]
+conj_permP [in Combi.SymGroup.cycletype]
+connect_from_sym [in Combi.Combi.skewpart]
+connect_rev [in Combi.Combi.skewpart]
+conn4_sym [in Combi.Combi.skewpart]
+cons_in_map_cons [in Combi.SSRcomplements.tools]
+cons_head_behead [in Combi.SSRcomplements.tools]
+cons_TamariP [in Combi.Combi.bintree]
+continuous_comp [in ALEA.Ccpo]
+continuous_sym [in ALEA.Ccpo]
+continuous_continuous2 [in ALEA.Ccpo]
+continuous_eq_compat [in ALEA.Ccpo]
+continuous2_app2 [in ALEA.Ccpo]
+continuous2_comp2 [in ALEA.Ccpo]
+continuous2_comp [in ALEA.Ccpo]
+continuous2_sym [in ALEA.Ccpo]
+continuous2_right [in ALEA.Ccpo]
+continuous2_left [in ALEA.Ccpo]
+continuous2_continuous [in ALEA.Ccpo]
+continuous2_eq_compat [in ALEA.Ccpo]
+continuous2_app [in ALEA.Ccpo]
+cont_app_simpl [in ALEA.Ccpo]
+coord_zsymspsp [in Combi.MPoly.Cauchy]
+coord_zsympsps [in Combi.MPoly.Cauchy]
+coord_symbp [in Combi.MPoly.homogsym]
+coord_symbs [in Combi.MPoly.homogsym]
+coord_symbh [in Combi.MPoly.homogsym]
+coord_symbe [in Combi.MPoly.homogsym]
+coord_symbm [in Combi.MPoly.homogsym]
+coord_map_homsym [in Combi.MPoly.homogsym]
+corner_hook_length1 [in Combi.HookFormula.hook]
+corner_leg_length0 [in Combi.HookFormula.hook]
+corner_arm_length0 [in Combi.HookFormula.hook]
+corner_box_conj_part [in Combi.HookFormula.hook]
+corner_box_in_part [in Combi.HookFormula.hook]
+Corollary4 [in Combi.HookFormula.hook]
+Corollary4_eq [in Combi.HookFormula.hook]
+count_mem_iota [in Combi.SSRcomplements.tools]
+count_rcons [in Combi.SSRcomplements.tools]
+count_set_of_card [in Combi.Combi.partition]
+count_mem_vect_n_k_eq_1 [in Combi.Combi.vectNK]
+count_RS [in Combi.LRrule.Schensted]
+count_instab [in Combi.LRrule.Schensted]
+count_mem_height0 [in Combi.Combi.Dyckword]
+count_gt_dominate [in Combi.Combi.tableau]
+count_mem_LRyamtab_list [in Combi.LRrule.implem]
+count_unionP [in Combi.Basic.combclass]
+coversEV [in Combi.Basic.ordtype]
+coversP [in Combi.Basic.ordtype]
+covers_Tamari [in Combi.Combi.bintree]
+covers_permP [in Combi.SymGroup.weak_order]
+covers_rind [in Combi.Basic.ordtype]
+covers_path [in Combi.Basic.ordtype]
+covers_connect [in Combi.Basic.ordtype]
+covers_ind [in Combi.Basic.ordtype]
+covers_dual [in Combi.Basic.ordtype]
+cover_iporbits [in Combi.SymGroup.permcent]
+cover_cast [in Combi.SSRcomplements.ordcast]
+cover_tabcols [in Combi.LRrule.Greene]
+cover_tabcols_rec [in Combi.LRrule.Greene]
+cover_nil [in Combi.LRrule.Greene]
+cover_setpart [in Combi.Combi.setpartition]
+co_hprXYE [in Combi.MPoly.Cauchy]
+co_hpYE [in Combi.MPoly.Cauchy]
+co_hpXY_is_zmod_morphism [in Combi.MPoly.Cauchy]
+co_hp_hp [in Combi.MPoly.Cauchy]
+co_hp_is_scalar [in Combi.MPoly.Cauchy]
+co_hp_is_zmod_morphism [in Combi.MPoly.Cauchy]
+cshift_simpl [in ALEA.Ccpo]
+CTpartnK [in Combi.SymGroup.cycletype]
+CTpartn_colpartn [in Combi.SymGroup.cycletype]
+cutcover [in Combi.LRrule.Greene]
+cut_k_flatten [in Combi.Combi.vectNK]
+cycleij_in [in Combi.SymGroup.presentSn]
+cycleij_inS [in Combi.SymGroup.presentSn]
+cycleij_gt [in Combi.SymGroup.presentSn]
+cycleij_lt [in Combi.SymGroup.presentSn]
+cycleij_j [in Combi.SymGroup.presentSn]
+cycle_type_tinjC [in Combi.SymGroup.towerSn]
+cycle_type_tinj [in Combi.SymGroup.towerSn]
+cycle_typeSn_permCT [in Combi.SymGroup.cycletype]
+cycle_typeSn1 [in Combi.SymGroup.cycletype]
+cycle_type_tpermP [in Combi.SymGroup.cycletype]
+cycle_type_tperm [in Combi.SymGroup.cycletype]
+cycle_type_eq [in Combi.SymGroup.cycletype]
+cycle_dec_conjg [in Combi.SymGroup.cycletype]
+cycle_type_cyclic [in Combi.SymGroup.cycletype]
+cycle_type_conjg [in Combi.SymGroup.cycletype]
+cycle_typeV [in Combi.SymGroup.cycletype]
+cycle_type1 [in Combi.SymGroup.cycletype]
+cycle_type_subproof [in Combi.SymGroup.cycletype]
+cycle_decP [in Combi.SymGroup.cycles]
+cycle_decE [in Combi.SymGroup.cycles]
+cycle_cyclic [in Combi.SymGroup.cycles]
+cycle_type_eltr [in Combi.SymGroup.reprSn]
+cyclicP [in Combi.SymGroup.cycles]
+cyclic_conjg [in Combi.SymGroup.cycletype]
+cyclic_dec [in Combi.SymGroup.cycles]
+cymapcan_perm [in Combi.SymGroup.cycletype]
+cymapcan_aux [in Combi.SymGroup.cycletype]
+cymapE [in Combi.SymGroup.cycletype]
+cymapK [in Combi.SymGroup.cycletype]
+cymapP [in Combi.SymGroup.cycletype]
+cymap_comp [in Combi.SymGroup.cycletype]
+cymap_id [in Combi.SymGroup.cycletype]
+

D

+decomp_cf_triv [in Combi.SymGroup.towerSn]
+decr_nth_intpartE [in Combi.Combi.partition]
+decr_nthK [in Combi.Combi.partition]
+dec_exists_lt [in ALEA.Misc]
+dec_sig_lt [in ALEA.Misc]
+DeltaP [in Combi.SymGroup.presentSn]
+del_rem_corner [in Combi.Combi.partition]
+depth_tree_eq2P [in Combi.Combi.ordtree]
+depth_tree_eq1 [in Combi.Combi.ordtree]
+depth_ordtree_pos [in Combi.Combi.ordtree]
+depth_ordtreeE [in Combi.Combi.ordtree]
+descsetK [in Combi.Combi.composition]
+descset_bij [in Combi.Combi.composition]
+descset_inj [in Combi.Combi.composition]
+det_unitrig [in Combi.Basic.unitriginv]
+dhomog_of_sym_is_linear [in Combi.MPoly.homogsym]
+diag_shift [in ALEA.Ccpo]
+diag_le_compat [in ALEA.Ccpo]
+diffX_neq0 [in Combi.MPoly.antisym]
+diff_shapeK [in Combi.Combi.partition]
+diff_shape_pad0 [in Combi.Combi.partition]
+diff_shape_eq [in Combi.Combi.partition]
+diff_nth_sumn_take [in Combi.Combi.composition]
+dim_homsym [in Combi.MPoly.homogsym]
+dim_cfReprSG [in Combi.SymGroup.Frobenius_char]
+dim_irrSG [in Combi.SymGroup.Frobenius_char]
+disjoint_psupport_dprodE [in Combi.SymGroup.permcent]
+disjoint_imset [in Combi.SSRcomplements.tools]
+disjoint_cover [in Combi.LRrule.Greene_inv]
+disjoint_inj_rec [in Combi.LRrule.Greene]
+disjoint_inj [in Combi.LRrule.Greene]
+disjoint_psupports_conjg [in Combi.SymGroup.cycletype]
+disjoint_psupports_porbits [in Combi.SymGroup.cycles]
+disjoint_psupports_cycles [in Combi.SymGroup.cycles]
+disjoint_psupports_of_decomp [in Combi.SymGroup.cycles]
+disjoint_cycle_dec [in Combi.SymGroup.cycles]
+disjoint_perm_dec [in Combi.SymGroup.cycles]
+disjoint_psupport_subset [in Combi.SymGroup.cycles]
+disj_perm_of_setpart [in Combi.SymGroup.cycletype]
+div_central_binomial [in Combi.Combi.Dyckword]
+dominant_eq [in Combi.MPoly.antisym]
+dominant_mpart [in Combi.MPoly.sympoly]
+dominateK_inspos [in Combi.LRrule.Schensted]
+dominateP [in Combi.Combi.tableau]
+dominate_inspos [in Combi.LRrule.Schensted]
+dominate_tl [in Combi.Combi.tableau]
+dominate_head [in Combi.Combi.tableau]
+dominate_cut [in Combi.Combi.tableau]
+dominate_take [in Combi.Combi.tableau]
+dominate_rcons [in Combi.Combi.tableau]
+dominate_trans [in Combi.Combi.tableau]
+dominate_recE [in Combi.Combi.tableau]
+double_lub_shift [in ALEA.Ccpo]
+double_lub_diag [in ALEA.Ccpo]
+drop_enumI [in Combi.SSRcomplements.tools]
+drop_nilE [in Combi.SSRcomplements.tools]
+dvdn_zcard_fact [in Combi.SymGroup.permcent]
+dvdn_prodfact [in Combi.Combi.multinomial]
+dvdn_card_permuted [in Combi.Combi.permuted]
+dyckE [in Combi.Combi.Dyckword]
+DyckP [in Combi.Combi.Dyckword]
+Dyck_of_balK [in Combi.Combi.Dyckword]
+Dyck_of_Dyck_hsz [in Combi.Combi.Dyckword]
+Dyck_of_balP [in Combi.Combi.Dyckword]
+Dyck_of_bintreeK [in Combi.Combi.Dyckword]
+Dyck_size_even [in Combi.Combi.Dyckword]
+Dyck_ind [in Combi.Combi.Dyckword]
+Dyck_cut_ex [in Combi.Combi.Dyckword]
+Dyck_word_OwCw [in Combi.Combi.Dyckword]
+Dyck_word_flatten [in Combi.Combi.Dyckword]
+Dyck_word_cat [in Combi.Combi.Dyckword]
+Dyck_word_OwC [in Combi.Combi.Dyckword]
+Dyck_wordP [in Combi.Combi.Dyckword]
+Dyck_prefixP [in Combi.Combi.Dyckword]
+

E

+eltrD_ord [in Combi.SymGroup.presentSn]
+eltrK [in Combi.SymGroup.presentSn]
+eltrL_ord [in Combi.SymGroup.presentSn]
+eltrpK [in Combi.MPoly.antisym]
+eltrR_ord [in Combi.SymGroup.presentSn]
+eltrV [in Combi.SymGroup.presentSn]
+eltr_conj [in Combi.SymGroup.reprSn]
+eltr_ind [in Combi.SymGroup.presentSn]
+eltr_genSn [in Combi.SymGroup.presentSn]
+eltr_exchange [in Combi.SymGroup.presentSn]
+eltr_comm [in Combi.SymGroup.presentSn]
+eltr_braid [in Combi.SymGroup.presentSn]
+eltr2 [in Combi.SymGroup.presentSn]
+empty_intpartP [in Combi.Combi.partition]
+ends_at_rem_cornerE [in Combi.HookFormula.hook]
+enumIMN [in Combi.LRrule.Greene]
+enumIsize_to_word [in Combi.LRrule.Greene]
+enum_stdwordn_uniq [in Combi.Combi.std]
+enum_stdwordnE [in Combi.Combi.std]
+enum_box_in_uniq [in Combi.Combi.partition]
+enum_box_skewE [in Combi.Combi.partition]
+enum_box_skew_uniq [in Combi.Combi.partition]
+enum_intpartnE [in Combi.Combi.partition]
+enum_partnP [in Combi.Combi.partition]
+enum_partn_countE [in Combi.Combi.partition]
+enum_partn_allP [in Combi.Combi.partition]
+enum_partnsE [in Combi.Combi.partition]
+enum_partns_countE [in Combi.Combi.partition]
+enum_partns_allP [in Combi.Combi.partition]
+enum_partnskE [in Combi.Combi.partition]
+enum_partnsk_countE [in Combi.Combi.partition]
+enum_partnsk_allP [in Combi.Combi.partition]
+enum_bintreesz_countE [in Combi.Combi.bintree]
+enum_bintreesz_uniq [in Combi.Combi.bintree]
+enum_bintreeszP [in Combi.Combi.bintree]
+enum_bintreeszE [in Combi.Combi.bintree]
+enum_bintreesz0 [in Combi.Combi.bintree]
+enum_bintreesz_leqE [in Combi.Combi.bintree]
+enum_bintreesz_leq_leqE [in Combi.Combi.bintree]
+enum_cast_ord [in Combi.SSRcomplements.ordcast]
+enum_traceP [in Combi.HookFormula.hook]
+enum_trace_uniq [in Combi.HookFormula.hook]
+enum_stdtabshE [in Combi.Combi.stdtab]
+enum_subseqsE [in Combi.Combi.subseq]
+enum_ord_sorted [in Combi.SSRcomplements.sorted]
+enum_ord_sorted_ltn [in Combi.SSRcomplements.sorted]
+enum_ordtreesz_countE [in Combi.Combi.ordtree]
+enum_ordtreesz_uniq [in Combi.Combi.ordtree]
+enum_ordtreeszP [in Combi.Combi.ordtree]
+enum_yamnE [in Combi.Combi.Yamanouchi]
+enum_yamevalE [in Combi.Combi.Yamanouchi]
+enum_yameval_countE [in Combi.Combi.Yamanouchi]
+enum_yamevalP [in Combi.Combi.Yamanouchi]
+enum_setpart_set1 [in Combi.Combi.setpartition]
+enum_setpart_set0 [in Combi.Combi.setpartition]
+enum_codeszE [in Combi.SymGroup.presentSn]
+enum_codesz_countE [in Combi.SymGroup.presentSn]
+enum_codeszP [in Combi.SymGroup.presentSn]
+enum_unionE [in Combi.Basic.combclass]
+enum_sub_undupE [in Combi.Basic.combclass]
+enum_subE [in Combi.Basic.combclass]
+enum_intcompnE [in Combi.Combi.composition]
+enum_compnP [in Combi.Combi.composition]
+enum_compn_countE [in Combi.Combi.composition]
+enum_compn_allP [in Combi.Combi.composition]
+enum_compnE [in Combi.Combi.composition]
+enum_compn_any [in Combi.Combi.composition]
+enum_compn_rec_any [in Combi.Combi.composition]
+enum0 [in Combi.SSRcomplements.tools]
+eqevalP [in Combi.MPoly.Schur_altdef]
+equivalence_partitionE [in Combi.Combi.setpartition]
+equiv_rtrans [in Combi.Basic.congr]
+equi_fbbij [in Combi.Combi.fibered_set]
+eq_inv_transp [in Combi.Combi.std]
+eq_inv_catr [in Combi.Combi.std]
+eq_inv_catl [in Combi.Combi.std]
+eq_inv_std [in Combi.Combi.std]
+eq_inv_rembig [in Combi.Combi.std]
+eq_inv_posbig [in Combi.Combi.std]
+eq_inv_allgtnX [in Combi.Combi.std]
+eq_inv_allgt_imply [in Combi.Combi.std]
+eq_inv_rconsK [in Combi.Combi.std]
+eq_inv_consK [in Combi.Combi.std]
+eq_inv_inversionP [in Combi.Combi.std]
+eq_invP [in Combi.Combi.std]
+eq_inv_size [in Combi.Combi.std]
+eq_inv_trans [in Combi.Combi.std]
+eq_inv_sym [in Combi.Combi.std]
+eq_inv_nil [in Combi.Combi.std]
+eq_inv_refl [in Combi.Combi.std]
+eq_from_nth_notin [in Combi.SSRcomplements.tools]
+eq_bintreeP [in Combi.Combi.bintree]
+eq_inv_is_skew_tableau_reshape [in Combi.Combi.skewtab]
+eq_inv_is_skew_tableau_reshape_size [in Combi.Combi.skewtab]
+eq_inv_skew_dominate [in Combi.Combi.skewtab]
+eq_Greene_rel [in Combi.LRrule.Greene]
+eq_Greene_rel_t [in Combi.LRrule.Greene]
+eq_from_shape_get_tab [in Combi.Combi.stdtab]
+eq_inv_is_row [in Combi.Combi.stdtab]
+eq_ord_equiv [in ALEA.Ccpo]
+eq_in_porbit [in Combi.SymGroup.cycles]
+eq_ordtreeP [in Combi.Combi.ordtree]
+eq_interv_part [in Combi.Combi.skewpart]
+eq_seqE [in Combi.Combi.permuted]
+eq_mnm1 [in Combi.MPoly.sympoly]
+Erdos_Szekeres [in Combi.Erdos_Szekeres.Erdos_Szekeres]
+er_eqE [in Combi.MPoly.homogsym]
+Esym [in Combi.MPoly.homogsym]
+esympolyf_eval_is_monoid_morphism [in Combi.MPoly.sympoly]
+esympolyf_eval_is_linear [in Combi.MPoly.sympoly]
+evalE [in Combi.MPoly.Schur_altdef]
+evalseq_hyper_yam [in Combi.Combi.Yamanouchi]
+evalseq_decr_yam [in Combi.Combi.Yamanouchi]
+evalseq_eq_size [in Combi.Combi.Yamanouchi]
+evalseq_cons [in Combi.Combi.Yamanouchi]
+evalseq_countE [in Combi.Combi.Yamanouchi]
+evalseq0 [in Combi.Combi.Yamanouchi]
+evalXY_homog [in Combi.MPoly.Cauchy]
+evalXY_XE [in Combi.MPoly.Cauchy]
+evalXY_is_linear [in Combi.MPoly.Cauchy]
+evalXY_is_monoid_morphism [in Combi.MPoly.Cauchy]
+evalXY_is_zmod_morphism [in Combi.MPoly.Cauchy]
+eval_ext_tab [in Combi.MPoly.Schur_altdef]
+eval_res_tab [in Combi.MPoly.Schur_altdef]
+eval_yameval [in Combi.Combi.Yamanouchi]
+Example1.all_isOne [in Combi.Basic.combclass]
+Example1.card_isOne [in Combi.Basic.combclass]
+Example1.enum_isOne [in Combi.Basic.combclass]
+Example1.isOne_count_1 [in Combi.Basic.combclass]
+Example2.all_isoneE [in Combi.Basic.combclass]
+Example2.card_isOne [in Combi.Basic.combclass]
+Example2.enum_isOne [in Combi.Basic.combclass]
+Example2.isOne_uniq [in Combi.Basic.combclass]
+Example3.all_isOne [in Combi.Basic.combclass]
+Example3.card_isOne [in Combi.Basic.combclass]
+Example3.enum_isOne [in Combi.Basic.combclass]
+Example3.isOne_in [in Combi.Basic.combclass]
+excluded_middle [in ALEA.Misc]
+exc_intro_class [in ALEA.Misc]
+exc_intro [in ALEA.Misc]
+exists_minh [in Combi.Combi.Dyckword]
+exist_size_Sch [in Combi.LRrule.Schensted]
+expand_prod_add1_seq [in Combi.HookFormula.hook]
+expg_tinj_rshift [in Combi.SymGroup.towerSn]
+expg_tinj_lshift [in Combi.SymGroup.towerSn]
+expg_prod_of_disjoint [in Combi.SymGroup.cycles]
+expri2 [in Combi.MPoly.sympoly]
+expUmpartE [in Combi.MPoly.sympoly]
+expUmpartNE [in Combi.MPoly.sympoly]
+exp1sumnDsize [in Combi.MPoly.sympoly]
+extlsplit [in Combi.LRrule.Greene]
+extprod_mx_repr_subproof [in Combi.SymGroup.towerSn]
+extractIE [in Combi.LRrule.Greene]
+extractmaskE [in Combi.LRrule.Greene]
+extractS [in Combi.LRrule.Greene]
+extract_rev_set [in Combi.LRrule.Greene_inv]
+extract_cut [in Combi.LRrule.Greene_inv]
+extract_tabcols_rec [in Combi.LRrule.Greene]
+extract_tabrows_rec [in Combi.LRrule.Greene]
+extract_tabrows_0 [in Combi.LRrule.Greene]
+extract0 [in Combi.LRrule.Greene]
+extract1 [in Combi.LRrule.Greene]
+extract2 [in Combi.LRrule.Greene]
+extrsplit [in Combi.LRrule.Greene]
+extsubsI [in Combi.LRrule.Greene]
+extsubsIm [in Combi.LRrule.Greene]
+extsubsm [in Combi.LRrule.Greene]
+ext_tab_inj [in Combi.MPoly.Schur_altdef]
+ext_tabK [in Combi.MPoly.Schur_altdef]
+ext_tab_subproof [in Combi.MPoly.Schur_altdef]
+ex_set_setpart_shape [in Combi.Combi.partition]
+ex_setpart_shape [in Combi.Combi.partition]
+ex_subset_card [in Combi.Combi.partition]
+ex_dropeq [in Combi.Combi.skewpart]
+

F

+factor_Dyck_seq [in Combi.Combi.Dyckword]
+factor_Dyck [in Combi.Combi.Dyckword]
+famYinv_subproof [in Combi.MPoly.Cauchy]
+famY_bij [in Combi.MPoly.Cauchy]
+famY_subproof [in Combi.MPoly.Cauchy]
+fbbijK [in Combi.Combi.fibered_set]
+fbbijP [in Combi.Combi.fibered_set]
+fbbij_in_fiber [in Combi.Combi.fibered_set]
+fbset_fbbij [in Combi.Combi.fibered_set]
+FcharE [in Combi.SymGroup.Frobenius_char]
+FcharK [in Combi.SymGroup.Frobenius_char]
+FcharNvar [in Combi.SymGroup.Frobenius_char]
+Fchar_irrSGE [in Combi.SymGroup.Frobenius_char]
+Fchar_ind_morph [in Combi.SymGroup.Frobenius_char]
+Fchar_inv_isometry [in Combi.SymGroup.Frobenius_char]
+Fchar_isometry [in Combi.SymGroup.Frobenius_char]
+Fchar_sign [in Combi.SymGroup.Frobenius_char]
+Fchar_inv_homsymp [in Combi.SymGroup.Frobenius_char]
+Fchar_triv [in Combi.SymGroup.Frobenius_char]
+Fchar_invK [in Combi.SymGroup.Frobenius_char]
+Fchar_inv_is_linear [in Combi.SymGroup.Frobenius_char]
+Fchar_ncfuniCT [in Combi.SymGroup.Frobenius_char]
+Fchar_is_linear [in Combi.SymGroup.Frobenius_char]
+Fchar_invE [in Combi.SymGroup.Frobenius_char]
+fcomp_simpl [in ALEA.Ccpo]
+fcomp2_simpl [in ALEA.Ccpo]
+fcontm_fcont_comp_simpl [in ALEA.Ccpo]
+fcont_compn_com [in ALEA.Ccpo]
+fcont_compn_Sn_simpl [in ALEA.Ccpo]
+fcont_SEQ_simpl [in ALEA.Ccpo]
+fcont_continuous [in ALEA.Ccpo]
+fcont_eq_compat2 [in ALEA.Ccpo]
+fcont_le_compat2 [in ALEA.Ccpo]
+fcont_COMP_simpl [in ALEA.Ccpo]
+fcont_Comp_simpl [in ALEA.Ccpo]
+fcont_comp_le_compat [in ALEA.Ccpo]
+fcont_comp_simpl [in ALEA.Ccpo]
+fcont_lub_simpl [in ALEA.Ccpo]
+fcont_app_continuous [in ALEA.Ccpo]
+fcont_app_simpl [in ALEA.Ccpo]
+fcont_eq [in ALEA.Ccpo]
+fcont_le [in ALEA.Ccpo]
+fcont_eq_elim [in ALEA.Ccpo]
+fcont_eq_intro [in ALEA.Ccpo]
+fcont_le_elim [in ALEA.Ccpo]
+fcont_le_intro [in ALEA.Ccpo]
+fcont2_comp_simpl [in ALEA.Ccpo]
+fcpo_lub_simpl [in ALEA.Ccpo]
+feq_trans [in ALEA.Misc]
+feq_sym [in ALEA.Misc]
+feq_refl [in ALEA.Misc]
+fiber_slporbitE [in Combi.SymGroup.cycletype]
+fif_continuous2 [in ALEA.Ccpo]
+fif_continuous_right [in ALEA.Ccpo]
+fif_continuous_left2 [in ALEA.Ccpo]
+fif_continuous_left [in ALEA.Ccpo]
+Fif_continuous_left [in ALEA.Ccpo]
+Fif_continuous_right [in ALEA.Ccpo]
+Fif_simpl [in ALEA.Ccpo]
+filtergtn_LRsupport [in Combi.LRrule.therule]
+filterleq_LRsupport [in Combi.LRrule.therule]
+filter_gt_RS [in Combi.LRrule.shuffle]
+filter_le_first_row0 [in Combi.Combi.skewtab]
+filter_gt_first_row0 [in Combi.Combi.skewtab]
+filter_le_dominate [in Combi.Combi.skewtab]
+filter_ext_tab [in Combi.MPoly.Schur_altdef]
+filter_to_word [in Combi.Combi.tableau]
+filter_gt_dominate [in Combi.Combi.tableau]
+filter_le_row [in Combi.Combi.tableau]
+filter_gt_row [in Combi.Combi.tableau]
+filter_le_to_word [in Combi.LRrule.therule]
+filter_gt_to_word [in Combi.LRrule.therule]
+filter_gt_shiftn [in Combi.LRrule.therule]
+filter_le_shiftn [in Combi.LRrule.therule]
+find_append_nth [in Combi.Combi.stdtab]
+Finite_in_seq [in ALEA.Qmeasure]
+Finite_eq_out [in ALEA.Qmeasure]
+Finite_eq_in [in ALEA.Qmeasure]
+Finite_simpl [in ALEA.Qmeasure]
+finite_stable_sub [in ALEA.Qmeasure]
+finite_simpl [in ALEA.Qmeasure]
+finite_stdtabn [in Combi.Combi.stdtab]
+finite_stdtabsh [in Combi.Combi.stdtab]
+finite_tabsh [in Combi.Combi.tableau]
+finite_unionP [in Combi.Basic.combclass]
+finite_sub_undupP [in Combi.Basic.combclass]
+finite_subP [in Combi.Basic.combclass]
+finord_wf_down [in Combi.Basic.ordtype]
+finord_wf [in Combi.Basic.ordtype]
+fixp_le_lub [in ALEA.Ccpo]
+fixp_ind_rel [in ALEA.Ccpo]
+fixp_ind [in ALEA.Ccpo]
+fixp_double [in ALEA.Ccpo]
+FIXP_compn [in ALEA.Ccpo]
+FIXP_comp [in ALEA.Ccpo]
+FIXP_comp_com [in ALEA.Ccpo]
+FIXP_inv [in ALEA.Ccpo]
+FIXP_eq [in ALEA.Ccpo]
+FIXP_eq_compat [in ALEA.Ccpo]
+FIXP_le_compat [in ALEA.Ccpo]
+FIXP_simpl [in ALEA.Ccpo]
+Fixp_cont_simpl [in ALEA.Ccpo]
+fixp_continuous_eq [in ALEA.Ccpo]
+fixp_continuous [in ALEA.Ccpo]
+Fixp_simpl [in ALEA.Ccpo]
+fixp_le_compat [in ALEA.Ccpo]
+fixp_inv [in ALEA.Ccpo]
+fixp_eq [in ALEA.Ccpo]
+fixp_le [in ALEA.Ccpo]
+flatten_equiv_cut_k [in Combi.Combi.vectNK]
+flipK [in Combi.Combi.bintree]
+flipszK [in Combi.Combi.bintree]
+flipsz_leftcomb [in Combi.Combi.bintree]
+flipsz_rightcomb [in Combi.Combi.bintree]
+flipsz_subproof [in Combi.Combi.bintree]
+Flip_simpl [in ALEA.Qmeasure]
+flip_false [in ALEA.Qmeasure]
+flip_true [in ALEA.Qmeasure]
+flip_prob [in ALEA.Qmeasure]
+flip_stable_sub [in ALEA.Qmeasure]
+flip_leftcomb [in Combi.Combi.bintree]
+flip_rightcomb [in Combi.Combi.bintree]
+fmon_lub_simpl [in ALEA.Ccpo]
+fmon_cte_comp [in ALEA.Ccpo]
+fmon_le_compat2 [in ALEA.Ccpo]
+fmon_diag_simpl [in ALEA.Ccpo]
+fmon_eq [in ALEA.Ccpo]
+fmon_le [in ALEA.Ccpo]
+fnatO_elim [in ALEA.Ccpo]
+foldr_join_Dyck_inj [in Combi.Combi.Dyckword]
+foldr_maxn [in Combi.Combi.Yamanouchi]
+ford_eq_intro [in ALEA.Ccpo]
+ford_eq_elim [in ALEA.Ccpo]
+ford_le_intro [in ALEA.Ccpo]
+ford_le_elim [in ALEA.Ccpo]
+forest_to_bintreeK [in Combi.Combi.ordtree]
+Formula1 [in Combi.HookFormula.hook]
+freeSchurP [in Combi.LRrule.freeSchur]
+free_LR_rule_alternate [in Combi.LRrule.freeSchur]
+free_LR_rule [in Combi.LRrule.freeSchur]
+Frobenius_char [in Combi.SymGroup.Frobenius_char]
+Frobenius_char_coord [in Combi.SymGroup.Frobenius_char]
+Frobenius_char_homsymdot [in Combi.SymGroup.Frobenius_char]
+Frobenius_ident_rat [in Combi.HookFormula.Frobenius_ident]
+Frobenius_ident [in Combi.HookFormula.Frobenius_ident]
+from_vct0 [in Combi.Combi.bintree]
+from_vct_cat [in Combi.Combi.bintree]
+from_vctK [in Combi.Combi.bintree]
+from_vct_cat_leftE [in Combi.Combi.bintree]
+from_vct_accE [in Combi.Combi.bintree]
+from_vct_fuelE [in Combi.Combi.bintree]
+from_vct_acc_nil [in Combi.Combi.bintree]
+from_left_cat [in Combi.Combi.bintree]
+from_leftK [in Combi.Combi.bintree]
+from_revdualK [in Combi.LRrule.plactic]
+from_descsetK [in Combi.Combi.composition]
+from_descset_spec [in Combi.Combi.composition]
+fs_porbitP [in Combi.SymGroup.cycletype]
+full_bound [in Combi.Basic.congr]
+fun2_mon2 [in ALEA.Ccpo]
+

G

+genclassE [in Combi.Basic.congr]
+gencongrP [in Combi.Basic.congr]
+gencongr_generic_ind [in Combi.Basic.congr]
+gencongr_unique [in Combi.Basic.congr]
+gencongr_imply [in Combi.Basic.congr]
+gencongr_invar [in Combi.Basic.congr]
+gencongr_ind [in Combi.Basic.congr]
+gencongr_min [in Combi.Basic.congr]
+gencongr_is_congr [in Combi.Basic.congr]
+gencongr_equiv [in Combi.Basic.congr]
+genfun_length [in Combi.SymGroup.presentSn]
+get_conj_tab [in Combi.Combi.stdtab]
+get_tab_append_nth [in Combi.Combi.stdtab]
+get_map_tab [in Combi.Combi.tableau]
+get_tab_default [in Combi.Combi.tableau]
+Greene_rel_one [in Combi.Erdos_Szekeres.Erdos_Szekeres]
+Greene_invseq [in Combi.LRrule.stdplact]
+Greene_std [in Combi.LRrule.stdplact]
+Greene_col_eq_shape_RS [in Combi.LRrule.Greene_inv]
+Greene_row_eq_shape_RS [in Combi.LRrule.Greene_inv]
+Greene_col_RS [in Combi.LRrule.Greene_inv]
+Greene_col_invar_plactic [in Combi.LRrule.Greene_inv]
+Greene_row_RS [in Combi.LRrule.Greene_inv]
+Greene_row_invar_plactic [in Combi.LRrule.Greene_inv]
+Greene_col_invar_plact2i [in Combi.LRrule.Greene_inv]
+Greene_col_invar_plact2 [in Combi.LRrule.Greene_inv]
+Greene_col_invar_plact1i [in Combi.LRrule.Greene_inv]
+Greene_col_invar_plact1 [in Combi.LRrule.Greene_inv]
+Greene_row_invar_plact2i [in Combi.LRrule.Greene_inv]
+Greene_row_invar_plact2 [in Combi.LRrule.Greene_inv]
+Greene_row_invar_plact1i [in Combi.LRrule.Greene_inv]
+Greene_row_invar_plact1 [in Combi.LRrule.Greene_inv]
+Greene_col_leq_plact2 [in Combi.LRrule.Greene_inv]
+Greene_col_leq_plact1i [in Combi.LRrule.Greene_inv]
+Greene_row_leq_plact1 [in Combi.LRrule.Greene_inv]
+Greene_row_leq_plact2i [in Combi.LRrule.Greene_inv]
+Greene_col_leq_plact2i [in Combi.LRrule.Greene_inv]
+Greene_col_leq_plact1 [in Combi.LRrule.Greene_inv]
+Greene_row_leq_plact2 [in Combi.LRrule.Greene_inv]
+Greene_row_leq_plact1i [in Combi.LRrule.Greene_inv]
+Greene_col_dual [in Combi.LRrule.Greene_inv]
+Greene_row_dual [in Combi.LRrule.Greene_inv]
+Greene_col_tab_eq_shape [in Combi.LRrule.Greene]
+Greene_row_tab_eq_shape [in Combi.LRrule.Greene]
+Greene_col_tab [in Combi.LRrule.Greene]
+Greene_row_tab [in Combi.LRrule.Greene]
+Greene_rel_rev [in Combi.LRrule.Greene]
+Greene_rel_uniq [in Combi.LRrule.Greene]
+Greene_rel_seq [in Combi.LRrule.Greene]
+Greene_rel_cat [in Combi.LRrule.Greene]
+Greene_rel_t_cat [in Combi.LRrule.Greene]
+Greene_rel_t_uniq [in Combi.LRrule.Greene]
+Greene_rel_t_cast [in Combi.LRrule.Greene]
+Greene_rel_t_0 [in Combi.LRrule.Greene]
+Greene_rel_t_sup [in Combi.LRrule.Greene]
+Greene_rel_t_inf [in Combi.LRrule.Greene]
+grel_neig4_sym [in Combi.Combi.skewpart]
+gtn_braidC [in Combi.SymGroup.presentSn]
+gt_trans [in Combi.LRrule.Greene]
+

H

+hasincr0 [in Combi.MPoly.Schur_altdef]
+HBeta [in Combi.HookFormula.hook]
+HBeta' [in Combi.HookFormula.hook]
+hb_strip_rowE [in Combi.Combi.skewtab]
+hb_strip_shape_res_tab [in Combi.MPoly.Schur_altdef]
+hb_strip_conjE [in Combi.Combi.skewpart]
+hb_strip_conj [in Combi.Combi.skewpart]
+hb_stripP [in Combi.Combi.skewpart]
+hb_strip_size [in Combi.Combi.skewpart]
+hb_strip_included [in Combi.Combi.skewpart]
+Hcrn [in Combi.HookFormula.hook]
+head_pad [in Combi.Combi.partition]
+head_tableau_non_nil [in Combi.LRrule.Schensted]
+head_leq_invbumped [in Combi.LRrule.Schensted]
+head_lt_invins [in Combi.LRrule.Schensted]
+head_instab [in Combi.LRrule.Schensted]
+head_ins_lt_bumped [in Combi.LRrule.Schensted]
+head_leq_last_sorted [in Combi.SSRcomplements.sorted]
+head_filter_gt_tab [in Combi.Combi.tableau]
+head_revcode [in Combi.SymGroup.presentSn]
+head_row_skew_yam [in Combi.LRrule.implem]
+height_take_leq [in Combi.Combi.Dyckword]
+height_nseq [in Combi.Combi.Dyckword]
+height_rev [in Combi.Combi.Dyckword]
+height_drop [in Combi.Combi.Dyckword]
+height_cat [in Combi.Combi.Dyckword]
+height_rcons [in Combi.Combi.Dyckword]
+height_cons [in Combi.Combi.Dyckword]
+height_nil [in Combi.Combi.Dyckword]
+Hinvst [in Combi.LRrule.stdplact]
+Hinvts [in Combi.LRrule.stdplact]
+homogsym_vecaxiom [in Combi.MPoly.homogsym]
+homog_X_mPo_gen [in Combi.MPoly.sympoly]
+homog_symmE [in Combi.MPoly.sympoly]
+homsymdotBl [in Combi.MPoly.homogsym]
+homsymdotBr [in Combi.MPoly.homogsym]
+homsymdotC [in Combi.MPoly.homogsym]
+homsymdotDl [in Combi.MPoly.homogsym]
+homsymdotDr [in Combi.MPoly.homogsym]
+homsymdotE [in Combi.MPoly.homogsym]
+homsymdotMnl [in Combi.MPoly.homogsym]
+homsymdotMnr [in Combi.MPoly.homogsym]
+homsymdotNl [in Combi.MPoly.homogsym]
+homsymdotNr [in Combi.MPoly.homogsym]
+homsymdotpp [in Combi.MPoly.homogsym]
+homsymdotss [in Combi.MPoly.Cauchy]
+homsymdotZl [in Combi.MPoly.homogsym]
+homsymdotZr [in Combi.MPoly.homogsym]
+homsymdot_omegasf [in Combi.MPoly.homogsym]
+homsymdot_is_dot [in Combi.MPoly.homogsym]
+homsymdot_sumr [in Combi.MPoly.homogsym]
+homsymdot_suml [in Combi.MPoly.homogsym]
+homsymdot_is_hermitian [in Combi.MPoly.homogsym]
+homsymdot_is_bilinear [in Combi.MPoly.homogsym]
+homsymdot0l [in Combi.MPoly.homogsym]
+homsymdot0r [in Combi.MPoly.homogsym]
+homsymE [in Combi.MPoly.homogsym]
+homsyme_character [in Combi.SymGroup.Frobenius_char]
+homsymh_character [in Combi.SymGroup.Frobenius_char]
+homsymmE [in Combi.MPoly.homogsym]
+homsymprodBl [in Combi.MPoly.homogsym]
+homsymprodBr [in Combi.MPoly.homogsym]
+homsymprodDl [in Combi.MPoly.homogsym]
+homsymprodDr [in Combi.MPoly.homogsym]
+homsymprodMnl [in Combi.MPoly.homogsym]
+homsymprodMnr [in Combi.MPoly.homogsym]
+homsymprodNl [in Combi.MPoly.homogsym]
+homsymprodNr [in Combi.MPoly.homogsym]
+homsymprodZl [in Combi.MPoly.homogsym]
+homsymprodZr [in Combi.MPoly.homogsym]
+homsymprod_h1p [in Combi.MPoly.homogsym]
+homsymprod_h1e [in Combi.MPoly.homogsym]
+homsymprod_h1h [in Combi.MPoly.homogsym]
+homsymprod_hp [in Combi.MPoly.homogsym]
+homsymprod_he [in Combi.MPoly.homogsym]
+homsymprod_hh [in Combi.MPoly.homogsym]
+homsymprod_suml [in Combi.MPoly.homogsym]
+homsymprod_sumr [in Combi.MPoly.homogsym]
+homsymprod_is_bilinear [in Combi.MPoly.homogsym]
+homsymprod_subproof [in Combi.MPoly.homogsym]
+homsymprod0l [in Combi.MPoly.homogsym]
+homsymprod0r [in Combi.MPoly.homogsym]
+homsymp_orthogonal [in Combi.MPoly.homogsym]
+homsyms_orthonormal [in Combi.MPoly.Cauchy]
+homsyms_homsympM [in Combi.MPoly.MurnaghanNakayama]
+homsym_is_dhomog [in Combi.MPoly.homogsym]
+homsym_is_linear [in Combi.MPoly.homogsym]
+homsym_inj [in Combi.MPoly.homogsym]
+HookLengthFormula [in Combi.HookFormula.hook]
+HookLengthFormula_rat [in Combi.HookFormula.hook]
+hookpartnE [in Combi.Combi.partition]
+hookpartnP [in Combi.Combi.partition]
+hookpartnPE [in Combi.Combi.partition]
+hookpartn_row [in Combi.Combi.partition]
+hookpartn_col [in Combi.Combi.partition]
+hookpartn_subproof [in Combi.Combi.partition]
+hook_length_prod_div [in Combi.HookFormula.hook]
+hook_length_prod_nat [in Combi.HookFormula.hook]
+hook_length_prod_non0 [in Combi.HookFormula.hook]
+hook_length_last_rectangle [in Combi.HookFormula.hook]
+hook_boxes_empty [in Combi.HookFormula.hook]
+hook_length_pred [in Combi.HookFormula.hook]
+hook_length_incr_nth [in Combi.HookFormula.hook]
+hook_length_incr_nth_col [in Combi.HookFormula.hook]
+hook_length_incr_nth_row [in Combi.HookFormula.hook]
+hook_length_corner_box [in Combi.HookFormula.hook]
+hook_length1_corner [in Combi.HookFormula.hook]
+hook_length_ltr [in Combi.HookFormula.hook]
+hook_length_ltl [in Combi.HookFormula.hook]
+hook_length_conj_part [in Combi.HookFormula.hook]
+hook_length_geq1 [in Combi.HookFormula.hook]
+Hp [in Combi.HookFormula.hook]
+Hpart' [in Combi.HookFormula.hook]
+Hszrcons [in Combi.MPoly.Schur_altdef]
+hyper_stdtabnP [in Combi.LRrule.freeSchur]
+hyper_stdtabP [in Combi.LRrule.freeSchur]
+hyper_stdtabsh_subproof [in Combi.Combi.stdtab]
+hyper_yam_of_eval [in Combi.Combi.Yamanouchi]
+hyper_yamP [in Combi.Combi.Yamanouchi]
+

I

+Id_simpl [in ALEA.Ccpo]
+ieqi1F [in Combi.SymGroup.presentSn]
+ieqi2F [in Combi.SymGroup.presentSn]
+if_else_not [in ALEA.Misc]
+if_then_not [in ALEA.Misc]
+if_else [in ALEA.Misc]
+if_then [in ALEA.Misc]
+if_beq_nat_nat_eq_dec [in ALEA.Misc]
+image_map_finer [in Combi.Combi.setpartition]
+Imonotonic [in ALEA.Ccpo]
+Imonotonic2 [in ALEA.Ccpo]
+Imon_simpl [in ALEA.Ccpo]
+imon_simpl [in ALEA.Ccpo]
+imon2_simpl [in ALEA.Ccpo]
+Imon2_simpl [in ALEA.Ccpo]
+imsetD [in Combi.SSRcomplements.tools]
+imset_trivIset [in Combi.SSRcomplements.tools]
+imset_inj [in Combi.SSRcomplements.tools]
+imset_transversal_preim [in Combi.Combi.Dyckword]
+imset_classCT [in Combi.SymGroup.cycletype]
+incl [in Combi.Combi.skewpart]
+includedP [in Combi.Combi.partition]
+included_pad0 [in Combi.Combi.partition]
+included_conj_partE [in Combi.Combi.partition]
+included_conj_part [in Combi.Combi.partition]
+included_anti [in Combi.Combi.partition]
+included_sumnE [in Combi.Combi.partition]
+included_incr_nth_inner [in Combi.Combi.partition]
+included_decr_nth [in Combi.Combi.partition]
+included_incr_nth [in Combi.Combi.partition]
+included_trans [in Combi.Combi.partition]
+included_refl [in Combi.Combi.partition]
+included_behead [in Combi.Combi.partition]
+included_shape_filter_gt [in Combi.Combi.skewtab]
+included_shape_filter_gt_tab [in Combi.LRrule.therule]
+included_add_ribbon [in Combi.Combi.skewpart]
+incr_first_n_nthC [in Combi.Combi.partition]
+incr_nthK [in Combi.Combi.partition]
+incr_nth_injl [in Combi.Combi.stdtab]
+incr_equiv [in Combi.SSRcomplements.sorted]
+incr_tab [in Combi.Combi.tableau]
+incr_nth_size [in Combi.Combi.Yamanouchi]
+index_invstd [in Combi.LRrule.shuffle]
+index_sfilterleq [in Combi.LRrule.shuffle]
+index_leq_filter [in Combi.LRrule.shuffle]
+indporbitP [in Combi.SymGroup.cycletype]
+indporbit_cymap [in Combi.SymGroup.cycletype]
+inh_chooseE [in Combi.Basic.ordtype]
+inh_xchooseE [in Combi.Basic.ordtype]
+inj_strict_mon [in ALEA.Ccpo]
+inordi [in Combi.SymGroup.presentSn]
+inordi_neq_i1 [in Combi.SymGroup.presentSn]
+inordi1 [in Combi.SymGroup.presentSn]
+inord_predS [in Combi.SymGroup.presentSn]
+inord1i [in Combi.SymGroup.presentSn]
+inporbits_im [in Combi.SymGroup.permcent]
+inporbits1 [in Combi.SymGroup.permcent]
+inscodeP [in Combi.SymGroup.presentSn]
+insE [in Combi.LRrule.Schensted]
+insposE [in Combi.LRrule.Schensted]
+inspos_leq_exP [in Combi.LRrule.Schensted]
+inspos_lt_size_ins [in Combi.LRrule.Schensted]
+inspos_leq_size [in Combi.LRrule.Schensted]
+inspos_rcons [in Combi.LRrule.plactic]
+inspredN_lt_inspos [in Combi.LRrule.Schensted]
+inspred_mininspred [in Combi.LRrule.Schensted]
+inspred_inspos [in Combi.LRrule.Schensted]
+inspred_any_bump [in Combi.LRrule.Schensted]
+insrowE [in Combi.LRrule.Schensted]
+insrow_head_lt [in Combi.LRrule.Schensted]
+instabnrowE [in Combi.LRrule.Schensted]
+instabnrowinvK [in Combi.LRrule.Schensted]
+instab_non_nil [in Combi.LRrule.Schensted]
+insub_wordcdK [in Combi.SymGroup.presentSn]
+ins_bumprowE [in Combi.LRrule.Schensted]
+ins_non_nil [in Combi.LRrule.Schensted]
+ins_leq [in Combi.LRrule.Schensted]
+ins_head_lt [in Combi.LRrule.Schensted]
+intcompnP [in Combi.Combi.composition]
+intcompn_behead_sub_proof [in Combi.MPoly.sympoly]
+intcompn_cons_sub_proof [in Combi.MPoly.sympoly]
+intcompn_castE [in Combi.Combi.composition]
+intcompn_sumn [in Combi.Combi.composition]
+intcompn0 [in Combi.Combi.composition]
+intcompn1 [in Combi.Combi.composition]
+intcompn2 [in Combi.Combi.composition]
+intcompP [in Combi.Combi.composition]
+IntPartNDom.botEintpartndom [in Combi.Combi.partition]
+IntPartNDom.double_minn [in Combi.Combi.partition]
+IntPartNDom.from_parttupleK [in Combi.Combi.partition]
+IntPartNDom.from_parttupleP [in Combi.Combi.partition]
+IntPartNDom.is_parttupleP [in Combi.Combi.partition]
+IntPartNDom.join_intpartnE [in Combi.Combi.partition]
+IntPartNDom.join_intpartnP [in Combi.Combi.partition]
+IntPartNDom.leEpartdom [in Combi.Combi.partition]
+IntPartNDom.le_meet_intpartn [in Combi.Combi.partition]
+IntPartNDom.meet_intpartnP [in Combi.Combi.partition]
+IntPartNDom.meet_intpartnC [in Combi.Combi.partition]
+IntPartNDom.nth_parttuple_minn [in Combi.Combi.partition]
+IntPartNDom.nth_parttuple [in Combi.Combi.partition]
+IntPartNDom.partdom_colpartn [in Combi.Combi.partition]
+IntPartNDom.partdom_rowpartn [in Combi.Combi.partition]
+IntPartNDom.partdom_conj_intpartn [in Combi.Combi.partition]
+IntPartNDom.partdom_display [in Combi.Combi.partition]
+IntPartNDom.partdom_antisym [in Combi.Combi.partition]
+IntPartNDom.parttupleK [in Combi.Combi.partition]
+IntPartNDom.parttupleP [in Combi.Combi.partition]
+IntPartNDom.parttuplePK [in Combi.Combi.partition]
+IntPartNDom.parttuple_minnP [in Combi.Combi.partition]
+IntPartNDom.parttuple_minnC [in Combi.Combi.partition]
+IntPartNDom.sumn_take_pardom_meet [in Combi.Combi.partition]
+IntPartNDom.sumn_take_part_fromtuple [in Combi.Combi.partition]
+IntPartNDom.sum_diff_tuple [in Combi.Combi.partition]
+IntPartNDom.sum_diff [in Combi.Combi.partition]
+IntPartNDom.take_intpartn_over [in Combi.Combi.partition]
+IntPartNDom.topEintpartndom [in Combi.Combi.partition]
+IntPartNLexi.botEintpartnlexi [in Combi.Combi.partition]
+IntPartNLexi.colpartn_bot [in Combi.Combi.partition]
+IntPartNLexi.leEintpartnlexi [in Combi.Combi.partition]
+IntPartNLexi.ltEintpartnlexi [in Combi.Combi.partition]
+IntPartNLexi.rowpartn_top [in Combi.Combi.partition]
+IntPartNLexi.topEintpartnlexi [in Combi.Combi.partition]
+intpartnP [in Combi.Combi.partition]
+intpartn_cons [in Combi.Combi.partition]
+intpartn_nth0 [in Combi.Combi.partition]
+intpartn_count_leq2E [in Combi.Combi.partition]
+intpartn_leq [in Combi.Combi.partition]
+intpartn_leq_head [in Combi.Combi.partition]
+intpartn_sorted [in Combi.Combi.partition]
+intpartn0 [in Combi.Combi.partition]
+intpartn1 [in Combi.Combi.partition]
+intpartn2 [in Combi.Combi.partition]
+intpartn3 [in Combi.Combi.partition]
+intpartP [in Combi.Combi.partition]
+intpart_of_monP [in Combi.MPoly.homogsym]
+intpart_rem_corner_ind [in Combi.Combi.partition]
+intpart_sumn_take_inj [in Combi.Combi.partition]
+intpart_eqP [in Combi.Combi.partition]
+intpart_sorted [in Combi.Combi.partition]
+invar_rewrite_path [in Combi.Basic.congr]
+invar_step [in Combi.Basic.congr]
+invar_undupE [in Combi.Basic.congr]
+invbumprowK [in Combi.LRrule.Schensted]
+invbump_dom [in Combi.LRrule.Schensted]
+invbump_geq_head [in Combi.LRrule.Schensted]
+invinstabnrowK [in Combi.LRrule.Schensted]
+invseqE [in Combi.Combi.std]
+invseqK [in Combi.LRrule.stdplact]
+invseqRSE [in Combi.LRrule.stdplact]
+invseqRSPQE [in Combi.LRrule.stdplact]
+invseq_invstd [in Combi.Combi.std]
+invseq_nthE [in Combi.Combi.std]
+invseq_is_std [in Combi.Combi.std]
+invseq_sym [in Combi.Combi.std]
+invsetK [in Combi.SymGroup.presentSn]
+invsetP [in Combi.SymGroup.presentSn]
+invset_eltrR [in Combi.SymGroup.presentSn]
+invset_eltrL [in Combi.SymGroup.presentSn]
+invset_inj [in Combi.SymGroup.presentSn]
+invset_maxpermMl [in Combi.SymGroup.presentSn]
+invset_maxpermMr [in Combi.SymGroup.presentSn]
+invset_maxperm [in Combi.SymGroup.presentSn]
+invset_permV [in Combi.SymGroup.presentSn]
+invset_Delta [in Combi.SymGroup.presentSn]
+invstdK [in Combi.Combi.std]
+invstdRSE [in Combi.LRrule.stdplact]
+invstd_inj [in Combi.Combi.std]
+invstd_is_std [in Combi.Combi.std]
+invstd_cat_in_shsh [in Combi.LRrule.shuffle]
+invstd_catleq [in Combi.LRrule.shuffle]
+invstd_catgtn [in Combi.LRrule.shuffle]
+inv_weight_pos [in ALEA.Qmeasure]
+in_seq_sum [in ALEA.Qmeasure]
+in_std_ltn_size [in Combi.Combi.std]
+in_homsym_comp_symbe [in Combi.MPoly.homogsym]
+in_homsymE [in Combi.MPoly.homogsym]
+in_homsym_is_linear [in Combi.MPoly.homogsym]
+in_conj_part [in Combi.Combi.partition]
+in_conj_part_impl [in Combi.Combi.partition]
+in_part_is_part [in Combi.Combi.partition]
+in_part_le [in Combi.Combi.partition]
+in_part_non0 [in Combi.Combi.partition]
+in_shape_size [in Combi.Combi.partition]
+in_skew_nil [in Combi.Combi.partition]
+in_shape_nil [in Combi.Combi.partition]
+in_skew_in [in Combi.Combi.partition]
+in_skew_out [in Combi.Combi.partition]
+in_skewE [in Combi.Combi.partition]
+in_vect_n_k [in Combi.Combi.vectNK]
+in_hook_boxesP [in Combi.HookFormula.hook]
+in_hook_shape [in Combi.HookFormula.hook]
+in_porbit_setP [in Combi.SymGroup.cycles]
+in_psupport [in Combi.SymGroup.cycles]
+in_shape_tab [in Combi.Combi.tableau]
+in_shape_tab_size [in Combi.Combi.tableau]
+in_maxL [in Combi.Basic.ordtype]
+Iord_app [in ALEA.Ccpo]
+iotagtnk [in Combi.LRrule.Greene]
+iota_geq [in Combi.SSRcomplements.tools]
+iota_ltn [in Combi.SSRcomplements.tools]
+iota_hookE [in Combi.HookFormula.hook]
+iota_cut_i [in Combi.SymGroup.presentSn]
+irev_w [in Combi.LRrule.Greene_inv]
+irrSGP [in Combi.SymGroup.Frobenius_char]
+irrSG_char_int [in Combi.SymGroup.Frobenius_char]
+irrSG_irr [in Combi.SymGroup.Frobenius_char]
+irrSG_orthonormal [in Combi.SymGroup.Frobenius_char]
+irr_S2 [in Combi.SymGroup.reprSn]
+isantisymP [in Combi.MPoly.antisym]
+isantisym_alt [in Combi.MPoly.antisym]
+isantisym_mlead_rho [in Combi.MPoly.antisym]
+isantisym_mlead_iota [in Combi.MPoly.antisym]
+isantisym_msupp_uniq [in Combi.MPoly.antisym]
+isantisym_eltrP [in Combi.MPoly.antisym]
+isantisym_msupp [in Combi.MPoly.antisym]
+isantisym_tpermP [in Combi.MPoly.antisym]
+isglb_decr_lift [in ALEA.Ccpo]
+isglb_decr_ext [in ALEA.Ccpo]
+isglb_eq_compat_right [in ALEA.Ccpo]
+isglb_eq_compat_left [in ALEA.Ccpo]
+isglb_eq_compat [in ALEA.Ccpo]
+isglb_le [in ALEA.Ccpo]
+ishift_le_compat [in ALEA.Ccpo]
+ishift_simpl [in ALEA.Ccpo]
+islub_lub [in ALEA.Ccpo]
+islub_mlub [in ALEA.Ccpo]
+islub_fun_intro [in ALEA.Ccpo]
+islub_unique [in ALEA.Ccpo]
+islub_unique_eq [in ALEA.Ccpo]
+islub_decr [in ALEA.Ccpo]
+islub_exch [in ALEA.Ccpo]
+islub_incr_lift [in ALEA.Ccpo]
+islub_incr_ext [in ALEA.Ccpo]
+islub_eq_compat_right [in ALEA.Ccpo]
+islub_eq_compat_left [in ALEA.Ccpo]
+islub_eq_compat [in ALEA.Ccpo]
+isom_tinj [in Combi.SymGroup.towerSn]
+isperm_of_porbit [in Combi.SymGroup.cycletype]
+issym_eltrP [in Combi.MPoly.antisym]
+issym_tpermP [in Combi.MPoly.antisym]
+is_std_wordpermP [in Combi.Combi.std]
+is_stdP [in Combi.Combi.std]
+is_homsym_submod_closed [in Combi.MPoly.homogsym]
+is_part_decr_nth_part [in Combi.Combi.partition]
+is_add_corner_conj_part [in Combi.Combi.partition]
+is_part_conj [in Combi.Combi.partition]
+is_part_incr_first_n [in Combi.Combi.partition]
+is_part_nseq1 [in Combi.Combi.partition]
+is_part_decr_nth [in Combi.Combi.partition]
+is_rem_cornerP [in Combi.Combi.partition]
+is_part_incr_nth [in Combi.Combi.partition]
+is_part_incr_nth_size [in Combi.Combi.partition]
+is_part_rem_trail0 [in Combi.Combi.partition]
+is_part_catr [in Combi.Combi.partition]
+is_part_catl [in Combi.Combi.partition]
+is_part_rconsK [in Combi.Combi.partition]
+is_part_subseq [in Combi.Combi.partition]
+is_part_behead [in Combi.Combi.partition]
+is_part_consK [in Combi.Combi.partition]
+is_part_sortedE [in Combi.Combi.partition]
+is_part_ijP [in Combi.Combi.partition]
+is_partP [in Combi.Combi.partition]
+is_col_dual [in Combi.LRrule.Greene_inv]
+is_row_dual [in Combi.LRrule.Greene_inv]
+is_dominant_nth_partm [in Combi.MPoly.antisym]
+is_dominant_partm [in Combi.MPoly.antisym]
+is_stdtab_of_n_LRtriple [in Combi.LRrule.shuffle]
+is_tableau_std [in Combi.Combi.skewtab]
+is_tableau_reshape_std [in Combi.Combi.skewtab]
+is_skew_tableau_reshape_std [in Combi.Combi.skewtab]
+is_skew_tableau_skew_reshape_pad0 [in Combi.Combi.skewtab]
+is_skew_tableau_filter_le [in Combi.Combi.skewtab]
+is_skew_tableau_filter_le_tmp [in Combi.Combi.skewtab]
+is_skew_tableau_pad0 [in Combi.Combi.skewtab]
+is_skew_tableau0 [in Combi.Combi.skewtab]
+is_skew_tableauP [in Combi.Combi.skewtab]
+is_part_skew_yam [in Combi.Combi.skewtab]
+is_skew_yamE [in Combi.Combi.skewtab]
+is_stdtab_RStabmap2 [in Combi.LRrule.Schensted]
+is_tableau_instabnrowinv1 [in Combi.LRrule.Schensted]
+is_yam_RSmap2 [in Combi.LRrule.Schensted]
+is_tableau_RSmap1 [in Combi.LRrule.Schensted]
+is_rem_corner_instabnrow [in Combi.LRrule.Schensted]
+is_row_invins [in Combi.LRrule.Schensted]
+is_tableau_RS [in Combi.LRrule.Schensted]
+is_tableau_instab [in Combi.LRrule.Schensted]
+is_row_Sch [in Combi.LRrule.Schensted]
+is_row_ins [in Combi.LRrule.Schensted]
+is_trace_corner_nil [in Combi.HookFormula.hook]
+is_trace_in_shape [in Combi.HookFormula.hook]
+is_trace_in_in_shape [in Combi.HookFormula.hook]
+is_trace_lastl [in Combi.HookFormula.hook]
+is_trace_lastr [in Combi.HookFormula.hook]
+is_trace_tlr [in Combi.HookFormula.hook]
+is_trace_tll [in Combi.HookFormula.hook]
+is_yam_plactic [in Combi.LRrule.Yam_plact]
+is_part_incr_nth1E [in Combi.LRrule.Yam_plact]
+is_part_incr_nthE [in Combi.LRrule.Yam_plact]
+is_stdtab_conj [in Combi.Combi.stdtab]
+is_part_shape_deg [in Combi.Combi.stdtab]
+is_row_stdE [in Combi.Combi.stdtab]
+is_stdtab_remn [in Combi.Combi.stdtab]
+is_tab_append_nth_size [in Combi.Combi.stdtab]
+is_tab_append_nth_size_alternative_proof [in Combi.Combi.stdtab]
+is_tableau_filter_gt [in Combi.Combi.tableau]
+is_tableau_getP [in Combi.Combi.tableau]
+is_tableau_sorted_dominate [in Combi.Combi.tableau]
+is_part_sht [in Combi.Combi.tableau]
+is_tableau_catr [in Combi.Combi.tableau]
+is_tableau_catl [in Combi.Combi.tableau]
+is_tableau_rconsK [in Combi.Combi.tableau]
+is_tableauP [in Combi.Combi.tableau]
+is_row_set_nth [in Combi.Combi.tableau]
+is_row_yamrow [in Combi.LRrule.therule]
+is_skew_reshape_tableauP [in Combi.LRrule.therule]
+is_skew_tableau_map_shiftn [in Combi.LRrule.therule]
+is_yam_cat_any [in Combi.Combi.Yamanouchi]
+is_add_corner_yam [in Combi.Combi.Yamanouchi]
+is_rem_corner_yam [in Combi.Combi.Yamanouchi]
+is_yam_decr [in Combi.Combi.Yamanouchi]
+is_yam_catr [in Combi.Combi.Yamanouchi]
+is_yam_tl [in Combi.Combi.Yamanouchi]
+is_part_eval_yam [in Combi.Combi.Yamanouchi]
+is_yam_ijP [in Combi.Combi.Yamanouchi]
+is_yamP [in Combi.Combi.Yamanouchi]
+is_finer_card [in Combi.Combi.setpartition]
+is_invset_tclosureU [in Combi.SymGroup.weak_order]
+is_part_of_add_ribbon [in Combi.Combi.skewpart]
+is_part_add_ribbon [in Combi.Combi.skewpart]
+is_part_add_ribbon_on [in Combi.Combi.skewpart]
+is_code_straighten [in Combi.SymGroup.presentSn]
+is_invset_Delta [in Combi.SymGroup.presentSn]
+is_code_rconsK [in Combi.SymGroup.presentSn]
+is_code_rcons [in Combi.SymGroup.presentSn]
+is_codeP [in Combi.SymGroup.presentSn]
+is_part_pad0 [in Combi.LRrule.implem]
+is_comp_cat [in Combi.Combi.composition]
+is_comp_rcons [in Combi.Combi.composition]
+is_comp_cons [in Combi.Combi.composition]
+is_comp1 [in Combi.Combi.composition]
+is_compP [in Combi.Combi.composition]
+iterO_simpl [in ALEA.Ccpo]
+iterS_simpl [in ALEA.Ccpo]
+IterS_simpl [in ALEA.Ccpo]
+iter_continuous_eq [in ALEA.Ccpo]
+iter_continuous [in ALEA.Ccpo]
+iter_incr [in ALEA.Ccpo]
+i1eqiF [in Combi.SymGroup.presentSn]
+i2eqiF [in Combi.SymGroup.presentSn]
+

J

+joingU1 [in Combi.SymGroup.presentSn]
+join_tab_skew [in Combi.Combi.skewtab]
+join_tab_filter [in Combi.Combi.skewtab]
+join_Dyck_inj [in Combi.Combi.Dyckword]
+join_stdtab_in_shuffle [in Combi.LRrule.therule]
+join_stdtab [in Combi.LRrule.therule]
+

K

+KostkaInv_unitrig [in Combi.MPoly.Schur_altdef]
+KostkaMon_partdom [in Combi.MPoly.Schur_altdef]
+KostkaMon_sumeval [in Combi.MPoly.Schur_altdef]
+KostkaStd [in Combi.MPoly.Schur_altdef]
+Kostka_unitrig [in Combi.MPoly.Schur_altdef]
+Kostka_recE [in Combi.MPoly.Schur_altdef]
+Kostka_rec_size0 [in Combi.MPoly.Schur_altdef]
+Kostka_ind [in Combi.MPoly.Schur_altdef]
+Kostka_diag [in Combi.MPoly.Schur_altdef]
+Kostka_partdom [in Combi.MPoly.Schur_altdef]
+Kostka_size0 [in Combi.MPoly.Schur_altdef]
+Kostka_sumnE [in Combi.MPoly.Schur_altdef]
+Kostka_any [in Combi.MPoly.Schur_altdef]
+Kostka_mnmwiden [in Combi.MPoly.Schur_altdef]
+Kostka_Coeff [in Combi.MPoly.Schur_altdef]
+Kostka0 [in Combi.MPoly.Schur_altdef]
+ksuppCol_inj_plact2i [in Combi.LRrule.Greene_inv]
+ksuppCol_inj_plact1 [in Combi.LRrule.Greene_inv]
+ksuppRow_inj_plact2 [in Combi.LRrule.Greene_inv]
+ksuppRow_inj_plact1i [in Combi.LRrule.Greene_inv]
+ksupp_inj_invseq [in Combi.LRrule.stdplact]
+ksupp_inj_stdI [in Combi.LRrule.stdplact]
+ksupp_inj_std [in Combi.LRrule.stdplact]
+ksupp_gt_tabcolsk [in Combi.LRrule.Greene]
+ksupp_leqX_tabrowsk [in Combi.LRrule.Greene]
+ksupp_inj_rev [in Combi.LRrule.Greene]
+ksupp_cast [in Combi.LRrule.Greene]
+ksupp0 [in Combi.LRrule.Greene]
+

L

+langQE [in Combi.LRrule.shuffle]
+last_behead_rcons [in Combi.SSRcomplements.tools]
+last_incr_nth_non0 [in Combi.Combi.partition]
+last_rot_pfminh [in Combi.Combi.Dyckword]
+last_big_append_nth [in Combi.Combi.stdtab]
+last_bigP [in Combi.Combi.stdtab]
+last_ins_lt [in Combi.LRrule.plactic]
+last_yam [in Combi.Combi.Yamanouchi]
+law1 [in ALEA.Qmeasure]
+law2 [in ALEA.Qmeasure]
+law3 [in ALEA.Qmeasure]
+lcast_com [in Combi.LRrule.Greene]
+LeafP [in Combi.Combi.bintree]
+leftcomb_rotations [in Combi.Combi.bintree]
+left_branchK [in Combi.Combi.bintree]
+leg_length_corner_box [in Combi.HookFormula.hook]
+leg_length_lel [in Combi.HookFormula.hook]
+leg_length_ltr [in Combi.HookFormula.hook]
+leL_geLdualE [in Combi.LRrule.plactic]
+Lemma3 [in Combi.HookFormula.hook]
+lengthKL [in Combi.SymGroup.presentSn]
+lengthKR [in Combi.SymGroup.presentSn]
+lengthM [in Combi.SymGroup.presentSn]
+lengthME [in Combi.SymGroup.presentSn]
+lengthV [in Combi.SymGroup.presentSn]
+length_eq1 [in Combi.SymGroup.presentSn]
+length_eq0 [in Combi.SymGroup.presentSn]
+length_permcd [in Combi.SymGroup.presentSn]
+length_prods [in Combi.SymGroup.presentSn]
+length_eltr [in Combi.SymGroup.presentSn]
+length_descR [in Combi.SymGroup.presentSn]
+length_sub1R [in Combi.SymGroup.presentSn]
+length_add1R [in Combi.SymGroup.presentSn]
+length_descL [in Combi.SymGroup.presentSn]
+length_sub1L [in Combi.SymGroup.presentSn]
+length_add1L [in Combi.SymGroup.presentSn]
+length_maxpermMl [in Combi.SymGroup.presentSn]
+length_maxpermMr [in Combi.SymGroup.presentSn]
+length_maxpermE [in Combi.SymGroup.presentSn]
+length_maxperm [in Combi.SymGroup.presentSn]
+length_max [in Combi.SymGroup.presentSn]
+length1 [in Combi.SymGroup.presentSn]
+leperm_invset [in Combi.SymGroup.weak_order]
+leperm_succ [in Combi.SymGroup.weak_order]
+leperm_factorP [in Combi.SymGroup.weak_order]
+leperm_maxperm [in Combi.SymGroup.weak_order]
+leperm_maxpermMl [in Combi.SymGroup.weak_order]
+leperm1p [in Combi.SymGroup.weak_order]
+leq_sumn_in [in Combi.SSRcomplements.tools]
+leq_addE [in Combi.SSRcomplements.tools]
+leq_head_sumn [in Combi.Combi.partition]
+leq_Greene [in Combi.LRrule.Greene]
+less [in Combi.Combi.skewpart]
+lessz [in Combi.Combi.skewpart]
+let_indep_distr [in ALEA.Qmeasure]
+let_indep [in ALEA.Qmeasure]
+le_intpartndomlexi [in Combi.Combi.partition]
+le_mlub [in ALEA.Ccpo]
+le_isglb [in ALEA.Ccpo]
+le_Ole [in ALEA.Ccpo]
+linvseqK [in Combi.LRrule.stdplact]
+linvseqP [in Combi.Combi.std]
+linvseq_sizeP [in Combi.Combi.std]
+linvseq_subset_iota [in Combi.Combi.std]
+linvseq_ltn_szt [in Combi.Combi.std]
+lin_char_Sn [in Combi.SymGroup.reprSn]
+lin_char_reprP [in Combi.SymGroup.reprSn]
+LRcoeffE [in Combi.LRrule.implem]
+LRcoeffP [in Combi.LRrule.implem]
+LRcoeff_computeP [in Combi.LRrule.therule]
+LRrule_langQ_alternate [in Combi.LRrule.shuffle]
+LRrule_langQ [in Combi.LRrule.shuffle]
+lrshift_recF [in Combi.LRrule.Greene]
+LRsupport_conj [in Combi.LRrule.freeSchur]
+LRtab_coeff_conj [in Combi.LRrule.freeSchur]
+LRtab_coeff_shapeE [in Combi.LRrule.freeSchur]
+LRtab_coeffP [in Combi.LRrule.freeSchur]
+LRtab_set_included [in Combi.LRrule.therule]
+LRtab_coeffP [in Combi.LRrule.implem]
+LRtripleP [in Combi.LRrule.shuffle]
+LRtriple_conj [in Combi.LRrule.shuffle]
+LRtriple_cat_equiv [in Combi.LRrule.shuffle]
+LRtriple_cat_langQ [in Combi.LRrule.shuffle]
+LRtriple_fastE [in Combi.LRrule.shuffle]
+LRyamtabP [in Combi.LRrule.implem]
+LRyamtab_spec_recip [in Combi.LRrule.implem]
+LRyamtab_all [in Combi.LRrule.implem]
+LRyamtab_eval [in Combi.LRrule.implem]
+LRyamtab_skew_tableau [in Combi.LRrule.implem]
+LRyamtab_shape [in Combi.LRrule.implem]
+LRyamtab_included [in Combi.LRrule.implem]
+LRyamtab_yam [in Combi.LRrule.implem]
+LRyamtab_list_countE [in Combi.LRrule.implem]
+LRyamtab_list_skew_tableau0 [in Combi.LRrule.implem]
+LRyamtab_list_shape0 [in Combi.LRrule.implem]
+LRyamtab_list_size [in Combi.LRrule.implem]
+LRyamtab_list_pad0 [in Combi.LRrule.implem]
+LRyamtab_list_included [in Combi.LRrule.implem]
+LRyamtab_list_recP [in Combi.LRrule.implem]
+LRyam_coeff_colpartn [in Combi.LRrule.therule]
+LRyam_coeff_rowpart [in Combi.LRrule.therule]
+LRyam_coeffP [in Combi.LRrule.therule]
+LRyam_coeffE [in Combi.LRrule.therule]
+LRyam_spec_recip [in Combi.LRrule.implem]
+LR_rule_irrSG [in Combi.SymGroup.Frobenius_char]
+LR_rule_tab [in Combi.LRrule.freeSchur]
+lshift_in_rshift_recF [in Combi.LRrule.Greene]
+lshift_recP [in Combi.LRrule.Greene]
+lsplit_rec_tab [in Combi.LRrule.Greene]
+ltcovers [in Combi.Basic.ordtype]
+ltL_gtLdualE [in Combi.LRrule.plactic]
+ltnPred [in Combi.HookFormula.hook]
+ltn_braidC [in Combi.SymGroup.presentSn]
+ltperm_invset [in Combi.SymGroup.weak_order]
+ltperm_length [in Combi.SymGroup.weak_order]
+lt_intpartndomlexi [in Combi.Combi.partition]
+lt_bumped [in Combi.LRrule.Schensted]
+lt_inspos_nth [in Combi.LRrule.Schensted]
+lub_le_fixp [in ALEA.Ccpo]
+lub_cont2_app2_eq [in ALEA.Ccpo]
+lub_app2_eq [in ALEA.Ccpo]
+lub_comp_eq [in ALEA.Ccpo]
+lub_app2_le [in ALEA.Ccpo]
+lub_comp_le [in ALEA.Ccpo]
+lub_fcpo_mon [in ALEA.Ccpo]
+lub_mon_fcpo [in ALEA.Ccpo]
+lub_ishift [in ALEA.Ccpo]
+lub_Olt [in ALEA.Ccpo]
+lub_seq_eq [in ALEA.Ccpo]
+lub_eq_lift [in ALEA.Ccpo]
+lub_le_lift [in ALEA.Ccpo]
+lub_lift_left [in ALEA.Ccpo]
+lub_lift_right [in ALEA.Ccpo]
+lub_cte [in ALEA.Ccpo]
+

M

+map_homsymbs [in Combi.MPoly.homogsym]
+map_homsymbp [in Combi.MPoly.homogsym]
+map_homsymbh [in Combi.MPoly.homogsym]
+map_homsymbe [in Combi.MPoly.homogsym]
+map_homsymbm [in Combi.MPoly.homogsym]
+map_homsyms [in Combi.MPoly.homogsym]
+map_homsymp [in Combi.MPoly.homogsym]
+map_homsymh [in Combi.MPoly.homogsym]
+map_homsyme [in Combi.MPoly.homogsym]
+map_homsymm [in Combi.MPoly.homogsym]
+map_homsym_is_scalable [in Combi.MPoly.homogsym]
+map_homsym_is_zmod_morphism [in Combi.MPoly.homogsym]
+map_sympoly_d_homog [in Combi.MPoly.homogsym]
+map_filter_comp [in Combi.SSRcomplements.tools]
+map_mpolyX [in Combi.MPoly.antisym]
+map_finer_pblock [in Combi.Combi.setpartition]
+map_finer_in [in Combi.Combi.setpartition]
+map_finer_subset [in Combi.Combi.setpartition]
+map_syms [in Combi.MPoly.sympoly]
+map_symp_prod [in Combi.MPoly.sympoly]
+map_symp [in Combi.MPoly.sympoly]
+map_symh_prod [in Combi.MPoly.sympoly]
+map_symh [in Combi.MPoly.sympoly]
+map_syme_prod [in Combi.MPoly.sympoly]
+map_syme [in Combi.MPoly.sympoly]
+map_symm [in Combi.MPoly.sympoly]
+map_sympoly_is_scalable [in Combi.MPoly.sympoly]
+map_sympoly_is_monoid_morphism [in Combi.MPoly.sympoly]
+map_sympoly_is_zmod_morphism [in Combi.MPoly.sympoly]
+map_mpoly_issym [in Combi.MPoly.sympoly]
+mask_injP [in Combi.Combi.subseq]
+mask1E [in Combi.Combi.subseq]
+maxLb [in Combi.Basic.ordtype]
+maxLP [in Combi.Basic.ordtype]
+maxLPt [in Combi.Basic.ordtype]
+maxL_iota_n [in Combi.Basic.ordtype]
+maxL_iota [in Combi.Basic.ordtype]
+maxL_LbR [in Combi.Basic.ordtype]
+maxL_perm [in Combi.Basic.ordtype]
+maxL_cat [in Combi.Basic.ordtype]
+maxpermK [in Combi.SymGroup.presentSn]
+maxpermV [in Combi.SymGroup.presentSn]
+maxXL [in Combi.Basic.ordtype]
+mcoeffXU [in Combi.MPoly.sympoly]
+mcoeff_symbs [in Combi.MPoly.homogsym]
+mcoeff_alt [in Combi.MPoly.antisym]
+mcoeff_arbound [in Combi.MPoly.antisym]
+mcoeff_alt_SchurE [in Combi.MPoly.Schur_altdef]
+mcoeff_symm [in Combi.MPoly.sympoly]
+mcoeff_symm_pol [in Combi.MPoly.sympoly]
+mcoeff_symh [in Combi.MPoly.sympoly]
+mcoeff_symh_pol [in Combi.MPoly.sympoly]
+mcoeff_symh_pol_bound [in Combi.MPoly.sympoly]
+mdeg_tnth_monsY [in Combi.MPoly.Cauchy]
+mdeg_monX [in Combi.MPoly.Cauchy]
+mdeg_rho [in Combi.MPoly.antisym]
+mdeg_mpart [in Combi.MPoly.antisym]
+mem_std [in Combi.Combi.std]
+mem_drop_enumI [in Combi.SSRcomplements.tools]
+mem_take_enumI [in Combi.SSRcomplements.tools]
+mem_takeP [in Combi.SSRcomplements.tools]
+mem_enum_box_in [in Combi.Combi.partition]
+mem_enum_box_skew [in Combi.Combi.partition]
+mem_enum_bintreesz [in Combi.Combi.bintree]
+mem_cast [in Combi.SSRcomplements.ordcast]
+mem_shsh [in Combi.LRrule.shuffle]
+mem_sfilterleqK [in Combi.LRrule.shuffle]
+mem_shuffle [in Combi.LRrule.shuffle]
+mem_shuffle_pred [in Combi.LRrule.shuffle]
+mem_shuffle_predU [in Combi.LRrule.shuffle]
+mem_shape_vect_n_k [in Combi.Combi.vectNK]
+mem_enum_seqE [in Combi.LRrule.Greene]
+mem_RSclass [in Combi.LRrule.Schensted]
+mem_prefixesP [in Combi.Combi.Dyckword]
+mem_preim_partition [in Combi.Combi.Dyckword]
+mem_to_word [in Combi.Combi.tableau]
+mem_enum_ordtreesz [in Combi.Combi.ordtree]
+mem_pblock_setpart [in Combi.Combi.setpartition]
+mem_setpart_pblock [in Combi.Combi.setpartition]
+mem_eq_pblock [in Combi.Combi.setpartition]
+mem_pblockC [in Combi.Combi.setpartition]
+mem_enum_permuted [in Combi.Combi.permuted]
+mem_fiber [in Combi.Combi.fibered_set]
+mem_Delta [in Combi.SymGroup.presentSn]
+mem_partsum_gt [in Combi.Combi.composition]
+mem_partsum_non0 [in Combi.Combi.composition]
+merge_cons [in Combi.Combi.partition]
+merge_sortedE [in Combi.Combi.partition]
+merge_is_part [in Combi.Combi.partition]
+mesymlm_rbound [in Combi.MPoly.antisym]
+mesym_SchurE [in Combi.MPoly.Schur_mpoly]
+mfun2_simpl [in ALEA.Ccpo]
+mindropeqC [in Combi.Combi.skewpart]
+mindropeq_non0 [in Combi.Combi.skewpart]
+mindropeq_nthP [in Combi.Combi.skewpart]
+mindropeq_cons_neq [in Combi.Combi.skewpart]
+mindropeq_cons_eq [in Combi.Combi.skewpart]
+mindropeq_nil [in Combi.Combi.skewpart]
+mindropeq_leq [in Combi.Combi.skewpart]
+mindropeq_eq [in Combi.Combi.skewpart]
+mindropeq0 [in Combi.Combi.skewpart]
+minhE [in Combi.Combi.Dyckword]
+minhP [in Combi.Combi.Dyckword]
+minh_rrw [in Combi.Combi.Dyckword]
+minh_neg [in Combi.Combi.Dyckword]
+minSS [in Combi.SSRcomplements.tools]
+Minvl [in Combi.Basic.unitriginv]
+Minvr [in Combi.Basic.unitriginv]
+Minv_lincombr [in Combi.Basic.unitriginv]
+Minv_lincombl [in Combi.Basic.unitriginv]
+Minv_unitrig [in Combi.Basic.unitriginv]
+Minv_uni [in Combi.Basic.unitriginv]
+Minv_trig [in Combi.Basic.unitriginv]
+mk_isglb [in ALEA.Ccpo]
+mlead_antisym_sorted [in Combi.MPoly.antisym]
+Mlet_assoc [in ALEA.Qmeasure]
+Mlet_ext [in ALEA.Qmeasure]
+Mlet_unit [in ALEA.Qmeasure]
+Mlet_eq_compat [in ALEA.Qmeasure]
+MLet_simpl [in ALEA.Qmeasure]
+Mlet_le_compat [in ALEA.Qmeasure]
+Mlet_simpl_eq [in ALEA.Qmeasure]
+Mlet_simpl [in ALEA.Qmeasure]
+mlub_lift_left [in ALEA.Ccpo]
+mlub_lift_right [in ALEA.Ccpo]
+mlub_le [in ALEA.Ccpo]
+mlub_eq_compat [in ALEA.Ccpo]
+mlub_le_compat [in ALEA.Ccpo]
+mnm_perm [in Combi.MPoly.antisym]
+mnm_n0E [in Combi.MPoly.sympoly]
+MN_coeffE [in Combi.MPoly.MurnaghanNakayama]
+MN_coeff_rec_homogP [in Combi.MPoly.MurnaghanNakayama]
+MN_coeff_recP [in Combi.MPoly.MurnaghanNakayama]
+MN_coeff_rec_consE [in Combi.MPoly.MurnaghanNakayama]
+MN_coeff_rec_notincl [in Combi.MPoly.MurnaghanNakayama]
+MN_coeff_rec_szE [in Combi.MPoly.MurnaghanNakayama]
+MN_coeff_homogP [in Combi.MPoly.MurnaghanNakayama]
+MN_coeffP [in Combi.MPoly.MurnaghanNakayama]
+MN_coeffP_int [in Combi.MPoly.MurnaghanNakayama]
+MN_coeff_consE [in Combi.MPoly.MurnaghanNakayama]
+MN_coeff0 [in Combi.MPoly.MurnaghanNakayama]
+monotonic_sym [in ALEA.Ccpo]
+monotonic_intro [in ALEA.Ccpo]
+monotonic2_sym [in ALEA.Ccpo]
+monsYK [in Combi.MPoly.Cauchy]
+monsY_bij [in Combi.MPoly.Cauchy]
+mons2mE [in Combi.MPoly.Schur_mpoly]
+mon_ord_equiv_simpl [in ALEA.Ccpo]
+mon_fun_eq [in ALEA.Ccpo]
+mon_fun_eq_monotonic [in ALEA.Ccpo]
+mon_eq_compat [in ALEA.Ccpo]
+mon_le_compat [in ALEA.Ccpo]
+mon_simpl [in ALEA.Ccpo]
+mon2_fun2 [in ALEA.Ccpo]
+mon2_le_compat [in ALEA.Ccpo]
+mon2_simpl [in ALEA.Ccpo]
+mon2_elim2 [in ALEA.Ccpo]
+mon2_elim1 [in ALEA.Ccpo]
+morph_eltr [in Combi.SymGroup.presentSn]
+mpartE [in Combi.MPoly.antisym]
+mpartK [in Combi.MPoly.antisym]
+mpartS [in Combi.MPoly.Schur_altdef]
+mpart_partm_perm [in Combi.MPoly.antisym]
+mpart_is_dominant [in Combi.MPoly.antisym]
+mpart0 [in Combi.MPoly.antisym]
+mseq_lift_right_left [in ALEA.Ccpo]
+mseq_lift_right_le_compat [in ALEA.Ccpo]
+mseq_lift_right_simpl [in ALEA.Ccpo]
+mseq_lift_left_le_compat [in ALEA.Ccpo]
+mseq_lift_left_simpl [in ALEA.Ccpo]
+mshift_continuous2 [in ALEA.Ccpo]
+mshift_le_compat [in ALEA.Ccpo]
+mshift_simpl [in ALEA.Ccpo]
+mshift2_eq [in ALEA.Ccpo]
+Mstable_linear [in ALEA.Qmeasure]
+Mstable_mull [in ALEA.Qmeasure]
+Mstable_divi [in ALEA.Qmeasure]
+Mstable_muli [in ALEA.Qmeasure]
+Mstable_addi [in ALEA.Qmeasure]
+Mstable_divn [in ALEA.Qmeasure]
+Mstable_subn [in ALEA.Qmeasure]
+Mstable_addn [in ALEA.Qmeasure]
+Mstable_add [in ALEA.Qmeasure]
+Mstable_opp [in ALEA.Qmeasure]
+Mstable_eq [in ALEA.Qmeasure]
+Mstable0 [in ALEA.Qmeasure]
+msuppX1 [in Combi.MPoly.antisym]
+msym_pihomog [in Combi.MPoly.homogsym]
+msym_map_mpoly [in Combi.MPoly.antisym]
+msym_fundamental_symh_un [in Combi.MPoly.sympoly]
+multinomialE [in Combi.Combi.multinomial]
+multinomial_filter_neq0 [in Combi.Combi.multinomial]
+multinomial_cat [in Combi.Combi.multinomial]
+multinomial_factd [in Combi.Combi.multinomial]
+multinomial_nseq1 [in Combi.Combi.multinomial]
+multinomial_nseq [in Combi.Combi.multinomial]
+multinomial_fact [in Combi.Combi.multinomial]
+multinomial0 [in Combi.Combi.multinomial]
+multinomial1 [in Combi.Combi.multinomial]
+multinomial2 [in Combi.Combi.multinomial]
+mult_altern_pmap [in Combi.MPoly.MurnaghanNakayama]
+mult_altern_oapp [in Combi.MPoly.MurnaghanNakayama]
+mult_altern_symp_pol [in Combi.MPoly.MurnaghanNakayama]
+mult_syme_U [in Combi.MPoly.sympoly]
+mult_symh_powersum [in Combi.MPoly.sympoly]
+mult_symh_U [in Combi.MPoly.sympoly]
+mul_ek_pk [in Combi.MPoly.sympoly]
+mul_ek_p1 [in Combi.MPoly.sympoly]
+Munit_eq_compat [in ALEA.Qmeasure]
+Munit_simpl_eq [in ALEA.Qmeasure]
+Munit_simpl [in ALEA.Qmeasure]
+Murnaghan_NakayamaCT [in Combi.SymGroup.Frobenius_char]
+Murnaghan_Nakayama_char [in Combi.SymGroup.Frobenius_char]
+mu_pos_cond [in ALEA.Qmeasure]
+mu_bool_cond [in ALEA.Qmeasure]
+mu_in_seq [in ALEA.Qmeasure]
+mu_stable_sum [in ALEA.Qmeasure]
+mu_random_sum [in ALEA.Qmeasure]
+mu_uniform_sum [in ALEA.Qmeasure]
+mu_bool_negb1 [in ALEA.Qmeasure]
+mu_bool_negb [in ALEA.Qmeasure]
+mu_bool_negb0 [in ALEA.Qmeasure]
+mu_bool_impl1 [in ALEA.Qmeasure]
+mu_bool_impl [in ALEA.Qmeasure]
+mu_bool_0le [in ALEA.Qmeasure]
+mu_bool_le1 [in ALEA.Qmeasure]
+mu_eq_compat [in ALEA.Qmeasure]
+mu_le_compat [in ALEA.Qmeasure]
+mu_stable_inv_inv [in ALEA.Qmeasure]
+mu_stable_mulr [in ALEA.Qmeasure]
+mu_cte [in ALEA.Qmeasure]
+mu_stable_le1 [in ALEA.Qmeasure]
+mu_stable_pos [in ALEA.Qmeasure]
+mu_add_zero [in ALEA.Qmeasure]
+mu_stable_mull [in ALEA.Qmeasure]
+mu_stable_add [in ALEA.Qmeasure]
+mu_stable_inv [in ALEA.Qmeasure]
+mu_one_eq [in ALEA.Qmeasure]
+mu_zero_eq [in ALEA.Qmeasure]
+mu_zero [in ALEA.Qmeasure]
+mu_stable_eq [in ALEA.Qmeasure]
+mu_monotonic [in ALEA.Qmeasure]
+mu_walk_to_corner_is_trace [in Combi.HookFormula.hook]
+mwmwgt_homogP [in Combi.MPoly.sympoly]
+mxvec_indexK [in Combi.MPoly.Cauchy]
+

N

+nat_monotonic_inv [in ALEA.Ccpo]
+nat_monotonic [in ALEA.Ccpo]
+nat_mx_repr [in Combi.SymGroup.reprSn]
+nat_compare_specT [in ALEA.Misc]
+nbump_bumprowE [in Combi.LRrule.Schensted]
+nbump_ins_rconsE [in Combi.LRrule.Schensted]
+nbump_size_ins [in Combi.LRrule.Schensted]
+nbump_inspos_eq_size [in Combi.LRrule.Schensted]
+nbump_insposE [in Combi.LRrule.Schensted]
+nbump_mininspredE [in Combi.LRrule.Schensted]
+nbump_bumprow_rconsE [in Combi.LRrule.plactic]
+ncfuniCT_Ind [in Combi.SymGroup.towerSn]
+ncfuniCT_gen [in Combi.SymGroup.towerSn]
+neig4boxE [in Combi.Combi.skewpart]
+neig4box_sym [in Combi.Combi.skewpart]
+neig4_sym [in Combi.Combi.skewpart]
+Neq_lt_0 [in ALEA.Misc]
+neq0zcard [in Combi.SymGroup.permcent]
+neq0zcoeff [in Combi.SymGroup.towerSn]
+Newton_syme [in Combi.MPoly.sympoly]
+Newton_syme1 [in Combi.MPoly.sympoly]
+Newton_symh1 [in Combi.MPoly.sympoly]
+Newton_symh [in Combi.MPoly.sympoly]
+NirrSn [in Combi.SymGroup.reprSn]
+NirrS2 [in Combi.SymGroup.reprSn]
+Nlt0_le1 [in ALEA.Misc]
+nohasincr_setdiff [in Combi.MPoly.Schur_altdef]
+non_decr_equiv [in Combi.SSRcomplements.sorted]
+NoSetContainingBoth.extract_swap_set [in Combi.LRrule.Greene_inv]
+NoSetContainingBoth.Hcast [in Combi.LRrule.Greene_inv]
+NoSetContainingBoth.ksupp_Q [in Combi.LRrule.Greene_inv]
+NoSetContainingBoth.size_cover_Q [in Combi.LRrule.Greene_inv]
+NoSetContainingBoth.swap_set_inj [in Combi.LRrule.Greene_inv]
+notbump [in Combi.LRrule.Schensted]
+notin0_part [in Combi.Combi.partition]
+not_hasincr_part [in Combi.MPoly.Schur_altdef]
+not_and_elim_right [in ALEA.Misc]
+not_and_elim_left [in ALEA.Misc]
+Npos [in ALEA.Misc]
+Nsucc_pred_pos [in ALEA.Misc]
+nth_sizeu2 [in Combi.Combi.std]
+nth_sizeu1 [in Combi.Combi.std]
+nth_sizeu [in Combi.Combi.std]
+nth_transp [in Combi.Combi.std]
+nth_set_nth_any [in Combi.SSRcomplements.tools]
+nth_set_nth_expand [in Combi.SSRcomplements.tools]
+nth_diff_shape [in Combi.Combi.partition]
+nth_pad [in Combi.Combi.partition]
+nth_conjE [in Combi.Combi.partition]
+nth_incr_first_n [in Combi.Combi.partition]
+nth_decr_nth_neq [in Combi.Combi.partition]
+nth_decr_nth [in Combi.Combi.partition]
+nth_rem_trail0 [in Combi.Combi.partition]
+nth_part_non0 [in Combi.Combi.partition]
+nth_std_pos [in Combi.LRrule.stdplact]
+nth_vctmin [in Combi.Combi.bintree]
+nth_add_setdiff [in Combi.MPoly.Schur_altdef]
+nth_lt_inspos [in Combi.LRrule.Schensted]
+nth_inspos_ins [in Combi.LRrule.Schensted]
+nth_pfminh [in Combi.Combi.Dyckword]
+nth_evalseq [in Combi.Combi.Yamanouchi]
+nth_add_ribbon_stop_lt [in Combi.Combi.skewpart]
+nth_add_ribbon_in [in Combi.Combi.skewpart]
+nth_add_ribbon_start [in Combi.Combi.skewpart]
+nth_add_ribbon_lt_start [in Combi.Combi.skewpart]
+nth_inspos [in Combi.Basic.ordtype]
+nth_rembig [in Combi.Basic.ordtype]
+nth_lt_posbig [in Combi.Basic.ordtype]
+nth_posbig [in Combi.Basic.ordtype]
+N2Nat_inj_pos [in ALEA.Misc]
+N2Nat_inj_le [in ALEA.Misc]
+N2Nat_inj_lt [in ALEA.Misc]
+N2Nat_le_mono [in ALEA.Misc]
+N2Nat_lt_mono [in ALEA.Misc]
+

O

+odd_cycle_type [in Combi.SymGroup.cycletype]
+odd_size_permE [in Combi.SymGroup.presentSn]
+odd_eltr [in Combi.SymGroup.presentSn]
+Oeq_trans [in ALEA.Ccpo]
+Oeq_le_sym [in ALEA.Ccpo]
+Oeq_le [in ALEA.Ccpo]
+Oeq_sym [in ALEA.Ccpo]
+Oeq_refl_eq [in ALEA.Ccpo]
+Oeq_refl [in ALEA.Ccpo]
+Ole_not_lt [in ALEA.Ccpo]
+Ole_lt_trans [in ALEA.Ccpo]
+Ole_notle_lt [in ALEA.Ccpo]
+Ole_diff_lt [in ALEA.Ccpo]
+Ole_eq_left [in ALEA.Ccpo]
+Ole_eq_right [in ALEA.Ccpo]
+Ole_eq_compat [in ALEA.Ccpo]
+Ole_antisym [in ALEA.Ccpo]
+Ole_refl [in ALEA.Ccpo]
+Ole_trans [in ALEA.Ccpo]
+Ole_refl_eq_inv [in ALEA.Ccpo]
+Ole_refl_eq [in ALEA.Ccpo]
+Olt_le_trans [in ALEA.Ccpo]
+Olt_antirefl [in ALEA.Ccpo]
+Olt_trans [in ALEA.Ccpo]
+Olt_notle [in ALEA.Ccpo]
+Olt_le [in ALEA.Ccpo]
+Olt_neq_rev [in ALEA.Ccpo]
+Olt_neq [in ALEA.Ccpo]
+Olt_eq_compat [in ALEA.Ccpo]
+omegahomsym_rmorph [in Combi.MPoly.homogsym]
+omegahomsym_is_linear [in Combi.MPoly.homogsym]
+omegahomsym_subproof [in Combi.MPoly.homogsym]
+omegasfK [in Combi.MPoly.sympoly]
+omegasf_syms [in Combi.MPoly.sympoly]
+omegasf_prodsymp [in Combi.MPoly.sympoly]
+omegasf_prodsymh [in Combi.MPoly.sympoly]
+omegasf_prodsyme [in Combi.MPoly.sympoly]
+omegasf_compsymh [in Combi.MPoly.sympoly]
+omegasf_sympolyf_eval [in Combi.MPoly.sympoly]
+omegasf_homogE [in Combi.MPoly.sympoly]
+omegasf_homog [in Combi.MPoly.sympoly]
+omegasf_symp [in Combi.MPoly.sympoly]
+omegasf_symh [in Combi.MPoly.sympoly]
+omegasf_syme [in Combi.MPoly.sympoly]
+omegasf_is_monoid_morphism [in Combi.MPoly.sympoly]
+omegasf_is_linear [in Combi.MPoly.sympoly]
+omegasf_is_symmetric [in Combi.MPoly.sympoly]
+omega_homsymp [in Combi.MPoly.homogsym]
+omega_homsyms [in Combi.MPoly.homogsym]
+omega_homsyme [in Combi.MPoly.homogsym]
+omega_homsymh [in Combi.MPoly.homogsym]
+omega_Fchar [in Combi.SymGroup.Frobenius_char]
+omega_Fchar_inv [in Combi.SymGroup.Frobenius_char]
+one_letter_included [in Combi.LRrule.implem]
+one_letter_choicesP [in Combi.LRrule.implem]
+orc_intro [in ALEA.Misc]
+orc_right [in ALEA.Misc]
+orc_left [in ALEA.Misc]
+order_cyclic [in Combi.SymGroup.cycles]
+OrdNode_inj [in Combi.Combi.ordtree]
+OrdSetoid [in ALEA.Ccpo]
+ordtreeszP [in Combi.Combi.ordtree]
+ord_to_bintreeK [in Combi.Combi.ordtree]
+ord0_in_map_liftF [in Combi.LRrule.Greene]
+outer_shape_pad0 [in Combi.Combi.partition]
+outer_shapeK [in Combi.Combi.partition]
+outputSpecP [in Combi.LRrule.implem]
+outputSpec_count_mem [in Combi.LRrule.implem]
+out_perm_prod [in Combi.SymGroup.cycles]
+

P

+partdomP [in Combi.Combi.partition]
+partdomshP [in Combi.Combi.partition]
+partdomsh_merge [in Combi.Combi.partition]
+partdomsh_merge1 [in Combi.Combi.partition]
+partdomsh_cons2E [in Combi.Combi.partition]
+partdomsh_cons2 [in Combi.Combi.partition]
+partdomsh_add [in Combi.Combi.partition]
+partdom_union_intpart [in Combi.Combi.partition]
+partdom_union_intpartr [in Combi.Combi.partition]
+partdom_union_intpartl [in Combi.Combi.partition]
+partdom_consK [in Combi.Combi.partition]
+partdom_anti [in Combi.Combi.partition]
+partdom_trans [in Combi.Combi.partition]
+partdom_refl [in Combi.Combi.partition]
+partdom_nil [in Combi.Combi.partition]
+partition_psupport [in Combi.SymGroup.cycles]
+partition_porbits [in Combi.SymGroup.cycles]
+partmE [in Combi.MPoly.antisym]
+partmK [in Combi.MPoly.antisym]
+partmP [in Combi.MPoly.antisym]
+partm_permK [in Combi.MPoly.antisym]
+partnCTE [in Combi.SymGroup.cycletype]
+partnCTK [in Combi.SymGroup.cycletype]
+partnCT_congr [in Combi.SymGroup.cycletype]
+partsums_cons [in Combi.Combi.composition]
+partsums_cat [in Combi.Combi.composition]
+part_rem_corner_ind [in Combi.Combi.partition]
+part_nseq1P [in Combi.Combi.partition]
+part_includedP [in Combi.Combi.partition]
+part_sumn_rectangle [in Combi.Combi.partition]
+part_eqP [in Combi.Combi.partition]
+part_leq_head [in Combi.Combi.partition]
+part_head_non0 [in Combi.Combi.partition]
+part_head0F [in Combi.Combi.partition]
+part_yam_of_stdtab [in Combi.Combi.stdtab]
+part_rcons_ind [in Combi.Combi.Yamanouchi]
+part_set1_eq [in Combi.Combi.setpartition]
+part_ordinal1 [in Combi.Combi.setpartition]
+part_ordinal0 [in Combi.Combi.setpartition]
+part_sumn_count [in Combi.MPoly.sympoly]
+part_of_comp_subproof [in Combi.Combi.composition]
+part_is_comp [in Combi.Combi.composition]
+part0 [in Combi.Combi.partition]
+path_braidred_catl [in Combi.SymGroup.presentSn]
+pblock_trivsetpart [in Combi.Combi.setpartition]
+pblock_setpart1 [in Combi.Combi.setpartition]
+pblock_notin [in Combi.Combi.setpartition]
+pblock_in [in Combi.Combi.setpartition]
+pchar0_algC [in Combi.MPoly.Cauchy]
+pchar0_rat [in Combi.MPoly.Cauchy]
+pchar0_algC [in Combi.MPoly.homogsym]
+pchar0_algC [in Combi.SymGroup.Frobenius_char]
+pchar0_rat [in Combi.SymGroup.Frobenius_char]
+permCTP [in Combi.SymGroup.cycletype]
+permCT_colpartn [in Combi.SymGroup.cycletype]
+permCT_colpartn_card [in Combi.SymGroup.cycletype]
+permCT_exists [in Combi.SymGroup.cycletype]
+permcyclesC [in Combi.SymGroup.permcent]
+permcyclesK [in Combi.SymGroup.permcent]
+permcyclesM [in Combi.SymGroup.permcent]
+permcyclesP [in Combi.SymGroup.permcent]
+permcycles_inj [in Combi.SymGroup.permcent]
+permKP [in Combi.SSRcomplements.permcomp]
+PermLattice.Exports.bottom_perm [in Combi.SymGroup.weak_order]
+PermLattice.Exports.invset_join [in Combi.SymGroup.weak_order]
+PermLattice.Exports.perm_join_meetE [in Combi.SymGroup.weak_order]
+PermLattice.Exports.top_perm [in Combi.SymGroup.weak_order]
+PermLattice.infperm_is_meet [in Combi.SymGroup.weak_order]
+PermLattice.invset_supperm [in Combi.SymGroup.weak_order]
+PermLattice.suppermC [in Combi.SymGroup.weak_order]
+PermLattice.suppermP [in Combi.SymGroup.weak_order]
+PermLattice.suppermPl [in Combi.SymGroup.weak_order]
+PermLattice.suppermPr [in Combi.SymGroup.weak_order]
+PermLattice.supperm_is_join [in Combi.SymGroup.weak_order]
+permutedact_is_action [in Combi.Combi.permuted]
+permutedact_subproof [in Combi.Combi.permuted]
+permutedP [in Combi.Combi.permuted]
+permuted_action_trans [in Combi.Combi.permuted]
+perm_size_uniq [in Combi.Combi.std]
+perm_stdE [in Combi.Combi.std]
+perm_of_std [in Combi.Combi.std]
+perm_std [in Combi.Combi.std]
+perm_union_intpartn [in Combi.Combi.partition]
+perm_union_intpart [in Combi.Combi.partition]
+perm_enum_basis [in Combi.MPoly.Schur_mpoly]
+perm_smalln [in Combi.MPoly.antisym]
+perm_mpart_partm [in Combi.MPoly.antisym]
+perm_partm [in Combi.MPoly.antisym]
+perm_mpart [in Combi.MPoly.antisym]
+perm_sfilterleq [in Combi.LRrule.shuffle]
+perm_sfiltergtn [in Combi.LRrule.shuffle]
+perm_shiftn_std [in Combi.LRrule.shuffle]
+perm_shuffle [in Combi.LRrule.shuffle]
+perm_join_tab [in Combi.Combi.skewtab]
+perm_KostkaMon [in Combi.MPoly.Schur_altdef]
+perm_RS [in Combi.LRrule.Schensted]
+perm_tabword_of_tuple [in Combi.LRrule.freeSchur]
+perm_commword [in Combi.LRrule.freeSchur]
+perm_multinomial [in Combi.Combi.multinomial]
+perm_append_nth [in Combi.Combi.stdtab]
+perm_of_setpartE [in Combi.SymGroup.cycletype]
+perm_of_porbitE [in Combi.SymGroup.cycletype]
+perm_of_porbit_subproof [in Combi.SymGroup.cycletype]
+perm_decE [in Combi.SymGroup.cycles]
+perm_evalseq [in Combi.Combi.Yamanouchi]
+perm_display [in Combi.SymGroup.weak_order]
+perm_eq_permuted_tuple [in Combi.Combi.permuted]
+perm_invar_congr [in Combi.Basic.congr]
+perm_invar [in Combi.Basic.congr]
+perm_bound [in Combi.Basic.congr]
+perm_rembig [in Combi.Basic.ordtype]
+perm_allLtnE [in Combi.Basic.ordtype]
+perm_allLtn [in Combi.Basic.ordtype]
+perm_allLeqE [in Combi.Basic.ordtype]
+perm_allLeq [in Combi.Basic.ordtype]
+perm_on_prods_length [in Combi.SymGroup.presentSn]
+perm_on_prods_length_ord [in Combi.SymGroup.presentSn]
+perm_on_prods [in Combi.SymGroup.presentSn]
+perm_on_cocode_recP [in Combi.SymGroup.presentSn]
+perm_of_invsetK [in Combi.SymGroup.presentSn]
+perm_of_relP [in Combi.SymGroup.presentSn]
+pfminhE [in Combi.Combi.Dyckword]
+pfminhP [in Combi.Combi.Dyckword]
+pfminh_rrw [in Combi.Combi.Dyckword]
+pfminh_pos [in Combi.Combi.Dyckword]
+pfminh_min [in Combi.Combi.Dyckword]
+pfminh_size [in Combi.Combi.Dyckword]
+Pieri_colpartn [in Combi.LRrule.therule]
+Pieri_rowpartn [in Combi.LRrule.therule]
+pihomog_sym [in Combi.MPoly.homogsym]
+pihomog_mPo [in Combi.MPoly.sympoly]
+plactic_RS [in Combi.LRrule.Greene_inv]
+plactic_shapeRS [in Combi.LRrule.Greene_inv]
+plactic_shapeRS_row_proof [in Combi.LRrule.Greene_inv]
+plactic_filter_lt [in Combi.LRrule.plactic]
+plactic_filter_le [in Combi.LRrule.plactic]
+plactic_filter_gt [in Combi.LRrule.plactic]
+plactic_filter_ge [in Combi.LRrule.plactic]
+plactruleP [in Combi.LRrule.plactic]
+plactrule_homog [in Combi.LRrule.plactic]
+plactrule_sym [in Combi.LRrule.plactic]
+plact_changeUT [in Combi.LRrule.freeSchur]
+plact_changeUT_drop [in Combi.LRrule.freeSchur]
+plact_changeUT_take [in Combi.LRrule.freeSchur]
+plact_from_yam [in Combi.LRrule.Yam_plact]
+plact_map_in_incr [in Combi.LRrule.plactic]
+plact_from_dualE [in Combi.LRrule.plactic]
+plact_dualE [in Combi.LRrule.plactic]
+plact_from_revdual [in Combi.LRrule.plactic]
+plact_revdual [in Combi.LRrule.plactic]
+plact_uniq_revE [in Combi.LRrule.plactic]
+plact_uniq_rev [in Combi.LRrule.plactic]
+plact_col [in Combi.LRrule.plactic]
+plact_row [in Combi.LRrule.plactic]
+plact_homog [in Combi.LRrule.plactic]
+plact_is_congr [in Combi.LRrule.plactic]
+plact_trans [in Combi.LRrule.plactic]
+plact_ltrans [in Combi.LRrule.plactic]
+plact_sym [in Combi.LRrule.plactic]
+plact_refl [in Combi.LRrule.plactic]
+plact_equiv [in Combi.LRrule.plactic]
+plact1dual [in Combi.LRrule.plactic]
+plact1I [in Combi.LRrule.plactic]
+plact1idual [in Combi.LRrule.plactic]
+plact1iP [in Combi.LRrule.plactic]
+plact1i_homog [in Combi.LRrule.plactic]
+plact1P [in Combi.LRrule.plactic]
+plact1_ge [in Combi.LRrule.plactic]
+plact1_homog [in Combi.LRrule.plactic]
+plact2dual [in Combi.LRrule.plactic]
+plact2I [in Combi.LRrule.plactic]
+plact2idual [in Combi.LRrule.plactic]
+plact2iP [in Combi.LRrule.plactic]
+plact2i_homog [in Combi.LRrule.plactic]
+plact2P [in Combi.LRrule.plactic]
+plact2_ge [in Combi.LRrule.plactic]
+plact2_homog [in Combi.LRrule.plactic]
+polXY_scaleAr [in Combi.MPoly.Cauchy]
+polXY_scaleAl [in Combi.MPoly.Cauchy]
+polX_XY_is_linear [in Combi.MPoly.Cauchy]
+polX_XY_is_monoid_morphism [in Combi.MPoly.Cauchy]
+polX_XY_is_zmod_morphism [in Combi.MPoly.Cauchy]
+polyXY_scale [in Combi.MPoly.Cauchy]
+polyX_inj [in Combi.MPoly.antisym]
+polY_XY_is_linear [in Combi.MPoly.Cauchy]
+polY_XY_is_monoid_morphism [in Combi.MPoly.Cauchy]
+polY_XY_is_zmod_morphism [in Combi.MPoly.Cauchy]
+porbitgrpE [in Combi.SymGroup.permcent]
+porbitPb [in Combi.SymGroup.cycletype]
+porbits_tinj [in Combi.SymGroup.towerSn]
+porbits_tperm [in Combi.SymGroup.cycletype]
+porbits_perm_of_setpart [in Combi.SymGroup.cycletype]
+porbits_of_set [in Combi.SymGroup.cycletype]
+porbits_conjg [in Combi.SymGroup.cycletype]
+porbit_permcycles [in Combi.SymGroup.permcent]
+porbit_tinj_rshift [in Combi.SymGroup.towerSn]
+porbit_tinj_lshift [in Combi.SymGroup.towerSn]
+porbit_tpermR [in Combi.SymGroup.cycletype]
+porbit_tpermL [in Combi.SymGroup.cycletype]
+porbit_tpermD [in Combi.SymGroup.cycletype]
+porbit_set_of_set [in Combi.SymGroup.cycletype]
+porbit_conjg [in Combi.SymGroup.cycletype]
+porbit_cymap [in Combi.SymGroup.cycletype]
+porbit_cymapcan [in Combi.SymGroup.cycletype]
+porbit_set_of_disjoint [in Combi.SymGroup.cycles]
+porbit_set_restr [in Combi.SymGroup.cycles]
+porbit_restr_perm [in Combi.SymGroup.cycles]
+porbit_set_astabs [in Combi.SymGroup.cycles]
+porbit_set_eq0 [in Combi.SymGroup.cycles]
+porbit_mod [in Combi.SymGroup.cycles]
+porbit_fix [in Combi.SymGroup.cycles]
+posbigE [in Combi.Basic.ordtype]
+posbig_invseq [in Combi.LRrule.stdplact]
+posbig_take_dropE [in Combi.Basic.ordtype]
+posbig_size [in Combi.Basic.ordtype]
+posbig_size_cons [in Combi.Basic.ordtype]
+pqpair_inj [in Combi.LRrule.Schensted]
+predi_eltrpE [in Combi.MPoly.antisym]
+predi_eltrp [in Combi.MPoly.antisym]
+predLR_bij_LRsupport [in Combi.LRrule.freeSchur]
+pred_LRtriple_conj [in Combi.LRrule.shuffle]
+pred_LRtriple_fast_filter_gt [in Combi.LRrule.shuffle]
+pred_LRtriple_fast_bijLRyam [in Combi.LRrule.therule]
+pred0_std [in Combi.LRrule.shuffle]
+preimset_trivIset [in Combi.SSRcomplements.tools]
+preim_Dyck_of_balE [in Combi.Combi.Dyckword]
+presentation_S4 [in Combi.SymGroup.presentSn]
+presentation_S3 [in Combi.SymGroup.presentSn]
+presentation_S2 [in Combi.SymGroup.presentSn]
+presentation_Sn_eltr [in Combi.SymGroup.presentSn]
+prob_choose_corner_ends_at [in Combi.HookFormula.hook]
+prodsK [in Combi.SymGroup.presentSn]
+prodsV [in Combi.SymGroup.presentSn]
+prods_straighten [in Combi.SymGroup.presentSn]
+prods_reducesE [in Combi.SymGroup.presentSn]
+prods_wordcd_inj [in Combi.SymGroup.presentSn]
+prods_codesz_bij [in Combi.SymGroup.presentSn]
+prods_iota_ltmi [in Combi.SymGroup.presentSn]
+prods_iota_mi [in Combi.SymGroup.presentSn]
+prod_sympXY [in Combi.MPoly.Cauchy]
+prod_conjg [in Combi.SymGroup.towerSn]
+prod_hook_length_quot_row [in Combi.HookFormula.hook]
+prod_of_disjoint [in Combi.SymGroup.cycles]
+prod_homog [in Combi.MPoly.sympoly]
+prod_prodgen [in Combi.MPoly.sympoly]
+prod_gen_cast [in Combi.MPoly.sympoly]
+prod_gen_colpartn [in Combi.MPoly.sympoly]
+prod_genM [in Combi.MPoly.sympoly]
+prod_gen0 [in Combi.MPoly.sympoly]
+prod_gen_homog [in Combi.MPoly.sympoly]
+psupports_perm_of_porbit [in Combi.SymGroup.cycletype]
+psupport_perm_of_porbit [in Combi.SymGroup.cycletype]
+psupport_conjg [in Combi.SymGroup.cycletype]
+psupport_of_disjoint [in Combi.SymGroup.cycles]
+psupport_disjointC [in Combi.SymGroup.cycles]
+psupport_cycle_dec [in Combi.SymGroup.cycles]
+psupport_restr_perm [in Combi.SymGroup.cycles]
+psupport_restr_perm_incl [in Combi.SymGroup.cycles]
+psupport_card_porbit [in Combi.SymGroup.cycles]
+psupport_stable [in Combi.SymGroup.cycles]
+psupport_eq0 [in Combi.SymGroup.cycles]
+psupport_perm_on [in Combi.SymGroup.cycles]
+psupport_expg [in Combi.SymGroup.cycles]
+psupport1 [in Combi.SymGroup.cycles]
+pyampair_inj [in Combi.LRrule.Schensted]
+

R

+Random_in_range [in ALEA.Qmeasure]
+Random_eq_out [in ALEA.Qmeasure]
+Random_eq_in [in ALEA.Qmeasure]
+Random_simpl [in ALEA.Qmeasure]
+rcast_com [in Combi.LRrule.Greene]
+rconsK [in Combi.SSRcomplements.tools]
+rcons_nilF [in Combi.SSRcomplements.tools]
+rcons_set_nth [in Combi.SSRcomplements.tools]
+rcons_bal_of_Dyck [in Combi.Combi.Dyckword]
+rcons_rcons [in Combi.LRrule.plactic]
+rec_tree [in Combi.Combi.ordtree]
+reducedM [in Combi.SymGroup.presentSn]
+reducedP [in Combi.SymGroup.presentSn]
+reduced_braid [in Combi.SymGroup.presentSn]
+reduced_wcord [in Combi.SymGroup.presentSn]
+reduced_rconsK [in Combi.SymGroup.presentSn]
+reduced_consK [in Combi.SymGroup.presentSn]
+reduced_catl [in Combi.SymGroup.presentSn]
+reduced_catr [in Combi.SymGroup.presentSn]
+reduced_sprod_code [in Combi.SymGroup.presentSn]
+reduced_revE [in Combi.SymGroup.presentSn]
+reduced_rev [in Combi.SymGroup.presentSn]
+reduced_iiF [in Combi.SymGroup.presentSn]
+reduced_nil [in Combi.SymGroup.presentSn]
+reduceP [in Combi.SymGroup.presentSn]
+reducesP [in Combi.SymGroup.presentSn]
+reduces_catl [in Combi.SymGroup.presentSn]
+RefinementOrder.botEcompnref [in Combi.Combi.composition]
+RefinementOrder.compnref_rev [in Combi.Combi.composition]
+RefinementOrder.compnref_display [in Combi.Combi.composition]
+RefinementOrder.descset_colcompn [in Combi.Combi.composition]
+RefinementOrder.descset_rowcompn [in Combi.Combi.composition]
+RefinementOrder.descset_join [in Combi.Combi.composition]
+RefinementOrder.descset_meet [in Combi.Combi.composition]
+RefinementOrder.descset_mono [in Combi.Combi.composition]
+RefinementOrder.leEcompnref [in Combi.Combi.composition]
+RefinementOrder.topEcompnref [in Combi.Combi.composition]
+RefinmentOrder.Exports.is_finer_subpartP [in Combi.Combi.setpartition]
+RefinmentOrder.Exports.join_finerE [in Combi.Combi.setpartition]
+RefinmentOrder.Exports.join_finer_eq_in_S [in Combi.Combi.setpartition]
+RefinmentOrder.Exports.setpart_topE [in Combi.Combi.setpartition]
+RefinmentOrder.Exports.setpart_bottomE [in Combi.Combi.setpartition]
+RefinmentOrder.is_finerP [in Combi.Combi.setpartition]
+RefinmentOrder.is_finer_setpart_anti [in Combi.Combi.setpartition]
+RefinmentOrder.is_finer_trans [in Combi.Combi.setpartition]
+RefinmentOrder.is_finer_refl [in Combi.Combi.setpartition]
+RefinmentOrder.is_finer_pblockP [in Combi.Combi.setpartition]
+RefinmentOrder.join_finerP [in Combi.Combi.setpartition]
+RefinmentOrder.join_finerC [in Combi.Combi.setpartition]
+RefinmentOrder.join_finer_equivalence [in Combi.Combi.setpartition]
+RefinmentOrder.le_join_finer [in Combi.Combi.setpartition]
+RefinmentOrder.le_meet_finer [in Combi.Combi.setpartition]
+RefinmentOrder.meet_finerP [in Combi.Combi.setpartition]
+RefinmentOrder.meet_finerC [in Combi.Combi.setpartition]
+RefinmentOrder.meet_finer_subproof [in Combi.Combi.setpartition]
+RefinmentOrder.mem_meet_finerP [in Combi.Combi.setpartition]
+RefinmentOrder.setpartfiner_display [in Combi.Combi.setpartition]
+RefinmentOrder.setpart_conn [in Combi.Combi.setpartition]
+RefinmentOrder.setpart1_bottom [in Combi.Combi.setpartition]
+RefinmentOrder.trivsetpart_top [in Combi.Combi.setpartition]
+rembigE [in Combi.Basic.ordtype]
+rembigP [in Combi.Basic.ordtype]
+rembig_ins_std [in Combi.Combi.std]
+rembig_RS [in Combi.LRrule.plactic]
+rembig_RS_last_big [in Combi.LRrule.plactic]
+rembig_plactcongr [in Combi.LRrule.plactic]
+rembig_plact [in Combi.LRrule.plactic]
+rembig_plact2i [in Combi.LRrule.plactic]
+rembig_plact2 [in Combi.LRrule.plactic]
+rembig_plact1i [in Combi.LRrule.plactic]
+rembig_plact1 [in Combi.LRrule.plactic]
+rembig_iota [in Combi.Basic.ordtype]
+rembig_uniq [in Combi.Basic.ordtype]
+rembig_subseq [in Combi.Basic.ordtype]
+rembig_rev_uniq [in Combi.Basic.ordtype]
+rembig_eq_permR [in Combi.Basic.ordtype]
+rembig_eq_permL [in Combi.Basic.ordtype]
+rembig_cat [in Combi.Basic.ordtype]
+rembig_catL [in Combi.Basic.ordtype]
+rembig_catR [in Combi.Basic.ordtype]
+remnP [in Combi.Combi.stdtab]
+rem_corner_conj_part [in Combi.Combi.partition]
+rem_corner_incr_first_nE [in Combi.Combi.partition]
+rem_corner_incr_first_n [in Combi.Combi.partition]
+rem_corners_uniq [in Combi.Combi.partition]
+rem_corner_incr_nth [in Combi.Combi.partition]
+rem_irr [in Combi.SymGroup.Frobenius_char]
+rem_irr1 [in Combi.SymGroup.Frobenius_char]
+repr_S2 [in Combi.SymGroup.reprSn]
+repr1 [in Combi.SymGroup.reprSn]
+repr1_S1 [in Combi.SymGroup.reprSn]
+repr1_S0 [in Combi.SymGroup.reprSn]
+reshape_index_walk_to [in Combi.HookFormula.hook]
+restr_perm_porbits [in Combi.SymGroup.permcent]
+restr_perm_genC [in Combi.SymGroup.permcent]
+restr_perm_inj [in Combi.SymGroup.cycles]
+restr_perm_psupportE [in Combi.SymGroup.cycles]
+restr_perm_neq [in Combi.SymGroup.cycles]
+res_tab_inj [in Combi.MPoly.Schur_altdef]
+res_tabK [in Combi.MPoly.Schur_altdef]
+res_tabP [in Combi.MPoly.Schur_altdef]
+revdualK [in Combi.LRrule.plactic]
+revsetK [in Combi.LRrule.Greene]
+rev_is_ksupp_col [in Combi.LRrule.Greene_inv]
+rev_is_ksupp_row [in Combi.LRrule.Greene_inv]
+rev_enum [in Combi.LRrule.Greene_inv]
+rev_ksuppKV [in Combi.LRrule.Greene_inv]
+rev_ksuppK [in Combi.LRrule.Greene_inv]
+rev_set_inj [in Combi.LRrule.Greene_inv]
+rev_ord_cast_inj [in Combi.LRrule.Greene_inv]
+rev_intcompnK [in Combi.Combi.composition]
+rev_intcompn_spec [in Combi.Combi.composition]
+rewrite_path_min [in Combi.Basic.congr]
+rewrite_path_sym [in Combi.Basic.congr]
+rewrite_path_trans [in Combi.Basic.congr]
+rho_uniq [in Combi.MPoly.antisym]
+rho_iota [in Combi.MPoly.antisym]
+ribbonE [in Combi.Combi.skewpart]
+ribbonP [in Combi.Combi.skewpart]
+ribbontb_start_subproof [in Combi.Combi.skewpart]
+ribbontb_stop_ltn [in Combi.Combi.skewpart]
+ribbon_textbookE [in Combi.Combi.skewpart]
+ribbon_textbook_on [in Combi.Combi.skewpart]
+ribbon_on_no_square [in Combi.Combi.skewpart]
+ribbon_on_conn4_skew [in Combi.Combi.skewpart]
+ribbon_on_conn4 [in Combi.Combi.skewpart]
+ribbon_on_conn4_box_ex [in Combi.Combi.skewpart]
+ribbon_on_box_exP [in Combi.Combi.skewpart]
+ribbon_on_box_exE [in Combi.Combi.skewpart]
+ribbon_addE [in Combi.Combi.skewpart]
+ribbon_on_addE [in Combi.Combi.skewpart]
+ribbon_startrem [in Combi.Combi.skewpart]
+ribbon_on_startrem [in Combi.Combi.skewpart]
+ribbon_on_startrem_acc [in Combi.Combi.skewpart]
+ribbon_on0_startrem [in Combi.Combi.skewpart]
+ribbon_sumn_diffE [in Combi.Combi.skewpart]
+ribbon_sumn_lt [in Combi.Combi.skewpart]
+ribbon_included [in Combi.Combi.skewpart]
+ribbon_from_included [in Combi.Combi.skewpart]
+ribbon_mindropeq [in Combi.Combi.skewpart]
+ribbon_from_mindropeq [in Combi.Combi.skewpart]
+ribbon_fromP [in Combi.Combi.skewpart]
+ribbon_on_inj [in Combi.Combi.skewpart]
+ribbon_on_sumn [in Combi.Combi.skewpart]
+ribbon_on_startE [in Combi.Combi.skewpart]
+ribbon_on_stopE [in Combi.Combi.skewpart]
+ribbon_on_mindropeq [in Combi.Combi.skewpart]
+ribbon_on_height [in Combi.Combi.skewpart]
+ribbon_on_stop_lt [in Combi.Combi.skewpart]
+ribbon_on_start_le [in Combi.Combi.skewpart]
+ribbon_on_included [in Combi.Combi.skewpart]
+ribbon_on_is_skew [in Combi.Combi.skewpart]
+ribbon_on_nth_leq [in Combi.Combi.skewpart]
+ribbon_on_start_stop [in Combi.Combi.skewpart]
+ribbon_onSS [in Combi.Combi.skewpart]
+ribbon_noneq [in Combi.Combi.skewpart]
+ribbon_from_noneq [in Combi.Combi.skewpart]
+ribbon_consK [in Combi.Combi.skewpart]
+ribbon_from_impl [in Combi.Combi.skewpart]
+rightcomb_rotationsE [in Combi.Combi.bintree]
+rightcomb_rotations [in Combi.Combi.bintree]
+right_sizesK [in Combi.Combi.bintree]
+right_sizesP [in Combi.Combi.bintree]
+right_sizes_cat_left [in Combi.Combi.bintree]
+right_sizes_from_left [in Combi.Combi.bintree]
+right_sizes_left_comb [in Combi.Combi.bintree]
+rotationP [in Combi.Combi.bintree]
+rotations_right_sizesP [in Combi.Combi.bintree]
+rotations_add_bounded [in Combi.Combi.bintree]
+rotations_add [in Combi.Combi.bintree]
+rotations_add_head [in Combi.Combi.bintree]
+rotations_vctleq_impl [in Combi.Combi.bintree]
+rotations_neq [in Combi.Combi.bintree]
+rotations_flip [in Combi.Combi.bintree]
+rotations_flip_impl [in Combi.Combi.bintree]
+rotations_right_sub [in Combi.Combi.bintree]
+rotations_left_sub [in Combi.Combi.bintree]
+rot_is_Dyck [in Combi.Combi.Dyckword]
+rot_pfminhE [in Combi.Combi.Dyckword]
+rowcompnP [in Combi.Combi.composition]
+rowpartnE [in Combi.Combi.partition]
+rowpartnSE [in Combi.Combi.partition]
+rowpartn_subproof [in Combi.Combi.partition]
+rowpartn0E [in Combi.Combi.partition]
+row_hb_strip [in Combi.Combi.skewtab]
+row_dominate [in Combi.Combi.tableau]
+row_lt_by_pos [in Combi.Combi.tableau]
+row_free1 [in Combi.SymGroup.reprSn]
+rrw_bal1 [in Combi.Combi.Dyckword]
+RSclassE [in Combi.LRrule.Schensted]
+RSclassP [in Combi.LRrule.Schensted]
+RSclass_countE [in Combi.LRrule.Schensted]
+rshift_in_lshift_recF [in Combi.LRrule.Greene]
+rshift_recP [in Combi.LRrule.Greene]
+RSinvstdE [in Combi.LRrule.stdplact]
+RSmapE [in Combi.LRrule.Schensted]
+RSmapinv2K [in Combi.LRrule.Schensted]
+RSmapK [in Combi.LRrule.Schensted]
+RSmap_std [in Combi.LRrule.stdplact]
+RSmap_spec [in Combi.LRrule.Schensted]
+RSpairyamQ [in Combi.LRrule.freeSchur]
+RSperm [in Combi.LRrule.Schensted]
+rsplit_rec_tab [in Combi.LRrule.Greene]
+RSstdE [in Combi.LRrule.Schensted]
+RStabE [in Combi.LRrule.freeSchur]
+RStabinvK [in Combi.LRrule.Schensted]
+RStabK [in Combi.LRrule.Schensted]
+RStabmapE [in Combi.LRrule.Schensted]
+RSTabmapstdE [in Combi.LRrule.stdplact]
+RStabmap_std [in Combi.LRrule.stdplact]
+RStabmap_spec [in Combi.LRrule.Schensted]
+rsymrel_total [in Combi.SymGroup.presentSn]
+rsymrel_trans [in Combi.SymGroup.presentSn]
+rsymrel_anti [in Combi.SymGroup.presentSn]
+rsymrel_refl [in Combi.SymGroup.presentSn]
+rsym_invsetP [in Combi.SymGroup.presentSn]
+rsym_invset_total [in Combi.SymGroup.presentSn]
+rsym_invset_trans [in Combi.SymGroup.presentSn]
+rsym_invset_anti [in Combi.SymGroup.presentSn]
+rsym_invset_refl [in Combi.SymGroup.presentSn]
+RS_rev_uniq [in Combi.LRrule.Greene_inv]
+RS_tabE [in Combi.LRrule.Greene_inv]
+RS_yam [in Combi.LRrule.Yam_plact]
+RS_yam_RS [in Combi.LRrule.Yam_plact]
+rtransP [in Combi.Basic.congr]
+rtrans_min [in Combi.Basic.congr]
+rtrans_ind [in Combi.Basic.congr]
+rule_gencongr [in Combi.Basic.congr]
+rule_congrrule [in Combi.Basic.congr]
+rule_rtrans [in Combi.Basic.congr]
+

S

+same_connect_rev [in Combi.Combi.skewpart]
+scale_polXYE [in Combi.MPoly.Cauchy]
+scale_polXYDl [in Combi.MPoly.Cauchy]
+scale_polXYDr [in Combi.MPoly.Cauchy]
+scale_polXY1m [in Combi.MPoly.Cauchy]
+scale_polXYA [in Combi.MPoly.Cauchy]
+SchurE [in Combi.LRrule.freeSchur]
+Schur_rowpartn [in Combi.MPoly.Schur_mpoly]
+Schur_oversize [in Combi.MPoly.Schur_mpoly]
+Schur_tabsh_readingE [in Combi.MPoly.Schur_mpoly]
+Schur_homog [in Combi.MPoly.Schur_altdef]
+Schur_sym [in Combi.MPoly.Schur_altdef]
+Schur_sym_idomain [in Combi.MPoly.Schur_altdef]
+Schur_cast [in Combi.MPoly.Schur_altdef]
+Schur_freeSchurE [in Combi.LRrule.freeSchur]
+Schur0 [in Combi.MPoly.Schur_mpoly]
+Schur1 [in Combi.MPoly.Schur_mpoly]
+Schutzenberger_shuffle_plact [in Combi.LRrule.shuffle]
+Sch_max_size [in Combi.LRrule.Schensted]
+Sch_leq_last [in Combi.LRrule.Schensted]
+Sch_exists [in Combi.LRrule.Schensted]
+Sch_size [in Combi.LRrule.Schensted]
+Sch_rcons [in Combi.LRrule.Schensted]
+Sch_plact [in Combi.LRrule.plactic]
+seq_masks_uniq [in Combi.Combi.subseq]
+setactC [in Combi.SSRcomplements.permcomp]
+setactI [in Combi.SSRcomplements.permcomp]
+setactU [in Combi.SSRcomplements.permcomp]
+setactU1 [in Combi.SSRcomplements.permcomp]
+setact0 [in Combi.SSRcomplements.permcomp]
+setact1 [in Combi.SSRcomplements.permcomp]
+SetContainingBothLeft.coverS1T1 [in Combi.LRrule.Greene_inv]
+SetContainingBothLeft.cover_bin [in Combi.LRrule.Greene_inv]
+SetContainingBothLeft.disjointS1T1 [in Combi.LRrule.Greene_inv]
+SetContainingBothLeft.enumUltV [in Combi.LRrule.Greene_inv]
+SetContainingBothLeft.exists_Qy [in Combi.LRrule.Greene_inv]
+SetContainingBothLeft.exists_Q_noboth [in Combi.LRrule.Greene_inv]
+SetContainingBothLeft.extract_bT [in Combi.LRrule.Greene_inv]
+SetContainingBothLeft.extract_Tb [in Combi.LRrule.Greene_inv]
+SetContainingBothLeft.extract_cS [in Combi.LRrule.Greene_inv]
+SetContainingBothLeft.extract_Sa [in Combi.LRrule.Greene_inv]
+SetContainingBothLeft.extract_T1E [in Combi.LRrule.Greene_inv]
+SetContainingBothLeft.extract_S1E [in Combi.LRrule.Greene_inv]
+SetContainingBothLeft.extract_swap_setSE [in Combi.LRrule.Greene_inv]
+SetContainingBothLeft.extract_SE [in Combi.LRrule.Greene_inv]
+SetContainingBothLeft.inPQE [in Combi.LRrule.Greene_inv]
+SetContainingBothLeft.ksupp_bin [in Combi.LRrule.Greene_inv]
+SetContainingBothLeft.ksupp_bnotin [in Combi.LRrule.Greene_inv]
+SetContainingBothLeft.posaS1_bin [in Combi.LRrule.Greene_inv]
+SetContainingBothLeft.posaT1_bin [in Combi.LRrule.Greene_inv]
+SetContainingBothLeft.posa_inTF [in Combi.LRrule.Greene_inv]
+SetContainingBothLeft.posbinSF [in Combi.LRrule.Greene_inv]
+SetContainingBothLeft.posb_inSF [in Combi.LRrule.Greene_inv]
+SetContainingBothLeft.posc_inTF [in Combi.LRrule.Greene_inv]
+SetContainingBothLeft.posc_subproof [in Combi.LRrule.Greene_inv]
+SetContainingBothLeft.Qbin_noboth [in Combi.LRrule.Greene_inv]
+SetContainingBothLeft.Qbnotin_noboth [in Combi.LRrule.Greene_inv]
+SetContainingBothLeft.RabcGtnX [in Combi.LRrule.Greene_inv]
+SetContainingBothLeft.RabcLeqX [in Combi.LRrule.Greene_inv]
+SetContainingBothLeft.size_cover_bnotin [in Combi.LRrule.Greene_inv]
+SetContainingBothLeft.sorted_extract_T1 [in Combi.LRrule.Greene_inv]
+SetContainingBothLeft.sorted_extract_S1 [in Combi.LRrule.Greene_inv]
+SetContainingBothLeft.sorted_extract_swap_set_S [in Combi.LRrule.Greene_inv]
+SetContainingBothLeft.sorted_extract_swap_set [in Combi.LRrule.Greene_inv]
+SetContainingBothLeft.ST_cover_disjoint [in Combi.LRrule.Greene_inv]
+SetContainingBothLeft.S1_subsST [in Combi.LRrule.Greene_inv]
+SetContainingBothLeft.tnth_posc [in Combi.LRrule.Greene_inv]
+SetContainingBothLeft.trivIset_Qbin [in Combi.LRrule.Greene_inv]
+SetContainingBothLeft.TSneq [in Combi.LRrule.Greene_inv]
+SetContainingBothLeft.TS_disjoint [in Combi.LRrule.Greene_inv]
+SetContainingBothLeft.T1_subsST [in Combi.LRrule.Greene_inv]
+setpartP [in Combi.Combi.setpartition]
+setpart_shape_imset [in Combi.Combi.partition]
+setpart_shape_union [in Combi.Combi.partition]
+setpart_shapeP [in Combi.Combi.partition]
+setpart_set1_eq_set1 [in Combi.Combi.setpartition]
+setpart_set0_eq_set0 [in Combi.Combi.setpartition]
+setpart_eq [in Combi.Combi.setpartition]
+setpart_subset [in Combi.Combi.setpartition]
+setpart_non0 [in Combi.Combi.setpartition]
+setpart1_subproof [in Combi.Combi.setpartition]
+setU1E [in Combi.SSRcomplements.tools]
+set_nth_non_nil [in Combi.SSRcomplements.tools]
+set_nth_rcons [in Combi.SSRcomplements.tools]
+set_head_default [in Combi.SSRcomplements.tools]
+set_nil [in Combi.LRrule.Greene]
+set_nth_LxR [in Combi.LRrule.plactic]
+set1_disjoint [in Combi.SSRcomplements.tools]
+sfiltergtn_invstd [in Combi.LRrule.shuffle]
+sfiltergtn_is_std [in Combi.LRrule.shuffle]
+sfilterleqE [in Combi.LRrule.shuffle]
+sfilterleqK [in Combi.LRrule.shuffle]
+sfilterleq_invstd [in Combi.LRrule.shuffle]
+sfilterleq_is_std [in Combi.LRrule.shuffle]
+sfilterleq_LRsupport_skew [in Combi.LRrule.therule]
+sfilterleq_LRsupportP [in Combi.LRrule.therule]
+shaped_hyper_stdtabnP [in Combi.LRrule.freeSchur]
+shape_invseq [in Combi.LRrule.stdplact]
+shape_RS_std [in Combi.LRrule.stdplact]
+shape_RS_revdual [in Combi.LRrule.Greene_inv]
+shape_join_tab_skew_reshape [in Combi.Combi.skewtab]
+shape_join_tab [in Combi.Combi.skewtab]
+shape_inner_filter_le [in Combi.Combi.skewtab]
+shape_skew_reshape [in Combi.Combi.skewtab]
+shape_tabcols [in Combi.LRrule.Greene]
+shape_res_tab_subproof [in Combi.MPoly.Schur_altdef]
+shape_RStabmapE [in Combi.LRrule.Schensted]
+shape_instabnrowinv1 [in Combi.LRrule.Schensted]
+shape_RSmap_eq [in Combi.LRrule.Schensted]
+shape_instabnrow [in Combi.LRrule.Schensted]
+shape_dropRS [in Combi.LRrule.freeSchur]
+shape_takeRS [in Combi.LRrule.freeSchur]
+shape_bij_LRsupport [in Combi.LRrule.freeSchur]
+shape_hyper_stdtabnP [in Combi.LRrule.freeSchur]
+shape_RS_yam [in Combi.LRrule.Yam_plact]
+shape_yamtab [in Combi.LRrule.Yam_plact]
+shape_conj_tab [in Combi.Combi.stdtab]
+shape_deg_stdtabn_of_sh [in Combi.Combi.stdtab]
+shape_stdtabsh [in Combi.Combi.stdtab]
+shape_yam_of_stdtab [in Combi.Combi.stdtab]
+shape_stdtab_of_yam [in Combi.Combi.stdtab]
+shape_append_nth [in Combi.Combi.stdtab]
+shape_map_tab [in Combi.Combi.tableau]
+shape_tabsh [in Combi.Combi.tableau]
+shape_bijLR [in Combi.LRrule.therule]
+shape0 [in Combi.Combi.stdtab]
+shcol_cards [in Combi.LRrule.Greene]
+shiftinv_pos_homo [in Combi.Basic.ordtype]
+shiftinv_posK [in Combi.Basic.ordtype]
+shiftn_skew_dominate [in Combi.LRrule.therule]
+shiftuK [in Combi.LRrule.shuffle]
+shift_plactcongr [in Combi.LRrule.shuffle]
+shift_le_compat [in ALEA.Ccpo]
+shift_simpl [in ALEA.Ccpo]
+shift_pos_mono [in Combi.Basic.ordtype]
+shift_posK [in Combi.Basic.ordtype]
+shrows_cards [in Combi.LRrule.Greene]
+shsh_sfilterleq [in Combi.LRrule.shuffle]
+shsh_sfiltergtn [in Combi.LRrule.shuffle]
+shuffleC [in Combi.LRrule.shuffle]
+shuffle_nil [in Combi.LRrule.shuffle]
+signed_mx_repr [in Combi.SymGroup.reprSn]
+sign_Chi2 [in Combi.SymGroup.reprSn]
+sign_char2 [in Combi.SymGroup.reprSn]
+sign_charP [in Combi.SymGroup.reprSn]
+sign_char_subproof [in Combi.SymGroup.reprSn]
+sign_irr [in Combi.SymGroup.reprSn]
+sign_mx_repr [in Combi.SymGroup.reprSn]
+SimpleCalculation [in Combi.HookFormula.hook]
+sizeIk [in Combi.LRrule.Greene]
+size_invstd [in Combi.Combi.std]
+size_invseq [in Combi.Combi.std]
+size_leq_invseq [in Combi.Combi.std]
+size_all_leq [in Combi.Combi.std]
+size_std [in Combi.Combi.std]
+size_std_rec [in Combi.Combi.std]
+size_sdtn [in Combi.Combi.std]
+size_enum_partn [in Combi.Combi.partition]
+size_enum_partns [in Combi.Combi.partition]
+size_enum_partnsk [in Combi.Combi.partition]
+size_hookpartn [in Combi.Combi.partition]
+size_rowpartn [in Combi.Combi.partition]
+size_colpartn [in Combi.Combi.partition]
+size_diff_shape [in Combi.Combi.partition]
+size_included [in Combi.Combi.partition]
+size_conj_part [in Combi.Combi.partition]
+size_incr_first_n [in Combi.Combi.partition]
+size_rem_trail0 [in Combi.Combi.partition]
+size_part [in Combi.Combi.partition]
+size_vctmin [in Combi.Combi.bintree]
+size_from_vct [in Combi.Combi.bintree]
+size_from_vct_acc [in Combi.Combi.bintree]
+size_right_sizes [in Combi.Combi.bintree]
+size_rotations [in Combi.Combi.bintree]
+size_flip [in Combi.Combi.bintree]
+size_leftcomb [in Combi.Combi.bintree]
+size_rightcomb [in Combi.Combi.bintree]
+size_left_branch [in Combi.Combi.bintree]
+size_cat_left [in Combi.Combi.bintree]
+size_from_left [in Combi.Combi.bintree]
+size_mem_enum_bintreeszP [in Combi.Combi.bintree]
+size_enum_bintreeszE [in Combi.Combi.bintree]
+size_enum_bintreesz [in Combi.Combi.bintree]
+size_Catalan_bin_leq [in Combi.Combi.bintree]
+size_tree_eq0 [in Combi.Combi.bintree]
+size_cover_rev [in Combi.LRrule.Greene_inv]
+size_rev_ksupp [in Combi.LRrule.Greene_inv]
+size_partm [in Combi.MPoly.antisym]
+size_langQ [in Combi.LRrule.shuffle]
+size_sfilterleq_cat [in Combi.LRrule.shuffle]
+size_sfiltergtn_cat [in Combi.LRrule.shuffle]
+size_sfilterleq [in Combi.LRrule.shuffle]
+size_sfiltergtn [in Combi.LRrule.shuffle]
+size_shuffle [in Combi.LRrule.shuffle]
+size_cut_k [in Combi.Combi.vectNK]
+size_join_tab [in Combi.Combi.skewtab]
+size_skew_reshape [in Combi.Combi.skewtab]
+size_row_extract [in Combi.LRrule.Greene]
+size_cover_tabcolsk [in Combi.LRrule.Greene]
+size_cover_tabrows [in Combi.LRrule.Greene]
+size_tabcols_cons [in Combi.LRrule.Greene]
+size_to_word_cons [in Combi.LRrule.Greene]
+size_tabrows [in Combi.LRrule.Greene]
+size_shrows [in Combi.LRrule.Greene]
+size_tabcols [in Combi.LRrule.Greene]
+size_shcols [in Combi.LRrule.Greene]
+size_shcols_cons [in Combi.LRrule.Greene]
+size_cover_inj [in Combi.LRrule.Greene]
+size_extract [in Combi.LRrule.Greene]
+size_coverI [in Combi.LRrule.Greene]
+size_RS [in Combi.LRrule.Schensted]
+size_instab [in Combi.LRrule.Schensted]
+size_invins [in Combi.LRrule.Schensted]
+size_RSmap2 [in Combi.LRrule.Schensted]
+size_ndec_Sch [in Combi.LRrule.Schensted]
+size_ins_non_0 [in Combi.LRrule.Schensted]
+size_ins_sup [in Combi.LRrule.Schensted]
+size_ins_inf [in Combi.LRrule.Schensted]
+size_tracel [in Combi.HookFormula.hook]
+size_tracer [in Combi.HookFormula.hook]
+size_hook_box_indices [in Combi.HookFormula.hook]
+size_RSmapinv2_yam [in Combi.LRrule.freeSchur]
+size_RS_tuple [in Combi.LRrule.freeSchur]
+size_bal_of_Dyck [in Combi.Combi.Dyckword]
+size_Dyck_of_bal [in Combi.Combi.Dyckword]
+size_UDn [in Combi.Combi.Dyckword]
+size_UnDn [in Combi.Combi.Dyckword]
+size_bintree_of_Dyck [in Combi.Combi.Dyckword]
+size_Dyck_of_bintree [in Combi.Combi.Dyckword]
+size_foldr_join_Dyck [in Combi.Combi.Dyckword]
+size_count_braceE [in Combi.Combi.Dyckword]
+size_conj_tab [in Combi.Combi.stdtab]
+size_tab_stdtabn [in Combi.Combi.stdtab]
+size_yam_of_stdtab [in Combi.Combi.stdtab]
+size_notin_stdtab_of_yam [in Combi.Combi.stdtab]
+size_yam_of_stdtab_rec [in Combi.Combi.stdtab]
+size_tab_remn [in Combi.Combi.stdtab]
+size_stdtab_of_yam [in Combi.Combi.stdtab]
+size_append_nth [in Combi.Combi.stdtab]
+size_cycle_type [in Combi.SymGroup.cycletype]
+size_revdual [in Combi.LRrule.plactic]
+size_plact [in Combi.LRrule.plactic]
+size_tabsh [in Combi.Combi.tableau]
+size_to_word [in Combi.Combi.tableau]
+size_zip2 [in Combi.LRrule.therule]
+size_leq_skew_reshape [in Combi.LRrule.therule]
+size_mem_enum_ordtreeszP [in Combi.Combi.ordtree]
+size_ord_to_bintree [in Combi.Combi.ordtree]
+size_bin_to_ordtree [in Combi.Combi.ordtree]
+size_tree_eq1 [in Combi.Combi.ordtree]
+size_ordtree_pos [in Combi.Combi.ordtree]
+size_ordtreeE [in Combi.Combi.ordtree]
+size_yamn [in Combi.Combi.Yamanouchi]
+size_yameval [in Combi.Combi.Yamanouchi]
+size_hyper_yam [in Combi.Combi.Yamanouchi]
+size_add_ribbon [in Combi.Combi.skewpart]
+size_count_mem_undup [in Combi.Combi.permuted]
+size_permuted_seq [in Combi.Combi.permuted]
+size_permuted_tuple [in Combi.Combi.permuted]
+size_invar_congr [in Combi.Basic.congr]
+size_invar_refl [in Combi.Basic.congr]
+size_invar [in Combi.Basic.congr]
+size_bound [in Combi.Basic.congr]
+size_rembig [in Combi.Basic.ordtype]
+size_straighten [in Combi.SymGroup.presentSn]
+size_inscode [in Combi.SymGroup.presentSn]
+size_braid [in Combi.SymGroup.presentSn]
+size_canword [in Combi.SymGroup.presentSn]
+size_cocode [in Combi.SymGroup.presentSn]
+size_cocode_rec [in Combi.SymGroup.presentSn]
+size_codesz [in Combi.SymGroup.presentSn]
+size_wordcd [in Combi.SymGroup.presentSn]
+size_LRyamtab_listE [in Combi.LRrule.implem]
+size_mpart_in_supp [in Combi.MPoly.sympoly]
+size_partsums [in Combi.Combi.composition]
+size_comp [in Combi.Combi.composition]
+skew_reshapeK [in Combi.Combi.skewtab]
+skew_dominate_cut [in Combi.Combi.skewtab]
+skew_dominate_consl [in Combi.Combi.skewtab]
+skew_dominate_no_overlap [in Combi.Combi.skewtab]
+skew_dominate_take [in Combi.Combi.skewtab]
+skew_dominate0 [in Combi.Combi.skewtab]
+skew_yam_included [in Combi.Combi.skewtab]
+skew_yam_catK [in Combi.Combi.skewtab]
+skew_yam_consK [in Combi.Combi.skewtab]
+skew_yam_catrK [in Combi.Combi.skewtab]
+skew_yam_cat [in Combi.Combi.skewtab]
+skew_nil_yamE [in Combi.Combi.skewtab]
+skew_yam_nil [in Combi.Combi.skewtab]
+sorted_geq_nth0E [in Combi.Combi.partition]
+sorted_geq_count_leq2E [in Combi.Combi.partition]
+sorted_std_extract [in Combi.LRrule.stdplact]
+sorted_gt_tabcols [in Combi.LRrule.Greene]
+sorted_leqX_tabrows [in Combi.LRrule.Greene]
+sorted_extract_cond [in Combi.LRrule.Greene]
+sorted_leq_last [in Combi.HookFormula.hook]
+sorted_in_leq_last [in Combi.HookFormula.hook]
+sorted_center [in Combi.LRrule.plactic]
+sorted_subseq_iota_rcons [in Combi.Combi.subseq]
+sorted_subseq_inP [in Combi.Combi.subseq]
+sorted_subseqP [in Combi.Combi.subseq]
+sorted_sumn_iotaE [in Combi.SSRcomplements.sorted]
+sorted_ltn_ind [in Combi.SSRcomplements.sorted]
+sorted_lt_by_pos [in Combi.SSRcomplements.sorted]
+sorted_last [in Combi.SSRcomplements.sorted]
+sorted_cons [in Combi.SSRcomplements.sorted]
+sorted_strictP [in Combi.SSRcomplements.sorted]
+sorted_rcons [in Combi.SSRcomplements.sorted]
+sorted_rconsK [in Combi.SSRcomplements.sorted]
+sorted_consK [in Combi.SSRcomplements.sorted]
+sorted_is_part [in Combi.LRrule.implem]
+sorted_ltn_partsums [in Combi.Combi.composition]
+sorted2P [in Combi.SSRcomplements.sorted]
+splitsetK [in Combi.LRrule.Greene]
+split_rec_cover [in Combi.LRrule.Greene]
+split_recabK [in Combi.LRrule.Greene]
+srelE [in Combi.SymGroup.presentSn]
+stable_intro [in ALEA.Ccpo]
+stab_iporbitsE [in Combi.SymGroup.permcent]
+stab_iporbitsE_prod [in Combi.SymGroup.permcent]
+stab_iporbits_map_inj [in Combi.SymGroup.permcent]
+stab_iporbits_homog [in Combi.SymGroup.permcent]
+stab_iporbits_stab [in Combi.SymGroup.permcent]
+stab_porbit [in Combi.SymGroup.permcent]
+stab_tuple_dprod [in Combi.Combi.permuted]
+stab_tuple_prod [in Combi.Combi.permuted]
+startremE [in Combi.Combi.skewpart]
+startrem_accP [in Combi.Combi.skewpart]
+startrem_accE [in Combi.Combi.skewpart]
+startrem_leq [in Combi.Combi.skewpart]
+startrem_leq_size [in Combi.Combi.skewpart]
+startrem_leq_pos [in Combi.Combi.skewpart]
+startrem_acc_geq [in Combi.Combi.skewpart]
+startrem0P [in Combi.Combi.skewpart]
+star_stable_sub [in ALEA.Qmeasure]
+star_le_compat [in ALEA.Qmeasure]
+star_monotonic [in ALEA.Qmeasure]
+star_stable_eq [in ALEA.Qmeasure]
+star_simpl [in ALEA.Qmeasure]
+stdP [in Combi.Combi.std]
+stdtabnP [in Combi.Combi.stdtab]
+stdtabn_of_sh_subproof [in Combi.Combi.stdtab]
+stdtabP [in Combi.Combi.stdtab]
+stdtabshP [in Combi.Combi.stdtab]
+stdtabsh_eval_to_word [in Combi.MPoly.Schur_altdef]
+stdtab_get_tabNE [in Combi.Combi.stdtab]
+stdtab_of_yamK [in Combi.Combi.stdtab]
+stdtab_of_yam_inj [in Combi.Combi.stdtab]
+stdtab_of_yam_nil [in Combi.Combi.stdtab]
+stdtab_of_yamP [in Combi.Combi.stdtab]
+stdwordnP [in Combi.Combi.std]
+std_cutabc [in Combi.Combi.std]
+std_transp [in Combi.Combi.std]
+std_drop_std [in Combi.Combi.std]
+std_take_std [in Combi.Combi.std]
+std_rconsK [in Combi.Combi.std]
+std_eq_invP [in Combi.Combi.std]
+std_specP [in Combi.Combi.std]
+std_spec_uniq [in Combi.Combi.std]
+std_eq_inv [in Combi.Combi.std]
+std_stdE [in Combi.Combi.std]
+std_std [in Combi.Combi.std]
+std_posbig [in Combi.Combi.std]
+std_rembig [in Combi.Combi.std]
+std_is_std [in Combi.Combi.std]
+std_max [in Combi.Combi.std]
+std_uniq [in Combi.Combi.std]
+std_perm [in Combi.Combi.std]
+std_rcons_shiftinv [in Combi.LRrule.stdplact]
+std_plact [in Combi.LRrule.stdplact]
+std_plact2 [in Combi.LRrule.stdplact]
+std_plact1 [in Combi.LRrule.stdplact]
+std_shsh [in Combi.LRrule.shuffle]
+std_of_yam [in Combi.Combi.stdtab]
+step_closed [in Combi.Basic.congr]
+step_mem [in Combi.Basic.congr]
+straighten_path_npos [in Combi.SymGroup.presentSn]
+subdescsetP [in Combi.Combi.composition]
+subdescset_partsumP [in Combi.Combi.composition]
+subenum_countE [in Combi.Basic.combclass]
+subseqsP [in Combi.Combi.subseq]
+subseqs_masks_uniq [in Combi.Combi.subseq]
+Subseqs_maskK [in Combi.Combi.subseq]
+subseq_take [in Combi.LRrule.Greene]
+subseq_rcons_neq [in Combi.Combi.subseq]
+subseq_rcons_eq [in Combi.Combi.subseq]
+subseq_partsumE [in Combi.Combi.composition]
+subset_imsetK [in Combi.SSRcomplements.tools]
+subset_abc [in Combi.LRrule.plactic]
+subset_set1 [in Combi.Combi.setpartition]
+subset_s_trans_s [in Combi.Basic.congr]
+subset_undup_step [in Combi.Basic.congr]
+subset_step [in Combi.Basic.congr]
+subType_unionE [in Combi.Basic.combclass]
+subType_seqP [in Combi.Basic.combclass]
+sub_enumE [in Combi.Basic.combclass]
+succ_neq0 [in ALEA.Qmeasure]
+sumndiff [in Combi.MPoly.Schur_altdef]
+sumnpSPE [in Combi.HookFormula.hook]
+sumn_sort [in Combi.SSRcomplements.tools]
+sumn_pred1_iota [in Combi.SSRcomplements.tools]
+sumn_nth_le [in Combi.SSRcomplements.tools]
+sumn_drop [in Combi.SSRcomplements.tools]
+sumn_take [in Combi.SSRcomplements.tools]
+sumn_mapE [in Combi.SSRcomplements.tools]
+sumn_map_condE [in Combi.SSRcomplements.tools]
+sumn_take_merge [in Combi.Combi.partition]
+sumn_union_part [in Combi.Combi.partition]
+sumn_intpartn [in Combi.Combi.partition]
+sumn_diff_shape [in Combi.Combi.partition]
+sumn_diff_shape_eq [in Combi.Combi.partition]
+sumn_included [in Combi.Combi.partition]
+sumn_take_inj [in Combi.Combi.partition]
+sumn_take_leq [in Combi.Combi.partition]
+sumn_conj_part [in Combi.Combi.partition]
+sumn_incr_first_n [in Combi.Combi.partition]
+sumn_decr_nth [in Combi.Combi.partition]
+sumn_incr_nth [in Combi.Combi.partition]
+sumn_rem_trail0 [in Combi.Combi.partition]
+sumn_right_sizes_gt [in Combi.Combi.bintree]
+sumn_partm [in Combi.MPoly.antisym]
+sumn_mpart [in Combi.MPoly.antisym]
+sumn_eval [in Combi.MPoly.Schur_altdef]
+sumn_shape_stdtabnE [in Combi.Combi.stdtab]
+sumn_diff_shape_intpartE [in Combi.LRrule.therule]
+sumn_add_ribbon [in Combi.Combi.skewpart]
+sumn_mapS [in Combi.Combi.skewpart]
+sumn_cocode [in Combi.SymGroup.presentSn]
+sum_take [in Combi.SSRcomplements.tools]
+sum_minn [in Combi.SSRcomplements.tools]
+sum_conj [in Combi.Combi.partition]
+sum_count_mem [in Combi.Basic.combclass]
+sum_syme_symh [in Combi.MPoly.sympoly]
+sum_symh_syme [in Combi.MPoly.sympoly]
+sum_symmE [in Combi.MPoly.sympoly]
+Swap.enum_cut [in Combi.LRrule.Greene_inv]
+Swap.pos0_subproof [in Combi.LRrule.Greene_inv]
+Swap.pos01F [in Combi.LRrule.Greene_inv]
+Swap.pos1_subproof [in Combi.LRrule.Greene_inv]
+Swap.size_cut_sizeu [in Combi.LRrule.Greene_inv]
+Swap.swapL [in Combi.LRrule.Greene_inv]
+Swap.swapR [in Combi.LRrule.Greene_inv]
+Swap.swap_size_cover [in Combi.LRrule.Greene_inv]
+Swap.swap_cover [in Combi.LRrule.Greene_inv]
+Swap.swap_set_inj [in Combi.LRrule.Greene_inv]
+Swap.swap_set_invol [in Combi.LRrule.Greene_inv]
+Swap.swap_inj [in Combi.LRrule.Greene_inv]
+Swap.swap_invol [in Combi.LRrule.Greene_inv]
+Swap.swap0 [in Combi.LRrule.Greene_inv]
+Swap.swap1 [in Combi.LRrule.Greene_inv]
+Swap.tnth_pos1 [in Combi.LRrule.Greene_inv]
+Swap.tnth_pos0 [in Combi.LRrule.Greene_inv]
+symbeE [in Combi.MPoly.homogsym]
+symbe_free [in Combi.MPoly.homogsym]
+symbe_basis [in Combi.MPoly.homogsym]
+symbhE [in Combi.MPoly.homogsym]
+symbh_free [in Combi.MPoly.homogsym]
+symbh_basis [in Combi.MPoly.homogsym]
+symbmE [in Combi.MPoly.homogsym]
+symbm_basis [in Combi.MPoly.homogsym]
+symbm_free [in Combi.MPoly.homogsym]
+symbpE [in Combi.MPoly.homogsym]
+symbp_free [in Combi.MPoly.homogsym]
+symbp_basis [in Combi.MPoly.homogsym]
+symbsE [in Combi.MPoly.homogsym]
+symbs_free [in Combi.MPoly.homogsym]
+symbs_basis [in Combi.MPoly.homogsym]
+symE [in Combi.MPoly.sympoly]
+syme_syms_partdom [in Combi.MPoly.sympoly]
+syme_syms [in Combi.MPoly.sympoly]
+syme_syms_partdom_int [in Combi.MPoly.sympoly]
+syme_syms_int [in Combi.MPoly.sympoly]
+syme_to_symh [in Combi.MPoly.sympoly]
+syme_symhE [in Combi.MPoly.sympoly]
+syme_cast [in Combi.MPoly.sympoly]
+syme_to_symm [in Combi.MPoly.sympoly]
+syme_homog [in Combi.MPoly.sympoly]
+syme_geqnE [in Combi.MPoly.sympoly]
+syme_sym [in Combi.MPoly.sympoly]
+syme0 [in Combi.MPoly.sympoly]
+syme1 [in Combi.MPoly.sympoly]
+symHE_intpartn [in Combi.MPoly.sympoly]
+symHE_intcompn [in Combi.MPoly.sympoly]
+symHE_prod_intcomp [in Combi.MPoly.sympoly]
+symHE_rec [in Combi.MPoly.sympoly]
+symhe1E [in Combi.MPoly.sympoly]
+symh_basisE [in Combi.MPoly.Schur_mpoly]
+symh_to_symp [in Combi.MPoly.sympoly]
+symh_to_symp_intpartn [in Combi.MPoly.sympoly]
+symh_to_symp_prod_partsum [in Combi.MPoly.sympoly]
+symh_syms_partdom [in Combi.MPoly.sympoly]
+symh_syms [in Combi.MPoly.sympoly]
+symh_syms_partdom_int [in Combi.MPoly.sympoly]
+symh_syms_int [in Combi.MPoly.sympoly]
+symh_to_syme [in Combi.MPoly.sympoly]
+symh_symeE [in Combi.MPoly.sympoly]
+symh_cast [in Combi.MPoly.sympoly]
+symh_to_symm [in Combi.MPoly.sympoly]
+symh_homog [in Combi.MPoly.sympoly]
+symh_sym [in Combi.MPoly.sympoly]
+symh_pol_any [in Combi.MPoly.sympoly]
+symh0 [in Combi.MPoly.sympoly]
+symmX [in Combi.MPoly.Cauchy]
+symm_syms_partdom [in Combi.MPoly.sympoly]
+symm_syms [in Combi.MPoly.sympoly]
+symm_syms_partdom_int [in Combi.MPoly.sympoly]
+symm_syms_int [in Combi.MPoly.sympoly]
+symm_cast [in Combi.MPoly.sympoly]
+symm_unique0 [in Combi.MPoly.sympoly]
+symm_unique [in Combi.MPoly.sympoly]
+symm_homog [in Combi.MPoly.sympoly]
+symm_oversize [in Combi.MPoly.sympoly]
+symm_sym [in Combi.MPoly.sympoly]
+symm0 [in Combi.MPoly.sympoly]
+sympe1E [in Combi.MPoly.sympoly]
+sympolP [in Combi.MPoly.sympoly]
+sympolyfK [in Combi.MPoly.sympoly]
+sympolyfP [in Combi.MPoly.sympoly]
+sympolyf_evalX [in Combi.MPoly.sympoly]
+sympolyf_evalK [in Combi.MPoly.sympoly]
+sympolyf_evalE [in Combi.MPoly.sympoly]
+sympolyf_is_monoid_morphism [in Combi.MPoly.sympoly]
+sympolyf_is_linear [in Combi.MPoly.sympoly]
+SymPolyHomogKey.homogsym1_key [in Combi.MPoly.homogsym]
+sympol_is_monoid_morphism [in Combi.MPoly.sympoly]
+sympol_is_linear [in Combi.MPoly.sympoly]
+sympol_inj [in Combi.MPoly.sympoly]
+sympXY [in Combi.MPoly.Cauchy]
+symp_cast [in Combi.MPoly.sympoly]
+symp_to_symm [in Combi.MPoly.sympoly]
+symp_homog [in Combi.MPoly.sympoly]
+symp_sym [in Combi.MPoly.sympoly]
+symp0 [in Combi.MPoly.sympoly]
+syms_prod_sympM [in Combi.MPoly.MurnaghanNakayama]
+syms_prod_sympM_int [in Combi.MPoly.MurnaghanNakayama]
+syms_sympM [in Combi.MPoly.MurnaghanNakayama]
+syms_sympM_pmap [in Combi.MPoly.MurnaghanNakayama]
+syms_sympM_oapp [in Combi.MPoly.MurnaghanNakayama]
+syms_sympM_oapp_int [in Combi.MPoly.MurnaghanNakayama]
+syms_syme_partdom [in Combi.MPoly.sympoly]
+syms_syme [in Combi.MPoly.sympoly]
+syms_symh_partdom [in Combi.MPoly.sympoly]
+syms_symh [in Combi.MPoly.sympoly]
+syms_syme_partdom_int [in Combi.MPoly.sympoly]
+syms_syme_int [in Combi.MPoly.sympoly]
+syms_symh_partdom_int [in Combi.MPoly.sympoly]
+syms_symh_int [in Combi.MPoly.sympoly]
+syms_symm_partdom [in Combi.MPoly.sympoly]
+syms_symm [in Combi.MPoly.sympoly]
+syms_symm_partdom_int [in Combi.MPoly.sympoly]
+syms_symm_int [in Combi.MPoly.sympoly]
+syms_symeM [in Combi.MPoly.sympoly]
+syms_symhM [in Combi.MPoly.sympoly]
+syms_symsM [in Combi.MPoly.sympoly]
+syms_cast [in Combi.MPoly.sympoly]
+syms_oversize [in Combi.MPoly.sympoly]
+syms_colpartn [in Combi.MPoly.sympoly]
+syms_rowpartn [in Combi.MPoly.sympoly]
+syms_homog [in Combi.MPoly.sympoly]
+syms0 [in Combi.MPoly.sympoly]
+syms1 [in Combi.MPoly.sympoly]
+sym_VanprodM [in Combi.MPoly.antisym]
+sym_antiE [in Combi.MPoly.antisym]
+sym_antisym_char_not2 [in Combi.MPoly.antisym]
+sym_anti [in Combi.MPoly.antisym]
+sym_smalln [in Combi.MPoly.antisym]
+sym_fundamental_symh [in Combi.MPoly.sympoly]
+sym_fundamental_symh_homog [in Combi.MPoly.sympoly]
+sym_fundamental_homog [in Combi.MPoly.sympoly]
+sym_symmE [in Combi.MPoly.sympoly]
+sztd [in Combi.Combi.skewpart]
+

T

+tabcols_cons [in Combi.LRrule.Greene]
+tabcol_cut [in Combi.LRrule.Greene]
+tableau_is_row [in Combi.Combi.tableau]
+tabnat_of_ordK [in Combi.MPoly.Schur_altdef]
+tabnat_of_ord_subproof [in Combi.MPoly.Schur_altdef]
+tabord_of_natK [in Combi.MPoly.Schur_altdef]
+tabord_of_nat_subproof [in Combi.MPoly.Schur_altdef]
+tabrowconst_subproof [in Combi.Combi.tableau]
+tabrows_non0 [in Combi.LRrule.Greene]
+tabshP [in Combi.Combi.tableau]
+tabsh_is_std [in Combi.MPoly.Schur_altdef]
+tabsh_reading_RSE [in Combi.LRrule.freeSchur]
+tabsh_reading_RSP [in Combi.LRrule.freeSchur]
+tabsh_to_wordK [in Combi.Combi.tableau]
+tabsh_readingP [in Combi.Combi.tableau]
+tabwordshape_col [in Combi.MPoly.Schur_mpoly]
+tabwordshape_row [in Combi.MPoly.Schur_mpoly]
+tabword_of_tuple_freeSchur [in Combi.LRrule.freeSchur]
+tabword_of_tuple_freeSchur_inj [in Combi.LRrule.freeSchur]
+tab_eval_partdom [in Combi.MPoly.Schur_altdef]
+tab_eqP [in Combi.Combi.tableau]
+tab0 [in Combi.Combi.tableau]
+take_enumI [in Combi.SSRcomplements.tools]
+take_drop_langQ [in Combi.LRrule.freeSchur]
+take_prefixes [in Combi.Combi.Dyckword]
+TamariLattice.botETamari [in Combi.Combi.bintree]
+TamariLattice.flipsz_join [in Combi.Combi.bintree]
+TamariLattice.flipsz_meet [in Combi.Combi.bintree]
+TamariLattice.leftcomb_bottom [in Combi.Combi.bintree]
+TamariLattice.rightcomb_top [in Combi.Combi.bintree]
+TamariLattice.right_sizes_meet [in Combi.Combi.bintree]
+TamariLattice.rotations_Tamari [in Combi.Combi.bintree]
+TamariLattice.TamariE [in Combi.Combi.bintree]
+TamariLattice.Tamari_vctleq [in Combi.Combi.bintree]
+TamariLattice.Tamari_flip [in Combi.Combi.bintree]
+TamariLattice.Tamari_anti [in Combi.Combi.bintree]
+TamariLattice.Tamari_trans [in Combi.Combi.bintree]
+TamariLattice.Tamari_refl [in Combi.Combi.bintree]
+TamariLattice.Tamari_sumn_right_sizes [in Combi.Combi.bintree]
+TamariLattice.TjoinP [in Combi.Combi.bintree]
+TamariLattice.TmeetC [in Combi.Combi.bintree]
+TamariLattice.TmeetP [in Combi.Combi.bintree]
+TamariLattice.TmeetPr [in Combi.Combi.bintree]
+TamariLattice.Tmeet_proof [in Combi.Combi.bintree]
+TamariLattice.topETamari [in Combi.Combi.bintree]
+TamariP [in Combi.Combi.bintree]
+Tamari_succ [in Combi.Combi.bintree]
+Tamari_display [in Combi.Combi.bintree]
+Tamari_add_bounded [in Combi.Combi.bintree]
+Tamari_add_min [in Combi.Combi.bintree]
+Tamari_add_head [in Combi.Combi.bintree]
+Tamari_cat [in Combi.Combi.bintree]
+Tamari_take [in Combi.Combi.bintree]
+Tamari_catr [in Combi.Combi.bintree]
+Tamari_drop [in Combi.Combi.bintree]
+Tamari_consP [in Combi.Combi.bintree]
+tclosureP [in Combi.SymGroup.weak_order]
+tclosure_Delta [in Combi.SymGroup.weak_order]
+tclosure_sub [in Combi.SymGroup.presentSn]
+Theorem2 [in Combi.HookFormula.hook]
+tinjA [in Combi.SymGroup.towerSn]
+tinjE1 [in Combi.SymGroup.towerSn]
+tinjval_inj [in Combi.SymGroup.towerSn]
+tinj_morphM [in Combi.SymGroup.towerSn]
+tinj1E [in Combi.SymGroup.towerSn]
+toDepRSPair [in Combi.LRrule.freeSchur]
+to_word_skew_reshape [in Combi.Combi.skewtab]
+to_word_yamtab [in Combi.LRrule.Yam_plact]
+to_maskK [in Combi.Combi.subseq]
+to_mask_spec [in Combi.Combi.subseq]
+to_word_map_tab [in Combi.Combi.tableau]
+to_word_enum_tabsh [in Combi.Combi.tableau]
+to_word_filter_nnil [in Combi.Combi.tableau]
+to_wordK [in Combi.Combi.tableau]
+to_word_rcons [in Combi.Combi.tableau]
+to_word_cons [in Combi.Combi.tableau]
+to_word_map_shiftn [in Combi.LRrule.therule]
+tpermC [in Combi.SymGroup.presentSn]
+tperm_conj [in Combi.SymGroup.cycletype]
+tperm_braid [in Combi.SymGroup.presentSn]
+trace_seqrP [in Combi.HookFormula.hook]
+trace_seqlP [in Combi.HookFormula.hook]
+trace_corner_box [in Combi.HookFormula.hook]
+trace_seq_uniq [in Combi.HookFormula.hook]
+trace_size_leg_length [in Combi.HookFormula.hook]
+trace_size_arm_length [in Combi.HookFormula.hook]
+transf [in Combi.LRrule.Schensted]
+transitive_DeltaI1 [in Combi.SymGroup.presentSn]
+transP [in Combi.Basic.congr]
+tree_encodeK [in Combi.Combi.bintree]
+trivIs [in Combi.LRrule.Greene]
+trivIseq_tabcols [in Combi.LRrule.Greene]
+trivIseq_shcols [in Combi.LRrule.Greene]
+trivIseq_shrows [in Combi.LRrule.Greene]
+trivIseq_map [in Combi.LRrule.Greene]
+trivIseq_cover [in Combi.LRrule.Greene]
+trivIseq_consK [in Combi.LRrule.Greene]
+trivIsetpart [in Combi.Combi.setpartition]
+trivIset_iporbits [in Combi.SymGroup.permcent]
+trivIset_coverD1 [in Combi.LRrule.Greene_inv]
+trivIset_coverU [in Combi.LRrule.Greene_inv]
+trivIset_coverU1 [in Combi.LRrule.Greene_inv]
+trivIset_setrev [in Combi.LRrule.Greene_inv]
+trivIset_tabcolsk [in Combi.LRrule.Greene]
+trivIset_tabrowsk [in Combi.LRrule.Greene]
+trivIset_I [in Combi.LRrule.Greene]
+trivIsubseq [in Combi.LRrule.Greene]
+trivsetpart_subproof [in Combi.Combi.setpartition]
+triv_part [in Combi.SSRcomplements.tools]
+triv_sign_not_sim [in Combi.SymGroup.reprSn]
+triv_sign_neq [in Combi.SymGroup.reprSn]
+triv_Chi [in Combi.SymGroup.reprSn]
+triv_irr [in Combi.SymGroup.reprSn]
+triv_mx_repr [in Combi.SymGroup.reprSn]
+tsumnE [in Combi.LRrule.implem]
+tval_tcastE [in Combi.SymGroup.reprSn]
+

U

+UDn_Dyck [in Combi.Combi.Dyckword]
+UnDn_Dyck [in Combi.Combi.Dyckword]
+undup_step [in Combi.Basic.congr]
+Uniform_def_ne [in ALEA.Qmeasure]
+Uniform_unif_seq_eq [in ALEA.Qmeasure]
+Uniform_in_seq [in ALEA.Qmeasure]
+Uniform_eq_out [in ALEA.Qmeasure]
+Uniform_eq_in [in ALEA.Qmeasure]
+Uniform_simpl [in ALEA.Qmeasure]
+union_intpartnE [in Combi.Combi.partition]
+union_intpartn_subproof [in Combi.Combi.partition]
+union_intpartA [in Combi.Combi.partition]
+union_intpartC [in Combi.Combi.partition]
+union_intpartE [in Combi.Combi.partition]
+union_intpart_subproof [in Combi.Combi.partition]
+uniq_wordperm [in Combi.Combi.std]
+uniq_next [in Combi.SSRcomplements.tools]
+uniq_sum_count_mem [in Combi.SSRcomplements.tools]
+uniq_vect_n_k [in Combi.Combi.vectNK]
+uniq_step [in Combi.Basic.congr]
+unitrigP [in Combi.Basic.unitriginv]
+unitrig_sum1rV [in Combi.Basic.unitriginv]
+unitrig_sumrV [in Combi.Basic.unitriginv]
+unitrig_sum1lV [in Combi.Basic.unitriginv]
+unitrig_sumlV [in Combi.Basic.unitriginv]
+unitrig_sum1r [in Combi.Basic.unitriginv]
+unitrig_sumr [in Combi.Basic.unitriginv]
+unitrig_sum1l [in Combi.Basic.unitriginv]
+unitrig_suml [in Combi.Basic.unitriginv]
+unitrig1 [in Combi.Basic.unitriginv]
+unit_stable_sub [in ALEA.Qmeasure]
+unit_monotonic [in ALEA.Qmeasure]
+unit_stable_eq [in ALEA.Qmeasure]
+unlift_seqE [in Combi.LRrule.Greene]
+usize_pos [in ALEA.Qmeasure]
+

V

+val_intpartn3 [in Combi.Combi.partition]
+val_intpartn2 [in Combi.Combi.partition]
+val_intpartn1 [in Combi.Combi.partition]
+val_intpartn0 [in Combi.Combi.partition]
+val_stdtabshcast [in Combi.Combi.stdtab]
+val_enum_subseqs [in Combi.Combi.subseq]
+val_omegasf [in Combi.MPoly.sympoly]
+val_descset [in Combi.Combi.composition]
+val2posE [in Combi.LRrule.stdplact]
+val2pos_enum [in Combi.LRrule.stdplact]
+val2pos_inj [in Combi.LRrule.stdplact]
+Vandet_VanprodE [in Combi.MPoly.antisym]
+Vanmx_antimE [in Combi.MPoly.antisym]
+Vanprod_alt [in Combi.MPoly.antisym]
+Vanprod_alt_int [in Combi.MPoly.antisym]
+Vanprod_dhomog [in Combi.MPoly.antisym]
+Vanprod_neq0 [in Combi.MPoly.antisym]
+Vanprod_coeff_rho [in Combi.MPoly.antisym]
+Vanprod_anti [in Combi.MPoly.antisym]
+vb_strip_lexi [in Combi.MPoly.Schur_altdef]
+vb_strip_rem_col0 [in Combi.MPoly.Schur_altdef]
+vb_strip_conjE [in Combi.Combi.skewpart]
+vb_strip_conj [in Combi.Combi.skewpart]
+vb_strip_diffP [in Combi.Combi.skewpart]
+vb_stripP [in Combi.Combi.skewpart]
+vb_strip_included [in Combi.Combi.skewpart]
+vctleqP [in Combi.Combi.bintree]
+vctleq_rotation [in Combi.Combi.bintree]
+vctleq_sumn_right_sizes [in Combi.Combi.bintree]
+vctleq_anti [in Combi.Combi.bintree]
+vctleq_trans [in Combi.Combi.bintree]
+vctleq_refl [in Combi.Combi.bintree]
+vctminC [in Combi.Combi.bintree]
+vctminP [in Combi.Combi.bintree]
+vctminPl [in Combi.Combi.bintree]
+vctminPr [in Combi.Combi.bintree]
+vctmin_Tamari [in Combi.Combi.bintree]
+vct_succ [in Combi.Combi.bintree]
+vecmx_indexK [in Combi.MPoly.Cauchy]
+vect_0_k [in Combi.Combi.vectNK]
+vect_n_kP [in Combi.Combi.vectNK]
+vect_n_k_in [in Combi.Combi.vectNK]
+

W

+walk_to_corner_decomp [in Combi.HookFormula.hook]
+walk_to_corner_emptyr [in Combi.HookFormula.hook]
+walk_to_corner_emptyl [in Combi.HookFormula.hook]
+walk_to_corner_inv [in Combi.HookFormula.hook]
+walk_to_corner_simpl [in Combi.HookFormula.hook]
+walk_to_corner_end_simpl [in Combi.HookFormula.hook]
+walk_to_corner0_simpl [in Combi.HookFormula.hook]
+wcordE [in Combi.SymGroup.presentSn]
+wcord_cons [in Combi.SymGroup.presentSn]
+WeakOrder.lepermP [in Combi.SymGroup.weak_order]
+WeakOrder.leperm_anti [in Combi.SymGroup.weak_order]
+WeakOrder.leperm_trans [in Combi.SymGroup.weak_order]
+WeakOrder.leperm_refl [in Combi.SymGroup.weak_order]
+WeakOrder.leperm_lengthE [in Combi.SymGroup.weak_order]
+WeakOrder.leperm_length [in Combi.SymGroup.weak_order]
+weight_is_unit [in ALEA.Qmeasure]
+weight_case [in ALEA.Qmeasure]
+weight_nonneg [in ALEA.Qmeasure]
+weight1_size [in ALEA.Qmeasure]
+wordcdE [in Combi.SymGroup.presentSn]
+wordcd_ltn [in Combi.SymGroup.presentSn]
+wordperm_inj [in Combi.Combi.std]
+wordperm_invP [in Combi.Combi.std]
+wordperm_std [in Combi.Combi.std]
+wordperm_iota [in Combi.Combi.std]
+

Y

+yamevalP [in Combi.Combi.Yamanouchi]
+yamnP [in Combi.Combi.Yamanouchi]
+yamn_partition_evalseq [in Combi.Combi.Yamanouchi]
+yamn_PredEq [in Combi.Combi.Yamanouchi]
+yamrowP [in Combi.LRrule.therule]
+yamtabP [in Combi.LRrule.Yam_plact]
+yamtab_unique [in Combi.LRrule.Yam_plact]
+yamtab_rcons [in Combi.LRrule.Yam_plact]
+yamtab_shift_countE [in Combi.LRrule.implem]
+yamtab_rows_countE [in Combi.LRrule.implem]
+yamtab_shift_is_row [in Combi.LRrule.implem]
+yamtab_rows_is_row [in Combi.LRrule.implem]
+yamtab_shift_dominate [in Combi.LRrule.implem]
+yamtab_rows_dominate [in Combi.LRrule.implem]
+yamtab_shift_size [in Combi.LRrule.implem]
+yamtab_rows_size [in Combi.LRrule.implem]
+yamtab_shift_included [in Combi.LRrule.implem]
+yamtab_rows_included [in Combi.LRrule.implem]
+yamtab_shiftP [in Combi.LRrule.implem]
+yamtab_rowsP [in Combi.LRrule.implem]
+yamtab_shift_drop [in Combi.LRrule.implem]
+yam_tail_non_nil [in Combi.LRrule.Schensted]
+yam_std_inj [in Combi.LRrule.Yam_plact]
+yam_plactic_shape [in Combi.LRrule.Yam_plact]
+yam_plactic_hyper [in Combi.LRrule.Yam_plact]
+yam_of_stdtabP [in Combi.Combi.stdtab]
+yam_of_stdtabK [in Combi.Combi.stdtab]
+yam_of_rowpart [in Combi.LRrule.therule]
+YmonK [in Combi.MPoly.Cauchy]
+Ymon_bij [in Combi.MPoly.Cauchy]
+YoungLattice.bottom_YoungE [in Combi.Combi.partition]
+YoungLattice.emptypart_bottom [in Combi.Combi.partition]
+YoungLattice.Exports.join_YoungE [in Combi.Combi.partition]
+YoungLattice.Exports.meet_YoungE [in Combi.Combi.partition]
+YoungLattice.Exports.nth_join_Young [in Combi.Combi.partition]
+YoungLattice.Exports.nth_meet_Young [in Combi.Combi.partition]
+YoungLattice.Exports.size_join_Young [in Combi.Combi.partition]
+YoungLattice.Exports.size_meet_Young [in Combi.Combi.partition]
+YoungLattice.join_YoungP [in Combi.Combi.partition]
+YoungLattice.join_YoungC [in Combi.Combi.partition]
+YoungLattice.join_Young_le [in Combi.Combi.partition]
+YoungLattice.join_Young_subproof [in Combi.Combi.partition]
+YoungLattice.le_Young_sumn [in Combi.Combi.partition]
+YoungLattice.le_YoungP [in Combi.Combi.partition]
+YoungLattice.le_YoungE [in Combi.Combi.partition]
+YoungLattice.le_Young_anti [in Combi.Combi.partition]
+YoungLattice.le_Young_trans [in Combi.Combi.partition]
+YoungLattice.le_Young_refl [in Combi.Combi.partition]
+YoungLattice.lt_Young_sumn [in Combi.Combi.partition]
+YoungLattice.meet_YoungP [in Combi.Combi.partition]
+YoungLattice.meet_Young_le [in Combi.Combi.partition]
+YoungLattice.meet_YoungC [in Combi.Combi.partition]
+YoungLattice.meet_Young_subproof [in Combi.Combi.partition]
+YoungLattice.nth_join_Young [in Combi.Combi.partition]
+YoungLattice.nth_meet_Young [in Combi.Combi.partition]
+YoungLattice.size_join_Young [in Combi.Combi.partition]
+YoungLattice.size_meet_Young [in Combi.Combi.partition]
+YoungLattice.Young_meetUl [in Combi.Combi.partition]
+YoungLattice.Young_display [in Combi.Combi.partition]
+Young_rule_partdom [in Combi.SymGroup.Frobenius_char]
+Young_rule [in Combi.SymGroup.Frobenius_char]
+Young_char [in Combi.SymGroup.Frobenius_char]
+

Z

+zcard_rem [in Combi.SymGroup.permcent]
+zcard_any [in Combi.SymGroup.permcent]
+zcard_nil [in Combi.SymGroup.permcent]
+zcoeffE [in Combi.SymGroup.towerSn]
+


+

Constructor Index

+

B

+BinLeaf [in Combi.Combi.bintree]
+BinNode [in Combi.Combi.bintree]
+

C

+Close [in Combi.Combi.Dyckword]
+continuous2_intro [in ALEA.Ccpo]
+cont_intro [in ALEA.Ccpo]
+CycleDecSpec [in Combi.SymGroup.cycles]
+

G

+GenCongr [in Combi.Basic.congr]
+

I

+IsInvset [in Combi.SymGroup.presentSn]
+

L

+LRTriple [in Combi.LRrule.shuffle]
+

M

+monotonic_def [in ALEA.Ccpo]
+monotonic2_intro [in ALEA.Ccpo]
+

O

+Open [in Combi.Combi.Dyckword]
+OrdNode [in Combi.Combi.ordtree]
+

R

+RefinmentOrder.MeetSpec [in Combi.Combi.setpartition]
+RelatSn [in Combi.SymGroup.presentSn]
+Rew [in Combi.Basic.congr]
+

S

+stable_def [in ALEA.Ccpo]
+stable2_intro [in ALEA.Ccpo]
+StdSpec [in Combi.Combi.std]
+


+

Projection Index

+

B

+bound [in Combi.Basic.congr]
+box_skewval [in Combi.Combi.partition]
+

C

+carrier [in Combi.Combi.fibered_set]
+cdval [in Combi.SymGroup.presentSn]
+cnval [in Combi.Combi.composition]
+coeff [in ALEA.Qmeasure]
+continuous2_intro [in ALEA.Ccpo]
+cont_intro [in ALEA.Ccpo]
+cval [in Combi.Combi.composition]
+

D

+Dbot [in ALEA.Ccpo]
+dyckword [in Combi.Combi.Dyckword]
+D0 [in ALEA.Ccpo]
+

E

+elt [in Combi.Combi.fibered_set]
+eval_eq [in Combi.LRrule.implem]
+eval_part [in Combi.LRrule.implem]
+Example1.one [in Combi.Basic.combclass]
+Example2.one [in Combi.Basic.combclass]
+Example3.one [in Combi.Basic.combclass]
+

F

+fbfun [in Combi.Combi.fibered_set]
+fbset [in Combi.Combi.fibered_set]
+fcontinuous [in ALEA.Ccpo]
+fcontm [in ALEA.Ccpo]
+fmonotonic [in ALEA.Ccpo]
+fmont [in ALEA.Ccpo]
+fs [in Combi.SymGroup.cycletype]
+fs_homog [in Combi.SymGroup.cycletype]
+fs_stab [in Combi.SymGroup.cycletype]
+

H

+Hbound [in Combi.Basic.congr]
+Hinvar_all [in Combi.Basic.congr]
+Hinvar_refl [in Combi.Basic.congr]
+homsym [in Combi.MPoly.homogsym]
+

I

+incl [in Combi.LRrule.implem]
+Inhabited.choice_hasChoice_mixin [in Combi.Basic.ordtype]
+Inhabited.class [in Combi.Basic.ordtype]
+Inhabited.eqtype_hasDecEq_mixin [in Combi.Basic.ordtype]
+Inhabited.ordtype_isInhabited_mixin [in Combi.Basic.ordtype]
+Inhabited.sort [in Combi.Basic.ordtype]
+InhFinite.choice_Choice_isCountable_mixin [in Combi.Basic.ordtype]
+InhFinite.choice_hasChoice_mixin [in Combi.Basic.ordtype]
+InhFinite.class [in Combi.Basic.ordtype]
+InhFinite.eqtype_hasDecEq_mixin [in Combi.Basic.ordtype]
+InhFinite.fintype_isFinite_mixin [in Combi.Basic.ordtype]
+InhFinite.ordtype_isInhabited_mixin [in Combi.Basic.ordtype]
+InhFinite.sort [in Combi.Basic.ordtype]
+InhFinLattice.choice_hasChoice_mixin [in Combi.Basic.ordtype]
+InhFinLattice.choice_Choice_isCountable_mixin [in Combi.Basic.ordtype]
+InhFinLattice.class [in Combi.Basic.ordtype]
+InhFinLattice.eqtype_hasDecEq_mixin [in Combi.Basic.ordtype]
+InhFinLattice.fintype_isFinite_mixin [in Combi.Basic.ordtype]
+InhFinLattice.Order_POrder_isJoinSemilattice_mixin [in Combi.Basic.ordtype]
+InhFinLattice.Order_POrder_isMeetSemilattice_mixin [in Combi.Basic.ordtype]
+InhFinLattice.Order_Preorder_isDuallyPOrder_mixin [in Combi.Basic.ordtype]
+InhFinLattice.Order_isDuallyPreorder_mixin [in Combi.Basic.ordtype]
+InhFinLattice.ordtype_isInhabited_mixin [in Combi.Basic.ordtype]
+InhFinLattice.sort [in Combi.Basic.ordtype]
+InhFinOrder.choice_hasChoice_mixin [in Combi.Basic.ordtype]
+InhFinOrder.choice_Choice_isCountable_mixin [in Combi.Basic.ordtype]
+InhFinOrder.class [in Combi.Basic.ordtype]
+InhFinOrder.eqtype_hasDecEq_mixin [in Combi.Basic.ordtype]
+InhFinOrder.fintype_isFinite_mixin [in Combi.Basic.ordtype]
+InhFinOrder.Order_DistrLattice_isTotal_mixin [in Combi.Basic.ordtype]
+InhFinOrder.Order_Lattice_isDistributive_mixin [in Combi.Basic.ordtype]
+InhFinOrder.Order_POrder_isJoinSemilattice_mixin [in Combi.Basic.ordtype]
+InhFinOrder.Order_POrder_isMeetSemilattice_mixin [in Combi.Basic.ordtype]
+InhFinOrder.Order_Preorder_isDuallyPOrder_mixin [in Combi.Basic.ordtype]
+InhFinOrder.Order_isDuallyPreorder_mixin [in Combi.Basic.ordtype]
+InhFinOrder.ordtype_isInhabited_mixin [in Combi.Basic.ordtype]
+InhFinOrder.sort [in Combi.Basic.ordtype]
+InhFinPOrder.choice_Choice_isCountable_mixin [in Combi.Basic.ordtype]
+InhFinPOrder.choice_hasChoice_mixin [in Combi.Basic.ordtype]
+InhFinPOrder.class [in Combi.Basic.ordtype]
+InhFinPOrder.eqtype_hasDecEq_mixin [in Combi.Basic.ordtype]
+InhFinPOrder.fintype_isFinite_mixin [in Combi.Basic.ordtype]
+InhFinPOrder.Order_Preorder_isDuallyPOrder_mixin [in Combi.Basic.ordtype]
+InhFinPOrder.Order_isDuallyPreorder_mixin [in Combi.Basic.ordtype]
+InhFinPOrder.ordtype_isInhabited_mixin [in Combi.Basic.ordtype]
+InhFinPOrder.sort [in Combi.Basic.ordtype]
+InhLattice.choice_hasChoice_mixin [in Combi.Basic.ordtype]
+InhLattice.class [in Combi.Basic.ordtype]
+InhLattice.eqtype_hasDecEq_mixin [in Combi.Basic.ordtype]
+InhLattice.Order_POrder_isJoinSemilattice_mixin [in Combi.Basic.ordtype]
+InhLattice.Order_POrder_isMeetSemilattice_mixin [in Combi.Basic.ordtype]
+InhLattice.Order_Preorder_isDuallyPOrder_mixin [in Combi.Basic.ordtype]
+InhLattice.Order_isDuallyPreorder_mixin [in Combi.Basic.ordtype]
+InhLattice.ordtype_isInhabited_mixin [in Combi.Basic.ordtype]
+InhLattice.sort [in Combi.Basic.ordtype]
+InhOrder.choice_hasChoice_mixin [in Combi.Basic.ordtype]
+InhOrder.class [in Combi.Basic.ordtype]
+InhOrder.eqtype_hasDecEq_mixin [in Combi.Basic.ordtype]
+InhOrder.Order_DistrLattice_isTotal_mixin [in Combi.Basic.ordtype]
+InhOrder.Order_Lattice_isDistributive_mixin [in Combi.Basic.ordtype]
+InhOrder.Order_POrder_isJoinSemilattice_mixin [in Combi.Basic.ordtype]
+InhOrder.Order_POrder_isMeetSemilattice_mixin [in Combi.Basic.ordtype]
+InhOrder.Order_Preorder_isDuallyPOrder_mixin [in Combi.Basic.ordtype]
+InhOrder.Order_isDuallyPreorder_mixin [in Combi.Basic.ordtype]
+InhOrder.ordtype_isInhabited_mixin [in Combi.Basic.ordtype]
+InhOrder.sort [in Combi.Basic.ordtype]
+InhPOrder.choice_hasChoice_mixin [in Combi.Basic.ordtype]
+InhPOrder.class [in Combi.Basic.ordtype]
+InhPOrder.eqtype_hasDecEq_mixin [in Combi.Basic.ordtype]
+InhPOrder.Order_Preorder_isDuallyPOrder_mixin [in Combi.Basic.ordtype]
+InhPOrder.Order_isDuallyPreorder_mixin [in Combi.Basic.ordtype]
+InhPOrder.ordtype_isInhabited_mixin [in Combi.Basic.ordtype]
+InhPOrder.sort [in Combi.Basic.ordtype]
+InhTBLattice.choice_hasChoice_mixin [in Combi.Basic.ordtype]
+InhTBLattice.class [in Combi.Basic.ordtype]
+InhTBLattice.eqtype_hasDecEq_mixin [in Combi.Basic.ordtype]
+InhTBLattice.Order_POrder_isJoinSemilattice_mixin [in Combi.Basic.ordtype]
+InhTBLattice.Order_POrder_isMeetSemilattice_mixin [in Combi.Basic.ordtype]
+InhTBLattice.Order_Preorder_isDuallyPOrder_mixin [in Combi.Basic.ordtype]
+InhTBLattice.Order_hasBottom_mixin [in Combi.Basic.ordtype]
+InhTBLattice.Order_hasTop_mixin [in Combi.Basic.ordtype]
+InhTBLattice.Order_isDuallyPreorder_mixin [in Combi.Basic.ordtype]
+InhTBLattice.ordtype_isInhabited_mixin [in Combi.Basic.ordtype]
+InhTBLattice.sort [in Combi.Basic.ordtype]
+inner_part [in Combi.LRrule.implem]
+invar [in Combi.Basic.congr]
+isInhabitedType.x [in Combi.Basic.ordtype]
+isInhabited.inh_ex [in Combi.Basic.ordtype]
+islub_le [in ALEA.Ccpo]
+IsoBottom.disp' [in Combi.Combi.composition]
+IsoBottom.f [in Combi.Combi.composition]
+IsoBottom.f_mono [in Combi.Combi.composition]
+IsoBottom.f_can [in Combi.Combi.composition]
+IsoBottom.f' [in Combi.Combi.composition]
+IsoBottom.f'_can [in Combi.Combi.composition]
+IsoBottom.T' [in Combi.Combi.composition]
+IsoTop.disp' [in Combi.Combi.composition]
+IsoTop.f [in Combi.Combi.composition]
+IsoTop.f_mono [in Combi.Combi.composition]
+IsoTop.f_can [in Combi.Combi.composition]
+IsoTop.f' [in Combi.Combi.composition]
+IsoTop.f'_can [in Combi.Combi.composition]
+IsoTop.T' [in Combi.Combi.composition]
+is_dyckword [in Combi.Combi.Dyckword]
+

L

+le_lub [in ALEA.Ccpo]
+le_islub [in ALEA.Ccpo]
+lub [in ALEA.Ccpo]
+lub_le [in ALEA.Ccpo]
+

M

+monotonic_def [in ALEA.Ccpo]
+monotonic2_intro [in ALEA.Ccpo]
+mu [in ALEA.Qmeasure]
+mu_prob [in ALEA.Qmeasure]
+mu_stable_sub [in ALEA.Qmeasure]
+

O

+Oeq [in ALEA.Ccpo]
+Ole [in ALEA.Ccpo]
+order_rel [in ALEA.Ccpo]
+order_eq [in ALEA.Ccpo]
+outer_part [in Combi.LRrule.implem]
+

P

+pnval [in Combi.Combi.partition]
+points [in ALEA.Qmeasure]
+pqpair [in Combi.LRrule.Schensted]
+pval [in Combi.Combi.partition]
+pyampair [in Combi.LRrule.Schensted]
+

R

+reflexive [in ALEA.Ccpo]
+

S

+SetContainingBothLeft.Hba [in Combi.LRrule.Greene_inv]
+SetContainingBothLeft.Hbax [in Combi.LRrule.Greene_inv]
+SetContainingBothLeft.Hbc [in Combi.LRrule.Greene_inv]
+SetContainingBothLeft.Hxba [in Combi.LRrule.Greene_inv]
+SetContainingBothLeft.Rtrans [in Combi.LRrule.Greene_inv]
+setpartval [in Combi.Combi.setpartition]
+shaps_eq [in Combi.LRrule.implem]
+skew [in Combi.LRrule.implem]
+stable_def [in ALEA.Ccpo]
+stable2_intro [in ALEA.Ccpo]
+stdtabnval [in Combi.Combi.stdtab]
+stdtabshval [in Combi.Combi.stdtab]
+stdwordnval [in Combi.Combi.std]
+subseqsval [in Combi.Combi.subseq]
+sumn_eq [in Combi.LRrule.implem]
+sympol [in Combi.MPoly.sympoly]
+

T

+tabshval [in Combi.Combi.tableau]
+tpval [in Combi.Combi.permuted]
+transitive [in ALEA.Ccpo]
+trval [in Combi.Combi.bintree]
+trval [in Combi.Combi.ordtree]
+

U

+upoints [in ALEA.Qmeasure]
+

W

+weight_pos [in ALEA.Qmeasure]
+

Y

+yamevalval [in Combi.Combi.Yamanouchi]
+yamnval [in Combi.Combi.Yamanouchi]
+yam_to_word [in Combi.LRrule.implem]
+


+

Inductive Index

+

B

+bintree [in Combi.Combi.bintree]
+brace [in Combi.Combi.Dyckword]
+

C

+continuous [in ALEA.Ccpo]
+continuous2 [in ALEA.Ccpo]
+cycle_dec_spec [in Combi.SymGroup.cycles]
+

G

+Generated_EquivCongruence [in Combi.Basic.congr]
+

I

+is_invset [in Combi.SymGroup.presentSn]
+

L

+LRtriple [in Combi.LRrule.shuffle]
+

M

+monotonic [in ALEA.Ccpo]
+monotonic2 [in ALEA.Ccpo]
+

O

+ordtree [in Combi.Combi.ordtree]
+

R

+RefinmentOrder.meet_spec [in Combi.Combi.setpartition]
+relat_Sn [in Combi.SymGroup.presentSn]
+rewrite_path [in Combi.Basic.congr]
+

S

+stable [in ALEA.Ccpo]
+stable2 [in ALEA.Ccpo]
+std_spec [in Combi.Combi.std]
+


+

Section Index

+

A

+AbelianBigOp [in Combi.SSRcomplements.tools]
+ActOnTuple [in Combi.Combi.permuted]
+AllLeqLtn [in Combi.Basic.ordtype]
+Alternant [in Combi.MPoly.Schur_altdef]
+Alternant.HasIncr [in Combi.MPoly.Schur_altdef]
+AlternIDomain [in Combi.MPoly.antisym]
+AlternIDomain.LeadingMonomial [in Combi.MPoly.antisym]
+AlternStraighten [in Combi.MPoly.Schur_altdef]
+AppendNth [in Combi.Combi.stdtab]
+Assoc [in Combi.SymGroup.towerSn]
+

B

+BalToDyck [in Combi.Combi.Dyckword]
+Bases [in Combi.MPoly.sympoly]
+Bigop [in Combi.Combi.subseq]
+Bigsums [in ALEA.Qmeasure]
+BigTrivISeq [in Combi.LRrule.Greene]
+BijBinTrees [in Combi.Combi.Dyckword]
+Bijection [in Combi.Combi.stdtab]
+BijectionExtTab [in Combi.MPoly.Schur_altdef]
+Bijection.StdTabInd [in Combi.Combi.stdtab]
+BijFiberedSet [in Combi.Combi.fibered_set]
+BijFiberedSet.Defs [in Combi.Combi.fibered_set]
+BoxInSkew [in Combi.Combi.partition]
+BraidRed [in Combi.SymGroup.presentSn]
+Builders_1.Builders_1.Builders_1 [in Combi.Basic.ordtype]
+Builders_6.Builders_6.Builders_6 [in Combi.Combi.composition]
+Builders_1.Builders_1.Builders_1 [in Combi.Combi.composition]
+

C

+CanPorbit [in Combi.SymGroup.cycletype]
+CanWord [in Combi.SymGroup.presentSn]
+Cast [in Combi.LRrule.Greene]
+Cast [in Combi.MPoly.sympoly]
+Casts [in Combi.SSRcomplements.ordcast]
+CategoricalSystems [in Combi.MPoly.sympoly]
+CauchyKernel [in Combi.MPoly.Cauchy]
+CauchyKernelField [in Combi.MPoly.Cauchy]
+CauchyKernel.Big [in Combi.MPoly.Cauchy]
+CauchyKernel.BijectionFam [in Combi.MPoly.Cauchy]
+CFExtProdDefs [in Combi.SymGroup.towerSn]
+CFExtProdTheory [in Combi.SymGroup.towerSn]
+CFExtProdTheory.ReprExtProd [in Combi.SymGroup.towerSn]
+ChangeBaseMonomial [in Combi.MPoly.sympoly]
+ChangeBasis [in Combi.MPoly.sympoly]
+ChangeBasisSymhPowerSum [in Combi.MPoly.sympoly]
+ChangeBasis.HandE [in Combi.MPoly.sympoly]
+ChangeField [in Combi.MPoly.homogsym]
+ChangeNVar [in Combi.MPoly.homogsym]
+ChangeNVar [in Combi.MPoly.sympoly]
+ChangeNVar.ProdGen [in Combi.MPoly.sympoly]
+CharDotProduct [in Combi.SymGroup.Frobenius_char]
+classGroup [in Combi.SymGroup.towerSn]
+Codes [in Combi.SymGroup.presentSn]
+Codes.FinType [in Combi.SymGroup.presentSn]
+Combi [in Combi.SymGroup.presentSn]
+CommutativeImage [in Combi.LRrule.freeSchur]
+CompOfn [in Combi.Combi.composition]
+CongruenceClosure [in Combi.Basic.congr]
+CongruenceFacts [in Combi.Basic.congr]
+Conj [in Combi.LRrule.freeSchur]
+ConjTab [in Combi.Combi.stdtab]
+ConnectCompl [in Combi.Combi.skewpart]
+Connected4 [in Combi.Combi.skewpart]
+Coord [in Combi.MPoly.homogsym]
+CoversFinPOrder [in Combi.Basic.ordtype]
+CoverSurgery [in Combi.LRrule.Greene_inv]
+CutK [in Combi.Combi.vectNK]
+Cut3 [in Combi.Combi.vectNK]
+CycleType [in Combi.SymGroup.cycletype]
+CycleTypeConj [in Combi.SymGroup.cycletype]
+CycleType.CFunIndicator [in Combi.SymGroup.cycletype]
+CycleType.Classes [in Combi.SymGroup.cycletype]
+CycleType.Permofcycletype [in Combi.SymGroup.cycletype]
+CycleType.TPerm [in Combi.SymGroup.cycletype]
+

D

+Defs [in Combi.Combi.partition]
+Defs [in Combi.LRrule.shuffle]
+Defs [in Combi.Combi.Dyckword]
+Defs [in Combi.LRrule.plactic]
+Defs [in Combi.Combi.setpartition]
+Defs [in Combi.Combi.composition]
+DefsFiber [in Combi.SymGroup.cycletype]
+DefsKostkaMon [in Combi.MPoly.Schur_altdef]
+DefTrivSign [in Combi.SymGroup.reprSn]
+DefType [in Combi.MPoly.homogsym]
+DefType [in Combi.MPoly.sympoly]
+Depend [in Combi.Basic.congr]
+DescSet [in Combi.Combi.composition]
+Dominate [in Combi.Combi.skewtab]
+Dominate [in Combi.Combi.tableau]
+Dual [in Combi.Basic.ordtype]
+Duality [in Combi.LRrule.Greene_inv]
+DualRule [in Combi.LRrule.plactic]
+Dual.hb_instance_111.hb_instance_111 [in Combi.Basic.ordtype]
+Dual.hb_instance_100.hb_instance_100 [in Combi.Basic.ordtype]
+Dual.hb_instance_91.hb_instance_91 [in Combi.Basic.ordtype]
+Dual.hb_instance_80.hb_instance_80 [in Combi.Basic.ordtype]
+Dual.hb_instance_69.hb_instance_69 [in Combi.Basic.ordtype]
+Dual.hb_instance_60.hb_instance_60 [in Combi.Basic.ordtype]
+Dual.hb_instance_53.hb_instance_53 [in Combi.Basic.ordtype]
+Dual.hb_instance_48.hb_instance_48 [in Combi.Basic.ordtype]
+DyckFactor [in Combi.Combi.Dyckword]
+DyckSetInd [in Combi.Combi.Dyckword]
+DyckToBal [in Combi.Combi.Dyckword]
+DyckType [in Combi.Combi.Dyckword]
+DyckWordRotationBijection [in Combi.Combi.Dyckword]
+

E

+ElemTransp [in Combi.SymGroup.presentSn]
+EltrConj [in Combi.SymGroup.reprSn]
+EltrP [in Combi.MPoly.antisym]
+Empty [in Combi.Combi.setpartition]
+EnumFintype [in Combi.Basic.combclass]
+EqInvAltDef [in Combi.Combi.std]
+EqInvDef [in Combi.Combi.std]
+EqInvPosRemBig [in Combi.Combi.std]
+EqInvSkewTab [in Combi.Combi.skewtab]
+Examples [in Combi.Combi.std]
+

F

+FastImplem [in Combi.MPoly.MurnaghanNakayama]
+FastImplem.ComRing [in Combi.MPoly.MurnaghanNakayama]
+FilterLeqGeq [in Combi.Combi.skewtab]
+FindCorner [in Combi.HookFormula.hook]
+FindCorner.EndsAt [in Combi.HookFormula.hook]
+FindCorner.Formula [in Combi.HookFormula.hook]
+FindCorner.Theorem2 [in Combi.HookFormula.hook]
+FinerCard [in Combi.Combi.setpartition]
+FiniteDistributions [in ALEA.Qmeasure]
+FinSet [in Combi.SSRcomplements.tools]
+FinType [in Combi.Combi.subseq]
+FinType [in Combi.Combi.tableau]
+FinType [in Combi.Combi.ordtree]
+FinType [in Combi.Combi.permuted]
+FinType.hb_instance_22.hb_instance_22 [in Combi.Combi.ordtree]
+FreeSchur [in Combi.LRrule.freeSchur]
+FreeSchur.Coeffs [in Combi.LRrule.freeSchur]
+FreeSchur.Coeffs.Bij_LRsupport.ChangeUT.DefBij [in Combi.LRrule.freeSchur]
+FreeSchur.Coeffs.Bij_LRsupport.ChangeUT.TakeDrop [in Combi.LRrule.freeSchur]
+FreeSchur.Coeffs.Bij_LRsupport.ChangeUT [in Combi.LRrule.freeSchur]
+FreeSchur.Coeffs.Bij_LRsupport [in Combi.LRrule.freeSchur]
+FreeSchur.Degree [in Combi.LRrule.freeSchur]
+FreeSchur.FreeLRrule [in Combi.LRrule.freeSchur]
+

G

+Generators [in Combi.MPoly.sympoly]
+GreeneCat [in Combi.LRrule.Greene]
+GreeneDef [in Combi.LRrule.Greene]
+GreeneInj [in Combi.LRrule.Greene]
+GreeneInvariants [in Combi.LRrule.Greene_inv]
+GreeneInvariantsDual [in Combi.LRrule.Greene_inv]
+GreeneInvariantsRule [in Combi.LRrule.Greene_inv]
+GreenEqShape [in Combi.LRrule.Greene_inv]
+GreeneRec [in Combi.LRrule.Greene]
+GreeneRec.Induction [in Combi.LRrule.Greene]
+GreeneSeq [in Combi.LRrule.Greene]
+GreeneTab [in Combi.LRrule.Greene]
+

H

+hb_instance_31.hb_instance_31 [in Combi.Combi.partition]
+hb_instance_22.hb_instance_22 [in Combi.Combi.bintree]
+hb_instance_43.hb_instance_43 [in Combi.Basic.ordtype]
+hb_instance_32.hb_instance_32 [in Combi.Basic.ordtype]
+hb_instance_27.hb_instance_27 [in Combi.Basic.ordtype]
+hb_instance_22.hb_instance_22 [in Combi.Basic.ordtype]
+hb_instance_17.hb_instance_17 [in Combi.Basic.ordtype]
+HomogSymLModType [in Combi.MPoly.homogsym]
+HomogSymProd [in Combi.MPoly.homogsym]
+HomSymField [in Combi.MPoly.homogsym]
+HomSymProdGen [in Combi.MPoly.homogsym]
+HomSymProdGen.Cons [in Combi.MPoly.homogsym]
+HomSymProdGen.Merge [in Combi.MPoly.homogsym]
+

I

+Identity [in Combi.HookFormula.Frobenius_ident]
+IdomainSchurSym [in Combi.MPoly.Schur_altdef]
+ImsetInj [in Combi.SSRcomplements.tools]
+IncrMap [in Combi.LRrule.plactic]
+IncrMap [in Combi.Combi.tableau]
+Induction [in Combi.SymGroup.towerSn]
+InHomSym [in Combi.MPoly.homogsym]
+IntPartN [in Combi.Combi.skewpart]
+IntpartnCons [in Combi.Combi.partition]
+IntPartNDom.IntPartNDom [in Combi.Combi.partition]
+IntPartNDom.IntPartNTopBottom [in Combi.Combi.partition]
+IntPartNLexi.IntPartNLexi [in Combi.Combi.partition]
+InvarContHom [in Combi.Basic.congr]
+InvarContMultHom [in Combi.Basic.congr]
+InvSeq [in Combi.Combi.std]
+InvSet [in Combi.SymGroup.presentSn]
+isInhabitedType.isInhabitedType.isInhabitedType [in Combi.Basic.ordtype]
+isInhabited.isInhabited.isInhabited [in Combi.Basic.ordtype]
+IsoBottom.IsoBottom.IsoBottom [in Combi.Combi.composition]
+IsoTop.IsoTop.IsoTop [in Combi.Combi.composition]
+

K

+Kostka [in Combi.MPoly.Schur_altdef]
+KostkaEq [in Combi.MPoly.Schur_altdef]
+KostkaRec [in Combi.MPoly.Schur_altdef]
+KsuppInj [in Combi.LRrule.stdplact]
+

L

+Length [in Combi.SymGroup.presentSn]
+Length.PartCode [in Combi.SymGroup.presentSn]
+LEPermTheory [in Combi.SymGroup.weak_order]
+LinRepr [in Combi.SymGroup.reprSn]
+LR [in Combi.LRrule.therule]
+LR [in Combi.LRrule.implem]
+LRrule_Pieri [in Combi.MPoly.sympoly]
+LRTriple [in Combi.LRrule.shuffle]
+LR.Pieri [in Combi.LRrule.therule]
+LR.TheRule [in Combi.LRrule.therule]
+LR.TheRule.OneCoeff [in Combi.LRrule.therule]
+

M

+MaxPerm [in Combi.SymGroup.presentSn]
+MaxSeq [in Combi.Basic.ordtype]
+MeasureProp [in ALEA.Qmeasure]
+MinDropEq [in Combi.Combi.skewpart]
+MNRule [in Combi.MPoly.MurnaghanNakayama]
+MonDistrib [in ALEA.Qmeasure]
+MonomPart [in Combi.MPoly.antisym]
+MPoESymHomog [in Combi.MPoly.sympoly]
+MPolySym [in Combi.MPoly.antisym]
+MultAlternSymp [in Combi.MPoly.MurnaghanNakayama]
+MultinomCompl [in Combi.MPoly.sympoly]
+MultSymsSymp [in Combi.MPoly.MurnaghanNakayama]
+MultSymsSympIDomain [in Combi.MPoly.MurnaghanNakayama]
+

N

+NonEmpty [in Combi.LRrule.Schensted]
+NonEmpty.Bijection [in Combi.LRrule.Schensted]
+NonEmpty.Bump [in Combi.LRrule.Schensted]
+NonEmpty.Classes [in Combi.LRrule.Schensted]
+NonEmpty.Dominate [in Combi.LRrule.Schensted]
+NonEmpty.Insert [in Combi.LRrule.Schensted]
+NonEmpty.Inverse [in Combi.LRrule.Schensted]
+NonEmpty.InverseBump [in Combi.LRrule.Schensted]
+NonEmpty.Schensted [in Combi.LRrule.Schensted]
+NonEmpty.Statistics [in Combi.LRrule.Schensted]
+NonEmpty.Tableaux [in Combi.LRrule.Schensted]
+NoSetContainingBoth.Case [in Combi.LRrule.Greene_inv]
+NThAddRibbon [in Combi.Combi.skewpart]
+NVar [in Combi.SymGroup.Frobenius_char]
+NVar.Character [in Combi.SymGroup.Frobenius_char]
+NVar.Defs [in Combi.SymGroup.Frobenius_char]
+

O

+OfSize [in Combi.Combi.ordtree]
+Omega [in Combi.MPoly.sympoly]
+OmegaHomSym [in Combi.MPoly.homogsym]
+OmegaProd [in Combi.MPoly.homogsym]
+OperDistr [in ALEA.Qmeasure]
+OperDistr.MuBool [in ALEA.Qmeasure]
+OrdTableau [in Combi.Combi.tableau]
+OutEval [in Combi.LRrule.implem]
+

P

+PackedSpec [in Combi.LRrule.implem]
+PartOfn [in Combi.Combi.partition]
+PermComp [in Combi.SSRcomplements.permcomp]
+PermCycles [in Combi.SymGroup.permcent]
+PermCycles [in Combi.SymGroup.cycles]
+PermCycles.CM [in Combi.SymGroup.permcent]
+PermEq [in Combi.Combi.std]
+PermLattice.Exports.PermLattice [in Combi.SymGroup.weak_order]
+PermLattice.PermLattice [in Combi.SymGroup.weak_order]
+PermOfInvSetEltr [in Combi.SymGroup.presentSn]
+Permuted [in Combi.Combi.permuted]
+Permuted.SizeN [in Combi.Combi.permuted]
+PlactDual [in Combi.LRrule.plactic]
+PorbitBijection [in Combi.SymGroup.cycletype]
+PreimPartition [in Combi.Combi.Dyckword]
+PresentationSn [in Combi.SymGroup.presentSn]
+ProdGen [in Combi.MPoly.sympoly]
+ProdGen.Defs [in Combi.MPoly.sympoly]
+

Q

+QTableau [in Combi.LRrule.Schensted]
+

R

+RCons [in Combi.Combi.subseq]
+Recursion [in Combi.Combi.ordtree]
+Reduced [in Combi.SymGroup.presentSn]
+RefinementOrder.RefinementOrder [in Combi.Combi.composition]
+RefinmentOrder.Exports.Finer [in Combi.Combi.setpartition]
+RefinmentOrder.RefinmentOrder [in Combi.Combi.setpartition]
+RemoveBig [in Combi.LRrule.plactic]
+RemoveBig [in Combi.Basic.ordtype]
+Restriction [in Combi.SymGroup.towerSn]
+RestrIntervBig [in Combi.LRrule.plactic]
+RestrIntervSmall [in Combi.LRrule.plactic]
+Rev [in Combi.LRrule.Greene]
+Rev [in Combi.LRrule.plactic]
+RevConj [in Combi.LRrule.Greene_inv]
+RibbonOn [in Combi.Combi.skewpart]
+RingSchurSym [in Combi.MPoly.Schur_altdef]
+Rows [in Combi.Combi.tableau]
+RowsAndCols [in Combi.LRrule.plactic]
+RSToPlactic [in Combi.LRrule.plactic]
+

S

+Scalar [in Combi.MPoly.Cauchy]
+ScalarChange [in Combi.MPoly.antisym]
+ScalarChange [in Combi.MPoly.sympoly]
+ScalarProduct [in Combi.MPoly.homogsym]
+Scalar.hb_instance_73.hb_instance_73 [in Combi.MPoly.Cauchy]
+Scalar.hb_instance_67.hb_instance_67 [in Combi.MPoly.Cauchy]
+Scalar.hb_instance_62.hb_instance_62 [in Combi.MPoly.Cauchy]
+Schur [in Combi.MPoly.Schur_mpoly]
+Schur [in Combi.MPoly.sympoly]
+SchurAlternantDef [in Combi.MPoly.Schur_altdef]
+SchurComRingType [in Combi.MPoly.Schur_mpoly]
+SeqLemmas [in Combi.SSRcomplements.tools]
+SetAct [in Combi.SSRcomplements.permcomp]
+SetContainingBothLeft.Case [in Combi.LRrule.Greene_inv]
+SetContainingBothLeft.Case.BIn [in Combi.LRrule.Greene_inv]
+SetContainingBothLeft.Case.BNotIn [in Combi.LRrule.Greene_inv]
+SetContainingBothLeft.RelHypothesis [in Combi.LRrule.Greene_inv]
+SetPartition [in Combi.SSRcomplements.tools]
+SetPartitionShape [in Combi.Combi.partition]
+ShiftedShuffle [in Combi.LRrule.shuffle]
+SimpleRecursion [in Combi.Combi.ordtree]
+Singleton [in Combi.Combi.setpartition]
+Size [in Combi.Combi.bintree]
+SizeN [in Combi.Combi.bintree]
+Sn [in Combi.SymGroup.cycletype]
+Sorted [in Combi.SSRcomplements.sorted]
+Spec [in Combi.Combi.std]
+Spec [in Combi.Combi.skewpart]
+Spec [in Combi.LRrule.implem]
+SRel [in Combi.SymGroup.presentSn]
+SSRComplFinset [in Combi.SSRcomplements.tools]
+StabilityProperties [in ALEA.Qmeasure]
+Standardisation [in Combi.Combi.std]
+StandardWords [in Combi.Combi.std]
+StdCombClass [in Combi.Combi.std]
+StdKostka [in Combi.MPoly.Schur_altdef]
+StdKostka.Nvar [in Combi.MPoly.Schur_altdef]
+StdRS [in Combi.LRrule.stdplact]
+StdtabCombClass [in Combi.Combi.stdtab]
+StdtabnOfStdtabsh [in Combi.Combi.stdtab]
+StdtabOfShape [in Combi.Combi.stdtab]
+StdTakeDrop [in Combi.Combi.std]
+SubseqSorted [in Combi.Combi.subseq]
+SubseqSortedIn [in Combi.Combi.subseq]
+SubtypesDisjointUnion [in Combi.Basic.combclass]
+SubUndup [in Combi.Basic.combclass]
+Swap.Swap [in Combi.LRrule.Greene_inv]
+SymheSyms [in Combi.MPoly.sympoly]
+SymheSymsInt [in Combi.MPoly.sympoly]
+SymPolF [in Combi.MPoly.sympoly]
+SymPolyComRingType [in Combi.MPoly.sympoly]
+SymPolyIdomainType [in Combi.MPoly.sympoly]
+SymPolyRingType [in Combi.MPoly.sympoly]
+SymsSymm [in Combi.MPoly.sympoly]
+SymsSymmInt [in Combi.MPoly.sympoly]
+

T

+Tableau [in Combi.Combi.tableau]
+TableauReading [in Combi.LRrule.freeSchur]
+TableauReading [in Combi.Combi.tableau]
+TamariCover [in Combi.Combi.bintree]
+TamariLattice.TamariLattice [in Combi.Combi.bintree]
+TcastVal [in Combi.SymGroup.reprSn]
+TClosureInvset [in Combi.SymGroup.weak_order]
+Test [in Combi.Combi.skewpart]
+Tests [in Combi.Combi.bintree]
+Tests [in Combi.LRrule.Schensted]
+Tests [in Combi.Combi.skewpart]
+Tests [in Combi.MPoly.MurnaghanNakayama]
+Tests [in Combi.MPoly.MurnaghanNakayama]
+TestsComp [in Combi.Combi.bintree]
+TextBookDefStartStop [in Combi.Combi.skewpart]
+TextBookImplDef [in Combi.Combi.skewpart]
+TowerMorphism [in Combi.SymGroup.towerSn]
+Transitive [in Combi.Basic.congr]
+Transitive.FullKnown [in Combi.Basic.congr]
+Transp [in Combi.Combi.std]
+Transp [in Combi.SymGroup.presentSn]
+TriangularInv [in Combi.Basic.unitriginv]
+TrivISeq [in Combi.LRrule.Greene]
+

U

+UnifNat [in ALEA.Qmeasure]
+UnionPart [in Combi.Combi.partition]
+UniqFinType [in Combi.Basic.combclass]
+UniTriangular [in Combi.Basic.unitriginv]
+

V

+VandermondeDet [in Combi.MPoly.antisym]
+Vanprod [in Combi.MPoly.antisym]
+VectNK [in Combi.Combi.vectNK]
+Vector [in Combi.MPoly.homogsym]
+

W

+WeakOrder.Def [in Combi.SymGroup.weak_order]
+WeakOrder.Exports.WeakOrder [in Combi.SymGroup.weak_order]
+

Y

+Yama [in Combi.Combi.Yamanouchi]
+YamOfEval [in Combi.Combi.Yamanouchi]
+YamOfSize [in Combi.Combi.Yamanouchi]
+YoungIrrDef [in Combi.SymGroup.Frobenius_char]
+YoungLattice.YoungLattice [in Combi.Combi.partition]
+


+

Instance Index

+

A

+app_mon [in ALEA.Qmeasure]
+

C

+comp_monotonic2 [in ALEA.Ccpo]
+cont_app_monotonic [in ALEA.Ccpo]
+cont0 [in ALEA.Ccpo]
+cont2_continuous [in ALEA.Ccpo]
+cshift_continuous2 [in ALEA.Ccpo]
+

F

+Fcontm_continuous [in ALEA.Ccpo]
+fcontm_monotonic [in ALEA.Ccpo]
+fcont_continuous2 [in ALEA.Ccpo]
+fcont_Comp_continuous2 [in ALEA.Ccpo]
+fcont_comp_continuous [in ALEA.Ccpo]
+fcont_cpo [in ALEA.Ccpo]
+fcont_lub_continuous [in ALEA.Ccpo]
+fcont_ord [in ALEA.Ccpo]
+fcpo [in ALEA.Ccpo]
+Fif_continuous2 [in ALEA.Ccpo]
+fif_mon2 [in ALEA.Ccpo]
+finite_mon [in ALEA.Qmeasure]
+Fixp_cont_continuous [in ALEA.Ccpo]
+fixp_monotonic [in ALEA.Ccpo]
+flip_mon [in ALEA.Qmeasure]
+fmono [in ALEA.Ccpo]
+fmonotonic2 [in ALEA.Ccpo]
+fmon_cpo [in ALEA.Ccpo]
+fmon2_mon [in ALEA.Ccpo]
+ford [in ALEA.Ccpo]
+fstable [in ALEA.Ccpo]
+fstable2 [in ALEA.Ccpo]
+fun2_monotonic [in ALEA.Ccpo]
+

I

+Id_mon [in ALEA.Ccpo]
+ishift_continuous [in ALEA.Ccpo]
+ishift_mon [in ALEA.Ccpo]
+iter_monotonic [in ALEA.Ccpo]
+iter_mon [in ALEA.Ccpo]
+

L

+lub_continuous [in ALEA.Ccpo]
+lub_shift_mon [in ALEA.Ccpo]
+lub_mon [in ALEA.Ccpo]
+

M

+MFO [in ALEA.Qmeasure]
+mfun2_mon [in ALEA.Ccpo]
+Mlet_mon2 [in ALEA.Qmeasure]
+MO [in ALEA.Qmeasure]
+monotonic_lub_comp [in ALEA.Ccpo]
+monotonic_comp_mon [in ALEA.Ccpo]
+monotonic_comp [in ALEA.Ccpo]
+monotonic_stable [in ALEA.Ccpo]
+monotonic2_stable2 [in ALEA.Ccpo]
+mon_fun_lub [in ALEA.Ccpo]
+mon_app2_mon [in ALEA.Ccpo]
+mon_app2 [in ALEA.Ccpo]
+mon_diag [in ALEA.Ccpo]
+mon_cte [in ALEA.Ccpo]
+mon_id [in ALEA.Ccpo]
+mon_seq_lift_right [in ALEA.Ccpo]
+mon_seq_lift_left [in ALEA.Ccpo]
+mon_fun_mon [in ALEA.Ccpo]
+mon2_intro [in ALEA.Ccpo]
+mshift_continuous [in ALEA.Ccpo]
+

N

+natO [in ALEA.Ccpo]
+

O

+Odistr [in ALEA.Qmeasure]
+OrderEqRefl [in ALEA.Ccpo]
+OrderEqSym [in ALEA.Ccpo]
+OrderEqTrans [in ALEA.Ccpo]
+OrderEquiv [in ALEA.Ccpo]
+

R

+ratO [in ALEA.Qmeasure]
+

S

+shift_mon2 [in ALEA.Ccpo]
+shift_fun_mon [in ALEA.Ccpo]
+shift_mon_fun [in ALEA.Ccpo]
+


+

Abbreviation Index

+

B

+Basis [in Combi.MPoly.homogsym]
+box [in Combi.Combi.skewpart]
+box [in Combi.Combi.skewpart]
+box [in Combi.Combi.skewpart]
+boxex [in Combi.Combi.skewpart]
+box_in [in Combi.Combi.partition]
+braidred [in Combi.SymGroup.presentSn]
+Builders_1.x [in Combi.Basic.ordtype]
+Builders_6.f_mono [in Combi.Combi.composition]
+Builders_6.f'_can [in Combi.Combi.composition]
+Builders_6.f_can [in Combi.Combi.composition]
+Builders_6.f' [in Combi.Combi.composition]
+Builders_6.f [in Combi.Combi.composition]
+Builders_6.T' [in Combi.Combi.composition]
+Builders_6.disp' [in Combi.Combi.composition]
+Builders_1.f_mono [in Combi.Combi.composition]
+Builders_1.f'_can [in Combi.Combi.composition]
+Builders_1.f_can [in Combi.Combi.composition]
+Builders_1.f' [in Combi.Combi.composition]
+Builders_1.f [in Combi.Combi.composition]
+Builders_1.T' [in Combi.Combi.composition]
+Builders_1.disp' [in Combi.Combi.composition]
+bump [in Combi.LRrule.Schensted]
+bumpRow [in Combi.LRrule.Schensted]
+

C

+cfdot [in Combi.SymGroup.Frobenius_char]
+classX [in Combi.SymGroup.towerSn]
+conj [in Combi.HookFormula.hook]
+coord [in Combi.MPoly.homogsym]
+ct [in Combi.SymGroup.towerSn]
+ct [in Combi.SymGroup.towerSn]
+ct [in Combi.SymGroup.towerSn]
+

D

+Delta [in Combi.MPoly.antisym]
+

E

+E [in Combi.MPoly.homogsym]
+E [in Combi.MPoly.sympoly]
+E [in Combi.MPoly.sympoly]
+E [in Combi.MPoly.sympoly]
+enum_box_in [in Combi.Combi.partition]
+

F

+forest [in Combi.Combi.ordtree]
+

G

+G [in Combi.MPoly.sympoly]
+geL [in Combi.LRrule.plactic]
+gtL [in Combi.LRrule.plactic]
+

H

+HLF [in Combi.HookFormula.hook]
+homlang [in Combi.LRrule.freeSchur]
+HS [in Combi.SymGroup.Frobenius_char]
+HS [in Combi.SymGroup.Frobenius_char]
+HSC [in Combi.MPoly.Cauchy]
+HSF [in Combi.MPoly.homogsym]
+HSF [in Combi.MPoly.homogsym]
+HSF [in Combi.MPoly.homogsym]
+HSF [in Combi.MPoly.homogsym]
+HSF [in Combi.MPoly.homogsym]
+HSF [in Combi.MPoly.homogsym]
+HSF [in Combi.MPoly.MurnaghanNakayama]
+HSF [in Combi.MPoly.MurnaghanNakayama]
+HSFR [in Combi.MPoly.homogsym]
+HSFS [in Combi.MPoly.homogsym]
+

I

+Ik [in Combi.LRrule.Greene]
+Inhabited [in Combi.Basic.ordtype]
+Inhabited.clone [in Combi.Basic.ordtype]
+Inhabited.copy [in Combi.Basic.ordtype]
+Inhabited.Exports.inhType [in Combi.Basic.ordtype]
+Inhabited.on [in Combi.Basic.ordtype]
+Inhabited.on_ [in Combi.Basic.ordtype]
+InhFinite [in Combi.Basic.ordtype]
+InhFinite.clone [in Combi.Basic.ordtype]
+InhFinite.copy [in Combi.Basic.ordtype]
+InhFinite.Exports.inhFinType [in Combi.Basic.ordtype]
+InhFinite.on [in Combi.Basic.ordtype]
+InhFinite.on_ [in Combi.Basic.ordtype]
+InhFinLattice [in Combi.Basic.ordtype]
+InhFinLattice.clone [in Combi.Basic.ordtype]
+InhFinLattice.copy [in Combi.Basic.ordtype]
+InhFinLattice.Exports.inhFinLatticeType [in Combi.Basic.ordtype]
+InhFinLattice.on [in Combi.Basic.ordtype]
+InhFinLattice.on_ [in Combi.Basic.ordtype]
+InhFinOrder [in Combi.Basic.ordtype]
+InhFinOrder.clone [in Combi.Basic.ordtype]
+InhFinOrder.copy [in Combi.Basic.ordtype]
+InhFinOrder.Exports.inhFinOrderType [in Combi.Basic.ordtype]
+InhFinOrder.on [in Combi.Basic.ordtype]
+InhFinOrder.on_ [in Combi.Basic.ordtype]
+InhFinPOrder [in Combi.Basic.ordtype]
+InhFinPOrder.clone [in Combi.Basic.ordtype]
+InhFinPOrder.copy [in Combi.Basic.ordtype]
+InhFinPOrder.Exports.inhFinPOrderType [in Combi.Basic.ordtype]
+InhFinPOrder.on [in Combi.Basic.ordtype]
+InhFinPOrder.on_ [in Combi.Basic.ordtype]
+InhLattice [in Combi.Basic.ordtype]
+InhLattice.clone [in Combi.Basic.ordtype]
+InhLattice.copy [in Combi.Basic.ordtype]
+InhLattice.Exports.inhLatticeType [in Combi.Basic.ordtype]
+InhLattice.on [in Combi.Basic.ordtype]
+InhLattice.on_ [in Combi.Basic.ordtype]
+InhOrder [in Combi.Basic.ordtype]
+InhOrder.clone [in Combi.Basic.ordtype]
+InhOrder.copy [in Combi.Basic.ordtype]
+InhOrder.Exports.inhOrderType [in Combi.Basic.ordtype]
+InhOrder.on [in Combi.Basic.ordtype]
+InhOrder.on_ [in Combi.Basic.ordtype]
+InhPOrder [in Combi.Basic.ordtype]
+InhPOrder.clone [in Combi.Basic.ordtype]
+InhPOrder.copy [in Combi.Basic.ordtype]
+InhPOrder.Exports.inhPOrderType [in Combi.Basic.ordtype]
+InhPOrder.on [in Combi.Basic.ordtype]
+InhPOrder.on_ [in Combi.Basic.ordtype]
+InhTBLattice [in Combi.Basic.ordtype]
+InhTBLattice.clone [in Combi.Basic.ordtype]
+InhTBLattice.copy [in Combi.Basic.ordtype]
+InhTBLattice.Exports.inhTBLatticeType [in Combi.Basic.ordtype]
+InhTBLattice.on [in Combi.Basic.ordtype]
+InhTBLattice.on_ [in Combi.Basic.ordtype]
+ins [in Combi.LRrule.Schensted]
+inspos [in Combi.LRrule.Schensted]
+insRow [in Combi.LRrule.Schensted]
+isInhabited [in Combi.Basic.ordtype]
+isInhabitedType [in Combi.Basic.ordtype]
+isInhabitedType.axioms [in Combi.Basic.ordtype]
+isInhabitedType.Build [in Combi.Basic.ordtype]
+isInhabited.axioms [in Combi.Basic.ordtype]
+isInhabited.Build [in Combi.Basic.ordtype]
+IsoBottom [in Combi.Combi.composition]
+IsoBottom.axioms [in Combi.Combi.composition]
+IsoBottom.Build [in Combi.Combi.composition]
+IsoTop [in Combi.Combi.composition]
+IsoTop.axioms [in Combi.Combi.composition]
+IsoTop.Build [in Combi.Combi.composition]
+is_homsym [in Combi.MPoly.homogsym]
+is_row [in Combi.Combi.tableau]
+is_row [in Combi.Combi.tableau]
+

L

+leL [in Combi.LRrule.plactic]
+lsh [in Combi.LRrule.Greene]
+ltL [in Combi.LRrule.plactic]
+

M

+m [in Combi.MPoly.Cauchy]
+m [in Combi.MPoly.homogsym]
+m [in Combi.MPoly.sympoly]
+mxvec_index [in Combi.MPoly.Cauchy]
+

N

+n [in Combi.MPoly.Cauchy]
+n [in Combi.MPoly.Cauchy]
+n [in Combi.MPoly.homogsym]
+n [in Combi.MPoly.homogsym]
+n [in Combi.MPoly.homogsym]
+n [in Combi.MPoly.homogsym]
+n [in Combi.MPoly.homogsym]
+n [in Combi.MPoly.homogsym]
+n [in Combi.MPoly.homogsym]
+n [in Combi.MPoly.homogsym]
+n [in Combi.MPoly.homogsym]
+n [in Combi.MPoly.homogsym]
+n [in Combi.MPoly.Schur_mpoly]
+n [in Combi.MPoly.Schur_mpoly]
+n [in Combi.Basic.unitriginv]
+n [in Combi.MPoly.Schur_altdef]
+n [in Combi.MPoly.Schur_altdef]
+n [in Combi.MPoly.Schur_altdef]
+n [in Combi.MPoly.Schur_altdef]
+n [in Combi.LRrule.freeSchur]
+n [in Combi.LRrule.therule]
+n [in Combi.LRrule.therule]
+n [in Combi.SymGroup.weak_order]
+n [in Combi.SymGroup.weak_order]
+n [in Combi.MPoly.MurnaghanNakayama]
+n [in Combi.MPoly.MurnaghanNakayama]
+n [in Combi.MPoly.MurnaghanNakayama]
+n [in Combi.MPoly.MurnaghanNakayama]
+n [in Combi.MPoly.MurnaghanNakayama]
+n [in Combi.SymGroup.presentSn]
+n [in Combi.SymGroup.presentSn]
+n [in Combi.SymGroup.presentSn]
+n [in Combi.SymGroup.presentSn]
+n [in Combi.LRrule.implem]
+n [in Combi.MPoly.sympoly]
+n [in Combi.MPoly.sympoly]
+n [in Combi.MPoly.sympoly]
+n [in Combi.MPoly.sympoly]
+n [in Combi.MPoly.sympoly]
+n [in Combi.MPoly.sympoly]
+n [in Combi.MPoly.sympoly]
+neig4 [in Combi.Combi.skewpart]
+neig4 [in Combi.Combi.skewpart]
+NoSetContainingBoth.posa [in Combi.LRrule.Greene_inv]
+NoSetContainingBoth.posb [in Combi.LRrule.Greene_inv]
+NoSetContainingBoth.swapX [in Combi.LRrule.Greene_inv]
+NoSetContainingBoth.swap_setX [in Combi.LRrule.Greene_inv]
+nvar [in Combi.SymGroup.Frobenius_char]
+nvar [in Combi.MPoly.sympoly]
+

P

+P [in Combi.MPoly.Schur_altdef]
+pact [in Combi.Combi.permuted]
+Pair [in Combi.LRrule.Schensted]
+PermLattice.Exports.n [in Combi.SymGroup.weak_order]
+PermLattice.n [in Combi.SymGroup.weak_order]
+Pla [in Combi.MPoly.homogsym]
+Plla [in Combi.MPoly.homogsym]
+Pm [in Combi.MPoly.Schur_altdef]
+pol [in Combi.MPoly.Cauchy]
+Pol [in Combi.MPoly.homogsym]
+polX [in Combi.MPoly.Cauchy]
+polXY [in Combi.MPoly.Cauchy]
+polY [in Combi.MPoly.Cauchy]
+polZ [in Combi.MPoly.Cauchy]
+pos [in Combi.LRrule.Schensted]
+

R

+reduced [in Combi.SymGroup.presentSn]
+reduced [in Combi.SymGroup.presentSn]
+RefinementOrder.Exports.intcompnref [in Combi.Combi.composition]
+RefinementOrder.SetIn [in Combi.Combi.composition]
+RefinmentOrder.Exports.join_finer_eq [in Combi.Combi.setpartition]
+reprS [in Combi.SymGroup.reprSn]
+res [in Combi.Combi.skewpart]
+rho [in Combi.MPoly.antisym]
+rho [in Combi.MPoly.antisym]
+rho [in Combi.MPoly.Schur_altdef]
+rho [in Combi.MPoly.Schur_altdef]
+rho [in Combi.MPoly.Schur_altdef]
+rho [in Combi.MPoly.Schur_altdef]
+rho [in Combi.MPoly.MurnaghanNakayama]
+rsh [in Combi.LRrule.Greene]
+

S

+S [in Combi.MPoly.sympoly]
+Schur [in Combi.LRrule.freeSchur]
+Schur [in Combi.LRrule.therule]
+Schur [in Combi.LRrule.therule]
+Schur [in Combi.LRrule.implem]
+scover [in Combi.LRrule.Greene]
+SetContainingBothLeft.posa [in Combi.LRrule.Greene_inv]
+SetContainingBothLeft.posb [in Combi.LRrule.Greene_inv]
+SetContainingBothLeft.swap [in Combi.LRrule.Greene_inv]
+SetContainingBothLeft.swap_set [in Combi.LRrule.Greene_inv]
+SF [in Combi.MPoly.homogsym]
+SF [in Combi.MPoly.MurnaghanNakayama]
+SF [in Combi.MPoly.MurnaghanNakayama]
+SF [in Combi.MPoly.MurnaghanNakayama]
+SF [in Combi.MPoly.MurnaghanNakayama]
+SF [in Combi.MPoly.sympoly]
+SF [in Combi.MPoly.sympoly]
+SF [in Combi.MPoly.sympoly]
+SF [in Combi.MPoly.sympoly]
+SF [in Combi.MPoly.sympoly]
+SF [in Combi.MPoly.sympoly]
+SF [in Combi.MPoly.sympoly]
+SF [in Combi.MPoly.sympoly]
+SF [in Combi.MPoly.sympoly]
+SF [in Combi.MPoly.sympoly]
+SF [in Combi.MPoly.sympoly]
+SF [in Combi.MPoly.sympoly]
+SnXm [in Combi.SymGroup.towerSn]
+SnXm [in Combi.SymGroup.towerSn]
+sorted [in Combi.SSRcomplements.sorted]
+SP [in Combi.MPoly.sympoly]
+start [in Combi.Combi.skewpart]
+stop [in Combi.Combi.skewpart]
+stpn [in Combi.HookFormula.Frobenius_ident]
+sz [in Combi.MPoly.Schur_altdef]
+

T

+T [in Combi.MPoly.Schur_altdef]
+TabPair [in Combi.LRrule.Schensted]
+Tm [in Combi.MPoly.Schur_altdef]
+

W

+WeakOrder.Exports.n [in Combi.SymGroup.weak_order]
+WeakOrder.n [in Combi.SymGroup.weak_order]
+word [in Combi.Basic.congr]
+word [in Combi.Basic.congr]
+word [in Combi.Basic.congr]
+word [in Combi.Basic.congr]
+wp [in Combi.Combi.permuted]
+

Y

+YoungLattice.Exports.intpartYoung [in Combi.Combi.partition]
+


+

Definition Index

+

A

+add [in Combi.LRrule.implem]
+add_mesym [in Combi.MPoly.Schur_altdef]
+add_ribbon_intpartn [in Combi.Combi.skewpart]
+add_ribbon [in Combi.Combi.skewpart]
+add_ribbon_on [in Combi.Combi.skewpart]
+admissible [in ALEA.Ccpo]
+admissible2 [in ALEA.Ccpo]
+allLeq [in Combi.Basic.ordtype]
+allLtn [in Combi.Basic.ordtype]
+alternpol [in Combi.MPoly.antisym]
+antim [in Combi.MPoly.antisym]
+antisym [in Combi.MPoly.antisym]
+antisym_keyed [in Combi.MPoly.antisym]
+append_nth [in Combi.Combi.stdtab]
+app2 [in ALEA.Ccpo]
+arm_length [in Combi.HookFormula.hook]
+auxbij [in Combi.LRrule.Yam_plact]
+auxbij_inv [in Combi.LRrule.Yam_plact]
+

B

+bal_of_Dyck [in Combi.Combi.Dyckword]
+bal_hsz [in Combi.Combi.Dyckword]
+bijLR [in Combi.LRrule.therule]
+bijLRyam [in Combi.LRrule.therule]
+bij_LRsupport [in Combi.LRrule.freeSchur]
+bintree_bintreesz__canonical__fintype_SubFinite [in Combi.Combi.bintree]
+bintree_bintreesz__canonical__fintype_Finite [in Combi.Combi.bintree]
+bintree_bintreesz__canonical__choice_SubCountable [in Combi.Combi.bintree]
+bintree_bintreesz__canonical__choice_Countable [in Combi.Combi.bintree]
+bintree_bintreesz__canonical__choice_SubChoice [in Combi.Combi.bintree]
+bintree_bintreesz__canonical__choice_Choice [in Combi.Combi.bintree]
+bintree_bintreesz__canonical__eqtype_SubEquality [in Combi.Combi.bintree]
+bintree_bintreesz__canonical__eqtype_Equality [in Combi.Combi.bintree]
+bintree_bintreesz__canonical__eqtype_SubType [in Combi.Combi.bintree]
+bintree_bintree__canonical__choice_Countable [in Combi.Combi.bintree]
+bintree_bintree__canonical__choice_Choice [in Combi.Combi.bintree]
+bintree_bintree__canonical__eqtype_Equality [in Combi.Combi.bintree]
+bintree_sind [in Combi.Combi.bintree]
+bintree_rec [in Combi.Combi.bintree]
+bintree_ind [in Combi.Combi.bintree]
+bintree_rect [in Combi.Combi.bintree]
+bintree_of_Dyck [in Combi.Combi.Dyckword]
+bin_to_ordtree [in Combi.Combi.ordtree]
+bin_to_forest [in Combi.Combi.ordtree]
+bool_of_brace [in Combi.Combi.Dyckword]
+BoxIn [in Combi.Combi.partition]
+brace_of_bool [in Combi.Combi.Dyckword]
+brace_sind [in Combi.Combi.Dyckword]
+brace_rec [in Combi.Combi.Dyckword]
+brace_ind [in Combi.Combi.Dyckword]
+brace_rect [in Combi.Combi.Dyckword]
+braidC [in Combi.SymGroup.presentSn]
+braidclass [in Combi.SymGroup.presentSn]
+braidcongr [in Combi.SymGroup.presentSn]
+braidrule [in Combi.SymGroup.presentSn]
+braid_reduces [in Combi.SymGroup.presentSn]
+braid_cat [in Combi.SymGroup.presentSn]
+braid_catr [in Combi.SymGroup.presentSn]
+braid_catl [in Combi.SymGroup.presentSn]
+braid_rcons [in Combi.SymGroup.presentSn]
+braid_cons [in Combi.SymGroup.presentSn]
+braid_aba [in Combi.SymGroup.presentSn]
+Builders_1.HB_unnamed_factory_3 [in Combi.Basic.ordtype]
+Builders_6.Builders_6_T__canonical__Order_TPOrder [in Combi.Combi.composition]
+Builders_6.Builders_6_T__canonical__Order_TPreorder [in Combi.Combi.composition]
+Builders_6.HB_unnamed_factory_8 [in Combi.Combi.composition]
+Builders_6.top [in Combi.Combi.composition]
+Builders_6.Builders_6_T__canonical__Order_POrder [in Combi.Combi.composition]
+Builders_6.Builders_6_T__canonical__Order_Preorder [in Combi.Combi.composition]
+Builders_6.Builders_6_T__canonical__choice_Choice [in Combi.Combi.composition]
+Builders_6.Builders_6_T__canonical__eqtype_Equality [in Combi.Combi.composition]
+Builders_1.Builders_1_T__canonical__Order_BPOrder [in Combi.Combi.composition]
+Builders_1.Builders_1_T__canonical__Order_BPreorder [in Combi.Combi.composition]
+Builders_1.HB_unnamed_factory_3 [in Combi.Combi.composition]
+Builders_1.bottom [in Combi.Combi.composition]
+Builders_1.Builders_1_T__canonical__Order_POrder [in Combi.Combi.composition]
+Builders_1.Builders_1_T__canonical__Order_Preorder [in Combi.Combi.composition]
+Builders_1.Builders_1_T__canonical__choice_Choice [in Combi.Combi.composition]
+Builders_1.Builders_1_T__canonical__eqtype_Equality [in Combi.Combi.composition]
+bump [in Combi.LRrule.Schensted]
+bumped [in Combi.LRrule.Schensted]
+bumprow [in Combi.LRrule.Schensted]
+

C

+canporbit [in Combi.SymGroup.cycletype]
+canword [in Combi.SymGroup.presentSn]
+cast_intpartn [in Combi.Combi.partition]
+cast_set [in Combi.SSRcomplements.ordcast]
+cast_cons [in Combi.LRrule.Greene]
+Catalan [in Combi.Combi.Dyckword]
+Catalan_bin [in Combi.Combi.bintree]
+Catalan_bin_leq [in Combi.Combi.bintree]
+catlang [in Combi.LRrule.freeSchur]
+cat_left [in Combi.Combi.bintree]
+cat_Dyck [in Combi.Combi.Dyckword]
+Cauchy_co_hpXY__canonical__Algebra_Additive [in Combi.MPoly.Cauchy]
+Cauchy_co_hp__canonical__GRing_Linear [in Combi.MPoly.Cauchy]
+Cauchy_co_hp__canonical__Algebra_Additive [in Combi.MPoly.Cauchy]
+Cauchy_kernel [in Combi.MPoly.Cauchy]
+Cauchy_evalXY__canonical__GRing_LRMorphism [in Combi.MPoly.Cauchy]
+Cauchy_evalXY__canonical__GRing_Linear [in Combi.MPoly.Cauchy]
+Cauchy_evalXY__canonical__GRing_RMorphism [in Combi.MPoly.Cauchy]
+Cauchy_evalXY__canonical__Algebra_Additive [in Combi.MPoly.Cauchy]
+Cauchy_polY_XY__canonical__GRing_LRMorphism [in Combi.MPoly.Cauchy]
+Cauchy_polY_XY__canonical__GRing_Linear [in Combi.MPoly.Cauchy]
+Cauchy_polY_XY__canonical__GRing_RMorphism [in Combi.MPoly.Cauchy]
+Cauchy_polY_XY__canonical__Algebra_Additive [in Combi.MPoly.Cauchy]
+Cauchy_polX_XY__canonical__GRing_LRMorphism [in Combi.MPoly.Cauchy]
+Cauchy_polX_XY__canonical__GRing_Linear [in Combi.MPoly.Cauchy]
+Cauchy_polX_XY__canonical__GRing_RMorphism [in Combi.MPoly.Cauchy]
+Cauchy_polX_XY__canonical__Algebra_Additive [in Combi.MPoly.Cauchy]
+Cauchy_polXY__canonical__GRing_NzAlgebra [in Combi.MPoly.Cauchy]
+Cauchy_polXY__canonical__GRing_NzSemiAlgebra [in Combi.MPoly.Cauchy]
+Cauchy_polXY__canonical__GRing_PzAlgebra [in Combi.MPoly.Cauchy]
+Cauchy_polXY__canonical__GRing_PzSemiAlgebra [in Combi.MPoly.Cauchy]
+Cauchy_polXY__canonical__GRing_NzLalgebra [in Combi.MPoly.Cauchy]
+Cauchy_polXY__canonical__GRing_NzLSemiAlgebra [in Combi.MPoly.Cauchy]
+Cauchy_polXY__canonical__GRing_PzLalgebra [in Combi.MPoly.Cauchy]
+Cauchy_polXY__canonical__GRing_PzLSemiAlgebra [in Combi.MPoly.Cauchy]
+Cauchy_polXY__canonical__GRing_Lmodule [in Combi.MPoly.Cauchy]
+Cauchy_polXY__canonical__GRing_LSemiModule [in Combi.MPoly.Cauchy]
+Cauchy_polXY__canonical__GRing_NzRing [in Combi.MPoly.Cauchy]
+Cauchy_polXY__canonical__GRing_NzSemiRing [in Combi.MPoly.Cauchy]
+Cauchy_polXY__canonical__GRing_PzRing [in Combi.MPoly.Cauchy]
+Cauchy_polXY__canonical__GRing_PzSemiRing [in Combi.MPoly.Cauchy]
+Cauchy_polXY__canonical__Algebra_Zmodule [in Combi.MPoly.Cauchy]
+Cauchy_polXY__canonical__Algebra_Nmodule [in Combi.MPoly.Cauchy]
+Cauchy_polXY__canonical__Algebra_AddSemigroup [in Combi.MPoly.Cauchy]
+Cauchy_polXY__canonical__Algebra_AddUMagma [in Combi.MPoly.Cauchy]
+Cauchy_polXY__canonical__Algebra_AddMagma [in Combi.MPoly.Cauchy]
+Cauchy_polXY__canonical__Algebra_BaseZmodule [in Combi.MPoly.Cauchy]
+Cauchy_polXY__canonical__Algebra_ChoiceBaseAddUMagma [in Combi.MPoly.Cauchy]
+Cauchy_polXY__canonical__Algebra_BaseAddUMagma [in Combi.MPoly.Cauchy]
+Cauchy_polXY__canonical__Algebra_ChoiceBaseAddMagma [in Combi.MPoly.Cauchy]
+Cauchy_polXY__canonical__Algebra_BaseAddMagma [in Combi.MPoly.Cauchy]
+Cauchy_polXY__canonical__choice_Choice [in Combi.MPoly.Cauchy]
+Cauchy_polXY__canonical__eqtype_Equality [in Combi.MPoly.Cauchy]
+cfextprod [in Combi.SymGroup.towerSn]
+cfuniCT [in Combi.SymGroup.cycletype]
+changeUT [in Combi.LRrule.freeSchur]
+charfun [in Combi.HookFormula.hook]
+choice_Countable__to__choice_Choice_isCountable [in Combi.Combi.std]
+choice_Countable__to__eqtype_hasDecEq [in Combi.Combi.std]
+choice_Countable__to__choice_hasChoice [in Combi.Combi.std]
+choice_Choice__to__eqtype_hasDecEq [in Combi.MPoly.homogsym]
+choice_Choice__to__choice_hasChoice [in Combi.MPoly.homogsym]
+choice_Countable__to__choice_Choice_isCountable__78 [in Combi.Combi.partition]
+choice_Countable__to__eqtype_hasDecEq__76 [in Combi.Combi.partition]
+choice_Countable__to__choice_hasChoice__74 [in Combi.Combi.partition]
+choice_Countable__to__choice_Choice_isCountable__21 [in Combi.Combi.partition]
+choice_Countable__to__eqtype_hasDecEq__19 [in Combi.Combi.partition]
+choice_Countable__to__choice_hasChoice__17 [in Combi.Combi.partition]
+choice_Countable__to__choice_Choice_isCountable [in Combi.Combi.partition]
+choice_Countable__to__eqtype_hasDecEq [in Combi.Combi.partition]
+choice_Countable__to__choice_hasChoice [in Combi.Combi.partition]
+choice_Countable__to__choice_Choice_isCountable__18 [in Combi.Combi.bintree]
+choice_Countable__to__eqtype_hasDecEq [in Combi.Combi.bintree]
+choice_Countable__to__choice_hasChoice [in Combi.Combi.bintree]
+choice_Countable__to__choice_Choice_isCountable [in Combi.Combi.bintree]
+choice_Choice__to__choice_hasChoice [in Combi.Combi.bintree]
+choice_Choice__to__eqtype_hasDecEq [in Combi.LRrule.Schensted]
+choice_Choice__to__choice_hasChoice__14 [in Combi.LRrule.Schensted]
+choice_Choice__to__choice_hasChoice [in Combi.LRrule.Schensted]
+choice_Countable__to__choice_Choice_isCountable__25 [in Combi.Combi.Dyckword]
+choice_Countable__to__eqtype_hasDecEq [in Combi.Combi.Dyckword]
+choice_Countable__to__choice_hasChoice [in Combi.Combi.Dyckword]
+choice_Countable__to__choice_Choice_isCountable [in Combi.Combi.Dyckword]
+choice_Choice__to__choice_hasChoice [in Combi.Combi.Dyckword]
+choice_Countable__to__choice_Choice_isCountable__20 [in Combi.Combi.stdtab]
+choice_Countable__to__eqtype_hasDecEq__18 [in Combi.Combi.stdtab]
+choice_Countable__to__choice_hasChoice__16 [in Combi.Combi.stdtab]
+choice_Countable__to__choice_Choice_isCountable [in Combi.Combi.stdtab]
+choice_Countable__to__eqtype_hasDecEq [in Combi.Combi.stdtab]
+choice_Countable__to__choice_hasChoice [in Combi.Combi.stdtab]
+choice_Countable__to__choice_Choice_isCountable [in Combi.Combi.tableau]
+choice_Countable__to__eqtype_hasDecEq [in Combi.Combi.tableau]
+choice_Countable__to__choice_hasChoice [in Combi.Combi.tableau]
+choice_Countable__to__choice_Choice_isCountable__18 [in Combi.Combi.ordtree]
+choice_Countable__to__eqtype_hasDecEq [in Combi.Combi.ordtree]
+choice_Countable__to__choice_hasChoice [in Combi.Combi.ordtree]
+choice_Countable__to__choice_Choice_isCountable [in Combi.Combi.ordtree]
+choice_Choice__to__choice_hasChoice [in Combi.Combi.ordtree]
+choice_Countable__to__choice_Choice_isCountable__24 [in Combi.Combi.Yamanouchi]
+choice_Countable__to__eqtype_hasDecEq__22 [in Combi.Combi.Yamanouchi]
+choice_Countable__to__choice_hasChoice__20 [in Combi.Combi.Yamanouchi]
+choice_Countable__to__choice_Choice_isCountable [in Combi.Combi.Yamanouchi]
+choice_Countable__to__eqtype_hasDecEq [in Combi.Combi.Yamanouchi]
+choice_Countable__to__choice_hasChoice [in Combi.Combi.Yamanouchi]
+choice_Countable__to__choice_Choice_isCountable [in Combi.Combi.permuted]
+choice_Countable__to__eqtype_hasDecEq [in Combi.Combi.permuted]
+choice_Countable__to__choice_hasChoice [in Combi.Combi.permuted]
+choice_Countable__to__choice_Choice_isCountable [in Combi.SymGroup.presentSn]
+choice_Countable__to__eqtype_hasDecEq [in Combi.SymGroup.presentSn]
+choice_Countable__to__choice_hasChoice [in Combi.SymGroup.presentSn]
+choice_Choice__to__eqtype_hasDecEq [in Combi.MPoly.sympoly]
+choice_Choice__to__choice_hasChoice [in Combi.MPoly.sympoly]
+choice_Countable__to__choice_Choice_isCountable__28 [in Combi.Combi.composition]
+choice_Countable__to__eqtype_hasDecEq__26 [in Combi.Combi.composition]
+choice_Countable__to__choice_hasChoice__24 [in Combi.Combi.composition]
+choice_Countable__to__choice_Choice_isCountable [in Combi.Combi.composition]
+choice_Countable__to__eqtype_hasDecEq [in Combi.Combi.composition]
+choice_Countable__to__choice_hasChoice [in Combi.Combi.composition]
+choose_corner [in Combi.HookFormula.hook]
+class [in ALEA.Misc]
+classCT [in Combi.SymGroup.cycletype]
+classfun_cfdot__canonical__sesquilinear_Dot [in Combi.SymGroup.Frobenius_char]
+classfun_cfdot__canonical__sesquilinear_Hermitian [in Combi.SymGroup.Frobenius_char]
+classfun_cfdot__canonical__sesquilinear_Bilinear [in Combi.SymGroup.Frobenius_char]
+CMbij [in Combi.SymGroup.cycletype]
+cnvarhomsym [in Combi.MPoly.homogsym]
+cnvarsym [in Combi.MPoly.sympoly]
+cocode [in Combi.SymGroup.presentSn]
+cocode_rec [in Combi.SymGroup.presentSn]
+code [in Combi.SymGroup.presentSn]
+coeff_prodgen [in Combi.MPoly.sympoly]
+coeff_prodgen_seq [in Combi.MPoly.sympoly]
+colcomp [in Combi.Combi.composition]
+colcompn [in Combi.Combi.composition]
+colpartn [in Combi.Combi.partition]
+commword [in Combi.LRrule.freeSchur]
+comp [in ALEA.Ccpo]
+compn [in ALEA.Misc]
+composition_intcompn__canonical__fintype_SubFinite [in Combi.Combi.composition]
+composition_intcompn__canonical__fintype_Finite [in Combi.Combi.composition]
+composition_intcompn__canonical__choice_SubCountable [in Combi.Combi.composition]
+composition_intcompn__canonical__choice_Countable [in Combi.Combi.composition]
+composition_intcompn__canonical__choice_SubChoice [in Combi.Combi.composition]
+composition_intcompn__canonical__choice_Choice [in Combi.Combi.composition]
+composition_intcompn__canonical__eqtype_SubEquality [in Combi.Combi.composition]
+composition_intcompn__canonical__eqtype_Equality [in Combi.Combi.composition]
+composition_intcompn__canonical__eqtype_SubType [in Combi.Combi.composition]
+composition_intcomp__canonical__choice_SubCountable [in Combi.Combi.composition]
+composition_intcomp__canonical__choice_Countable [in Combi.Combi.composition]
+composition_intcomp__canonical__choice_SubChoice [in Combi.Combi.composition]
+composition_intcomp__canonical__choice_Choice [in Combi.Combi.composition]
+composition_intcomp__canonical__eqtype_SubEquality [in Combi.Combi.composition]
+composition_intcomp__canonical__eqtype_Equality [in Combi.Combi.composition]
+composition_intcomp__canonical__eqtype_SubType [in Combi.Combi.composition]
+congrrule [in Combi.Basic.congr]
+congruence_rule [in Combi.Basic.congr]
+congruence_rel [in Combi.Basic.congr]
+conjbij [in Combi.SymGroup.cycletype]
+conj_intpartn [in Combi.Combi.partition]
+conj_intpart [in Combi.Combi.partition]
+conj_part [in Combi.Combi.partition]
+conj_stdtabsh [in Combi.Combi.stdtab]
+conj_stdtabn [in Combi.Combi.stdtab]
+conj_tab_expl2 [in Combi.Combi.stdtab]
+conj_tab_expl1 [in Combi.Combi.stdtab]
+conj_tab [in Combi.Combi.stdtab]
+conn4_skew [in Combi.Combi.skewpart]
+cont_app [in ALEA.Ccpo]
+cont2 [in ALEA.Ccpo]
+corner_box [in Combi.HookFormula.hook]
+covers [in Combi.Basic.ordtype]
+co_hpXY [in Combi.MPoly.Cauchy]
+co_hp [in Combi.MPoly.Cauchy]
+cpo_ord_equiv [in ALEA.Ccpo]
+cshift [in ALEA.Ccpo]
+cte [in ALEA.Ccpo]
+CTpartn [in Combi.SymGroup.cycletype]
+cut_k [in Combi.Combi.vectNK]
+cut3 [in Combi.Combi.vectNK]
+cycle_typeSn [in Combi.SymGroup.cycletype]
+cycle_type [in Combi.SymGroup.cycletype]
+cycle_dec [in Combi.SymGroup.cycles]
+cyclic [in Combi.SymGroup.cycles]
+cymap [in Combi.SymGroup.cycletype]
+cymapcan [in Combi.SymGroup.cycletype]
+

D

+Datatypes_nat__canonical__ordtype_InhOrder [in Combi.Basic.ordtype]
+Datatypes_nat__canonical__ordtype_InhLattice [in Combi.Basic.ordtype]
+Datatypes_nat__canonical__ordtype_InhPOrder [in Combi.Basic.ordtype]
+Datatypes_bool__canonical__ordtype_InhTBLattice [in Combi.Basic.ordtype]
+Datatypes_bool__canonical__ordtype_InhFinOrder [in Combi.Basic.ordtype]
+Datatypes_bool__canonical__ordtype_InhFinLattice [in Combi.Basic.ordtype]
+Datatypes_bool__canonical__ordtype_InhFinPOrder [in Combi.Basic.ordtype]
+Datatypes_bool__canonical__ordtype_InhFinite [in Combi.Basic.ordtype]
+Datatypes_bool__canonical__ordtype_InhOrder [in Combi.Basic.ordtype]
+Datatypes_bool__canonical__ordtype_InhLattice [in Combi.Basic.ordtype]
+Datatypes_bool__canonical__ordtype_InhPOrder [in Combi.Basic.ordtype]
+Datatypes_prod__canonical__ordtype_Inhabited [in Combi.Basic.ordtype]
+Datatypes_option__canonical__ordtype_Inhabited [in Combi.Basic.ordtype]
+Datatypes_nat__canonical__ordtype_Inhabited [in Combi.Basic.ordtype]
+Datatypes_bool__canonical__ordtype_Inhabited [in Combi.Basic.ordtype]
+Datatypes_unit__canonical__ordtype_Inhabited [in Combi.Basic.ordtype]
+decr_nth_intpart [in Combi.Combi.partition]
+decr_nth [in Combi.Combi.partition]
+decr_yam [in Combi.Combi.Yamanouchi]
+Delta [in Combi.SymGroup.presentSn]
+depth_ordtree [in Combi.Combi.ordtree]
+descset [in Combi.Combi.composition]
+dhomog_of_homogsym [in Combi.MPoly.homogsym]
+diag [in ALEA.Ccpo]
+diff_shape [in Combi.Combi.partition]
+disjoint_psupports [in Combi.SymGroup.cycles]
+disp [in Combi.LRrule.extract]
+dominant [in Combi.MPoly.antisym]
+dominate [in Combi.Combi.tableau]
+dominate_rev_trans [in Combi.Combi.tableau]
+dominate_rec [in Combi.Combi.tableau]
+double_app [in ALEA.Ccpo]
+dyck [in Combi.Combi.Dyckword]
+Dyckword_Dyck__canonical__choice_SubCountable [in Combi.Combi.Dyckword]
+Dyckword_Dyck__canonical__choice_Countable [in Combi.Combi.Dyckword]
+Dyckword_Dyck__canonical__choice_SubChoice [in Combi.Combi.Dyckword]
+Dyckword_Dyck__canonical__choice_Choice [in Combi.Combi.Dyckword]
+Dyckword_Dyck__canonical__eqtype_SubEquality [in Combi.Combi.Dyckword]
+Dyckword_Dyck__canonical__eqtype_Equality [in Combi.Combi.Dyckword]
+Dyckword_Dyck__canonical__eqtype_SubType [in Combi.Combi.Dyckword]
+Dyckword_brace__canonical__fintype_Finite [in Combi.Combi.Dyckword]
+Dyckword_brace__canonical__choice_Countable [in Combi.Combi.Dyckword]
+Dyckword_brace__canonical__choice_Choice [in Combi.Combi.Dyckword]
+Dyckword_brace__canonical__eqtype_Equality [in Combi.Combi.Dyckword]
+Dyck_of_bal [in Combi.Combi.Dyckword]
+Dyck_hsz [in Combi.Combi.Dyckword]
+Dyck_of_bintree [in Combi.Combi.Dyckword]
+Dyck_word [in Combi.Combi.Dyckword]
+Dyck_prefix [in Combi.Combi.Dyckword]
+

E

+eltr [in Combi.SymGroup.presentSn]
+eltrD [in Combi.SymGroup.presentSn]
+eltrL [in Combi.SymGroup.presentSn]
+eltrp [in Combi.MPoly.antisym]
+eltrR [in Combi.SymGroup.presentSn]
+empty_intpart [in Combi.Combi.partition]
+ends_at [in Combi.HookFormula.hook]
+enum_stdwordn [in Combi.Combi.std]
+enum_box_skew [in Combi.Combi.partition]
+enum_partn [in Combi.Combi.partition]
+enum_partns [in Combi.Combi.partition]
+enum_partnsk [in Combi.Combi.partition]
+enum_bintreesz [in Combi.Combi.bintree]
+enum_bintreesz_leq [in Combi.Combi.bintree]
+enum_trace [in Combi.HookFormula.hook]
+enum_stdtabn [in Combi.Combi.stdtab]
+enum_stdtabsh [in Combi.Combi.stdtab]
+enum_ordtreesz [in Combi.Combi.ordtree]
+enum_yameval [in Combi.Combi.Yamanouchi]
+enum_yamevaln [in Combi.Combi.Yamanouchi]
+enum_codesz [in Combi.SymGroup.presentSn]
+enum_union [in Combi.Basic.combclass]
+enum_compn [in Combi.Combi.composition]
+enum_compn_rec [in Combi.Combi.composition]
+eqeval [in Combi.MPoly.Schur_altdef]
+eqtype_Equality__to__eqtype_hasDecEq [in Combi.LRrule.Schensted]
+eqtype_Equality__to__eqtype_hasDecEq [in Combi.Combi.Dyckword]
+eq_inv [in Combi.Combi.std]
+eq_bintree [in Combi.Combi.bintree]
+eq_ord [in ALEA.Ccpo]
+eq_rel [in ALEA.Ccpo]
+eq_ordtree [in Combi.Combi.ordtree]
+eq_forest [in Combi.Combi.ordtree]
+eq_nat2_dec [in ALEA.Misc]
+eval [in Combi.MPoly.Schur_altdef]
+evalseq [in Combi.Combi.Yamanouchi]
+evalseq_count [in Combi.Combi.Yamanouchi]
+evalXY [in Combi.MPoly.Cauchy]
+Example1.choice_Countable__to__choice_Choice_isCountable [in Combi.Basic.combclass]
+Example1.choice_Countable__to__eqtype_hasDecEq [in Combi.Basic.combclass]
+Example1.choice_Countable__to__choice_hasChoice [in Combi.Basic.combclass]
+Example1.Example1_isOne__canonical__fintype_SubFinite [in Combi.Basic.combclass]
+Example1.Example1_isOne__canonical__fintype_Finite [in Combi.Basic.combclass]
+Example1.Example1_isOne__canonical__choice_SubCountable [in Combi.Basic.combclass]
+Example1.Example1_isOne__canonical__choice_Countable [in Combi.Basic.combclass]
+Example1.Example1_isOne__canonical__choice_SubChoice [in Combi.Basic.combclass]
+Example1.Example1_isOne__canonical__choice_Choice [in Combi.Basic.combclass]
+Example1.Example1_isOne__canonical__eqtype_SubEquality [in Combi.Basic.combclass]
+Example1.Example1_isOne__canonical__eqtype_Equality [in Combi.Basic.combclass]
+Example1.Example1_isOne__canonical__eqtype_SubType [in Combi.Basic.combclass]
+Example1.fintype_Finite__to__fintype_isFinite [in Combi.Basic.combclass]
+Example1.HB_unnamed_mixin_15 [in Combi.Basic.combclass]
+Example1.HB_unnamed_factory_10 [in Combi.Basic.combclass]
+Example1.HB_unnamed_mixin_9 [in Combi.Basic.combclass]
+Example1.HB_unnamed_mixin_8 [in Combi.Basic.combclass]
+Example1.HB_unnamed_mixin_7 [in Combi.Basic.combclass]
+Example1.HB_unnamed_factory_3 [in Combi.Basic.combclass]
+Example1.HB_unnamed_factory_1 [in Combi.Basic.combclass]
+Example1.is_one [in Combi.Basic.combclass]
+Example2.choice_Countable__to__choice_Choice_isCountable [in Combi.Basic.combclass]
+Example2.choice_Countable__to__eqtype_hasDecEq [in Combi.Basic.combclass]
+Example2.choice_Countable__to__choice_hasChoice [in Combi.Basic.combclass]
+Example2.Example2_isOne__canonical__fintype_SubFinite [in Combi.Basic.combclass]
+Example2.Example2_isOne__canonical__fintype_Finite [in Combi.Basic.combclass]
+Example2.Example2_isOne__canonical__choice_SubCountable [in Combi.Basic.combclass]
+Example2.Example2_isOne__canonical__choice_Countable [in Combi.Basic.combclass]
+Example2.Example2_isOne__canonical__choice_SubChoice [in Combi.Basic.combclass]
+Example2.Example2_isOne__canonical__choice_Choice [in Combi.Basic.combclass]
+Example2.Example2_isOne__canonical__eqtype_SubEquality [in Combi.Basic.combclass]
+Example2.Example2_isOne__canonical__eqtype_Equality [in Combi.Basic.combclass]
+Example2.Example2_isOne__canonical__eqtype_SubType [in Combi.Basic.combclass]
+Example2.fintype_Finite__to__fintype_isFinite [in Combi.Basic.combclass]
+Example2.HB_unnamed_mixin_30 [in Combi.Basic.combclass]
+Example2.HB_unnamed_factory_25 [in Combi.Basic.combclass]
+Example2.HB_unnamed_mixin_24 [in Combi.Basic.combclass]
+Example2.HB_unnamed_mixin_23 [in Combi.Basic.combclass]
+Example2.HB_unnamed_mixin_22 [in Combi.Basic.combclass]
+Example2.HB_unnamed_factory_18 [in Combi.Basic.combclass]
+Example2.HB_unnamed_factory_16 [in Combi.Basic.combclass]
+Example2.is_one [in Combi.Basic.combclass]
+Example3.choice_Countable__to__choice_Choice_isCountable [in Combi.Basic.combclass]
+Example3.choice_Countable__to__eqtype_hasDecEq [in Combi.Basic.combclass]
+Example3.choice_Countable__to__choice_hasChoice [in Combi.Basic.combclass]
+Example3.Example3_isOne__canonical__fintype_SubFinite [in Combi.Basic.combclass]
+Example3.Example3_isOne__canonical__fintype_Finite [in Combi.Basic.combclass]
+Example3.Example3_isOne__canonical__choice_SubCountable [in Combi.Basic.combclass]
+Example3.Example3_isOne__canonical__choice_Countable [in Combi.Basic.combclass]
+Example3.Example3_isOne__canonical__choice_SubChoice [in Combi.Basic.combclass]
+Example3.Example3_isOne__canonical__choice_Choice [in Combi.Basic.combclass]
+Example3.Example3_isOne__canonical__eqtype_SubEquality [in Combi.Basic.combclass]
+Example3.Example3_isOne__canonical__eqtype_Equality [in Combi.Basic.combclass]
+Example3.Example3_isOne__canonical__eqtype_SubType [in Combi.Basic.combclass]
+Example3.fintype_Finite__to__fintype_isFinite [in Combi.Basic.combclass]
+Example3.HB_unnamed_mixin_45 [in Combi.Basic.combclass]
+Example3.HB_unnamed_factory_40 [in Combi.Basic.combclass]
+Example3.HB_unnamed_mixin_39 [in Combi.Basic.combclass]
+Example3.HB_unnamed_mixin_38 [in Combi.Basic.combclass]
+Example3.HB_unnamed_mixin_37 [in Combi.Basic.combclass]
+Example3.HB_unnamed_factory_33 [in Combi.Basic.combclass]
+Example3.HB_unnamed_factory_31 [in Combi.Basic.combclass]
+Example3.is_one [in Combi.Basic.combclass]
+exc [in ALEA.Misc]
+extprod_mx_repr [in Combi.SymGroup.towerSn]
+extract [in Combi.LRrule.Greene]
+extractpred [in Combi.LRrule.Greene]
+ext_tab [in Combi.MPoly.Schur_altdef]
+ext_tab_fun [in Combi.MPoly.Schur_altdef]
+

F

+famY [in Combi.MPoly.Cauchy]
+famYinv [in Combi.MPoly.Cauchy]
+fbbij [in Combi.Combi.fibered_set]
+Fchar [in Combi.SymGroup.Frobenius_char]
+Fchar_inv [in Combi.SymGroup.Frobenius_char]
+fcomp [in ALEA.Ccpo]
+fcomp2 [in ALEA.Ccpo]
+Fcontm [in ALEA.Ccpo]
+fcont_compn [in ALEA.Ccpo]
+fcont_SEQ [in ALEA.Ccpo]
+fcont_COMP [in ALEA.Ccpo]
+fcont_Comp [in ALEA.Ccpo]
+fcont_comp [in ALEA.Ccpo]
+fcont_mshift [in ALEA.Ccpo]
+fcont_ishift [in ALEA.Ccpo]
+fcont_app [in ALEA.Ccpo]
+fcont_lub [in ALEA.Ccpo]
+fcont_fun [in ALEA.Ccpo]
+fcont0 [in ALEA.Ccpo]
+fcont2_comp [in ALEA.Ccpo]
+fcont2_COMP [in ALEA.Ccpo]
+feq [in ALEA.Misc]
+fiber [in Combi.Combi.fibered_set]
+Fif [in ALEA.Ccpo]
+fif [in ALEA.Ccpo]
+filter_le_tab [in Combi.Combi.skewtab]
+filter_gt_tab [in Combi.Combi.tableau]
+Finite [in ALEA.Qmeasure]
+finset_set_of__canonical__ordtype_Inhabited [in Combi.Basic.ordtype]
+fintype_Finite__to__fintype_isFinite [in Combi.Combi.std]
+fintype_Finite__to__fintype_isFinite__87 [in Combi.Combi.partition]
+fintype_Finite__to__fintype_isFinite [in Combi.Combi.partition]
+fintype_Finite__to__fintype_isFinite [in Combi.Combi.bintree]
+fintype_Finite__to__eqtype_hasDecEq [in Combi.Combi.bintree]
+fintype_Finite__to__choice_Choice_isCountable [in Combi.Combi.bintree]
+fintype_Finite__to__choice_hasChoice [in Combi.Combi.bintree]
+fintype_Finite__to__fintype_isFinite [in Combi.Combi.Dyckword]
+fintype_Finite__to__fintype_isFinite [in Combi.Combi.subseq]
+fintype_Finite__to__eqtype_hasDecEq [in Combi.Combi.subseq]
+fintype_Finite__to__choice_Choice_isCountable [in Combi.Combi.subseq]
+fintype_Finite__to__choice_hasChoice [in Combi.Combi.subseq]
+fintype_Finite__to__fintype_isFinite [in Combi.Combi.ordtree]
+fintype_Finite__to__eqtype_hasDecEq [in Combi.Combi.ordtree]
+fintype_Finite__to__choice_Choice_isCountable [in Combi.Combi.ordtree]
+fintype_Finite__to__choice_hasChoice [in Combi.Combi.ordtree]
+fintype_Finite__to__fintype_isFinite__33 [in Combi.Combi.Yamanouchi]
+fintype_Finite__to__fintype_isFinite [in Combi.Combi.Yamanouchi]
+fintype_Finite__to__fintype_isFinite [in Combi.Combi.setpartition]
+fintype_Finite__to__eqtype_hasDecEq [in Combi.Combi.setpartition]
+fintype_Finite__to__choice_Choice_isCountable [in Combi.Combi.setpartition]
+fintype_Finite__to__choice_hasChoice [in Combi.Combi.setpartition]
+fintype_Finite__to__fintype_isFinite [in Combi.Combi.permuted]
+fintype_ordinal__canonical__Order_FinTBTotal [in Combi.Basic.ordtype]
+fintype_ordinal__canonical__Order_TBTotal [in Combi.Basic.ordtype]
+fintype_ordinal__canonical__Order_BTotal [in Combi.Basic.ordtype]
+fintype_ordinal__canonical__Order_FinTBDistrLattice [in Combi.Basic.ordtype]
+fintype_ordinal__canonical__Order_TBDistrLattice [in Combi.Basic.ordtype]
+fintype_ordinal__canonical__Order_BDistrLattice [in Combi.Basic.ordtype]
+fintype_ordinal__canonical__Order_FinTBLattice [in Combi.Basic.ordtype]
+fintype_ordinal__canonical__ordtype_InhTBLattice [in Combi.Basic.ordtype]
+fintype_ordinal__canonical__Order_SubTBLattice [in Combi.Basic.ordtype]
+fintype_ordinal__canonical__Order_JoinSubTBLattice [in Combi.Basic.ordtype]
+fintype_ordinal__canonical__Order_SubBLattice [in Combi.Basic.ordtype]
+fintype_ordinal__canonical__Order_JoinSubBLattice [in Combi.Basic.ordtype]
+fintype_ordinal__canonical__Order_MeetSubTBLattice [in Combi.Basic.ordtype]
+fintype_ordinal__canonical__Order_MeetSubBLattice [in Combi.Basic.ordtype]
+fintype_ordinal__canonical__Order_SubPOrderTBLattice [in Combi.Basic.ordtype]
+fintype_ordinal__canonical__Order_SubPOrderBLattice [in Combi.Basic.ordtype]
+fintype_ordinal__canonical__Order_TBLattice [in Combi.Basic.ordtype]
+fintype_ordinal__canonical__Order_BLattice [in Combi.Basic.ordtype]
+fintype_ordinal__canonical__Order_TBJoinSemilattice [in Combi.Basic.ordtype]
+fintype_ordinal__canonical__Order_BJoinSemilattice [in Combi.Basic.ordtype]
+fintype_ordinal__canonical__Order_FinBMeetSemilattice [in Combi.Basic.ordtype]
+fintype_ordinal__canonical__Order_TBMeetSemilattice [in Combi.Basic.ordtype]
+fintype_ordinal__canonical__Order_BMeetSemilattice [in Combi.Basic.ordtype]
+fintype_ordinal__canonical__Order_FinTBPOrder [in Combi.Basic.ordtype]
+fintype_ordinal__canonical__Order_FinBPOrder [in Combi.Basic.ordtype]
+fintype_ordinal__canonical__Order_TBPOrder [in Combi.Basic.ordtype]
+fintype_ordinal__canonical__Order_BPOrder [in Combi.Basic.ordtype]
+fintype_ordinal__canonical__ordtype_InhFinOrder [in Combi.Basic.ordtype]
+fintype_ordinal__canonical__ordtype_InhFinLattice [in Combi.Basic.ordtype]
+fintype_ordinal__canonical__Order_FinTJoinSemilattice [in Combi.Basic.ordtype]
+fintype_ordinal__canonical__Order_FinTPOrder [in Combi.Basic.ordtype]
+fintype_ordinal__canonical__ordtype_InhFinPOrder [in Combi.Basic.ordtype]
+fintype_ordinal__canonical__ordtype_InhFinite [in Combi.Basic.ordtype]
+fintype_ordinal__canonical__ordtype_InhOrder [in Combi.Basic.ordtype]
+fintype_ordinal__canonical__Order_TTotal [in Combi.Basic.ordtype]
+fintype_ordinal__canonical__Order_TDistrLattice [in Combi.Basic.ordtype]
+fintype_ordinal__canonical__ordtype_InhLattice [in Combi.Basic.ordtype]
+fintype_ordinal__canonical__ordtype_InhPOrder [in Combi.Basic.ordtype]
+fintype_ordinal__canonical__Order_SubTLattice [in Combi.Basic.ordtype]
+fintype_ordinal__canonical__Order_JoinSubTLattice [in Combi.Basic.ordtype]
+fintype_ordinal__canonical__Order_MeetSubTLattice [in Combi.Basic.ordtype]
+fintype_ordinal__canonical__Order_SubPOrderTLattice [in Combi.Basic.ordtype]
+fintype_ordinal__canonical__Order_TLattice [in Combi.Basic.ordtype]
+fintype_ordinal__canonical__Order_TJoinSemilattice [in Combi.Basic.ordtype]
+fintype_ordinal__canonical__Order_TMeetSemilattice [in Combi.Basic.ordtype]
+fintype_ordinal__canonical__Order_TPOrder [in Combi.Basic.ordtype]
+fintype_ordinal__canonical__ordtype_Inhabited [in Combi.Basic.ordtype]
+fintype_Finite__to__fintype_isFinite [in Combi.SymGroup.presentSn]
+fintype_Finite__to__fintype_isFinite [in Combi.Combi.composition]
+FIXP [in ALEA.Ccpo]
+Fixp [in ALEA.Ccpo]
+fixp [in ALEA.Ccpo]
+Fixp_cont [in ALEA.Ccpo]
+fixp_cte [in ALEA.Ccpo]
+Flip [in ALEA.Qmeasure]
+flip [in ALEA.Qmeasure]
+flip [in Combi.Combi.bintree]
+flipsz [in Combi.Combi.bintree]
+fnatO_intro [in ALEA.Ccpo]
+forest_to_bintree [in Combi.Combi.ordtree]
+fprob [in ALEA.Qmeasure]
+freeSchur [in Combi.LRrule.freeSchur]
+Frobenius_char_Fchar_inv__canonical__GRing_Linear [in Combi.SymGroup.Frobenius_char]
+Frobenius_char_Fchar_inv__canonical__Algebra_Additive [in Combi.SymGroup.Frobenius_char]
+Frobenius_char_Fchar__canonical__GRing_Linear [in Combi.SymGroup.Frobenius_char]
+Frobenius_char_Fchar__canonical__Algebra_Additive [in Combi.SymGroup.Frobenius_char]
+from_vct [in Combi.Combi.bintree]
+from_vct_acc [in Combi.Combi.bintree]
+from_vct_rec [in Combi.Combi.bintree]
+from_left [in Combi.Combi.bintree]
+from_revdual [in Combi.LRrule.plactic]
+from_descset [in Combi.Combi.composition]
+fun_ext [in ALEA.Ccpo]
+fun2 [in ALEA.Ccpo]
+

G

+genclass [in Combi.Basic.congr]
+genclass_hom [in Combi.Basic.congr]
+genclass_multhom [in Combi.Basic.congr]
+gencongr [in Combi.Basic.congr]
+gencongr_hom [in Combi.Basic.congr]
+gencongr_multhom [in Combi.Basic.congr]
+get_tab [in Combi.Combi.tableau]
+Greene_col [in Combi.LRrule.Greene]
+Greene_row [in Combi.LRrule.Greene]
+Greene_rel [in Combi.LRrule.Greene]
+Greene_rel_t [in Combi.LRrule.Greene]
+GRing_isZmodMorphism__to__Algebra_isNmodMorphism__76 [in Combi.MPoly.Cauchy]
+GRing_isLinear__to__Algebra_isNmodMorphism [in Combi.MPoly.Cauchy]
+GRing_isLinear__to__GRing_isScalable__70 [in Combi.MPoly.Cauchy]
+GRing_isZmodMorphism__to__Algebra_isNmodMorphism__65 [in Combi.MPoly.Cauchy]
+GRing_isLinear__to__GRing_isScalable__59 [in Combi.MPoly.Cauchy]
+GRing_isZmodMorphism__to__Algebra_isNmodMorphism__53 [in Combi.MPoly.Cauchy]
+GRing_isLinear__to__GRing_isScalable__48 [in Combi.MPoly.Cauchy]
+GRing_isZmodMorphism__to__Algebra_isNmodMorphism__42 [in Combi.MPoly.Cauchy]
+GRing_isLinear__to__GRing_isScalable [in Combi.MPoly.Cauchy]
+GRing_isZmodMorphism__to__Algebra_isNmodMorphism [in Combi.MPoly.Cauchy]
+GRing_Zmodule_isLmodule__to__GRing_Nmodule_isLSemiModule [in Combi.MPoly.Cauchy]
+GRing_NzRing__to__GRing_PzSemiRing_isNonZero [in Combi.MPoly.Cauchy]
+GRing_NzRing__to__GRing_Nmodule_isPzSemiRing [in Combi.MPoly.Cauchy]
+GRing_NzRing__to__Algebra_AddMagma_isAddSemigroup [in Combi.MPoly.Cauchy]
+GRing_NzRing__to__Algebra_BaseAddMagma_isAddMagma [in Combi.MPoly.Cauchy]
+GRing_NzRing__to__Algebra_BaseAddUMagma_isAddUMagma [in Combi.MPoly.Cauchy]
+GRing_NzRing__to__Algebra_BaseZmoduleNmodule_isZmodule [in Combi.MPoly.Cauchy]
+GRing_NzRing__to__Algebra_hasAdd [in Combi.MPoly.Cauchy]
+GRing_NzRing__to__Algebra_hasZero [in Combi.MPoly.Cauchy]
+GRing_NzRing__to__Algebra_hasOpp [in Combi.MPoly.Cauchy]
+GRing_NzRing__to__eqtype_hasDecEq [in Combi.MPoly.Cauchy]
+GRing_NzRing__to__choice_hasChoice [in Combi.MPoly.Cauchy]
+GRing_isLinear__to__Algebra_isNmodMorphism__77 [in Combi.MPoly.homogsym]
+GRing_isLinear__to__GRing_isScalable__75 [in Combi.MPoly.homogsym]
+GRing_isZmodMorphism__to__Algebra_isNmodMorphism [in Combi.MPoly.homogsym]
+GRing_isLinear__to__Algebra_isNmodMorphism__65 [in Combi.MPoly.homogsym]
+GRing_isLinear__to__GRing_isScalable__63 [in Combi.MPoly.homogsym]
+GRing_isLinear__to__Algebra_isNmodMorphism__58 [in Combi.MPoly.homogsym]
+GRing_isLinear__to__GRing_isScalable__56 [in Combi.MPoly.homogsym]
+GRing_isLinear__to__Algebra_isNmodMorphism__45 [in Combi.MPoly.homogsym]
+GRing_isLinear__to__GRing_isScalable__43 [in Combi.MPoly.homogsym]
+GRing_isLinear__to__Algebra_isNmodMorphism [in Combi.MPoly.homogsym]
+GRing_isLinear__to__GRing_isScalable [in Combi.MPoly.homogsym]
+GRing_SubChoice_isSubLmodule__to__Algebra_BaseAddMagma_isAddMagma [in Combi.MPoly.homogsym]
+GRing_SubChoice_isSubLmodule__to__Algebra_isSubBaseAddUMagma [in Combi.MPoly.homogsym]
+GRing_SubChoice_isSubLmodule__to__Algebra_hasAdd [in Combi.MPoly.homogsym]
+GRing_SubChoice_isSubLmodule__to__Algebra_AddMagma_isAddSemigroup [in Combi.MPoly.homogsym]
+GRing_SubChoice_isSubLmodule__to__Algebra_hasZero [in Combi.MPoly.homogsym]
+GRing_SubChoice_isSubLmodule__to__Algebra_BaseZmoduleNmodule_isZmodule [in Combi.MPoly.homogsym]
+GRing_SubChoice_isSubLmodule__to__Algebra_hasOpp [in Combi.MPoly.homogsym]
+GRing_SubChoice_isSubLmodule__to__Algebra_BaseAddUMagma_isAddUMagma [in Combi.MPoly.homogsym]
+GRing_SubChoice_isSubLmodule__to__GRing_isSubLSemiModule [in Combi.MPoly.homogsym]
+GRing_SubChoice_isSubLmodule__to__GRing_Nmodule_isLSemiModule [in Combi.MPoly.homogsym]
+GRing_isSubmodClosed__to__Algebra_isAddClosed [in Combi.MPoly.homogsym]
+GRing_isSubmodClosed__to__Algebra_isOppClosed [in Combi.MPoly.homogsym]
+GRing_isSubmodClosed__to__GRing_isScaleClosed [in Combi.MPoly.homogsym]
+GRing_isSubmodClosed__to__GRing_isScaleClosed [in Combi.MPoly.antisym]
+GRing_isZmodClosed__to__Algebra_isOppClosed [in Combi.MPoly.antisym]
+GRing_isZmodClosed__to__Algebra_isAddClosed [in Combi.MPoly.antisym]
+GRing_isLinear__to__Algebra_isNmodMorphism__17 [in Combi.SymGroup.Frobenius_char]
+GRing_isLinear__to__GRing_isScalable__15 [in Combi.SymGroup.Frobenius_char]
+GRing_isLinear__to__Algebra_isNmodMorphism [in Combi.SymGroup.Frobenius_char]
+GRing_isLinear__to__GRing_isScalable [in Combi.SymGroup.Frobenius_char]
+GRing_isLinear__to__Algebra_isNmodMorphism__108 [in Combi.MPoly.sympoly]
+GRing_isLinear__to__GRing_isScalable__106 [in Combi.MPoly.sympoly]
+GRing_isLinear__to__Algebra_isNmodMorphism__99 [in Combi.MPoly.sympoly]
+GRing_isLinear__to__GRing_isScalable__97 [in Combi.MPoly.sympoly]
+GRing_isLinear__to__Algebra_isNmodMorphism__90 [in Combi.MPoly.sympoly]
+GRing_isLinear__to__GRing_isScalable__88 [in Combi.MPoly.sympoly]
+GRing_isLinear__to__Algebra_isNmodMorphism__81 [in Combi.MPoly.sympoly]
+GRing_isLinear__to__GRing_isScalable__79 [in Combi.MPoly.sympoly]
+GRing_isZmodMorphism__to__Algebra_isNmodMorphism [in Combi.MPoly.sympoly]
+GRing_SubComUnitRing_isSubIntegralDomain__to__GRing_ComUnitRing_isIntegral [in Combi.MPoly.sympoly]
+GRing_SubNzRing_isSubUnitRing__to__GRing_NzRing_hasMulInverse [in Combi.MPoly.sympoly]
+GRing_SubSemiRing_isSubComSemiRing__to__GRing_SemiRing_hasCommutativeMul [in Combi.MPoly.sympoly]
+GRing_SubChoice_isSubNzAlgebra__to__Algebra_AddMagma_isAddSemigroup [in Combi.MPoly.sympoly]
+GRing_SubChoice_isSubNzAlgebra__to__Algebra_hasZero [in Combi.MPoly.sympoly]
+GRing_SubChoice_isSubNzAlgebra__to__Algebra_BaseZmoduleNmodule_isZmodule [in Combi.MPoly.sympoly]
+GRing_SubChoice_isSubNzAlgebra__to__Algebra_hasOpp [in Combi.MPoly.sympoly]
+GRing_SubChoice_isSubNzAlgebra__to__Algebra_BaseAddUMagma_isAddUMagma [in Combi.MPoly.sympoly]
+GRing_SubChoice_isSubNzAlgebra__to__GRing_isSubPzSemiRing [in Combi.MPoly.sympoly]
+GRing_SubChoice_isSubNzAlgebra__to__GRing_Nmodule_isPzSemiRing [in Combi.MPoly.sympoly]
+GRing_SubChoice_isSubNzAlgebra__to__Algebra_BaseAddMagma_isAddMagma [in Combi.MPoly.sympoly]
+GRing_SubChoice_isSubNzAlgebra__to__GRing_isSubLSemiModule [in Combi.MPoly.sympoly]
+GRing_SubChoice_isSubNzAlgebra__to__GRing_Nmodule_isLSemiModule [in Combi.MPoly.sympoly]
+GRing_SubChoice_isSubNzAlgebra__to__GRing_LSemiModule_isLSemiAlgebra [in Combi.MPoly.sympoly]
+GRing_SubChoice_isSubNzAlgebra__to__Algebra_isSubBaseAddUMagma [in Combi.MPoly.sympoly]
+GRing_SubChoice_isSubNzAlgebra__to__GRing_LSemiAlgebra_isSemiAlgebra [in Combi.MPoly.sympoly]
+GRing_SubChoice_isSubNzAlgebra__to__Algebra_hasAdd [in Combi.MPoly.sympoly]
+GRing_SubChoice_isSubNzAlgebra__to__GRing_PzSemiRing_isNonZero [in Combi.MPoly.sympoly]
+GRing_isLinear__to__Algebra_isNmodMorphism [in Combi.MPoly.sympoly]
+GRing_isLinear__to__GRing_isScalable [in Combi.MPoly.sympoly]
+GRing_SubChoice_isSubNzLalgebra__to__Algebra_hasAdd [in Combi.MPoly.sympoly]
+GRing_SubChoice_isSubNzLalgebra__to__Algebra_AddMagma_isAddSemigroup [in Combi.MPoly.sympoly]
+GRing_SubChoice_isSubNzLalgebra__to__Algebra_hasZero [in Combi.MPoly.sympoly]
+GRing_SubChoice_isSubNzLalgebra__to__Algebra_BaseZmoduleNmodule_isZmodule [in Combi.MPoly.sympoly]
+GRing_SubChoice_isSubNzLalgebra__to__Algebra_hasOpp [in Combi.MPoly.sympoly]
+GRing_SubChoice_isSubNzLalgebra__to__Algebra_BaseAddUMagma_isAddUMagma [in Combi.MPoly.sympoly]
+GRing_SubChoice_isSubNzLalgebra__to__GRing_isSubPzSemiRing [in Combi.MPoly.sympoly]
+GRing_SubChoice_isSubNzLalgebra__to__GRing_Nmodule_isPzSemiRing [in Combi.MPoly.sympoly]
+GRing_SubChoice_isSubNzLalgebra__to__Algebra_BaseAddMagma_isAddMagma [in Combi.MPoly.sympoly]
+GRing_SubChoice_isSubNzLalgebra__to__GRing_isSubLSemiModule [in Combi.MPoly.sympoly]
+GRing_SubChoice_isSubNzLalgebra__to__GRing_Nmodule_isLSemiModule [in Combi.MPoly.sympoly]
+GRing_SubChoice_isSubNzLalgebra__to__GRing_LSemiModule_isLSemiAlgebra [in Combi.MPoly.sympoly]
+GRing_SubChoice_isSubNzLalgebra__to__Algebra_isSubBaseAddUMagma [in Combi.MPoly.sympoly]
+GRing_SubChoice_isSubNzLalgebra__to__GRing_PzSemiRing_isNonZero [in Combi.MPoly.sympoly]
+

H

+hasincr [in Combi.MPoly.Schur_altdef]
+has_no_square [in Combi.Combi.skewpart]
+HB_unnamed_mixin_77 [in Combi.MPoly.Cauchy]
+HB_unnamed_factory_74 [in Combi.MPoly.Cauchy]
+HB_unnamed_mixin_72 [in Combi.MPoly.Cauchy]
+HB_unnamed_factory_68 [in Combi.MPoly.Cauchy]
+HB_unnamed_mixin_66 [in Combi.MPoly.Cauchy]
+HB_unnamed_factory_63 [in Combi.MPoly.Cauchy]
+HB_unnamed_mixin_61 [in Combi.MPoly.Cauchy]
+HB_unnamed_factory_57 [in Combi.MPoly.Cauchy]
+HB_unnamed_factory_55 [in Combi.MPoly.Cauchy]
+HB_unnamed_mixin_54 [in Combi.MPoly.Cauchy]
+HB_unnamed_factory_51 [in Combi.MPoly.Cauchy]
+HB_unnamed_mixin_50 [in Combi.MPoly.Cauchy]
+HB_unnamed_factory_46 [in Combi.MPoly.Cauchy]
+HB_unnamed_factory_44 [in Combi.MPoly.Cauchy]
+HB_unnamed_mixin_43 [in Combi.MPoly.Cauchy]
+HB_unnamed_factory_40 [in Combi.MPoly.Cauchy]
+HB_unnamed_mixin_39 [in Combi.MPoly.Cauchy]
+HB_unnamed_factory_36 [in Combi.MPoly.Cauchy]
+HB_unnamed_factory_34 [in Combi.MPoly.Cauchy]
+HB_unnamed_mixin_33 [in Combi.MPoly.Cauchy]
+HB_unnamed_factory_31 [in Combi.MPoly.Cauchy]
+HB_unnamed_factory_29 [in Combi.MPoly.Cauchy]
+HB_unnamed_factory_27 [in Combi.MPoly.Cauchy]
+HB_unnamed_mixin_26 [in Combi.MPoly.Cauchy]
+HB_unnamed_factory_24 [in Combi.MPoly.Cauchy]
+HB_unnamed_mixin_23 [in Combi.MPoly.Cauchy]
+HB_unnamed_mixin_22 [in Combi.MPoly.Cauchy]
+HB_unnamed_mixin_21 [in Combi.MPoly.Cauchy]
+HB_unnamed_mixin_20 [in Combi.MPoly.Cauchy]
+HB_unnamed_mixin_19 [in Combi.MPoly.Cauchy]
+HB_unnamed_mixin_18 [in Combi.MPoly.Cauchy]
+HB_unnamed_mixin_17 [in Combi.MPoly.Cauchy]
+HB_unnamed_mixin_16 [in Combi.MPoly.Cauchy]
+HB_unnamed_mixin_15 [in Combi.MPoly.Cauchy]
+HB_unnamed_mixin_14 [in Combi.MPoly.Cauchy]
+HB_unnamed_mixin_13 [in Combi.MPoly.Cauchy]
+HB_unnamed_factory_1 [in Combi.MPoly.Cauchy]
+HB_unnamed_mixin_15 [in Combi.Combi.std]
+HB_unnamed_factory_10 [in Combi.Combi.std]
+HB_unnamed_mixin_9 [in Combi.Combi.std]
+HB_unnamed_mixin_8 [in Combi.Combi.std]
+HB_unnamed_mixin_7 [in Combi.Combi.std]
+HB_unnamed_factory_3 [in Combi.Combi.std]
+HB_unnamed_factory_1 [in Combi.Combi.std]
+HB_unnamed_factory_86 [in Combi.MPoly.homogsym]
+HB_unnamed_factory_84 [in Combi.MPoly.homogsym]
+HB_unnamed_mixin_83 [in Combi.MPoly.homogsym]
+HB_unnamed_factory_80 [in Combi.MPoly.homogsym]
+HB_unnamed_mixin_79 [in Combi.MPoly.homogsym]
+HB_unnamed_mixin_78 [in Combi.MPoly.homogsym]
+HB_unnamed_factory_73 [in Combi.MPoly.homogsym]
+HB_unnamed_factory_71 [in Combi.MPoly.homogsym]
+HB_unnamed_mixin_70 [in Combi.MPoly.homogsym]
+HB_unnamed_factory_68 [in Combi.MPoly.homogsym]
+HB_unnamed_mixin_67 [in Combi.MPoly.homogsym]
+HB_unnamed_mixin_66 [in Combi.MPoly.homogsym]
+HB_unnamed_factory_61 [in Combi.MPoly.homogsym]
+HB_unnamed_mixin_60 [in Combi.MPoly.homogsym]
+HB_unnamed_mixin_59 [in Combi.MPoly.homogsym]
+HB_unnamed_factory_54 [in Combi.MPoly.homogsym]
+HB_unnamed_mixin_53 [in Combi.MPoly.homogsym]
+HB_unnamed_factory_51 [in Combi.MPoly.homogsym]
+HB_unnamed_mixin_50 [in Combi.MPoly.homogsym]
+HB_unnamed_factory_48 [in Combi.MPoly.homogsym]
+HB_unnamed_mixin_47 [in Combi.MPoly.homogsym]
+HB_unnamed_mixin_46 [in Combi.MPoly.homogsym]
+HB_unnamed_factory_41 [in Combi.MPoly.homogsym]
+HB_unnamed_mixin_40 [in Combi.MPoly.homogsym]
+HB_unnamed_mixin_39 [in Combi.MPoly.homogsym]
+HB_unnamed_factory_36 [in Combi.MPoly.homogsym]
+HB_unnamed_mixin_35 [in Combi.MPoly.homogsym]
+HB_unnamed_mixin_34 [in Combi.MPoly.homogsym]
+HB_unnamed_mixin_33 [in Combi.MPoly.homogsym]
+HB_unnamed_mixin_32 [in Combi.MPoly.homogsym]
+HB_unnamed_mixin_31 [in Combi.MPoly.homogsym]
+HB_unnamed_mixin_30 [in Combi.MPoly.homogsym]
+HB_unnamed_mixin_29 [in Combi.MPoly.homogsym]
+HB_unnamed_mixin_28 [in Combi.MPoly.homogsym]
+HB_unnamed_mixin_27 [in Combi.MPoly.homogsym]
+HB_unnamed_mixin_26 [in Combi.MPoly.homogsym]
+HB_unnamed_factory_15 [in Combi.MPoly.homogsym]
+HB_unnamed_mixin_14 [in Combi.MPoly.homogsym]
+HB_unnamed_mixin_13 [in Combi.MPoly.homogsym]
+HB_unnamed_mixin_12 [in Combi.MPoly.homogsym]
+HB_unnamed_factory_8 [in Combi.MPoly.homogsym]
+HB_unnamed_mixin_7 [in Combi.MPoly.homogsym]
+HB_unnamed_mixin_6 [in Combi.MPoly.homogsym]
+HB_unnamed_factory_3 [in Combi.MPoly.homogsym]
+HB_unnamed_factory_1 [in Combi.MPoly.homogsym]
+HB_unnamed_mixin_88 [in Combi.Combi.partition]
+HB_unnamed_factory_82 [in Combi.Combi.partition]
+HB_unnamed_mixin_81 [in Combi.Combi.partition]
+HB_unnamed_mixin_80 [in Combi.Combi.partition]
+HB_unnamed_mixin_79 [in Combi.Combi.partition]
+HB_unnamed_factory_72 [in Combi.Combi.partition]
+HB_unnamed_factory_70 [in Combi.Combi.partition]
+HB_unnamed_mixin_35 [in Combi.Combi.partition]
+HB_unnamed_factory_32 [in Combi.Combi.partition]
+HB_unnamed_mixin_30 [in Combi.Combi.partition]
+HB_unnamed_factory_25 [in Combi.Combi.partition]
+HB_unnamed_mixin_24 [in Combi.Combi.partition]
+HB_unnamed_mixin_23 [in Combi.Combi.partition]
+HB_unnamed_mixin_22 [in Combi.Combi.partition]
+HB_unnamed_factory_15 [in Combi.Combi.partition]
+HB_unnamed_factory_13 [in Combi.Combi.partition]
+HB_unnamed_mixin_12 [in Combi.Combi.partition]
+HB_unnamed_factory_10 [in Combi.Combi.partition]
+HB_unnamed_mixin_9 [in Combi.Combi.partition]
+HB_unnamed_mixin_8 [in Combi.Combi.partition]
+HB_unnamed_mixin_7 [in Combi.Combi.partition]
+HB_unnamed_factory_3 [in Combi.Combi.partition]
+HB_unnamed_factory_1 [in Combi.Combi.partition]
+HB_unnamed_mixin_28 [in Combi.Combi.bintree]
+HB_unnamed_factory_23 [in Combi.Combi.bintree]
+HB_unnamed_mixin_21 [in Combi.Combi.bintree]
+HB_unnamed_mixin_20 [in Combi.Combi.bintree]
+HB_unnamed_mixin_19 [in Combi.Combi.bintree]
+HB_unnamed_factory_14 [in Combi.Combi.bintree]
+HB_unnamed_factory_12 [in Combi.Combi.bintree]
+HB_unnamed_mixin_11 [in Combi.Combi.bintree]
+HB_unnamed_factory_7 [in Combi.Combi.bintree]
+HB_unnamed_mixin_6 [in Combi.Combi.bintree]
+HB_unnamed_factory_3 [in Combi.Combi.bintree]
+HB_unnamed_factory_1 [in Combi.Combi.bintree]
+HB_unnamed_mixin_3 [in Combi.SymGroup.towerSn]
+HB_unnamed_factory_1 [in Combi.SymGroup.towerSn]
+HB_unnamed_mixin_10 [in Combi.MPoly.antisym]
+HB_unnamed_factory_6 [in Combi.MPoly.antisym]
+HB_unnamed_mixin_5 [in Combi.MPoly.antisym]
+HB_unnamed_mixin_4 [in Combi.MPoly.antisym]
+HB_unnamed_factory_1 [in Combi.MPoly.antisym]
+HB_unnamed_mixin_17 [in Combi.LRrule.Schensted]
+HB_unnamed_mixin_16 [in Combi.LRrule.Schensted]
+HB_unnamed_factory_12 [in Combi.LRrule.Schensted]
+HB_unnamed_factory_10 [in Combi.LRrule.Schensted]
+HB_unnamed_mixin_9 [in Combi.LRrule.Schensted]
+HB_unnamed_factory_6 [in Combi.LRrule.Schensted]
+HB_unnamed_mixin_5 [in Combi.LRrule.Schensted]
+HB_unnamed_factory_3 [in Combi.LRrule.Schensted]
+HB_unnamed_factory_1 [in Combi.LRrule.Schensted]
+HB_unnamed_mixin_19 [in Combi.SymGroup.Frobenius_char]
+HB_unnamed_mixin_18 [in Combi.SymGroup.Frobenius_char]
+HB_unnamed_factory_13 [in Combi.SymGroup.Frobenius_char]
+HB_unnamed_mixin_12 [in Combi.SymGroup.Frobenius_char]
+HB_unnamed_mixin_11 [in Combi.SymGroup.Frobenius_char]
+HB_unnamed_factory_8 [in Combi.SymGroup.Frobenius_char]
+HB_unnamed_factory_6 [in Combi.SymGroup.Frobenius_char]
+HB_unnamed_factory_4 [in Combi.SymGroup.Frobenius_char]
+HB_unnamed_mixin_3 [in Combi.SymGroup.Frobenius_char]
+HB_unnamed_factory_1 [in Combi.SymGroup.Frobenius_char]
+HB_unnamed_mixin_28 [in Combi.Combi.Dyckword]
+HB_unnamed_mixin_27 [in Combi.Combi.Dyckword]
+HB_unnamed_mixin_26 [in Combi.Combi.Dyckword]
+HB_unnamed_factory_21 [in Combi.Combi.Dyckword]
+HB_unnamed_factory_19 [in Combi.Combi.Dyckword]
+HB_unnamed_mixin_18 [in Combi.Combi.Dyckword]
+HB_unnamed_factory_13 [in Combi.Combi.Dyckword]
+HB_unnamed_mixin_12 [in Combi.Combi.Dyckword]
+HB_unnamed_factory_8 [in Combi.Combi.Dyckword]
+HB_unnamed_mixin_7 [in Combi.Combi.Dyckword]
+HB_unnamed_factory_4 [in Combi.Combi.Dyckword]
+HB_unnamed_mixin_3 [in Combi.Combi.Dyckword]
+HB_unnamed_factory_1 [in Combi.Combi.Dyckword]
+HB_unnamed_factory_24 [in Combi.Combi.stdtab]
+HB_unnamed_mixin_23 [in Combi.Combi.stdtab]
+HB_unnamed_mixin_22 [in Combi.Combi.stdtab]
+HB_unnamed_mixin_21 [in Combi.Combi.stdtab]
+HB_unnamed_factory_14 [in Combi.Combi.stdtab]
+HB_unnamed_factory_12 [in Combi.Combi.stdtab]
+HB_unnamed_factory_10 [in Combi.Combi.stdtab]
+HB_unnamed_mixin_9 [in Combi.Combi.stdtab]
+HB_unnamed_mixin_8 [in Combi.Combi.stdtab]
+HB_unnamed_mixin_7 [in Combi.Combi.stdtab]
+HB_unnamed_factory_3 [in Combi.Combi.stdtab]
+HB_unnamed_factory_1 [in Combi.Combi.stdtab]
+HB_unnamed_mixin_11 [in Combi.Combi.subseq]
+HB_unnamed_mixin_10 [in Combi.Combi.subseq]
+HB_unnamed_mixin_9 [in Combi.Combi.subseq]
+HB_unnamed_mixin_8 [in Combi.Combi.subseq]
+HB_unnamed_factory_3 [in Combi.Combi.subseq]
+HB_unnamed_factory_1 [in Combi.Combi.subseq]
+HB_unnamed_factory_10 [in Combi.Combi.tableau]
+HB_unnamed_mixin_9 [in Combi.Combi.tableau]
+HB_unnamed_mixin_8 [in Combi.Combi.tableau]
+HB_unnamed_mixin_7 [in Combi.Combi.tableau]
+HB_unnamed_factory_3 [in Combi.Combi.tableau]
+HB_unnamed_factory_1 [in Combi.Combi.tableau]
+HB_unnamed_mixin_28 [in Combi.Combi.ordtree]
+HB_unnamed_factory_23 [in Combi.Combi.ordtree]
+HB_unnamed_mixin_21 [in Combi.Combi.ordtree]
+HB_unnamed_mixin_20 [in Combi.Combi.ordtree]
+HB_unnamed_mixin_19 [in Combi.Combi.ordtree]
+HB_unnamed_factory_14 [in Combi.Combi.ordtree]
+HB_unnamed_factory_12 [in Combi.Combi.ordtree]
+HB_unnamed_mixin_11 [in Combi.Combi.ordtree]
+HB_unnamed_factory_7 [in Combi.Combi.ordtree]
+HB_unnamed_mixin_6 [in Combi.Combi.ordtree]
+HB_unnamed_factory_3 [in Combi.Combi.ordtree]
+HB_unnamed_factory_1 [in Combi.Combi.ordtree]
+HB_unnamed_mixin_34 [in Combi.Combi.Yamanouchi]
+HB_unnamed_factory_28 [in Combi.Combi.Yamanouchi]
+HB_unnamed_mixin_27 [in Combi.Combi.Yamanouchi]
+HB_unnamed_mixin_26 [in Combi.Combi.Yamanouchi]
+HB_unnamed_mixin_25 [in Combi.Combi.Yamanouchi]
+HB_unnamed_factory_18 [in Combi.Combi.Yamanouchi]
+HB_unnamed_factory_16 [in Combi.Combi.Yamanouchi]
+HB_unnamed_mixin_15 [in Combi.Combi.Yamanouchi]
+HB_unnamed_factory_10 [in Combi.Combi.Yamanouchi]
+HB_unnamed_mixin_9 [in Combi.Combi.Yamanouchi]
+HB_unnamed_mixin_8 [in Combi.Combi.Yamanouchi]
+HB_unnamed_mixin_7 [in Combi.Combi.Yamanouchi]
+HB_unnamed_factory_3 [in Combi.Combi.Yamanouchi]
+HB_unnamed_factory_1 [in Combi.Combi.Yamanouchi]
+HB_unnamed_mixin_14 [in Combi.Combi.setpartition]
+HB_unnamed_factory_12 [in Combi.Combi.setpartition]
+HB_unnamed_mixin_11 [in Combi.Combi.setpartition]
+HB_unnamed_mixin_10 [in Combi.Combi.setpartition]
+HB_unnamed_mixin_9 [in Combi.Combi.setpartition]
+HB_unnamed_mixin_8 [in Combi.Combi.setpartition]
+HB_unnamed_factory_3 [in Combi.Combi.setpartition]
+HB_unnamed_factory_1 [in Combi.Combi.setpartition]
+hb_strip [in Combi.Combi.skewpart]
+HB_unnamed_mixin_15 [in Combi.Combi.permuted]
+HB_unnamed_factory_10 [in Combi.Combi.permuted]
+HB_unnamed_mixin_9 [in Combi.Combi.permuted]
+HB_unnamed_mixin_8 [in Combi.Combi.permuted]
+HB_unnamed_mixin_7 [in Combi.Combi.permuted]
+HB_unnamed_factory_3 [in Combi.Combi.permuted]
+HB_unnamed_factory_1 [in Combi.Combi.permuted]
+HB_unnamed_factory_112 [in Combi.Basic.ordtype]
+HB_unnamed_factory_101 [in Combi.Basic.ordtype]
+HB_unnamed_factory_92 [in Combi.Basic.ordtype]
+HB_unnamed_factory_81 [in Combi.Basic.ordtype]
+HB_unnamed_factory_70 [in Combi.Basic.ordtype]
+HB_unnamed_factory_61 [in Combi.Basic.ordtype]
+HB_unnamed_factory_54 [in Combi.Basic.ordtype]
+HB_unnamed_mixin_52 [in Combi.Basic.ordtype]
+HB_unnamed_factory_49 [in Combi.Basic.ordtype]
+HB_unnamed_factory_44 [in Combi.Basic.ordtype]
+HB_unnamed_factory_39 [in Combi.Basic.ordtype]
+HB_unnamed_factory_35 [in Combi.Basic.ordtype]
+HB_unnamed_factory_33 [in Combi.Basic.ordtype]
+HB_unnamed_mixin_31 [in Combi.Basic.ordtype]
+HB_unnamed_factory_28 [in Combi.Basic.ordtype]
+HB_unnamed_mixin_26 [in Combi.Basic.ordtype]
+HB_unnamed_factory_23 [in Combi.Basic.ordtype]
+HB_unnamed_mixin_21 [in Combi.Basic.ordtype]
+HB_unnamed_factory_18 [in Combi.Basic.ordtype]
+HB_unnamed_mixin_16 [in Combi.Basic.ordtype]
+HB_unnamed_factory_13 [in Combi.Basic.ordtype]
+HB_unnamed_mixin_12 [in Combi.Basic.ordtype]
+HB_unnamed_factory_9 [in Combi.Basic.ordtype]
+HB_unnamed_mixin_8 [in Combi.Basic.ordtype]
+HB_unnamed_factory_6 [in Combi.Basic.ordtype]
+HB_unnamed_mixin_15 [in Combi.SymGroup.presentSn]
+HB_unnamed_factory_10 [in Combi.SymGroup.presentSn]
+HB_unnamed_mixin_9 [in Combi.SymGroup.presentSn]
+HB_unnamed_mixin_8 [in Combi.SymGroup.presentSn]
+HB_unnamed_mixin_7 [in Combi.SymGroup.presentSn]
+HB_unnamed_factory_3 [in Combi.SymGroup.presentSn]
+HB_unnamed_factory_1 [in Combi.SymGroup.presentSn]
+HB_unnamed_factory_111 [in Combi.MPoly.sympoly]
+HB_unnamed_mixin_110 [in Combi.MPoly.sympoly]
+HB_unnamed_mixin_109 [in Combi.MPoly.sympoly]
+HB_unnamed_factory_104 [in Combi.MPoly.sympoly]
+HB_unnamed_factory_102 [in Combi.MPoly.sympoly]
+HB_unnamed_mixin_101 [in Combi.MPoly.sympoly]
+HB_unnamed_mixin_100 [in Combi.MPoly.sympoly]
+HB_unnamed_factory_95 [in Combi.MPoly.sympoly]
+HB_unnamed_factory_93 [in Combi.MPoly.sympoly]
+HB_unnamed_mixin_92 [in Combi.MPoly.sympoly]
+HB_unnamed_mixin_91 [in Combi.MPoly.sympoly]
+HB_unnamed_factory_86 [in Combi.MPoly.sympoly]
+HB_unnamed_factory_84 [in Combi.MPoly.sympoly]
+HB_unnamed_mixin_83 [in Combi.MPoly.sympoly]
+HB_unnamed_mixin_82 [in Combi.MPoly.sympoly]
+HB_unnamed_factory_77 [in Combi.MPoly.sympoly]
+HB_unnamed_factory_75 [in Combi.MPoly.sympoly]
+HB_unnamed_factory_73 [in Combi.MPoly.sympoly]
+HB_unnamed_mixin_72 [in Combi.MPoly.sympoly]
+HB_unnamed_factory_70 [in Combi.MPoly.sympoly]
+HB_unnamed_mixin_69 [in Combi.MPoly.sympoly]
+HB_unnamed_factory_67 [in Combi.MPoly.sympoly]
+HB_unnamed_mixin_66 [in Combi.MPoly.sympoly]
+HB_unnamed_factory_64 [in Combi.MPoly.sympoly]
+HB_unnamed_mixin_63 [in Combi.MPoly.sympoly]
+HB_unnamed_factory_61 [in Combi.MPoly.sympoly]
+HB_unnamed_mixin_60 [in Combi.MPoly.sympoly]
+HB_unnamed_factory_44 [in Combi.MPoly.sympoly]
+HB_unnamed_factory_42 [in Combi.MPoly.sympoly]
+HB_unnamed_mixin_41 [in Combi.MPoly.sympoly]
+HB_unnamed_mixin_40 [in Combi.MPoly.sympoly]
+HB_unnamed_factory_37 [in Combi.MPoly.sympoly]
+HB_unnamed_mixin_36 [in Combi.MPoly.sympoly]
+HB_unnamed_mixin_35 [in Combi.MPoly.sympoly]
+HB_unnamed_mixin_34 [in Combi.MPoly.sympoly]
+HB_unnamed_mixin_33 [in Combi.MPoly.sympoly]
+HB_unnamed_mixin_32 [in Combi.MPoly.sympoly]
+HB_unnamed_mixin_31 [in Combi.MPoly.sympoly]
+HB_unnamed_mixin_30 [in Combi.MPoly.sympoly]
+HB_unnamed_mixin_29 [in Combi.MPoly.sympoly]
+HB_unnamed_mixin_28 [in Combi.MPoly.sympoly]
+HB_unnamed_mixin_27 [in Combi.MPoly.sympoly]
+HB_unnamed_mixin_26 [in Combi.MPoly.sympoly]
+HB_unnamed_mixin_25 [in Combi.MPoly.sympoly]
+HB_unnamed_mixin_24 [in Combi.MPoly.sympoly]
+HB_unnamed_mixin_23 [in Combi.MPoly.sympoly]
+HB_unnamed_factory_8 [in Combi.MPoly.sympoly]
+HB_unnamed_mixin_7 [in Combi.MPoly.sympoly]
+HB_unnamed_mixin_6 [in Combi.MPoly.sympoly]
+HB_unnamed_factory_3 [in Combi.MPoly.sympoly]
+HB_unnamed_factory_1 [in Combi.MPoly.sympoly]
+HB_unnamed_mixin_37 [in Combi.Combi.composition]
+HB_unnamed_factory_32 [in Combi.Combi.composition]
+HB_unnamed_mixin_31 [in Combi.Combi.composition]
+HB_unnamed_mixin_30 [in Combi.Combi.composition]
+HB_unnamed_mixin_29 [in Combi.Combi.composition]
+HB_unnamed_factory_22 [in Combi.Combi.composition]
+HB_unnamed_factory_20 [in Combi.Combi.composition]
+HB_unnamed_mixin_19 [in Combi.Combi.composition]
+HB_unnamed_mixin_18 [in Combi.Combi.composition]
+HB_unnamed_mixin_17 [in Combi.Combi.composition]
+HB_unnamed_factory_13 [in Combi.Combi.composition]
+HB_unnamed_factory_11 [in Combi.Combi.composition]
+head_leq_last_row [in Combi.Combi.tableau]
+height [in Combi.Combi.Dyckword]
+height_simpl [in Combi.Combi.Dyckword]
+Hla [in Combi.MPoly.Schur_altdef]
+Hlamu [in Combi.MPoly.Schur_altdef]
+homlang [in Combi.LRrule.freeSchur]
+homogsym_homsymdot__canonical__sesquilinear_Dot [in Combi.MPoly.homogsym]
+homogsym_homsymdot__canonical__sesquilinear_Hermitian [in Combi.MPoly.homogsym]
+homogsym_homsymdot__canonical__sesquilinear_Bilinear [in Combi.MPoly.homogsym]
+homogsym_cnvarhomsym__canonical__GRing_Linear [in Combi.MPoly.homogsym]
+homogsym_cnvarhomsym__canonical__Algebra_Additive [in Combi.MPoly.homogsym]
+homogsym_map_homsym__canonical__GRing_Linear [in Combi.MPoly.homogsym]
+homogsym_map_homsym__canonical__Algebra_Additive [in Combi.MPoly.homogsym]
+homogsym_omegahomsym__canonical__GRing_Linear [in Combi.MPoly.homogsym]
+homogsym_omegahomsym__canonical__Algebra_Additive [in Combi.MPoly.homogsym]
+homogsym_in_homsym__canonical__GRing_Linear [in Combi.MPoly.homogsym]
+homogsym_in_homsym__canonical__Algebra_Additive [in Combi.MPoly.homogsym]
+homogsym_homsymprod__canonical__sesquilinear_Bilinear [in Combi.MPoly.homogsym]
+homogsym_homogsym__canonical__vector_Vector [in Combi.MPoly.homogsym]
+homogsym_homogsym__canonical__vector_SemiVector [in Combi.MPoly.homogsym]
+homogsym_dhomog_of_homogsym__canonical__GRing_Linear [in Combi.MPoly.homogsym]
+homogsym_dhomog_of_homogsym__canonical__Algebra_Additive [in Combi.MPoly.homogsym]
+homogsym_homsym__canonical__GRing_Linear [in Combi.MPoly.homogsym]
+homogsym_homsym__canonical__Algebra_Additive [in Combi.MPoly.homogsym]
+homogsym_homogsym__canonical__GRing_SubLmodule [in Combi.MPoly.homogsym]
+homogsym_homogsym__canonical__GRing_Lmodule [in Combi.MPoly.homogsym]
+homogsym_homogsym__canonical__GRing_SubLSemiModule [in Combi.MPoly.homogsym]
+homogsym_homogsym__canonical__GRing_LSemiModule [in Combi.MPoly.homogsym]
+homogsym_homogsym__canonical__Algebra_SubZmodule [in Combi.MPoly.homogsym]
+homogsym_homogsym__canonical__Algebra_SubNmodule [in Combi.MPoly.homogsym]
+homogsym_homogsym__canonical__Algebra_Zmodule [in Combi.MPoly.homogsym]
+homogsym_homogsym__canonical__Algebra_Nmodule [in Combi.MPoly.homogsym]
+homogsym_homogsym__canonical__Algebra_AddSemigroup [in Combi.MPoly.homogsym]
+homogsym_homogsym__canonical__Algebra_SubAddUMagma [in Combi.MPoly.homogsym]
+homogsym_homogsym__canonical__Algebra_AddUMagma [in Combi.MPoly.homogsym]
+homogsym_homogsym__canonical__Algebra_AddMagma [in Combi.MPoly.homogsym]
+homogsym_homogsym__canonical__Algebra_SubBaseAddUMagma [in Combi.MPoly.homogsym]
+homogsym_homogsym__canonical__Algebra_BaseZmodule [in Combi.MPoly.homogsym]
+homogsym_homogsym__canonical__Algebra_ChoiceBaseAddUMagma [in Combi.MPoly.homogsym]
+homogsym_homogsym__canonical__Algebra_BaseAddUMagma [in Combi.MPoly.homogsym]
+homogsym_homogsym__canonical__Algebra_ChoiceBaseAddMagma [in Combi.MPoly.homogsym]
+homogsym_homogsym__canonical__Algebra_BaseAddMagma [in Combi.MPoly.homogsym]
+homogsym_is_homsym__canonical__GRing_SubmodClosed [in Combi.MPoly.homogsym]
+homogsym_is_homsym__canonical__Algebra_ZmodClosed [in Combi.MPoly.homogsym]
+homogsym_is_homsym__canonical__Algebra_AddClosed [in Combi.MPoly.homogsym]
+homogsym_is_homsym__canonical__Algebra_OppClosed [in Combi.MPoly.homogsym]
+homogsym_homogsym__canonical__choice_SubChoice [in Combi.MPoly.homogsym]
+homogsym_homogsym__canonical__choice_Choice [in Combi.MPoly.homogsym]
+homogsym_homogsym__canonical__eqtype_SubEquality [in Combi.MPoly.homogsym]
+homogsym_homogsym__canonical__eqtype_Equality [in Combi.MPoly.homogsym]
+homogsym_homogsym__canonical__eqtype_SubType [in Combi.MPoly.homogsym]
+homsymdot [in Combi.MPoly.homogsym]
+homsyme [in Combi.MPoly.homogsym]
+homsymh [in Combi.MPoly.homogsym]
+homsymm [in Combi.MPoly.homogsym]
+homsymp [in Combi.MPoly.homogsym]
+homsymprod [in Combi.MPoly.homogsym]
+homsyms [in Combi.MPoly.homogsym]
+hookpart [in Combi.Combi.partition]
+hookpartn [in Combi.Combi.partition]
+hook_boxes [in Combi.HookFormula.hook]
+hook_box [in Combi.HookFormula.hook]
+hook_box_indices [in Combi.HookFormula.hook]
+hook_length_prod [in Combi.HookFormula.hook]
+hook_length [in Combi.HookFormula.hook]
+hyper_stdtabn [in Combi.LRrule.freeSchur]
+hyper_stdtab [in Combi.LRrule.freeSchur]
+hyper_stdtabsh [in Combi.Combi.stdtab]
+hyper_yameval [in Combi.Combi.Yamanouchi]
+hyper_yam [in Combi.Combi.Yamanouchi]
+hyper_yam_rev [in Combi.Combi.Yamanouchi]
+

I

+Id [in ALEA.Ccpo]
+id [in ALEA.Ccpo]
+ifte [in ALEA.Misc]
+Imon [in ALEA.Ccpo]
+imon [in ALEA.Ccpo]
+imon2 [in ALEA.Ccpo]
+Imon2 [in ALEA.Ccpo]
+included [in Combi.Combi.partition]
+incr_first_n [in Combi.Combi.partition]
+indporbit [in Combi.SymGroup.cycletype]
+indtree [in Combi.Combi.ordtree]
+indtreeforest [in Combi.Combi.ordtree]
+inh [in Combi.Basic.ordtype]
+Inhabited.Exports.ordtype_Inhabited__to__choice_Choice [in Combi.Basic.ordtype]
+Inhabited.Exports.ordtype_Inhabited_class__to__choice_Choice_class [in Combi.Basic.ordtype]
+Inhabited.Exports.ordtype_Inhabited__to__eqtype_Equality [in Combi.Basic.ordtype]
+Inhabited.Exports.ordtype_Inhabited_class__to__eqtype_Equality_class [in Combi.Basic.ordtype]
+Inhabited.pack_ [in Combi.Basic.ordtype]
+Inhabited.phant_on_ [in Combi.Basic.ordtype]
+Inhabited.phant_clone [in Combi.Basic.ordtype]
+InhFinite.Exports.join_ordtype_InhFinite_between_fintype_Finite_and_ordtype_Inhabited [in Combi.Basic.ordtype]
+InhFinite.Exports.join_ordtype_InhFinite_between_choice_Countable_and_ordtype_Inhabited [in Combi.Basic.ordtype]
+InhFinite.Exports.ordtype_InhFinite__to__fintype_Finite [in Combi.Basic.ordtype]
+InhFinite.Exports.ordtype_InhFinite_class__to__fintype_Finite_class [in Combi.Basic.ordtype]
+InhFinite.Exports.ordtype_InhFinite__to__choice_Countable [in Combi.Basic.ordtype]
+InhFinite.Exports.ordtype_InhFinite_class__to__choice_Countable_class [in Combi.Basic.ordtype]
+InhFinite.Exports.ordtype_InhFinite__to__ordtype_Inhabited [in Combi.Basic.ordtype]
+InhFinite.Exports.ordtype_InhFinite_class__to__ordtype_Inhabited_class [in Combi.Basic.ordtype]
+InhFinite.Exports.ordtype_InhFinite__to__choice_Choice [in Combi.Basic.ordtype]
+InhFinite.Exports.ordtype_InhFinite_class__to__choice_Choice_class [in Combi.Basic.ordtype]
+InhFinite.Exports.ordtype_InhFinite__to__eqtype_Equality [in Combi.Basic.ordtype]
+InhFinite.Exports.ordtype_InhFinite_class__to__eqtype_Equality_class [in Combi.Basic.ordtype]
+InhFinite.pack_ [in Combi.Basic.ordtype]
+InhFinite.phant_on_ [in Combi.Basic.ordtype]
+InhFinite.phant_clone [in Combi.Basic.ordtype]
+InhFinLattice.Exports.join_ordtype_InhFinLattice_between_Order_FinLattice_and_ordtype_InhFinPOrder [in Combi.Basic.ordtype]
+InhFinLattice.Exports.join_ordtype_InhFinLattice_between_Order_FinLattice_and_ordtype_InhFinite [in Combi.Basic.ordtype]
+InhFinLattice.Exports.join_ordtype_InhFinLattice_between_Order_FinLattice_and_ordtype_InhLattice [in Combi.Basic.ordtype]
+InhFinLattice.Exports.join_ordtype_InhFinLattice_between_Order_FinLattice_and_ordtype_InhPOrder [in Combi.Basic.ordtype]
+InhFinLattice.Exports.join_ordtype_InhFinLattice_between_Order_FinLattice_and_ordtype_Inhabited [in Combi.Basic.ordtype]
+InhFinLattice.Exports.join_ordtype_InhFinLattice_between_Order_FinJoinSemilattice_and_ordtype_InhFinPOrder [in Combi.Basic.ordtype]
+InhFinLattice.Exports.join_ordtype_InhFinLattice_between_Order_FinJoinSemilattice_and_ordtype_InhFinite [in Combi.Basic.ordtype]
+InhFinLattice.Exports.join_ordtype_InhFinLattice_between_Order_FinJoinSemilattice_and_ordtype_InhLattice [in Combi.Basic.ordtype]
+InhFinLattice.Exports.join_ordtype_InhFinLattice_between_Order_FinJoinSemilattice_and_ordtype_InhPOrder [in Combi.Basic.ordtype]
+InhFinLattice.Exports.join_ordtype_InhFinLattice_between_Order_FinJoinSemilattice_and_ordtype_Inhabited [in Combi.Basic.ordtype]
+InhFinLattice.Exports.join_ordtype_InhFinLattice_between_Order_FinMeetSemilattice_and_ordtype_InhFinPOrder [in Combi.Basic.ordtype]
+InhFinLattice.Exports.join_ordtype_InhFinLattice_between_Order_FinMeetSemilattice_and_ordtype_InhFinite [in Combi.Basic.ordtype]
+InhFinLattice.Exports.join_ordtype_InhFinLattice_between_Order_FinMeetSemilattice_and_ordtype_InhLattice [in Combi.Basic.ordtype]
+InhFinLattice.Exports.join_ordtype_InhFinLattice_between_Order_FinMeetSemilattice_and_ordtype_InhPOrder [in Combi.Basic.ordtype]
+InhFinLattice.Exports.join_ordtype_InhFinLattice_between_Order_FinMeetSemilattice_and_ordtype_Inhabited [in Combi.Basic.ordtype]
+InhFinLattice.Exports.join_ordtype_InhFinLattice_between_ordtype_InhFinPOrder_and_ordtype_InhLattice [in Combi.Basic.ordtype]
+InhFinLattice.Exports.join_ordtype_InhFinLattice_between_ordtype_InhFinPOrder_and_Order_Lattice [in Combi.Basic.ordtype]
+InhFinLattice.Exports.join_ordtype_InhFinLattice_between_ordtype_InhFinPOrder_and_Order_JoinSemilattice [in Combi.Basic.ordtype]
+InhFinLattice.Exports.join_ordtype_InhFinLattice_between_ordtype_InhFinPOrder_and_Order_MeetSemilattice [in Combi.Basic.ordtype]
+InhFinLattice.Exports.join_ordtype_InhFinLattice_between_Order_FinPOrder_and_ordtype_InhLattice [in Combi.Basic.ordtype]
+InhFinLattice.Exports.join_ordtype_InhFinLattice_between_Order_FinPreorder_and_ordtype_InhLattice [in Combi.Basic.ordtype]
+InhFinLattice.Exports.join_ordtype_InhFinLattice_between_ordtype_InhFinite_and_ordtype_InhLattice [in Combi.Basic.ordtype]
+InhFinLattice.Exports.join_ordtype_InhFinLattice_between_ordtype_InhFinite_and_Order_Lattice [in Combi.Basic.ordtype]
+InhFinLattice.Exports.join_ordtype_InhFinLattice_between_ordtype_InhFinite_and_Order_JoinSemilattice [in Combi.Basic.ordtype]
+InhFinLattice.Exports.join_ordtype_InhFinLattice_between_ordtype_InhFinite_and_Order_MeetSemilattice [in Combi.Basic.ordtype]
+InhFinLattice.Exports.join_ordtype_InhFinLattice_between_fintype_Finite_and_ordtype_InhLattice [in Combi.Basic.ordtype]
+InhFinLattice.Exports.join_ordtype_InhFinLattice_between_choice_Countable_and_ordtype_InhLattice [in Combi.Basic.ordtype]
+InhFinLattice.Exports.ordtype_InhFinLattice__to__Order_FinLattice [in Combi.Basic.ordtype]
+InhFinLattice.Exports.ordtype_InhFinLattice_class__to__Order_FinLattice_class [in Combi.Basic.ordtype]
+InhFinLattice.Exports.ordtype_InhFinLattice__to__Order_FinJoinSemilattice [in Combi.Basic.ordtype]
+InhFinLattice.Exports.ordtype_InhFinLattice_class__to__Order_FinJoinSemilattice_class [in Combi.Basic.ordtype]
+InhFinLattice.Exports.ordtype_InhFinLattice__to__Order_FinMeetSemilattice [in Combi.Basic.ordtype]
+InhFinLattice.Exports.ordtype_InhFinLattice_class__to__Order_FinMeetSemilattice_class [in Combi.Basic.ordtype]
+InhFinLattice.Exports.ordtype_InhFinLattice__to__ordtype_InhFinPOrder [in Combi.Basic.ordtype]
+InhFinLattice.Exports.ordtype_InhFinLattice_class__to__ordtype_InhFinPOrder_class [in Combi.Basic.ordtype]
+InhFinLattice.Exports.ordtype_InhFinLattice__to__Order_FinPOrder [in Combi.Basic.ordtype]
+InhFinLattice.Exports.ordtype_InhFinLattice_class__to__Order_FinPOrder_class [in Combi.Basic.ordtype]
+InhFinLattice.Exports.ordtype_InhFinLattice__to__Order_FinPreorder [in Combi.Basic.ordtype]
+InhFinLattice.Exports.ordtype_InhFinLattice_class__to__Order_FinPreorder_class [in Combi.Basic.ordtype]
+InhFinLattice.Exports.ordtype_InhFinLattice__to__ordtype_InhFinite [in Combi.Basic.ordtype]
+InhFinLattice.Exports.ordtype_InhFinLattice_class__to__ordtype_InhFinite_class [in Combi.Basic.ordtype]
+InhFinLattice.Exports.ordtype_InhFinLattice__to__fintype_Finite [in Combi.Basic.ordtype]
+InhFinLattice.Exports.ordtype_InhFinLattice_class__to__fintype_Finite_class [in Combi.Basic.ordtype]
+InhFinLattice.Exports.ordtype_InhFinLattice__to__choice_Countable [in Combi.Basic.ordtype]
+InhFinLattice.Exports.ordtype_InhFinLattice_class__to__choice_Countable_class [in Combi.Basic.ordtype]
+InhFinLattice.Exports.ordtype_InhFinLattice__to__ordtype_InhLattice [in Combi.Basic.ordtype]
+InhFinLattice.Exports.ordtype_InhFinLattice_class__to__ordtype_InhLattice_class [in Combi.Basic.ordtype]
+InhFinLattice.Exports.ordtype_InhFinLattice__to__ordtype_InhPOrder [in Combi.Basic.ordtype]
+InhFinLattice.Exports.ordtype_InhFinLattice_class__to__ordtype_InhPOrder_class [in Combi.Basic.ordtype]
+InhFinLattice.Exports.ordtype_InhFinLattice__to__ordtype_Inhabited [in Combi.Basic.ordtype]
+InhFinLattice.Exports.ordtype_InhFinLattice_class__to__ordtype_Inhabited_class [in Combi.Basic.ordtype]
+InhFinLattice.Exports.ordtype_InhFinLattice__to__Order_Lattice [in Combi.Basic.ordtype]
+InhFinLattice.Exports.ordtype_InhFinLattice_class__to__Order_Lattice_class [in Combi.Basic.ordtype]
+InhFinLattice.Exports.ordtype_InhFinLattice__to__Order_JoinSemilattice [in Combi.Basic.ordtype]
+InhFinLattice.Exports.ordtype_InhFinLattice_class__to__Order_JoinSemilattice_class [in Combi.Basic.ordtype]
+InhFinLattice.Exports.ordtype_InhFinLattice__to__Order_MeetSemilattice [in Combi.Basic.ordtype]
+InhFinLattice.Exports.ordtype_InhFinLattice_class__to__Order_MeetSemilattice_class [in Combi.Basic.ordtype]
+InhFinLattice.Exports.ordtype_InhFinLattice__to__Order_POrder [in Combi.Basic.ordtype]
+InhFinLattice.Exports.ordtype_InhFinLattice_class__to__Order_POrder_class [in Combi.Basic.ordtype]
+InhFinLattice.Exports.ordtype_InhFinLattice__to__Order_Preorder [in Combi.Basic.ordtype]
+InhFinLattice.Exports.ordtype_InhFinLattice_class__to__Order_Preorder_class [in Combi.Basic.ordtype]
+InhFinLattice.Exports.ordtype_InhFinLattice__to__choice_Choice [in Combi.Basic.ordtype]
+InhFinLattice.Exports.ordtype_InhFinLattice_class__to__choice_Choice_class [in Combi.Basic.ordtype]
+InhFinLattice.Exports.ordtype_InhFinLattice__to__eqtype_Equality [in Combi.Basic.ordtype]
+InhFinLattice.Exports.ordtype_InhFinLattice_class__to__eqtype_Equality_class [in Combi.Basic.ordtype]
+InhFinLattice.pack_ [in Combi.Basic.ordtype]
+InhFinLattice.phant_on_ [in Combi.Basic.ordtype]
+InhFinLattice.phant_clone [in Combi.Basic.ordtype]
+InhFinOrder.Exports.join_ordtype_InhFinOrder_between_Order_FinTotal_and_ordtype_InhFinLattice [in Combi.Basic.ordtype]
+InhFinOrder.Exports.join_ordtype_InhFinOrder_between_Order_FinTotal_and_ordtype_InhFinPOrder [in Combi.Basic.ordtype]
+InhFinOrder.Exports.join_ordtype_InhFinOrder_between_Order_FinTotal_and_ordtype_InhFinite [in Combi.Basic.ordtype]
+InhFinOrder.Exports.join_ordtype_InhFinOrder_between_Order_FinTotal_and_ordtype_InhOrder [in Combi.Basic.ordtype]
+InhFinOrder.Exports.join_ordtype_InhFinOrder_between_Order_FinTotal_and_ordtype_InhLattice [in Combi.Basic.ordtype]
+InhFinOrder.Exports.join_ordtype_InhFinOrder_between_Order_FinTotal_and_ordtype_InhPOrder [in Combi.Basic.ordtype]
+InhFinOrder.Exports.join_ordtype_InhFinOrder_between_Order_FinTotal_and_ordtype_Inhabited [in Combi.Basic.ordtype]
+InhFinOrder.Exports.join_ordtype_InhFinOrder_between_Order_FinDistrLattice_and_ordtype_InhFinLattice [in Combi.Basic.ordtype]
+InhFinOrder.Exports.join_ordtype_InhFinOrder_between_Order_FinDistrLattice_and_ordtype_InhFinPOrder [in Combi.Basic.ordtype]
+InhFinOrder.Exports.join_ordtype_InhFinOrder_between_Order_FinDistrLattice_and_ordtype_InhFinite [in Combi.Basic.ordtype]
+InhFinOrder.Exports.join_ordtype_InhFinOrder_between_Order_FinDistrLattice_and_ordtype_InhOrder [in Combi.Basic.ordtype]
+InhFinOrder.Exports.join_ordtype_InhFinOrder_between_Order_FinDistrLattice_and_ordtype_InhLattice [in Combi.Basic.ordtype]
+InhFinOrder.Exports.join_ordtype_InhFinOrder_between_Order_FinDistrLattice_and_ordtype_InhPOrder [in Combi.Basic.ordtype]
+InhFinOrder.Exports.join_ordtype_InhFinOrder_between_Order_FinDistrLattice_and_ordtype_Inhabited [in Combi.Basic.ordtype]
+InhFinOrder.Exports.join_ordtype_InhFinOrder_between_ordtype_InhFinLattice_and_ordtype_InhOrder [in Combi.Basic.ordtype]
+InhFinOrder.Exports.join_ordtype_InhFinOrder_between_ordtype_InhFinLattice_and_Order_Total [in Combi.Basic.ordtype]
+InhFinOrder.Exports.join_ordtype_InhFinOrder_between_Order_FinLattice_and_ordtype_InhOrder [in Combi.Basic.ordtype]
+InhFinOrder.Exports.join_ordtype_InhFinOrder_between_Order_FinJoinSemilattice_and_ordtype_InhOrder [in Combi.Basic.ordtype]
+InhFinOrder.Exports.join_ordtype_InhFinOrder_between_Order_FinMeetSemilattice_and_ordtype_InhOrder [in Combi.Basic.ordtype]
+InhFinOrder.Exports.join_ordtype_InhFinOrder_between_ordtype_InhFinPOrder_and_ordtype_InhOrder [in Combi.Basic.ordtype]
+InhFinOrder.Exports.join_ordtype_InhFinOrder_between_ordtype_InhFinPOrder_and_Order_Total [in Combi.Basic.ordtype]
+InhFinOrder.Exports.join_ordtype_InhFinOrder_between_Order_FinPOrder_and_ordtype_InhOrder [in Combi.Basic.ordtype]
+InhFinOrder.Exports.join_ordtype_InhFinOrder_between_Order_FinPreorder_and_ordtype_InhOrder [in Combi.Basic.ordtype]
+InhFinOrder.Exports.join_ordtype_InhFinOrder_between_ordtype_InhFinite_and_ordtype_InhOrder [in Combi.Basic.ordtype]
+InhFinOrder.Exports.join_ordtype_InhFinOrder_between_ordtype_InhFinite_and_Order_Total [in Combi.Basic.ordtype]
+InhFinOrder.Exports.join_ordtype_InhFinOrder_between_fintype_Finite_and_ordtype_InhOrder [in Combi.Basic.ordtype]
+InhFinOrder.Exports.join_ordtype_InhFinOrder_between_choice_Countable_and_ordtype_InhOrder [in Combi.Basic.ordtype]
+InhFinOrder.Exports.join_ordtype_InhFinOrder_between_Order_DistrLattice_and_ordtype_InhFinLattice [in Combi.Basic.ordtype]
+InhFinOrder.Exports.join_ordtype_InhFinOrder_between_Order_DistrLattice_and_ordtype_InhFinPOrder [in Combi.Basic.ordtype]
+InhFinOrder.Exports.join_ordtype_InhFinOrder_between_Order_DistrLattice_and_ordtype_InhFinite [in Combi.Basic.ordtype]
+InhFinOrder.Exports.ordtype_InhFinOrder__to__Order_FinTotal [in Combi.Basic.ordtype]
+InhFinOrder.Exports.ordtype_InhFinOrder_class__to__Order_FinTotal_class [in Combi.Basic.ordtype]
+InhFinOrder.Exports.ordtype_InhFinOrder__to__Order_FinDistrLattice [in Combi.Basic.ordtype]
+InhFinOrder.Exports.ordtype_InhFinOrder_class__to__Order_FinDistrLattice_class [in Combi.Basic.ordtype]
+InhFinOrder.Exports.ordtype_InhFinOrder__to__ordtype_InhFinLattice [in Combi.Basic.ordtype]
+InhFinOrder.Exports.ordtype_InhFinOrder_class__to__ordtype_InhFinLattice_class [in Combi.Basic.ordtype]
+InhFinOrder.Exports.ordtype_InhFinOrder__to__Order_FinLattice [in Combi.Basic.ordtype]
+InhFinOrder.Exports.ordtype_InhFinOrder_class__to__Order_FinLattice_class [in Combi.Basic.ordtype]
+InhFinOrder.Exports.ordtype_InhFinOrder__to__Order_FinJoinSemilattice [in Combi.Basic.ordtype]
+InhFinOrder.Exports.ordtype_InhFinOrder_class__to__Order_FinJoinSemilattice_class [in Combi.Basic.ordtype]
+InhFinOrder.Exports.ordtype_InhFinOrder__to__Order_FinMeetSemilattice [in Combi.Basic.ordtype]
+InhFinOrder.Exports.ordtype_InhFinOrder_class__to__Order_FinMeetSemilattice_class [in Combi.Basic.ordtype]
+InhFinOrder.Exports.ordtype_InhFinOrder__to__ordtype_InhFinPOrder [in Combi.Basic.ordtype]
+InhFinOrder.Exports.ordtype_InhFinOrder_class__to__ordtype_InhFinPOrder_class [in Combi.Basic.ordtype]
+InhFinOrder.Exports.ordtype_InhFinOrder__to__Order_FinPOrder [in Combi.Basic.ordtype]
+InhFinOrder.Exports.ordtype_InhFinOrder_class__to__Order_FinPOrder_class [in Combi.Basic.ordtype]
+InhFinOrder.Exports.ordtype_InhFinOrder__to__Order_FinPreorder [in Combi.Basic.ordtype]
+InhFinOrder.Exports.ordtype_InhFinOrder_class__to__Order_FinPreorder_class [in Combi.Basic.ordtype]
+InhFinOrder.Exports.ordtype_InhFinOrder__to__ordtype_InhFinite [in Combi.Basic.ordtype]
+InhFinOrder.Exports.ordtype_InhFinOrder_class__to__ordtype_InhFinite_class [in Combi.Basic.ordtype]
+InhFinOrder.Exports.ordtype_InhFinOrder__to__fintype_Finite [in Combi.Basic.ordtype]
+InhFinOrder.Exports.ordtype_InhFinOrder_class__to__fintype_Finite_class [in Combi.Basic.ordtype]
+InhFinOrder.Exports.ordtype_InhFinOrder__to__choice_Countable [in Combi.Basic.ordtype]
+InhFinOrder.Exports.ordtype_InhFinOrder_class__to__choice_Countable_class [in Combi.Basic.ordtype]
+InhFinOrder.Exports.ordtype_InhFinOrder__to__ordtype_InhOrder [in Combi.Basic.ordtype]
+InhFinOrder.Exports.ordtype_InhFinOrder_class__to__ordtype_InhOrder_class [in Combi.Basic.ordtype]
+InhFinOrder.Exports.ordtype_InhFinOrder__to__Order_Total [in Combi.Basic.ordtype]
+InhFinOrder.Exports.ordtype_InhFinOrder_class__to__Order_Total_class [in Combi.Basic.ordtype]
+InhFinOrder.Exports.ordtype_InhFinOrder__to__Order_DistrLattice [in Combi.Basic.ordtype]
+InhFinOrder.Exports.ordtype_InhFinOrder_class__to__Order_DistrLattice_class [in Combi.Basic.ordtype]
+InhFinOrder.Exports.ordtype_InhFinOrder__to__ordtype_InhLattice [in Combi.Basic.ordtype]
+InhFinOrder.Exports.ordtype_InhFinOrder_class__to__ordtype_InhLattice_class [in Combi.Basic.ordtype]
+InhFinOrder.Exports.ordtype_InhFinOrder__to__ordtype_InhPOrder [in Combi.Basic.ordtype]
+InhFinOrder.Exports.ordtype_InhFinOrder_class__to__ordtype_InhPOrder_class [in Combi.Basic.ordtype]
+InhFinOrder.Exports.ordtype_InhFinOrder__to__ordtype_Inhabited [in Combi.Basic.ordtype]
+InhFinOrder.Exports.ordtype_InhFinOrder_class__to__ordtype_Inhabited_class [in Combi.Basic.ordtype]
+InhFinOrder.Exports.ordtype_InhFinOrder__to__Order_Lattice [in Combi.Basic.ordtype]
+InhFinOrder.Exports.ordtype_InhFinOrder_class__to__Order_Lattice_class [in Combi.Basic.ordtype]
+InhFinOrder.Exports.ordtype_InhFinOrder__to__Order_JoinSemilattice [in Combi.Basic.ordtype]
+InhFinOrder.Exports.ordtype_InhFinOrder_class__to__Order_JoinSemilattice_class [in Combi.Basic.ordtype]
+InhFinOrder.Exports.ordtype_InhFinOrder__to__Order_MeetSemilattice [in Combi.Basic.ordtype]
+InhFinOrder.Exports.ordtype_InhFinOrder_class__to__Order_MeetSemilattice_class [in Combi.Basic.ordtype]
+InhFinOrder.Exports.ordtype_InhFinOrder__to__Order_POrder [in Combi.Basic.ordtype]
+InhFinOrder.Exports.ordtype_InhFinOrder_class__to__Order_POrder_class [in Combi.Basic.ordtype]
+InhFinOrder.Exports.ordtype_InhFinOrder__to__Order_Preorder [in Combi.Basic.ordtype]
+InhFinOrder.Exports.ordtype_InhFinOrder_class__to__Order_Preorder_class [in Combi.Basic.ordtype]
+InhFinOrder.Exports.ordtype_InhFinOrder__to__choice_Choice [in Combi.Basic.ordtype]
+InhFinOrder.Exports.ordtype_InhFinOrder_class__to__choice_Choice_class [in Combi.Basic.ordtype]
+InhFinOrder.Exports.ordtype_InhFinOrder__to__eqtype_Equality [in Combi.Basic.ordtype]
+InhFinOrder.Exports.ordtype_InhFinOrder_class__to__eqtype_Equality_class [in Combi.Basic.ordtype]
+InhFinOrder.pack_ [in Combi.Basic.ordtype]
+InhFinOrder.phant_on_ [in Combi.Basic.ordtype]
+InhFinOrder.phant_clone [in Combi.Basic.ordtype]
+InhFinPOrder.Exports.join_ordtype_InhFinPOrder_between_Order_FinPOrder_and_ordtype_InhFinite [in Combi.Basic.ordtype]
+InhFinPOrder.Exports.join_ordtype_InhFinPOrder_between_Order_FinPOrder_and_ordtype_InhPOrder [in Combi.Basic.ordtype]
+InhFinPOrder.Exports.join_ordtype_InhFinPOrder_between_Order_FinPOrder_and_ordtype_Inhabited [in Combi.Basic.ordtype]
+InhFinPOrder.Exports.join_ordtype_InhFinPOrder_between_Order_FinPreorder_and_ordtype_InhFinite [in Combi.Basic.ordtype]
+InhFinPOrder.Exports.join_ordtype_InhFinPOrder_between_Order_FinPreorder_and_ordtype_InhPOrder [in Combi.Basic.ordtype]
+InhFinPOrder.Exports.join_ordtype_InhFinPOrder_between_Order_FinPreorder_and_ordtype_Inhabited [in Combi.Basic.ordtype]
+InhFinPOrder.Exports.join_ordtype_InhFinPOrder_between_ordtype_InhFinite_and_ordtype_InhPOrder [in Combi.Basic.ordtype]
+InhFinPOrder.Exports.join_ordtype_InhFinPOrder_between_ordtype_InhFinite_and_Order_POrder [in Combi.Basic.ordtype]
+InhFinPOrder.Exports.join_ordtype_InhFinPOrder_between_ordtype_InhFinite_and_Order_Preorder [in Combi.Basic.ordtype]
+InhFinPOrder.Exports.join_ordtype_InhFinPOrder_between_fintype_Finite_and_ordtype_InhPOrder [in Combi.Basic.ordtype]
+InhFinPOrder.Exports.join_ordtype_InhFinPOrder_between_choice_Countable_and_ordtype_InhPOrder [in Combi.Basic.ordtype]
+InhFinPOrder.Exports.ordtype_InhFinPOrder__to__Order_FinPOrder [in Combi.Basic.ordtype]
+InhFinPOrder.Exports.ordtype_InhFinPOrder_class__to__Order_FinPOrder_class [in Combi.Basic.ordtype]
+InhFinPOrder.Exports.ordtype_InhFinPOrder__to__Order_FinPreorder [in Combi.Basic.ordtype]
+InhFinPOrder.Exports.ordtype_InhFinPOrder_class__to__Order_FinPreorder_class [in Combi.Basic.ordtype]
+InhFinPOrder.Exports.ordtype_InhFinPOrder__to__ordtype_InhFinite [in Combi.Basic.ordtype]
+InhFinPOrder.Exports.ordtype_InhFinPOrder_class__to__ordtype_InhFinite_class [in Combi.Basic.ordtype]
+InhFinPOrder.Exports.ordtype_InhFinPOrder__to__fintype_Finite [in Combi.Basic.ordtype]
+InhFinPOrder.Exports.ordtype_InhFinPOrder_class__to__fintype_Finite_class [in Combi.Basic.ordtype]
+InhFinPOrder.Exports.ordtype_InhFinPOrder__to__choice_Countable [in Combi.Basic.ordtype]
+InhFinPOrder.Exports.ordtype_InhFinPOrder_class__to__choice_Countable_class [in Combi.Basic.ordtype]
+InhFinPOrder.Exports.ordtype_InhFinPOrder__to__ordtype_InhPOrder [in Combi.Basic.ordtype]
+InhFinPOrder.Exports.ordtype_InhFinPOrder_class__to__ordtype_InhPOrder_class [in Combi.Basic.ordtype]
+InhFinPOrder.Exports.ordtype_InhFinPOrder__to__ordtype_Inhabited [in Combi.Basic.ordtype]
+InhFinPOrder.Exports.ordtype_InhFinPOrder_class__to__ordtype_Inhabited_class [in Combi.Basic.ordtype]
+InhFinPOrder.Exports.ordtype_InhFinPOrder__to__Order_POrder [in Combi.Basic.ordtype]
+InhFinPOrder.Exports.ordtype_InhFinPOrder_class__to__Order_POrder_class [in Combi.Basic.ordtype]
+InhFinPOrder.Exports.ordtype_InhFinPOrder__to__Order_Preorder [in Combi.Basic.ordtype]
+InhFinPOrder.Exports.ordtype_InhFinPOrder_class__to__Order_Preorder_class [in Combi.Basic.ordtype]
+InhFinPOrder.Exports.ordtype_InhFinPOrder__to__choice_Choice [in Combi.Basic.ordtype]
+InhFinPOrder.Exports.ordtype_InhFinPOrder_class__to__choice_Choice_class [in Combi.Basic.ordtype]
+InhFinPOrder.Exports.ordtype_InhFinPOrder__to__eqtype_Equality [in Combi.Basic.ordtype]
+InhFinPOrder.Exports.ordtype_InhFinPOrder_class__to__eqtype_Equality_class [in Combi.Basic.ordtype]
+InhFinPOrder.pack_ [in Combi.Basic.ordtype]
+InhFinPOrder.phant_on_ [in Combi.Basic.ordtype]
+InhFinPOrder.phant_clone [in Combi.Basic.ordtype]
+InhLattice.Exports.join_ordtype_InhLattice_between_ordtype_InhPOrder_and_Order_Lattice [in Combi.Basic.ordtype]
+InhLattice.Exports.join_ordtype_InhLattice_between_ordtype_InhPOrder_and_Order_JoinSemilattice [in Combi.Basic.ordtype]
+InhLattice.Exports.join_ordtype_InhLattice_between_ordtype_InhPOrder_and_Order_MeetSemilattice [in Combi.Basic.ordtype]
+InhLattice.Exports.join_ordtype_InhLattice_between_ordtype_Inhabited_and_Order_Lattice [in Combi.Basic.ordtype]
+InhLattice.Exports.join_ordtype_InhLattice_between_ordtype_Inhabited_and_Order_JoinSemilattice [in Combi.Basic.ordtype]
+InhLattice.Exports.join_ordtype_InhLattice_between_ordtype_Inhabited_and_Order_MeetSemilattice [in Combi.Basic.ordtype]
+InhLattice.Exports.ordtype_InhLattice__to__ordtype_InhPOrder [in Combi.Basic.ordtype]
+InhLattice.Exports.ordtype_InhLattice_class__to__ordtype_InhPOrder_class [in Combi.Basic.ordtype]
+InhLattice.Exports.ordtype_InhLattice__to__ordtype_Inhabited [in Combi.Basic.ordtype]
+InhLattice.Exports.ordtype_InhLattice_class__to__ordtype_Inhabited_class [in Combi.Basic.ordtype]
+InhLattice.Exports.ordtype_InhLattice__to__Order_Lattice [in Combi.Basic.ordtype]
+InhLattice.Exports.ordtype_InhLattice_class__to__Order_Lattice_class [in Combi.Basic.ordtype]
+InhLattice.Exports.ordtype_InhLattice__to__Order_JoinSemilattice [in Combi.Basic.ordtype]
+InhLattice.Exports.ordtype_InhLattice_class__to__Order_JoinSemilattice_class [in Combi.Basic.ordtype]
+InhLattice.Exports.ordtype_InhLattice__to__Order_MeetSemilattice [in Combi.Basic.ordtype]
+InhLattice.Exports.ordtype_InhLattice_class__to__Order_MeetSemilattice_class [in Combi.Basic.ordtype]
+InhLattice.Exports.ordtype_InhLattice__to__Order_POrder [in Combi.Basic.ordtype]
+InhLattice.Exports.ordtype_InhLattice_class__to__Order_POrder_class [in Combi.Basic.ordtype]
+InhLattice.Exports.ordtype_InhLattice__to__Order_Preorder [in Combi.Basic.ordtype]
+InhLattice.Exports.ordtype_InhLattice_class__to__Order_Preorder_class [in Combi.Basic.ordtype]
+InhLattice.Exports.ordtype_InhLattice__to__choice_Choice [in Combi.Basic.ordtype]
+InhLattice.Exports.ordtype_InhLattice_class__to__choice_Choice_class [in Combi.Basic.ordtype]
+InhLattice.Exports.ordtype_InhLattice__to__eqtype_Equality [in Combi.Basic.ordtype]
+InhLattice.Exports.ordtype_InhLattice_class__to__eqtype_Equality_class [in Combi.Basic.ordtype]
+InhLattice.pack_ [in Combi.Basic.ordtype]
+InhLattice.phant_on_ [in Combi.Basic.ordtype]
+InhLattice.phant_clone [in Combi.Basic.ordtype]
+InhOrder.Exports.join_ordtype_InhOrder_between_Order_DistrLattice_and_ordtype_InhLattice [in Combi.Basic.ordtype]
+InhOrder.Exports.join_ordtype_InhOrder_between_Order_DistrLattice_and_ordtype_InhPOrder [in Combi.Basic.ordtype]
+InhOrder.Exports.join_ordtype_InhOrder_between_Order_DistrLattice_and_ordtype_Inhabited [in Combi.Basic.ordtype]
+InhOrder.Exports.join_ordtype_InhOrder_between_ordtype_InhLattice_and_Order_Total [in Combi.Basic.ordtype]
+InhOrder.Exports.join_ordtype_InhOrder_between_ordtype_InhPOrder_and_Order_Total [in Combi.Basic.ordtype]
+InhOrder.Exports.join_ordtype_InhOrder_between_ordtype_Inhabited_and_Order_Total [in Combi.Basic.ordtype]
+InhOrder.Exports.ordtype_InhOrder__to__Order_Total [in Combi.Basic.ordtype]
+InhOrder.Exports.ordtype_InhOrder_class__to__Order_Total_class [in Combi.Basic.ordtype]
+InhOrder.Exports.ordtype_InhOrder__to__Order_DistrLattice [in Combi.Basic.ordtype]
+InhOrder.Exports.ordtype_InhOrder_class__to__Order_DistrLattice_class [in Combi.Basic.ordtype]
+InhOrder.Exports.ordtype_InhOrder__to__ordtype_InhLattice [in Combi.Basic.ordtype]
+InhOrder.Exports.ordtype_InhOrder_class__to__ordtype_InhLattice_class [in Combi.Basic.ordtype]
+InhOrder.Exports.ordtype_InhOrder__to__ordtype_InhPOrder [in Combi.Basic.ordtype]
+InhOrder.Exports.ordtype_InhOrder_class__to__ordtype_InhPOrder_class [in Combi.Basic.ordtype]
+InhOrder.Exports.ordtype_InhOrder__to__ordtype_Inhabited [in Combi.Basic.ordtype]
+InhOrder.Exports.ordtype_InhOrder_class__to__ordtype_Inhabited_class [in Combi.Basic.ordtype]
+InhOrder.Exports.ordtype_InhOrder__to__Order_Lattice [in Combi.Basic.ordtype]
+InhOrder.Exports.ordtype_InhOrder_class__to__Order_Lattice_class [in Combi.Basic.ordtype]
+InhOrder.Exports.ordtype_InhOrder__to__Order_JoinSemilattice [in Combi.Basic.ordtype]
+InhOrder.Exports.ordtype_InhOrder_class__to__Order_JoinSemilattice_class [in Combi.Basic.ordtype]
+InhOrder.Exports.ordtype_InhOrder__to__Order_MeetSemilattice [in Combi.Basic.ordtype]
+InhOrder.Exports.ordtype_InhOrder_class__to__Order_MeetSemilattice_class [in Combi.Basic.ordtype]
+InhOrder.Exports.ordtype_InhOrder__to__Order_POrder [in Combi.Basic.ordtype]
+InhOrder.Exports.ordtype_InhOrder_class__to__Order_POrder_class [in Combi.Basic.ordtype]
+InhOrder.Exports.ordtype_InhOrder__to__Order_Preorder [in Combi.Basic.ordtype]
+InhOrder.Exports.ordtype_InhOrder_class__to__Order_Preorder_class [in Combi.Basic.ordtype]
+InhOrder.Exports.ordtype_InhOrder__to__choice_Choice [in Combi.Basic.ordtype]
+InhOrder.Exports.ordtype_InhOrder_class__to__choice_Choice_class [in Combi.Basic.ordtype]
+InhOrder.Exports.ordtype_InhOrder__to__eqtype_Equality [in Combi.Basic.ordtype]
+InhOrder.Exports.ordtype_InhOrder_class__to__eqtype_Equality_class [in Combi.Basic.ordtype]
+InhOrder.pack_ [in Combi.Basic.ordtype]
+InhOrder.phant_on_ [in Combi.Basic.ordtype]
+InhOrder.phant_clone [in Combi.Basic.ordtype]
+InhPOrder.Exports.join_ordtype_InhPOrder_between_ordtype_Inhabited_and_Order_POrder [in Combi.Basic.ordtype]
+InhPOrder.Exports.join_ordtype_InhPOrder_between_ordtype_Inhabited_and_Order_Preorder [in Combi.Basic.ordtype]
+InhPOrder.Exports.ordtype_InhPOrder__to__ordtype_Inhabited [in Combi.Basic.ordtype]
+InhPOrder.Exports.ordtype_InhPOrder_class__to__ordtype_Inhabited_class [in Combi.Basic.ordtype]
+InhPOrder.Exports.ordtype_InhPOrder__to__Order_POrder [in Combi.Basic.ordtype]
+InhPOrder.Exports.ordtype_InhPOrder_class__to__Order_POrder_class [in Combi.Basic.ordtype]
+InhPOrder.Exports.ordtype_InhPOrder__to__Order_Preorder [in Combi.Basic.ordtype]
+InhPOrder.Exports.ordtype_InhPOrder_class__to__Order_Preorder_class [in Combi.Basic.ordtype]
+InhPOrder.Exports.ordtype_InhPOrder__to__choice_Choice [in Combi.Basic.ordtype]
+InhPOrder.Exports.ordtype_InhPOrder_class__to__choice_Choice_class [in Combi.Basic.ordtype]
+InhPOrder.Exports.ordtype_InhPOrder__to__eqtype_Equality [in Combi.Basic.ordtype]
+InhPOrder.Exports.ordtype_InhPOrder_class__to__eqtype_Equality_class [in Combi.Basic.ordtype]
+InhPOrder.pack_ [in Combi.Basic.ordtype]
+InhPOrder.phant_on_ [in Combi.Basic.ordtype]
+InhPOrder.phant_clone [in Combi.Basic.ordtype]
+InhTBLattice.Exports.join_ordtype_InhTBLattice_between_Order_BLattice_and_ordtype_InhLattice [in Combi.Basic.ordtype]
+InhTBLattice.Exports.join_ordtype_InhTBLattice_between_Order_BLattice_and_ordtype_InhPOrder [in Combi.Basic.ordtype]
+InhTBLattice.Exports.join_ordtype_InhTBLattice_between_Order_BLattice_and_ordtype_Inhabited [in Combi.Basic.ordtype]
+InhTBLattice.Exports.join_ordtype_InhTBLattice_between_Order_BJoinSemilattice_and_ordtype_InhLattice [in Combi.Basic.ordtype]
+InhTBLattice.Exports.join_ordtype_InhTBLattice_between_Order_BJoinSemilattice_and_ordtype_InhPOrder [in Combi.Basic.ordtype]
+InhTBLattice.Exports.join_ordtype_InhTBLattice_between_Order_BJoinSemilattice_and_ordtype_Inhabited [in Combi.Basic.ordtype]
+InhTBLattice.Exports.join_ordtype_InhTBLattice_between_Order_BMeetSemilattice_and_ordtype_InhLattice [in Combi.Basic.ordtype]
+InhTBLattice.Exports.join_ordtype_InhTBLattice_between_Order_BMeetSemilattice_and_ordtype_InhPOrder [in Combi.Basic.ordtype]
+InhTBLattice.Exports.join_ordtype_InhTBLattice_between_Order_BMeetSemilattice_and_ordtype_Inhabited [in Combi.Basic.ordtype]
+InhTBLattice.Exports.join_ordtype_InhTBLattice_between_Order_BPOrder_and_ordtype_InhLattice [in Combi.Basic.ordtype]
+InhTBLattice.Exports.join_ordtype_InhTBLattice_between_Order_BPOrder_and_ordtype_InhPOrder [in Combi.Basic.ordtype]
+InhTBLattice.Exports.join_ordtype_InhTBLattice_between_Order_BPOrder_and_ordtype_Inhabited [in Combi.Basic.ordtype]
+InhTBLattice.Exports.join_ordtype_InhTBLattice_between_Order_BPreorder_and_ordtype_InhLattice [in Combi.Basic.ordtype]
+InhTBLattice.Exports.join_ordtype_InhTBLattice_between_Order_BPreorder_and_ordtype_InhPOrder [in Combi.Basic.ordtype]
+InhTBLattice.Exports.join_ordtype_InhTBLattice_between_Order_BPreorder_and_ordtype_Inhabited [in Combi.Basic.ordtype]
+InhTBLattice.Exports.join_ordtype_InhTBLattice_between_ordtype_InhLattice_and_Order_TBLattice [in Combi.Basic.ordtype]
+InhTBLattice.Exports.join_ordtype_InhTBLattice_between_ordtype_InhLattice_and_Order_TBJoinSemilattice [in Combi.Basic.ordtype]
+InhTBLattice.Exports.join_ordtype_InhTBLattice_between_ordtype_InhLattice_and_Order_TBMeetSemilattice [in Combi.Basic.ordtype]
+InhTBLattice.Exports.join_ordtype_InhTBLattice_between_ordtype_InhLattice_and_Order_TBPOrder [in Combi.Basic.ordtype]
+InhTBLattice.Exports.join_ordtype_InhTBLattice_between_ordtype_InhLattice_and_Order_TBPreorder [in Combi.Basic.ordtype]
+InhTBLattice.Exports.join_ordtype_InhTBLattice_between_ordtype_InhLattice_and_Order_TLattice [in Combi.Basic.ordtype]
+InhTBLattice.Exports.join_ordtype_InhTBLattice_between_ordtype_InhLattice_and_Order_TJoinSemilattice [in Combi.Basic.ordtype]
+InhTBLattice.Exports.join_ordtype_InhTBLattice_between_ordtype_InhLattice_and_Order_TMeetSemilattice [in Combi.Basic.ordtype]
+InhTBLattice.Exports.join_ordtype_InhTBLattice_between_ordtype_InhLattice_and_Order_TPOrder [in Combi.Basic.ordtype]
+InhTBLattice.Exports.join_ordtype_InhTBLattice_between_ordtype_InhLattice_and_Order_TPreorder [in Combi.Basic.ordtype]
+InhTBLattice.Exports.join_ordtype_InhTBLattice_between_ordtype_InhPOrder_and_Order_TBLattice [in Combi.Basic.ordtype]
+InhTBLattice.Exports.join_ordtype_InhTBLattice_between_ordtype_InhPOrder_and_Order_TBJoinSemilattice [in Combi.Basic.ordtype]
+InhTBLattice.Exports.join_ordtype_InhTBLattice_between_ordtype_InhPOrder_and_Order_TBMeetSemilattice [in Combi.Basic.ordtype]
+InhTBLattice.Exports.join_ordtype_InhTBLattice_between_ordtype_InhPOrder_and_Order_TBPOrder [in Combi.Basic.ordtype]
+InhTBLattice.Exports.join_ordtype_InhTBLattice_between_ordtype_InhPOrder_and_Order_TBPreorder [in Combi.Basic.ordtype]
+InhTBLattice.Exports.join_ordtype_InhTBLattice_between_ordtype_InhPOrder_and_Order_TLattice [in Combi.Basic.ordtype]
+InhTBLattice.Exports.join_ordtype_InhTBLattice_between_ordtype_InhPOrder_and_Order_TJoinSemilattice [in Combi.Basic.ordtype]
+InhTBLattice.Exports.join_ordtype_InhTBLattice_between_ordtype_InhPOrder_and_Order_TMeetSemilattice [in Combi.Basic.ordtype]
+InhTBLattice.Exports.join_ordtype_InhTBLattice_between_ordtype_InhPOrder_and_Order_TPOrder [in Combi.Basic.ordtype]
+InhTBLattice.Exports.join_ordtype_InhTBLattice_between_ordtype_InhPOrder_and_Order_TPreorder [in Combi.Basic.ordtype]
+InhTBLattice.Exports.join_ordtype_InhTBLattice_between_ordtype_Inhabited_and_Order_TBLattice [in Combi.Basic.ordtype]
+InhTBLattice.Exports.join_ordtype_InhTBLattice_between_ordtype_Inhabited_and_Order_TBJoinSemilattice [in Combi.Basic.ordtype]
+InhTBLattice.Exports.join_ordtype_InhTBLattice_between_ordtype_Inhabited_and_Order_TBMeetSemilattice [in Combi.Basic.ordtype]
+InhTBLattice.Exports.join_ordtype_InhTBLattice_between_ordtype_Inhabited_and_Order_TBPOrder [in Combi.Basic.ordtype]
+InhTBLattice.Exports.join_ordtype_InhTBLattice_between_ordtype_Inhabited_and_Order_TBPreorder [in Combi.Basic.ordtype]
+InhTBLattice.Exports.join_ordtype_InhTBLattice_between_ordtype_Inhabited_and_Order_TLattice [in Combi.Basic.ordtype]
+InhTBLattice.Exports.join_ordtype_InhTBLattice_between_ordtype_Inhabited_and_Order_TJoinSemilattice [in Combi.Basic.ordtype]
+InhTBLattice.Exports.join_ordtype_InhTBLattice_between_ordtype_Inhabited_and_Order_TMeetSemilattice [in Combi.Basic.ordtype]
+InhTBLattice.Exports.join_ordtype_InhTBLattice_between_ordtype_Inhabited_and_Order_TPOrder [in Combi.Basic.ordtype]
+InhTBLattice.Exports.join_ordtype_InhTBLattice_between_ordtype_Inhabited_and_Order_TPreorder [in Combi.Basic.ordtype]
+InhTBLattice.Exports.ordtype_InhTBLattice__to__Order_TBLattice [in Combi.Basic.ordtype]
+InhTBLattice.Exports.ordtype_InhTBLattice_class__to__Order_TBLattice_class [in Combi.Basic.ordtype]
+InhTBLattice.Exports.ordtype_InhTBLattice__to__Order_BLattice [in Combi.Basic.ordtype]
+InhTBLattice.Exports.ordtype_InhTBLattice_class__to__Order_BLattice_class [in Combi.Basic.ordtype]
+InhTBLattice.Exports.ordtype_InhTBLattice__to__Order_TBJoinSemilattice [in Combi.Basic.ordtype]
+InhTBLattice.Exports.ordtype_InhTBLattice_class__to__Order_TBJoinSemilattice_class [in Combi.Basic.ordtype]
+InhTBLattice.Exports.ordtype_InhTBLattice__to__Order_BJoinSemilattice [in Combi.Basic.ordtype]
+InhTBLattice.Exports.ordtype_InhTBLattice_class__to__Order_BJoinSemilattice_class [in Combi.Basic.ordtype]
+InhTBLattice.Exports.ordtype_InhTBLattice__to__Order_TBMeetSemilattice [in Combi.Basic.ordtype]
+InhTBLattice.Exports.ordtype_InhTBLattice_class__to__Order_TBMeetSemilattice_class [in Combi.Basic.ordtype]
+InhTBLattice.Exports.ordtype_InhTBLattice__to__Order_BMeetSemilattice [in Combi.Basic.ordtype]
+InhTBLattice.Exports.ordtype_InhTBLattice_class__to__Order_BMeetSemilattice_class [in Combi.Basic.ordtype]
+InhTBLattice.Exports.ordtype_InhTBLattice__to__Order_TBPOrder [in Combi.Basic.ordtype]
+InhTBLattice.Exports.ordtype_InhTBLattice_class__to__Order_TBPOrder_class [in Combi.Basic.ordtype]
+InhTBLattice.Exports.ordtype_InhTBLattice__to__Order_BPOrder [in Combi.Basic.ordtype]
+InhTBLattice.Exports.ordtype_InhTBLattice_class__to__Order_BPOrder_class [in Combi.Basic.ordtype]
+InhTBLattice.Exports.ordtype_InhTBLattice__to__Order_TBPreorder [in Combi.Basic.ordtype]
+InhTBLattice.Exports.ordtype_InhTBLattice_class__to__Order_TBPreorder_class [in Combi.Basic.ordtype]
+InhTBLattice.Exports.ordtype_InhTBLattice__to__Order_BPreorder [in Combi.Basic.ordtype]
+InhTBLattice.Exports.ordtype_InhTBLattice_class__to__Order_BPreorder_class [in Combi.Basic.ordtype]
+InhTBLattice.Exports.ordtype_InhTBLattice__to__ordtype_InhLattice [in Combi.Basic.ordtype]
+InhTBLattice.Exports.ordtype_InhTBLattice_class__to__ordtype_InhLattice_class [in Combi.Basic.ordtype]
+InhTBLattice.Exports.ordtype_InhTBLattice__to__ordtype_InhPOrder [in Combi.Basic.ordtype]
+InhTBLattice.Exports.ordtype_InhTBLattice_class__to__ordtype_InhPOrder_class [in Combi.Basic.ordtype]
+InhTBLattice.Exports.ordtype_InhTBLattice__to__ordtype_Inhabited [in Combi.Basic.ordtype]
+InhTBLattice.Exports.ordtype_InhTBLattice_class__to__ordtype_Inhabited_class [in Combi.Basic.ordtype]
+InhTBLattice.Exports.ordtype_InhTBLattice__to__Order_TLattice [in Combi.Basic.ordtype]
+InhTBLattice.Exports.ordtype_InhTBLattice_class__to__Order_TLattice_class [in Combi.Basic.ordtype]
+InhTBLattice.Exports.ordtype_InhTBLattice__to__Order_Lattice [in Combi.Basic.ordtype]
+InhTBLattice.Exports.ordtype_InhTBLattice_class__to__Order_Lattice_class [in Combi.Basic.ordtype]
+InhTBLattice.Exports.ordtype_InhTBLattice__to__Order_TJoinSemilattice [in Combi.Basic.ordtype]
+InhTBLattice.Exports.ordtype_InhTBLattice_class__to__Order_TJoinSemilattice_class [in Combi.Basic.ordtype]
+InhTBLattice.Exports.ordtype_InhTBLattice__to__Order_JoinSemilattice [in Combi.Basic.ordtype]
+InhTBLattice.Exports.ordtype_InhTBLattice_class__to__Order_JoinSemilattice_class [in Combi.Basic.ordtype]
+InhTBLattice.Exports.ordtype_InhTBLattice__to__Order_TMeetSemilattice [in Combi.Basic.ordtype]
+InhTBLattice.Exports.ordtype_InhTBLattice_class__to__Order_TMeetSemilattice_class [in Combi.Basic.ordtype]
+InhTBLattice.Exports.ordtype_InhTBLattice__to__Order_MeetSemilattice [in Combi.Basic.ordtype]
+InhTBLattice.Exports.ordtype_InhTBLattice_class__to__Order_MeetSemilattice_class [in Combi.Basic.ordtype]
+InhTBLattice.Exports.ordtype_InhTBLattice__to__Order_TPOrder [in Combi.Basic.ordtype]
+InhTBLattice.Exports.ordtype_InhTBLattice_class__to__Order_TPOrder_class [in Combi.Basic.ordtype]
+InhTBLattice.Exports.ordtype_InhTBLattice__to__Order_POrder [in Combi.Basic.ordtype]
+InhTBLattice.Exports.ordtype_InhTBLattice_class__to__Order_POrder_class [in Combi.Basic.ordtype]
+InhTBLattice.Exports.ordtype_InhTBLattice__to__Order_TPreorder [in Combi.Basic.ordtype]
+InhTBLattice.Exports.ordtype_InhTBLattice_class__to__Order_TPreorder_class [in Combi.Basic.ordtype]
+InhTBLattice.Exports.ordtype_InhTBLattice__to__Order_Preorder [in Combi.Basic.ordtype]
+InhTBLattice.Exports.ordtype_InhTBLattice_class__to__Order_Preorder_class [in Combi.Basic.ordtype]
+InhTBLattice.Exports.ordtype_InhTBLattice__to__choice_Choice [in Combi.Basic.ordtype]
+InhTBLattice.Exports.ordtype_InhTBLattice_class__to__choice_Choice_class [in Combi.Basic.ordtype]
+InhTBLattice.Exports.ordtype_InhTBLattice__to__eqtype_Equality [in Combi.Basic.ordtype]
+InhTBLattice.Exports.ordtype_InhTBLattice_class__to__eqtype_Equality_class [in Combi.Basic.ordtype]
+InhTBLattice.pack_ [in Combi.Basic.ordtype]
+InhTBLattice.phant_on_ [in Combi.Basic.ordtype]
+InhTBLattice.phant_clone [in Combi.Basic.ordtype]
+inh_ex [in Combi.Basic.ordtype]
+inporbits [in Combi.SymGroup.permcent]
+ins [in Combi.LRrule.Schensted]
+inscode [in Combi.SymGroup.presentSn]
+insmin [in Combi.LRrule.Schensted]
+inspos [in Combi.LRrule.Schensted]
+inspred [in Combi.LRrule.Schensted]
+insrow [in Combi.LRrule.Schensted]
+instab [in Combi.LRrule.Schensted]
+instabnrow [in Combi.LRrule.Schensted]
+intcompn_behead [in Combi.MPoly.sympoly]
+intcompn_cons [in Combi.MPoly.sympoly]
+intcompn_cast [in Combi.Combi.composition]
+intcomp_of_intcompn [in Combi.Combi.composition]
+IntPartNDom.Exports.botEintpartndom [in Combi.Combi.partition]
+IntPartNDom.Exports.join_intpartnE [in Combi.Combi.partition]
+IntPartNDom.Exports.leEpartdom [in Combi.Combi.partition]
+IntPartNDom.Exports.partdom_conj_intpartn [in Combi.Combi.partition]
+IntPartNDom.Exports.sumn_take_pardom_meet [in Combi.Combi.partition]
+IntPartNDom.Exports.topEintpartndom [in Combi.Combi.partition]
+IntPartNDom.fintype_Finite__to__fintype_isFinite [in Combi.Combi.partition]
+IntPartNDom.fintype_Finite__to__eqtype_hasDecEq [in Combi.Combi.partition]
+IntPartNDom.fintype_Finite__to__choice_Choice_isCountable [in Combi.Combi.partition]
+IntPartNDom.fintype_Finite__to__choice_hasChoice [in Combi.Combi.partition]
+IntPartNDom.from_parttuple [in Combi.Combi.partition]
+IntPartNDom.HB_unnamed_factory_142 [in Combi.Combi.partition]
+IntPartNDom.HB_unnamed_factory_140 [in Combi.Combi.partition]
+IntPartNDom.HB_unnamed_mixin_139 [in Combi.Combi.partition]
+IntPartNDom.HB_unnamed_mixin_138 [in Combi.Combi.partition]
+IntPartNDom.HB_unnamed_factory_135 [in Combi.Combi.partition]
+IntPartNDom.HB_unnamed_mixin_134 [in Combi.Combi.partition]
+IntPartNDom.HB_unnamed_mixin_133 [in Combi.Combi.partition]
+IntPartNDom.HB_unnamed_factory_130 [in Combi.Combi.partition]
+IntPartNDom.HB_unnamed_mixin_129 [in Combi.Combi.partition]
+IntPartNDom.HB_unnamed_factory_125 [in Combi.Combi.partition]
+IntPartNDom.HB_unnamed_mixin_124 [in Combi.Combi.partition]
+IntPartNDom.HB_unnamed_mixin_123 [in Combi.Combi.partition]
+IntPartNDom.HB_unnamed_mixin_122 [in Combi.Combi.partition]
+IntPartNDom.HB_unnamed_mixin_121 [in Combi.Combi.partition]
+IntPartNDom.HB_unnamed_factory_116 [in Combi.Combi.partition]
+IntPartNDom.intpartndom [in Combi.Combi.partition]
+IntPartNDom.IntPartNDom_intpartndom__canonical__Order_FinTBLattice [in Combi.Combi.partition]
+IntPartNDom.IntPartNDom_intpartndom__canonical__Order_FinTBPOrder [in Combi.Combi.partition]
+IntPartNDom.IntPartNDom_intpartndom__canonical__Order_FinTBPreorder [in Combi.Combi.partition]
+IntPartNDom.IntPartNDom_intpartndom__canonical__Order_FinTJoinSemilattice [in Combi.Combi.partition]
+IntPartNDom.IntPartNDom_intpartndom__canonical__Order_FinTPOrder [in Combi.Combi.partition]
+IntPartNDom.IntPartNDom_intpartndom__canonical__Order_FinTPreorder [in Combi.Combi.partition]
+IntPartNDom.IntPartNDom_intpartndom__canonical__ordtype_InhTBLattice [in Combi.Combi.partition]
+IntPartNDom.IntPartNDom_intpartndom__canonical__Order_TBLattice [in Combi.Combi.partition]
+IntPartNDom.IntPartNDom_intpartndom__canonical__Order_TBJoinSemilattice [in Combi.Combi.partition]
+IntPartNDom.IntPartNDom_intpartndom__canonical__Order_TBMeetSemilattice [in Combi.Combi.partition]
+IntPartNDom.IntPartNDom_intpartndom__canonical__Order_TBPOrder [in Combi.Combi.partition]
+IntPartNDom.IntPartNDom_intpartndom__canonical__Order_TBPreorder [in Combi.Combi.partition]
+IntPartNDom.IntPartNDom_intpartndom__canonical__Order_TLattice [in Combi.Combi.partition]
+IntPartNDom.IntPartNDom_intpartndom__canonical__Order_TJoinSemilattice [in Combi.Combi.partition]
+IntPartNDom.IntPartNDom_intpartndom__canonical__Order_TMeetSemilattice [in Combi.Combi.partition]
+IntPartNDom.IntPartNDom_intpartndom__canonical__Order_TPOrder [in Combi.Combi.partition]
+IntPartNDom.IntPartNDom_intpartndom__canonical__Order_TPreorder [in Combi.Combi.partition]
+IntPartNDom.IntPartNDom_intpartndom__canonical__Order_BLattice [in Combi.Combi.partition]
+IntPartNDom.IntPartNDom_intpartndom__canonical__Order_BJoinSemilattice [in Combi.Combi.partition]
+IntPartNDom.IntPartNDom_intpartndom__canonical__Order_FinBMeetSemilattice [in Combi.Combi.partition]
+IntPartNDom.IntPartNDom_intpartndom__canonical__Order_BMeetSemilattice [in Combi.Combi.partition]
+IntPartNDom.IntPartNDom_intpartndom__canonical__Order_FinBPOrder [in Combi.Combi.partition]
+IntPartNDom.IntPartNDom_intpartndom__canonical__Order_BPOrder [in Combi.Combi.partition]
+IntPartNDom.IntPartNDom_intpartndom__canonical__Order_FinBPreorder [in Combi.Combi.partition]
+IntPartNDom.IntPartNDom_intpartndom__canonical__Order_BPreorder [in Combi.Combi.partition]
+IntPartNDom.IntPartNDom_intpartndom__canonical__ordtype_InhFinLattice [in Combi.Combi.partition]
+IntPartNDom.IntPartNDom_intpartndom__canonical__Order_FinLattice [in Combi.Combi.partition]
+IntPartNDom.IntPartNDom_intpartndom__canonical__Order_FinMeetSemilattice [in Combi.Combi.partition]
+IntPartNDom.IntPartNDom_intpartndom__canonical__ordtype_InhLattice [in Combi.Combi.partition]
+IntPartNDom.IntPartNDom_intpartndom__canonical__Order_Lattice [in Combi.Combi.partition]
+IntPartNDom.IntPartNDom_intpartndom__canonical__Order_MeetSemilattice [in Combi.Combi.partition]
+IntPartNDom.IntPartNDom_intpartndom__canonical__Order_FinJoinSemilattice [in Combi.Combi.partition]
+IntPartNDom.IntPartNDom_intpartndom__canonical__Order_JoinSemilattice [in Combi.Combi.partition]
+IntPartNDom.IntPartNDom_intpartndom__canonical__ordtype_InhFinPOrder [in Combi.Combi.partition]
+IntPartNDom.IntPartNDom_intpartndom__canonical__Order_FinPOrder [in Combi.Combi.partition]
+IntPartNDom.IntPartNDom_intpartndom__canonical__Order_FinPreorder [in Combi.Combi.partition]
+IntPartNDom.IntPartNDom_intpartndom__canonical__ordtype_InhPOrder [in Combi.Combi.partition]
+IntPartNDom.IntPartNDom_intpartndom__canonical__Order_POrder [in Combi.Combi.partition]
+IntPartNDom.IntPartNDom_intpartndom__canonical__Order_Preorder [in Combi.Combi.partition]
+IntPartNDom.IntPartNDom_intpartndom__canonical__ordtype_InhFinite [in Combi.Combi.partition]
+IntPartNDom.IntPartNDom_intpartndom__canonical__ordtype_Inhabited [in Combi.Combi.partition]
+IntPartNDom.IntPartNDom_intpartndom__canonical__fintype_Finite [in Combi.Combi.partition]
+IntPartNDom.IntPartNDom_intpartndom__canonical__choice_Countable [in Combi.Combi.partition]
+IntPartNDom.IntPartNDom_intpartndom__canonical__choice_Choice [in Combi.Combi.partition]
+IntPartNDom.IntPartNDom_intpartndom__canonical__eqtype_Equality [in Combi.Combi.partition]
+IntPartNDom.is_parttuple [in Combi.Combi.partition]
+IntPartNDom.join_intpartn [in Combi.Combi.partition]
+IntPartNDom.meet_intpartn [in Combi.Combi.partition]
+IntPartNDom.Order_POrder_MeetJoin_isLattice__to__Order_POrder_isMeetSemilattice [in Combi.Combi.partition]
+IntPartNDom.Order_POrder_MeetJoin_isLattice__to__Order_POrder_isJoinSemilattice [in Combi.Combi.partition]
+IntPartNDom.Order_Le_isPOrder__to__Order_isDuallyPreorder [in Combi.Combi.partition]
+IntPartNDom.Order_Le_isPOrder__to__Order_Preorder_isDuallyPOrder [in Combi.Combi.partition]
+IntPartNDom.ordtype_Inhabited__to__ordtype_isInhabited [in Combi.Combi.partition]
+IntPartNDom.parttuple [in Combi.Combi.partition]
+IntPartNDom.parttuple_minn [in Combi.Combi.partition]
+IntPartNDom.part_fromtuple [in Combi.Combi.partition]
+IntPartNLexi.eqtype_SubType__to__eqtype_isSub [in Combi.Combi.partition]
+IntPartNLexi.Exports.botEintpartnlexi [in Combi.Combi.partition]
+IntPartNLexi.Exports.leEintpartnlexi [in Combi.Combi.partition]
+IntPartNLexi.Exports.ltEintpartnlexi [in Combi.Combi.partition]
+IntPartNLexi.Exports.topEintpartnlexi [in Combi.Combi.partition]
+IntPartNLexi.fintype_Finite__to__fintype_isFinite [in Combi.Combi.partition]
+IntPartNLexi.fintype_Finite__to__eqtype_hasDecEq [in Combi.Combi.partition]
+IntPartNLexi.fintype_Finite__to__choice_Choice_isCountable [in Combi.Combi.partition]
+IntPartNLexi.fintype_Finite__to__choice_hasChoice [in Combi.Combi.partition]
+IntPartNLexi.HB_unnamed_mixin_69 [in Combi.Combi.partition]
+IntPartNLexi.HB_unnamed_factory_67 [in Combi.Combi.partition]
+IntPartNLexi.HB_unnamed_factory_65 [in Combi.Combi.partition]
+IntPartNLexi.HB_unnamed_factory_63 [in Combi.Combi.partition]
+IntPartNLexi.HB_unnamed_mixin_62 [in Combi.Combi.partition]
+IntPartNLexi.HB_unnamed_mixin_61 [in Combi.Combi.partition]
+IntPartNLexi.HB_unnamed_mixin_60 [in Combi.Combi.partition]
+IntPartNLexi.HB_unnamed_mixin_59 [in Combi.Combi.partition]
+IntPartNLexi.HB_unnamed_mixin_58 [in Combi.Combi.partition]
+IntPartNLexi.HB_unnamed_mixin_57 [in Combi.Combi.partition]
+IntPartNLexi.HB_unnamed_factory_48 [in Combi.Combi.partition]
+IntPartNLexi.HB_unnamed_mixin_47 [in Combi.Combi.partition]
+IntPartNLexi.HB_unnamed_mixin_46 [in Combi.Combi.partition]
+IntPartNLexi.HB_unnamed_mixin_45 [in Combi.Combi.partition]
+IntPartNLexi.HB_unnamed_mixin_44 [in Combi.Combi.partition]
+IntPartNLexi.HB_unnamed_factory_39 [in Combi.Combi.partition]
+IntPartNLexi.HB_unnamed_mixin_38 [in Combi.Combi.partition]
+IntPartNLexi.HB_unnamed_factory_36 [in Combi.Combi.partition]
+IntPartNLexi.intpartnlexi [in Combi.Combi.partition]
+IntPartNLexi.IntPartNLexi_intpartnlexi__canonical__ordtype_InhFinOrder [in Combi.Combi.partition]
+IntPartNLexi.IntPartNLexi_intpartnlexi__canonical__ordtype_InhFinLattice [in Combi.Combi.partition]
+IntPartNLexi.IntPartNLexi_intpartnlexi__canonical__ordtype_InhFinPOrder [in Combi.Combi.partition]
+IntPartNLexi.IntPartNLexi_intpartnlexi__canonical__ordtype_InhFinite [in Combi.Combi.partition]
+IntPartNLexi.IntPartNLexi_intpartnlexi__canonical__ordtype_InhOrder [in Combi.Combi.partition]
+IntPartNLexi.IntPartNLexi_intpartnlexi__canonical__ordtype_InhTBLattice [in Combi.Combi.partition]
+IntPartNLexi.IntPartNLexi_intpartnlexi__canonical__ordtype_InhLattice [in Combi.Combi.partition]
+IntPartNLexi.IntPartNLexi_intpartnlexi__canonical__ordtype_InhPOrder [in Combi.Combi.partition]
+IntPartNLexi.IntPartNLexi_intpartnlexi__canonical__ordtype_Inhabited [in Combi.Combi.partition]
+IntPartNLexi.IntPartNLexi_intpartnlexi__canonical__Order_FinTBTotal [in Combi.Combi.partition]
+IntPartNLexi.IntPartNLexi_intpartnlexi__canonical__Order_FinTBDistrLattice [in Combi.Combi.partition]
+IntPartNLexi.IntPartNLexi_intpartnlexi__canonical__Order_FinTBLattice [in Combi.Combi.partition]
+IntPartNLexi.IntPartNLexi_intpartnlexi__canonical__Order_FinTBPOrder [in Combi.Combi.partition]
+IntPartNLexi.IntPartNLexi_intpartnlexi__canonical__Order_FinTBPreorder [in Combi.Combi.partition]
+IntPartNLexi.IntPartNLexi_intpartnlexi__canonical__Order_FinTJoinSemilattice [in Combi.Combi.partition]
+IntPartNLexi.IntPartNLexi_intpartnlexi__canonical__Order_FinTPOrder [in Combi.Combi.partition]
+IntPartNLexi.IntPartNLexi_intpartnlexi__canonical__Order_FinTPreorder [in Combi.Combi.partition]
+IntPartNLexi.IntPartNLexi_intpartnlexi__canonical__Order_TBTotal [in Combi.Combi.partition]
+IntPartNLexi.IntPartNLexi_intpartnlexi__canonical__Order_TBDistrLattice [in Combi.Combi.partition]
+IntPartNLexi.IntPartNLexi_intpartnlexi__canonical__Order_TBLattice [in Combi.Combi.partition]
+IntPartNLexi.IntPartNLexi_intpartnlexi__canonical__Order_TBJoinSemilattice [in Combi.Combi.partition]
+IntPartNLexi.IntPartNLexi_intpartnlexi__canonical__Order_TBMeetSemilattice [in Combi.Combi.partition]
+IntPartNLexi.IntPartNLexi_intpartnlexi__canonical__Order_TBPOrder [in Combi.Combi.partition]
+IntPartNLexi.IntPartNLexi_intpartnlexi__canonical__Order_TBPreorder [in Combi.Combi.partition]
+IntPartNLexi.IntPartNLexi_intpartnlexi__canonical__Order_TTotal [in Combi.Combi.partition]
+IntPartNLexi.IntPartNLexi_intpartnlexi__canonical__Order_TDistrLattice [in Combi.Combi.partition]
+IntPartNLexi.IntPartNLexi_intpartnlexi__canonical__Order_TLattice [in Combi.Combi.partition]
+IntPartNLexi.IntPartNLexi_intpartnlexi__canonical__Order_TJoinSemilattice [in Combi.Combi.partition]
+IntPartNLexi.IntPartNLexi_intpartnlexi__canonical__Order_TMeetSemilattice [in Combi.Combi.partition]
+IntPartNLexi.IntPartNLexi_intpartnlexi__canonical__Order_TPOrder [in Combi.Combi.partition]
+IntPartNLexi.IntPartNLexi_intpartnlexi__canonical__Order_TPreorder [in Combi.Combi.partition]
+IntPartNLexi.IntPartNLexi_intpartnlexi__canonical__Order_BTotal [in Combi.Combi.partition]
+IntPartNLexi.IntPartNLexi_intpartnlexi__canonical__Order_BDistrLattice [in Combi.Combi.partition]
+IntPartNLexi.IntPartNLexi_intpartnlexi__canonical__Order_BLattice [in Combi.Combi.partition]
+IntPartNLexi.IntPartNLexi_intpartnlexi__canonical__Order_BJoinSemilattice [in Combi.Combi.partition]
+IntPartNLexi.IntPartNLexi_intpartnlexi__canonical__Order_FinBMeetSemilattice [in Combi.Combi.partition]
+IntPartNLexi.IntPartNLexi_intpartnlexi__canonical__Order_BMeetSemilattice [in Combi.Combi.partition]
+IntPartNLexi.IntPartNLexi_intpartnlexi__canonical__Order_FinBPOrder [in Combi.Combi.partition]
+IntPartNLexi.IntPartNLexi_intpartnlexi__canonical__Order_BPOrder [in Combi.Combi.partition]
+IntPartNLexi.IntPartNLexi_intpartnlexi__canonical__Order_FinBPreorder [in Combi.Combi.partition]
+IntPartNLexi.IntPartNLexi_intpartnlexi__canonical__Order_BPreorder [in Combi.Combi.partition]
+IntPartNLexi.IntPartNLexi_intpartnlexi__canonical__Order_FinTotal [in Combi.Combi.partition]
+IntPartNLexi.IntPartNLexi_intpartnlexi__canonical__Order_Total [in Combi.Combi.partition]
+IntPartNLexi.IntPartNLexi_intpartnlexi__canonical__Order_FinDistrLattice [in Combi.Combi.partition]
+IntPartNLexi.IntPartNLexi_intpartnlexi__canonical__Order_DistrLattice [in Combi.Combi.partition]
+IntPartNLexi.IntPartNLexi_intpartnlexi__canonical__Order_FinLattice [in Combi.Combi.partition]
+IntPartNLexi.IntPartNLexi_intpartnlexi__canonical__Order_FinJoinSemilattice [in Combi.Combi.partition]
+IntPartNLexi.IntPartNLexi_intpartnlexi__canonical__Order_Lattice [in Combi.Combi.partition]
+IntPartNLexi.IntPartNLexi_intpartnlexi__canonical__Order_JoinSemilattice [in Combi.Combi.partition]
+IntPartNLexi.IntPartNLexi_intpartnlexi__canonical__Order_FinMeetSemilattice [in Combi.Combi.partition]
+IntPartNLexi.IntPartNLexi_intpartnlexi__canonical__Order_MeetSemilattice [in Combi.Combi.partition]
+IntPartNLexi.IntPartNLexi_intpartnlexi__canonical__Order_FinPOrder [in Combi.Combi.partition]
+IntPartNLexi.IntPartNLexi_intpartnlexi__canonical__Order_POrder [in Combi.Combi.partition]
+IntPartNLexi.IntPartNLexi_intpartnlexi__canonical__Order_FinPreorder [in Combi.Combi.partition]
+IntPartNLexi.IntPartNLexi_intpartnlexi__canonical__Order_Preorder [in Combi.Combi.partition]
+IntPartNLexi.IntPartNLexi_intpartnlexi__canonical__fintype_SubFinite [in Combi.Combi.partition]
+IntPartNLexi.IntPartNLexi_intpartnlexi__canonical__fintype_Finite [in Combi.Combi.partition]
+IntPartNLexi.IntPartNLexi_intpartnlexi__canonical__choice_SubCountable [in Combi.Combi.partition]
+IntPartNLexi.IntPartNLexi_intpartnlexi__canonical__choice_Countable [in Combi.Combi.partition]
+IntPartNLexi.IntPartNLexi_intpartnlexi__canonical__choice_SubChoice [in Combi.Combi.partition]
+IntPartNLexi.IntPartNLexi_intpartnlexi__canonical__choice_Choice [in Combi.Combi.partition]
+IntPartNLexi.IntPartNLexi_intpartnlexi__canonical__eqtype_SubEquality [in Combi.Combi.partition]
+IntPartNLexi.IntPartNLexi_intpartnlexi__canonical__eqtype_Equality [in Combi.Combi.partition]
+IntPartNLexi.IntPartNLexi_intpartnlexi__canonical__eqtype_SubType [in Combi.Combi.partition]
+IntPartNLexi.Order_Total__to__Order_DistrLattice_isTotal [in Combi.Combi.partition]
+IntPartNLexi.Order_Total__to__Order_Lattice_isDistributive [in Combi.Combi.partition]
+IntPartNLexi.Order_Total__to__Order_POrder_isJoinSemilattice [in Combi.Combi.partition]
+IntPartNLexi.Order_Total__to__Order_POrder_isMeetSemilattice [in Combi.Combi.partition]
+IntPartNLexi.Order_Total__to__Order_Preorder_isDuallyPOrder [in Combi.Combi.partition]
+IntPartNLexi.Order_Total__to__Order_isDuallyPreorder [in Combi.Combi.partition]
+IntPartNLexi.ordtype_isInhabitedType__to__ordtype_isInhabited [in Combi.Combi.partition]
+intpartnsk_nb [in Combi.Combi.partition]
+intpartns_nb [in Combi.Combi.partition]
+intpartn_of_mon [in Combi.MPoly.homogsym]
+intpartn_nb [in Combi.Combi.partition]
+intpart_of_mon [in Combi.MPoly.homogsym]
+intpart_of_intpartn [in Combi.Combi.partition]
+invbump [in Combi.LRrule.Schensted]
+invbumped [in Combi.LRrule.Schensted]
+invbumprow [in Combi.LRrule.Schensted]
+invcont_size [in Combi.Basic.congr]
+invcont_perm [in Combi.Basic.congr]
+invcont_congr [in Combi.Basic.congr]
+invins [in Combi.LRrule.Schensted]
+invinstabnrow [in Combi.LRrule.Schensted]
+invseq [in Combi.Combi.std]
+invset [in Combi.SymGroup.presentSn]
+invstd [in Combi.Combi.std]
+in_homsym [in Combi.MPoly.homogsym]
+in_skew [in Combi.Combi.partition]
+in_shape [in Combi.Combi.partition]
+in_hook [in Combi.HookFormula.hook]
+Iord [in ALEA.Ccpo]
+irrSG [in Combi.SymGroup.Frobenius_char]
+isglb [in ALEA.Ccpo]
+ishift [in ALEA.Ccpo]
+ishomogsym1 [in Combi.MPoly.homogsym]
+isInhabitedType.phant_axioms [in Combi.Basic.ordtype]
+isInhabitedType.phant_Build [in Combi.Basic.ordtype]
+isInhabited.identity_builder [in Combi.Basic.ordtype]
+isInhabited.phant_axioms [in Combi.Basic.ordtype]
+isInhabited.phant_Build [in Combi.Basic.ordtype]
+IsoBottom.IsoBottom_T__canonical__Order_POrder [in Combi.Combi.composition]
+IsoBottom.IsoBottom_T__canonical__Order_Preorder [in Combi.Combi.composition]
+IsoBottom.IsoBottom_T__canonical__choice_Choice [in Combi.Combi.composition]
+IsoBottom.IsoBottom_T__canonical__eqtype_Equality [in Combi.Combi.composition]
+IsoBottom.phant_axioms [in Combi.Combi.composition]
+IsoBottom.phant_Build [in Combi.Combi.composition]
+IsoTop.IsoTop_T__canonical__Order_POrder [in Combi.Combi.composition]
+IsoTop.IsoTop_T__canonical__Order_Preorder [in Combi.Combi.composition]
+IsoTop.IsoTop_T__canonical__choice_Choice [in Combi.Combi.composition]
+IsoTop.IsoTop_T__canonical__eqtype_Equality [in Combi.Combi.composition]
+IsoTop.phant_axioms [in Combi.Combi.composition]
+IsoTop.phant_Build [in Combi.Combi.composition]
+is_std_of_n [in Combi.Combi.std]
+is_std [in Combi.Combi.std]
+is_homsym [in Combi.MPoly.homogsym]
+is_part_of_nsk [in Combi.Combi.partition]
+is_part_of_ns [in Combi.Combi.partition]
+is_part_of_n [in Combi.Combi.partition]
+is_add_corner [in Combi.Combi.partition]
+is_rem_corner [in Combi.Combi.partition]
+is_part [in Combi.Combi.partition]
+is_Tamari [in Combi.Combi.bintree]
+is_skew_tableau [in Combi.Combi.skewtab]
+is_skew_yam [in Combi.Combi.skewtab]
+is_RStabpair [in Combi.LRrule.Schensted]
+is_RSpair [in Combi.LRrule.Schensted]
+is_trace [in Combi.HookFormula.hook]
+is_stdtab_of_n [in Combi.Combi.stdtab]
+is_stdtab_of_shape [in Combi.Combi.stdtab]
+is_stdtab [in Combi.Combi.stdtab]
+is_tab_of_shape [in Combi.Combi.tableau]
+is_tableau [in Combi.Combi.tableau]
+is_row_cat2 [in Combi.Combi.tableau]
+is_row_drop [in Combi.Combi.tableau]
+is_row_take [in Combi.Combi.tableau]
+is_row_last [in Combi.Combi.tableau]
+is_row_rconsK [in Combi.Combi.tableau]
+is_row_rcons [in Combi.Combi.tableau]
+is_row_consK [in Combi.Combi.tableau]
+is_row_cons [in Combi.Combi.tableau]
+is_rowP [in Combi.Combi.tableau]
+is_row1P [in Combi.Combi.tableau]
+is_skew_reshape_tableau [in Combi.LRrule.therule]
+is_yam_of_size [in Combi.Combi.Yamanouchi]
+is_yam_of_eval [in Combi.Combi.Yamanouchi]
+is_yam [in Combi.Combi.Yamanouchi]
+is_code_of_size [in Combi.SymGroup.presentSn]
+is_comp_of_n [in Combi.Combi.composition]
+is_comp [in Combi.Combi.composition]
+Iter [in ALEA.Ccpo]
+iter [in ALEA.Ccpo]
+iter_ [in ALEA.Ccpo]
+

J

+join_tab [in Combi.Combi.skewtab]
+join_Dyck [in Combi.Combi.Dyckword]
+

K

+Kostka [in Combi.MPoly.Schur_altdef]
+KostkaInv [in Combi.MPoly.Schur_altdef]
+KostkaMon [in Combi.MPoly.Schur_altdef]
+KostkaTab [in Combi.MPoly.Schur_altdef]
+Kostka_expl3 [in Combi.MPoly.Schur_altdef]
+Kostka_expl2 [in Combi.MPoly.Schur_altdef]
+Kostka_expl1 [in Combi.MPoly.Schur_altdef]
+Kostka_rec [in Combi.MPoly.Schur_altdef]
+ksupp [in Combi.LRrule.Greene]
+ksupp_inj [in Combi.LRrule.Greene]
+

L

+langQ [in Combi.LRrule.shuffle]
+last_big [in Combi.Combi.stdtab]
+leftcomb [in Combi.Combi.bintree]
+leftcombsz [in Combi.Combi.bintree]
+left_branch [in Combi.Combi.bintree]
+leg_length [in Combi.HookFormula.hook]
+length [in Combi.SymGroup.presentSn]
+LeqGeqOrder.anti_geq [in Combi.SSRcomplements.sorted]
+LeqGeqOrder.geq_trans [in Combi.SSRcomplements.sorted]
+LeqGeqOrder.geq_total [in Combi.SSRcomplements.sorted]
+LeqGeqOrder.geq_refl [in Combi.SSRcomplements.sorted]
+LeqGeqOrder.gtn_irr [in Combi.SSRcomplements.sorted]
+LeqGeqOrder.gtn_trans [in Combi.SSRcomplements.sorted]
+LeqGeqOrder.ltn_irr [in Combi.SSRcomplements.sorted]
+linvseq [in Combi.Combi.std]
+LRcoeff [in Combi.LRrule.implem]
+LRsupport [in Combi.LRrule.freeSchur]
+LRtab_coeff [in Combi.LRrule.freeSchur]
+LRtab_set [in Combi.LRrule.freeSchur]
+LRtriple_sind [in Combi.LRrule.shuffle]
+LRtriple_ind [in Combi.LRrule.shuffle]
+LRyamtab_list [in Combi.LRrule.implem]
+LRyamtab_count_rec [in Combi.LRrule.implem]
+LRyamtab_list_rec [in Combi.LRrule.implem]
+LRyam_compute [in Combi.LRrule.therule]
+LRyam_enum [in Combi.LRrule.therule]
+LRyam_coeff [in Combi.LRrule.therule]
+LRyam_set [in Combi.LRrule.therule]
+LRyam_list [in Combi.LRrule.implem]
+lsh_rec [in Combi.LRrule.Greene]
+lsplit_rec [in Combi.LRrule.Greene]
+Lub [in ALEA.Ccpo]
+lub_fun [in ALEA.Ccpo]
+

M

+M [in ALEA.Qmeasure]
+map_homsym [in Combi.MPoly.homogsym]
+map_finer [in Combi.Combi.setpartition]
+map_sympoly [in Combi.MPoly.sympoly]
+Mat [in Combi.Basic.unitriginv]
+maxL [in Combi.Basic.ordtype]
+maxperm [in Combi.SymGroup.presentSn]
+MF [in ALEA.Qmeasure]
+mfinite [in ALEA.Qmeasure]
+mfun2 [in ALEA.Ccpo]
+mindropeq [in Combi.Combi.skewpart]
+minh [in Combi.Combi.Dyckword]
+mininspred [in Combi.LRrule.Schensted]
+Minv [in Combi.Basic.unitriginv]
+MLet [in ALEA.Qmeasure]
+Mlet [in ALEA.Qmeasure]
+MN_coeff_fast [in Combi.MPoly.MurnaghanNakayama]
+MN_coeff_rec [in Combi.MPoly.MurnaghanNakayama]
+MN_coeff [in Combi.MPoly.MurnaghanNakayama]
+monsY [in Combi.MPoly.Cauchy]
+monX [in Combi.MPoly.Cauchy]
+mon_ord_equiv [in ALEA.Ccpo]
+mon_comp [in ALEA.Ccpo]
+mon_fun_subst [in ALEA.Ccpo]
+mon2 [in ALEA.Ccpo]
+morph_of_tinj [in Combi.SymGroup.towerSn]
+mpart [in Combi.MPoly.antisym]
+mseq_cte [in ALEA.Ccpo]
+mseq_lift_right [in ALEA.Ccpo]
+mseq_lift_left [in ALEA.Ccpo]
+mshift [in ALEA.Ccpo]
+mstar [in ALEA.Qmeasure]
+multinomial [in Combi.Combi.multinomial]
+multinomial_rec [in Combi.Combi.multinomial]
+Munit [in ALEA.Qmeasure]
+munit [in ALEA.Qmeasure]
+

N

+nat_repr [in Combi.SymGroup.reprSn]
+nat_mx [in Combi.SymGroup.reprSn]
+ncfuniCT [in Combi.SymGroup.towerSn]
+neig4 [in Combi.Combi.skewpart]
+neig4box [in Combi.Combi.skewpart]
+nil_Dyck [in Combi.Combi.Dyckword]
+NoSetContainingBoth.Q [in Combi.LRrule.Greene_inv]
+NoSetContainingBoth.swap_set [in Combi.LRrule.Greene_inv]
+

O

+Oge [in ALEA.Ccpo]
+Olt [in ALEA.Ccpo]
+omegahomsym [in Combi.MPoly.homogsym]
+omegasf [in Combi.MPoly.sympoly]
+one_letter_choices [in Combi.LRrule.implem]
+orc [in ALEA.Misc]
+Order_dual__canonical__ordtype_InhFinOrder [in Combi.Basic.ordtype]
+Order_dual__canonical__ordtype_InhFinLattice [in Combi.Basic.ordtype]
+Order_dual__canonical__ordtype_InhFinPOrder [in Combi.Basic.ordtype]
+Order_dual__canonical__ordtype_InhFinite [in Combi.Basic.ordtype]
+Order_dual__canonical__ordtype_InhOrder [in Combi.Basic.ordtype]
+Order_dual__canonical__ordtype_InhTBLattice [in Combi.Basic.ordtype]
+Order_dual__canonical__ordtype_InhLattice [in Combi.Basic.ordtype]
+Order_dual__canonical__ordtype_InhPOrder [in Combi.Basic.ordtype]
+Order_dual__canonical__ordtype_Inhabited [in Combi.Basic.ordtype]
+ordtree_ordtreesz__canonical__fintype_SubFinite [in Combi.Combi.ordtree]
+ordtree_ordtreesz__canonical__fintype_Finite [in Combi.Combi.ordtree]
+ordtree_ordtreesz__canonical__choice_SubCountable [in Combi.Combi.ordtree]
+ordtree_ordtreesz__canonical__choice_Countable [in Combi.Combi.ordtree]
+ordtree_ordtreesz__canonical__choice_SubChoice [in Combi.Combi.ordtree]
+ordtree_ordtreesz__canonical__choice_Choice [in Combi.Combi.ordtree]
+ordtree_ordtreesz__canonical__eqtype_SubEquality [in Combi.Combi.ordtree]
+ordtree_ordtreesz__canonical__eqtype_Equality [in Combi.Combi.ordtree]
+ordtree_ordtreesz__canonical__eqtype_SubType [in Combi.Combi.ordtree]
+ordtree_ordtree__canonical__choice_Countable [in Combi.Combi.ordtree]
+ordtree_ordtree__canonical__choice_Choice [in Combi.Combi.ordtree]
+ordtree_ordtree__canonical__eqtype_Equality [in Combi.Combi.ordtree]
+ordtype_isInhabitedType__to__ordtype_isInhabited__34 [in Combi.Combi.partition]
+ordtype_isInhabitedType__to__ordtype_isInhabited [in Combi.Combi.partition]
+ordtype_isInhabitedType__to__ordtype_isInhabited [in Combi.Combi.setpartition]
+ordtype_InhFinOrder__to__Order_DistrLattice_isTotal [in Combi.Basic.ordtype]
+ordtype_InhFinOrder__to__Order_Lattice_isDistributive [in Combi.Basic.ordtype]
+ordtype_InhFinOrder__to__Order_POrder_isJoinSemilattice [in Combi.Basic.ordtype]
+ordtype_InhFinOrder__to__Order_POrder_isMeetSemilattice [in Combi.Basic.ordtype]
+ordtype_InhFinOrder__to__Order_Preorder_isDuallyPOrder [in Combi.Basic.ordtype]
+ordtype_InhFinOrder__to__Order_isDuallyPreorder [in Combi.Basic.ordtype]
+ordtype_InhFinOrder__to__fintype_isFinite [in Combi.Basic.ordtype]
+ordtype_InhFinOrder__to__eqtype_hasDecEq [in Combi.Basic.ordtype]
+ordtype_InhFinOrder__to__choice_hasChoice [in Combi.Basic.ordtype]
+ordtype_InhFinOrder__to__choice_Choice_isCountable [in Combi.Basic.ordtype]
+ordtype_InhFinOrder__to__ordtype_isInhabited [in Combi.Basic.ordtype]
+ordtype_InhFinLattice__to__Order_POrder_isJoinSemilattice [in Combi.Basic.ordtype]
+ordtype_InhFinLattice__to__Order_POrder_isMeetSemilattice [in Combi.Basic.ordtype]
+ordtype_InhFinLattice__to__Order_Preorder_isDuallyPOrder [in Combi.Basic.ordtype]
+ordtype_InhFinLattice__to__Order_isDuallyPreorder [in Combi.Basic.ordtype]
+ordtype_InhFinLattice__to__fintype_isFinite [in Combi.Basic.ordtype]
+ordtype_InhFinLattice__to__eqtype_hasDecEq [in Combi.Basic.ordtype]
+ordtype_InhFinLattice__to__choice_hasChoice [in Combi.Basic.ordtype]
+ordtype_InhFinLattice__to__choice_Choice_isCountable [in Combi.Basic.ordtype]
+ordtype_InhFinLattice__to__ordtype_isInhabited [in Combi.Basic.ordtype]
+ordtype_InhFinPOrder__to__fintype_isFinite [in Combi.Basic.ordtype]
+ordtype_InhFinPOrder__to__Order_Preorder_isDuallyPOrder [in Combi.Basic.ordtype]
+ordtype_InhFinPOrder__to__Order_isDuallyPreorder [in Combi.Basic.ordtype]
+ordtype_InhFinPOrder__to__eqtype_hasDecEq [in Combi.Basic.ordtype]
+ordtype_InhFinPOrder__to__choice_Choice_isCountable [in Combi.Basic.ordtype]
+ordtype_InhFinPOrder__to__choice_hasChoice [in Combi.Basic.ordtype]
+ordtype_InhFinPOrder__to__ordtype_isInhabited [in Combi.Basic.ordtype]
+ordtype_InhOrder__to__Order_DistrLattice_isTotal [in Combi.Basic.ordtype]
+ordtype_InhOrder__to__Order_Lattice_isDistributive [in Combi.Basic.ordtype]
+ordtype_InhOrder__to__Order_POrder_isJoinSemilattice [in Combi.Basic.ordtype]
+ordtype_InhOrder__to__Order_POrder_isMeetSemilattice [in Combi.Basic.ordtype]
+ordtype_InhOrder__to__Order_Preorder_isDuallyPOrder [in Combi.Basic.ordtype]
+ordtype_InhOrder__to__Order_isDuallyPreorder [in Combi.Basic.ordtype]
+ordtype_InhOrder__to__eqtype_hasDecEq [in Combi.Basic.ordtype]
+ordtype_InhOrder__to__choice_hasChoice [in Combi.Basic.ordtype]
+ordtype_InhOrder__to__ordtype_isInhabited [in Combi.Basic.ordtype]
+ordtype_InhTBLattice__to__Order_POrder_isJoinSemilattice [in Combi.Basic.ordtype]
+ordtype_InhTBLattice__to__Order_POrder_isMeetSemilattice [in Combi.Basic.ordtype]
+ordtype_InhTBLattice__to__Order_Preorder_isDuallyPOrder [in Combi.Basic.ordtype]
+ordtype_InhTBLattice__to__Order_hasBottom [in Combi.Basic.ordtype]
+ordtype_InhTBLattice__to__Order_hasTop [in Combi.Basic.ordtype]
+ordtype_InhTBLattice__to__Order_isDuallyPreorder [in Combi.Basic.ordtype]
+ordtype_InhTBLattice__to__eqtype_hasDecEq [in Combi.Basic.ordtype]
+ordtype_InhTBLattice__to__choice_hasChoice [in Combi.Basic.ordtype]
+ordtype_InhTBLattice__to__ordtype_isInhabited [in Combi.Basic.ordtype]
+ordtype_InhLattice__to__Order_POrder_isJoinSemilattice [in Combi.Basic.ordtype]
+ordtype_InhLattice__to__Order_POrder_isMeetSemilattice [in Combi.Basic.ordtype]
+ordtype_InhLattice__to__Order_Preorder_isDuallyPOrder [in Combi.Basic.ordtype]
+ordtype_InhLattice__to__Order_isDuallyPreorder [in Combi.Basic.ordtype]
+ordtype_InhLattice__to__eqtype_hasDecEq [in Combi.Basic.ordtype]
+ordtype_InhLattice__to__choice_hasChoice [in Combi.Basic.ordtype]
+ordtype_InhLattice__to__ordtype_isInhabited [in Combi.Basic.ordtype]
+ordtype_InhPOrder__to__Order_Preorder_isDuallyPOrder [in Combi.Basic.ordtype]
+ordtype_InhPOrder__to__Order_isDuallyPreorder [in Combi.Basic.ordtype]
+ordtype_InhPOrder__to__eqtype_hasDecEq [in Combi.Basic.ordtype]
+ordtype_InhPOrder__to__choice_hasChoice [in Combi.Basic.ordtype]
+ordtype_InhPOrder__to__ordtype_isInhabited [in Combi.Basic.ordtype]
+ordtype_isInhabitedType__to__ordtype_isInhabited__51 [in Combi.Basic.ordtype]
+ordtype_Inhabited__to__eqtype_hasDecEq [in Combi.Basic.ordtype]
+ordtype_Inhabited__to__choice_hasChoice [in Combi.Basic.ordtype]
+ordtype_Inhabited__to__ordtype_isInhabited [in Combi.Basic.ordtype]
+ordtype_isInhabitedType__to__ordtype_isInhabited__30 [in Combi.Basic.ordtype]
+ordtype_isInhabitedType__to__ordtype_isInhabited__25 [in Combi.Basic.ordtype]
+ordtype_isInhabitedType__to__ordtype_isInhabited__20 [in Combi.Basic.ordtype]
+ordtype_isInhabitedType__to__ordtype_isInhabited__15 [in Combi.Basic.ordtype]
+ordtype_isInhabitedType__to__ordtype_isInhabited__11 [in Combi.Basic.ordtype]
+ordtype_isInhabitedType__to__ordtype_isInhabited [in Combi.Basic.ordtype]
+ord_to_bintree [in Combi.Combi.ordtree]
+outer_shape [in Combi.Combi.partition]
+

P

+pad [in Combi.Combi.partition]
+partdom [in Combi.Combi.partition]
+partdomsh [in Combi.Combi.partition]
+partition_box_skew__canonical__fintype_SubFinite [in Combi.Combi.partition]
+partition_box_skew__canonical__fintype_Finite [in Combi.Combi.partition]
+partition_box_skew__canonical__choice_SubCountable [in Combi.Combi.partition]
+partition_box_skew__canonical__choice_Countable [in Combi.Combi.partition]
+partition_box_skew__canonical__choice_SubChoice [in Combi.Combi.partition]
+partition_box_skew__canonical__choice_Choice [in Combi.Combi.partition]
+partition_box_skew__canonical__eqtype_SubEquality [in Combi.Combi.partition]
+partition_box_skew__canonical__eqtype_Equality [in Combi.Combi.partition]
+partition_box_skew__canonical__eqtype_SubType [in Combi.Combi.partition]
+partition_intpartn__canonical__ordtype_InhFinite [in Combi.Combi.partition]
+partition_intpartn__canonical__ordtype_Inhabited [in Combi.Combi.partition]
+partition_intpartn__canonical__fintype_SubFinite [in Combi.Combi.partition]
+partition_intpartn__canonical__fintype_Finite [in Combi.Combi.partition]
+partition_intpartn__canonical__choice_SubCountable [in Combi.Combi.partition]
+partition_intpartn__canonical__choice_Countable [in Combi.Combi.partition]
+partition_intpartn__canonical__choice_SubChoice [in Combi.Combi.partition]
+partition_intpartn__canonical__choice_Choice [in Combi.Combi.partition]
+partition_intpartn__canonical__eqtype_SubEquality [in Combi.Combi.partition]
+partition_intpartn__canonical__eqtype_Equality [in Combi.Combi.partition]
+partition_intpartn__canonical__eqtype_SubType [in Combi.Combi.partition]
+partition_intpart__canonical__ordtype_Inhabited [in Combi.Combi.partition]
+partition_intpart__canonical__choice_SubCountable [in Combi.Combi.partition]
+partition_intpart__canonical__choice_Countable [in Combi.Combi.partition]
+partition_intpart__canonical__choice_SubChoice [in Combi.Combi.partition]
+partition_intpart__canonical__choice_Choice [in Combi.Combi.partition]
+partition_intpart__canonical__eqtype_SubEquality [in Combi.Combi.partition]
+partition_intpart__canonical__eqtype_Equality [in Combi.Combi.partition]
+partition_intpart__canonical__eqtype_SubType [in Combi.Combi.partition]
+partm [in Combi.MPoly.antisym]
+partnCT [in Combi.SymGroup.cycletype]
+partn_of_compn [in Combi.Combi.composition]
+partsums [in Combi.Combi.composition]
+permCT [in Combi.SymGroup.cycletype]
+permcycles [in Combi.SymGroup.permcent]
+permcycles_morphism [in Combi.SymGroup.permcent]
+PermLattice.HB_unnamed_factory_22 [in Combi.SymGroup.weak_order]
+PermLattice.HB_unnamed_factory_20 [in Combi.SymGroup.weak_order]
+PermLattice.HB_unnamed_mixin_19 [in Combi.SymGroup.weak_order]
+PermLattice.HB_unnamed_mixin_18 [in Combi.SymGroup.weak_order]
+PermLattice.HB_unnamed_factory_15 [in Combi.SymGroup.weak_order]
+PermLattice.infperm [in Combi.SymGroup.weak_order]
+PermLattice.Order_POrder_MeetJoin_isLattice__to__Order_POrder_isMeetSemilattice [in Combi.SymGroup.weak_order]
+PermLattice.Order_POrder_MeetJoin_isLattice__to__Order_POrder_isJoinSemilattice [in Combi.SymGroup.weak_order]
+PermLattice.perm_perm_of__canonical__Order_FinTBLattice [in Combi.SymGroup.weak_order]
+PermLattice.perm_perm_of__canonical__Order_FinTBPOrder [in Combi.SymGroup.weak_order]
+PermLattice.perm_perm_of__canonical__Order_FinTBPreorder [in Combi.SymGroup.weak_order]
+PermLattice.perm_perm_of__canonical__Order_FinTJoinSemilattice [in Combi.SymGroup.weak_order]
+PermLattice.perm_perm_of__canonical__Order_FinTPOrder [in Combi.SymGroup.weak_order]
+PermLattice.perm_perm_of__canonical__Order_FinTPreorder [in Combi.SymGroup.weak_order]
+PermLattice.perm_perm_of__canonical__Order_TBLattice [in Combi.SymGroup.weak_order]
+PermLattice.perm_perm_of__canonical__Order_TBJoinSemilattice [in Combi.SymGroup.weak_order]
+PermLattice.perm_perm_of__canonical__Order_TBMeetSemilattice [in Combi.SymGroup.weak_order]
+PermLattice.perm_perm_of__canonical__Order_TBPOrder [in Combi.SymGroup.weak_order]
+PermLattice.perm_perm_of__canonical__Order_TBPreorder [in Combi.SymGroup.weak_order]
+PermLattice.perm_perm_of__canonical__Order_TLattice [in Combi.SymGroup.weak_order]
+PermLattice.perm_perm_of__canonical__Order_TJoinSemilattice [in Combi.SymGroup.weak_order]
+PermLattice.perm_perm_of__canonical__Order_TMeetSemilattice [in Combi.SymGroup.weak_order]
+PermLattice.perm_perm_of__canonical__Order_TPOrder [in Combi.SymGroup.weak_order]
+PermLattice.perm_perm_of__canonical__Order_TPreorder [in Combi.SymGroup.weak_order]
+PermLattice.perm_perm_of__canonical__Order_BLattice [in Combi.SymGroup.weak_order]
+PermLattice.perm_perm_of__canonical__Order_BJoinSemilattice [in Combi.SymGroup.weak_order]
+PermLattice.perm_perm_of__canonical__Order_FinBMeetSemilattice [in Combi.SymGroup.weak_order]
+PermLattice.perm_perm_of__canonical__Order_BMeetSemilattice [in Combi.SymGroup.weak_order]
+PermLattice.perm_perm_of__canonical__Order_FinBPOrder [in Combi.SymGroup.weak_order]
+PermLattice.perm_perm_of__canonical__Order_BPOrder [in Combi.SymGroup.weak_order]
+PermLattice.perm_perm_of__canonical__Order_FinBPreorder [in Combi.SymGroup.weak_order]
+PermLattice.perm_perm_of__canonical__Order_BPreorder [in Combi.SymGroup.weak_order]
+PermLattice.perm_perm_of__canonical__Order_FinLattice [in Combi.SymGroup.weak_order]
+PermLattice.perm_perm_of__canonical__Order_FinMeetSemilattice [in Combi.SymGroup.weak_order]
+PermLattice.perm_perm_of__canonical__Order_Lattice [in Combi.SymGroup.weak_order]
+PermLattice.perm_perm_of__canonical__Order_MeetSemilattice [in Combi.SymGroup.weak_order]
+PermLattice.perm_perm_of__canonical__Order_FinJoinSemilattice [in Combi.SymGroup.weak_order]
+PermLattice.perm_perm_of__canonical__Order_JoinSemilattice [in Combi.SymGroup.weak_order]
+PermLattice.supperm [in Combi.SymGroup.weak_order]
+permutedact [in Combi.Combi.permuted]
+permuted_action [in Combi.Combi.permuted]
+permuted_permuted__canonical__fintype_SubFinite [in Combi.Combi.permuted]
+permuted_permuted__canonical__fintype_Finite [in Combi.Combi.permuted]
+permuted_permuted__canonical__choice_SubCountable [in Combi.Combi.permuted]
+permuted_permuted__canonical__choice_Countable [in Combi.Combi.permuted]
+permuted_permuted__canonical__choice_SubChoice [in Combi.Combi.permuted]
+permuted_permuted__canonical__choice_Choice [in Combi.Combi.permuted]
+permuted_permuted__canonical__eqtype_SubEquality [in Combi.Combi.permuted]
+permuted_permuted__canonical__eqtype_Equality [in Combi.Combi.permuted]
+permuted_permuted__canonical__eqtype_SubType [in Combi.Combi.permuted]
+permuted_seq [in Combi.Combi.permuted]
+permuted_tuple [in Combi.Combi.permuted]
+perm_of_setpart [in Combi.SymGroup.cycletype]
+perm_of_porbit [in Combi.SymGroup.cycletype]
+perm_dec [in Combi.SymGroup.cycles]
+perm_of_invset [in Combi.SymGroup.presentSn]
+perm_partn [in Combi.MPoly.sympoly]
+pfminh [in Combi.Combi.Dyckword]
+plactcongr [in Combi.LRrule.plactic]
+plactrule [in Combi.LRrule.plactic]
+plact_cat [in Combi.LRrule.plactic]
+plact_catr [in Combi.LRrule.plactic]
+plact_catl [in Combi.LRrule.plactic]
+plact_rcons [in Combi.LRrule.plactic]
+plact_cons [in Combi.LRrule.plactic]
+plact1 [in Combi.LRrule.plactic]
+plact1i [in Combi.LRrule.plactic]
+plact2 [in Combi.LRrule.plactic]
+plact2i [in Combi.LRrule.plactic]
+polXY [in Combi.MPoly.Cauchy]
+polXY_scale [in Combi.MPoly.Cauchy]
+polX_XY [in Combi.MPoly.Cauchy]
+polylang [in Combi.LRrule.freeSchur]
+polY_XY [in Combi.MPoly.Cauchy]
+porbit_set [in Combi.SymGroup.cycles]
+posbig [in Combi.Basic.ordtype]
+predi [in Combi.MPoly.antisym]
+pred_LRtriple_fast [in Combi.LRrule.shuffle]
+pred_LRtriple [in Combi.LRrule.shuffle]
+prefixes [in Combi.Combi.Dyckword]
+presentSn_codesz__canonical__fintype_SubFinite [in Combi.SymGroup.presentSn]
+presentSn_codesz__canonical__fintype_Finite [in Combi.SymGroup.presentSn]
+presentSn_codesz__canonical__choice_SubCountable [in Combi.SymGroup.presentSn]
+presentSn_codesz__canonical__choice_Countable [in Combi.SymGroup.presentSn]
+presentSn_codesz__canonical__choice_SubChoice [in Combi.SymGroup.presentSn]
+presentSn_codesz__canonical__choice_Choice [in Combi.SymGroup.presentSn]
+presentSn_codesz__canonical__eqtype_SubEquality [in Combi.SymGroup.presentSn]
+presentSn_codesz__canonical__eqtype_Equality [in Combi.SymGroup.presentSn]
+presentSn_codesz__canonical__eqtype_SubType [in Combi.SymGroup.presentSn]
+prods_codesz [in Combi.SymGroup.presentSn]
+prod_partsum [in Combi.MPoly.sympoly]
+prod_symp_homog [in Combi.MPoly.sympoly]
+prod_symp [in Combi.MPoly.sympoly]
+prod_symh_homog [in Combi.MPoly.sympoly]
+prod_symh [in Combi.MPoly.sympoly]
+prod_syme_homog [in Combi.MPoly.sympoly]
+prod_syme [in Combi.MPoly.sympoly]
+prod_gen [in Combi.MPoly.sympoly]
+psupport [in Combi.SymGroup.cycles]
+

R

+Random [in ALEA.Qmeasure]
+rclass [in Combi.Basic.congr]
+recforest [in Combi.Combi.ordtree]
+rectree [in Combi.Combi.ordtree]
+reduced_word [in Combi.SymGroup.presentSn]
+reduces [in Combi.SymGroup.presentSn]
+RefinementOrder.composition_IsoTop__to__Order_hasTop [in Combi.Combi.composition]
+RefinementOrder.composition_IsoBottom__to__Order_hasBottom [in Combi.Combi.composition]
+RefinementOrder.eqtype_SubType__to__eqtype_isSub [in Combi.Combi.composition]
+RefinementOrder.Exports.botEcompnref [in Combi.Combi.composition]
+RefinementOrder.Exports.compnref_rev [in Combi.Combi.composition]
+RefinementOrder.Exports.descset_join [in Combi.Combi.composition]
+RefinementOrder.Exports.descset_meet [in Combi.Combi.composition]
+RefinementOrder.Exports.descset_mono [in Combi.Combi.composition]
+RefinementOrder.Exports.leEcompnref [in Combi.Combi.composition]
+RefinementOrder.Exports.topEcompnref [in Combi.Combi.composition]
+RefinementOrder.fintype_Finite__to__fintype_isFinite [in Combi.Combi.composition]
+RefinementOrder.fintype_Finite__to__eqtype_hasDecEq [in Combi.Combi.composition]
+RefinementOrder.fintype_Finite__to__choice_Choice_isCountable [in Combi.Combi.composition]
+RefinementOrder.fintype_Finite__to__choice_hasChoice [in Combi.Combi.composition]
+RefinementOrder.HB_unnamed_mixin_73 [in Combi.Combi.composition]
+RefinementOrder.HB_unnamed_factory_71 [in Combi.Combi.composition]
+RefinementOrder.HB_unnamed_mixin_70 [in Combi.Combi.composition]
+RefinementOrder.HB_unnamed_factory_68 [in Combi.Combi.composition]
+RefinementOrder.HB_unnamed_mixin_67 [in Combi.Combi.composition]
+RefinementOrder.HB_unnamed_factory_63 [in Combi.Combi.composition]
+RefinementOrder.HB_unnamed_mixin_62 [in Combi.Combi.composition]
+RefinementOrder.HB_unnamed_mixin_61 [in Combi.Combi.composition]
+RefinementOrder.HB_unnamed_factory_58 [in Combi.Combi.composition]
+RefinementOrder.HB_unnamed_mixin_57 [in Combi.Combi.composition]
+RefinementOrder.HB_unnamed_factory_55 [in Combi.Combi.composition]
+RefinementOrder.HB_unnamed_mixin_54 [in Combi.Combi.composition]
+RefinementOrder.HB_unnamed_mixin_53 [in Combi.Combi.composition]
+RefinementOrder.HB_unnamed_factory_50 [in Combi.Combi.composition]
+RefinementOrder.HB_unnamed_mixin_49 [in Combi.Combi.composition]
+RefinementOrder.HB_unnamed_mixin_48 [in Combi.Combi.composition]
+RefinementOrder.HB_unnamed_mixin_47 [in Combi.Combi.composition]
+RefinementOrder.HB_unnamed_mixin_46 [in Combi.Combi.composition]
+RefinementOrder.HB_unnamed_factory_41 [in Combi.Combi.composition]
+RefinementOrder.HB_unnamed_mixin_40 [in Combi.Combi.composition]
+RefinementOrder.HB_unnamed_factory_38 [in Combi.Combi.composition]
+RefinementOrder.Order_IsoDistrLattice__to__Order_Lattice_isDistributive [in Combi.Combi.composition]
+RefinementOrder.Order_IsoLattice__to__Order_POrder_isMeetSemilattice [in Combi.Combi.composition]
+RefinementOrder.Order_IsoLattice__to__Order_POrder_isJoinSemilattice [in Combi.Combi.composition]
+RefinementOrder.Order_isPOrder__to__Order_isDuallyPreorder [in Combi.Combi.composition]
+RefinementOrder.Order_isPOrder__to__Order_Preorder_isDuallyPOrder [in Combi.Combi.composition]
+RefinementOrder.ordtype_isInhabitedType__to__ordtype_isInhabited [in Combi.Combi.composition]
+RefinementOrder.RefinementOrder_type__canonical__Order_FinTBDistrLattice [in Combi.Combi.composition]
+RefinementOrder.RefinementOrder_type__canonical__Order_FinTBLattice [in Combi.Combi.composition]
+RefinementOrder.RefinementOrder_type__canonical__Order_FinTBPOrder [in Combi.Combi.composition]
+RefinementOrder.RefinementOrder_type__canonical__Order_FinTBPreorder [in Combi.Combi.composition]
+RefinementOrder.RefinementOrder_type__canonical__Order_FinTJoinSemilattice [in Combi.Combi.composition]
+RefinementOrder.RefinementOrder_type__canonical__Order_FinTPOrder [in Combi.Combi.composition]
+RefinementOrder.RefinementOrder_type__canonical__Order_FinTPreorder [in Combi.Combi.composition]
+RefinementOrder.RefinementOrder_type__canonical__ordtype_InhTBLattice [in Combi.Combi.composition]
+RefinementOrder.RefinementOrder_type__canonical__Order_TBDistrLattice [in Combi.Combi.composition]
+RefinementOrder.RefinementOrder_type__canonical__Order_TBLattice [in Combi.Combi.composition]
+RefinementOrder.RefinementOrder_type__canonical__Order_TBJoinSemilattice [in Combi.Combi.composition]
+RefinementOrder.RefinementOrder_type__canonical__Order_TBMeetSemilattice [in Combi.Combi.composition]
+RefinementOrder.RefinementOrder_type__canonical__Order_TBPOrder [in Combi.Combi.composition]
+RefinementOrder.RefinementOrder_type__canonical__Order_TBPreorder [in Combi.Combi.composition]
+RefinementOrder.RefinementOrder_type__canonical__Order_TDistrLattice [in Combi.Combi.composition]
+RefinementOrder.RefinementOrder_type__canonical__Order_TLattice [in Combi.Combi.composition]
+RefinementOrder.RefinementOrder_type__canonical__Order_TJoinSemilattice [in Combi.Combi.composition]
+RefinementOrder.RefinementOrder_type__canonical__Order_TMeetSemilattice [in Combi.Combi.composition]
+RefinementOrder.RefinementOrder_type__canonical__Order_TPOrder [in Combi.Combi.composition]
+RefinementOrder.RefinementOrder_type__canonical__Order_TPreorder [in Combi.Combi.composition]
+RefinementOrder.RefinementOrder_type__canonical__Order_BDistrLattice [in Combi.Combi.composition]
+RefinementOrder.RefinementOrder_type__canonical__Order_BLattice [in Combi.Combi.composition]
+RefinementOrder.RefinementOrder_type__canonical__Order_BJoinSemilattice [in Combi.Combi.composition]
+RefinementOrder.RefinementOrder_type__canonical__Order_FinBMeetSemilattice [in Combi.Combi.composition]
+RefinementOrder.RefinementOrder_type__canonical__Order_BMeetSemilattice [in Combi.Combi.composition]
+RefinementOrder.RefinementOrder_type__canonical__Order_FinBPOrder [in Combi.Combi.composition]
+RefinementOrder.RefinementOrder_type__canonical__Order_BPOrder [in Combi.Combi.composition]
+RefinementOrder.RefinementOrder_type__canonical__Order_FinBPreorder [in Combi.Combi.composition]
+RefinementOrder.RefinementOrder_type__canonical__Order_BPreorder [in Combi.Combi.composition]
+RefinementOrder.RefinementOrder_type__canonical__Order_FinDistrLattice [in Combi.Combi.composition]
+RefinementOrder.RefinementOrder_type__canonical__Order_DistrLattice [in Combi.Combi.composition]
+RefinementOrder.RefinementOrder_type__canonical__ordtype_InhFinLattice [in Combi.Combi.composition]
+RefinementOrder.RefinementOrder_type__canonical__Order_FinLattice [in Combi.Combi.composition]
+RefinementOrder.RefinementOrder_type__canonical__Order_FinMeetSemilattice [in Combi.Combi.composition]
+RefinementOrder.RefinementOrder_type__canonical__ordtype_InhLattice [in Combi.Combi.composition]
+RefinementOrder.RefinementOrder_type__canonical__Order_Lattice [in Combi.Combi.composition]
+RefinementOrder.RefinementOrder_type__canonical__Order_MeetSemilattice [in Combi.Combi.composition]
+RefinementOrder.RefinementOrder_type__canonical__Order_FinJoinSemilattice [in Combi.Combi.composition]
+RefinementOrder.RefinementOrder_type__canonical__Order_JoinSemilattice [in Combi.Combi.composition]
+RefinementOrder.RefinementOrder_type__canonical__ordtype_InhFinPOrder [in Combi.Combi.composition]
+RefinementOrder.RefinementOrder_type__canonical__ordtype_InhFinite [in Combi.Combi.composition]
+RefinementOrder.RefinementOrder_type__canonical__ordtype_InhPOrder [in Combi.Combi.composition]
+RefinementOrder.RefinementOrder_type__canonical__ordtype_Inhabited [in Combi.Combi.composition]
+RefinementOrder.RefinementOrder_type__canonical__Order_FinPOrder [in Combi.Combi.composition]
+RefinementOrder.RefinementOrder_type__canonical__Order_FinPreorder [in Combi.Combi.composition]
+RefinementOrder.RefinementOrder_type__canonical__Order_POrder [in Combi.Combi.composition]
+RefinementOrder.RefinementOrder_type__canonical__Order_Preorder [in Combi.Combi.composition]
+RefinementOrder.RefinementOrder_type__canonical__fintype_SubFinite [in Combi.Combi.composition]
+RefinementOrder.RefinementOrder_type__canonical__fintype_Finite [in Combi.Combi.composition]
+RefinementOrder.RefinementOrder_type__canonical__choice_SubCountable [in Combi.Combi.composition]
+RefinementOrder.RefinementOrder_type__canonical__choice_Countable [in Combi.Combi.composition]
+RefinementOrder.RefinementOrder_type__canonical__choice_SubChoice [in Combi.Combi.composition]
+RefinementOrder.RefinementOrder_type__canonical__choice_Choice [in Combi.Combi.composition]
+RefinementOrder.RefinementOrder_type__canonical__eqtype_SubEquality [in Combi.Combi.composition]
+RefinementOrder.RefinementOrder_type__canonical__eqtype_Equality [in Combi.Combi.composition]
+RefinementOrder.RefinementOrder_type__canonical__eqtype_SubType [in Combi.Combi.composition]
+RefinementOrder.type [in Combi.Combi.composition]
+RefinmentOrder.Exports.is_finer_pblockP [in Combi.Combi.setpartition]
+RefinmentOrder.Exports.is_finerP [in Combi.Combi.setpartition]
+RefinmentOrder.Exports.mem_meet_finerP [in Combi.Combi.setpartition]
+RefinmentOrder.HB_unnamed_mixin_28 [in Combi.Combi.setpartition]
+RefinmentOrder.HB_unnamed_mixin_27 [in Combi.Combi.setpartition]
+RefinmentOrder.HB_unnamed_factory_24 [in Combi.Combi.setpartition]
+RefinmentOrder.HB_unnamed_factory_22 [in Combi.Combi.setpartition]
+RefinmentOrder.HB_unnamed_factory_20 [in Combi.Combi.setpartition]
+RefinmentOrder.HB_unnamed_mixin_19 [in Combi.Combi.setpartition]
+RefinmentOrder.HB_unnamed_mixin_18 [in Combi.Combi.setpartition]
+RefinmentOrder.HB_unnamed_factory_15 [in Combi.Combi.setpartition]
+RefinmentOrder.is_finer [in Combi.Combi.setpartition]
+RefinmentOrder.join_finer [in Combi.Combi.setpartition]
+RefinmentOrder.join_finer_eq [in Combi.Combi.setpartition]
+RefinmentOrder.meet_finer [in Combi.Combi.setpartition]
+RefinmentOrder.Order_POrder_MeetJoin_isLattice__to__Order_POrder_isMeetSemilattice [in Combi.Combi.setpartition]
+RefinmentOrder.Order_POrder_MeetJoin_isLattice__to__Order_POrder_isJoinSemilattice [in Combi.Combi.setpartition]
+RefinmentOrder.Order_Le_isPOrder__to__Order_isDuallyPreorder [in Combi.Combi.setpartition]
+RefinmentOrder.Order_Le_isPOrder__to__Order_Preorder_isDuallyPOrder [in Combi.Combi.setpartition]
+RefinmentOrder.setpartition_setpart__canonical__Order_FinTBLattice [in Combi.Combi.setpartition]
+RefinmentOrder.setpartition_setpart__canonical__ordtype_InhTBLattice [in Combi.Combi.setpartition]
+RefinmentOrder.setpartition_setpart__canonical__Order_TBLattice [in Combi.Combi.setpartition]
+RefinmentOrder.setpartition_setpart__canonical__Order_BLattice [in Combi.Combi.setpartition]
+RefinmentOrder.setpartition_setpart__canonical__Order_FinBMeetSemilattice [in Combi.Combi.setpartition]
+RefinmentOrder.setpartition_setpart__canonical__Order_TBMeetSemilattice [in Combi.Combi.setpartition]
+RefinmentOrder.setpartition_setpart__canonical__Order_BMeetSemilattice [in Combi.Combi.setpartition]
+RefinmentOrder.setpartition_setpart__canonical__ordtype_InhFinLattice [in Combi.Combi.setpartition]
+RefinmentOrder.setpartition_setpart__canonical__Order_FinLattice [in Combi.Combi.setpartition]
+RefinmentOrder.setpartition_setpart__canonical__Order_FinMeetSemilattice [in Combi.Combi.setpartition]
+RefinmentOrder.setpartition_setpart__canonical__ordtype_InhLattice [in Combi.Combi.setpartition]
+RefinmentOrder.setpartition_setpart__canonical__Order_TLattice [in Combi.Combi.setpartition]
+RefinmentOrder.setpartition_setpart__canonical__Order_Lattice [in Combi.Combi.setpartition]
+RefinmentOrder.setpartition_setpart__canonical__Order_TMeetSemilattice [in Combi.Combi.setpartition]
+RefinmentOrder.setpartition_setpart__canonical__Order_MeetSemilattice [in Combi.Combi.setpartition]
+RefinmentOrder.setpartition_setpart__canonical__Order_TBJoinSemilattice [in Combi.Combi.setpartition]
+RefinmentOrder.setpartition_setpart__canonical__Order_BJoinSemilattice [in Combi.Combi.setpartition]
+RefinmentOrder.setpartition_setpart__canonical__Order_FinTJoinSemilattice [in Combi.Combi.setpartition]
+RefinmentOrder.setpartition_setpart__canonical__Order_FinJoinSemilattice [in Combi.Combi.setpartition]
+RefinmentOrder.setpartition_setpart__canonical__Order_TJoinSemilattice [in Combi.Combi.setpartition]
+RefinmentOrder.setpartition_setpart__canonical__Order_JoinSemilattice [in Combi.Combi.setpartition]
+RefinmentOrder.setpartition_setpart__canonical__Order_FinTBPOrder [in Combi.Combi.setpartition]
+RefinmentOrder.setpartition_setpart__canonical__Order_FinTBPreorder [in Combi.Combi.setpartition]
+RefinmentOrder.setpartition_setpart__canonical__Order_FinTPOrder [in Combi.Combi.setpartition]
+RefinmentOrder.setpartition_setpart__canonical__Order_FinTPreorder [in Combi.Combi.setpartition]
+RefinmentOrder.setpartition_setpart__canonical__Order_TBPOrder [in Combi.Combi.setpartition]
+RefinmentOrder.setpartition_setpart__canonical__Order_TBPreorder [in Combi.Combi.setpartition]
+RefinmentOrder.setpartition_setpart__canonical__Order_TPOrder [in Combi.Combi.setpartition]
+RefinmentOrder.setpartition_setpart__canonical__Order_TPreorder [in Combi.Combi.setpartition]
+RefinmentOrder.setpartition_setpart__canonical__Order_FinBPOrder [in Combi.Combi.setpartition]
+RefinmentOrder.setpartition_setpart__canonical__Order_BPOrder [in Combi.Combi.setpartition]
+RefinmentOrder.setpartition_setpart__canonical__Order_FinBPreorder [in Combi.Combi.setpartition]
+RefinmentOrder.setpartition_setpart__canonical__Order_BPreorder [in Combi.Combi.setpartition]
+RefinmentOrder.setpartition_setpart__canonical__ordtype_InhFinPOrder [in Combi.Combi.setpartition]
+RefinmentOrder.setpartition_setpart__canonical__Order_FinPOrder [in Combi.Combi.setpartition]
+RefinmentOrder.setpartition_setpart__canonical__Order_FinPreorder [in Combi.Combi.setpartition]
+RefinmentOrder.setpartition_setpart__canonical__ordtype_InhPOrder [in Combi.Combi.setpartition]
+RefinmentOrder.setpartition_setpart__canonical__Order_POrder [in Combi.Combi.setpartition]
+RefinmentOrder.setpartition_setpart__canonical__Order_Preorder [in Combi.Combi.setpartition]
+rembig [in Combi.Basic.ordtype]
+remn [in Combi.Combi.stdtab]
+remn_rec [in Combi.Combi.stdtab]
+rem_corners [in Combi.Combi.partition]
+rem_trail0 [in Combi.Combi.partition]
+res_tab [in Combi.MPoly.Schur_altdef]
+revdual [in Combi.LRrule.plactic]
+revset [in Combi.LRrule.Greene]
+rev_ksupp_inv [in Combi.LRrule.Greene_inv]
+rev_ksupp [in Combi.LRrule.Greene_inv]
+rev_set [in Combi.LRrule.Greene_inv]
+rev_ord_cast [in Combi.LRrule.Greene_inv]
+rev_intcompn [in Combi.Combi.composition]
+rho [in Combi.MPoly.antisym]
+RHSL3 [in Combi.HookFormula.hook]
+RHSL3_trace [in Combi.HookFormula.hook]
+ribbon [in Combi.Combi.skewpart]
+ribbontb_start [in Combi.Combi.skewpart]
+ribbon_on_box_ex [in Combi.Combi.skewpart]
+ribbon_box_ex [in Combi.Combi.skewpart]
+ribbon_textbook [in Combi.Combi.skewpart]
+ribbon_height [in Combi.Combi.skewpart]
+ribbon_on [in Combi.Combi.skewpart]
+ribbon_from [in Combi.Combi.skewpart]
+rightcomb [in Combi.Combi.bintree]
+rightcombsz [in Combi.Combi.bintree]
+right_sizes [in Combi.Combi.bintree]
+rotations [in Combi.Combi.bintree]
+rowcomp [in Combi.Combi.composition]
+rowcompn [in Combi.Combi.composition]
+rowpartn [in Combi.Combi.partition]
+RS [in Combi.LRrule.extract]
+RS [in Combi.LRrule.Schensted]
+RSbij [in Combi.LRrule.Schensted]
+RSbijinv [in Combi.LRrule.Schensted]
+RSbijinvnat [in Combi.LRrule.extract]
+RSbijnat [in Combi.LRrule.extract]
+RSclass [in Combi.LRrule.Schensted]
+rsh_rec [in Combi.LRrule.Greene]
+RSmap [in Combi.LRrule.Schensted]
+RSmapinv [in Combi.LRrule.Schensted]
+RSmapinv2 [in Combi.LRrule.Schensted]
+RSmap_rev [in Combi.LRrule.Schensted]
+rsplit_rec [in Combi.LRrule.Greene]
+RStab [in Combi.LRrule.Schensted]
+RStabinv [in Combi.LRrule.Schensted]
+RStabinvnat [in Combi.LRrule.extract]
+RStabmap [in Combi.LRrule.Schensted]
+RStabnat [in Combi.LRrule.extract]
+rsymrel [in Combi.SymGroup.presentSn]
+RS_rev [in Combi.LRrule.Schensted]
+rtrans [in Combi.Basic.congr]
+

S

+Sch [in Combi.LRrule.Schensted]
+Schensted_rstabpair__canonical__choice_SubChoice [in Combi.LRrule.Schensted]
+Schensted_rstabpair__canonical__choice_Choice [in Combi.LRrule.Schensted]
+Schensted_rstabpair__canonical__eqtype_SubEquality [in Combi.LRrule.Schensted]
+Schensted_rstabpair__canonical__eqtype_Equality [in Combi.LRrule.Schensted]
+Schensted_rstabpair__canonical__eqtype_SubType [in Combi.LRrule.Schensted]
+Schensted_rspair__canonical__choice_SubChoice [in Combi.LRrule.Schensted]
+Schensted_rspair__canonical__choice_Choice [in Combi.LRrule.Schensted]
+Schensted_rspair__canonical__eqtype_SubEquality [in Combi.LRrule.Schensted]
+Schensted_rspair__canonical__eqtype_Equality [in Combi.LRrule.Schensted]
+Schensted_rspair__canonical__eqtype_SubType [in Combi.LRrule.Schensted]
+Schur [in Combi.MPoly.Schur_mpoly]
+Sch_rev [in Combi.LRrule.Schensted]
+seq_lift_right [in ALEA.Ccpo]
+seq_lift_left [in ALEA.Ccpo]
+seq_finType [in Combi.Basic.combclass]
+sesquilinear_bilinear_isBilinear__to__sesquilinear_isBilinear__82 [in Combi.MPoly.homogsym]
+sesquilinear_bilinear_isBilinear__to__sesquilinear_isBilinear [in Combi.MPoly.homogsym]
+sesquilinear_bilinear_isBilinear__to__sesquilinear_isBilinear [in Combi.SymGroup.towerSn]
+sesquilinear_bilinear_isBilinear__to__sesquilinear_isBilinear [in Combi.SymGroup.Frobenius_char]
+SetContainingBothLeft.posc [in Combi.LRrule.Greene_inv]
+SetContainingBothLeft.Qbin [in Combi.LRrule.Greene_inv]
+SetContainingBothLeft.Qbnotin [in Combi.LRrule.Greene_inv]
+SetContainingBothLeft.S1 [in Combi.LRrule.Greene_inv]
+SetContainingBothLeft.T1 [in Combi.LRrule.Greene_inv]
+setdiff [in Combi.MPoly.Schur_altdef]
+setpartition_setpart__canonical__ordtype_InhFinite [in Combi.Combi.setpartition]
+setpartition_setpart__canonical__ordtype_Inhabited [in Combi.Combi.setpartition]
+setpartition_setpart__canonical__fintype_SubFinite [in Combi.Combi.setpartition]
+setpartition_setpart__canonical__fintype_Finite [in Combi.Combi.setpartition]
+setpartition_setpart__canonical__choice_SubCountable [in Combi.Combi.setpartition]
+setpartition_setpart__canonical__choice_Countable [in Combi.Combi.setpartition]
+setpartition_setpart__canonical__choice_SubChoice [in Combi.Combi.setpartition]
+setpartition_setpart__canonical__choice_Choice [in Combi.Combi.setpartition]
+setpartition_setpart__canonical__eqtype_SubEquality [in Combi.Combi.setpartition]
+setpartition_setpart__canonical__eqtype_Equality [in Combi.Combi.setpartition]
+setpartition_setpart__canonical__eqtype_SubType [in Combi.Combi.setpartition]
+setpart_shape [in Combi.Combi.partition]
+setpart_set1 [in Combi.Combi.setpartition]
+setpart_set0 [in Combi.Combi.setpartition]
+setpart1 [in Combi.Combi.setpartition]
+sfiltergtn [in Combi.LRrule.shuffle]
+sfilterleq [in Combi.LRrule.shuffle]
+shape_res_tab [in Combi.MPoly.Schur_altdef]
+shape_deg [in Combi.Combi.stdtab]
+shcols [in Combi.LRrule.Greene]
+shift [in ALEA.Ccpo]
+shiftinv_pos [in Combi.Basic.ordtype]
+shiftn [in Combi.LRrule.shuffle]
+shiftset [in Combi.LRrule.Greene]
+shift_pos [in Combi.Basic.ordtype]
+shrows [in Combi.LRrule.Greene]
+shsh [in Combi.LRrule.shuffle]
+shuffle [in Combi.LRrule.shuffle]
+shuffle_from_rec [in Combi.LRrule.shuffle]
+signed_repr [in Combi.SymGroup.reprSn]
+signed_mx [in Combi.SymGroup.reprSn]
+sign_char [in Combi.SymGroup.reprSn]
+sign_repr [in Combi.SymGroup.reprSn]
+sign_mx [in Combi.SymGroup.reprSn]
+simplexp [in Combi.MPoly.antisym]
+size_tree [in Combi.Combi.bintree]
+size_tab [in Combi.Combi.tableau]
+size_ordtree [in Combi.Combi.ordtree]
+skew_reshape [in Combi.Combi.skewtab]
+skew_dominate [in Combi.Combi.skewtab]
+slporbits [in Combi.SymGroup.cycletype]
+srel [in Combi.SymGroup.presentSn]
+ssrbool_has_quality__canonical__GRing_SubmodClosed [in Combi.MPoly.antisym]
+ssrbool_has_quality__canonical__Algebra_ZmodClosed [in Combi.MPoly.antisym]
+ssrbool_has_quality__canonical__Algebra_OppClosed [in Combi.MPoly.antisym]
+ssrbool_has_quality__canonical__Algebra_AddClosed [in Combi.MPoly.antisym]
+stable_opp [in ALEA.Qmeasure]
+stable_mull [in ALEA.Qmeasure]
+stable_sub [in ALEA.Qmeasure]
+stable_add [in ALEA.Qmeasure]
+stab_iporbits_map [in Combi.SymGroup.permcent]
+stab_iporbits_porbitmap [in Combi.SymGroup.permcent]
+stab_iporbits [in Combi.SymGroup.permcent]
+startrem [in Combi.Combi.skewpart]
+starts_at [in Combi.HookFormula.hook]
+std [in Combi.Combi.std]
+stdtabn_of_sh [in Combi.Combi.stdtab]
+stdtabshcast [in Combi.Combi.stdtab]
+stdtab_stdtabn__canonical__fintype_SubFinite [in Combi.Combi.stdtab]
+stdtab_stdtabn__canonical__fintype_Finite [in Combi.Combi.stdtab]
+stdtab_stdtabn__canonical__choice_SubCountable [in Combi.Combi.stdtab]
+stdtab_stdtabn__canonical__choice_Countable [in Combi.Combi.stdtab]
+stdtab_stdtabn__canonical__choice_SubChoice [in Combi.Combi.stdtab]
+stdtab_stdtabn__canonical__choice_Choice [in Combi.Combi.stdtab]
+stdtab_stdtabn__canonical__eqtype_SubEquality [in Combi.Combi.stdtab]
+stdtab_stdtabn__canonical__eqtype_Equality [in Combi.Combi.stdtab]
+stdtab_stdtabn__canonical__eqtype_SubType [in Combi.Combi.stdtab]
+stdtab_stdtabsh__canonical__fintype_SubFinite [in Combi.Combi.stdtab]
+stdtab_stdtabsh__canonical__fintype_Finite [in Combi.Combi.stdtab]
+stdtab_stdtabsh__canonical__choice_SubCountable [in Combi.Combi.stdtab]
+stdtab_stdtabsh__canonical__choice_Countable [in Combi.Combi.stdtab]
+stdtab_stdtabsh__canonical__choice_SubChoice [in Combi.Combi.stdtab]
+stdtab_stdtabsh__canonical__choice_Choice [in Combi.Combi.stdtab]
+stdtab_stdtabsh__canonical__eqtype_SubEquality [in Combi.Combi.stdtab]
+stdtab_stdtabsh__canonical__eqtype_Equality [in Combi.Combi.stdtab]
+stdtab_stdtabsh__canonical__eqtype_SubType [in Combi.Combi.stdtab]
+stdtab_of_yam [in Combi.Combi.stdtab]
+std_rec [in Combi.Combi.std]
+std_stdwordn__canonical__fintype_SubFinite [in Combi.Combi.std]
+std_stdwordn__canonical__fintype_Finite [in Combi.Combi.std]
+std_stdwordn__canonical__choice_SubCountable [in Combi.Combi.std]
+std_stdwordn__canonical__choice_Countable [in Combi.Combi.std]
+std_stdwordn__canonical__choice_SubChoice [in Combi.Combi.std]
+std_stdwordn__canonical__choice_Choice [in Combi.Combi.std]
+std_stdwordn__canonical__eqtype_SubEquality [in Combi.Combi.std]
+std_stdwordn__canonical__eqtype_Equality [in Combi.Combi.std]
+std_stdwordn__canonical__eqtype_SubType [in Combi.Combi.std]
+step [in Combi.Basic.congr]
+straighten [in Combi.SymGroup.presentSn]
+straighten_rev [in Combi.SymGroup.presentSn]
+subseqrow [in Combi.LRrule.Schensted]
+subseqrow_n [in Combi.LRrule.Schensted]
+subseq_subseqs__canonical__fintype_SubFinite [in Combi.Combi.subseq]
+subseq_subseqs__canonical__fintype_Finite [in Combi.Combi.subseq]
+subseq_subseqs__canonical__choice_SubCountable [in Combi.Combi.subseq]
+subseq_subseqs__canonical__choice_Countable [in Combi.Combi.subseq]
+subseq_subseqs__canonical__choice_SubChoice [in Combi.Combi.subseq]
+subseq_subseqs__canonical__choice_Choice [in Combi.Combi.subseq]
+subseq_subseqs__canonical__eqtype_SubEquality [in Combi.Combi.subseq]
+subseq_subseqs__canonical__eqtype_Equality [in Combi.Combi.subseq]
+subseq_subseqs__canonical__eqtype_SubType [in Combi.Combi.subseq]
+subType_seq [in Combi.Basic.combclass]
+sub_full [in Combi.Combi.subseq]
+sub_nil [in Combi.Combi.subseq]
+Swap.pos0 [in Combi.LRrule.Greene_inv]
+Swap.pos1 [in Combi.LRrule.Greene_inv]
+Swap.swap [in Combi.LRrule.Greene_inv]
+Swap.swap_set [in Combi.LRrule.Greene_inv]
+symbe [in Combi.MPoly.homogsym]
+symbh [in Combi.MPoly.homogsym]
+symbm [in Combi.MPoly.homogsym]
+symbp [in Combi.MPoly.homogsym]
+symbs [in Combi.MPoly.homogsym]
+syme [in Combi.MPoly.sympoly]
+symh [in Combi.MPoly.sympoly]
+symh_pol [in Combi.MPoly.sympoly]
+symh_pol_bound [in Combi.MPoly.sympoly]
+symm [in Combi.MPoly.sympoly]
+symm_pol [in Combi.MPoly.sympoly]
+symp [in Combi.MPoly.sympoly]
+sympolyf [in Combi.MPoly.sympoly]
+sympolyf_eval [in Combi.MPoly.sympoly]
+SymPolyHomogKey.homogsym1_keyed [in Combi.MPoly.homogsym]
+sympoly_cnvarsym__canonical__GRing_LRMorphism [in Combi.MPoly.sympoly]
+sympoly_cnvarsym__canonical__GRing_RMorphism [in Combi.MPoly.sympoly]
+sympoly_cnvarsym__canonical__GRing_Linear [in Combi.MPoly.sympoly]
+sympoly_cnvarsym__canonical__Algebra_Additive [in Combi.MPoly.sympoly]
+sympoly_omegasf__canonical__GRing_LRMorphism [in Combi.MPoly.sympoly]
+sympoly_omegasf__canonical__GRing_RMorphism [in Combi.MPoly.sympoly]
+sympoly_omegasf__canonical__GRing_Linear [in Combi.MPoly.sympoly]
+sympoly_omegasf__canonical__Algebra_Additive [in Combi.MPoly.sympoly]
+sympoly_sympolyf_eval__canonical__GRing_LRMorphism [in Combi.MPoly.sympoly]
+sympoly_sympolyf_eval__canonical__GRing_RMorphism [in Combi.MPoly.sympoly]
+sympoly_sympolyf_eval__canonical__GRing_Linear [in Combi.MPoly.sympoly]
+sympoly_sympolyf_eval__canonical__Algebra_Additive [in Combi.MPoly.sympoly]
+sympoly_sympolyf__canonical__GRing_LRMorphism [in Combi.MPoly.sympoly]
+sympoly_sympolyf__canonical__GRing_RMorphism [in Combi.MPoly.sympoly]
+sympoly_sympolyf__canonical__GRing_Linear [in Combi.MPoly.sympoly]
+sympoly_sympolyf__canonical__Algebra_Additive [in Combi.MPoly.sympoly]
+sympoly_map_sympoly__canonical__GRing_LRMorphism [in Combi.MPoly.sympoly]
+sympoly_map_sympoly__canonical__GRing_Linear [in Combi.MPoly.sympoly]
+sympoly_map_sympoly__canonical__GRing_RMorphism [in Combi.MPoly.sympoly]
+sympoly_map_sympoly__canonical__Algebra_Additive [in Combi.MPoly.sympoly]
+sympoly_sympoly__canonical__GRing_SubIntegralDomain [in Combi.MPoly.sympoly]
+sympoly_sympoly__canonical__GRing_IntegralDomain [in Combi.MPoly.sympoly]
+sympoly_sympoly__canonical__GRing_ComUnitAlgebra [in Combi.MPoly.sympoly]
+sympoly_sympoly__canonical__GRing_SubComUnitRing [in Combi.MPoly.sympoly]
+sympoly_sympoly__canonical__GRing_ComUnitRing [in Combi.MPoly.sympoly]
+sympoly_sympoly__canonical__GRing_SubUnitRing [in Combi.MPoly.sympoly]
+sympoly_sympoly__canonical__GRing_UnitAlgebra [in Combi.MPoly.sympoly]
+sympoly_sympoly__canonical__GRing_UnitRing [in Combi.MPoly.sympoly]
+sympoly_sympoly__canonical__GRing_ComNzAlgebra [in Combi.MPoly.sympoly]
+sympoly_sympoly__canonical__GRing_SubComNzRing [in Combi.MPoly.sympoly]
+sympoly_sympoly__canonical__GRing_ComNzRing [in Combi.MPoly.sympoly]
+sympoly_sympoly__canonical__GRing_ComNzSemiAlgebra [in Combi.MPoly.sympoly]
+sympoly_sympoly__canonical__GRing_SubComNzSemiRing [in Combi.MPoly.sympoly]
+sympoly_sympoly__canonical__GRing_ComNzSemiRing [in Combi.MPoly.sympoly]
+sympoly_sympoly__canonical__GRing_ComPzAlgebra [in Combi.MPoly.sympoly]
+sympoly_sympoly__canonical__GRing_SubComPzRing [in Combi.MPoly.sympoly]
+sympoly_sympoly__canonical__GRing_ComPzRing [in Combi.MPoly.sympoly]
+sympoly_sympoly__canonical__GRing_ComPzSemiAlgebra [in Combi.MPoly.sympoly]
+sympoly_sympoly__canonical__GRing_SubComPzSemiRing [in Combi.MPoly.sympoly]
+sympoly_sympoly__canonical__GRing_ComPzSemiRing [in Combi.MPoly.sympoly]
+sympoly_sympoly__canonical__GRing_SubNzAlgebra [in Combi.MPoly.sympoly]
+sympoly_sympoly__canonical__GRing_NzAlgebra [in Combi.MPoly.sympoly]
+sympoly_sympoly__canonical__GRing_SubPzAlgebra [in Combi.MPoly.sympoly]
+sympoly_sympoly__canonical__GRing_PzAlgebra [in Combi.MPoly.sympoly]
+sympoly_sympoly__canonical__GRing_SubNzSemiAlgebra [in Combi.MPoly.sympoly]
+sympoly_sympoly__canonical__GRing_NzSemiAlgebra [in Combi.MPoly.sympoly]
+sympoly_sympoly__canonical__GRing_SubPzSemiAlgebra [in Combi.MPoly.sympoly]
+sympoly_sympoly__canonical__GRing_PzSemiAlgebra [in Combi.MPoly.sympoly]
+sympoly_sympol__canonical__GRing_LRMorphism [in Combi.MPoly.sympoly]
+sympoly_sympol__canonical__GRing_RMorphism [in Combi.MPoly.sympoly]
+sympoly_sympol__canonical__GRing_Linear [in Combi.MPoly.sympoly]
+sympoly_sympol__canonical__Algebra_Additive [in Combi.MPoly.sympoly]
+sympoly_sympoly__canonical__GRing_SubNzLalgebra [in Combi.MPoly.sympoly]
+sympoly_sympoly__canonical__GRing_NzLalgebra [in Combi.MPoly.sympoly]
+sympoly_sympoly__canonical__GRing_SubPzLalgebra [in Combi.MPoly.sympoly]
+sympoly_sympoly__canonical__GRing_PzLalgebra [in Combi.MPoly.sympoly]
+sympoly_sympoly__canonical__GRing_SubLmodule [in Combi.MPoly.sympoly]
+sympoly_sympoly__canonical__GRing_Lmodule [in Combi.MPoly.sympoly]
+sympoly_sympoly__canonical__GRing_SubNzLSemiAlgebra [in Combi.MPoly.sympoly]
+sympoly_sympoly__canonical__GRing_NzLSemiAlgebra [in Combi.MPoly.sympoly]
+sympoly_sympoly__canonical__GRing_SubPzLSemiAlgebra [in Combi.MPoly.sympoly]
+sympoly_sympoly__canonical__GRing_PzLSemiAlgebra [in Combi.MPoly.sympoly]
+sympoly_sympoly__canonical__GRing_SubLSemiModule [in Combi.MPoly.sympoly]
+sympoly_sympoly__canonical__GRing_LSemiModule [in Combi.MPoly.sympoly]
+sympoly_sympoly__canonical__GRing_SubNzRing [in Combi.MPoly.sympoly]
+sympoly_sympoly__canonical__GRing_NzRing [in Combi.MPoly.sympoly]
+sympoly_sympoly__canonical__GRing_SubNzSemiRing [in Combi.MPoly.sympoly]
+sympoly_sympoly__canonical__GRing_NzSemiRing [in Combi.MPoly.sympoly]
+sympoly_sympoly__canonical__GRing_SubPzRing [in Combi.MPoly.sympoly]
+sympoly_sympoly__canonical__GRing_PzRing [in Combi.MPoly.sympoly]
+sympoly_sympoly__canonical__GRing_SubPzSemiRing [in Combi.MPoly.sympoly]
+sympoly_sympoly__canonical__GRing_PzSemiRing [in Combi.MPoly.sympoly]
+sympoly_sympoly__canonical__Algebra_SubZmodule [in Combi.MPoly.sympoly]
+sympoly_sympoly__canonical__Algebra_SubNmodule [in Combi.MPoly.sympoly]
+sympoly_sympoly__canonical__Algebra_Zmodule [in Combi.MPoly.sympoly]
+sympoly_sympoly__canonical__Algebra_Nmodule [in Combi.MPoly.sympoly]
+sympoly_sympoly__canonical__Algebra_AddSemigroup [in Combi.MPoly.sympoly]
+sympoly_sympoly__canonical__Algebra_SubAddUMagma [in Combi.MPoly.sympoly]
+sympoly_sympoly__canonical__Algebra_AddUMagma [in Combi.MPoly.sympoly]
+sympoly_sympoly__canonical__Algebra_AddMagma [in Combi.MPoly.sympoly]
+sympoly_sympoly__canonical__Algebra_BaseZmodule [in Combi.MPoly.sympoly]
+sympoly_sympoly__canonical__Algebra_SubBaseAddUMagma [in Combi.MPoly.sympoly]
+sympoly_sympoly__canonical__Algebra_ChoiceBaseAddUMagma [in Combi.MPoly.sympoly]
+sympoly_sympoly__canonical__Algebra_BaseAddUMagma [in Combi.MPoly.sympoly]
+sympoly_sympoly__canonical__Algebra_ChoiceBaseAddMagma [in Combi.MPoly.sympoly]
+sympoly_sympoly__canonical__Algebra_BaseAddMagma [in Combi.MPoly.sympoly]
+sympoly_sympoly__canonical__choice_SubChoice [in Combi.MPoly.sympoly]
+sympoly_sympoly__canonical__choice_Choice [in Combi.MPoly.sympoly]
+sympoly_sympoly__canonical__eqtype_SubEquality [in Combi.MPoly.sympoly]
+sympoly_sympoly__canonical__eqtype_Equality [in Combi.MPoly.sympoly]
+sympoly_sympoly__canonical__eqtype_SubType [in Combi.MPoly.sympoly]
+symp_pol [in Combi.MPoly.sympoly]
+syms [in Combi.MPoly.sympoly]
+

T

+tabcols [in Combi.LRrule.Greene]
+tabcolsk [in Combi.LRrule.Greene]
+tableau_tabsh__canonical__fintype_SubFinite [in Combi.Combi.tableau]
+tableau_tabsh__canonical__fintype_Finite [in Combi.Combi.tableau]
+tableau_tabsh__canonical__choice_SubCountable [in Combi.Combi.tableau]
+tableau_tabsh__canonical__choice_Countable [in Combi.Combi.tableau]
+tableau_tabsh__canonical__choice_SubChoice [in Combi.Combi.tableau]
+tableau_tabsh__canonical__choice_Choice [in Combi.Combi.tableau]
+tableau_tabsh__canonical__eqtype_SubEquality [in Combi.Combi.tableau]
+tableau_tabsh__canonical__eqtype_Equality [in Combi.Combi.tableau]
+tableau_tabsh__canonical__eqtype_SubType [in Combi.Combi.tableau]
+tabnat_of_ord [in Combi.MPoly.Schur_altdef]
+tabnat_of_ord_fun [in Combi.MPoly.Schur_altdef]
+tabord_of_nat [in Combi.MPoly.Schur_altdef]
+tabord_of_nat_fun [in Combi.MPoly.Schur_altdef]
+tabrowconst [in Combi.Combi.tableau]
+tabrows [in Combi.LRrule.Greene]
+tabrowsk [in Combi.LRrule.Greene]
+tabsh_reading_RS [in Combi.LRrule.freeSchur]
+tabsh_reading [in Combi.Combi.tableau]
+tabwordshape [in Combi.LRrule.freeSchur]
+tabword_of_tuple [in Combi.LRrule.freeSchur]
+TamariLattice.bintree_bintreesz__canonical__Order_FinTBLattice [in Combi.Combi.bintree]
+TamariLattice.bintree_bintreesz__canonical__Order_FinTBPOrder [in Combi.Combi.bintree]
+TamariLattice.bintree_bintreesz__canonical__Order_FinTBPreorder [in Combi.Combi.bintree]
+TamariLattice.bintree_bintreesz__canonical__Order_FinTJoinSemilattice [in Combi.Combi.bintree]
+TamariLattice.bintree_bintreesz__canonical__Order_FinTPOrder [in Combi.Combi.bintree]
+TamariLattice.bintree_bintreesz__canonical__Order_FinTPreorder [in Combi.Combi.bintree]
+TamariLattice.bintree_bintreesz__canonical__Order_TBLattice [in Combi.Combi.bintree]
+TamariLattice.bintree_bintreesz__canonical__Order_TBJoinSemilattice [in Combi.Combi.bintree]
+TamariLattice.bintree_bintreesz__canonical__Order_TBMeetSemilattice [in Combi.Combi.bintree]
+TamariLattice.bintree_bintreesz__canonical__Order_TBPOrder [in Combi.Combi.bintree]
+TamariLattice.bintree_bintreesz__canonical__Order_TBPreorder [in Combi.Combi.bintree]
+TamariLattice.bintree_bintreesz__canonical__Order_TLattice [in Combi.Combi.bintree]
+TamariLattice.bintree_bintreesz__canonical__Order_TJoinSemilattice [in Combi.Combi.bintree]
+TamariLattice.bintree_bintreesz__canonical__Order_TMeetSemilattice [in Combi.Combi.bintree]
+TamariLattice.bintree_bintreesz__canonical__Order_TPOrder [in Combi.Combi.bintree]
+TamariLattice.bintree_bintreesz__canonical__Order_TPreorder [in Combi.Combi.bintree]
+TamariLattice.bintree_bintreesz__canonical__Order_BLattice [in Combi.Combi.bintree]
+TamariLattice.bintree_bintreesz__canonical__Order_BJoinSemilattice [in Combi.Combi.bintree]
+TamariLattice.bintree_bintreesz__canonical__Order_FinBMeetSemilattice [in Combi.Combi.bintree]
+TamariLattice.bintree_bintreesz__canonical__Order_BMeetSemilattice [in Combi.Combi.bintree]
+TamariLattice.bintree_bintreesz__canonical__Order_FinBPOrder [in Combi.Combi.bintree]
+TamariLattice.bintree_bintreesz__canonical__Order_BPOrder [in Combi.Combi.bintree]
+TamariLattice.bintree_bintreesz__canonical__Order_FinBPreorder [in Combi.Combi.bintree]
+TamariLattice.bintree_bintreesz__canonical__Order_BPreorder [in Combi.Combi.bintree]
+TamariLattice.bintree_bintreesz__canonical__Order_FinLattice [in Combi.Combi.bintree]
+TamariLattice.bintree_bintreesz__canonical__Order_FinMeetSemilattice [in Combi.Combi.bintree]
+TamariLattice.bintree_bintreesz__canonical__Order_Lattice [in Combi.Combi.bintree]
+TamariLattice.bintree_bintreesz__canonical__Order_MeetSemilattice [in Combi.Combi.bintree]
+TamariLattice.bintree_bintreesz__canonical__Order_FinJoinSemilattice [in Combi.Combi.bintree]
+TamariLattice.bintree_bintreesz__canonical__Order_JoinSemilattice [in Combi.Combi.bintree]
+TamariLattice.bintree_bintreesz__canonical__Order_FinPOrder [in Combi.Combi.bintree]
+TamariLattice.bintree_bintreesz__canonical__Order_FinPreorder [in Combi.Combi.bintree]
+TamariLattice.bintree_bintreesz__canonical__Order_POrder [in Combi.Combi.bintree]
+TamariLattice.bintree_bintreesz__canonical__Order_Preorder [in Combi.Combi.bintree]
+TamariLattice.Exports.botETamari [in Combi.Combi.bintree]
+TamariLattice.Exports.flipsz_join [in Combi.Combi.bintree]
+TamariLattice.Exports.flipsz_meet [in Combi.Combi.bintree]
+TamariLattice.Exports.right_sizes_meet [in Combi.Combi.bintree]
+TamariLattice.Exports.rotations_Tamari [in Combi.Combi.bintree]
+TamariLattice.Exports.TamariE [in Combi.Combi.bintree]
+TamariLattice.Exports.Tamari_vctleq [in Combi.Combi.bintree]
+TamariLattice.Exports.Tamari_flip [in Combi.Combi.bintree]
+TamariLattice.Exports.topETamari [in Combi.Combi.bintree]
+TamariLattice.HB_unnamed_factory_41 [in Combi.Combi.bintree]
+TamariLattice.HB_unnamed_factory_39 [in Combi.Combi.bintree]
+TamariLattice.HB_unnamed_mixin_38 [in Combi.Combi.bintree]
+TamariLattice.HB_unnamed_mixin_37 [in Combi.Combi.bintree]
+TamariLattice.HB_unnamed_factory_34 [in Combi.Combi.bintree]
+TamariLattice.HB_unnamed_mixin_33 [in Combi.Combi.bintree]
+TamariLattice.HB_unnamed_mixin_32 [in Combi.Combi.bintree]
+TamariLattice.HB_unnamed_factory_29 [in Combi.Combi.bintree]
+TamariLattice.Order_POrder_MeetJoin_isLattice__to__Order_POrder_isMeetSemilattice [in Combi.Combi.bintree]
+TamariLattice.Order_POrder_MeetJoin_isLattice__to__Order_POrder_isJoinSemilattice [in Combi.Combi.bintree]
+TamariLattice.Order_Le_isPOrder__to__Order_isDuallyPreorder [in Combi.Combi.bintree]
+TamariLattice.Order_Le_isPOrder__to__Order_Preorder_isDuallyPOrder [in Combi.Combi.bintree]
+TamariLattice.Tamari [in Combi.Combi.bintree]
+TamariLattice.Tjoin [in Combi.Combi.bintree]
+TamariLattice.Tmeet [in Combi.Combi.bintree]
+TamariVector [in Combi.Combi.bintree]
+tclosure [in Combi.SymGroup.presentSn]
+tinj [in Combi.SymGroup.towerSn]
+tinjval [in Combi.SymGroup.towerSn]
+towerSn_cfextprod__canonical__sesquilinear_Bilinear [in Combi.SymGroup.towerSn]
+to_mask [in Combi.Combi.subseq]
+to_word [in Combi.Combi.tableau]
+trace_seq [in Combi.HookFormula.hook]
+tree_decode [in Combi.Combi.bintree]
+tree_encode [in Combi.Combi.bintree]
+trivIseq [in Combi.LRrule.Greene]
+trivsetpart [in Combi.Combi.setpartition]
+trivSimpl [in Combi.SymGroup.presentSn]
+triv_repr [in Combi.SymGroup.reprSn]
+triv_mx [in Combi.SymGroup.reprSn]
+

U

+UDn [in Combi.Combi.Dyckword]
+UnDn [in Combi.Combi.Dyckword]
+undup_finType [in Combi.Basic.combclass]
+unifnat [in ALEA.Qmeasure]
+Uniform [in ALEA.Qmeasure]
+unif_def [in ALEA.Qmeasure]
+unif2fin [in ALEA.Qmeasure]
+union_intpartn [in Combi.Combi.partition]
+union_intpart [in Combi.Combi.partition]
+union_finType [in Combi.Basic.combclass]
+uniq_finType [in Combi.Basic.combclass]
+unitrig [in Combi.Basic.unitriginv]
+Unnamed_thm0 [in Combi.Combi.std]
+Unnamed_thm [in Combi.Combi.std]
+Unnamed_thm10 [in Combi.Combi.bintree]
+Unnamed_thm9 [in Combi.Combi.bintree]
+Unnamed_thm8 [in Combi.Combi.bintree]
+Unnamed_thm7 [in Combi.Combi.bintree]
+Unnamed_thm6 [in Combi.Combi.bintree]
+Unnamed_thm5 [in Combi.Combi.bintree]
+Unnamed_thm4 [in Combi.Combi.bintree]
+Unnamed_thm3 [in Combi.Combi.bintree]
+Unnamed_thm2 [in Combi.Combi.bintree]
+Unnamed_thm1 [in Combi.Combi.bintree]
+Unnamed_thm0 [in Combi.Combi.bintree]
+Unnamed_thm [in Combi.Combi.bintree]
+Unnamed_thm13 [in Combi.LRrule.Schensted]
+Unnamed_thm12 [in Combi.LRrule.Schensted]
+Unnamed_thm11 [in Combi.LRrule.Schensted]
+Unnamed_thm10 [in Combi.LRrule.Schensted]
+Unnamed_thm9 [in Combi.LRrule.Schensted]
+Unnamed_thm8 [in Combi.LRrule.Schensted]
+Unnamed_thm7 [in Combi.LRrule.Schensted]
+Unnamed_thm6 [in Combi.LRrule.Schensted]
+Unnamed_thm5 [in Combi.LRrule.Schensted]
+Unnamed_thm4 [in Combi.LRrule.Schensted]
+Unnamed_thm3 [in Combi.LRrule.Schensted]
+Unnamed_thm2 [in Combi.LRrule.Schensted]
+Unnamed_thm1 [in Combi.LRrule.Schensted]
+Unnamed_thm0 [in Combi.LRrule.Schensted]
+Unnamed_thm [in Combi.LRrule.Schensted]
+Unnamed_thm40 [in Combi.Combi.skewpart]
+Unnamed_thm39 [in Combi.Combi.skewpart]
+Unnamed_thm38 [in Combi.Combi.skewpart]
+Unnamed_thm37 [in Combi.Combi.skewpart]
+Unnamed_thm36 [in Combi.Combi.skewpart]
+Unnamed_thm35 [in Combi.Combi.skewpart]
+Unnamed_thm34 [in Combi.Combi.skewpart]
+Unnamed_thm33 [in Combi.Combi.skewpart]
+Unnamed_thm32 [in Combi.Combi.skewpart]
+Unnamed_thm31 [in Combi.Combi.skewpart]
+Unnamed_thm30 [in Combi.Combi.skewpart]
+Unnamed_thm29 [in Combi.Combi.skewpart]
+Unnamed_thm28 [in Combi.Combi.skewpart]
+Unnamed_thm27 [in Combi.Combi.skewpart]
+Unnamed_thm26 [in Combi.Combi.skewpart]
+Unnamed_thm25 [in Combi.Combi.skewpart]
+Unnamed_thm24 [in Combi.Combi.skewpart]
+Unnamed_thm23 [in Combi.Combi.skewpart]
+Unnamed_thm22 [in Combi.Combi.skewpart]
+Unnamed_thm21 [in Combi.Combi.skewpart]
+Unnamed_thm20 [in Combi.Combi.skewpart]
+Unnamed_thm19 [in Combi.Combi.skewpart]
+Unnamed_thm18 [in Combi.Combi.skewpart]
+Unnamed_thm17 [in Combi.Combi.skewpart]
+Unnamed_thm16 [in Combi.Combi.skewpart]
+Unnamed_thm15 [in Combi.Combi.skewpart]
+Unnamed_thm14 [in Combi.Combi.skewpart]
+Unnamed_thm13 [in Combi.Combi.skewpart]
+Unnamed_thm12 [in Combi.Combi.skewpart]
+Unnamed_thm11 [in Combi.Combi.skewpart]
+Unnamed_thm10 [in Combi.Combi.skewpart]
+Unnamed_thm9 [in Combi.Combi.skewpart]
+Unnamed_thm8 [in Combi.Combi.skewpart]
+Unnamed_thm7 [in Combi.Combi.skewpart]
+Unnamed_thm6 [in Combi.Combi.skewpart]
+Unnamed_thm5 [in Combi.Combi.skewpart]
+Unnamed_thm4 [in Combi.Combi.skewpart]
+Unnamed_thm3 [in Combi.Combi.skewpart]
+Unnamed_thm2 [in Combi.Combi.skewpart]
+Unnamed_thm1 [in Combi.Combi.skewpart]
+Unnamed_thm0 [in Combi.Combi.skewpart]
+Unnamed_thm [in Combi.Combi.skewpart]
+Unnamed_thm8 [in Combi.MPoly.MurnaghanNakayama]
+Unnamed_thm7 [in Combi.MPoly.MurnaghanNakayama]
+Unnamed_thm6 [in Combi.MPoly.MurnaghanNakayama]
+Unnamed_thm5 [in Combi.MPoly.MurnaghanNakayama]
+Unnamed_thm4 [in Combi.MPoly.MurnaghanNakayama]
+Unnamed_thm3 [in Combi.MPoly.MurnaghanNakayama]
+Unnamed_thm2 [in Combi.MPoly.MurnaghanNakayama]
+Unnamed_thm1 [in Combi.MPoly.MurnaghanNakayama]
+Unnamed_thm0 [in Combi.MPoly.MurnaghanNakayama]
+Unnamed_thm [in Combi.MPoly.MurnaghanNakayama]
+usize [in ALEA.Qmeasure]
+

V

+val2pos [in Combi.LRrule.stdplact]
+Vandet [in Combi.MPoly.antisym]
+Vanmx [in Combi.MPoly.antisym]
+Vanprod [in Combi.MPoly.antisym]
+vb_strip [in Combi.Combi.skewpart]
+vctleq [in Combi.Combi.bintree]
+vctmin [in Combi.Combi.bintree]
+vector_Lmodule_hasFinDim__to__vector_LSemiModule_hasFinDim [in Combi.MPoly.homogsym]
+vect_n_k [in Combi.Combi.vectNK]
+versions [in Combi.Combi.std]
+

W

+walk_to_corner [in Combi.HookFormula.hook]
+walk_to_corner_rec [in Combi.HookFormula.hook]
+wcord [in Combi.SymGroup.presentSn]
+WeakOrder.Exports.lepermP [in Combi.SymGroup.weak_order]
+WeakOrder.Exports.leperm_lengthE [in Combi.SymGroup.weak_order]
+WeakOrder.Exports.leperm_length [in Combi.SymGroup.weak_order]
+WeakOrder.fintype_Finite__to__fintype_isFinite [in Combi.SymGroup.weak_order]
+WeakOrder.fintype_Finite__to__eqtype_hasDecEq [in Combi.SymGroup.weak_order]
+WeakOrder.fintype_Finite__to__choice_Choice_isCountable [in Combi.SymGroup.weak_order]
+WeakOrder.fintype_Finite__to__choice_hasChoice [in Combi.SymGroup.weak_order]
+WeakOrder.HB_unnamed_mixin_14 [in Combi.SymGroup.weak_order]
+WeakOrder.HB_unnamed_mixin_13 [in Combi.SymGroup.weak_order]
+WeakOrder.HB_unnamed_factory_10 [in Combi.SymGroup.weak_order]
+WeakOrder.HB_unnamed_mixin_9 [in Combi.SymGroup.weak_order]
+WeakOrder.HB_unnamed_mixin_8 [in Combi.SymGroup.weak_order]
+WeakOrder.HB_unnamed_mixin_7 [in Combi.SymGroup.weak_order]
+WeakOrder.HB_unnamed_mixin_6 [in Combi.SymGroup.weak_order]
+WeakOrder.HB_unnamed_factory_1 [in Combi.SymGroup.weak_order]
+WeakOrder.leperm [in Combi.SymGroup.weak_order]
+WeakOrder.Order_Le_isPOrder__to__Order_isDuallyPreorder [in Combi.SymGroup.weak_order]
+WeakOrder.Order_Le_isPOrder__to__Order_Preorder_isDuallyPOrder [in Combi.SymGroup.weak_order]
+WeakOrder.perm_perm_of__canonical__Order_FinPOrder [in Combi.SymGroup.weak_order]
+WeakOrder.perm_perm_of__canonical__Order_FinPreorder [in Combi.SymGroup.weak_order]
+WeakOrder.perm_perm_of__canonical__Order_POrder [in Combi.SymGroup.weak_order]
+WeakOrder.perm_perm_of__canonical__Order_Preorder [in Combi.SymGroup.weak_order]
+WeakOrder.perm_perm_of__canonical__fintype_Finite [in Combi.SymGroup.weak_order]
+WeakOrder.perm_perm_of__canonical__choice_Countable [in Combi.SymGroup.weak_order]
+WeakOrder.perm_perm_of__canonical__choice_Choice [in Combi.SymGroup.weak_order]
+WeakOrder.perm_perm_of__canonical__eqtype_Equality [in Combi.SymGroup.weak_order]
+weight [in ALEA.Qmeasure]
+Wikipedia_Murnaghan_Nakayama [in Combi.SymGroup.Frobenius_char]
+wordcd [in Combi.SymGroup.presentSn]
+wordperm [in Combi.Combi.std]
+

Y

+Yamanouchi_yamn__canonical__fintype_SubFinite [in Combi.Combi.Yamanouchi]
+Yamanouchi_yamn__canonical__fintype_Finite [in Combi.Combi.Yamanouchi]
+Yamanouchi_yamn__canonical__choice_SubCountable [in Combi.Combi.Yamanouchi]
+Yamanouchi_yamn__canonical__choice_Countable [in Combi.Combi.Yamanouchi]
+Yamanouchi_yamn__canonical__choice_SubChoice [in Combi.Combi.Yamanouchi]
+Yamanouchi_yamn__canonical__choice_Choice [in Combi.Combi.Yamanouchi]
+Yamanouchi_yamn__canonical__eqtype_SubEquality [in Combi.Combi.Yamanouchi]
+Yamanouchi_yamn__canonical__eqtype_Equality [in Combi.Combi.Yamanouchi]
+Yamanouchi_yamn__canonical__eqtype_SubType [in Combi.Combi.Yamanouchi]
+Yamanouchi_yameval__canonical__fintype_SubFinite [in Combi.Combi.Yamanouchi]
+Yamanouchi_yameval__canonical__fintype_Finite [in Combi.Combi.Yamanouchi]
+Yamanouchi_yameval__canonical__choice_SubCountable [in Combi.Combi.Yamanouchi]
+Yamanouchi_yameval__canonical__choice_Countable [in Combi.Combi.Yamanouchi]
+Yamanouchi_yameval__canonical__choice_SubChoice [in Combi.Combi.Yamanouchi]
+Yamanouchi_yameval__canonical__choice_Choice [in Combi.Combi.Yamanouchi]
+Yamanouchi_yameval__canonical__eqtype_SubEquality [in Combi.Combi.Yamanouchi]
+Yamanouchi_yameval__canonical__eqtype_Equality [in Combi.Combi.Yamanouchi]
+Yamanouchi_yameval__canonical__eqtype_SubType [in Combi.Combi.Yamanouchi]
+yamrow [in Combi.LRrule.therule]
+yamtab [in Combi.LRrule.Yam_plact]
+yamtab_rec [in Combi.LRrule.Yam_plact]
+yamtab_shift [in Combi.LRrule.implem]
+yamtab_rows [in Combi.LRrule.implem]
+yam_of_stdtab [in Combi.Combi.stdtab]
+yam_of_stdtab_rec [in Combi.Combi.stdtab]
+Ymon [in Combi.MPoly.Cauchy]
+YoungLattice.choice_Countable__to__choice_Choice_isCountable [in Combi.Combi.partition]
+YoungLattice.choice_Countable__to__eqtype_hasDecEq [in Combi.Combi.partition]
+YoungLattice.choice_Countable__to__choice_hasChoice [in Combi.Combi.partition]
+YoungLattice.Exports.bottom_YoungE [in Combi.Combi.partition]
+YoungLattice.Exports.le_Young_sumn [in Combi.Combi.partition]
+YoungLattice.Exports.le_YoungP [in Combi.Combi.partition]
+YoungLattice.Exports.le_YoungE [in Combi.Combi.partition]
+YoungLattice.Exports.lt_Young_sumn [in Combi.Combi.partition]
+YoungLattice.HB_unnamed_mixin_115 [in Combi.Combi.partition]
+YoungLattice.HB_unnamed_factory_113 [in Combi.Combi.partition]
+YoungLattice.HB_unnamed_factory_111 [in Combi.Combi.partition]
+YoungLattice.HB_unnamed_mixin_110 [in Combi.Combi.partition]
+YoungLattice.HB_unnamed_mixin_109 [in Combi.Combi.partition]
+YoungLattice.HB_unnamed_factory_106 [in Combi.Combi.partition]
+YoungLattice.HB_unnamed_mixin_105 [in Combi.Combi.partition]
+YoungLattice.HB_unnamed_mixin_104 [in Combi.Combi.partition]
+YoungLattice.HB_unnamed_factory_101 [in Combi.Combi.partition]
+YoungLattice.HB_unnamed_mixin_100 [in Combi.Combi.partition]
+YoungLattice.HB_unnamed_factory_96 [in Combi.Combi.partition]
+YoungLattice.HB_unnamed_mixin_95 [in Combi.Combi.partition]
+YoungLattice.HB_unnamed_mixin_94 [in Combi.Combi.partition]
+YoungLattice.HB_unnamed_mixin_93 [in Combi.Combi.partition]
+YoungLattice.HB_unnamed_factory_89 [in Combi.Combi.partition]
+YoungLattice.intpartYoung [in Combi.Combi.partition]
+YoungLattice.join_Young [in Combi.Combi.partition]
+YoungLattice.join_Young_fun [in Combi.Combi.partition]
+YoungLattice.le_Young [in Combi.Combi.partition]
+YoungLattice.meet_Young [in Combi.Combi.partition]
+YoungLattice.meet_Young_fun [in Combi.Combi.partition]
+YoungLattice.Order_Lattice_Meet_isDistrLattice__to__Order_Lattice_isDistributive [in Combi.Combi.partition]
+YoungLattice.Order_POrder_MeetJoin_isLattice__to__Order_POrder_isMeetSemilattice [in Combi.Combi.partition]
+YoungLattice.Order_POrder_MeetJoin_isLattice__to__Order_POrder_isJoinSemilattice [in Combi.Combi.partition]
+YoungLattice.Order_Le_isPOrder__to__Order_isDuallyPreorder [in Combi.Combi.partition]
+YoungLattice.Order_Le_isPOrder__to__Order_Preorder_isDuallyPOrder [in Combi.Combi.partition]
+YoungLattice.ordtype_Inhabited__to__ordtype_isInhabited [in Combi.Combi.partition]
+YoungLattice.YoungLattice_intpartYoung__canonical__Order_BDistrLattice [in Combi.Combi.partition]
+YoungLattice.YoungLattice_intpartYoung__canonical__Order_DistrLattice [in Combi.Combi.partition]
+YoungLattice.YoungLattice_intpartYoung__canonical__Order_BLattice [in Combi.Combi.partition]
+YoungLattice.YoungLattice_intpartYoung__canonical__Order_BJoinSemilattice [in Combi.Combi.partition]
+YoungLattice.YoungLattice_intpartYoung__canonical__Order_BMeetSemilattice [in Combi.Combi.partition]
+YoungLattice.YoungLattice_intpartYoung__canonical__Order_BPOrder [in Combi.Combi.partition]
+YoungLattice.YoungLattice_intpartYoung__canonical__Order_BPreorder [in Combi.Combi.partition]
+YoungLattice.YoungLattice_intpartYoung__canonical__ordtype_InhLattice [in Combi.Combi.partition]
+YoungLattice.YoungLattice_intpartYoung__canonical__Order_Lattice [in Combi.Combi.partition]
+YoungLattice.YoungLattice_intpartYoung__canonical__Order_MeetSemilattice [in Combi.Combi.partition]
+YoungLattice.YoungLattice_intpartYoung__canonical__Order_JoinSemilattice [in Combi.Combi.partition]
+YoungLattice.YoungLattice_intpartYoung__canonical__ordtype_InhPOrder [in Combi.Combi.partition]
+YoungLattice.YoungLattice_intpartYoung__canonical__Order_POrder [in Combi.Combi.partition]
+YoungLattice.YoungLattice_intpartYoung__canonical__Order_Preorder [in Combi.Combi.partition]
+YoungLattice.YoungLattice_intpartYoung__canonical__ordtype_Inhabited [in Combi.Combi.partition]
+YoungLattice.YoungLattice_intpartYoung__canonical__choice_Countable [in Combi.Combi.partition]
+YoungLattice.YoungLattice_intpartYoung__canonical__choice_Choice [in Combi.Combi.partition]
+YoungLattice.YoungLattice_intpartYoung__canonical__eqtype_Equality [in Combi.Combi.partition]
+YoungSG [in Combi.SymGroup.Frobenius_char]
+

Z

+zcard [in Combi.SymGroup.permcent]
+zcoeff [in Combi.SymGroup.towerSn]
+


+

Record Index

+

B

+bintreesz [in Combi.Combi.bintree]
+box_skew [in Combi.Combi.partition]
+

C

+codesz [in Combi.SymGroup.presentSn]
+continuous [in ALEA.Ccpo]
+continuous2 [in ALEA.Ccpo]
+cpo [in ALEA.Ccpo]
+

D

+distr [in ALEA.Qmeasure]
+Dyck [in Combi.Combi.Dyckword]
+

E

+Example1.isOne [in Combi.Basic.combclass]
+Example2.isOne [in Combi.Basic.combclass]
+Example3.isOne [in Combi.Basic.combclass]
+

F

+fcont [in ALEA.Ccpo]
+fibered_set [in Combi.Combi.fibered_set]
+fin [in ALEA.Qmeasure]
+fmon [in ALEA.Ccpo]
+

H

+homogsym [in Combi.MPoly.homogsym]
+

I

+Inhabited.axioms_ [in Combi.Basic.ordtype]
+Inhabited.type [in Combi.Basic.ordtype]
+InhFinite.axioms_ [in Combi.Basic.ordtype]
+InhFinite.type [in Combi.Basic.ordtype]
+InhFinLattice.axioms_ [in Combi.Basic.ordtype]
+InhFinLattice.type [in Combi.Basic.ordtype]
+InhFinOrder.axioms_ [in Combi.Basic.ordtype]
+InhFinOrder.type [in Combi.Basic.ordtype]
+InhFinPOrder.axioms_ [in Combi.Basic.ordtype]
+InhFinPOrder.type [in Combi.Basic.ordtype]
+InhLattice.axioms_ [in Combi.Basic.ordtype]
+InhLattice.type [in Combi.Basic.ordtype]
+InhOrder.axioms_ [in Combi.Basic.ordtype]
+InhOrder.type [in Combi.Basic.ordtype]
+InhPOrder.axioms_ [in Combi.Basic.ordtype]
+InhPOrder.type [in Combi.Basic.ordtype]
+InhTBLattice.axioms_ [in Combi.Basic.ordtype]
+InhTBLattice.type [in Combi.Basic.ordtype]
+inputSpec [in Combi.LRrule.implem]
+intcomp [in Combi.Combi.composition]
+intcompn [in Combi.Combi.composition]
+intpart [in Combi.Combi.partition]
+intpartn [in Combi.Combi.partition]
+invariant_context [in Combi.Basic.congr]
+isInhabitedType.axioms_ [in Combi.Basic.ordtype]
+isInhabited.axioms_ [in Combi.Basic.ordtype]
+islub [in ALEA.Ccpo]
+IsoBottom.axioms_ [in Combi.Combi.composition]
+IsoTop.axioms_ [in Combi.Combi.composition]
+

M

+monotonic [in ALEA.Ccpo]
+monotonic2 [in ALEA.Ccpo]
+

O

+ord [in ALEA.Ccpo]
+Order [in ALEA.Ccpo]
+ordtreesz [in Combi.Combi.ordtree]
+outputSpec [in Combi.LRrule.implem]
+

P

+permuted [in Combi.Combi.permuted]
+porbits_map [in Combi.SymGroup.cycletype]
+

R

+rspair [in Combi.LRrule.Schensted]
+rstabpair [in Combi.LRrule.Schensted]
+

S

+SetContainingBothLeft.hypRabc [in Combi.LRrule.Greene_inv]
+setpart [in Combi.Combi.setpartition]
+stable [in ALEA.Ccpo]
+stable2 [in ALEA.Ccpo]
+stdtabn [in Combi.Combi.stdtab]
+stdtabsh [in Combi.Combi.stdtab]
+stdwordn [in Combi.Combi.std]
+subseqs [in Combi.Combi.subseq]
+sympoly [in Combi.MPoly.sympoly]
+

T

+tabsh [in Combi.Combi.tableau]
+

U

+unif [in ALEA.Qmeasure]
+

Y

+yameval [in Combi.Combi.Yamanouchi]
+yamn [in Combi.Combi.Yamanouchi]
+


+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Global IndexABCDEFGHIJKLMNOPQRSTUVWXYZ_other(8361 entries)
Notation IndexABCDEFGHIJKLMNOPQRSTUVWXYZ_other(178 entries)
Module IndexABCDEFGHIJKLMNOPQRSTUVWXYZ_other(68 entries)
Variable IndexABCDEFGHIJKLMNOPQRSTUVWXYZ_other(910 entries)
Library IndexABCDEFGHIJKLMNOPQRSTUVWXYZ_other(57 entries)
Lemma IndexABCDEFGHIJKLMNOPQRSTUVWXYZ_other(3352 entries)
Constructor IndexABCDEFGHIJKLMNOPQRSTUVWXYZ_other(19 entries)
Projection IndexABCDEFGHIJKLMNOPQRSTUVWXYZ_other(181 entries)
Inductive IndexABCDEFGHIJKLMNOPQRSTUVWXYZ_other(17 entries)
Section IndexABCDEFGHIJKLMNOPQRSTUVWXYZ_other(363 entries)
Instance IndexABCDEFGHIJKLMNOPQRSTUVWXYZ_other(67 entries)
Abbreviation IndexABCDEFGHIJKLMNOPQRSTUVWXYZ_other(261 entries)
Definition IndexABCDEFGHIJKLMNOPQRSTUVWXYZ_other(2820 entries)
Record IndexABCDEFGHIJKLMNOPQRSTUVWXYZ_other(68 entries)
+
This page has been generated by coqdoc +
+ +
+ + + \ No newline at end of file diff --git a/combi/1.1.0/toc.html b/combi/1.1.0/toc.html new file mode 100644 index 00000000..c2d69d14 --- /dev/null +++ b/combi/1.1.0/toc.html @@ -0,0 +1,1661 @@ + + + + + +Table of contents + + + + +
+ + + +
+ +
+

Library Combi.Combi.bintree: Binary Trees

+ +

Library Combi.Combi.composition: Integer Composition

+ +

Library Combi.Combi.Dyckword: Dyck Words

+ +

Library Combi.Combi.fibered_set: Bijection beetween fibered sets

+ +

Library Combi.Combi.partition: Integer Partitions

+ +

Library Combi.Combi.permuted: Listing the Permutations of a tuple or seq

+ +

Library Combi.Combi.multinomial: Multinomial Coefficients

+ +

Library Combi.Combi.ordtree

+ +

Library Combi.Combi.setpartition: Set Partitions

+ +

Library Combi.Combi.skewpart: Skew Partitions

+ +

Library Combi.Combi.skewtab: Skew Tableaux

+ +

Library Combi.Combi.std: Standard Words, i.e. Permutation as Words

+ +

Library Combi.Combi.stdtab: Standard Tableaux

+ +

Library Combi.Combi.subseq: Subsequence of a sequence as a fintype

+ +

Library Combi.Combi.tableau: Young Tableaux

+ +

Library Combi.Combi.vectNK: Integer Vector of Given Sums and Sizes

+ +

Library Combi.Combi.Yamanouchi: Yamanouchi Words

+ +

Library Combi.Erdos_Szekeres.Erdos_Szekeres: The Erdös-Szekeres theorem

+ +

Library Combi.LRrule.extract: Extracting the implementation to OCaml

+ +

Library Combi.LRrule.freeSchur: Free Schur functions

+ +

Library Combi.LRrule.Greene: Greene monotone subsequence numbers

+ +

Library Combi.LRrule.Greene_inv: Greene subsequence theorem

+ +

Library Combi.LRrule.implem: A Coq implementation of the Littlewood-Richarson rule

+ +

Library Combi.LRrule.plactic: The plactic monoid

+ +

Library Combi.LRrule.Schensted: The Robinson-Schensted correspondence

+ +

Library Combi.LRrule.shuffle: Shuffle and shifted shuffle

+ +

Library Combi.LRrule.stdplact: Plactic congruences and standardization

+ +

Library Combi.LRrule.therule: The Littlewood-Richardson rule

+ +

Library Combi.LRrule.Yam_plact: Plactic classes and Yamanouchi words

+ +

Library Combi.SSRcomplements.ordcast: Cast between ordinals

+ +

Library Combi.SSRcomplements.sorted: [path] and [sorted] complements

+ +

Library Combi.SSRcomplements.permcomp: Complement on permutations

+ +

Library Combi.SSRcomplements.tools: Missing SSReflect sequence and set lemmas

+ +

Library Combi.HookFormula.Frobenius_ident

+ +

Library Combi.HookFormula.hook: A proof of the Hook-Length formula

+ +

Library Combi.Basic.combclass: Fintypes for Combinatorics

+ +

Library Combi.Basic.congr: Rewriting rule and congruencies of words

+ +

Library Combi.Basic.ordtype: Ordered Types

+ +

Library Combi.Basic.unitriginv: Uni-triangular Matrices

+ +

Library Combi.SymGroup.cycles: The Cycle Decomposition of a Permutation

+ +

Library Combi.SymGroup.cycletype: The Cycle Type of a Permutation

+ +

Library Combi.SymGroup.Frobenius_char: Frobenius characteristic

+ +

Library Combi.SymGroup.permcent: The Centralizer of a Permutation

+ +

Library Combi.SymGroup.presentSn: The Coxeter Presentation of the Symmetric Group

+ +

Library Combi.SymGroup.reprSn: Basic representations of the Symmetric Groups

+ +

Library Combi.SymGroup.towerSn: The Tower of the Symmetric Groups

+ +

Library Combi.SymGroup.weak_order: The weak order on the Symmetric Group

+ +

Library Combi.MPoly.antisym: Antisymmetric polynomials and Vandermonde product

+ +

Library Combi.MPoly.Cauchy: Cauchy formula for symmetric polynomials

+ +

Library Combi.MPoly.homogsym: Homogenous Symmetric Polynomials

+ +

Library Combi.MPoly.sympoly: Symmetric Polynomials

+ +

Library Combi.MPoly.Schur_mpoly: Schur symmetric polynomials

+ +

Library Combi.MPoly.Schur_altdef: Alternants definition of Schur polynomials

+ +

Library Combi.MPoly.MurnaghanNakayama: Murnaghan-Nakayama rule

+ +

Library ALEA.Ccpo

+ +

Library ALEA.Misc

+ +

Library ALEA.Qmeasure: Finite probabilities

+ +
+
This page has been generated by coqdoc +
+ +
+ + + \ No newline at end of file diff --git a/combi/README.html b/combi/README.html index 12bfa875..1ae779d5 100644 --- a/combi/README.html +++ b/combi/README.html @@ -1,23 +1,30 @@ -

Coq-Combi

- -

Formalisation of (algebraic) combinatorics in Coq/MathComp.

- -

Authors

- -

Florent Hivert Florent.Hivert@lisn.fr

- +

Rocq-Combi

+

Formalisation of algebraic combinatorics in Rocq/MathComp.

+

+

Authors

+

Florent Hivert Florent.Hivert@lisn.fr

Contributors:

-
    -
  • Thibaut Benjamin (representation theory of the symmetric groups)
  • +
  • Thibaut Benjamin (representation theory of the symmetric +groups)
  • Jean Christophe Filliâtre (Why3 implementation)
  • -
  • Christine Paulin (SSreflect binding for ALEA + hook length formula)
  • +
  • Christine Paulin (SSreflect binding for ALEA + hook length +formula)
  • Olivier Stietel (hook length formula)
  • Cyril Cohen (MathComp compatibility + nix)
  • +
  • Pierre Roux (MathComp compatibility + nix)
-

This library was supported by additional discussions with:

-
  • Kazuhiko Sakaguchi (port on MathComp2 / Hierarchy Builder)
  • Georges Gonthier
  • @@ -25,70 +32,75 @@

    Authors

  • Pierre Yves Strub
  • the SSReflect mailing list
-

The project was transferred to mathcomp on 2021-10-20.

- -

Contents

- +

Contents

    -
  • basic theory of symmetric functions including

    - +
  • 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

    • +
    • 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 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.

    • +
    • 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

    - +

    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.

    • +
    • 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

    - +
  • 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

    • +
    • 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 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.

  • +
  • 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
    • +
    • 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
    • @@ -97,77 +109,89 @@

      Contents

    • binary trees, Dyck words and Catalan numbers
    • set partition and refinement order
  • -
  • the Coxeter presentation of the symmetric group.

    - +
  • 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
    • +
    • 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 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.

  • +
  • 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.

- -

Various unstable/unfinished experiments:

- +

Documentation

- -

Documentation

- - - -

Installation

- +

Various +unstable/unfinished experiments:

+ +

Installation

This library is based on

- - -

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 -

+

Here are the Opam packages I’m using

+
rocq-hierarchy-builder        1.9.1
+rocq-mathcomp-ssreflect       2.5.0
+rocq-mathcomp-algebra         2.5.0
+rocq-mathcomp-field           2.5.0
+rocq-mathcomp-fingroup        2.5.0
+rocq-mathcomp-character       2.5.0
+coq-mathcomp-multinomials     2.4.0