ГОСТ Р HCO/HL7 27951—2016
Следует обратить внимание, что выпуклая оболочка определена в том и только том случае, если действи
тельное множество является полностью упорядоченным. Значения типа данных его элементов не обязаны быть
полностью упорядоченным. Например, значения типа данных PQ упорядочены только частично (поскольку срав
нивать можно только величины одного типа), но множество типа SET<PQ> тем не менее может быть полностью
упорядоченным (если содержит только сравнимые величины). Например, выпуклой оболочкой множества {4 с: 20
с; 55 с) является интервал (4 с; 55 с); выпуклая оболочка множества {’яблоко"; "апельсин’; "банан") не опреде лена.
поскольку это множество не является упорядоченным; выпуклая оболочка множества (2 м; 4 м; 8 с) также не
определена, поскольку и оно не является полностью упорядоченным (секунды не сравнимы с метрами).
Множество
I
--------
1□I
...........
I □I
---------
1
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------►
Выпуклая оболочка || Упорядочение
Рисунок В. 12 — Выпуклая оболочка полностью упорядоченного множества
В.3.2 Тип данных списка LIST (специализация типа данных ANY)
Определение: значение, содержащее другие дискретные (но не обязательно различные) значения в опреде
ленной последовательности.
tail;
isEmpty;
notEmpt y;
item(INT index);
contains(T atern);
length;
LIST<T>
BL
BL
T
BL
INT
ST;
LIST<T>
(T x);
lit e r a l
promotion
i ;
template<ANY Т>
type Seqnence<T> alias LIST<T> specializes ANY
I
Thead;
Список может не содержать ни одного элемента.
В.3.2.1 Свойство head; Т
Определение: первый элемент списка. Свойство head является определяющим для семантики списка.
В.3.2.2 Свойство tad: LIST<T>
Определение: список элементов, следующих за первым элементом списка. Свойство tail является определя
ющим для семантики списка.
В.3.2.3 Свойство isEmpty: BL
Определение: предикат, имеющий значение «true», если список пуст, то есть не содержит элементов.
Обратите внимание на отличие пустого списка от пустого значения: пустой список является допустимым
списком, а не исключительным значением.
invariant(LIST<T> х>
where х.isEmpty |
x.head.isNull;
х.tail.isNull;
);
Следует обратить внимание, что пустота элемента head и списка tail является необходимым, но не доста
точным условием пустоты списка, поскольку список может содержать в качестве элементов пустые значения, это
условие гложет означать, что данный список имеет единственный элемент, имеющий пустое значение.
В.3.2.4 Свойство notEmpty: BL
Определение: предикат, имеющий значение «true», если список не является пустым. Является отрицанием
свойства isEmpty.
invariant<LIST<T> х)
where x.nonKull {
x.notEmpty.
e q u a l
(x.isEmpty.
n o t);
);
386