theorem
Hex.GraphIso.Nauty.VSet.toNat_foldl_insert
{n : Nat}
(g : Nat → Nat)
(l : List Nat)
(init : VSet n)
:
(List.foldl (fun (w : VSet n) (o : Nat) => w.insert (g o)) init l).toNat = List.foldl (fun (w o : Nat) => NatSet.insert n w (g o)) init.toNat l
theorem
Hex.GraphIso.Nauty.VSet.toNat_ofFn
{n : Nat}
(f : Nat → Bool)
:
(ofFn f).toNat = List.foldl (fun (s v : Nat) => if f v = true then NatSet.insert n s v else s) 0 (List.range n)
The packed set of a bitset.
Equations
- Hex.GraphIso.Nauty.VSet.ofNat x = Hex.GraphIso.Nauty.VSet.ofFn fun (v : Nat) => x.testBit v
Instances For
@[instance_reducible]
Equations
- Hex.GraphIso.Nauty.VSet.instRepr = { reprPrec := fun (s : Hex.GraphIso.Nauty.VSet n) (x : Nat) => repr s.toNat }