FDL > PVS > Prelude > relation_props : Theory
PVS-2.4 prelude.pvs


relation_props [T1:TYPE, T2:TYPE, T3:TYPE] : THEORY
BEGIN

R1: VAR pred[[T1, T2]]

R2: VAR pred[[T2, T3]]

x: VAR T1

y: VAR T2

z: VAR T3

O(R1, R2)(x, z): bool = EXISTS y : R1(x, y) AND R2(y, z);

total composition: LEMMA (total?(R1) & total?(R2)) = > total?(R1 o R2)

onto composition: LEMMA (onto?(R1) & onto?(R2)) = > onto?(R1 o R2)

%%(TCC) composition_total: OBLIGATION

composition total: JUDGEMENT O((R1:(total?[T1, T2]) ), (R2:(total?[T2, T3]) )) HAS_TYPE (total?[T1, T3])

%%(TCC) composition_onto: OBLIGATION

composition onto: JUDGEMENT O((R1:(onto?[T1, T2]) ), (R2:(onto?[T2, T3]) )) HAS_TYPE (onto?[T1, T3])

END relation_props