TCS에서 범주 이론의 견고한 응용 프로그램?


103

나는 몇 가지 범주 이론을 배우고 있습니다. 그것은 사물을 보는 다른 방법입니다. (이론을 보지 못한 사람들에 대한 매우 대략적인 요약 : 범주 이론은 객체 간의 기능적 관계 측면에서만 모든 종류의 수학적 행동을 표현하는 방법을 제공합니다. 예를 들어, 두 세트의 데카르트 곱과 같은 것은 완전히 어떤 요소가 집합의 구성원이 아닌 다른 기능이 어떻게 작동하는지)

카테고리 이론이 프로그래밍 언어 / 논리 ( "이론 B") 측면에서 유용하다는 알고리즘을 모호하게 이해하고 있으며 알고리즘과 복잡성 ( "이론 A")이 얼마나 많은 이점을 얻을 수 있는지 궁금합니다. 이론 B의 범주 이론에 대한 견고한 적용을 알고 있다면 이론적으로 벗어날 수 있습니다. (지금까지 이론 A에 적용 된 응용 프로그램이 없다고 가정하고 있지만 이미 그 중 일부가있는 경우에도 마찬가지입니다. 나를 위해 더 나은!)

"단단한 응용"이란 의미는 다음과 같습니다.

(1) 응용 분야는 카테고리 이론에 크게 의존하므로 기계를 사용하지 않고는 달성하기가 매우 어렵습니다.

(2) 응용 프로그램은 범주 이론 (예 : 요 네다의 정리)에 대한 최소한의 비 사소한 이론을 호출합니다.

(1)은 (2)를 의미하지만, 이것이 "실제"응용 프로그램인지 확인하고 싶습니다.

"이론 B"에 대한 배경 지식이 있지만 오랜 시간이 지났기 때문에 비 관용적 인 의견을 많이 주시면 감사하겠습니다.

(어떤 종류의 답변을 받았는지에 따라 나중에이 질문을 커뮤니티 위키로 바꿀 수 있습니다. 그러나 좋은 설명이있는 훌륭한 응용 프로그램을 원하므로 답변자에게 무언가를 보상하지 않는 것이 부끄러운 것 같습니다.)

답변:


79

프로그래밍 언어의 개방형 문제를 해결하기 위해 범주 이론이 직접 "적용된"예를 들면 Thorsten Altenkirch, Peter Dybjer, Martin Hofmann, Phil Scott, " 공산물 을 사용한 유형화 된 람다 미적분에 대한 평가에 의한 정규화"라고 생각할 수 있습니다. 요약 : "우리는 이진 코 프로덕트가있는 자유 데카르트 폐쇄 범주에 대한 단어 문제와 같이 강한 이진 합계를 사용하여 간단히 입력 된 람다 미적분에 대한 결정 문제를 해결합니다. 우리의 방법은 '평가에 의한 정규화'라는 의미 론적 기술을 기반으로하며 "구문 해석을 적절한 뭉치 모델로 변환하고 이로부터 적절한 고유 정규 형식을 추출합니다."

그러나 일반적으로 범주 이론은 프로그래밍 언어에서 깊이있는 이론을 증명하기 위해 적용되는 것이 아니라 (그다지 많지 않은), 대신에 종종 유용한 개념적 프레임 워크를 제공한다고 생각합니다. (pre) 뭉치 의미론의 아이디어).

중요한 역사적 예는 프로그래밍 언어 (예 : 상태, 비결정론)의 부작용에 대한 의미 론적 설명의 일부로 모나드 ( 모나드) 개념 (기본 이론에서 유비쿼터스) 을 사용할 수 있다는 Eugenio Moggi의 제안입니다 . 이것은 또한 프로그래밍 언어 의 구문 에 영향을 미쳤 으며, 예를 들어 Haskell 의 "Monad typeclass" 로 직접 이어집니다 (효과를 캡슐화하는 데 사용).

보다 최근 (지난 10 년) 모나드에 대한 효과에 대한이 설명은 모나드와 대수 이론 사이의 오래된 연결 (60 년대 카테고리 이론가에 의해 확립 된) 관점에서 다시 검토되었다 : Martin Hyland and John Power 's , "범용 대수의 범주 이론적 이해 : Lawvere Theory and Monads" . 아이디어는 효과에 대한 모나드 관점이 효과에 대한 대수적 관점과 호환 될 수 있으며, 효과 (예 : 저장)는 작업 (예 : "조회"및 "업데이트")으로 설명 될 수 있습니다. 및 관련 방정식 (예를 들어, 업데이트의 dem 등식). Paul-André Melliès의이 연결에 대한 최근의 종이 건물이 있습니다. "Segal 조건은 계산 효과를 충족시킵니다."또한 "더 높은 카테고리 이론" (예를 들어, 뭉치 의미론을 구성하는 방법으로 "요 네다 구조"의 개념) 에서 나오는 아이디어에 크게 의존합니다 .

또 다른 관련 클래스 예는 선형 논리 에서 비롯됩니다 . Jean-Yves Girard가 80 년대에 (이론적 논리를 더 잘 이해하기 위해) 도입 한 직후, 범주 이론과의 견고한 연결이 확립되었습니다. 이 연결에 대한 설명은 John Baez와 Mike Stay의 "물리학, 토폴로지, 논리 및 계산 : Rosetta Stone"을 참조하십시오 .

마지막으로,이 답변은 sigfpe의 블로그 "A Neighborhood of infinity" 를 참조하지 않으면 불완전 합니다. 특히 "Haskell에 적용된 일부 범주 이론의 부분 순서"를 확인할 수 있습니다 .


3
안녕 Noam, 그 훌륭한 답변 후, 귀하의 담당자가 링크를 추가 할만 큼 높은 것 같아요!
Suresh Venkat

나는 초보자와 같은 문제에 직면했다. 방금 답변을 투표하기 위해 기다렸다가 링크를 넣었습니다. 당신은 ... 동일 할 수
안드레이 바우어

10
감사! 하이퍼 링크 제한에 대해 죄송합니다 ... 시스템에 "yo, 나는 Noam Zeilberger, 나는 합법적"이라고 말할 방법이 있었으면 좋겠다
Ryan Williams

링크를 추가했습니다! 예, 그것은 완전히 합리적인 정책입니다. 때로는 방해가됩니다.
Noam Zeilberger

46

양자 계산

매우 흥미로운 영역 중 하나는 양자 계산에 다양한 단일 범주를 적용하는 것입니다. 일부는 이것이 물리라고 주장 할 수도 있지만,이 작업은 컴퓨터 과학 부서의 사람들이 수행합니다. 이 분야의 초기 논문은 Samson Abramsky와 Bob Coecke 의 양자 프로토콜의 범주 적 의미론입니다 . AbramskyCoecke의 최근 논문들 과 다른 논문 들은이 방향으로 계속 연구하고 있습니다.

이 작업 본문에서 양자 프로토콜은 (종종의) 소형 폐쇄 범주로 공리 화됩니다. 이러한 범주에는 문자열 (및 리본) 다이어그램 측면에서 아름다운 그래픽 언어가 있습니다. 이 범주의 방정식은 얽힌 매듭이없는 끈을 곧게 펴는 것과 같이 끈의 특정 움직임에 해당합니다.

범주 형 접근 방식은 일반적으로 매우 낮은 수준의 계산과 관련하여 높은 수준의 논리적 관점을 제공합니다.

시스템 이론

FF

그래프 변환

G1,G2Pe1:PG1e2:PG2G1G2G1G2P

(L,K,R)LRKl:KLr:KRLKRKdKDdlGdk

프로그래밍 언어 (MathOverflow를 통해)

프로그래밍 언어와 프로그래밍 언어 이론의 설계에는 범주 이론의 응용이 많이 있습니다. 광범위한 답변은 MathOverflow에서 찾을 수 있습니다. https://mathoverflow.net/questions/3721/programming-languages-based-on-category-theory ) https://mathoverflow.net/questions/4235/related-category-theory-to-programming-language-theory .

전기-프로세스 계산

마지막으로, 상호 작용하는 시스템에 대해 설명하고 추론하기위한 일반적인 프레임 워크 인 Milner의 전기 가 있습니다. 그것은 프로세스 대수와 그 구조 및 행동 이론에 대한 추론을위한 일반적인 틀로 볼 수 있습니다. 이 접근 방식은 푸시 아웃을 기반으로합니다.


35

나는 이미 이론 A에 지금까지 발견 된 응용 프로그램이 없다고 가정하고 있지만, 그중 일부가 있다면 나에게 더 좋습니다!

  • 내 이해는 Joyal의 종에 대한 이론이 열거 조합론에서 비교적 널리 사용된다는 것입니다.

  • Pippenger는 Stone 이중성을 적용하여 일반 언어 및 다양한 반 그룹을 연결합니다. Jeandel은이 개념을 적용하여 양자, 확률 론적, 평범한 오토마타에 대한 통일 된 설명과 증거를 제공하기 위해 위상 오토마타를 도입했습니다.

  • Roland Backhouse는 열대 세미 링과 Galois 연결을 통해 욕심 많은 알고리즘의 추상적 특성을 부여했습니다.

훨씬 더 투기적인 정맥에서 Noam은 뭉치 모델을 언급했습니다. 이것들은 논리적 관계의 구문 기술을 추상적으로 특징 짓는데, 이것은 아마도 의미론에서 가장 강력한 기술 중 하나 일 것이다. 우리는 대부분 표현력과 일관성 결과를 증명하기 위해 그것들을 사용하지만, 그것은 복잡하지 않은 이론가들에게는 흥미 롭습니다. 왜냐하면 그것은 비 자연적 (Razborov / Rudich의 의미) 증명 기술의 좋은 예이기 때문입니다. (단, 논리 관계는 일반적으로 매우 신중하게하도록 설계 보장 그들이 상대화 것을! - 언어 디자이너로, 우리는 전화가 블랙 박스입니다 기능 프로그래머를 보장 할 수있게하려면)

편집 : 나는 Ryan의 요청에 따라 계속 추측 할 것입니다. 내가 이해하는 바와 같이, 자연적 증거는 다양한 합리적인 조건에 따라 회로 구조의 유도 불변을 정의하려고 시도하는 선을 따라 대략 1입니다. 람다 미적분학 용어 (예를 들어, 타입 안전성을 증명하기 위해)에 의해 유도 적으로 유지되는 불변을 정의하려고 할 때 프로그래밍 언어에서도 비슷한 아이디어가 매우 일반적입니다. 1

ABABA

ABAB. 단일 유도 불변은 없습니다. 우리는 입력 구조에 대한 재귀를 통해 전체 불변 패밀리를 정의하고 다른 수단을 사용하여 모든 항이 이러한 불변 내에 있음을 보여줍니다. 이론적으로 이것은 훨씬 강력한 기술이므로 일관성 결과를 입증 할 수 있습니다.

시브와의 연결은 개방형 용어 (예 : 자유 변수가있는 용어)에 대해 추론해야하므로 오류로 인해 멈춤과 변수를 줄여야하므로 갇히는 것을 구분해야합니다. 시브는 람다 미적분의 감소를 용어가 객체 인 범주의 형태 (즉, 축소에 의해 유도 된 부분 순서)를 정의한 다음이 범주의 함수를 세트 (예 : 술어)로 고려하여 발생합니다. Jean Gallier는 2000 년대 초에 이것에 관한 멋진 논문을 썼지 만, 이미 많은 양의 람다 미적분을 동화시키지 않으면 읽을 수 없을 것입니다.


1
Backhouse 논문에 대한 참조를 해 주시겠습니까? 그는 제목에 "Galois connection"이라는 언급이 있지만, 빠른 검색으로 욕심 많은 알고리즘에 관한 것이 무엇인지 밝혀 내지 못했습니다. 욕심 많은 알고리즘에 대해 어느 것이 "정말"인지 쉽게 알 수 있습니다). 감사!
Joshua Grochow

1
Joshua의 질문과 함께 뭉치 모델과 논리적 관계가 자연적인 증거와 어떤 관련이 있는지에 관심이 있습니다.
Ryan Williams

Re : Stone 이원성, 최근 흥미로운 작품에 대해서는 Mai Gehrke의 "대 수법을 통한 스톤 이원성 및 인식 가능한 언어"( math.ru.nl/~mgehrke/Ge09.pdf )와 Gehrke, Grigorieff 및 Pin의 "인식에 대한 위상 적 접근"을 참조하십시오. "( math.ru.nl/~mgehrke/GGP10.pdf )
Noam Zeilberger

다시 : Gallier, 당신은 90 년대 후반을 의미합니다 ( sciencedirect.com/science/article/pii/0304397594002800 ?)
Blaisorblade

24

많은 예, 마음에 오는 첫 번째입니다있다 알렉스 심슨 "예를 참조 프로그래밍 언어의 속성을 증명하는 카테고리 이론의 사용 으로 intuitionistic 설정 이론 모델에서 재귀 유형에 대한 전산 적정성은 "순수 및 응용 로직의 실록 제목에 설정된 이론이 언급되어 있지만 기술은 범주 이론적입니다. 더 많은 예는 Alex의 홈페이지를 참조하십시오.


심판들에게 감사하지만 "내가 얻을 수없는 범주 이론을 사용하여 얻은 결과는 무엇입니까?"
Ryan Williams

사실, 당신은하지 않았다. 내 답변을 편집했습니다.
Andrej Bauer

11

적용 가능성에 대한 두 가지 질문, 유형 A와 유형 B를 별도로 묻는 것 같습니다.

아시다시피, 유형 B 주제에 대한 범주 이론의 많은 실질적인 응용이 있습니다.

그러나 이론 A (알고리즘 또는 복잡성)에 대한 실질적인 적용은 거의없는 것으로 보인다.

오토마타 또는 조합 객체 (그래프, 시퀀스, 순열 등)의 범주를 설명하는 등의 기본 객체에는 몇 가지 용도가 있습니다. 그러나 이것들은 언어 이론이나 알고리즘에 대한 깊은 이해를 설명하지는 않습니다.

추측 적으로, 그것은 범주 이론과 이론 A 주제의 현재 전략 사이에 불일치가 될 수 있습니다.

  • 범주 이론의 중심 전략은 평등을 다루는 것입니다 (일이 같을 때와 다른 경우 및 서로 매핑되는 방식).

  • 복잡성 이론의 주요 전략은 축소와 경계 설정입니다. 축소는 화살표와 같다고 생각하지만이 표면적 유사성을 넘어서는 어떤 것도 연구되지 않았다고 생각합니다.

  • 알고리즘의 경우 임시 영리한 조합 사고 이외의 다른 전략은 없습니다. 특정 영역의 경우, 유익한 탐색 (대수 알고리즘)이있을 것으로 예상되지만 아직 보지 못했습니다.


2
감소는 Goedel의 Dialectica 해석의 범주 재구성과 선형 논리의 의미와 관련이 있음이 밝혀졌습니다. Andreas Blass의 "질문과 답변-선형 논리, 복잡성 이론 및 설정 이론에서 발생하는 범주"를 참조하십시오. math.lsa.umich.edu/~ablass/qa.pdf
Neel Krishnaswami

3

내 생각에 떠오른 "TCS-A"응용 프로그램은 Joyal의 조합 종 (나무, 세트, ​​다중 집합 등과 같은 조합 객체를 설명하기 위해 펑터에 대한 파워 시리즈의 일반화) 및 관계형을 사용하여 암호화 "게임 호핑"의 형식화, 확률 론적 Hoare 논리 (Easycrypt, Certicrypt, Andreas Lochbihler의 작품). 카테고리는 후자에 직접 나타나지 않지만 기본 로직 (예 : 모나드)의 개발에 중요한 역할을합니다.

추신 : 첫 번째 답변에서 내 이름이 언급되었으므로 Thomas Streicher의 Martin-Löf 유형 이론에서 특정 공리의 비가역성을 보여주기 위해 그룹 형의 섬유를 사용하고 나 자신도 범주 이론의 "고체"사용으로 간주 될 수 있습니다 논리 또는 "TCS-B").


3

가장 최근의 작문 인 Seven Sketches in Compositionity 에는 컴퓨터 과학 및 공학 분야의 범주 이론에 대한 여러 응용 프로그램이 나열되어 있습니다. 저자가 범주 형 모델을 기반으로 데이터베이스 쿼리, 결합, 마이그레이션 및 진화를 설명하는 데이터베이스에 관한 장이 주목할 만하다. 저자는이를 더 발전시켜 범주 형 데이터베이스 모델을 기반으로 CQL ( 범주 형 쿼리 언어 ) 및 IDE (통합 개발 환경)를 개발했습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.