Skip to main content
added 660 characters in body
Source Link
Artes
  • 57.9k
  • 13
  • 159
  • 247

Reduce works fine for a slightly more sophisticated expression, e.g. :

Reduce[ ForAll[ x, x ∈ Integers, Mod[ x, 1] == 0], x]
True

however there is a bug in Solve :

Solve[ Mod[x, 1] == 0, x, Integers]
{}

therefore it is not surprising we have an analogical issue in Reduce :

Reduce[ Mod[x, 1] == 0, x, Integers] 
False 

Seemingly there has not been much clamor therefore it has not been a high priority to improve it.

One can work around these problems :

Reduce[ Mod[ a x, a] == 0 && a == 1, x, Integers]
C[1] ∈ Integers && a == 1 && x == C[1]

or simply

Reduce[ Mod[ x, 1] == a, x, Integers]
C[1] ∈ Integers && a == 0 && x == C[1]
Solve[ Mod[ x, 1] == a, x, Integers]
{{x -> ConditionalExpression[C[1], C[1] ∈ Integers && a == 0]}}

##Edit

The above problems with Reduce and Solve were found in Mathematica 8. Before there had been :

ver. 7

Solve[ Mod[x, 1] == 0, x, Integers]
Solve::ifun: Inverse functions are being used by Solve, so some solutions may not
be found; use Reduce for complete solution information. >> 
{{x -> InverseFunction[Mod, 1, 2][0, 1]}}
Reduce[ Mod[x, 1] == 0, x, Integers]
False

Now these bugs have been fixed :

ver. 9

Solve[ Mod[x, 1] == 0, x, Integers]
{{x -> ConditionalExpression[C[1], C[1] ∈ Integers]}}
Reduce[ Mod[x, 1] == 0, x, Integers]
C[1] ∈ Integers && x == C[1]

Reduce works fine for a slightly more sophisticated expression, e.g. :

Reduce[ ForAll[ x, x ∈ Integers, Mod[ x, 1] == 0], x]
True

however there is a bug in Solve :

Solve[ Mod[x, 1] == 0, x, Integers]
{}

therefore it is not surprising we have an analogical issue in Reduce :

Reduce[ Mod[x, 1] == 0, x, Integers] 
False 

Seemingly there has not been much clamor therefore it has not been a high priority to improve it.

One can work around these problems :

Reduce[ Mod[ a x, a] == 0 && a == 1, x, Integers]
C[1] ∈ Integers && a == 1 && x == C[1]

or simply

Reduce[ Mod[ x, 1] == a, x, Integers]
C[1] ∈ Integers && a == 0 && x == C[1]
Solve[ Mod[ x, 1] == a, x, Integers]
{{x -> ConditionalExpression[C[1], C[1] ∈ Integers && a == 0]}}

Reduce works fine for a slightly more sophisticated expression, e.g. :

Reduce[ ForAll[ x, x ∈ Integers, Mod[ x, 1] == 0], x]
True

however there is a bug in Solve :

Solve[ Mod[x, 1] == 0, x, Integers]
{}

therefore it is not surprising we have an analogical issue in Reduce :

Reduce[ Mod[x, 1] == 0, x, Integers] 
False 

Seemingly there has not been much clamor therefore it has not been a high priority to improve it.

One can work around these problems :

Reduce[ Mod[ a x, a] == 0 && a == 1, x, Integers]
C[1] ∈ Integers && a == 1 && x == C[1]

or simply

Reduce[ Mod[ x, 1] == a, x, Integers]
C[1] ∈ Integers && a == 0 && x == C[1]
Solve[ Mod[ x, 1] == a, x, Integers]
{{x -> ConditionalExpression[C[1], C[1] ∈ Integers && a == 0]}}

##Edit

The above problems with Reduce and Solve were found in Mathematica 8. Before there had been :

ver. 7

Solve[ Mod[x, 1] == 0, x, Integers]
Solve::ifun: Inverse functions are being used by Solve, so some solutions may not
be found; use Reduce for complete solution information. >> 
{{x -> InverseFunction[Mod, 1, 2][0, 1]}}
Reduce[ Mod[x, 1] == 0, x, Integers]
False

Now these bugs have been fixed :

ver. 9

Solve[ Mod[x, 1] == 0, x, Integers]
{{x -> ConditionalExpression[C[1], C[1] ∈ Integers]}}
Reduce[ Mod[x, 1] == 0, x, Integers]
C[1] ∈ Integers && x == C[1]
added 202 characters in body; added 23 characters in body
Source Link
Artes
  • 57.9k
  • 13
  • 159
  • 247

Apparently thisReduce works fine for a slightly more sophisticated expression, e.g. :

Reduce[ ForAll[ x, x ∈ Integers, Mod[ x, 1] == 0], x]
True

however there is a bug in ReduceSolve, (also:

Solve[ Mod[x, 1] == 0, x, Integers]
{}

therefore it is not surprising we have an analogical issue in SolveReduce) , though:

Reduce[ Mod[x, 1] == 0, x, Integers] 
False 

Seemingly there has not been much clamor therefore it seemingly hasn'thas not been very harmful so fara high priority to improve it. One

One can work around this problemthese problems :

Reduce[ Mod[ a x, a] == 0 && a == 1, x, Integers]
C[1] ∈ Integers && a == 1 && x == C[1]

or simply

Reduce[ Mod[ x, 1] == a, x, Integers]
C[1] ∈ Integers && a == 0 && x == C[1]
Solve[ Mod[ x, 1] == a, x, Integers]
{{x -> ConditionalExpression[C[1], C[1] ∈ Integers && a == 0]}}

Reduce works fine for a slightly more sophisticated expression, e.g. :

Reduce[ ForAll[ x, x ∈ Integers, Mod[ x, 1] == 0], x]
True

Apparently this is a bug in Reduce, (also in Solve) , though it seemingly hasn't been very harmful so far. One can work around this problem :

Reduce[ Mod[ a x, a] == 0 && a == 1, x, Integers]
C[1] ∈ Integers && a == 1 && x == C[1]

or simply

Reduce[ Mod[ x, 1] == a, x, Integers]
C[1] ∈ Integers && a == 0 && x == C[1]
Solve[ Mod[ x, 1] == a, x, Integers]
{{x -> ConditionalExpression[C[1], C[1] ∈ Integers && a == 0]}}

Reduce works fine for a slightly more sophisticated expression, e.g. :

Reduce[ ForAll[ x, x ∈ Integers, Mod[ x, 1] == 0], x]
True

Reduce works fine for a slightly more sophisticated expression, e.g. :

Reduce[ ForAll[ x, x ∈ Integers, Mod[ x, 1] == 0], x]
True

however there is a bug in Solve :

Solve[ Mod[x, 1] == 0, x, Integers]
{}

therefore it is not surprising we have an analogical issue in Reduce :

Reduce[ Mod[x, 1] == 0, x, Integers] 
False 

Seemingly there has not been much clamor therefore it has not been a high priority to improve it.

One can work around these problems :

Reduce[ Mod[ a x, a] == 0 && a == 1, x, Integers]
C[1] ∈ Integers && a == 1 && x == C[1]

or simply

Reduce[ Mod[ x, 1] == a, x, Integers]
C[1] ∈ Integers && a == 0 && x == C[1]
Solve[ Mod[ x, 1] == a, x, Integers]
{{x -> ConditionalExpression[C[1], C[1] ∈ Integers && a == 0]}}
Source Link
Artes
  • 57.9k
  • 13
  • 159
  • 247

Apparently this is a bug in Reduce, (also in Solve) , though it seemingly hasn't been very harmful so far. One can work around this problem :

Reduce[ Mod[ a x, a] == 0 && a == 1, x, Integers]
C[1] ∈ Integers && a == 1 && x == C[1]

or simply

Reduce[ Mod[ x, 1] == a, x, Integers]
C[1] ∈ Integers && a == 0 && x == C[1]
Solve[ Mod[ x, 1] == a, x, Integers]
{{x -> ConditionalExpression[C[1], C[1] ∈ Integers && a == 0]}}

Reduce works fine for a slightly more sophisticated expression, e.g. :

Reduce[ ForAll[ x, x ∈ Integers, Mod[ x, 1] == 0], x]
True