∀ Isabelle= α λ β → Isabelle's Logics Lawrence C. Paulson Computer Laboratory University of Cambridge
[email protected] With Contributions by Tobias Nipkow and Markus Wenzel1 11 November 2013 1Markus Wenzel made numerous improvements. Sara Kalvala contributed Chap.4. Philippe de Groote wrote the first version of the logic LK. Tobias Nip- kow developed LCF and Cube. Martin Coen developed Modal with assistance from Rajeev Gor´e.The research has been funded by the EPSRC (grants GR/G53279, GR/H40570, GR/K57381, GR/K77051, GR/M75440) and by ESPRIT (projects 3245: Logical Frameworks, and 6453: Types), and by the DFG Schwerpunktpro- gramm Deduktion. Contents 1 Syntax definitions3 2 Higher-Order Logic5 2.1 Syntax...............................5 2.1.1 Types and overloading..................5 2.1.2 Binders..........................8 2.1.3 The let and case constructions..............9 2.2 Rules of inference......................... 10 2.3 A formulation of set theory................... 14 2.3.1 Syntax of set theory................... 14 2.3.2 Axioms and rules of set theory.............. 17 2.3.3 Properties of functions.................. 20 2.4 Simplification and substitution.................. 22 2.4.1 Case splitting....................... 23 2.5 Types............................... 23 2.5.1 Product and sum types.................. 24 2.5.2 The type of natural numbers, nat ............ 26 2.5.3 Numerical types and numerical reasoning........ 28 2.5.4 The type constructor for lists, list ............ 29 2.6 Datatype definitions....................... 29 2.6.1 Basics........................... 32 2.6.2 Defining datatypes.................... 37 2.7 Old-style recursive function definitions............. 38 2.8 Example: Cantor's Theorem..................