TYPE= should not be certain about (not (satisfies pred))

Bug #1417876 reported by Douglas Katzman
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
SBCL
New
Undecided
Unassigned

Bug Description

example 1: suppose P returns NIL, so that all objects satisfy (NOT P).
Then (NOT P) is a specifier for *Universal-Type* "in disguise" (as the comments refer to such constructs).
But:
(type= (specifier-type '(not (satisfies P))) (specifier-type 't)) => NIL and T

example 2: suppose P returns T so that no object satisfies (NOT P).
Then (NOT P) is *EMPTY-TYPE* in disguise. But:
(type= (specifier-type '(not (satisfies p))) (specifier-type 'nil)) => NIL and T

example 3: (an appropriate P is left to your imagination)
(type= (specifier-type '(not (satisfies p))) (specifier-type '(double-float 0d0 0d0))) = NIL and T
And this example is not commutative.

example 4: change 'double-float' to REAL. Same issue.
This one is related to https://bugs.launchpad.net/sbcl/+bug/308938, possibly the same.

To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.