Question: Nonzero integer definition: What is the difference between Non(0) and NonZero

I am asking because I could neither find a type nor a property for nonzero integers. However, with the assume facility it is possible to combine properties 

assume(x<>0,x::integer)
about(x)
Originally x, renamed x~:
  is assumed to be: AndProp(integer,OrProp(RealRange(-infinity,Open(0)),RealRange(Open(0),infinity)))

Or:

restart;
assume(x::Non(0),x::integer)
about(x)
Originally x, renamed x~:
  is assumed to be: AndProp(integer,OrProp(RealRange(-infinity,Open(0)),RealRange(Open(0),infinity)))

Or:

assume(x::NonZero,x::integer)
about(x)
Originally x, renamed x~:
  is assumed to be: AndProp(integer,OrProp(RealRange(-infinity,Open(0)),RealRange(Open(0),infinity)))

Non(0) is also accepted by the type command which raises the question whether Non(0) is a property, a type or both.

On the other hand type does not recognise NonZero but "::NonZero" is accepted in the assume command (note the :: which is the operator for type definitions). 

The function Non, which is also listed under types, is also accepted in the context of properties. This is somewhat confusing since types and properties are different in nature. Can somone clarify?

By the way, the above examples also work when Non is replaced with Not because they are equivalent. However showstat(Non) works but showstat(Not) throws an error.

Please Wait...