logo
In [1]:
import proveit
from proveit import defaults
from proveit import x, A, B, C
from proveit.logic import InSet, SubsetEq
from proveit.logic.sets.inclusion  import subset_eq_def
In [2]:
%proving transitivity_subset_eq_subset_eq
With these allowed/disallowed theorem/theory presumptions (e.g., to avoid circular dependencies), we begin our proof of
transitivity_subset_eq_subset_eq:
(see dependencies)
In [3]:
subset_eq_def
In [4]:
subset_eq_def_inst_AB = subset_eq_def.instantiate({A:A, B:B})
subset_eq_def_inst_AB:  ⊢  
In [5]:
subset_eq_def_inst_BC = subset_eq_def.instantiate({A:B, B:C})
subset_eq_def_inst_BC:  ⊢  
In [6]:
subset_eq_def_inst_AB.derive_right_via_equality(assumptions=[subset_eq_def_inst_AB.lhs])
In [7]:
subset_eq_def_inst_AB.derive_right_via_equality(assumptions=[subset_eq_def_inst_AB.lhs]).instantiate(
        {x:x}, assumptions=[InSet(x, A), subset_eq_def_inst_AB.lhs])
In [8]:
subset_eq_def_inst_BC.derive_right_via_equality(assumptions=[subset_eq_def_inst_BC.lhs]).instantiate(
        assumptions=[InSet(x, A), SubsetEq(A, B), subset_eq_def_inst_BC.lhs])
, ,  ⊢  
In [9]:
subset_eq_def_inst_AC = subset_eq_def.instantiate({A:A, B:C})
subset_eq_def_inst_AC:  ⊢  
In [10]:
subset_eq_def_inst_AC.derive_left_via_equality(assumptions=[SubsetEq(A, B), SubsetEq(B, C)])
transitivity_subset_eq_subset_eq may now be readily provable (assuming required theorems are usable).  Simply execute "%qed".
In [11]:
%qed
proveit.logic.sets.inclusion.transitivity_subset_eq_subset_eq has been proven.
Out[11]:
 step typerequirementsstatement
0generalization1  ⊢  
1instantiation2, 3, 4,  ⊢  
  : , :
2theorem  ⊢  
 proveit.logic.equality.lhs_via_equality
3generalization5,  ⊢  
4instantiation14  ⊢  
  : , :
5instantiation6, 7, ,  ⊢  
  :
6instantiation8, 9, 10  ⊢  
  : , :
7instantiation11, 12, 13,  ⊢  
  : , :
8theorem  ⊢  
 proveit.logic.equality.rhs_via_equality
9assumption  ⊢  
10instantiation14  ⊢  
  : , :
11theorem  ⊢  
 proveit.logic.sets.inclusion.unfold_subset_eq
12assumption  ⊢  
13assumption  ⊢  
14axiom  ⊢  
 proveit.logic.sets.inclusion.subset_eq_def