Набори основ для обчислення комбінатора


19

Добре відомо, що комбінатори S і K складають основу для обчислення комбінаторів, в тому сенсі, що всі інші комбінатори можуть бути виражені через них. Існує також база B, C, K, W Curry, яка має однакову властивість. Повинно бути нескінченна кількість таких баз, але я не знаю жодної іншої.

Мені відомо, що існує ряд однокомбінаторних баз, таких як Іота-комбінатор та інші інші, побудовані / переглянуті Фоккером . Однак це "неправильні" комбінатори, тобто вони виражаються в порівнянні з іншими комбінаторами, а не чистими абстракціями. 1 Для цілей цього питання мене цікавлять лише базові набори, що складаються з належних комбінаторів.

Чи існує також вивчення інших можливих базових наборів? Ідеально було б що - то вздовж ліній Вольфрама дослідження різних інших моделей обчислень, в яких різні комбінації вивчених систематично. Зокрема, мене цікавить, чи відомі прості приклади таких речей:

  • Мінімальний базовий набір, що включає I комбінатор. (Я використовую "мінімальний", щоб сказати, що якщо ви видалите будь-який член, він перестане бути базовим, тому база SKI не зараховується.)
  • Мінімальний базовий набір, що включає в себе комбінатор Y або комбінатор (він же глузуючий)ω

Будь-яка інша інформація про інші можливі основи комбінаційної логіки, крім S, K і B, C, K, W, була б дуже корисною.

В цілому я зацікавлений у вивченні комбінаторного числення як чисто механічної системи, тобто як набору правил перетворення бінарних дерев із міченими вузлами, яким не потрібно давати особливої ​​семантичної інтерпретації. Будемо дуже вдячні за будь-які вказівки на ресурси, які використовують цей підхід. ( Знущатися над глумливим птахом застосовує такий підхід, але дає неповне уявлення, тоді як обчислення Ларенда від Барендрегта дуже прив’язане до семантики, тому мені важко витягти суто механічні аспекти, які мене цікавлять.)

1 Якщо бути точним: в обчисленні лямбда належним комбінатором є вираз форми , де має лише , тощо, як вільні змінні, і не містить абстракцій. Так, наприклад, є належним комбінатором, але ні, оскільки він містить застосований до терміна лямбда.P ( x 1 , x 2 , ) x 1 x 2 ( λ x y z . x ( z z ) ) ( λ x . x ( λ y . y ) ) x(λ.x1x2P(x1,x2,))P(x1,x2,)x1x2(λxyz.x(zz))(λx.x(λy.y))x

Відповіді:


2

Інші основи легко зробити, вимкнувши комбінатори з однієї основи з тими, які роблять щось подібне. Наприклад, починаючи з BCKW, ви можете переключити на (оскільки обидва перемикаються умови навколо) і на (оскільки обидва повторювані речі). Ви знаєте, що це все-таки основа, тому що ви можете відновити з неї і : і .T = ( λ x y . Y x ) W ω = ( λ x . X x ) C W C = B ( T ( B B T ) ) ( B B T ) W = C ( B ω ( B B T )) )CT=(λxy.yx)Wω=(λx.xx)CWC=B(T(BBT))(BBT)W=C(Bω(BBT))


1

Будь-який набір комбінаторів, що містить скасовуючий комбінатор (наприклад, K), комбінатор комбінації (як B), комбінатор пермітування (як C), дублюючий комбінатор (типу W) та комбінатор ідентичності I є основою. Якщо комбінатор I походить від ваших чотирьох інших комбінаторів, то цих чотирьох одних достатньо.

Це означає, що щось на зразок B, T, M, K, I, де Tab = ba і Ma = aa, також є основою. Дійсно, B, T, M, K достатньо, оскільки я можу бути похідним від B, T, M, K (це нелегко довести; доказ - спочатку вивести S з B, T, M, а потім взяти I = СКК.)

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.