Комбинаторная логика
[править]
Материал из Википедии — свободной энциклопедии

Комбина́торная ло́гика — раздел дискретной математики, который тесно связан с λ-исчислением, т. к. описывает вычислительные процессы.

С момента своего возникновения комбинаторная логика и лямбда-исчисление были отнесены к неклассическим логикам. Дело заключается в том, что комбинаторная логика возникла в 1920-х годах, а лямбда-исчисление — в 1940-х годах как ветвь метаматематики с достаточно очерченным предназначением — дать основания математике. Это означает, что сконструировав требуемую «прикладную» математическую теорию — предметную теорию, — которая отражает процессы или явления в реальной внешней среде, можно воспользоваться «чистой» метатеорией как оболочкой для выяснения возможностей и свойств предметной теории.

Комбинаторная логика и лямбда-исчисление — это такие формальные системы, в которых центральной разрабатываемой сущностью является представление об объекте. В первой из них — комбинаторной логике, — механизм связывания переменных в явном виде отсутствует, а во второй он имеется. Наличие явного механизма связывания предполагает и наличие связанных переменных, но тогда есть и свободные переменные, а также механизмы замещения формальных параметров — связанных переменных, — на фактические параметры, то есть подстановка.

Изначальным назначением комбинаторной логики был именно анализ процесса подстановки. В качестве ее сущностей планировалось использовать объекты в виде комбинаций констант. Лямбда-исчислению отводилась роль средства уточнения представлений об алгоритме и вычислимости. Как следствие, комбинаторная логика дает в руки инструмент для анализа процесса подстановки. Через короткий промежуток времени оказалось, что обе эти системы можно рассматривать как языки программирования (см. также комбинаторное программирование).

В обеих системах исчисляются объекты, они являются исчислениями или языками высших порядков, то есть имеются средства описания отображений или операторов, которые определяются на отображениях или операторах, а в качестве результата вырабатывают также отображения или операторы. Самое существенное, что именно отображение считается объектом. В этом их принципиальное отличие от всего многообразия других систем, в которых первичной сущностью обычно считают представление о множестве и его элементах.

||
К настоящему времени оба эти языка не только стали основой для всей массы исследований в области компьютерных наук и компьютинга, но и широко используются в теории программирования. Развитие вычислительной мощности компьютеров привело к автоматизации значительной части теоретического — логического и математического, — знания, а комбинаторная логика вместе с лямбда-исчислением признаются основой для рассуждений в терминах объектов.
Содержание
[убрать]

1 Категориальная комбинаторная логика
2 Иллативная комбинаторная логика
3 Исторические комментарии
4 Примечания
5 Литература
6 См. также
7 Ссылки

[править] Категориальная комбинаторная логика

В рамках комбинаторной логики строится специальный вариант теории вычислений, называемый категориальной абстрактной машиной. Для этого вводится в рассмотрение особый фрагмент комбинаторной логики — категориальная комбинаторная логика[1]. Она представлена набором комбинаторов, каждый из которых имеет самостоятельное значение как инструкция системы программирования. Тем самым в комбинаторную логику встраивается еще одно полезное приложение — система программирования, основанная на декартово замкнутой категории (д.з.к.). Это позволяет еще раз на новом уровне переосмыслить связь операторного и аппликативного стиля программирования.
[править] Иллативная комбинаторная логика

Пользуясь представлениями об объектах как абстрактных математических сущностях, обладающих определенными подстановочными свойствами, можно строить системы логических рассуждений. Наиболее известная среди таких систем основана на комбинаторах.

Логика, основанная на комбинаторах, или иллативная комбинаторная логика, строится из теории комбинаторов или лямбда-исчисления, расширенного дополнительными константами — экстра-константами, — вместе с соответствующими аксиомами и правилами вывода, которые обеспечивают средства дедуктивного вывода.
[править] Исторические комментарии

В 1920 году комбинаторы как специальные математические сущности[2] первоначально были установлены Шейнфинкелем[3]. Несколькими годами позже они независимо были переоткрыты Х.Карри[4], благодаря которому с тех пор были выполнены основные продвижения в комбинаторной логике (хотя другие исследователи, например, Россер, в различное время также участвовали в этой работе). Почти в то же самое время Черчем, Россером и Клини было начато развитие λ-конверсии. С 1970-х гг. комбинаторы использовались в трех главных аспектах: во-первых, для построения логических систем, основанных на абстрактной записи операции; во-вторых, в теории доказательств как основа записи конструктивных функций различного вида; в-третьих, при построении и анализе некоторых языков программирования в компьютерных науках.
[править] Примечания

↑ Curien P.-L. Categorical combinatory logic. — LNCS, 194, 1985, pp.~139-151.
↑ Cardone F., Hindley J.R. History of lambda calculus and combinators, in Handbook of the History of Logic, Volume 5, D M Gabbay and J Woods (eds) (Amsterdam: Elsevier Co., to appear).
↑ Schonfinkel M. Uber die Baustein der mathematischen Logik. — Math. Annalen, vol. 92, 1924, pp.~305-316.
↑ Curry H.B. Grundlagen der kombinatorischen Logik. American Journal of Mathematics, 52:509–536, 789–834, 1930.