FUNCTION identical_to_one_of_set_of_sets

(* SCHEMA FUNCTIONAL_DATA_AND_SCHEMATIC_REPRESENTATION_MIM_LF; *)
 
FUNCTION identical_to_one_of_set_of_sets(set_a : class; set_of_sets : SET OF 
  class) : BOOLEAN;
LOCAL
  i : INTEGER;
  initial_size : INTEGER;
  augmented_size : INTEGER;
  set_of_forward_equivalences : SET OF same_membership := [];
  set_of_backward_equivalences : SET OF same_membership := [];
  augmented_set_of_sets : SET OF class := [];
END_LOCAL;
  IF set_a IN set_of_sets THEN
    RETURN (TRUE);
  END_IF;
  initial_size := SIZEOF(set_of_sets);
  IF initial_size = 0 THEN
    RETURN (FALSE);
  END_IF;
  REPEAT i := 1 TO initial_size;
    set_of_forward_equivalences := set_of_forward_equivalences + USEDIN(
    set_of_sets[i], 
    'FUNCTIONAL_DATA_AND_SCHEMATIC_REPRESENTATION_MIM_LF.SAME_MEMBERSHIP.SET_1'
    );
    set_of_backward_equivalences := set_of_forward_equivalences + USEDIN(
    set_of_sets[i], 
    'FUNCTIONAL_DATA_AND_SCHEMATIC_REPRESENTATION_MIM_LF.SAME_MEMBERSHIP.SET_2'
    );
  END_REPEAT;
  augmented_set_of_sets := set_of_sets;
  IF SIZEOF(set_of_forward_equivalences) > 0 THEN
    REPEAT i := 1 TO HIINDEX(set_of_forward_equivalences);
      augmented_set_of_sets := augmented_set_of_sets + 
      set_of_forward_equivalences[i].set_2;
    END_REPEAT;
  END_IF;
  IF SIZEOF(set_of_backward_equivalences) > 0 THEN
    REPEAT i := 1 TO HIINDEX(set_of_backward_equivalences);
      augmented_set_of_sets := augmented_set_of_sets + 
      set_of_backward_equivalences[i].set_1;
    END_REPEAT;
  END_IF;
  augmented_size := SIZEOF(augmented_set_of_sets);
  IF augmented_size = initial_size THEN
    RETURN (FALSE);
  END_IF;
  RETURN (identical_to_one_of_set_of_sets(set_a, augmented_set_of_sets));
END_FUNCTION;

Referenced By

Defintion identical_to_one_of_set_of_sets is references by the following definitions:
DefinitionType
 identical_sets FUNCTION


[Top Level Definitions] [Exit]

Generated by STEP Tools® EXPRESS to HTML Converter
2012-03-27T17:17:33-04:00