def run_test(self, thy_name, pat, t, *, vars=None, svars=None, tyinst=None, inst=None, failed=None): context.set_context(thy_name, vars=vars, svars=svars) pat, t = Term(pat), Term(t) inst = Inst((nm, Term(s)) for nm, s in inst.items()) if inst is not None else Inst() if tyinst is not None: inst.tyinst = TyInst((nm, Type(s)) for nm, s in tyinst.items()) if failed is not None: self.assertRaises(failed, first_order_match, pat, t) return self.assertEqual(first_order_match(pat, t), inst)
def testParseConstructor(self): T = Type("'a => 'b") self.assertEqual(T, TFun(TVar('a'), TVar('b'))) t = Term("(A::bool)") self.assertEqual(t, Var('A', BoolType))