deniok: (typed lambda)
deniok ([personal profile] deniok) wrote2014-10-05 09:23 am

Простые задачки на Карри-Говарда

Доказать, используя Хаскель, что следующие тавтологии верны интуиционистски
(a -> c) /\ (b -> c) -> a \/ b -> c
(a \/ b -> c) -> (a -> c) /\ (b -> c)
(Понятно, что конъюнкция - это пара, а дизъюнкция - Either.)

UPD. Стоит напомнить, что изоморфизм Карри-Говарда имеет место между интуиционистской версией пропозициональной логики и подмножеством Хаскеля без рекурсии. То есть использовать рекурсию нельзя - ни явно, ни неявно. Ну и определение отрицания требует в Хаскелле некоторых хаков, но при доказательстве этих формул оно не требуется.

[identity profile] voidex.livejournal.com 2014-10-05 09:25 am (UTC)(link)
1.
uncurry (|||)

2.
(. Left) &&& (. Right)

[identity profile] deni-ok.livejournal.com 2014-10-05 03:50 pm (UTC)(link)
Стрелочник.