Motion: Clarify decoration definition and propagation.
Folks,
I move that we adopt the following as our definition
of decorations.
The purpose of this motion is to clarify the definition
of decorations and define rules for their propagation.
The meaning of the decorations themselves is not part
of this motion and should be the subject of some future
motion.
However this motion assumes that the names of those
decorations correspond to properties that are usually
expected to be true. For example, 'bounded' rather than
'unbounded'. Thus, it is the failure of a property to
be true that is considered unusual and worthy of being
tracked with that property's sticky.
Dan
------------------------------------------------------
To each interval there shall be a set of decorations that
corresponds to that interval and carries information about
how that interval was computed. Each decoration within
that set shall carry 3 bits of information named
'thingy'True, 'thingy'False, and 'thingy'Sticky.
(Note to editor: John, 'thingy' is where you can put some
italic form placeholder to stand in for the property being
discussed. This is like <i> formatOf </i> in 754. Perhaps
<i> propertyOf </i> or <i> decorationOf </i>. Its up to
you.)
Together with the predicate is'thingy' we define for all
monadic interval functions f(xx):
'thingy'True = {there exists x in xx such that
is'thingy'(f,x) is True}
'thingy'False = {there exists x in xx such that
is'thingy'(f,x) is False}
'thingy'Sticky =
'thingy'False(xx) \or 'thingy'Sticky(xx)
We define for all dyadic interval functions f(xx,yy):
'thingy'True = {there exists x in xx and y in yy
such that is'thingy'(f,x,y) is True}
'thingy'False = {there exists x in xx and y in yy
such that is'thingy'(f,x,y) is False}
'thingy'Sticky =
'thingy'False(xx) \or 'thingy'Sticky(xx) \or
'thingy'False(yy) \or 'thingy'Sticky(yy)
There shall also exist predicates 'thingy'True(xx),
'thingy'False(xx), and 'thingy'Sticky(xx) and the
extraction function
get'thingy'(xx) = ('thingy'True(xx),'thingy'False(xx),
'thingy'Sticky(xx)).
The initial (or default) value of 'thingy'True(xx), and
'thingy'False(xx) upon creation of a new xx shall be determined
by the nature of 'thingy' (in a future motion). The initial
value of 'thingy'Sticky(xx) shall be False.