Базисные наборы для комбинаторного исчисления


19

Хорошо известно, что комбинаторы S и K образуют базис для исчисления комбинаторов в том смысле, что все другие комбинаторы могут быть выражены через них. Существует также базис Карри B, C, K, W, который обладает тем же свойством. Таких баз должно быть бесконечное количество, но я не знаю других.

Мне известно, что существует ряд оснований для одного комбинатора, таких как комбинатор Iota и другие, созданные / проанализированные Fokker . Однако это «неправильные» комбинаторы, что означает, что они выражаются в терминах других комбинаторов, а не чистых абстракций. 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(λ.x1x2P(x1,x2,))P(x1,x2,)x1x2 является правильным комбинатором, но ( λ x . x ( λ y . y ) ) нет, потому что он содержит x, примененный к лямбда-члену.(λxyz.x(zz))(λx.x(λy.y))x

Ответы:



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.