FUNCTION space_is_continuum
(space : maths_space) : BOOLEAN;
LOCAL typenames : SET OF STRING := TYPEOF (space); factors : LIST OF maths_space; END_LOCAL; IF NOT EXISTS (space) THEN RETURN (FALSE); END_IF; IF subspace_of_es(space,es_reals) OR subspace_of_es(space,es_complex_numbers) THEN RETURN (TRUE); END_IF; IF (schema_prefix + 'UNIFORM_PRODUCT_SPACE') IN typenames THEN RETURN (space_is_continuum(space\uniform_product_space.base)); END_IF; IF (schema_prefix + 'LISTED_PRODUCT_SPACE') IN typenames THEN factors := space\listed_product_space.factors; IF SIZEOF(factors) = 0 THEN RETURN (FALSE); END_IF; REPEAT i := 1 TO SIZEOF (factors); IF NOT space_is_continuum(factors[i]) THEN RETURN (FALSE); END_IF; END_REPEAT; RETURN (TRUE); END_IF; RETURN (FALSE); END_FUNCTION; -- space_is_continuum
|