def getSortVarNotInTerm(sv, term): """ get a sv that is not in term """ i = 0 while ASTUtils.exists(term, lambda x: x == sv): i = i + 1 newsv = PPSortVar(sv.name + '_' + str(i)) sv = newsv return sv
def mkDimVarNotInTerm(dv, term): """ get a dv that is not in term """ i = 0 while ASTUtils.exists(term, lambda x: x == dv): i = i + 1 newdv = PPDimVar(dv.name + '_' + str(i)) dv = newdv return dv
def occursIn(sv: PPSortVar, sort: PPSort) -> bool: """ Check if a variable occurs in a term """ return ASTUtils.exists(sort, lambda x: x == sv)