12 research outputs found
Strategic Issues, Problems and Challenges in Inductive Theorem Proving
Abstract(Automated) Inductive Theorem Proving (ITP) is a challenging field in automated reasoning and theorem proving. Typically, (Automated) Theorem Proving (TP) refers to methods, techniques and tools for automatically proving general (most often first-order) theorems. Nowadays, the field of TP has reached a certain degree of maturity and powerful TP systems are widely available and used. The situation with ITP is strikingly different, in the sense that proving inductive theorems in an essentially automatic way still is a very challenging task, even for the most advanced existing ITP systems. Both in general TP and in ITP, strategies for guiding the proof search process are of fundamental importance, in automated as well as in interactive or mixed settings. In the paper we will analyze and discuss the most important strategic and proof search issues in ITP, compare ITP with TP, and argue why ITP is in a sense much more challenging. More generally, we will systematically isolate, investigate and classify the main problems and challenges in ITP w.r.t. automation, on different levels and from different points of views. Finally, based on this analysis we will present some theses about the state of the art in the field, possible criteria for what could be considered as substantial progress, and promising lines of research for the future, towards (more) automated ITP
Programming Languages and Systems
This open access book constitutes the proceedings of the 28th European Symposium on Programming, ESOP 2019, which took place in Prague, Czech Republic, in April 2019, held as Part of the European Joint Conferences on Theory and Practice of Software, ETAPS 2019
The Dynamic Creation of Induction Rules Using Proof Planning
Centre for Intelligent Systems and their ApplicationsA key problem in automating proof by mathematical induction is choosing an induction
rule suitable for a given conjecture. Since Boyer & Moore’s NQTHM system the
standard approach has been based on recursion analysis, which uses a combination of
induction rules based on the relevant recursive function definitions. However, there are
practical examples on which such techniques are known to fail.
Recent research has tried to improve automation by delaying the choice of inductive
rule until later in the proof, but these techniques suffer from two serious problems.
Firstly, a lack of search control: specifically, in controlling the application of ‘speculative’
proof steps that partially commit to a choice of induction rule. Secondly, a lack
of generality: they place significant restrictions on the form of induction rule that can
be chosen.
In this thesis we describe a new delayed commitment strategy for inductive proof
that addresses these problems. The strategy dynamically creates an appropriate induction
rule by proving schematic proof goals, where unknown rule structure is represented
by meta-variables which become instantiated during the proof. This is accompanied
by a proof that the generated rule is valid. The strategy achieves improved
control over speculative proof steps via a novel speculation critic. It also generates
a wider range of useful induction rules than other delayed commitment techniques,
partly because it removes unnecessary restrictions on the individual proof cases, and
partly because of a new technique for generating the rule’s overall case structure.
The basic version of the strategy has been implemented using the lamdaClam proof
planner. The system was extended with a novel proof critics architecture for this purpose.
An evaluation shows the strategy is a useful and practical technique, and demonstrates
its advantages
Foundations of Software Science and Computation Structures
This open access book constitutes the proceedings of the 24th International Conference on Foundations of Software Science and Computational Structures, FOSSACS 2021, which was held during March 27 until April 1, 2021, as part of the European Joint Conferences on Theory and Practice of Software, ETAPS 2021. The conference was planned to take place in Luxembourg and changed to an online format due to the COVID-19 pandemic. The 28 regular papers presented in this volume were carefully reviewed and selected from 88 submissions. They deal with research on theories and methods to support the analysis, integration, synthesis, transformation, and verification of programs and software systems
Arrows for knowledge-based circuits
Knowledge-based programs (KBPs) are a formalism for directly relating agents' knowledge and behaviour in a way that has proven useful for specifying distributed systems. Here we present a scheme for compiling KBPs to executable automata in finite environments with a proof of correctness in Isabelle/HOL. We use Arrows, a functional programming abstraction, to structure a prototype domain-specific synchronous language embedded in Haskell. By adapting our compilation scheme to use symbolic representations we can apply it to several examples of reasonable size
Foundations of Software Science and Computation Structures
This open access book constitutes the proceedings of the 22nd International Conference on Foundations of Software Science and Computational Structures, FOSSACS 2019, which took place in Prague, Czech Republic, in April 2019, held as part of the European Joint Conference on Theory and Practice of Software, ETAPS 2019. The 29 papers presented in this volume were carefully reviewed and selected from 85 submissions. They deal with foundational research with a clear significance for software science
Programming Languages and Systems
This open access book constitutes the proceedings of the 29th European Symposium on Programming, ESOP 2020, which was planned to take place in Dublin, Ireland, in April 2020, as Part of the European Joint Conferences on Theory and Practice of Software, ETAPS 2020. The actual ETAPS 2020 meeting was postponed due to the Corona pandemic. The papers deal with fundamental issues in the specification, design, analysis, and implementation of programming languages and systems