REST: Integrating Term Rewriting with Program Verification (Extended Version)

02/11/2022
by   Zachary Grannan, et al.
0

We introduce REST, a novel term rewriting technique for theorem proving that uses online termination checking and can be integrated with existing program verifiers. REST enables flexible but terminating term rewriting for theorem proving by: (1) exploiting newly-introduced term orderings that are more permissive than standard rewrite simplification orderings; (2) dynamically and iteratively selecting orderings based on the path of rewrites taken so far; and (3) integrating external oracles that allow steps that cannot be justified with rewrite rules. Our REST approach is designed around an easily implementable core algorithm, parameterizable by choices of term orderings and their implementations; in this way our approach can be easily integrated into existing tools. We implemented REST as a Haskell library and incorporated it into Liquid Haskell's evaluation strategy, extending Liquid Haskell with rewriting rules. We evaluated our REST implementation by comparing it against both existing rewriting techniques and E-matching and by showing that it can be used to supplant manual lemma application in many existing Liquid Haskell proofs.

READ FULL TEXT

page 20

page 26

page 27

research
05/24/2017

Faithful (meta-)encodings of programmable strategies into term rewriting systems

Rewriting is a formalism widely used in computer science and mathematica...
research
08/15/2018

Guided Unfoldings for Finding Loops in Standard Term Rewriting

In this paper, we reconsider the unfolding-based technique that we have ...
research
01/28/2020

Subsumption Demodulation in First-Order Theorem Proving

Motivated by applications of first-order theorem proving to software ana...
research
10/10/2018

Hint Orchestration Using ACL2's Simplifier

This paper describes a strategy for providing hints during an ACL2 proof...
research
09/26/2022

Generating Compressed Combinatory Proof Structures – An Approach to Automated First-Order Theorem Proving

Representing a proof tree by a combinator term that reduces to the tree ...
research
09/30/2019

CSPLib: Twenty Years On

In 1999, we introduced CSPLib, a benchmark library for the constraints c...
research
06/28/2023

Proving Confluence in the Confluence Framework with CONFident

This article describes the *Confluence Framework*, a novel framework for...

Please sign up or login with your details

Forgot password? Click here to reset