Простые задачки на Карри-Говарда
Доказать, используя Хаскель, что следующие тавтологии верны интуиционистски
UPD. Стоит напомнить, что изоморфизм Карри-Говарда имеет место между интуиционистской версией пропозициональной логики и подмножеством Хаскеля без рекурсии. То есть использовать рекурсию нельзя - ни явно, ни неявно. Ну и определение отрицания требует в Хаскелле некоторых хаков, но при доказательстве этих формул оно не требуется.
(a -> c) /\ (b -> c) -> a \/ b -> c (a \/ b -> c) -> (a -> c) /\ (b -> c)(Понятно, что конъюнкция - это пара, а дизъюнкция - Either.)
UPD. Стоит напомнить, что изоморфизм Карри-Говарда имеет место между интуиционистской версией пропозициональной логики и подмножеством Хаскеля без рекурсии. То есть использовать рекурсию нельзя - ни явно, ни неявно. Ну и определение отрицания требует в Хаскелле некоторых хаков, но при доказательстве этих формул оно не требуется.
no subject
no subject
no subject
no subject
ex2 :: (Either a b -> c) -> (a -> c, b -> c)
ex2 h = (h . Left, h . Right)
no subject
2.
no subject
no subject
(результат в отдельной пасте, http://pastebin.com/H2T1cw7B , чтобы не спойлерить.)
(до канонiчного можно довести, указав, во что экстрактить Prod и Pair.)
no subject
no subject
no subject
no subject
no subject
Даже оговорка о Хиндли-Милнере будет неточна, потому что есть его версия с расширением имени Майкрофта, дающая рекурсию.
Проще уж написать маленький парсер с тайпчекером, и для него задания формулировать :) Чтобы никакая противоречивость уж точно не просочилась.
no subject