2020
DOI: 10.1007/978-3-030-53291-8_9
|View full text |Cite
|
Sign up to set email alerts
|

Code2Inv: A Deep Learning Framework for Program Verification

Abstract: We propose a general end-to-end deep learning framework Code2Inv, which takes a verification task and a proof checker as input, and automatically learns a valid proof for the verification task by interacting with the given checker. Code2Inv is parameterized with an embedding module and a grammar: the former encodes the verification task into numeric vectors while the latter describes the format of solutions Code2Inv should produce. We demonstrate the flexibility of Code2Inv by means of two small-scale yet expr… Show more

Help me understand this report

Search citation statements

Order By: Relevance

Paper Sections

Select...
2
1
1
1

Citation Types

0
17
0

Year Published

2021
2021
2024
2024

Publication Types

Select...
5
3

Relationship

0
8

Authors

Journals

citations
Cited by 23 publications
(17 citation statements)
references
References 29 publications
0
17
0
Order By: Relevance
“…They feature linear integer arithmetic and sometimes involve conditionals, assumptions and nondeterministic tests. We provide examples of Code2Inv problems in Appendix C. Most existing invariant generation tools can only solve a subset of these problems [28]. To the best of our knowledge, only one existing tool can solve them all [29], but only by using specific optimization techniques that are not generalizable beyond the setting of purely numerical programs.…”
Section: Methodsmentioning
confidence: 99%
“…They feature linear integer arithmetic and sometimes involve conditionals, assumptions and nondeterministic tests. We provide examples of Code2Inv problems in Appendix C. Most existing invariant generation tools can only solve a subset of these problems [28]. To the best of our knowledge, only one existing tool can solve them all [29], but only by using specific optimization techniques that are not generalizable beyond the setting of purely numerical programs.…”
Section: Methodsmentioning
confidence: 99%
“…Si et al [20,21] proposed CODE2INV, a framework to learn loop invariants with deep learning and RL. CODE2INV uses graph neural networks to encode the information of a program and synthesizes loop invariants using a syntaxdirected decoder, leveraging RL to guide the encoder-decoder process.…”
Section: A Related Workmentioning
confidence: 99%
“…One exception is the flag b 6 , which is not used in the current PCSat heuristic. We include this flag inspired by CODE2INV [20,21], which uses the number of example instances satisfied by the current template as a part of reward. We abstract the number by the flag b 6 to keep the state space finite.…”
Section: B Template-update Process As Markov Decision Processmentioning
confidence: 99%
“…While those approaches are applicable to large classes of programs, they may have scalability limitations and fail to infer certain types of invariants, such as disjunctive invariants. Emerging data-driven approaches, following the active learning paradigm with various machine learning techniques, have shown their ability to solve efficiently complex instances of the invariant synthesis problem [14,15,11,29,19,30,25].…”
Section: Introductionmentioning
confidence: 99%
“…Continuous logic networks were also used to tackle the problem in CLN2INV [27]. Code2Inv [30], the first approach to introduce general deep learning methods to program verification, uses a graph neural network to capture the program structure and reinforcement learning to guide the search heuristic of a particular domain.…”
Section: Introductionmentioning
confidence: 99%