equivalence_classes
std.sets.equivalence_classes · Level L2Whether a relation on a finite set is an equivalence relation (reflexive, symmetric and transitive), as 1 or 0, and its classes: each a labelled by the smallest element of [a] = {x : a R x}, which is the canonical projection onto the quotient set X/R; and the number of classes. Two classes are equal or disjoint and together cover X. The labels mean classes only when the relation is an equivalence.
Signature
equivalence_classes(R: f64[n, n]) → f64[], f64[n], f64[]
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 smallest related element of each ain exact rational arithmetic, on all 40 test cases. - All 223 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:eaac59502041aeb28c813c34c30b8c11b55252e64e3f7aa373dfbeabffb2fc8bThe semantic hash of the graph. It changes when the program changes, and never when only its documentation does.
Control handle
- Symbol
- Ω:std.sets.equivalence_classes · Ω:equivalence_classes
- Pins
sha256:53ad4f19900f9584599f2d60add600b5c3ebcba9a3c4748efaedbcc0edb9b7b1this graph and the 1 it reaches through calls- Evidence
sha256:8167229a4f7d46c4f6c79b99ca97f065751a6acb833fc216f02fd7b5ab715995the 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.