import proveit
from proveit import defaults
from proveit import x, y, z
from proveit.logic import Equals
from proveit.numbers import Less
from proveit.numbers.ordering import less_eq_def
theory = proveit.Theory() # the theorem's theory
%proving transitivity_less_less_eq
defaults.assumptions = transitivity_less_less_eq.all_conditions()
spec_l_e_d = less_eq_def.instantiate({x:y, y:z})
spec_l_e_d.derive_right_via_equality()
yeq_z = Less(x,z).prove(assumptions = (Equals(y,z), Less(x,y)))
yless_z = Less(x,z).prove(assumptions = (Less(y,z), Less(x,y)))
spec_l_e_d.rhs.derive_via_dilemma(Less(x,z))
%qed