code: @Override
      public double membership(double x) {
          if (Double.isNaN(x)) {
              return Double.NaN;
          }
          if (implication == null) {
              throw new RuntimeException(String.format("[implication error] "
                      + "implication operator needed to activate %s",
                      getTerm().toString()));
          }
          return implication.compute(term.membership(x), degree);
      }
docs: Computes the implication of the activation degree and the membership
  function value of `x`
  
  @param x is a value
  @return `d \otimes \mu(x)`, where `d` is the activation degree