FUNCTION no_cyclic_space_reference
(* SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; *)
FUNCTION no_cyclic_space_reference(spc : maths_space;
refs : SET OF maths_space) : BOOLEAN;
LOCAL
types : SET OF STRING;
refs_plus : SET OF maths_space;
END_LOCAL;
IF (spc IN refs) THEN
RETURN (FALSE);
END_IF;
types := TYPEOF (spc);
refs_plus := refs + spc;
IF (schema_prefix + 'FINITE_SPACE') IN types THEN
RETURN (bool(SIZEOF (QUERY (sp <* QUERY (mem <* spc\finite_space.members |
(schema_prefix + 'MATHS_SPACE') IN TYPEOF (mem)) |
NOT no_cyclic_space_reference (sp, refs_plus))) = 0));
END_IF;
IF (schema_prefix + 'UNIFORM_PRODUCT_SPACE') IN types THEN
RETURN (no_cyclic_space_reference (spc\uniform_product_space.base, refs_plus));
END_IF;
IF (schema_prefix + 'LISTED_PRODUCT_SPACE') IN types THEN
RETURN (bool(SIZEOF (QUERY (fac <* spc\listed_product_space.factors |
NOT no_cyclic_space_reference (fac, refs_plus))) = 0));
END_IF;
IF (schema_prefix + 'EXTENDED_TUPLE_SPACE') IN types THEN
RETURN (no_cyclic_space_reference (spc\extended_tuple_space.base, refs_plus)
AND no_cyclic_space_reference (spc\extended_tuple_space.extender, refs_plus));
END_IF;
-- spc contains no references to other spaces
RETURN (TRUE);
END_FUNCTION; -- no_cyclic_space_reference
Referenced By
Defintion no_cyclic_space_reference is references by the following definitions:
[Top Level Definitions] [Exit]Generated by STEP Tools® EXPRESS to HTML Converter
2012-03-27T17:20:10-04:00