Exemple #1
0
    def int_update(self,domain,pvars):
#        update = self.args[1].int_update(domain,pvars)
#        return condition_update_on_fmla(update,self.args[0],domain.relations)
        if_part = Sequence(AssumeAction(self.args[0]),self.args[1]).int_update(domain,pvars)
        else_action = self.args[2] if len(self.args) >= 3 else Sequence()
        else_part = Sequence(AssumeAction(dual_formula(self.args[0])),else_action).int_update(domain,pvars)
        return join_action(if_part,else_part,domain.relations)
Exemple #2
0
 def int_update(self, domain, pvars):
     #        update = self.args[1].int_update(domain,pvars)
     #        return condition_update_on_fmla(update,self.args[0],domain.relations)
     check_can_assert(self.args[0], self)
     if_part, else_part = (a.int_update(domain, pvars)
                           for a in self.subactions())
     return join_action(if_part, else_part)
Exemple #3
0
 def int_update(self, domain, pvars):
     #        update = self.args[1].int_update(domain,pvars)
     #        return condition_update_on_fmla(update,self.args[0],domain.relations)
     if_part = Sequence(AssumeAction(self.args[0]),
                        self.args[1]).int_update(domain, pvars)
     else_action = self.args[2] if len(self.args) >= 3 else Sequence()
     else_part = Sequence(AssumeAction(dual_formula(self.args[0])),
                          else_action).int_update(domain, pvars)
     return join_action(if_part, else_part, domain.relations)
Exemple #4
0
 def int_update(self,domain,pvars):
     if determinize and len(self.args) == 2:
         cond = bool_const('___branch:' + str(self.unique_id))
         ite = IfAction(cond,self.args[0],self.args[1])
         return ite.update(domain,pvars)
     result = [], false_clauses(), false_clauses()
     for a in self.args:
         foo = a.update(domain, pvars)
         result = join_action(result, foo, domain.relations)
     return result
Exemple #5
0
 def int_update(self,domain,pvars):
     if determinize and len(self.args) == 2:
         cond = bool_const('___branch:' + str(self.unique_id))
         ite = IfAction(cond,self.args[0],self.args[1])
         return ite.update(domain,pvars)
     result = [], false_clauses(), false_clauses()
     for a in self.args:
         foo = a.update(domain, pvars)
         result = join_action(result, foo, domain.relations)
     return result
Exemple #6
0
 def int_update(self, domain, pvars):
     #        update = self.args[1].int_update(domain,pvars)
     #        return condition_update_on_fmla(update,self.args[0],domain.relations)
     if not isinstance(self.args[0], ivy_ast.Some):
         if not is_boolean(self.args[0]):
             raise IvyError(self, 'condition must be boolean')
         branches = [
             self.args[1],
             self.args[2] if len(self.args) >= 3 else Sequence()
         ]
         upds = [a.int_update(domain, pvars) for a in branches]
         return ite_action(self.args[0], upds[0], upds[1], domain.relations)
     if_part, else_part = (a.int_update(domain, pvars)
                           for a in self.subactions())
     return join_action(if_part, else_part, domain.relations)
Exemple #7
0
 def int_update(self, domain, pvars):
     result = [], false_clauses(), false_clauses()
     for a in self.args:
         result = join_action(result, a.int_update(domain, pvars),
                              domain.relations)
     return result
Exemple #8
0
 def int_update(self, domain, pvars):
     #        update = self.args[1].int_update(domain,pvars)
     #        return condition_update_on_fmla(update,self.args[0],domain.relations)
     if_part, else_part = (a.int_update(domain, pvars) for a in self.subactions())
     return join_action(if_part, else_part, domain.relations)
Exemple #9
0
 def int_update(self, domain, pvars):
     result = [], false_clauses(), false_clauses()
     for a in self.args:
         result = join_action(result, a.int_update(domain, pvars), domain.relations)
     return result