import proveit
from proveit import defaults
from proveit import x, y
from proveit.numbers import zero
from proveit.numbers.divisibility import divides_def
from proveit.numbers.division import frac_zero_numer
from proveit.numbers.number_sets.integers import zero_is_int
theory = proveit.Theory() # the theorem's theory
%proving non_zero_divides_zero
defaults.assumptions = non_zero_divides_zero.conditions
divides_def
divides_def_inst = divides_def.instantiate({x:x, y:zero})
frac_zero_numer
frac_zero_numer_inst = frac_zero_numer.instantiate({x:x})
zero_is_int
zero_over_x_in_z = frac_zero_numer_inst.sub_left_side_into(zero_is_int)
divides_def_inst.sub_left_side_into(zero_over_x_in_z)
%qed