gives the form of expr that would be obtained if symbols in it were replaced by explicit numerical expressions satisfying the assumptions assum.


uses default assumptions specified by any enclosing Assuming constructs.

Details and Options

  • Assumptions can consist of equations, inequalities, domain specifications such as xIntegers, and logical combinations of these.
  • Refine can be used on equations, inequalities, and domain specifications.
  • Quantities that appear algebraically in inequalities are always assumed to be real.
  • Refine is one of the transformations tried by Simplify.
  • The following options can be given:
  • Assumptions$Assumptionsdefault assumptions to append to assum
    TimeConstraint30for how many seconds to try doing any particular transformation


open allclose all

Basic Examples  (2)

cannot be simplified for arbitrary complex :

For explicit positive numeric expressions, evaluates to :

Refine evaluates to when a symbolic expression is assumed to be positive:

Weaker assumptions may result in a weaker simplification:

Use Assuming to specify the same assumptions for several Refine calls:

Scope  (9)

Nested powers:

Product of powers:


Trigonometric functions:

Equations and inequalities:

Element statements:

Floor, Ceiling, Round, IntegerPart, and FractionalPart:


Re, Im, Abs, Arg, Conjugate, and Sign:

Options  (4)

Assumptions  (3)

Assumptions can be given both as an argument and as an option value:

The default value of the Assumptions option is $Assumptions:

When Assumptions is given as an argument, $Assumptions is used as well:

Specifying Assumptions as an option value prevents Refine from using $Assumptions:

TimeConstraint  (1)

Checking whether a condition follows from assumptions may take a long time:

If a condition does not follow from assumptions, checking this may still take a long time:

The time spent on a single condition check is restricted by the value of TimeConstraint:

With a time constraint of 1 second, Refine cannot prove that :

Applications  (1)

Write code that uses assumptions; find the number of real roots of :

Properties & Relations  (4)

Refine rules correspond to automatic simplification rules for numeric expressions:

Use Assuming to propagate assumptions:

Use Simplify for more simplification rules:

Use FullSimplify for special function simplification:

Possible Issues  (1)

Expressions appearing algebraically in inequality assumptions are assumed to be real:

Wolfram Research (2003), Refine, Wolfram Language function,


Wolfram Research (2003), Refine, Wolfram Language function,


@misc{reference.wolfram_2020_refine, author="Wolfram Research", title="{Refine}", year="2003", howpublished="\url{}", note=[Accessed: 20-January-2021 ]}


@online{reference.wolfram_2020_refine, organization={Wolfram Research}, title={Refine}, year={2003}, url={}, note=[Accessed: 20-January-2021 ]}


Wolfram Language. 2003. "Refine." Wolfram Language & System Documentation Center. Wolfram Research.


Wolfram Language. (2003). Refine. Wolfram Language & System Documentation Center. Retrieved from