Take the 2-minute tour ×
Mathematica Stack Exchange is a question and answer site for users of Mathematica. It's 100% free, no registration required.

I have this inequality:

Reduce[(4000-1000k)/(k-4) < 0]

and the answer is

k ∈ Reals

I would expect k != 4.

share|improve this question
    
Perhaps because the lim k-> 4 of this is -1000? –  Sjoerd C. de Vries Oct 7 '13 at 17:41
    
This does not mean it is mathematically correct. –  enzotib Oct 7 '13 at 18:51
add comment

2 Answers

up vote 5 down vote accepted

The following is a kind of remedy for the problem at hand:

Reduce[# < 0 && Denominator[#] != 0]&[ (4000 - 1000 k)/(k - 4)]
k < 4 || k > 4

Even though the issues in the OP could be easily resolved nonetheless they are not mathematically correct and for this reason one could consider them as bugs, this is a similar problem
( 4 ∈ Complexes as well as 4 ∈ Reals but 0/0 is Indeterminate thus
TrueQ[Indeterminate ∈ Reals] yields False):

Reduce[(4000 - 1000 k)/(k - 4) ∈ Reals, k]
True

while this one is correct:

Reduce[(4000 - 1000 k)/(k - 4) ∈ Reals, k, Reals]
k < 4 || k > 4

Similar issue one can find here: Issue with NSolve.

Therefore we can conclude

Reduce[(4000 - 1000 k)/(k - 4) < 0, k]
Reduce[(4000 - 1000 k)/(k - 4) < 0, k, Reals]
Reduce[(4000 - 1000 k)/(k - 4) < 0, k, Complexes]
k ∈ Reals
True
True

yield results which appear to be incorrect in special cases, they are only generically correct. All of these above work as with a simplification technique:

Simplify[(4000 - 1000 k)/(k - 4)]
-1000

but from strictly mathematical point of view they shouldn't. Nevermind what the documentation says (genericity et consortes) this is of course a bug:

Reduce[(4000 - 1000 k)/(k - 4) < 0 && 3 < k < 5, k, Integers]
k == 4
share|improve this answer
    
I would not tag this as a bug as it seems to be by design. Also, I'm not sure that from a practical point of view ConditionalExpression[-1000, k != 4] would be a better (more useful/usable) return value for that Simplify. The function FunctionDomain is coming, which is a sort of practical solution to this problem. –  Szabolcs Mar 22 at 16:06
    
@Szabolcs See the last line of the code, that is a bug. One cannot argue that's not since the domain Integers and the condition 3 < k < 5 selects only k == 4 but for such a number (4000 - 1000 k)/(k - 4) < 0 cannot be satisfied. –  Artes Mar 22 at 21:02
    
@Szabolcs By the way, do you know when the new version of Mathematica appears? Seems like it should be in a few days. –  Artes Mar 22 at 21:28
    
I don't know when it will appear. The new documentation has been online for quite a while. Are there any other signs that it's coming soon? I wasn't expecting it just yet. –  Szabolcs Mar 22 at 23:06
    
@Szabolcs I mean this question Information on Mma v10. –  Artes Mar 22 at 23:36
add comment

Please see this tutorial on the results given by symbolic functions. In short, the results returned by them are generically correct:

http://reference.wolfram.com/mathematica/tutorial/GenericAndNonGenericCases.html

share|improve this answer
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.