Exercises from A Book of Abstract Algebra by Charles C Pinter solved in Raku.
zip-many
¶sub zip-many (@arrs) { @arrs == 1 ?? @arrs[0][] !! [Z] @arrs }
sub zip-many (@arrs) { #`(Sub|139734349541608) ... }
generate
¶sub generate(%eqs, $s)
{
my @results;
for %eqs.kv -> $key, $val {
if $s ~~ /$key/ { @results.push($s.subst(/$key/, $val)); }
if $s ~~ /$val/ { @results.push($s.subst(/$val/, $key)); }
}
.take for @results;
.take for flat zip-many @results.map({ gather generate(%eqs, $_) });
}
sub generate (%eqs, $s) { #`(Sub|139734349547384) ... }
sub table(@G, %eqs)
{
printf " |"; for @G -> $y { printf "%-5s|", $y; }; say '';
printf "-----|"; for @G -> $y { printf "-----|"; }; say '';
for @G -> $x {
printf "%-5s|", $x;
for @G -> $y {
my $result = (gather generate(%eqs, "$x$y")).first(* ∈ @G);
printf "%-5s|", $result;
}
say ''
}
}
sub table (@G, %eqs) { #`(Sub|139734349553312) ... }
** 5.G.1 **
Let $G$ be the group:
\begin{align*} \{e,a,b, b^2, ab, ab^2\} \end{align*}whose generators satisfy:
\begin{align*} a^2 & = e \\ b^3 & = e \\ ba & = ab^2 \end{align*}Write the table of $G$.
my @G = <e a b bb ab abb>;
my %eqs = <aa e bbb e ba abb>; %eqs<e> = '';
table @G, %eqs;
|e |a |b |bb |ab |abb | -----|-----|-----|-----|-----|-----|-----| e |e |a |b |bb |ab |abb | a |a |e |ab |abb |b |bb | b |b |abb |bb |e |a |ab | bb |bb |ab |e |b |abb |a | ab |ab |bb |abb |a |e |b | abb |abb |b |a |ab |bb |e |
5.G.2
Let $G$ be the group
\begin{align*} \{ e, a, b, b^2, b^3, ab, ab^2, ab^3 \} \end{align*}whose generators satisfy
\begin{align*} a^2 & = e \\ b^4 & = e \\ ba & = ab^3 \end{align*}Write the table of $G$.
my @G = <e a b bb bbb ab abb abbb>;
my %eqs = <aa e bbbb e ba abbb>; %eqs<e> = '';
table @G, %eqs;
|e |a |b |bb |bbb |ab |abb |abbb | -----|-----|-----|-----|-----|-----|-----|-----|-----| e |e |a |b |bb |bbb |ab |abb |abbb | a |a |e |ab |abb |abbb |b |bb |bbb | b |b |abbb |bb |bbb |e |a |ab |abb | bb |bb |abb |bbb |e |b |abbb |a |ab | bbb |bbb |ab |e |b |bb |abb |abbb |a | ab |ab |bbb |abb |abbb |a |e |b |bb | abb |abb |bb |abbb |a |ab |bbb |e |b | abbb |abbb |b |a |ab |abb |bb |bbb |e |
5.G.3
Let $G$ be the group
\begin{align*} \{ e, a, b, b^2, b^3, ab, ab^2, ab^3 \} \end{align*}whose generators satisfy
\begin{align*} a^4 & = e \\ a^2 & = b^2 \\ ba & = ab^3 \end{align*}Write the table of $G$.
my @G = <e a b bb bbb ab abb abbb>;
my %eqs = <aaaa e aa bb ba abbb>; %eqs<e> = '';
table @G, %eqs;
|e |a |b |bb |bbb |ab |abb |abbb | -----|-----|-----|-----|-----|-----|-----|-----|-----| e |e |a |b |bb |bbb |ab |abb |abbb | a |a |bb |ab |abb |abbb |bbb |e |b | b |b |abbb |bb |bbb |e |a |ab |abb | bb |bb |abb |bbb |e |b |abbb |a |ab | bbb |bbb |ab |e |b |bb |abb |abbb |a | ab |ab |b |abb |abbb |a |bb |bbb |e | abb |abb |e |abbb |a |ab |b |bb |bbb | abbb |abbb |bbb |a |ab |abb |e |b |bb |