### Navigation

- index
- modules |
- next |
- previous |
- Standard Semirings »

# Non Negative Integer Semiring

class `sage.rings.semirings.non_negative_integer_semiring.``NonNegativeIntegerSemiring`

  Bases: `sage.sets.non_negative_integers.NonNegativeIntegers`

  A class for the semiring of the non negative integers

  This parent inherits from the infinite enumerated set of non negative integers and endows it with its natural semiring structure.

  EXAMPLES:

      sage: NonNegativeIntegerSemiring()
      Non negative integer semiring

  For convenience, `NN` is a shortcut for `NonNegativeIntegerSemiring()`:

      sage: NN == NonNegativeIntegerSemiring()
      True

      sage: NN.category()
      Join of Category of semirings and Category of commutative monoids and Category of infinite enumerated sets and Category of facade sets

  Here is a piece of the Cayley graph for the multiplicative structure:

      sage: G = NN.cayley_graph(elements=range(9), generators=[0,1,2,3,5,7])
      sage: G
      Looped multi-digraph on 9 vertices
      sage: G.plot()
      Graphics object consisting of 48 graphics primitives

  This is the Hasse diagram of the divisibility order on `NN`.

  > sage: Poset(NN.cayley_graph(elements=range(13), generators=[0,1,2,3,5,7,11])).show()

  Note: as for `NonNegativeIntegers`, `NN` is currently 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

  `additive_semigroup_generators`()

    Returns the additive semigroup generators of `self`.

    EXAMPLES:

        sage: NN.additive_semigroup_generators()
        Family (0, 1)

### Navigation

- index
- modules |
- next |
- previous |
- Standard Semirings »