Нужна помощь, чтобы вызвать код правильно в GAP

У меня есть следующие входные данные в среде GAP:

Я хотел проверить, находится ли определенный элемент моей Свободной группы в группе или нет, поэтому я использовал код:

    > a in e;

и ожидал получить

    [ true

Но это не сработало:

    [ false

Но когда я убрал длинный зеленый [на картинке справа вверху, ответ стал ясен:

Могу ли я попросить помощи, чтобы не делать это вручную? Благодарю.

Изменить: Вот коды, которые я сделал для группы Free для двух генераторов. Посмотрите на результаты в конце.

1 ответ

Решение

Действительно, GAP ведет себя правильно здесь: a является элементом f а не из w, Если вы хотите получить доступ к генераторам недавно созданной конечно представленной группы, используйте GeneratorsOfGroup(w) чтобы получить их список.

Пример, основанный на оригинальном вопросе, но также демонстрирующий, как использовать ParseRelators для упрощения ввода:

gap> f:=FreeGroup("a","b");
<free group on the generators [ a, b ]>
gap> w:=f/ParseRelators(f,"a^2,b^3,(ab)^4");
<fp group on the generators [ a, b ]>
gap> Size(w);
24
gap> e:=Elements(w);
[ <identity ...>, a*b*a*b^-1*a*b, b, (a*b)^2, b*a*b^-1*a*b, a*b^-1*a*b*a, 
  b^-1*a*b^-1, a, b^-1, a*b^-1*a, a*b*a*b^-1, (a*b^-1)^2, a*b*a*b^-1*a, 
  b*a*b^-1, b^-1*a, b*a*b, b*a*b^-1*a, a*b^-1*a*b, b^-1*a*b*a, a*b^-1, b*a, 
  a*b, a*b*a, b^-1*a*b ]
gap> gens:=GeneratorsOfGroup(w);
[ a, b ]
gap> a:=gens[1];
a
gap> a in e;
true

Теперь довольно техническая деталь: действительно, a от f а также a от w принадлежат к разным семьям:

gap> FamilyObj(GeneratorsOfGroup(f)[1]) = FamilyObj(GeneratorsOfGroup(w)[1]);
false

Вот почему вы получаете false в твоих примерах.

Другие вопросы по тегам