Sponsored links: Algebra eBooks ### The Maxima on-line user's manual

Algebra Calculator

#### Search: #### Assume

Function: assume (<pred_1>, ..., <pred_n>) Adds predicates <pred_1>, ..., <pred_n> to the current context. If a predicate is inconsistent or redundant with the predicates in the current context, it is not added to the context. The context accumulates predicates from each call to `assume`. `assume` returns a list whose elements are the predicates added to the context or the atoms `redundant` or `inconsistent` where applicable.

The predicates <pred_1>, ..., <pred_n> can only be expressions with the relational operators `< <= equal notequal >=` and `>`. Predicates cannot be literal equality `=` or literal inequality `#` expressions, nor can they be predicate functions such as `integerp`.

Compound predicates of the form `<pred_1> and ... and <pred_n>` are recognized, but not `<pred_1> or ... or <pred_n>`. `not <pred_k>` is recognized if <pred_k> is a relational predicate. Expressions of the form `not (<pred_1> and <pred_2>)` and `not (<pred_1> or <pred_2>)` are not recognized.

Maximas deduction mechanism is not very strong; there are many obvious consequences which cannot be determined by `is`. This is a known weakness.

`assume` does not handle predicates with complex numbers. If a predicate contains a complex number `assume` returns `inconsistent` or `redunant`.

`assume` evaluates its arguments.

See also `is`, `facts`, `forget`, `context`, and `declare`.

Examples:

```          (%i1) assume (xx > 0, yy < -1, zz >= 0);
(%o1)              [xx > 0, yy < - 1, zz >= 0]
(%i2) assume (aa < bb and bb < cc);
(%o2)                  [bb > aa, cc > bb]
(%i3) facts ();
(%o3)     [xx > 0, - 1 > yy, zz >= 0, bb > aa, cc > bb]
(%i4) is (xx > yy);
(%o4)                         true
(%i5) is (yy < -yy);
(%o5)                         true
(%i6) is (sinh (bb - aa) > 0);
(%o6)                         true
(%i7) forget (bb > aa);
(%o7)                       [bb > aa]
(%i8) prederror : false;
(%o8)                         false
(%i9) is (sinh (bb - aa) > 0);
(%o9)                        unknown
(%i10) is (bb^2 < cc^2);
(%o10)                       unknown```

There are also some inexact matches for `assume`. Try `?? assume` to see them.

```(%o1)                                true
(%i2) ```

### Related Examples

##### assume-constant-cos-declare-diff-factorout-globalsolve-let-letsimp-lhs-posfun-realonly-sin-subst-trigsimp-true

globalsolve: true;

realonly: true;

/* Standard (x,y)->...

Calculate

##### assume-changevar-integrate-log-nouns

assume;

'integrate ((log(3*x...

changevar (%, z-(1/(3...

Calculate

##### assume-equal-integrate

assume(equal(r, 0));

integrate( (-(r^2/8))...

Calculate

##### assume-constant-cos-declare-diff-let-letsimp-sin-solve-trigsimp

x(t) := r(t) * sin(th...

y(t) := r(t) * cos(th...

declare (slope,consta...

Calculate

##### assume-exp-integrate

assume( lambda > 0);

cdf: integrate( lambd...

ex: integrate( lambda...

Calculate

##### assume-declare-exp-facts-residue-sin

residue(exp(s*z)/z^2,...

assume(n>0, m>0);

residue(1/sin(%pi*z),...

Calculate

##### assume-constant-cos-declare-diff-let-letsimp-sin-solve-trigsimp

x(t) := r(t) * sin(th...

y(t) := r(t) * cos(th...

declare (slope,consta...

Calculate

##### assume-constant-cos-declare-diff-let-letsimp-rhs-sin-subst-trigsimp

/* Standard (x,y)->...

y(t) := r(t) * sin(th...

/* Constant course as...

Calculate

##### assume-inf-limit

assume(K>0, c>0...

limit(K/(1+c*(e^(-r*t...

Calculate

##### assume-inf-limit

assume(K>0);

assume(c>0);

assume(r>0);

Calculate 