I want to build a boolean function that takes three parametric functions. I don't really know how to write a function for this, but this seems to work for me as long as the parameter is `t`

.

```
isCorrect(f1_, f2_, f3_) := Assuming(t >= 0, Refine(If(
1 + f1 + f2 + f3 >= 0 &&
1 + f1 - f2 - f3 >= 0 &&
1 - f1 + f2 - f3 >= 0 &&
1 - f1 - f2 + f3 >= 0, True, False)))
```

For some functions it gives the correct value.

```
In():= isCorrect(Cos(t), Cos(t), 1)
Out()= True
```

But for some examples like the following, it does not generate anything.

```
In():= isCorrect(Exp(-t) Cos(t), Exp(-t), Exp(-t))
Out()= If(1 - 2 E^-t + E^-t Cos(t) >= 0, True, False)
```

But I know that `Plot(1 - 2 E^-t + E^-t Cos(t), {t,0,10})`

returns the following and is always nonnegative for t positive.

So i don't know why `isCorrect`

does not come out `True`

so.

Any suggestion would be appreciated.

**EDIT:**

```
In():= Assuming(t >= 0, Reduce(1 - 2 E^-t + E^-t Cos(t) >= 0))`
Out():= Cos(t) (Element) Reals && ((E^-t < 0 && Cos(t) <= E^t (-1 + 2 E^-t)) || E^-t == 0 || (E^-t > 0 && Cos(t) >= E^t (-1 + 2 E^-t)))
```

Why can't you solve it? `E^-t`

It can never be negative. Too, `Cos(t)`

it's always real since `t`

it is explicitly assumed to be positive.