Thread Links | Date Links | ||||
---|---|---|---|---|---|
Thread Prev | Thread Next | Thread Index | Date Prev | Date Next | Date Index |
George, Ulrich, P1788, I have spent some time considering George's interesting challenge. Attached is a PDF file that contains my results. In summary: I am convinced that the first three relations provided in Motion 13 are both necessary and correct: A = B iff a1 = b1 and a2 = b2 A <= B iff a1 <= b1 and a2 <= b2 A \subseteq B iff b1 <= a1 and a2 <= b2. The reason is that for any two given intervals, one of the four relations \subseteq, \supseteq, <=, >= is always true. This is the minimum number of relations to unambiguously order the entire Inf/Sup plane (each point in the plane is an interval, plotted by lower bound along the horizontal axis (Inf) and upper bound along the vertical axis (Sup)... see Fig. 1 in the PDF). However, then we get, in accordance with algebra textbooks: A < B iff A <= B and not ( A = B ) // This is different than Motion 13! A \subset B iff A \subseteq B and not ( A = B ). So I fully agree with Prof. Markov that the fourth relation in Motion 13 should be modified slightly and given the name "precedes or equals", i.e., A \preceq B iff a2 <= b1. This leads to the family of relations depicted in Fig. 2, and also gives: A \prec B iff A \preceq B and not ( A = B ). Now, let me turn attention to the following. If we start conversely with the following strict relations: A < B iff a1 < b1 and a2 < b2 A \subset B iff b1 < a1 and a2 < b2 A \prec B iff a2 < b1 and then, with these definitions we have, in accordance with algebra textbooks: A <= B iff A < B or ( A = B ) A \subseteq B iff A \subset B or ( A = B ) A \preceq B iff A \prec B or ( A = B ). Then these last three relations are almost but not exactly the same as the relations A <= B iff a1 <= b1 and a2 <= b2 A \subseteq B iff b1 <= a1 and a2 <= b2 A \preceq B iff a2 <= b1. The differences appear to be only at endpoints. For example, given the definition A <= B iff a1 <= b1 and a2 <= b2, we have by algebra textbooks A < B iff A <= B and not ( A = B). Notice that < does not require strict inequality for both endpoints in order to be true. However, the explicit definition A < B iff a1 < b1 and a2 < b2, does. The user now has an ability to choose exactly which "flavor" of the < relation they require, i.e., should < require strict inequality of both endpionts or just one. One may argue this still violates the Principle of Least Astonishment; however in my view it seems to be a nice "feature," albiet a tricky one. In any case, I must say without \preceq it really turns into a totally undecipherable mess (we really need to inlcude \preceq). My personal conclusion is that Motion 13 should be revised to provide both the strict and non-strict versions of all the above-mentioned relations, i.e., \equals, \preceq, \subseteq, <=, \subset, \prec, and < (a total of 7 basic relations). They are listed in Table 1 of the attached PDF. From these 7 basic relations, all of the certainly-, possibly-, and set- relations in the Fortran 95 standard can be derived, as depicted in Table 2. I suspect other exotic relations may be defined in terms of these seven elementary relations, as well. However, I believe IEEE 1788 only needs to provide the seven relations in this minimal set. Sincerley, Nate P.S. Figs. 1 and 2 are from a paper on modal intervals, so they also include nonstandard intervals, i.e., the half-plane below the Inf=Sup line. But the relations are valid for standard intervals, i.e., the half-plane above the Inf=Sup line, as well. If an implementor chooses to provide support for nonstandard intervals, definitions for \preceq and \prec need a slight modification, i.e.: A \preceq B iff max(a1,a2) <= min(b1,b2) A \prec B iff max(a1,a2) < min(b1,b2). Otherwise the remaining definitions in Table 1 are valid and can be used without modification, even for relations between standard and nonstandard intervals.
Attachment:
Motion13.proposed.pdf
Description: Adobe PDF document