import proveit
# Prepare this notebook for defining the theorems of a theory:
%theorems_notebook # Keep this at the top following 'import proveit'.
from proveit.logic import Not, FALSE, Forall, Implies, Equals, TRUE, Or, NotEquals, Boolean, in_bool
from proveit import A, B
%begin theorems
not_false = Not(FALSE)
negation_intro = Forall(A, Not(A), conditions=[Equals(A, FALSE)])
negation_contradiction = Forall(A, FALSE, conditions=[A, Not(A)])
untrue_from_negation = Forall(A, NotEquals(A, TRUE), conditions=[Not(A)])
falsified_negation_intro = Forall(A, Equals(Not(A), FALSE), conditions=[A])
double_negation_intro = Forall(A, Not(Not(A)), conditions=[A])
double_negation_elim_lemma = Forall(A, A, conditions=[Not(Not(A))],
domain=Boolean)
double_negation_elim = Forall(A, A, conditions=[Not(Not(A))])
closure = Forall(A, in_bool(Not(A)), domain=Boolean)
double_neg_closure = Forall(A, in_bool(Not(Not(A))), domain=Boolean)
double_negation_equiv = Forall(A, Equals(Not(Not(A)), A), domain=Boolean)
%end theorems