from dataclasses import dataclass

from .am_machine import Machine
from .am_syntagmatics import Syntagmatics

@dataclass
class SubstitutionAlgebra:
    """
    The algebraic structure of valid substitutions over a Machine,
    derived from a syntagmatic specification, and the machines internal constraints.
    """
    syntagmatics : Syntagmatics
    model        : Machine