logo
In [1]:
import proveit
from proveit import A, B
from proveit.logic import Not, SetNotEquiv
from proveit.logic.sets import SetEquiv
from proveit.logic.sets.equivalence  import set_equiv_def, set_not_equiv_def
from proveit.logic.sets.equivalence import set_equiv_reversal
theory = proveit.Theory() # the theorem's theory
In [2]:
%proving set_not_equiv_reversal
With these allowed/disallowed theorem/theory presumptions (e.g., to avoid circular dependencies), we begin our proof of
set_not_equiv_reversal:
(see dependencies)
In [3]:
set_not_equiv_def
In [4]:
set_not_equiv_def_inst_AB = set_not_equiv_def.instantiate()
set_not_equiv_def_inst_AB:  ⊢  
In [5]:
set_not_equiv_def_inst_BA = set_not_equiv_def.instantiate({A:B, B:A})
set_not_equiv_def_inst_BA:  ⊢  
In [6]:
set_equiv_reversal
In [7]:
set_equiv_reversal_inst_BA = set_equiv_reversal.instantiate({A:B, B:A}, assumptions=[SetEquiv(B, A)])
set_equiv_reversal_inst_BA:  ⊢  
In [8]:
set_equiv_reversal_inst_BA_as_implication = set_equiv_reversal_inst_BA.as_implication(hypothesis=SetEquiv(B, A))
set_equiv_reversal_inst_BA_as_implication:  ⊢  
In [9]:
not_AEquivB_gives_not_BEquivA = set_equiv_reversal_inst_BA_as_implication.deny_antecedent(assumptions=[Not(SetEquiv(A, B))])
not_AEquivB_gives_not_BEquivA:  ⊢  
In [10]:
not_AEquivB_gives_not_BEquivA_as_implication = not_AEquivB_gives_not_BEquivA.as_implication(hypothesis=Not(SetEquiv(A, B)))
not_AEquivB_gives_not_BEquivA_as_implication:  ⊢  
In [11]:
c_1 = set_not_equiv_def_inst_AB.sub_left_side_into(not_AEquivB_gives_not_BEquivA_as_implication)
c_1:  ⊢  
In [12]:
c_2 = set_not_equiv_def_inst_BA.sub_left_side_into(c_1)
c_2:  ⊢  
set_not_equiv_reversal may now be readily provable (assuming required theorems are usable).  Simply execute "%qed".
In [13]:
%qed
proveit.logic.sets.equivalence.set_not_equiv_reversal has been proven.
Out[13]:
 step typerequirementsstatement
0generalization1  ⊢  
1modus ponens2, 3  ⊢  
2instantiation6, 4, 5  ⊢  
  : , : , :
3assumption  ⊢  
4instantiation6, 7, 8  ⊢  
  : , : , :
5instantiation10  ⊢  
  : , :
6theorem  ⊢  
 proveit.logic.equality.sub_left_side_into
7deduction9  ⊢  
8instantiation10  ⊢  
  : , :
9instantiation11, 12, 13, 14  ⊢  
  : , :
10axiom  ⊢  
 proveit.logic.sets.equivalence.set_not_equiv_def
11conjecture  ⊢  
 proveit.logic.booleans.implication.modus_tollens_denial
12instantiation15  ⊢  
  : , :
13deduction16  ⊢  
14assumption  ⊢  
15conjecture  ⊢  
 proveit.logic.sets.equivalence.set_equiv_is_bool
16instantiation17, 18  ⊢  
  : , :
17theorem  ⊢  
 proveit.logic.sets.equivalence.set_equiv_reversal
18assumption  ⊢