logo
In [1]:
import proveit
from proveit import defaults
from proveit import x, y, A, B, C, Px
from proveit.logic import And, Equals, Forall, Implies, SubsetEq
from proveit.logic.equality import sub_right_side_into
from proveit.logic.sets.inclusion  import subset_eq_def
from proveit.logic.sets.inclusion import subset_eq_reflexive
%proving subset_eq_via_equality
With these allowed/disallowed theorem/theory presumptions (e.g., to avoid circular dependencies), we begin our proof of
subset_eq_via_equality:
(see dependencies)
subset_eq_via_equality may now be readily provable (assuming required theorems are usable).  Simply execute "%qed".
In [2]:
subset_eq_reflexive
In [3]:
subset_eq_reflexive_spec = subset_eq_reflexive.instantiate()
subset_eq_reflexive_spec:  ⊢  
In [4]:
sub_right_side_into
In [5]:
sub_right_side_into.instantiate({Px:SubsetEq(A, x), x:A, y:B}, assumptions=[Equals(A, B)])
In [6]:
%qed
proveit.logic.sets.inclusion.subset_eq_via_equality has been proven.
Out[6]:
 step typerequirementsstatement
0generalization1  ⊢  
1instantiation2, 3, 4  ⊢  
  : , : , :
2theorem  ⊢  
 proveit.logic.equality.sub_right_side_into
3instantiation5  ⊢  
  :
4assumption  ⊢  
5theorem  ⊢  
 proveit.logic.sets.inclusion.subset_eq_reflexive