Hi,

First, from the documentation for `Maximize`

("Details and Options"):

If the constraints cannot be satisfied, `Maximize`

returns `{-Infinity, {x->Indeterminate,...}}`

.

Why would `-Infinity`

be an appropriate choice? A real-valued function cannot have `-Infinity`

as a maximum (or least upper bound), so it would seem ridiculous. Maybe just for that reason, to indicate a problem. But actually, it follows from a certain definition: An upper bound for
$f(x)$ over a domain is a number
$B$ such that for all
$x$ in the domain,
$f(x) \le B$. If the domain is empty, then by standard logic the proposition "for all
$x$ in the domain,
$f(x) \le B$" is true (sometimes said to be vacuously true). If the constraint cannot be satisfied, the domain is empty; therefore any real number
$B$ is an upper bound for
$f(x)$ and the least upper bound in some sense is `-Infinity`

. (It would be more proper to say the least upper bound does not exist. If we allow some latitude, `-Infinity`

does capture the idea in a way, and it can be dealt with programmatically in an unambiguous way. To me it seems a reasonable choice for the result.)

Second, the constraint `a > 0`

is not treated the same as an assumption. The answer that is produced consists of two parts, one for when the constraint is satisfied (maximum `b`

, `x -> 1`

), and the other for when the constraint is not satisfied (in which case the answer agrees with the documentation above).

If you wish to consider only the case `a > 0`

, then use `Simplify`

or `FullSimplify`

to apply the assumption:

Simplify[Maximize[{-a (x - 1)^2 + b, a > 0}, x], a > 0]
(* {b, {x -> 1}} *)