Disculpas si este no es muy bien definido o expone mi ignorancia; me sabe relativamente poco acerca de álgebra abstracta.
La estructura de ciertos lenguajes de programación pueden ser descritos con la estructura algebraica $(S,\cdot,\verb|^|)$ donde
$\cdot:S\times S\rightarrow S$ es asociativa y unital, y
$\verb|^| : S \rightarrow S$
es decir, un monoid con un extra de unario operación. Por desgracia, nada se puede decir mucho acerca de $\verb|^|$ salvo que:
$\verb|^|$ distribuye más de $\cdot$, es decir, $\verb|^|(a\cdot b) = \verb|^|a\cdot \verb|^|b$.
$\verb|^|$ es cancellative: $\verb|^|a = \verb|^|$b implica $a = b$.
En particular, $\verb|^|$ no es una operación inversa, ni idempotente; en general, $\verb|^|(\verb|^|a) \neq a$, y, en particular, $\verb|^|1\neq1$.
Mi pregunta es:
Tiene esta estructura se ha estudiado, o al menos ha dado un nombre, en álgebra abstracta?
Yo no soy optimista, ya que la adición de $\verb|^|$ no parece hacer la estructura mucho más interesante que un monoid. Pero si alguien puede, incluso me apunte hacia estructuras similares, yo estaría agradecido. (Aunque claramente los grupos no son un buen ajuste debido a la falta de invertibility.)
(Editado para incluir la cancellative propiedad de $\verb|^|$ y una mención explícita a su falta de idempotencia.)