Esempio n. 1
0
 def put(self, expression, context=None):
     if isinstance(expression, AllExpression):
         ex_to_add = AllExpression(expression.variable, expression.term)
         try:
             ex_to_add._used_vars = set(used for used in expression._used_vars)
         except AttributeError:
             ex_to_add._used_vars = set()
     else:
         ex_to_add = expression
     self.sets[self._categorize_expression(ex_to_add)].add((ex_to_add, context))
Esempio n. 2
0
    def clone(self):
        new_agenda = Agenda()
        set_list = [s.copy() for s in self.sets]

        new_allExs = set()
        for allEx,_ in set_list[Categories.ALL]:
            new_allEx = AllExpression(allEx.variable, allEx.term)
            try:
                new_allEx._used_vars = set(used for used in allEx._used_vars)
            except AttributeError:
                new_allEx._used_vars = set()
            new_allExs.add((new_allEx,None))
        set_list[Categories.ALL] = new_allExs

        set_list[Categories.N_EQ] = set((NegatedExpression(n_eq.term),ctx)
                                        for (n_eq,ctx) in set_list[Categories.N_EQ])

        new_agenda.sets = tuple(set_list)
        return new_agenda
Esempio n. 3
0
 def _attempt_proof_n_some(self, current, context, agenda, accessible_vars,
                           atoms, debug):
     agenda[Categories.ALL].add(
         (AllExpression(current.term.variable,
                        -current.term.term), context))
     return self._attempt_proof(agenda, accessible_vars, atoms, debug + 1)