Results 1 
7 of
7
Defining Recursive Functions in Isabelle/HOL
"... This tutorial describes the use of the new function package, which provides general recursive function definitions for Isabelle/HOL. We start with very simple examples and then gradually move on to more advanced topics such as manual termination proofs, nested recursion, partiality, tail recursion a ..."
Abstract

Cited by 5 (0 self)
 Add to MetaCart
This tutorial describes the use of the new function package, which provides general recursive function definitions for Isabelle/HOL. We start with very simple examples and then gradually move on to more advanced topics such as manual termination proofs, nested recursion, partiality, tail recursion and congruence rules. 1
Recursive definitions of monadic functions
 In Proc. of PAR 2010
, 2010
"... Using standard domaintheoretic fixedpoints, we present an approach for defining recursive functions that are formulated in monadic style. The method works both in the simple option monad and the stateexception monad of Isabelle/HOL’s imperative programming extension, which results in a convenient ..."
Abstract

Cited by 3 (0 self)
 Add to MetaCart
Using standard domaintheoretic fixedpoints, we present an approach for defining recursive functions that are formulated in monadic style. The method works both in the simple option monad and the stateexception monad of Isabelle/HOL’s imperative programming extension, which results in a convenient definition principle for imperative programs, which were previously hard to define. For such monadic functions, the recursion equation can always be derived without preconditions, even if the function is partial. The construction is easy to automate, and convenient induction principles can be derived automatically. 1
An Isabelle/HOL Formalization of the Textbook Proof of Huffman’s Algorithm
, 2009
"... Huffman’s algorithm is a procedure for constructing a binary tree with minimum weighted path length. This report presents a formal proof of the correctness of Huffman’s algorithm written using Isabelle/HOL. Our proof closely follows the sketches found in standard algorithms textbooks, uncovering a f ..."
Abstract

Cited by 1 (1 self)
 Add to MetaCart
Huffman’s algorithm is a procedure for constructing a binary tree with minimum weighted path length. This report presents a formal proof of the correctness of Huffman’s algorithm written using Isabelle/HOL. Our proof closely follows the sketches found in standard algorithms textbooks, uncovering a few snags in the process. Another distinguishing feature of our formalization is the use of custom induction rules to help Isabelle’s automatic tactics, leading to very short
General Bindings and AlphaEquivalence in Nominal Isabelle
"... Abstract. Nominal Isabelle is a definitional extension of the Isabelle/HOL theorem prover. It provides a proving infrastructure for reasoning about programming language calculi involving named bound variables (as opposed to deBruijn indices). In this paper we present an extension of Nominal Isabell ..."
Abstract

Cited by 1 (0 self)
 Add to MetaCart
Abstract. Nominal Isabelle is a definitional extension of the Isabelle/HOL theorem prover. It provides a proving infrastructure for reasoning about programming language calculi involving named bound variables (as opposed to deBruijn indices). In this paper we present an extension of Nominal Isabelle for dealing with general bindings, that means termconstructors where multiple variables are bound at once. Such general bindings are ubiquitous in programming language research and only very poorly supported with single binders, such as lambdaabstractions. Our extension includes new definitions of αequivalence and establishes automatically the reasoning infrastructure for αequated terms. We also prove strong induction principles that have the usual variable convention already built in. 1
Contents
, 2009
"... Huffman’s algorithm is a procedure for constructing a binary tree with minimum weighted path length. This report presents a formal proof of the correctness of Huffman’s algorithm written using Isabelle/HOL. Our proof closely follows the sketches found in standard algorithms textbooks, uncovering a f ..."
Abstract
 Add to MetaCart
Huffman’s algorithm is a procedure for constructing a binary tree with minimum weighted path length. This report presents a formal proof of the correctness of Huffman’s algorithm written using Isabelle/HOL. Our proof closely follows the sketches found in standard algorithms textbooks, uncovering a few snags in the process. Another distinguishing feature of our formalization is the use of custom induction rules to help Isabelle’s automatic tactics, leading to very short
Automated Termination Analysis for Programs with SecondOrder Recursion
"... Abstract. Many algorithms on data structures such as terms (finitely branching trees) are naturally implemented by secondorder recursion: A firstorder procedure f passes itself as an argument to a secondorder procedure like map, every, foldl, foldr, etc. to recursively apply f to the direct subte ..."
Abstract
 Add to MetaCart
Abstract. Many algorithms on data structures such as terms (finitely branching trees) are naturally implemented by secondorder recursion: A firstorder procedure f passes itself as an argument to a secondorder procedure like map, every, foldl, foldr, etc. to recursively apply f to the direct subterms of a term. We present a method for automated termination analysis of such procedures. It extends the approach of argumentbounded functions (i) by inspecting type components and (ii) by adding a facility to take care of secondorder recursion. Our method has been implemented and automatically solves the examples considered in the literature. This improves the state of the art of inductive theorem provers, which (without our approach) require user interaction even for termination proofs of simple secondorder recursive procedures. 1
α The Isabelle/Isar Reference Manual
"... The Isabelle system essentially provides a generic infrastructure for building deductive systems (programmed in Standard ML), with a special focus on interactive theorem proving in higherorder logics. Many years ago, even endusers would refer to certain ML functions (goal commands, tactics, tactica ..."
Abstract
 Add to MetaCart
The Isabelle system essentially provides a generic infrastructure for building deductive systems (programmed in Standard ML), with a special focus on interactive theorem proving in higherorder logics. Many years ago, even endusers would refer to certain ML functions (goal commands, tactics, tacticals etc.) to pursue their everyday theorem proving tasks. In contrast Isar provides an interpreted language environment of its own, which has been specifically tailored for the needs of theory and proof development. Compared to raw ML, the Isabelle/Isar toplevel provides a more robust and comfortable development platform, with proper support for theory development graphs, managed transactions with unlimited undo etc. In its pioneering times, the Isabelle/Isar version of the Proof General user interface [2, 3] has contributed to the success of for interactive theory and proof development in this advanced theorem proving environment, even though it was somewhat biased towards oldstyle proof scripts. The more recent Isabelle/jEdit Prover IDE [53] emphasizes the documentoriented approach