FUNCTION number_tuple_subspace_check
(spc : maths_space) : LOGICAL;
LOCAL types : SET OF STRING := stripped_typeof(spc); factors : LIST OF maths_space; cum : LOGICAL := TRUE; END_LOCAL; IF 'UNIFORM_PRODUCT_SPACE' IN types THEN RETURN (subspace_of_es(spc\uniform_product_space.base,es_numbers)); END_IF; IF 'LISTED_PRODUCT_SPACE' IN types THEN factors := spc\listed_product_space.factors; REPEAT i := 1 TO SIZEOF (factors); cum := cum AND subspace_of_es(factors[i],es_numbers); END_REPEAT; RETURN (cum); END_IF; IF 'EXTENDED_TUPLE_SPACE' IN types THEN cum := subspace_of_es(spc\extended_tuple_space.extender,es_numbers); cum := cum AND number_tuple_subspace_check(spc\extended_tuple_space.base); RETURN (cum); END_IF; RETURN (FALSE); END_FUNCTION; -- number_tuple_subspace_check
|