13 | | * Long run: stuff specific to the crystallographic case, starting with this weyl_group method, should go in RootLatticeRealizations.Crystallographic. That's for a follow up ticket on using axioms for root systems; but let's not depend on #10963 right now. |
| 24 | - Add an argument base_ring to the constructor |
| 25 | - Add a method base_ring |
| 26 | - Make add_edge honor this method when automatically adding edges |
| 27 | - Update cartan_matrix() to use the base_ring |
| 28 | - Add a method _test_base_ring that checks that all edge labels are |
| 29 | indeed in this base ring |
| 30 | - Implement is_crystallographic testing if the base ring is ZZ |
| 31 | - Add an argument symmetric=False to the constructor, and make |
| 32 | add_edge and symmetrizer use it. |
| 33 | - Add a method _test_dynkin_diagram that tests that the Dynkin |
| 34 | diagram indeed defines a proper root system. See in particular |
| 35 | cartan_matrix.is_generalized_cartan_matrix. |
15 | | * Refactor CoxeterMatrixGroup and WeylGroup to make the latter a subclass of the former, and lift as many features as possible from WeylGroup to CoxeterMatrixGroup. |
| 37 | * Update CartanMatrix |
| 38 | - Add a base ring argument to the constructor |
| 39 | - Update is_crystallographic |
| 40 | - Decide on the semantic of crystallographic (symmetrizable or |
| 41 | not?), and if possibly add an is_... method to decide whether the |
| 42 | entries are integral or not. |
| 43 | - Update is_affine |
| 44 | - Update is_finite |
| 45 | - Update is_generalized_cartan_matrix |
| 46 | |
| 47 | * CartanType |
| 48 | - Possibly update to accept appropriate data to build a |
| 49 | CoxeterDiagram |
| 50 | |
| 51 | * RootSystem |
| 52 | |
| 53 | - Decide on the meaning of root_lattice: either disable it in the |
| 54 | non integral case, or have it be the span of the roots over the |
| 55 | smallest available ring. |
| 56 | |
| 57 | * RootLatticeRealizations: |
| 58 | |
| 59 | - Feed this to RootSystem, and check that the root space and weight |
| 60 | space are built properly. |
| 61 | - Rename the weyl_group method to reflection_group, with an alias |
| 62 | from weyl_group; update the setting of the category. |
| 63 | - Long run: stuff specific to the crystallographic case, starting |
| 64 | with this weyl_group method, should go in |
| 65 | RootLatticeRealizations.Crystallographic. That's for a follow up |
| 66 | ticket on using axioms for root systems; but let's not depend on |
| 67 | #10963 right now. |
| 68 | |
| 69 | * RootSpace (for this ticket or some follow up): |
| 70 | |
| 71 | - Define the inner product |
| 72 | - Signature of the bilinear form |
| 73 | |
| 74 | * CoxeterMatrixGroup and WeylGroup: |
| 75 | |
| 76 | - Refactor WeylGroup to make it a subclass of CoxeterMatrixGroup, |
| 77 | and lift as many features as possible from WeylGroup to |
| 78 | CoxeterMatrixGroup. |
| 79 | - Check that, with a proper Dynkin diagram, the conversion to GAP |
| 80 | issue does not appear |
| 81 | - Now or later: we probably want the Weyl group elements to be |
| 82 | represented by Sage matrices, but keep a handle to the |
| 83 | corresponding Gap group. Currently one has to make a choice |
| 84 | between MatrixGroup_generic and MatrixGroup_gap. |
| 85 | |
| 86 | * Update WeylGroups: |
| 87 | |
| 88 | - inversions: use the "root_lattice" by default? |
| 89 | |
| 90 | * Cartan types |
| 91 | |
| 92 | - provide a dynkin_diagram method that builds the Dynkin diagram |
| 93 | from the Coxeter diagram when available? |
| 94 | - Test: H_3 and friends should have a working dynkin_diagram method |
| 95 | |
| 96 | * Prerequisites: |
| 97 | |
| 98 | - Add a _float_ method to UCF |