sat = null;
// try to find the satisfiability of an intersection by inspecting the elements inside the conjunction
ATermList list = (ATermList) c.getArgument(0);
CachedNode cached1 = null;
CachedNode cached2 = null;
for (; !list.isEmpty(); list = list.getNext()) {
ATermAppl d = (ATermAppl) list.getFirst();
CachedNode node = abox.getCached(d);
if (node == null || !node.isComplete()) {
// we don't have complete sat info about an element so give up
sat = Bool.UNKNOWN;
break;
}
else if (node.isBottom()) {
// an element is unsat so the intersection is unsat
sat = Bool.FALSE;
break;
}
else if (node.isTop()) {
// do nothing, intersection with TOP is redundant
}
else {
if (cached1 == null)
cached1 = node;