SLING: Using Dynamic Analysis to Infer Program Invariants in Separation Logic
Not on the map. Why?
Abstract (arXiv)
We introduce a new dynamic analysis technique to discover invariants in separation logic for heap-manipulating programs. First, we use a debugger to obtain rich program execution traces at locations of interest on sample inputs. These traces consist of heap and stack information of variables that point to dynamically allocated data structures. Next, we iteratively analyze separate memory regions related to each pointer variable and search for a formula over predefined heap predicates in separation logic to model these regions. Finally, we combine the computed formulae into an invariant that describes the shape of explored memory regions. We present SLING, a tool that implements these ideas to automatically generate invariants in separation logic at arbitrary locations in C programs, e.g., program pre and postconditions and loop invariants. Preliminary results on existing benchmarks show that SLING can efficiently generate correct and useful invariants for programs that manipulate a wide variety of complex data structures.
Key facts. Cited by 7 papers in the map (data through 14 Oct 2026). First posted on arXiv 22 Mar 2019.
Builds on
No reference list yet.
Built on by
Citing papers per year: 2024: 1; 2025: 5; 2026: 1.
7 papers.
- 2025ClassInvGen: Class Invariant Synthesis using Large Language Modelscited by 11
- 2024Enhancing Automated Loop Invariant Generation for Complex Programs with Large Language Modelscited by 7
- 2025Quokka: Accelerating Program Verification with LLMs via Invariant Synthesiscited by 4
- 2025Can LLMs Enable Verification in Mainstream Programming?cited by 3
- 2025Program Skeletons for Automated Program Translationcited by 3
- 2025LLM For Loop Invariant Generation and Fixing: How Far Are We?cited by 1
- 2026Agentic Separation Logic Specification Synthesiscited by 0
- 2026Agentic Separation Logic Specification Synthesis26 May 2026
- 2025LLM For Loop Invariant Generation and Fixing: How Far Are We?9 Nov 2025
- 2025Quokka: Accelerating Program Verification with LLMs via Invariant Synthesis25 Sep 2025
- 2025Program Skeletons for Automated Program Translation10 Apr 2025
- 2025Can LLMs Enable Verification in Mainstream Programming?18 Mar 2025
- 2025ClassInvGen: Class Invariant Synthesis using Large Language Models26 Feb 2025
- 2024Enhancing Automated Loop Invariant Generation for Complex Programs with Large Language Models13 Dec 2024