Пример #1
0
 def solve(self, f):
     n = self.n
     Fbot = self.Fbot
     
     if is_bottom(self.F, f):
         return self.R.U(self.R.get_bottom())
     elif is_top(self.F, f):
         return self.R.U(self.R.get_top())
     else:
         minimals = set()
         for i in range(n):
             tops = [Fbot] * n
             tops[i] = f
             minimals.add(tuple(tops))
         return self.R.Us(minimals)
Пример #2
0
 def solve_r(self, r):
     Rtop = self.Rtop
     n = self.n
     
     if is_top(self.R, r):
         return self.F.L(self.F.get_top())
     elif is_bottom(self.R, r):
         return self.F.L(self.F.get_bottom())
     else:
         maximals = set()
         for i in range(n):
             tops = [Rtop] * n
             tops[i] = r
             maximals.add(tuple(tops))
         return self.F.Ls(maximals)