sagemath / sage

Main repository of SageMath
https://www.sagemath.org
Other
1.44k stars 481 forks source link

Introduce a class for generalized Coxeter graphs #16126

Open jplab opened 10 years ago

jplab commented 10 years ago

Coxeter graphs are undirected graph without multiedges with possibly labeled edges within the set {4,5,...,oo}. Coxeter graphs encode Coxeter systems. A Coxeter system is a group presented with a special set of generators.

To represent a Coxeter group, one can use the canonical geometric representation, see Chapter 5 of Humphreys for instance. In this representation, the group acts faithfully on a vector space and preserves a canonical bilinear form.

For infinite Coxeter groups, it is useful to allow a more general bilinear form, which still gives a faithful representation and has the advantage that every reflection subgroup is represented as a general geometric representation.

These more general representations can be encoded into a generalized Coxeter graph where labels "oo" can be replaced by any real number $c <= -1$. The case $c=-1$ represents the canonical choice, in this case one can keep the label "oo".

The class for generalized Coxeter graphs will be based on the class DynkinDiagram and adapted for its purposes.

Depends on #17798

CC: @sagetrac-vripoll @nthiery @fchapoton @sagetrac-sage-combinat @KPanComputes

Component: combinatorics

Keywords: coxeter, days57

Author: Jean-Philippe Labbé

Branch/Commit: u/jipilab/ticket16126 @ 8cf2af9

Issue created by migration from https://trac.sagemath.org/ticket/16126

jplab commented 9 years ago

Dependencies: #17798

tscrim commented 9 years ago
comment:5

Now that #17798 is merged, we should get to work on this next. Jean-Philippe, do you have any (partial) code for this?

jplab commented 9 years ago
comment:6

Hi, Yes, for sure!

I already have some old initial code. I haven't looked at it for a while, but I will push it in the next few days.

jplab commented 9 years ago

Branch: u/jipilab/ticket16126

jplab commented 9 years ago

Commit: c0ac5a4

jplab commented 9 years ago
comment:8

Here is a first "very dirty version" of the patch.

Basically, everything is still to be looked over...

This is just for you to have a look. I will continue in more detail soon enough.


New commits:

f2f84ebInitial commit: added the file coxeter_graph.py
6a2e20cSome minor changes to start the patch
987aefcMerge branch 'ticket16126' into newticket16126
afd5e59Added necessary startup files
9b135a5Changed the occurences of Dynkin to Coxeter
c0ac5a4Made some Cartan to Coxeter
fchapoton commented 9 years ago

Author: Jean-Philippe Labbé

7ed8c4ca-6d56-4ae9-953a-41e42b4ed313 commented 8 years ago

Changed commit from c0ac5a4 to 8cf2af9

7ed8c4ca-6d56-4ae9-953a-41e42b4ed313 commented 8 years ago

Branch pushed to git repo; I updated commit sha1. New commits:

2975f1cSome partial broken edits
8cf2af9Changed each type to construct a Coxeter graph
jplab commented 8 years ago
comment:11

Some more broken edits.

No need to give comments yet... There is still too many things to look after. I just push so you have an overview.

I will come up with a DOTO list for the ticket once things are a bit less messy.

Basically, I decided to follow the structure of CoxeterMatrix instead of DynkinDiagrams... This requires a lot a adaptation and overall modification of everything...

Basically, it seems to me that hardcoding the graphs is the best way to go. From there... everything should go through...

I'm still learning a lot how the structure goes. But it seems that DynkinDiagrams should also be somehow re-engineered so that it fits better?!

Basically, once we have CoxeterGraph and CoxeterMatrix up and running, the next logic step would be to have a parent type for CoxeterGraph-DynkinDiagram and then for CoxeterMatrix, CartanMatrix. But this is for later...