logo
In [1]:
import proveit
theory = proveit.Theory() # the theorem's theory
from proveit import A, B
from proveit.logic import TRUE, in_bool, Not, Equals
In [2]:
%proving falsified_antecedent_implication
With these allowed/disallowed theorem/theory presumptions (e.g., to avoid circular dependencies), we begin our proof of
falsified_antecedent_implication:
(see dependencies)
falsified_antecedent_implication may now be readily provable (assuming required theorems are usable).  Simply execute "%qed".
In [3]:
contradiction = Not(A).derive_contradiction(assumptions=[A, Not(A)])
contradiction: ,  ⊢  
In [4]:
not_b_contradiction = contradiction.as_implication(Not(Equals(B, TRUE)))
not_b_contradiction: ,  ⊢  
In [5]:
BeqT_via_contradiction = not_b_contradiction.derive_via_contradiction()
BeqT_via_contradiction: ,  ⊢  
In [6]:
B_via_contradiction = B.prove(assumptions=[A, Not(A)])
B_via_contradiction: ,  ⊢  
In [7]:
B_via_contradiction.as_implication(A)
In [8]:
%qed
proveit.logic.booleans.implication.falsified_antecedent_implication has been proven.
Out[8]:
 step typerequirementsstatement
0generalization1  ⊢  
1deduction2  ⊢  
2instantiation3, 4,  ⊢  
  :
3axiom  ⊢  
 proveit.logic.booleans.eq_true_elim
4instantiation5, 6, 7,  ⊢  
  :
5axiom  ⊢  
 proveit.logic.booleans.implication.affirmation_via_contradiction
6instantiation8  ⊢  
  : , :
7deduction9,  ⊢  
8axiom  ⊢  
 proveit.logic.equality.equality_in_bool
9instantiation10, 11, 12,  ⊢  
  :
10theorem  ⊢  
 proveit.logic.booleans.negation.negation_contradiction
11assumption  ⊢  
12assumption  ⊢