1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
/*
* SPDX-License-Identifier: MIT
* Copyright (c) 2023 - 2026. The DeepCausality Authors and Contributors. All Rights Reserved.
*/
use crate::;
/// A marker trait for an **Associative Algebra**.
///
/// This trait identifies an `Algebra` where the multiplication operation is
/// associative. Since the `AssociativeRing` trait (required by this trait's
/// mathematical definition and implied by the explicit `Associative` marker
/// trait for implementors) guarantees associativity of multiplication,
/// this trait explicitly signals that property.
///
/// It is distinct from non-associative algebras like Octonions.
///
/// # Mathematical Definition
///
/// An associative algebra `A` is an algebra that is also an `AssociativeRing`.
/// This means it satisfies the law:
///
/// `(x * y) * z = x * (y * z)` for all `x, y, z` in `A`.
///
/// ## Examples
///
/// - **Associative:** Real numbers, Complex numbers, Quaternions.
/// - **Non-Associative:** Octonions.
// Blanket implementation