def sort_infer(term): res = concretize_sorts(term) for x in chain(lu.used_variables(res),lu.used_constants(res)): if lg.contains_topsort(x.sort) or lg.is_polymorphic(x.sort): raise IvyError(None,"cannot infer sort of {} in {}".format(x,term)) # print "sort_infer: res = {!r}".format(res) return res
def __call__(self, *terms): if len(terms) != self.arity: raise ArityError(self.arity, terms) return substitute(self.formula, dict( (v, concretize_sorts(t, v.sort)) for v, t in zip(self.variables, terms) ))
def sort_infer(term): res = concretize_sorts(term) for x in chain(lu.used_variables(res),lu.used_constants(res)): if lg.contains_topsort(x.sort) or lg.is_polymorphic(x.sort): raise IvyError(None,"cannot infer sort of {}".format(x)) # print "sort_infer: res = {!r}".format(res) return res
def __call__(self, *concepts): if len(concepts) != self.arity: raise ArityError(self.arity, concepts) assert all(type(c) is Concept for c in concepts) if tuple(c.arity for c in concepts) != self.arities: raise ArityError(self.arities, concepts) return concretize_sorts(substitute_apply( self.formula, zip(self.variables, concepts), by_name=True, ))
def sort_infer(term, sort=None, no_error=False): res = concretize_sorts(term, sort) check_concretely_sorted(res, no_error) return res
def sort_infer(term,sort=None,no_error=False): res = concretize_sorts(term,sort) check_concretely_sorted(res,no_error) return res