import proveit
from proveit import defaults
from proveit import A
from proveit.logic.booleans import unfold_is_bool_explicit
from proveit.logic.booleans.negation import closure
neg_closure = closure
from proveit.logic.booleans.disjunction import constructive_dilemma
theory = proveit.Theory() # the theorem's theory
%proving unfold_is_bool
defaults.assumptions = unfold_is_bool.conditions
unfold_is_bool_explicit
explicit_form = unfold_is_bool_explicit.instantiate({A:A})
explicit_form.derive_via_multi_dilemma(unfold_is_bool.instance_expr)
%qed