ГОСТ Р HCO/HL7 27951—2016
IVL<TS>nextA lter(T S х>
GTSpenoaicH ull(G T S x> ;
BLin te r leaves(GTS x>;
LIST<IVL<TS>>;
ST;
demotion
lit e r a l
l ;
B.5.3.1 Выпуклая оболочка
Выпуклая оболочка представляет собой наименьший интервал, содержащий все интервалы расписания. Как
указано в описании свойства SET.hull, для всех полностью упорядоченных множеств определена выпуклая обо
лочка. Поскольку тип данных GTS является специализацией типа данных SET<TS>. значения которого полностью
упорядочены, то для всех значений типа GTS определена выпуклая оболочка.
Выпуклая оболочка значения типа GTS может быть менее формально названа «внешним связным интерва
лом». Таким образом, выпуклая оболочка значения типа GTS описывает абсолютные начало и конец повторяюще
гося расписания. Для бесконечных повторений (например, описываемых типом данных PIVL) выпуклая оболочка
имеет бесконечные границы.
Расписание
w /жш
ESS3
Выпуклая оболочка
■жшжтжжужшж
i
Рисунок В. 16 — Выпуклая оболочка расписания
------------►
Время
В.5.3.2 Тип данных GTS как последовательность интервалов событий
Значение типа GTS является генератором интервалов, в течение которых происходят события или осущест
вляются действия либо действительно некоторое состояние.
Свойство nextTo отображает каждый момент времени t на наибольшее непрерывное подмножество («интер
вал события») v значения S типа GTS. где v — ближайший интервал к моменту t. начинающийся позже момента t
или содержащий момент t.
invariant(G TS S, TS L, IVL<TS> v| (
v .e q u a l(S .n e xtT o (t) ) .e q u a l(
S .contains(o).and<
Corall(IVL<TS> u> where x.contains(u> (
u .c o n ta in s (v ).im p lie s (u .e q u a l(v > J;
U
. and(v.contains ( t ) .o r (f o ra ll (TS
1
where t . lessGrEqual ( i )
,a n d (i.le s s T h a n (v .io w j} l
S .conatm s (i) .n o t; !> >};
Свойство nexlAfter отображает каждый момент времени t на наибольшее непрерывное подмножество («ин
тервал события») v значения S типа GTS. которое представляет собой ближайший интервал к моменту !. начина
ющийся позже момента I.
invariant(G TS S, TS l> (
S.contains(t>.not.implies(S.nextAlter(t>.equal(S.nextTo(t
)>\;
S.contains(t>.implies(S.nextAlter(t).equal(
S .except(nextT o(t?) .n e x fT o (t)>1;
1;
invariant(GTS S, TS t| I
S .co n ta in s(t J. n o t. im p lie s(S .ne xtA C ter(t> .e q u a l(S .n e xtT o (t)> >;
S.cont sm s <t>. im p lie s (S.nextACte r (t> .equal (
S.except(nextTo(t»).next To(t>}>;
l ;
Значение типа GTS может быть преобразовано в список типа UST<IVL<TS>>.
410
invariant(G TS x>
where x.isE m pty (