class Semigroup {
Element: Type
mul(x: Element, y: Element): Element
mul_is_associative(
x: Element,
y: Element,
z: Element,
): Equal(
Element,
mul(x, mul(y, z)),
mul(mul(x, y), z)
)
}
mul_is_associative
is transfered the definitional equality of List
.Monoid
and Group
?class Semigroup {
Element: Type
mul(x: Element, y: Element): Element
mul_is_associative(
x: Element,
y: Element,
z: Element,
): Equal(
Element,
mul(x, mul(y, z)),
mul(mul(x, y), z)
)
}
mul_is_associative
is transfered the definitional equality of List
.Monoid
and Group
?