I know that Reduce is not Solve but from e.g. 212880 I also see that integer solutions may be found by it. However, I am clearly confused about what I should expect from it and why.
Consider this system of equations
$2^x = 3 k + 1 \land 2^{x-1} = 3 m + 1$
By inspection there are no solutions. If we put the question to MMA (11.0.1) like this
Block[{x, k, m}, Reduce[2^x == 3 k + 1 && 2^(x - 1) == 3 m + 1, {x, k, m}, Integers]]
We obtain (via TeXForm)
$ (k|m|x)\in \mathbb{Z}\land k=\frac{2^x}{3}-\frac{1}{3}\land m=\frac{2^{x-1}}{3}-\frac{1}{3}$
Q1 Why does MMA not realise that the forms of $k, m$ are incompatible?
Q2 Why does MMA state "$ (k|m|x)\in Integers$" as Alternatives? The reduction is specified over the integers so they must all be integers simultaneously. Specifically, why is it not expressed as an And of each $\in$ Integers?
Q3 Summary: is it basically just saying that there is no reduction of the equations?
NB if I reduce over {x, k}, or {x, m} MMA returns False, which I might interpret as there being no solution, but why should I pick these variable pairs? Note that Reduce over {k, m} does not return False
UPDATE Summary of new & selected points from various responses.
From the documentation, the first line of Details and Options, says that the result of Reduce" always describes exactly the same mathematical set as expr.", and a further example further down confirms that False means there is no solution.
Ordering of variables is important: Reduce[..., {k, m, x}] = False i.e. it does give "~impossible".
Reduce might, like FindInstance be unable to provide an answer, but unlike the latter may not know that it can't and may not say so to the user.
From the documentation, $Element[x1|x2|...,dom]$ asserts that all the $x_i$ are elements of dom. (The justification for using this form to express is still wanting)
Note that $2^x$ is not integral for integer $x<0$
FindInstance[2^x==3 k+1&&2^(x-1)==3 m+1,{x,k,m},Integers]
returns no solution and says "The methods available to FindInstance are insufficient to find the requested instances or prove they do not exist." V12.3. Another example with similar behavior isFindInstance[{2^a==2*b+1,b>0},{a,b},Integers]
. $\endgroup$Reduce[2^x == 3 k + 1 && 2^(x - 1) == 3 m + 1, {k, m, x}, Integers]
works. Polynomial equations -- not ones with "transcendental" terms, or at least not with exponential terms -- are the principal domain ofReduce
. PossiblyReduce
does not analyze exponential terms unless "asked." The order of the variables matters inReduce
: The later variables are solved in terms of the earlier ones. You needx
not to be first in the list. $\endgroup$