Re: inconsistent refinement behavior
- To: mathgroup at smc.vnet.net
- Subject: [mg131385] Re: inconsistent refinement behavior
- From: Bill Rowe <readnews at sbcglobal.net>
- Date: Wed, 17 Jul 2013 01:49:43 -0400 (EDT)
- Delivered-to: l-mathgroup@mail-archive0.wolfram.com
- Delivered-to: l-mathgroup@wolfram.com
- Delivered-to: mathgroup-outx@smc.vnet.net
- Delivered-to: mathgroup-newsendx@smc.vnet.net
On 7/16/13 at 5:56 AM, akrasnov at cory.eecs.berkeley.edu (Alex Krasnov) wrote: >Refine treats Reals as a subset of Complexes, as expected: >In: Assuming[Element[x, Reals], Refine[Element[x, Complexes]]] >Out: True Yes, I didn't adequately make my point. Others have offered as an explanation for Assuming[x>=0, Refine[Infinity/x]] yielding Infinity or more precisely, DirectedInfinity[1] as simply being x>=0 requires x to be a real in order for the > portion to have validity. You suggested Assuming[x==0, Refine[Infinity/x]] yields ComplexInfinity or more precisely DirectedInfinity[] as being due to not having a know sign value for x when x is 0 I find both explanations wanting, i.e. somewhat incomplete. If I take x == 0 to be an isolated point, then I can see why Mathematica returns DirectedInfinity[] (ComplexInfinity) rather than DirectedInfinity[1] (Infinity) as there is no basis for assuming any particular direction. And when I take x>0, I implicitly require x to be real for the > operation to be valid which makes DirectedInfinity[1] reasonable. But none of the reasons for Assuming[x>=0, Refine[Infinity/x]] yielding DirectedInfinity[1] seem to be adequate from a strictly mathematical point of view. I can see why it might be simpler from a programming viewpoint to return DirectedInfinity[1] rather than DirectedInfinity[]. And I can kind of see it as being somewhat implied that I am restricting things to the real line with x>=0. But I just haven't seen a mathematical reason for assuming I am restricting the problem to the real line at x == 0 simply by adding the possibility of other real positive values for x. In fact, it seems very inconsistent that Assuming[(x == 0 && Element[x, Complexes]) || x > 0, Refine[Infinity/x]] returns DirectedInfinity[1] (Infinity) when Assuming[(x == 0 && Element[x, Complexes]), Refine[Infinity/x]] returns DirectedInfinity[] (ComplexInfinity)
- Follow-Ups:
- Re: inconsistent refinement behavior
- From: Alex Krasnov <akrasnov@cory.eecs.berkeley.edu>
- Re: inconsistent refinement behavior