| FUNCTION acyclic_mapped_item_usage (rep : representation) : BOOLEAN;
 
 LOCALEND_FUNCTION; -- acyclic_mapped_item_usageitems : SET OF representation_item;
 END_LOCAL;
 
 items := QUERY (item <* rep.items |
 'AIC_DRAUGHTING_ANNOTATION.MAPPED_ITEM' IN TYPEOF (item));
 IF  SIZEOF (items) = 0
 THEN
 RETURN  (FALSE);
 ELSE
 REPEAT i := 1 TO HIINDEX (items);
 IF items[i]\mapped_item.mapping_source.mapped_representation :=: rep
 THEN
 RETURN  (TRUE);
 ELSE
 RETURN  (acyclic_mapped_item_usage(items[i]\
 mapped_item.mapping_source.mapped_representation));
 END_IF;
 END_REPEAT;
 RETURN (FALSE);
 END_IF;
 
 |