code: public static <T> Specification<T> not(Specification<T> proposition) {
          return new NotSpecification<T>(proposition);
      }
docs: Returns a specification expecting that the given specification is not satisfied.
  
  @param <T> the specification type
  @param proposition the specification
  @return a NotSpecification