import proveit
from proveit import defaults
# from proveit.core_expr_types import
from proveit import a, b, x, y
from proveit.numbers import frac
from proveit.numbers.divisibility import divides_def
from proveit.numbers.number_sets.integers import int_membership_is_bool
theory = proveit.Theory() # the theorem's theory
%proving divides_is_bool
defaults.assumptions = divides_is_bool.conditions
divides_def
divides_def_inst = divides_def.instantiate(
{x:x, y:y})
int_membership_is_bool
int_membership_is_bool_inst = int_membership_is_bool.instantiate({x:frac(y, x)})
divides_def_inst.sub_left_side_into(int_membership_is_bool_inst)
%qed