Thread Links Date Links
Thread Prev Thread Next Thread Index Date Prev Date Next Date Index

Re: Motion 42 (not 41): Decoration system, revised text



Nate, John
I wanted to come to a common agreement how to choose decorations on intersect and convexhull, in order to be able to propagate decoratoins for piecewise defined functions.
The recommendation, however, was faulty.
Let me try again.
(rule 1)
dec (a_da intersect b_db) = if (a disjoint b) then emp else min(da,db)
(rule 2)
dec (a_da convex_hull b_db) = if (a empty or b empty) then max(da,db) else min(da,db)

Am 23.12.2012 15:15, schrieb Nathan T. Hayes:
John, Jurgen,

The idea to decorate intersection with max(dx,dy) and convexHull with
min(dx,dy) doesn't make any sense to me. Where does this idea come from, and
why would someone want to do this?


For example, if these *new* rules are applied to Example 2 in section 8.8.8 for
X=[-1,1],dx) it gives:

 	U = f1(intersect([-1,1],[-oo,-2]))
 		= f1((Empty,emp)) // check wording in  section 8.8.4
 		= (Empty,emp)
 	V = (f2([-1,1]),dx)
 	W = f1(intersect([-1,1],[2,+oo]))
 		= (Empty,emp)

Despite the contradictory intermediate results, taking convexHull of U, V
and W and propagating the min decoration yields a nonempty interval with the
emp decoration:
	(f1([-1,1]),emp)

This doesn't seem at all useful or correct to me. What am I missing?
that was my fault
	see example 2 again with X=[0,4]


 	U = f1(intersect([0,4],[-oo,-2]))
 		= f1((Empty,emp)) // check wording in  section 8.8.4
 		= (Empty,emp)
 	V = (f2([0,2]),dx)
		=([-2,0], dx)
 	W = f1(intersect([0,4],[2,+oo]))
 		= f1([2,4],dx)
		= sqrt([0,12],dx)
		= ([0,sqrt(12)],dx)

The text of decoration systems has changed n the mean time due to former discussions.
my comment are in angle brackets

An implementation may provide other versions of the operations that compute a bare interval result as above, and add a decoration suited to a particular application. How this is done is
language- or implementation-defined.
In particular, to simplify defining functions piecewise, an implementation may define:

intersectionDec(xdx, ydy) is as intersection(xdx, ydy), except that it decorates the result with min(dx, dy).
<<<<<<<<<<<<
this produces Empty_dac, unless one specfies that use of newDec is mandatory. IMO rule 1 is easier.
>>>>>>>>>
convexHullDec(xdx, ydy) is as convexHull(xdx, ydy), except that it decorates
the result with the tightest (in the containment order (16)) decoration that contains both dx and dy.
<<<<<<<<<<<
do we need the contanment order for propagation ?
>>>>>>>>>>>>
A language may make these operations its default operations for intersection and convexHull. If it does so, its documentation shall provide a warning that misuse might lead to violation of the
FTDIA.

Juergen

--
o Prof. Dr. Juergen Wolff von Gudenberg, Lehrstuhl fuer Informatik II
    / \          Universitaet Wuerzburg, Am Hubland, D-97074 Wuerzburg
InfoII o         Tel.: +49 931 / 31 86602
  / \  Uni       E-Mail: wolff@xxxxxxxxxxxxxxxxxxxxxxxxxxx
 o   o Wuerzburg