ГОСТ Р HCO/HL7 27951—2016
invariant(INT х, у,
х , о )
where
х .
compares
(у>
.and
(о .
isZero).and(i.isOne)
(
х .
times(о>.equal(о);
х.
times(it.equal
(x)
;
x . t
imes
(y .
successor).equal
(x .
times
(y>
).plus
(x );
B.2.28.5
С
в о й с т в о
predecessor: INT (предыдущее)
Определение: свойство, обратное свойству successor.
invariant(INT x, y>
where x.successor(y) t
x.successor.predecessor.equal(x>;
t ;
B.2.28.6 Свойство negated: INT (отрицание)
Определение: элемент, обратный значению типа INT. то есть такое другое значение типа INT, которое при
сложении с данным значением дает нулевой результат (нейтральный элемент).
invariant(INT х>
where x.nonNull (
x.plus(x.negated>.lsZero;
l;
B.2.28.7 Свойство nonNegative: BL (неотрицательное)
Определение: предикат, указывающий, является ли нулевое значение типа INT (нейтральный элемент) мень
шим данного значения типа INT или равным ему.
invariant(INT х, о)
where х.noriNull.ana(о.isZero> {
х.
nonNegative.equal
(о.
lessOrEqual
(x)
);
j
;
B.2.28.8 Свойство isNegative: BL (отрицательное)
Определение: предикат, указывающий, что данное значение типа INT меньше нуля (не является неотрица
тельным).
invariant(
int
х>
where x.nonNull <
х.isNeqat ive.equal(x.nonNegative.not)
l;
B.2.28.9 Свойство dividedBy: INT (деление)
Определение: целочисленным делением данного целого значения (делимого — dividend) на другое целое
значение (делитель — divisor) является целое значение, произведение которого на делитель укладывается в де
лимое.
invariant(INTdividend, devisor, о, i)
where devisor.isZero.not.and(о.lsZero) (
dividend.isZero.implies(dividena.dividedBy(divisor).equal(o)>;
dividend.isZero.not.impiies(dividend.dividedBy(divisor>.equal(
absolute(dividend).minus(absolute(divisor)).dividedBy(absolute(divisor>I
.successor.times(sign(diviaena)
.times(sign(divisor>;>>>;
i ;
B.2.28.10 Свойство reminder: INT (остаток)
Определение: остаток от целочисленного деления.
360
invariant(INT X, yt
where x.nonNull.and(y.nonNull) I