code: public static function NOT($logical = false)
      {
          $logical = Functions::flattenSingleValue($logical);
          if (is_string($logical)) {
              $logical = strtoupper($logical);
              if (($logical == 'TRUE') || ($logical == Calculation::getTRUE())) {
                  return false;
              } elseif (($logical == 'FALSE') || ($logical == Calculation::getFALSE())) {
                  return true;
              }
  
              return Functions::VALUE();
          }
  
          return !$logical;
      }
docs: NOT.
  
  Returns the boolean inverse of the argument.
  
  Excel Function:
  =NOT(logical)
  
  The argument must evaluate to a logical value such as TRUE or FALSE
  
  Boolean arguments are treated as True or False as appropriate
  Integer or floating point arguments are treated as True, except for 0 or 0.0 which are False
  If any argument value is a string, or a Null, the function returns a #VALUE! error, unless the string holds
  the value TRUE or FALSE, in which case it is evaluated as the corresponding boolean value
  
  @category Logical Functions
  
  @param mixed $logical A value or expression that can be evaluated to TRUE or FALSE
  
  @return bool|string the boolean inverse of the argument