Braid Orbit¶
Cython function to compute the orbit of the braid moves on a reduced word.
- sage.combinat.root_system.braid_orbit.BraidOrbit(word, rels)[source]¶
Return the orbit of
word
by all replacements given byrels
.INPUT:
word
– list of integersrels
– list of pairs(A, B)
, whereA
andB
are lists of integers the same length
EXAMPLES:
sage: from sage.combinat.root_system.braid_orbit import BraidOrbit sage: word = [1,2,1,3,2,1] sage: rels = [[[2, 1, 2], [1, 2, 1]], [[3, 1], [1, 3]], [[3, 2, 3], [2, 3, 2]]] sage: sorted(BraidOrbit(word, rels)) [(1, 2, 1, 3, 2, 1), (1, 2, 3, 1, 2, 1), (1, 2, 3, 2, 1, 2), (1, 3, 2, 1, 3, 2), (1, 3, 2, 3, 1, 2), (2, 1, 2, 3, 2, 1), (2, 1, 3, 2, 1, 3), (2, 1, 3, 2, 3, 1), (2, 3, 1, 2, 1, 3), (2, 3, 1, 2, 3, 1), (2, 3, 2, 1, 2, 3), (3, 1, 2, 1, 3, 2), (3, 1, 2, 3, 1, 2), (3, 2, 1, 2, 3, 2), (3, 2, 1, 3, 2, 3), (3, 2, 3, 1, 2, 3)] sage: len(_) 16
>>> from sage.all import * >>> from sage.combinat.root_system.braid_orbit import BraidOrbit >>> word = [Integer(1),Integer(2),Integer(1),Integer(3),Integer(2),Integer(1)] >>> rels = [[[Integer(2), Integer(1), Integer(2)], [Integer(1), Integer(2), Integer(1)]], [[Integer(3), Integer(1)], [Integer(1), Integer(3)]], [[Integer(3), Integer(2), Integer(3)], [Integer(2), Integer(3), Integer(2)]]] >>> sorted(BraidOrbit(word, rels)) [(1, 2, 1, 3, 2, 1), (1, 2, 3, 1, 2, 1), (1, 2, 3, 2, 1, 2), (1, 3, 2, 1, 3, 2), (1, 3, 2, 3, 1, 2), (2, 1, 2, 3, 2, 1), (2, 1, 3, 2, 1, 3), (2, 1, 3, 2, 3, 1), (2, 3, 1, 2, 1, 3), (2, 3, 1, 2, 3, 1), (2, 3, 2, 1, 2, 3), (3, 1, 2, 1, 3, 2), (3, 1, 2, 3, 1, 2), (3, 2, 1, 2, 3, 2), (3, 2, 1, 3, 2, 3), (3, 2, 3, 1, 2, 3)] >>> len(_) 16
- sage.combinat.root_system.braid_orbit.is_fully_commutative(word, rels)[source]¶
Check if the braid orbit of
word
is using a braid relation.INPUT:
word
– list of integersrels
– list of pairs(A, B)
, whereA
andB
are lists of integers the same length
EXAMPLES:
sage: from sage.combinat.root_system.braid_orbit import is_fully_commutative sage: rels = [[[2, 1, 2], [1, 2, 1]], [[3, 1], [1, 3]], [[3, 2, 3], [2, 3, 2]]] sage: word = [1,2,1,3,2,1] sage: is_fully_commutative(word, rels) False sage: word = [1,2,3] sage: is_fully_commutative(word, rels) True
>>> from sage.all import * >>> from sage.combinat.root_system.braid_orbit import is_fully_commutative >>> rels = [[[Integer(2), Integer(1), Integer(2)], [Integer(1), Integer(2), Integer(1)]], [[Integer(3), Integer(1)], [Integer(1), Integer(3)]], [[Integer(3), Integer(2), Integer(3)], [Integer(2), Integer(3), Integer(2)]]] >>> word = [Integer(1),Integer(2),Integer(1),Integer(3),Integer(2),Integer(1)] >>> is_fully_commutative(word, rels) False >>> word = [Integer(1),Integer(2),Integer(3)] >>> is_fully_commutative(word, rels) True