Abstract. Types in Higher-Order Logic (HOL) are naturally interpreted as nonempty sets-this intuition is reflected in the type definition rule for the HOL-based systems (including Isabelle/HOL), where a new type can be defined whenever a nonempty set is exhibited. However, in HOL this definition mechanism cannot be applied inside proof contexts. We propose a more expressive type-definition rule that addresses the limitation and we prove its soundness. This higher expressive power opens the opportunity for a HOL tool that relativizes type-based statements to more flexible set-based variants in a principled way. We also address particularities of Isabelle/HOL and show how to perform the relativization in the presence of type classes.
MotivationThe proof assistant community is divided in two successful camps. One camp, represented by provers such as Agda [7] According to the HOL school of thought, a main goal is to acquire a sweet spot: keep the logic as simple as possible while obtaining sufficient expressiveness. The notion of sufficient expressiveness is of course debatable, and has been debated. For example, PVS [29] includes dependent types (but excludes polymorphism), HOL-Omega [16] adds first-class type constructors to HOL, and Isabelle/HOL adds ad hoc overloading of polymorphic constants. In this paper, we want to propose a gentler extension of HOL: we do not want to promote new "first-class citizens," but merely to give better credit to an old and venerable HOL citizen: the notion of types emerging from sets.The problem we address in this paper is best illustrated by an example. Let lists : α set → α list set be the constant that takes a set A and returns the set of lists whose elements are in A, and P : α list → bool be another constant (whose definition is not important here). Consider the following statements, where we extend the usual HOL syntax by explicitly quantifying over types at the outermost level:∀α. ∃xs α list . P xs (1) ∀α. ∀A α set . A ̸ = / 0 −→ (∃xs ∈ lists A. P xs)