Beispiel #1
0
def exposed_modifier(asker, rep):
    head = asker.ask(fields.get_field(representations.head(), rep)).answer
    if head is None:
        return asker.reply(answer=T.no())
    else:
        result = strings.to_str(asker, head) not in hidden_modifier_heads
        return asker.reply(answer=T.from_bool(result))
Beispiel #2
0
 def deny(self):
     return self.reply(answer=T.from_bool(False))
Beispiel #3
0
 def affirm(self):
     return self.reply(answer=T.from_bool(True))
Beispiel #4
0
def both(asker, a, b):
    for x in [a, b]:
        if not to_bool(asker, x):
            return asker.reply(answer=T.from_bool(False))
    return asker.reply(answer=T.from_bool(True))
Beispiel #5
0
def either(asker, a, b):
    for x in [a, b]:
        if to_bool(asker, x):
            return asker.reply(answer=T.from_bool(True))
    return asker.reply(answer=T.from_bool(False))
Beispiel #6
0
def irreducible(asker, rep):
    head = asker.ask(fields.get_field(representations.head(), rep)).firm_answer
    result = strings.to_str(asker, head) not in reducible_heads
    return asker.reply(answer=T.from_bool(result))
    #FIXME this is much cleaner, but too slow; at any rate could remove duplicate code
    return asker.ask_tail(properties.check(opposite(reducible()), rep))
Beispiel #7
0
def check_trivial_default(asker, property):
    if properties.check_firmly(asker, irreducible(), property):
        return asker.reply(answer=T.from_bool(False))
Beispiel #8
0
def reducible(asker, rep):
    head = asker.ask(fields.get_field(representations.head(), rep)).firm_answer
    result = strings.to_str(asker, head) in reducible_heads
    return asker.reply(answer=T.from_bool(result))
def trivial_is_trivial(asker):
    return asker.reply(answer=T.from_bool(True))
def trivial(asker, object):
    return asker.reply(answer=T.from_bool(True))
 def give_up(asker, m):
     return T.from_bool(False)
 def direct_inference(asker):
     return T.from_bool(True)