## Organizing numerical theories using axiomatic type classes (2004)

### Cached

### Download Links

- [www.cl.cam.ac.uk.]
- [www.cl.cam.ac.uk]
- [www.cl.cam.ac.uk]
- [www.cl.cam.ac.uk]
- [www.cl.cam.ac.uk]
- DBLP

### Other Repositories/Bibliography

Venue: | Journal of Automated Reasoning |

Citations: | 9 - 2 self |

### BibTeX

@ARTICLE{Paulson04organizingnumerical,

author = {Lawrence C. Paulson},

title = {Organizing numerical theories using axiomatic type classes},

journal = {Journal of Automated Reasoning},

year = {2004},

pages = {2004}

}

### OpenURL

### Abstract

Mathematical reasoning may involve several arithmetic types, including those of the natural, integer, rational, real and complex numbers. These types satisfy many of the same algebraic laws. These laws need to be made available to users, uniformly and preferably without repetition, but with due account for the peculiarities of each type. Subtyping, where a type inherits properties from a supertype, can eliminate repetition only for a fixed type hierarchy set up in advance by implementors. The approach recently adopted for Isabelle uses axiomatic type classes, an established approach to overloading. Abstractions such as semirings, rings, fields and their ordered counterparts are defined and theorems are proved algebraically. Types that meet the abstractions inherit the appropriate theorems. 1

### Citations

831 |
Isabelle/HOL — A Proof Assistant for Higher-Order Logic, volume 2283 of LNCS
- Nipkow, Paulson, et al.
- 2002
(Show Context)
Citation Context ...w axiomatic type classes support numeric literals (§4). It presents a small example—the natural numbers extended with ∞ (§5)—and finally concludes (§6). 2 Isabelle and Axiomatic Type Classes Isabelle =-=[8]-=- is an interactive theorem prover implementing a higher order logical framework. Isabelle supports a variety of formalisms; the most popular is higher-order logic (Isabelle/HOL). Many large case studi... |

558 |
Introduction to HOL: A Theorem Proving Environment for Higher Order Logic
- Gordon, Melham
- 1993
(Show Context)
Citation Context ...pt of addition for both integers and reals, but with separate addition algorithms for the two types. Polymorphism is as useful in logic as it is in programming. All versions of the theorem prover HOL =-=[4]-=- use it, as does Isabelle. The formally defined list reversal function is polymorphic, and so are the theorems proved about this function. For example, the theorem rev (rev l) = l is true regardless o... |

387 |
Standard ML for the Working Programmer
- Paulson
- 1991
(Show Context)
Citation Context ...the purposes of this paper, the most interesting aspect of Isabelle is its type system: ordersorted polymorphism [7]. Polymorphism is found in a number of functional programming languages, such as ML =-=[9]-=-. For example, the type of lists takes as an argument the type of the list elements. The list reversal function is polymorphic: it reverses any list without regard for the type of the list elements. M... |

363 | How to make ad-hoc polymorphism less ad hoc
- Wadler, Blott
- 1989
(Show Context)
Citation Context ...le requires a more refined treatment of polymorphism because certain types are part of the logical framework and are not available to users. This treatment is based on Wadler and Blott’s type classes =-=[12]-=-, which they introduced to support overloading in the programming language Haskell [5]. Nipkow [7] transferred their type system—a clean combination of overloading and polymorphism—into the context of... |

113 | Inductive Analysis of the Internet Protocol TLS
- Paulson
- 1999
(Show Context)
Citation Context ...Isabelle supports a variety of formalisms; the most popular is higher-order logic (Isabelle/HOL). Many large case studies have been done using Isabelle, concerning for example cryptographic protocols =-=[10]-=- and the Java Virtual Machine [6]. For the purposes of this paper, the most interesting aspect of Isabelle is its type system: ordersorted polymorphism [7]. Polymorphism is found in a number of functi... |

84 | F.J.: IMPS: An interactive mathematical proof system
- Farmer, Guttman, et al.
- 1993
(Show Context)
Citation Context ...atic type classes. However, the key point is simply axiomatic development of abstract mathematics followed by application to concrete instances. A theory interpretation construct such as that of IMPS =-=[1]-=- may also work as a basis for organising theories of arithmetic types. However, in order to provide a uniform notation, the approach also depends upon overloading. Theory interpretation of itself does... |

77 | Type classes and overloading in higher-order logic
- Wenzel
- 1997
(Show Context)
Citation Context ...en it immediately inherits all the properties proved for rings. Most logical formalisms can easily express such an axiomatic development. Isabelle’s axiomatic type classes are particularly convenient =-=[7, 13]-=-. They provide controlled polymorphism over a spectrum that ranges from traditional ML-style polymorphism to overloading. Concepts such as ring, ordered ring and field can be formalised as axiomatic t... |

63 |
Verified bytecode verifiers
- Nipkow
(Show Context)
Citation Context ...malisms; the most popular is higher-order logic (Isabelle/HOL). Many large case studies have been done using Isabelle, concerning for example cryptographic protocols [10] and the Java Virtual Machine =-=[6]-=-. For the purposes of this paper, the most interesting aspect of Isabelle is its type system: ordersorted polymorphism [7]. Polymorphism is found in a number of functional programming languages, such ... |

36 | Order-Sorted Polymorphism in Isabelle
- Nipkow
- 1993
(Show Context)
Citation Context ...en it immediately inherits all the properties proved for rings. Most logical formalisms can easily express such an axiomatic development. Isabelle’s axiomatic type classes are particularly convenient =-=[7, 13]-=-. They provide controlled polymorphism over a spectrum that ranges from traditional ML-style polymorphism to overloading. Concepts such as ring, ordered ring and field can be formalised as axiomatic t... |

28 |
The Haskell School of Expression
- Hudak
- 2000
(Show Context)
Citation Context ...the logical framework and are not available to users. This treatment is based on Wadler and Blott’s type classes [12], which they introduced to support overloading in the programming language Haskell =-=[5]-=-. Nipkow [7] transferred their type system—a clean combination of overloading and polymorphism—into the context of theorem proving. Later, Wenzel [13] worked out the logical foundations of axiomatic t... |

13 | A constructive algebraic hierarchy in coq
- Geuvers, Pollack, et al.
(Show Context)
Citation Context ...of itself does not necessarily allow the symbol+to take on several different meanings in a single expression. Also relevant is the constructive algebraic hierarchy formalized in Coq by Geuvers et al. =-=[3]-=-. They define concepts such as groups and rings. There appears to be no overloading of the familiar arithmetic operators. Instead, the work is a basis for developing constructive algebra. Acknowledgem... |

8 |
Mechanizing nonstandard real analysis
- Fleuriot, Paulson
- 2000
(Show Context)
Citation Context ...th infinite values; they form an ordered semiring, and are therefore much better behaved than typenatinf. All three “hyper” types were defined from the standard types (using ultrafilters) by Fleuriot =-=[2]-=-. Most users will not require non-standard analysis, but it is significant that type classes can cope with so many different types. Subtyping is not the way to formalize such a complicated type hierar... |