In Wolfram Mathematica 12, when I enter:

Solve[ x == y , x]


I get:

{{x -> y}}


as expected.

But when I add an equation that contains only constants and parameters:

Solve[ x == y z && z == 1, x]


{}

when I want to get {{x -> y}} as before.
• I think this is known and intentional. Try Solve[x == y z && z == 1, {x, z}] I think I saw question on this before on this site but can't be sure now. Apr 27, 2020 at 10:26
• Thanks a lot, Solve[x == y z && z == 1, {x, z}] gives {{x -> y, z -> 1}}. This is (arguably more important) half of the answer. I would like to know why Mathematica behaves in this way. Apr 27, 2020 at 10:34
• You should evaluate Solve[ x == y z && z == 1, x,MaxExtraConditions->All]. Your problem is a special case of a general issue which can be found in What is the difference between Reduce and Solve? Apr 27, 2020 at 10:38
• see help, under possible issues. screen shot !Mathematica graphics Solve[x == 1 && a == 2, x] gives {} Apr 27, 2020 at 10:39
• You can also use either Solve[x == y z && z == 1, x, {z}] or Solve[Eliminate[x == y z && z == 1, z], x] Apr 27, 2020 at 14:38