Tobias Nipkow

dblp:n/TobiasNipkow · DBLP profile ↗
← Back
101ranked-venue papers
46as first author
13since 2021 · last 2026
0000-0003-0730-515XORCID · verified

Domains — the database's venue-derived domains; a paper can count in several

Theory of computation · 60 · 30 first-author · 10 since 2021Software engineering, systems software and programming languages · 33 · 12 first-author · 3 since 2021Artificial intelligence and machine learning · 27 · 12 first-author · 6 since 2021Applied, interdisciplinary, general and emerging computing · 2 · 2 first-authorSystems, architecture and hardware · 1Graphics, computer vision, multimedia, augmented reality and games · 1
YearPublicationVenuePosition
2026 A Unified Formalization of Context-Free Grammar Theory
abstract
Abstract We present an Isabelle/HOL formalization of the theory of context-free grammars and their links to finite automata. In particular we focus on first-time formalizations of an executable translation into Greibach Normal Form, the Chomsky-Schützenberger Representation Theorem and Parikh’s Theorem.
Tobias Nipkow, Fabian Lehr, Moritz Roos, Akihisa Yamada 0002
IJCAR (2)1
2025 Exploiting Instantiations from Paramodulation Proofs in Isabelle/HOL
abstract
Abstract Metis is an ordered paramodulation prover built into the Isabelle/HOL proof assistant. It attempts to close the current goal using a given list of lemmas. Typically these lemmas are found by Sledgehammer, a tool that integrates external automatic provers. We present a new tool that analyzes successful Metis proofs to derive variable instantiations. These increase Sledgehammer’s success rate, improve the speed of Sledgehammer-generated proofs, and help users understand why a goal follows from the lemmas.
Lukas Bartl, Jasmin Blanchette, Tobias Nipkow
CADE3
2024 Alpha-Beta Pruning Verified (Invited Talk)
Tobias Nipkow
ITP1
2024 A Verified Earley Parser
abstract
An Earley parser is a top-down parsing technique that is capable of parsing arbitrary context-free grammars. We present a functional implementation of an Earley parser verified using the interactive theorem prover Isabelle/HOL. Our formalization builds upon Cliff Jones' extensive, refinement-based paper proof. We implement and prove soundness and completeness of a functional recognizer modeling Jay Earley’s original imperative implementation and extend it with the necessary data structures to enable the construction of parse trees following the work of Elizabeth Scott. Building upon this foundation, we develop a functional parser and prove its soundness. We round off the paper by providing an informal argument and empirical data regarding the running time and space complexity of our implementation.
Martin Rau, Tobias Nipkow
ITP2
2024 Gale-Shapley Verified
abstract
Abstract This paper presents a detailed verification of the Gale-Shapley algorithm for stable matching (or marriage). The verification proceeds by stepwise transformation of programs and proofs. The initial steps are on the level of imperative programs, ending in a linear time algorithm. An executable functional program is obtained in a last step. The emphasis is on the stepwise development of the algorithm and the required invariants.
Tobias Nipkow
J. Autom. Reason.1
2023 Verification of NP-Hardness Reduction Functions for Exact Lattice Problems
abstract
Abstract This paper describes the formal verification of NP-hardness reduction functions of two key problems relevant in algebraic lattice theory: the closest vector problem and the shortest vector problem, both in the infinity norm. The formalization uncovered a number of problems with the existing proofs in the literature. The paper describes how these problems were corrected in the formalization. The work was carried out in the proof assistant Isabelle.
Katharina Heidler, Tobias Nipkow
CADE2
2023 Real-Time Double-Ended Queue Verified (Proof Pearl)
Balázs Tóth, Tobias Nipkow
ITP2
2023 A Formalization and Proof Checker for Isabelle's Metalogic
abstract
Abstract Isabelle is a generic theorem prover with a fragment of higher-order logic as a metalogic for defining object logics. Isabelle also provides proof terms. We formalize this metalogic and the language of proof terms in Isabelle/HOL, define an executable (but inefficient) proof term checker and prove its correctness w.r.t. the metalogic. We integrate the proof checker with Isabelle and run it on a range of logics and theories to check the correctness of all the proofs in those theories.
Simon Roßkopf, Tobias Nipkow
J. Autom. Reason.2
2022 A Verified Implementation of B+-Trees in Isabelle/HOL
Niels Mündler, Tobias Nipkow
ICTAC2
2022 Verified Approximation Algorithms
abstract
We present the first formal verification of approximation algorithms for NP-complete optimization problems: vertex cover, independent set, set cover, center selection, load balancing, and bin packing. We uncover incompletenesses in existing proofs and improve the approximation ratio in one case. All proofs are uniformly invariant based.
Robin Eßmann, Tobias Nipkow, Simon Robillard, Ujkan Sulejmani
Log. Methods Comput. Sci.2
2021 A Verified Decision Procedure for Orders in Isabelle/HOL
Lukas Stevens, Tobias Nipkow
ATVA2
2021 Isabelle's Metalogic: Formalization and Proof Checker
abstract
Abstract Isabelle is a generic theorem prover with a fragment of higher-order logic as a metalogic for defining object logics. Isabelle also provides proof terms. We formalize this metalogic and the language of proof terms in Isabelle/HOL, define an executable (but inefficient) proof term checker and prove its correctness w.r.t. the metalogic. We integrate the proof checker with Isabelle and run it on a range of logics and theories to check the correctness of all the proofs in those theories.
Tobias Nipkow, Simon Roßkopf
CADE1
2021 Teaching algorithms and data structures with a proof assistant (invited talk)
abstract
We report on a new course Verified Functional Data Structures and Algorithms taught at the Technical University of Munich. The course first introduces students to interactive theorem proving with the Isabelle proof assistant. Then it covers a range of standard data structures, in particular search trees and priority queues: it is shown how to express these data structures functionally and how to reason about their correctness and running time in Isabelle.
Tobias Nipkow
CPP1
2020 Verified Textbook Algorithms - A Biased Survey
Tobias Nipkow, Manuel Eberl, Maximilian P. L. Haslbeck
ATVA1
2020 Proof pearl: Braun trees
abstract
Braun trees are functional data structures for implementing extensible arrays and priority queues (and sorting functions based on the latter) efficiently. Some well-known functions on Braun trees have not yet been verified, including especially Okasaki’s linear time conversion from lists to Braun trees. We supply the missing proofs and verify all of these algorithms in Isabelle, including non-obvious time complexity claims. In particular we provide the first linear-time conversion from Braun trees to lists. We also state and verify a new characterization of Braun trees as the trees t whose index set is the interval {1, …, size of t}.
Tobias Nipkow, Thomas Sewell
CPP1
2020 Verified Analysis of Random Binary Tree Structures
abstract
Abstract This work is a case study of the formal verification and complexity analysis of some famous probabilistic algorithms and data structures in the proof assistant Isabelle/HOL. In particular, we consider the expected number of comparisons in randomised quicksort, the relationship between randomised quicksort and average-case deterministic quicksort, the expected shape of an unbalanced random Binary Search Tree, the randomised binary search trees described by Martínez and Roura, and the expected shape of a randomised treap. The last three have, to our knowledge, not been analysed using a theorem prover before and the last one is of particular interest because it involves continuous distributions.
Manuel Eberl, Max W. Haslbeck, Tobias Nipkow
J. Autom. Reason.3
2019 Proof Pearl: Purely Functional, Simple and Efficient Priority Search Trees and Applications to Prim and Dijkstra
abstract
The starting point of this paper is a new, purely functional, simple and efficient data structure combining a search tree and a priority queue, which we call a priority search tree. The salient feature of priority search trees is that they offer a decrease-key operation, something that is missing from other simple, purely functional priority queue implementations. As two applications of this data structure we verify purely functional, simple and efficient implementations of Prim’s and Dijkstra’s algorithms. This constitutes the first verification of an executable and even efficient version of Prim’s algorithm.
Peter Lammich, Tobias Nipkow
ITP2
2019 Trustworthy Graph Algorithms (Invited Talk)
abstract
The goal of the LEDA project was to build an easy-to-use and extendable library of correct and efficient data structures, graph algorithms and geometric algorithms. We report on the use of formal program verification to achieve an even higher level of trustworthiness. Specifically, we report on an ongoing and largely finished verification of the blossom-shrinking algorithm for maximum cardinality matching.
Mohammad Abdulaziz, Kurt Mehlhorn, Tobias Nipkow
MFCS3
2019 From LCF to Isabelle/HOL
abstract
Abstract Interactive theorem provers have developed dramatically over the past four decades, from primitive beginnings to today’s powerful systems. Here, we focus on Isabelle/HOL and its distinctive strengths. They include automatic proof search, borrowing techniques from the world of first order theorem proving, but also the automatic search for counterexamples. They include a highly readable structured language of proofs and a unique interactive development environment for editing live proof documents. Everything rests on the foundation conceived by Robin Milner for Edinburgh LCF: a proof kernel, using abstract types to ensure soundness and eliminate the need to store proofs. Compared with the research prototypes of the 1970s, Isabelle is a practical and versatile tool. It is used by system designers, mathematicians and many others.
Lawrence C. Paulson, Tobias Nipkow, Markus Wenzel 0001
Formal Aspects Comput.2
2019 Amortized Complexity Verified
Tobias Nipkow, Hauke Brinkop
J. Autom. Reason.1
2018 A Verified Compiler from Isabelle/HOL to CakeML
abstract
Many theorem provers can generate functional programs from definitions or proofs. However, this code generation needs to be trusted. Except for the HOL4 system, which has a proof producing code generator for a subset of ML. We go one step further and provide a verified compiler from Isabelle/HOL to CakeML. More precisely we combine a simple proof producing translation of recursion equations in Isabelle/HOL into a deeply embedded term language with a fully verified compilation chain to the target language CakeML.
Lars Hupel, Tobias Nipkow
ESOP2
2018 Verified Analysis of Random Binary Tree Structures
Manuel Eberl, Max W. Haslbeck, Tobias Nipkow
ITP3
2018 Verified Memoization and Dynamic Programming
Simon Wimmer 0001, Shuwei Hu, Tobias Nipkow
ITP3
2018 Hoare Logics for Time Bounds - A Study in Meta Theory
Maximilian P. L. Haslbeck, Tobias Nipkow
TACAS (1)2
2017 Verified Root-Balanced Trees
Tobias Nipkow
APLAS1
2017 Formalising and Monitoring Traffic Rules for Autonomous Vehicles in Isabelle/HOL
Albert Rizaldi, Jonas Keinholz, Monika Kamhuber, Jochen Feldle, Fabian Immler, Matthias Althoff, Eric Hilgendorf, Tobias Nipkow
IFM8
2016 Verified Analysis of List Update Algorithms
abstract
This paper presents a machine-verified analysis of a number of classical algorithms for the list update problem: 2-competitiveness of move-to-front, the lower bound of 2 for the competitiveness of deterministic list update algorithms and 1.6-competitiveness of the randomized COMB algorithm, the best randomized list update algorithm known to date. The analysis is verified with help of the theorem prover Isabelle; some low-level proofs could be automated.
Maximilian P. L. Haslbeck, Tobias Nipkow
FSTTCS2
2016 Automatic Functional Correctness Proofs for Functional Search Trees
Tobias Nipkow
ITP1
2015 A Verified Compiler for Probability Density Functions
Manuel Eberl, Johannes Hölzl, Tobias Nipkow
ESOP3
2015 Amortized Complexity Verified
Tobias Nipkow
ITP1
2015 Mining the Archive of Formal Proofs
Jasmin Blanchette, Max W. Haslbeck, Daniel Matichuk, Tobias Nipkow
CICM4
2015 Verified decision procedures for MSO on words based on derivatives of regular expressions
abstract
Abstract Monadic second-order logic on finite words is a decidable yet expressive logic into which many decision problems can be encoded. Since MSO formulas correspond to regular languages, equivalence of MSO formulas can be reduced to the equivalence of some regular structures (e.g., automata). This paper presents a verified functional decision procedure for MSO formulas that is not based on automata but on regular expressions. Functional languages are ideally suited for this task: regular expressions are data types and functions on them are defined by pattern matching and recursion and are verified by structural induction. Decision procedures for regular expression equivalence have been formalized before, usually based on Brzozowski derivatives. Yet, for a straightforward embedding of MSO formulas into regular expressions, an extension of regular expressions with a projection operation is required. We prove total correctness and completeness of an equivalence checker for regular expressions extended in that way. We also define a language-preserving translation of formulas into regular expressions with respect to two different semantics of MSO. Our results have been formalized and verified in the theorem prover Isabelle. Using Isabelle's code generation facility, this yields purely functional, formally verified programs that decide equivalence of MSO formulas.
Dmitriy Traytel, Tobias Nipkow
J. Funct. Program.2
2014 Experience report: the next 1100 Haskell programmers
abstract
We report on our experience teaching a Haskell-based functional programming course to over 1100 students for two winter terms. The syllabus was organized around selected material from various sources. Throughout the terms, we emphasized correctness through QuickCheck tests and proofs by induction. The submission architecture was coupled with automatic testing, giving students the possibility to correct mistakes before the deadline. To motivate the students, we complemented the weekly assignments with an informal competition and gave away trophies in a award ceremony.
Jasmin Blanchette, Lars Hupel, Tobias Nipkow, Lars Noschinski, Dmitriy Traytel
Haskell3
2014 Unified Decision Procedures for Regular Expression Equivalence
Tobias Nipkow, Dmitriy Traytel
ITP1
2013 Noninterfering Schedulers - When Possibilistic Noninterference Implies Probabilistic Noninterference
Andrei Popescu 0001, Johannes Hölzl, Tobias Nipkow
CALCO3
2013 A Fully Verified Executable LTL Model Checker
Javier Esparza, Peter Lammich, René Neumann, Tobias Nipkow, Alexander Schimpf, Jan-Georg Smaus
CAV4
2013 Formalizing Probabilistic Noninterference
Andrei Popescu 0001, Johannes Hölzl, Tobias Nipkow
CPP3
2013 Verified decision procedures for MSO on words based on derivatives of regular expressions
abstract
Monadic second-order logic on finite words (MSO) is a decidable yet expressive logic into which many decision problems can be encoded. Since MSO formulas correspond to regular languages, equivalence of MSO formulas can be reduced to the equivalence of some regular structures (e.g. automata). This paper presents a verified functional decision procedure for MSO formulas that is not based on automata but on regular expressions. Functional languages are ideally suited for this task: regular expressions are data types and functions on them are defined by pattern matching and recursion and are verified by structural induction.
Dmitriy Traytel, Tobias Nipkow
ICFP2
2013 Data Refinement in Isabelle/HOL
Florian Haftmann, Alexander Krauss 0001, Ondrej Kuncar, Tobias Nipkow
ITP4
2013 A Brief Survey of Verified Decision Procedures for Equivalence of Regular Expressions
Tobias Nipkow, Maximilian P. L. Haslbeck
TABLEAUX1
2012 Proving Concurrent Noninterference
Andrei Popescu 0001, Johannes Hölzl, Tobias Nipkow
CPP3
2012 Abstract Interpretation of Annotated Commands
Tobias Nipkow
ITP1
2012 Verifying pCTL Model Checking
Johannes Hölzl, Tobias Nipkow
TACAS2
2012 Teaching Semantics with a Proof Assistant: No More LSD Trip Proofs
Tobias Nipkow
VMCAI1
2012 Proof Pearl: Regular Expression Equivalence and Relation Algebra
Alexander Krauss 0001, Tobias Nipkow
J. Autom. Reason.2
2012 A compiled implementation of normalisation by evaluation
abstract
Abstract We present a novel compiled approach to Normalisation by Evaluation (NBE) for ML-like languages. It supports efficient normalisation of open λ-terms with respect to β-reduction and rewrite rules. We have implemented NBE and show both a detailed formal model of our implementation and its verification in Isabelle. Finally we discuss how NBE is turned into a proof rule in Isabelle.
Klaus Aehlig, Florian Haftmann, Tobias Nipkow
J. Funct. Program.3
2011 Extending Hindley-Milner Type Inference with Coercive Structural Subtyping
Dmitriy Traytel, Stefan Berghofer, Tobias Nipkow
APLAS3
2011 Proof Pearl: The Marriage Theorem
Dongchen Jiang, Tobias Nipkow
CPP2
2011 Verified Efficient Enumeration of Plane Graphs Modulo Isomorphism
Tobias Nipkow
ITP1
2010 Nitpick: A Counterexample Generator for Higher-Order Logic Based on a Relational Model Finder
Jasmin Blanchette, Tobias Nipkow
ITP2
2010 A Revision of the Proof of the Kepler Conjecture
Thomas C. Hales, John Harrison 0001, Sean McLaughlin, Tobias Nipkow, Steven Obua, Roland Zumkeller
Discret. Comput. Geom.4
2010 Linear Quantifier Elimination
Tobias Nipkow
J. Autom. Reason.1
2009 Social Choice Theory in HOL
Tobias Nipkow
J. Autom. Reason.1
2008 Preface
Serge Autexier, Heiko Mantel, Stephan Merz, Tobias Nipkow
J. Autom. Reason.4
2008 Proof Synthesis and Reflection for Linear Arithmetic
Amine Chaieb, Tobias Nipkow
J. Autom. Reason.2
2006 Verifying a Hotel Key Card System
Tobias Nipkow
ICTAC1
2006 An operational semantics and type safety prooffor multiple inheritance in C++
abstract
We present an operational semantics and type safety proof for multiple inheritance in C++. The semantics models the behaviour of method calls, field accesses, and two forms of casts in C++ class hierarchies exactly, and the type safety proof was formalized and machine-checked in Isabelle/HOL. Our semantics enables one, for the first time, to understand the behaviour of operations on C++ class hierarchies without referring to implementation-level artifacts such as virtual function tables. Moreover, it can - as the semantics is executable - act as a reference for compilers, and it can form the basis for more advanced correctness proofs of, e.g., automated program transformations. The paper presents the semantics and type safety proof, and a discussion of the many subtleties that we encountered in modeling the intricate multiple inheritance model of C++.
Daniel Wasserrab, Tobias Nipkow, Gregor Snelting, Frank Tip
OOPSLA2
2006 A machine-checked model for a Java-like language, virtual machine, and compiler
abstract
We introduce Jinja, a Java-like programming language with a formal semantics designed to exhibit core features of the Java language architecture. Jinja is a compromise between the realism of the language and the tractability and clarity of its formal semantics. The following aspects are formalised: a big and a small step operational semantics for Jinja and a proof of their equivalence, a type system and a definite initialisation analysis, a type safety proof of the small step semantics, a virtual machine (JVM), its operational semantics and its type system, a type safety proof for the JVM; a bytecode verifier, that is, a data flow analyser for the JVM, a correctness proof of the bytecode verifier with respect to the type system, and a compiler and a proof that it preserves semantics and well-typedness. The emphasis of this work is not on particular language features but on providing a unified model of the source language, the virtual machine, and the compiler. The whole development has been carried out in the theorem prover Isabelle/HOL.
Gerwin Klein, Tobias Nipkow
ACM Trans. Program. Lang. Syst.2
2005 Asserting Bytecode Safety
Martin Wildmoser, Tobias Nipkow
ESOP2
2005 Verifying and Reflecting Quantifier Elimination for Presburger Arithmetic
Amine Chaieb, Tobias Nipkow
LPAR2
2005 Proving pointer programs in higher-order logic
Farhad Mehta, Tobias Nipkow
Inf. Comput.2
2004 Random Testing in Isabelle/HOL
Stefan Berghofer, Tobias Nipkow
SEFM2
2003 Proving Pointer Programs in Higher-Order Logic
Farhad Mehta, Tobias Nipkow
CADE2
2003 Java Bytecode Verification
Tobias Nipkow
J. Autom. Reason.1
2003 Verified bytecode verifiers
Gerwin Klein, Tobias Nipkow
Theor. Comput. Sci.2
2001 Verified Bytecode Verifiers
Tobias Nipkow
FoSSaCS1
2001 Verified lightweight bytecode verification
abstract
Abstract Eva and Kristoffer Rose proposed a (sparse) annotation of Java Virtual Machine code with types to enable a one‐pass verification of well‐typedness. We have formalized a variant of their proposal in the theorem prover Isabelle/HOL and proved soundness and completeness. Copyright © 2001 John Wiley & Sons, Ltd.
Gerwin Klein, Tobias Nipkow
Concurr. Comput. Pract. Exp.2
2001 More Church-Rosser Proofs
Tobias Nipkow
J. Autom. Reason.1
2000 Preface
Tobias Nipkow
Inf. Comput.1
1999 Invited Talk: Embedding Programming Languages in Theorem Provers (Abstract)
Tobias Nipkow
CADE1
1999 Owicki/Gries in Isabelle/HOL
Tobias Nipkow, Leonor Prensa Nieto
FASE1
1999 Type Inference Verified: Algorithm W in Isabelle/HOL
Wolfgang Naraschewski, Tobias Nipkow
J. Autom. Reason.2
1999 HOLCF=HOL+LCF
abstract
HOLCF is the definitional extension of Church's Higher-Order Logic with Scott's Logic for Computable Functions that has been implemented in the theorem prover Isabelle. This results in a flexible setup for reasoning about functional programs. HOLCF supports standard domain theory (in particular fixpoint reasoning and recursive domain equations), but also coinductive arguments about lazy datatypes. This paper describes in detail how domain theory is embedded in HOL, and presents applications from functional programming, concurrency and denotational semantics.
Olaf Müller, Tobias Nipkow, David von Oheimb, Oscar Slotosch
J. Funct. Program.2
1998 Javalight is Type-Safe - Definitely
abstract
Javalight is a large sequential sublanguage of Java. We formalize its abstract syntax, type system, well-formedness conditions, and an operational evaluation semantics. Based on this formalization, we can express and prove type soundness. All definitions and proofs have been done formally in the theorem prover Isabelle/HOL. Thus this paper demonstrates that machine-checking the design of non-trivial programming languages has become a reality.
Tobias Nipkow, David von Oheimb
POPL1
1998 Winskel is (almost) Right: Towards a Mechanized Semantics
abstract
Abstract. We present a formalization of the first 100 pages of Winskel's textbook The Formal Semantics of Programming Languages in the theorem prover Isabelle/HOL: 2 operational, 2 denotational, 2 axiomatic semantics, a verification condition generator, and the necessary soundness, completeness and equivalence proofs, all for a simple imperative programming language.
Tobias Nipkow
Formal Aspects Comput.1
1998 Higher-Order Rewrite Systems and Their Confluence
Richard Mayr, Tobias Nipkow
Theor. Comput. Sci.2
1996 More Church-Rosser Proofs (in Isabelle/HOL)
Tobias Nipkow
CADE1
1996 Winskel is (Almost) Right: Towards a Mechanized Semantics Textbook
Tobias Nipkow
FSTTCS1
1995 Higher-Order Rewrite Systems (Abstract)
Tobias Nipkow
RTA1
1995 Type Reconstruction for Type Classes
abstract
Abstract We study the type inference problem for a system with type classes as in the functional programming language Haskell. Type classes are an extension of ML-style polymorphism with overloading. We generalize Milner's work on polymorphism by introducing a separate context constraining the type variables in a typing judgement. This leads to simple type inference systems and algorithms which closely resemble those for ML. In particular, we present a new unification algorithm which is an extension of syntactic unification with constraint solving. The existence of principal types follows from an analysis of this unification algorithm.
Tobias Nipkow, Christian Prehofer
J. Funct. Program.1
1994 Interpreter Verification for a Functional Language
Manfred Broy, Ursula Hinkel, Tobias Nipkow, Christian Prehofer, Birgit Schieder
FSTTCS3
1994 Reduction and Unification in Lambda Calculi with a General Notion of Subtype
Zhenyu Qian 0002, Tobias Nipkow
J. Autom. Reason.2
1993 Functional Unification of Higher-Order Patterns
abstract
The complete development of a unification algorithm for so-called higher-order patterns, a subclass of lambda -terms, is presented. The starting point is a formulation of unification by transformation, and the result a directly executable functional program. In a final development step, the result is adapted to lambda -terms in de Bruijn's (1972) notation. The algorithms work for both simply typed and untyped terms.>
Tobias Nipkow
LICS1
1993 Type Checking Type Classes
abstract
We study the type inference problem for a system with type classes as in the functional programming language Haskell. Type classes are an extension of ML-style polymorphism with overloading. We generalize Milner's work on polymorphism by introducing a separate context constraining the type variables in a typing judgement. This lead to simple type inference systems and algorithms which closely resemble those for ML. In particular we present a new unification algorithm which is an extension of syntactic unification with constraint solving. The existence of principal types follows from an analysis of this unification algorithm.
Tobias Nipkow, Christian Prehofer
POPL1
1992 Isabelle-91
Tobias Nipkow, Lawrence C. Paulson
CADE1
1992 Reduction and Unification in Lambda Calculi with Subtypes
Tobias Nipkow, Zhenyu Qian 0002
CADE1
1991 Higher-Order Critical Pairs
abstract
A subclass of lambda -terms, called patterns, which have unification properties resembling those of first-order terms, is introduced. Higher-order rewrite systems are defined to be rewrite systems over lambda -terms whose left-hand sides are patterns: this guarantees that the rewrite relation is easily computable. The notion of critical pair is generalized to higher-order rewrite systems, and the analog of the critical pair lemma is proved. The restricted nature of patterns is instrumental in obtaining these results. The critical pair lemma is applied to a number of lambda -calculi and some first-order logic formalized by higher-order rewrite systems.>
Tobias Nipkow
LICS1
1991 Modular Higher-Order E-Unification
Tobias Nipkow, Zhenyu Qian 0002
RTA1
1991 Constructive Rewriting
abstract
The subject of this paper is rewriting in an LCF-like general theorem proving framework. It is shown how rewriting of both terms and formulae can be implemented by simple tactics in the generic theorem prover Isabelle. These tactics can easily be combined with induction to yield powerful theorem proving primitives. As a sample application the verification of an n-bit ripple-carry adder is demonstrated.
Tobias Nipkow
Comput. J.1
1991 Combining Matching Algorithms: The Regular Case
Tobias Nipkow
J. Symb. Comput.1
1990 Ordered Rewriting and Confluence
Ursula Martin, Tobias Nipkow
CADE2
1990 Proof Transformations for Equational Theories
abstract
This study contrasts two kinds of proof systems for equational theories: the standard ones obtained by combining the axioms with the laws of equational logic, and alternative systems designed to yield decision procedures for equational problems. Novel matching algorithms for (among other theories) associativity, associativity plus commutativity, and associativity plus commutativity plus identity are presented, but the emphasis is not so much on individual theories but on the general method of proof transformation as a tool for showing the equivalence of different proof systems. After a study of proof translations defined by rewriting systems, equivalence tests based on the notion of resolvent theories are used to derive novel matching and, in some cases unification procedures for a number of equational theories. The combination of resolvent systems is investigated.>
Tobias Nipkow
LICS1
1990 Unification in Primal Algebras, Their Powers and Their Varieties
abstract
This paper examines the unification problem in the class of primal algebras and the varieties they generate. An algebra is called primal if every function on its carrier can be expressed just in terms of the basic operations of the algebra. The two-element Boolean algebra is the simplest nontrivial example: Every truth-function can be realized in terms of the basic connectives, for example, negation and conjunction. It is shown that unification in primal algebras is unitary, that is, if an equation has a solution, it has a single most general one. Two unification algorithms, based on equation-solving techniques for Boolean algebras due to Boole and Lo¨wenheim, are studied in detail. Applications include certain finite Post algebras and matrix rings over finite fields. The former are algebraic models for many-valued logics, the latter cover in particular modular arithmetic. Then unification is extended from primal algebras to their direct powers, which leads to unitary unification algorithms covering finite Post algebras, finite, semisimple Artinian rings, and finite, semisimple nonabelian groups. Finally the fact that the variety generated by a primal algebra coincides with the class of its subdirect powers is used. This yields unitary unification algorithms for the equational theories of Post algebras and p -rings.
Tobias Nipkow
J. ACM1
1989 Combining Matching Algorithms: The Rectangular Case
Tobias Nipkow
RTA1
1989 Term Rewriting and Beyond - Theorem Proving in Isabelle
abstract
Abstract The subject of this paper is theorem proving based on rewriting and induction. Both principles are implemented as tactics within the generic theorem prover Isabelle. Isabelle's higher-order features enable us to go beyond first-order rewriting and express rewriting with conditionals, induction schemata, higher-order functions and program transformers. Applications include the verification and transformation of functional versions of insertion sort and quicksort.
Tobias Nipkow
Formal Aspects Comput.1
1989 Boolean Unification - The Story So Far
Ursula Martin, Tobias Nipkow
J. Symb. Comput.2
1989 Equational Reasoning in Isabelle
Tobias Nipkow
Sci. Comput. Program.1
1988 Unification in Boolean Rings
Ursula Martin, Tobias Nipkow
J. Autom. Reason.2
1987 Are Homomorphisms Sufficient for Behavioural Implementations of Deterministic and Nondeterministic Data Types?
Tobias Nipkow
STACS1
1986 Unification in Boolean Rings
Ursula Martin, Tobias Nipkow
CADE2
1986 Non-deterministic Data Types: Models and Implementations
Tobias Nipkow
Acta Informatica1