Skip to main content

uor_foundation/kernel/
schema.rs

1// @generated by uor-crate from uor-ontology — do not edit manually
2
3//! `schema/` namespace — Core value types and term language for the UOR ring substrate. Defines Datum (ring element), Term (syntactic expression), and the Ring container..
4//!
5//! Space: Kernel
6
7use crate::enums::QuantifierKind;
8use crate::enums::WittLevel;
9use crate::HostTypes;
10
11/// An element of the ring Z/(2^n)Z at a specific Witt level n. The primary semantic value type. Disjoint from Term: datums are values, terms are syntactic expressions that evaluate to datums.
12/// Disjoint with: Term.
13pub trait Datum<H: HostTypes> {
14    /// The integer value of a datum element. For a Datum in Z/(2^n)Z, this is an integer in \[0, 2^n).
15    fn value(&self) -> u64;
16    /// The Witt level n of a datum, where the datum's ring is Z/(2^n)Z. Determines the bit width and modulus of the datum.
17    fn witt_length(&self) -> u64;
18    /// The ring-layer index of a datum, indicating its position in the stratification of Z/(2^n)Z.
19    fn stratum(&self) -> u64;
20    /// The bit-pattern representation of a datum, encoding its position in the hypercube geometry of Z/(2^n)Z.
21    fn spectrum(&self) -> u64;
22    /// Associated type for `Element`.
23    type Element: crate::kernel::address::Element<H>;
24    /// The content-addressable element associated with this datum, linking the algebraic value to its identifier.
25    fn element(&self) -> &Self::Element;
26}
27
28/// A syntactic expression in the UOR term language. Terms are evaluated to produce Datums. Disjoint from Datum.
29/// Disjoint with: Datum.
30pub trait Term<H: HostTypes> {}
31
32/// A three-component structure encoding an element's position in the UOR address space: stratum (ring layer), spectrum (bit pattern), and address (content-addressable position in the Braille glyph encoding). The three required functional properties schema:triadStratum, schema:triadSpectrum, and schema:triadAddress project a Triad onto its TwoAdicValuation, WalshHadamardImage, and Address coordinates respectively.
33pub trait Triad<H: HostTypes> {
34    /// The stratum component of a Triad: the datum's two-adic valuation, indexing its layer in the ring stratification. Semantically corresponds to query:TwoAdicValuation.
35    fn triad_stratum(&self) -> u64;
36    /// The spectrum component of a Triad: the datum's Walsh-Hadamard transform image, indexing its position in the hypercube spectral decomposition. Semantically corresponds to query:WalshHadamardImage.
37    fn triad_spectrum(&self) -> u64;
38    /// The address component of a Triad: the datum's content-addressable position in the ring's Braille glyph encoding. Semantically corresponds to query:Address (renamed from RingElement in v0.2.2 W8).
39    fn triad_address(&self) -> u64;
40}
41
42/// A term that directly denotes a datum value. A Literal is a leaf node in the term language — it refers to a concrete Datum via schema:denotes without being a Datum itself.
43pub trait Literal<H: HostTypes>: Term<H> + SurfaceSymbol<H> {
44    /// Associated type for `Datum`.
45    type Datum: Datum<H>;
46    /// The datum value that a Literal term denotes. Bridges the Term/Datum disjointness: a Literal refers to a Datum without being one. Evaluation of a Literal produces its denoted Datum.
47    fn denotes(&self) -> &Self::Datum;
48}
49
50/// A term formed by applying an operation to one or more argument terms. The application's value is the result of evaluating the operator on the evaluated arguments.
51pub trait Application<H: HostTypes>: Term<H> {
52    /// Associated type for `Operation`.
53    type Operation: crate::kernel::op::Operation<H>;
54    /// The operation applied in an Application term.
55    fn operator(&self) -> &Self::Operation;
56    /// Associated type for `Term`.
57    type Term: Term<H>;
58    /// An argument term in an Application. The ordering of arguments follows rdf:List semantics.
59    fn argument(&self) -> &[Self::Term];
60}
61
62/// The ambient ring Z/(2^n)Z at a specific Witt level n. The Ring is the primary data structure of the UOR kernel. Its two generators (negation and complement) produce the dihedral group D_{2^n} that governs the invariance frame.
63pub trait Ring<H: HostTypes> {
64    /// The bit width n of the ring Z/(2^n)Z. Distinct from schema:wittLength on Datum — ringWittLength is the container's bit width; datum wittLength is a membership property.
65    fn ring_witt_length(&self) -> u64;
66    /// The modulus 2^n of the ring. Equals 2 raised to the power of ringWittLength.
67    fn modulus(&self) -> u64;
68    /// Associated type for `Datum`.
69    type Datum: Datum<H>;
70    /// The generator element π₁ (value = 1) of the ring. Under iterated successor application, π₁ generates all ring elements.
71    fn generator(&self) -> &Self::Datum;
72    /// Associated type for `Involution`.
73    type Involution: crate::kernel::op::Involution<H>;
74    /// The ring reflection involution: neg(x) = (-x) mod 2^n. One of the two generators of the dihedral group D_{2^n}.
75    fn negation(&self) -> &Self::Involution;
76    /// The hypercube reflection involution: bnot(x) = (2^n - 1) ⊕ x. The second generator of the dihedral group D_{2^n}.
77    fn complement(&self) -> &Self::Involution;
78    /// The Witt level at which this Ring instance operates. Links a concrete Ring individual to its WittLevel.
79    fn at_witt_level(&self) -> WittLevel;
80}
81
82/// The concrete ring Z/(2^16)Z at Witt level 16. Subclass of schema:Ring. Carries 65,536 elements. W16Ring is the first extension of the default Q0 ring and is the target of Amendment 26's universality proofs.
83pub trait W16Ring<H: HostTypes>: Ring<H> {
84    /// Bit width of the Q1 ring: 16.
85    fn w16bit_width(&self) -> u64;
86    /// Carrier set size of the Q1 ring: 65,536 elements.
87    fn w16capacity(&self) -> u64;
88}
89
90/// Root AST node for parsed EBNF term expressions. Identity lhs/rhs values are instances of TermExpression subtypes. Maps to the `term` production in the EBNF grammar.
91pub trait TermExpression<H: HostTypes> {}
92
93/// A leaf AST node: an integer literal, variable reference, or named constant.
94pub trait LiteralExpression<H: HostTypes>: TermExpression<H> {
95    /// The string representation of a literal expression value (e.g., '42', 'x', 'pi1').
96    fn literal_value(&self) -> &H::HostString;
97}
98
99/// An AST node representing operator application: an operator applied to an argument list (e.g., add(x, y)).
100pub trait ApplicationExpression<H: HostTypes>: TermExpression<H> {
101    /// Associated type for `Operation`.
102    type Operation: crate::kernel::op::Operation<H>;
103    /// The operator in an application expression (e.g., op:add, op:neg).
104    fn expression_operator(&self) -> &Self::Operation;
105    /// Associated type for `TermExpression`.
106    type TermExpression: TermExpression<H>;
107    /// The argument list of an application expression. Non-functional: an application may take multiple arguments.
108    fn arguments(&self) -> &[Self::TermExpression];
109}
110
111/// An AST node for infix relations and logical connectives (e.g., x <= y, P -> Q, a = b).
112pub trait InfixExpression<H: HostTypes>: TermExpression<H> {
113    /// Associated type for `TermExpression`.
114    type TermExpression: TermExpression<H>;
115    /// The left operand of an infix expression.
116    fn left_operand(&self) -> &Self::TermExpression;
117    /// The right operand of an infix expression.
118    fn right_operand(&self) -> &Self::TermExpression;
119    /// The operator symbol in an infix expression (e.g., '=', '\u{2264}', '\u{2192}').
120    fn infix_operator(&self) -> &H::HostString;
121}
122
123/// An AST node for set-builder notation (e.g., {x : P(x)}).
124pub trait SetExpression<H: HostTypes>: TermExpression<H> {}
125
126/// An AST node for function composition (f compose g).
127pub trait CompositionExpression<H: HostTypes>: TermExpression<H> {}
128
129/// A structured quantifier binding: typed variable declarations with a domain and quantifier kind (universal or existential). Replaces the string-valued op:forAll property.
130pub trait ForAllDeclaration<H: HostTypes> {
131    /// Associated type for `VariableBinding`.
132    type VariableBinding: VariableBinding<H>;
133    /// The variable bindings in a quantifier declaration. Non-functional: a ForAllDeclaration may bind multiple variables.
134    fn bound_variables(&self) -> &[Self::VariableBinding];
135    /// The kind of quantifier: Universal or Existential.
136    fn quantifier_kind(&self) -> QuantifierKind;
137}
138
139/// A single variable binding: a variable name bound to a domain type (e.g., x in R_n).
140pub trait VariableBinding<H: HostTypes> {
141    /// The domain type of a variable binding (e.g., schema:Ring, type:ConstrainedType).
142    fn variable_domain(&self) -> &H::HostString;
143    /// The name of a bound variable (e.g., 'x', 'y', 'n').
144    fn variable_name(&self) -> &H::HostString;
145}
146
147/// An abstract leaf value that a grounding map can accept as surface input. Has no direct instances: every SurfaceSymbol is either a Datum-denoting schema:Literal or an xsd-typed schema:HostValue, and the two cases are disjoint.
148pub trait SurfaceSymbol<H: HostTypes> {}
149
150/// An xsd-typed value that denotes a host datatype rather than a ring datum. Used in property-position slots whose range is xsd and as the host-side input of a grounding map.
151/// Disjoint with: Term, Datum.
152pub trait HostValue<H: HostTypes>: SurfaceSymbol<H> {}
153
154/// A host string literal carrying an xsd:string value.
155pub trait HostStringLiteral<H: HostTypes>: HostValue<H> {
156    /// The string value carried by a HostStringLiteral.
157    fn host_string(&self) -> &H::HostString;
158}
159
160/// A host boolean literal carrying an xsd:boolean value.
161pub trait HostBooleanLiteral<H: HostTypes>: HostValue<H> {
162    /// The boolean value carried by a HostBooleanLiteral.
163    fn host_boolean(&self) -> bool;
164}
165
166/// An ordered tuple of values drawn from a type:ConstrainedType's carrier. Serves as the witness form for cert:InhabitanceCertificate when verified is true.
167pub trait ValueTuple<H: HostTypes> {}
168
169/// Phase 2 (orphan-closure) — resolver-absent default impl of `Datum<H>`.
170/// Every accessor returns `H::EMPTY_*` sentinels (for scalar / host-typed
171/// returns) or a `'static`-lifetime reference to a sibling `Null*`'s `ABSENT`
172/// const (for trait-typed returns).  Downstream provides concrete impls;
173/// this stub closes the ontology-derived trait orphan.
174#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)]
175pub struct NullDatum<H: HostTypes> {
176    _phantom: core::marker::PhantomData<H>,
177}
178impl<H: HostTypes> Default for NullDatum<H> {
179    fn default() -> Self {
180        Self {
181            _phantom: core::marker::PhantomData,
182        }
183    }
184}
185impl<H: HostTypes> NullDatum<H> {
186    /// Absent-value sentinel. `&Self::ABSENT` gives every trait-typed accessor a `'static`-lifetime reference target.
187    pub const ABSENT: NullDatum<H> = NullDatum {
188        _phantom: core::marker::PhantomData,
189    };
190}
191impl<H: HostTypes> Datum<H> for NullDatum<H> {
192    fn value(&self) -> u64 {
193        0
194    }
195    fn witt_length(&self) -> u64 {
196        0
197    }
198    fn stratum(&self) -> u64 {
199        0
200    }
201    fn spectrum(&self) -> u64 {
202        0
203    }
204    type Element = crate::kernel::address::NullElement<H>;
205    fn element(&self) -> &Self::Element {
206        &<crate::kernel::address::NullElement<H>>::ABSENT
207    }
208}
209
210/// Phase 2 (orphan-closure) — resolver-absent default impl of `Term<H>`.
211/// Every accessor returns `H::EMPTY_*` sentinels (for scalar / host-typed
212/// returns) or a `'static`-lifetime reference to a sibling `Null*`'s `ABSENT`
213/// const (for trait-typed returns).  Downstream provides concrete impls;
214/// this stub closes the ontology-derived trait orphan.
215#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)]
216pub struct NullTerm<H: HostTypes> {
217    _phantom: core::marker::PhantomData<H>,
218}
219impl<H: HostTypes> Default for NullTerm<H> {
220    fn default() -> Self {
221        Self {
222            _phantom: core::marker::PhantomData,
223        }
224    }
225}
226impl<H: HostTypes> NullTerm<H> {
227    /// Absent-value sentinel. `&Self::ABSENT` gives every trait-typed accessor a `'static`-lifetime reference target.
228    pub const ABSENT: NullTerm<H> = NullTerm {
229        _phantom: core::marker::PhantomData,
230    };
231}
232impl<H: HostTypes> Term<H> for NullTerm<H> {}
233
234/// Phase 2 (orphan-closure) — resolver-absent default impl of `Triad<H>`.
235/// Every accessor returns `H::EMPTY_*` sentinels (for scalar / host-typed
236/// returns) or a `'static`-lifetime reference to a sibling `Null*`'s `ABSENT`
237/// const (for trait-typed returns).  Downstream provides concrete impls;
238/// this stub closes the ontology-derived trait orphan.
239#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)]
240pub struct NullTriad<H: HostTypes> {
241    _phantom: core::marker::PhantomData<H>,
242}
243impl<H: HostTypes> Default for NullTriad<H> {
244    fn default() -> Self {
245        Self {
246            _phantom: core::marker::PhantomData,
247        }
248    }
249}
250impl<H: HostTypes> NullTriad<H> {
251    /// Absent-value sentinel. `&Self::ABSENT` gives every trait-typed accessor a `'static`-lifetime reference target.
252    pub const ABSENT: NullTriad<H> = NullTriad {
253        _phantom: core::marker::PhantomData,
254    };
255}
256impl<H: HostTypes> Triad<H> for NullTriad<H> {
257    fn triad_stratum(&self) -> u64 {
258        0
259    }
260    fn triad_spectrum(&self) -> u64 {
261        0
262    }
263    fn triad_address(&self) -> u64 {
264        0
265    }
266}
267
268/// Phase 2 (orphan-closure) — resolver-absent default impl of `Literal<H>`.
269/// Every accessor returns `H::EMPTY_*` sentinels (for scalar / host-typed
270/// returns) or a `'static`-lifetime reference to a sibling `Null*`'s `ABSENT`
271/// const (for trait-typed returns).  Downstream provides concrete impls;
272/// this stub closes the ontology-derived trait orphan.
273#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)]
274pub struct NullLiteral<H: HostTypes> {
275    _phantom: core::marker::PhantomData<H>,
276}
277impl<H: HostTypes> Default for NullLiteral<H> {
278    fn default() -> Self {
279        Self {
280            _phantom: core::marker::PhantomData,
281        }
282    }
283}
284impl<H: HostTypes> NullLiteral<H> {
285    /// Absent-value sentinel. `&Self::ABSENT` gives every trait-typed accessor a `'static`-lifetime reference target.
286    pub const ABSENT: NullLiteral<H> = NullLiteral {
287        _phantom: core::marker::PhantomData,
288    };
289}
290impl<H: HostTypes> Term<H> for NullLiteral<H> {}
291impl<H: HostTypes> SurfaceSymbol<H> for NullLiteral<H> {}
292impl<H: HostTypes> Literal<H> for NullLiteral<H> {
293    type Datum = NullDatum<H>;
294    fn denotes(&self) -> &Self::Datum {
295        &<NullDatum<H>>::ABSENT
296    }
297}
298
299/// Phase 2 (orphan-closure) — resolver-absent default impl of `Application<H>`.
300/// Every accessor returns `H::EMPTY_*` sentinels (for scalar / host-typed
301/// returns) or a `'static`-lifetime reference to a sibling `Null*`'s `ABSENT`
302/// const (for trait-typed returns).  Downstream provides concrete impls;
303/// this stub closes the ontology-derived trait orphan.
304#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)]
305pub struct NullApplication<H: HostTypes> {
306    _phantom: core::marker::PhantomData<H>,
307}
308impl<H: HostTypes> Default for NullApplication<H> {
309    fn default() -> Self {
310        Self {
311            _phantom: core::marker::PhantomData,
312        }
313    }
314}
315impl<H: HostTypes> NullApplication<H> {
316    /// Absent-value sentinel. `&Self::ABSENT` gives every trait-typed accessor a `'static`-lifetime reference target.
317    pub const ABSENT: NullApplication<H> = NullApplication {
318        _phantom: core::marker::PhantomData,
319    };
320}
321impl<H: HostTypes> Term<H> for NullApplication<H> {}
322impl<H: HostTypes> Application<H> for NullApplication<H> {
323    type Operation = crate::kernel::op::NullOperation<H>;
324    fn operator(&self) -> &Self::Operation {
325        &<crate::kernel::op::NullOperation<H>>::ABSENT
326    }
327    type Term = NullTerm<H>;
328    fn argument(&self) -> &[Self::Term] {
329        &[]
330    }
331}
332
333/// Phase 2 (orphan-closure) — resolver-absent default impl of `Ring<H>`.
334/// Every accessor returns `H::EMPTY_*` sentinels (for scalar / host-typed
335/// returns) or a `'static`-lifetime reference to a sibling `Null*`'s `ABSENT`
336/// const (for trait-typed returns).  Downstream provides concrete impls;
337/// this stub closes the ontology-derived trait orphan.
338#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)]
339pub struct NullRing<H: HostTypes> {
340    _phantom: core::marker::PhantomData<H>,
341}
342impl<H: HostTypes> Default for NullRing<H> {
343    fn default() -> Self {
344        Self {
345            _phantom: core::marker::PhantomData,
346        }
347    }
348}
349impl<H: HostTypes> NullRing<H> {
350    /// Absent-value sentinel. `&Self::ABSENT` gives every trait-typed accessor a `'static`-lifetime reference target.
351    pub const ABSENT: NullRing<H> = NullRing {
352        _phantom: core::marker::PhantomData,
353    };
354}
355impl<H: HostTypes> Ring<H> for NullRing<H> {
356    fn ring_witt_length(&self) -> u64 {
357        0
358    }
359    fn modulus(&self) -> u64 {
360        0
361    }
362    type Datum = NullDatum<H>;
363    fn generator(&self) -> &Self::Datum {
364        &<NullDatum<H>>::ABSENT
365    }
366    type Involution = crate::kernel::op::NullInvolution<H>;
367    fn negation(&self) -> &Self::Involution {
368        &<crate::kernel::op::NullInvolution<H>>::ABSENT
369    }
370    fn complement(&self) -> &Self::Involution {
371        &<crate::kernel::op::NullInvolution<H>>::ABSENT
372    }
373    fn at_witt_level(&self) -> WittLevel {
374        <WittLevel>::default()
375    }
376}
377
378/// Phase 2 (orphan-closure) — resolver-absent default impl of `W16Ring<H>`.
379/// Every accessor returns `H::EMPTY_*` sentinels (for scalar / host-typed
380/// returns) or a `'static`-lifetime reference to a sibling `Null*`'s `ABSENT`
381/// const (for trait-typed returns).  Downstream provides concrete impls;
382/// this stub closes the ontology-derived trait orphan.
383#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)]
384pub struct NullW16Ring<H: HostTypes> {
385    _phantom: core::marker::PhantomData<H>,
386}
387impl<H: HostTypes> Default for NullW16Ring<H> {
388    fn default() -> Self {
389        Self {
390            _phantom: core::marker::PhantomData,
391        }
392    }
393}
394impl<H: HostTypes> NullW16Ring<H> {
395    /// Absent-value sentinel. `&Self::ABSENT` gives every trait-typed accessor a `'static`-lifetime reference target.
396    pub const ABSENT: NullW16Ring<H> = NullW16Ring {
397        _phantom: core::marker::PhantomData,
398    };
399}
400impl<H: HostTypes> Ring<H> for NullW16Ring<H> {
401    fn ring_witt_length(&self) -> u64 {
402        0
403    }
404    fn modulus(&self) -> u64 {
405        0
406    }
407    type Datum = NullDatum<H>;
408    fn generator(&self) -> &Self::Datum {
409        &<NullDatum<H>>::ABSENT
410    }
411    type Involution = crate::kernel::op::NullInvolution<H>;
412    fn negation(&self) -> &Self::Involution {
413        &<crate::kernel::op::NullInvolution<H>>::ABSENT
414    }
415    fn complement(&self) -> &Self::Involution {
416        &<crate::kernel::op::NullInvolution<H>>::ABSENT
417    }
418    fn at_witt_level(&self) -> WittLevel {
419        <WittLevel>::default()
420    }
421}
422impl<H: HostTypes> W16Ring<H> for NullW16Ring<H> {
423    fn w16bit_width(&self) -> u64 {
424        0
425    }
426    fn w16capacity(&self) -> u64 {
427        0
428    }
429}
430
431/// Phase 2 (orphan-closure) — resolver-absent default impl of `TermExpression<H>`.
432/// Every accessor returns `H::EMPTY_*` sentinels (for scalar / host-typed
433/// returns) or a `'static`-lifetime reference to a sibling `Null*`'s `ABSENT`
434/// const (for trait-typed returns).  Downstream provides concrete impls;
435/// this stub closes the ontology-derived trait orphan.
436#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)]
437pub struct NullTermExpression<H: HostTypes> {
438    _phantom: core::marker::PhantomData<H>,
439}
440impl<H: HostTypes> Default for NullTermExpression<H> {
441    fn default() -> Self {
442        Self {
443            _phantom: core::marker::PhantomData,
444        }
445    }
446}
447impl<H: HostTypes> NullTermExpression<H> {
448    /// Absent-value sentinel. `&Self::ABSENT` gives every trait-typed accessor a `'static`-lifetime reference target.
449    pub const ABSENT: NullTermExpression<H> = NullTermExpression {
450        _phantom: core::marker::PhantomData,
451    };
452}
453impl<H: HostTypes> TermExpression<H> for NullTermExpression<H> {}
454
455/// Phase 2 (orphan-closure) — resolver-absent default impl of `LiteralExpression<H>`.
456/// Every accessor returns `H::EMPTY_*` sentinels (for scalar / host-typed
457/// returns) or a `'static`-lifetime reference to a sibling `Null*`'s `ABSENT`
458/// const (for trait-typed returns).  Downstream provides concrete impls;
459/// this stub closes the ontology-derived trait orphan.
460#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)]
461pub struct NullLiteralExpression<H: HostTypes> {
462    _phantom: core::marker::PhantomData<H>,
463}
464impl<H: HostTypes> Default for NullLiteralExpression<H> {
465    fn default() -> Self {
466        Self {
467            _phantom: core::marker::PhantomData,
468        }
469    }
470}
471impl<H: HostTypes> NullLiteralExpression<H> {
472    /// Absent-value sentinel. `&Self::ABSENT` gives every trait-typed accessor a `'static`-lifetime reference target.
473    pub const ABSENT: NullLiteralExpression<H> = NullLiteralExpression {
474        _phantom: core::marker::PhantomData,
475    };
476}
477impl<H: HostTypes> TermExpression<H> for NullLiteralExpression<H> {}
478impl<H: HostTypes> LiteralExpression<H> for NullLiteralExpression<H> {
479    fn literal_value(&self) -> &H::HostString {
480        H::EMPTY_HOST_STRING
481    }
482}
483
484/// Phase 2 (orphan-closure) — resolver-absent default impl of `ApplicationExpression<H>`.
485/// Every accessor returns `H::EMPTY_*` sentinels (for scalar / host-typed
486/// returns) or a `'static`-lifetime reference to a sibling `Null*`'s `ABSENT`
487/// const (for trait-typed returns).  Downstream provides concrete impls;
488/// this stub closes the ontology-derived trait orphan.
489#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)]
490pub struct NullApplicationExpression<H: HostTypes> {
491    _phantom: core::marker::PhantomData<H>,
492}
493impl<H: HostTypes> Default for NullApplicationExpression<H> {
494    fn default() -> Self {
495        Self {
496            _phantom: core::marker::PhantomData,
497        }
498    }
499}
500impl<H: HostTypes> NullApplicationExpression<H> {
501    /// Absent-value sentinel. `&Self::ABSENT` gives every trait-typed accessor a `'static`-lifetime reference target.
502    pub const ABSENT: NullApplicationExpression<H> = NullApplicationExpression {
503        _phantom: core::marker::PhantomData,
504    };
505}
506impl<H: HostTypes> TermExpression<H> for NullApplicationExpression<H> {}
507impl<H: HostTypes> ApplicationExpression<H> for NullApplicationExpression<H> {
508    type Operation = crate::kernel::op::NullOperation<H>;
509    fn expression_operator(&self) -> &Self::Operation {
510        &<crate::kernel::op::NullOperation<H>>::ABSENT
511    }
512    type TermExpression = NullTermExpression<H>;
513    fn arguments(&self) -> &[Self::TermExpression] {
514        &[]
515    }
516}
517
518/// Phase 2 (orphan-closure) — resolver-absent default impl of `InfixExpression<H>`.
519/// Every accessor returns `H::EMPTY_*` sentinels (for scalar / host-typed
520/// returns) or a `'static`-lifetime reference to a sibling `Null*`'s `ABSENT`
521/// const (for trait-typed returns).  Downstream provides concrete impls;
522/// this stub closes the ontology-derived trait orphan.
523#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)]
524pub struct NullInfixExpression<H: HostTypes> {
525    _phantom: core::marker::PhantomData<H>,
526}
527impl<H: HostTypes> Default for NullInfixExpression<H> {
528    fn default() -> Self {
529        Self {
530            _phantom: core::marker::PhantomData,
531        }
532    }
533}
534impl<H: HostTypes> NullInfixExpression<H> {
535    /// Absent-value sentinel. `&Self::ABSENT` gives every trait-typed accessor a `'static`-lifetime reference target.
536    pub const ABSENT: NullInfixExpression<H> = NullInfixExpression {
537        _phantom: core::marker::PhantomData,
538    };
539}
540impl<H: HostTypes> TermExpression<H> for NullInfixExpression<H> {}
541impl<H: HostTypes> InfixExpression<H> for NullInfixExpression<H> {
542    type TermExpression = NullTermExpression<H>;
543    fn left_operand(&self) -> &Self::TermExpression {
544        &<NullTermExpression<H>>::ABSENT
545    }
546    fn right_operand(&self) -> &Self::TermExpression {
547        &<NullTermExpression<H>>::ABSENT
548    }
549    fn infix_operator(&self) -> &H::HostString {
550        H::EMPTY_HOST_STRING
551    }
552}
553
554/// Phase 2 (orphan-closure) — resolver-absent default impl of `SetExpression<H>`.
555/// Every accessor returns `H::EMPTY_*` sentinels (for scalar / host-typed
556/// returns) or a `'static`-lifetime reference to a sibling `Null*`'s `ABSENT`
557/// const (for trait-typed returns).  Downstream provides concrete impls;
558/// this stub closes the ontology-derived trait orphan.
559#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)]
560pub struct NullSetExpression<H: HostTypes> {
561    _phantom: core::marker::PhantomData<H>,
562}
563impl<H: HostTypes> Default for NullSetExpression<H> {
564    fn default() -> Self {
565        Self {
566            _phantom: core::marker::PhantomData,
567        }
568    }
569}
570impl<H: HostTypes> NullSetExpression<H> {
571    /// Absent-value sentinel. `&Self::ABSENT` gives every trait-typed accessor a `'static`-lifetime reference target.
572    pub const ABSENT: NullSetExpression<H> = NullSetExpression {
573        _phantom: core::marker::PhantomData,
574    };
575}
576impl<H: HostTypes> TermExpression<H> for NullSetExpression<H> {}
577impl<H: HostTypes> SetExpression<H> for NullSetExpression<H> {}
578
579/// Phase 2 (orphan-closure) — resolver-absent default impl of `CompositionExpression<H>`.
580/// Every accessor returns `H::EMPTY_*` sentinels (for scalar / host-typed
581/// returns) or a `'static`-lifetime reference to a sibling `Null*`'s `ABSENT`
582/// const (for trait-typed returns).  Downstream provides concrete impls;
583/// this stub closes the ontology-derived trait orphan.
584#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)]
585pub struct NullCompositionExpression<H: HostTypes> {
586    _phantom: core::marker::PhantomData<H>,
587}
588impl<H: HostTypes> Default for NullCompositionExpression<H> {
589    fn default() -> Self {
590        Self {
591            _phantom: core::marker::PhantomData,
592        }
593    }
594}
595impl<H: HostTypes> NullCompositionExpression<H> {
596    /// Absent-value sentinel. `&Self::ABSENT` gives every trait-typed accessor a `'static`-lifetime reference target.
597    pub const ABSENT: NullCompositionExpression<H> = NullCompositionExpression {
598        _phantom: core::marker::PhantomData,
599    };
600}
601impl<H: HostTypes> TermExpression<H> for NullCompositionExpression<H> {}
602impl<H: HostTypes> CompositionExpression<H> for NullCompositionExpression<H> {}
603
604/// Phase 2 (orphan-closure) — resolver-absent default impl of `ForAllDeclaration<H>`.
605/// Every accessor returns `H::EMPTY_*` sentinels (for scalar / host-typed
606/// returns) or a `'static`-lifetime reference to a sibling `Null*`'s `ABSENT`
607/// const (for trait-typed returns).  Downstream provides concrete impls;
608/// this stub closes the ontology-derived trait orphan.
609#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)]
610pub struct NullForAllDeclaration<H: HostTypes> {
611    _phantom: core::marker::PhantomData<H>,
612}
613impl<H: HostTypes> Default for NullForAllDeclaration<H> {
614    fn default() -> Self {
615        Self {
616            _phantom: core::marker::PhantomData,
617        }
618    }
619}
620impl<H: HostTypes> NullForAllDeclaration<H> {
621    /// Absent-value sentinel. `&Self::ABSENT` gives every trait-typed accessor a `'static`-lifetime reference target.
622    pub const ABSENT: NullForAllDeclaration<H> = NullForAllDeclaration {
623        _phantom: core::marker::PhantomData,
624    };
625}
626impl<H: HostTypes> ForAllDeclaration<H> for NullForAllDeclaration<H> {
627    type VariableBinding = NullVariableBinding<H>;
628    fn bound_variables(&self) -> &[Self::VariableBinding] {
629        &[]
630    }
631    fn quantifier_kind(&self) -> QuantifierKind {
632        <QuantifierKind>::default()
633    }
634}
635
636/// Phase 2 (orphan-closure) — resolver-absent default impl of `VariableBinding<H>`.
637/// Every accessor returns `H::EMPTY_*` sentinels (for scalar / host-typed
638/// returns) or a `'static`-lifetime reference to a sibling `Null*`'s `ABSENT`
639/// const (for trait-typed returns).  Downstream provides concrete impls;
640/// this stub closes the ontology-derived trait orphan.
641#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)]
642pub struct NullVariableBinding<H: HostTypes> {
643    _phantom: core::marker::PhantomData<H>,
644}
645impl<H: HostTypes> Default for NullVariableBinding<H> {
646    fn default() -> Self {
647        Self {
648            _phantom: core::marker::PhantomData,
649        }
650    }
651}
652impl<H: HostTypes> NullVariableBinding<H> {
653    /// Absent-value sentinel. `&Self::ABSENT` gives every trait-typed accessor a `'static`-lifetime reference target.
654    pub const ABSENT: NullVariableBinding<H> = NullVariableBinding {
655        _phantom: core::marker::PhantomData,
656    };
657}
658impl<H: HostTypes> VariableBinding<H> for NullVariableBinding<H> {
659    fn variable_domain(&self) -> &H::HostString {
660        H::EMPTY_HOST_STRING
661    }
662    fn variable_name(&self) -> &H::HostString {
663        H::EMPTY_HOST_STRING
664    }
665}
666
667/// Phase 2 (orphan-closure) — resolver-absent default impl of `SurfaceSymbol<H>`.
668/// Every accessor returns `H::EMPTY_*` sentinels (for scalar / host-typed
669/// returns) or a `'static`-lifetime reference to a sibling `Null*`'s `ABSENT`
670/// const (for trait-typed returns).  Downstream provides concrete impls;
671/// this stub closes the ontology-derived trait orphan.
672#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)]
673pub struct NullSurfaceSymbol<H: HostTypes> {
674    _phantom: core::marker::PhantomData<H>,
675}
676impl<H: HostTypes> Default for NullSurfaceSymbol<H> {
677    fn default() -> Self {
678        Self {
679            _phantom: core::marker::PhantomData,
680        }
681    }
682}
683impl<H: HostTypes> NullSurfaceSymbol<H> {
684    /// Absent-value sentinel. `&Self::ABSENT` gives every trait-typed accessor a `'static`-lifetime reference target.
685    pub const ABSENT: NullSurfaceSymbol<H> = NullSurfaceSymbol {
686        _phantom: core::marker::PhantomData,
687    };
688}
689impl<H: HostTypes> SurfaceSymbol<H> for NullSurfaceSymbol<H> {}
690
691/// Phase 2 (orphan-closure) — resolver-absent default impl of `HostValue<H>`.
692/// Every accessor returns `H::EMPTY_*` sentinels (for scalar / host-typed
693/// returns) or a `'static`-lifetime reference to a sibling `Null*`'s `ABSENT`
694/// const (for trait-typed returns).  Downstream provides concrete impls;
695/// this stub closes the ontology-derived trait orphan.
696#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)]
697pub struct NullHostValue<H: HostTypes> {
698    _phantom: core::marker::PhantomData<H>,
699}
700impl<H: HostTypes> Default for NullHostValue<H> {
701    fn default() -> Self {
702        Self {
703            _phantom: core::marker::PhantomData,
704        }
705    }
706}
707impl<H: HostTypes> NullHostValue<H> {
708    /// Absent-value sentinel. `&Self::ABSENT` gives every trait-typed accessor a `'static`-lifetime reference target.
709    pub const ABSENT: NullHostValue<H> = NullHostValue {
710        _phantom: core::marker::PhantomData,
711    };
712}
713impl<H: HostTypes> SurfaceSymbol<H> for NullHostValue<H> {}
714impl<H: HostTypes> HostValue<H> for NullHostValue<H> {}
715
716/// Phase 2 (orphan-closure) — resolver-absent default impl of `HostStringLiteral<H>`.
717/// Every accessor returns `H::EMPTY_*` sentinels (for scalar / host-typed
718/// returns) or a `'static`-lifetime reference to a sibling `Null*`'s `ABSENT`
719/// const (for trait-typed returns).  Downstream provides concrete impls;
720/// this stub closes the ontology-derived trait orphan.
721#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)]
722pub struct NullHostStringLiteral<H: HostTypes> {
723    _phantom: core::marker::PhantomData<H>,
724}
725impl<H: HostTypes> Default for NullHostStringLiteral<H> {
726    fn default() -> Self {
727        Self {
728            _phantom: core::marker::PhantomData,
729        }
730    }
731}
732impl<H: HostTypes> NullHostStringLiteral<H> {
733    /// Absent-value sentinel. `&Self::ABSENT` gives every trait-typed accessor a `'static`-lifetime reference target.
734    pub const ABSENT: NullHostStringLiteral<H> = NullHostStringLiteral {
735        _phantom: core::marker::PhantomData,
736    };
737}
738impl<H: HostTypes> SurfaceSymbol<H> for NullHostStringLiteral<H> {}
739impl<H: HostTypes> HostValue<H> for NullHostStringLiteral<H> {}
740impl<H: HostTypes> HostStringLiteral<H> for NullHostStringLiteral<H> {
741    fn host_string(&self) -> &H::HostString {
742        H::EMPTY_HOST_STRING
743    }
744}
745
746/// Phase 2 (orphan-closure) — resolver-absent default impl of `HostBooleanLiteral<H>`.
747/// Every accessor returns `H::EMPTY_*` sentinels (for scalar / host-typed
748/// returns) or a `'static`-lifetime reference to a sibling `Null*`'s `ABSENT`
749/// const (for trait-typed returns).  Downstream provides concrete impls;
750/// this stub closes the ontology-derived trait orphan.
751#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)]
752pub struct NullHostBooleanLiteral<H: HostTypes> {
753    _phantom: core::marker::PhantomData<H>,
754}
755impl<H: HostTypes> Default for NullHostBooleanLiteral<H> {
756    fn default() -> Self {
757        Self {
758            _phantom: core::marker::PhantomData,
759        }
760    }
761}
762impl<H: HostTypes> NullHostBooleanLiteral<H> {
763    /// Absent-value sentinel. `&Self::ABSENT` gives every trait-typed accessor a `'static`-lifetime reference target.
764    pub const ABSENT: NullHostBooleanLiteral<H> = NullHostBooleanLiteral {
765        _phantom: core::marker::PhantomData,
766    };
767}
768impl<H: HostTypes> SurfaceSymbol<H> for NullHostBooleanLiteral<H> {}
769impl<H: HostTypes> HostValue<H> for NullHostBooleanLiteral<H> {}
770impl<H: HostTypes> HostBooleanLiteral<H> for NullHostBooleanLiteral<H> {
771    fn host_boolean(&self) -> bool {
772        false
773    }
774}
775
776/// Phase 2 (orphan-closure) — resolver-absent default impl of `ValueTuple<H>`.
777/// Every accessor returns `H::EMPTY_*` sentinels (for scalar / host-typed
778/// returns) or a `'static`-lifetime reference to a sibling `Null*`'s `ABSENT`
779/// const (for trait-typed returns).  Downstream provides concrete impls;
780/// this stub closes the ontology-derived trait orphan.
781#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)]
782pub struct NullValueTuple<H: HostTypes> {
783    _phantom: core::marker::PhantomData<H>,
784}
785impl<H: HostTypes> Default for NullValueTuple<H> {
786    fn default() -> Self {
787        Self {
788            _phantom: core::marker::PhantomData,
789        }
790    }
791}
792impl<H: HostTypes> NullValueTuple<H> {
793    /// Absent-value sentinel. `&Self::ABSENT` gives every trait-typed accessor a `'static`-lifetime reference target.
794    pub const ABSENT: NullValueTuple<H> = NullValueTuple {
795        _phantom: core::marker::PhantomData,
796    };
797}
798impl<H: HostTypes> ValueTuple<H> for NullValueTuple<H> {}
799
800/// Phase 8 (orphan-closure) — content-addressed handle for `Datum<H>`.
801///
802/// Pairs a [`crate::enforcement::ContentFingerprint`] with a phantom
803/// `H` so type-state checks can't mix handles across `HostTypes` impls.
804#[derive(Debug)]
805pub struct DatumHandle<H: HostTypes> {
806    /// Content fingerprint identifying the resolved record.
807    pub fingerprint: crate::enforcement::ContentFingerprint,
808    _phantom: core::marker::PhantomData<H>,
809}
810impl<H: HostTypes> Copy for DatumHandle<H> {}
811impl<H: HostTypes> Clone for DatumHandle<H> {
812    #[inline]
813    fn clone(&self) -> Self {
814        *self
815    }
816}
817impl<H: HostTypes> PartialEq for DatumHandle<H> {
818    #[inline]
819    fn eq(&self, other: &Self) -> bool {
820        self.fingerprint == other.fingerprint
821    }
822}
823impl<H: HostTypes> Eq for DatumHandle<H> {}
824impl<H: HostTypes> core::hash::Hash for DatumHandle<H> {
825    #[inline]
826    fn hash<S: core::hash::Hasher>(&self, state: &mut S) {
827        self.fingerprint.hash(state);
828    }
829}
830impl<H: HostTypes> DatumHandle<H> {
831    /// Construct a handle from its content fingerprint.
832    #[inline]
833    #[must_use]
834    pub const fn new(fingerprint: crate::enforcement::ContentFingerprint) -> Self {
835        Self {
836            fingerprint,
837            _phantom: core::marker::PhantomData,
838        }
839    }
840}
841
842/// Phase 8 (orphan-closure) — resolver trait for `Datum<H>`.
843///
844/// Hosts implement this trait to map a handle into a typed record.
845/// The default Null stub does not implement this trait — it carries
846/// no record. Resolution is the responsibility of the host pipeline.
847pub trait DatumResolver<H: HostTypes> {
848    /// Resolve a handle into its record. Returns `None` when the
849    /// handle does not correspond to known content.
850    fn resolve(&self, handle: DatumHandle<H>) -> Option<DatumRecord<H>>;
851}
852
853/// Phase 8 (orphan-closure) — typed record for `Datum<H>`.
854///
855/// Carries a field per functional accessor of the trait. Object
856/// fields hold `{Range}Handle<H>`; iterate via the Resolved wrapper
857/// chain-resolver methods.
858#[derive(Clone, Debug, PartialEq, Eq, Hash)]
859pub struct DatumRecord<H: HostTypes> {
860    pub value: u64,
861    pub witt_length: u64,
862    pub stratum: u64,
863    pub spectrum: u64,
864    pub element_handle: crate::kernel::address::ElementHandle<H>,
865    #[doc(hidden)]
866    pub _phantom: core::marker::PhantomData<H>,
867}
868
869/// Phase 8 (orphan-closure) — content-addressed wrapper for `Datum<H>`.
870///
871/// Caches the resolver's lookup at construction. Accessors return
872/// the cached record's fields when present, falling back to the
873/// `Null{Class}<H>` absent sentinels when the resolver returned
874/// `None`. Object accessors always return absent sentinels — use
875/// the `resolve_{m}` chain methods to descend into sub-records.
876pub struct ResolvedDatum<'r, R: DatumResolver<H>, H: HostTypes> {
877    handle: DatumHandle<H>,
878    resolver: &'r R,
879    record: Option<DatumRecord<H>>,
880}
881impl<'r, R: DatumResolver<H>, H: HostTypes> ResolvedDatum<'r, R, H> {
882    /// Construct the wrapper, eagerly resolving the handle.
883    #[inline]
884    pub fn new(handle: DatumHandle<H>, resolver: &'r R) -> Self {
885        let record = resolver.resolve(handle);
886        Self {
887            handle,
888            resolver,
889            record,
890        }
891    }
892    /// The handle this wrapper resolves.
893    #[inline]
894    #[must_use]
895    pub const fn handle(&self) -> DatumHandle<H> {
896        self.handle
897    }
898    /// The resolver supplied at construction.
899    #[inline]
900    #[must_use]
901    pub const fn resolver(&self) -> &'r R {
902        self.resolver
903    }
904    /// The cached record, or `None` when the resolver returned `None`.
905    #[inline]
906    #[must_use]
907    pub const fn record(&self) -> Option<&DatumRecord<H>> {
908        self.record.as_ref()
909    }
910}
911impl<'r, R: DatumResolver<H>, H: HostTypes> Datum<H> for ResolvedDatum<'r, R, H> {
912    fn value(&self) -> u64 {
913        match &self.record {
914            Some(r) => r.value,
915            None => 0,
916        }
917    }
918    fn witt_length(&self) -> u64 {
919        match &self.record {
920            Some(r) => r.witt_length,
921            None => 0,
922        }
923    }
924    fn stratum(&self) -> u64 {
925        match &self.record {
926            Some(r) => r.stratum,
927            None => 0,
928        }
929    }
930    fn spectrum(&self) -> u64 {
931        match &self.record {
932            Some(r) => r.spectrum,
933            None => 0,
934        }
935    }
936    type Element = crate::kernel::address::NullElement<H>;
937    fn element(&self) -> &Self::Element {
938        &<crate::kernel::address::NullElement<H>>::ABSENT
939    }
940}
941impl<'r, R: DatumResolver<H>, H: HostTypes> ResolvedDatum<'r, R, H> {
942    /// Promote the `element` handle on the cached record into a
943    /// resolved wrapper, given a resolver for the range class.
944    /// Returns `None` if no record was resolved at construction.
945    #[inline]
946    pub fn resolve_element<'r2, R2: crate::kernel::address::ElementResolver<H>>(
947        &self,
948        r: &'r2 R2,
949    ) -> Option<crate::kernel::address::ResolvedElement<'r2, R2, H>> {
950        let record = self.record.as_ref()?;
951        Some(crate::kernel::address::ResolvedElement::new(
952            record.element_handle,
953            r,
954        ))
955    }
956}
957
958/// Phase 8 (orphan-closure) — content-addressed handle for `Term<H>`.
959///
960/// Pairs a [`crate::enforcement::ContentFingerprint`] with a phantom
961/// `H` so type-state checks can't mix handles across `HostTypes` impls.
962#[derive(Debug)]
963pub struct TermHandle<H: HostTypes> {
964    /// Content fingerprint identifying the resolved record.
965    pub fingerprint: crate::enforcement::ContentFingerprint,
966    _phantom: core::marker::PhantomData<H>,
967}
968impl<H: HostTypes> Copy for TermHandle<H> {}
969impl<H: HostTypes> Clone for TermHandle<H> {
970    #[inline]
971    fn clone(&self) -> Self {
972        *self
973    }
974}
975impl<H: HostTypes> PartialEq for TermHandle<H> {
976    #[inline]
977    fn eq(&self, other: &Self) -> bool {
978        self.fingerprint == other.fingerprint
979    }
980}
981impl<H: HostTypes> Eq for TermHandle<H> {}
982impl<H: HostTypes> core::hash::Hash for TermHandle<H> {
983    #[inline]
984    fn hash<S: core::hash::Hasher>(&self, state: &mut S) {
985        self.fingerprint.hash(state);
986    }
987}
988impl<H: HostTypes> TermHandle<H> {
989    /// Construct a handle from its content fingerprint.
990    #[inline]
991    #[must_use]
992    pub const fn new(fingerprint: crate::enforcement::ContentFingerprint) -> Self {
993        Self {
994            fingerprint,
995            _phantom: core::marker::PhantomData,
996        }
997    }
998}
999
1000/// Phase 8 (orphan-closure) — resolver trait for `Term<H>`.
1001///
1002/// Hosts implement this trait to map a handle into a typed record.
1003/// The default Null stub does not implement this trait — it carries
1004/// no record. Resolution is the responsibility of the host pipeline.
1005pub trait TermResolver<H: HostTypes> {
1006    /// Resolve a handle into its record. Returns `None` when the
1007    /// handle does not correspond to known content.
1008    fn resolve(&self, handle: TermHandle<H>) -> Option<TermRecord<H>>;
1009}
1010
1011/// Phase 8 (orphan-closure) — typed record for `Term<H>`.
1012///
1013/// Carries a field per functional accessor of the trait. Object
1014/// fields hold `{Range}Handle<H>`; iterate via the Resolved wrapper
1015/// chain-resolver methods.
1016#[derive(Clone, Debug, PartialEq, Eq, Hash)]
1017pub struct TermRecord<H: HostTypes> {
1018    #[doc(hidden)]
1019    pub _phantom: core::marker::PhantomData<H>,
1020}
1021
1022/// Phase 8 (orphan-closure) — content-addressed wrapper for `Term<H>`.
1023///
1024/// Caches the resolver's lookup at construction. Accessors return
1025/// the cached record's fields when present, falling back to the
1026/// `Null{Class}<H>` absent sentinels when the resolver returned
1027/// `None`. Object accessors always return absent sentinels — use
1028/// the `resolve_{m}` chain methods to descend into sub-records.
1029pub struct ResolvedTerm<'r, R: TermResolver<H>, H: HostTypes> {
1030    handle: TermHandle<H>,
1031    resolver: &'r R,
1032    record: Option<TermRecord<H>>,
1033}
1034impl<'r, R: TermResolver<H>, H: HostTypes> ResolvedTerm<'r, R, H> {
1035    /// Construct the wrapper, eagerly resolving the handle.
1036    #[inline]
1037    pub fn new(handle: TermHandle<H>, resolver: &'r R) -> Self {
1038        let record = resolver.resolve(handle);
1039        Self {
1040            handle,
1041            resolver,
1042            record,
1043        }
1044    }
1045    /// The handle this wrapper resolves.
1046    #[inline]
1047    #[must_use]
1048    pub const fn handle(&self) -> TermHandle<H> {
1049        self.handle
1050    }
1051    /// The resolver supplied at construction.
1052    #[inline]
1053    #[must_use]
1054    pub const fn resolver(&self) -> &'r R {
1055        self.resolver
1056    }
1057    /// The cached record, or `None` when the resolver returned `None`.
1058    #[inline]
1059    #[must_use]
1060    pub const fn record(&self) -> Option<&TermRecord<H>> {
1061        self.record.as_ref()
1062    }
1063}
1064impl<'r, R: TermResolver<H>, H: HostTypes> Term<H> for ResolvedTerm<'r, R, H> {}
1065
1066/// Phase 8 (orphan-closure) — content-addressed handle for `Triad<H>`.
1067///
1068/// Pairs a [`crate::enforcement::ContentFingerprint`] with a phantom
1069/// `H` so type-state checks can't mix handles across `HostTypes` impls.
1070#[derive(Debug)]
1071pub struct TriadHandle<H: HostTypes> {
1072    /// Content fingerprint identifying the resolved record.
1073    pub fingerprint: crate::enforcement::ContentFingerprint,
1074    _phantom: core::marker::PhantomData<H>,
1075}
1076impl<H: HostTypes> Copy for TriadHandle<H> {}
1077impl<H: HostTypes> Clone for TriadHandle<H> {
1078    #[inline]
1079    fn clone(&self) -> Self {
1080        *self
1081    }
1082}
1083impl<H: HostTypes> PartialEq for TriadHandle<H> {
1084    #[inline]
1085    fn eq(&self, other: &Self) -> bool {
1086        self.fingerprint == other.fingerprint
1087    }
1088}
1089impl<H: HostTypes> Eq for TriadHandle<H> {}
1090impl<H: HostTypes> core::hash::Hash for TriadHandle<H> {
1091    #[inline]
1092    fn hash<S: core::hash::Hasher>(&self, state: &mut S) {
1093        self.fingerprint.hash(state);
1094    }
1095}
1096impl<H: HostTypes> TriadHandle<H> {
1097    /// Construct a handle from its content fingerprint.
1098    #[inline]
1099    #[must_use]
1100    pub const fn new(fingerprint: crate::enforcement::ContentFingerprint) -> Self {
1101        Self {
1102            fingerprint,
1103            _phantom: core::marker::PhantomData,
1104        }
1105    }
1106}
1107
1108/// Phase 8 (orphan-closure) — resolver trait for `Triad<H>`.
1109///
1110/// Hosts implement this trait to map a handle into a typed record.
1111/// The default Null stub does not implement this trait — it carries
1112/// no record. Resolution is the responsibility of the host pipeline.
1113pub trait TriadResolver<H: HostTypes> {
1114    /// Resolve a handle into its record. Returns `None` when the
1115    /// handle does not correspond to known content.
1116    fn resolve(&self, handle: TriadHandle<H>) -> Option<TriadRecord<H>>;
1117}
1118
1119/// Phase 8 (orphan-closure) — typed record for `Triad<H>`.
1120///
1121/// Carries a field per functional accessor of the trait. Object
1122/// fields hold `{Range}Handle<H>`; iterate via the Resolved wrapper
1123/// chain-resolver methods.
1124#[derive(Clone, Debug, PartialEq, Eq, Hash)]
1125pub struct TriadRecord<H: HostTypes> {
1126    pub triad_stratum: u64,
1127    pub triad_spectrum: u64,
1128    pub triad_address: u64,
1129    #[doc(hidden)]
1130    pub _phantom: core::marker::PhantomData<H>,
1131}
1132
1133/// Phase 8 (orphan-closure) — content-addressed wrapper for `Triad<H>`.
1134///
1135/// Caches the resolver's lookup at construction. Accessors return
1136/// the cached record's fields when present, falling back to the
1137/// `Null{Class}<H>` absent sentinels when the resolver returned
1138/// `None`. Object accessors always return absent sentinels — use
1139/// the `resolve_{m}` chain methods to descend into sub-records.
1140pub struct ResolvedTriad<'r, R: TriadResolver<H>, H: HostTypes> {
1141    handle: TriadHandle<H>,
1142    resolver: &'r R,
1143    record: Option<TriadRecord<H>>,
1144}
1145impl<'r, R: TriadResolver<H>, H: HostTypes> ResolvedTriad<'r, R, H> {
1146    /// Construct the wrapper, eagerly resolving the handle.
1147    #[inline]
1148    pub fn new(handle: TriadHandle<H>, resolver: &'r R) -> Self {
1149        let record = resolver.resolve(handle);
1150        Self {
1151            handle,
1152            resolver,
1153            record,
1154        }
1155    }
1156    /// The handle this wrapper resolves.
1157    #[inline]
1158    #[must_use]
1159    pub const fn handle(&self) -> TriadHandle<H> {
1160        self.handle
1161    }
1162    /// The resolver supplied at construction.
1163    #[inline]
1164    #[must_use]
1165    pub const fn resolver(&self) -> &'r R {
1166        self.resolver
1167    }
1168    /// The cached record, or `None` when the resolver returned `None`.
1169    #[inline]
1170    #[must_use]
1171    pub const fn record(&self) -> Option<&TriadRecord<H>> {
1172        self.record.as_ref()
1173    }
1174}
1175impl<'r, R: TriadResolver<H>, H: HostTypes> Triad<H> for ResolvedTriad<'r, R, H> {
1176    fn triad_stratum(&self) -> u64 {
1177        match &self.record {
1178            Some(r) => r.triad_stratum,
1179            None => 0,
1180        }
1181    }
1182    fn triad_spectrum(&self) -> u64 {
1183        match &self.record {
1184            Some(r) => r.triad_spectrum,
1185            None => 0,
1186        }
1187    }
1188    fn triad_address(&self) -> u64 {
1189        match &self.record {
1190            Some(r) => r.triad_address,
1191            None => 0,
1192        }
1193    }
1194}
1195
1196/// Phase 8 (orphan-closure) — content-addressed handle for `Literal<H>`.
1197///
1198/// Pairs a [`crate::enforcement::ContentFingerprint`] with a phantom
1199/// `H` so type-state checks can't mix handles across `HostTypes` impls.
1200#[derive(Debug)]
1201pub struct LiteralHandle<H: HostTypes> {
1202    /// Content fingerprint identifying the resolved record.
1203    pub fingerprint: crate::enforcement::ContentFingerprint,
1204    _phantom: core::marker::PhantomData<H>,
1205}
1206impl<H: HostTypes> Copy for LiteralHandle<H> {}
1207impl<H: HostTypes> Clone for LiteralHandle<H> {
1208    #[inline]
1209    fn clone(&self) -> Self {
1210        *self
1211    }
1212}
1213impl<H: HostTypes> PartialEq for LiteralHandle<H> {
1214    #[inline]
1215    fn eq(&self, other: &Self) -> bool {
1216        self.fingerprint == other.fingerprint
1217    }
1218}
1219impl<H: HostTypes> Eq for LiteralHandle<H> {}
1220impl<H: HostTypes> core::hash::Hash for LiteralHandle<H> {
1221    #[inline]
1222    fn hash<S: core::hash::Hasher>(&self, state: &mut S) {
1223        self.fingerprint.hash(state);
1224    }
1225}
1226impl<H: HostTypes> LiteralHandle<H> {
1227    /// Construct a handle from its content fingerprint.
1228    #[inline]
1229    #[must_use]
1230    pub const fn new(fingerprint: crate::enforcement::ContentFingerprint) -> Self {
1231        Self {
1232            fingerprint,
1233            _phantom: core::marker::PhantomData,
1234        }
1235    }
1236}
1237
1238/// Phase 8 (orphan-closure) — resolver trait for `Literal<H>`.
1239///
1240/// Hosts implement this trait to map a handle into a typed record.
1241/// The default Null stub does not implement this trait — it carries
1242/// no record. Resolution is the responsibility of the host pipeline.
1243pub trait LiteralResolver<H: HostTypes> {
1244    /// Resolve a handle into its record. Returns `None` when the
1245    /// handle does not correspond to known content.
1246    fn resolve(&self, handle: LiteralHandle<H>) -> Option<LiteralRecord<H>>;
1247}
1248
1249/// Phase 8 (orphan-closure) — typed record for `Literal<H>`.
1250///
1251/// Carries a field per functional accessor of the trait. Object
1252/// fields hold `{Range}Handle<H>`; iterate via the Resolved wrapper
1253/// chain-resolver methods.
1254#[derive(Clone, Debug, PartialEq, Eq, Hash)]
1255pub struct LiteralRecord<H: HostTypes> {
1256    pub denotes_handle: DatumHandle<H>,
1257    #[doc(hidden)]
1258    pub _phantom: core::marker::PhantomData<H>,
1259}
1260
1261/// Phase 8 (orphan-closure) — content-addressed wrapper for `Literal<H>`.
1262///
1263/// Caches the resolver's lookup at construction. Accessors return
1264/// the cached record's fields when present, falling back to the
1265/// `Null{Class}<H>` absent sentinels when the resolver returned
1266/// `None`. Object accessors always return absent sentinels — use
1267/// the `resolve_{m}` chain methods to descend into sub-records.
1268pub struct ResolvedLiteral<'r, R: LiteralResolver<H>, H: HostTypes> {
1269    handle: LiteralHandle<H>,
1270    resolver: &'r R,
1271    record: Option<LiteralRecord<H>>,
1272}
1273impl<'r, R: LiteralResolver<H>, H: HostTypes> ResolvedLiteral<'r, R, H> {
1274    /// Construct the wrapper, eagerly resolving the handle.
1275    #[inline]
1276    pub fn new(handle: LiteralHandle<H>, resolver: &'r R) -> Self {
1277        let record = resolver.resolve(handle);
1278        Self {
1279            handle,
1280            resolver,
1281            record,
1282        }
1283    }
1284    /// The handle this wrapper resolves.
1285    #[inline]
1286    #[must_use]
1287    pub const fn handle(&self) -> LiteralHandle<H> {
1288        self.handle
1289    }
1290    /// The resolver supplied at construction.
1291    #[inline]
1292    #[must_use]
1293    pub const fn resolver(&self) -> &'r R {
1294        self.resolver
1295    }
1296    /// The cached record, or `None` when the resolver returned `None`.
1297    #[inline]
1298    #[must_use]
1299    pub const fn record(&self) -> Option<&LiteralRecord<H>> {
1300        self.record.as_ref()
1301    }
1302}
1303impl<'r, R: LiteralResolver<H>, H: HostTypes> Term<H> for ResolvedLiteral<'r, R, H> {}
1304impl<'r, R: LiteralResolver<H>, H: HostTypes> SurfaceSymbol<H> for ResolvedLiteral<'r, R, H> {}
1305impl<'r, R: LiteralResolver<H>, H: HostTypes> Literal<H> for ResolvedLiteral<'r, R, H> {
1306    type Datum = NullDatum<H>;
1307    fn denotes(&self) -> &Self::Datum {
1308        &<NullDatum<H>>::ABSENT
1309    }
1310}
1311impl<'r, R: LiteralResolver<H>, H: HostTypes> ResolvedLiteral<'r, R, H> {
1312    /// Promote the `denotes` handle on the cached record into a
1313    /// resolved wrapper, given a resolver for the range class.
1314    /// Returns `None` if no record was resolved at construction.
1315    #[inline]
1316    pub fn resolve_denotes<'r2, R2: DatumResolver<H>>(
1317        &self,
1318        r: &'r2 R2,
1319    ) -> Option<ResolvedDatum<'r2, R2, H>> {
1320        let record = self.record.as_ref()?;
1321        Some(ResolvedDatum::new(record.denotes_handle, r))
1322    }
1323}
1324
1325/// Phase 8 (orphan-closure) — content-addressed handle for `Application<H>`.
1326///
1327/// Pairs a [`crate::enforcement::ContentFingerprint`] with a phantom
1328/// `H` so type-state checks can't mix handles across `HostTypes` impls.
1329#[derive(Debug)]
1330pub struct ApplicationHandle<H: HostTypes> {
1331    /// Content fingerprint identifying the resolved record.
1332    pub fingerprint: crate::enforcement::ContentFingerprint,
1333    _phantom: core::marker::PhantomData<H>,
1334}
1335impl<H: HostTypes> Copy for ApplicationHandle<H> {}
1336impl<H: HostTypes> Clone for ApplicationHandle<H> {
1337    #[inline]
1338    fn clone(&self) -> Self {
1339        *self
1340    }
1341}
1342impl<H: HostTypes> PartialEq for ApplicationHandle<H> {
1343    #[inline]
1344    fn eq(&self, other: &Self) -> bool {
1345        self.fingerprint == other.fingerprint
1346    }
1347}
1348impl<H: HostTypes> Eq for ApplicationHandle<H> {}
1349impl<H: HostTypes> core::hash::Hash for ApplicationHandle<H> {
1350    #[inline]
1351    fn hash<S: core::hash::Hasher>(&self, state: &mut S) {
1352        self.fingerprint.hash(state);
1353    }
1354}
1355impl<H: HostTypes> ApplicationHandle<H> {
1356    /// Construct a handle from its content fingerprint.
1357    #[inline]
1358    #[must_use]
1359    pub const fn new(fingerprint: crate::enforcement::ContentFingerprint) -> Self {
1360        Self {
1361            fingerprint,
1362            _phantom: core::marker::PhantomData,
1363        }
1364    }
1365}
1366
1367/// Phase 8 (orphan-closure) — resolver trait for `Application<H>`.
1368///
1369/// Hosts implement this trait to map a handle into a typed record.
1370/// The default Null stub does not implement this trait — it carries
1371/// no record. Resolution is the responsibility of the host pipeline.
1372pub trait ApplicationResolver<H: HostTypes> {
1373    /// Resolve a handle into its record. Returns `None` when the
1374    /// handle does not correspond to known content.
1375    fn resolve(&self, handle: ApplicationHandle<H>) -> Option<ApplicationRecord<H>>;
1376}
1377
1378/// Phase 8 (orphan-closure) — typed record for `Application<H>`.
1379///
1380/// Carries a field per functional accessor of the trait. Object
1381/// fields hold `{Range}Handle<H>`; iterate via the Resolved wrapper
1382/// chain-resolver methods.
1383#[derive(Clone, Debug, PartialEq, Eq, Hash)]
1384pub struct ApplicationRecord<H: HostTypes> {
1385    pub operator_handle: crate::kernel::op::OperationHandle<H>,
1386    #[doc(hidden)]
1387    pub _phantom: core::marker::PhantomData<H>,
1388}
1389
1390/// Phase 8 (orphan-closure) — content-addressed wrapper for `Application<H>`.
1391///
1392/// Caches the resolver's lookup at construction. Accessors return
1393/// the cached record's fields when present, falling back to the
1394/// `Null{Class}<H>` absent sentinels when the resolver returned
1395/// `None`. Object accessors always return absent sentinels — use
1396/// the `resolve_{m}` chain methods to descend into sub-records.
1397pub struct ResolvedApplication<'r, R: ApplicationResolver<H>, H: HostTypes> {
1398    handle: ApplicationHandle<H>,
1399    resolver: &'r R,
1400    record: Option<ApplicationRecord<H>>,
1401}
1402impl<'r, R: ApplicationResolver<H>, H: HostTypes> ResolvedApplication<'r, R, H> {
1403    /// Construct the wrapper, eagerly resolving the handle.
1404    #[inline]
1405    pub fn new(handle: ApplicationHandle<H>, resolver: &'r R) -> Self {
1406        let record = resolver.resolve(handle);
1407        Self {
1408            handle,
1409            resolver,
1410            record,
1411        }
1412    }
1413    /// The handle this wrapper resolves.
1414    #[inline]
1415    #[must_use]
1416    pub const fn handle(&self) -> ApplicationHandle<H> {
1417        self.handle
1418    }
1419    /// The resolver supplied at construction.
1420    #[inline]
1421    #[must_use]
1422    pub const fn resolver(&self) -> &'r R {
1423        self.resolver
1424    }
1425    /// The cached record, or `None` when the resolver returned `None`.
1426    #[inline]
1427    #[must_use]
1428    pub const fn record(&self) -> Option<&ApplicationRecord<H>> {
1429        self.record.as_ref()
1430    }
1431}
1432impl<'r, R: ApplicationResolver<H>, H: HostTypes> Term<H> for ResolvedApplication<'r, R, H> {}
1433impl<'r, R: ApplicationResolver<H>, H: HostTypes> Application<H> for ResolvedApplication<'r, R, H> {
1434    type Operation = crate::kernel::op::NullOperation<H>;
1435    fn operator(&self) -> &Self::Operation {
1436        &<crate::kernel::op::NullOperation<H>>::ABSENT
1437    }
1438    type Term = NullTerm<H>;
1439    fn argument(&self) -> &[Self::Term] {
1440        &[]
1441    }
1442}
1443impl<'r, R: ApplicationResolver<H>, H: HostTypes> ResolvedApplication<'r, R, H> {
1444    /// Promote the `operator` handle on the cached record into a
1445    /// resolved wrapper, given a resolver for the range class.
1446    /// Returns `None` if no record was resolved at construction.
1447    #[inline]
1448    pub fn resolve_operator<'r2, R2: crate::kernel::op::OperationResolver<H>>(
1449        &self,
1450        r: &'r2 R2,
1451    ) -> Option<crate::kernel::op::ResolvedOperation<'r2, R2, H>> {
1452        let record = self.record.as_ref()?;
1453        Some(crate::kernel::op::ResolvedOperation::new(
1454            record.operator_handle,
1455            r,
1456        ))
1457    }
1458}
1459
1460/// Phase 8 (orphan-closure) — content-addressed handle for `Ring<H>`.
1461///
1462/// Pairs a [`crate::enforcement::ContentFingerprint`] with a phantom
1463/// `H` so type-state checks can't mix handles across `HostTypes` impls.
1464#[derive(Debug)]
1465pub struct RingHandle<H: HostTypes> {
1466    /// Content fingerprint identifying the resolved record.
1467    pub fingerprint: crate::enforcement::ContentFingerprint,
1468    _phantom: core::marker::PhantomData<H>,
1469}
1470impl<H: HostTypes> Copy for RingHandle<H> {}
1471impl<H: HostTypes> Clone for RingHandle<H> {
1472    #[inline]
1473    fn clone(&self) -> Self {
1474        *self
1475    }
1476}
1477impl<H: HostTypes> PartialEq for RingHandle<H> {
1478    #[inline]
1479    fn eq(&self, other: &Self) -> bool {
1480        self.fingerprint == other.fingerprint
1481    }
1482}
1483impl<H: HostTypes> Eq for RingHandle<H> {}
1484impl<H: HostTypes> core::hash::Hash for RingHandle<H> {
1485    #[inline]
1486    fn hash<S: core::hash::Hasher>(&self, state: &mut S) {
1487        self.fingerprint.hash(state);
1488    }
1489}
1490impl<H: HostTypes> RingHandle<H> {
1491    /// Construct a handle from its content fingerprint.
1492    #[inline]
1493    #[must_use]
1494    pub const fn new(fingerprint: crate::enforcement::ContentFingerprint) -> Self {
1495        Self {
1496            fingerprint,
1497            _phantom: core::marker::PhantomData,
1498        }
1499    }
1500}
1501
1502/// Phase 8 (orphan-closure) — resolver trait for `Ring<H>`.
1503///
1504/// Hosts implement this trait to map a handle into a typed record.
1505/// The default Null stub does not implement this trait — it carries
1506/// no record. Resolution is the responsibility of the host pipeline.
1507pub trait RingResolver<H: HostTypes> {
1508    /// Resolve a handle into its record. Returns `None` when the
1509    /// handle does not correspond to known content.
1510    fn resolve(&self, handle: RingHandle<H>) -> Option<RingRecord<H>>;
1511}
1512
1513/// Phase 8 (orphan-closure) — typed record for `Ring<H>`.
1514///
1515/// Carries a field per functional accessor of the trait. Object
1516/// fields hold `{Range}Handle<H>`; iterate via the Resolved wrapper
1517/// chain-resolver methods.
1518#[derive(Clone, Debug, PartialEq, Eq, Hash)]
1519pub struct RingRecord<H: HostTypes> {
1520    pub ring_witt_length: u64,
1521    pub modulus: u64,
1522    pub generator_handle: DatumHandle<H>,
1523    pub negation_handle: crate::kernel::op::InvolutionHandle<H>,
1524    pub complement_handle: crate::kernel::op::InvolutionHandle<H>,
1525    pub at_witt_level: WittLevel,
1526    #[doc(hidden)]
1527    pub _phantom: core::marker::PhantomData<H>,
1528}
1529
1530/// Phase 8 (orphan-closure) — content-addressed wrapper for `Ring<H>`.
1531///
1532/// Caches the resolver's lookup at construction. Accessors return
1533/// the cached record's fields when present, falling back to the
1534/// `Null{Class}<H>` absent sentinels when the resolver returned
1535/// `None`. Object accessors always return absent sentinels — use
1536/// the `resolve_{m}` chain methods to descend into sub-records.
1537pub struct ResolvedRing<'r, R: RingResolver<H>, H: HostTypes> {
1538    handle: RingHandle<H>,
1539    resolver: &'r R,
1540    record: Option<RingRecord<H>>,
1541}
1542impl<'r, R: RingResolver<H>, H: HostTypes> ResolvedRing<'r, R, H> {
1543    /// Construct the wrapper, eagerly resolving the handle.
1544    #[inline]
1545    pub fn new(handle: RingHandle<H>, resolver: &'r R) -> Self {
1546        let record = resolver.resolve(handle);
1547        Self {
1548            handle,
1549            resolver,
1550            record,
1551        }
1552    }
1553    /// The handle this wrapper resolves.
1554    #[inline]
1555    #[must_use]
1556    pub const fn handle(&self) -> RingHandle<H> {
1557        self.handle
1558    }
1559    /// The resolver supplied at construction.
1560    #[inline]
1561    #[must_use]
1562    pub const fn resolver(&self) -> &'r R {
1563        self.resolver
1564    }
1565    /// The cached record, or `None` when the resolver returned `None`.
1566    #[inline]
1567    #[must_use]
1568    pub const fn record(&self) -> Option<&RingRecord<H>> {
1569        self.record.as_ref()
1570    }
1571}
1572impl<'r, R: RingResolver<H>, H: HostTypes> Ring<H> for ResolvedRing<'r, R, H> {
1573    fn ring_witt_length(&self) -> u64 {
1574        match &self.record {
1575            Some(r) => r.ring_witt_length,
1576            None => 0,
1577        }
1578    }
1579    fn modulus(&self) -> u64 {
1580        match &self.record {
1581            Some(r) => r.modulus,
1582            None => 0,
1583        }
1584    }
1585    type Datum = NullDatum<H>;
1586    fn generator(&self) -> &Self::Datum {
1587        &<NullDatum<H>>::ABSENT
1588    }
1589    type Involution = crate::kernel::op::NullInvolution<H>;
1590    fn negation(&self) -> &Self::Involution {
1591        &<crate::kernel::op::NullInvolution<H>>::ABSENT
1592    }
1593    fn complement(&self) -> &Self::Involution {
1594        &<crate::kernel::op::NullInvolution<H>>::ABSENT
1595    }
1596    fn at_witt_level(&self) -> WittLevel {
1597        match &self.record {
1598            Some(r) => r.at_witt_level,
1599            None => <WittLevel>::default(),
1600        }
1601    }
1602}
1603impl<'r, R: RingResolver<H>, H: HostTypes> ResolvedRing<'r, R, H> {
1604    /// Promote the `generator` handle on the cached record into a
1605    /// resolved wrapper, given a resolver for the range class.
1606    /// Returns `None` if no record was resolved at construction.
1607    #[inline]
1608    pub fn resolve_generator<'r2, R2: DatumResolver<H>>(
1609        &self,
1610        r: &'r2 R2,
1611    ) -> Option<ResolvedDatum<'r2, R2, H>> {
1612        let record = self.record.as_ref()?;
1613        Some(ResolvedDatum::new(record.generator_handle, r))
1614    }
1615    /// Promote the `negation` handle on the cached record into a
1616    /// resolved wrapper, given a resolver for the range class.
1617    /// Returns `None` if no record was resolved at construction.
1618    #[inline]
1619    pub fn resolve_negation<'r2, R2: crate::kernel::op::InvolutionResolver<H>>(
1620        &self,
1621        r: &'r2 R2,
1622    ) -> Option<crate::kernel::op::ResolvedInvolution<'r2, R2, H>> {
1623        let record = self.record.as_ref()?;
1624        Some(crate::kernel::op::ResolvedInvolution::new(
1625            record.negation_handle,
1626            r,
1627        ))
1628    }
1629    /// Promote the `complement` handle on the cached record into a
1630    /// resolved wrapper, given a resolver for the range class.
1631    /// Returns `None` if no record was resolved at construction.
1632    #[inline]
1633    pub fn resolve_complement<'r2, R2: crate::kernel::op::InvolutionResolver<H>>(
1634        &self,
1635        r: &'r2 R2,
1636    ) -> Option<crate::kernel::op::ResolvedInvolution<'r2, R2, H>> {
1637        let record = self.record.as_ref()?;
1638        Some(crate::kernel::op::ResolvedInvolution::new(
1639            record.complement_handle,
1640            r,
1641        ))
1642    }
1643}
1644
1645/// Phase 8 (orphan-closure) — content-addressed handle for `W16Ring<H>`.
1646///
1647/// Pairs a [`crate::enforcement::ContentFingerprint`] with a phantom
1648/// `H` so type-state checks can't mix handles across `HostTypes` impls.
1649#[derive(Debug)]
1650pub struct W16RingHandle<H: HostTypes> {
1651    /// Content fingerprint identifying the resolved record.
1652    pub fingerprint: crate::enforcement::ContentFingerprint,
1653    _phantom: core::marker::PhantomData<H>,
1654}
1655impl<H: HostTypes> Copy for W16RingHandle<H> {}
1656impl<H: HostTypes> Clone for W16RingHandle<H> {
1657    #[inline]
1658    fn clone(&self) -> Self {
1659        *self
1660    }
1661}
1662impl<H: HostTypes> PartialEq for W16RingHandle<H> {
1663    #[inline]
1664    fn eq(&self, other: &Self) -> bool {
1665        self.fingerprint == other.fingerprint
1666    }
1667}
1668impl<H: HostTypes> Eq for W16RingHandle<H> {}
1669impl<H: HostTypes> core::hash::Hash for W16RingHandle<H> {
1670    #[inline]
1671    fn hash<S: core::hash::Hasher>(&self, state: &mut S) {
1672        self.fingerprint.hash(state);
1673    }
1674}
1675impl<H: HostTypes> W16RingHandle<H> {
1676    /// Construct a handle from its content fingerprint.
1677    #[inline]
1678    #[must_use]
1679    pub const fn new(fingerprint: crate::enforcement::ContentFingerprint) -> Self {
1680        Self {
1681            fingerprint,
1682            _phantom: core::marker::PhantomData,
1683        }
1684    }
1685}
1686
1687/// Phase 8 (orphan-closure) — resolver trait for `W16Ring<H>`.
1688///
1689/// Hosts implement this trait to map a handle into a typed record.
1690/// The default Null stub does not implement this trait — it carries
1691/// no record. Resolution is the responsibility of the host pipeline.
1692pub trait W16RingResolver<H: HostTypes> {
1693    /// Resolve a handle into its record. Returns `None` when the
1694    /// handle does not correspond to known content.
1695    fn resolve(&self, handle: W16RingHandle<H>) -> Option<W16RingRecord<H>>;
1696}
1697
1698/// Phase 8 (orphan-closure) — typed record for `W16Ring<H>`.
1699///
1700/// Carries a field per functional accessor of the trait. Object
1701/// fields hold `{Range}Handle<H>`; iterate via the Resolved wrapper
1702/// chain-resolver methods.
1703#[derive(Clone, Debug, PartialEq, Eq, Hash)]
1704pub struct W16RingRecord<H: HostTypes> {
1705    pub w16bit_width: u64,
1706    pub w16capacity: u64,
1707    #[doc(hidden)]
1708    pub _phantom: core::marker::PhantomData<H>,
1709}
1710
1711/// Phase 8 (orphan-closure) — content-addressed wrapper for `W16Ring<H>`.
1712///
1713/// Caches the resolver's lookup at construction. Accessors return
1714/// the cached record's fields when present, falling back to the
1715/// `Null{Class}<H>` absent sentinels when the resolver returned
1716/// `None`. Object accessors always return absent sentinels — use
1717/// the `resolve_{m}` chain methods to descend into sub-records.
1718pub struct ResolvedW16Ring<'r, R: W16RingResolver<H>, H: HostTypes> {
1719    handle: W16RingHandle<H>,
1720    resolver: &'r R,
1721    record: Option<W16RingRecord<H>>,
1722}
1723impl<'r, R: W16RingResolver<H>, H: HostTypes> ResolvedW16Ring<'r, R, H> {
1724    /// Construct the wrapper, eagerly resolving the handle.
1725    #[inline]
1726    pub fn new(handle: W16RingHandle<H>, resolver: &'r R) -> Self {
1727        let record = resolver.resolve(handle);
1728        Self {
1729            handle,
1730            resolver,
1731            record,
1732        }
1733    }
1734    /// The handle this wrapper resolves.
1735    #[inline]
1736    #[must_use]
1737    pub const fn handle(&self) -> W16RingHandle<H> {
1738        self.handle
1739    }
1740    /// The resolver supplied at construction.
1741    #[inline]
1742    #[must_use]
1743    pub const fn resolver(&self) -> &'r R {
1744        self.resolver
1745    }
1746    /// The cached record, or `None` when the resolver returned `None`.
1747    #[inline]
1748    #[must_use]
1749    pub const fn record(&self) -> Option<&W16RingRecord<H>> {
1750        self.record.as_ref()
1751    }
1752}
1753impl<'r, R: W16RingResolver<H>, H: HostTypes> Ring<H> for ResolvedW16Ring<'r, R, H> {
1754    fn ring_witt_length(&self) -> u64 {
1755        0
1756    }
1757    fn modulus(&self) -> u64 {
1758        0
1759    }
1760    type Datum = NullDatum<H>;
1761    fn generator(&self) -> &Self::Datum {
1762        &<NullDatum<H>>::ABSENT
1763    }
1764    type Involution = crate::kernel::op::NullInvolution<H>;
1765    fn negation(&self) -> &Self::Involution {
1766        &<crate::kernel::op::NullInvolution<H>>::ABSENT
1767    }
1768    fn complement(&self) -> &Self::Involution {
1769        &<crate::kernel::op::NullInvolution<H>>::ABSENT
1770    }
1771    fn at_witt_level(&self) -> WittLevel {
1772        <WittLevel>::default()
1773    }
1774}
1775impl<'r, R: W16RingResolver<H>, H: HostTypes> W16Ring<H> for ResolvedW16Ring<'r, R, H> {
1776    fn w16bit_width(&self) -> u64 {
1777        match &self.record {
1778            Some(r) => r.w16bit_width,
1779            None => 0,
1780        }
1781    }
1782    fn w16capacity(&self) -> u64 {
1783        match &self.record {
1784            Some(r) => r.w16capacity,
1785            None => 0,
1786        }
1787    }
1788}
1789
1790/// Phase 8 (orphan-closure) — content-addressed handle for `TermExpression<H>`.
1791///
1792/// Pairs a [`crate::enforcement::ContentFingerprint`] with a phantom
1793/// `H` so type-state checks can't mix handles across `HostTypes` impls.
1794#[derive(Debug)]
1795pub struct TermExpressionHandle<H: HostTypes> {
1796    /// Content fingerprint identifying the resolved record.
1797    pub fingerprint: crate::enforcement::ContentFingerprint,
1798    _phantom: core::marker::PhantomData<H>,
1799}
1800impl<H: HostTypes> Copy for TermExpressionHandle<H> {}
1801impl<H: HostTypes> Clone for TermExpressionHandle<H> {
1802    #[inline]
1803    fn clone(&self) -> Self {
1804        *self
1805    }
1806}
1807impl<H: HostTypes> PartialEq for TermExpressionHandle<H> {
1808    #[inline]
1809    fn eq(&self, other: &Self) -> bool {
1810        self.fingerprint == other.fingerprint
1811    }
1812}
1813impl<H: HostTypes> Eq for TermExpressionHandle<H> {}
1814impl<H: HostTypes> core::hash::Hash for TermExpressionHandle<H> {
1815    #[inline]
1816    fn hash<S: core::hash::Hasher>(&self, state: &mut S) {
1817        self.fingerprint.hash(state);
1818    }
1819}
1820impl<H: HostTypes> TermExpressionHandle<H> {
1821    /// Construct a handle from its content fingerprint.
1822    #[inline]
1823    #[must_use]
1824    pub const fn new(fingerprint: crate::enforcement::ContentFingerprint) -> Self {
1825        Self {
1826            fingerprint,
1827            _phantom: core::marker::PhantomData,
1828        }
1829    }
1830}
1831
1832/// Phase 8 (orphan-closure) — resolver trait for `TermExpression<H>`.
1833///
1834/// Hosts implement this trait to map a handle into a typed record.
1835/// The default Null stub does not implement this trait — it carries
1836/// no record. Resolution is the responsibility of the host pipeline.
1837pub trait TermExpressionResolver<H: HostTypes> {
1838    /// Resolve a handle into its record. Returns `None` when the
1839    /// handle does not correspond to known content.
1840    fn resolve(&self, handle: TermExpressionHandle<H>) -> Option<TermExpressionRecord<H>>;
1841}
1842
1843/// Phase 8 (orphan-closure) — typed record for `TermExpression<H>`.
1844///
1845/// Carries a field per functional accessor of the trait. Object
1846/// fields hold `{Range}Handle<H>`; iterate via the Resolved wrapper
1847/// chain-resolver methods.
1848#[derive(Clone, Debug, PartialEq, Eq, Hash)]
1849pub struct TermExpressionRecord<H: HostTypes> {
1850    #[doc(hidden)]
1851    pub _phantom: core::marker::PhantomData<H>,
1852}
1853
1854/// Phase 8 (orphan-closure) — content-addressed wrapper for `TermExpression<H>`.
1855///
1856/// Caches the resolver's lookup at construction. Accessors return
1857/// the cached record's fields when present, falling back to the
1858/// `Null{Class}<H>` absent sentinels when the resolver returned
1859/// `None`. Object accessors always return absent sentinels — use
1860/// the `resolve_{m}` chain methods to descend into sub-records.
1861pub struct ResolvedTermExpression<'r, R: TermExpressionResolver<H>, H: HostTypes> {
1862    handle: TermExpressionHandle<H>,
1863    resolver: &'r R,
1864    record: Option<TermExpressionRecord<H>>,
1865}
1866impl<'r, R: TermExpressionResolver<H>, H: HostTypes> ResolvedTermExpression<'r, R, H> {
1867    /// Construct the wrapper, eagerly resolving the handle.
1868    #[inline]
1869    pub fn new(handle: TermExpressionHandle<H>, resolver: &'r R) -> Self {
1870        let record = resolver.resolve(handle);
1871        Self {
1872            handle,
1873            resolver,
1874            record,
1875        }
1876    }
1877    /// The handle this wrapper resolves.
1878    #[inline]
1879    #[must_use]
1880    pub const fn handle(&self) -> TermExpressionHandle<H> {
1881        self.handle
1882    }
1883    /// The resolver supplied at construction.
1884    #[inline]
1885    #[must_use]
1886    pub const fn resolver(&self) -> &'r R {
1887        self.resolver
1888    }
1889    /// The cached record, or `None` when the resolver returned `None`.
1890    #[inline]
1891    #[must_use]
1892    pub const fn record(&self) -> Option<&TermExpressionRecord<H>> {
1893        self.record.as_ref()
1894    }
1895}
1896impl<'r, R: TermExpressionResolver<H>, H: HostTypes> TermExpression<H>
1897    for ResolvedTermExpression<'r, R, H>
1898{
1899}
1900
1901/// Phase 8 (orphan-closure) — content-addressed handle for `LiteralExpression<H>`.
1902///
1903/// Pairs a [`crate::enforcement::ContentFingerprint`] with a phantom
1904/// `H` so type-state checks can't mix handles across `HostTypes` impls.
1905#[derive(Debug)]
1906pub struct LiteralExpressionHandle<H: HostTypes> {
1907    /// Content fingerprint identifying the resolved record.
1908    pub fingerprint: crate::enforcement::ContentFingerprint,
1909    _phantom: core::marker::PhantomData<H>,
1910}
1911impl<H: HostTypes> Copy for LiteralExpressionHandle<H> {}
1912impl<H: HostTypes> Clone for LiteralExpressionHandle<H> {
1913    #[inline]
1914    fn clone(&self) -> Self {
1915        *self
1916    }
1917}
1918impl<H: HostTypes> PartialEq for LiteralExpressionHandle<H> {
1919    #[inline]
1920    fn eq(&self, other: &Self) -> bool {
1921        self.fingerprint == other.fingerprint
1922    }
1923}
1924impl<H: HostTypes> Eq for LiteralExpressionHandle<H> {}
1925impl<H: HostTypes> core::hash::Hash for LiteralExpressionHandle<H> {
1926    #[inline]
1927    fn hash<S: core::hash::Hasher>(&self, state: &mut S) {
1928        self.fingerprint.hash(state);
1929    }
1930}
1931impl<H: HostTypes> LiteralExpressionHandle<H> {
1932    /// Construct a handle from its content fingerprint.
1933    #[inline]
1934    #[must_use]
1935    pub const fn new(fingerprint: crate::enforcement::ContentFingerprint) -> Self {
1936        Self {
1937            fingerprint,
1938            _phantom: core::marker::PhantomData,
1939        }
1940    }
1941}
1942
1943/// Phase 8 (orphan-closure) — resolver trait for `LiteralExpression<H>`.
1944///
1945/// Hosts implement this trait to map a handle into a typed record.
1946/// The default Null stub does not implement this trait — it carries
1947/// no record. Resolution is the responsibility of the host pipeline.
1948pub trait LiteralExpressionResolver<H: HostTypes> {
1949    /// Resolve a handle into its record. Returns `None` when the
1950    /// handle does not correspond to known content.
1951    fn resolve(&self, handle: LiteralExpressionHandle<H>) -> Option<LiteralExpressionRecord<H>>;
1952}
1953
1954/// Phase 8 (orphan-closure) — typed record for `LiteralExpression<H>`.
1955///
1956/// Carries a field per functional accessor of the trait. Object
1957/// fields hold `{Range}Handle<H>`; iterate via the Resolved wrapper
1958/// chain-resolver methods.
1959#[derive(Clone, Debug, PartialEq, Eq, Hash)]
1960pub struct LiteralExpressionRecord<H: HostTypes> {
1961    pub literal_value: &'static H::HostString,
1962    #[doc(hidden)]
1963    pub _phantom: core::marker::PhantomData<H>,
1964}
1965
1966/// Phase 8 (orphan-closure) — content-addressed wrapper for `LiteralExpression<H>`.
1967///
1968/// Caches the resolver's lookup at construction. Accessors return
1969/// the cached record's fields when present, falling back to the
1970/// `Null{Class}<H>` absent sentinels when the resolver returned
1971/// `None`. Object accessors always return absent sentinels — use
1972/// the `resolve_{m}` chain methods to descend into sub-records.
1973pub struct ResolvedLiteralExpression<'r, R: LiteralExpressionResolver<H>, H: HostTypes> {
1974    handle: LiteralExpressionHandle<H>,
1975    resolver: &'r R,
1976    record: Option<LiteralExpressionRecord<H>>,
1977}
1978impl<'r, R: LiteralExpressionResolver<H>, H: HostTypes> ResolvedLiteralExpression<'r, R, H> {
1979    /// Construct the wrapper, eagerly resolving the handle.
1980    #[inline]
1981    pub fn new(handle: LiteralExpressionHandle<H>, resolver: &'r R) -> Self {
1982        let record = resolver.resolve(handle);
1983        Self {
1984            handle,
1985            resolver,
1986            record,
1987        }
1988    }
1989    /// The handle this wrapper resolves.
1990    #[inline]
1991    #[must_use]
1992    pub const fn handle(&self) -> LiteralExpressionHandle<H> {
1993        self.handle
1994    }
1995    /// The resolver supplied at construction.
1996    #[inline]
1997    #[must_use]
1998    pub const fn resolver(&self) -> &'r R {
1999        self.resolver
2000    }
2001    /// The cached record, or `None` when the resolver returned `None`.
2002    #[inline]
2003    #[must_use]
2004    pub const fn record(&self) -> Option<&LiteralExpressionRecord<H>> {
2005        self.record.as_ref()
2006    }
2007}
2008impl<'r, R: LiteralExpressionResolver<H>, H: HostTypes> TermExpression<H>
2009    for ResolvedLiteralExpression<'r, R, H>
2010{
2011}
2012impl<'r, R: LiteralExpressionResolver<H>, H: HostTypes> LiteralExpression<H>
2013    for ResolvedLiteralExpression<'r, R, H>
2014{
2015    fn literal_value(&self) -> &H::HostString {
2016        match &self.record {
2017            Some(r) => r.literal_value,
2018            None => H::EMPTY_HOST_STRING,
2019        }
2020    }
2021}
2022
2023/// Phase 8 (orphan-closure) — content-addressed handle for `ApplicationExpression<H>`.
2024///
2025/// Pairs a [`crate::enforcement::ContentFingerprint`] with a phantom
2026/// `H` so type-state checks can't mix handles across `HostTypes` impls.
2027#[derive(Debug)]
2028pub struct ApplicationExpressionHandle<H: HostTypes> {
2029    /// Content fingerprint identifying the resolved record.
2030    pub fingerprint: crate::enforcement::ContentFingerprint,
2031    _phantom: core::marker::PhantomData<H>,
2032}
2033impl<H: HostTypes> Copy for ApplicationExpressionHandle<H> {}
2034impl<H: HostTypes> Clone for ApplicationExpressionHandle<H> {
2035    #[inline]
2036    fn clone(&self) -> Self {
2037        *self
2038    }
2039}
2040impl<H: HostTypes> PartialEq for ApplicationExpressionHandle<H> {
2041    #[inline]
2042    fn eq(&self, other: &Self) -> bool {
2043        self.fingerprint == other.fingerprint
2044    }
2045}
2046impl<H: HostTypes> Eq for ApplicationExpressionHandle<H> {}
2047impl<H: HostTypes> core::hash::Hash for ApplicationExpressionHandle<H> {
2048    #[inline]
2049    fn hash<S: core::hash::Hasher>(&self, state: &mut S) {
2050        self.fingerprint.hash(state);
2051    }
2052}
2053impl<H: HostTypes> ApplicationExpressionHandle<H> {
2054    /// Construct a handle from its content fingerprint.
2055    #[inline]
2056    #[must_use]
2057    pub const fn new(fingerprint: crate::enforcement::ContentFingerprint) -> Self {
2058        Self {
2059            fingerprint,
2060            _phantom: core::marker::PhantomData,
2061        }
2062    }
2063}
2064
2065/// Phase 8 (orphan-closure) — resolver trait for `ApplicationExpression<H>`.
2066///
2067/// Hosts implement this trait to map a handle into a typed record.
2068/// The default Null stub does not implement this trait — it carries
2069/// no record. Resolution is the responsibility of the host pipeline.
2070pub trait ApplicationExpressionResolver<H: HostTypes> {
2071    /// Resolve a handle into its record. Returns `None` when the
2072    /// handle does not correspond to known content.
2073    fn resolve(
2074        &self,
2075        handle: ApplicationExpressionHandle<H>,
2076    ) -> Option<ApplicationExpressionRecord<H>>;
2077}
2078
2079/// Phase 8 (orphan-closure) — typed record for `ApplicationExpression<H>`.
2080///
2081/// Carries a field per functional accessor of the trait. Object
2082/// fields hold `{Range}Handle<H>`; iterate via the Resolved wrapper
2083/// chain-resolver methods.
2084#[derive(Clone, Debug, PartialEq, Eq, Hash)]
2085pub struct ApplicationExpressionRecord<H: HostTypes> {
2086    pub expression_operator_handle: crate::kernel::op::OperationHandle<H>,
2087    #[doc(hidden)]
2088    pub _phantom: core::marker::PhantomData<H>,
2089}
2090
2091/// Phase 8 (orphan-closure) — content-addressed wrapper for `ApplicationExpression<H>`.
2092///
2093/// Caches the resolver's lookup at construction. Accessors return
2094/// the cached record's fields when present, falling back to the
2095/// `Null{Class}<H>` absent sentinels when the resolver returned
2096/// `None`. Object accessors always return absent sentinels — use
2097/// the `resolve_{m}` chain methods to descend into sub-records.
2098pub struct ResolvedApplicationExpression<'r, R: ApplicationExpressionResolver<H>, H: HostTypes> {
2099    handle: ApplicationExpressionHandle<H>,
2100    resolver: &'r R,
2101    record: Option<ApplicationExpressionRecord<H>>,
2102}
2103impl<'r, R: ApplicationExpressionResolver<H>, H: HostTypes>
2104    ResolvedApplicationExpression<'r, R, H>
2105{
2106    /// Construct the wrapper, eagerly resolving the handle.
2107    #[inline]
2108    pub fn new(handle: ApplicationExpressionHandle<H>, resolver: &'r R) -> Self {
2109        let record = resolver.resolve(handle);
2110        Self {
2111            handle,
2112            resolver,
2113            record,
2114        }
2115    }
2116    /// The handle this wrapper resolves.
2117    #[inline]
2118    #[must_use]
2119    pub const fn handle(&self) -> ApplicationExpressionHandle<H> {
2120        self.handle
2121    }
2122    /// The resolver supplied at construction.
2123    #[inline]
2124    #[must_use]
2125    pub const fn resolver(&self) -> &'r R {
2126        self.resolver
2127    }
2128    /// The cached record, or `None` when the resolver returned `None`.
2129    #[inline]
2130    #[must_use]
2131    pub const fn record(&self) -> Option<&ApplicationExpressionRecord<H>> {
2132        self.record.as_ref()
2133    }
2134}
2135impl<'r, R: ApplicationExpressionResolver<H>, H: HostTypes> TermExpression<H>
2136    for ResolvedApplicationExpression<'r, R, H>
2137{
2138}
2139impl<'r, R: ApplicationExpressionResolver<H>, H: HostTypes> ApplicationExpression<H>
2140    for ResolvedApplicationExpression<'r, R, H>
2141{
2142    type Operation = crate::kernel::op::NullOperation<H>;
2143    fn expression_operator(&self) -> &Self::Operation {
2144        &<crate::kernel::op::NullOperation<H>>::ABSENT
2145    }
2146    type TermExpression = NullTermExpression<H>;
2147    fn arguments(&self) -> &[Self::TermExpression] {
2148        &[]
2149    }
2150}
2151impl<'r, R: ApplicationExpressionResolver<H>, H: HostTypes>
2152    ResolvedApplicationExpression<'r, R, H>
2153{
2154    /// Promote the `expression_operator` handle on the cached record into a
2155    /// resolved wrapper, given a resolver for the range class.
2156    /// Returns `None` if no record was resolved at construction.
2157    #[inline]
2158    pub fn resolve_expression_operator<'r2, R2: crate::kernel::op::OperationResolver<H>>(
2159        &self,
2160        r: &'r2 R2,
2161    ) -> Option<crate::kernel::op::ResolvedOperation<'r2, R2, H>> {
2162        let record = self.record.as_ref()?;
2163        Some(crate::kernel::op::ResolvedOperation::new(
2164            record.expression_operator_handle,
2165            r,
2166        ))
2167    }
2168}
2169
2170/// Phase 8 (orphan-closure) — content-addressed handle for `InfixExpression<H>`.
2171///
2172/// Pairs a [`crate::enforcement::ContentFingerprint`] with a phantom
2173/// `H` so type-state checks can't mix handles across `HostTypes` impls.
2174#[derive(Debug)]
2175pub struct InfixExpressionHandle<H: HostTypes> {
2176    /// Content fingerprint identifying the resolved record.
2177    pub fingerprint: crate::enforcement::ContentFingerprint,
2178    _phantom: core::marker::PhantomData<H>,
2179}
2180impl<H: HostTypes> Copy for InfixExpressionHandle<H> {}
2181impl<H: HostTypes> Clone for InfixExpressionHandle<H> {
2182    #[inline]
2183    fn clone(&self) -> Self {
2184        *self
2185    }
2186}
2187impl<H: HostTypes> PartialEq for InfixExpressionHandle<H> {
2188    #[inline]
2189    fn eq(&self, other: &Self) -> bool {
2190        self.fingerprint == other.fingerprint
2191    }
2192}
2193impl<H: HostTypes> Eq for InfixExpressionHandle<H> {}
2194impl<H: HostTypes> core::hash::Hash for InfixExpressionHandle<H> {
2195    #[inline]
2196    fn hash<S: core::hash::Hasher>(&self, state: &mut S) {
2197        self.fingerprint.hash(state);
2198    }
2199}
2200impl<H: HostTypes> InfixExpressionHandle<H> {
2201    /// Construct a handle from its content fingerprint.
2202    #[inline]
2203    #[must_use]
2204    pub const fn new(fingerprint: crate::enforcement::ContentFingerprint) -> Self {
2205        Self {
2206            fingerprint,
2207            _phantom: core::marker::PhantomData,
2208        }
2209    }
2210}
2211
2212/// Phase 8 (orphan-closure) — resolver trait for `InfixExpression<H>`.
2213///
2214/// Hosts implement this trait to map a handle into a typed record.
2215/// The default Null stub does not implement this trait — it carries
2216/// no record. Resolution is the responsibility of the host pipeline.
2217pub trait InfixExpressionResolver<H: HostTypes> {
2218    /// Resolve a handle into its record. Returns `None` when the
2219    /// handle does not correspond to known content.
2220    fn resolve(&self, handle: InfixExpressionHandle<H>) -> Option<InfixExpressionRecord<H>>;
2221}
2222
2223/// Phase 8 (orphan-closure) — typed record for `InfixExpression<H>`.
2224///
2225/// Carries a field per functional accessor of the trait. Object
2226/// fields hold `{Range}Handle<H>`; iterate via the Resolved wrapper
2227/// chain-resolver methods.
2228#[derive(Clone, Debug, PartialEq, Eq, Hash)]
2229pub struct InfixExpressionRecord<H: HostTypes> {
2230    pub left_operand_handle: TermExpressionHandle<H>,
2231    pub right_operand_handle: TermExpressionHandle<H>,
2232    pub infix_operator: &'static H::HostString,
2233    #[doc(hidden)]
2234    pub _phantom: core::marker::PhantomData<H>,
2235}
2236
2237/// Phase 8 (orphan-closure) — content-addressed wrapper for `InfixExpression<H>`.
2238///
2239/// Caches the resolver's lookup at construction. Accessors return
2240/// the cached record's fields when present, falling back to the
2241/// `Null{Class}<H>` absent sentinels when the resolver returned
2242/// `None`. Object accessors always return absent sentinels — use
2243/// the `resolve_{m}` chain methods to descend into sub-records.
2244pub struct ResolvedInfixExpression<'r, R: InfixExpressionResolver<H>, H: HostTypes> {
2245    handle: InfixExpressionHandle<H>,
2246    resolver: &'r R,
2247    record: Option<InfixExpressionRecord<H>>,
2248}
2249impl<'r, R: InfixExpressionResolver<H>, H: HostTypes> ResolvedInfixExpression<'r, R, H> {
2250    /// Construct the wrapper, eagerly resolving the handle.
2251    #[inline]
2252    pub fn new(handle: InfixExpressionHandle<H>, resolver: &'r R) -> Self {
2253        let record = resolver.resolve(handle);
2254        Self {
2255            handle,
2256            resolver,
2257            record,
2258        }
2259    }
2260    /// The handle this wrapper resolves.
2261    #[inline]
2262    #[must_use]
2263    pub const fn handle(&self) -> InfixExpressionHandle<H> {
2264        self.handle
2265    }
2266    /// The resolver supplied at construction.
2267    #[inline]
2268    #[must_use]
2269    pub const fn resolver(&self) -> &'r R {
2270        self.resolver
2271    }
2272    /// The cached record, or `None` when the resolver returned `None`.
2273    #[inline]
2274    #[must_use]
2275    pub const fn record(&self) -> Option<&InfixExpressionRecord<H>> {
2276        self.record.as_ref()
2277    }
2278}
2279impl<'r, R: InfixExpressionResolver<H>, H: HostTypes> TermExpression<H>
2280    for ResolvedInfixExpression<'r, R, H>
2281{
2282}
2283impl<'r, R: InfixExpressionResolver<H>, H: HostTypes> InfixExpression<H>
2284    for ResolvedInfixExpression<'r, R, H>
2285{
2286    type TermExpression = NullTermExpression<H>;
2287    fn left_operand(&self) -> &Self::TermExpression {
2288        &<NullTermExpression<H>>::ABSENT
2289    }
2290    fn right_operand(&self) -> &Self::TermExpression {
2291        &<NullTermExpression<H>>::ABSENT
2292    }
2293    fn infix_operator(&self) -> &H::HostString {
2294        match &self.record {
2295            Some(r) => r.infix_operator,
2296            None => H::EMPTY_HOST_STRING,
2297        }
2298    }
2299}
2300impl<'r, R: InfixExpressionResolver<H>, H: HostTypes> ResolvedInfixExpression<'r, R, H> {
2301    /// Promote the `left_operand` handle on the cached record into a
2302    /// resolved wrapper, given a resolver for the range class.
2303    /// Returns `None` if no record was resolved at construction.
2304    #[inline]
2305    pub fn resolve_left_operand<'r2, R2: TermExpressionResolver<H>>(
2306        &self,
2307        r: &'r2 R2,
2308    ) -> Option<ResolvedTermExpression<'r2, R2, H>> {
2309        let record = self.record.as_ref()?;
2310        Some(ResolvedTermExpression::new(record.left_operand_handle, r))
2311    }
2312    /// Promote the `right_operand` handle on the cached record into a
2313    /// resolved wrapper, given a resolver for the range class.
2314    /// Returns `None` if no record was resolved at construction.
2315    #[inline]
2316    pub fn resolve_right_operand<'r2, R2: TermExpressionResolver<H>>(
2317        &self,
2318        r: &'r2 R2,
2319    ) -> Option<ResolvedTermExpression<'r2, R2, H>> {
2320        let record = self.record.as_ref()?;
2321        Some(ResolvedTermExpression::new(record.right_operand_handle, r))
2322    }
2323}
2324
2325/// Phase 8 (orphan-closure) — content-addressed handle for `SetExpression<H>`.
2326///
2327/// Pairs a [`crate::enforcement::ContentFingerprint`] with a phantom
2328/// `H` so type-state checks can't mix handles across `HostTypes` impls.
2329#[derive(Debug)]
2330pub struct SetExpressionHandle<H: HostTypes> {
2331    /// Content fingerprint identifying the resolved record.
2332    pub fingerprint: crate::enforcement::ContentFingerprint,
2333    _phantom: core::marker::PhantomData<H>,
2334}
2335impl<H: HostTypes> Copy for SetExpressionHandle<H> {}
2336impl<H: HostTypes> Clone for SetExpressionHandle<H> {
2337    #[inline]
2338    fn clone(&self) -> Self {
2339        *self
2340    }
2341}
2342impl<H: HostTypes> PartialEq for SetExpressionHandle<H> {
2343    #[inline]
2344    fn eq(&self, other: &Self) -> bool {
2345        self.fingerprint == other.fingerprint
2346    }
2347}
2348impl<H: HostTypes> Eq for SetExpressionHandle<H> {}
2349impl<H: HostTypes> core::hash::Hash for SetExpressionHandle<H> {
2350    #[inline]
2351    fn hash<S: core::hash::Hasher>(&self, state: &mut S) {
2352        self.fingerprint.hash(state);
2353    }
2354}
2355impl<H: HostTypes> SetExpressionHandle<H> {
2356    /// Construct a handle from its content fingerprint.
2357    #[inline]
2358    #[must_use]
2359    pub const fn new(fingerprint: crate::enforcement::ContentFingerprint) -> Self {
2360        Self {
2361            fingerprint,
2362            _phantom: core::marker::PhantomData,
2363        }
2364    }
2365}
2366
2367/// Phase 8 (orphan-closure) — resolver trait for `SetExpression<H>`.
2368///
2369/// Hosts implement this trait to map a handle into a typed record.
2370/// The default Null stub does not implement this trait — it carries
2371/// no record. Resolution is the responsibility of the host pipeline.
2372pub trait SetExpressionResolver<H: HostTypes> {
2373    /// Resolve a handle into its record. Returns `None` when the
2374    /// handle does not correspond to known content.
2375    fn resolve(&self, handle: SetExpressionHandle<H>) -> Option<SetExpressionRecord<H>>;
2376}
2377
2378/// Phase 8 (orphan-closure) — typed record for `SetExpression<H>`.
2379///
2380/// Carries a field per functional accessor of the trait. Object
2381/// fields hold `{Range}Handle<H>`; iterate via the Resolved wrapper
2382/// chain-resolver methods.
2383#[derive(Clone, Debug, PartialEq, Eq, Hash)]
2384pub struct SetExpressionRecord<H: HostTypes> {
2385    #[doc(hidden)]
2386    pub _phantom: core::marker::PhantomData<H>,
2387}
2388
2389/// Phase 8 (orphan-closure) — content-addressed wrapper for `SetExpression<H>`.
2390///
2391/// Caches the resolver's lookup at construction. Accessors return
2392/// the cached record's fields when present, falling back to the
2393/// `Null{Class}<H>` absent sentinels when the resolver returned
2394/// `None`. Object accessors always return absent sentinels — use
2395/// the `resolve_{m}` chain methods to descend into sub-records.
2396pub struct ResolvedSetExpression<'r, R: SetExpressionResolver<H>, H: HostTypes> {
2397    handle: SetExpressionHandle<H>,
2398    resolver: &'r R,
2399    record: Option<SetExpressionRecord<H>>,
2400}
2401impl<'r, R: SetExpressionResolver<H>, H: HostTypes> ResolvedSetExpression<'r, R, H> {
2402    /// Construct the wrapper, eagerly resolving the handle.
2403    #[inline]
2404    pub fn new(handle: SetExpressionHandle<H>, resolver: &'r R) -> Self {
2405        let record = resolver.resolve(handle);
2406        Self {
2407            handle,
2408            resolver,
2409            record,
2410        }
2411    }
2412    /// The handle this wrapper resolves.
2413    #[inline]
2414    #[must_use]
2415    pub const fn handle(&self) -> SetExpressionHandle<H> {
2416        self.handle
2417    }
2418    /// The resolver supplied at construction.
2419    #[inline]
2420    #[must_use]
2421    pub const fn resolver(&self) -> &'r R {
2422        self.resolver
2423    }
2424    /// The cached record, or `None` when the resolver returned `None`.
2425    #[inline]
2426    #[must_use]
2427    pub const fn record(&self) -> Option<&SetExpressionRecord<H>> {
2428        self.record.as_ref()
2429    }
2430}
2431impl<'r, R: SetExpressionResolver<H>, H: HostTypes> TermExpression<H>
2432    for ResolvedSetExpression<'r, R, H>
2433{
2434}
2435impl<'r, R: SetExpressionResolver<H>, H: HostTypes> SetExpression<H>
2436    for ResolvedSetExpression<'r, R, H>
2437{
2438}
2439
2440/// Phase 8 (orphan-closure) — content-addressed handle for `CompositionExpression<H>`.
2441///
2442/// Pairs a [`crate::enforcement::ContentFingerprint`] with a phantom
2443/// `H` so type-state checks can't mix handles across `HostTypes` impls.
2444#[derive(Debug)]
2445pub struct CompositionExpressionHandle<H: HostTypes> {
2446    /// Content fingerprint identifying the resolved record.
2447    pub fingerprint: crate::enforcement::ContentFingerprint,
2448    _phantom: core::marker::PhantomData<H>,
2449}
2450impl<H: HostTypes> Copy for CompositionExpressionHandle<H> {}
2451impl<H: HostTypes> Clone for CompositionExpressionHandle<H> {
2452    #[inline]
2453    fn clone(&self) -> Self {
2454        *self
2455    }
2456}
2457impl<H: HostTypes> PartialEq for CompositionExpressionHandle<H> {
2458    #[inline]
2459    fn eq(&self, other: &Self) -> bool {
2460        self.fingerprint == other.fingerprint
2461    }
2462}
2463impl<H: HostTypes> Eq for CompositionExpressionHandle<H> {}
2464impl<H: HostTypes> core::hash::Hash for CompositionExpressionHandle<H> {
2465    #[inline]
2466    fn hash<S: core::hash::Hasher>(&self, state: &mut S) {
2467        self.fingerprint.hash(state);
2468    }
2469}
2470impl<H: HostTypes> CompositionExpressionHandle<H> {
2471    /// Construct a handle from its content fingerprint.
2472    #[inline]
2473    #[must_use]
2474    pub const fn new(fingerprint: crate::enforcement::ContentFingerprint) -> Self {
2475        Self {
2476            fingerprint,
2477            _phantom: core::marker::PhantomData,
2478        }
2479    }
2480}
2481
2482/// Phase 8 (orphan-closure) — resolver trait for `CompositionExpression<H>`.
2483///
2484/// Hosts implement this trait to map a handle into a typed record.
2485/// The default Null stub does not implement this trait — it carries
2486/// no record. Resolution is the responsibility of the host pipeline.
2487pub trait CompositionExpressionResolver<H: HostTypes> {
2488    /// Resolve a handle into its record. Returns `None` when the
2489    /// handle does not correspond to known content.
2490    fn resolve(
2491        &self,
2492        handle: CompositionExpressionHandle<H>,
2493    ) -> Option<CompositionExpressionRecord<H>>;
2494}
2495
2496/// Phase 8 (orphan-closure) — typed record for `CompositionExpression<H>`.
2497///
2498/// Carries a field per functional accessor of the trait. Object
2499/// fields hold `{Range}Handle<H>`; iterate via the Resolved wrapper
2500/// chain-resolver methods.
2501#[derive(Clone, Debug, PartialEq, Eq, Hash)]
2502pub struct CompositionExpressionRecord<H: HostTypes> {
2503    #[doc(hidden)]
2504    pub _phantom: core::marker::PhantomData<H>,
2505}
2506
2507/// Phase 8 (orphan-closure) — content-addressed wrapper for `CompositionExpression<H>`.
2508///
2509/// Caches the resolver's lookup at construction. Accessors return
2510/// the cached record's fields when present, falling back to the
2511/// `Null{Class}<H>` absent sentinels when the resolver returned
2512/// `None`. Object accessors always return absent sentinels — use
2513/// the `resolve_{m}` chain methods to descend into sub-records.
2514pub struct ResolvedCompositionExpression<'r, R: CompositionExpressionResolver<H>, H: HostTypes> {
2515    handle: CompositionExpressionHandle<H>,
2516    resolver: &'r R,
2517    record: Option<CompositionExpressionRecord<H>>,
2518}
2519impl<'r, R: CompositionExpressionResolver<H>, H: HostTypes>
2520    ResolvedCompositionExpression<'r, R, H>
2521{
2522    /// Construct the wrapper, eagerly resolving the handle.
2523    #[inline]
2524    pub fn new(handle: CompositionExpressionHandle<H>, resolver: &'r R) -> Self {
2525        let record = resolver.resolve(handle);
2526        Self {
2527            handle,
2528            resolver,
2529            record,
2530        }
2531    }
2532    /// The handle this wrapper resolves.
2533    #[inline]
2534    #[must_use]
2535    pub const fn handle(&self) -> CompositionExpressionHandle<H> {
2536        self.handle
2537    }
2538    /// The resolver supplied at construction.
2539    #[inline]
2540    #[must_use]
2541    pub const fn resolver(&self) -> &'r R {
2542        self.resolver
2543    }
2544    /// The cached record, or `None` when the resolver returned `None`.
2545    #[inline]
2546    #[must_use]
2547    pub const fn record(&self) -> Option<&CompositionExpressionRecord<H>> {
2548        self.record.as_ref()
2549    }
2550}
2551impl<'r, R: CompositionExpressionResolver<H>, H: HostTypes> TermExpression<H>
2552    for ResolvedCompositionExpression<'r, R, H>
2553{
2554}
2555impl<'r, R: CompositionExpressionResolver<H>, H: HostTypes> CompositionExpression<H>
2556    for ResolvedCompositionExpression<'r, R, H>
2557{
2558}
2559
2560/// Phase 8 (orphan-closure) — content-addressed handle for `ForAllDeclaration<H>`.
2561///
2562/// Pairs a [`crate::enforcement::ContentFingerprint`] with a phantom
2563/// `H` so type-state checks can't mix handles across `HostTypes` impls.
2564#[derive(Debug)]
2565pub struct ForAllDeclarationHandle<H: HostTypes> {
2566    /// Content fingerprint identifying the resolved record.
2567    pub fingerprint: crate::enforcement::ContentFingerprint,
2568    _phantom: core::marker::PhantomData<H>,
2569}
2570impl<H: HostTypes> Copy for ForAllDeclarationHandle<H> {}
2571impl<H: HostTypes> Clone for ForAllDeclarationHandle<H> {
2572    #[inline]
2573    fn clone(&self) -> Self {
2574        *self
2575    }
2576}
2577impl<H: HostTypes> PartialEq for ForAllDeclarationHandle<H> {
2578    #[inline]
2579    fn eq(&self, other: &Self) -> bool {
2580        self.fingerprint == other.fingerprint
2581    }
2582}
2583impl<H: HostTypes> Eq for ForAllDeclarationHandle<H> {}
2584impl<H: HostTypes> core::hash::Hash for ForAllDeclarationHandle<H> {
2585    #[inline]
2586    fn hash<S: core::hash::Hasher>(&self, state: &mut S) {
2587        self.fingerprint.hash(state);
2588    }
2589}
2590impl<H: HostTypes> ForAllDeclarationHandle<H> {
2591    /// Construct a handle from its content fingerprint.
2592    #[inline]
2593    #[must_use]
2594    pub const fn new(fingerprint: crate::enforcement::ContentFingerprint) -> Self {
2595        Self {
2596            fingerprint,
2597            _phantom: core::marker::PhantomData,
2598        }
2599    }
2600}
2601
2602/// Phase 8 (orphan-closure) — resolver trait for `ForAllDeclaration<H>`.
2603///
2604/// Hosts implement this trait to map a handle into a typed record.
2605/// The default Null stub does not implement this trait — it carries
2606/// no record. Resolution is the responsibility of the host pipeline.
2607pub trait ForAllDeclarationResolver<H: HostTypes> {
2608    /// Resolve a handle into its record. Returns `None` when the
2609    /// handle does not correspond to known content.
2610    fn resolve(&self, handle: ForAllDeclarationHandle<H>) -> Option<ForAllDeclarationRecord<H>>;
2611}
2612
2613/// Phase 8 (orphan-closure) — typed record for `ForAllDeclaration<H>`.
2614///
2615/// Carries a field per functional accessor of the trait. Object
2616/// fields hold `{Range}Handle<H>`; iterate via the Resolved wrapper
2617/// chain-resolver methods.
2618#[derive(Clone, Debug, PartialEq, Eq, Hash)]
2619pub struct ForAllDeclarationRecord<H: HostTypes> {
2620    pub quantifier_kind: QuantifierKind,
2621    #[doc(hidden)]
2622    pub _phantom: core::marker::PhantomData<H>,
2623}
2624
2625/// Phase 8 (orphan-closure) — content-addressed wrapper for `ForAllDeclaration<H>`.
2626///
2627/// Caches the resolver's lookup at construction. Accessors return
2628/// the cached record's fields when present, falling back to the
2629/// `Null{Class}<H>` absent sentinels when the resolver returned
2630/// `None`. Object accessors always return absent sentinels — use
2631/// the `resolve_{m}` chain methods to descend into sub-records.
2632pub struct ResolvedForAllDeclaration<'r, R: ForAllDeclarationResolver<H>, H: HostTypes> {
2633    handle: ForAllDeclarationHandle<H>,
2634    resolver: &'r R,
2635    record: Option<ForAllDeclarationRecord<H>>,
2636}
2637impl<'r, R: ForAllDeclarationResolver<H>, H: HostTypes> ResolvedForAllDeclaration<'r, R, H> {
2638    /// Construct the wrapper, eagerly resolving the handle.
2639    #[inline]
2640    pub fn new(handle: ForAllDeclarationHandle<H>, resolver: &'r R) -> Self {
2641        let record = resolver.resolve(handle);
2642        Self {
2643            handle,
2644            resolver,
2645            record,
2646        }
2647    }
2648    /// The handle this wrapper resolves.
2649    #[inline]
2650    #[must_use]
2651    pub const fn handle(&self) -> ForAllDeclarationHandle<H> {
2652        self.handle
2653    }
2654    /// The resolver supplied at construction.
2655    #[inline]
2656    #[must_use]
2657    pub const fn resolver(&self) -> &'r R {
2658        self.resolver
2659    }
2660    /// The cached record, or `None` when the resolver returned `None`.
2661    #[inline]
2662    #[must_use]
2663    pub const fn record(&self) -> Option<&ForAllDeclarationRecord<H>> {
2664        self.record.as_ref()
2665    }
2666}
2667impl<'r, R: ForAllDeclarationResolver<H>, H: HostTypes> ForAllDeclaration<H>
2668    for ResolvedForAllDeclaration<'r, R, H>
2669{
2670    type VariableBinding = NullVariableBinding<H>;
2671    fn bound_variables(&self) -> &[Self::VariableBinding] {
2672        &[]
2673    }
2674    fn quantifier_kind(&self) -> QuantifierKind {
2675        match &self.record {
2676            Some(r) => r.quantifier_kind,
2677            None => <QuantifierKind>::default(),
2678        }
2679    }
2680}
2681
2682/// Phase 8 (orphan-closure) — content-addressed handle for `VariableBinding<H>`.
2683///
2684/// Pairs a [`crate::enforcement::ContentFingerprint`] with a phantom
2685/// `H` so type-state checks can't mix handles across `HostTypes` impls.
2686#[derive(Debug)]
2687pub struct VariableBindingHandle<H: HostTypes> {
2688    /// Content fingerprint identifying the resolved record.
2689    pub fingerprint: crate::enforcement::ContentFingerprint,
2690    _phantom: core::marker::PhantomData<H>,
2691}
2692impl<H: HostTypes> Copy for VariableBindingHandle<H> {}
2693impl<H: HostTypes> Clone for VariableBindingHandle<H> {
2694    #[inline]
2695    fn clone(&self) -> Self {
2696        *self
2697    }
2698}
2699impl<H: HostTypes> PartialEq for VariableBindingHandle<H> {
2700    #[inline]
2701    fn eq(&self, other: &Self) -> bool {
2702        self.fingerprint == other.fingerprint
2703    }
2704}
2705impl<H: HostTypes> Eq for VariableBindingHandle<H> {}
2706impl<H: HostTypes> core::hash::Hash for VariableBindingHandle<H> {
2707    #[inline]
2708    fn hash<S: core::hash::Hasher>(&self, state: &mut S) {
2709        self.fingerprint.hash(state);
2710    }
2711}
2712impl<H: HostTypes> VariableBindingHandle<H> {
2713    /// Construct a handle from its content fingerprint.
2714    #[inline]
2715    #[must_use]
2716    pub const fn new(fingerprint: crate::enforcement::ContentFingerprint) -> Self {
2717        Self {
2718            fingerprint,
2719            _phantom: core::marker::PhantomData,
2720        }
2721    }
2722}
2723
2724/// Phase 8 (orphan-closure) — resolver trait for `VariableBinding<H>`.
2725///
2726/// Hosts implement this trait to map a handle into a typed record.
2727/// The default Null stub does not implement this trait — it carries
2728/// no record. Resolution is the responsibility of the host pipeline.
2729pub trait VariableBindingResolver<H: HostTypes> {
2730    /// Resolve a handle into its record. Returns `None` when the
2731    /// handle does not correspond to known content.
2732    fn resolve(&self, handle: VariableBindingHandle<H>) -> Option<VariableBindingRecord<H>>;
2733}
2734
2735/// Phase 8 (orphan-closure) — typed record for `VariableBinding<H>`.
2736///
2737/// Carries a field per functional accessor of the trait. Object
2738/// fields hold `{Range}Handle<H>`; iterate via the Resolved wrapper
2739/// chain-resolver methods.
2740#[derive(Clone, Debug, PartialEq, Eq, Hash)]
2741pub struct VariableBindingRecord<H: HostTypes> {
2742    pub variable_domain: &'static H::HostString,
2743    pub variable_name: &'static H::HostString,
2744    #[doc(hidden)]
2745    pub _phantom: core::marker::PhantomData<H>,
2746}
2747
2748/// Phase 8 (orphan-closure) — content-addressed wrapper for `VariableBinding<H>`.
2749///
2750/// Caches the resolver's lookup at construction. Accessors return
2751/// the cached record's fields when present, falling back to the
2752/// `Null{Class}<H>` absent sentinels when the resolver returned
2753/// `None`. Object accessors always return absent sentinels — use
2754/// the `resolve_{m}` chain methods to descend into sub-records.
2755pub struct ResolvedVariableBinding<'r, R: VariableBindingResolver<H>, H: HostTypes> {
2756    handle: VariableBindingHandle<H>,
2757    resolver: &'r R,
2758    record: Option<VariableBindingRecord<H>>,
2759}
2760impl<'r, R: VariableBindingResolver<H>, H: HostTypes> ResolvedVariableBinding<'r, R, H> {
2761    /// Construct the wrapper, eagerly resolving the handle.
2762    #[inline]
2763    pub fn new(handle: VariableBindingHandle<H>, resolver: &'r R) -> Self {
2764        let record = resolver.resolve(handle);
2765        Self {
2766            handle,
2767            resolver,
2768            record,
2769        }
2770    }
2771    /// The handle this wrapper resolves.
2772    #[inline]
2773    #[must_use]
2774    pub const fn handle(&self) -> VariableBindingHandle<H> {
2775        self.handle
2776    }
2777    /// The resolver supplied at construction.
2778    #[inline]
2779    #[must_use]
2780    pub const fn resolver(&self) -> &'r R {
2781        self.resolver
2782    }
2783    /// The cached record, or `None` when the resolver returned `None`.
2784    #[inline]
2785    #[must_use]
2786    pub const fn record(&self) -> Option<&VariableBindingRecord<H>> {
2787        self.record.as_ref()
2788    }
2789}
2790impl<'r, R: VariableBindingResolver<H>, H: HostTypes> VariableBinding<H>
2791    for ResolvedVariableBinding<'r, R, H>
2792{
2793    fn variable_domain(&self) -> &H::HostString {
2794        H::EMPTY_HOST_STRING
2795    }
2796    fn variable_name(&self) -> &H::HostString {
2797        match &self.record {
2798            Some(r) => r.variable_name,
2799            None => H::EMPTY_HOST_STRING,
2800        }
2801    }
2802}
2803
2804/// Phase 8 (orphan-closure) — content-addressed handle for `SurfaceSymbol<H>`.
2805///
2806/// Pairs a [`crate::enforcement::ContentFingerprint`] with a phantom
2807/// `H` so type-state checks can't mix handles across `HostTypes` impls.
2808#[derive(Debug)]
2809pub struct SurfaceSymbolHandle<H: HostTypes> {
2810    /// Content fingerprint identifying the resolved record.
2811    pub fingerprint: crate::enforcement::ContentFingerprint,
2812    _phantom: core::marker::PhantomData<H>,
2813}
2814impl<H: HostTypes> Copy for SurfaceSymbolHandle<H> {}
2815impl<H: HostTypes> Clone for SurfaceSymbolHandle<H> {
2816    #[inline]
2817    fn clone(&self) -> Self {
2818        *self
2819    }
2820}
2821impl<H: HostTypes> PartialEq for SurfaceSymbolHandle<H> {
2822    #[inline]
2823    fn eq(&self, other: &Self) -> bool {
2824        self.fingerprint == other.fingerprint
2825    }
2826}
2827impl<H: HostTypes> Eq for SurfaceSymbolHandle<H> {}
2828impl<H: HostTypes> core::hash::Hash for SurfaceSymbolHandle<H> {
2829    #[inline]
2830    fn hash<S: core::hash::Hasher>(&self, state: &mut S) {
2831        self.fingerprint.hash(state);
2832    }
2833}
2834impl<H: HostTypes> SurfaceSymbolHandle<H> {
2835    /// Construct a handle from its content fingerprint.
2836    #[inline]
2837    #[must_use]
2838    pub const fn new(fingerprint: crate::enforcement::ContentFingerprint) -> Self {
2839        Self {
2840            fingerprint,
2841            _phantom: core::marker::PhantomData,
2842        }
2843    }
2844}
2845
2846/// Phase 8 (orphan-closure) — resolver trait for `SurfaceSymbol<H>`.
2847///
2848/// Hosts implement this trait to map a handle into a typed record.
2849/// The default Null stub does not implement this trait — it carries
2850/// no record. Resolution is the responsibility of the host pipeline.
2851pub trait SurfaceSymbolResolver<H: HostTypes> {
2852    /// Resolve a handle into its record. Returns `None` when the
2853    /// handle does not correspond to known content.
2854    fn resolve(&self, handle: SurfaceSymbolHandle<H>) -> Option<SurfaceSymbolRecord<H>>;
2855}
2856
2857/// Phase 8 (orphan-closure) — typed record for `SurfaceSymbol<H>`.
2858///
2859/// Carries a field per functional accessor of the trait. Object
2860/// fields hold `{Range}Handle<H>`; iterate via the Resolved wrapper
2861/// chain-resolver methods.
2862#[derive(Clone, Debug, PartialEq, Eq, Hash)]
2863pub struct SurfaceSymbolRecord<H: HostTypes> {
2864    #[doc(hidden)]
2865    pub _phantom: core::marker::PhantomData<H>,
2866}
2867
2868/// Phase 8 (orphan-closure) — content-addressed wrapper for `SurfaceSymbol<H>`.
2869///
2870/// Caches the resolver's lookup at construction. Accessors return
2871/// the cached record's fields when present, falling back to the
2872/// `Null{Class}<H>` absent sentinels when the resolver returned
2873/// `None`. Object accessors always return absent sentinels — use
2874/// the `resolve_{m}` chain methods to descend into sub-records.
2875pub struct ResolvedSurfaceSymbol<'r, R: SurfaceSymbolResolver<H>, H: HostTypes> {
2876    handle: SurfaceSymbolHandle<H>,
2877    resolver: &'r R,
2878    record: Option<SurfaceSymbolRecord<H>>,
2879}
2880impl<'r, R: SurfaceSymbolResolver<H>, H: HostTypes> ResolvedSurfaceSymbol<'r, R, H> {
2881    /// Construct the wrapper, eagerly resolving the handle.
2882    #[inline]
2883    pub fn new(handle: SurfaceSymbolHandle<H>, resolver: &'r R) -> Self {
2884        let record = resolver.resolve(handle);
2885        Self {
2886            handle,
2887            resolver,
2888            record,
2889        }
2890    }
2891    /// The handle this wrapper resolves.
2892    #[inline]
2893    #[must_use]
2894    pub const fn handle(&self) -> SurfaceSymbolHandle<H> {
2895        self.handle
2896    }
2897    /// The resolver supplied at construction.
2898    #[inline]
2899    #[must_use]
2900    pub const fn resolver(&self) -> &'r R {
2901        self.resolver
2902    }
2903    /// The cached record, or `None` when the resolver returned `None`.
2904    #[inline]
2905    #[must_use]
2906    pub const fn record(&self) -> Option<&SurfaceSymbolRecord<H>> {
2907        self.record.as_ref()
2908    }
2909}
2910impl<'r, R: SurfaceSymbolResolver<H>, H: HostTypes> SurfaceSymbol<H>
2911    for ResolvedSurfaceSymbol<'r, R, H>
2912{
2913}
2914
2915/// Phase 8 (orphan-closure) — content-addressed handle for `HostValue<H>`.
2916///
2917/// Pairs a [`crate::enforcement::ContentFingerprint`] with a phantom
2918/// `H` so type-state checks can't mix handles across `HostTypes` impls.
2919#[derive(Debug)]
2920pub struct HostValueHandle<H: HostTypes> {
2921    /// Content fingerprint identifying the resolved record.
2922    pub fingerprint: crate::enforcement::ContentFingerprint,
2923    _phantom: core::marker::PhantomData<H>,
2924}
2925impl<H: HostTypes> Copy for HostValueHandle<H> {}
2926impl<H: HostTypes> Clone for HostValueHandle<H> {
2927    #[inline]
2928    fn clone(&self) -> Self {
2929        *self
2930    }
2931}
2932impl<H: HostTypes> PartialEq for HostValueHandle<H> {
2933    #[inline]
2934    fn eq(&self, other: &Self) -> bool {
2935        self.fingerprint == other.fingerprint
2936    }
2937}
2938impl<H: HostTypes> Eq for HostValueHandle<H> {}
2939impl<H: HostTypes> core::hash::Hash for HostValueHandle<H> {
2940    #[inline]
2941    fn hash<S: core::hash::Hasher>(&self, state: &mut S) {
2942        self.fingerprint.hash(state);
2943    }
2944}
2945impl<H: HostTypes> HostValueHandle<H> {
2946    /// Construct a handle from its content fingerprint.
2947    #[inline]
2948    #[must_use]
2949    pub const fn new(fingerprint: crate::enforcement::ContentFingerprint) -> Self {
2950        Self {
2951            fingerprint,
2952            _phantom: core::marker::PhantomData,
2953        }
2954    }
2955}
2956
2957/// Phase 8 (orphan-closure) — resolver trait for `HostValue<H>`.
2958///
2959/// Hosts implement this trait to map a handle into a typed record.
2960/// The default Null stub does not implement this trait — it carries
2961/// no record. Resolution is the responsibility of the host pipeline.
2962pub trait HostValueResolver<H: HostTypes> {
2963    /// Resolve a handle into its record. Returns `None` when the
2964    /// handle does not correspond to known content.
2965    fn resolve(&self, handle: HostValueHandle<H>) -> Option<HostValueRecord<H>>;
2966}
2967
2968/// Phase 8 (orphan-closure) — typed record for `HostValue<H>`.
2969///
2970/// Carries a field per functional accessor of the trait. Object
2971/// fields hold `{Range}Handle<H>`; iterate via the Resolved wrapper
2972/// chain-resolver methods.
2973#[derive(Clone, Debug, PartialEq, Eq, Hash)]
2974pub struct HostValueRecord<H: HostTypes> {
2975    #[doc(hidden)]
2976    pub _phantom: core::marker::PhantomData<H>,
2977}
2978
2979/// Phase 8 (orphan-closure) — content-addressed wrapper for `HostValue<H>`.
2980///
2981/// Caches the resolver's lookup at construction. Accessors return
2982/// the cached record's fields when present, falling back to the
2983/// `Null{Class}<H>` absent sentinels when the resolver returned
2984/// `None`. Object accessors always return absent sentinels — use
2985/// the `resolve_{m}` chain methods to descend into sub-records.
2986pub struct ResolvedHostValue<'r, R: HostValueResolver<H>, H: HostTypes> {
2987    handle: HostValueHandle<H>,
2988    resolver: &'r R,
2989    record: Option<HostValueRecord<H>>,
2990}
2991impl<'r, R: HostValueResolver<H>, H: HostTypes> ResolvedHostValue<'r, R, H> {
2992    /// Construct the wrapper, eagerly resolving the handle.
2993    #[inline]
2994    pub fn new(handle: HostValueHandle<H>, resolver: &'r R) -> Self {
2995        let record = resolver.resolve(handle);
2996        Self {
2997            handle,
2998            resolver,
2999            record,
3000        }
3001    }
3002    /// The handle this wrapper resolves.
3003    #[inline]
3004    #[must_use]
3005    pub const fn handle(&self) -> HostValueHandle<H> {
3006        self.handle
3007    }
3008    /// The resolver supplied at construction.
3009    #[inline]
3010    #[must_use]
3011    pub const fn resolver(&self) -> &'r R {
3012        self.resolver
3013    }
3014    /// The cached record, or `None` when the resolver returned `None`.
3015    #[inline]
3016    #[must_use]
3017    pub const fn record(&self) -> Option<&HostValueRecord<H>> {
3018        self.record.as_ref()
3019    }
3020}
3021impl<'r, R: HostValueResolver<H>, H: HostTypes> SurfaceSymbol<H> for ResolvedHostValue<'r, R, H> {}
3022impl<'r, R: HostValueResolver<H>, H: HostTypes> HostValue<H> for ResolvedHostValue<'r, R, H> {}
3023
3024/// Phase 8 (orphan-closure) — content-addressed handle for `HostStringLiteral<H>`.
3025///
3026/// Pairs a [`crate::enforcement::ContentFingerprint`] with a phantom
3027/// `H` so type-state checks can't mix handles across `HostTypes` impls.
3028#[derive(Debug)]
3029pub struct HostStringLiteralHandle<H: HostTypes> {
3030    /// Content fingerprint identifying the resolved record.
3031    pub fingerprint: crate::enforcement::ContentFingerprint,
3032    _phantom: core::marker::PhantomData<H>,
3033}
3034impl<H: HostTypes> Copy for HostStringLiteralHandle<H> {}
3035impl<H: HostTypes> Clone for HostStringLiteralHandle<H> {
3036    #[inline]
3037    fn clone(&self) -> Self {
3038        *self
3039    }
3040}
3041impl<H: HostTypes> PartialEq for HostStringLiteralHandle<H> {
3042    #[inline]
3043    fn eq(&self, other: &Self) -> bool {
3044        self.fingerprint == other.fingerprint
3045    }
3046}
3047impl<H: HostTypes> Eq for HostStringLiteralHandle<H> {}
3048impl<H: HostTypes> core::hash::Hash for HostStringLiteralHandle<H> {
3049    #[inline]
3050    fn hash<S: core::hash::Hasher>(&self, state: &mut S) {
3051        self.fingerprint.hash(state);
3052    }
3053}
3054impl<H: HostTypes> HostStringLiteralHandle<H> {
3055    /// Construct a handle from its content fingerprint.
3056    #[inline]
3057    #[must_use]
3058    pub const fn new(fingerprint: crate::enforcement::ContentFingerprint) -> Self {
3059        Self {
3060            fingerprint,
3061            _phantom: core::marker::PhantomData,
3062        }
3063    }
3064}
3065
3066/// Phase 8 (orphan-closure) — resolver trait for `HostStringLiteral<H>`.
3067///
3068/// Hosts implement this trait to map a handle into a typed record.
3069/// The default Null stub does not implement this trait — it carries
3070/// no record. Resolution is the responsibility of the host pipeline.
3071pub trait HostStringLiteralResolver<H: HostTypes> {
3072    /// Resolve a handle into its record. Returns `None` when the
3073    /// handle does not correspond to known content.
3074    fn resolve(&self, handle: HostStringLiteralHandle<H>) -> Option<HostStringLiteralRecord<H>>;
3075}
3076
3077/// Phase 8 (orphan-closure) — typed record for `HostStringLiteral<H>`.
3078///
3079/// Carries a field per functional accessor of the trait. Object
3080/// fields hold `{Range}Handle<H>`; iterate via the Resolved wrapper
3081/// chain-resolver methods.
3082#[derive(Clone, Debug, PartialEq, Eq, Hash)]
3083pub struct HostStringLiteralRecord<H: HostTypes> {
3084    pub host_string: &'static H::HostString,
3085    #[doc(hidden)]
3086    pub _phantom: core::marker::PhantomData<H>,
3087}
3088
3089/// Phase 8 (orphan-closure) — content-addressed wrapper for `HostStringLiteral<H>`.
3090///
3091/// Caches the resolver's lookup at construction. Accessors return
3092/// the cached record's fields when present, falling back to the
3093/// `Null{Class}<H>` absent sentinels when the resolver returned
3094/// `None`. Object accessors always return absent sentinels — use
3095/// the `resolve_{m}` chain methods to descend into sub-records.
3096pub struct ResolvedHostStringLiteral<'r, R: HostStringLiteralResolver<H>, H: HostTypes> {
3097    handle: HostStringLiteralHandle<H>,
3098    resolver: &'r R,
3099    record: Option<HostStringLiteralRecord<H>>,
3100}
3101impl<'r, R: HostStringLiteralResolver<H>, H: HostTypes> ResolvedHostStringLiteral<'r, R, H> {
3102    /// Construct the wrapper, eagerly resolving the handle.
3103    #[inline]
3104    pub fn new(handle: HostStringLiteralHandle<H>, resolver: &'r R) -> Self {
3105        let record = resolver.resolve(handle);
3106        Self {
3107            handle,
3108            resolver,
3109            record,
3110        }
3111    }
3112    /// The handle this wrapper resolves.
3113    #[inline]
3114    #[must_use]
3115    pub const fn handle(&self) -> HostStringLiteralHandle<H> {
3116        self.handle
3117    }
3118    /// The resolver supplied at construction.
3119    #[inline]
3120    #[must_use]
3121    pub const fn resolver(&self) -> &'r R {
3122        self.resolver
3123    }
3124    /// The cached record, or `None` when the resolver returned `None`.
3125    #[inline]
3126    #[must_use]
3127    pub const fn record(&self) -> Option<&HostStringLiteralRecord<H>> {
3128        self.record.as_ref()
3129    }
3130}
3131impl<'r, R: HostStringLiteralResolver<H>, H: HostTypes> SurfaceSymbol<H>
3132    for ResolvedHostStringLiteral<'r, R, H>
3133{
3134}
3135impl<'r, R: HostStringLiteralResolver<H>, H: HostTypes> HostValue<H>
3136    for ResolvedHostStringLiteral<'r, R, H>
3137{
3138}
3139impl<'r, R: HostStringLiteralResolver<H>, H: HostTypes> HostStringLiteral<H>
3140    for ResolvedHostStringLiteral<'r, R, H>
3141{
3142    fn host_string(&self) -> &H::HostString {
3143        match &self.record {
3144            Some(r) => r.host_string,
3145            None => H::EMPTY_HOST_STRING,
3146        }
3147    }
3148}
3149
3150/// Phase 8 (orphan-closure) — content-addressed handle for `HostBooleanLiteral<H>`.
3151///
3152/// Pairs a [`crate::enforcement::ContentFingerprint`] with a phantom
3153/// `H` so type-state checks can't mix handles across `HostTypes` impls.
3154#[derive(Debug)]
3155pub struct HostBooleanLiteralHandle<H: HostTypes> {
3156    /// Content fingerprint identifying the resolved record.
3157    pub fingerprint: crate::enforcement::ContentFingerprint,
3158    _phantom: core::marker::PhantomData<H>,
3159}
3160impl<H: HostTypes> Copy for HostBooleanLiteralHandle<H> {}
3161impl<H: HostTypes> Clone for HostBooleanLiteralHandle<H> {
3162    #[inline]
3163    fn clone(&self) -> Self {
3164        *self
3165    }
3166}
3167impl<H: HostTypes> PartialEq for HostBooleanLiteralHandle<H> {
3168    #[inline]
3169    fn eq(&self, other: &Self) -> bool {
3170        self.fingerprint == other.fingerprint
3171    }
3172}
3173impl<H: HostTypes> Eq for HostBooleanLiteralHandle<H> {}
3174impl<H: HostTypes> core::hash::Hash for HostBooleanLiteralHandle<H> {
3175    #[inline]
3176    fn hash<S: core::hash::Hasher>(&self, state: &mut S) {
3177        self.fingerprint.hash(state);
3178    }
3179}
3180impl<H: HostTypes> HostBooleanLiteralHandle<H> {
3181    /// Construct a handle from its content fingerprint.
3182    #[inline]
3183    #[must_use]
3184    pub const fn new(fingerprint: crate::enforcement::ContentFingerprint) -> Self {
3185        Self {
3186            fingerprint,
3187            _phantom: core::marker::PhantomData,
3188        }
3189    }
3190}
3191
3192/// Phase 8 (orphan-closure) — resolver trait for `HostBooleanLiteral<H>`.
3193///
3194/// Hosts implement this trait to map a handle into a typed record.
3195/// The default Null stub does not implement this trait — it carries
3196/// no record. Resolution is the responsibility of the host pipeline.
3197pub trait HostBooleanLiteralResolver<H: HostTypes> {
3198    /// Resolve a handle into its record. Returns `None` when the
3199    /// handle does not correspond to known content.
3200    fn resolve(&self, handle: HostBooleanLiteralHandle<H>) -> Option<HostBooleanLiteralRecord<H>>;
3201}
3202
3203/// Phase 8 (orphan-closure) — typed record for `HostBooleanLiteral<H>`.
3204///
3205/// Carries a field per functional accessor of the trait. Object
3206/// fields hold `{Range}Handle<H>`; iterate via the Resolved wrapper
3207/// chain-resolver methods.
3208#[derive(Clone, Debug, PartialEq, Eq, Hash)]
3209pub struct HostBooleanLiteralRecord<H: HostTypes> {
3210    pub host_boolean: bool,
3211    #[doc(hidden)]
3212    pub _phantom: core::marker::PhantomData<H>,
3213}
3214
3215/// Phase 8 (orphan-closure) — content-addressed wrapper for `HostBooleanLiteral<H>`.
3216///
3217/// Caches the resolver's lookup at construction. Accessors return
3218/// the cached record's fields when present, falling back to the
3219/// `Null{Class}<H>` absent sentinels when the resolver returned
3220/// `None`. Object accessors always return absent sentinels — use
3221/// the `resolve_{m}` chain methods to descend into sub-records.
3222pub struct ResolvedHostBooleanLiteral<'r, R: HostBooleanLiteralResolver<H>, H: HostTypes> {
3223    handle: HostBooleanLiteralHandle<H>,
3224    resolver: &'r R,
3225    record: Option<HostBooleanLiteralRecord<H>>,
3226}
3227impl<'r, R: HostBooleanLiteralResolver<H>, H: HostTypes> ResolvedHostBooleanLiteral<'r, R, H> {
3228    /// Construct the wrapper, eagerly resolving the handle.
3229    #[inline]
3230    pub fn new(handle: HostBooleanLiteralHandle<H>, resolver: &'r R) -> Self {
3231        let record = resolver.resolve(handle);
3232        Self {
3233            handle,
3234            resolver,
3235            record,
3236        }
3237    }
3238    /// The handle this wrapper resolves.
3239    #[inline]
3240    #[must_use]
3241    pub const fn handle(&self) -> HostBooleanLiteralHandle<H> {
3242        self.handle
3243    }
3244    /// The resolver supplied at construction.
3245    #[inline]
3246    #[must_use]
3247    pub const fn resolver(&self) -> &'r R {
3248        self.resolver
3249    }
3250    /// The cached record, or `None` when the resolver returned `None`.
3251    #[inline]
3252    #[must_use]
3253    pub const fn record(&self) -> Option<&HostBooleanLiteralRecord<H>> {
3254        self.record.as_ref()
3255    }
3256}
3257impl<'r, R: HostBooleanLiteralResolver<H>, H: HostTypes> SurfaceSymbol<H>
3258    for ResolvedHostBooleanLiteral<'r, R, H>
3259{
3260}
3261impl<'r, R: HostBooleanLiteralResolver<H>, H: HostTypes> HostValue<H>
3262    for ResolvedHostBooleanLiteral<'r, R, H>
3263{
3264}
3265impl<'r, R: HostBooleanLiteralResolver<H>, H: HostTypes> HostBooleanLiteral<H>
3266    for ResolvedHostBooleanLiteral<'r, R, H>
3267{
3268    fn host_boolean(&self) -> bool {
3269        match &self.record {
3270            Some(r) => r.host_boolean,
3271            None => false,
3272        }
3273    }
3274}
3275
3276/// Phase 8 (orphan-closure) — content-addressed handle for `ValueTuple<H>`.
3277///
3278/// Pairs a [`crate::enforcement::ContentFingerprint`] with a phantom
3279/// `H` so type-state checks can't mix handles across `HostTypes` impls.
3280#[derive(Debug)]
3281pub struct ValueTupleHandle<H: HostTypes> {
3282    /// Content fingerprint identifying the resolved record.
3283    pub fingerprint: crate::enforcement::ContentFingerprint,
3284    _phantom: core::marker::PhantomData<H>,
3285}
3286impl<H: HostTypes> Copy for ValueTupleHandle<H> {}
3287impl<H: HostTypes> Clone for ValueTupleHandle<H> {
3288    #[inline]
3289    fn clone(&self) -> Self {
3290        *self
3291    }
3292}
3293impl<H: HostTypes> PartialEq for ValueTupleHandle<H> {
3294    #[inline]
3295    fn eq(&self, other: &Self) -> bool {
3296        self.fingerprint == other.fingerprint
3297    }
3298}
3299impl<H: HostTypes> Eq for ValueTupleHandle<H> {}
3300impl<H: HostTypes> core::hash::Hash for ValueTupleHandle<H> {
3301    #[inline]
3302    fn hash<S: core::hash::Hasher>(&self, state: &mut S) {
3303        self.fingerprint.hash(state);
3304    }
3305}
3306impl<H: HostTypes> ValueTupleHandle<H> {
3307    /// Construct a handle from its content fingerprint.
3308    #[inline]
3309    #[must_use]
3310    pub const fn new(fingerprint: crate::enforcement::ContentFingerprint) -> Self {
3311        Self {
3312            fingerprint,
3313            _phantom: core::marker::PhantomData,
3314        }
3315    }
3316}
3317
3318/// Phase 8 (orphan-closure) — resolver trait for `ValueTuple<H>`.
3319///
3320/// Hosts implement this trait to map a handle into a typed record.
3321/// The default Null stub does not implement this trait — it carries
3322/// no record. Resolution is the responsibility of the host pipeline.
3323pub trait ValueTupleResolver<H: HostTypes> {
3324    /// Resolve a handle into its record. Returns `None` when the
3325    /// handle does not correspond to known content.
3326    fn resolve(&self, handle: ValueTupleHandle<H>) -> Option<ValueTupleRecord<H>>;
3327}
3328
3329/// Phase 8 (orphan-closure) — typed record for `ValueTuple<H>`.
3330///
3331/// Carries a field per functional accessor of the trait. Object
3332/// fields hold `{Range}Handle<H>`; iterate via the Resolved wrapper
3333/// chain-resolver methods.
3334#[derive(Clone, Debug, PartialEq, Eq, Hash)]
3335pub struct ValueTupleRecord<H: HostTypes> {
3336    #[doc(hidden)]
3337    pub _phantom: core::marker::PhantomData<H>,
3338}
3339
3340/// Phase 8 (orphan-closure) — content-addressed wrapper for `ValueTuple<H>`.
3341///
3342/// Caches the resolver's lookup at construction. Accessors return
3343/// the cached record's fields when present, falling back to the
3344/// `Null{Class}<H>` absent sentinels when the resolver returned
3345/// `None`. Object accessors always return absent sentinels — use
3346/// the `resolve_{m}` chain methods to descend into sub-records.
3347pub struct ResolvedValueTuple<'r, R: ValueTupleResolver<H>, H: HostTypes> {
3348    handle: ValueTupleHandle<H>,
3349    resolver: &'r R,
3350    record: Option<ValueTupleRecord<H>>,
3351}
3352impl<'r, R: ValueTupleResolver<H>, H: HostTypes> ResolvedValueTuple<'r, R, H> {
3353    /// Construct the wrapper, eagerly resolving the handle.
3354    #[inline]
3355    pub fn new(handle: ValueTupleHandle<H>, resolver: &'r R) -> Self {
3356        let record = resolver.resolve(handle);
3357        Self {
3358            handle,
3359            resolver,
3360            record,
3361        }
3362    }
3363    /// The handle this wrapper resolves.
3364    #[inline]
3365    #[must_use]
3366    pub const fn handle(&self) -> ValueTupleHandle<H> {
3367        self.handle
3368    }
3369    /// The resolver supplied at construction.
3370    #[inline]
3371    #[must_use]
3372    pub const fn resolver(&self) -> &'r R {
3373        self.resolver
3374    }
3375    /// The cached record, or `None` when the resolver returned `None`.
3376    #[inline]
3377    #[must_use]
3378    pub const fn record(&self) -> Option<&ValueTupleRecord<H>> {
3379        self.record.as_ref()
3380    }
3381}
3382impl<'r, R: ValueTupleResolver<H>, H: HostTypes> ValueTuple<H> for ResolvedValueTuple<'r, R, H> {}
3383
3384/// Universal quantification (forall).
3385pub mod universal {}
3386
3387/// Existential quantification (exists).
3388pub mod existential {}
3389
3390/// The unique generator of R_n under successor. Value = 1 at every Witt level. Under iterated application of succ, π₁ generates every element of the ring.
3391pub mod pi1 {
3392    /// `value`
3393    pub const VALUE: i64 = 1;
3394}
3395
3396/// The additive identity of the ring. Value = 0 at every Witt level. op:add(x, zero) = x for all x in R_n.
3397pub mod zero {
3398    /// `value`
3399    pub const VALUE: i64 = 0;
3400}
3401
3402/// Witt level 0: 8-bit ring Z/256Z, 256 states. The reference level for all ComputationCertificate proofs in the spec.
3403pub mod w8 {
3404    /// `bitsWidth`
3405    pub const BITS_WIDTH: i64 = 8;
3406    /// `cycleSize`
3407    pub const CYCLE_SIZE: i64 = 256;
3408    /// `nextWittLevel` -> `W16`
3409    pub const NEXT_WITT_LEVEL: &str = "https://uor.foundation/schema/W16";
3410}
3411
3412/// Witt level 1: 16-bit ring Z/65536Z, 65,536 states.
3413pub mod w16 {
3414    /// `bitsWidth`
3415    pub const BITS_WIDTH: i64 = 16;
3416    /// `cycleSize`
3417    pub const CYCLE_SIZE: i64 = 65536;
3418    /// `nextWittLevel` -> `W24`
3419    pub const NEXT_WITT_LEVEL: &str = "https://uor.foundation/schema/W24";
3420    /// `wittLevelPredecessor` -> `W8`
3421    pub const WITT_LEVEL_PREDECESSOR: &str = "https://uor.foundation/schema/W8";
3422}
3423
3424/// Witt level 2: 24-bit ring Z/16777216Z, 16,777,216 states.
3425pub mod w24 {
3426    /// `bitsWidth`
3427    pub const BITS_WIDTH: i64 = 24;
3428    /// `cycleSize`
3429    pub const CYCLE_SIZE: i64 = 16777216;
3430    /// `nextWittLevel` -> `W32`
3431    pub const NEXT_WITT_LEVEL: &str = "https://uor.foundation/schema/W32";
3432    /// `wittLevelPredecessor` -> `W16`
3433    pub const WITT_LEVEL_PREDECESSOR: &str = "https://uor.foundation/schema/W16";
3434}
3435
3436/// Witt level 3: 32-bit ring Z/4294967296Z, 4,294,967,296 states. The highest 32-bit-and-below named level in the v0.2.1 spec; v0.2.2 Phase C extends the tower with the dense and powers-of-two set.
3437pub mod w32 {
3438    /// `bitsWidth`
3439    pub const BITS_WIDTH: i64 = 32;
3440    /// `cycleSize`
3441    pub const CYCLE_SIZE: i64 = 4294967296;
3442    /// `nextWittLevel` -> `W40`
3443    pub const NEXT_WITT_LEVEL: &str = "https://uor.foundation/schema/W40";
3444    /// `wittLevelPredecessor` -> `W24`
3445    pub const WITT_LEVEL_PREDECESSOR: &str = "https://uor.foundation/schema/W24";
3446}
3447
3448/// Witt level 4: 40-bit ring Z/2^40 Z. Backed by u64 with a 40-bit mask at the arithmetic boundary. v0.2.2 Phase C.
3449pub mod w40 {
3450    /// `bitsWidth`
3451    pub const BITS_WIDTH: i64 = 40;
3452    /// `cycleSize`
3453    pub const CYCLE_SIZE: i64 = 1099511627776;
3454    /// `nextWittLevel` -> `W48`
3455    pub const NEXT_WITT_LEVEL: &str = "https://uor.foundation/schema/W48";
3456    /// `wittLevelPredecessor` -> `W32`
3457    pub const WITT_LEVEL_PREDECESSOR: &str = "https://uor.foundation/schema/W32";
3458}
3459
3460/// Witt level 5: 48-bit ring Z/2^48 Z. Backed by u64 with a 48-bit mask at the arithmetic boundary. v0.2.2 Phase C.
3461pub mod w48 {
3462    /// `bitsWidth`
3463    pub const BITS_WIDTH: i64 = 48;
3464    /// `cycleSize`
3465    pub const CYCLE_SIZE: i64 = 281474976710656;
3466    /// `nextWittLevel` -> `W56`
3467    pub const NEXT_WITT_LEVEL: &str = "https://uor.foundation/schema/W56";
3468    /// `wittLevelPredecessor` -> `W40`
3469    pub const WITT_LEVEL_PREDECESSOR: &str = "https://uor.foundation/schema/W40";
3470}
3471
3472/// Witt level 6: 56-bit ring Z/2^56 Z. Backed by u64 with a 56-bit mask at the arithmetic boundary. v0.2.2 Phase C.
3473pub mod w56 {
3474    /// `bitsWidth`
3475    pub const BITS_WIDTH: i64 = 56;
3476    /// `cycleSize`
3477    pub const CYCLE_SIZE: i64 = 72057594037927936;
3478    /// `nextWittLevel` -> `W64`
3479    pub const NEXT_WITT_LEVEL: &str = "https://uor.foundation/schema/W64";
3480    /// `wittLevelPredecessor` -> `W48`
3481    pub const WITT_LEVEL_PREDECESSOR: &str = "https://uor.foundation/schema/W48";
3482}
3483
3484/// Witt level 7: 64-bit ring Z/2^64 Z. Backed by u64 directly (exact fit; no mask). v0.2.2 Phase C. cycle_size = 2^64 exceeds i64 representation and is omitted; codegen derives it from bit_width.
3485pub mod w64 {
3486    /// `bitsWidth`
3487    pub const BITS_WIDTH: i64 = 64;
3488    /// `nextWittLevel` -> `W72`
3489    pub const NEXT_WITT_LEVEL: &str = "https://uor.foundation/schema/W72";
3490    /// `wittLevelPredecessor` -> `W56`
3491    pub const WITT_LEVEL_PREDECESSOR: &str = "https://uor.foundation/schema/W56";
3492}
3493
3494/// Witt level 8: 72-bit ring Z/2^72 Z. Backed by u128 with a 72-bit mask at the arithmetic boundary. v0.2.2 Phase C.
3495pub mod w72 {
3496    /// `bitsWidth`
3497    pub const BITS_WIDTH: i64 = 72;
3498    /// `nextWittLevel` -> `W80`
3499    pub const NEXT_WITT_LEVEL: &str = "https://uor.foundation/schema/W80";
3500    /// `wittLevelPredecessor` -> `W64`
3501    pub const WITT_LEVEL_PREDECESSOR: &str = "https://uor.foundation/schema/W64";
3502}
3503
3504/// Witt level 9: 80-bit ring Z/2^80 Z. Backed by u128 with an 80-bit mask at the arithmetic boundary. v0.2.2 Phase C.
3505pub mod w80 {
3506    /// `bitsWidth`
3507    pub const BITS_WIDTH: i64 = 80;
3508    /// `nextWittLevel` -> `W88`
3509    pub const NEXT_WITT_LEVEL: &str = "https://uor.foundation/schema/W88";
3510    /// `wittLevelPredecessor` -> `W72`
3511    pub const WITT_LEVEL_PREDECESSOR: &str = "https://uor.foundation/schema/W72";
3512}
3513
3514/// Witt level 10: 88-bit ring Z/2^88 Z. Backed by u128 with an 88-bit mask at the arithmetic boundary. v0.2.2 Phase C.
3515pub mod w88 {
3516    /// `bitsWidth`
3517    pub const BITS_WIDTH: i64 = 88;
3518    /// `nextWittLevel` -> `W96`
3519    pub const NEXT_WITT_LEVEL: &str = "https://uor.foundation/schema/W96";
3520    /// `wittLevelPredecessor` -> `W80`
3521    pub const WITT_LEVEL_PREDECESSOR: &str = "https://uor.foundation/schema/W80";
3522}
3523
3524/// Witt level 11: 96-bit ring Z/2^96 Z. Backed by u128 with a 96-bit mask at the arithmetic boundary. v0.2.2 Phase C.
3525pub mod w96 {
3526    /// `bitsWidth`
3527    pub const BITS_WIDTH: i64 = 96;
3528    /// `nextWittLevel` -> `W104`
3529    pub const NEXT_WITT_LEVEL: &str = "https://uor.foundation/schema/W104";
3530    /// `wittLevelPredecessor` -> `W88`
3531    pub const WITT_LEVEL_PREDECESSOR: &str = "https://uor.foundation/schema/W88";
3532}
3533
3534/// Witt level 12: 104-bit ring Z/2^104 Z. Backed by u128 with a 104-bit mask at the arithmetic boundary. v0.2.2 Phase C.
3535pub mod w104 {
3536    /// `bitsWidth`
3537    pub const BITS_WIDTH: i64 = 104;
3538    /// `nextWittLevel` -> `W112`
3539    pub const NEXT_WITT_LEVEL: &str = "https://uor.foundation/schema/W112";
3540    /// `wittLevelPredecessor` -> `W96`
3541    pub const WITT_LEVEL_PREDECESSOR: &str = "https://uor.foundation/schema/W96";
3542}
3543
3544/// Witt level 13: 112-bit ring Z/2^112 Z. Backed by u128 with a 112-bit mask at the arithmetic boundary. v0.2.2 Phase C.
3545pub mod w112 {
3546    /// `bitsWidth`
3547    pub const BITS_WIDTH: i64 = 112;
3548    /// `nextWittLevel` -> `W120`
3549    pub const NEXT_WITT_LEVEL: &str = "https://uor.foundation/schema/W120";
3550    /// `wittLevelPredecessor` -> `W104`
3551    pub const WITT_LEVEL_PREDECESSOR: &str = "https://uor.foundation/schema/W104";
3552}
3553
3554/// Witt level 14: 120-bit ring Z/2^120 Z. Backed by u128 with a 120-bit mask at the arithmetic boundary. v0.2.2 Phase C.
3555pub mod w120 {
3556    /// `bitsWidth`
3557    pub const BITS_WIDTH: i64 = 120;
3558    /// `nextWittLevel` -> `W128`
3559    pub const NEXT_WITT_LEVEL: &str = "https://uor.foundation/schema/W128";
3560    /// `wittLevelPredecessor` -> `W112`
3561    pub const WITT_LEVEL_PREDECESSOR: &str = "https://uor.foundation/schema/W112";
3562}
3563
3564/// Witt level 15: 128-bit ring Z/2^128 Z. Backed by u128 directly (exact fit; no mask). The largest native-backed Witt level; levels above W128 use the Limbs\<N\> generic kernel emitted in Phase C.3. v0.2.2 Phase C.
3565pub mod w128 {
3566    /// `bitsWidth`
3567    pub const BITS_WIDTH: i64 = 128;
3568    /// `nextWittLevel` -> `W160`
3569    pub const NEXT_WITT_LEVEL: &str = "https://uor.foundation/schema/W160";
3570    /// `wittLevelPredecessor` -> `W120`
3571    pub const WITT_LEVEL_PREDECESSOR: &str = "https://uor.foundation/schema/W120";
3572}
3573
3574/// Witt level: 160-bit ring (SHA-1 digest carrier). Backed by Limbs<3> with a 160-bit mask. v0.2.2 Phase C.
3575pub mod w160 {
3576    /// `bitsWidth`
3577    pub const BITS_WIDTH: i64 = 160;
3578    /// `nextWittLevel` -> `W192`
3579    pub const NEXT_WITT_LEVEL: &str = "https://uor.foundation/schema/W192";
3580    /// `wittLevelPredecessor` -> `W128`
3581    pub const WITT_LEVEL_PREDECESSOR: &str = "https://uor.foundation/schema/W128";
3582}
3583
3584/// Witt level: 192-bit ring (P-192 carrier). Backed by Limbs<3>. v0.2.2 Phase C.
3585pub mod w192 {
3586    /// `bitsWidth`
3587    pub const BITS_WIDTH: i64 = 192;
3588    /// `nextWittLevel` -> `W224`
3589    pub const NEXT_WITT_LEVEL: &str = "https://uor.foundation/schema/W224";
3590    /// `wittLevelPredecessor` -> `W160`
3591    pub const WITT_LEVEL_PREDECESSOR: &str = "https://uor.foundation/schema/W160";
3592}
3593
3594/// Witt level: 224-bit ring (SHA-224 digest carrier). Backed by Limbs<4> with a 224-bit mask. v0.2.2 Phase C.
3595pub mod w224 {
3596    /// `bitsWidth`
3597    pub const BITS_WIDTH: i64 = 224;
3598    /// `nextWittLevel` -> `W256`
3599    pub const NEXT_WITT_LEVEL: &str = "https://uor.foundation/schema/W256";
3600    /// `wittLevelPredecessor` -> `W192`
3601    pub const WITT_LEVEL_PREDECESSOR: &str = "https://uor.foundation/schema/W192";
3602}
3603
3604/// Witt level: 256-bit ring (SHA-256, blake3, secp256k1, P-256 carrier). Backed by Limbs<4> directly (exact fit; no mask). v0.2.2 Phase C.
3605pub mod w256 {
3606    /// `bitsWidth`
3607    pub const BITS_WIDTH: i64 = 256;
3608    /// `nextWittLevel` -> `W384`
3609    pub const NEXT_WITT_LEVEL: &str = "https://uor.foundation/schema/W384";
3610    /// `wittLevelPredecessor` -> `W224`
3611    pub const WITT_LEVEL_PREDECESSOR: &str = "https://uor.foundation/schema/W224";
3612}
3613
3614/// Witt level: 384-bit ring (SHA-384, P-384 carrier). Backed by Limbs<6> directly (exact fit; no mask). v0.2.2 Phase C.
3615pub mod w384 {
3616    /// `bitsWidth`
3617    pub const BITS_WIDTH: i64 = 384;
3618    /// `nextWittLevel` -> `W448`
3619    pub const NEXT_WITT_LEVEL: &str = "https://uor.foundation/schema/W448";
3620    /// `wittLevelPredecessor` -> `W256`
3621    pub const WITT_LEVEL_PREDECESSOR: &str = "https://uor.foundation/schema/W256";
3622}
3623
3624/// Witt level: 448-bit ring (Curve448 carrier). Backed by Limbs<7> directly (exact fit; no mask). v0.2.2 Phase C.
3625pub mod w448 {
3626    /// `bitsWidth`
3627    pub const BITS_WIDTH: i64 = 448;
3628    /// `nextWittLevel` -> `W512`
3629    pub const NEXT_WITT_LEVEL: &str = "https://uor.foundation/schema/W512";
3630    /// `wittLevelPredecessor` -> `W384`
3631    pub const WITT_LEVEL_PREDECESSOR: &str = "https://uor.foundation/schema/W384";
3632}
3633
3634/// Witt level: 512-bit ring (SHA-512 carrier). Backed by Limbs<8> directly (exact fit; no mask). v0.2.2 Phase C.
3635pub mod w512 {
3636    /// `bitsWidth`
3637    pub const BITS_WIDTH: i64 = 512;
3638    /// `nextWittLevel` -> `W520`
3639    pub const NEXT_WITT_LEVEL: &str = "https://uor.foundation/schema/W520";
3640    /// `wittLevelPredecessor` -> `W448`
3641    pub const WITT_LEVEL_PREDECESSOR: &str = "https://uor.foundation/schema/W448";
3642}
3643
3644/// Witt level: 520-bit ring (P-521 prime carrier, lower-bound). Backed by Limbs<9> with a 520-bit mask. v0.2.2 Phase C.
3645pub mod w520 {
3646    /// `bitsWidth`
3647    pub const BITS_WIDTH: i64 = 520;
3648    /// `nextWittLevel` -> `W528`
3649    pub const NEXT_WITT_LEVEL: &str = "https://uor.foundation/schema/W528";
3650    /// `wittLevelPredecessor` -> `W512`
3651    pub const WITT_LEVEL_PREDECESSOR: &str = "https://uor.foundation/schema/W512";
3652}
3653
3654/// Witt level: 528-bit ring (P-521 prime carrier, upper-bound; P-521 elements are constrained by an additional residue check). Backed by Limbs<9> with a 528-bit mask. v0.2.2 Phase C.
3655pub mod w528 {
3656    /// `bitsWidth`
3657    pub const BITS_WIDTH: i64 = 528;
3658    /// `nextWittLevel` -> `W1024`
3659    pub const NEXT_WITT_LEVEL: &str = "https://uor.foundation/schema/W1024";
3660    /// `wittLevelPredecessor` -> `W520`
3661    pub const WITT_LEVEL_PREDECESSOR: &str = "https://uor.foundation/schema/W520";
3662}
3663
3664/// Witt level: 1024-bit ring (RSA-1024 carrier). Backed by Limbs<16> directly (exact fit; no mask). v0.2.2 Phase C.
3665pub mod w1024 {
3666    /// `bitsWidth`
3667    pub const BITS_WIDTH: i64 = 1024;
3668    /// `nextWittLevel` -> `W2048`
3669    pub const NEXT_WITT_LEVEL: &str = "https://uor.foundation/schema/W2048";
3670    /// `wittLevelPredecessor` -> `W528`
3671    pub const WITT_LEVEL_PREDECESSOR: &str = "https://uor.foundation/schema/W528";
3672}
3673
3674/// Witt level: 2048-bit ring (RSA-2048 carrier). Backed by Limbs<32> directly (exact fit; no mask). v0.2.2 Phase C.
3675pub mod w2048 {
3676    /// `bitsWidth`
3677    pub const BITS_WIDTH: i64 = 2048;
3678    /// `nextWittLevel` -> `W4096`
3679    pub const NEXT_WITT_LEVEL: &str = "https://uor.foundation/schema/W4096";
3680    /// `wittLevelPredecessor` -> `W1024`
3681    pub const WITT_LEVEL_PREDECESSOR: &str = "https://uor.foundation/schema/W1024";
3682}
3683
3684/// Witt level: 4096-bit ring (RSA-4096, BFV/CKKS HE ring dimension carrier). Backed by Limbs<64>. v0.2.2 Phase C.
3685pub mod w4096 {
3686    /// `bitsWidth`
3687    pub const BITS_WIDTH: i64 = 4096;
3688    /// `nextWittLevel` -> `W8192`
3689    pub const NEXT_WITT_LEVEL: &str = "https://uor.foundation/schema/W8192";
3690    /// `wittLevelPredecessor` -> `W2048`
3691    pub const WITT_LEVEL_PREDECESSOR: &str = "https://uor.foundation/schema/W2048";
3692}
3693
3694/// Witt level: 8192-bit ring (lattice-based crypto carrier). Backed by Limbs<128>. v0.2.2 Phase C.
3695pub mod w8192 {
3696    /// `bitsWidth`
3697    pub const BITS_WIDTH: i64 = 8192;
3698    /// `nextWittLevel` -> `W12288`
3699    pub const NEXT_WITT_LEVEL: &str = "https://uor.foundation/schema/W12288";
3700    /// `wittLevelPredecessor` -> `W4096`
3701    pub const WITT_LEVEL_PREDECESSOR: &str = "https://uor.foundation/schema/W4096";
3702}
3703
3704/// Witt level: 12288-bit ring (BFV/BGV HE ring dimension at n=12288). Backed by Limbs<192>. v0.2.2 Phase C.
3705pub mod w12288 {
3706    /// `bitsWidth`
3707    pub const BITS_WIDTH: i64 = 12288;
3708    /// `nextWittLevel` -> `W16384`
3709    pub const NEXT_WITT_LEVEL: &str = "https://uor.foundation/schema/W16384";
3710    /// `wittLevelPredecessor` -> `W8192`
3711    pub const WITT_LEVEL_PREDECESSOR: &str = "https://uor.foundation/schema/W8192";
3712}
3713
3714/// Witt level: 16384-bit ring (post-quantum lattice parameter). Backed by Limbs<256>. v0.2.2 Phase C.
3715pub mod w16384 {
3716    /// `bitsWidth`
3717    pub const BITS_WIDTH: i64 = 16384;
3718    /// `nextWittLevel` -> `W32768`
3719    pub const NEXT_WITT_LEVEL: &str = "https://uor.foundation/schema/W32768";
3720    /// `wittLevelPredecessor` -> `W12288`
3721    pub const WITT_LEVEL_PREDECESSOR: &str = "https://uor.foundation/schema/W12288";
3722}
3723
3724/// Witt level: 32768-bit ring (post-quantum / extreme-precision arithmetic carrier). Backed by Limbs<512>. The highest foundation-shipped level in v0.2.2; downstream Prism implementations may declare higher levels via the `witt_level` conformance declaration form. v0.2.2 Phase C.
3725pub mod w32768 {
3726    /// `bitsWidth`
3727    pub const BITS_WIDTH: i64 = 32768;
3728    /// `wittLevelPredecessor` -> `W16384`
3729    pub const WITT_LEVEL_PREDECESSOR: &str = "https://uor.foundation/schema/W16384";
3730}
3731
3732pub mod term_critical_identity_lhs {
3733    /// `literalValue`
3734    pub const LITERAL_VALUE: &str = "neg(bnot(x))";
3735}
3736
3737pub mod term_critical_identity_rhs {
3738    /// `literalValue`
3739    pub const LITERAL_VALUE: &str = "succ(x)";
3740}
3741
3742pub mod term_critical_identity_for_all {
3743    /// `variableName`
3744    pub const VARIABLE_NAME: &str = "x ∈ R_n";
3745}
3746
3747pub mod term_ad_1_lhs {
3748    /// `literalValue`
3749    pub const LITERAL_VALUE: &str = "addresses(glyph(d))";
3750}
3751
3752pub mod term_ad_1_rhs {
3753    /// `literalValue`
3754    pub const LITERAL_VALUE: &str = "d";
3755}
3756
3757pub mod term_ad_1_for_all {
3758    /// `variableName`
3759    pub const VARIABLE_NAME: &str = "d ∈ R_n";
3760}
3761
3762pub mod term_ad_2_lhs {
3763    /// `literalValue`
3764    pub const LITERAL_VALUE: &str = "glyph(ι(addresses(a)))";
3765}
3766
3767pub mod term_ad_2_rhs {
3768    /// `literalValue`
3769    pub const LITERAL_VALUE: &str = "ι_addr(a)";
3770}
3771
3772pub mod term_ad_2_for_all {
3773    /// `variableName`
3774    pub const VARIABLE_NAME: &str = "a ∈ Addr(R_n), ι : R_n → R_{n'}";
3775}
3776
3777pub mod term_r_a1_lhs {
3778    /// `literalValue`
3779    pub const LITERAL_VALUE: &str = "add(x, add(y, z))";
3780}
3781
3782pub mod term_r_a1_rhs {
3783    /// `literalValue`
3784    pub const LITERAL_VALUE: &str = "add(add(x, y), z)";
3785}
3786
3787pub mod term_r_a1_for_all {
3788    /// `variableName`
3789    pub const VARIABLE_NAME: &str = "x, y, z ∈ R_n";
3790}
3791
3792pub mod term_r_a2_lhs {
3793    /// `literalValue`
3794    pub const LITERAL_VALUE: &str = "add(x, 0)";
3795}
3796
3797pub mod term_r_a2_rhs {
3798    /// `literalValue`
3799    pub const LITERAL_VALUE: &str = "x";
3800}
3801
3802pub mod term_r_a2_for_all {
3803    /// `variableName`
3804    pub const VARIABLE_NAME: &str = "x ∈ R_n";
3805}
3806
3807pub mod term_r_a3_lhs {
3808    /// `literalValue`
3809    pub const LITERAL_VALUE: &str = "add(x, neg(x))";
3810}
3811
3812pub mod term_r_a3_rhs {
3813    /// `literalValue`
3814    pub const LITERAL_VALUE: &str = "0";
3815}
3816
3817pub mod term_r_a3_for_all {
3818    /// `variableName`
3819    pub const VARIABLE_NAME: &str = "x ∈ R_n";
3820}
3821
3822pub mod term_r_a4_lhs {
3823    /// `literalValue`
3824    pub const LITERAL_VALUE: &str = "add(x, y)";
3825}
3826
3827pub mod term_r_a4_rhs {
3828    /// `literalValue`
3829    pub const LITERAL_VALUE: &str = "add(y, x)";
3830}
3831
3832pub mod term_r_a4_for_all {
3833    /// `variableName`
3834    pub const VARIABLE_NAME: &str = "x, y ∈ R_n";
3835}
3836
3837pub mod term_r_a5_lhs {
3838    /// `literalValue`
3839    pub const LITERAL_VALUE: &str = "sub(x, y)";
3840}
3841
3842pub mod term_r_a5_rhs {
3843    /// `literalValue`
3844    pub const LITERAL_VALUE: &str = "add(x, neg(y))";
3845}
3846
3847pub mod term_r_a5_for_all {
3848    /// `variableName`
3849    pub const VARIABLE_NAME: &str = "x, y ∈ R_n";
3850}
3851
3852pub mod term_r_a6_lhs {
3853    /// `literalValue`
3854    pub const LITERAL_VALUE: &str = "neg(neg(x))";
3855}
3856
3857pub mod term_r_a6_rhs {
3858    /// `literalValue`
3859    pub const LITERAL_VALUE: &str = "x";
3860}
3861
3862pub mod term_r_a6_for_all {
3863    /// `variableName`
3864    pub const VARIABLE_NAME: &str = "x ∈ R_n";
3865}
3866
3867pub mod term_r_m1_lhs {
3868    /// `literalValue`
3869    pub const LITERAL_VALUE: &str = "mul(x, mul(y, z))";
3870}
3871
3872pub mod term_r_m1_rhs {
3873    /// `literalValue`
3874    pub const LITERAL_VALUE: &str = "mul(mul(x, y), z)";
3875}
3876
3877pub mod term_r_m1_for_all {
3878    /// `variableName`
3879    pub const VARIABLE_NAME: &str = "x, y, z ∈ R_n";
3880}
3881
3882pub mod term_r_m2_lhs {
3883    /// `literalValue`
3884    pub const LITERAL_VALUE: &str = "mul(x, 1)";
3885}
3886
3887pub mod term_r_m2_rhs {
3888    /// `literalValue`
3889    pub const LITERAL_VALUE: &str = "x";
3890}
3891
3892pub mod term_r_m2_for_all {
3893    /// `variableName`
3894    pub const VARIABLE_NAME: &str = "x ∈ R_n";
3895}
3896
3897pub mod term_r_m3_lhs {
3898    /// `literalValue`
3899    pub const LITERAL_VALUE: &str = "mul(x, y)";
3900}
3901
3902pub mod term_r_m3_rhs {
3903    /// `literalValue`
3904    pub const LITERAL_VALUE: &str = "mul(y, x)";
3905}
3906
3907pub mod term_r_m3_for_all {
3908    /// `variableName`
3909    pub const VARIABLE_NAME: &str = "x, y ∈ R_n";
3910}
3911
3912pub mod term_r_m4_lhs {
3913    /// `literalValue`
3914    pub const LITERAL_VALUE: &str = "mul(x, add(y, z))";
3915}
3916
3917pub mod term_r_m4_rhs {
3918    /// `literalValue`
3919    pub const LITERAL_VALUE: &str = "add(mul(x, y), mul(x, z))";
3920}
3921
3922pub mod term_r_m4_for_all {
3923    /// `variableName`
3924    pub const VARIABLE_NAME: &str = "x, y, z ∈ R_n";
3925}
3926
3927pub mod term_r_m5_lhs {
3928    /// `literalValue`
3929    pub const LITERAL_VALUE: &str = "mul(x, 0)";
3930}
3931
3932pub mod term_r_m5_rhs {
3933    /// `literalValue`
3934    pub const LITERAL_VALUE: &str = "0";
3935}
3936
3937pub mod term_r_m5_for_all {
3938    /// `variableName`
3939    pub const VARIABLE_NAME: &str = "x ∈ R_n";
3940}
3941
3942pub mod term_dv_1_lhs {
3943    /// `literalValue`
3944    pub const LITERAL_VALUE: &str = "div(a, 1)";
3945}
3946
3947pub mod term_dv_1_rhs {
3948    /// `literalValue`
3949    pub const LITERAL_VALUE: &str = "a";
3950}
3951
3952pub mod term_dv_1_for_all {
3953    /// `variableName`
3954    pub const VARIABLE_NAME: &str = "a ∈ R_n";
3955}
3956
3957pub mod term_dv_2_lhs {
3958    /// `literalValue`
3959    pub const LITERAL_VALUE: &str = "div(0, b)";
3960}
3961
3962pub mod term_dv_2_rhs {
3963    /// `literalValue`
3964    pub const LITERAL_VALUE: &str = "0";
3965}
3966
3967pub mod term_dv_2_for_all {
3968    /// `variableName`
3969    pub const VARIABLE_NAME: &str = "b ∈ R_n, b ≠ 0";
3970}
3971
3972pub mod term_dv_3_lhs {
3973    /// `literalValue`
3974    pub const LITERAL_VALUE: &str = "div(mul(a, b), b)";
3975}
3976
3977pub mod term_dv_3_rhs {
3978    /// `literalValue`
3979    pub const LITERAL_VALUE: &str = "a";
3980}
3981
3982pub mod term_dv_3_for_all {
3983    /// `variableName`
3984    pub const VARIABLE_NAME: &str = "a, b ∈ R_n, b ≠ 0, mul(a, b) does not overflow";
3985}
3986
3987pub mod term_dv_4_lhs {
3988    /// `literalValue`
3989    pub const LITERAL_VALUE: &str = "a";
3990}
3991
3992pub mod term_dv_4_rhs {
3993    /// `literalValue`
3994    pub const LITERAL_VALUE: &str = "add(mul(div(a, b), b), mod(a, b))";
3995}
3996
3997pub mod term_dv_4_for_all {
3998    /// `variableName`
3999    pub const VARIABLE_NAME: &str = "a, b ∈ R_n, b ≠ 0";
4000}
4001
4002pub mod term_pw_1_lhs {
4003    /// `literalValue`
4004    pub const LITERAL_VALUE: &str = "pow(a, 0)";
4005}
4006
4007pub mod term_pw_1_rhs {
4008    /// `literalValue`
4009    pub const LITERAL_VALUE: &str = "1";
4010}
4011
4012pub mod term_pw_1_for_all {
4013    /// `variableName`
4014    pub const VARIABLE_NAME: &str = "a ∈ R_n";
4015}
4016
4017pub mod term_pw_2_lhs {
4018    /// `literalValue`
4019    pub const LITERAL_VALUE: &str = "pow(a, 1)";
4020}
4021
4022pub mod term_pw_2_rhs {
4023    /// `literalValue`
4024    pub const LITERAL_VALUE: &str = "a";
4025}
4026
4027pub mod term_pw_2_for_all {
4028    /// `variableName`
4029    pub const VARIABLE_NAME: &str = "a ∈ R_n";
4030}
4031
4032pub mod term_pw_3_lhs {
4033    /// `literalValue`
4034    pub const LITERAL_VALUE: &str = "pow(a, add(b, c))";
4035}
4036
4037pub mod term_pw_3_rhs {
4038    /// `literalValue`
4039    pub const LITERAL_VALUE: &str = "mul(pow(a, b), pow(a, c))";
4040}
4041
4042pub mod term_pw_3_for_all {
4043    /// `variableName`
4044    pub const VARIABLE_NAME: &str = "a, b, c ∈ R_n";
4045}
4046
4047pub mod term_b_1_lhs {
4048    /// `literalValue`
4049    pub const LITERAL_VALUE: &str = "xor(x, xor(y, z))";
4050}
4051
4052pub mod term_b_1_rhs {
4053    /// `literalValue`
4054    pub const LITERAL_VALUE: &str = "xor(xor(x, y), z)";
4055}
4056
4057pub mod term_b_1_for_all {
4058    /// `variableName`
4059    pub const VARIABLE_NAME: &str = "x, y, z ∈ R_n";
4060}
4061
4062pub mod term_b_2_lhs {
4063    /// `literalValue`
4064    pub const LITERAL_VALUE: &str = "xor(x, 0)";
4065}
4066
4067pub mod term_b_2_rhs {
4068    /// `literalValue`
4069    pub const LITERAL_VALUE: &str = "x";
4070}
4071
4072pub mod term_b_2_for_all {
4073    /// `variableName`
4074    pub const VARIABLE_NAME: &str = "x ∈ R_n";
4075}
4076
4077pub mod term_b_3_lhs {
4078    /// `literalValue`
4079    pub const LITERAL_VALUE: &str = "xor(x, x)";
4080}
4081
4082pub mod term_b_3_rhs {
4083    /// `literalValue`
4084    pub const LITERAL_VALUE: &str = "0";
4085}
4086
4087pub mod term_b_3_for_all {
4088    /// `variableName`
4089    pub const VARIABLE_NAME: &str = "x ∈ R_n";
4090}
4091
4092pub mod term_b_4_lhs {
4093    /// `literalValue`
4094    pub const LITERAL_VALUE: &str = "and(x, and(y, z))";
4095}
4096
4097pub mod term_b_4_rhs {
4098    /// `literalValue`
4099    pub const LITERAL_VALUE: &str = "and(and(x, y), z)";
4100}
4101
4102pub mod term_b_4_for_all {
4103    /// `variableName`
4104    pub const VARIABLE_NAME: &str = "x, y, z ∈ R_n";
4105}
4106
4107pub mod term_b_5_lhs {
4108    /// `literalValue`
4109    pub const LITERAL_VALUE: &str = "and(x, 2^n - 1)";
4110}
4111
4112pub mod term_b_5_rhs {
4113    /// `literalValue`
4114    pub const LITERAL_VALUE: &str = "x";
4115}
4116
4117pub mod term_b_5_for_all {
4118    /// `variableName`
4119    pub const VARIABLE_NAME: &str = "x ∈ R_n";
4120}
4121
4122pub mod term_b_6_lhs {
4123    /// `literalValue`
4124    pub const LITERAL_VALUE: &str = "and(x, 0)";
4125}
4126
4127pub mod term_b_6_rhs {
4128    /// `literalValue`
4129    pub const LITERAL_VALUE: &str = "0";
4130}
4131
4132pub mod term_b_6_for_all {
4133    /// `variableName`
4134    pub const VARIABLE_NAME: &str = "x ∈ R_n";
4135}
4136
4137pub mod term_b_7_lhs {
4138    /// `literalValue`
4139    pub const LITERAL_VALUE: &str = "or(x, or(y, z))";
4140}
4141
4142pub mod term_b_7_rhs {
4143    /// `literalValue`
4144    pub const LITERAL_VALUE: &str = "or(or(x, y), z)";
4145}
4146
4147pub mod term_b_7_for_all {
4148    /// `variableName`
4149    pub const VARIABLE_NAME: &str = "x, y, z ∈ R_n";
4150}
4151
4152pub mod term_b_8_lhs {
4153    /// `literalValue`
4154    pub const LITERAL_VALUE: &str = "or(x, 0)";
4155}
4156
4157pub mod term_b_8_rhs {
4158    /// `literalValue`
4159    pub const LITERAL_VALUE: &str = "x";
4160}
4161
4162pub mod term_b_8_for_all {
4163    /// `variableName`
4164    pub const VARIABLE_NAME: &str = "x ∈ R_n";
4165}
4166
4167pub mod term_b_9_lhs {
4168    /// `literalValue`
4169    pub const LITERAL_VALUE: &str = "and(x, or(x, y))";
4170}
4171
4172pub mod term_b_9_rhs {
4173    /// `literalValue`
4174    pub const LITERAL_VALUE: &str = "x";
4175}
4176
4177pub mod term_b_9_for_all {
4178    /// `variableName`
4179    pub const VARIABLE_NAME: &str = "x, y ∈ R_n";
4180}
4181
4182pub mod term_b_10_lhs {
4183    /// `literalValue`
4184    pub const LITERAL_VALUE: &str = "and(x, or(y, z))";
4185}
4186
4187pub mod term_b_10_rhs {
4188    /// `literalValue`
4189    pub const LITERAL_VALUE: &str = "or(and(x, y), and(x, z))";
4190}
4191
4192pub mod term_b_10_for_all {
4193    /// `variableName`
4194    pub const VARIABLE_NAME: &str = "x, y, z ∈ R_n";
4195}
4196
4197pub mod term_b_11_lhs {
4198    /// `literalValue`
4199    pub const LITERAL_VALUE: &str = "bnot(and(x, y))";
4200}
4201
4202pub mod term_b_11_rhs {
4203    /// `literalValue`
4204    pub const LITERAL_VALUE: &str = "or(bnot(x), bnot(y))";
4205}
4206
4207pub mod term_b_11_for_all {
4208    /// `variableName`
4209    pub const VARIABLE_NAME: &str = "x, y ∈ R_n";
4210}
4211
4212pub mod term_b_12_lhs {
4213    /// `literalValue`
4214    pub const LITERAL_VALUE: &str = "bnot(or(x, y))";
4215}
4216
4217pub mod term_b_12_rhs {
4218    /// `literalValue`
4219    pub const LITERAL_VALUE: &str = "and(bnot(x), bnot(y))";
4220}
4221
4222pub mod term_b_12_for_all {
4223    /// `variableName`
4224    pub const VARIABLE_NAME: &str = "x, y ∈ R_n";
4225}
4226
4227pub mod term_b_13_lhs {
4228    /// `literalValue`
4229    pub const LITERAL_VALUE: &str = "bnot(bnot(x))";
4230}
4231
4232pub mod term_b_13_rhs {
4233    /// `literalValue`
4234    pub const LITERAL_VALUE: &str = "x";
4235}
4236
4237pub mod term_b_13_for_all {
4238    /// `variableName`
4239    pub const VARIABLE_NAME: &str = "x ∈ R_n";
4240}
4241
4242pub mod term_x_1_lhs {
4243    /// `literalValue`
4244    pub const LITERAL_VALUE: &str = "neg(x)";
4245}
4246
4247pub mod term_x_1_rhs {
4248    /// `literalValue`
4249    pub const LITERAL_VALUE: &str = "sub(0, x)";
4250}
4251
4252pub mod term_x_1_for_all {
4253    /// `variableName`
4254    pub const VARIABLE_NAME: &str = "x ∈ R_n";
4255}
4256
4257pub mod term_x_2_lhs {
4258    /// `literalValue`
4259    pub const LITERAL_VALUE: &str = "bnot(x)";
4260}
4261
4262pub mod term_x_2_rhs {
4263    /// `literalValue`
4264    pub const LITERAL_VALUE: &str = "xor(x, 2^n - 1)";
4265}
4266
4267pub mod term_x_2_for_all {
4268    /// `variableName`
4269    pub const VARIABLE_NAME: &str = "x ∈ R_n";
4270}
4271
4272pub mod term_x_3_lhs {
4273    /// `literalValue`
4274    pub const LITERAL_VALUE: &str = "succ(x)";
4275}
4276
4277pub mod term_x_3_rhs {
4278    /// `literalValue`
4279    pub const LITERAL_VALUE: &str = "add(x, 1)";
4280}
4281
4282pub mod term_x_3_for_all {
4283    /// `variableName`
4284    pub const VARIABLE_NAME: &str = "x ∈ R_n";
4285}
4286
4287pub mod term_x_4_lhs {
4288    /// `literalValue`
4289    pub const LITERAL_VALUE: &str = "pred(x)";
4290}
4291
4292pub mod term_x_4_rhs {
4293    /// `literalValue`
4294    pub const LITERAL_VALUE: &str = "sub(x, 1)";
4295}
4296
4297pub mod term_x_4_for_all {
4298    /// `variableName`
4299    pub const VARIABLE_NAME: &str = "x ∈ R_n";
4300}
4301
4302pub mod term_x_5_lhs {
4303    /// `literalValue`
4304    pub const LITERAL_VALUE: &str = "neg(x)";
4305}
4306
4307pub mod term_x_5_rhs {
4308    /// `literalValue`
4309    pub const LITERAL_VALUE: &str = "add(bnot(x), 1)";
4310}
4311
4312pub mod term_x_5_for_all {
4313    /// `variableName`
4314    pub const VARIABLE_NAME: &str = "x ∈ R_n";
4315}
4316
4317pub mod term_x_6_lhs {
4318    /// `literalValue`
4319    pub const LITERAL_VALUE: &str = "bnot(x)";
4320}
4321
4322pub mod term_x_6_rhs {
4323    /// `literalValue`
4324    pub const LITERAL_VALUE: &str = "pred(neg(x))";
4325}
4326
4327pub mod term_x_6_for_all {
4328    /// `variableName`
4329    pub const VARIABLE_NAME: &str = "x ∈ R_n";
4330}
4331
4332pub mod term_x_7_lhs {
4333    /// `literalValue`
4334    pub const LITERAL_VALUE: &str = "xor(x, y)";
4335}
4336
4337pub mod term_x_7_rhs {
4338    /// `literalValue`
4339    pub const LITERAL_VALUE: &str = "add(x, y) - 2 * and(x, y)";
4340}
4341
4342pub mod term_x_7_for_all {
4343    /// `variableName`
4344    pub const VARIABLE_NAME: &str = "x, y ∈ Z (before mod)";
4345}
4346
4347pub mod term_d_1_lhs {
4348    /// `literalValue`
4349    pub const LITERAL_VALUE: &str = "succ^{2^n}(x)";
4350}
4351
4352pub mod term_d_1_rhs {
4353    /// `literalValue`
4354    pub const LITERAL_VALUE: &str = "x";
4355}
4356
4357pub mod term_d_1_for_all {
4358    /// `variableName`
4359    pub const VARIABLE_NAME: &str = "x ∈ R_n";
4360}
4361
4362pub mod term_d_3_lhs {
4363    /// `literalValue`
4364    pub const LITERAL_VALUE: &str = "neg(succ(neg(x)))";
4365}
4366
4367pub mod term_d_3_rhs {
4368    /// `literalValue`
4369    pub const LITERAL_VALUE: &str = "pred(x)";
4370}
4371
4372pub mod term_d_3_for_all {
4373    /// `variableName`
4374    pub const VARIABLE_NAME: &str = "x ∈ R_n";
4375}
4376
4377pub mod term_d_4_lhs {
4378    /// `literalValue`
4379    pub const LITERAL_VALUE: &str = "bnot(neg(x))";
4380}
4381
4382pub mod term_d_4_rhs {
4383    /// `literalValue`
4384    pub const LITERAL_VALUE: &str = "pred(x)";
4385}
4386
4387pub mod term_d_4_for_all {
4388    /// `variableName`
4389    pub const VARIABLE_NAME: &str = "x ∈ R_n";
4390}
4391
4392pub mod term_d_5_lhs {
4393    /// `literalValue`
4394    pub const LITERAL_VALUE: &str = "D_{2^n}";
4395}
4396
4397pub mod term_d_5_rhs {
4398    /// `literalValue`
4399    pub const LITERAL_VALUE: &str = "{succ^k, neg ∘ succ^k : 0 ≤ k < 2^n}";
4400}
4401
4402pub mod term_d_5_for_all {
4403    /// `variableName`
4404    pub const VARIABLE_NAME: &str = "n ≥ 1";
4405}
4406
4407pub mod term_u_1_lhs {
4408    /// `literalValue`
4409    pub const LITERAL_VALUE: &str = "R_n×";
4410}
4411
4412pub mod term_u_1_rhs {
4413    /// `literalValue`
4414    pub const LITERAL_VALUE: &str = "Z/2 × Z/2^{n-2}";
4415}
4416
4417pub mod term_u_1_for_all {
4418    /// `variableName`
4419    pub const VARIABLE_NAME: &str = "n ≥ 3";
4420}
4421
4422pub mod term_u_2_lhs {
4423    /// `literalValue`
4424    pub const LITERAL_VALUE: &str = "R_1× ≅ {1}; R_2× ≅ Z/2";
4425}
4426
4427pub mod term_u_2_rhs {
4428    /// `literalValue`
4429    pub const LITERAL_VALUE: &str = "special cases for small n";
4430}
4431
4432pub mod term_u_2_for_all {
4433    /// `variableName`
4434    pub const VARIABLE_NAME: &str = "n ∈ {1, 2}";
4435}
4436
4437pub mod term_u_3_lhs {
4438    /// `literalValue`
4439    pub const LITERAL_VALUE: &str = "ord(u)";
4440}
4441
4442pub mod term_u_3_rhs {
4443    /// `literalValue`
4444    pub const LITERAL_VALUE: &str = "lcm(ord((-1)^a), ord(3^b))";
4445}
4446
4447pub mod term_u_3_for_all {
4448    /// `variableName`
4449    pub const VARIABLE_NAME: &str = "u = (-1)^a · 3^b ∈ R_n×";
4450}
4451
4452pub mod term_u_4_lhs {
4453    /// `literalValue`
4454    pub const LITERAL_VALUE: &str = "ord_g(2)";
4455}
4456
4457pub mod term_u_4_rhs {
4458    /// `literalValue`
4459    pub const LITERAL_VALUE: &str = "divides φ(g)";
4460}
4461
4462pub mod term_u_4_for_all {
4463    /// `variableName`
4464    pub const VARIABLE_NAME: &str = "g odd";
4465}
4466
4467pub mod term_u_5_lhs {
4468    /// `literalValue`
4469    pub const LITERAL_VALUE: &str = "step_g";
4470}
4471
4472pub mod term_u_5_rhs {
4473    /// `literalValue`
4474    pub const LITERAL_VALUE: &str = "2 * ((g - (2^n mod g)) mod g) + 1";
4475}
4476
4477pub mod term_u_5_for_all {
4478    /// `variableName`
4479    pub const VARIABLE_NAME: &str = "g odd, g > 1";
4480}
4481
4482pub mod term_ag_1_lhs {
4483    /// `literalValue`
4484    pub const LITERAL_VALUE: &str = "μ_u";
4485}
4486
4487pub mod term_ag_1_rhs {
4488    /// `literalValue`
4489    pub const LITERAL_VALUE: &str = "∉ D_{2^n}";
4490}
4491
4492pub mod term_ag_1_for_all {
4493    /// `variableName`
4494    pub const VARIABLE_NAME: &str = "u ∈ R_n×, u ≠ ±1";
4495}
4496
4497pub mod term_ag_2_lhs {
4498    /// `literalValue`
4499    pub const LITERAL_VALUE: &str = "Aff(R_n)";
4500}
4501
4502pub mod term_ag_2_rhs {
4503    /// `literalValue`
4504    pub const LITERAL_VALUE: &str = "R_n× ⋉ R_n";
4505}
4506
4507pub mod term_ag_2_for_all {
4508    /// `variableName`
4509    pub const VARIABLE_NAME: &str = "n ≥ 1";
4510}
4511
4512pub mod term_ag_3_lhs {
4513    /// `literalValue`
4514    pub const LITERAL_VALUE: &str = "|Aff(R_n)|";
4515}
4516
4517pub mod term_ag_3_rhs {
4518    /// `literalValue`
4519    pub const LITERAL_VALUE: &str = "2^{2n-1}";
4520}
4521
4522pub mod term_ag_3_for_all {
4523    /// `variableName`
4524    pub const VARIABLE_NAME: &str = "n ≥ 1";
4525}
4526
4527pub mod term_ag_4_lhs {
4528    /// `literalValue`
4529    pub const LITERAL_VALUE: &str = "D_{2^n}";
4530}
4531
4532pub mod term_ag_4_rhs {
4533    /// `literalValue`
4534    pub const LITERAL_VALUE: &str = "⊂ Aff(R_n), u ∈ {±1}";
4535}
4536
4537pub mod term_ag_4_for_all {
4538    /// `variableName`
4539    pub const VARIABLE_NAME: &str = "n ≥ 1";
4540}
4541
4542pub mod term_ca_1_lhs {
4543    /// `literalValue`
4544    pub const LITERAL_VALUE: &str = "add(x,y)_k";
4545}
4546
4547pub mod term_ca_1_rhs {
4548    /// `literalValue`
4549    pub const LITERAL_VALUE: &str = "xor(x_k, xor(y_k, c_k(x,y)))";
4550}
4551
4552pub mod term_ca_1_for_all {
4553    /// `variableName`
4554    pub const VARIABLE_NAME: &str = "x, y ∈ R_n, 0 ≤ k < n";
4555}
4556
4557pub mod term_ca_2_lhs {
4558    /// `literalValue`
4559    pub const LITERAL_VALUE: &str = "c_{k+1}(x,y)";
4560}
4561
4562pub mod term_ca_2_rhs {
4563    /// `literalValue`
4564    pub const LITERAL_VALUE: &str = "or(and(x_k,y_k), and(xor(x_k,y_k), c_k))";
4565}
4566
4567pub mod term_ca_2_for_all {
4568    /// `variableName`
4569    pub const VARIABLE_NAME: &str = "x, y ∈ R_n";
4570}
4571
4572pub mod term_ca_3_lhs {
4573    /// `literalValue`
4574    pub const LITERAL_VALUE: &str = "c(x, y)";
4575}
4576
4577pub mod term_ca_3_rhs {
4578    /// `literalValue`
4579    pub const LITERAL_VALUE: &str = "c(y, x)";
4580}
4581
4582pub mod term_ca_3_for_all {
4583    /// `variableName`
4584    pub const VARIABLE_NAME: &str = "x, y ∈ R_n";
4585}
4586
4587pub mod term_ca_4_lhs {
4588    /// `literalValue`
4589    pub const LITERAL_VALUE: &str = "c(x, 0)";
4590}
4591
4592pub mod term_ca_4_rhs {
4593    /// `literalValue`
4594    pub const LITERAL_VALUE: &str = "0";
4595}
4596
4597pub mod term_ca_4_for_all {
4598    /// `variableName`
4599    pub const VARIABLE_NAME: &str = "x ∈ R_n, all positions";
4600}
4601
4602pub mod term_ca_5_lhs {
4603    /// `literalValue`
4604    pub const LITERAL_VALUE: &str = "c(x, neg(x))_k";
4605}
4606
4607pub mod term_ca_5_rhs {
4608    /// `literalValue`
4609    pub const LITERAL_VALUE: &str = "1";
4610}
4611
4612pub mod term_ca_5_for_all {
4613    /// `variableName`
4614    pub const VARIABLE_NAME: &str = "x ∈ R_n, k > v_2(x)";
4615}
4616
4617pub mod term_ca_6_lhs {
4618    /// `literalValue`
4619    pub const LITERAL_VALUE: &str = "d_Δ(x, y) > 0";
4620}
4621
4622pub mod term_ca_6_rhs {
4623    /// `literalValue`
4624    pub const LITERAL_VALUE: &str = "∃ k : c_k(x,y) = 1";
4625}
4626
4627pub mod term_ca_6_for_all {
4628    /// `variableName`
4629    pub const VARIABLE_NAME: &str = "x, y ∈ R_n";
4630}
4631
4632pub mod term_c_1_lhs {
4633    /// `literalValue`
4634    pub const LITERAL_VALUE: &str = "pins(compose(A, B))";
4635}
4636
4637pub mod term_c_1_rhs {
4638    /// `literalValue`
4639    pub const LITERAL_VALUE: &str = "pins(A) ∪ pins(B)";
4640}
4641
4642pub mod term_c_1_for_all {
4643    /// `variableName`
4644    pub const VARIABLE_NAME: &str = "constraints A, B";
4645}
4646
4647pub mod term_c_2_lhs {
4648    /// `literalValue`
4649    pub const LITERAL_VALUE: &str = "compose(A, B)";
4650}
4651
4652pub mod term_c_2_rhs {
4653    /// `literalValue`
4654    pub const LITERAL_VALUE: &str = "compose(B, A)";
4655}
4656
4657pub mod term_c_2_for_all {
4658    /// `variableName`
4659    pub const VARIABLE_NAME: &str = "constraints A, B";
4660}
4661
4662pub mod term_c_3_lhs {
4663    /// `literalValue`
4664    pub const LITERAL_VALUE: &str = "compose(compose(A,B), C)";
4665}
4666
4667pub mod term_c_3_rhs {
4668    /// `literalValue`
4669    pub const LITERAL_VALUE: &str = "compose(A, compose(B,C))";
4670}
4671
4672pub mod term_c_3_for_all {
4673    /// `variableName`
4674    pub const VARIABLE_NAME: &str = "constraints A, B, C";
4675}
4676
4677pub mod term_c_4_lhs {
4678    /// `literalValue`
4679    pub const LITERAL_VALUE: &str = "compose(A, A)";
4680}
4681
4682pub mod term_c_4_rhs {
4683    /// `literalValue`
4684    pub const LITERAL_VALUE: &str = "A";
4685}
4686
4687pub mod term_c_4_for_all {
4688    /// `variableName`
4689    pub const VARIABLE_NAME: &str = "constraint A";
4690}
4691
4692pub mod term_c_5_lhs {
4693    /// `literalValue`
4694    pub const LITERAL_VALUE: &str = "compose(A, ε)";
4695}
4696
4697pub mod term_c_5_rhs {
4698    /// `literalValue`
4699    pub const LITERAL_VALUE: &str = "A";
4700}
4701
4702pub mod term_c_5_for_all {
4703    /// `variableName`
4704    pub const VARIABLE_NAME: &str = "constraint A, identity ε";
4705}
4706
4707pub mod term_c_6_lhs {
4708    /// `literalValue`
4709    pub const LITERAL_VALUE: &str = "compose(A, Ω)";
4710}
4711
4712pub mod term_c_6_rhs {
4713    /// `literalValue`
4714    pub const LITERAL_VALUE: &str = "Ω";
4715}
4716
4717pub mod term_c_6_for_all {
4718    /// `variableName`
4719    pub const VARIABLE_NAME: &str = "constraint A, annihilator Ω";
4720}
4721
4722pub mod term_cdi_lhs {
4723    /// `literalValue`
4724    pub const LITERAL_VALUE: &str = "carry(residue(T))";
4725}
4726
4727pub mod term_cdi_rhs {
4728    /// `literalValue`
4729    pub const LITERAL_VALUE: &str = "depth(T)";
4730}
4731
4732pub mod term_cdi_for_all {
4733    /// `variableName`
4734    pub const VARIABLE_NAME: &str = "T ∈ T_n";
4735}
4736
4737pub mod term_cl_1_lhs {
4738    /// `literalValue`
4739    pub const LITERAL_VALUE: &str = "Constraint/≡";
4740}
4741
4742pub mod term_cl_1_rhs {
4743    /// `literalValue`
4744    pub const LITERAL_VALUE: &str = "2^{[n]}";
4745}
4746
4747pub mod term_cl_1_for_all {
4748    /// `variableName`
4749    pub const VARIABLE_NAME: &str = "constraint equivalence classes";
4750}
4751
4752pub mod term_cl_2_lhs {
4753    /// `literalValue`
4754    pub const LITERAL_VALUE: &str = "A ∨ B";
4755}
4756
4757pub mod term_cl_2_rhs {
4758    /// `literalValue`
4759    pub const LITERAL_VALUE: &str = "compose(A, B)";
4760}
4761
4762pub mod term_cl_2_for_all {
4763    /// `variableName`
4764    pub const VARIABLE_NAME: &str = "constraints A, B";
4765}
4766
4767pub mod term_cl_3_lhs {
4768    /// `literalValue`
4769    pub const LITERAL_VALUE: &str = "pins(A ∧ B)";
4770}
4771
4772pub mod term_cl_3_rhs {
4773    /// `literalValue`
4774    pub const LITERAL_VALUE: &str = "pins(A) ∩ pins(B)";
4775}
4776
4777pub mod term_cl_3_for_all {
4778    /// `variableName`
4779    pub const VARIABLE_NAME: &str = "constraints A, B";
4780}
4781
4782pub mod term_cl_4_lhs {
4783    /// `literalValue`
4784    pub const LITERAL_VALUE: &str = "(A ∨ B) ∧ C";
4785}
4786
4787pub mod term_cl_4_rhs {
4788    /// `literalValue`
4789    pub const LITERAL_VALUE: &str = "(A ∧ C) ∨ (B ∧ C)";
4790}
4791
4792pub mod term_cl_4_for_all {
4793    /// `variableName`
4794    pub const VARIABLE_NAME: &str = "constraints A, B, C";
4795}
4796
4797pub mod term_cl_5_lhs {
4798    /// `literalValue`
4799    pub const LITERAL_VALUE: &str = "A ∧ A̅ = ε, A ∨ A̅ = Ω";
4800}
4801
4802pub mod term_cl_5_rhs {
4803    /// `literalValue`
4804    pub const LITERAL_VALUE: &str = "∃ A̅ (complement)";
4805}
4806
4807pub mod term_cl_5_for_all {
4808    /// `variableName`
4809    pub const VARIABLE_NAME: &str = "constraint A";
4810}
4811
4812pub mod term_cm_1_lhs {
4813    /// `literalValue`
4814    pub const LITERAL_VALUE: &str = "C_i redundant in {C_1,...,C_k}";
4815}
4816
4817pub mod term_cm_1_rhs {
4818    /// `literalValue`
4819    pub const LITERAL_VALUE: &str = "pins(C_i) ⊆ ∪_{j≠i} pins(C_j)";
4820}
4821
4822pub mod term_cm_1_for_all {
4823    /// `variableName`
4824    pub const VARIABLE_NAME: &str = "constraint set {C_1,...,C_k}";
4825}
4826
4827pub mod term_cm_2_lhs {
4828    /// `literalValue`
4829    pub const LITERAL_VALUE: &str = "minimal cover";
4830}
4831
4832pub mod term_cm_2_rhs {
4833    /// `literalValue`
4834    pub const LITERAL_VALUE: &str = "irredundant sub-collection (greedy removal)";
4835}
4836
4837pub mod term_cm_2_for_all {
4838    /// `variableName`
4839    pub const VARIABLE_NAME: &str = "CompositeConstraint";
4840}
4841
4842pub mod term_cm_3_lhs {
4843    /// `literalValue`
4844    pub const LITERAL_VALUE: &str = "min constraints to cover n sites";
4845}
4846
4847pub mod term_cm_3_rhs {
4848    /// `literalValue`
4849    pub const LITERAL_VALUE: &str = "⌈n / max_k pins_per_constraint_k⌉";
4850}
4851
4852pub mod term_cm_3_for_all {
4853    /// `variableName`
4854    pub const VARIABLE_NAME: &str = "n sites, constraint set";
4855}
4856
4857pub mod term_cr_1_lhs {
4858    /// `literalValue`
4859    pub const LITERAL_VALUE: &str = "cost(ResidueConstraint(m, r))";
4860}
4861
4862pub mod term_cr_1_rhs {
4863    /// `literalValue`
4864    pub const LITERAL_VALUE: &str = "step_m = 2 × ((−2^n) mod m) + 1";
4865}
4866
4867pub mod term_cr_1_for_all {
4868    /// `variableName`
4869    pub const VARIABLE_NAME: &str = "ResidueConstraint";
4870}
4871
4872pub mod term_cr_2_lhs {
4873    /// `literalValue`
4874    pub const LITERAL_VALUE: &str = "cost(CarryConstraint(p))";
4875}
4876
4877pub mod term_cr_2_rhs {
4878    /// `literalValue`
4879    pub const LITERAL_VALUE: &str = "popcount(p)";
4880}
4881
4882pub mod term_cr_2_for_all {
4883    /// `variableName`
4884    pub const VARIABLE_NAME: &str = "CarryConstraint";
4885}
4886
4887pub mod term_cr_3_lhs {
4888    /// `literalValue`
4889    pub const LITERAL_VALUE: &str = "cost(DepthConstraint(d_min, d_max))";
4890}
4891
4892pub mod term_cr_3_rhs {
4893    /// `literalValue`
4894    pub const LITERAL_VALUE: &str = "cost(residue) + cost(carry)";
4895}
4896
4897pub mod term_cr_3_for_all {
4898    /// `variableName`
4899    pub const VARIABLE_NAME: &str = "DepthConstraint";
4900}
4901
4902pub mod term_cr_4_lhs {
4903    /// `literalValue`
4904    pub const LITERAL_VALUE: &str = "cost(compose(A, B))";
4905}
4906
4907pub mod term_cr_4_rhs {
4908    /// `literalValue`
4909    pub const LITERAL_VALUE: &str = "≤ cost(A) + cost(B)";
4910}
4911
4912pub mod term_cr_4_for_all {
4913    /// `variableName`
4914    pub const VARIABLE_NAME: &str = "constraints A, B";
4915}
4916
4917pub mod term_cr_5_lhs {
4918    /// `literalValue`
4919    pub const LITERAL_VALUE: &str = "optimal resolution order";
4920}
4921
4922pub mod term_cr_5_rhs {
4923    /// `literalValue`
4924    pub const LITERAL_VALUE: &str = "increasing cost order";
4925}
4926
4927pub mod term_cr_5_for_all {
4928    /// `variableName`
4929    pub const VARIABLE_NAME: &str = "constraint set";
4930}
4931
4932pub mod term_f_1_lhs {
4933    /// `literalValue`
4934    pub const LITERAL_VALUE: &str = "pinned site";
4935}
4936
4937pub mod term_f_1_rhs {
4938    /// `literalValue`
4939    pub const LITERAL_VALUE: &str = "cannot be unpinned";
4940}
4941
4942pub mod term_f_1_for_all {
4943    /// `variableName`
4944    pub const VARIABLE_NAME: &str = "SiteIndex";
4945}
4946
4947pub mod term_f_2_lhs {
4948    /// `literalValue`
4949    pub const LITERAL_VALUE: &str = "pin operations to close";
4950}
4951
4952pub mod term_f_2_rhs {
4953    /// `literalValue`
4954    pub const LITERAL_VALUE: &str = "≤ n";
4955}
4956
4957pub mod term_f_2_for_all {
4958    /// `variableName`
4959    pub const VARIABLE_NAME: &str = "FreeRank";
4960}
4961
4962pub mod term_f_3_lhs {
4963    /// `literalValue`
4964    pub const LITERAL_VALUE: &str = "pinnedCount + freeRank";
4965}
4966
4967pub mod term_f_3_rhs {
4968    /// `literalValue`
4969    pub const LITERAL_VALUE: &str = "totalSites = n";
4970}
4971
4972pub mod term_f_3_for_all {
4973    /// `variableName`
4974    pub const VARIABLE_NAME: &str = "FreeRank";
4975}
4976
4977pub mod term_f_4_lhs {
4978    /// `literalValue`
4979    pub const LITERAL_VALUE: &str = "isClosed";
4980}
4981
4982pub mod term_f_4_rhs {
4983    /// `literalValue`
4984    pub const LITERAL_VALUE: &str = "freeRank = 0 ⇔ pinnedCount = n";
4985}
4986
4987pub mod term_f_4_for_all {
4988    /// `variableName`
4989    pub const VARIABLE_NAME: &str = "FreeRank";
4990}
4991
4992pub mod term_fl_1_lhs {
4993    /// `literalValue`
4994    pub const LITERAL_VALUE: &str = "⊥";
4995}
4996
4997pub mod term_fl_1_rhs {
4998    /// `literalValue`
4999    pub const LITERAL_VALUE: &str = "all sites free (freeRank = n)";
5000}
5001
5002pub mod term_fl_1_for_all {
5003    /// `variableName`
5004    pub const VARIABLE_NAME: &str = "FreeRank lattice";
5005}
5006
5007pub mod term_fl_2_lhs {
5008    /// `literalValue`
5009    pub const LITERAL_VALUE: &str = "⊤";
5010}
5011
5012pub mod term_fl_2_rhs {
5013    /// `literalValue`
5014    pub const LITERAL_VALUE: &str = "all sites pinned (pinnedCount = n)";
5015}
5016
5017pub mod term_fl_2_for_all {
5018    /// `variableName`
5019    pub const VARIABLE_NAME: &str = "FreeRank lattice";
5020}
5021
5022pub mod term_fl_3_lhs {
5023    /// `literalValue`
5024    pub const LITERAL_VALUE: &str = "join(S₁, S₂)";
5025}
5026
5027pub mod term_fl_3_rhs {
5028    /// `literalValue`
5029    pub const LITERAL_VALUE: &str = "union of pinnings from S₁ and S₂";
5030}
5031
5032pub mod term_fl_3_for_all {
5033    /// `variableName`
5034    pub const VARIABLE_NAME: &str = "FreeRank states S₁, S₂";
5035}
5036
5037pub mod term_fl_4_lhs {
5038    /// `literalValue`
5039    pub const LITERAL_VALUE: &str = "lattice height";
5040}
5041
5042pub mod term_fl_4_rhs {
5043    /// `literalValue`
5044    pub const LITERAL_VALUE: &str = "n";
5045}
5046
5047pub mod term_fl_4_for_all {
5048    /// `variableName`
5049    pub const VARIABLE_NAME: &str = "FreeRank lattice";
5050}
5051
5052pub mod term_fpm_1_lhs {
5053    /// `literalValue`
5054    pub const LITERAL_VALUE: &str = "x ∈ Unit";
5055}
5056
5057pub mod term_fpm_1_rhs {
5058    /// `literalValue`
5059    pub const LITERAL_VALUE: &str = "site_0(x) = 1 (x is odd)";
5060}
5061
5062pub mod term_fpm_1_for_all {
5063    /// `variableName`
5064    pub const VARIABLE_NAME: &str = "x ∈ R_n";
5065}
5066
5067pub mod term_fpm_2_lhs {
5068    /// `literalValue`
5069    pub const LITERAL_VALUE: &str = "x ∈ Exterior";
5070}
5071
5072pub mod term_fpm_2_rhs {
5073    /// `literalValue`
5074    pub const LITERAL_VALUE: &str = "x ∉ carrier(T)";
5075}
5076
5077pub mod term_fpm_2_for_all {
5078    /// `variableName`
5079    pub const VARIABLE_NAME: &str = "x ∈ R_n, type T";
5080}
5081
5082pub mod term_fpm_3_lhs {
5083    /// `literalValue`
5084    pub const LITERAL_VALUE: &str = "x ∈ Irreducible";
5085}
5086
5087pub mod term_fpm_3_rhs {
5088    /// `literalValue`
5089    pub const LITERAL_VALUE: &str = "x ∉ Unit ∪ Exterior AND no non-trivial factorization";
5090}
5091
5092pub mod term_fpm_3_for_all {
5093    /// `variableName`
5094    pub const VARIABLE_NAME: &str = "x ∈ R_n";
5095}
5096
5097pub mod term_fpm_4_lhs {
5098    /// `literalValue`
5099    pub const LITERAL_VALUE: &str = "x ∈ Reducible";
5100}
5101
5102pub mod term_fpm_4_rhs {
5103    /// `literalValue`
5104    pub const LITERAL_VALUE: &str = "x ∉ Unit ∪ Exterior ∪ Irreducible";
5105}
5106
5107pub mod term_fpm_4_for_all {
5108    /// `variableName`
5109    pub const VARIABLE_NAME: &str = "x ∈ R_n";
5110}
5111
5112pub mod term_fpm_5_lhs {
5113    /// `literalValue`
5114    pub const LITERAL_VALUE: &str = "x = 2^{v(x)} ⋅ u";
5115}
5116
5117pub mod term_fpm_5_rhs {
5118    /// `literalValue`
5119    pub const LITERAL_VALUE: &str = "u odd, v(x) = min position of 1-bit";
5120}
5121
5122pub mod term_fpm_5_for_all {
5123    /// `variableName`
5124    pub const VARIABLE_NAME: &str = "x ∈ R_n";
5125}
5126
5127pub mod term_fpm_6_lhs {
5128    /// `literalValue`
5129    pub const LITERAL_VALUE: &str = "|{x: v(x) = k}|";
5130}
5131
5132pub mod term_fpm_6_rhs {
5133    /// `literalValue`
5134    pub const LITERAL_VALUE: &str = "2^{n−k−1} for 0 < k < n; 1 for k = n";
5135}
5136
5137pub mod term_fpm_6_for_all {
5138    /// `variableName`
5139    pub const VARIABLE_NAME: &str = "R_n";
5140}
5141
5142pub mod term_fpm_7_lhs {
5143    /// `literalValue`
5144    pub const LITERAL_VALUE: &str = "base type partition";
5145}
5146
5147pub mod term_fpm_7_rhs {
5148    /// `literalValue`
5149    pub const LITERAL_VALUE: &str = "|Unit| = 2^{n−1}; |Irr| = 2^{n−2}; |Red| = 2^{n−2}";
5150}
5151
5152pub mod term_fpm_7_for_all {
5153    /// `variableName`
5154    pub const VARIABLE_NAME: &str = "R_n, n ≥ 3";
5155}
5156
5157pub mod term_fs_1_lhs {
5158    /// `literalValue`
5159    pub const LITERAL_VALUE: &str = "site_k(x)";
5160}
5161
5162pub mod term_fs_1_rhs {
5163    /// `literalValue`
5164    pub const LITERAL_VALUE: &str = "(x >> k) AND 1";
5165}
5166
5167pub mod term_fs_1_for_all {
5168    /// `variableName`
5169    pub const VARIABLE_NAME: &str = "x ∈ R_n, 0 ≤ k < n";
5170}
5171
5172pub mod term_fs_2_lhs {
5173    /// `literalValue`
5174    pub const LITERAL_VALUE: &str = "site_0(x)";
5175}
5176
5177pub mod term_fs_2_rhs {
5178    /// `literalValue`
5179    pub const LITERAL_VALUE: &str = "x mod 2 (parity)";
5180}
5181
5182pub mod term_fs_2_for_all {
5183    /// `variableName`
5184    pub const VARIABLE_NAME: &str = "x ∈ R_n";
5185}
5186
5187pub mod term_fs_3_lhs {
5188    /// `literalValue`
5189    pub const LITERAL_VALUE: &str = "site_k(x) given sites 0..k−1";
5190}
5191
5192pub mod term_fs_3_rhs {
5193    /// `literalValue`
5194    pub const LITERAL_VALUE: &str = "determines x mod 2^{k+1}";
5195}
5196
5197pub mod term_fs_3_for_all {
5198    /// `variableName`
5199    pub const VARIABLE_NAME: &str = "x ∈ R_n";
5200}
5201
5202pub mod term_fs_4_lhs {
5203    /// `literalValue`
5204    pub const LITERAL_VALUE: &str = "sites 0..k together";
5205}
5206
5207pub mod term_fs_4_rhs {
5208    /// `literalValue`
5209    pub const LITERAL_VALUE: &str = "determine x mod 2^{k+1}";
5210}
5211
5212pub mod term_fs_4_for_all {
5213    /// `variableName`
5214    pub const VARIABLE_NAME: &str = "x ∈ R_n";
5215}
5216
5217pub mod term_fs_5_lhs {
5218    /// `literalValue`
5219    pub const LITERAL_VALUE: &str = "all n sites";
5220}
5221
5222pub mod term_fs_5_rhs {
5223    /// `literalValue`
5224    pub const LITERAL_VALUE: &str = "determine x uniquely";
5225}
5226
5227pub mod term_fs_5_for_all {
5228    /// `variableName`
5229    pub const VARIABLE_NAME: &str = "x ∈ R_n";
5230}
5231
5232pub mod term_fs_6_lhs {
5233    /// `literalValue`
5234    pub const LITERAL_VALUE: &str = "stratum(x)";
5235}
5236
5237pub mod term_fs_6_rhs {
5238    /// `literalValue`
5239    pub const LITERAL_VALUE: &str = "v_2(x) = min{k : site_k(x) = 1}";
5240}
5241
5242pub mod term_fs_6_for_all {
5243    /// `variableName`
5244    pub const VARIABLE_NAME: &str = "x ∈ R_n";
5245}
5246
5247pub mod term_fs_7_lhs {
5248    /// `literalValue`
5249    pub const LITERAL_VALUE: &str = "depth(x)";
5250}
5251
5252pub mod term_fs_7_rhs {
5253    /// `literalValue`
5254    pub const LITERAL_VALUE: &str = "≤ v_2(x) for irreducible elements";
5255}
5256
5257pub mod term_fs_7_for_all {
5258    /// `variableName`
5259    pub const VARIABLE_NAME: &str = "x ∈ R_n, base type";
5260}
5261
5262pub mod term_re_1_lhs {
5263    /// `literalValue`
5264    pub const LITERAL_VALUE: &str = "Π_D(T)";
5265}
5266
5267pub mod term_re_1_rhs {
5268    /// `literalValue`
5269    pub const LITERAL_VALUE: &str = "Π_C(T) = Π_E(T)";
5270}
5271
5272pub mod term_re_1_for_all {
5273    /// `variableName`
5274    pub const VARIABLE_NAME: &str = "T ∈ T_n";
5275}
5276
5277pub mod term_ir_1_lhs {
5278    /// `literalValue`
5279    pub const LITERAL_VALUE: &str = "pinnedCount(state_{i+1})";
5280}
5281
5282pub mod term_ir_1_rhs {
5283    /// `literalValue`
5284    pub const LITERAL_VALUE: &str = "≥ pinnedCount(state_i)";
5285}
5286
5287pub mod term_ir_1_for_all {
5288    /// `variableName`
5289    pub const VARIABLE_NAME: &str = "resolution states";
5290}
5291
5292pub mod term_ir_2_lhs {
5293    /// `literalValue`
5294    pub const LITERAL_VALUE: &str = "iterations to converge";
5295}
5296
5297pub mod term_ir_2_rhs {
5298    /// `literalValue`
5299    pub const LITERAL_VALUE: &str = "≤ n";
5300}
5301
5302pub mod term_ir_2_for_all {
5303    /// `variableName`
5304    pub const VARIABLE_NAME: &str = "resolution loop";
5305}
5306
5307pub mod term_ir_3_lhs {
5308    /// `literalValue`
5309    pub const LITERAL_VALUE: &str = "convergenceRate";
5310}
5311
5312pub mod term_ir_3_rhs {
5313    /// `literalValue`
5314    pub const LITERAL_VALUE: &str = "pinnedCount / iterationCount";
5315}
5316
5317pub mod term_ir_3_for_all {
5318    /// `variableName`
5319    pub const VARIABLE_NAME: &str = "ResolutionState";
5320}
5321
5322pub mod term_ir_4_lhs {
5323    /// `literalValue`
5324    pub const LITERAL_VALUE: &str = "constraint set spans all sites";
5325}
5326
5327pub mod term_ir_4_rhs {
5328    /// `literalValue`
5329    pub const LITERAL_VALUE: &str = "loop terminates";
5330}
5331
5332pub mod term_ir_4_for_all {
5333    /// `variableName`
5334    pub const VARIABLE_NAME: &str = "complete constraint set";
5335}
5336
5337pub mod term_sf_1_lhs {
5338    /// `literalValue`
5339    pub const LITERAL_VALUE: &str = "n ≡ 0 (mod ord_g(2))";
5340}
5341
5342pub mod term_sf_1_rhs {
5343    /// `literalValue`
5344    pub const LITERAL_VALUE: &str = "factor g has optimal resolution at level n";
5345}
5346
5347pub mod term_sf_1_for_all {
5348    /// `variableName`
5349    pub const VARIABLE_NAME: &str = "factor g, quantum n";
5350}
5351
5352pub mod term_sf_2_lhs {
5353    /// `literalValue`
5354    pub const LITERAL_VALUE: &str = "constraints with smaller step_g";
5355}
5356
5357pub mod term_sf_2_rhs {
5358    /// `literalValue`
5359    pub const LITERAL_VALUE: &str = "are more constraining, apply first";
5360}
5361
5362pub mod term_sf_2_for_all {
5363    /// `variableName`
5364    pub const VARIABLE_NAME: &str = "constraint ordering";
5365}
5366
5367pub mod term_rd_1_lhs {
5368    /// `literalValue`
5369    pub const LITERAL_VALUE: &str = "same type T and constraint sequence";
5370}
5371
5372pub mod term_rd_1_rhs {
5373    /// `literalValue`
5374    pub const LITERAL_VALUE: &str = "unique resolved partition";
5375}
5376
5377pub mod term_rd_1_for_all {
5378    /// `variableName`
5379    pub const VARIABLE_NAME: &str = "T ∈ T_n, [C₁,...,Cₖ]";
5380}
5381
5382pub mod term_rd_2_lhs {
5383    /// `literalValue`
5384    pub const LITERAL_VALUE: &str = "complete constraint set, any order";
5385}
5386
5387pub mod term_rd_2_rhs {
5388    /// `literalValue`
5389    pub const LITERAL_VALUE: &str = "same final partition";
5390}
5391
5392pub mod term_rd_2_for_all {
5393    /// `variableName`
5394    pub const VARIABLE_NAME: &str = "closing constraint set";
5395}
5396
5397pub mod term_se_1_lhs {
5398    /// `literalValue`
5399    pub const LITERAL_VALUE: &str = "EvaluationResolver";
5400}
5401
5402pub mod term_se_1_rhs {
5403    /// `literalValue`
5404    pub const LITERAL_VALUE: &str = "directly computes set-theoretic partition";
5405}
5406
5407pub mod term_se_1_for_all {
5408    /// `variableName`
5409    pub const VARIABLE_NAME: &str = "T ∈ T_n";
5410}
5411
5412pub mod term_se_2_lhs {
5413    /// `literalValue`
5414    pub const LITERAL_VALUE: &str = "DihedralFactorizationResolver";
5415}
5416
5417pub mod term_se_2_rhs {
5418    /// `literalValue`
5419    pub const LITERAL_VALUE: &str = "orbit decomposition yields same partition";
5420}
5421
5422pub mod term_se_2_for_all {
5423    /// `variableName`
5424    pub const VARIABLE_NAME: &str = "T ∈ T_n";
5425}
5426
5427pub mod term_se_3_lhs {
5428    /// `literalValue`
5429    pub const LITERAL_VALUE: &str = "CanonicalFormResolver";
5430}
5431
5432pub mod term_se_3_rhs {
5433    /// `literalValue`
5434    pub const LITERAL_VALUE: &str = "confluent rewrite → same partition";
5435}
5436
5437pub mod term_se_3_for_all {
5438    /// `variableName`
5439    pub const VARIABLE_NAME: &str = "T ∈ T_n";
5440}
5441
5442pub mod term_se_4_lhs {
5443    /// `literalValue`
5444    pub const LITERAL_VALUE: &str = "Π_D(T) = Π_C(T) = Π_E(T)";
5445}
5446
5447pub mod term_se_4_rhs {
5448    /// `literalValue`
5449    pub const LITERAL_VALUE: &str = "all compute same set-theoretic partition";
5450}
5451
5452pub mod term_se_4_for_all {
5453    /// `variableName`
5454    pub const VARIABLE_NAME: &str = "T ∈ T_n";
5455}
5456
5457pub mod term_oo_1_lhs {
5458    /// `literalValue`
5459    pub const LITERAL_VALUE: &str = "benefit(C_i, S)";
5460}
5461
5462pub mod term_oo_1_rhs {
5463    /// `literalValue`
5464    pub const LITERAL_VALUE: &str = "|pins(C_i) ∖ S|";
5465}
5466
5467pub mod term_oo_1_for_all {
5468    /// `variableName`
5469    pub const VARIABLE_NAME: &str = "constraint C_i, pinned set S";
5470}
5471
5472pub mod term_oo_2_lhs {
5473    /// `literalValue`
5474    pub const LITERAL_VALUE: &str = "cost(C_i)";
5475}
5476
5477pub mod term_oo_2_rhs {
5478    /// `literalValue`
5479    pub const LITERAL_VALUE: &str = "step_{m_i} or popcount(p_i)";
5480}
5481
5482pub mod term_oo_2_for_all {
5483    /// `variableName`
5484    pub const VARIABLE_NAME: &str = "ResidueConstraint or CarryConstraint";
5485}
5486
5487pub mod term_oo_3_lhs {
5488    /// `literalValue`
5489    pub const LITERAL_VALUE: &str = "greedy selection";
5490}
5491
5492pub mod term_oo_3_rhs {
5493    /// `literalValue`
5494    pub const LITERAL_VALUE: &str = "argmax benefit(C_i, S) / cost(C_i)";
5495}
5496
5497pub mod term_oo_3_for_all {
5498    /// `variableName`
5499    pub const VARIABLE_NAME: &str = "each resolution step";
5500}
5501
5502pub mod term_oo_4_lhs {
5503    /// `literalValue`
5504    pub const LITERAL_VALUE: &str = "greedy approximation";
5505}
5506
5507pub mod term_oo_4_rhs {
5508    /// `literalValue`
5509    pub const LITERAL_VALUE: &str = "(1 − 1/e) ≈ 63% of optimal";
5510}
5511
5512pub mod term_oo_4_for_all {
5513    /// `variableName`
5514    pub const VARIABLE_NAME: &str = "weighted set cover";
5515}
5516
5517pub mod term_oo_5_lhs {
5518    /// `literalValue`
5519    pub const LITERAL_VALUE: &str = "equal cost tiebreaker";
5520}
5521
5522pub mod term_oo_5_rhs {
5523    /// `literalValue`
5524    pub const LITERAL_VALUE: &str = "prefer vertical (residue) before horizontal (carry)";
5525}
5526
5527pub mod term_oo_5_for_all {
5528    /// `variableName`
5529    pub const VARIABLE_NAME: &str = "cost-tied constraints";
5530}
5531
5532pub mod term_cb_1_lhs {
5533    /// `literalValue`
5534    pub const LITERAL_VALUE: &str = "min convergenceRate";
5535}
5536
5537pub mod term_cb_1_rhs {
5538    /// `literalValue`
5539    pub const LITERAL_VALUE: &str = "1 site per iteration";
5540}
5541
5542pub mod term_cb_1_for_all {
5543    /// `variableName`
5544    pub const VARIABLE_NAME: &str = "worst case";
5545}
5546
5547pub mod term_cb_2_lhs {
5548    /// `literalValue`
5549    pub const LITERAL_VALUE: &str = "max convergenceRate";
5550}
5551
5552pub mod term_cb_2_rhs {
5553    /// `literalValue`
5554    pub const LITERAL_VALUE: &str = "n sites in 1 iteration";
5555}
5556
5557pub mod term_cb_2_for_all {
5558    /// `variableName`
5559    pub const VARIABLE_NAME: &str = "best case";
5560}
5561
5562pub mod term_cb_3_lhs {
5563    /// `literalValue`
5564    pub const LITERAL_VALUE: &str = "expected rate (residue)";
5565}
5566
5567pub mod term_cb_3_rhs {
5568    /// `literalValue`
5569    pub const LITERAL_VALUE: &str = "⌊log_2(m)⌋ sites per constraint";
5570}
5571
5572pub mod term_cb_3_for_all {
5573    /// `variableName`
5574    pub const VARIABLE_NAME: &str = "ResidueConstraint(m, r)";
5575}
5576
5577pub mod term_cb_4_lhs {
5578    /// `literalValue`
5579    pub const LITERAL_VALUE: &str = "convergenceRate < 1 for 2 iterations";
5580}
5581
5582pub mod term_cb_4_rhs {
5583    /// `literalValue`
5584    pub const LITERAL_VALUE: &str = "constraint set may be insufficient";
5585}
5586
5587pub mod term_cb_4_for_all {
5588    /// `variableName`
5589    pub const VARIABLE_NAME: &str = "stall detection";
5590}
5591
5592pub mod term_cb_5_lhs {
5593    /// `literalValue`
5594    pub const LITERAL_VALUE: &str = "∪_i pins(C_i) = {0,...,n−1}";
5595}
5596
5597pub mod term_cb_5_rhs {
5598    /// `literalValue`
5599    pub const LITERAL_VALUE: &str = "constraint set closes budget";
5600}
5601
5602pub mod term_cb_5_for_all {
5603    /// `variableName`
5604    pub const VARIABLE_NAME: &str = "sufficiency criterion";
5605}
5606
5607pub mod term_cb_6_lhs {
5608    /// `literalValue`
5609    pub const LITERAL_VALUE: &str = "iterations for k constraints";
5610}
5611
5612pub mod term_cb_6_rhs {
5613    /// `literalValue`
5614    pub const LITERAL_VALUE: &str = "≤ min(k, n)";
5615}
5616
5617pub mod term_cb_6_for_all {
5618    /// `variableName`
5619    pub const VARIABLE_NAME: &str = "well-formed model";
5620}
5621
5622pub mod term_ob_m1_lhs {
5623    /// `literalValue`
5624    pub const LITERAL_VALUE: &str = "d_R(x, z)";
5625}
5626
5627pub mod term_ob_m1_rhs {
5628    /// `literalValue`
5629    pub const LITERAL_VALUE: &str = "≤ d_R(x, y) + d_R(y, z)";
5630}
5631
5632pub mod term_ob_m1_for_all {
5633    /// `variableName`
5634    pub const VARIABLE_NAME: &str = "x, y, z ∈ R_n";
5635}
5636
5637pub mod term_ob_m2_lhs {
5638    /// `literalValue`
5639    pub const LITERAL_VALUE: &str = "d_H(x, z)";
5640}
5641
5642pub mod term_ob_m2_rhs {
5643    /// `literalValue`
5644    pub const LITERAL_VALUE: &str = "≤ d_H(x, y) + d_H(y, z)";
5645}
5646
5647pub mod term_ob_m2_for_all {
5648    /// `variableName`
5649    pub const VARIABLE_NAME: &str = "x, y, z ∈ R_n";
5650}
5651
5652pub mod term_ob_m3_lhs {
5653    /// `literalValue`
5654    pub const LITERAL_VALUE: &str = "d_Δ(x, y)";
5655}
5656
5657pub mod term_ob_m3_rhs {
5658    /// `literalValue`
5659    pub const LITERAL_VALUE: &str = "|d_R(x, y) − d_H(x, y)|";
5660}
5661
5662pub mod term_ob_m3_for_all {
5663    /// `variableName`
5664    pub const VARIABLE_NAME: &str = "x, y ∈ R_n";
5665}
5666
5667pub mod term_ob_m4_lhs {
5668    /// `literalValue`
5669    pub const LITERAL_VALUE: &str = "d_R(neg(x), neg(y))";
5670}
5671
5672pub mod term_ob_m4_rhs {
5673    /// `literalValue`
5674    pub const LITERAL_VALUE: &str = "d_R(x, y)";
5675}
5676
5677pub mod term_ob_m4_for_all {
5678    /// `variableName`
5679    pub const VARIABLE_NAME: &str = "x, y ∈ R_n";
5680}
5681
5682pub mod term_ob_m5_lhs {
5683    /// `literalValue`
5684    pub const LITERAL_VALUE: &str = "d_H(bnot(x), bnot(y))";
5685}
5686
5687pub mod term_ob_m5_rhs {
5688    /// `literalValue`
5689    pub const LITERAL_VALUE: &str = "d_H(x, y)";
5690}
5691
5692pub mod term_ob_m5_for_all {
5693    /// `variableName`
5694    pub const VARIABLE_NAME: &str = "x, y ∈ R_n";
5695}
5696
5697pub mod term_ob_m6_lhs {
5698    /// `literalValue`
5699    pub const LITERAL_VALUE: &str = "d_R(succ(x), succ(y))";
5700}
5701
5702pub mod term_ob_m6_rhs {
5703    /// `literalValue`
5704    pub const LITERAL_VALUE: &str = "d_R(x, y) but d_H may differ";
5705}
5706
5707pub mod term_ob_m6_for_all {
5708    /// `variableName`
5709    pub const VARIABLE_NAME: &str = "x, y ∈ R_n";
5710}
5711
5712pub mod term_ob_c1_lhs {
5713    /// `literalValue`
5714    pub const LITERAL_VALUE: &str = "[neg, bnot](x)";
5715}
5716
5717pub mod term_ob_c1_rhs {
5718    /// `literalValue`
5719    pub const LITERAL_VALUE: &str = "2";
5720}
5721
5722pub mod term_ob_c1_for_all {
5723    /// `variableName`
5724    pub const VARIABLE_NAME: &str = "x ∈ R_n";
5725}
5726
5727pub mod term_ob_c2_lhs {
5728    /// `literalValue`
5729    pub const LITERAL_VALUE: &str = "[neg, add(•,k)](x)";
5730}
5731
5732pub mod term_ob_c2_rhs {
5733    /// `literalValue`
5734    pub const LITERAL_VALUE: &str = "−2k mod 2^n";
5735}
5736
5737pub mod term_ob_c2_for_all {
5738    /// `variableName`
5739    pub const VARIABLE_NAME: &str = "x ∈ R_n, constant k";
5740}
5741
5742pub mod term_ob_c3_lhs {
5743    /// `literalValue`
5744    pub const LITERAL_VALUE: &str = "[bnot, xor(•,k)](x)";
5745}
5746
5747pub mod term_ob_c3_rhs {
5748    /// `literalValue`
5749    pub const LITERAL_VALUE: &str = "0";
5750}
5751
5752pub mod term_ob_c3_for_all {
5753    /// `variableName`
5754    pub const VARIABLE_NAME: &str = "x ∈ R_n, constant k";
5755}
5756
5757pub mod term_ob_h1_lhs {
5758    /// `literalValue`
5759    pub const LITERAL_VALUE: &str = "closed additive path monodromy";
5760}
5761
5762pub mod term_ob_h1_rhs {
5763    /// `literalValue`
5764    pub const LITERAL_VALUE: &str = "trivial (abelian ⇒ path-independent)";
5765}
5766
5767pub mod term_ob_h1_for_all {
5768    /// `variableName`
5769    pub const VARIABLE_NAME: &str = "additive group";
5770}
5771
5772pub mod term_ob_h2_lhs {
5773    /// `literalValue`
5774    pub const LITERAL_VALUE: &str = "closed {neg,bnot} path monodromy";
5775}
5776
5777pub mod term_ob_h2_rhs {
5778    /// `literalValue`
5779    pub const LITERAL_VALUE: &str = "∈ D_{2^n}";
5780}
5781
5782pub mod term_ob_h2_for_all {
5783    /// `variableName`
5784    pub const VARIABLE_NAME: &str = "dihedral generators";
5785}
5786
5787pub mod term_ob_h3_lhs {
5788    /// `literalValue`
5789    pub const LITERAL_VALUE: &str = "succ-only path WindingNumber";
5790}
5791
5792pub mod term_ob_h3_rhs {
5793    /// `literalValue`
5794    pub const LITERAL_VALUE: &str = "path length / 2^n";
5795}
5796
5797pub mod term_ob_h3_for_all {
5798    /// `variableName`
5799    pub const VARIABLE_NAME: &str = "closed succ path";
5800}
5801
5802pub mod term_ob_p1_lhs {
5803    /// `literalValue`
5804    pub const LITERAL_VALUE: &str = "PathLength(p₁ ⋅ p₂)";
5805}
5806
5807pub mod term_ob_p1_rhs {
5808    /// `literalValue`
5809    pub const LITERAL_VALUE: &str = "PathLength(p₁) + PathLength(p₂)";
5810}
5811
5812pub mod term_ob_p1_for_all {
5813    /// `variableName`
5814    pub const VARIABLE_NAME: &str = "paths p₁, p₂";
5815}
5816
5817pub mod term_ob_p2_lhs {
5818    /// `literalValue`
5819    pub const LITERAL_VALUE: &str = "TotalVariation(p₁ ⋅ p₂)";
5820}
5821
5822pub mod term_ob_p2_rhs {
5823    /// `literalValue`
5824    pub const LITERAL_VALUE: &str = "≤ TotalVariation(p₁) + TotalVariation(p₂)";
5825}
5826
5827pub mod term_ob_p2_for_all {
5828    /// `variableName`
5829    pub const VARIABLE_NAME: &str = "paths p₁, p₂";
5830}
5831
5832pub mod term_ob_p3_lhs {
5833    /// `literalValue`
5834    pub const LITERAL_VALUE: &str = "ReductionLength(c₁ ; c₂)";
5835}
5836
5837pub mod term_ob_p3_rhs {
5838    /// `literalValue`
5839    pub const LITERAL_VALUE: &str = "ReductionLength(c₁) + ReductionLength(c₂)";
5840}
5841
5842pub mod term_ob_p3_for_all {
5843    /// `variableName`
5844    pub const VARIABLE_NAME: &str = "reductions c₁, c₂";
5845}
5846
5847pub mod term_ct_1_lhs {
5848    /// `literalValue`
5849    pub const LITERAL_VALUE: &str = "catastrophe boundaries";
5850}
5851
5852pub mod term_ct_1_rhs {
5853    /// `literalValue`
5854    pub const LITERAL_VALUE: &str = "g = 2^k for 1 ≤ k ≤ n−1";
5855}
5856
5857pub mod term_ct_1_for_all {
5858    /// `variableName`
5859    pub const VARIABLE_NAME: &str = "stratum transitions";
5860}
5861
5862pub mod term_ct_2_lhs {
5863    /// `literalValue`
5864    pub const LITERAL_VALUE: &str = "odd prime catastrophe";
5865}
5866
5867pub mod term_ct_2_rhs {
5868    /// `literalValue`
5869    pub const LITERAL_VALUE: &str = "ResidueConstraint(p, •) transitions visibility";
5870}
5871
5872pub mod term_ct_2_for_all {
5873    /// `variableName`
5874    pub const VARIABLE_NAME: &str = "odd prime p";
5875}
5876
5877pub mod term_ct_3_lhs {
5878    /// `literalValue`
5879    pub const LITERAL_VALUE: &str = "CatastropheThreshold(g)";
5880}
5881
5882pub mod term_ct_3_rhs {
5883    /// `literalValue`
5884    pub const LITERAL_VALUE: &str = "step_g / n";
5885}
5886
5887pub mod term_ct_3_for_all {
5888    /// `variableName`
5889    pub const VARIABLE_NAME: &str = "factor g";
5890}
5891
5892pub mod term_ct_4_lhs {
5893    /// `literalValue`
5894    pub const LITERAL_VALUE: &str = "composite catastrophe g = p⋅q";
5895}
5896
5897pub mod term_ct_4_rhs {
5898    /// `literalValue`
5899    pub const LITERAL_VALUE: &str = "max(step_p, step_q) / n";
5900}
5901
5902pub mod term_ct_4_for_all {
5903    /// `variableName`
5904    pub const VARIABLE_NAME: &str = "composite g";
5905}
5906
5907pub mod term_cf_1_lhs {
5908    /// `literalValue`
5909    pub const LITERAL_VALUE: &str = "CurvatureFlux(γ)";
5910}
5911
5912pub mod term_cf_1_rhs {
5913    /// `literalValue`
5914    pub const LITERAL_VALUE: &str = "Σ |d_R(x_i, x_{i+1}) − d_H(x_i, x_{i+1})|";
5915}
5916
5917pub mod term_cf_1_for_all {
5918    /// `variableName`
5919    pub const VARIABLE_NAME: &str = "path γ";
5920}
5921
5922pub mod term_cf_2_lhs {
5923    /// `literalValue`
5924    pub const LITERAL_VALUE: &str = "ResolutionCost(T)";
5925}
5926
5927pub mod term_cf_2_rhs {
5928    /// `literalValue`
5929    pub const LITERAL_VALUE: &str = "≥ CurvatureFlux(γ_opt)";
5930}
5931
5932pub mod term_cf_2_for_all {
5933    /// `variableName`
5934    pub const VARIABLE_NAME: &str = "type T";
5935}
5936
5937pub mod term_cf_3_lhs {
5938    /// `literalValue`
5939    pub const LITERAL_VALUE: &str = "CurvatureFlux(x, succ(x))";
5940}
5941
5942pub mod term_cf_3_rhs {
5943    /// `literalValue`
5944    pub const LITERAL_VALUE: &str = "trailing_ones(x) for t < n; n−1 for x = 2^n−1";
5945}
5946
5947pub mod term_cf_3_for_all {
5948    /// `variableName`
5949    pub const VARIABLE_NAME: &str = "x ∈ R_n";
5950}
5951
5952pub mod term_cf_4_lhs {
5953    /// `literalValue`
5954    pub const LITERAL_VALUE: &str = "Σ_{x ∈ R_n} CurvatureFlux(x, succ(x))";
5955}
5956
5957pub mod term_cf_4_rhs {
5958    /// `literalValue`
5959    pub const LITERAL_VALUE: &str = "2^n − 2";
5960}
5961
5962pub mod term_cf_4_for_all {
5963    /// `variableName`
5964    pub const VARIABLE_NAME: &str = "n ≥ 1";
5965}
5966
5967pub mod term_hg_1_lhs {
5968    /// `literalValue`
5969    pub const LITERAL_VALUE: &str = "additive holonomy";
5970}
5971
5972pub mod term_hg_1_rhs {
5973    /// `literalValue`
5974    pub const LITERAL_VALUE: &str = "trivial (abelian ⇒ path-independent)";
5975}
5976
5977pub mod term_hg_1_for_all {
5978    /// `variableName`
5979    pub const VARIABLE_NAME: &str = "additive group";
5980}
5981
5982pub mod term_hg_2_lhs {
5983    /// `literalValue`
5984    pub const LITERAL_VALUE: &str = "{neg, bnot, succ, pred} holonomy";
5985}
5986
5987pub mod term_hg_2_rhs {
5988    /// `literalValue`
5989    pub const LITERAL_VALUE: &str = "D_{2^n}";
5990}
5991
5992pub mod term_hg_2_for_all {
5993    /// `variableName`
5994    pub const VARIABLE_NAME: &str = "dihedral generators";
5995}
5996
5997pub mod term_hg_3_lhs {
5998    /// `literalValue`
5999    pub const LITERAL_VALUE: &str = "{mul(•, u) : u ∈ R_n×} holonomy";
6000}
6001
6002pub mod term_hg_3_rhs {
6003    /// `literalValue`
6004    pub const LITERAL_VALUE: &str = "R_n× ≅ Z/2 × Z/2^{n−2}";
6005}
6006
6007pub mod term_hg_3_for_all {
6008    /// `variableName`
6009    pub const VARIABLE_NAME: &str = "unit group";
6010}
6011
6012pub mod term_hg_4_lhs {
6013    /// `literalValue`
6014    pub const LITERAL_VALUE: &str = "Hol(R_n)";
6015}
6016
6017pub mod term_hg_4_rhs {
6018    /// `literalValue`
6019    pub const LITERAL_VALUE: &str = "Aff(R_n) = R_n× ⋉ R_n";
6020}
6021
6022pub mod term_hg_4_for_all {
6023    /// `variableName`
6024    pub const VARIABLE_NAME: &str = "n ≥ 1";
6025}
6026
6027pub mod term_hg_5_lhs {
6028    /// `literalValue`
6029    pub const LITERAL_VALUE: &str = "Hol(R_n) decomposition";
6030}
6031
6032pub mod term_hg_5_rhs {
6033    /// `literalValue`
6034    pub const LITERAL_VALUE: &str = "D_{2^n} ⋅ {mul(•,u) : u ∈ R_n×, u ≠ ±1}";
6035}
6036
6037pub mod term_hg_5_for_all {
6038    /// `variableName`
6039    pub const VARIABLE_NAME: &str = "n ≥ 1";
6040}
6041
6042pub mod term_t_c1_lhs {
6043    /// `literalValue`
6044    pub const LITERAL_VALUE: &str = "compose(id, f)";
6045}
6046
6047pub mod term_t_c1_rhs {
6048    /// `literalValue`
6049    pub const LITERAL_VALUE: &str = "f";
6050}
6051
6052pub mod term_t_c1_for_all {
6053    /// `variableName`
6054    pub const VARIABLE_NAME: &str = "f ∈ Transform";
6055}
6056
6057pub mod term_t_c2_lhs {
6058    /// `literalValue`
6059    pub const LITERAL_VALUE: &str = "compose(f, id)";
6060}
6061
6062pub mod term_t_c2_rhs {
6063    /// `literalValue`
6064    pub const LITERAL_VALUE: &str = "f";
6065}
6066
6067pub mod term_t_c2_for_all {
6068    /// `variableName`
6069    pub const VARIABLE_NAME: &str = "f ∈ Transform";
6070}
6071
6072pub mod term_t_c3_lhs {
6073    /// `literalValue`
6074    pub const LITERAL_VALUE: &str = "compose(f, compose(g, h))";
6075}
6076
6077pub mod term_t_c3_rhs {
6078    /// `literalValue`
6079    pub const LITERAL_VALUE: &str = "compose(compose(f, g), h)";
6080}
6081
6082pub mod term_t_c3_for_all {
6083    /// `variableName`
6084    pub const VARIABLE_NAME: &str = "f, g, h ∈ Transform";
6085}
6086
6087pub mod term_t_c4_lhs {
6088    /// `literalValue`
6089    pub const LITERAL_VALUE: &str = "f composesWith g";
6090}
6091
6092pub mod term_t_c4_rhs {
6093    /// `literalValue`
6094    pub const LITERAL_VALUE: &str = "target(f) = source(g)";
6095}
6096
6097pub mod term_t_c4_for_all {
6098    /// `variableName`
6099    pub const VARIABLE_NAME: &str = "f, g ∈ Transform";
6100}
6101
6102pub mod term_t_i1_lhs {
6103    /// `literalValue`
6104    pub const LITERAL_VALUE: &str = "d_R(neg(x), neg(y))";
6105}
6106
6107pub mod term_t_i1_rhs {
6108    /// `literalValue`
6109    pub const LITERAL_VALUE: &str = "d_R(x, y)";
6110}
6111
6112pub mod term_t_i1_for_all {
6113    /// `variableName`
6114    pub const VARIABLE_NAME: &str = "x, y ∈ R_n";
6115}
6116
6117pub mod term_t_i2_lhs {
6118    /// `literalValue`
6119    pub const LITERAL_VALUE: &str = "d_H(bnot(x), bnot(y))";
6120}
6121
6122pub mod term_t_i2_rhs {
6123    /// `literalValue`
6124    pub const LITERAL_VALUE: &str = "d_H(x, y)";
6125}
6126
6127pub mod term_t_i2_for_all {
6128    /// `variableName`
6129    pub const VARIABLE_NAME: &str = "x, y ∈ R_n";
6130}
6131
6132pub mod term_t_i3_lhs {
6133    /// `literalValue`
6134    pub const LITERAL_VALUE: &str = "succ = neg ∘ bnot";
6135}
6136
6137pub mod term_t_i3_rhs {
6138    /// `literalValue`
6139    pub const LITERAL_VALUE: &str = "preserves d_R but not d_H";
6140}
6141
6142pub mod term_t_i3_for_all {
6143    /// `variableName`
6144    pub const VARIABLE_NAME: &str = "x ∈ R_n";
6145}
6146
6147pub mod term_t_i4_lhs {
6148    /// `literalValue`
6149    pub const LITERAL_VALUE: &str = "ring isometries";
6150}
6151
6152pub mod term_t_i4_rhs {
6153    /// `literalValue`
6154    pub const LITERAL_VALUE: &str = "form a group under composition";
6155}
6156
6157pub mod term_t_i4_for_all {
6158    /// `variableName`
6159    pub const VARIABLE_NAME: &str = "Isometry";
6160}
6161
6162pub mod term_t_i5_lhs {
6163    /// `literalValue`
6164    pub const LITERAL_VALUE: &str = "CurvatureObservable";
6165}
6166
6167pub mod term_t_i5_rhs {
6168    /// `literalValue`
6169    pub const LITERAL_VALUE: &str = "measures failure of ring isometry to be Hamming isometry";
6170}
6171
6172pub mod term_t_i5_for_all {
6173    /// `variableName`
6174    pub const VARIABLE_NAME: &str = "Isometry";
6175}
6176
6177pub mod term_t_e1_lhs {
6178    /// `literalValue`
6179    pub const LITERAL_VALUE: &str = "ι(x) = ι(y)";
6180}
6181
6182pub mod term_t_e1_rhs {
6183    /// `literalValue`
6184    pub const LITERAL_VALUE: &str = "x = y";
6185}
6186
6187pub mod term_t_e1_for_all {
6188    /// `variableName`
6189    pub const VARIABLE_NAME: &str = "x, y ∈ R_n (injectivity)";
6190}
6191
6192pub mod term_t_e2_lhs {
6193    /// `literalValue`
6194    pub const LITERAL_VALUE: &str = "ι(add(x,y))";
6195}
6196
6197pub mod term_t_e2_rhs {
6198    /// `literalValue`
6199    pub const LITERAL_VALUE: &str = "add(ι(x), ι(y)); ι(mul(x,y)) = mul(ι(x), ι(y))";
6200}
6201
6202pub mod term_t_e2_for_all {
6203    /// `variableName`
6204    pub const VARIABLE_NAME: &str = "x, y ∈ R_n";
6205}
6206
6207pub mod term_t_e3_lhs {
6208    /// `literalValue`
6209    pub const LITERAL_VALUE: &str = "ι₂ ∘ ι₁ : R_n → R_k";
6210}
6211
6212pub mod term_t_e3_rhs {
6213    /// `literalValue`
6214    pub const LITERAL_VALUE: &str = "is an embedding (transitivity)";
6215}
6216
6217pub mod term_t_e3_for_all {
6218    /// `variableName`
6219    pub const VARIABLE_NAME: &str = "ι₁: R_n → R_m, ι₂: R_m → R_k";
6220}
6221
6222pub mod term_t_e4_lhs {
6223    /// `literalValue`
6224    pub const LITERAL_VALUE: &str = "glyph ∘ ι ∘ addresses";
6225}
6226
6227pub mod term_t_e4_rhs {
6228    /// `literalValue`
6229    pub const LITERAL_VALUE: &str = "well-defined";
6230}
6231
6232pub mod term_t_e4_for_all {
6233    /// `variableName`
6234    pub const VARIABLE_NAME: &str = "embedding ι";
6235}
6236
6237pub mod term_t_a1_lhs {
6238    /// `literalValue`
6239    pub const LITERAL_VALUE: &str = "g ∈ D_{2^n} on Constraint C";
6240}
6241
6242pub mod term_t_a1_rhs {
6243    /// `literalValue`
6244    pub const LITERAL_VALUE: &str = "g⋅C (transformed constraint)";
6245}
6246
6247pub mod term_t_a1_for_all {
6248    /// `variableName`
6249    pub const VARIABLE_NAME: &str = "g ∈ D_{2^n}, C ∈ Constraint";
6250}
6251
6252pub mod term_t_a2_lhs {
6253    /// `literalValue`
6254    pub const LITERAL_VALUE: &str = "g ∈ D_{2^n} on Partition";
6255}
6256
6257pub mod term_t_a2_rhs {
6258    /// `literalValue`
6259    pub const LITERAL_VALUE: &str = "permutes components";
6260}
6261
6262pub mod term_t_a2_for_all {
6263    /// `variableName`
6264    pub const VARIABLE_NAME: &str = "g ∈ D_{2^n}";
6265}
6266
6267pub mod term_t_a3_lhs {
6268    /// `literalValue`
6269    pub const LITERAL_VALUE: &str = "D_{2^n} orbits on R_n";
6270}
6271
6272pub mod term_t_a3_rhs {
6273    /// `literalValue`
6274    pub const LITERAL_VALUE: &str = "determine irreducibility boundaries";
6275}
6276
6277pub mod term_t_a3_for_all {
6278    /// `variableName`
6279    pub const VARIABLE_NAME: &str = "DihedralFactorizationResolver";
6280}
6281
6282pub mod term_t_a4_lhs {
6283    /// `literalValue`
6284    pub const LITERAL_VALUE: &str = "fixed points of neg";
6285}
6286
6287pub mod term_t_a4_rhs {
6288    /// `literalValue`
6289    pub const LITERAL_VALUE: &str = "{0, 2^{n−1}}; bnot has none (n > 0)";
6290}
6291
6292pub mod term_t_a4_for_all {
6293    /// `variableName`
6294    pub const VARIABLE_NAME: &str = "R_n";
6295}
6296
6297pub mod term_au_1_lhs {
6298    /// `literalValue`
6299    pub const LITERAL_VALUE: &str = "Aut(R_n)";
6300}
6301
6302pub mod term_au_1_rhs {
6303    /// `literalValue`
6304    pub const LITERAL_VALUE: &str = "{μ_u : x ↦ mul(u, x) | u ∈ R_n×}";
6305}
6306
6307pub mod term_au_1_for_all {
6308    /// `variableName`
6309    pub const VARIABLE_NAME: &str = "n ≥ 1";
6310}
6311
6312pub mod term_au_2_lhs {
6313    /// `literalValue`
6314    pub const LITERAL_VALUE: &str = "Aut(R_n)";
6315}
6316
6317pub mod term_au_2_rhs {
6318    /// `literalValue`
6319    pub const LITERAL_VALUE: &str = "≅ R_n× ≅ Z/2 × Z/2^{n−2}";
6320}
6321
6322pub mod term_au_2_for_all {
6323    /// `variableName`
6324    pub const VARIABLE_NAME: &str = "n ≥ 3";
6325}
6326
6327pub mod term_au_3_lhs {
6328    /// `literalValue`
6329    pub const LITERAL_VALUE: &str = "|Aut(R_n)|";
6330}
6331
6332pub mod term_au_3_rhs {
6333    /// `literalValue`
6334    pub const LITERAL_VALUE: &str = "2^{n−1}";
6335}
6336
6337pub mod term_au_3_for_all {
6338    /// `variableName`
6339    pub const VARIABLE_NAME: &str = "n ≥ 1";
6340}
6341
6342pub mod term_au_4_lhs {
6343    /// `literalValue`
6344    pub const LITERAL_VALUE: &str = "Aut(R_n) ∩ D_{2^n}";
6345}
6346
6347pub mod term_au_4_rhs {
6348    /// `literalValue`
6349    pub const LITERAL_VALUE: &str = "{id, neg}";
6350}
6351
6352pub mod term_au_4_for_all {
6353    /// `variableName`
6354    pub const VARIABLE_NAME: &str = "n ≥ 1";
6355}
6356
6357pub mod term_au_5_lhs {
6358    /// `literalValue`
6359    pub const LITERAL_VALUE: &str = "Aff(R_n)";
6360}
6361
6362pub mod term_au_5_rhs {
6363    /// `literalValue`
6364    pub const LITERAL_VALUE: &str = "⟨D_{2^n}, μ_3⟩";
6365}
6366
6367pub mod term_au_5_for_all {
6368    /// `variableName`
6369    pub const VARIABLE_NAME: &str = "n ≥ 1";
6370}
6371
6372pub mod term_ef_1_lhs {
6373    /// `literalValue`
6374    pub const LITERAL_VALUE: &str = "F_ι(f)";
6375}
6376
6377pub mod term_ef_1_rhs {
6378    /// `literalValue`
6379    pub const LITERAL_VALUE: &str = "ι ∘ f ∘ ι⁻¹ on Im(ι)";
6380}
6381
6382pub mod term_ef_1_for_all {
6383    /// `variableName`
6384    pub const VARIABLE_NAME: &str = "ι: R_n → R_m, f ∈ Cat(R_n)";
6385}
6386
6387pub mod term_ef_2_lhs {
6388    /// `literalValue`
6389    pub const LITERAL_VALUE: &str = "F_ι(f ∘ g)";
6390}
6391
6392pub mod term_ef_2_rhs {
6393    /// `literalValue`
6394    pub const LITERAL_VALUE: &str = "F_ι(f) ∘ F_ι(g)";
6395}
6396
6397pub mod term_ef_2_for_all {
6398    /// `variableName`
6399    pub const VARIABLE_NAME: &str = "ι: R_n → R_m";
6400}
6401
6402pub mod term_ef_3_lhs {
6403    /// `literalValue`
6404    pub const LITERAL_VALUE: &str = "F_ι(id_{R_n})";
6405}
6406
6407pub mod term_ef_3_rhs {
6408    /// `literalValue`
6409    pub const LITERAL_VALUE: &str = "id_{Im(ι)}";
6410}
6411
6412pub mod term_ef_3_for_all {
6413    /// `variableName`
6414    pub const VARIABLE_NAME: &str = "ι: R_n → R_m";
6415}
6416
6417pub mod term_ef_4_lhs {
6418    /// `literalValue`
6419    pub const LITERAL_VALUE: &str = "F_{ι₂ ∘ ι₁}";
6420}
6421
6422pub mod term_ef_4_rhs {
6423    /// `literalValue`
6424    pub const LITERAL_VALUE: &str = "F_{ι₂} ∘ F_{ι₁}";
6425}
6426
6427pub mod term_ef_4_for_all {
6428    /// `variableName`
6429    pub const VARIABLE_NAME: &str = "ι₁: R_n → R_m, ι₂: R_m → R_k";
6430}
6431
6432pub mod term_ef_5_lhs {
6433    /// `literalValue`
6434    pub const LITERAL_VALUE: &str = "F_ι(ring isometry)";
6435}
6436
6437pub mod term_ef_5_rhs {
6438    /// `literalValue`
6439    pub const LITERAL_VALUE: &str = "ring isometry at level m";
6440}
6441
6442pub mod term_ef_5_for_all {
6443    /// `variableName`
6444    pub const VARIABLE_NAME: &str = "ι: R_n → R_m";
6445}
6446
6447pub mod term_ef_6_lhs {
6448    /// `literalValue`
6449    pub const LITERAL_VALUE: &str = "F_ι(D_{2^n})";
6450}
6451
6452pub mod term_ef_6_rhs {
6453    /// `literalValue`
6454    pub const LITERAL_VALUE: &str = "⊆ D_{2^m} as subgroup";
6455}
6456
6457pub mod term_ef_6_for_all {
6458    /// `variableName`
6459    pub const VARIABLE_NAME: &str = "ι: R_n → R_m";
6460}
6461
6462pub mod term_ef_7_lhs {
6463    /// `literalValue`
6464    pub const LITERAL_VALUE: &str = "F_ι(R_n×)";
6465}
6466
6467pub mod term_ef_7_rhs {
6468    /// `literalValue`
6469    pub const LITERAL_VALUE: &str = "⊆ R_m× as subgroup";
6470}
6471
6472pub mod term_ef_7_for_all {
6473    /// `variableName`
6474    pub const VARIABLE_NAME: &str = "ι: R_n → R_m";
6475}
6476
6477pub mod term_aa_1_lhs {
6478    /// `literalValue`
6479    pub const LITERAL_VALUE: &str = "glyph(x)";
6480}
6481
6482pub mod term_aa_1_rhs {
6483    /// `literalValue`
6484    pub const LITERAL_VALUE: &str = "[braille(x[0:5]), braille(x[6:11]), ...]";
6485}
6486
6487pub mod term_aa_1_for_all {
6488    /// `variableName`
6489    pub const VARIABLE_NAME: &str = "x ∈ R_n (6-bit blocks)";
6490}
6491
6492pub mod term_aa_2_lhs {
6493    /// `literalValue`
6494    pub const LITERAL_VALUE: &str = "braille(a ⊕ b)";
6495}
6496
6497pub mod term_aa_2_rhs {
6498    /// `literalValue`
6499    pub const LITERAL_VALUE: &str = "braille(a) ⊕ braille(b)";
6500}
6501
6502pub mod term_aa_2_for_all {
6503    /// `variableName`
6504    pub const VARIABLE_NAME: &str = "a, b ∈ {0,1}^6";
6505}
6506
6507pub mod term_aa_3_lhs {
6508    /// `literalValue`
6509    pub const LITERAL_VALUE: &str = "glyph(bnot(x))";
6510}
6511
6512pub mod term_aa_3_rhs {
6513    /// `literalValue`
6514    pub const LITERAL_VALUE: &str = "complement each Braille character of glyph(x)";
6515}
6516
6517pub mod term_aa_3_for_all {
6518    /// `variableName`
6519    pub const VARIABLE_NAME: &str = "x ∈ R_n";
6520}
6521
6522pub mod term_aa_4_lhs {
6523    /// `literalValue`
6524    pub const LITERAL_VALUE: &str = "glyph(add(x, y))";
6525}
6526
6527pub mod term_aa_4_rhs {
6528    /// `literalValue`
6529    pub const LITERAL_VALUE: &str = "≠ f(glyph(x), glyph(y)) in general";
6530}
6531
6532pub mod term_aa_4_for_all {
6533    /// `variableName`
6534    pub const VARIABLE_NAME: &str = "x, y ∈ R_n";
6535}
6536
6537pub mod term_aa_5_lhs {
6538    /// `literalValue`
6539    pub const LITERAL_VALUE: &str = "liftable operations";
6540}
6541
6542pub mod term_aa_5_rhs {
6543    /// `literalValue`
6544    pub const LITERAL_VALUE: &str = "{xor, and, or, bnot}; NOT {add, sub, mul, neg, succ, pred}";
6545}
6546
6547pub mod term_aa_5_for_all {
6548    /// `variableName`
6549    pub const VARIABLE_NAME: &str = "operations on R_n";
6550}
6551
6552pub mod term_aa_6_lhs {
6553    /// `literalValue`
6554    pub const LITERAL_VALUE: &str = "neg(x) = succ(bnot(x))";
6555}
6556
6557pub mod term_aa_6_rhs {
6558    /// `literalValue`
6559    pub const LITERAL_VALUE: &str = "bnot lifts, succ does not";
6560}
6561
6562pub mod term_aa_6_for_all {
6563    /// `variableName`
6564    pub const VARIABLE_NAME: &str = "x ∈ R_n";
6565}
6566
6567pub mod term_am_1_lhs {
6568    /// `literalValue`
6569    pub const LITERAL_VALUE: &str = "d_addr(a, b)";
6570}
6571
6572pub mod term_am_1_rhs {
6573    /// `literalValue`
6574    pub const LITERAL_VALUE: &str = "Σ_i popcount(braille_i(a) ⊕ braille_i(b))";
6575}
6576
6577pub mod term_am_1_for_all {
6578    /// `variableName`
6579    pub const VARIABLE_NAME: &str = "addresses a, b";
6580}
6581
6582pub mod term_am_2_lhs {
6583    /// `literalValue`
6584    pub const LITERAL_VALUE: &str = "d_addr(glyph(x), glyph(y))";
6585}
6586
6587pub mod term_am_2_rhs {
6588    /// `literalValue`
6589    pub const LITERAL_VALUE: &str = "d_H(x, y)";
6590}
6591
6592pub mod term_am_2_for_all {
6593    /// `variableName`
6594    pub const VARIABLE_NAME: &str = "x, y ∈ R_n";
6595}
6596
6597pub mod term_am_3_lhs {
6598    /// `literalValue`
6599    pub const LITERAL_VALUE: &str = "d_addr";
6600}
6601
6602pub mod term_am_3_rhs {
6603    /// `literalValue`
6604    pub const LITERAL_VALUE: &str = "does NOT preserve d_R in general";
6605}
6606
6607pub mod term_am_3_for_all {
6608    /// `variableName`
6609    pub const VARIABLE_NAME: &str = "addresses";
6610}
6611
6612pub mod term_am_4_lhs {
6613    /// `literalValue`
6614    pub const LITERAL_VALUE: &str = "d_Δ(x, y)";
6615}
6616
6617pub mod term_am_4_rhs {
6618    /// `literalValue`
6619    pub const LITERAL_VALUE: &str = "|d_R(x,y) − d_addr(glyph(x), glyph(y))|";
6620}
6621
6622pub mod term_am_4_for_all {
6623    /// `variableName`
6624    pub const VARIABLE_NAME: &str = "x, y ∈ R_n";
6625}
6626
6627pub mod term_th_1_lhs {
6628    /// `literalValue`
6629    pub const LITERAL_VALUE: &str = "S(state)";
6630}
6631
6632pub mod term_th_1_rhs {
6633    /// `literalValue`
6634    pub const LITERAL_VALUE: &str = "freeRank × ln 2";
6635}
6636
6637pub mod term_th_1_for_all {
6638    /// `variableName`
6639    pub const VARIABLE_NAME: &str = "state ∈ FreeRank";
6640}
6641
6642pub mod term_th_2_lhs {
6643    /// `literalValue`
6644    pub const LITERAL_VALUE: &str = "S(⊥)";
6645}
6646
6647pub mod term_th_2_rhs {
6648    /// `literalValue`
6649    pub const LITERAL_VALUE: &str = "n × ln 2";
6650}
6651
6652pub mod term_th_2_for_all {
6653    /// `variableName`
6654    pub const VARIABLE_NAME: &str = "unconstrained type";
6655}
6656
6657pub mod term_th_3_lhs {
6658    /// `literalValue`
6659    pub const LITERAL_VALUE: &str = "S(⊤)";
6660}
6661
6662pub mod term_th_3_rhs {
6663    /// `literalValue`
6664    pub const LITERAL_VALUE: &str = "0";
6665}
6666
6667pub mod term_th_3_for_all {
6668    /// `variableName`
6669    pub const VARIABLE_NAME: &str = "fully resolved type";
6670}
6671
6672pub mod term_th_4_lhs {
6673    /// `literalValue`
6674    pub const LITERAL_VALUE: &str = "total resolution cost";
6675}
6676
6677pub mod term_th_4_rhs {
6678    /// `literalValue`
6679    pub const LITERAL_VALUE: &str = "n × k_B T × ln 2";
6680}
6681
6682pub mod term_th_4_for_all {
6683    /// `variableName`
6684    pub const VARIABLE_NAME: &str = "Landauer bound";
6685}
6686
6687pub mod term_th_5_lhs {
6688    /// `literalValue`
6689    pub const LITERAL_VALUE: &str = "β*";
6690}
6691
6692pub mod term_th_5_rhs {
6693    /// `literalValue`
6694    pub const LITERAL_VALUE: &str = "ln 2";
6695}
6696
6697pub mod term_th_5_for_all {
6698    /// `variableName`
6699    pub const VARIABLE_NAME: &str = "UOR site system";
6700}
6701
6702pub mod term_th_6_lhs {
6703    /// `literalValue`
6704    pub const LITERAL_VALUE: &str = "constraint application";
6705}
6706
6707pub mod term_th_6_rhs {
6708    /// `literalValue`
6709    pub const LITERAL_VALUE: &str = "removes entropy; convergenceRate = cooling rate";
6710}
6711
6712pub mod term_th_6_for_all {
6713    /// `variableName`
6714    pub const VARIABLE_NAME: &str = "resolution loop";
6715}
6716
6717pub mod term_th_7_lhs {
6718    /// `literalValue`
6719    pub const LITERAL_VALUE: &str = "CatastropheThreshold";
6720}
6721
6722pub mod term_th_7_rhs {
6723    /// `literalValue`
6724    pub const LITERAL_VALUE: &str = "temperature of partition phase transition";
6725}
6726
6727pub mod term_th_7_for_all {
6728    /// `variableName`
6729    pub const VARIABLE_NAME: &str = "partition bifurcation";
6730}
6731
6732pub mod term_th_8_lhs {
6733    /// `literalValue`
6734    pub const LITERAL_VALUE: &str = "step_g";
6735}
6736
6737pub mod term_th_8_rhs {
6738    /// `literalValue`
6739    pub const LITERAL_VALUE: &str = "free-energy cost of constraint boundary";
6740}
6741
6742pub mod term_th_8_for_all {
6743    /// `variableName`
6744    pub const VARIABLE_NAME: &str = "constraint boundary g";
6745}
6746
6747pub mod term_th_9_lhs {
6748    /// `literalValue`
6749    pub const LITERAL_VALUE: &str = "computational hardness";
6750}
6751
6752pub mod term_th_9_rhs {
6753    /// `literalValue`
6754    pub const LITERAL_VALUE: &str = "type incompleteness (high temperature)";
6755}
6756
6757pub mod term_th_9_for_all {
6758    /// `variableName`
6759    pub const VARIABLE_NAME: &str = "type specification";
6760}
6761
6762pub mod term_th_10_lhs {
6763    /// `literalValue`
6764    pub const LITERAL_VALUE: &str = "type resolution";
6765}
6766
6767pub mod term_th_10_rhs {
6768    /// `literalValue`
6769    pub const LITERAL_VALUE: &str = "measurement; cost ≥ entropy removed";
6770}
6771
6772pub mod term_th_10_for_all {
6773    /// `variableName`
6774    pub const VARIABLE_NAME: &str = "resolution process";
6775}
6776
6777pub mod term_ar_1_lhs {
6778    /// `literalValue`
6779    pub const LITERAL_VALUE: &str = "adiabatic schedule";
6780}
6781
6782pub mod term_ar_1_rhs {
6783    /// `literalValue`
6784    pub const LITERAL_VALUE: &str = "decreasing freeRank × cost-per-site order";
6785}
6786
6787pub mod term_ar_1_for_all {
6788    /// `variableName`
6789    pub const VARIABLE_NAME: &str = "constraint ordering";
6790}
6791
6792pub mod term_ar_2_lhs {
6793    /// `literalValue`
6794    pub const LITERAL_VALUE: &str = "Cost_adiabatic";
6795}
6796
6797pub mod term_ar_2_rhs {
6798    /// `literalValue`
6799    pub const LITERAL_VALUE: &str = "Σ_i cost(C_{σ(i)}) where σ is optimal";
6800}
6801
6802pub mod term_ar_2_for_all {
6803    /// `variableName`
6804    pub const VARIABLE_NAME: &str = "optimal ordering";
6805}
6806
6807pub mod term_ar_3_lhs {
6808    /// `literalValue`
6809    pub const LITERAL_VALUE: &str = "Cost_adiabatic";
6810}
6811
6812pub mod term_ar_3_rhs {
6813    /// `literalValue`
6814    pub const LITERAL_VALUE: &str = "≥ n × k_B T × ln 2";
6815}
6816
6817pub mod term_ar_3_for_all {
6818    /// `variableName`
6819    pub const VARIABLE_NAME: &str = "Landauer bound";
6820}
6821
6822pub mod term_ar_4_lhs {
6823    /// `literalValue`
6824    pub const LITERAL_VALUE: &str = "η = (n × ln 2) / Cost_adiabatic";
6825}
6826
6827pub mod term_ar_4_rhs {
6828    /// `literalValue`
6829    pub const LITERAL_VALUE: &str = "≤ 1";
6830}
6831
6832pub mod term_ar_4_for_all {
6833    /// `variableName`
6834    pub const VARIABLE_NAME: &str = "adiabatic efficiency";
6835}
6836
6837pub mod term_ar_5_lhs {
6838    /// `literalValue`
6839    pub const LITERAL_VALUE: &str = "greedy vs adiabatic difference";
6840}
6841
6842pub mod term_ar_5_rhs {
6843    /// `literalValue`
6844    pub const LITERAL_VALUE: &str = "≤ 5% for n ≤ 16";
6845}
6846
6847pub mod term_ar_5_for_all {
6848    /// `variableName`
6849    pub const VARIABLE_NAME: &str = "empirical, Q0–Q4";
6850}
6851
6852pub mod term_pd_1_lhs {
6853    /// `literalValue`
6854    pub const LITERAL_VALUE: &str = "phase space";
6855}
6856
6857pub mod term_pd_1_rhs {
6858    /// `literalValue`
6859    pub const LITERAL_VALUE: &str = "{(n, g) : n ∈ Z₊, g constraint boundary}";
6860}
6861
6862pub mod term_pd_1_for_all {
6863    /// `variableName`
6864    pub const VARIABLE_NAME: &str = "UOR phase diagram";
6865}
6866
6867pub mod term_pd_2_lhs {
6868    /// `literalValue`
6869    pub const LITERAL_VALUE: &str = "phase boundaries";
6870}
6871
6872pub mod term_pd_2_rhs {
6873    /// `literalValue`
6874    pub const LITERAL_VALUE: &str = "g | (2^n − 1) or g = 2^k";
6875}
6876
6877pub mod term_pd_2_for_all {
6878    /// `variableName`
6879    pub const VARIABLE_NAME: &str = "(n, g) plane";
6880}
6881
6882pub mod term_pd_3_lhs {
6883    /// `literalValue`
6884    pub const LITERAL_VALUE: &str = "parity boundary";
6885}
6886
6887pub mod term_pd_3_rhs {
6888    /// `literalValue`
6889    pub const LITERAL_VALUE: &str = "|Unit| = 2^{n−1}, |non-Unit| = 2^{n−1}";
6890}
6891
6892pub mod term_pd_3_for_all {
6893    /// `variableName`
6894    pub const VARIABLE_NAME: &str = "g = 2";
6895}
6896
6897pub mod term_pd_4_lhs {
6898    /// `literalValue`
6899    pub const LITERAL_VALUE: &str = "resonance lines";
6900}
6901
6902pub mod term_pd_4_rhs {
6903    /// `literalValue`
6904    pub const LITERAL_VALUE: &str = "n = k ⋅ ord_g(2)";
6905}
6906
6907pub mod term_pd_4_for_all {
6908    /// `variableName`
6909    pub const VARIABLE_NAME: &str = "(n, g) plane";
6910}
6911
6912pub mod term_pd_5_lhs {
6913    /// `literalValue`
6914    pub const LITERAL_VALUE: &str = "phase count at level n";
6915}
6916
6917pub mod term_pd_5_rhs {
6918    /// `literalValue`
6919    pub const LITERAL_VALUE: &str = "≤ 2^n (typical O(n))";
6920}
6921
6922pub mod term_pd_5_for_all {
6923    /// `variableName`
6924    pub const VARIABLE_NAME: &str = "quantum level n";
6925}
6926
6927pub mod term_rc_1_lhs {
6928    /// `literalValue`
6929    pub const LITERAL_VALUE: &str = "reversible pinning of site k";
6930}
6931
6932pub mod term_rc_1_rhs {
6933    /// `literalValue`
6934    pub const LITERAL_VALUE: &str = "store prior state in ancilla site k'";
6935}
6936
6937pub mod term_rc_1_for_all {
6938    /// `variableName`
6939    pub const VARIABLE_NAME: &str = "SiteIndex k";
6940}
6941
6942pub mod term_rc_2_lhs {
6943    /// `literalValue`
6944    pub const LITERAL_VALUE: &str = "reversible pinning entropy";
6945}
6946
6947pub mod term_rc_2_rhs {
6948    /// `literalValue`
6949    pub const LITERAL_VALUE: &str = "ΔS_total = 0";
6950}
6951
6952pub mod term_rc_2_for_all {
6953    /// `variableName`
6954    pub const VARIABLE_NAME: &str = "reversible strategy";
6955}
6956
6957pub mod term_rc_3_lhs {
6958    /// `literalValue`
6959    pub const LITERAL_VALUE: &str = "deferred Landauer cost";
6960}
6961
6962pub mod term_rc_3_rhs {
6963    /// `literalValue`
6964    pub const LITERAL_VALUE: &str = "n × k_B T × ln 2 at ancilla erasure";
6965}
6966
6967pub mod term_rc_3_for_all {
6968    /// `variableName`
6969    pub const VARIABLE_NAME: &str = "ancilla cleanup";
6970}
6971
6972pub mod term_rc_4_lhs {
6973    /// `literalValue`
6974    pub const LITERAL_VALUE: &str = "reversible total cost";
6975}
6976
6977pub mod term_rc_4_rhs {
6978    /// `literalValue`
6979    pub const LITERAL_VALUE: &str = "= irreversible total cost (redistributed)";
6980}
6981
6982pub mod term_rc_4_for_all {
6983    /// `variableName`
6984    pub const VARIABLE_NAME: &str = "reversible strategy";
6985}
6986
6987pub mod term_rc_5_lhs {
6988    /// `literalValue`
6989    pub const LITERAL_VALUE: &str = "quantum UOR";
6990}
6991
6992pub mod term_rc_5_rhs {
6993    /// `literalValue`
6994    pub const LITERAL_VALUE: &str = "superposed sites, cost ∝ winning path";
6995}
6996
6997pub mod term_rc_5_for_all {
6998    /// `variableName`
6999    pub const VARIABLE_NAME: &str = "hypothetical quantum";
7000}
7001
7002pub mod term_dc_1_lhs {
7003    /// `literalValue`
7004    pub const LITERAL_VALUE: &str = "∂_R f(x)";
7005}
7006
7007pub mod term_dc_1_rhs {
7008    /// `literalValue`
7009    pub const LITERAL_VALUE: &str = "f(succ(x)) - f(x)";
7010}
7011
7012pub mod term_dc_1_for_all {
7013    /// `variableName`
7014    pub const VARIABLE_NAME: &str = "f : R_n → R_n, x ∈ R_n";
7015}
7016
7017pub mod term_dc_2_lhs {
7018    /// `literalValue`
7019    pub const LITERAL_VALUE: &str = "∂_H f(x)";
7020}
7021
7022pub mod term_dc_2_rhs {
7023    /// `literalValue`
7024    pub const LITERAL_VALUE: &str = "f(bnot(x)) - f(x)";
7025}
7026
7027pub mod term_dc_2_for_all {
7028    /// `variableName`
7029    pub const VARIABLE_NAME: &str = "f : R_n → R_n, x ∈ R_n";
7030}
7031
7032pub mod term_dc_3_lhs {
7033    /// `literalValue`
7034    pub const LITERAL_VALUE: &str = "∂_H id(x)";
7035}
7036
7037pub mod term_dc_3_rhs {
7038    /// `literalValue`
7039    pub const LITERAL_VALUE: &str = "bnot(x) - x = -(2x + 1) mod 2^n";
7040}
7041
7042pub mod term_dc_3_for_all {
7043    /// `variableName`
7044    pub const VARIABLE_NAME: &str = "x ∈ R_n";
7045}
7046
7047pub mod term_dc_4_lhs {
7048    /// `literalValue`
7049    pub const LITERAL_VALUE: &str = "[neg, bnot](x)";
7050}
7051
7052pub mod term_dc_4_rhs {
7053    /// `literalValue`
7054    pub const LITERAL_VALUE: &str = "∂_R neg(x) - ∂_H neg(x)";
7055}
7056
7057pub mod term_dc_4_for_all {
7058    /// `variableName`
7059    pub const VARIABLE_NAME: &str = "x ∈ R_n";
7060}
7061
7062pub mod term_dc_5_lhs {
7063    /// `literalValue`
7064    pub const LITERAL_VALUE: &str = "∂_R f - ∂_H f";
7065}
7066
7067pub mod term_dc_5_rhs {
7068    /// `literalValue`
7069    pub const LITERAL_VALUE: &str = "Σ carry contributions";
7070}
7071
7072pub mod term_dc_5_for_all {
7073    /// `variableName`
7074    pub const VARIABLE_NAME: &str = "f : R_n → R_n";
7075}
7076
7077pub mod term_dc_6_lhs {
7078    /// `literalValue`
7079    pub const LITERAL_VALUE: &str = "J_k(x)";
7080}
7081
7082pub mod term_dc_6_rhs {
7083    /// `literalValue`
7084    pub const LITERAL_VALUE: &str = "∂_R f_k(x) where f_k = site_k";
7085}
7086
7087pub mod term_dc_6_for_all {
7088    /// `variableName`
7089    pub const VARIABLE_NAME: &str = "x ∈ R_n, 0 ≤ k < n";
7090}
7091
7092pub mod term_dc_7_lhs {
7093    /// `literalValue`
7094    pub const LITERAL_VALUE: &str = "J_{n-1}(x)";
7095}
7096
7097pub mod term_dc_7_rhs {
7098    /// `literalValue`
7099    pub const LITERAL_VALUE: &str = "may differ from lower sites";
7100}
7101
7102pub mod term_dc_7_for_all {
7103    /// `variableName`
7104    pub const VARIABLE_NAME: &str = "x ∈ R_n";
7105}
7106
7107pub mod term_dc_8_lhs {
7108    /// `literalValue`
7109    pub const LITERAL_VALUE: &str = "rank(J(x))";
7110}
7111
7112pub mod term_dc_8_rhs {
7113    /// `literalValue`
7114    pub const LITERAL_VALUE: &str = "= d_H(x, succ(x)) - 1 for generic x";
7115}
7116
7117pub mod term_dc_8_for_all {
7118    /// `variableName`
7119    pub const VARIABLE_NAME: &str = "x ∈ R_n";
7120}
7121
7122pub mod term_dc_9_lhs {
7123    /// `literalValue`
7124    pub const LITERAL_VALUE: &str = "κ(x)";
7125}
7126
7127pub mod term_dc_9_rhs {
7128    /// `literalValue`
7129    pub const LITERAL_VALUE: &str = "Σ_k J_k(x)";
7130}
7131
7132pub mod term_dc_9_for_all {
7133    /// `variableName`
7134    pub const VARIABLE_NAME: &str = "x ∈ R_n";
7135}
7136
7137pub mod term_dc_10_lhs {
7138    /// `literalValue`
7139    pub const LITERAL_VALUE: &str = "optimal next constraint";
7140}
7141
7142pub mod term_dc_10_rhs {
7143    /// `literalValue`
7144    pub const LITERAL_VALUE: &str = "argmax J_k over free sites";
7145}
7146
7147pub mod term_dc_10_for_all {
7148    /// `variableName`
7149    pub const VARIABLE_NAME: &str = "resolution step";
7150}
7151
7152pub mod term_dc_11_lhs {
7153    /// `literalValue`
7154    pub const LITERAL_VALUE: &str = "Σ_{x} J_k(x)";
7155}
7156
7157pub mod term_dc_11_rhs {
7158    /// `literalValue`
7159    pub const LITERAL_VALUE: &str = "≈ (2^n - 2)/n for each k";
7160}
7161
7162pub mod term_dc_11_for_all {
7163    /// `variableName`
7164    pub const VARIABLE_NAME: &str = "0 ≤ k < n";
7165}
7166
7167pub mod term_ha_1_lhs {
7168    /// `literalValue`
7169    pub const LITERAL_VALUE: &str = "N(C)";
7170}
7171
7172pub mod term_ha_1_rhs {
7173    /// `literalValue`
7174    pub const LITERAL_VALUE: &str = "simplicial complex on constraints";
7175}
7176
7177pub mod term_ha_1_for_all {
7178    /// `variableName`
7179    pub const VARIABLE_NAME: &str = "constraint set C";
7180}
7181
7182pub mod term_ha_2_lhs {
7183    /// `literalValue`
7184    pub const LITERAL_VALUE: &str = "resolution stalls";
7185}
7186
7187pub mod term_ha_2_rhs {
7188    /// `literalValue`
7189    pub const LITERAL_VALUE: &str = "⟺ H_k(N(C)) ≠ 0 for some k > 0";
7190}
7191
7192pub mod term_ha_2_for_all {
7193    /// `variableName`
7194    pub const VARIABLE_NAME: &str = "constraint set C";
7195}
7196
7197pub mod term_ha_3_lhs {
7198    /// `literalValue`
7199    pub const LITERAL_VALUE: &str = "S_residual";
7200}
7201
7202pub mod term_ha_3_rhs {
7203    /// `literalValue`
7204    pub const LITERAL_VALUE: &str = "≥ Σ_k β_k × ln 2";
7205}
7206
7207pub mod term_ha_3_for_all {
7208    /// `variableName`
7209    pub const VARIABLE_NAME: &str = "constraint configuration C";
7210}
7211
7212pub mod term_it_2_lhs {
7213    /// `literalValue`
7214    pub const LITERAL_VALUE: &str = "χ(N(C))";
7215}
7216
7217pub mod term_it_2_rhs {
7218    /// `literalValue`
7219    pub const LITERAL_VALUE: &str = "Σ_k (-1)^k β_k";
7220}
7221
7222pub mod term_it_2_for_all {
7223    /// `variableName`
7224    pub const VARIABLE_NAME: &str = "constraint nerve N(C)";
7225}
7226
7227pub mod term_it_3_lhs {
7228    /// `literalValue`
7229    pub const LITERAL_VALUE: &str = "χ(N(C))";
7230}
7231
7232pub mod term_it_3_rhs {
7233    /// `literalValue`
7234    pub const LITERAL_VALUE: &str = "Σ_k (-1)^k dim(H_k)";
7235}
7236
7237pub mod term_it_3_for_all {
7238    /// `variableName`
7239    pub const VARIABLE_NAME: &str = "constraint nerve N(C)";
7240}
7241
7242pub mod term_it_6_lhs {
7243    /// `literalValue`
7244    pub const LITERAL_VALUE: &str = "λ_1(N(C))";
7245}
7246
7247pub mod term_it_6_rhs {
7248    /// `literalValue`
7249    pub const LITERAL_VALUE: &str = "lower bounds convergence rate";
7250}
7251
7252pub mod term_it_6_for_all {
7253    /// `variableName`
7254    pub const VARIABLE_NAME: &str = "constraint nerve N(C)";
7255}
7256
7257pub mod term_it_7a_lhs {
7258    /// `literalValue`
7259    pub const LITERAL_VALUE: &str = "Σ κ_k - χ(N(C))";
7260}
7261
7262pub mod term_it_7a_rhs {
7263    /// `literalValue`
7264    pub const LITERAL_VALUE: &str = "= S_residual / ln 2";
7265}
7266
7267pub mod term_it_7a_for_all {
7268    /// `variableName`
7269    pub const VARIABLE_NAME: &str = "constraint configuration C";
7270}
7271
7272pub mod term_it_7b_lhs {
7273    /// `literalValue`
7274    pub const LITERAL_VALUE: &str = "S_residual";
7275}
7276
7277pub mod term_it_7b_rhs {
7278    /// `literalValue`
7279    pub const LITERAL_VALUE: &str = "= (Σ κ_k - χ) × ln 2";
7280}
7281
7282pub mod term_it_7b_for_all {
7283    /// `variableName`
7284    pub const VARIABLE_NAME: &str = "constraint configuration C";
7285}
7286
7287pub mod term_it_7c_lhs {
7288    /// `literalValue`
7289    pub const LITERAL_VALUE: &str = "resolution cost";
7290}
7291
7292pub mod term_it_7c_rhs {
7293    /// `literalValue`
7294    pub const LITERAL_VALUE: &str = "≥ n - χ(N(C))";
7295}
7296
7297pub mod term_it_7c_for_all {
7298    /// `variableName`
7299    pub const VARIABLE_NAME: &str = "constraint configuration C";
7300}
7301
7302pub mod term_it_7d_lhs {
7303    /// `literalValue`
7304    pub const LITERAL_VALUE: &str = "resolution complete";
7305}
7306
7307pub mod term_it_7d_rhs {
7308    /// `literalValue`
7309    pub const LITERAL_VALUE: &str = "⟺ χ(N(C)) = n and all β_k = 0";
7310}
7311
7312pub mod term_it_7d_for_all {
7313    /// `variableName`
7314    pub const VARIABLE_NAME: &str = "constraint nerve N(C)";
7315}
7316
7317pub mod term_phi_1_lhs {
7318    /// `literalValue`
7319    pub const LITERAL_VALUE: &str = "φ₁(neg, ResidueConstraint(m,r))";
7320}
7321
7322pub mod term_phi_1_rhs {
7323    /// `literalValue`
7324    pub const LITERAL_VALUE: &str = "ResidueConstraint(m, m-r)";
7325}
7326
7327pub mod term_phi_1_for_all {
7328    /// `variableName`
7329    pub const VARIABLE_NAME: &str = "ring op, constraint";
7330}
7331
7332pub mod term_phi_2_lhs {
7333    /// `literalValue`
7334    pub const LITERAL_VALUE: &str = "φ₂(compose(A,B))";
7335}
7336
7337pub mod term_phi_2_rhs {
7338    /// `literalValue`
7339    pub const LITERAL_VALUE: &str = "φ₂(A) ∪ φ₂(B)";
7340}
7341
7342pub mod term_phi_2_for_all {
7343    /// `variableName`
7344    pub const VARIABLE_NAME: &str = "constraints A, B";
7345}
7346
7347pub mod term_phi_3_lhs {
7348    /// `literalValue`
7349    pub const LITERAL_VALUE: &str = "φ₃(closed site state)";
7350}
7351
7352pub mod term_phi_3_rhs {
7353    /// `literalValue`
7354    pub const LITERAL_VALUE: &str = "unique 4-component partition";
7355}
7356
7357pub mod term_phi_3_for_all {
7358    /// `variableName`
7359    pub const VARIABLE_NAME: &str = "closed FreeRank";
7360}
7361
7362pub mod term_phi_4_lhs {
7363    /// `literalValue`
7364    pub const LITERAL_VALUE: &str = "φ₄(T, x)";
7365}
7366
7367pub mod term_phi_4_rhs {
7368    /// `literalValue`
7369    pub const LITERAL_VALUE: &str = "φ₃(φ₂(φ₁(T, x)))";
7370}
7371
7372pub mod term_phi_4_for_all {
7373    /// `variableName`
7374    pub const VARIABLE_NAME: &str = "T ∈ T_n, x ∈ R_n";
7375}
7376
7377pub mod term_phi_5_lhs {
7378    /// `literalValue`
7379    pub const LITERAL_VALUE: &str = "φ₅(neg)";
7380}
7381
7382pub mod term_phi_5_rhs {
7383    /// `literalValue`
7384    pub const LITERAL_VALUE: &str = "preserves d_R, may change d_H";
7385}
7386
7387pub mod term_phi_5_for_all {
7388    /// `variableName`
7389    pub const VARIABLE_NAME: &str = "op ∈ Operation";
7390}
7391
7392pub mod term_phi_6_lhs {
7393    /// `literalValue`
7394    pub const LITERAL_VALUE: &str = "φ₆(state, observables)";
7395}
7396
7397pub mod term_phi_6_rhs {
7398    /// `literalValue`
7399    pub const LITERAL_VALUE: &str = "RefinementSuggestion";
7400}
7401
7402pub mod term_phi_6_for_all {
7403    /// `variableName`
7404    pub const VARIABLE_NAME: &str = "ResolutionState";
7405}
7406
7407pub mod term_psi_1_lhs {
7408    /// `literalValue`
7409    pub const LITERAL_VALUE: &str = "N(constraints)";
7410}
7411
7412pub mod term_psi_1_rhs {
7413    /// `literalValue`
7414    pub const LITERAL_VALUE: &str = "SimplicialComplex";
7415}
7416
7417pub mod term_psi_1_for_all {
7418    /// `variableName`
7419    pub const VARIABLE_NAME: &str = "constraint set";
7420}
7421
7422pub mod term_psi_2_lhs {
7423    /// `literalValue`
7424    pub const LITERAL_VALUE: &str = "C(K)";
7425}
7426
7427pub mod term_psi_2_rhs {
7428    /// `literalValue`
7429    pub const LITERAL_VALUE: &str = "ChainComplex";
7430}
7431
7432pub mod term_psi_2_for_all {
7433    /// `variableName`
7434    pub const VARIABLE_NAME: &str = "simplicial complex K";
7435}
7436
7437pub mod term_psi_3_lhs {
7438    /// `literalValue`
7439    pub const LITERAL_VALUE: &str = "H_k(C)";
7440}
7441
7442pub mod term_psi_3_rhs {
7443    /// `literalValue`
7444    pub const LITERAL_VALUE: &str = "ker(∂_k) / im(∂_{k+1})";
7445}
7446
7447pub mod term_psi_3_for_all {
7448    /// `variableName`
7449    pub const VARIABLE_NAME: &str = "chain complex C";
7450}
7451
7452pub mod term_psi_5_lhs {
7453    /// `literalValue`
7454    pub const LITERAL_VALUE: &str = "C^k";
7455}
7456
7457pub mod term_psi_5_rhs {
7458    /// `literalValue`
7459    pub const LITERAL_VALUE: &str = "Hom(C_k, R)";
7460}
7461
7462pub mod term_psi_5_for_all {
7463    /// `variableName`
7464    pub const VARIABLE_NAME: &str = "chain complex C, ring R";
7465}
7466
7467pub mod term_psi_6_lhs {
7468    /// `literalValue`
7469    pub const LITERAL_VALUE: &str = "H^k(C)";
7470}
7471
7472pub mod term_psi_6_rhs {
7473    /// `literalValue`
7474    pub const LITERAL_VALUE: &str = "ker(δ^k) / im(δ^{k-1})";
7475}
7476
7477pub mod term_psi_6_for_all {
7478    /// `variableName`
7479    pub const VARIABLE_NAME: &str = "cochain complex C";
7480}
7481
7482pub mod term_surface_symmetry_lhs {
7483    /// `literalValue`
7484    pub const LITERAL_VALUE: &str = "P(Π(G(s)))";
7485}
7486
7487pub mod term_surface_symmetry_rhs {
7488    /// `literalValue`
7489    pub const LITERAL_VALUE: &str = "s' where type(s') ≡ type(s) under F.constraint";
7490}
7491
7492pub mod term_surface_symmetry_for_all {
7493    /// `variableName`
7494    pub const VARIABLE_NAME: &str =
7495        "G: GroundingMap, P: ProjectionMap, F: Frame, s: Literal, G.symbolConstraints = P.projectionOrder";
7496}
7497
7498pub mod term_cc_1_lhs {
7499    /// `literalValue`
7500    pub const LITERAL_VALUE: &str = "resolution(x, T)";
7501}
7502
7503pub mod term_cc_1_rhs {
7504    /// `literalValue`
7505    pub const LITERAL_VALUE: &str = "O(1) for CompleteType T";
7506}
7507
7508pub mod term_cc_1_for_all {
7509    /// `variableName`
7510    pub const VARIABLE_NAME: &str = "x ∈ R_n, T: CompleteType";
7511}
7512
7513pub mod term_cc_2_lhs {
7514    /// `literalValue`
7515    pub const LITERAL_VALUE: &str = "completeness(T)";
7516}
7517
7518pub mod term_cc_2_rhs {
7519    /// `literalValue`
7520    pub const LITERAL_VALUE: &str = "implies completeness(T')";
7521}
7522
7523pub mod term_cc_2_for_all {
7524    /// `variableName`
7525    pub const VARIABLE_NAME: &str = "T, T': ConstrainedType, T ⊆ T'";
7526}
7527
7528pub mod term_cc_3_lhs {
7529    /// `literalValue`
7530    pub const LITERAL_VALUE: &str = "sitesClosed(W₁) + sitesClosed(W₂)";
7531}
7532
7533pub mod term_cc_3_rhs {
7534    /// `literalValue`
7535    pub const LITERAL_VALUE: &str = "= n for valid concat(W₁, W₂)";
7536}
7537
7538pub mod term_cc_3_for_all {
7539    /// `variableName`
7540    pub const VARIABLE_NAME: &str = "W₁, W₂: CompletenessWitness";
7541}
7542
7543pub mod term_cc_4_lhs {
7544    /// `literalValue`
7545    pub const LITERAL_VALUE: &str = "CompletenessResolver";
7546}
7547
7548pub mod term_cc_4_rhs {
7549    /// `literalValue`
7550    pub const LITERAL_VALUE: &str = "fix(ψ-pipeline, CompletenessCandidate)";
7551}
7552
7553pub mod term_cc_4_for_all {
7554    /// `variableName`
7555    pub const VARIABLE_NAME: &str = "CompletenessCandidate";
7556}
7557
7558pub mod term_cc_5_lhs {
7559    /// `literalValue`
7560    pub const LITERAL_VALUE: &str = "cert.verified = true";
7561}
7562
7563pub mod term_cc_5_rhs {
7564    /// `literalValue`
7565    pub const LITERAL_VALUE: &str = "implies χ(N(C)) = n ∧ ∀k: β_k = 0";
7566}
7567
7568pub mod term_cc_5_for_all {
7569    /// `variableName`
7570    pub const VARIABLE_NAME: &str = "cert: CompletenessCertificate";
7571}
7572
7573pub mod term_ql_1_lhs {
7574    /// `literalValue`
7575    pub const LITERAL_VALUE: &str = "neg(bnot(x))";
7576}
7577
7578pub mod term_ql_1_rhs {
7579    /// `literalValue`
7580    pub const LITERAL_VALUE: &str = "succ(x) in Z/(2ⁿ)Z";
7581}
7582
7583pub mod term_ql_1_for_all {
7584    /// `variableName`
7585    pub const VARIABLE_NAME: &str = "x ∈ R_n, n ≥ 1";
7586}
7587
7588pub mod term_ql_2_lhs {
7589    /// `literalValue`
7590    pub const LITERAL_VALUE: &str = "|D_{2ⁿ}|";
7591}
7592
7593pub mod term_ql_2_rhs {
7594    /// `literalValue`
7595    pub const LITERAL_VALUE: &str = "2ⁿ⁺¹ for all n ≥ 1";
7596}
7597
7598pub mod term_ql_2_for_all {
7599    /// `variableName`
7600    pub const VARIABLE_NAME: &str = "n ≥ 1";
7601}
7602
7603pub mod term_ql_3_lhs {
7604    /// `literalValue`
7605    pub const LITERAL_VALUE: &str = "P(j) = 2^{-j}";
7606}
7607
7608pub mod term_ql_3_rhs {
7609    /// `literalValue`
7610    pub const LITERAL_VALUE: &str = "Boltzmann distribution at β* = ln 2, all n ≥ 1";
7611}
7612
7613pub mod term_ql_3_for_all {
7614    /// `variableName`
7615    pub const VARIABLE_NAME: &str = "j ∈ R_n, n ≥ 1";
7616}
7617
7618pub mod term_ql_4_lhs {
7619    /// `literalValue`
7620    pub const LITERAL_VALUE: &str = "siteBudget(PrimitiveType, n)";
7621}
7622
7623pub mod term_ql_4_rhs {
7624    /// `literalValue`
7625    pub const LITERAL_VALUE: &str = "= n (one site per bit)";
7626}
7627
7628pub mod term_ql_4_for_all {
7629    /// `variableName`
7630    pub const VARIABLE_NAME: &str = "PrimitiveType, n ≥ 1";
7631}
7632
7633pub mod term_ql_5_lhs {
7634    /// `literalValue`
7635    pub const LITERAL_VALUE: &str = "resolution(CompleteType, n)";
7636}
7637
7638pub mod term_ql_5_rhs {
7639    /// `literalValue`
7640    pub const LITERAL_VALUE: &str = "O(1) for all n ≥ 1";
7641}
7642
7643pub mod term_ql_5_for_all {
7644    /// `variableName`
7645    pub const VARIABLE_NAME: &str = "CompleteType, n ≥ 1";
7646}
7647
7648pub mod term_ql_6_lhs {
7649    /// `literalValue`
7650    pub const LITERAL_VALUE: &str = "contentAddress(x, n)";
7651}
7652
7653pub mod term_ql_6_rhs {
7654    /// `literalValue`
7655    pub const LITERAL_VALUE: &str = "bijection for all n ≥ 1";
7656}
7657
7658pub mod term_ql_6_for_all {
7659    /// `variableName`
7660    pub const VARIABLE_NAME: &str = "x ∈ R_n, n ≥ 1";
7661}
7662
7663pub mod term_ql_7_lhs {
7664    /// `literalValue`
7665    pub const LITERAL_VALUE: &str = "ψ-pipeline(ConstrainedType, n)";
7666}
7667
7668pub mod term_ql_7_rhs {
7669    /// `literalValue`
7670    pub const LITERAL_VALUE: &str = "valid ChainComplex for all n ≥ 1";
7671}
7672
7673pub mod term_ql_7_for_all {
7674    /// `variableName`
7675    pub const VARIABLE_NAME: &str = "ConstrainedType, n ≥ 1";
7676}
7677
7678pub mod term_gr_1_lhs {
7679    /// `literalValue`
7680    pub const LITERAL_VALUE: &str = "freeRank(B_{i+1})";
7681}
7682
7683pub mod term_gr_1_rhs {
7684    /// `literalValue`
7685    pub const LITERAL_VALUE: &str = "≤ freeRank(B_i)";
7686}
7687
7688pub mod term_gr_1_for_all {
7689    /// `variableName`
7690    pub const VARIABLE_NAME: &str = "i in Session S";
7691}
7692
7693pub mod term_gr_2_lhs {
7694    /// `literalValue`
7695    pub const LITERAL_VALUE: &str = "b.datum resolves under b.constraint";
7696}
7697
7698pub mod term_gr_2_rhs {
7699    /// `literalValue`
7700    pub const LITERAL_VALUE: &str = "in O(1) iff Binding b is sound";
7701}
7702
7703pub mod term_gr_2_for_all {
7704    /// `variableName`
7705    pub const VARIABLE_NAME: &str = "b: Binding";
7706}
7707
7708pub mod term_gr_3_lhs {
7709    /// `literalValue`
7710    pub const LITERAL_VALUE: &str = "∃ i: freeRank(B_i) = 0";
7711}
7712
7713pub mod term_gr_3_rhs {
7714    /// `literalValue`
7715    pub const LITERAL_VALUE: &str = "Session S converges";
7716}
7717
7718pub mod term_gr_3_for_all {
7719    /// `variableName`
7720    pub const VARIABLE_NAME: &str = "Session S";
7721}
7722
7723pub mod term_gr_4_lhs {
7724    /// `literalValue`
7725    pub const LITERAL_VALUE: &str = "bindings(C_fresh) ∩ bindings(C_prior)";
7726}
7727
7728pub mod term_gr_4_rhs {
7729    /// `literalValue`
7730    pub const LITERAL_VALUE: &str = "= ∅ after SessionBoundary";
7731}
7732
7733pub mod term_gr_4_for_all {
7734    /// `variableName`
7735    pub const VARIABLE_NAME: &str = "C_prior, C_fresh: Context, SessionBoundary event";
7736}
7737
7738pub mod term_gr_5_lhs {
7739    /// `literalValue`
7740    pub const LITERAL_VALUE: &str = "ContradictionBoundary";
7741}
7742
7743pub mod term_gr_5_rhs {
7744    /// `literalValue`
7745    pub const LITERAL_VALUE: &str = "iff ∃ b, b': same address, different datum, same constraint";
7746}
7747
7748pub mod term_gr_5_for_all {
7749    /// `variableName`
7750    pub const VARIABLE_NAME: &str = "b, b': Binding in same Context";
7751}
7752
7753pub mod term_ts_1_lhs {
7754    /// `literalValue`
7755    pub const LITERAL_VALUE: &str = "nerve(T, target)";
7756}
7757
7758pub mod term_ts_1_rhs {
7759    /// `literalValue`
7760    pub const LITERAL_VALUE: &str = "∃ ConstrainedType T over R_n realising target";
7761}
7762
7763pub mod term_ts_1_for_all {
7764    /// `variableName`
7765    pub const VARIABLE_NAME: &str = "target: χ* ≤ n, β₀* = 1, β_k* = 0 for k ≥ 1";
7766}
7767
7768pub mod term_ts_2_lhs {
7769    /// `literalValue`
7770    pub const LITERAL_VALUE: &str = "basisSize(T, IT_7d target)";
7771}
7772
7773pub mod term_ts_2_rhs {
7774    /// `literalValue`
7775    pub const LITERAL_VALUE: &str = "n";
7776}
7777
7778pub mod term_ts_2_for_all {
7779    /// `variableName`
7780    pub const VARIABLE_NAME: &str = "IT_7d target, n-site types";
7781}
7782
7783pub mod term_ts_3_lhs {
7784    /// `literalValue`
7785    pub const LITERAL_VALUE: &str = "χ(N(C + constraint))";
7786}
7787
7788pub mod term_ts_3_rhs {
7789    /// `literalValue`
7790    pub const LITERAL_VALUE: &str = "≥ χ(N(C))";
7791}
7792
7793pub mod term_ts_3_for_all {
7794    /// `variableName`
7795    pub const VARIABLE_NAME: &str = "C: synthesis candidate constraint set";
7796}
7797
7798pub mod term_ts_4_lhs {
7799    /// `literalValue`
7800    pub const LITERAL_VALUE: &str = "steps(TypeSynthesisResolver, target)";
7801}
7802
7803pub mod term_ts_4_rhs {
7804    /// `literalValue`
7805    pub const LITERAL_VALUE: &str = "≤ n";
7806}
7807
7808pub mod term_ts_4_for_all {
7809    /// `variableName`
7810    pub const VARIABLE_NAME: &str = "target: realisable n-site type synthesis goal";
7811}
7812
7813pub mod term_ts_5_lhs {
7814    /// `literalValue`
7815    pub const LITERAL_VALUE: &str = "SynthesizedType achieves IT_7d";
7816}
7817
7818pub mod term_ts_5_rhs {
7819    /// `literalValue`
7820    pub const LITERAL_VALUE: &str = "iff CompletenessResolver certifies CompleteType";
7821}
7822
7823pub mod term_ts_5_for_all {
7824    /// `variableName`
7825    pub const VARIABLE_NAME: &str = "T: SynthesizedType";
7826}
7827
7828pub mod term_ts_6_lhs {
7829    /// `literalValue`
7830    pub const LITERAL_VALUE: &str = "E[steps, Jacobian-guided synthesis]";
7831}
7832
7833pub mod term_ts_6_rhs {
7834    /// `literalValue`
7835    pub const LITERAL_VALUE: &str = "O(n log n) vs O(n²) uninformed";
7836}
7837
7838pub mod term_ts_6_for_all {
7839    /// `variableName`
7840    pub const VARIABLE_NAME: &str = "T: n-site type synthesis goal";
7841}
7842
7843pub mod term_ts_7_lhs {
7844    /// `literalValue`
7845    pub const LITERAL_VALUE: &str = "β₀(N(C)) for non-empty C";
7846}
7847
7848pub mod term_ts_7_rhs {
7849    /// `literalValue`
7850    pub const LITERAL_VALUE: &str = "≥ 1";
7851}
7852
7853pub mod term_ts_7_for_all {
7854    /// `variableName`
7855    pub const VARIABLE_NAME: &str = "C: non-empty constraint set";
7856}
7857
7858pub mod term_wls_1_lhs {
7859    /// `literalValue`
7860    pub const LITERAL_VALUE: &str = "WittLift T' is CompleteType";
7861}
7862
7863pub mod term_wls_1_rhs {
7864    /// `literalValue`
7865    pub const LITERAL_VALUE: &str = "iff spectral sequence collapses at E_2";
7866}
7867
7868pub mod term_wls_1_for_all {
7869    /// `variableName`
7870    pub const VARIABLE_NAME: &str = "T: CompleteType at Q_n, T': WittLift to Q_{n+1}";
7871}
7872
7873pub mod term_wls_2_lhs {
7874    /// `literalValue`
7875    pub const LITERAL_VALUE: &str = "non-trivial LiftObstruction location";
7876}
7877
7878pub mod term_wls_2_rhs {
7879    /// `literalValue`
7880    pub const LITERAL_VALUE: &str = "specific site at bit position n+1";
7881}
7882
7883pub mod term_wls_2_for_all {
7884    /// `variableName`
7885    pub const VARIABLE_NAME: &str = "non-trivial LiftObstruction";
7886}
7887
7888pub mod term_wls_3_lhs {
7889    /// `literalValue`
7890    pub const LITERAL_VALUE: &str = "basisSize(T') for trivial lift";
7891}
7892
7893pub mod term_wls_3_rhs {
7894    /// `literalValue`
7895    pub const LITERAL_VALUE: &str = "basisSize(T) + 1";
7896}
7897
7898pub mod term_wls_3_for_all {
7899    /// `variableName`
7900    pub const VARIABLE_NAME: &str = "T: CompleteType at Q_n with closed constraint set";
7901}
7902
7903pub mod term_wls_4_lhs {
7904    /// `literalValue`
7905    pub const LITERAL_VALUE: &str = "spectral sequence convergence page";
7906}
7907
7908pub mod term_wls_4_rhs {
7909    /// `literalValue`
7910    pub const LITERAL_VALUE: &str = "≤ E_{d+2}";
7911}
7912
7913pub mod term_wls_4_for_all {
7914    /// `variableName`
7915    pub const VARIABLE_NAME: &str = "depth-d constraint configuration";
7916}
7917
7918pub mod term_wls_5_lhs {
7919    /// `literalValue`
7920    pub const LITERAL_VALUE: &str = "universallyValid identity in R_{n+1}";
7921}
7922
7923pub mod term_wls_5_rhs {
7924    /// `literalValue`
7925    pub const LITERAL_VALUE: &str = "holds with lifted constraint set";
7926}
7927
7928pub mod term_wls_5_for_all {
7929    /// `variableName`
7930    pub const VARIABLE_NAME: &str = "every op:universallyValid identity, WittLift T'";
7931}
7932
7933pub mod term_wls_6_lhs {
7934    /// `literalValue`
7935    pub const LITERAL_VALUE: &str = "ψ-pipeline ChainComplex(T')";
7936}
7937
7938pub mod term_wls_6_rhs {
7939    /// `literalValue`
7940    pub const LITERAL_VALUE: &str = "valid and restricts to ChainComplex(T) on base nerve";
7941}
7942
7943pub mod term_wls_6_for_all {
7944    /// `variableName`
7945    pub const VARIABLE_NAME: &str = "T': any WittLift of a CompleteType T";
7946}
7947
7948pub mod term_mn_1_lhs {
7949    /// `literalValue`
7950    pub const LITERAL_VALUE: &str = "HolonomyGroup(T)";
7951}
7952
7953pub mod term_mn_1_rhs {
7954    /// `literalValue`
7955    pub const LITERAL_VALUE: &str = "≤ D_{2^n}";
7956}
7957
7958pub mod term_mn_1_for_all {
7959    /// `variableName`
7960    pub const VARIABLE_NAME: &str = "T: ConstrainedType over R_n";
7961}
7962
7963pub mod term_mn_2_lhs {
7964    /// `literalValue`
7965    pub const LITERAL_VALUE: &str = "HolonomyGroup(T) for additive constraints";
7966}
7967
7968pub mod term_mn_2_rhs {
7969    /// `literalValue`
7970    pub const LITERAL_VALUE: &str = "{id} (trivial: T is FlatType)";
7971}
7972
7973pub mod term_mn_2_for_all {
7974    /// `variableName`
7975    pub const VARIABLE_NAME: &str = "T: all ResidueConstraint or DepthConstraint";
7976}
7977
7978pub mod term_mn_3_lhs {
7979    /// `literalValue`
7980    pub const LITERAL_VALUE: &str = "HolonomyGroup(T) with neg + bnot in closed path";
7981}
7982
7983pub mod term_mn_3_rhs {
7984    /// `literalValue`
7985    pub const LITERAL_VALUE: &str = "D_{2^n} (full dihedral holonomy)";
7986}
7987
7988pub mod term_mn_3_for_all {
7989    /// `variableName`
7990    pub const VARIABLE_NAME: &str =
7991        "T: ConstrainedType with neg-related and bnot-related constraints in closed path";
7992}
7993
7994pub mod term_mn_4_lhs {
7995    /// `literalValue`
7996    pub const LITERAL_VALUE: &str = "HolonomyGroup(T) ≠ {id}";
7997}
7998
7999pub mod term_mn_4_rhs {
8000    /// `literalValue`
8001    pub const LITERAL_VALUE: &str = "⟹ β₁(N(C(T))) ≥ 1";
8002}
8003
8004pub mod term_mn_4_for_all {
8005    /// `variableName`
8006    pub const VARIABLE_NAME: &str = "T: ConstrainedType";
8007}
8008
8009pub mod term_mn_5_lhs {
8010    /// `literalValue`
8011    pub const LITERAL_VALUE: &str = "CompleteType (IT_7d) ⟹ β₁ = 0 ⟹ holonomy";
8012}
8013
8014pub mod term_mn_5_rhs {
8015    /// `literalValue`
8016    pub const LITERAL_VALUE: &str = "trivial ⟹ FlatType";
8017}
8018
8019pub mod term_mn_5_for_all {
8020    /// `variableName`
8021    pub const VARIABLE_NAME: &str = "T: CompleteType";
8022}
8023
8024pub mod term_mn_6_lhs {
8025    /// `literalValue`
8026    pub const LITERAL_VALUE: &str = "monodromy(p₁ · p₂)";
8027}
8028
8029pub mod term_mn_6_rhs {
8030    /// `literalValue`
8031    pub const LITERAL_VALUE: &str = "monodromy(p₁) · monodromy(p₂) in D_{2^n}";
8032}
8033
8034pub mod term_mn_6_for_all {
8035    /// `variableName`
8036    pub const VARIABLE_NAME: &str = "p₁, p₂: ClosedConstraintPath";
8037}
8038
8039pub mod term_mn_7_lhs {
8040    /// `literalValue`
8041    pub const LITERAL_VALUE: &str = "TwistedType T ⟹ H²(N(C(T')); ℤ/2ℤ)";
8042}
8043
8044pub mod term_mn_7_rhs {
8045    /// `literalValue`
8046    pub const LITERAL_VALUE: &str = "non-zero class (non-trivial LiftObstruction)";
8047}
8048
8049pub mod term_mn_7_for_all {
8050    /// `variableName`
8051    pub const VARIABLE_NAME: &str = "T': any WittLift of TwistedType T";
8052}
8053
8054pub mod term_pt_1_lhs {
8055    /// `literalValue`
8056    pub const LITERAL_VALUE: &str = "siteBudget(A × B)";
8057}
8058
8059pub mod term_pt_1_rhs {
8060    /// `literalValue`
8061    pub const LITERAL_VALUE: &str = "siteBudget(A) + siteBudget(B)";
8062}
8063
8064pub mod term_pt_1_for_all {
8065    /// `variableName`
8066    pub const VARIABLE_NAME: &str = "A, B: TypeDefinition";
8067}
8068
8069pub mod term_pt_2_lhs {
8070    /// `literalValue`
8071    pub const LITERAL_VALUE: &str = "partition(A × B); grounds PartitionCertificate";
8072}
8073
8074pub mod term_pt_2_rhs {
8075    /// `literalValue`
8076    pub const LITERAL_VALUE: &str = "partition(A) ⊗ partition(B)";
8077}
8078
8079pub mod term_pt_2_for_all {
8080    /// `variableName`
8081    pub const VARIABLE_NAME: &str =
8082        "A, B: TypeDefinition; ∀ cert:PartitionCertificate c: c.partitionComponent ∈ {Irreducible, Reducible, Units, Exterior}";
8083}
8084
8085pub mod term_pt_3_lhs {
8086    /// `literalValue`
8087    pub const LITERAL_VALUE: &str = "χ(N(C(A × B)))";
8088}
8089
8090pub mod term_pt_3_rhs {
8091    /// `literalValue`
8092    pub const LITERAL_VALUE: &str = "χ(N(C(A))) + χ(N(C(B)))";
8093}
8094
8095pub mod term_pt_3_for_all {
8096    /// `variableName`
8097    pub const VARIABLE_NAME: &str = "A, B: TypeDefinition";
8098}
8099
8100pub mod term_pt_4_lhs {
8101    /// `literalValue`
8102    pub const LITERAL_VALUE: &str = "S(A × B)";
8103}
8104
8105pub mod term_pt_4_rhs {
8106    /// `literalValue`
8107    pub const LITERAL_VALUE: &str = "S(A) + S(B)";
8108}
8109
8110pub mod term_pt_4_for_all {
8111    /// `variableName`
8112    pub const VARIABLE_NAME: &str = "A, B: TypeDefinition";
8113}
8114
8115pub mod term_st_1_lhs {
8116    /// `literalValue`
8117    pub const LITERAL_VALUE: &str = "siteBudget(A + B)";
8118}
8119
8120pub mod term_st_1_rhs {
8121    /// `literalValue`
8122    pub const LITERAL_VALUE: &str = "max(siteBudget(A), siteBudget(B))";
8123}
8124
8125pub mod term_st_1_for_all {
8126    /// `variableName`
8127    pub const VARIABLE_NAME: &str = "A, B: TypeDefinition";
8128}
8129
8130pub mod term_st_2_lhs {
8131    /// `literalValue`
8132    pub const LITERAL_VALUE: &str = "S(A + B)";
8133}
8134
8135pub mod term_st_2_rhs {
8136    /// `literalValue`
8137    pub const LITERAL_VALUE: &str = "ln 2 + max(S(A), S(B))";
8138}
8139
8140pub mod term_st_2_for_all {
8141    /// `variableName`
8142    pub const VARIABLE_NAME: &str = "A, B: TypeDefinition";
8143}
8144
8145pub mod term_gs_1_lhs {
8146    /// `literalValue`
8147    pub const LITERAL_VALUE: &str = "T_ctx(C)";
8148}
8149
8150pub mod term_gs_1_rhs {
8151    /// `literalValue`
8152    pub const LITERAL_VALUE: &str = "freeRank(C) × ln 2 / n";
8153}
8154
8155pub mod term_gs_1_for_all {
8156    /// `variableName`
8157    pub const VARIABLE_NAME: &str = "C: Context, n = siteBudget";
8158}
8159
8160pub mod term_gs_2_lhs {
8161    /// `literalValue`
8162    pub const LITERAL_VALUE: &str = "σ(C)";
8163}
8164
8165pub mod term_gs_2_rhs {
8166    /// `literalValue`
8167    pub const LITERAL_VALUE: &str = "(n − freeRank(C)) / n";
8168}
8169
8170pub mod term_gs_2_for_all {
8171    /// `variableName`
8172    pub const VARIABLE_NAME: &str = "C: Context, n = siteBudget";
8173}
8174
8175pub mod term_gs_3_lhs {
8176    /// `literalValue`
8177    pub const LITERAL_VALUE: &str = "σ(B_{i+1})";
8178}
8179
8180pub mod term_gs_3_rhs {
8181    /// `literalValue`
8182    pub const LITERAL_VALUE: &str = "≥ σ(B_i)";
8183}
8184
8185pub mod term_gs_3_for_all {
8186    /// `variableName`
8187    pub const VARIABLE_NAME: &str = "i in Session S";
8188}
8189
8190pub mod term_gs_4_lhs {
8191    /// `literalValue`
8192    pub const LITERAL_VALUE: &str = "σ(C) = 1";
8193}
8194
8195pub mod term_gs_4_rhs {
8196    /// `literalValue`
8197    pub const LITERAL_VALUE: &str = "freeRank(C) = 0 ↔ S(C) = 0 ↔ T_ctx(C) = 0";
8198}
8199
8200pub mod term_gs_4_for_all {
8201    /// `variableName`
8202    pub const VARIABLE_NAME: &str = "C: Context";
8203}
8204
8205pub mod term_gs_5_lhs {
8206    /// `literalValue`
8207    pub const LITERAL_VALUE: &str = "stepCount(q, C) at freeRank(C) = 0";
8208}
8209
8210pub mod term_gs_5_rhs {
8211    /// `literalValue`
8212    pub const LITERAL_VALUE: &str = "0";
8213}
8214
8215pub mod term_gs_5_for_all {
8216    /// `variableName`
8217    pub const VARIABLE_NAME: &str = "q: Query, C: GroundedContext";
8218}
8219
8220pub mod term_gs_6_lhs {
8221    /// `literalValue`
8222    pub const LITERAL_VALUE: &str = "effectiveBudget(q, C)";
8223}
8224
8225pub mod term_gs_6_rhs {
8226    /// `literalValue`
8227    pub const LITERAL_VALUE: &str = "max(0, siteBudget(q.type) − |pinnedSites(C) ∩ q.siteSet|)";
8228}
8229
8230pub mod term_gs_6_for_all {
8231    /// `variableName`
8232    pub const VARIABLE_NAME: &str = "q: Query, C: Context";
8233}
8234
8235pub mod term_gs_7_lhs {
8236    /// `literalValue`
8237    pub const LITERAL_VALUE: &str = "Cost_saturation(C)";
8238}
8239
8240pub mod term_gs_7_rhs {
8241    /// `literalValue`
8242    pub const LITERAL_VALUE: &str = "n × k_B T × ln 2";
8243}
8244
8245pub mod term_gs_7_for_all {
8246    /// `variableName`
8247    pub const VARIABLE_NAME: &str = "C: GroundedContext, n = siteBudget";
8248}
8249
8250pub mod term_ms_1_lhs {
8251    /// `literalValue`
8252    pub const LITERAL_VALUE: &str = "β₀(N(C))";
8253}
8254
8255pub mod term_ms_1_rhs {
8256    /// `literalValue`
8257    pub const LITERAL_VALUE: &str = "≥ 1";
8258}
8259
8260pub mod term_ms_1_for_all {
8261    /// `variableName`
8262    pub const VARIABLE_NAME: &str = "C: non-empty ConstrainedType";
8263}
8264
8265pub mod term_ms_2_lhs {
8266    /// `literalValue`
8267    pub const LITERAL_VALUE: &str = "χ(N(C))";
8268}
8269
8270pub mod term_ms_2_rhs {
8271    /// `literalValue`
8272    pub const LITERAL_VALUE: &str = "≤ n";
8273}
8274
8275pub mod term_ms_2_for_all {
8276    /// `variableName`
8277    pub const VARIABLE_NAME: &str = "C: ConstrainedType at quantum level n";
8278}
8279
8280pub mod term_ms_3_lhs {
8281    /// `literalValue`
8282    pub const LITERAL_VALUE: &str = "χ(N(C + c))";
8283}
8284
8285pub mod term_ms_3_rhs {
8286    /// `literalValue`
8287    pub const LITERAL_VALUE: &str = "≥ χ(N(C))";
8288}
8289
8290pub mod term_ms_3_for_all {
8291    /// `variableName`
8292    pub const VARIABLE_NAME: &str = "C: ConstrainedType, c: Constraint";
8293}
8294
8295pub mod term_ms_4_lhs {
8296    /// `literalValue`
8297    pub const LITERAL_VALUE: &str = "achievable(χ*, β_k*, n)";
8298}
8299
8300pub mod term_ms_4_rhs {
8301    /// `literalValue`
8302    pub const LITERAL_VALUE: &str = "→ achievable(χ*, β_k*, n+1)";
8303}
8304
8305pub mod term_ms_4_for_all {
8306    /// `variableName`
8307    pub const VARIABLE_NAME: &str = "(χ*, β_k*) achievable at level n";
8308}
8309
8310pub mod term_ms_5_lhs {
8311    /// `literalValue`
8312    pub const LITERAL_VALUE: &str = "verified SynthesisSignature set";
8313}
8314
8315pub mod term_ms_5_rhs {
8316    /// `literalValue`
8317    pub const LITERAL_VALUE: &str = "→ exact morphospace boundary in the limit";
8318}
8319
8320pub mod term_ms_5_for_all {
8321    /// `variableName`
8322    pub const VARIABLE_NAME: &str = "all quantum levels";
8323}
8324
8325pub mod term_gd_1_lhs {
8326    /// `literalValue`
8327    pub const LITERAL_VALUE: &str = "isGeodesic(T)";
8328}
8329
8330pub mod term_gd_1_rhs {
8331    /// `literalValue`
8332    pub const LITERAL_VALUE: &str = "AR_1-ordered(T) ∧ DC_10-selected(T)";
8333}
8334
8335pub mod term_gd_1_for_all {
8336    /// `variableName`
8337    pub const VARIABLE_NAME: &str = "T: ComputationTrace";
8338}
8339
8340pub mod term_gd_2_lhs {
8341    /// `literalValue`
8342    pub const LITERAL_VALUE: &str = "ΔS_step(i) on geodesic";
8343}
8344
8345pub mod term_gd_2_rhs {
8346    /// `literalValue`
8347    pub const LITERAL_VALUE: &str = "ln 2";
8348}
8349
8350pub mod term_gd_2_for_all {
8351    /// `variableName`
8352    pub const VARIABLE_NAME: &str = "step i of GeodesicTrace T";
8353}
8354
8355pub mod term_gd_3_lhs {
8356    /// `literalValue`
8357    pub const LITERAL_VALUE: &str = "Cost_geodesic(T)";
8358}
8359
8360pub mod term_gd_3_rhs {
8361    /// `literalValue`
8362    pub const LITERAL_VALUE: &str = "freeRank_initial × k_B T × ln 2";
8363}
8364
8365pub mod term_gd_3_for_all {
8366    /// `variableName`
8367    pub const VARIABLE_NAME: &str = "T: GeodesicTrace";
8368}
8369
8370pub mod term_gd_4_lhs {
8371    /// `literalValue`
8372    pub const LITERAL_VALUE: &str = "Cost(T) for geodesic T";
8373}
8374
8375pub mod term_gd_4_rhs {
8376    /// `literalValue`
8377    pub const LITERAL_VALUE: &str = "= Cost(T') for any geodesic T' on same type";
8378}
8379
8380pub mod term_gd_4_for_all {
8381    /// `variableName`
8382    pub const VARIABLE_NAME: &str = "T, T': GeodesicTrace on same ConstrainedType";
8383}
8384
8385pub mod term_gd_5_lhs {
8386    /// `literalValue`
8387    pub const LITERAL_VALUE: &str = "isSubgeodesic(T)";
8388}
8389
8390pub mod term_gd_5_rhs {
8391    /// `literalValue`
8392    pub const LITERAL_VALUE: &str = "∃ i: J_k(step_i) < max_{free} J_k(state_i)";
8393}
8394
8395pub mod term_gd_5_for_all {
8396    /// `variableName`
8397    pub const VARIABLE_NAME: &str = "T: ComputationTrace";
8398}
8399
8400pub mod term_qm_1_lhs {
8401    /// `literalValue`
8402    pub const LITERAL_VALUE: &str = "S_vonNeumann(ψ)";
8403}
8404
8405pub mod term_qm_1_rhs {
8406    /// `literalValue`
8407    pub const LITERAL_VALUE: &str = "Cost_Landauer(collapse(ψ))";
8408}
8409
8410pub mod term_qm_1_for_all {
8411    /// `variableName`
8412    pub const VARIABLE_NAME: &str = "ψ: SuperposedSiteState";
8413}
8414
8415pub mod term_qm_2_lhs {
8416    /// `literalValue`
8417    pub const LITERAL_VALUE: &str = "collapse(ψ)";
8418}
8419
8420pub mod term_qm_2_rhs {
8421    /// `literalValue`
8422    pub const LITERAL_VALUE: &str = "apply(ResidueConstraint, collapsed_site)";
8423}
8424
8425pub mod term_qm_2_for_all {
8426    /// `variableName`
8427    pub const VARIABLE_NAME: &str = "ψ: SuperposedSiteState";
8428}
8429
8430pub mod term_qm_3_lhs {
8431    /// `literalValue`
8432    pub const LITERAL_VALUE: &str = "S_vN(ψ)";
8433}
8434
8435pub mod term_qm_3_rhs {
8436    /// `literalValue`
8437    pub const LITERAL_VALUE: &str = "∈ [0, ln 2]";
8438}
8439
8440pub mod term_qm_3_for_all {
8441    /// `variableName`
8442    pub const VARIABLE_NAME: &str = "ψ: single-site SuperposedSiteState";
8443}
8444
8445pub mod term_qm_4_lhs {
8446    /// `literalValue`
8447    pub const LITERAL_VALUE: &str = "collapse(collapse(ψ))";
8448}
8449
8450pub mod term_qm_4_rhs {
8451    /// `literalValue`
8452    pub const LITERAL_VALUE: &str = "collapse(ψ)";
8453}
8454
8455pub mod term_qm_4_for_all {
8456    /// `variableName`
8457    pub const VARIABLE_NAME: &str = "ψ: SuperposedSiteState";
8458}
8459
8460pub mod term_qm_5_lhs {
8461    /// `literalValue`
8462    pub const LITERAL_VALUE: &str = "Σᵢ |αᵢ|²";
8463}
8464
8465pub mod term_qm_5_rhs {
8466    /// `literalValue`
8467    pub const LITERAL_VALUE: &str = "1";
8468}
8469
8470pub mod term_qm_5_for_all {
8471    /// `variableName`
8472    pub const VARIABLE_NAME: &str = "SuperposedSiteState ψ";
8473}
8474
8475pub mod term_rc_6_lhs {
8476    /// `literalValue`
8477    pub const LITERAL_VALUE: &str = "normalize(ψ)";
8478}
8479
8480pub mod term_rc_6_rhs {
8481    /// `literalValue`
8482    pub const LITERAL_VALUE: &str = "ψ / sqrt(Σ |αᵢ|²)";
8483}
8484
8485pub mod term_rc_6_for_all {
8486    /// `variableName`
8487    pub const VARIABLE_NAME: &str = "SuperposedSiteState ψ";
8488}
8489
8490pub mod term_fpm_8_lhs {
8491    /// `literalValue`
8492    pub const LITERAL_VALUE: &str = "|Irr| + |Red| + |Unit| + |Ext|";
8493}
8494
8495pub mod term_fpm_8_rhs {
8496    /// `literalValue`
8497    pub const LITERAL_VALUE: &str = "2ⁿ";
8498}
8499
8500pub mod term_fpm_8_for_all {
8501    /// `variableName`
8502    pub const VARIABLE_NAME: &str = "Partition P over R_n";
8503}
8504
8505pub mod term_fpm_9_lhs {
8506    /// `literalValue`
8507    pub const LITERAL_VALUE: &str = "x ∈ Ext(T)";
8508}
8509
8510pub mod term_fpm_9_rhs {
8511    /// `literalValue`
8512    pub const LITERAL_VALUE: &str = "x ∉ carrier(T)";
8513}
8514
8515pub mod term_fpm_9_for_all {
8516    /// `variableName`
8517    pub const VARIABLE_NAME: &str = "TypeDefinition T, Datum x";
8518}
8519
8520pub mod term_mn_8_lhs {
8521    /// `literalValue`
8522    pub const LITERAL_VALUE: &str = "holonomyClassified(T)";
8523}
8524
8525pub mod term_mn_8_rhs {
8526    /// `literalValue`
8527    pub const LITERAL_VALUE: &str = "isFlatType(T) xor isTwistedType(T)";
8528}
8529
8530pub mod term_mn_8_for_all {
8531    /// `variableName`
8532    pub const VARIABLE_NAME: &str = "ConstrainedType T with holonomyGroup";
8533}
8534
8535pub mod term_ql_8_lhs {
8536    /// `literalValue`
8537    pub const LITERAL_VALUE: &str = "wittLevelPredecessor(nextWittLevel(Q_k))";
8538}
8539
8540pub mod term_ql_8_rhs {
8541    /// `literalValue`
8542    pub const LITERAL_VALUE: &str = "Q_k";
8543}
8544
8545pub mod term_ql_8_for_all {
8546    /// `variableName`
8547    pub const VARIABLE_NAME: &str = "WittLevel W_n with nextWittLevel defined";
8548}
8549
8550pub mod term_d_7_lhs {
8551    /// `literalValue`
8552    pub const LITERAL_VALUE: &str = "compose(rᵃ sᵖ, rᵇ sᵠ)";
8553}
8554
8555pub mod term_d_7_rhs {
8556    /// `literalValue`
8557    pub const LITERAL_VALUE: &str = "r^((a + (-1)ᵖ b) mod 2ⁿ) s^(p xor q)";
8558}
8559
8560pub mod term_d_7_for_all {
8561    /// `variableName`
8562    pub const VARIABLE_NAME: &str = "DihedralElement rᵃ sᵖ, rᵇ sᵠ in D_{2ⁿ}";
8563}
8564
8565pub mod term_sp_1_lhs {
8566    /// `literalValue`
8567    pub const LITERAL_VALUE: &str = "resolve_superposition(classical(x))";
8568}
8569
8570pub mod term_sp_1_rhs {
8571    /// `literalValue`
8572    pub const LITERAL_VALUE: &str = "resolve_classical(x)";
8573}
8574
8575pub mod term_sp_1_for_all {
8576    /// `variableName`
8577    pub const VARIABLE_NAME: &str = "Datum x";
8578}
8579
8580pub mod term_sp_2_lhs {
8581    /// `literalValue`
8582    pub const LITERAL_VALUE: &str = "collapse(resolve_superposition(ψ))";
8583}
8584
8585pub mod term_sp_2_rhs {
8586    /// `literalValue`
8587    pub const LITERAL_VALUE: &str = "resolve_classical(collapse(ψ))";
8588}
8589
8590pub mod term_sp_2_for_all {
8591    /// `variableName`
8592    pub const VARIABLE_NAME: &str = "SuperposedSiteState ψ";
8593}
8594
8595pub mod term_sp_3_lhs {
8596    /// `literalValue`
8597    pub const LITERAL_VALUE: &str = "amplitudeVector(resolve_superposition(ψ))";
8598}
8599
8600pub mod term_sp_3_rhs {
8601    /// `literalValue`
8602    pub const LITERAL_VALUE: &str = "normalized";
8603}
8604
8605pub mod term_sp_3_for_all {
8606    /// `variableName`
8607    pub const VARIABLE_NAME: &str = "SuperposedSiteState ψ";
8608}
8609
8610pub mod term_sp_4_lhs {
8611    /// `literalValue`
8612    pub const LITERAL_VALUE: &str = "P(collapse to site k)";
8613}
8614
8615pub mod term_sp_4_rhs {
8616    /// `literalValue`
8617    pub const LITERAL_VALUE: &str = "|α_k|²";
8618}
8619
8620pub mod term_sp_4_for_all {
8621    /// `variableName`
8622    pub const VARIABLE_NAME: &str = "SuperposedSiteState ψ, site index k";
8623}
8624
8625pub mod term_pt_2a_lhs {
8626    /// `literalValue`
8627    pub const LITERAL_VALUE: &str = "Π(A × B)";
8628}
8629
8630pub mod term_pt_2a_rhs {
8631    /// `literalValue`
8632    pub const LITERAL_VALUE: &str = "PartitionProduct(Π(A), Π(B))";
8633}
8634
8635pub mod term_pt_2a_for_all {
8636    /// `variableName`
8637    pub const VARIABLE_NAME: &str = "ProductType A × B";
8638}
8639
8640pub mod term_pt_2b_lhs {
8641    /// `literalValue`
8642    pub const LITERAL_VALUE: &str = "Π(A + B)";
8643}
8644
8645pub mod term_pt_2b_rhs {
8646    /// `literalValue`
8647    pub const LITERAL_VALUE: &str = "PartitionCoproduct(Π(A), Π(B))";
8648}
8649
8650pub mod term_pt_2b_for_all {
8651    /// `variableName`
8652    pub const VARIABLE_NAME: &str = "SumType A + B";
8653}
8654
8655pub mod term_gd_6_lhs {
8656    /// `literalValue`
8657    pub const LITERAL_VALUE: &str = "isGeodesic(trace)";
8658}
8659
8660pub mod term_gd_6_rhs {
8661    /// `literalValue`
8662    pub const LITERAL_VALUE: &str = "isAR1Ordered(trace) ∧ isDC10Selected(trace)";
8663}
8664
8665pub mod term_gd_6_for_all {
8666    /// `variableName`
8667    pub const VARIABLE_NAME: &str = "ComputationTrace trace";
8668}
8669
8670pub mod term_wt_1_lhs {
8671    /// `literalValue`
8672    pub const LITERAL_VALUE: &str = "LiftChain(Q_j, Q_k) valid";
8673}
8674
8675pub mod term_wt_1_rhs {
8676    /// `literalValue`
8677    pub const LITERAL_VALUE: &str = "every chainStep has trivial or resolved LiftObstruction";
8678}
8679
8680pub mod term_wt_1_for_all {
8681    /// `variableName`
8682    pub const VARIABLE_NAME: &str = "LiftChain from Q_j to Q_k";
8683}
8684
8685pub mod term_wt_2_lhs {
8686    /// `literalValue`
8687    pub const LITERAL_VALUE: &str = "obstructionCount(chain)";
8688}
8689
8690pub mod term_wt_2_rhs {
8691    /// `literalValue`
8692    pub const LITERAL_VALUE: &str = "<= chainLength(chain)";
8693}
8694
8695pub mod term_wt_2_for_all {
8696    /// `variableName`
8697    pub const VARIABLE_NAME: &str = "LiftChain";
8698}
8699
8700pub mod term_wt_3_lhs {
8701    /// `literalValue`
8702    pub const LITERAL_VALUE: &str = "resolvedBasisSize(Q_k)";
8703}
8704
8705pub mod term_wt_3_rhs {
8706    /// `literalValue`
8707    pub const LITERAL_VALUE: &str = "basisSize(Q_j) + chainLength + obstructionResolutionCost";
8708}
8709
8710pub mod term_wt_3_for_all {
8711    /// `variableName`
8712    pub const VARIABLE_NAME: &str = "LiftChain with source Q_j, target Q_k";
8713}
8714
8715pub mod term_wt_4_lhs {
8716    /// `literalValue`
8717    pub const LITERAL_VALUE: &str = "isFlat(chain)";
8718}
8719
8720pub mod term_wt_4_rhs {
8721    /// `literalValue`
8722    pub const LITERAL_VALUE: &str = "obstructionCount = 0 iff HolonomyGroup trivial at every step";
8723}
8724
8725pub mod term_wt_4_for_all {
8726    /// `variableName`
8727    pub const VARIABLE_NAME: &str = "LiftChain";
8728}
8729
8730pub mod term_wt_5_lhs {
8731    /// `literalValue`
8732    pub const LITERAL_VALUE: &str = "LiftChainCertificate exists";
8733}
8734
8735pub mod term_wt_5_rhs {
8736    /// `literalValue`
8737    pub const LITERAL_VALUE: &str = "CompleteType at Q_k satisfies IT_7d with witness chain";
8738}
8739
8740pub mod term_wt_5_for_all {
8741    /// `variableName`
8742    pub const VARIABLE_NAME: &str = "Q_k for arbitrary k";
8743}
8744
8745pub mod term_wt_6_lhs {
8746    /// `literalValue`
8747    pub const LITERAL_VALUE: &str = "QT_3 with chainLength=1, cost=0";
8748}
8749
8750pub mod term_wt_6_rhs {
8751    /// `literalValue`
8752    pub const LITERAL_VALUE: &str = "reduces to QLS_3";
8753}
8754
8755pub mod term_wt_6_for_all {
8756    /// `variableName`
8757    pub const VARIABLE_NAME: &str = "Single-step chains";
8758}
8759
8760pub mod term_wt_7_lhs {
8761    /// `literalValue`
8762    pub const LITERAL_VALUE: &str = "flat chain resolvedBasisSize(Q_k)";
8763}
8764
8765pub mod term_wt_7_rhs {
8766    /// `literalValue`
8767    pub const LITERAL_VALUE: &str = "basisSize(Q_j) + (k - j)";
8768}
8769
8770pub mod term_wt_7_for_all {
8771    /// `variableName`
8772    pub const VARIABLE_NAME: &str = "LiftChain with isFlat = true";
8773}
8774
8775pub mod term_cc_pins_lhs {
8776    /// `literalValue`
8777    pub const LITERAL_VALUE: &str = "pinsSites(CarryConstraint(p))";
8778}
8779
8780pub mod term_cc_pins_rhs {
8781    /// `literalValue`
8782    pub const LITERAL_VALUE: &str = "{k : p(k)=1} union {first-zero(p)}";
8783}
8784
8785pub mod term_cc_pins_for_all {
8786    /// `variableName`
8787    pub const VARIABLE_NAME: &str = "bit-pattern p in CarryConstraint";
8788}
8789
8790pub mod term_cc_cost_site_lhs {
8791    /// `literalValue`
8792    pub const LITERAL_VALUE: &str = "|pinsSites(CarryConstraint(p))|";
8793}
8794
8795pub mod term_cc_cost_site_rhs {
8796    /// `literalValue`
8797    pub const LITERAL_VALUE: &str = "popcount(p) + 1";
8798}
8799
8800pub mod term_cc_cost_site_for_all {
8801    /// `variableName`
8802    pub const VARIABLE_NAME: &str = "bit-pattern p in CarryConstraint";
8803}
8804
8805pub mod term_jsat_rr_lhs {
8806    /// `literalValue`
8807    pub const LITERAL_VALUE: &str = "jointSat(Res(m1,r1), Res(m2,r2))";
8808}
8809
8810pub mod term_jsat_rr_rhs {
8811    /// `literalValue`
8812    pub const LITERAL_VALUE: &str = "gcd(m1,m2) | (r1 - r2)";
8813}
8814
8815pub mod term_jsat_rr_for_all {
8816    /// `variableName`
8817    pub const VARIABLE_NAME: &str = "ResidueConstraint pairs over R_n";
8818}
8819
8820pub mod term_jsat_cr_lhs {
8821    /// `literalValue`
8822    pub const LITERAL_VALUE: &str = "jointSat(Carry(p), Res(m,r))";
8823}
8824
8825pub mod term_jsat_cr_rhs {
8826    /// `literalValue`
8827    pub const LITERAL_VALUE: &str = "pin-site intersection residue-class compatible";
8828}
8829
8830pub mod term_jsat_cr_for_all {
8831    /// `variableName`
8832    pub const VARIABLE_NAME: &str = "CarryConstraint, ResidueConstraint pairs";
8833}
8834
8835pub mod term_jsat_cc_lhs {
8836    /// `literalValue`
8837    pub const LITERAL_VALUE: &str = "jointSat(Carry(p1), Carry(p2))";
8838}
8839
8840pub mod term_jsat_cc_rhs {
8841    /// `literalValue`
8842    pub const LITERAL_VALUE: &str = "p1 AND p2 conflict-free";
8843}
8844
8845pub mod term_jsat_cc_for_all {
8846    /// `variableName`
8847    pub const VARIABLE_NAME: &str = "CarryConstraint pairs over R_n";
8848}
8849
8850pub mod term_d_8_lhs {
8851    /// `literalValue`
8852    pub const LITERAL_VALUE: &str = "(r^a s^p)^(-1)";
8853}
8854
8855pub mod term_d_8_rhs {
8856    /// `literalValue`
8857    pub const LITERAL_VALUE: &str = "r^(-(−1)^p a mod 2^n) s^p";
8858}
8859
8860pub mod term_d_8_for_all {
8861    /// `variableName`
8862    pub const VARIABLE_NAME: &str = "a in 0..2^n, p in {0,1}";
8863}
8864
8865pub mod term_d_9_lhs {
8866    /// `literalValue`
8867    pub const LITERAL_VALUE: &str = "ord(r^k s^1)";
8868}
8869
8870pub mod term_d_9_rhs {
8871    /// `literalValue`
8872    pub const LITERAL_VALUE: &str = "2";
8873}
8874
8875pub mod term_d_9_for_all {
8876    /// `variableName`
8877    pub const VARIABLE_NAME: &str = "k in Z/(2^n)Z";
8878}
8879
8880pub mod term_exp_1_lhs {
8881    /// `literalValue`
8882    pub const LITERAL_VALUE: &str = "carrier(C) is monotone";
8883}
8884
8885pub mod term_exp_1_rhs {
8886    /// `literalValue`
8887    pub const LITERAL_VALUE: &str = "all residues of C = modulus - 1, no Carry/Depth";
8888}
8889
8890pub mod term_exp_1_for_all {
8891    /// `variableName`
8892    pub const VARIABLE_NAME: &str = "ConstrainedType C over R_n";
8893}
8894
8895pub mod term_exp_2_lhs {
8896    /// `literalValue`
8897    pub const LITERAL_VALUE: &str = "count of monotone ConstrainedTypes at Q_n";
8898}
8899
8900pub mod term_exp_2_rhs {
8901    /// `literalValue`
8902    pub const LITERAL_VALUE: &str = "2^n";
8903}
8904
8905pub mod term_exp_2_for_all {
8906    /// `variableName`
8907    pub const VARIABLE_NAME: &str = "WittLevel W_n, n >= 1";
8908}
8909
8910pub mod term_exp_3_lhs {
8911    /// `literalValue`
8912    pub const LITERAL_VALUE: &str = "carrier(SumType(A,B))";
8913}
8914
8915pub mod term_exp_3_rhs {
8916    /// `literalValue`
8917    pub const LITERAL_VALUE: &str = "coproduct(carrier(A), carrier(B))";
8918}
8919
8920pub mod term_exp_3_for_all {
8921    /// `variableName`
8922    pub const VARIABLE_NAME: &str = "SumType A + B";
8923}
8924
8925pub mod term_st_3_lhs {
8926    /// `literalValue`
8927    pub const LITERAL_VALUE: &str = "chi(N(C(A+B)))";
8928}
8929
8930pub mod term_st_3_rhs {
8931    /// `literalValue`
8932    pub const LITERAL_VALUE: &str = "chi(N(C(A))) + chi(N(C(B)))";
8933}
8934
8935pub mod term_st_3_for_all {
8936    /// `variableName`
8937    pub const VARIABLE_NAME: &str = "disjoint SumType A + B";
8938}
8939
8940pub mod term_st_4_lhs {
8941    /// `literalValue`
8942    pub const LITERAL_VALUE: &str = "beta_k(N(C(A+B)))";
8943}
8944
8945pub mod term_st_4_rhs {
8946    /// `literalValue`
8947    pub const LITERAL_VALUE: &str = "beta_k(N(C(A))) + beta_k(N(C(B)))";
8948}
8949
8950pub mod term_st_4_for_all {
8951    /// `variableName`
8952    pub const VARIABLE_NAME: &str = "disjoint SumType A + B, k >= 0";
8953}
8954
8955pub mod term_st_5_lhs {
8956    /// `literalValue`
8957    pub const LITERAL_VALUE: &str = "CompleteType(A + B)";
8958}
8959
8960pub mod term_st_5_rhs {
8961    /// `literalValue`
8962    pub const LITERAL_VALUE: &str = "CompleteType(A) and CompleteType(B) and Q(A)=Q(B)";
8963}
8964
8965pub mod term_st_5_for_all {
8966    /// `variableName`
8967    pub const VARIABLE_NAME: &str = "SumType A + B";
8968}
8969
8970pub mod term_st_6_lhs {
8971    /// `literalValue`
8972    pub const LITERAL_VALUE: &str = "∃! tagSite(A + B)";
8973}
8974
8975pub mod term_st_6_rhs {
8976    /// `literalValue`
8977    pub const LITERAL_VALUE: &str =
8978        "uniqueSite ∉ dataSites(A) ∪ dataSites(B) ∧ carries ln 2 entropy (ST_2)";
8979}
8980
8981pub mod term_st_6_for_all {
8982    /// `variableName`
8983    pub const VARIABLE_NAME: &str = "A, B: TypeDefinition";
8984}
8985
8986pub mod term_st_7_lhs {
8987    /// `literalValue`
8988    pub const LITERAL_VALUE: &str = "constraints(A + B)";
8989}
8990
8991pub mod term_st_7_rhs {
8992    /// `literalValue`
8993    pub const LITERAL_VALUE: &str = "constraints(A) ∪ {tag=0} ∪ constraints(B) ∪ {tag=1}";
8994}
8995
8996pub mod term_st_7_for_all {
8997    /// `variableName`
8998    pub const VARIABLE_NAME: &str = "A, B: TypeDefinition";
8999}
9000
9001pub mod term_st_8_lhs {
9002    /// `literalValue`
9003    pub const LITERAL_VALUE: &str = "disjoint(N(C(A)), N(C(B)))";
9004}
9005
9006pub mod term_st_8_rhs {
9007    /// `literalValue`
9008    pub const LITERAL_VALUE: &str = "true";
9009}
9010
9011pub mod term_st_8_for_all {
9012    /// `variableName`
9013    pub const VARIABLE_NAME: &str = "A + B constructed via ST_6 ∧ ST_7 ∧ layoutTagSite";
9014}
9015
9016pub mod term_st_9_lhs {
9017    /// `literalValue`
9018    pub const LITERAL_VALUE: &str = "χ(N(C(A + B)))";
9019}
9020
9021pub mod term_st_9_rhs {
9022    /// `literalValue`
9023    pub const LITERAL_VALUE: &str = "χ(N(C(A))) + χ(N(C(B)))";
9024}
9025
9026pub mod term_st_9_for_all {
9027    /// `variableName`
9028    pub const VARIABLE_NAME: &str = "A + B constructed via PartitionCoproduct";
9029}
9030
9031pub mod term_st_10_lhs {
9032    /// `literalValue`
9033    pub const LITERAL_VALUE: &str = "β_k(A + B)";
9034}
9035
9036pub mod term_st_10_rhs {
9037    /// `literalValue`
9038    pub const LITERAL_VALUE: &str = "β_k(A) + β_k(B)";
9039}
9040
9041pub mod term_st_10_for_all {
9042    /// `variableName`
9043    pub const VARIABLE_NAME: &str = "A + B constructed via PartitionCoproduct, k ≥ 0";
9044}
9045
9046pub mod term_cpt_1_lhs {
9047    /// `literalValue`
9048    pub const LITERAL_VALUE: &str = "siteBudget(A ⊠ B)";
9049}
9050
9051pub mod term_cpt_1_rhs {
9052    /// `literalValue`
9053    pub const LITERAL_VALUE: &str = "siteBudget(A) + siteBudget(B)";
9054}
9055
9056pub mod term_cpt_1_for_all {
9057    /// `variableName`
9058    pub const VARIABLE_NAME: &str = "A, B: TypeDefinition";
9059}
9060
9061pub mod term_cpt_2a_lhs {
9062    /// `literalValue`
9063    pub const LITERAL_VALUE: &str = "Π(A ⊠ B)";
9064}
9065
9066pub mod term_cpt_2a_rhs {
9067    /// `literalValue`
9068    pub const LITERAL_VALUE: &str = "CartesianPartitionProduct(Π(A), Π(B))";
9069}
9070
9071pub mod term_cpt_2a_for_all {
9072    /// `variableName`
9073    pub const VARIABLE_NAME: &str = "A, B: TypeDefinition";
9074}
9075
9076pub mod term_cpt_3_lhs {
9077    /// `literalValue`
9078    pub const LITERAL_VALUE: &str = "χ(N(C(A ⊠ B)))";
9079}
9080
9081pub mod term_cpt_3_rhs {
9082    /// `literalValue`
9083    pub const LITERAL_VALUE: &str = "χ(N(C(A))) · χ(N(C(B)))";
9084}
9085
9086pub mod term_cpt_3_for_all {
9087    /// `variableName`
9088    pub const VARIABLE_NAME: &str = "A, B: TypeDefinition";
9089}
9090
9091pub mod term_cpt_4_lhs {
9092    /// `literalValue`
9093    pub const LITERAL_VALUE: &str = "β_k(A ⊠ B)";
9094}
9095
9096pub mod term_cpt_4_rhs {
9097    /// `literalValue`
9098    pub const LITERAL_VALUE: &str = "Σ_{i+j=k} β_i(A) · β_j(B)";
9099}
9100
9101pub mod term_cpt_4_for_all {
9102    /// `variableName`
9103    pub const VARIABLE_NAME: &str = "A, B: TypeDefinition, k ≥ 0";
9104}
9105
9106pub mod term_cpt_5_lhs {
9107    /// `literalValue`
9108    pub const LITERAL_VALUE: &str = "S(A ⊠ B)";
9109}
9110
9111pub mod term_cpt_5_rhs {
9112    /// `literalValue`
9113    pub const LITERAL_VALUE: &str = "S(A) + S(B)";
9114}
9115
9116pub mod term_cpt_5_for_all {
9117    /// `variableName`
9118    pub const VARIABLE_NAME: &str = "A, B: TypeDefinition";
9119}
9120
9121pub mod term_cpt_6_lhs {
9122    /// `literalValue`
9123    pub const LITERAL_VALUE: &str = "A ⊠ (B + C)";
9124}
9125
9126pub mod term_cpt_6_rhs {
9127    /// `literalValue`
9128    pub const LITERAL_VALUE: &str = "(A ⊠ B) + (A ⊠ C)";
9129}
9130
9131pub mod term_cpt_6_for_all {
9132    /// `variableName`
9133    pub const VARIABLE_NAME: &str = "A, B, C: TypeDefinition";
9134}
9135
9136pub mod term_ts_8_lhs {
9137    /// `literalValue`
9138    pub const LITERAL_VALUE: &str = "min constraints for beta_1 = k";
9139}
9140
9141pub mod term_ts_8_rhs {
9142    /// `literalValue`
9143    pub const LITERAL_VALUE: &str = "2k + 1";
9144}
9145
9146pub mod term_ts_8_for_all {
9147    /// `variableName`
9148    pub const VARIABLE_NAME: &str = "first Betti number k >= 1, n-site type";
9149}
9150
9151pub mod term_ts_9_lhs {
9152    /// `literalValue`
9153    pub const LITERAL_VALUE: &str = "TypeSynthesisResolver terminates";
9154}
9155
9156pub mod term_ts_9_rhs {
9157    /// `literalValue`
9158    pub const LITERAL_VALUE: &str = "within 2^n steps";
9159}
9160
9161pub mod term_ts_9_for_all {
9162    /// `variableName`
9163    pub const VARIABLE_NAME: &str = "WittLevel W_n, any target signature";
9164}
9165
9166pub mod term_ts_10_lhs {
9167    /// `literalValue`
9168    pub const LITERAL_VALUE: &str = "ForbiddenSignature(sigma)";
9169}
9170
9171pub mod term_ts_10_rhs {
9172    /// `literalValue`
9173    pub const LITERAL_VALUE: &str = "no ConstrainedType with <= n constraints realises sigma";
9174}
9175
9176pub mod term_ts_10_for_all {
9177    /// `variableName`
9178    pub const VARIABLE_NAME: &str = "topological signature sigma at Q_n";
9179}
9180
9181pub mod term_wt_8_lhs {
9182    /// `literalValue`
9183    pub const LITERAL_VALUE: &str = "ObstructionChain length from Q_j to Q_k";
9184}
9185
9186pub mod term_wt_8_rhs {
9187    /// `literalValue`
9188    pub const LITERAL_VALUE: &str = "<= (k-j) * C(basisSize(Q_j), 3)";
9189}
9190
9191pub mod term_wt_8_for_all {
9192    /// `variableName`
9193    pub const VARIABLE_NAME: &str = "LiftChain from Q_j to Q_k";
9194}
9195
9196pub mod term_wt_9_lhs {
9197    /// `literalValue`
9198    pub const LITERAL_VALUE: &str = "TowerCompletenessResolver terminates";
9199}
9200
9201pub mod term_wt_9_rhs {
9202    /// `literalValue`
9203    pub const LITERAL_VALUE: &str = "within QT_8 bound";
9204}
9205
9206pub mod term_wt_9_for_all {
9207    /// `variableName`
9208    pub const VARIABLE_NAME: &str = "LiftChain of finite length";
9209}
9210
9211pub mod term_coeff_1_lhs {
9212    /// `literalValue`
9213    pub const LITERAL_VALUE: &str = "standard coefficient ring for psi-pipeline";
9214}
9215
9216pub mod term_coeff_1_rhs {
9217    /// `literalValue`
9218    pub const LITERAL_VALUE: &str = "Z/2Z";
9219}
9220
9221pub mod term_coeff_1_for_all {
9222    /// `variableName`
9223    pub const VARIABLE_NAME: &str = "CechNerve N(C) at any quantum level";
9224}
9225
9226pub mod term_go_1_lhs {
9227    /// `literalValue`
9228    pub const LITERAL_VALUE: &str = "pinsSites(killing constraint for obstruction c)";
9229}
9230
9231pub mod term_go_1_rhs {
9232    /// `literalValue`
9233    pub const LITERAL_VALUE: &str = "superset of pinsSites(C_i) cap pinsSites(C_j)";
9234}
9235
9236pub mod term_go_1_for_all {
9237    /// `variableName`
9238    pub const VARIABLE_NAME: &str = "GluingObstruction c, cycle pair (C_i, C_j)";
9239}
9240
9241pub mod term_gr_6_lhs {
9242    /// `literalValue`
9243    pub const LITERAL_VALUE: &str = "freeRank(q) after grounding";
9244}
9245
9246pub mod term_gr_6_rhs {
9247    /// `literalValue`
9248    pub const LITERAL_VALUE: &str = "sites of q not in BindingAccumulator";
9249}
9250
9251pub mod term_gr_6_for_all {
9252    /// `variableName`
9253    pub const VARIABLE_NAME: &str = "grounded Session, new RelationQuery q";
9254}
9255
9256pub mod term_gr_7_lhs {
9257    /// `literalValue`
9258    pub const LITERAL_VALUE: &str = "sigma after re-entry with query q";
9259}
9260
9261pub mod term_gr_7_rhs {
9262    /// `literalValue`
9263    pub const LITERAL_VALUE: &str = "min(sigma, 1 - freeRank(q)/n)";
9264}
9265
9266pub mod term_gr_7_for_all {
9267    /// `variableName`
9268    pub const VARIABLE_NAME: &str = "SessionResolver, new query q";
9269}
9270
9271pub mod term_qm_6_lhs {
9272    /// `literalValue`
9273    pub const LITERAL_VALUE: &str = "amplitude index set of SuperposedSiteState over T";
9274}
9275
9276pub mod term_qm_6_rhs {
9277    /// `literalValue`
9278    pub const LITERAL_VALUE: &str = "monotone pinning trajectories consistent with T";
9279}
9280
9281pub mod term_qm_6_for_all {
9282    /// `variableName`
9283    pub const VARIABLE_NAME: &str = "SuperposedSiteState over ConstrainedType T at Q_n";
9284}
9285
9286pub mod term_cic_1_lhs {
9287    /// `literalValue`
9288    pub const LITERAL_VALUE: &str = "valid(T) ∧ T: Transform";
9289}
9290
9291pub mod term_cic_1_rhs {
9292    /// `literalValue`
9293    pub const LITERAL_VALUE: &str = "∃ c: TransformCertificate. certifies(c, T)";
9294}
9295
9296pub mod term_cic_1_for_all {
9297    /// `variableName`
9298    pub const VARIABLE_NAME: &str = "Transform T";
9299}
9300
9301pub mod term_cic_2_lhs {
9302    /// `literalValue`
9303    pub const LITERAL_VALUE: &str = "isometry(T) ∧ metric-preserving(T)";
9304}
9305
9306pub mod term_cic_2_rhs {
9307    /// `literalValue`
9308    pub const LITERAL_VALUE: &str = "∃ c: IsometryCertificate. certifies(c, T)";
9309}
9310
9311pub mod term_cic_2_for_all {
9312    /// `variableName`
9313    pub const VARIABLE_NAME: &str = "Isometry T";
9314}
9315
9316pub mod term_cic_3_lhs {
9317    /// `literalValue`
9318    pub const LITERAL_VALUE: &str = "f(f(x)) = x ∀ x ∈ R_n";
9319}
9320
9321pub mod term_cic_3_rhs {
9322    /// `literalValue`
9323    pub const LITERAL_VALUE: &str = "∃ c: InvolutionCertificate. certifies(c, f)";
9324}
9325
9326pub mod term_cic_3_for_all {
9327    /// `variableName`
9328    pub const VARIABLE_NAME: &str = "Involution f";
9329}
9330
9331pub mod term_cic_4_lhs {
9332    /// `literalValue`
9333    pub const LITERAL_VALUE: &str = "σ(C) = 1 ∧ freeRank = 0";
9334}
9335
9336pub mod term_cic_4_rhs {
9337    /// `literalValue`
9338    pub const LITERAL_VALUE: &str = "∃ c: GroundingCertificate. certifies(c, C)";
9339}
9340
9341pub mod term_cic_4_for_all {
9342    /// `variableName`
9343    pub const VARIABLE_NAME: &str = "GroundedContext C";
9344}
9345
9346pub mod term_cic_5_lhs {
9347    /// `literalValue`
9348    pub const LITERAL_VALUE: &str = "AR_1-ordered ∧ DC_10-selected trace";
9349}
9350
9351pub mod term_cic_5_rhs {
9352    /// `literalValue`
9353    pub const LITERAL_VALUE: &str = "∃ c: GeodesicCertificate. certifies(c, trace)";
9354}
9355
9356pub mod term_cic_5_for_all {
9357    /// `variableName`
9358    pub const VARIABLE_NAME: &str = "GeodesicTrace";
9359}
9360
9361pub mod term_cic_6_lhs {
9362    /// `literalValue`
9363    pub const LITERAL_VALUE: &str = "S_vN = L_cost at β* = ln 2";
9364}
9365
9366pub mod term_cic_6_rhs {
9367    /// `literalValue`
9368    pub const LITERAL_VALUE: &str = "∃ c: MeasurementCertificate. certifies(c, event)";
9369}
9370
9371pub mod term_cic_6_for_all {
9372    /// `variableName`
9373    pub const VARIABLE_NAME: &str = "MeasurementEvent";
9374}
9375
9376pub mod term_cic_7_lhs {
9377    /// `literalValue`
9378    pub const LITERAL_VALUE: &str = "P(k) = |α_k|² verified";
9379}
9380
9381pub mod term_cic_7_rhs {
9382    /// `literalValue`
9383    pub const LITERAL_VALUE: &str = "∃ c: BornRuleVerification. certifies(c, event)";
9384}
9385
9386pub mod term_cic_7_for_all {
9387    /// `variableName`
9388    pub const VARIABLE_NAME: &str = "MeasurementEvent with amplitude vector";
9389}
9390
9391pub mod term_gc_1_lhs {
9392    /// `literalValue`
9393    pub const LITERAL_VALUE: &str = "shared-frame grounding of symbol s";
9394}
9395
9396pub mod term_gc_1_rhs {
9397    /// `literalValue`
9398    pub const LITERAL_VALUE: &str = "∃ c: GroundingCertificate. certifies(c, map)";
9399}
9400
9401pub mod term_gc_1_for_all {
9402    /// `variableName`
9403    pub const VARIABLE_NAME: &str = "GroundingMap with valid ProjectionMap";
9404}
9405
9406pub mod term_gr_8_lhs {
9407    /// `literalValue`
9408    pub const LITERAL_VALUE: &str = "compose(S_A, S_B) valid at Q_k";
9409}
9410
9411pub mod term_gr_8_rhs {
9412    /// `literalValue`
9413    pub const LITERAL_VALUE: &str =
9414        "∀ j ≤ k: ∀ a ∈ pinnedSites(S_A, Q_j) ∩ pinnedSites(S_B, Q_j): datum(S_A, a, Q_j) = datum(S_B, a, Q_j)";
9415}
9416
9417pub mod term_gr_8_for_all {
9418    /// `variableName`
9419    pub const VARIABLE_NAME: &str = "S_A, S_B: Session at quantum level Q_k (k ≥ 0)";
9420}
9421
9422pub mod term_gr_9_lhs {
9423    /// `literalValue`
9424    pub const LITERAL_VALUE: &str = "leasedSites(L_A) ∩ leasedSites(L_B)";
9425}
9426
9427pub mod term_gr_9_rhs {
9428    /// `literalValue`
9429    pub const LITERAL_VALUE: &str = "= ∅";
9430}
9431
9432pub mod term_gr_9_for_all {
9433    /// `variableName`
9434    pub const VARIABLE_NAME: &str = "L_A, L_B: ContextLease on SharedContext C, L_A ≠ L_B";
9435}
9436
9437pub mod term_gr_10_lhs {
9438    /// `literalValue`
9439    pub const LITERAL_VALUE: &str = "finalState(R, P_1, Q)";
9440}
9441
9442pub mod term_gr_10_rhs {
9443    /// `literalValue`
9444    pub const LITERAL_VALUE: &str = "= finalState(R, P_2, Q) for any P_1, P_2: ExecutionPolicy";
9445}
9446
9447pub mod term_gr_10_for_all {
9448    /// `variableName`
9449    pub const VARIABLE_NAME: &str = "SessionResolver R with ExecutionPolicy P, pending query set Q";
9450}
9451
9452pub mod term_mc_1_lhs {
9453    /// `literalValue`
9454    pub const LITERAL_VALUE: &str = "Σᵢ freeRank(leasedSites(L_i))";
9455}
9456
9457pub mod term_mc_1_rhs {
9458    /// `literalValue`
9459    pub const LITERAL_VALUE: &str = "= freeRank(C)";
9460}
9461
9462pub mod term_mc_1_for_all {
9463    /// `variableName`
9464    pub const VARIABLE_NAME: &str =
9465        "SharedContext C; leaseSet {L_1, …, L_k} covering all sites of C";
9466}
9467
9468pub mod term_mc_2_lhs {
9469    /// `literalValue`
9470    pub const LITERAL_VALUE: &str = "freeRank(B_{i+1} |_L)";
9471}
9472
9473pub mod term_mc_2_rhs {
9474    /// `literalValue`
9475    pub const LITERAL_VALUE: &str = "≤ freeRank(B_i |_L)";
9476}
9477
9478pub mod term_mc_2_for_all {
9479    /// `variableName`
9480    pub const VARIABLE_NAME: &str =
9481        "ContextLease L held by Session S; binding step i within S restricted to leasedSites(L)";
9482}
9483
9484pub mod term_mc_3_lhs {
9485    /// `literalValue`
9486    pub const LITERAL_VALUE: &str = "freeRank(compose(S_A, S_B))";
9487}
9488
9489pub mod term_mc_3_rhs {
9490    /// `literalValue`
9491    pub const LITERAL_VALUE: &str =
9492        "freeRank(S_A) + freeRank(S_B) − |pinnedSites(S_A) ∩ pinnedSites(S_B)|";
9493}
9494
9495pub mod term_mc_3_for_all {
9496    /// `variableName`
9497    pub const VARIABLE_NAME: &str = "S_A, S_B: Session; compose(S_A, S_B) valid (SR_8 satisfied)";
9498}
9499
9500pub mod term_mc_4_lhs {
9501    /// `literalValue`
9502    pub const LITERAL_VALUE: &str = "freeRank(compose(S_A, S_B))";
9503}
9504
9505pub mod term_mc_4_rhs {
9506    /// `literalValue`
9507    pub const LITERAL_VALUE: &str = "= freeRank(S_A) + freeRank(S_B)";
9508}
9509
9510pub mod term_mc_4_for_all {
9511    /// `variableName`
9512    pub const VARIABLE_NAME: &str =
9513        "S_A, S_B on ContextLeases L_A, L_B within SharedContext C; SR_9 holds";
9514}
9515
9516pub mod term_mc_5_lhs {
9517    /// `literalValue`
9518    pub const LITERAL_VALUE: &str = "finalBindings(R, P_1, Q)";
9519}
9520
9521pub mod term_mc_5_rhs {
9522    /// `literalValue`
9523    pub const LITERAL_VALUE: &str = "= finalBindings(R, P_2, Q)";
9524}
9525
9526pub mod term_mc_5_for_all {
9527    /// `variableName`
9528    pub const VARIABLE_NAME: &str =
9529        "SessionResolver R; pending query set Q; ExecutionPolicy P_1, P_2";
9530}
9531
9532pub mod term_mc_6_lhs {
9533    /// `literalValue`
9534    pub const LITERAL_VALUE: &str = "σ(compose(S_1, …, S_k))";
9535}
9536
9537pub mod term_mc_6_rhs {
9538    /// `literalValue`
9539    pub const LITERAL_VALUE: &str = "= 1 (FullGrounding)";
9540}
9541
9542pub mod term_mc_6_for_all {
9543    /// `variableName`
9544    pub const VARIABLE_NAME: &str =
9545        "SharedContext C; leases {L_1, …, L_k} pairwise disjoint (SR_9) and fully covering C; each S_i with freeRank = 0 within L_i";
9546}
9547
9548pub mod term_mc_7_lhs {
9549    /// `literalValue`
9550    pub const LITERAL_VALUE: &str = "stepCount(q, C*)";
9551}
9552
9553pub mod term_mc_7_rhs {
9554    /// `literalValue`
9555    pub const LITERAL_VALUE: &str = "= 0";
9556}
9557
9558pub mod term_mc_7_for_all {
9559    /// `variableName`
9560    pub const VARIABLE_NAME: &str =
9561        "q: RelationQuery; C* = compose(S_1, …, S_k) with σ(C*) = 1 by MC_6";
9562}
9563
9564pub mod term_mc_8_lhs {
9565    /// `literalValue`
9566    pub const LITERAL_VALUE: &str = "max_i stepCount(S_i to convergence within L_i)";
9567}
9568
9569pub mod term_mc_8_rhs {
9570    /// `literalValue`
9571    pub const LITERAL_VALUE: &str = "≤ ⌈n/k⌉";
9572}
9573
9574pub mod term_mc_8_for_all {
9575    /// `variableName`
9576    pub const VARIABLE_NAME: &str =
9577        "SharedContext C with totalSites = n; uniform partition into k leases";
9578}
9579
9580pub mod term_wc_1_lhs {
9581    /// `literalValue`
9582    pub const LITERAL_VALUE: &str = "a_k(x)";
9583}
9584
9585pub mod term_wc_1_rhs {
9586    /// `literalValue`
9587    pub const LITERAL_VALUE: &str = "x_k (k-th bit of x)";
9588}
9589
9590pub mod term_wc_1_for_all {
9591    /// `variableName`
9592    pub const VARIABLE_NAME: &str = "x ∈ R_n, 0 ≤ k < n";
9593}
9594
9595pub mod term_wc_2_lhs {
9596    /// `literalValue`
9597    pub const LITERAL_VALUE: &str = "S_k − x_k − y_k (mod 2)";
9598}
9599
9600pub mod term_wc_2_rhs {
9601    /// `literalValue`
9602    pub const LITERAL_VALUE: &str = "c_k(x,y)";
9603}
9604
9605pub mod term_wc_2_for_all {
9606    /// `variableName`
9607    pub const VARIABLE_NAME: &str = "x, y ∈ R_n, 0 ≤ k < n";
9608}
9609
9610pub mod term_wc_3_lhs {
9611    /// `literalValue`
9612    pub const LITERAL_VALUE: &str = "CA_2 recurrence";
9613}
9614
9615pub mod term_wc_3_rhs {
9616    /// `literalValue`
9617    pub const LITERAL_VALUE: &str = "S_{k+1} ghost equation at p=2";
9618}
9619
9620pub mod term_wc_3_for_all {
9621    /// `variableName`
9622    pub const VARIABLE_NAME: &str = "x, y ∈ R_n";
9623}
9624
9625pub mod term_wc_4_lhs {
9626    /// `literalValue`
9627    pub const LITERAL_VALUE: &str = "δ_k(x+y) correction";
9628}
9629
9630pub mod term_wc_4_rhs {
9631    /// `literalValue`
9632    pub const LITERAL_VALUE: &str = "c_{k+1}(x,y)";
9633}
9634
9635pub mod term_wc_4_for_all {
9636    /// `variableName`
9637    pub const VARIABLE_NAME: &str = "x, y ∈ R_n";
9638}
9639
9640pub mod term_wc_5_lhs {
9641    /// `literalValue`
9642    pub const LITERAL_VALUE: &str = "obstruction_trivial = false";
9643}
9644
9645pub mod term_wc_5_rhs {
9646    /// `literalValue`
9647    pub const LITERAL_VALUE: &str = "δ_k ≠ 0 for some pair";
9648}
9649
9650pub mod term_wc_5_for_all {
9651    /// `variableName`
9652    pub const VARIABLE_NAME: &str = "Q_k, k ≥ 1";
9653}
9654
9655pub mod term_wc_6_lhs {
9656    /// `literalValue`
9657    pub const LITERAL_VALUE: &str = "d_Δ(x,y) > 0";
9658}
9659
9660pub mod term_wc_6_rhs {
9661    /// `literalValue`
9662    pub const LITERAL_VALUE: &str = "ghost defect nonzero";
9663}
9664
9665pub mod term_wc_6_for_all {
9666    /// `variableName`
9667    pub const VARIABLE_NAME: &str = "x, y ∈ R_n";
9668}
9669
9670pub mod term_wc_7_lhs {
9671    /// `literalValue`
9672    pub const LITERAL_VALUE: &str = "succ^{2ⁿ}(x) = x";
9673}
9674
9675pub mod term_wc_7_rhs {
9676    /// `literalValue`
9677    pub const LITERAL_VALUE: &str = "r^{2ⁿ} = 1 in Witt-Burnside ring";
9678}
9679
9680pub mod term_wc_7_for_all {
9681    /// `variableName`
9682    pub const VARIABLE_NAME: &str = "x ∈ R_n, n ≥ 1";
9683}
9684
9685pub mod term_wc_8_lhs {
9686    /// `literalValue`
9687    pub const LITERAL_VALUE: &str = "neg(succ(neg(x)))";
9688}
9689
9690pub mod term_wc_8_rhs {
9691    /// `literalValue`
9692    pub const LITERAL_VALUE: &str = "srs = r⁻¹ relation";
9693}
9694
9695pub mod term_wc_8_for_all {
9696    /// `variableName`
9697    pub const VARIABLE_NAME: &str = "x ∈ R_n, n ≥ 1";
9698}
9699
9700pub mod term_wc_9_lhs {
9701    /// `literalValue`
9702    pub const LITERAL_VALUE: &str = "bnot(neg(x)) = pred(x)";
9703}
9704
9705pub mod term_wc_9_rhs {
9706    /// `literalValue`
9707    pub const LITERAL_VALUE: &str = "Product of Witt-Burnside reflections";
9708}
9709
9710pub mod term_wc_9_for_all {
9711    /// `variableName`
9712    pub const VARIABLE_NAME: &str = "x ∈ R_n, n ≥ 1";
9713}
9714
9715pub mod term_wc_10_lhs {
9716    /// `literalValue`
9717    pub const LITERAL_VALUE: &str = "φ(x) on W_n(F_2)";
9718}
9719
9720pub mod term_wc_10_rhs {
9721    /// `literalValue`
9722    pub const LITERAL_VALUE: &str = "x (identity, F_2 perfect)";
9723}
9724
9725pub mod term_wc_10_for_all {
9726    /// `variableName`
9727    pub const VARIABLE_NAME: &str = "x ∈ R_n, n ≥ 1";
9728}
9729
9730pub mod term_wc_11_lhs {
9731    /// `literalValue`
9732    pub const LITERAL_VALUE: &str = "V(x) on W_n(F_2)";
9733}
9734
9735pub mod term_wc_11_rhs {
9736    /// `literalValue`
9737    pub const LITERAL_VALUE: &str = "add(x, x) in Z/(2ⁿ)Z";
9738}
9739
9740pub mod term_wc_11_for_all {
9741    /// `variableName`
9742    pub const VARIABLE_NAME: &str = "x ∈ R_n, n ≥ 1";
9743}
9744
9745pub mod term_wc_12_lhs {
9746    /// `literalValue`
9747    pub const LITERAL_VALUE: &str = "δ(x) on W_n(F_2)";
9748}
9749
9750pub mod term_wc_12_rhs {
9751    /// `literalValue`
9752    pub const LITERAL_VALUE: &str = "(x − mul(x,x)) / 2";
9753}
9754
9755pub mod term_wc_12_for_all {
9756    /// `variableName`
9757    pub const VARIABLE_NAME: &str = "x ∈ R_n, n ≥ 2";
9758}
9759
9760pub mod term_oa_1_lhs {
9761    /// `literalValue`
9762    pub const LITERAL_VALUE: &str = "|2|_2 · |2|_∞";
9763}
9764
9765pub mod term_oa_1_rhs {
9766    /// `literalValue`
9767    pub const LITERAL_VALUE: &str = "1 in Q×";
9768}
9769
9770pub mod term_oa_1_for_all {
9771    /// `variableName`
9772    pub const VARIABLE_NAME: &str = "p = 2";
9773}
9774
9775pub mod term_oa_2_lhs {
9776    /// `literalValue`
9777    pub const LITERAL_VALUE: &str = "CrossingCost(p=2)";
9778}
9779
9780pub mod term_oa_2_rhs {
9781    /// `literalValue`
9782    pub const LITERAL_VALUE: &str = "ln 2 = −ln|2|_2";
9783}
9784
9785pub mod term_oa_2_for_all {
9786    /// `variableName`
9787    pub const VARIABLE_NAME: &str = "p = 2";
9788}
9789
9790pub mod term_oa_3_lhs {
9791    /// `literalValue`
9792    pub const LITERAL_VALUE: &str = "β* in Cost_Landauer";
9793}
9794
9795pub mod term_oa_3_rhs {
9796    /// `literalValue`
9797    pub const LITERAL_VALUE: &str = "CrossingCost(p=2)";
9798}
9799
9800pub mod term_oa_3_for_all {
9801    /// `variableName`
9802    pub const VARIABLE_NAME: &str = "p = 2";
9803}
9804
9805pub mod term_oa_4_lhs {
9806    /// `literalValue`
9807    pub const LITERAL_VALUE: &str = "P(outcome k) = |α_k|_∞²";
9808}
9809
9810pub mod term_oa_4_rhs {
9811    /// `literalValue`
9812    pub const LITERAL_VALUE: &str = "Archimedean image of 2-adic amplitude";
9813}
9814
9815pub mod term_oa_4_for_all {
9816    /// `variableName`
9817    pub const VARIABLE_NAME: &str = "rational amplitudes";
9818}
9819
9820pub mod term_oa_5_lhs {
9821    /// `literalValue`
9822    pub const LITERAL_VALUE: &str =
9823        "Information cost of delta (division by 2); grounds MultiplicationCertificate";
9824}
9825
9826pub mod term_oa_5_rhs {
9827    /// `literalValue`
9828    pub const LITERAL_VALUE: &str = "ln 2 nats per MultiplicationCertificate sub-multiplication";
9829}
9830
9831pub mod term_oa_5_for_all {
9832    /// `variableName`
9833    pub const VARIABLE_NAME: &str = "p = 2; every MultiplicationCertificate accumulates OA_5 cost";
9834}
9835
9836pub mod term_ht_1_lhs {
9837    /// `literalValue`
9838    pub const LITERAL_VALUE: &str = "N(C)";
9839}
9840
9841pub mod term_ht_1_rhs {
9842    /// `literalValue`
9843    pub const LITERAL_VALUE: &str = "KanComplex";
9844}
9845
9846pub mod term_ht_1_for_all {
9847    /// `variableName`
9848    pub const VARIABLE_NAME: &str = "constraint configuration C";
9849}
9850
9851pub mod term_ht_2_lhs {
9852    /// `literalValue`
9853    pub const LITERAL_VALUE: &str = "π₀(N(C))";
9854}
9855
9856pub mod term_ht_2_rhs {
9857    /// `literalValue`
9858    pub const LITERAL_VALUE: &str = "Z^{β₀}";
9859}
9860
9861pub mod term_ht_2_for_all {
9862    /// `variableName`
9863    pub const VARIABLE_NAME: &str = "constraint configuration C";
9864}
9865
9866pub mod term_ht_3_lhs {
9867    /// `literalValue`
9868    pub const LITERAL_VALUE: &str = "π₁(N(C)) → D_{2^n}";
9869}
9870
9871pub mod term_ht_3_rhs {
9872    /// `literalValue`
9873    pub const LITERAL_VALUE: &str = "HolonomyGroup factorization";
9874}
9875
9876pub mod term_ht_3_for_all {
9877    /// `variableName`
9878    pub const VARIABLE_NAME: &str = "constraint configuration C";
9879}
9880
9881pub mod term_ht_4_lhs {
9882    /// `literalValue`
9883    pub const LITERAL_VALUE: &str = "π_k(N(C)) for k > dim(N(C))";
9884}
9885
9886pub mod term_ht_4_rhs {
9887    /// `literalValue`
9888    pub const LITERAL_VALUE: &str = "0";
9889}
9890
9891pub mod term_ht_4_for_all {
9892    /// `variableName`
9893    pub const VARIABLE_NAME: &str = "constraint configuration C, k > dim(N(C))";
9894}
9895
9896pub mod term_ht_5_lhs {
9897    /// `literalValue`
9898    pub const LITERAL_VALUE: &str = "τ_{≤1}(N(C))";
9899}
9900
9901pub mod term_ht_5_rhs {
9902    /// `literalValue`
9903    pub const LITERAL_VALUE: &str = "FlatType/TwistedType classification";
9904}
9905
9906pub mod term_ht_5_for_all {
9907    /// `variableName`
9908    pub const VARIABLE_NAME: &str = "constraint configuration C";
9909}
9910
9911pub mod term_ht_6_lhs {
9912    /// `literalValue`
9913    pub const LITERAL_VALUE: &str = "κ_k trivial for all k > d";
9914}
9915
9916pub mod term_ht_6_rhs {
9917    /// `literalValue`
9918    pub const LITERAL_VALUE: &str = "spectral sequence collapses at E_{d+2}";
9919}
9920
9921pub mod term_ht_6_for_all {
9922    /// `variableName`
9923    pub const VARIABLE_NAME: &str = "constraint configuration C, d = max simplex dim";
9924}
9925
9926pub mod term_ht_7_lhs {
9927    /// `literalValue`
9928    pub const LITERAL_VALUE: &str = "[α, β] ≠ 0 in π_{p+q−1}";
9929}
9930
9931pub mod term_ht_7_rhs {
9932    /// `literalValue`
9933    pub const LITERAL_VALUE: &str = "LiftObstruction non-trivial";
9934}
9935
9936pub mod term_ht_7_for_all {
9937    /// `variableName`
9938    pub const VARIABLE_NAME: &str = "α ∈ π_p, β ∈ π_q";
9939}
9940
9941pub mod term_ht_8_lhs {
9942    /// `literalValue`
9943    pub const LITERAL_VALUE: &str = "π_k(N(C)) ⊗ Z";
9944}
9945
9946pub mod term_ht_8_rhs {
9947    /// `literalValue`
9948    pub const LITERAL_VALUE: &str = "H_k(N(C); Z) for smallest k with π_k ≠ 0";
9949}
9950
9951pub mod term_ht_8_for_all {
9952    /// `variableName`
9953    pub const VARIABLE_NAME: &str = "constraint configuration C";
9954}
9955
9956pub mod term_psi_7_lhs {
9957    /// `literalValue`
9958    pub const LITERAL_VALUE: &str = "KanComplex(N(C))";
9959}
9960
9961pub mod term_psi_7_rhs {
9962    /// `literalValue`
9963    pub const LITERAL_VALUE: &str = "PostnikovTower";
9964}
9965
9966pub mod term_psi_7_for_all {
9967    /// `variableName`
9968    pub const VARIABLE_NAME: &str = "constraint configuration C";
9969}
9970
9971pub mod term_psi_8_lhs {
9972    /// `literalValue`
9973    pub const LITERAL_VALUE: &str = "PostnikovTower(τ≤k)";
9974}
9975
9976pub mod term_psi_8_rhs {
9977    /// `literalValue`
9978    pub const LITERAL_VALUE: &str = "HomotopyGroups(π_k)";
9979}
9980
9981pub mod term_psi_8_for_all {
9982    /// `variableName`
9983    pub const VARIABLE_NAME: &str = "constraint configuration C";
9984}
9985
9986pub mod term_psi_9_lhs {
9987    /// `literalValue`
9988    pub const LITERAL_VALUE: &str = "HomotopyGroups(π_k)";
9989}
9990
9991pub mod term_psi_9_rhs {
9992    /// `literalValue`
9993    pub const LITERAL_VALUE: &str = "KInvariants(κ_k)";
9994}
9995
9996pub mod term_psi_9_for_all {
9997    /// `variableName`
9998    pub const VARIABLE_NAME: &str = "constraint configuration C";
9999}
10000
10001pub mod term_hp_1_lhs {
10002    /// `literalValue`
10003    pub const LITERAL_VALUE: &str = "ψ_7 ∘ ψ_1";
10004}
10005
10006pub mod term_hp_1_rhs {
10007    /// `literalValue`
10008    pub const LITERAL_VALUE: &str = "Kan promotion of nerve";
10009}
10010
10011pub mod term_hp_1_for_all {
10012    /// `variableName`
10013    pub const VARIABLE_NAME: &str = "constraint configuration C";
10014}
10015
10016pub mod term_hp_2_lhs {
10017    /// `literalValue`
10018    pub const LITERAL_VALUE: &str = "ψ_8(τ≤k) restricted";
10019}
10020
10021pub mod term_hp_2_rhs {
10022    /// `literalValue`
10023    pub const LITERAL_VALUE: &str = "ψ_3(C≤k)";
10024}
10025
10026pub mod term_hp_2_for_all {
10027    /// `variableName`
10028    pub const VARIABLE_NAME: &str = "constraint configuration C, truncation level k";
10029}
10030
10031pub mod term_hp_3_lhs {
10032    /// `literalValue`
10033    pub const LITERAL_VALUE: &str = "ψ_9 detects convergence";
10034}
10035
10036pub mod term_hp_3_rhs {
10037    /// `literalValue`
10038    pub const LITERAL_VALUE: &str = "spectral sequence converges at E_{d+2}";
10039}
10040
10041pub mod term_hp_3_for_all {
10042    /// `variableName`
10043    pub const VARIABLE_NAME: &str = "constraint configuration C";
10044}
10045
10046pub mod term_hp_4_lhs {
10047    /// `literalValue`
10048    pub const LITERAL_VALUE: &str = "HomotopyResolver time";
10049}
10050
10051pub mod term_hp_4_rhs {
10052    /// `literalValue`
10053    pub const LITERAL_VALUE: &str = "O(n^{d+1})";
10054}
10055
10056pub mod term_hp_4_for_all {
10057    /// `variableName`
10058    pub const VARIABLE_NAME: &str = "d = max simplex dimension";
10059}
10060
10061pub mod term_md_1_lhs {
10062    /// `literalValue`
10063    pub const LITERAL_VALUE: &str = "dim(M_n)";
10064}
10065
10066pub mod term_md_1_rhs {
10067    /// `literalValue`
10068    pub const LITERAL_VALUE: &str = "basisSize(T)";
10069}
10070
10071pub mod term_md_1_for_all {
10072    /// `variableName`
10073    pub const VARIABLE_NAME: &str = "T in M_n";
10074}
10075
10076pub mod term_md_2_lhs {
10077    /// `literalValue`
10078    pub const LITERAL_VALUE: &str = "H^0(Def(T))";
10079}
10080
10081pub mod term_md_2_rhs {
10082    /// `literalValue`
10083    pub const LITERAL_VALUE: &str = "Aut(T) ∩ D_{2^n}";
10084}
10085
10086pub mod term_md_2_for_all {
10087    /// `variableName`
10088    pub const VARIABLE_NAME: &str = "CompleteType T";
10089}
10090
10091pub mod term_md_3_lhs {
10092    /// `literalValue`
10093    pub const LITERAL_VALUE: &str = "H^1(Def(T))";
10094}
10095
10096pub mod term_md_3_rhs {
10097    /// `literalValue`
10098    pub const LITERAL_VALUE: &str = "T_T(M_n)";
10099}
10100
10101pub mod term_md_3_for_all {
10102    /// `variableName`
10103    pub const VARIABLE_NAME: &str = "CompleteType T";
10104}
10105
10106pub mod term_md_4_lhs {
10107    /// `literalValue`
10108    pub const LITERAL_VALUE: &str = "H^2(Def(T))";
10109}
10110
10111pub mod term_md_4_rhs {
10112    /// `literalValue`
10113    pub const LITERAL_VALUE: &str = "LiftObstruction space";
10114}
10115
10116pub mod term_md_4_for_all {
10117    /// `variableName`
10118    pub const VARIABLE_NAME: &str = "CompleteType T";
10119}
10120
10121pub mod term_md_5_lhs {
10122    /// `literalValue`
10123    pub const LITERAL_VALUE: &str = "FlatType stratum codimension";
10124}
10125
10126pub mod term_md_5_rhs {
10127    /// `literalValue`
10128    pub const LITERAL_VALUE: &str = "0";
10129}
10130
10131pub mod term_md_5_for_all {
10132    /// `variableName`
10133    pub const VARIABLE_NAME: &str = "M_n at any quantum level";
10134}
10135
10136pub mod term_md_6_lhs {
10137    /// `literalValue`
10138    pub const LITERAL_VALUE: &str = "TwistedType stratum codimension";
10139}
10140
10141pub mod term_md_6_rhs {
10142    /// `literalValue`
10143    pub const LITERAL_VALUE: &str = "≥ 1";
10144}
10145
10146pub mod term_md_6_for_all {
10147    /// `variableName`
10148    pub const VARIABLE_NAME: &str = "M_n at any quantum level";
10149}
10150
10151pub mod term_md_7_lhs {
10152    /// `literalValue`
10153    pub const LITERAL_VALUE: &str = "VersalDeformation existence";
10154}
10155
10156pub mod term_md_7_rhs {
10157    /// `literalValue`
10158    pub const LITERAL_VALUE: &str = "guaranteed when H^2 = 0";
10159}
10160
10161pub mod term_md_7_for_all {
10162    /// `variableName`
10163    pub const VARIABLE_NAME: &str = "CompleteType T";
10164}
10165
10166pub mod term_md_8_lhs {
10167    /// `literalValue`
10168    pub const LITERAL_VALUE: &str = "familyPreservesCompleteness";
10169}
10170
10171pub mod term_md_8_rhs {
10172    /// `literalValue`
10173    pub const LITERAL_VALUE: &str = "H^2(Def(T_t)) = 0 along path";
10174}
10175
10176pub mod term_md_8_for_all {
10177    /// `variableName`
10178    pub const VARIABLE_NAME: &str = "DeformationFamily {C_t}";
10179}
10180
10181pub mod term_md_9_lhs {
10182    /// `literalValue`
10183    pub const LITERAL_VALUE: &str = "site(ModuliTowerMap, T) dimension";
10184}
10185
10186pub mod term_md_9_rhs {
10187    /// `literalValue`
10188    pub const LITERAL_VALUE: &str = "1 when obstructionTrivial";
10189}
10190
10191pub mod term_md_9_for_all {
10192    /// `variableName`
10193    pub const VARIABLE_NAME: &str = "CompleteType T, obstruction = 0";
10194}
10195
10196pub mod term_md_10_lhs {
10197    /// `literalValue`
10198    pub const LITERAL_VALUE: &str = "site(ModuliTowerMap, T)";
10199}
10200
10201pub mod term_md_10_rhs {
10202    /// `literalValue`
10203    pub const LITERAL_VALUE: &str = "empty iff TwistedType at every level";
10204}
10205
10206pub mod term_md_10_for_all {
10207    /// `variableName`
10208    pub const VARIABLE_NAME: &str = "CompleteType T";
10209}
10210
10211pub mod term_mr_1_lhs {
10212    /// `literalValue`
10213    pub const LITERAL_VALUE: &str = "ModuliResolver boundary";
10214}
10215
10216pub mod term_mr_1_rhs {
10217    /// `literalValue`
10218    pub const LITERAL_VALUE: &str = "MorphospaceBoundary";
10219}
10220
10221pub mod term_mr_1_for_all {
10222    /// `variableName`
10223    pub const VARIABLE_NAME: &str = "M_n";
10224}
10225
10226pub mod term_mr_2_lhs {
10227    /// `literalValue`
10228    pub const LITERAL_VALUE: &str = "StratificationRecord coverage";
10229}
10230
10231pub mod term_mr_2_rhs {
10232    /// `literalValue`
10233    pub const LITERAL_VALUE: &str = "every CompleteType in exactly one stratum";
10234}
10235
10236pub mod term_mr_2_for_all {
10237    /// `variableName`
10238    pub const VARIABLE_NAME: &str = "M_n";
10239}
10240
10241pub mod term_mr_3_lhs {
10242    /// `literalValue`
10243    pub const LITERAL_VALUE: &str = "ModuliResolver complexity";
10244}
10245
10246pub mod term_mr_3_rhs {
10247    /// `literalValue`
10248    pub const LITERAL_VALUE: &str = "O(n × basisSize²)";
10249}
10250
10251pub mod term_mr_3_for_all {
10252    /// `variableName`
10253    pub const VARIABLE_NAME: &str = "CompleteType T";
10254}
10255
10256pub mod term_mr_4_lhs {
10257    /// `literalValue`
10258    pub const LITERAL_VALUE: &str = "achievabilityStatus = Achievable";
10259}
10260
10261pub mod term_mr_4_rhs {
10262    /// `literalValue`
10263    pub const LITERAL_VALUE: &str = "signature in some HolonomyStratum";
10264}
10265
10266pub mod term_mr_4_for_all {
10267    /// `variableName`
10268    pub const VARIABLE_NAME: &str = "MorphospaceRecord";
10269}
10270
10271pub mod term_cy_1_lhs {
10272    /// `literalValue`
10273    pub const LITERAL_VALUE: &str = "generate(k)";
10274}
10275
10276pub mod term_cy_1_rhs {
10277    /// `literalValue`
10278    pub const LITERAL_VALUE: &str = "and(x_k, y_k) = 1";
10279}
10280
10281pub mod term_cy_1_for_all {
10282    /// `variableName`
10283    pub const VARIABLE_NAME: &str = "x, y ∈ R_n, 0 ≤ k < n";
10284}
10285
10286pub mod term_cy_2_lhs {
10287    /// `literalValue`
10288    pub const LITERAL_VALUE: &str = "propagate(k)";
10289}
10290
10291pub mod term_cy_2_rhs {
10292    /// `literalValue`
10293    pub const LITERAL_VALUE: &str = "xor(x_k, y_k) = 1 ∧ c_k = 1";
10294}
10295
10296pub mod term_cy_2_for_all {
10297    /// `variableName`
10298    pub const VARIABLE_NAME: &str = "x, y ∈ R_n, 0 ≤ k < n";
10299}
10300
10301pub mod term_cy_3_lhs {
10302    /// `literalValue`
10303    pub const LITERAL_VALUE: &str = "kill(k)";
10304}
10305
10306pub mod term_cy_3_rhs {
10307    /// `literalValue`
10308    pub const LITERAL_VALUE: &str = "and(x_k, y_k) = 0 ∧ xor(x_k, y_k) = 0";
10309}
10310
10311pub mod term_cy_3_for_all {
10312    /// `variableName`
10313    pub const VARIABLE_NAME: &str = "x, y ∈ R_n, 0 ≤ k < n";
10314}
10315
10316pub mod term_cy_4_lhs {
10317    /// `literalValue`
10318    pub const LITERAL_VALUE: &str = "d_Δ(x, y)";
10319}
10320
10321pub mod term_cy_4_rhs {
10322    /// `literalValue`
10323    pub const LITERAL_VALUE: &str = "|carryCount(x+y) − hammingDistance(x, y)|";
10324}
10325
10326pub mod term_cy_4_for_all {
10327    /// `variableName`
10328    pub const VARIABLE_NAME: &str = "x, y ∈ R_n";
10329}
10330
10331pub mod term_cy_5_lhs {
10332    /// `literalValue`
10333    pub const LITERAL_VALUE: &str = "argmin_enc Σ d_Δ(enc(s_i), enc(s_j))";
10334}
10335
10336pub mod term_cy_5_rhs {
10337    /// `literalValue`
10338    pub const LITERAL_VALUE: &str = "enc where carry significance ≅ domain dependency";
10339}
10340
10341pub mod term_cy_5_for_all {
10342    /// `variableName`
10343    pub const VARIABLE_NAME: &str = "finite symbol set S, observed pairs (s_i, s_j)";
10344}
10345
10346pub mod term_cy_6_lhs {
10347    /// `literalValue`
10348    pub const LITERAL_VALUE: &str = "min d_Δ site ordering";
10349}
10350
10351pub mod term_cy_6_rhs {
10352    /// `literalValue`
10353    pub const LITERAL_VALUE: &str = "high-significance sites → most informative observables";
10354}
10355
10356pub mod term_cy_6_for_all {
10357    /// `variableName`
10358    pub const VARIABLE_NAME: &str = "EncodingConfiguration over ordered domain";
10359}
10360
10361pub mod term_cy_7_lhs {
10362    /// `literalValue`
10363    pub const LITERAL_VALUE: &str = "T(carry_chain(n))";
10364}
10365
10366pub mod term_cy_7_rhs {
10367    /// `literalValue`
10368    pub const LITERAL_VALUE: &str = "O(log n) via prefix computation on (g_k, p_k) pairs";
10369}
10370
10371pub mod term_cy_7_for_all {
10372    /// `variableName`
10373    pub const VARIABLE_NAME: &str = "CarryChain of length n";
10374}
10375
10376pub mod term_bm_1_lhs {
10377    /// `literalValue`
10378    pub const LITERAL_VALUE: &str = "σ(C)";
10379}
10380
10381pub mod term_bm_1_rhs {
10382    /// `literalValue`
10383    pub const LITERAL_VALUE: &str = "(n − freeRank(C)) / n";
10384}
10385
10386pub mod term_bm_1_for_all {
10387    /// `variableName`
10388    pub const VARIABLE_NAME: &str = "Context C with n sites";
10389}
10390
10391pub mod term_bm_2_lhs {
10392    /// `literalValue`
10393    pub const LITERAL_VALUE: &str = "χ(nerve(C))";
10394}
10395
10396pub mod term_bm_2_rhs {
10397    /// `literalValue`
10398    pub const LITERAL_VALUE: &str = "Σ(−1)^k β_k(nerve(C))";
10399}
10400
10401pub mod term_bm_2_for_all {
10402    /// `variableName`
10403    pub const VARIABLE_NAME: &str = "constraint set C";
10404}
10405
10406pub mod term_bm_3_lhs {
10407    /// `literalValue`
10408    pub const LITERAL_VALUE: &str = "Σκ_k − χ";
10409}
10410
10411pub mod term_bm_3_rhs {
10412    /// `literalValue`
10413    pub const LITERAL_VALUE: &str = "S_residual / ln 2";
10414}
10415
10416pub mod term_bm_3_for_all {
10417    /// `variableName`
10418    pub const VARIABLE_NAME: &str = "computation state";
10419}
10420
10421pub mod term_bm_4_lhs {
10422    /// `literalValue`
10423    pub const LITERAL_VALUE: &str = "J_k (pinned site k)";
10424}
10425
10426pub mod term_bm_4_rhs {
10427    /// `literalValue`
10428    pub const LITERAL_VALUE: &str = "0";
10429}
10430
10431pub mod term_bm_4_for_all {
10432    /// `variableName`
10433    pub const VARIABLE_NAME: &str = "pinned site k";
10434}
10435
10436pub mod term_bm_5_lhs {
10437    /// `literalValue`
10438    pub const LITERAL_VALUE: &str = "d_Δ(x, y) > 0";
10439}
10440
10441pub mod term_bm_5_rhs {
10442    /// `literalValue`
10443    pub const LITERAL_VALUE: &str = "carry(x + y) ≠ 0";
10444}
10445
10446pub mod term_bm_5_for_all {
10447    /// `variableName`
10448    pub const VARIABLE_NAME: &str = "x, y ∈ R_n";
10449}
10450
10451pub mod term_bm_6_lhs {
10452    /// `literalValue`
10453    pub const LITERAL_VALUE: &str = "metric tower";
10454}
10455
10456pub mod term_bm_6_rhs {
10457    /// `literalValue`
10458    pub const LITERAL_VALUE: &str = "d_Δ → {σ, J_k} → β_k → χ → r";
10459}
10460
10461pub mod term_bm_6_for_all {
10462    /// `variableName`
10463    pub const VARIABLE_NAME: &str = "computation state";
10464}
10465
10466pub mod term_gl_1_lhs {
10467    /// `literalValue`
10468    pub const LITERAL_VALUE: &str = "σ(T)";
10469}
10470
10471pub mod term_gl_1_rhs {
10472    /// `literalValue`
10473    pub const LITERAL_VALUE: &str = "lower_adjoint(T)";
10474}
10475
10476pub mod term_gl_1_for_all {
10477    /// `variableName`
10478    pub const VARIABLE_NAME: &str = "type T in type lattice";
10479}
10480
10481pub mod term_gl_2_lhs {
10482    /// `literalValue`
10483    pub const LITERAL_VALUE: &str = "r(T)";
10484}
10485
10486pub mod term_gl_2_rhs {
10487    /// `literalValue`
10488    pub const LITERAL_VALUE: &str = "1 − upper_adjoint(T)";
10489}
10490
10491pub mod term_gl_2_for_all {
10492    /// `variableName`
10493    pub const VARIABLE_NAME: &str = "type T in type lattice";
10494}
10495
10496pub mod term_gl_3_lhs {
10497    /// `literalValue`
10498    pub const LITERAL_VALUE: &str = "upper(lower(T))";
10499}
10500
10501pub mod term_gl_3_rhs {
10502    /// `literalValue`
10503    pub const LITERAL_VALUE: &str = "T (fixpoint: σ=1, r=0)";
10504}
10505
10506pub mod term_gl_3_for_all {
10507    /// `variableName`
10508    pub const VARIABLE_NAME: &str = "CompleteType T";
10509}
10510
10511pub mod term_gl_4_lhs {
10512    /// `literalValue`
10513    pub const LITERAL_VALUE: &str = "T₁ ≤ T₂ in type lattice";
10514}
10515
10516pub mod term_gl_4_rhs {
10517    /// `literalValue`
10518    pub const LITERAL_VALUE: &str = "site(T₂) ⊆ site(T₁)";
10519}
10520
10521pub mod term_gl_4_for_all {
10522    /// `variableName`
10523    pub const VARIABLE_NAME: &str = "types T₁, T₂";
10524}
10525
10526pub mod term_nv_1_lhs {
10527    /// `literalValue`
10528    pub const LITERAL_VALUE: &str = "nerve(C₁ ∪ C₂)";
10529}
10530
10531pub mod term_nv_1_rhs {
10532    /// `literalValue`
10533    pub const LITERAL_VALUE: &str = "nerve(C₁) ∪ nerve(C₂)";
10534}
10535
10536pub mod term_nv_1_for_all {
10537    /// `variableName`
10538    pub const VARIABLE_NAME: &str = "disjoint constraint domains C₁, C₂";
10539}
10540
10541pub mod term_nv_2_lhs {
10542    /// `literalValue`
10543    pub const LITERAL_VALUE: &str = "β_k(C₁ ∪ C₂)";
10544}
10545
10546pub mod term_nv_2_rhs {
10547    /// `literalValue`
10548    pub const LITERAL_VALUE: &str = "β_k(C₁) + β_k(C₂) − β_k(C₁ ∩ C₂)";
10549}
10550
10551pub mod term_nv_2_for_all {
10552    /// `variableName`
10553    pub const VARIABLE_NAME: &str = "constraint sets C₁, C₂";
10554}
10555
10556pub mod term_nv_3_lhs {
10557    /// `literalValue`
10558    pub const LITERAL_VALUE: &str = "Δβ_k";
10559}
10560
10561pub mod term_nv_3_rhs {
10562    /// `literalValue`
10563    pub const LITERAL_VALUE: &str = "∈ {−1, 0, +1}";
10564}
10565
10566pub mod term_nv_3_for_all {
10567    /// `variableName`
10568    pub const VARIABLE_NAME: &str = "single constraint addition, dimension k";
10569}
10570
10571pub mod term_nv_4_lhs {
10572    /// `literalValue`
10573    pub const LITERAL_VALUE: &str = "β_k(C ∪ {c})";
10574}
10575
10576pub mod term_nv_4_rhs {
10577    /// `literalValue`
10578    pub const LITERAL_VALUE: &str = "≤ β_k(C)";
10579}
10580
10581pub mod term_nv_4_for_all {
10582    /// `variableName`
10583    pub const VARIABLE_NAME: &str = "constraint set C, new constraint c";
10584}
10585
10586pub mod term_sd_1_lhs {
10587    /// `literalValue`
10588    pub const LITERAL_VALUE: &str = "quantize(value, range, bits)";
10589}
10590
10591pub mod term_sd_1_rhs {
10592    /// `literalValue`
10593    pub const LITERAL_VALUE: &str = "ring element with d_R ∝ |v₁ − v₂|";
10594}
10595
10596pub mod term_sd_1_for_all {
10597    /// `variableName`
10598    pub const VARIABLE_NAME: &str = "values v in ordered domain";
10599}
10600
10601pub mod term_sd_2_lhs {
10602    /// `literalValue`
10603    pub const LITERAL_VALUE: &str = "encoding(alphabet)";
10604}
10605
10606pub mod term_sd_2_rhs {
10607    /// `literalValue`
10608    pub const LITERAL_VALUE: &str = "argmin_{e} Σ d_Δ(e(a), e(b))";
10609}
10610
10611pub mod term_sd_2_for_all {
10612    /// `variableName`
10613    pub const VARIABLE_NAME: &str = "symbol pairs (a,b) in alphabet";
10614}
10615
10616pub mod term_sd_3_lhs {
10617    /// `literalValue`
10618    pub const LITERAL_VALUE: &str = "Seq(T)";
10619}
10620
10621pub mod term_sd_3_rhs {
10622    /// `literalValue`
10623    pub const LITERAL_VALUE: &str = "Free(T) with backbone ordering";
10624}
10625
10626pub mod term_sd_3_for_all {
10627    /// `variableName`
10628    pub const VARIABLE_NAME: &str = "element type T";
10629}
10630
10631pub mod term_sd_4_lhs {
10632    /// `literalValue`
10633    pub const LITERAL_VALUE: &str = "sites(Tuple(f₁,...,fₖ))";
10634}
10635
10636pub mod term_sd_4_rhs {
10637    /// `literalValue`
10638    pub const LITERAL_VALUE: &str = "Σᵢ sites(fᵢ)";
10639}
10640
10641pub mod term_sd_4_for_all {
10642    /// `variableName`
10643    pub const VARIABLE_NAME: &str = "fields f_1,...,f_k of tuple type";
10644}
10645
10646pub mod term_sd_5_lhs {
10647    /// `literalValue`
10648    pub const LITERAL_VALUE: &str = "nerve(Graph(V,E))";
10649}
10650
10651pub mod term_sd_5_rhs {
10652    /// `literalValue`
10653    pub const LITERAL_VALUE: &str = "constraint_nerve(Graph(V,E))";
10654}
10655
10656pub mod term_sd_5_for_all {
10657    /// `variableName`
10658    pub const VARIABLE_NAME: &str = "graph (V,E) with typed nodes";
10659}
10660
10661pub mod term_sd_6_lhs {
10662    /// `literalValue`
10663    pub const LITERAL_VALUE: &str = "d_Δ(Set(a,b,c))";
10664}
10665
10666pub mod term_sd_6_rhs {
10667    /// `literalValue`
10668    pub const LITERAL_VALUE: &str = "d_Δ(Set(σ(a,b,c)))";
10669}
10670
10671pub mod term_sd_6_for_all {
10672    /// `variableName`
10673    pub const VARIABLE_NAME: &str = "permutation σ of set elements";
10674}
10675
10676pub mod term_sd_7_lhs {
10677    /// `literalValue`
10678    pub const LITERAL_VALUE: &str = "β_1(Tree(V,E))";
10679}
10680
10681pub mod term_sd_7_rhs {
10682    /// `literalValue`
10683    pub const LITERAL_VALUE: &str = "0";
10684}
10685
10686pub mod term_sd_7_for_all {
10687    /// `variableName`
10688    pub const VARIABLE_NAME: &str = "tree (V,E) with beta_0=1";
10689}
10690
10691pub mod term_sd_8_lhs {
10692    /// `literalValue`
10693    pub const LITERAL_VALUE: &str = "Table(S)";
10694}
10695
10696pub mod term_sd_8_rhs {
10697    /// `literalValue`
10698    pub const LITERAL_VALUE: &str = "Seq(Tuple(S))";
10699}
10700
10701pub mod term_sd_8_for_all {
10702    /// `variableName`
10703    pub const VARIABLE_NAME: &str = "schema S defining tuple fields";
10704}
10705
10706pub mod term_dd_1_lhs {
10707    /// `literalValue`
10708    pub const LITERAL_VALUE: &str = "δ(q, R)";
10709}
10710
10711pub mod term_dd_1_rhs {
10712    /// `literalValue`
10713    pub const LITERAL_VALUE: &str = "δ(q, R)";
10714}
10715
10716pub mod term_dd_1_for_all {
10717    /// `variableName`
10718    pub const VARIABLE_NAME: &str = "query q, registry R";
10719}
10720
10721pub mod term_dd_2_lhs {
10722    /// `literalValue`
10723    pub const LITERAL_VALUE: &str = "dom(R)";
10724}
10725
10726pub mod term_dd_2_rhs {
10727    /// `literalValue`
10728    pub const LITERAL_VALUE: &str = "{q | ∃r. δ(q,R)=r}";
10729}
10730
10731pub mod term_dd_2_for_all {
10732    /// `variableName`
10733    pub const VARIABLE_NAME: &str = "registry R";
10734}
10735
10736pub mod term_pi_1_lhs {
10737    /// `literalValue`
10738    pub const LITERAL_VALUE: &str = "ι(ι(s,C),C)";
10739}
10740
10741pub mod term_pi_1_rhs {
10742    /// `literalValue`
10743    pub const LITERAL_VALUE: &str = "ι(s,C)";
10744}
10745
10746pub mod term_pi_1_for_all {
10747    /// `variableName`
10748    pub const VARIABLE_NAME: &str = "symbol s, GroundedContext C";
10749}
10750
10751pub mod term_pi_2_lhs {
10752    /// `literalValue`
10753    pub const LITERAL_VALUE: &str = "type(ι(s,C))";
10754}
10755
10756pub mod term_pi_2_rhs {
10757    /// `literalValue`
10758    pub const LITERAL_VALUE: &str = "consistent(C)";
10759}
10760
10761pub mod term_pi_2_for_all {
10762    /// `variableName`
10763    pub const VARIABLE_NAME: &str = "symbol s, context C";
10764}
10765
10766pub mod term_pi_3_lhs {
10767    /// `literalValue`
10768    pub const LITERAL_VALUE: &str = "ι(s,C)";
10769}
10770
10771pub mod term_pi_3_rhs {
10772    /// `literalValue`
10773    pub const LITERAL_VALUE: &str = "P(Π(G(s,C)))";
10774}
10775
10776pub mod term_pi_3_for_all {
10777    /// `variableName`
10778    pub const VARIABLE_NAME: &str = "symbol s, context C";
10779}
10780
10781pub mod term_pi_4_lhs {
10782    /// `literalValue`
10783    pub const LITERAL_VALUE: &str = "complexity(ι(s,C))";
10784}
10785
10786pub mod term_pi_4_rhs {
10787    /// `literalValue`
10788    pub const LITERAL_VALUE: &str = "O(|C|)";
10789}
10790
10791pub mod term_pi_4_for_all {
10792    /// `variableName`
10793    pub const VARIABLE_NAME: &str = "symbol s, context C";
10794}
10795
10796pub mod term_pi_5_lhs {
10797    /// `literalValue`
10798    pub const LITERAL_VALUE: &str = "roundTrip(P(Π(G(s))))";
10799}
10800
10801pub mod term_pi_5_rhs {
10802    /// `literalValue`
10803    pub const LITERAL_VALUE: &str = "s";
10804}
10805
10806pub mod term_pi_5_for_all {
10807    /// `variableName`
10808    pub const VARIABLE_NAME: &str = "symbol s";
10809}
10810
10811pub mod term_pa_1_lhs {
10812    /// `literalValue`
10813    pub const LITERAL_VALUE: &str = "α(b₁,α(b₂,C))";
10814}
10815
10816pub mod term_pa_1_rhs {
10817    /// `literalValue`
10818    pub const LITERAL_VALUE: &str = "α(b₂,α(b₁,C))";
10819}
10820
10821pub mod term_pa_1_for_all {
10822    /// `variableName`
10823    pub const VARIABLE_NAME: &str = "bindings b₁,b₂, context C at saturation";
10824}
10825
10826pub mod term_pa_2_lhs {
10827    /// `literalValue`
10828    pub const LITERAL_VALUE: &str = "sites(α(b,C))";
10829}
10830
10831pub mod term_pa_2_rhs {
10832    /// `literalValue`
10833    pub const LITERAL_VALUE: &str = "sites(C) ∪ {b.site}";
10834}
10835
10836pub mod term_pa_2_for_all {
10837    /// `variableName`
10838    pub const VARIABLE_NAME: &str = "binding b, context C";
10839}
10840
10841pub mod term_pa_3_lhs {
10842    /// `literalValue`
10843    pub const LITERAL_VALUE: &str = "constraints(α(b,C))";
10844}
10845
10846pub mod term_pa_3_rhs {
10847    /// `literalValue`
10848    pub const LITERAL_VALUE: &str = "constraints(C) ∪ constraints(b)";
10849}
10850
10851pub mod term_pa_3_for_all {
10852    /// `variableName`
10853    pub const VARIABLE_NAME: &str = "binding b, context C";
10854}
10855
10856pub mod term_pa_4_lhs {
10857    /// `literalValue`
10858    pub const LITERAL_VALUE: &str = "α(b,C)|_{pinned(C)}";
10859}
10860
10861pub mod term_pa_4_rhs {
10862    /// `literalValue`
10863    pub const LITERAL_VALUE: &str = "C|_{pinned(C)}";
10864}
10865
10866pub mod term_pa_4_for_all {
10867    /// `variableName`
10868    pub const VARIABLE_NAME: &str = "binding b, context C";
10869}
10870
10871pub mod term_pa_5_lhs {
10872    /// `literalValue`
10873    pub const LITERAL_VALUE: &str = "α(∅, C)";
10874}
10875
10876pub mod term_pa_5_rhs {
10877    /// `literalValue`
10878    pub const LITERAL_VALUE: &str = "C";
10879}
10880
10881pub mod term_pa_5_for_all {
10882    /// `variableName`
10883    pub const VARIABLE_NAME: &str = "context C";
10884}
10885
10886pub mod term_pl_1_lhs {
10887    /// `literalValue`
10888    pub const LITERAL_VALUE: &str = "Lᵢ ∩ Lⱼ";
10889}
10890
10891pub mod term_pl_1_rhs {
10892    /// `literalValue`
10893    pub const LITERAL_VALUE: &str = "∅";
10894}
10895
10896pub mod term_pl_1_for_all {
10897    /// `variableName`
10898    pub const VARIABLE_NAME: &str = "leases Lᵢ, Lⱼ with i ≠ j";
10899}
10900
10901pub mod term_pl_2_lhs {
10902    /// `literalValue`
10903    pub const LITERAL_VALUE: &str = "⋃ᵢ Lᵢ";
10904}
10905
10906pub mod term_pl_2_rhs {
10907    /// `literalValue`
10908    pub const LITERAL_VALUE: &str = "S";
10909}
10910
10911pub mod term_pl_2_for_all {
10912    /// `variableName`
10913    pub const VARIABLE_NAME: &str = "shared context S, leases Lᵢ";
10914}
10915
10916pub mod term_pl_3_lhs {
10917    /// `literalValue`
10918    pub const LITERAL_VALUE: &str = "|{i | f ∈ Lᵢ}|";
10919}
10920
10921pub mod term_pl_3_rhs {
10922    /// `literalValue`
10923    pub const LITERAL_VALUE: &str = "1";
10924}
10925
10926pub mod term_pl_3_for_all {
10927    /// `variableName`
10928    pub const VARIABLE_NAME: &str = "site f in shared context S";
10929}
10930
10931pub mod term_pk_1_lhs {
10932    /// `literalValue`
10933    pub const LITERAL_VALUE: &str = "valid(κ(S₁,S₂))";
10934}
10935
10936pub mod term_pk_1_rhs {
10937    /// `literalValue`
10938    pub const LITERAL_VALUE: &str = "disjoint(S₁,S₂)";
10939}
10940
10941pub mod term_pk_1_for_all {
10942    /// `variableName`
10943    pub const VARIABLE_NAME: &str = "sessions S₁,S₂";
10944}
10945
10946pub mod term_pk_2_lhs {
10947    /// `literalValue`
10948    pub const LITERAL_VALUE: &str = "resolve(s, κ(S₁,S₂))";
10949}
10950
10951pub mod term_pk_2_rhs {
10952    /// `literalValue`
10953    pub const LITERAL_VALUE: &str = "resolve(s, S₁) ∨ resolve(s, S₂)";
10954}
10955
10956pub mod term_pk_2_for_all {
10957    /// `variableName`
10958    pub const VARIABLE_NAME: &str = "symbol s, sessions S₁,S₂";
10959}
10960
10961pub mod term_pp_1_lhs {
10962    /// `literalValue`
10963    pub const LITERAL_VALUE: &str = "κ(λₖ(α*(ι(s,·))), C)";
10964}
10965
10966pub mod term_pp_1_rhs {
10967    /// `literalValue`
10968    pub const LITERAL_VALUE: &str = "resolve(s, C)";
10969}
10970
10971pub mod term_pp_1_for_all {
10972    /// `variableName`
10973    pub const VARIABLE_NAME: &str = "symbol s, context C";
10974}
10975
10976pub mod term_pe_1_lhs {
10977    /// `literalValue`
10978    pub const LITERAL_VALUE: &str = "state(ψ, 0)";
10979}
10980
10981pub mod term_pe_1_rhs {
10982    /// `literalValue`
10983    pub const LITERAL_VALUE: &str = "1";
10984}
10985
10986pub mod term_pe_1_for_all {
10987    /// `variableName`
10988    pub const VARIABLE_NAME: &str = "reduction ψ";
10989}
10990
10991pub mod term_pe_2_lhs {
10992    /// `literalValue`
10993    pub const LITERAL_VALUE: &str = "ψ_1(q)";
10994}
10995
10996pub mod term_pe_2_rhs {
10997    /// `literalValue`
10998    pub const LITERAL_VALUE: &str = "δ(q, R)";
10999}
11000
11001pub mod term_pe_2_for_all {
11002    /// `variableName`
11003    pub const VARIABLE_NAME: &str = "query q, registry R";
11004}
11005
11006pub mod term_pe_3_lhs {
11007    /// `literalValue`
11008    pub const LITERAL_VALUE: &str = "ψ_2(r)";
11009}
11010
11011pub mod term_pe_3_rhs {
11012    /// `literalValue`
11013    pub const LITERAL_VALUE: &str = "G(r)";
11014}
11015
11016pub mod term_pe_3_for_all {
11017    /// `variableName`
11018    pub const VARIABLE_NAME: &str = "resolver r";
11019}
11020
11021pub mod term_pe_4_lhs {
11022    /// `literalValue`
11023    pub const LITERAL_VALUE: &str = "ψ_3(a)";
11024}
11025
11026pub mod term_pe_4_rhs {
11027    /// `literalValue`
11028    pub const LITERAL_VALUE: &str = "Π(a)";
11029}
11030
11031pub mod term_pe_4_for_all {
11032    /// `variableName`
11033    pub const VARIABLE_NAME: &str = "address a";
11034}
11035
11036pub mod term_pe_5_lhs {
11037    /// `literalValue`
11038    pub const LITERAL_VALUE: &str = "ψ_4(c)";
11039}
11040
11041pub mod term_pe_5_rhs {
11042    /// `literalValue`
11043    pub const LITERAL_VALUE: &str = "α*(c)";
11044}
11045
11046pub mod term_pe_5_for_all {
11047    /// `variableName`
11048    pub const VARIABLE_NAME: &str = "constraint set c";
11049}
11050
11051pub mod term_pe_6_lhs {
11052    /// `literalValue`
11053    pub const LITERAL_VALUE: &str = "ψ_5(b)";
11054}
11055
11056pub mod term_pe_6_rhs {
11057    /// `literalValue`
11058    pub const LITERAL_VALUE: &str = "P(b)";
11059}
11060
11061pub mod term_pe_6_for_all {
11062    /// `variableName`
11063    pub const VARIABLE_NAME: &str = "binding b";
11064}
11065
11066pub mod term_pe_7_lhs {
11067    /// `literalValue`
11068    pub const LITERAL_VALUE: &str = "ψ_5 ∘ ψ_4 ∘ ψ_3 ∘ ψ_2 ∘ ψ_1 ∘ ψ_0";
11069}
11070
11071pub mod term_pe_7_rhs {
11072    /// `literalValue`
11073    pub const LITERAL_VALUE: &str = "ψ";
11074}
11075
11076pub mod term_pe_7_for_all {
11077    /// `variableName`
11078    pub const VARIABLE_NAME: &str = "reduction ψ";
11079}
11080
11081pub mod term_pm_1_lhs {
11082    /// `literalValue`
11083    pub const LITERAL_VALUE: &str = "phase(stage_k)";
11084}
11085
11086pub mod term_pm_1_rhs {
11087    /// `literalValue`
11088    pub const LITERAL_VALUE: &str = "Ω^k";
11089}
11090
11091pub mod term_pm_1_for_all {
11092    /// `variableName`
11093    pub const VARIABLE_NAME: &str = "stage index k in 0..5";
11094}
11095
11096pub mod term_pm_2_lhs {
11097    /// `literalValue`
11098    pub const LITERAL_VALUE: &str = "gate(k)";
11099}
11100
11101pub mod term_pm_2_rhs {
11102    /// `literalValue`
11103    pub const LITERAL_VALUE: &str = "phase(k) == Ω^k";
11104}
11105
11106pub mod term_pm_2_for_all {
11107    /// `variableName`
11108    pub const VARIABLE_NAME: &str = "stage boundary k";
11109}
11110
11111pub mod term_pm_3_lhs {
11112    /// `literalValue`
11113    pub const LITERAL_VALUE: &str = "fail(gate(k))";
11114}
11115
11116pub mod term_pm_3_rhs {
11117    /// `literalValue`
11118    pub const LITERAL_VALUE: &str = "rollback(z → z̄)";
11119}
11120
11121pub mod term_pm_3_for_all {
11122    /// `variableName`
11123    pub const VARIABLE_NAME: &str = "stage k with gate failure";
11124}
11125
11126pub mod term_pm_4_lhs {
11127    /// `literalValue`
11128    pub const LITERAL_VALUE: &str = "conj(conj(z))";
11129}
11130
11131pub mod term_pm_4_rhs {
11132    /// `literalValue`
11133    pub const LITERAL_VALUE: &str = "z";
11134}
11135
11136pub mod term_pm_4_for_all {
11137    /// `variableName`
11138    pub const VARIABLE_NAME: &str = "complex value z";
11139}
11140
11141pub mod term_pm_5_lhs {
11142    /// `literalValue`
11143    pub const LITERAL_VALUE: &str = "sat(epoch_n)";
11144}
11145
11146pub mod term_pm_5_rhs {
11147    /// `literalValue`
11148    pub const LITERAL_VALUE: &str = "sat(epoch_{n+1})";
11149}
11150
11151pub mod term_pm_5_for_all {
11152    /// `variableName`
11153    pub const VARIABLE_NAME: &str = "consecutive epochs n, n+1";
11154}
11155
11156pub mod term_pm_6_lhs {
11157    /// `literalValue`
11158    pub const LITERAL_VALUE: &str = "context(window)";
11159}
11160
11161pub mod term_pm_6_rhs {
11162    /// `literalValue`
11163    pub const LITERAL_VALUE: &str = "base_context";
11164}
11165
11166pub mod term_pm_6_for_all {
11167    /// `variableName`
11168    pub const VARIABLE_NAME: &str = "service window";
11169}
11170
11171pub mod term_pm_7_lhs {
11172    /// `literalValue`
11173    pub const LITERAL_VALUE: &str = "ψ(s₀)";
11174}
11175
11176pub mod term_pm_7_rhs {
11177    /// `literalValue`
11178    pub const LITERAL_VALUE: &str = "ψ(s₀)";
11179}
11180
11181pub mod term_pm_7_for_all {
11182    /// `variableName`
11183    pub const VARIABLE_NAME: &str = "initial state s₀";
11184}
11185
11186pub mod term_er_1_lhs {
11187    /// `literalValue`
11188    pub const LITERAL_VALUE: &str = "advance(k, k+1)";
11189}
11190
11191pub mod term_er_1_rhs {
11192    /// `literalValue`
11193    pub const LITERAL_VALUE: &str = "guard(k) = true";
11194}
11195
11196pub mod term_er_1_for_all {
11197    /// `variableName`
11198    pub const VARIABLE_NAME: &str = "stage transition k to k+1";
11199}
11200
11201pub mod term_er_2_lhs {
11202    /// `literalValue`
11203    pub const LITERAL_VALUE: &str = "apply(effect(k))";
11204}
11205
11206pub mod term_er_2_rhs {
11207    /// `literalValue`
11208    pub const LITERAL_VALUE: &str = "atomic(effect(k))";
11209}
11210
11211pub mod term_er_2_for_all {
11212    /// `variableName`
11213    pub const VARIABLE_NAME: &str = "transition effect at stage k";
11214}
11215
11216pub mod term_er_3_lhs {
11217    /// `literalValue`
11218    pub const LITERAL_VALUE: &str = "eval(guard(k), s)";
11219}
11220
11221pub mod term_er_3_rhs {
11222    /// `literalValue`
11223    pub const LITERAL_VALUE: &str = "s (state unchanged)";
11224}
11225
11226pub mod term_er_3_for_all {
11227    /// `variableName`
11228    pub const VARIABLE_NAME: &str = "guard evaluation at stage k with state s";
11229}
11230
11231pub mod term_er_4_lhs {
11232    /// `literalValue`
11233    pub const LITERAL_VALUE: &str = "apply(e1; e2)";
11234}
11235
11236pub mod term_er_4_rhs {
11237    /// `literalValue`
11238    pub const LITERAL_VALUE: &str = "apply(e2; e1)";
11239}
11240
11241pub mod term_er_4_for_all {
11242    /// `variableName`
11243    pub const VARIABLE_NAME: &str = "effects e1, e2 within same stage";
11244}
11245
11246pub mod term_ea_1_lhs {
11247    /// `literalValue`
11248    pub const LITERAL_VALUE: &str = "free(epoch(n+1))";
11249}
11250
11251pub mod term_ea_1_rhs {
11252    /// `literalValue`
11253    pub const LITERAL_VALUE: &str = "free(epoch(0))";
11254}
11255
11256pub mod term_ea_1_for_all {
11257    /// `variableName`
11258    pub const VARIABLE_NAME: &str = "epoch boundary n to n+1";
11259}
11260
11261pub mod term_ea_2_lhs {
11262    /// `literalValue`
11263    pub const LITERAL_VALUE: &str = "grounded(epoch(n))";
11264}
11265
11266pub mod term_ea_2_rhs {
11267    /// `literalValue`
11268    pub const LITERAL_VALUE: &str = "grounded(epoch(n+1))";
11269}
11270
11271pub mod term_ea_2_for_all {
11272    /// `variableName`
11273    pub const VARIABLE_NAME: &str = "grounded sites across epoch boundary";
11274}
11275
11276pub mod term_ea_3_lhs {
11277    /// `literalValue`
11278    pub const LITERAL_VALUE: &str = "|context(w)|";
11279}
11280
11281pub mod term_ea_3_rhs {
11282    /// `literalValue`
11283    pub const LITERAL_VALUE: &str = "windowSize(w)";
11284}
11285
11286pub mod term_ea_3_for_all {
11287    /// `variableName`
11288    pub const VARIABLE_NAME: &str = "service window w";
11289}
11290
11291pub mod term_ea_4_lhs {
11292    /// `literalValue`
11293    pub const LITERAL_VALUE: &str = "admit(epoch(n))";
11294}
11295
11296pub mod term_ea_4_rhs {
11297    /// `literalValue`
11298    pub const LITERAL_VALUE: &str = "datum | refinement";
11299}
11300
11301pub mod term_ea_4_for_all {
11302    /// `variableName`
11303    pub const VARIABLE_NAME: &str = "epoch admission at epoch n";
11304}
11305
11306pub mod term_oe_1_lhs {
11307    /// `literalValue`
11308    pub const LITERAL_VALUE: &str = "stage(k); stage(k+1)";
11309}
11310
11311pub mod term_oe_1_rhs {
11312    /// `literalValue`
11313    pub const LITERAL_VALUE: &str = "fused(k, k+1)";
11314}
11315
11316pub mod term_oe_1_for_all {
11317    /// `variableName`
11318    pub const VARIABLE_NAME: &str = "adjacent stages k, k+1 with compatible guards";
11319}
11320
11321pub mod term_oe_2_lhs {
11322    /// `literalValue`
11323    pub const LITERAL_VALUE: &str = "effect(a); effect(b)";
11324}
11325
11326pub mod term_oe_2_rhs {
11327    /// `literalValue`
11328    pub const LITERAL_VALUE: &str = "effect(b); effect(a)";
11329}
11330
11331pub mod term_oe_2_for_all {
11332    /// `variableName`
11333    pub const VARIABLE_NAME: &str = "independent effects a, b";
11334}
11335
11336pub mod term_oe_3_lhs {
11337    /// `literalValue`
11338    pub const LITERAL_VALUE: &str = "lease(A); lease(B)";
11339}
11340
11341pub mod term_oe_3_rhs {
11342    /// `literalValue`
11343    pub const LITERAL_VALUE: &str = "lease(A) || lease(B)";
11344}
11345
11346pub mod term_oe_3_for_all {
11347    /// `variableName`
11348    pub const VARIABLE_NAME: &str = "disjoint lease sets A, B";
11349}
11350
11351pub mod term_oe_4a_lhs {
11352    /// `literalValue`
11353    pub const LITERAL_VALUE: &str = "sem(fused(k, k+1))";
11354}
11355
11356pub mod term_oe_4a_rhs {
11357    /// `literalValue`
11358    pub const LITERAL_VALUE: &str = "sem(stage(k)); sem(stage(k+1))";
11359}
11360
11361pub mod term_oe_4a_for_all {
11362    /// `variableName`
11363    pub const VARIABLE_NAME: &str = "fused stages k, k+1";
11364}
11365
11366pub mod term_oe_4b_lhs {
11367    /// `literalValue`
11368    pub const LITERAL_VALUE: &str = "outcome(a; b)";
11369}
11370
11371pub mod term_oe_4b_rhs {
11372    /// `literalValue`
11373    pub const LITERAL_VALUE: &str = "outcome(b; a)";
11374}
11375
11376pub mod term_oe_4b_for_all {
11377    /// `variableName`
11378    pub const VARIABLE_NAME: &str = "commuting effects a, b";
11379}
11380
11381pub mod term_oe_4c_lhs {
11382    /// `literalValue`
11383    pub const LITERAL_VALUE: &str = "coverage(A || B)";
11384}
11385
11386pub mod term_oe_4c_rhs {
11387    /// `literalValue`
11388    pub const LITERAL_VALUE: &str = "coverage(A) + coverage(B)";
11389}
11390
11391pub mod term_oe_4c_for_all {
11392    /// `variableName`
11393    pub const VARIABLE_NAME: &str = "parallel leases A, B";
11394}
11395
11396pub mod term_cs_1_lhs {
11397    /// `literalValue`
11398    pub const LITERAL_VALUE: &str = "cost(stage(k))";
11399}
11400
11401pub mod term_cs_1_rhs {
11402    /// `literalValue`
11403    pub const LITERAL_VALUE: &str = "O(1)";
11404}
11405
11406pub mod term_cs_1_for_all {
11407    /// `variableName`
11408    pub const VARIABLE_NAME: &str = "reduction step k";
11409}
11410
11411pub mod term_cs_2_lhs {
11412    /// `literalValue`
11413    pub const LITERAL_VALUE: &str = "cost(pipeline)";
11414}
11415
11416pub mod term_cs_2_rhs {
11417    /// `literalValue`
11418    pub const LITERAL_VALUE: &str = "sum(cost(stage(k)))";
11419}
11420
11421pub mod term_cs_2_for_all {
11422    /// `variableName`
11423    pub const VARIABLE_NAME: &str = "reduction pipeline";
11424}
11425
11426pub mod term_cs_3_lhs {
11427    /// `literalValue`
11428    pub const LITERAL_VALUE: &str = "cost(rollback)";
11429}
11430
11431pub mod term_cs_3_rhs {
11432    /// `literalValue`
11433    pub const LITERAL_VALUE: &str = "cost(forward)";
11434}
11435
11436pub mod term_cs_3_for_all {
11437    /// `variableName`
11438    pub const VARIABLE_NAME: &str = "reduction rollback operation";
11439}
11440
11441pub mod term_cs_4_lhs {
11442    /// `literalValue`
11443    pub const LITERAL_VALUE: &str = "cost(preflight)";
11444}
11445
11446pub mod term_cs_4_rhs {
11447    /// `literalValue`
11448    pub const LITERAL_VALUE: &str = "O(1)";
11449}
11450
11451pub mod term_cs_4_for_all {
11452    /// `variableName`
11453    pub const VARIABLE_NAME: &str = "preflight check";
11454}
11455
11456pub mod term_cs_5_lhs {
11457    /// `literalValue`
11458    pub const LITERAL_VALUE: &str = "cost(reduction)";
11459}
11460
11461pub mod term_cs_5_rhs {
11462    /// `literalValue`
11463    pub const LITERAL_VALUE: &str = "n * max(cost(stage(k)))";
11464}
11465
11466pub mod term_cs_5_for_all {
11467    /// `variableName`
11468    pub const VARIABLE_NAME: &str = "reduction with n stages";
11469}
11470
11471pub mod term_cs_6_lhs {
11472    /// `literalValue`
11473    pub const LITERAL_VALUE: &str = "thermodynamicBudget(U) < bitsWidth(unitWittLevel(U)) × ln 2";
11474}
11475
11476pub mod term_cs_6_rhs {
11477    /// `literalValue`
11478    pub const LITERAL_VALUE: &str = "reject(U) at BudgetSolvencyCheck";
11479}
11480
11481pub mod term_cs_6_for_all {
11482    /// `variableName`
11483    pub const VARIABLE_NAME: &str = "CompileUnit U";
11484}
11485
11486pub mod term_cs_7_lhs {
11487    /// `literalValue`
11488    pub const LITERAL_VALUE: &str = "unitAddress(U)";
11489}
11490
11491pub mod term_cs_7_rhs {
11492    /// `literalValue`
11493    pub const LITERAL_VALUE: &str = "address(canonicalBytes(transitiveClosure(rootTerm(U))))";
11494}
11495
11496pub mod term_cs_7_for_all {
11497    /// `variableName`
11498    pub const VARIABLE_NAME: &str = "CompileUnit U";
11499}
11500
11501pub mod term_fa_1_lhs {
11502    /// `literalValue`
11503    pub const LITERAL_VALUE: &str = "pending(q)";
11504}
11505
11506pub mod term_fa_1_rhs {
11507    /// `literalValue`
11508    pub const LITERAL_VALUE: &str = "reaches_gate(q)";
11509}
11510
11511pub mod term_fa_1_for_all {
11512    /// `variableName`
11513    pub const VARIABLE_NAME: &str = "query q in reduction";
11514}
11515
11516pub mod term_fa_2_lhs {
11517    /// `literalValue`
11518    pub const LITERAL_VALUE: &str = "admitted(q, epoch)";
11519}
11520
11521pub mod term_fa_2_rhs {
11522    /// `literalValue`
11523    pub const LITERAL_VALUE: &str = "served(q, epoch + k)";
11524}
11525
11526pub mod term_fa_2_for_all {
11527    /// `variableName`
11528    pub const VARIABLE_NAME: &str = "query q, bounded k";
11529}
11530
11531pub mod term_fa_3_lhs {
11532    /// `literalValue`
11533    pub const LITERAL_VALUE: &str = "lease_alloc(p1 + p2)";
11534}
11535
11536pub mod term_fa_3_rhs {
11537    /// `literalValue`
11538    pub const LITERAL_VALUE: &str = "lease_alloc(p1) + lease_alloc(p2)";
11539}
11540
11541pub mod term_fa_3_for_all {
11542    /// `variableName`
11543    pub const VARIABLE_NAME: &str = "disjoint partitions p1, p2";
11544}
11545
11546pub mod term_sw_1_lhs {
11547    /// `literalValue`
11548    pub const LITERAL_VALUE: &str = "memory(window(w))";
11549}
11550
11551pub mod term_sw_1_rhs {
11552    /// `literalValue`
11553    pub const LITERAL_VALUE: &str = "O(w)";
11554}
11555
11556pub mod term_sw_1_for_all {
11557    /// `variableName`
11558    pub const VARIABLE_NAME: &str = "service window of size w";
11559}
11560
11561pub mod term_sw_2_lhs {
11562    /// `literalValue`
11563    pub const LITERAL_VALUE: &str = "saturated(slide(w))";
11564}
11565
11566pub mod term_sw_2_rhs {
11567    /// `literalValue`
11568    pub const LITERAL_VALUE: &str = "saturated(w)";
11569}
11570
11571pub mod term_sw_2_for_all {
11572    /// `variableName`
11573    pub const VARIABLE_NAME: &str = "window slide operation";
11574}
11575
11576pub mod term_sw_3_lhs {
11577    /// `literalValue`
11578    pub const LITERAL_VALUE: &str = "resources(evict(e))";
11579}
11580
11581pub mod term_sw_3_rhs {
11582    /// `literalValue`
11583    pub const LITERAL_VALUE: &str = "0";
11584}
11585
11586pub mod term_sw_3_for_all {
11587    /// `variableName`
11588    pub const VARIABLE_NAME: &str = "evicted epoch e";
11589}
11590
11591pub mod term_sw_4_lhs {
11592    /// `literalValue`
11593    pub const LITERAL_VALUE: &str = "size(window)";
11594}
11595
11596pub mod term_sw_4_rhs {
11597    /// `literalValue`
11598    pub const LITERAL_VALUE: &str = ">= 1";
11599}
11600
11601pub mod term_sw_4_for_all {
11602    /// `variableName`
11603    pub const VARIABLE_NAME: &str = "service window";
11604}
11605
11606pub mod term_ls_1_lhs {
11607    /// `literalValue`
11608    pub const LITERAL_VALUE: &str = "pinned(suspend(lease))";
11609}
11610
11611pub mod term_ls_1_rhs {
11612    /// `literalValue`
11613    pub const LITERAL_VALUE: &str = "pinned(lease)";
11614}
11615
11616pub mod term_ls_1_for_all {
11617    /// `variableName`
11618    pub const VARIABLE_NAME: &str = "lease suspension";
11619}
11620
11621pub mod term_ls_2_lhs {
11622    /// `literalValue`
11623    pub const LITERAL_VALUE: &str = "resources(expire(lease))";
11624}
11625
11626pub mod term_ls_2_rhs {
11627    /// `literalValue`
11628    pub const LITERAL_VALUE: &str = "0";
11629}
11630
11631pub mod term_ls_2_for_all {
11632    /// `variableName`
11633    pub const VARIABLE_NAME: &str = "expired lease";
11634}
11635
11636pub mod term_ls_3_lhs {
11637    /// `literalValue`
11638    pub const LITERAL_VALUE: &str = "restore(restore(checkpoint))";
11639}
11640
11641pub mod term_ls_3_rhs {
11642    /// `literalValue`
11643    pub const LITERAL_VALUE: &str = "restore(checkpoint)";
11644}
11645
11646pub mod term_ls_3_for_all {
11647    /// `variableName`
11648    pub const VARIABLE_NAME: &str = "checkpoint restore";
11649}
11650
11651pub mod term_ls_4_lhs {
11652    /// `literalValue`
11653    pub const LITERAL_VALUE: &str = "resume(suspend(lease))";
11654}
11655
11656pub mod term_ls_4_rhs {
11657    /// `literalValue`
11658    pub const LITERAL_VALUE: &str = "lease";
11659}
11660
11661pub mod term_ls_4_for_all {
11662    /// `variableName`
11663    pub const VARIABLE_NAME: &str = "active lease";
11664}
11665
11666pub mod term_tj_1_lhs {
11667    /// `literalValue`
11668    pub const LITERAL_VALUE: &str = "all_or_nothing(fail)";
11669}
11670
11671pub mod term_tj_1_rhs {
11672    /// `literalValue`
11673    pub const LITERAL_VALUE: &str = "rollback";
11674}
11675
11676pub mod term_tj_1_for_all {
11677    /// `variableName`
11678    pub const VARIABLE_NAME: &str = "AllOrNothing transaction with failure";
11679}
11680
11681pub mod term_tj_2_lhs {
11682    /// `literalValue`
11683    pub const LITERAL_VALUE: &str = "best_effort(partial_fail)";
11684}
11685
11686pub mod term_tj_2_rhs {
11687    /// `literalValue`
11688    pub const LITERAL_VALUE: &str = "commit(succeeded)";
11689}
11690
11691pub mod term_tj_2_for_all {
11692    /// `variableName`
11693    pub const VARIABLE_NAME: &str = "BestEffort transaction";
11694}
11695
11696pub mod term_tj_3_lhs {
11697    /// `literalValue`
11698    pub const LITERAL_VALUE: &str = "scope(transaction)";
11699}
11700
11701pub mod term_tj_3_rhs {
11702    /// `literalValue`
11703    pub const LITERAL_VALUE: &str = "single_epoch";
11704}
11705
11706pub mod term_tj_3_for_all {
11707    /// `variableName`
11708    pub const VARIABLE_NAME: &str = "reduction transaction";
11709}
11710
11711pub mod term_ap_1_lhs {
11712    /// `literalValue`
11713    pub const LITERAL_VALUE: &str = "sat(stage(k+1))";
11714}
11715
11716pub mod term_ap_1_rhs {
11717    /// `literalValue`
11718    pub const LITERAL_VALUE: &str = ">= sat(stage(k))";
11719}
11720
11721pub mod term_ap_1_for_all {
11722    /// `variableName`
11723    pub const VARIABLE_NAME: &str = "consecutive stages k, k+1";
11724}
11725
11726pub mod term_ap_2_lhs {
11727    /// `literalValue`
11728    pub const LITERAL_VALUE: &str = "quality(epoch(n+1))";
11729}
11730
11731pub mod term_ap_2_rhs {
11732    /// `literalValue`
11733    pub const LITERAL_VALUE: &str = ">= quality(epoch(n))";
11734}
11735
11736pub mod term_ap_2_for_all {
11737    /// `variableName`
11738    pub const VARIABLE_NAME: &str = "consecutive epochs n, n+1";
11739}
11740
11741pub mod term_ap_3_lhs {
11742    /// `literalValue`
11743    pub const LITERAL_VALUE: &str = "deferred(q)";
11744}
11745
11746pub mod term_ap_3_rhs {
11747    /// `literalValue`
11748    pub const LITERAL_VALUE: &str = "processed(q) | dropped(q)";
11749}
11750
11751pub mod term_ap_3_for_all {
11752    /// `variableName`
11753    pub const VARIABLE_NAME: &str = "deferred query q";
11754}
11755
11756pub mod term_ec_1_lhs {
11757    /// `literalValue`
11758    pub const LITERAL_VALUE: &str = "Ω⁶";
11759}
11760
11761pub mod term_ec_1_rhs {
11762    /// `literalValue`
11763    pub const LITERAL_VALUE: &str = "−1";
11764}
11765
11766pub mod term_ec_1_for_all {
11767    /// `variableName`
11768    pub const VARIABLE_NAME: &str = "reduction phase angle Ω = e^{iπ/6}";
11769}
11770
11771pub mod term_ec_2_lhs {
11772    /// `literalValue`
11773    pub const LITERAL_VALUE: &str = "conj(conj(z))";
11774}
11775
11776pub mod term_ec_2_rhs {
11777    /// `literalValue`
11778    pub const LITERAL_VALUE: &str = "z";
11779}
11780
11781pub mod term_ec_2_for_all {
11782    /// `variableName`
11783    pub const VARIABLE_NAME: &str = "complex z in reduction";
11784}
11785
11786pub mod term_ec_3_lhs {
11787    /// `literalValue`
11788    pub const LITERAL_VALUE: &str = "[q_A, q_B]^inf";
11789}
11790
11791pub mod term_ec_3_rhs {
11792    /// `literalValue`
11793    pub const LITERAL_VALUE: &str = "1";
11794}
11795
11796pub mod term_ec_3_for_all {
11797    /// `variableName`
11798    pub const VARIABLE_NAME: &str = "quaternion pair q_A, q_B";
11799}
11800
11801pub mod term_ec_4_lhs {
11802    /// `literalValue`
11803    pub const LITERAL_VALUE: &str = "[q_A, q_B, q_C]^inf";
11804}
11805
11806pub mod term_ec_4_rhs {
11807    /// `literalValue`
11808    pub const LITERAL_VALUE: &str = "0";
11809}
11810
11811pub mod term_ec_4_for_all {
11812    /// `variableName`
11813    pub const VARIABLE_NAME: &str = "octonion triple q_A, q_B, q_C";
11814}
11815
11816pub mod term_ec_4a_lhs {
11817    /// `literalValue`
11818    pub const LITERAL_VALUE: &str = "||[a,b,c]_{n+1}||";
11819}
11820
11821pub mod term_ec_4a_rhs {
11822    /// `literalValue`
11823    pub const LITERAL_VALUE: &str = "<= ||[a,b,c]_n||";
11824}
11825
11826pub mod term_ec_4a_for_all {
11827    /// `variableName`
11828    pub const VARIABLE_NAME: &str = "successive associator iterates";
11829}
11830
11831pub mod term_ec_4b_lhs {
11832    /// `literalValue`
11833    pub const LITERAL_VALUE: &str = "steps_to_zero([a,b,c])";
11834}
11835
11836pub mod term_ec_4b_rhs {
11837    /// `literalValue`
11838    pub const LITERAL_VALUE: &str = "<= |three_way_sites|";
11839}
11840
11841pub mod term_ec_4b_for_all {
11842    /// `variableName`
11843    pub const VARIABLE_NAME: &str = "octonion triple a, b, c";
11844}
11845
11846pub mod term_ec_4c_lhs {
11847    /// `literalValue`
11848    pub const LITERAL_VALUE: &str = "[a,b,c] = 0";
11849}
11850
11851pub mod term_ec_4c_rhs {
11852    /// `literalValue`
11853    pub const LITERAL_VALUE: &str = "associative(resolved_site_space)";
11854}
11855
11856pub mod term_ec_4c_for_all {
11857    /// `variableName`
11858    pub const VARIABLE_NAME: &str = "resolved site space";
11859}
11860
11861pub mod term_ec_5_lhs {
11862    /// `literalValue`
11863    pub const LITERAL_VALUE: &str = "max_level(convergence_tower)";
11864}
11865
11866pub mod term_ec_5_rhs {
11867    /// `literalValue`
11868    pub const LITERAL_VALUE: &str = "L3_Self";
11869}
11870
11871pub mod term_ec_5_for_all {
11872    /// `variableName`
11873    pub const VARIABLE_NAME: &str = "convergence tower";
11874}
11875
11876pub mod term_da_1_lhs {
11877    /// `literalValue`
11878    pub const LITERAL_VALUE: &str = "CD(R, i)";
11879}
11880
11881pub mod term_da_1_rhs {
11882    /// `literalValue`
11883    pub const LITERAL_VALUE: &str = "C";
11884}
11885
11886pub mod term_da_1_for_all {
11887    /// `variableName`
11888    pub const VARIABLE_NAME: &str = "Cayley-Dickson doubling";
11889}
11890
11891pub mod term_da_2_lhs {
11892    /// `literalValue`
11893    pub const LITERAL_VALUE: &str = "CD(C, j)";
11894}
11895
11896pub mod term_da_2_rhs {
11897    /// `literalValue`
11898    pub const LITERAL_VALUE: &str = "H";
11899}
11900
11901pub mod term_da_2_for_all {
11902    /// `variableName`
11903    pub const VARIABLE_NAME: &str = "Cayley-Dickson doubling";
11904}
11905
11906pub mod term_da_3_lhs {
11907    /// `literalValue`
11908    pub const LITERAL_VALUE: &str = "CD(H, l)";
11909}
11910
11911pub mod term_da_3_rhs {
11912    /// `literalValue`
11913    pub const LITERAL_VALUE: &str = "O";
11914}
11915
11916pub mod term_da_3_for_all {
11917    /// `variableName`
11918    pub const VARIABLE_NAME: &str = "Cayley-Dickson doubling";
11919}
11920
11921pub mod term_da_4_lhs {
11922    /// `literalValue`
11923    pub const LITERAL_VALUE: &str = "dim(normed_div_alg)";
11924}
11925
11926pub mod term_da_4_rhs {
11927    /// `literalValue`
11928    pub const LITERAL_VALUE: &str = "∈ {1, 2, 4, 8}";
11929}
11930
11931pub mod term_da_4_for_all {
11932    /// `variableName`
11933    pub const VARIABLE_NAME: &str = "normed division algebras over R";
11934}
11935
11936pub mod term_da_5_lhs {
11937    /// `literalValue`
11938    pub const LITERAL_VALUE: &str = "algebra(L_k)";
11939}
11940
11941pub mod term_da_5_rhs {
11942    /// `literalValue`
11943    pub const LITERAL_VALUE: &str = "division_algebra[k]";
11944}
11945
11946pub mod term_da_5_for_all {
11947    /// `variableName`
11948    pub const VARIABLE_NAME: &str = "convergence level L_k";
11949}
11950
11951pub mod term_da_6_lhs {
11952    /// `literalValue`
11953    pub const LITERAL_VALUE: &str = "[a,b] = 0";
11954}
11955
11956pub mod term_da_6_rhs {
11957    /// `literalValue`
11958    pub const LITERAL_VALUE: &str = "isCommutative(algebra(L_k))";
11959}
11960
11961pub mod term_da_6_for_all {
11962    /// `variableName`
11963    pub const VARIABLE_NAME: &str = "elements a, b in division algebra at level k";
11964}
11965
11966pub mod term_da_7_lhs {
11967    /// `literalValue`
11968    pub const LITERAL_VALUE: &str = "[a,b,c] = 0";
11969}
11970
11971pub mod term_da_7_rhs {
11972    /// `literalValue`
11973    pub const LITERAL_VALUE: &str = "isAssociative(algebra(L_k))";
11974}
11975
11976pub mod term_da_7_for_all {
11977    /// `variableName`
11978    pub const VARIABLE_NAME: &str = "elements a, b, c in division algebra at level k";
11979}
11980
11981pub mod term_in_1_lhs {
11982    /// `literalValue`
11983    pub const LITERAL_VALUE: &str = "d_Δ(A,B)";
11984}
11985
11986pub mod term_in_1_rhs {
11987    /// `literalValue`
11988    pub const LITERAL_VALUE: &str = "interaction_cost(A,B)";
11989}
11990
11991pub mod term_in_1_for_all {
11992    /// `variableName`
11993    pub const VARIABLE_NAME: &str = "entity pairs A, B";
11994}
11995
11996pub mod term_in_2_lhs {
11997    /// `literalValue`
11998    pub const LITERAL_VALUE: &str = "disjoint_leases(A,B)";
11999}
12000
12001pub mod term_in_2_rhs {
12002    /// `literalValue`
12003    pub const LITERAL_VALUE: &str = "commutator(A,B) = 0";
12004}
12005
12006pub mod term_in_2_for_all {
12007    /// `variableName`
12008    pub const VARIABLE_NAME: &str = "entity pairs with disjoint leases";
12009}
12010
12011pub mod term_in_3_lhs {
12012    /// `literalValue`
12013    pub const LITERAL_VALUE: &str = "shared_sites(A,B) ≠ ∅";
12014}
12015
12016pub mod term_in_3_rhs {
12017    /// `literalValue`
12018    pub const LITERAL_VALUE: &str = "commutator(A,B) > 0";
12019}
12020
12021pub mod term_in_3_for_all {
12022    /// `variableName`
12023    pub const VARIABLE_NAME: &str = "entity pairs with shared sites";
12024}
12025
12026pub mod term_in_4_lhs {
12027    /// `literalValue`
12028    pub const LITERAL_VALUE: &str = "SR_8_session(A,B)";
12029}
12030
12031pub mod term_in_4_rhs {
12032    /// `literalValue`
12033    pub const LITERAL_VALUE: &str = "commutator(A,B,t+1) ≤ commutator(A,B,t)";
12034}
12035
12036pub mod term_in_4_for_all {
12037    /// `variableName`
12038    pub const VARIABLE_NAME: &str = "entity pairs in session";
12039}
12040
12041pub mod term_in_5_lhs {
12042    /// `literalValue`
12043    pub const LITERAL_VALUE: &str = "converged_negotiation(A,B)";
12044}
12045
12046pub mod term_in_5_rhs {
12047    /// `literalValue`
12048    pub const LITERAL_VALUE: &str = "U(1) ⊂ SU(2)";
12049}
12050
12051pub mod term_in_5_for_all {
12052    /// `variableName`
12053    pub const VARIABLE_NAME: &str = "converged pairwise interactions";
12054}
12055
12056pub mod term_in_6_lhs {
12057    /// `literalValue`
12058    pub const LITERAL_VALUE: &str = "outcome_space(pairwise_negotiation)";
12059}
12060
12061pub mod term_in_6_rhs {
12062    /// `literalValue`
12063    pub const LITERAL_VALUE: &str = "S²";
12064}
12065
12066pub mod term_in_6_for_all {
12067    /// `variableName`
12068    pub const VARIABLE_NAME: &str = "pairwise negotiations";
12069}
12070
12071pub mod term_in_7_lhs {
12072    /// `literalValue`
12073    pub const LITERAL_VALUE: &str = "converged_mutual_model(A,B,C)";
12074}
12075
12076pub mod term_in_7_rhs {
12077    /// `literalValue`
12078    pub const LITERAL_VALUE: &str = "H ⊂ O";
12079}
12080
12081pub mod term_in_7_for_all {
12082    /// `variableName`
12083    pub const VARIABLE_NAME: &str = "converged triple interactions";
12084}
12085
12086pub mod term_in_8_lhs {
12087    /// `literalValue`
12088    pub const LITERAL_VALUE: &str = "β_k(interaction_nerve)";
12089}
12090
12091pub mod term_in_8_rhs {
12092    /// `literalValue`
12093    pub const LITERAL_VALUE: &str = "coupling_complexity(k)";
12094}
12095
12096pub mod term_in_8_for_all {
12097    /// `variableName`
12098    pub const VARIABLE_NAME: &str = "interaction nerve at dimension k";
12099}
12100
12101pub mod term_in_9_lhs {
12102    /// `literalValue`
12103    pub const LITERAL_VALUE: &str = "β_2(nerve) × max_disagreement";
12104}
12105
12106pub mod term_in_9_rhs {
12107    /// `literalValue`
12108    pub const LITERAL_VALUE: &str = "upper_bound(associator_norm)";
12109}
12110
12111pub mod term_in_9_for_all {
12112    /// `variableName`
12113    pub const VARIABLE_NAME: &str = "interaction nerves with β_2 > 0";
12114}
12115
12116pub mod term_as_1_lhs {
12117    /// `literalValue`
12118    pub const LITERAL_VALUE: &str = "(δ ∘ ι) ∘ κ";
12119}
12120
12121pub mod term_as_1_rhs {
12122    /// `literalValue`
12123    pub const LITERAL_VALUE: &str = "δ ∘ (ι ∘ κ)";
12124}
12125
12126pub mod term_as_1_for_all {
12127    /// `variableName`
12128    pub const VARIABLE_NAME: &str = "triple δ, ι, κ with shared registry";
12129}
12130
12131pub mod term_as_2_lhs {
12132    /// `literalValue`
12133    pub const LITERAL_VALUE: &str = "(ι ∘ α) ∘ λ";
12134}
12135
12136pub mod term_as_2_rhs {
12137    /// `literalValue`
12138    pub const LITERAL_VALUE: &str = "ι ∘ (α ∘ λ)";
12139}
12140
12141pub mod term_as_2_for_all {
12142    /// `variableName`
12143    pub const VARIABLE_NAME: &str = "triple ι, α, λ with shared lease";
12144}
12145
12146pub mod term_as_3_lhs {
12147    /// `literalValue`
12148    pub const LITERAL_VALUE: &str = "(λ ∘ κ) ∘ δ";
12149}
12150
12151pub mod term_as_3_rhs {
12152    /// `literalValue`
12153    pub const LITERAL_VALUE: &str = "λ ∘ (κ ∘ δ)";
12154}
12155
12156pub mod term_as_3_for_all {
12157    /// `variableName`
12158    pub const VARIABLE_NAME: &str = "triple λ, κ, δ with shared state";
12159}
12160
12161pub mod term_as_4_lhs {
12162    /// `literalValue`
12163    pub const LITERAL_VALUE: &str = "associator(A,B,C) ≠ 0";
12164}
12165
12166pub mod term_as_4_rhs {
12167    /// `literalValue`
12168    pub const LITERAL_VALUE: &str = "∃ mediating read-write interleaving";
12169}
12170
12171pub mod term_as_4_for_all {
12172    /// `variableName`
12173    pub const VARIABLE_NAME: &str = "triples with non-zero associator";
12174}
12175
12176pub mod term_mo_1_lhs {
12177    /// `literalValue`
12178    pub const LITERAL_VALUE: &str = "I ⊗ A";
12179}
12180
12181pub mod term_mo_1_rhs {
12182    /// `literalValue`
12183    pub const LITERAL_VALUE: &str = "A";
12184}
12185
12186pub mod term_mo_1_for_all {
12187    /// `variableName`
12188    pub const VARIABLE_NAME: &str = "computations A";
12189}
12190
12191pub mod term_mo_2_lhs {
12192    /// `literalValue`
12193    pub const LITERAL_VALUE: &str = "(A⊗B)⊗C";
12194}
12195
12196pub mod term_mo_2_rhs {
12197    /// `literalValue`
12198    pub const LITERAL_VALUE: &str = "A⊗(B⊗C)";
12199}
12200
12201pub mod term_mo_2_for_all {
12202    /// `variableName`
12203    pub const VARIABLE_NAME: &str = "computations A, B, C";
12204}
12205
12206pub mod term_mo_3_lhs {
12207    /// `literalValue`
12208    pub const LITERAL_VALUE: &str = "cert(A⊗B)";
12209}
12210
12211pub mod term_mo_3_rhs {
12212    /// `literalValue`
12213    pub const LITERAL_VALUE: &str = "cert(A) ∧ cert(B)";
12214}
12215
12216pub mod term_mo_3_for_all {
12217    /// `variableName`
12218    pub const VARIABLE_NAME: &str = "certified computations A, B";
12219}
12220
12221pub mod term_mo_4_lhs {
12222    /// `literalValue`
12223    pub const LITERAL_VALUE: &str = "σ(A⊗B)";
12224}
12225
12226pub mod term_mo_4_rhs {
12227    /// `literalValue`
12228    pub const LITERAL_VALUE: &str = "max(σ(A), σ(B))";
12229}
12230
12231pub mod term_mo_4_for_all {
12232    /// `variableName`
12233    pub const VARIABLE_NAME: &str = "computations A, B";
12234}
12235
12236pub mod term_mo_5_lhs {
12237    /// `literalValue`
12238    pub const LITERAL_VALUE: &str = "r(A⊗B)";
12239}
12240
12241pub mod term_mo_5_rhs {
12242    /// `literalValue`
12243    pub const LITERAL_VALUE: &str = "min(r(A), r(B))";
12244}
12245
12246pub mod term_mo_5_for_all {
12247    /// `variableName`
12248    pub const VARIABLE_NAME: &str = "computations A, B";
12249}
12250
12251pub mod term_op_1_lhs {
12252    /// `literalValue`
12253    pub const LITERAL_VALUE: &str = "siteCount(F(G))";
12254}
12255
12256pub mod term_op_1_rhs {
12257    /// `literalValue`
12258    pub const LITERAL_VALUE: &str = "F.sites + Σ_i G_i.sites";
12259}
12260
12261pub mod term_op_1_for_all {
12262    /// `variableName`
12263    pub const VARIABLE_NAME: &str = "structural types F, G";
12264}
12265
12266pub mod term_op_2_lhs {
12267    /// `literalValue`
12268    pub const LITERAL_VALUE: &str = "grounding(F(G(x)))";
12269}
12270
12271pub mod term_op_2_rhs {
12272    /// `literalValue`
12273    pub const LITERAL_VALUE: &str = "F.ground(G.ground(x))";
12274}
12275
12276pub mod term_op_2_for_all {
12277    /// `variableName`
12278    pub const VARIABLE_NAME: &str = "structural types F, G, element x";
12279}
12280
12281pub mod term_op_3_lhs {
12282    /// `literalValue`
12283    pub const LITERAL_VALUE: &str = "d_Δ(F(G))";
12284}
12285
12286pub mod term_op_3_rhs {
12287    /// `literalValue`
12288    pub const LITERAL_VALUE: &str = "d_Δ(F) ∘ G + F ∘ d_Δ(G)";
12289}
12290
12291pub mod term_op_3_for_all {
12292    /// `variableName`
12293    pub const VARIABLE_NAME: &str = "structural types F, G";
12294}
12295
12296pub mod term_op_4_lhs {
12297    /// `literalValue`
12298    pub const LITERAL_VALUE: &str = "Table(Tuple(fields))";
12299}
12300
12301pub mod term_op_4_rhs {
12302    /// `literalValue`
12303    pub const LITERAL_VALUE: &str = "Sequence(Tuple(fields))";
12304}
12305
12306pub mod term_op_4_for_all {
12307    /// `variableName`
12308    pub const VARIABLE_NAME: &str = "tabular data";
12309}
12310
12311pub mod term_op_5_lhs {
12312    /// `literalValue`
12313    pub const LITERAL_VALUE: &str = "Tree(Symbol(leaves))";
12314}
12315
12316pub mod term_op_5_rhs {
12317    /// `literalValue`
12318    pub const LITERAL_VALUE: &str = "Graph(Symbol(leaves), acyclic)";
12319}
12320
12321pub mod term_op_5_for_all {
12322    /// `variableName`
12323    pub const VARIABLE_NAME: &str = "hierarchical data";
12324}
12325
12326pub mod term_fx_1_lhs {
12327    /// `literalValue`
12328    pub const LITERAL_VALUE: &str = "freeRank(postContext(e))";
12329}
12330
12331pub mod term_fx_1_rhs {
12332    /// `literalValue`
12333    pub const LITERAL_VALUE: &str = "freeRank(preContext(e)) − 1";
12334}
12335
12336pub mod term_fx_1_for_all {
12337    /// `variableName`
12338    pub const VARIABLE_NAME: &str = "PinningEffect e";
12339}
12340
12341pub mod term_fx_2_lhs {
12342    /// `literalValue`
12343    pub const LITERAL_VALUE: &str = "freeRank(postContext(e))";
12344}
12345
12346pub mod term_fx_2_rhs {
12347    /// `literalValue`
12348    pub const LITERAL_VALUE: &str = "freeRank(preContext(e)) + 1";
12349}
12350
12351pub mod term_fx_2_for_all {
12352    /// `variableName`
12353    pub const VARIABLE_NAME: &str = "UnbindingEffect e";
12354}
12355
12356pub mod term_fx_3_lhs {
12357    /// `literalValue`
12358    pub const LITERAL_VALUE: &str = "freeRank(postContext(e))";
12359}
12360
12361pub mod term_fx_3_rhs {
12362    /// `literalValue`
12363    pub const LITERAL_VALUE: &str = "freeRank(preContext(e))";
12364}
12365
12366pub mod term_fx_3_for_all {
12367    /// `variableName`
12368    pub const VARIABLE_NAME: &str = "PhaseEffect e";
12369}
12370
12371pub mod term_fx_4_lhs {
12372    /// `literalValue`
12373    pub const LITERAL_VALUE: &str = "apply(A ; B, ctx)";
12374}
12375
12376pub mod term_fx_4_rhs {
12377    /// `literalValue`
12378    pub const LITERAL_VALUE: &str = "apply(B ; A, ctx)";
12379}
12380
12381pub mod term_fx_4_for_all {
12382    /// `variableName`
12383    pub const VARIABLE_NAME: &str = "Effects A, B with DisjointnessWitness(target(A), target(B))";
12384}
12385
12386pub mod term_fx_5_lhs {
12387    /// `literalValue`
12388    pub const LITERAL_VALUE: &str = "freeRankDelta(E₁ ; E₂)";
12389}
12390
12391pub mod term_fx_5_rhs {
12392    /// `literalValue`
12393    pub const LITERAL_VALUE: &str = "freeRankDelta(E₁) + freeRankDelta(E₂)";
12394}
12395
12396pub mod term_fx_5_for_all {
12397    /// `variableName`
12398    pub const VARIABLE_NAME: &str = "CompositeEffect (E₁ ; E₂)";
12399}
12400
12401pub mod term_fx_6_lhs {
12402    /// `literalValue`
12403    pub const LITERAL_VALUE: &str = "apply(e, apply(e⁻¹, ctx))";
12404}
12405
12406pub mod term_fx_6_rhs {
12407    /// `literalValue`
12408    pub const LITERAL_VALUE: &str = "ctx";
12409}
12410
12411pub mod term_fx_6_for_all {
12412    /// `variableName`
12413    pub const VARIABLE_NAME: &str = "ReversibleEffect e";
12414}
12415
12416pub mod term_fx_7_lhs {
12417    /// `literalValue`
12418    pub const LITERAL_VALUE: &str = "freeRankDelta(e)";
12419}
12420
12421pub mod term_fx_7_rhs {
12422    /// `literalValue`
12423    pub const LITERAL_VALUE: &str = "declared freeRankDelta in EffectShape";
12424}
12425
12426pub mod term_fx_7_for_all {
12427    /// `variableName`
12428    pub const VARIABLE_NAME: &str = "ExternalEffect e satisfying conformance:EffectShape";
12429}
12430
12431pub mod term_pr_1_lhs {
12432    /// `literalValue`
12433    pub const LITERAL_VALUE: &str = "eval(p, x)";
12434}
12435
12436pub mod term_pr_1_rhs {
12437    /// `literalValue`
12438    pub const LITERAL_VALUE: &str = "∈ {true, false}";
12439}
12440
12441pub mod term_pr_1_for_all {
12442    /// `variableName`
12443    pub const VARIABLE_NAME: &str = "Predicate p, input x";
12444}
12445
12446pub mod term_pr_2_lhs {
12447    /// `literalValue`
12448    pub const LITERAL_VALUE: &str = "state(eval(p, x, s))";
12449}
12450
12451pub mod term_pr_2_rhs {
12452    /// `literalValue`
12453    pub const LITERAL_VALUE: &str = "s";
12454}
12455
12456pub mod term_pr_2_for_all {
12457    /// `variableName`
12458    pub const VARIABLE_NAME: &str = "Predicate p, input x, state s";
12459}
12460
12461pub mod term_pr_3_lhs {
12462    /// `literalValue`
12463    pub const LITERAL_VALUE: &str = "dispatch(D, x)";
12464}
12465
12466pub mod term_pr_3_rhs {
12467    /// `literalValue`
12468    pub const LITERAL_VALUE: &str = "exactly one DispatchRule";
12469}
12470
12471pub mod term_pr_3_for_all {
12472    /// `variableName`
12473    pub const VARIABLE_NAME: &str =
12474        "DispatchTable D with isExhaustive=true, isMutuallyExclusive=true";
12475}
12476
12477pub mod term_pr_4_lhs {
12478    /// `literalValue`
12479    pub const LITERAL_VALUE: &str = "eval(M)";
12480}
12481
12482pub mod term_pr_4_rhs {
12483    /// `literalValue`
12484    pub const LITERAL_VALUE: &str = "armResult(first matching arm)";
12485}
12486
12487pub mod term_pr_4_for_all {
12488    /// `variableName`
12489    pub const VARIABLE_NAME: &str = "MatchExpression M with exhaustive arms";
12490}
12491
12492pub mod term_pr_5_lhs {
12493    /// `literalValue`
12494    pub const LITERAL_VALUE: &str = "advance(k, guardTarget(g))";
12495}
12496
12497pub mod term_pr_5_rhs {
12498    /// `literalValue`
12499    pub const LITERAL_VALUE: &str = "requires guardPredicate(g) = true";
12500}
12501
12502pub mod term_pr_5_for_all {
12503    /// `variableName`
12504    pub const VARIABLE_NAME: &str = "GuardedTransition g at reduction step k";
12505}
12506
12507pub mod term_cg_1_lhs {
12508    /// `literalValue`
12509    pub const LITERAL_VALUE: &str = "advance_to(s)";
12510}
12511
12512pub mod term_cg_1_rhs {
12513    /// `literalValue`
12514    pub const LITERAL_VALUE: &str = "requires eval(g, currentState) = true";
12515}
12516
12517pub mod term_cg_1_for_all {
12518    /// `variableName`
12519    pub const VARIABLE_NAME: &str = "ReductionStep s with entryGuard g";
12520}
12521
12522pub mod term_cg_2_lhs {
12523    /// `literalValue`
12524    pub const LITERAL_VALUE: &str = "advance_from(s)";
12525}
12526
12527pub mod term_cg_2_rhs {
12528    /// `literalValue`
12529    pub const LITERAL_VALUE: &str = "requires eval(g, currentState) = true, then apply(e)";
12530}
12531
12532pub mod term_cg_2_for_all {
12533    /// `variableName`
12534    pub const VARIABLE_NAME: &str = "ReductionStep s with exitGuard g and stageEffect e";
12535}
12536
12537pub mod term_dis_1_lhs {
12538    /// `literalValue`
12539    pub const LITERAL_VALUE: &str = "isExhaustive(D) ∧ isMutuallyExclusive(D)";
12540}
12541
12542pub mod term_dis_1_rhs {
12543    /// `literalValue`
12544    pub const LITERAL_VALUE: &str = "true";
12545}
12546
12547pub mod term_dis_1_for_all {
12548    /// `variableName`
12549    pub const VARIABLE_NAME: &str = "Root DispatchTable D";
12550}
12551
12552pub mod term_dis_2_lhs {
12553    /// `literalValue`
12554    pub const LITERAL_VALUE: &str = "dispatch(D, T)";
12555}
12556
12557pub mod term_dis_2_rhs {
12558    /// `literalValue`
12559    pub const LITERAL_VALUE: &str = "exactly one Resolver";
12560}
12561
12562pub mod term_dis_2_for_all {
12563    /// `variableName`
12564    pub const VARIABLE_NAME: &str = "TypeDefinition T, DispatchTable D";
12565}
12566
12567pub mod term_par_1_lhs {
12568    /// `literalValue`
12569    pub const LITERAL_VALUE: &str = "apply(A ⊗ B, ctx)";
12570}
12571
12572pub mod term_par_1_rhs {
12573    /// `literalValue`
12574    pub const LITERAL_VALUE: &str = "apply(B ⊗ A, ctx)";
12575}
12576
12577pub mod term_par_1_for_all {
12578    /// `variableName`
12579    pub const VARIABLE_NAME: &str = "ParallelProduct A ∥ B with DisjointnessCertificate";
12580}
12581
12582pub mod term_par_2_lhs {
12583    /// `literalValue`
12584    pub const LITERAL_VALUE: &str = "freeRankDelta(A ∥ B)";
12585}
12586
12587pub mod term_par_2_rhs {
12588    /// `literalValue`
12589    pub const LITERAL_VALUE: &str = "freeRankDelta(A) + freeRankDelta(B)";
12590}
12591
12592pub mod term_par_2_for_all {
12593    /// `variableName`
12594    pub const VARIABLE_NAME: &str = "ParallelProduct A ∥ B";
12595}
12596
12597pub mod term_par_3_lhs {
12598    /// `literalValue`
12599    pub const LITERAL_VALUE: &str = "Σ |component_i|";
12600}
12601
12602pub mod term_par_3_rhs {
12603    /// `literalValue`
12604    pub const LITERAL_VALUE: &str = "n";
12605}
12606
12607pub mod term_par_3_for_all {
12608    /// `variableName`
12609    pub const VARIABLE_NAME: &str = "SitePartitioning P over n sites";
12610}
12611
12612pub mod term_par_4_lhs {
12613    /// `literalValue`
12614    pub const LITERAL_VALUE: &str = "finalContext(σ(A, B))";
12615}
12616
12617pub mod term_par_4_rhs {
12618    /// `literalValue`
12619    pub const LITERAL_VALUE: &str = "finalContext(A ⊗ B)";
12620}
12621
12622pub mod term_par_4_for_all {
12623    /// `variableName`
12624    pub const VARIABLE_NAME: &str = "ParallelProduct A ∥ B, any interleaving σ";
12625}
12626
12627pub mod term_par_5_lhs {
12628    /// `literalValue`
12629    pub const LITERAL_VALUE: &str = "cert(A ∥ B)";
12630}
12631
12632pub mod term_par_5_rhs {
12633    /// `literalValue`
12634    pub const LITERAL_VALUE: &str = "cert(A) ∧ cert(B) ∧ DisjointnessCertificate(A, B)";
12635}
12636
12637pub mod term_par_5_for_all {
12638    /// `variableName`
12639    pub const VARIABLE_NAME: &str = "cert(A ∥ B)";
12640}
12641
12642pub mod term_ho_1_lhs {
12643    /// `literalValue`
12644    pub const LITERAL_VALUE: &str = "value(c)";
12645}
12646
12647pub mod term_ho_1_rhs {
12648    /// `literalValue`
12649    pub const LITERAL_VALUE: &str = "contentHash(referencedCertificate(c))";
12650}
12651
12652pub mod term_ho_1_for_all {
12653    /// `variableName`
12654    pub const VARIABLE_NAME: &str = "ComputationDatum c";
12655}
12656
12657pub mod term_ho_2_lhs {
12658    /// `literalValue`
12659    pub const LITERAL_VALUE: &str = "cert(output(app))";
12660}
12661
12662pub mod term_ho_2_rhs {
12663    /// `literalValue`
12664    pub const LITERAL_VALUE: &str = "cert(applicationTarget(app))";
12665}
12666
12667pub mod term_ho_2_for_all {
12668    /// `variableName`
12669    pub const VARIABLE_NAME: &str = "ApplicationMorphism app";
12670}
12671
12672pub mod term_ho_3_lhs {
12673    /// `literalValue`
12674    pub const LITERAL_VALUE: &str = "cert(f ∘ g)";
12675}
12676
12677pub mod term_ho_3_rhs {
12678    /// `literalValue`
12679    pub const LITERAL_VALUE: &str = "cert(f) ∧ cert(g) ∧ range(g) = domain(f)";
12680}
12681
12682pub mod term_ho_3_for_all {
12683    /// `variableName`
12684    pub const VARIABLE_NAME: &str = "TransformComposition f ∘ g";
12685}
12686
12687pub mod term_ho_4_lhs {
12688    /// `literalValue`
12689    pub const LITERAL_VALUE: &str = "p";
12690}
12691
12692pub mod term_ho_4_rhs {
12693    /// `literalValue`
12694    pub const LITERAL_VALUE: &str = "ApplicationMorphism(partialBase(p), boundArguments(p))";
12695}
12696
12697pub mod term_ho_4_for_all {
12698    /// `variableName`
12699    pub const VARIABLE_NAME: &str = "PartialApplication p with remainingArity = 0";
12700}
12701
12702pub mod term_str_1_lhs {
12703    /// `literalValue`
12704    pub const LITERAL_VALUE: &str = "reduction(e_k) converges to π";
12705}
12706
12707pub mod term_str_1_rhs {
12708    /// `literalValue`
12709    pub const LITERAL_VALUE: &str = "true";
12710}
12711
12712pub mod term_str_1_for_all {
12713    /// `variableName`
12714    pub const VARIABLE_NAME: &str = "Epoch e_k in ProductiveStream";
12715}
12716
12717pub mod term_str_2_lhs {
12718    /// `literalValue`
12719    pub const LITERAL_VALUE: &str = "saturation(continuationContext(b))";
12720}
12721
12722pub mod term_str_2_rhs {
12723    /// `literalValue`
12724    pub const LITERAL_VALUE: &str = "saturation(postContext(e_k))";
12725}
12726
12727pub mod term_str_2_for_all {
12728    /// `variableName`
12729    pub const VARIABLE_NAME: &str = "EpochBoundary b between e_k and e_{k+1}";
12730}
12731
12732pub mod term_str_3_lhs {
12733    /// `literalValue`
12734    pub const LITERAL_VALUE: &str = "computationTime(P)";
12735}
12736
12737pub mod term_str_3_rhs {
12738    /// `literalValue`
12739    pub const LITERAL_VALUE: &str = "Σ_{i=0}^{k−1} computationTime(epoch_i)";
12740}
12741
12742pub mod term_str_3_for_all {
12743    /// `variableName`
12744    pub const VARIABLE_NAME: &str = "StreamPrefix P of length k";
12745}
12746
12747pub mod term_str_4_lhs {
12748    /// `literalValue`
12749    pub const LITERAL_VALUE: &str = "epoch_0.context";
12750}
12751
12752pub mod term_str_4_rhs {
12753    /// `literalValue`
12754    pub const LITERAL_VALUE: &str = "seed";
12755}
12756
12757pub mod term_str_4_for_all {
12758    /// `variableName`
12759    pub const VARIABLE_NAME: &str = "Unfold(seed, step)";
12760}
12761
12762pub mod term_str_5_lhs {
12763    /// `literalValue`
12764    pub const LITERAL_VALUE: &str = "epoch_{k+1}.context";
12765}
12766
12767pub mod term_str_5_rhs {
12768    /// `literalValue`
12769    pub const LITERAL_VALUE: &str = "continuationContext(boundary(e_k))";
12770}
12771
12772pub mod term_str_5_for_all {
12773    /// `variableName`
12774    pub const VARIABLE_NAME: &str = "Unfold(seed, step), epoch e_k";
12775}
12776
12777pub mod term_str_6_lhs {
12778    /// `literalValue`
12779    pub const LITERAL_VALUE: &str = "linearBudget(epoch_{k+1})";
12780}
12781
12782pub mod term_str_6_rhs {
12783    /// `literalValue`
12784    pub const LITERAL_VALUE: &str = "linearBudget(epoch_k) + leaseCardinality(L)";
12785}
12786
12787pub mod term_str_6_for_all {
12788    /// `variableName`
12789    pub const VARIABLE_NAME: &str = "EpochBoundary b with LeaseAllocation L expiring at b";
12790}
12791
12792pub mod term_flr_1_lhs {
12793    /// `literalValue`
12794    pub const LITERAL_VALUE: &str = "result(P)";
12795}
12796
12797pub mod term_flr_1_rhs {
12798    /// `literalValue`
12799    pub const LITERAL_VALUE: &str = "∈ {Success, Failure}";
12800}
12801
12802pub mod term_flr_1_for_all {
12803    /// `variableName`
12804    pub const VARIABLE_NAME: &str = "PartialComputation P";
12805}
12806
12807pub mod term_flr_2_lhs {
12808    /// `literalValue`
12809    pub const LITERAL_VALUE: &str = "result(T)";
12810}
12811
12812pub mod term_flr_2_rhs {
12813    /// `literalValue`
12814    pub const LITERAL_VALUE: &str = "Success";
12815}
12816
12817pub mod term_flr_2_for_all {
12818    /// `variableName`
12819    pub const VARIABLE_NAME: &str = "TotalComputation T";
12820}
12821
12822pub mod term_flr_3_lhs {
12823    /// `literalValue`
12824    pub const LITERAL_VALUE: &str = "result(A ⊗ B)";
12825}
12826
12827pub mod term_flr_3_rhs {
12828    /// `literalValue`
12829    pub const LITERAL_VALUE: &str = "Failure(A)";
12830}
12831
12832pub mod term_flr_3_for_all {
12833    /// `variableName`
12834    pub const VARIABLE_NAME: &str = "A ⊗ B where result(A) = Failure";
12835}
12836
12837pub mod term_flr_4_lhs {
12838    /// `literalValue`
12839    pub const LITERAL_VALUE: &str = "result(A ∥ B)";
12840}
12841
12842pub mod term_flr_4_rhs {
12843    /// `literalValue`
12844    pub const LITERAL_VALUE: &str = "Failure(A) (left component)";
12845}
12846
12847pub mod term_flr_4_for_all {
12848    /// `variableName`
12849    pub const VARIABLE_NAME: &str = "A ∥ B where result(A) = Failure, result(B) = Success";
12850}
12851
12852pub mod term_flr_5_lhs {
12853    /// `literalValue`
12854    pub const LITERAL_VALUE: &str = "result(apply(recoveryEffect(r), failureState(f)))";
12855}
12856
12857pub mod term_flr_5_rhs {
12858    /// `literalValue`
12859    pub const LITERAL_VALUE: &str = "ComputationResult";
12860}
12861
12862pub mod term_flr_5_for_all {
12863    /// `variableName`
12864    pub const VARIABLE_NAME: &str = "Recovery r on Failure f";
12865}
12866
12867pub mod term_flr_6_lhs {
12868    /// `literalValue`
12869    pub const LITERAL_VALUE: &str = "recoveryEffect(rollback(f))";
12870}
12871
12872pub mod term_flr_6_rhs {
12873    /// `literalValue`
12874    pub const LITERAL_VALUE: &str = "PhaseEffect(conjugate)";
12875}
12876
12877pub mod term_flr_6_for_all {
12878    /// `variableName`
12879    pub const VARIABLE_NAME: &str = "ComplexConjugateRollback on Failure f";
12880}
12881
12882pub mod term_ln_1_lhs {
12883    /// `literalValue`
12884    pub const LITERAL_VALUE: &str = "Σ targetCount(site_i)";
12885}
12886
12887pub mod term_ln_1_rhs {
12888    /// `literalValue`
12889    pub const LITERAL_VALUE: &str = "n";
12890}
12891
12892pub mod term_ln_1_for_all {
12893    /// `variableName`
12894    pub const VARIABLE_NAME: &str = "LinearTrace T over n-bit type";
12895}
12896
12897pub mod term_ln_2_lhs {
12898    /// `literalValue`
12899    pub const LITERAL_VALUE: &str = "status(f, postContext(e))";
12900}
12901
12902pub mod term_ln_2_rhs {
12903    /// `literalValue`
12904    pub const LITERAL_VALUE: &str = "pinned";
12905}
12906
12907pub mod term_ln_2_for_all {
12908    /// `variableName`
12909    pub const VARIABLE_NAME: &str = "LinearEffect e on site f";
12910}
12911
12912pub mod term_ln_3_lhs {
12913    /// `literalValue`
12914    pub const LITERAL_VALUE: &str = "target(e′) = f";
12915}
12916
12917pub mod term_ln_3_rhs {
12918    /// `literalValue`
12919    pub const LITERAL_VALUE: &str = "forbidden";
12920}
12921
12922pub mod term_ln_3_for_all {
12923    /// `variableName`
12924    pub const VARIABLE_NAME: &str = "LinearEffect e on site f, any subsequent effect e′";
12925}
12926
12927pub mod term_ln_4_lhs {
12928    /// `literalValue`
12929    pub const LITERAL_VALUE: &str = "remainingCount(budget after L)";
12930}
12931
12932pub mod term_ln_4_rhs {
12933    /// `literalValue`
12934    pub const LITERAL_VALUE: &str = "remainingCount(budget before L) − k";
12935}
12936
12937pub mod term_ln_4_for_all {
12938    /// `variableName`
12939    pub const VARIABLE_NAME: &str = "LeaseAllocation L with leaseCardinality k";
12940}
12941
12942pub mod term_ln_5_lhs {
12943    /// `literalValue`
12944    pub const LITERAL_VALUE: &str = "remainingCount(budget after expiry)";
12945}
12946
12947pub mod term_ln_5_rhs {
12948    /// `literalValue`
12949    pub const LITERAL_VALUE: &str = "remainingCount(budget before expiry) + leaseCardinality(L)";
12950}
12951
12952pub mod term_ln_5_for_all {
12953    /// `variableName`
12954    pub const VARIABLE_NAME: &str = "Lease expiry on LeaseAllocation L";
12955}
12956
12957pub mod term_ln_6_lhs {
12958    /// `literalValue`
12959    pub const LITERAL_VALUE: &str = "G";
12960}
12961
12962pub mod term_ln_6_rhs {
12963    /// `literalValue`
12964    pub const LITERAL_VALUE: &str = "LinearTrace";
12965}
12966
12967pub mod term_ln_6_for_all {
12968    /// `variableName`
12969    pub const VARIABLE_NAME: &str = "GeodesicTrace G";
12970}
12971
12972pub mod term_sb_1_lhs {
12973    /// `literalValue`
12974    pub const LITERAL_VALUE: &str = "constraints(T₁)";
12975}
12976
12977pub mod term_sb_1_rhs {
12978    /// `literalValue`
12979    pub const LITERAL_VALUE: &str = "⊇ constraints(T₂)";
12980}
12981
12982pub mod term_sb_1_for_all {
12983    /// `variableName`
12984    pub const VARIABLE_NAME: &str = "TypeInclusion T₁ ≤ T₂";
12985}
12986
12987pub mod term_sb_2_lhs {
12988    /// `literalValue`
12989    pub const LITERAL_VALUE: &str = "resolutions(T₁)";
12990}
12991
12992pub mod term_sb_2_rhs {
12993    /// `literalValue`
12994    pub const LITERAL_VALUE: &str = "⊆ resolutions(T₂)";
12995}
12996
12997pub mod term_sb_2_for_all {
12998    /// `variableName`
12999    pub const VARIABLE_NAME: &str = "TypeInclusion T₁ ≤ T₂, resolution R";
13000}
13001
13002pub mod term_sb_3_lhs {
13003    /// `literalValue`
13004    pub const LITERAL_VALUE: &str = "N(C(T₂))";
13005}
13006
13007pub mod term_sb_3_rhs {
13008    /// `literalValue`
13009    pub const LITERAL_VALUE: &str = "sub-complex of N(C(T₁))";
13010}
13011
13012pub mod term_sb_3_for_all {
13013    /// `variableName`
13014    pub const VARIABLE_NAME: &str = "TypeInclusion T₁ ≤ T₂";
13015}
13016
13017pub mod term_sb_4_lhs {
13018    /// `literalValue`
13019    pub const LITERAL_VALUE: &str = "F(T₁)";
13020}
13021
13022pub mod term_sb_4_rhs {
13023    /// `literalValue`
13024    pub const LITERAL_VALUE: &str = "≤ F(T₂)";
13025}
13026
13027pub mod term_sb_4_for_all {
13028    /// `variableName`
13029    pub const VARIABLE_NAME: &str = "Covariant position F(_), T₁ ≤ T₂";
13030}
13031
13032pub mod term_sb_5_lhs {
13033    /// `literalValue`
13034    pub const LITERAL_VALUE: &str = "F(T₂)";
13035}
13036
13037pub mod term_sb_5_rhs {
13038    /// `literalValue`
13039    pub const LITERAL_VALUE: &str = "≤ F(T₁)";
13040}
13041
13042pub mod term_sb_5_for_all {
13043    /// `variableName`
13044    pub const VARIABLE_NAME: &str = "Contravariant position F(_), T₁ ≤ T₂";
13045}
13046
13047pub mod term_sb_6_lhs {
13048    /// `literalValue`
13049    pub const LITERAL_VALUE: &str = "latticeDepth";
13050}
13051
13052pub mod term_sb_6_rhs {
13053    /// `literalValue`
13054    pub const LITERAL_VALUE: &str = "n";
13055}
13056
13057pub mod term_sb_6_for_all {
13058    /// `variableName`
13059    pub const VARIABLE_NAME: &str = "SubtypingLattice at quantum level n";
13060}
13061
13062pub mod term_br_1_lhs {
13063    /// `literalValue`
13064    pub const LITERAL_VALUE: &str = "measureValue(stepMeasurePost(s))";
13065}
13066
13067pub mod term_br_1_rhs {
13068    /// `literalValue`
13069    pub const LITERAL_VALUE: &str = "< measureValue(stepMeasurePre(s))";
13070}
13071
13072pub mod term_br_1_for_all {
13073    /// `variableName`
13074    pub const VARIABLE_NAME: &str = "RecursiveStep s";
13075}
13076
13077pub mod term_br_2_lhs {
13078    /// `literalValue`
13079    pub const LITERAL_VALUE: &str = "depth(RecursionTrace(R))";
13080}
13081
13082pub mod term_br_2_rhs {
13083    /// `literalValue`
13084    pub const LITERAL_VALUE: &str = "≤ m";
13085}
13086
13087pub mod term_br_2_for_all {
13088    /// `variableName`
13089    pub const VARIABLE_NAME: &str = "BoundedRecursion R with initialMeasure m";
13090}
13091
13092pub mod term_br_3_lhs {
13093    /// `literalValue`
13094    pub const LITERAL_VALUE: &str = "terminates(R)";
13095}
13096
13097pub mod term_br_3_rhs {
13098    /// `literalValue`
13099    pub const LITERAL_VALUE: &str = "true";
13100}
13101
13102pub mod term_br_3_for_all {
13103    /// `variableName`
13104    pub const VARIABLE_NAME: &str = "BoundedRecursion R";
13105}
13106
13107pub mod term_br_4_lhs {
13108    /// `literalValue`
13109    pub const LITERAL_VALUE: &str = "initialMeasure(R)";
13110}
13111
13112pub mod term_br_4_rhs {
13113    /// `literalValue`
13114    pub const LITERAL_VALUE: &str = "structuralSize(T)";
13115}
13116
13117pub mod term_br_4_for_all {
13118    /// `variableName`
13119    pub const VARIABLE_NAME: &str = "StructuralRecursion R on type T";
13120}
13121
13122pub mod term_br_5_lhs {
13123    /// `literalValue`
13124    pub const LITERAL_VALUE: &str = "eval(p, state) = true";
13125}
13126
13127pub mod term_br_5_rhs {
13128    /// `literalValue`
13129    pub const LITERAL_VALUE: &str = "measureValue = 0";
13130}
13131
13132pub mod term_br_5_for_all {
13133    /// `variableName`
13134    pub const VARIABLE_NAME: &str = "BoundedRecursion R with basePredicate p";
13135}
13136
13137pub mod term_rg_1_lhs {
13138    /// `literalValue`
13139    pub const LITERAL_VALUE: &str = "workingSetRegions(W)";
13140}
13141
13142pub mod term_rg_1_rhs {
13143    /// `literalValue`
13144    pub const LITERAL_VALUE: &str = "computable from N(C(T)) and stage k site targets";
13145}
13146
13147pub mod term_rg_1_for_all {
13148    /// `variableName`
13149    pub const VARIABLE_NAME: &str = "WorkingSet W for type T at stage k";
13150}
13151
13152pub mod term_rg_2_lhs {
13153    /// `literalValue`
13154    pub const LITERAL_VALUE: &str = "∀ a, b ∈ R: d_R(a, b)";
13155}
13156
13157pub mod term_rg_2_rhs {
13158    /// `literalValue`
13159    pub const LITERAL_VALUE: &str = "≤ diameter(R)";
13160}
13161
13162pub mod term_rg_2_for_all {
13163    /// `variableName`
13164    pub const VARIABLE_NAME: &str = "AddressRegion R with LocalityMetric d_R";
13165}
13166
13167pub mod term_rg_3_lhs {
13168    /// `literalValue`
13169    pub const LITERAL_VALUE: &str = "Σ workingSetSize(stage_k)";
13170}
13171
13172pub mod term_rg_3_rhs {
13173    /// `literalValue`
13174    pub const LITERAL_VALUE: &str = "≤ totalAddressableSpace(quantumLevel)";
13175}
13176
13177pub mod term_rg_3_for_all {
13178    /// `variableName`
13179    pub const VARIABLE_NAME: &str = "RegionAllocation A for computation C";
13180}
13181
13182pub mod term_rg_4_lhs {
13183    /// `literalValue`
13184    pub const LITERAL_VALUE: &str = "addresses accessed by resolver at stage k";
13185}
13186
13187pub mod term_rg_4_rhs {
13188    /// `literalValue`
13189    pub const LITERAL_VALUE: &str = "⊆ addresses(W_k)";
13190}
13191
13192pub mod term_rg_4_for_all {
13193    /// `variableName`
13194    pub const VARIABLE_NAME: &str = "Reduction step k with WorkingSet W_k";
13195}
13196
13197pub mod term_io_1_lhs {
13198    /// `literalValue`
13199    pub const LITERAL_VALUE: &str = "type(resultDatum(e))";
13200}
13201
13202pub mod term_io_1_rhs {
13203    /// `literalValue`
13204    pub const LITERAL_VALUE: &str = "conformsTo(sourceType(s))";
13205}
13206
13207pub mod term_io_1_for_all {
13208    /// `variableName`
13209    pub const VARIABLE_NAME: &str = "IngestEffect e from Source s";
13210}
13211
13212pub mod term_io_2_lhs {
13213    /// `literalValue`
13214    pub const LITERAL_VALUE: &str = "type(emittedDatum(e))";
13215}
13216
13217pub mod term_io_2_rhs {
13218    /// `literalValue`
13219    pub const LITERAL_VALUE: &str = "conformsTo(sinkType(s))";
13220}
13221
13222pub mod term_io_2_for_all {
13223    /// `variableName`
13224    pub const VARIABLE_NAME: &str = "EmitEffect e to Sink s";
13225}
13226
13227pub mod term_io_3_lhs {
13228    /// `literalValue`
13229    pub const LITERAL_VALUE: &str = "apply(g, ingest(s))";
13230}
13231
13232pub mod term_io_3_rhs {
13233    /// `literalValue`
13234    pub const LITERAL_VALUE: &str = "Datum in R_n";
13235}
13236
13237pub mod term_io_3_for_all {
13238    /// `variableName`
13239    pub const VARIABLE_NAME: &str = "Source s with GroundingMap g";
13240}
13241
13242pub mod term_io_4_lhs {
13243    /// `literalValue`
13244    pub const LITERAL_VALUE: &str = "apply(p, d)";
13245}
13246
13247pub mod term_io_4_rhs {
13248    /// `literalValue`
13249    pub const LITERAL_VALUE: &str = "surface symbol conforming to sinkType(s)";
13250}
13251
13252pub mod term_io_4_for_all {
13253    /// `variableName`
13254    pub const VARIABLE_NAME: &str = "Sink s with ProjectionMap p, Datum d";
13255}
13256
13257pub mod term_io_5_lhs {
13258    /// `literalValue`
13259    pub const LITERAL_VALUE: &str = "effect:effectTarget(e)";
13260}
13261
13262pub mod term_io_5_rhs {
13263    /// `literalValue`
13264    pub const LITERAL_VALUE: &str = "non-empty EffectTarget";
13265}
13266
13267pub mod term_io_5_for_all {
13268    /// `variableName`
13269    pub const VARIABLE_NAME: &str = "BoundaryEffect e";
13270}
13271
13272pub mod term_ih_1_lhs {
13273    /// `literalValue`
13274    pub const LITERAL_VALUE: &str = "InhabitanceCertificate(T).verified";
13275}
13276
13277pub mod term_ih_1_rhs {
13278    /// `literalValue`
13279    pub const LITERAL_VALUE: &str = "carrier(T) ≠ ∅";
13280}
13281
13282pub mod term_ih_1_for_all {
13283    /// `variableName`
13284    pub const VARIABLE_NAME: &str = "T : type:ConstrainedType";
13285}
13286
13287pub mod term_ih_2a_lhs {
13288    /// `literalValue`
13289    pub const LITERAL_VALUE: &str = "cost(TwoSatDecider, T)";
13290}
13291
13292pub mod term_ih_2a_rhs {
13293    /// `literalValue`
13294    pub const LITERAL_VALUE: &str = "O(n + m)";
13295}
13296
13297pub mod term_ih_2a_for_all {
13298    /// `variableName`
13299    pub const VARIABLE_NAME: &str = "T : type:ConstrainedType | Is2SatShape(T)";
13300}
13301
13302pub mod term_ih_2b_lhs {
13303    /// `literalValue`
13304    pub const LITERAL_VALUE: &str = "cost(HornSatDecider, T)";
13305}
13306
13307pub mod term_ih_2b_rhs {
13308    /// `literalValue`
13309    pub const LITERAL_VALUE: &str = "O(n + m)";
13310}
13311
13312pub mod term_ih_2b_for_all {
13313    /// `variableName`
13314    pub const VARIABLE_NAME: &str = "T : type:ConstrainedType | IsHornShape(T)";
13315}
13316
13317pub mod term_ih_3_lhs {
13318    /// `literalValue`
13319    pub const LITERAL_VALUE: &str = "carrier(reduce(T))";
13320}
13321
13322pub mod term_ih_3_rhs {
13323    /// `literalValue`
13324    pub const LITERAL_VALUE: &str = "carrier(T)";
13325}
13326
13327pub mod term_ih_3_for_all {
13328    /// `variableName`
13329    pub const VARIABLE_NAME: &str = "T : type:ConstrainedType";
13330}
13331
13332pub mod term_boundary_squared_zero_lhs {
13333    /// `literalValue`
13334    pub const LITERAL_VALUE: &str = "∂_k(∂_{k+1}(c))";
13335}
13336
13337pub mod term_boundary_squared_zero_rhs {
13338    /// `literalValue`
13339    pub const LITERAL_VALUE: &str = "0";
13340}
13341
13342pub mod term_boundary_squared_zero_for_all {
13343    /// `variableName`
13344    pub const VARIABLE_NAME: &str = "c ∈ C_{k+1}";
13345}
13346
13347pub mod term_psi_4_lhs {
13348    /// `literalValue`
13349    pub const LITERAL_VALUE: &str = "β_k(K)";
13350}
13351
13352pub mod term_psi_4_rhs {
13353    /// `literalValue`
13354    pub const LITERAL_VALUE: &str = "rank(H_k(K))";
13355}
13356
13357pub mod term_psi_4_for_all {
13358    /// `variableName`
13359    pub const VARIABLE_NAME: &str = "simplicial complex K";
13360}
13361
13362pub mod term_index_bridge_lhs {
13363    /// `literalValue`
13364    pub const LITERAL_VALUE: &str = "χ(K)";
13365}
13366
13367pub mod term_index_bridge_rhs {
13368    /// `literalValue`
13369    pub const LITERAL_VALUE: &str = "Σ_k (-1)^k β_k";
13370}
13371
13372pub mod term_index_bridge_for_all {
13373    /// `variableName`
13374    pub const VARIABLE_NAME: &str = "finite simplicial complex K";
13375}
13376
13377pub mod term_coboundary_squared_zero_lhs {
13378    /// `literalValue`
13379    pub const LITERAL_VALUE: &str = "δ^{k+1}(δ^k(f))";
13380}
13381
13382pub mod term_coboundary_squared_zero_rhs {
13383    /// `literalValue`
13384    pub const LITERAL_VALUE: &str = "0";
13385}
13386
13387pub mod term_coboundary_squared_zero_for_all {
13388    /// `variableName`
13389    pub const VARIABLE_NAME: &str = "f ∈ C^k";
13390}
13391
13392pub mod term_de_rham_duality_lhs {
13393    /// `literalValue`
13394    pub const LITERAL_VALUE: &str = "H^k(K; R)";
13395}
13396
13397pub mod term_de_rham_duality_rhs {
13398    /// `literalValue`
13399    pub const LITERAL_VALUE: &str = "Hom(H_k(K), R)";
13400}
13401
13402pub mod term_de_rham_duality_for_all {
13403    /// `variableName`
13404    pub const VARIABLE_NAME: &str = "simplicial complex K, ring R";
13405}
13406
13407pub mod term_sheaf_cohomology_bridge_lhs {
13408    /// `literalValue`
13409    pub const LITERAL_VALUE: &str = "H^k(K; F_R)";
13410}
13411
13412pub mod term_sheaf_cohomology_bridge_rhs {
13413    /// `literalValue`
13414    pub const LITERAL_VALUE: &str = "H^k(K; R)";
13415}
13416
13417pub mod term_sheaf_cohomology_bridge_for_all {
13418    /// `variableName`
13419    pub const VARIABLE_NAME: &str = "constant sheaf F_R over K";
13420}
13421
13422pub mod term_local_global_principle_lhs {
13423    /// `literalValue`
13424    pub const LITERAL_VALUE: &str = "H^1(K; F) = 0";
13425}
13426
13427pub mod term_local_global_principle_rhs {
13428    /// `literalValue`
13429    pub const LITERAL_VALUE: &str = "all local sections glue";
13430}
13431
13432pub mod term_local_global_principle_for_all {
13433    /// `variableName`
13434    pub const VARIABLE_NAME: &str = "sheaf F over K";
13435}