logo
In [1]:
import proveit
from proveit.logic.booleans import true_is_bool, false_is_bool, in_bool_if_true
from proveit.logic.booleans.conjunction import and_if_both 
from proveit.logic.booleans.negation  import not_f, not_t
from proveit.logic.equality import substitute_truth
from proveit import defaults
in_bool_if_true.proof().disable(); substitute_truth.proof().disable() # force a more short, symmetric proof
theory = proveit.Theory() # the theorem's theory
In [2]:
%proving closure
With these allowed/disallowed theorem/theory presumptions (e.g., to avoid circular dependencies), we begin our proof of
closure:
(see dependencies)
In [3]:
true_is_bool
In [4]:
not_f
In [5]:
not_f.sub_left_side_into(true_is_bool)
In [6]:
false_is_bool
In [7]:
not_t
In [8]:
not_t.sub_left_side_into(false_is_bool)
In [9]:
%qed
proveit.logic.booleans.negation.closure has been proven.