|
From: <nt...@us...> - 2010-10-02 14:54:01
|
Revision: 7601
http://mupad-combinat.svn.sourceforge.net/mupad-combinat/?rev=7601&view=rev
Author: nthiery
Date: 2010-10-02 14:53:54 +0000 (Sat, 02 Oct 2010)
Log Message:
-----------
Added demo around Kac algebras
Added Paths:
-----------
trunk/MuPAD-Combinat/lib/DOC/demo/kd.tex
Added: trunk/MuPAD-Combinat/lib/DOC/demo/kd.tex
===================================================================
--- trunk/MuPAD-Combinat/lib/DOC/demo/kd.tex (rev 0)
+++ trunk/MuPAD-Combinat/lib/DOC/demo/kd.tex 2010-10-02 14:53:54 UTC (rev 7601)
@@ -0,0 +1,341 @@
+% L'algèbre $KD(n)$ est pour l'instant implantée dans une feuille de
+% travail séparée que l'on charge ici:
+\begin{Mexin}
+read("experimental/2005-09-08-David.mu"):
+\end{Mexin}
+% \Mup{KD(3)} modélise l'algèbre abstraite; après l'avoir construite
+\begin{Mexin}
+KD3 := KD(3):
+\end{Mexin}
+\begin{Mexout}
+\end{Mexout}
+% nous demandons quelles sont ses propriétés connues:
+\begin{Mexin}
+KD3::categories
+\end{Mexin}
+\begin{Mexout}
+ [Cat::HopfAlgebraWithSeveralBases(Q(II, epsilon)),
+ TwistedDihedralOrQuaternionGroupAlgebra(3),
+ Cat::AlgebraWithSeveralBases(Q(II, epsilon)),
+ Cat::Algebra(Q(II, epsilon)),
+ Cat::ModuleWithSeveralBases(Q(II, epsilon)),
+ Cat::Ring, Cat::Module(Q(II, epsilon)),
+ Cat::DomainWithSeveralRepresentations, Cat::Rng, Cat::SemiRing,
+ Cat::LeftModule(KD(3, Q(II, epsilon))),
+ Cat::LeftModule(Q(II, epsilon)), Cat::RightModule(Q(II, epsilon)),
+ Cat::UseOverloading, Cat::FacadeDomain, Cat::SemiRng, Cat::Monoid,
+ Cat::AbelianGroup, Cat::SemiGroup, Cat::CancellationAbelianMonoid,
+ Cat::AbelianMonoid, Cat::AbelianSemiGroup, Cat::Object,
+ Cat::BaseCategory]
+\end{Mexout}
+% À quelques exceptions près, ce sont des informations mathématiques.
+
+% Pour faire des calculs, nous avons besoin d'une représentation
+% concrète de cette algèbre. Celle utilisant la base du groupe est
+% modélisée par \Mup{KD3::group}. Nous commençons par introduire des
+% notations courtes pour ses générateurs:
+\begin{Mexin}
+[aa,bb] := KD3::group::algebraGenerators::list()
+\end{Mexin}
+\begin{Mexout}
+ [B(a), B(b)]
+\end{Mexout}
+% Les quelques calculs suivants, dans la base du groupe, montrent que le
+% produit n'est pas déformé:
+\begin{Mexin}
+bb^2
+\end{Mexin}
+\begin{Mexout}
+ B(1)
+\end{Mexout}
+\begin{Mexin}
+aa^2, aa^6, bb*aa
+\end{Mexin}
+\begin{Mexout}
+ 2 5
+ B(a ), B(1), B(a b)
+\end{Mexout}
+\begin{Mexin}
+(1 - aa^3)*(bb + aa^3) + 1/2*bb*aa^3
+\end{Mexin}
+\begin{Mexout}
+ 3
+ 1/2 B(a b)
+\end{Mexout}
+% De part la théorie des représentations, l'algèbre $KD(3)$ admet une
+% autre représentation concrète comme algèbre de matrices par blocs,
+% modélisées par \Mup{KD3::matrix}. Nous utilisons ici l'isomorphisme
+% entre les deux représentations (transformée de Fourier, d'où la
+% présence de \Mup{epsilon} qui représente une racine $\epsilon$ de l'unité).
+\begin{Mexin}
+KD3::M(aa + 2*bb)
+\end{Mexin}
+\begin{Mexout}
+ +- -+
+ | 3, 0, 0, 0, 0, 0, 0, 0 |
+ | |
+ | 0, -1, 0, 0, 0, 0, 0, 0 |
+ | |
+ | 0, 0, -3, 0, 0, 0, 0, 0 |
+ | |
+ | 0, 0, 0, 1, 0, 0, 0, 0 |
+ | |
+ | 0, 0, 0, 0, epsilon, 2, 0, 0 |
+ | |
+ | 0, 0, 0, 0, 2, 1 - epsilon, 0, 0 |
+ | |
+ | 0, 0, 0, 0, 0, 0, epsilon - 1, 2 |
+ | |
+ | 0, 0, 0, 0, 0, 0, 2, -epsilon |
+ +- -+
+\end{Mexout}
+% Cet isomorphisme n'a été explicitement implanté que dans un sens (en
+% donnant l'image de $a$ et $b$); l'isomorphisme inverse est construit
+% automatiquement par inversion de matrices.
+
+% Le coproduit est déformé par un cocycle du sous-groupe $\langle
+% a^3,b\rangle$. Pour les éléments de ce sous-groupe, le coproduit n'est
+% donc pas déformé (\# dénote le produit tensoriel $\otimes$):
+\begin{Mexin}
+coproduct(aa^3), coproduct(bb)
+\end{Mexin}
+\begin{Mexout}
+ 3 3
+ B(a ) # B(a ), B(b) # B(b)
+\end{Mexout}
+% Par contre, le coproduit de $a$ est compliqué:
+\begin{Mexin}
+coproduct(aa)
+\end{Mexin}
+\begin{Mexout}
+ 4 4 / II \ 4 5 / II \ 4 2
+ 1/16 B(a b) # B(a b) + | - -- - 1/16 | B(a b) # B(a ) + | -- - 1/16 | B(a b) # B(a b) +
+ \ 8 / \ 8 /
+
+ ... 100 lignes coupées ...
+
+ 2
+ -1/16 B(a) # B(a ) + 7/16 B(a) # B(a)
+\end{Mexout}
+
+% Nous considérons maintenant l'antipode. C'est une application linéaire
+% dont la matrice est donnée par:
+% \begin{Mexin}
+% KD3::G::moduleMorphismMatrix(KD3::G::antipode)
+% \end{Mexin}
+% \begin{Mexout}
+% +- -+
+% | 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 |
+% | |
+% | 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 |
+% | |
+% | 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0 |
+% | |
+% | 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0 |
+% | |
+% | 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 |
+% | |
+% | 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 |
+% | |
+% | 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 |
+% | |
+% | 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 |
+% | |
+% | 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0 |
+% | |
+% | 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 |
+% | |
+% | 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 |
+% | |
+% | 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1 |
+% +- -+
+% \end{Mexout}
+% et dont le noyau est trivial:
+% \begin{Mexin}
+% KD3::G::kernelOfModuleMorphism(KD3::G::antipode)
+% \end{Mexin}
+% \begin{Mexout}
+% []
+% \end{Mexout}
+
+% Pour illustrer des calculs tensoriels typiques, nous vérifions que
+% l'antipode est correcte, c'est-à-dire que la formule $\mu \circ (\id
+% \otimes S) \circ \Delta$ redonne bien la counité de l'algèbre de Hopf:
+\begin{Mexin}
+K := KD3::G: // un simple raccourci
+checkAntipode := K::mu @ ( K::id # K::antipode ) @ K::coproduct:
+\end{Mexin}
+\begin{Mexin}
+checkAntipode(x) $ x in K::basis::list()
+\end{Mexin}%$
+\begin{Mexout}
+ B(1), B(1), B(1), B(1), B(1), B(1), B(1), B(1), B(1), B(1), B(1), B(1)
+\end{Mexout}
+
+
+\begin{Mexin}
+automorphismGroup := KD3::G::algebraEmbeddings(KD3::G)
+\end{Mexin}
+\begin{Mexin}
+for phi in automorphismGroup do
+ fprint(Unquoted,0, _concat("-" $ 78)):
+ print(hold(phi)(a) = phi(KD3::G::algebraGenerators[a]));
+ print(hold(phi)(b) = phi(KD3::G::algebraGenerators[b]));
+end:
+\end{Mexin}
+
+% Notre étude concernait les coidéaux de $KD(3)$, c'est à dire des
+% sous-algèbres «stables à droite» pour le coproduit. Notons $e$ les
+% unités matricielles de l'algèbre.
+\begin{Mexin}
+e := KD3::e:
+\end{Mexin}
+% Nous calculons maintenant une base du coidéal $K_2:=I(e_1+e_2)$ engendré
+% par $e_1+e_2$:
+\begin{Mexin}
+K2basis := coidealAndAlgebraClosure([ e(1)+e(2) ])
+\end{Mexin}
+\begin{Mexout}
+ -- +- -+ +- -+ +- -+ --
+ | | 1, 0, 0, 0, 0, 0, 0, 0 | | 0, 0, 0, 0, 0, 0, 0, 0 | | 0, 0, 0, 0, 0, 0, 0, 0 | |
+ | | | | | | | |
+ | | 0, 1, 0, 0, 0, 0, 0, 0 | | 0, 0, 0, 0, 0, 0, 0, 0 | | 0, 0, 0, 0, 0, 0, 0, 0 | |
+ | | | | | | | |
+ | | 0, 0, 0, 0, 0, 0, 0, 0 | | 0, 0, 1, 0, 0, 0, 0, 0 | | 0, 0, 0, 0, 0, 0, 0, 0 | |
+ | | | | | | | |
+ | | 0, 0, 0, 0, 0, 0, 0, 0 | | 0, 0, 0, 1, 0, 0, 0, 0 | | 0, 0, 0, 0, 0, 0, 0, 0 | |
+ | | |, | |, ..., | | |
+ | | 0, 0, 0, 0, 0, 0, 0, 0 | | 0, 0, 0, 0, 0, 0, 0, 0 | | 0, 0, 0, 0, 0, 0, 0, 0 | |
+ | | | | | | | |
+ | | 0, 0, 0, 0, 0, 0, 0, 0 | | 0, 0, 0, 0, 0, 0, 0, 0 | | 0, 0, 0, 0, 0, 0, 0, 0 | |
+ | | | | | | | |
+ | | 0, 0, 0, 0, 0, 0, 0, 0 | | 0, 0, 0, 0, 0, 0, 0, 0 | | 0, 0, 0, 0, 0, 0, 0, 0 | |
+ | | | | | | | |
+ | | 0, 0, 0, 0, 0, 0, 0, 0 | | 0, 0, 0, 0, 0, 0, 0, 0 | | 0, 0, 0, 0, 0, 0, 0, 1 | |
+ -- +- -+ +- -+ +- -+ --
+\end{Mexout}
+% +- -+ +- -+
+% | 0, 0, 0, 0, 0, 0, 0, 0 | | 0, 0, 0, 0, 0, 0, 0, 0 |
+% | | | |
+% | 0, 0, 0, 0, 0, 0, 0, 0 | | 0, 0, 0, 0, 0, 0, 0, 0 |
+% | | | |
+% | 0, 0, 0, 0, 0, 0, 0, 0 | | 0, 0, 0, 0, 0, 0, 0, 0 |
+% | | | |
+% | 0, 0, 0, 0, 0, 0, 0, 0 | | 0, 0, 0, 0, 0, 0, 0, 0 |
+% | |, | |,
+% | 0, 0, 0, 0, 0, -1, 0, 0 | | 0, 0, 0, 0, 1, 0, 0, 0 |
+% | | | |
+% | 0, 0, 0, 0, 1, 0, 0, 0 | | 0, 0, 0, 0, 0, 1, 0, 0 |
+% | | | |
+% | 0, 0, 0, 0, 0, 0, 0, 0 | | 0, 0, 0, 0, 0, 0, 0, 0 |
+% | | | |
+% | 0, 0, 0, 0, 0, 0, 0, 0 | | 0, 0, 0, 0, 0, 0, 0, 0 |
+% +- -+ +- -+
+
+% +- -+ +- -+ --
+% | 0, 0, 0, 0, 0, 0, 0, 0 | | 0, 0, 0, 0, 0, 0, 0, 0 | |
+% | | | | |
+% | 0, 0, 0, 0, 0, 0, 0, 0 | | 0, 0, 0, 0, 0, 0, 0, 0 | |
+% | | | | |
+% | 0, 0, 0, 0, 0, 0, 0, 0 | | 0, 0, 0, 0, 0, 0, 0, 0 | |
+% | | | | |
+% | 0, 0, 0, 0, 0, 0, 0, 0 | | 0, 0, 0, 0, 0, 0, 0, 0 | |
+% | |, | | |
+% | 0, 0, 0, 0, 0, 0, 0, 0 | | 0, 0, 0, 0, 0, 0, 0, 0 | |
+% | | | | |
+% | 0, 0, 0, 0, 0, 0, 0, 0 | | 0, 0, 0, 0, 0, 0, 0, 0 | |
+% | | | | |
+% | 0, 0, 0, 0, 0, 0, 1, 0 | | 0, 0, 0, 0, 0, 0, 0, 0 | |
+% | | | | |
+% | 0, 0, 0, 0, 0, 0, 0, 0 | | 0, 0, 0, 0, 0, 0, 0, 1 | |
+% +- -+ +- -+ --
+%\end{Mexout}
+% \begin{Mexin}
+% expose(KD3::G::algebraClosure)
+% \end{Mexin}
+% \begin{Mexout}
+% proc(generators : Type::ListOf(KD3::G)) : Type::ListOf(KD3::G)
+% name KD3::G::algebraClosure;
+% begin
+% userinfo(3, "Computing the (non unital!) algebra closure");
+% dom::moduleClosure(generators, [proc(x : dom) : Type::SequenceOf(do\
+% m)
+% local generator;
+% begin
+% x*generator $ generator in generators
+% end_proc])
+% end_proc
+% \end{Mexout}
+% On reconnaît $e_1+e_2$ dans le premier élément.
+
+% Manipuler directement une telle base n'est pas commode pour étudier
+% les propriétés algébriques de $K_2$. Nous construisons donc un objet
+% qui modélise cette sous-algèbre, en promettant à \mupad qu'il s'agit
+% d'une sous-algèbre de Hopf (ce que nous savions par ailleurs).
+\begin{Mexin}
+K2 := Dom::SubFreeModule(K2basis,
+ [Cat::FiniteDimensionalHopfAlgebraWithBasis(KD3::coeffRing)]):
+\end{Mexin}
+% Nous pouvons maintenant demander si cette sous-algèbre est commutative
+% ou cocommutative:
+\begin{Mexin}
+K2::isCommutative(), K2::isCocommutative()
+\end{Mexin}
+\begin{Mexout}
+ TRUE, FALSE
+\end{Mexout}
+% Nous en déduisons que c'est forcément l'algèbre duale d'une algèbre de
+% groupe que nous souhaitons retrouver. Pour cela, nous construisons
+% l'algèbre duale de $K_2$:
+\begin{Mexin}
+K2dual := K2::Dual():
+\end{Mexin}
+% L'algorithmique sous-jacente est triviale: les opérateurs sont définis
+% par simple transposition de ceux de l'algèbre originale. Mais il est
+% pratique de ne pas avoir à s'en soucier.
+
+% Calculons les éléments de type groupe de cette algèbre (ici,
+% l'algorithmique est non triviale!):
+\begin{Mexin}
+K2dual::groupLikeElements()
+\end{Mexin}
+\begin{Mexout}
+ [B([1, 1]), B([7, 7]), B([3, 3]), B([8, 8]), B([5, 5]) + -II B([6, 5]), B([5, 5]) + II B([6, 5])]
+\end{Mexout}
+% Ces éléments forment un groupe, le groupe intrinsèque. Pour le
+% déterminer, il reste à reconnaître la règle de produit.
+\begin{Mexin}
+G := K2dual::intrinsicGroup():
+G::list()
+\end{Mexin}
+\begin{Mexout}
+ [[], [1], [1, 1], [2], [1, 2], [1, 1, 2]]
+\end{Mexout}
+\begin{Mexin}
+D3 := DihedralGroup(3):
+nops(D3::groupEmbeddings(G))
+\end{Mexin}
+
+% $G$ modélise le groupe; ses éléments on été exprimés en fonction de
+% générateurs choisis au hasard. C'est brutal, \mupad n'ayant que des
+% fonctionnalités élémentaires pour les groupes. Cela est cependant
+% suffisant ici: on reconnaît à nouveau un groupe dihédral. Nous
+% finissons en calculant à titre de vérification quelques informations
+% sur la théorie des représentations:
+\begin{Mexin}
+K2dual::isSemiSimple()
+\end{Mexin}
+\begin{Mexout}
+ TRUE
+\end{Mexout}
+\begin{Mexin}
+K2dual::simpleModulesDimensions()
+\end{Mexin}
+\begin{Mexout}
+ [2, 1, 1]
+\end{Mexout}
+
+%%% Local Variables:
+%%% mode: latex
+%%% TeX-master: t
+%%% End:
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|