represents the domain of non-negative rational numbers, as in xNonNegativeRationals.


  • xNonNegativeRationals evaluates immediately if x is a numeric quantity.
  • Simplify[exprNonNegativeRationals,assum] can be used to try to determine whether an expression corresponds to a non-negative rational number under the given assumptions.
  • (x1|x2|)NonNegativeRationals and {x1,x2,}NonNegativeRationals test whether all xi are non-negative rational numbers.
  • The domain of non-negative integers is taken to be a subset of the domain of non-negative rationals.
  • NonNegativeRationals is output in StandardForm or TraditionalForm as TemplateBox[{}, NonNegativeRationals]. This typeset form can be input using nnrats.


open allclose all

Basic Examples  (3)

2/3 is a non-negative rational number:

A sum of non-negative rational numbers is a non-negative rational number:

Find non-negative rational solutions of an equation:

Scope  (5)

Test domain membership of a numeric expression:

Make domain membership assumptions:

Specify the default domain over which Reduce should work:

Test whether several numbers are non-negative rationals:

If any number is explicitly not a non-negative rational, the result is False:

TraditionalForm formatting:

Properties & Relations  (4)

Membership in NonNegativeRationals is equivalent to membership in Rationals and non-negativity:

NonNegativeRationals contains NonNegativeIntegers:

NonNegativeRationals is contained in NonNegativeReals, Algebraics and Complexes:

NonNegativeRationals is disjoint from NegativeRationals:

NonNegativeRationals intersects NonPositiveRationals:

Introduced in 2019