protected function normalize_proposition( $operator = null, $check_value = null ) {
		// Here we will make some assumptions about the operator. If only $operator are
		// passed to the method, we will assume that the operator is an equals sign
		// and keep going. Otherwise, we'll require the operator to be passed in.
		if ( is_null( $check_value ) && 0 !== strpos( $operator, 'is_' ) ) {
			list( $check_value, $operator ) = [ $operator, '=' ];
		}

		// Some operator like "=", "<=", etc. need to normalize to valid name.
		$operator = $this->normalize_operator( $operator );

		if ( ! in_array( $operator, static::$operators ) ) {
			throw new \InvalidArgumentException( "The [{$operator}] operator is not supported." );
		}

		// Wrap the value as array in case "in" or "not_in".
		if ( is_string( $check_value ) && in_array( $operator, [ 'in', 'not_in' ] ) ) {
			$check_value = false !== strpos( $check_value, ',' )
				? str_getcsv( $check_value )
				: [ $check_value ];
		}

		return [ $operator, $check_value ];
	}