# Citrus

The Citrus package. This is the manual for the Citrus package version 0.9999 for computing with semigroups of transformations and partial permutations. Citrus 0.9999 is an updated and expanded version of the Monoid package for GAP 3 by Goetz Pfeiffer, Steve A. Linton, Edmund F. Robertson, and Nik Ruskuc and the Monoid package for GAP 4 by J. D. Mitchell. Citrus 0.9999 contains more efficient methods than those available in the GAP library (and in many cases more efficient than any other software) for creating semigroups of transformations and partial permutations, calculating their Green’s classes, size, elements, group of units, minimal ideal, and testing membership, finding the inverses of a regular element, and factorizing elements over the generators, and many more; see Chapters 3 and 4. There are also methods for testing if a semigroup satisfies a particular property, such as if it is regular, simple, inverse, completely regular, and a variety of further properties; see Chapter 4. A range of functions is provided for creating and determining properties of individual transformations and partial permutations such as the index and period or the least idempotent power; see Chapter 2. A large catalogue of examples is provided; see Sections 3.4 and 3.5. Citrus also provides abbreviated names for many of the commonly used GAP library functions related to semigroups, and functions to read and write large collections of transformations or partial permutations to a file; see ReadCitrus (1.6-2) and WriteCitrus (1.6-3).