regex_node_step
std.seq.regex_node_step · Level L3One node of a regular expression's syntax tree, evaluated on the word's parts: the node's 0/1 span matrix over the fenceposts, from its children's matrices: ε the identity, a symbol the single steps that read it, union the elementwise or, concatenation the boolean product, star the reflexive transitive closure (reachability), the empty language 0. The body regex_match scans.
Signature
regex_node_step(Ms: f64[K, n, n], k: f64[], kind: i64[K], sym: i64[K], left: i64[K], right: i64[K], W: f64[n]) → f64[K, n, n]
Structure
The function as NOVA stores it: one box per input, operation and output, and arrows that carry values. A double border marks another library function this one runs — called once, or by Scan once per element; select it to open that function.
- input
- operation
- constant
- call
- output
Verification
- Signature proven by NOVA’s shape solver, for every size.
- Equal to the reference
the same node rule on Python listsin exact rational arithmetic, on all 40 test cases. - All 1,571 float64 results are exact: the error is zero.
- Interpreter and NumPy backend return bit-identical results.
- At float32 too: the 40 test cases rounded to float32, and 40 of them exact, with zero error.
- correctly rounded (the float64 nearest the exact value)
- 100%
- bit-equal to the NumPy formula in float64
- 100%
- largest error, in units in the last place
- 0
Identity
sha256:b9636ad85f1dfc9ed234995d5b83185a3780867ab138bf2cf4e65bc05304350fThe semantic hash of the graph. It changes when the program changes, and never when only its documentation does.
Control handle
- Symbol
- Ω:std.seq.regex_node_step · Ω:regex_node_step
- Pins
sha256:829345490f7a449a347e9108d3cfa31cc962e600be9542a2e75d901be23ff1efthis graph and the 2 it reaches through calls- Evidence
sha256:784bb072a8671ff72618fb2a3060e110a7021b3ec3f747dc7e12003c71d6c956the hash of its verification record- Needs
- no capability: a pure function
Through NOVA’s control layer, the symbol launches this function only while the program still matches what it pins: a change to this graph, or to any graph it reaches, needs a migration first.