Checking Observational Purity of Procedures

02/14/2019
by   Himanshu Arora, et al.
0

Verifying whether a procedure is observationally pure is useful in many software engineering scenarios. An observationally pure procedure always returns the same value for the same argument, and thus mimics a mathematical function. The problem is challenging when procedures use private mutable global variables, e.g., for memoization of frequently returned answers, and when they involve recursion. We present a novel verification approach for this problem. Our approach involves encoding the procedure's code as a formula that is a disjunction of path constraints, with the recursive calls being replaced in the formula with references to a mathematical function symbol. Then, a theorem prover is invoked to check whether the formula that has been constructed agrees with the function symbol referred to above in terms of input-output behavior for all arguments. We evaluate our approach on a set of realistic examples, using the Boogie intermediate language and theorem prover. Our evaluation shows that the invariants are easy to construct manually, and that our approach is effective at verifying observationally pure procedures.

READ FULL TEXT

page 1

page 2

page 3

page 4

research
08/20/2021

Abduction of trap invariants in parameterized systems

In a previous paper we have presented a CEGAR approach for the verificat...
research
06/13/2018

When Regression Verification Meets CEGAR

Software systems evolve throughout their life cycles. Many revisions are...
research
08/14/2023

Ergodic Estimations for Toeplitz Sequences Generated by a Symbol

We analyse the convergence of the ergodic formula for Toeplitz matrix-se...
research
04/01/2021

The Gamma Function via Interpolation

The Lanczos formula for the Gamma function is used in many software libr...
research
06/22/2018

A Flexible Approach for Checking Timed Automata on Continuous Time Semantics

Timed Automata (TA) are used to represent systems when the interest is t...
research
11/20/2021

Effects of context, complexity, and clustering on evaluation for math formula retrieval

There are now several test collections for the formula retrieval task, i...
research
10/22/2021

On Enumerating Short Projected Models

Propositional model enumeration, or All-SAT, is the task to record all m...

Please sign up or login with your details

Forgot password? Click here to reset