示例#1
0
def convert_from_signed(s: Sentence):
    if s[0].startswith('signtrue'):
        return s[1:]
    elif s[0].startswith('signfalse'):
        return utils.add_prefix(s[1:], 'not')
    else:
        return s
示例#2
0
def prepare_for_proving(statement: utils.Sentence) -> utils.Sentence:
    """Przygotowuje zdanie do dowodzenia - czyszczenie, dodawanie elementów"""
    statement = utils.reduce_brackets(statement)
    if 'turnstile_=>' not in statement:
        return utils.add_prefix(statement, 'turnstile', '=>')
    else:
        return statement
示例#3
0
RULES = {
    'true and':
    utils.Rule(
        symbolic="A and B / A; B",
        docs=
        "Rozkładanie prawdziwej koniunkcji. Wymaga wskazania zdania w gałęzi.",
        func=lambda x: utils.strip_around(x, 'and', False, PRECEDENCE),
        context=None,
        reusable=False),
    'false and':
    utils.Rule(
        symbolic="~(A and B) / ~A | ~B",
        docs=
        "Rozkładanie fałszywej koniunkcji. Wymaga wskazania zdania w gałęzi.",
        func=lambda x: utils.add_prefix(
            utils.strip_around(red_neg(x), 'and', True, PRECEDENCE), 'not', '~'
        ),
        context=None,
        reusable=False),
    'false or':
    utils.Rule(
        symbolic="~(A or B) / ~A; ~B",
        docs=
        "Rozkładanie fałszywej alternatywy. Wymaga wskazania zdania w gałęzi.",
        func=lambda x: utils.add_prefix(
            utils.strip_around(red_neg(x), 'or', False, PRECEDENCE), 'not', '~'
        ),
        context=None,
        reusable=False),
    'true or':
    utils.Rule(
示例#4
0
def prepare_for_proving(statement: Sentence) -> Sentence:
    """Przygotowuje zdanie do dowodzenia - czyszczenie, dodawanie elementów"""
    return utils.add_prefix(statement, 'not', "~")