作者
He Zhu, Aditya V Nori, Suresh Jagannathan
发表日期
2015/8/29
期刊
ACM SIGPLAN Notices
卷号
50
期号
9
页码范围
400-411
出版商
ACM
简介
We propose the integration of a random test generation system (capable of discovering program bugs) and a refinement type system (capable of expressing and verifying program invariants), for higher-order functional programs, using a novel lightweight learning algorithm as an effective intermediary between the two. Our approach is based on the well-understood intuition that useful, but difficult to infer, program properties can often be observed from concrete program states generated by tests; these properties act as likely invariants, which if used to refine simple types, can have their validity checked by a refinement type checker. We describe an implementation of our technique for a variety of benchmarks written in ML, and demonstrate its effectiveness in inferring and proving useful invariants for programs that express complex higher-order control and dataflow.
引用总数
2016201720182019202020212022202358517325
学术搜索中的文章
H Zhu, AV Nori, S Jagannathan - ACM SIGPLAN Notices, 2015