code: private ProtoNetwork stage5(ProtoNetwork pn) {
          beginStage(PHASE3_STAGE5_HDR, "5", NUM_PHASES);
          final StringBuilder bldr = new StringBuilder();
  
          if (!withGeneScaffoldingInjection() &&
                  !withNamedComplexInjection() &&
                  !withProteinFamilyInjection()) {
              bldr.append(INJECTIONS_DISABLED);
              markEndStage(bldr);
              stageOutput(bldr.toString());
              return pn;
          }
  
          // load equivalences
          Set<EquivalenceDataIndex> equivs;
          try {
              equivs = p2.stage2LoadNamespaceEquivalences();
          } catch (EquivalenceMapResolutionFailure e) {
              stageError(e.getUserFacingMessage());
              equivs = emptySet();
          }
  
          long t1 = currentTimeMillis();
          int pct = stage5Parameter(pn, equivs, bldr);
          stage5Term(pn, pct);
          stage5Statement(pn, pct);
  
          long t2 = currentTimeMillis();
  
          final int paramct = pn.getParameterTable().getTableParameters().size();
          final int termct = pn.getTermTable().getTermValues().size();
          final int stmtct = pn.getStatementTable().getStatements().size();
  
          bldr.setLength(0);
          bldr.append(stmtct);
          bldr.append(" statements, ");
          bldr.append(termct);
          bldr.append(" terms, ");
          bldr.append(paramct);
          bldr.append(" parameters");
          stageOutput(bldr.toString());
  
          bldr.setLength(0);
          markTime(bldr, t1, t2);
          markEndStage(bldr);
          stageOutput(bldr.toString());
          return pn;
      }
docs: Runs stage five equivalencing of the proto-network.
  
  @param pn Proto-network, post-scaffolding
  @return Equivalenced proto-network