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

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.