The program synthesis problem within the Inductive Logic Programming (ILP) community has typically been seen as untyped. We consider the benefits of user provided types on background knowledge. Building on the Meta-Interpretive Learning (MIL) framework, we show that type checking is able to prune large parts of the hypothesis space of programs. The introduction of polymorphic type checking to the MIL approach to logic program synthesis is validated by strong theoretical and experimental results, showing a cubic reduction in the size of the search space and synthesis time, in terms of the number of typed background predicates. Additionally we are able to infer polymorphic types of synthesized clauses and of entire programs. The other advancement is in developing an approach to leveraging refinement types in ILP. Here we show that further pruning of the search space can be achieved, though the SMT solving used for refinement type checking comes
翻译:引入逻辑编程(ILP)社区内的程序合成问题通常被视为未类型化。 我们认为用户提供的背景知识类型的好处。 在Met-解释性学习(MIL)框架的基础上,我们显示,类型检查能够利用程序假设空间的大部分部分。 对逻辑程序合成采用多形态检查MIL方法的逻辑程序合成方法,通过强烈的理论和实验结果得到验证,从打字背景前缀的数量来看,搜索空间和合成时间的尺寸有立方缩小。此外,我们可以推导合成条款和整个程序的多形态类型。另一个进步是在开发一种方法来利用ILP的精细类型方面。我们在这里表明,虽然用于改进类型检查的SMT解决方案即将到来,但搜索空间的进一步调整是可以实现的。