deep_causality_algebra 0.1.0

Abstract algebra traits (groups, rings, fields, algebras) and isomorphism markers for deep_causality.
Documentation
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
/*
 * SPDX-License-Identifier: MIT
 * Copyright (c) 2023 - 2026. The DeepCausality Authors and Contributors. All Rights Reserved.
 */

//! The idempotence law for a [`Monoid`](crate::Monoid)'s operation.

use crate::Monoid;

/// An **idempotent** monoid operation:
///
/// - **Idempotence:** `x.clone().combine(x) == x`.
///
/// A count monoid is commutative but NOT idempotent, so this is kept separate from
/// [`CommutativeMonoid`](crate::CommutativeMonoid); a [`BoundedSemilattice`](crate::BoundedSemilattice)
/// is exactly a commutative + idempotent monoid.
pub trait Idempotent: Monoid {}