SMT solvers for fun and profit
Дивлюсь початок курсу із логіки на Курсері, і там давали квіз на перевірку формул, зокрема такої:
((¬r ⇒ ¬p ∧ ¬q) ∨ s) ⇔ (p ∨ q ⇒ r ∨ s)
Виписувати таблицю істиності на 16 комбінацій мені стало страшно.
Я схитрив і побачив, що для s=1
ця формула тавтологічна, а от для s=0
довелось попереписувати:
(¬r ⇒ ¬p ∧ ¬q) ⇔ (p ∨ q ⇒ r)
помітити, що ¬p ∧ ¬q ⇔ ¬(p ∨ q)
за де Морганом, отже
(¬r ⇒ ¬(p ∨ q)) ⇔ (p ∨ q ⇒ r)
довелось ще помітити, що, оскільки (¬x ⇒ ¬y) ⇔ (y ⇒ x)
, то формула при s=0 також вироджується в тавтологію.
А потім згадав, що є такі чудові штуки, як SMT-солвери, і, розчехливши цю гармату, таки вистрілив по горобцях:
Спробувати це онлайн можна тут: http://rise4fun.com/z3.