Re: Motion 35 -- New levels 1 and 1a (amendment)
Michel,
Thanks again for the detailed comments and questions. Below are some answers
from my perspective.
Nate
Michel Hack wrote:
Page 3, section 2.2: "infinite amount of precision" may introduce
the same kind of difficulties as "unbounded range", because
this permits a pole to be approached infinitely closely. So
I would expect a Level 1a parameterization of the minimal
distance between distinct points, or the minimal width of a
non-singleton interval -- so we could describe "underflown"
results.
We believe the model presented in the position paper doesn't require
underflow for the same reasons the current P1788 model doesn't, e.g., due to
definitions (4) and (5), for g(x)=1/x on the input X=[0,1] we have
X_f=(0,1]; and both the infimum and supremum of g on X_f is well-defined
(giving in this case the interval [1,+oo]).
When and if P1788 adds decorations to the standard,
g(X) = g([0,1]) = ([1,+oo],somewhereUndefined)
can be the decorated interval result to warn that the input X=[0,1] is not a
subset of the natural domain of g (and hence possible underflow).
Page 8, Table 1: what do the top-left and bottom-right corner entries
mean? There are no [-w, -w] or [+w, +w] overflow families as
far as I can tell.
True. [-w,-w] and [+w,+w] should be invalid construction, just like
[-oo,-oo] and [+oo,+oo] are in the current P1788 model. I suppose you could
replace those entries in the table with "N/A".
Page 8, near bottom: [1,+w] is a different mathematical object than an
unbounded interval, so we may define the bisection
point of [1,+w] as a real number.
"so"? This is a non-sequitur. We can say with equal
justification
that we want the midpoint of an unbounded interval to exist, so we
pick an arbitrary real number. This is simply "domain
completion".
For me, the reason I don't see it as non-sequitur is because P1788 voted in
Motion 31 that the midpoint of an unbounded interval is undefined at
Level 1. So to pick an arbitrary number at Level 2 for the midpoint of an
unbounded interval would, in my view, be a contradiction to the Level 1
definition.
What *is* different is that Level 1a explicitly introduces a scale
parameter h, which makes it easier to pick that arbitrary real
number. It could still be h, h/2, sqrt(h) or anything else.
Yes.
Although, technically, an unbounded interval X is not parameterized by h;
only an overflow family Omega(X) is.
Page 9, bottom third: "Since smedian2 is a variant of geometric mean..."
introduces another non-sequitur in my opinion, and I also don't
think the various approaches to bisection lead to a "snare of
logical contradictions". Domain completion requires choices,
but any contradictions would just arise from trying to address
incompatible requirements.
For me, if the midpoint of an unbounded interval is undefined at Level 1,
then picking an arbitrary real number at Level 2 as the midpoint is an
example of such incompatible requirements. Same for other bisection methods
like geometric mean, smedian2, etc.
Page 10, equation (14). Why should anybody be surprised? It is
perfectly ok to have partial functions -- one simply has
to deal with them appropriately. Yes, this may mean case
by case handling, but that's what most programs do.
If the midpoint of an unbounded interval is undefined at Level 1 (and
therefore also undefined at Level 2 to avoid incompatible requirements) what
other special case handling options are available? It seems to me any
midpoint bisection method a user might write that returns a real number
would be non-conforming in this scenario (same for geometric mean, smedian2,
etc.)
Page 13, formula (19): And how is this better?
I don't think I said it was better, did I? The point is that the nice
predicates given by John Pryce don't need to be changed (we really like the
work John did to define the comparison operation predicates).
Nate
P.S. We really like John's smedian2 function, as well. We don't suggest it
should or shouldn't be standardized; but if
midpoint([1,+oo])
is undefined at Level 1 (and hence Level 2), we do believe
smedian2([1,+oo])
is undefined at Level 1 (and hence Level 2). But we may define both
midpoint([1,+omega]) and smedian2([1,+omega])
as real numbers without introducing incompatible requirements.