Function Repository Resource:

GroupToCombinator

Source Notebook

Create combinator expressions for each element of a specified group, as well as the group's operation

Contributed by: Henry Gustafson and Joseph Stocke

ResourceFunction["GroupToCombinator"][group]

returns an association with the elements and operation of group represented as combinators.

ResourceFunction["GroupToCombinator"][group,property]

returns the specified property.

Details and Options

The argument property can be any of the following:
"Elements"elements of the group, represented as combinators
"Operation"operation for the group, represented as a combinator
"Equality"equality operator for the group, represented as a combinator
Allassociation containing "Elements," "Operation," and "Equality"
For the combinator representation of the equality operator, S⁡[K] represents True and K represents False.
ResourceFunction["GroupToCombinator"] accepts the option "SKGlyphs", which specifies the symbols used to represent the combinators.

Examples

Basic Examples (1) 

Get the combinator expressions for the elements and the operation for a specific group:

In[1]:=
ResourceFunction["GroupToCombinator"][DihedralGroup[2]]
Out[1]=

Scope (2) 

Get expressions for the elements of a group:

In[2]:=
c3Elements = ResourceFunction["GroupToCombinator"][CyclicGroup[3], "Elements"]
Out[2]=

Operate on two elements of a group and return the corresponding combinator:

In[3]:=
(* auxiliary function for applying a combinator operation *)
combinatorOperate[op_, args__] := ResourceFunction["CombinatorFixedPoint"][Fold[Construct, op, {args}]]
In[4]:=
combinatorOperate[
 ResourceFunction["GroupToCombinator"][CyclicGroup[3], "Operation"], Lookup[c3Elements, 2], Lookup[c3Elements, 3]]
Out[4]=

The result is equivalent to the first element:

In[5]:=
combinatorOperate[
 ResourceFunction["GroupToCombinator"][CyclicGroup[3], "Equality"], %,
  Lookup[c3Elements, 1]]
Out[5]=

Return a single property:

In[6]:=
ResourceFunction["GroupToCombinator"][AlternatingGroup[3], "Elements"]
Out[6]=

Return several properties:

In[7]:=
ResourceFunction["GroupToCombinator"][
 AlternatingGroup[3], {"Elements", "Equality"}]
Out[7]=

Options (1) 

SKGlyphs (1) 

Use different symbols to represent the combinators:

In[8]:=
ResourceFunction["GroupToCombinator"][SymmetricGroup[2], "SKGlyphs" -> {s, k}]
Out[8]=

Publisher

Henry Gustafson

Requirements

Wolfram Language 12.2 (December 2020) or above

Version History

  • 1.0.0 – 09 August 2023

Related Resources

License Information