### Navigation

- index
- modules |
- next |
- previous |
- Basic Structures »

# Non Negative Integers

class `sage.sets.non_negative_integers.``NonNegativeIntegers`(category=None)

  Bases: `sage.structure.unique_representation.UniqueRepresentation`, `sage.structure.parent.Parent`

  The enumerated set of non negative integers.

  This class implements the set of non negative integers, as an enumerated set (see `InfiniteEnumeratedSets`).

  EXAMPLES:

      sage: NN = NonNegativeIntegers()
      sage: NN
      Non negative integers
      sage: NN.cardinality()
      +Infinity
      sage: TestSuite(NN).run()
      sage: NN.list()
      Traceback (most recent call last):
      ...
      NotImplementedError: infinite list
      sage: NN.element_class
      <type 'sage.rings.integer.Integer'>
      sage: it = iter(NN)
      sage: [it.next(), it.next(), it.next(), it.next(), it.next()]
      [0, 1, 2, 3, 4]
      sage: NN.first()
      0

  Currently, this is just a “facade” parent; namely its elements are plain Sage `Integers` with `Integer Ring` as parent:

      sage: x = NN(15); type(x)
      <type 'sage.rings.integer.Integer'>
      sage: x.parent()
      Integer Ring
      sage: x+3
      18

  In a later version, there will be an option to specify whether the elements should have `Integer Ring` or `Non negative integers` as parent:

      sage: NN = NonNegativeIntegers(facade = False) # todo: not implemented
      sage: x = NN(5)                                # todo: not implemented
      sage: x.parent()                               # todo: not implemented
      Non negative integers

  This runs generic sanity checks on `NN`:

      sage: TestSuite(NN).run()

  TODO: do not use `NN` any more in the doctests for `NonNegativeIntegers`.

  `Element`

    alias of `Integer`

  `an_element`()

    EXAMPLES:

        sage: NonNegativeIntegers().an_element()
        42

  `from_integer`

    alias of `Integer`

  `next`(o)

    EXAMPLES:

        sage: NN = NonNegativeIntegers()
        sage: NN.next(3)
        4

  `some_elements`()

    EXAMPLES:

        sage: NonNegativeIntegers().some_elements()
        [0, 1, 3, 42]

  `unrank`(rnk)

    EXAMPLES:

        sage: NN = NonNegativeIntegers()
        sage: NN.unrank(100)
        100

### Navigation

- index
- modules |
- next |
- previous |
- Basic Structures »