🤖 AI Summary
This work addresses the problem of automatically synthesizing recursive programs from first-order logical specifications containing mixed quantifiers. By applying Skolemization, the mixed-quantifier synthesis problem is reduced to one involving only universal quantifiers, enabling the simultaneous synthesis of both the target program and its associated Skolem functions within a sketch-guided enumeration framework integrated with counterexample-guided inductive synthesis (CEGIS). The approach innovatively incorporates counterexample generalization to infer syntactic constraints and introduces a preventive pruning strategy to effectively suppress the generation of invalid candidates. Experimental evaluation on 42 benchmarks demonstrates the efficacy of the proposed method, with counterexample generalization and preventive pruning significantly enhancing synthesis efficiency.
📝 Abstract
We present a novel approach to the automatic synthesis of recursive programs from mixed-quantifier first-order logic properties. Our approach uses Skolemization to reduce the mixed-quantifier synthesis problem to a $\forall^*$-synthesis problem, synthesizing witness-generating functions for introduced Skolem symbols alongside the target program. We tackle $\forall^*$-synthesis using a sketching-based, enumerative, counterexample-guided approach. Our algorithm learns syntactic constraints from counterexamples to prune the candidate space and employs a prophylactic pruning technique to avoid enumerating invalid candidates altogether. We evaluate our technique on 42 benchmarks, demonstrating that both counterexample generalization and prophylactic pruning significantly improve performance.