원문 캡처 · abuseofnotation.github.io
원문 캡처 · abuseofnotation.github.io

이 글은 모노이드의 결합법칙과 항등원부터 군·순환군·대칭군을 소개한 뒤, 모노이드가 하나의 대상만 가진 범주로 표현될 수 있음을 설명한다. 집합과 연산으로 정의하는 방식에 더해, 생성자와 관계식으로 구조를 나타내는 방법도 다룬다.

모노이드는 원소들의 집합과 두 원소를 하나로 결합하는 연산으로 이루어진다. 연산은 결합법칙을 만족해야 하며, 어떤 원소와 결합해도 다른 원소를 바꾸지 않는 항등원이 있어야 한다. 색을 섞는 예에서는 흰색 공(또는 투명한 공)을 항등원으로 들 수 있다. 집합에 연산을 어떻게 정의하느냐에 따라 같은 집합에서도 서로 다른 모노이드를 만들 수 있다.

자연수는 덧셈과 곱셈 각각에 대해 모노이드를 이룬다. 불리언 값 { True, False }에서는 논리곱과 논리합도 모노이드 연산이 된다. 반면 모든 원소에 역원이 있는 모노이드는 군이다. 정수의 덧셈에서는 각 수의 역원이 그 반대수다.

글은 삼각형의 회전처럼 도형의 위치를 바꾸지 않는 변환도 군으로 다룬다. 삼각형의 회전은 0도·120도·240도 회전으로 이루어지며, 이런 회전을 반복해 모든 원소를 만들 수 있는 군을 순환군이라고 한다. 회전 순환군은 모듈러 연산의 군과 대응하며, 같은 원소 수를 가진 순환군은 서로 동형이다. 두 군의 원소를 쌍으로 결합하면 곱군을 만들 수 있다. 예를 들어 두 개의 Z_2를 곱한 클라인 4원군은 가장 간단한 비순환 가환군이다. 회전과 반사를 함께 다루는 이면군은 비가환군의 예다.

핵심 연결은 모노이드를 하나의 대상만 가진 범주로 볼 수 있다는 점이다. 이때 모노이드의 원소는 사상, 항등원은 항등사상, 모노이드 연산은 사상의 합성에 해당한다. 반대로 하나의 대상만 가진 범주는 모노이드로 볼 수 있다. 글은 원소를 자기 집합에서 자기 집합으로 가는 함수로 나타내는 방식과, 생성자·관계식으로 모노이드를 정의하는 방식도 설명한다. 생성자가 하나이고 관계식이 없는 자유 모노이드는 자연수의 덧셈 모노이드와 동형이며, 생성자가 T인 자유 모노이드는 프로그래밍의 List<T>와 동형이라고 소개한다.

앞뒤 장은 이전 장과 다음 장에서 확인할 수 있다.