logo
In [1]:
import proveit
from proveit import defaults
from proveit import A
from proveit.logic import Not
from proveit.logic.booleans.negation  import not_t
theory = proveit.Theory() # the theorem's theory
In [2]:
%proving negation_contradiction
With these allowed/disallowed theorem/theory presumptions (e.g., to avoid circular dependencies), we begin our proof of
negation_contradiction:
(see dependencies)
In [3]:
defaults.assumptions = negation_contradiction.conditions
defaults.assumptions:
In [4]:
AeqT = A.evaluation(assumptions=[A])
AeqT:  ⊢  
In [5]:
not_true = AeqT.sub_right_side_into(Not(A))
not_true: ,  ⊢  
In [6]:
not_t
In [7]:
not_t.derive_right_via_equality()
negation_contradiction may now be readily provable (assuming required theorems are usable).  Simply execute "%qed".
In [8]:
%qed
proveit.logic.booleans.negation.negation_contradiction has been proven.
Out[8]:
 step typerequirementsstatement
0generalization1  ⊢  
1instantiation2, 3, 4,  ⊢  
  : , :
2theorem  ⊢  
 proveit.logic.equality.rhs_via_equality
3instantiation5, 6, 7,  ⊢  
  : , :
4axiom  ⊢  
 proveit.logic.booleans.negation.not_t
5theorem  ⊢  
 proveit.logic.equality.substitute_in_true
6assumption  ⊢  
7assumption  ⊢