thedeemon: (office)
[personal profile] thedeemon
В классической логике есть закон исключения третьего, гласящий, что для любого утверждения А справедливо A | -A, т.е. либо оно верно, либо ложно. Однако это очень смелое утверждение, его можно трактовать так, что любое утверждение разрешимо (decidable), что тоже довольно нагло, и вообще герр Гёдель хмурится. Интуиционисткая логика высказываний и с ней конструктивная математика и прочая теория типов ведут себя скромнее, и такого смелого утверждения не делают. Но зато в них доказуемо вот такое:
--(A | -A)
Давайте его докажем, используя тот же Идрис, хотя ровно так же док-во записывается на Хаскеле. Отрицание определено как импликация в абсурд, т.е. отрицание утверждения А это функция, которая из доказательства А производит абсурд (_|_). Тогда наше утверждение записывается так:

((А | (A -> _|_) -> _|_) -> _|_

В теории типов в синтаксисе Идриса оно становится типом функции:

M : ((Either A (A -> _|_)) -> _|_) -> _|_

А конструктивным его доказательством служит тело этой функции. На выходе она должна произвести абсурд, а на входе у нее тоже функция, такого вот типа:

f : (Either A (A -> _|_)) -> _|_

Нам нужно, используя ее одну, произвести _|_. На вход она принимает либо А, либо -А. Взять значение типа А нам неоткуда, значит нужна функция типа A -> _|_. Как ее построить? Сделать лямбду, которая принимает значение А, и скармливает его f, а она уже произведет _|_. Имея такую функцию типа A -> _|_, ее можно опять же скормить f, и тогда получить _|_ "из ничего". Выглядит это так:
  M f = f (Right g) where
    g a = f (Left a)

Вот так, используя только переданную на вход f, скармливая ей использующую ее же функцию, можно произвести _|_ и так получить конструктивное доказательство --(A | -A). Что это значит? Что хоть мы в интуиционизме и конструктивизме и не утверждаем, что для всякого утверждения А верно (A | -A), мы однако со всей уверенностью его активно не_отрицаем. Дословно: считаем, что было бы абсурдным считать его ложным. Так и живем.

Date: 2013-04-23 05:02 am (UTC)
From: [identity profile] thedeemon.livejournal.com
Мне мысленно стрелки представляются такими трубами, а типы - эдакими бочками. В бочке может что-то находится, тогда она населена. Тогда это что-то может по трубе перейти в другую бочку, трансформируясь по дороге, и другая бочка станет населена. Но некоторые бочки и трубы всегда остаются пустыми. Вот бочка ⊥ пустая, и по трубам из нее ничего не идет. :)

Date: 2013-04-23 06:55 am (UTC)
From: [identity profile] sassa-nf.livejournal.com
О, это ещё не всё :)

Я ещё как-то пытался соединять объекты оптоволокном :) по одному кабелю на стрелку, и по одному волокну в кабеле на каждую точку объекта домена - так тогда можно суръекции от инъекций отличать; например, можно визуализировать, что за эквалайзер такой и как это вообще квадраты коммутируют. "Включил свет" - посмотрел, где и какие точки засветились, да ещё каким цветом. :)

В категорном смысле есть ещё один занятный факт: для стрелок zA: 0 → A zB: 0 → B и двух стрелок f, g: A → B верно следующее: f . zA = g . zA = zB Так вот, здесь аналогии с трубами и кабелями заканчиваются :)
Edited Date: 2013-04-23 07:09 am (UTC)

Date: 2013-04-23 07:39 am (UTC)
From: [identity profile] thedeemon.livejournal.com
C оптоволокном прикольно, да. :)
В ситуации с композицией, имхо, аналогия еще держится: закон композиции говорит, что если у нас два таких кабеля, один идет из 0 в А, второй из А в В, то должен быть и третий кабель из 0 в В. Нет никаких проблем в том, что для f и g этим третьим кабелем оказывается один и тот же zB: 0 → B.

Конечно, очень далеко на таких метафорах не уедешь, но для простых вещей могут быть полезны.

Еще важная отдельная тема возникает, если начать спрашивать, что именно означает f1 = f2. Возникают разные виды equality, intensional vs. extensional теории, двумерные и бесконечномерные теории типов, а там и до гомотопий докатиться можно.

Profile

thedeemon: (Default)
Dmitry Popov

May 2025

S M T W T F S
    123
45678910
11 121314151617
18192021222324
25262728293031

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Jun. 24th, 2025 05:27 am
Powered by Dreamwidth Studios