logo
In [1]:
import proveit
from proveit.logic import TRUE, FALSE
from proveit import A
from proveit.logic.booleans.disjunction import unary_or_lemma
from proveit.logic.booleans.disjunction  import or_f_t, or_f_f
theory = proveit.Theory() # the theorem's theory
In [2]:
%proving unary_or_reduction
With these allowed/disallowed theorem/theory presumptions (e.g., to avoid circular dependencies), we begin our proof of
unary_or_reduction:
(see dependencies)
In [3]:
base_case_t_r_u_e = unary_or_lemma.instantiate({A:TRUE})
base_case_t_r_u_e:  ⊢  
In [4]:
base_case_f_a_l_s_e = unary_or_lemma.instantiate({A:FALSE})
base_case_f_a_l_s_e:  ⊢  
In [5]:
base_case_t_r_u_e.sub_left_side_into(or_f_t)
In [6]:
base_case_f_a_l_s_e.sub_left_side_into(or_f_f)
In [7]:
%qed
proveit.logic.booleans.disjunction.unary_or_reduction has been proven.