コード例 #1
0
    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
コード例 #2
0
    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)
コード例 #3
0
    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)