Open eionblanc opened 3 years ago
All three components are now complete (changes made to engine.py's solve
function rather than call_solver
). The tests in tests/
output the same output as in the main branch, and results seem reasonable for some toy infinite grammars. More testing on actual infinite grammar examples is needed!
The
breadth_first
branch currently supports amax_depth
specification forcompute_constraint_encoding
, unpacking the SyGuS grammar only up to the specified depth. This, I think, was the main hurdle toward supporting infinite grammars. The remaining issues that I'm aware of follow, all of which I suspect will not be too difficult:pretty_smt_encoding
, we must print functions according to actual dependence of the nonterminal copies so that when the SMT file is passed to a solver, functions are defined in the correct order. For example, if B1_0 calls B2_0 which then calls B1_1, these need to be printed in reverse order to the SMT file and cannot be partitioned into a B1 block and a B2 block as has been our approach.max_depth
parameter until the result issat
or a universal depth maximum (parameter) is hit.