Symbolic Execution Game Semantics

02/21/2020
by   Yu-Yang Lin, et al.
0

We present a framework for symbolically executing and model checking higher-order programs with external (open) methods. We focus on the client-library paradigm and in particular we aim to check libraries with respect to any definable client. We combine traditional symbolic execution techniques with operational game semantics to build a symbolic execution semantics that captures arbitrary external behaviour. We prove the symbolic semantics to be sound and complete. This yields a bounded technique by imposing bounds on the depth of recursion and callbacks. We provide an implementation of our technique in the K framework and showcase its performance on a custom benchmark based on higher-order coding errors such as reentrancy bugs.

READ FULL TEXT

page 19

page 20

page 29

research
04/05/2018

Higher-Order Bounded Model Checking

We present a Bounded Model Checking technique for higher-order programs....
research
07/19/2023

Symbolic Semantics for Probabilistic Programs (extended version)

We present a new symbolic execution semantics of probabilistic programs ...
research
05/06/2021

There and Back Again: From Bounded Checking to Verification of Program Equivalence via Symbolic Up-to Techniques

We present a bounded equivalence verification technique for higher-order...
research
05/09/2023

Engineering a Formally Verified Automated Bug Finder

Symbolic execution is a program analysis technique executing programs wi...
research
12/27/2019

TASE: Reducing latency of symbolic execution with transactional memory

We present the design and implementation of a tool called TASE that uses...
research
03/10/2021

Bounded Invariant Checking for Stateflow Programs

Stateflow models are complex software models, often used as part of safe...
research
04/15/2021

Memory Order Decomposition of Symbolic Sequences

We introduce a general method for the study of memory in symbolic sequen...

Please sign up or login with your details

Forgot password? Click here to reset