Пример #1
0
def naive_doublenot(branch: list[Sentence], sentenceID: SentenceID):
    f = branch[sentenceID]
    res = utils.reduce_prefix(
        utils.reduce_prefix(utils.empty_creator(f), 'not'), 'not')
    if res is None:
        raise RaisedUserMistake('cannot perform',
                                "This rule cannot be performed")
    return res
Пример #2
0
    'true imp':
    utils.Rule(
        symbolic="(A -> B) / ~A | B",
        docs=
        "Rozkładanie prawdziwej implikacji. Wymaga wskazania zdania w gałęzi.",
        func=lambda x: utils.select(
            utils.strip_around(x, 'imp', True, PRECEDENCE),
            ((True, ), (False, )), lambda y: utils.add_prefix(y, 'not', '~')),
        context=None,
        reusable=False),
    'double not':
    utils.Rule(
        symbolic="~~A / A",
        docs="Usuwanie podwójnej negacji. Wymaga wskazania zdania w gałęzi.",
        func=lambda x: utils.reduce_prefix(
            utils.reduce_prefix(utils.empty_creator(x), 'not', PRECEDENCE),
            'not', PRECEDENCE),
        context=None,
        reusable=False)
}

# __template__


@utils.cleaned
def prepare_for_proving(statement: utils.Sentence) -> utils.Sentence:
    """Przygotowuje zdanie do dowodzenia - czyszczenie, dodawanie elementów"""
    return statement


def check_closure(
Пример #3
0
def strict_doublenot(sentence: Sentence):
    return utils.reduce_prefix(
        utils.reduce_prefix(utils.empty_creator(sentence), 'not'), 'not')
Пример #4
0
def strict_doublenot(sentence: Sentence):
    return convert_to_signed(
        utils.reduce_prefix(
            utils.reduce_prefix(
                utils.empty_creator(convert_from_signed(sentence)), 'not'),
            'not'))