English
Related papers

Related papers: A Versatile, Sound Tool for Simplifying Definition…

200 papers

ACL2 has long supported user-defined simplifiers, so-called metafunctions and clause processors, which are installed when corresponding rules of class :meta or :clause-processor are proved. Historically, such simplifiers could access the…

Logic in Computer Science · Computer Science 2017-05-04 Matt Kaufmann , Sol Swords

We present a tool that automates termination proofs for recursive definitions by mining existing termination theorems.

Logic in Computer Science · Computer Science 2018-10-16 Matt Kaufmann

ACL2 was used to prove properties of two simplification procedures. The procedures differ in complexity but solve the same programming problem that arises in the context of a resolution/paramodulation theorem proving system. Term rewriting…

Logic in Computer Science · Computer Science 2007-05-23 Olga Shumsky Matlin , William McCune

Even though the ACL2 logic is first order, the ACL2 system offers several mechanisms providing users with some operations akin to higher order logic ones. In this paper, we propose a macro, named instance-of-defspec, to ease the reuse of…

Logic in Computer Science · Computer Science 2013-05-01 Sebastiaan J. C. Joosten , Bernard van Gastel , Julien Schmaltz

In various provers and deductive verification tools, logical transformations are used extensively in order to reduce a proof task into a number of simpler tasks. Logical transformations are often part of the trusted base of such tools. In…

Logic in Computer Science · Computer Science 2021-07-07 Quentin Garchery

This paper explores the idea of using defunctionalization as a proof technique for higher-order programs. Defunctionalization builds on substituting functional values by a first-order representation. Thus, its interest is that one can use…

Logic in Computer Science · Computer Science 2019-05-22 Mário Pereira

Deductive verification has become a mature paradigm for the verification of industrial software. Applying deductive verification, however, requires that every function in the code base is annotated with a function contract specifying its…

Logic in Computer Science · Computer Science 2025-01-22 Jesper Amilon , Dilian Gurov , Christian Lidström , Mattias Nyberg , Gustav Ung , Ola Wingbrant

We present a method for synthesizing recursive functions that provably satisfy a given specification in the form of a polymorphic refinement type. We observe that such specifications are particularly suitable for program synthesis for two…

Programming Languages · Computer Science 2016-04-22 Nadia Polikarpova , Ivan Kuraj , Armando Solar-Lezama

Syntheto is a surface language for carrying out formally verified program synthesis by transformational refinement in ACL2 using the APT toolkit. Syntheto aims at providing more familiarity and automation, in order to make this technology…

Software Engineering · Computer Science 2022-05-25 Alessandro Coglio , Eric McCarthy , Stephen Westfold , Daniel Balasubramanian , Abhishek Dubey , Gabor Karsai

Automatic and efficient verification of multiplier designs, especially through a provably correct method, is a difficult problem. We show how to utilize a theorem prover, ACL2, to implement an efficient rewriting algorithm for multiplier…

Logic in Computer Science · Computer Science 2022-05-25 Mertcan Temel

This paper describes a strategy for providing hints during an ACL2 proof, implemented in a utility called use-termhint. An extra literal is added to the goal clause and simplified along with the rest of the goal until it is stable under…

Logic in Computer Science · Computer Science 2018-10-11 Sol Swords

This paper presents the main features of a system that aims to transform regular expressions into shorter equivalent expressions. The system is also capable of computing other operations useful for simplification, such as checking the…

Symbolic Computation · Computer Science 2023-07-14 Baudouin Le Charlier

We present \synver{}, a novel synthesis and verification framework for C programs, that deploys a Large Language Model (LLM) to search for a candidate program that satisfies the given specification. Our key idea is to impose syntactic and…

Programming Languages · Computer Science 2025-10-21 Prasita Mukherjee , Benjamin Delaware

We describe defret-mutual-generate, a utility for proving ACL2 theorems about large mutually recursive cliques of functions. This builds on previous tools such as defret-mutual and make-flag, which automate parts of the process but still…

Logic in Computer Science · Computer Science 2020-09-30 Sol Swords

Widely used complex code refactoring tools lack a solid reasoning about the correctness of the transformations they implement, whilst interest in proven correct refactoring is ever increasing as only formal verification can provide true…

Software Engineering · Computer Science 2017-08-25 Dániel Horpácsi , Judit Kőszegi , Zoltán Horváth

In this work, we present an approach towards constructing executable specifications of existing filesystems and verifying their functional properties in a theorem proving environment. We detail an application of this approach to the FAT32…

Logic in Computer Science · Computer Science 2018-10-11 Mihir Parang Mehta

Program Synthesis is the mapping of a specification of what a computer program is supposed to do, into a computer program that does what the specification says to do. This is equivalent to constructing any computer program and a sound proof…

Logic in Computer Science · Computer Science 2015-01-08 Charles Volkstorf

The aim of this short paper is to give a practical introduction to functional interpretation of proofs for computer scientists interested in synthesis.

Logic in Computer Science · Computer Science 2014-03-31 Daniel Weller

Development of energy and performance-efficient embedded software is increasingly relying on application of complex transformations on the critical parts of the source code. Designers applying such nontrivial source code transformations are…

Logic in Computer Science · Computer Science 2011-11-09 K. C. Shashidhar , Maurice Bruynooghe , Francky Catthoor , Gerda Janssens

SOFT ('Second-Order Functions and Theorems') is a tool to mimic second-order functions and theorems in the first-order logic of ACL2. Second-order functions are mimicked by first-order functions that reference explicitly designated…

Logic in Computer Science · Computer Science 2015-09-22 Alessandro Coglio
‹ Prev 1 2 3 10 Next ›