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
//! SVA (concurrent assertions, Clause 16/17) runtime support
//! (`docs/superpowers/plans/2026-10-03-sva.md`).
//!
//! Task 4: [`ir`] is the automaton IR skeleton -- the static transition-table
//! shape plan §1.2 decided on (a dedicated, interpreted automaton per
//! assertion, not a second CPS lowering) -- types only, no builder yet.
//! `vj-codegen::sva` (T3's `ranges`, T4's `op`) is this module's
//! frontend-facing sibling: it recovers the data (delay/repetition bounds,
//! the operator mirror, positional children) that a later task's builder
//! (T9/T10 onward) will consult to actually populate an [`ir::Transition`]
//! table. This module itself has no `sv-lang` dependency at all -- unlike
//! `vj-codegen::sva`, which is frontend-only by construction, these IR
//! types are the pure, elaboration-independent shape the automaton engine
//! (`vj-runtime::sva_engine`, not yet built) interprets, so they need
//! no `#[cfg(feature = "frontend")]` gate.
//!
//! Task 7: [`clock`] *does* need `sv-lang` (it queries `sv_lang::Analysis`/
//! `AnalyzedAssertion` directly, per plan §1.1/§1.6) -- gated behind this
//! crate's `frontend` feature, the same split `crate::analysis` already
//! uses for its own `sv-lang`-dependent submodules.
pub use ;