Monoid as Category

2022. 10. 10. 00:00Functional Programming/Category Theory

반응형

Category 는 여러가지 종류가 있고 그것은 모양과 크기로 나타난다.

 

No Objects

개체가 없고 결과적으로 모피즘이 없는 범주

 

 

Simple Graphs

노드 상에서 가능한 모든 화살표를 그리는 것 

 

https://youtu.be/OUhKAOLoQZ4?t=153

 

Orders (순서, 정렬)

a <=b 이고 b <=c  이면 a <= c 작다 (Composition)

이것들도 category (범주) 라고 할 수 있을까?

일단 composition 은 가능한 걸로 확인되었으니

실제 연관 (Associative) 되었는지 확인 하자.

 

a<=b , b<=c 는 어느것을 먼저 처리해도 결과 적으로 a <= c 라는 결과를 가져온다.

그러므로 연관되어 있다.

 

Identity 를 가지고 있는가?

모든 객체는 자신보다 작거나 같다로 표현 가능 하다.

a <= a 가 성립한다 b <=b 가 성립한다. 즉 Identity 를 갖는다. 

이와 같은 관계를 갖는 집합을 preorder 라 하고 preorder 는 범주이다. 

 

preorder 은 개체에서 개체로 이동하는 최대 하나의 arrow 가 있는 범주다.

이러한 범주의 또 다른 이름은 Thin Category 이다.

 

Monoid as Set

  • value 들의 집합
  • 이진연산 (연관되어 있어야 하고)
  • Identity 요소

 

0 인 자연수는 덧셈에서 모노이드를 형성한다. 

 

Type 은 자연수 이고

 

덧셈은 이진연산이며

 

덧셈에서 연관은 아래와 같은 의미 이다.

(a + b) + c = a + (b + c)

덧셈에서 Identity 는 다음과 같다. 

0 + a = a = a + 0

그림으로 표현한다면 다음과 같다. 

 

문자열 concat 같은 경우도 같은 형태로 모노이드를 형성한다. 

단 문자열 같은 경우 Identity 는 0 이 아닌 빈 문자열 "" 이 된다. 

 

 

Monoid as Category

하나의 객체와 그 단일 객체에서 그 자체로 되돌아가는 (엔도-)펑터가 있는 범주이다.

단일 개체 Category 에서 항상 집합을 추출할 수 있고 이 집합은 모피즘의 집합이다. 

그래서 항상 Category monoid 에서 Set monoid 를 만들어 낼수 있고 이 둘은 동일하다.

 

단일 객체만 있는 범주(Category)의 속성은  Monoid 의 정의에 있는 속성과 정확히 동일하기 때문에

단일 객체를 포함하는 범주는 monoid 라고 할 수 있다. 

 

집합에서의 Monoid

 

 

하나의 객체를 갖는 범주

 

두 (monoid 와 하나의 객체를 갖는 Category)속성은 완전히 동일하다

 

하나의 객체와 여러개의 화살표가 있는 범주를 모노이드라고 한다. 

 

 

관련영상

https://youtu.be/q2_VGZCiOwY

 

반응형

'Functional Programming > Category Theory' 카테고리의 다른 글

Product and CoProduct  (0) 2022.10.24
Kleisli Catogories  (0) 2022.10.17
Types and Functions  (0) 2022.10.03
Category : The Essence of Composition (Category: Composition 의 본질)  (0) 2022.09.26
잠시 멈추어서...  (0) 2022.09.26