let is_satisfying (graph : graph) : bool =
let non_empty _ node acc = acc && match node.lang with
| Unrestricted -> true
| Machine m -> not (is_empty m)
| _ -> raise (IllegalLangOp "is_satisfying")
in
Hashtbl.fold non_empty graph true