I'm trying to understand whether integers are an abstract data type.
The Wikipedia article starts out by saying that integers are not an ADT:
In practice, many common data types are not ADTs, as the abstraction is not perfect, and users must be aware of issues like arithmetic overflow that are due to the representation. For example, integers are often stored as fixed-width values (32-bit or 64-bit binary numbers), and thus experience integer overflow if the maximum value is exceeded.
But then says integers are an ADT (see here):
For example, integers are an ADT, defined as the values ..., −2, −1, 0, 1, 2, ..., and by the operations of addition, subtraction, multiplication, and division, together with greater than, less than, etc., which behave according to familiar mathematics (with care for integer division), independently of how the integers are represented by the computer [...] but for most purposes the user can work with the abstraction rather than the concrete choice of representation, and can simply use the data as if the type were truly abstract.
Which paragraph is correct?
The literature defines an ADT as a class of abstract objects which is fully characterised by the operations that can be performed on them. I take this to mean that an ADT is a type that is representation independent.
While integers can be defined by the operations that you can perform on them (e.g. arithmetic, comparison), they are not representation independent as the first quote points out.
On the other hand, does full representation independence even exist in practice? If we go by the first quote, then even the list type would not qualify as an ADT, since users need to be aware of implementation-dependent space constraints.