第1关:自反关系的判断
return len(self.sets) == len([r for r in self.rel if r[0]==r[1]])
第2关:反自反关系的判断
return False if[0for a in self.sets if(a,a)in self.rel]else True
第3关:对称关系的判断
return False if[0for(a,b)in self.rel if(b,a)not in self.rel]else True
第4关:反对称关系的判断
return False if[0for(a,b)in self.rel if(b,a)in self.rel and a!=b]else True
第5关:传递关系的判断
return False if[0for(a,b)in self.rel for(c,d)in self.rel if c==b and(a,d)not in self.rel]else True
第一关备用:
return False if[0for a in self.sets if not((a, a) in self.rel)] else True
return set([(a, a) for a in self.sets]) == set([r for r in self.rel if r[0]==r[1]])