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
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
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(
def prepare_for_proving(statement: Sentence) -> Sentence: """Przygotowuje zdanie do dowodzenia - czyszczenie, dodawanie elementów""" return utils.add_prefix(statement, 'not', "~")