@prefix dc: <http://purl.org/dc/elements/1.1/> .

<> dc:description """noodling on inconsistency in N3""".

@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>.
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix owl: <http://www.w3.org/2002/07/owl#>.

#####
# disjoint
{ [ is rdf:type of ?X] owl:disjointWith [ is rdf:type of ?Y ]}
 => { ?X owl:differentFrom ?Y }.

{ ?S1 a ?C. ?S2 a [ owl:complementOf ?C ] } => { ?S1 owl:differentFrom ?S2 }.

owl:Thing owl:complementOf owl:Nothing.
_:x a owl:Thing. # it's not empty

#hmm... spec seems to say
# that the range of intersectionOf is only non-empty lists.
# So the base case is...
{ ?X a ?D. ?D owl:intersectionOf (?C) } => { ?X a ?C }.
{ ?X a ?C. ?D owl:intersectionOf (?C) } => { ?X a ?D }.

{ ?X a [ owl:intersectionOf [ rdf:first ?C; rdf:rest ?L ]].
  ?CL owl:intersectionOf ?L.
  ?L rdf:first [].
 }
 => { ?X a ?C, ?CL }.



