code: @Override
      public int equivalence() {
          int eqct = 0;
  
          final List<String> nodes = pnt.getProtoNodes();
          final Map<Integer, Integer> nodeTerms = pnt.getNodeTermIndex();
          final int termct = nodeTerms.size();
          final Map<EquivalentTerm, Integer> nodeCache = sizedHashMap(termct);
          final Map<Integer, Integer> eqn = pnt.getEquivalences();
  
          // clear out equivalences, since we're rebuilding them
          eqn.clear();
  
          // Iterate each node
          int eq = 0;
          for (int i = 0, n = nodes.size(); i < n; i++) {
              final Integer termidx = nodeTerms.get(i);
              final Term term = tt.getIndexedTerms().get(termidx);
              // Convert to an equivalent term
              EquivalentTerm equiv = eqCvtr.convert(term);
              Integer eqId = nodeCache.get(equiv);
              if (eqId != null) {
                  // We've seen an equivalent term before, use that.
                  eqn.put(i, eqId);
                  eqct++;
                  continue;
              }
  
              nodeCache.put(equiv, eq);
              eqn.put(i, eq);
              eq++;
          }
  
          return eqct;
      }
docs: {@inheritDoc}