Нужна помощь, чтобы вызвать код правильно в 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
в твоих примерах.