Braid Move Calculator

AUTHORS:

  • Dinakar Muthiah (2014-06-03): initial version
class sage.combinat.root_system.braid_move_calculator.BraidMoveCalculator(coxeter_group)

Bases: object

Helper class to compute braid moves.

chain_of_reduced_words(start_word, end_word)

Compute the chain of reduced words from stard_word to end_word.

INPUT:

  • start_word, end_word – two reduced expressions for the long word

EXAMPLES:

sage: from sage.combinat.root_system.braid_move_calculator import BraidMoveCalculator
sage: W = CoxeterGroup(['A',5])
sage: B = BraidMoveCalculator(W)
sage: B.chain_of_reduced_words((1,2,1,3,2,1,4,3,2,1,5,4,3,2,1), # not tested
....:                          (5,4,5,3,4,5,2,3,4,5,1,2,3,4,5))
put_in_front(k, input_word)

Return a list of reduced words starting with input_word and ending with a reduced word whose first letter is k. There still remains an issue with 0 indices.

EXAMPLES:

sage: from sage.combinat.root_system.braid_move_calculator import BraidMoveCalculator
sage: W = CoxeterGroup(['C',3])
sage: B = BraidMoveCalculator(W)
sage: B.put_in_front(2, (3, 2, 3, 1, 2, 3, 1, 2, 1))
((3, 2, 3, 1, 2, 3, 1, 2, 1),
 (3, 2, 3, 1, 2, 1, 3, 2, 1),
 (3, 2, 3, 2, 1, 2, 3, 2, 1),
 (2, 3, 2, 3, 1, 2, 3, 2, 1))
sage: B.put_in_front(1, (3, 2, 3, 1, 2, 3, 1, 2, 1))
((3, 2, 3, 1, 2, 3, 1, 2, 1),
 (3, 2, 1, 3, 2, 3, 1, 2, 1),
 (3, 2, 1, 3, 2, 3, 2, 1, 2),
 (3, 2, 1, 2, 3, 2, 3, 1, 2),
 (3, 1, 2, 1, 3, 2, 3, 1, 2),
 (1, 3, 2, 1, 3, 2, 3, 1, 2))
sage: B.put_in_front(1, (1, 3, 2, 3, 2, 1, 2, 3, 2))
((1, 3, 2, 3, 2, 1, 2, 3, 2),)