I know that we can create some new amazing types in LH, particularly, express some non-trivial subsets of Integers. For example:
{-@ type Nat = {v:Int | v>=0 } @-}
{-@ type grtN N = {v:Int | v>N } @-}
{-@ type Even = {v:Int | v mod 2 == 0 } @-}
But now what other non-trivial subsets can I express in LH?
Can I create a type in LH which consists of only powers of 2?
I tried doing that the
following way but seems like it doesn't work.
(PS: If someone can answer the above question more precisely on SO, then it would be really helpful)
So a natural question which arises is what kind of subsets (of Integers) can I express?
Is there a nice characterization?