Evaluation
Definition
Evaluation is the process of computing concrete results from canonical forms. The EvaluationResolver implements this process: it takes a resolved type and evaluates it by applying operations to enumerate and classify ring elements.
The Resolver
The EvaluationResolver is the third and final stage of the resolution pipeline, following factorization and canonical form computation:
| Property | Description |
|---|---|
| inputType | The type declaration to evaluate |
| outputType | The resulting partition |
| strategy | Direct enumeration and classification |
| hasComplexityClass | Computational complexity |
Evaluation Process
- Accept a TypeDefinition as input
- Apply the type's constraints (hasConstraint) to the ring elements
- Classify each element into the four partition components: IrreducibleSet, ReducibleSet, UnitGroup, or Complement
- Produce the final Partition
Boolean SAT Case Study
Evaluation provides a direct path to Boolean satisfiability. Given a ConstrainedType with Boolean constraints, the evaluation resolver enumerates satisfying assignments:
- Each SiteIndex corresponds to a Boolean variable
- A ResidueConstraint with modulus 2 fixes a variable's value
- A CompositeConstraint represents a clause over multiple variables
- The IrreducibleSet of the resulting partition contains the satisfying assignments
The FreeRank tracks how many variables have been determined. When isClosed is true, all variables are fixed and the formula is either satisfied or unsatisfiable.
Derivation Output
Evaluation produces a Derivation with a fully evaluated result:
<https://uor.foundation/instance/eval-derivation>
a derivation:Derivation ;
derivation:originalTerm <term-constrained-bool> ;
derivation:canonicalTerm <term-canonical-bool> ;
derivation:result <datum-satisfying-assignment> .
Certification
The evaluation result can be certified by a Certificate, attesting that the partition was computed correctly and the classification of every element is sound.
Pipeline Position
Evaluation is the final resolver in the three-stage pipeline:
- DihedralFactorizationResolver -- orbit decomposition
- CanonicalFormResolver -- term normalization
- EvaluationResolver -- concrete classification
Evaluation triggers state transitions: each classification step updates the Frame and produces a Transition — see State Model for the context/binding/frame lifecycle.