### The HOL System DESCRIPTION Preface

, 2004

"... This volume contains the description of the HOL system. It is one of three volumes making up the documentation for HOL: (i) TUTORIAL: a tutorial introduction to HOL, with case studies. (ii) DESCRIPTION: a description of higher order logic, the ML programming language, and theorem proving methods in ..."

Abstract
- Add to MetaCart

This volume contains the description of the HOL system. It is one of three volumes making up the documentation for HOL: (i) TUTORIAL: a tutorial introduction to HOL, with case studies. (ii) DESCRIPTION: a description of higher order logic, the ML programming language, and theorem proving methods in the HOL system; (iii) REFERENCE: the reference manual for HOL. These three documents will be referred to by the short names (in small slanted capitals) given above. This document, DESCRIPTION, is intended to serve both as a definition of HOL and as an advanced guide for users with some prior experience of the system. Beginners should start with the companion document TUTORIAL. The HOL system is designed to support interactive theorem proving in higher order logic (hence the acronym ‘HOL’). To this end, the formal logic is interfaced to a general purpose programming language (ML, for meta-language) in which terms and theorems of the logic can be denoted, proof strategies expressed and applied, and logical theories

### Design Rules and Abstractions (from branching and real time)

, 1996

"... ions (from branching and real time) DRAFT Peter Sewell The Computer Laboratory, University of Cambridge Cambridge CB2 3QG, UK Peter.Sewell@cl.cam.ac.uk September 5, 1996 Abstract Three simple models of synchronous hardware are given; using linear discrete, branching discrete and branching real ti ..."

Abstract
- Add to MetaCart

ions (from branching and real time) DRAFT Peter Sewell The Computer Laboratory, University of Cambridge Cambridge CB2 3QG, UK Peter.Sewell@cl.cam.ac.uk September 5, 1996 Abstract Three simple models of synchronous hardware are given; using linear discrete, branching discrete and branching real time. A simple notion of abstraction is introduced, motivated by the need to ultimately view such models as scientific theories that make empirical predictions. It makes the significance of design rules explicit. Two abstractions from the branching discrete to the linear discrete model are given. They shed some light on the roles of consistency, deadlock and determinacy. The stronger of the two depends on a notion of dynamic type for processes which ensures deadlock freedom. A reasonably strong abstraction from the branching real to the branching discrete model is given. This depends on a finer notion of type which is a reasonably physically plausible formalisation of the timing properties of ...

### The HOL System DESCRIPTION Preface

, 2002

"... This volume contains the description of the HOL system. It is one of three volumes making up the documentation for HOL: (i) TUTORIAL: a tutorial introduction to HOL, withcasestudies. (ii) DESCRIPTION: a description of higher order logic, the ML programming language, and theorem proving methods in th ..."

Abstract
- Add to MetaCart

This volume contains the description of the HOL system. It is one of three volumes making up the documentation for HOL: (i) TUTORIAL: a tutorial introduction to HOL, withcasestudies. (ii) DESCRIPTION: a description of higher order logic, the ML programming language, and theorem proving methods in the HOL system; (iii) REFERENCE: the reference manual for HOL. These three documents will be referred to by the short names (in small slanted capitals) given above. This document, DESCRIPTION, is intended to serve both as a definition of HOL and as an advanced guide for users with some prior experience of the system. Beginners should start with the companion document TUTORIAL. The HOL system is designed to support interactive theorem proving in higher order logic (hence the acronym ‘HOL’). To this end, the formal logic is interfaced to a general purpose programming language (ML, for meta-language) in which terms and theorems of the logic can be denoted, proof strategies expressed and applied, and logical theories

### The HOL System LOGIC Preface

, 2010

"... This volume contains the description of the HOL system’s logic. It is one of four volumes making up the documentation for HOL: (i) LOGIC: a formal description of the higher order logic implemented by the HOL system. (ii) TUTORIAL: a tutorial introduction to HOL, with case studies. (iii) DESCRIPTION: ..."

Abstract
- Add to MetaCart

This volume contains the description of the HOL system’s logic. It is one of four volumes making up the documentation for HOL: (i) LOGIC: a formal description of the higher order logic implemented by the HOL system. (ii) TUTORIAL: a tutorial introduction to HOL, with case studies. (iii) DESCRIPTION: a detailed user’s guide for the HOL system; (iv) REFERENCE: the reference manual for HOL. These four documents will be referred to by the short names (in small slanted capitals) given above. This document, LOGIC, serves as a formal definition of higher order logic in terms of a set-theoretic semantics. This material was written by Andrew Pitts in 1991, and was originally part of DESCRIPTION. Because this logic is shared with other theorem-proving systems (HOL Light, ProofPower), and is similar to that implemented in Isabelle, where it is called Isabelle/HOL, it is now presented in its own manual. The HOL system is designed to support interactive theorem proving in higher order logic (hence the acronym ‘HOL’). To this end, the formal logic is interfaced to a general purpose programming language (ML, for meta-language) in which terms and theorems of the logic can be denoted, proof strategies expressed and applied, and logical theories developed. The version of higher order logic used in HOL is predicate calculus with terms from the typed lambda calculus (i.e. simple type theory). This was originally developed as a foundation for mathematics [2]. The primary application area of HOL was initially intended to be the specification and verification of hardware designs. (The use of higher order logic for this purpose was first advocated by Keith Hanna [3].) However, the logic does not restrict applications to hardware; HOL has been applied to many other areas. Thus, this document describes the theoretical underpinnings of the HOL system, and presents it abstractly. The approach to mechanizing formal proof used in HOL is due to Robin Milner [4], who also headed the team that designed and implemented the language ML. That work 3 4

### The HOL System DESCRIPTION Preface

, 2010

"... This volume contains the description of the HOL system. making up the documentation for HOL: It is one of four volumes (i) LOGIC: a formal description of the higher order logic implemented by the HOL system. (ii) TUTORIAL: a tutorial introduction to HOL, with case studies. (iii) DESCRIPTION: a detai ..."

Abstract
- Add to MetaCart

This volume contains the description of the HOL system. making up the documentation for HOL: It is one of four volumes (i) LOGIC: a formal description of the higher order logic implemented by the HOL system. (ii) TUTORIAL: a tutorial introduction to HOL, with case studies. (iii) DESCRIPTION: a detailed user’s guide for the HOL system; (iv) REFERENCE: the reference manual for HOL. These four documents will be referred to by the short names (in small slanted capitals) given above. This document, DESCRIPTION, is an advanced guide for users with some prior experience of the system. Beginners should start with the companion document TUTORIAL. The HOL system is designed to support interactive theorem proving in higher order logic (hence the acronym ‘HOL’). To this end, the formal logic is interfaced to a general purpose programming language (ML, for meta-language) in which terms and theorems of the logic can be denoted, proof strategies expressed and applied, and logical theories developed. The version of higher order logic used in HOL is predicate calculus with terms from the typed lambda calculus (i.e. simple type theory). This was originally developed as a foundation for mathematics [2]. The primary application area of HOL was initially intended to be the specification and verification of hardware designs. (The use of higher order logic for this purpose was first advocated by Keith Hanna [3].) However, the logic does not restrict applications to hardware; HOL has been applied to many other areas. This document presents the HOL logic in its ML guise, and explains the means by which meta-language functions can be used to generate proofs in the logic. Thus, it describes how the abstract system of LOGIC is actually implemented in the ML programming language, providing comprehensive descriptions of the system’s major features. The approach to mechanizing formal proof used in HOL is due to Robin Milner [7], who also headed the team that designed and implemented the language ML. That work centred on a system called LCF (logic for computable functions), which was intended for 3 4

### The HOL System LOGIC Preface

, 2009

"... This volume contains the description of the HOL system’s logic. It is one of four volumes making up the documentation for HOL: (i) LOGIC: a formal description of the higher order logic implemented by the HOL system. (ii) TUTORIAL: a tutorial introduction to HOL, with case studies. (iii) DESCRIPTION: ..."

Abstract
- Add to MetaCart

This volume contains the description of the HOL system’s logic. It is one of four volumes making up the documentation for HOL: (i) LOGIC: a formal description of the higher order logic implemented by the HOL system. (ii) TUTORIAL: a tutorial introduction to HOL, with case studies. (iii) DESCRIPTION: a detailed user’s guide for the HOL system; (iv) REFERENCE: the reference manual for HOL. These four documents will be referred to by the short names (in small slanted capitals) given above. This document, LOGIC, serves as a formal definition of higher order logic in terms of a set-theoretic semantics. This material was written by Andrew Pitts in 1991, and was originally part of DESCRIPTION. Because this logic is shared with other theorem-proving systems (HOL Light, ProofPower), and is similar to that implemented in Isabelle, where it is called Isabelle/HOL, it is now presented in its own manual. The HOL system is designed to support interactive theorem proving in higher order logic (hence the acronym ‘HOL’). To this end, the formal logic is interfaced to a general purpose programming language (ML, for meta-language) in which terms and theorems of the logic can be denoted, proof strategies expressed and applied, and logical theories developed. The version of higher order logic used in HOL is predicate calculus with terms from the typed lambda calculus (i.e. simple type theory). This was originally developed as a foundation for mathematics [2]. The primary application area of HOL was initially intended to be the specification and verification of hardware designs. (The use of higher order logic for this purpose was first advocated by Keith Hanna [3].) However, the logic does not restrict applications to hardware; HOL has been applied to many other areas. Thus, this document describes the theoretical underpinnings of the HOL system, and presents it abstractly. The approach to mechanizing formal proof used in HOL is due to Robin Milner [4], who also headed the team that designed and implemented the language ML. That work 3 4

### The HOL System DESCRIPTION Preface

, 2009

"... This volume contains the description of the HOL system. making up the documentation for HOL: It is one of four volumes (i) LOGIC: a formal description of the higher order logic implemented by the HOL system. (ii) TUTORIAL: a tutorial introduction to HOL, with case studies. (iii) DESCRIPTION: a detai ..."

Abstract
- Add to MetaCart

This volume contains the description of the HOL system. making up the documentation for HOL: It is one of four volumes (i) LOGIC: a formal description of the higher order logic implemented by the HOL system. (ii) TUTORIAL: a tutorial introduction to HOL, with case studies. (iii) DESCRIPTION: a detailed user’s guide for the HOL system; (iv) REFERENCE: the reference manual for HOL. These four documents will be referred to by the short names (in small slanted capitals) given above. This document, DESCRIPTION, is an advanced guide for users with some prior experience of the system. Beginners should start with the companion document TUTORIAL. The HOL system is designed to support interactive theorem proving in higher order logic (hence the acronym ‘HOL’). To this end, the formal logic is interfaced to a general purpose programming language (ML, for meta-language) in which terms and theorems of the logic can be denoted, proof strategies expressed and applied, and logical theories developed. The version of higher order logic used in HOL is predicate calculus with terms from the typed lambda calculus (i.e. simple type theory). This was originally developed as a foundation for mathematics [2]. The primary application area of HOL was initially intended to be the specification and verification of hardware designs. (The use of higher order logic for this purpose was first advocated by Keith Hanna [3].) However, the logic does not restrict applications to hardware; HOL has been applied to many other areas. This document presents the HOL logic in its ML guise, and explains the means by which meta-language functions can be used to generate proofs in the logic. Thus, it describes how the abstract system of LOGIC is actually implemented in the ML programming language, providing comprehensive descriptions of the system’s major features. The approach to mechanizing formal proof used in HOL is due to Robin Milner [7], who also headed the team that designed and implemented the language ML. That work centred on a system called LCF (logic for computable functions), which was intended for 3 4

### The HOL System DESCRIPTION Preface

, 2011

"... This volume contains the description of the HOL system. making up the documentation for HOL: It is one of four volumes (i) LOGIC: a formal description of the higher order logic implemented by the HOL system. (ii) TUTORIAL: a tutorial introduction to HOL, with case studies. (iii) DESCRIPTION: a detai ..."

Abstract
- Add to MetaCart

This volume contains the description of the HOL system. making up the documentation for HOL: It is one of four volumes (i) LOGIC: a formal description of the higher order logic implemented by the HOL system. (ii) TUTORIAL: a tutorial introduction to HOL, with case studies. (iii) DESCRIPTION: a detailed user’s guide for the HOL system; (iv) REFERENCE: the reference manual for HOL. These four documents will be referred to by the short names (in small slanted capitals) given above. This document, DESCRIPTION, is an advanced guide for users with some prior experience of the system. Beginners should start with the companion document TUTORIAL. The HOL system is designed to support interactive theorem proving in higher order logic (hence the acronym ‘HOL’). To this end, the formal logic is interfaced to a general purpose programming language (ML, for meta-language) in which terms and theorems of the logic can be denoted, proof strategies expressed and applied, and logical theories developed. The version of higher order logic used in HOL is predicate calculus with terms from the typed lambda calculus (i.e. simple type theory). This was originally developed as a foundation for mathematics [2]. The primary application area of HOL was initially intended to be the specification and verification of hardware designs. (The use of higher order logic for this purpose was first advocated by Keith Hanna [3].) However, the logic does not restrict applications to hardware; HOL has been applied to many other areas. This document presents the HOL logic in its ML guise, and explains the means by which meta-language functions can be used to generate proofs in the logic. Thus, it describes how the abstract system of LOGIC is actually implemented in the ML programming language, providing comprehensive descriptions of the system’s major features. The approach to mechanizing formal proof used in HOL is due to Robin Milner [7], who also headed the team that designed and implemented the language ML. That work centred on a system called LCF (logic for computable functions), which was intended for 3 4

### The HOL System DESCRIPTION Preface

, 2012