Calculus

This module contains query handlers responsible for calculus queries: infinitesimal, finite, etc.

class sympy.assumptions.handlers.calculus.AskFiniteHandler[source]

Handler for key ‘finite’.

Test that an expression is bounded respect to all its variables.

Examples of usage:

>>> from sympy import Symbol, Q
>>> from sympy.assumptions.handlers.calculus import AskFiniteHandler
>>> from sympy.abc import x
>>> a = AskFiniteHandler()
>>> a.Symbol(x, Q.positive(x)) == None
True
>>> a.Symbol(x, Q.finite(x))
True
static Add(expr, assumptions)[source]

Return True if expr is bounded, False if not and None if unknown.

Truth Table:

B

U

?

‘+’

‘-‘

‘x’

‘+’

‘-‘

‘x’

B

B

U

?

U

‘+’

U

?

?

U

?

?

‘-‘

?

U

?

?

U

?

‘x’

?

?

?

?

  • ‘B’ = Bounded

  • ‘U’ = Unbounded

  • ‘?’ = unknown boundedness

  • ‘+’ = positive sign

  • ‘-‘ = negative sign

  • ‘x’ = sign unknown


  • All Bounded -> True

  • 1 Unbounded and the rest Bounded -> False

  • >1 Unbounded, all with same known sign -> False

  • Any Unknown and unknown sign -> None

  • Else -> None

When the signs are not the same you can have an undefined result as in oo - oo, hence ‘bounded’ is also undefined.

static Mul(expr, assumptions)[source]

Return True if expr is bounded, False if not and None if unknown.

Truth Table:

B

U

?

s

/s

B

B

U

?

U

U

U

?

?

?

  • B = Bounded

  • U = Unbounded

  • ? = unknown boundedness

  • s = signed (hence nonzero)

  • /s = not signed

static Pow(expr, assumptions)[source]

Unbounded ** NonZero -> Unbounded Bounded ** Bounded -> Bounded Abs()<=1 ** Positive -> Bounded Abs()>=1 ** Negative -> Bounded Otherwise unknown

static Symbol(expr, assumptions)[source]

Handles Symbol.

Examples

>>> from sympy import Symbol, Q
>>> from sympy.assumptions.handlers.calculus import AskFiniteHandler
>>> from sympy.abc import x
>>> a = AskFiniteHandler()
>>> a.Symbol(x, Q.positive(x)) == None
True
>>> a.Symbol(x, Q.finite(x))
True