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

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

Date: 2014-10-06 01:52 pm (UTC)
From: [identity profile] nponeccop.livejournal.com
Ну, если быть педантичным, то и без unsafeCoerse, неполных кейсов и всяких странных констант вроде undefined, error, Control.Exception.throw и т. д.

Даже оговорка о Хиндли-Милнере будет неточна, потому что есть его версия с расширением имени Майкрофта, дающая рекурсию.

Проще уж написать маленький парсер с тайпчекером, и для него задания формулировать :) Чтобы никакая противоречивость уж точно не просочилась.

Date: 2014-10-06 02:43 pm (UTC)
From: [identity profile] deni-ok.livejournal.com
Проще, конечно, было попросить сделать все на Агде, но это, боюсь, сузило бы аудиторию. И хотя Хаскель не заточен напрямую под доказательства, по факту все, кто тут сделал задачку, вполне себе ограничились допустимыми средствами.

Profile

deniok: (Default)
deniok

February 2022

S M T W T F S
  12345
6789101112
13141516171819
20212223 242526
2728     

Style Credit

Expand Cut Tags

No cut tags
Page generated Jul. 16th, 2025 08:29 am
Powered by Dreamwidth Studios