       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 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 (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 reasonable.

But none of the reasons for Assuming[x>=0, Refine[Infinity/x]]
yielding DirectedInfinity 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 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 (Infinity)

when

Assuming[(x == 0 && Element[x, Complexes]), Refine[Infinity/x]]

returns DirectedInfinity[] (ComplexInfinity)

```

• Prev by Date: Unique QR decomposition
• Next by Date: Export Import Array
• Previous by thread: Re: inconsistent refinement behavior
• Next by thread: Re: inconsistent refinement behavior