TimLavers / semigroups_kotlin

Basic semigroup library. Work in progress.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Semigroups in Kotlin

A Kotlin implementation of finite Semigroups in the Kotlin programming language.

The main abstraction is Semigroup<T>, which consists of a set of elements of type T and an associative map of the elements of the set.

Abstractions

The main abstract functions are:

  • generation of a semigroup from a set of elements and a composition function,
  • calculations of Green's relations on a semigroup,
  • direct, semi-direct and bilateral semi-direct (or double, or Zappa) products of two semigroups.

Concrete Semigroups

There are utility functions for generating:

  • left- and right-zero semigroups,
  • the full transformation monoid on a set {1, ..., n},
  • the monoid of order-preserving transformations on {1, ..., n},
  • cyclig groups,
  • symmetric groups.

About

Basic semigroup library. Work in progress.

License:MIT License


Languages

Language:Kotlin 100.0%