The logic for doing so would look like this:
3.0.X
if any $required is unspecified
&& $additionalProperties is false:
warn against impossible schema
3.1.X
if any $required is unspecified
&& $additionalProperties is false
&& $patternProperties does not have a match
|| $patternProperties[match] is impossible
patternProperties
additionalProperties
The logic for doing so would look like this:
3.0.X
3.1.X
patternProperties
additionalProperties