private Set findIcon(final Set graphVisualization) {
    final Set container = set.container();

    for (final Set symbol_to_si :
        graphVisualization.filter(Visualization.symbol_to_semantic_identity)) {
      if (symbol_to_si.to().isEqualTo(set)
          && symbol_to_si.fromEdgeEnd().isEqualTo(CellPlatformDomain.theDefault)) {
        return symbol_to_si.from();
      }
    }
    // create the icon artefact, as it does not exist yet
    final Set icon = graphVisualization.addConcrete(Visualization.symbol, CellPlatformDomain.icon);
    Instantiation.arrow(
        Visualization.symbol_to_semantic_identity,
        S23MSemanticDomains.anonymous,
        CellPlatformDomain.theDefault,
        icon,
        S23MSemanticDomains.minCardinality_NOTAPPLICABLE,
        S23MSemanticDomains.maxCardinality_NOTAPPLICABLE,
        S23MSemanticDomains.isNavigable_NOTAPPLICABLE,
        S23MSemanticDomains.isContainer_FALSE,
        set,
        set,
        S23MSemanticDomains.minCardinality_NOTAPPLICABLE,
        S23MSemanticDomains.maxCardinality_NOTAPPLICABLE,
        S23MSemanticDomains.isNavigable_NOTAPPLICABLE,
        S23MSemanticDomains.isContainer_FALSE);
    return createGraphVisualization(container);
  }
  // Copied from TestSequence
  private Set createGraphVisualization(final Set graph) {
    final Set gv =
        RepositoryStructure.graphVisualizations.addConcrete(
            Visualization.graphVisualization, graph);
    final Set v = gv.addConcrete(Visualization.visualizedGraph, graph);

    final Set vg_to_graph =
        Instantiation.arrow(
            Visualization.visualizedGraph_to_graph,
            S23MSemanticDomains.anonymous,
            Visualization.visualizedGraph,
            v,
            S23MSemanticDomains.minCardinality_NOTAPPLICABLE,
            S23MSemanticDomains.maxCardinality_NOTAPPLICABLE,
            S23MSemanticDomains.isNavigable_NOTAPPLICABLE,
            S23MSemanticDomains.isContainer_FALSE,
            graph,
            graph,
            S23MSemanticDomains.minCardinality_NOTAPPLICABLE,
            S23MSemanticDomains.maxCardinality_NOTAPPLICABLE,
            S23MSemanticDomains.isNavigable_NOTAPPLICABLE,
            S23MSemanticDomains.isContainer_FALSE);

    final Set details = gv.addConcrete(Visualization.details, Visualization.details);
    final Set structure = gv.addConcrete(Visualization.structure, Visualization.structure);
    final Set reuse = gv.addConcrete(Visualization.reuse, Visualization.reuse);
    final Set visibilities = gv.addConcrete(Visualization.visibilities, Visualization.visibilities);
    return gv;
  }