Exemple #1
0
    def test_not_closing_6(self):
        # !!A->A
        expr = Impl(Not(Not(Atom("A"))), Atom("A"))

        builder = IpcTableauxBuilder(false_exprs=[expr])
        builder.auto_resolve()

        self.assertFalse(builder.is_closed())
Exemple #2
0
    def test_not_closing_1(self):
        # A
        expr = Atom("A")

        builder = IpcTableauxBuilder(false_exprs=[expr])
        builder.auto_resolve()

        self.assertFalse(builder.is_closed())
Exemple #3
0
    def test_not_closing_4(self):
        # A&B | !A&B
        expr = Or(And(Atom("A"), Atom("B")), And(Not(Atom("A")), Atom("B")))

        builder = IpcTableauxBuilder(false_exprs=[expr])
        builder.auto_resolve()

        self.assertFalse(builder.is_closed())
Exemple #4
0
    def test_closing_14(self):
        # (!A|B)->(A->B)
        expr = Impl(Or(Not(Atom("A")), Atom("B")), Impl(Atom("A"), Atom("B")))

        builder = IpcTableauxBuilder(false_exprs=[expr])
        builder.auto_resolve()

        self.assertTrue(builder.is_closed())
Exemple #5
0
    def test_closing_11(self):
        # (A->!B) -> !(A&B)
        expr = Impl(Impl(Atom("A"), Not(Atom("B"))),
                    Not(And(Atom("A"), Atom("B"))))

        builder = IpcTableauxBuilder(false_exprs=[expr])
        builder.auto_resolve()

        self.assertTrue(builder.is_closed())
Exemple #6
0
    def test_closing_8(self):
        # !(A|B) -> !A&!B
        expr = Impl(Not(Or(Atom("A"), Atom("B"))),
                    And(Not(Atom("A")), Not(Atom("B"))))

        builder = IpcTableauxBuilder(false_exprs=[expr])
        builder.auto_resolve()

        self.assertTrue(builder.is_closed())
Exemple #7
0
    def test_closing_3(self):
        # T A&B     F A
        expr_1 = And(Atom("A"), Atom("B"))
        expr_2 = Atom("A")

        builder = IpcTableauxBuilder(true_exprs=[expr_1], false_exprs=[expr_2])
        builder.auto_resolve()

        self.assertTrue(builder.is_closed())
Exemple #8
0
    def test_not_closing_10(self):
        # !(A->!B)->A&B
        expr = Impl(
            Not(Impl(Atom("A"), Not(Atom("B")))),
            And(Atom("A"), Atom("B")),
        )

        builder = IpcTableauxBuilder(false_exprs=[expr])
        builder.auto_resolve()

        self.assertFalse(builder.is_closed())
Exemple #9
0
    def test_not_closing_13(self):
        # (A->B)->(!A|B)
        expr = Impl(
            Impl(Atom("A"), Atom("B")),
            Or(Not(Atom("A")), Atom("B")),
        )

        builder = IpcTableauxBuilder(false_exprs=[expr])
        builder.auto_resolve()

        self.assertFalse(builder.is_closed())
Exemple #10
0
    def test_closing_18(self):
        # (A&B)<->((A->B)<->A)
        expr = Eq(And(Atom("A"), Atom("B")),
                  Eq(
                      Impl(Atom("A"), Atom("B")),
                      Atom("A"),
                  ))

        builder = IpcTableauxBuilder(false_exprs=[expr])
        builder.auto_resolve()

        self.assertTrue(builder.is_closed())