Assuming

Assuming[assum,expr]

evaluates expr with assum appended to $Assumptions, so that assum is included in the default assumptions used by functions such as Refine, Simplify, and Integrate.

Details

  • Assuming affects the default assumptions for all functions that have an Assumptions option.
  • The assumptions can be equations, inequalities, or domain specifications, or lists or logical combinations of these.
  • Assumptions from nested invocations of Assuming are combined.
  • Assuming[assum,expr] is effectively equivalent to Block[{$Assumptions=$Assumptions&&assum},expr].
  • Assuming converts lists of assumptions {a1,a2,} to a1&&a2&&.

Examples

open allclose all

Basic Examples  (2)

Give the same assumptions to Refine and Integrate:

Specify the same assumptions for several Refine calls:

Scope  (3)

Specify assumptions for simplifiers:

Specify assumptions for Integrate and in integral transforms:

Specify assumptions for Limit and Series:

Applications  (1)

Write code that uses assumptions; find the number of real roots of a x2+b x+c:

Properties & Relations  (5)

Assuming locally sets the value of $Assumptions:

Assumptions from nested invocations of Assuming are combined:

Block can also be used to locally set the value of $Assumptions:

Here the assumptions from Assuming are not used inside Block:

This is equivalent to using nested Assuming:

Assuming affects functions using the Assumptions :> $Assumptions option setting:

For some functions assumptions can be given both as an argument and as an option value:

Possible Issues  (1)

When Assumptions option is set directly, assumptions specified with Assuming are not used:

Introduced in 2003
 (5.0)