Журнал "Неформальная наука", 2007-01


Шумилина
Муза Витальевна
(1939 - 2007)

На начало статьи : К аннотациям номера : На основную страницу

Желать невозможного

Черухина С. Е.

26/07/2007

Трудно писать о близком человеке, с которым связаны непростые отношения, о человеке с непростым характером. Человек ушёл. Его больше нет. Что можно ещё добавить? Нет ни сложного характера, ни сложных отношений. Догадывается ли сам человек о том, что, возможно, все скоро закончится. И да, и нет.

Мама была невероятно сильным человеком. В последний день её рождения накануне неожиданно быстрой выписки из больницы она с горечью передала слова зав. отд.: "Герой Советского Союза!" Герой, который никому не нужен. Одна из её записей, которые я обнаружила: "Надо жить без надежды".

Незадолго до операции, находясь в просветлённом состоянии, она что-то поняла для себя и поделилась со мной этим: "Какая это все-таки ценность - жизнь! Нет ничего дороже её." И "Люди все разные".

Не верится, что мама не на даче, о которой так долго мечтала и так много заботилась. Цветы, которые она посадила на Пасху, растут себе, на яблонях зреют яблоки. В комнате на стенах висят её вышивки, в шкафу - одежда. Ничего, в общем-то, не изменилось. Все вещи как-будто ждут её возвращения. Только сюда она больше никогда не вернётся.

(C) Черухина С. Е., 2007

На начало статьи : К аннотациям номера : На основную страницу

Дневник с комментариями автора

Черухина С. Е. ()

24/07/2007

Публикуемый отрывок из дневника представляет интерес оригинальностью жанра: первоначальные записи, сделанные в январе-феврале 2003 года, дополнены собственноручными комментариями автора, выполненными при прочтении дневника в июле 2007 года, и отражающими изменения, произошедшие за это время в обществе и (возможно) мироощущении автора - прим. ред.

23.01.03

Я уже давно задумала вести дневник. Надолго ли меня хватит - Бог ведает. Прочитанный дневник Чуковского навёл меня на мысли, что в этом что-то есть. Многое забывается, к сожалению. Попробую рассказать о том, что было интересного относительно недавно. Совсем недавно [недели две назад; здесь и далее в квадратных скобках выделяются комментарии 2007 г.] мне довелось побывать в Переделкино: доме-музее Пастернака и Окуджавы. Обстановка дома Пастернака весьма скудная, именно скудной, а не аскетичной (по словам экскурсовода) она мне показалась. Аскетизм в моём представлении - что-то более художественное. Здесь этого я совсем не увидела. На стене висят картины его отца: автопортрет на самом верху, остальные [боковые] картины дополняют до композиции иконостаса. [Я отчётливо ощутила, что для Пастернака отец - если не Бог, то фигура, близкая к святому.] Его комната наверху - ужасно большая, наверно, 60 м2. Это, конечно, здорово; и как-то смягчает общую убогость. Мне кажется, эта убогость как-то связана с убогостью советской жизни, а м. б., и нет. Собственно, убогость здесь понимается не в отрицательном смысле, но чувство жалости испытывается достаточно сильно. Какая-то ущербность во всём. О П. Б. я не до конца продумала. Мне тут многое неясно. [И все-таки дух писательский там сохраняется. Совершенно очевидно, что, да, здесь был написан "Доктор Живаго", даже страшно. Этот роман и фильм 1966 г. произвели неизгладимое впечатление. Даже удивительно, насколько удалось иностранцам передать в фильме так много... Книга совершенно живая, кажется иногда, что с лет революции ничего не изменилось по существу.]

В доме Окуджавы значительно веселее. Да и ушёл он оттуда в 1997 [году], не так давно. Разумеется, он был более человечным (в обычном, бытовом) смысле. И несмотря на некоторую скученность вещей, на недостаточный в их выборе вкус, общее впечатление - очень приятное, можно сказать, что Б. О. любил людей, интересовался ими. Как я недавно прочитала у Ю. Анненкова (по поводу его возмущения словами И. Эренбурга): "Пастернак, в общем-то, предполагал одного собеседника - себя". Видимо, вся его любовь человеческая была проявлена в любви и уважении к отцу.

30.01.03

Да, пишу я ужасно. Но, ничего-ничего (как пишет [Кирилл] Медведев) :). Лучше всего записывать мысли по свежим впечатлениям. Или писать долго, расписываться. Раскачиваюсь я ужасно долго. Видимо, мне лучше писать по обязанности, так лучше получается. А то настроение меняется, и всё равно ничего хорошего не напишешь.

Я рада, что Гандлевский получил премию за своё "НРЗБ" [добавлю, что совершенно не помню сейчас, спустя 4,5 года, о чём там, в отличие от "Трепанации черепа". И вообще, как-то я разочаровалась в Гандлевском несколько, хотя на вечерах он выступает хорошо, производит впечатление, и его слова о том, что поэзия должна утешать мне близки, хотя это можно понимать по разному], как-то есть такие люди, которые пишут что-то своё ужасно талантливое и получают премии, вполне заслуженные: С. Г.; Медведев тот же (хотя про премии не знаю, но он популярен точно) [как-то он перекинулся на политику; не могу сказать, что я это одобряю или это мне близко, но получается у него это искренне и вполне естественно, напоминает мне это Валерию Новодворскую, автобиографию которой я с удовольствием прочитала - да, бывают такие люди, с такой судьбой, даже и не скажешь, сами они её выбрали или она их]; Вера Павлова (правда, её стихи мне не близки совсем, но личность весьма необычная). В детстве она ходила в планетарий, слушала лекции о звёздах. Знала их названия. Кстати, К. М. также интересовался астрономией (?! надо уточнить все-таки). Кажется, что заслуженные премии... Но, если подумать, какова цена вообще работы художника, творца? Отчего-то, я не знаю, мне пришло это в голову, когда я лежала сегодня вечером. Все-таки состояние творчества - совершенно особое состояние. Почти всегда оно требует высокой концентрации. Как говорит Лёня [наверно, уже все-таки Леонид В.] Костюков, в это состояние - вдохновения - легко входил Пушкин, но, наверно, "Пророка" он писал не совсем легко. Эти изменённые состояния сознания - штука совсем непростая. Прочтите "Шестое чувство" или "Память" Гумилёва. Это сродни беременности у женщин (всегда есть ненулевая вероятность смерти; на здоровье точно, как правило, сказывается). А если рожать каждый год? А если готовиться к родам, хотя бы минимально? "Сейчас, как никогда, поэт пишет своей кровью" - слова Веры Павловой. Своей мыслью, сердцем, болью, плотью - всем своим существом. [Коммент. 2007 года: Сколько пафоса всё-таки! Или время было такое, или я другая. Сейчас так совершенно невозможно написать.] Самое важное - настраивать всего себя, быть совершенным инструментом. Мне кажется, это верный путь. Пример Пастернака - мне кажется, его стихи 30-х гг. изменили своё качество заметным образом, а последние просто совершенны и разительно по своему строю отличаются от ранних. Он шёл от семантики, смысла. А форма, совершенная, приобреталась потом. [Пожалуй, в квадратных скобках я буду писать сегодняшние комментарии. Невозможно просто переписывать и ничего не добавить новенького. Совершенно иногда не верится, что это я писала. Но почерк мой! Из сегодняшней жизни. Умер Пригов. Вообще, очень многие умерли в этом году и прошлом, и из тех людей, которых я так или иначе знала. Запомнились слова Пригова из его интервью: "Функция поэта - говорение". Это меня ещё раз подстегнуло к каким-то записям, м. б., и бессвязным, да и писать мне лень ужасно. Также запись на ж/д мосту на пл. "Моссельмаш": "Молчание - золото, общение - клад".]

01.02.03

Сегодня по каналу "Культура" показывали встречу Макаревича со зрителями. Довольно приятно все было. Он жил, оказывается, напротив Музея им. Пушкина в двухэтажном особнячке Трубецких. В конце встречи был сюрприз с бильярдным столом и пришедшим Вас. Аксёновым. Это было крайне удачным со стороны режиссёра программы. А. М. и В. А. очень естественно что-то рассказывали не спеша и гоняли шары. Творчество Аксёнова я не очень люблю, форма художественная уж очень тяжёлая [фильм "Московская сага", правда, мне понравился], хотя в целом, наверно, для молодёжи это полезно с моральной точки зрения [?]. По лицам молодых участников (зрителей) было заметно искреннее восхищение и уважение этими людьми, что вызвало положительные эмоции. [Отметим, поскольку были прошлым летом в Крыму: видели натяжную рекламу в Ялте и Симферополе какого-то винзаводика Макаревича. Молодец! Не стоит прогибаться под изменчивый мир!] В начале выступления лица, попадающие в камеру, меня угнетали: если уж не "рыла на рыле", как заметил Б. Парамонов о фильме Сокурова "Русский ковчег" по поводу русских актрис, играющих светских дам, то близко к этому. На редкость неинтеллектуальные лица, хотя я подозреваю, что телевизионщики показывают не всех подряд. Интересно, большие ли у них трудности с этим? Вообще, всё-таки зрителей показывали мало. Видимо, самых лучших. За то - спасибо. Всё было очень эстетично - как заметила мама. [Это совсем для себя - больше она так не скажет. Это было её высказывание.]

Я не совсем подробно прочитала роман Л. Чуковской "Спуск под воду". Не совсем мне понятно, зачем он был написан. Вернее, понятно. О репрессиях, о муже и т. д. Конечно, литературные её способности очевидны и говорить не о чем. Но в целом - роман самый заурядный. Всё-таки литература, искусство - вещи особые. Книга должна писаться сама, а у Л. Ч. это совсем не чувствуется. Вернее, она не даёт ей писаться. Проблески очень редки. Это странно - потому что её "Памяти детства" [Название-то каково?] мне очень понравилась, я прочитала её на одном дыхании, хотя она пишет, что её детство и юность были одинокими. Но "Пам. д." была написана позже. М. б., время влияет. Я, действительно, не знаю, какие вещи в период 1949-58 гг. были бы написаны не по-советски. Ну, м. б., записки Н. Мандельштам [например] (я только начала её, но поняла, что это здорово) [так и не пришлось их пока прочитать]. Воспоминания М. Ардова в "НМ"; о Шостаковиче - понравились, но они построены как воспоминания детей Д. Ш. Об Ахматовой и др. известных людях - меньше. М. А. родился в 1937 г., значит, его юность пришлась на конец 40-х - нач. 50-х гг, а именно это время, как я сейчас поняла, связывается у меня с абсолютно советским временем. К началу ВОВ все люди, вернее большинство, составляющие цвет, да и не только цвет, а просто порядочные, хорошие люди были уничтожены тем или иным способом, морально и физически. [К чему это я? Ардов мне не понравился, хоть он и священник, что странно, довольно циничными воспоминаниями, наверно, обстановка, его окружающая, была довольно лицемерной. Но вот его брат, Баталов, не таков же.]

02.02.03

Я надеюсь когда-нибудь вновь прочитать эти сроки [и даже набрать их :)]. Поэтому буду писать и о разных событиях, чтобы не забылось. Вчера произошла катастрофа американского "Челленджера" [точнее, шаттла Columbia - прим. ред.] при посадке. Погибли 7 человек. Загорелась обшивка. Удивительно, что обстоятельства этого немного мистические. Обломки упали как-то не по курсу, а вблизи штата Техас, где родился Дж. Буш-мл. Местечко поблизости, носит, оказалось, название Палестина. На борту, кроме 6 американцев, находился и (впервые!) один израильтянин, который принимал, кажется, участие в предыдущей войне с Ираком. Сегодня холодно, -17o за окном к вечеру.

По ТВ идут в настоящее время неплохие передачи по "Культуре" - "Чёрные дыры. Белые пятна" (что-то вроде бывшей "Цивилизации") и "Хвост кометы" Л. Николаева по ТВС (бывш. 6 канал) [я уж и забыла, что такое ТВС и 6-й канал. Заметим, что сейчас Л. Николаев делает передачу, неплохую, хотя и идёт она в р-не полпервого ночи с характерным для нынешнего времени названием "Герои и злодеи". О, времена, о, нравы! (Не могу не откликнуться на злобу дня: Великобритания советует России переписать конституцию! Дожили... Боже мой! А ведь британцы абсолютно правы. Сегодня отправила заказное письмо на имя (кого бы Вы думали?) ректора и гл. бухгалтера Финакадемии о рассмотрении вопроса о задержках при получении денег человеку при увольнении 2,5 мес. назад. Ну, если только на таком уровне ерундовые вопросы решать... Или в суд сразу? Опять же нотариусы совершенно не хотят заниматься наследственными делами, только так отфутболивают от одного к другому. Видимо, невыгодно.) Довелось увидеть интересную передачу о Пиросмани. Очень-очень близкий мне художник. Вспоминаю одного жильца, который снимал квартиру у брата и оказался совершенно неплатежеспособным, но запомнился мне своим безупречным вкусом и интеллигентностью и особенно тем, что пытался расплатиться или дать в залог будущей уплаты денег репродукцию (качественную!) с изображением "рыб" Пиросмани. Похоже, что человек и сам (почти) верил, что обладает подлинной картиной художника. Их, действительно, сохранилось очень немного и до сих пор новые творения, стоящие очень дорого, отыскиваются. Отчего Пиросмани подпадал под рубрику "Герои и злодеи", не совсем помню. То ли он занимался какой-то мистификацией, то ли ещё что-то. Запомнилось, что для него было важно признание академических художников, и даже в какой-то момент его вроде бы приняли в Академию, а потом какой-то критик чуть ли не на следующий день высмеял Пиросмани в газете. И это его окончательно надломило. Да, я, кажется, припоминаю, то ли он какой-то эгоизм проявлял по отношению к своим домашним, то ли какие-то психические отклонения у него были. А помогал ему некий меценат, если не ошибаюсь. Но картины его абсолютно чудесные!] Была передача о Виктории Фёдоровой. Она уехала к своему отцу - американскому адмиралу в 1975 г. в возрасте 29 лет. Непременно надо посмотреть в Музее кино фильмы с её участием - "До свидания, мальчики!" и "Двое". [Да, посмотрели, понравилось, но книга Балтера произвела большее впечатление. Некоторые вещи непрофессиональных писателей (в смысле, тех, кто не сразу собирался им стать, а стал, поскольку литературная деятельность в советское время (большая похвала времени? - не знаю) очень поощрялась, а в случае Балтера, он и не мог продолжать оставаться профессиональным военным по состоянию здоровья) производят неизгладимое впечатление, поскольку каждое слово абсолютно правдиво и написано, по словам В. Павловой, просто кровью. Удивило, как некоторые люди серьёзно относятся к тому, что можно оказаться в нищете. Американский активный образ жизни не для тонких натур, видимо. Вспоминая фильм "Любовь", крайне горько видеть, как такая актриса и просто красивая женщина с дрожью в голосе говорит о боязни оказаться финансово несостоятельной. Что-то в этом есть глубоко неправильное...]

"Культура" показала фильм Медведкина "Счастье" 1929 г. Несмотря на то, что фильм оказался с длиннотами, хотя длился меньше 1 часа, он показался очень интересным, удивительно свежим, не искусственным (как "Весёлые ребята" и т. д.), своеобразным; так сказать, незаимствованным, а чем-то своим, русским. [Всё-таки как редко это слово стало употребляться в речи с советских времён, мне оно даже сейчас кажется каким-то чужим, как-то неловко сказать, например: "я - русская". Просто неприлично даже! И даже не знаю, почему. Вроде и политика у нас сейчас вполне национальная. Но всё-таки российская. Чем отличается российский гражданин от русского по национальности? Не знаю. Наверно, русский - это как-то неполиткорректно. Видимо, национальность, национальный характер как-то связаны с душой народа, если человек к этому народу себя относит, а гражданин РФ - с некоей государственностью, чем-то формальным. Даже сказать: "я - еврей" - звучит гордо, Израиль там, Иерусалим, ого-ого! А сказать - русский - и что видится? Медведь, мишка, да ещё двухголовый, просто монстр какой-то! Чем хвастаться? Литературой прошлого-позапрошлого века? Нефтью? Икрой за 1,5 тыс. руб.? Ясно, что простой человек и не попробует уж её никогда до самой смерти, а если придёт такая сумасшедшая мысль, так не сможет её и проглотить, будут на его зубах рублики позвякивать. Да, вот балетом, действительно, можно похвастаться. И даже голосами, Нетребко, например, или (забыла даже имя, не так уж на слуху, а вот Баскова помню, и вижу и слышу по ТВ, и даже в рекламе). Ну, всё-таки таланты - вещь особая, м. б., и распределены они по всей земле равномерно. Я всё-таки о сугубо национальном. Есть оно или нет?..]

(C) Черухина С. Е., 2007

На начало статьи : К аннотациям номера : На основную страницу

lТЕ-исчисление

Черухин Д. Ю. ()

25/07/2007

В статье предложено  l ТЕ-исчисление - расширение классического  l -исчисления Чёрча.  l -исчисление можно охарактеризовать как простейший универсальный язык функционального программирования.  l ТЕ-исчисление отличается от него тем, что текст программы рассматривается как объект исчисления и имеется специальная функция выполнения программы. Для этого текст программы хранится в виде совокупности простых конечных структур - единств ("четвёрок"), позаимствованных из Теории Единств (TE). Изложение опирается на реализацию  l ТЕ-исчисления в виде интерпретатора lambdaTE для операционной системы DuS.

Имеется множество объектов  F.  Каждый объект является функцией, определённой на некотором подмножестве множества  F  и принимающей значения в  F.  Другими словами, определена частичная функция  F x F -> F  применения функции из  F  к аргументу из  F.  Результат применения функции  f  к аргументу  g  будем обозначать в виде  f g.  Если функция  f  неприменима к аргументу  g,  то выражение  f g  не определено; на практике это означает, что процесс вычисления  f g  никогда не завершится.

Каждая функция из  F  может рассматриваться как функция нескольких аргументов. А именно, для любого  n  функцию  f  можно рассматривать как функцию  F n -> F,  при этом результат применения функции  f  к набору аргументов  (g1, ..., gn)  есть  f g1 ... gn  (будем считать, что в записи  f g h  скобки расставлены слева направо, т. е.  f g h = (f g) h ).

Имеется некоторый базис функций и все функции исчисления можно выразить в этом базисе, а именно, получить их в результате последовательного применения базисных функций друг к другу (подробнее: функции из базиса считаются выразимыми; если применить одну выразимую функцию ко второй как к аргументу, то полученная в результате функция также считается выразимой). Классическое  l-исчисление [1-5] порождается базисом  {CA}  (в литературе встречаются обозначения:  K = CS = A ) [4]. Функции  C  и  A  определяются (в терминах  l-исчисления) следующим образом: 

C  =  l x y . x; (1)
A  =  l x y z . x z (y z). (2)

Другими словами,  C,  рассматриваемая как функция двух аргументов (эти аргументы в (1) обозначаются через  x  и  y;  имена аргументов записаны после символа  l ) на произвольной паре аргументов  (x, y)  принимает значение  x  (значение записано в (1) после точки). Обозначение  C  происходит от слова Const, так как  C  - генератор функций-констант (функций, принимающих одно и то же значение на всех аргументах). А именно, для любого объекта  функция  C x  является константой, принимающей значение  x  на любом аргументе  y.

Обозначение функции  происходит от слова Apply. Функция  A  моделирует (2) основную операцию l-исчисления - операцию применения (apply) функции  к аргументу  y;  кроме того и функция и аргумент зависят от параметра  z.  Множество  {CA}  является базисом  l-исчисления во многом благодаря универсальному характеру функции A.

Основным свойством  l-исчисления является его универсальность, а именно, в нём выразимы все общерекурсивные функции (и только они) [2]; в этом смысле  l-исчисление есть аналог других универсальных вычислительных систем, таких, как машины Тьюринга, Поста, алгорифмы Маркова, формальная арифметика. Рекурсивные функции определяются на множестве  Z +  целых неотрицательных чисел, которые нужно каким-то образом ввести в исчисление.

Классическое определение числа  n  из  Z +  таково: 

n  =  l f x . f ( f ( ... f ( x ) ... ) ), (3)

(где символ  f  употребляется  n  раз после точки). Другими словами, число  n  есть функция, сопоставляющая каждой функции её  n-ю степень относительно суперпозиции. В частности, число  1  есть тождественная функция:  I  =  l x . x.  Выразим в качестве примера функцию  I  в базисе  {CA}.  Имеем: 

I x  =  x  =  C x ( C x )  =  A C C x,

откуда  I  =  A C C.  Число  0  есть функция-константа, равная в каждой точке функции  I,  т. е.  0  =  C I.

Простейший способ реализовать рекурсию в  l-исчислении состоит в том, чтобы воспользоваться известной теоремой о неподвижной точке. А именно, для каждой функции  f  из  F,  определённой на всём множестве  F,  существует такая точка  x 0,  что  f x x 0.  Более того, неподвижную точку можно явно указать по функции  f;  существует такая функция  F  из  F,  что  x F f.

Рассмотрим, например, функцию "факториал":  j n  =  1 · ... · n.  Имеем  j 0  =  1j n  =  n · j ( n - 1 ),  а значит, 

j  =  l n . ( n = 0  ?  1  :  n · j ( n - 1 ) ), (4)

(через  ( x  ?  y  :  z )  обозначается конструкция "если  x  истинно, то  y,  иначе  z "). Используя функции  C  и  A,  в (4) можно избавиться от переменной  n  и мы получим выражение вида  j  =  F j,  откуда  j  найдём как неподвижную точку функции  F.  Отметим, что предварительно нужно реализовать функции, входящие в правую часть (4); например, сложение и умножение достаточно просто выражаются, исходя из (3), см. [5].

Наконец, укажем пути введения в  l-исчислении чисел из других множеств. Целые числа можно реализовать как пары натуральных  (nm),  при этом, если  n 1 - m n 2 - m 2,  то пары  (n 1m 1)  и  (n 2m 2)  эквивалентны (обозначают одно и то же число). Рациональные числа вводятся стандартно, как пары (числитель, знаменатель).

Наконец, действительные числа можно ввести через дедекиндовы сечения, а именно, число  x  есть множество таких рациональных чисел  n / m,  что  x > n / m.  Множество можно истолковывать как предикат (характеристическую функцию множества), поэтому число  x  можно определить как функцию от  n  и  m,  равную  1  тогда и только тогда, когда  x > n / m.  При этом выразимы не все действительные числа, а только вычислимые (например, числа  e  и  p  вычислимы). Вообще, можно сказать, что  l-исчисление описывает мир конструктивной математики. Проблема построения расширения  l-исчисления, описывающего всю математику, до сих пор не решена [3].

Перейдём теперь к  lТЕ-исчислению. Помимо функций  C  и  A,  базис  lТЕ-исчисления содержит функции  EL  а также конечную совокупность единств (функций специального вида), зависящую от реализации.

Функция  E  (от слова Equal) есть функция частичного равенства; она позволяет сравнивать некоторые пары объектов, множество которых зависит от реализации. При попытке сравнить пару объектов, не входящую в это множество, процесс сравнения корректно не завершится.

Полностью определённая функция сравнения в  l-исчислении невозможна в силу теоремы о неподвижной точке. Действительно, если бы была существовала  E'  =  l x y . ( x = y  ?  1  :   0 ),  то функция  E' 0  не имела бы неподвижной точки ( E' 0  равна  1  только в точке  0,  а в остальных точках она равна  1 ). Отметим, что под равенством в (4) подразумевается функция, корректно сравнивающая целые неотрицательные числа; такая функция является рекурсивной.

Какие именно объекты можно сравнивать в  lТЕ-исчислении - не оговаривается; заведомо можно сравнивать первичные объекты: базисные функции и единства (и все они считаются различными). Кроме того, предполагается. что отношение  E  обладает естественными свойствами равенства: оно является эквивалентностью и из равных объектов при одних и тех же действиях получаются равные. Другими словами, выполнены аксиомы:

x  =  x;
x  =  y   =>   y  =  x;
x  =  y  &  y  =  z   =>   x  =  z;
x  =  y  &  z  =  t   =>   x z  =  y t.

Заметим, что аксиомы объёмности не предполагается, т. е. если две функции принимают на одних и тех же объектах одинаковые значения, то отсюда не следует, что эти функции равны. Другими словами, у функции могут быть "скрытые параметры", не связанные с её функционированием.

В действующей реализации  lТЕ-исчисления (программе lambdaTE из пакета te для ОС DuS [6]) можно также сравнивать базисные функции, не набравшие достаточного числа параметров для своего раскрытия. Например, для раскрытия функции  C  согласно её определению, нужно два параметра, для раскрытия функции  A  - три. Если достаточного числа параметров не набралось, то создаётся временная функция, состоящая из базисной функции и накопленных данных. Такие временные функции можно сравнивать, при этом будут сравниваться накопленные данные и т. д. по рекурсии (если рекурсия конечна). Однако, два разных выражения для одной и той же функции (одной и той же - в смысле функциональности) расцениваются как разные объекты.

Функция  E,  как функция 4-х аргументов, определяется следующим образом:

E  =  l x y z t . ( x = y  ?  z  :  t ). (5)

Другими словами, если первый и второй аргументы равны, то результатом является третий аргумент, а если не равны (но сравнимы), то результатом является четвёртый аргумент.

Функцию  E  можно также рассматривать как функцию двух аргументов, определённую таким образом: 

E  =  l x y . ( x = y  ?  T  :  F ), (6)

где  T  (True) и  F  (False) - следующие значения истинности: 

T  =  l x y . x     и     F  =  l x y . y .

Нетрудно видеть, что определения (5) и (6) эквивалентны; на практике, функция  E  раскрывается согласно (6) при наличии двух аргументов. Отметим также, что  T  =  C  и  F  =  0  =  C I.

Прежде, чем перейти к четвёртой базисной функции -  L,  опишем единства. В Теории Единств [7] под единством понимается набор из четырёх объектов. Как правило, эти объекты нумеруются так называемыми основными числами в следующем порядке:  10L  ("Лю"; неопределённость) и  E  ("Эси"; бесконечность). Относительно других свойств единств имеются разные точки зрения. Мы будем придерживаться той системы, которая реализована в концепции баз данных TE (*.te) [8] и на которую, соответственно, опирается программа lambdaTE.

База данных представляет из себя неупорядоченную совокупность записей (единств), каждая из которых состоит из четырёх полей, а каждое поле содержит некоторую символьную информацию (64 символа Unicode). Первое поле есть заголовок единства; в базе данных (а, теоретически, во всех базах данных *.te) должно быть не более одного единства с данным заголовком. Остальные три поля ссылаются на другие единства (поле ссылается на единство, заголовок которого содержит ту же символьную информацию, что и данное поле). Основное предназначение единств в  lТЕ-исчислении состоит в том, что с их помощью кодируется последовательность применений базисных функций друг к другу, дающая в результате ту функцию, которую требуется вычислить (другими словами, кодируется программа в смысле функционального программирования).

Программа lambdaTE перед началом работы загружает в память некоторые базы данных ТЕ, и все содержащиеся в них единства включаются в качестве функций в множество  F  (каким образом - мы опишем позже). При этом, если на некоторое единство имеется ссылка (на него ссылается какое-нибудь из загруженных единств), но само оно не загружено, то три его поля, отличные от заголовка, считаются пустыми (состоящими из символов Unicode 0xFFFF). Пустое поле является ссылкой на специально выделенное пустое единство, состоящее из четырёх пустых полей.

С точки зрения функционирования, единство есть функция из  F,  определённая на некоторых четырёх объектах, соответствующих четырём полям единства. У каждого единства, вообще говоря, может быть своя область определения, однако, по умолчанию, единство считается определённым на основных числах ( 10L  и  E  соответственно). Далее будем считать, что единство определено в этих точках. Значением единства  e  в точке  i  ( i  =  10LE) является единство, на которое ссылается  i-е поле единства  e.  В частности, первое поле всегда ссылается на исходное единство, поэтому  e 1  =  e . Кроме того, предполагается, что сами объекты  10L  и  E образуют единство в указанном порядке.

Во всех остальных точках (отличных от  10L  и  E ) значение единства  e  полагается равным специально выделенному объекту  U  (Undefined);  U  характеризуется тем, что  U x  =  U  для любого  x.  Заметим, что можно было бы считать, что во всех остальных точках единство неопределено (т. е. процесс вычисления не завершается), однако такое определение выглядело бы несколько искусственным: функция  E  частично определена только потому, что её полностью определённая версия в принципе невозможна.

Теперь опишем правила кодирования функции из  F  в виде совокупности единств. Каждая функция из  F  может быть выражена через базисные посредством многократного применения функций друг к другу. По сути, функцию из  F  можно выписать в виде формулы в строчку. Однако, если отождествлять одинаковые фрагменты в этой формуле (соответствующие естественно определённым функциям), то запись получится гораздо более экономной, но при этом она утратит линейность, присущую формулам. Базы данных ТЕ приспособлены как раз к такой экономной системе записи (напоминающей схемы из функциональных элементов) за счёт своей ссылочной организации.

Каждое единство (рассматриваемое с синтаксической точки зрения) кодирует некоторую функцию из  F.  При этом единства делятся на три типа: единство первого типа кодирует одну из базисных функций, единство второго типа кодирует первичное единство (т. е. единство, рассматриваемое с функциональной точки зрения). Наконец, единство третьего типа кодирует результат применения функции к двум аргументам; эти функция и аргументы закодированы полями  0L  и  E  данного единства. Точнее, если единства  e 0e L  и  e E  являются кодами функций  fg  и  h  соответственно, то единство  e  есть код функции  f g h.

Заметим, что достаточно применять функцию к одному аргументу, а значит, можно ограничиться не четвёрками, а тройками. Однако, помимо субъективных предпочтений, имеется следующий аргумент в пользу четвёрок: большинство функций, с которыми имеет дело конструктивная математика (а именно, арифметических, логических, алгебраических), двуместны. Поэтому за счёт совместной записи двух аргументов достигается не только единство формы, но и некоторая экономия. Отметим также, что если требуется применить одноместную функцию к своему аргументу, то в качестве  (см. выше) можно взять тождественную функцию  I,  в качестве  g  - одноместную функцию, а в качестве  h  - её аргумент.

Наконец, опишем функцию  L.  Она позволяет вычислить функцию из  F  по её коду. Функция  L  имеет два аргумента; оба должны быть единствами. Первый аргумент (обозначим его  b ) содержит информацию о том, при помощи каких единств кодируются первичные объекты; второй аргумент (обозначим его через  c ) есть собственно код функции. Результатом применения функции  к аргументам  b  и  c  является функция из  F,  кодом которой является единство  c  (при данном кодировании базиса).

Опишем поля единства  bb 0  используется при кодировании первичного единства (см. ниже);  b L  есть единство основных чисел (т. е.  b L  содержит те единства, которые обозначают основные числа, а именно, единство  b L i  обозначает число  i );  b E  содержит единства, которые кодируют базисные функции: единство  b E 1  кодирует функцию  Lb E 0  - функцию  Cb E L  - функцию  A  и  b E E  - функцию  E.

Каждое единство  e  из  F  может быть вставлено в код функции как первичный объект (т. е. рассмотрено не с синтаксической, а с функциональной точки зрения). Для этого необходимо сконструировать единство  e',  которое описывает  e  как первичное единство и вставить ссылку на  e'  в то место кода, где предполагается использовать  e.  Единство  e'  строится следующим образом:  e' 0  =  b 0  (см. выше);  e' L  содержит единства, на которых  e  определено, как функция (обычно,  e' L  =  b L,  хотя не исключены и другие варианты);  e' E  =  e.  При просмотре очередного единства функция  L  вначале проверяет, кодирует ли оно базисную функцию; затем - кодирует ли оно первичное единство; если ни то ни другое не имеет места, единство рассматривается как код применения функции к аргументам.

В заключение опишем интерфейс программы lambdaTE. Программа запускается из командной строки; формат запуска: 

 lambdaTE  base  addr  ...  base  addr

здесь base - имя файла, содержащего очередную базу данных TE, addr - прочерк (-) или адрес единства в этой базе данных. Прочерк означает, что база данных просто загружается в память; если же указан адрес единства в ней, то это единство рассматривается как очередной аргумент; в итоге формируется список аргументов и к нему применяется функция LambdaTE. Адрес единства в базе данных состоит из символов 1, 0, L, E, естественно соответствующих основным числам. Символы просматриваются слева направо; очередной символ означает переход к соответствующему полю текущего единства. В начале этого процесса текущим является первое единство базы данных.

Результат вычисления рассматривается как дерево следующего вида: в его листьях находятся единства, а в нелистовых вершинах - базисные функции, не набравшие достаточного числа аргументов для своего раскрытия (они ссылаются на уже прочитанные аргументы). Это дерево обходится в естественном порядке и все встреченные единства выводятся на консоль в виде символьных строк (выводится только первое поле каждого единства). Полученный в итоге текст считается результатом работы программы.

ЛИТЕРАТУРА

[1] Church A. The calculi of lambda conversion // Annals of Mathematics Studies. - Princeton University Press, 1941. - No 6.

[2] Kleene S. C. lambda-definability and recursiveness // Duke math. journal. - 1936. - No 2. - pp. 340-353.

[3] Barendregt H. P. The lambda calculus: its syntax and semantics. - Amsterdam: North Holland, 1984.

[4] Goldberg M. A general scheme for constructing one-point bases in the lambda calculus // BRICS. - September 2001. - report No RS-01-35.

[5] Пенроуз Р. Новый ум короля: О компьютерах, мышлении и законах физики. - М.: Едиториал УРСС, 2005.

[6] Черухин Д. Операционная система DuS - http://cherukhin.narod.ru/technical/dus/index.html

[7] Черухин Д. Ю. Теория единств // Неформальная наука. - 2001. - N 2. - С. 6-12.

[8] Черухин Д. Базы данных ТЕ - http://cherukhin.narod.ru/technical/te.htm

(C) Черухин Д. Ю., 2007

На начало статьи : К аннотациям номера : На основную страницу