(p => q) => (Not(q) => Not(p))
(self, kernel)
| 505 | assert prove(claim) |
| 506 | |
| 507 | def test_contrapositive_proof(self, kernel): |
| 508 | """(p => q) => (Not(q) => Not(p))""" |
| 509 | p, q = Bools("p q") |
| 510 | claim = ForAll([p, q], Implies(Implies(p, q), Implies(Not(q), Not(p)))) |
| 511 | assert prove(claim) |
| 512 | |
| 513 | def test_excluded_middle(self, kernel): |
| 514 | """p ∨ ¬p is always true.""" |