# 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: