English
Related papers

Related papers: Program Synthesis in Saturation

200 papers

The saturation-based reasoning methods are among the most theoretically developed ones and are used by most of the state-of-the-art first-order logic reasoners. In the last decade there was a sharp increase in performance of such systems,…

Artificial Intelligence · Computer Science 2008-02-18 Alexandre Riazanov

Static verification relying on an automated theorem prover can be very slow and brittle: since static verification is undecidable, correct code may not pass a particular static verifier. In this work we use metaprogramming to generate code…

Programming Languages · Computer Science 2019-08-21 Isaac Oscar Gariano , Marco Servetto , Alex Potanin , Hrshikesh Arora

Several practical tools for automatically verifying functional programs (e.g., Liquid Haskell and Leon for Scala programs) rely on a heuristic based on unrolling recursive function definitions followed by quantifier-free reasoning using SMT…

Logic in Computer Science · Computer Science 2026-05-25 Adithya Murali , Lucas Peña , Ranjit Jhala , P. Madhusudan

In this paper, we identify a fragment of second-order logic with restricted quantification that is expressive enough to capture numerous static analysis problems (e.g. safety proving, bug finding, termination and non-termination proving,…

Logic in Computer Science · Computer Science 2015-09-01 Cristina David , Daniel Kroening , Matt Lewis

Second-order quantifier-elimination is the problem of finding, given a formula with second-order quantifiers, a logically equivalent first-order formula. While such formulas are not computable in general, there are practical algorithms and…

Logic in Computer Science · Computer Science 2025-06-03 Fabian Achammer , Stefan Hetzl , Renate A. Schmidt

In deductive verification and software model checking, dealing with certain specification language constructs can be problematic when the back-end solver is not sufficiently powerful or lacks the required theories. One way to deal with this…

Logic in Computer Science · Computer Science 2024-12-10 Jesper Amilon , Zafer Esen , Dilian Gurov , Christian Lidström , Philipp Rümmer , Marten Voorberg

The general setting of this work is the constraint-based synthesis of termination arguments. We consider a restricted class of programs called lasso programs. The termination argument for a lasso program is a pair of a ranking function and…

Logic in Computer Science · Computer Science 2014-01-22 Matthias Heizmann , Jochen Hoenicke , Jan Leike , Andreas Podelski

This paper continues the line of research aimed at investigating the relationship between logic programs and first-order theories. We extend the definition of program completion to programs with input and output in a subset of the input…

Logic in Computer Science · Computer Science 2023-05-02 Jorge Fandinno , Vladimir Lifschitz , Patrick Lühne , Torsten Schaub

This paper considers program synthesis in the context of computational hardness, asking the question: How hard is it to determine whether a given synthesis problem has a solution or not? To answer this question, this paper studies program…

Logic in Computer Science · Computer Science 2024-05-28 Jinwoo Kim

Applications like program synthesis sometimes require proving that a property holds for all of the infinitely many programs described by a grammar - i.e., an inductively defined set of programs. Current verification frameworks…

Programming Languages · Computer Science 2025-07-29 Jinwoo Kim , Shaan Nagy , Thomas Reps , Loris D'Antoni

Explicit theory axioms are added by a saturation-based theorem prover as one of the techniques for supporting theory reasoning. While simple and effective, adding theory axioms can also pollute the search space with many irrelevant…

Logic in Computer Science · Computer Science 2020-04-02 Bernhard Gleiss , Martin Suda

Using multisets, we develop novel techniques for mechanizing the proofs of the synthesis conjectures for list-sorting algorithms, and we demonstrate them in the Theorema system. We use the classical principle of extracting the algorithm as…

Logic in Computer Science · Computer Science 2019-09-05 Isabela Drămnesc , Tudor Jebelean

Program completion is a translation from the language of logic programs into the language of first-order theories. Its original definition has been extended to programs that include integer arithmetic, accept input, and distinguish between…

Logic in Computer Science · Computer Science 2023-12-27 Jorge Fandinno , Vladimir Lifschitz , Nathan Temple

In this contribution we revisit regular model checking, a powerful framework that has been successfully applied for the verification of infinite-state systems, especially parameterized systems (concurrent systems with an arbitrary number of…

Logic in Computer Science · Computer Science 2021-11-23 Anthony W. Lin , Philipp Rümmer

Undergraduate students of artificial intelligence often struggle with representing knowledge as logical sentences. This is a skill that seems to require extensive practice to obtain, suggesting a teaching strategy that involves the…

Computers and Society · Computer Science 2015-07-15 Angelo Kyrilov , David Noelle

Recent years have seen tremendous growth in the amount of verified software. Proofs for complex properties can now be achieved using higher-order theories and calculi. Complex properties lead to an ever-growing number of definitions and…

Programming Languages · Computer Science 2021-11-29 Eytan Singher , Shachar Itzhaky

We show that time complexity analysis of higher-order functional programs can be effectively reduced to an arguably simpler (although computationally equivalent) verification problem, namely checking first-order inequalities for validity.…

Logic in Computer Science · Computer Science 2012-10-26 Ugo Dal Lago , Barbara Petit

Program synthesis is the task of constructing a program conforming to a given specification. We focus on deductive synthesis, and in particular on synthesis problems with specifications given as $\forall\exists$-formulas, expressing the…

Logic in Computer Science · Computer Science 2025-08-15 Márton Hajdu , Petra Hozzová , Laura Kovács , Andrei Voronkov , Eva Maria Wagner , Richard Steven Žilinčík

Proof by coupling is a classical technique for proving properties about pairs of randomized algorithms by carefully relating (or coupling) two probabilistic executions. In this paper, we show how to automatically construct such proofs for…

Programming Languages · Computer Science 2018-04-12 Aws Albarghouthi , Justin Hsu

This paper describes a generalization of Clark's completion that is applicable to logic programs containing arithmetic operations and produces syntactically simple, natural looking formulas. If a set of first-order axioms is equivalent to…

Logic in Computer Science · Computer Science 2023-05-25 Vladimir Lifschitz