#16059: Equality vs hash for braid groups
-------------------------------------+-------------------------------------
       Reporter:  tmonteil           |        Owner:
           Type:  defect             |       Status:  needs_review
       Priority:  major              |    Milestone:  sage-6.2
      Component:  group theory       |   Resolution:
       Keywords:  braid group,       |    Merged in:
  hash, Cayley graph                 |    Reviewers:
        Authors:                     |  Work issues:
Report Upstream:  N/A                |       Commit:
         Branch:                     |  141adb09fe3e8f45079d706135dc071dc2e1eec7
  u/tmonteil/equality_vs_hash_for_braid_groups|     Stopgaps:
   Dependencies:                     |
-------------------------------------+-------------------------------------
Changes (by tmonteil):

 * status:  new => needs_review
 * commit:   => 141adb09fe3e8f45079d706135dc071dc2e1eec7


Old description:

> Playing with braid groups for a demo today, i want to see its Cayley
> graph in a neighbourhood of the neutral element:
>
> {{{
>
> ball = set()
> ball.add(B.one())
> for length in range(1,4):
>     for w in Words(alphabet=B.gens(), length=length):
>         ball.add(prod(w))
> G = B.cayley_graph(elements=ball, generators=B.gens()
> G.plot()
>
> }}}
>
> Hmmm, it looks locally like the free group, as if there was no relation !
>
> `s0 * s2` is a different vertex as `s2 * s0`, while:
>
> {{{
> sage: s0 * s2 == s2 * s0
> True
> }}}
>
> Indeed:
>
> {{{
> sage: hash(s0 * s2)
> 954209079
> sage: hash(s2 * s0)
> 1883627875
> }}}
>
> There should be a canonical representation for elements in Braid groups.
> At least, two equal elements should have the same hash. Currently,
> `cayley_graph` answers something wrong !

New description:

 Playing with braid groups for a demo today, i want to see its Cayley graph
 in a neighbourhood of the neutral element:

 {{{

 ball = set()
 ball.add(B.one())
 for length in range(1,4):
     for w in Words(alphabet=B.gens(), length=length):
         ball.add(prod(w))
 G = B.cayley_graph(elements=ball, generators=B.gens())
 G.plot()

 }}}

 [[Image(Cayley_before.png)]]

 Hmmm, it looks locally like the free group, as if there was no relation !

 `s0 * s2` is a different vertex as `s2 * s0`, while:

 {{{
 sage: s0 * s2 == s2 * s0
 True
 }}}

 Indeed:

 {{{
 sage: hash(s0 * s2)
 954209079
 sage: hash(s2 * s0)
 1883627875
 }}}

 There should be a canonical representation for elements in Braid groups.
 At least, two equal elements should have the same hash. Currently,
 `cayley_graph` answers something wrong !

 After the modification, the Cayley group looks like:

 [[Image(Cayley_after.png)]]

--

--
Ticket URL: <http://trac.sagemath.org/ticket/16059#comment:3>
Sage <http://www.sagemath.org>
Sage: Creating a Viable Open Source Alternative to Magma, Maple, Mathematica, 
and MATLAB

-- 
You received this message because you are subscribed to the Google Groups 
"sage-trac" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
Visit this group at http://groups.google.com/group/sage-trac.
For more options, visit https://groups.google.com/d/optout.

Reply via email to