def test_extensionality_contraction(self): bb = self.belief_base bb2 = BeliefBase(self.belief_base.beliefs, selection_function=select_largest_set) phi = Implication(self.p, self.q) xi = Or(Not(self.p), self.q) # Phi is not a member of Belief Base if entails({}, Biconditional(phi, xi)): assert False bb.contract(Belief(phi)) bb2.contract(Belief(xi)) assert bb == bb2
def test_conjunctive_overlap_contraction(self): bb = self.belief_base bb2 = BeliefBase(self.belief_base.beliefs, selection_function=select_largest_set) bb3 = BeliefBase(self.belief_base.beliefs, selection_function=select_largest_set) phi = self.p xi = self.q # Phi is not a member of Belief Base bb.contract(Belief(xi)) bb2.contract(Belief(phi)) bb3.contract(Belief(And(xi, phi))) assert bb.beliefs.intersection(bb2.beliefs).issubset(bb3.beliefs)
def test_conjunctive_inclusion_contraction(self): bb = self.belief_base bb2 = BeliefBase(self.belief_base.beliefs, selection_function=select_largest_set) phi = self.p xi = self.q # Phi is not a member of Belief Base bb.contract(Belief(And(phi, xi))) if entails(bb.get_clauses(), phi): assert False bb2.contract(Belief(phi)) assert bb.beliefs.issubset(bb2.beliefs)