#### Filter Results:

- Full text PDF available (19)

#### Publication Year

1999

2014

- This year (0)
- Last 5 years (4)
- Last 10 years (14)

#### Publication Type

#### Co-author

#### Journals and Conferences

#### Key Phrases

Learn More

- Makarius Wenzel, Stefan Berghofer, +6 authors Sebastian Skalberg
- 1999

Intelligible semi-automated reasoning (Isar) is a generic approach to readable formal proof documents. It sets out to bridge the semantic gap between any internal notions of proof based on primitive inferences and tactics, and an appropriate level of abstraction for user-level work. The Isar formal proof language has been designed to satisfy quite… (More)

- Lukas Bulwahn, Alexander Krauss, Florian Haftmann, Levent Erkök, John Matthews
- TPHOLs
- 2008

We introduce a lightweight approach for reasoning about programs involving imperative data structures using the proof assistant Isabelle/HOL. It is based on shallow embedding of programs, a polymorphic heap model using enumeration encodings and type classes, and a state-exception monad similar to known counterparts from Haskell. Existing proof automation… (More)

- Florian Haftmann, Tobias Nipkow
- FLOPS
- 2010

We present the meta-theory behind the code generation facilities of Isabelle/HOL. To bridge the gap between the source (higherorder logic with type classes) and the many possible targets (functional programming languages), we introduce an intermediate language, MiniHaskell. To relate the source and the intermediate language, both are given a semantics in… (More)

- Florian Haftmann, Markus Wenzel
- TYPES
- 2006

We reconsider the well-known concept of Haskell-style type classes within the logical framework of Isabelle. So far, axiomatic type classes in Isabelle merely account for the logical aspect as predicates over types, while the operational part is only a convention based on raw overloading. Our more elaborate approach to constructive type classes provides a… (More)

- Florian Haftmann, Donald Kossmann, Alexander Kreutz
- CIDR
- 2005

If you browse through the articles of www.junit.org, you will find only one article that contains the word database in its abstract. This observation is shocking because, of course, testing is just as important for database applications as for any other application. The sad truth is that JUnit simply does not work for database applications, and there are no… (More)

- Klaus Aehlig, Florian Haftmann, Tobias Nipkow
- TPHOLs
- 2008

We present a novel compiled approach to Normalization by Evaluation (NBE) for ML-like languages. It supports efficient normalization of open λ-terms w.r.t. β-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… (More)

- Florian Haftmann, Donald Kossmann, Eric Lo
- The VLDB Journal
- 2006

Regression testing is an important software maintenance activity to ensure the integrity of a software after modification. However, most methods and tools developed for software testing today do not work well for database applications; these tools only work well if applications are stateless or tests can be designed in such a way that they do not alter the… (More)

The paper shows how the code generator of Isabelle/HOL supports data refinement, i.e., providing efficient code for operations on abstract types, e.g., sets or numbers. This allows all tools that employ code generation, e.g., Quickcheck or proof by evaluation, to compute with these abstract types. At the core is an extension of the code generator to deal… (More)

- Florian Haftmann, Markus Wenzel
- TYPES
- 2008

The proof assistant Isabelle has recently acquired a “local theory” concept that integrates a variety of mechanisms for structured specifications into a common framework. We explicitly separate a local theory “target”, i.e. a fixed axiomatic specification consisting of parameters and assumptions, from its “body” consisting of arbitrary definitional… (More)

- Florian Haftmann
- 2009

A very rigorous weapon against implementation errors in software systems is formal verification: both the desired behaviour (abstract specification) and the implementation (executable specification) are formalised in a suitable logical calculus, and the equivalence of both is proved. The numerous technical details involved in such a procedure suggest to let… (More)