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.
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
Returns the additive semigroup generators of self.
sage: NN.additive_semigroup_generators() Family (0, 1)