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
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
//! 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 `vyre` or
//! `vyre`; 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.
/// Specification element.
/// Algebraic law primitives — associativity, identity, commutativity declarations.
/// Specification element.
/// Specification element.
/// Canonical catalog of every algebraic law tagged to operations.
/// Specification element.
/// Specification element.
/// Atomic operation enum — the bounded set of read-modify-write primitives.
/// Specification element.
/// Specification element.
/// Binary operator enum — all element-wise two-operand primitives.
/// Specification element.
/// Specification element.
/// Buffer access mode (ReadOnly / WriteOnly / ReadWrite) + enforcement helpers.
/// Specification element.
/// Specification element.
/// Iterator returning op ids grouped by their `Category`.
/// Specification element.
/// Specification element.
/// Reverse index from op id string to its canonical descriptor.
/// Specification element.
/// Specification element.
/// Conformance invariant: the op catalog enumerates every known id.
/// Specification element.
/// Specification element.
/// Category enum (A/B/C) + backend-availability predicates.
/// Specification element.
/// Specification element.
/// Calling conventions between CPU host and GPU kernels.
/// Specification element.
/// Specification element.
/// Primitive data-type enum (U32/F32/Bool/etc.) + size helpers.
/// Specification element.
/// Specification element.
/// Invariants the engine itself must preserve (wire round-trip, CSE stability, …).
/// Specification element.
/// Specification element.
/// Frozen catalog of core `Expr` variant names used by coverage tests.
/// Specification element.
/// Specification element.
/// Dialect extension descriptor — marks non-core ops carried by extensions.
/// Specification element.
/// Specification element.
/// Floating-point type subset (F16/F32/F64) with associated properties.
/// Specification element.
/// Specification element.
/// Golden reference samples — tiny fixtures every backend must reproduce exactly.
/// Specification element.
/// Specification element.
/// Table of hardware intrinsics exposed by vyre-intrinsics.
/// Specification element.
/// Specification element.
/// Abstract invariant type + provenance tracking.
/// Specification element.
/// Specification element.
/// Classification buckets grouping related invariants (numeric, memory, …).
/// Specification element.
/// Specification element.
/// Catalog of invariants every registered op is checked against.
/// Specification element.
/// Specification element.
/// Known-answer test vector type — deterministic input/output pairs.
/// Specification element.
/// Specification element.
/// Canonical catalog of algebraic laws exposed via `law_catalog()`.
/// Specification element.
/// Specification element.
/// Layer enum (IR / backend / runtime) — coarse module placement.
/// Specification element.
/// Specification element.
/// Metadata classification for `OpMetadata` entries.
/// Specification element.
/// Specification element.
/// Monotonicity direction (increasing / decreasing / none) for op outputs.
/// Specification element.
/// Specification element.
/// Operation contract: capability requirements, determinism, cost hints.
/// Specification element.
/// Specification element.
/// Op metadata struct — human-facing description and discoverability hooks.
/// Specification element.
/// Specification element.
/// Op signature — stable type profile every backend lowers against.
/// Specification element.
/// Specification element.
/// Packed graph node kinds for language-agnostic analysis.
/// Specification element.
/// Specification element.
/// Ternary operator enum — select, FMA, mask-merge.
/// Specification element.
/// Specification element.
/// Structured test descriptor — op id, input sampler, expected shape.
/// Specification element.
/// Specification element.
/// Unary operator enum — single-operand element-wise primitives.
/// Specification element.
/// Specification element.
/// Conformance verification driver — runs the law + invariant battery.
/// Specification element.
/// Specification element.
/// See [`adversarial_input::AdversarialInput`].
/// Specification element.
/// Specification element.
pub use AdversarialInput;
/// See [`algebraic_law::AlgebraicLaw`].
/// Specification element.
/// Specification element.
pub use ;
/// See [`all_algebraic_laws::all_algebraic_laws`].
/// Specification element.
/// Specification element.
pub use all_algebraic_laws;
/// See [`atomic_op::AtomicOp`].
/// Specification element.
/// Specification element.
pub use AtomicOp;
/// See [`bin_op::BinOp`].
/// Specification element.
/// Specification element.
pub use BinOp;
/// See [`buffer_access::BufferAccess`].
/// Specification element.
/// Specification element.
pub use BufferAccess;
/// See [`by_category::by_category`].
/// Specification element.
/// Specification element.
pub use by_category;
/// See [`by_id::by_id`].
/// Specification element.
/// Specification element.
pub use by_id;
/// See [`catalog_is_complete::catalog_is_complete`].
/// Specification element.
/// Specification element.
pub use catalog_is_complete;
/// See [`category::Category`] + backend-availability helpers.
/// Specification element.
/// Specification element.
pub use ;
/// See [`convention::Convention`].
/// Specification element.
/// Specification element.
pub use Convention;
/// See [`data_type::DataType`].
/// Specification element.
/// Specification element.
pub use DataType;
/// See [`engine_invariant::EngineInvariant`].
/// Specification element.
/// Specification element.
pub use ;
/// See [`expr_variant::expr_variants`].
/// Specification element.
/// Specification element.
pub use expr_variants;
/// See [`float_type::FloatType`].
/// Specification element.
/// Specification element.
pub use FloatType;
/// See [`golden_sample::GoldenSample`].
/// Specification element.
/// Specification element.
pub use GoldenSample;
/// See [`intrinsic_table::IntrinsicTable`].
/// Specification element.
/// Specification element.
pub use ;
/// See [`invariant::Invariant`].
/// Specification element.
/// Specification element.
pub use Invariant;
/// See [`invariant_category::InvariantCategory`].
/// Specification element.
/// Specification element.
pub use InvariantCategory;
/// See [`invariants::invariants`].
/// Specification element.
/// Specification element.
pub use ;
/// See [`kat_vector::KatVector`].
/// Specification element.
/// Specification element.
pub use KatVector;
/// See [`law_catalog::law_catalog`].
/// Specification element.
/// Specification element.
pub use law_catalog;
/// See [`layer::Layer`].
/// Specification element.
/// Specification element.
pub use Layer;
/// See [`metadata_category::MetadataCategory`].
/// Specification element.
/// Specification element.
pub use MetadataCategory;
/// See [`monotonic_direction::MonotonicDirection`].
/// Specification element.
/// Specification element.
pub use MonotonicDirection;
/// See [`op_contract::OperationContract`] and its component types.
pub use ;
/// See [`op_metadata::OpMetadata`].
/// Specification element.
/// Specification element.
pub use OpMetadata;
/// See [`op_signature::OpSignature`].
/// Specification element.
/// Specification element.
pub use OpSignature;
/// See [`pg_node_kind::PgNodeKind`].
/// Specification element.
/// Specification element.
pub use PgNodeKind;
/// See [`ternary_op::TernaryOp`].
/// Specification element.
/// Specification element.
pub use TernaryOp;
/// See [`test_descriptor::TestDescriptor`].
/// Specification element.
/// Specification element.
pub use TestDescriptor;
/// See [`un_op::UnOp`].
/// Specification element.
/// Specification element.
pub use UnOp;
/// See [`verification::Verification`].
/// Specification element.
/// Specification element.
pub use Verification;
/// Intrinsic descriptors.
/// Specification element.
/// Specification element.
/// See [`intrinsic_descriptor::IntrinsicDescriptor`] and its identifying types.
pub use ;