Skip to content

Commit b0e2f02

Browse files
committed
Add Si et al. 2018
1 parent 12b270b commit b0e2f02

File tree

1 file changed

+29
-0
lines changed

1 file changed

+29
-0
lines changed
Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
---
2+
layout: publication
3+
title: "Learning Loop Invariants for Program Verification"
4+
authors: X. Si, H. Dai, M. Raghothaman, M. Naik, L. Song
5+
conference: NIPS
6+
year: 2018
7+
bibkey: si2018learning
8+
additional_links:
9+
- {name: "Preprint", url: "https://www.cis.upenn.edu/~mhnaik/papers/nips18.pdf"}
10+
---
11+
A fundamental problem in program verification concerns inferring loop invariants.
12+
The problem is undecidable and even practical instances are challenging. Inspired
13+
by how human experts construct loop invariants, we propose a reasoning framework
14+
CODE2INV
15+
that constructs the solution by multi-step decision making and querying
16+
an external program graph memory block. By training with reinforcement learning,
17+
CODE2INV
18+
captures rich program features and avoids the need for ground truth
19+
solutions as supervision. Compared to previous learning tasks in domains with
20+
graph-structured data, it addresses unique challenges, such as a binary objective
21+
function and an extremely sparse reward that is given by an automated theorem
22+
prover only after the complete loop invariant is proposed. We evaluate
23+
CODE2INV on
24+
a suite of 133 benchmark problems and compare it to three state-of-the-art systems.
25+
It solves 106 problems compared to 73 by a stochastic search-based system, 77 by
26+
a heuristic search-based system, and 100 by a decision tree learning-based system.
27+
Moreover, the strategy learned can be generalized to new programs: compared to
28+
solving new instances from scratch, the pre-trained agent is more sample efficient
29+
in finding solutions.

0 commit comments

Comments
 (0)