1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
//! vyre-spec is the machine-checkable frozen data contract for the vyre GPU
//! compute IR. Any backend may depend on vyre-spec alone to prove conformance
//! without depending on vyre itself.
//!
//! This crate is intentionally data-only. It has no dependency on downstream
//! crates; backend vendors can use these types as the stable contract
//! for conformance proofs. Example: a conformance runner can read an
//! [`OpSignature`] and verify the byte width expected by a backend primitive.
/// Adversarial input descriptors - hostile payloads every op must reject or handle.
/// Specification element.
/// Algebraic law primitives - associativity, identity, commutativity declarations.
/// Specification element.
/// Canonical catalog of every algebraic law tagged to operations.
/// Specification element.
/// Atomic operation enum - the bounded set of read-modify-write primitives.
/// Specification element.
/// Binary operator enum - all element-wise two-operand primitives.
/// Specification element.
/// Buffer access mode (ReadOnly / WriteOnly / ReadWrite) + enforcement helpers.
/// Specification element.
/// Iterator returning op ids grouped by their `Category`.
/// Specification element.
/// Reverse index from op id string to its canonical descriptor.
/// Specification element.
/// Conformance invariant: the op catalog enumerates every known id.
/// Specification element.
/// Category enum (A/B/C) + backend-availability predicates.
/// Specification element.
/// Collective communication operators and communicator handles.
/// Specification element.
/// Calling conventions between CPU host and GPU kernels.
/// Specification element.
/// Primitive data-type enum (U32/F32/Bool/etc.) + size helpers.
/// Specification element.
/// Invariants the engine itself must preserve (wire round-trip, CSE stability, …).
/// Specification element.
/// Frozen catalog of core `Expr` variant names used by coverage tests.
/// Specification element.
/// Dialect extension descriptor - marks non-core ops carried by extensions.
/// Specification element.
/// Floating-point type subset (F16/F32/F64) with associated properties.
/// Specification element.
/// Golden reference samples - tiny fixtures every backend must reproduce exactly.
/// Specification element.
/// Table of hardware intrinsics exposed by vyre-intrinsics.
/// Specification element.
/// Abstract invariant type + provenance tracking.
/// Specification element.
/// Classification buckets grouping related invariants (numeric, memory, …).
/// Specification element.
/// Catalog of invariants every registered op is checked against.
/// Specification element.
/// Known-answer test vector type - deterministic input/output pairs.
/// Specification element.
/// Canonical catalog of algebraic laws exposed via `law_catalog()`.
/// Specification element.
/// Layer enum (IR / backend / runtime) - coarse module placement.
/// Specification element.
/// Metadata classification for `OpMetadata` entries.
/// Specification element.
/// Monotonicity direction (increasing / decreasing / none) for op outputs.
/// Specification element.
/// Operation contract: capability requirements, determinism, cost hints.
/// Specification element.
/// Op metadata struct - human-facing description and discoverability hooks.
/// Specification element.
/// Op signature - stable type profile every backend lowers against.
/// Specification element.
/// Packed graph node kinds for language-agnostic analysis.
/// Specification element.
/// Canonical semiring selector for dataflow and algebraic kernels.
/// Ternary operator enum - select, FMA, mask-merge.
/// Specification element.
/// Structured test descriptor - op id, input sampler, expected shape.
/// Specification element.
/// Unary operator enum - single-operand element-wise primitives.
/// Specification element.
/// Conformance verification driver - runs the law + invariant battery.
/// Specification element.
/// See [`adversarial_input::AdversarialInput`].
/// Specification element.
pub use AdversarialInput;
/// See [`algebraic_law::AlgebraicLaw`].
/// Specification element.
pub use ;
/// See [`all_algebraic_laws::all_algebraic_laws`].
/// Specification element.
pub use all_algebraic_laws;
/// See [`atomic_op::AtomicOp`].
/// Specification element.
pub use AtomicOp;
/// See [`bin_op::BinOp`].
/// Specification element.
pub use BinOp;
/// See [`buffer_access::BufferAccess`].
/// Specification element.
pub use BufferAccess;
/// See [`by_category::by_category`].
/// Specification element.
pub use by_category;
/// See [`by_id::by_id`].
/// Specification element.
pub use by_id;
/// See [`catalog_is_complete::catalog_is_complete`].
/// Specification element.
pub use catalog_is_complete;
/// See [`category::Category`] + backend-availability helpers.
/// Specification element.
pub use ;
/// See [`collective_op::{CollectiveOp, CommGroup}`].
/// Specification element.
pub use ;
/// See [`convention::Convention`].
/// Specification element.
pub use Convention;
/// See [`data_type::DataType`].
/// Specification element.
pub use ;
/// See [`engine_invariant::EngineInvariant`].
/// Specification element.
pub use ;
/// See [`expr_variant::expr_variants`].
/// Specification element.
pub use expr_variants;
/// See [`float_type::FloatType`].
/// Specification element.
pub use FloatType;
/// See [`golden_sample::GoldenSample`].
/// Specification element.
pub use GoldenSample;
/// See [`intrinsic_table::IntrinsicTable`].
/// Specification element.
pub use ;
/// See [`invariant::Invariant`].
/// Specification element.
pub use Invariant;
/// See [`invariant_category::InvariantCategory`].
/// Specification element.
pub use InvariantCategory;
/// See [`invariants::invariants`].
/// Specification element.
pub use ;
/// See [`kat_vector::KatVector`].
/// Specification element.
pub use KatVector;
/// See [`law_catalog::law_catalog`].
/// Specification element.
pub use law_catalog;
/// See [`layer::Layer`].
/// Specification element.
pub use Layer;
/// See [`metadata_category::MetadataCategory`].
/// Specification element.
pub use MetadataCategory;
/// See [`monotonic_direction::MonotonicDirection`].
/// Specification element.
pub use MonotonicDirection;
/// See [`op_contract::OperationContract`] and its component types.
pub use ;
/// See [`op_metadata::OpMetadata`].
/// Specification element.
pub use OpMetadata;
/// See [`op_signature::OpSignature`].
/// Specification element.
pub use OpSignature;
/// See [`pg_node_kind::PgNodeKind`].
/// Specification element.
pub use PgNodeKind;
/// See [`semiring::Semiring`].
pub use Semiring;
/// See [`ternary_op::TernaryOp`].
/// Specification element.
pub use TernaryOp;
/// See [`test_descriptor::TestDescriptor`].
/// Specification element.
pub use TestDescriptor;
/// See [`un_op::UnOp`].
/// Specification element.
pub use UnOp;
/// See [`verification::Verification`].
/// Specification element.
pub use Verification;
/// Intrinsic descriptors.
/// Specification element.
/// See [`intrinsic_descriptor::IntrinsicDescriptor`] and its identifying types.
pub use ;