Documentation

Bdd.Reduce.Discover

def OBdd.discover {n m : } (O : OBdd n m) :
Vector (List (Fin m)) n

Return a vector whose vth entry is a list of node indices with variable index v.

Equations
Instances For
    theorem OBdd.discover_spec {n m : } {O : OBdd n m} {j : Fin m} :
    Pointer.Reachable (↑O).heap (↑O).root (Pointer.node j)j O.discover[(↑O).heap[j].var]

    discover is correct (forward direction).

    theorem OBdd.discover_spec_inv {n m : } {O : OBdd n m} {j : Fin m} {i : Fin n} :
    j O.discover[i](↑O).heap[j].var = i Pointer.Reachable (↑O).heap (↑O).root (Pointer.node j)

    discover is correct (backward direction): membership implies var = i and reachability.