### The Maxima on-line user's manual

Algebra Calculator

#### 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-defint-diff

assume (x*y>0);

f(x,y):=defint(%e^(-t...

p(x,y):=(x/y)*diff(di...

Calculate

assume(a<1);

sum(a^n,n,1,N);

Calculate

assume(a>1);

assume(T>0);

assume(b<0);

Calculate

##### assume-inf-simpsum

assume(x > 0,x<...

sum (n*0.5^n, n, 0, i...

Calculate

##### assume-diff-ev-ic1-ic2-ode2-plot2d

assume(m>0,k>0,...

eq1:ode2(m*'diff(z,t,...

eq2:ode2(m*'diff(v,t)...

Calculate

##### assume-coeff-denom-expand-solve-sqrt

jedn:[c1*s*u1-c1*u0+u...

prom:[u1,u2];

odziv: solve(jedn,prom);

Calculate

##### assume-declare-stirling2

combn(n,k):= n!/(k!*(...

declare(n, integer);

assume(n >=0);

Calculate

assume(equal(a,b));

is(equal(a,b));

Calculate

##### assume-diff-facts-forget-ode2-trigexpand

eq: diff(r(t),t,2)-C*...

eq2:diff(r(t), t, 2)=0;

assume(C<0);

Calculate

##### assume-diff-ev-integrate-sin

/* [wxMaxima: title ...

/* Función de prueba ...

dy(x):=diff(y(x),x);

Calculate