pregroup
A pregroup is an algebraic structure used mainly in linguistics and logic to model how elements can combine and cancel each other. Formally, it is a partially ordered monoid (P, ≤, ·, 1) equipped with a pair of operations providing left and right adjoints: for each element a in P there are elements a^l and a^r. The partial order is compatible with multiplication, and the adjoints satisfy contraction rules that allow reductions when composing elements.
The key feature of a pregroup is the ability to reduce sequences of elements using the adjoints.
In practice, pregroups are used to assign types to words in a sentence and to determine grammaticality
Pregroups were introduced by Joachim Lambek as a tool for formal grammar and have influenced developments