static IEnumerable<Expr[]> GetStatesOf(Expr t)
{
if (t.ASTKind == Z3_ast_kind.Z3_APP_AST)
{
var args = t.Args;
if (TreeTheory.IsTrans(t.FuncDecl))
yield return args;
else
{
for (int i = 1; i < args.Length; i++)
foreach (var s in GetStatesOf(args[i]))
yield return s;
}
}
}