The iterator categories are not real types. They are just a set of criteria that the iterators must fulfill in order be classified as a particular type of iterator.
The way you should read it is that input iterators has the least requirements. Forward iterators has all the requirements that input iterators has plus some more. Bidirectional iterators has all the requirements of forward iterators plus some more. And so on ...