Ejemplo n.º 1
0
    def apply(self, state, id, data, prevs):
        cur_item = state.get_proof_item(id)
        assert cur_item.rule == "sorry", "revert intro: id is not a gap"

        assert len(prevs) == 1, "revert intro: prevs must have length one"

        pt = state.get_proof_item(prevs[0])
        assert pt.rule == 'assume', "revert_intro: prev is not assume"
        state.set_line(id,
                       'sorry',
                       th=Thm.implies_intr(pt.th.prop, cur_item.th))
        item = state.get_proof_item(id.incr_id(1))
        state.set_line(id.incr_id(1),
                       item.rule,
                       args=item.args,
                       prevs=[p for p in item.prevs if p != prevs[0]],
                       th=item.th)
        state.remove_line(prevs[0])
Ejemplo n.º 2
0
 def testImpliesIntr3(self):
     th = Thm([], B)
     self.assertEqual(Thm.implies_intr(A, th), Thm([],
                                                   Term.mk_implies(A, B)))
Ejemplo n.º 3
0
 def testImpliesIntr2(self):
     th = Thm([A, B], B)
     self.assertEqual(Thm.implies_intr(A, th), Thm([B], Implies(A,B)))