reduce test output
z3 backed execution inspired by Leon

implementing the guarded unfolding logic for recursive
functions from this paper:

"Satisfiability Modulo Recursive Programs"
http://lara.epfl.ch/~kuncak/papers/SuterETAL11SatisfiabilityModuloRecursivePrograms.pdf