I'd like to know about Isabelle/HOL subtypes. I explain a little about why it's important to me in my partial answer to my last SO question:
Trying to Treat Type Classes and Sub-types Like Sets and Subsets
Basically, I only have one type, so it might be useful to me if I could exploit the power of HOL types through subtypes.
I've done searches in the Isabelle documentation, on the Web, and on the Isabelle mailing lists. The word "subtype" is used, though not much, and it seems like it's not a super important part of the Isabelle vocabulary.
Partly, I'd just like to know how to use the word "subtype" correctly. I don't want to be calling something a subtype in Isabelle that's not a subtype.
According to the Wiki, subtyping is language specific:
https://en.wikipedia.org/wiki/Subtyping
Important last part; the commands please
Can someone give me a list of the Isar commands that create Isar subtypes? I'm investigating typedef
, as explained in the question linked to above. I'm inclined to call that subtyping, but isar-ref.pdf doesn't use "subtype" when explaining the command.
If there are other ways to create Isabelle/HOL subtypes, I'd like to know.