Esempio n. 1
0
            return
        del self.symbols[symbol.name]

    def contains_symbol(self, symbol):
        if symbol.name not in self.symbols:
            return False
        sort = self.symbols[symbol.name].sort
        if isinstance(sort, UnionSort):
            return symbol.sort in sort.sorts
        return True

    def __str__(self):
        return sig_to_str(self)


alpha = lg.TopSort('alpha')

lg.BooleanSort.name = 'bool'

polymorphic_symbols_list = [
    ('<', [alpha, alpha, lg.Boolean]),
    ('<=', [alpha, alpha, lg.Boolean]),
    ('>', [alpha, alpha, lg.Boolean]),
    ('>=', [alpha, alpha, lg.Boolean]),
    ('+', [alpha, alpha, alpha]),
    ('*', [alpha, alpha, alpha]),
    ('-', [alpha, alpha, alpha]),
    ('/', [alpha, alpha, alpha]),
]

polymorphic_symbols = dict(
Esempio n. 2
0
def TopFunctionSort(arity):
    if arity == 0:
        return lg.TopSort('alpha')
    res = FunctionSort(
        *[lg.TopSort('alpha{}'.format(idx)) for idx in range(arity + 1)])
    return res
Esempio n. 3
0
 def __init__(self):
     self.sort = lg.TopSort('alpha')