pub struct F4QuotientShape<const COMPONENT_LABEL_BYTES: usize>;Expand description
F₄-via-quotient composition shape — the unary quotient
construction on the Atlas image inside E₈ per wiki [ADR-059]’s
categorical-operation vocabulary.
F₄ is the rank-4 exceptional Lie algebra reached from the Atlas by
the 96 / ± mirror-symmetry quotient (48 sign classes). As a
categorical operation, F₄ is a quotient of one Atlas structure
under mirror symmetry — the shape is therefore unary by structural
necessity: SITE_COUNT = COMPONENT_LABEL_BYTES. A single operand
κ-label is canonicalized into its mirror-symmetry equivalence
class before σ-projection.
The composed κ-label addresses the operand’s equivalence class under the quotient, not the operand directly. Two operands that are mirror-symmetric per the realization’s commitment compose to byte-identical composed κ-labels.
§See also
crate::std_typesfor the family contract and IRI namespace.G2ProductShape/E6FiltrationShape/E7AugmentationShape/E8EmbeddingShapefor the other four categorical operations on the Atlas.crate::convergencefor the convergence-tower vocabulary ADR-059 commits.- Wiki: 05 Building Block View § Whitebox
prism - Wiki: 09 Architecture Decisions § ADR-059
- Wiki: 09 Architecture Decisions § ADR-061
- AGENTS.md § 11
§Constraints
- TC-01 — admission is compile-time.
- TC-04 — bilateral compile-time enforcement.
- ADR-013 — closure under
uor-foundation. - ADR-017 — content-addressed identity via the IRI.
- ADR-058 — κ-derivation produces the composed κ-label.
- ADR-059 — codomain factors through the Atlas image inside E₈.
- ADR-061 — operational composition surface for κ-labels.
§Behavior
use prism::pipeline::ConstrainedTypeShape;
use prism::std_types::F4QuotientShape;
// Given a unary F₄ quotient over one sha256 κ-label (71 bytes),
type F = F4QuotientShape<71>;
// When SITE_COUNT is queried,
// Then it equals the operand width — F₄'s quotient is unary.
assert_eq!(<F as ConstrainedTypeShape>::SITE_COUNT, 71);
assert_eq!(
<F as ConstrainedTypeShape>::IRI,
"https://uor.foundation/type/ConstrainedType",
);
assert!(<F as ConstrainedTypeShape>::CONSTRAINTS.is_empty());Trait Implementations§
Source§impl<const COMPONENT_LABEL_BYTES: usize> ConstrainedTypeShape for F4QuotientShape<COMPONENT_LABEL_BYTES>
impl<const COMPONENT_LABEL_BYTES: usize> ConstrainedTypeShape for F4QuotientShape<COMPONENT_LABEL_BYTES>
Source§const IRI: &'static str = "https://uor.foundation/type/ConstrainedType"
const IRI: &'static str = "https://uor.foundation/type/ConstrainedType"
type:ConstrainedType instance this shape represents.Source§const SITE_COUNT: usize = COMPONENT_LABEL_BYTES
const SITE_COUNT: usize = COMPONENT_LABEL_BYTES
Source§const CONSTRAINTS: &'static [ConstraintRef]
const CONSTRAINTS: &'static [ConstraintRef]
Source§const CYCLE_SIZE: u64
const CYCLE_SIZE: u64
prism_model! macro to lower first_admit
(closure-body grammar G16) to the correct descent measure.
Conventions: Read moreSource§const SITE_BUDGET: usize = Self::SITE_COUNT
const SITE_BUDGET: usize = Self::SITE_COUNT
siteBudget: count of data sites only,
excluding bookkeeping introduced by composition (coproduct tag
sites, etc.). Equals SITE_COUNT for leaf shapes and for
shapes whose composition introduces no bookkeeping (products,
cartesian products). Strictly less than SITE_COUNT for coproduct
shapes and any shape whose SITE_COUNT includes inherited
bookkeeping. Introduced by the Product/Coproduct Completion
Amendment §4a; defaults to SITE_COUNT so pre-amendment
shape impls remain valid without edits.