Простые задачки на Карри-Говарда
Oct. 5th, 2014 09:23 am![[personal profile]](https://www.dreamwidth.org/img/silk/identity/user.png)
Доказать, используя Хаскель, что следующие тавтологии верны интуиционистски
UPD. Стоит напомнить, что изоморфизм Карри-Говарда имеет место между интуиционистской версией пропозициональной логики и подмножеством Хаскеля без рекурсии. То есть использовать рекурсию нельзя - ни явно, ни неявно. Ну и определение отрицания требует в Хаскелле некоторых хаков, но при доказательстве этих формул оно не требуется.
(a -> c) /\ (b -> c) -> a \/ b -> c (a \/ b -> c) -> (a -> c) /\ (b -> c)(Понятно, что конъюнкция - это пара, а дизъюнкция - Either.)
UPD. Стоит напомнить, что изоморфизм Карри-Говарда имеет место между интуиционистской версией пропозициональной логики и подмножеством Хаскеля без рекурсии. То есть использовать рекурсию нельзя - ни явно, ни неявно. Ну и определение отрицания требует в Хаскелле некоторых хаков, но при доказательстве этих формул оно не требуется.
no subject
Date: 2014-10-05 05:34 am (UTC)no subject
Date: 2014-10-05 05:52 am (UTC)no subject
Date: 2014-10-06 05:28 am (UTC)no subject
Date: 2014-10-06 05:34 am (UTC)no subject
Date: 2014-10-06 01:52 pm (UTC)Даже оговорка о Хиндли-Милнере будет неточна, потому что есть его версия с расширением имени Майкрофта, дающая рекурсию.
Проще уж написать маленький парсер с тайпчекером, и для него задания формулировать :) Чтобы никакая противоречивость уж точно не просочилась.
no subject
Date: 2014-10-06 02:43 pm (UTC)no subject
Date: 2014-10-05 08:04 am (UTC)no subject
Date: 2014-10-05 08:56 am (UTC)ex2 :: (Either a b -> c) -> (a -> c, b -> c)
ex2 h = (h . Left, h . Right)
no subject
Date: 2014-10-05 09:25 am (UTC)2.
no subject
Date: 2014-10-05 03:50 pm (UTC)no subject
Date: 2014-10-05 09:52 am (UTC)no subject
Date: 2014-10-05 03:50 pm (UTC)no subject
Date: 2014-10-05 12:17 pm (UTC)(результат в отдельной пасте, http://pastebin.com/H2T1cw7B , чтобы не спойлерить.)
(до канонiчного можно довести, указав, во что экстрактить Prod и Pair.)