연산 (수학)

섬네일 수학에서, **n항 연산**(n項演算, n-ary operation)은 어떤 집합 n개의 원소의 순서쌍을 이 집합의 하나의 원소로 대응시키는 함수다.
# 정의
집합 S와 음이 아닌 정수 n\in\mathbb Z_{\ge0}이 주어졌다고 하자. S 위의 **n항 연산**은 다음과 같은 함수이다. :F\colon S^{\times n}\to S 즉, 이는 임의의 S 위의 n조 \vec s\in S^{\times n}를 유일한 S의 원소 F(\vec s)\in S에 대응시킨다. 특히, S 위의 **영항 연산**(零項演算, 0-ary operation)은 S의 원소 s\in S이다. S 위의 **일항 연산**(一項演算, unary operation) 또는 **단항 연산**(單項演算)은 S 위의 함수 S\to S이다. S 위의 **이항 연산**(二項演算, binary operation)은 S의 두 원소로부터 S의 한 원소를 얻는 함수 S\times S\to S이다. 편의상 이항 연산을 **덧셈** 또는 **곱셈**이라고 하기도 한다. 이항 연산을 갖춘 집합을 **마그마**라고 한다. S 위의 **삼항 연산**(三項演算, ternary operation)은 S의 세 원소로부터 S의 한 원소를 얻는 함수 S\times S\times S\to S이다. 넓은 의미에서, **n항 연산**은 다음과 같은 함수이다. :F\colon S_0\times S_1\times\cdots\times S_{n-1}\to S 또한, 무한 순서수 항수를 허용하여 연산의 개념을 일반화할 수 있다. 이 경우, 원래의 항수가 유한한 연산을 **유한항 연산**(有限項演算, finitary operation)이라고 하며, 항수가 무한한 연산을 **무한항 연산**(無限項演算, infinitary operation)이라고 한다. 구체적으로, 집합 S와 순서수 \alpha\in\operatorname{Ord}에 대하여, S 위의 **\alpha항 연산**은 다음과 같은 함수이다. :F\colon S^{\times\alpha}\to S 넓은 의미에서, **\alpha항 연산**은 다음과 같은 함수이다. :F\colon\prod_{\beta<\alpha}S_\alpha\to S 연산은 관계의 특수한 경우이다.
## 연산에 대한 닫힘
집합 S 및 그 위의 n항 연산 F\colon S^{\times n}\to S가 주어졌다고 하자. S의 부분 집합 T\subset S가 다음 조건을 만족시키면, T가 **F에 대하여 닫혀있다**(F에對하여닫혀있다, closed under F)고 한다. * 임의의 \vec t\in T^{\times n}에 대하여, f(\vec t)\in T 또한, T\subset S의 F\colon S^{\times n}\to S에 대한 **폐포**(閉包, closure) \operatorname{cl}_FT는 F에 대하여 닫혀있는 최소 집합 T\subset\operatorname{cl}_FT\subset S이다. 즉, 이는 다음과 같다. :\operatorname{cl}_FT=T\cup F(T^{\times n})\cup F((T\cup F(T^{\times n}))^{\times n})\cup\cdots 보다 일반적으로, 집합 S 및 그 위의 연산의 부분 집합 \textstyle\mathcal F\subset\bigcup_{n=0}^\infty S^{S^{\times n이 주어졌다고 하자. T\subset S가 다음 조건을 만족시키면, **\mathcal F에 대하여 닫혀있다**(\mathcal F에對하여닫혀있다, closed under \mathcal F)고 한다. * 임의의 F\in\mathcal F에 대하여, T는 F에 대하여 닫혀있다. 또한, T\subset S의 \textstyle\mathcal F\subset\bigcup_{n=0}^\infty S^{S^{\times n에 대한 **폐포**(閉包, closure) \operatorname{cl}_\mathcal FT는 \mathcal F에 대하여 닫혀있는 최소 집합 T\subset\operatorname{cl}_\mathcal FT\subset S이다. :\operatorname{cl}_\mathcal FT=\bigcup_{k=0}^\infty\, \overbrace{\bigcup_{F\in\mathcal F}\operatorname{cl}_F \bigcup_{F\in\mathcal F}\operatorname{cl}_F\cdots \bigcup_{F\in\mathcal F}\operatorname{cl}_F}^k\,T
# 표기
연산의 표기법은 함수 표기법 이외에도 여러 가지가 있다. 자주 사용되는 표기법으로는 연산자를 피연산자의 앞에 배치하여 표기하는 전위 표기법(=폴란드 표기법), 연산자를 피연산자의 뒤에 배치하여 표기하는 후위 표기법(=역폴란드 표기법), 연산자를 두 피연산자의 사이에 표기하는 중위 표기법 따위가 있다. 일항 연산은 전위 표기법 -a(반수), \lnot p(부정) 또는 후위 표기법 n!(계승) 또는 함수 표기법 \sin(x)(사인) 등을 사용하여 표기할 수 있다. 연산자를 위 첨자 표기하는 방법 A^\operatorname T(전치 행렬)도 있다. 제곱근 \sqrt a의 경우, 연산자가 피연산자의 왼쪽과 위쪽에 걸쳐 위치한다. 이항 연산은 보통 함수 표기법 F(a,b) 대신 중위 표기법 a+b, a\cdot b를 사용하거나 연산자를 생략하는 방식 ab를 사용한다. 거듭제곱 a^b의 경우, 연산자를 생략하되 두 번째 변수인 지수를 위 첨자 표기한다. 전위 표기법 +\ a\ b, \cdot\ a\ b이나 후위 표기법 a\ b\ +, a\ b\ \cdot을 사용하기도 한다.
# 연산
주어진 연산으로부터, 새로운 연산을 다음과 같이 유도할 수 있다.
## 제한
S 위의 n항 연산 :F\colon S^{\times n}\to S 은 그에 대하여 닫혀있는 부분 집합 T\subset S 위에 새로운 n항 연산 :F|_T\colon T^{\times n}\to T :F|_T\colon\vec t\mapsto F(\vec t) 을 유도한다. 이를 F의 T에서의 **제한**(制限, restriction)이라고 한다.
## 멱집합 위에 유도되는 연산
n항 연산 :F\colon S^{\times n}\to S 는 멱집합 \mathcal P(S) 위에 다음과 같은 연산을 유도한다. :\tilde F\colon\mathcal P(S)^{\times n}\to\mathcal P(S) :\tilde F\colon\vec T\mapsto\\{F(\vec t)|t_i\in T_i\\} 즉, 이는 상을 취하는 연산이다. 이를 F에 의해 **멱집합 위에 유도되는 연산**이라고 한다.
## 점별 연산
n항 연산 :F\colon Y^{\times n}\to Y 은 함수 집합 Y^X 위에 다음과 같은 n항 연산을 유도한다. :\tilde F\colon(Y^X)^{\times n}\to Y^X :\tilde F\colon\vec f\mapsto(x\mapsto F(\vec f(x))) 이를 F에 대한 **점별 연산**(點別演算, pointwise operation)이라고 한다.
# 예

## 사칙 연산
사칙 연산 실수 집합 \mathbb R 위에 정의된 사칙 연산 가운데, * 덧셈 +\colon\mathbb R\times\mathbb R\to\mathbb R, (r,s)\mapsto r+s은 \mathbb R 위의 이항 연산이다. * 뺄셈 -\colon\mathbb R\times\mathbb R\to\mathbb R, (r,s)\mapsto r-s 역시 \mathbb R 위의 이항 연산이다. * 곱셈 \cdot\colon\mathbb R\times\mathbb R\to\mathbb R, (r,s)\mapsto rs 역시 \mathbb R 위의 이항 연산이다. * 그러나, 나눗셈 /\colon\mathbb R\times(\mathbb R\setminus\\{0\\})\to\mathbb R, (r,s)\mapsto r/s은 이항 연산이 아니다. 0으로 나누기가 정의되지 않았기 때문이다. 다만, 나눗셈은 넓은 의미에서 이항 연산이다. 자연수 집합 \mathbb N이 사칙 연산에 대하여 닫혀있는지의 여부는 각각 다음과 같다. * \mathbb N은 +에 대하여 닫혀있다. 즉, 임의의 m,n\in\mathbb N에 대하여, m+n\in\mathbb N이다. * \mathbb N은 -에 대하여 닫혀있지 않다. 예를 들어, 3,5\in\mathbb N이지만, 3-5=-2\not\in\mathbb N이다. 사실, \operatorname{cl}_-\mathbb N=\mathbb Z이다. (여기서 \mathbb Z는 정수 집합이다.) * \mathbb N은 \cdot에 대하여 닫혀있다. 즉, 임의의 m,n\in\mathbb N에 대하여, mn\in\mathbb N이다. * \mathbb N은 /에 대하여 닫혀있지 않다. 예를 들어, 2,5\in\mathbb N이지만, 2/5\not\in\mathbb N이다. 사실, \operatorname{cl}_/\mathbb N=\mathbb Q이다. (여기서 \mathbb Q는 유리수 집합이다.)
## 논리 연산
논리 연산 논리식의 논리합과 논리곱은 논리식 집합 위의 이항 연산이다. 논리식의 부정은 논리식 집합 위의 일항 연산이다.
## 군 위의 연산
군 G 위에 정의된 연산들 가운데, * 항등원 1_G\in G는 G 위의 영항 연산이다. * 곱셈 \cdot\colon G\times G\to G, (g,h)\mapsto gh는 G 위의 이항 연산이다. 이들에 의해 멱집합에 유도되는 연산들은 각각 다음과 같다. * 자명군 \\{1_G\\}\subset G * 임의의 H,K\subset G에 대하여, HK=\\{hk|h\in H,\;k\in K\\}\subset G ** 특히, 임의의 g\in G\supset H에 대하여, gH=\\{gh|h\in H\\}\subset G
## 벡터 공간 위의 연산
체 K 위의 벡터 공간 V에 정의된 연산들 가운데, * 영벡터 0_V\in V는 V 위의 영항 연산이다. * 벡터 덧셈 +\colon V\times V\to V, (v,w)\mapsto v+w은 V 위의 이항 연산이다. * 그러나, 스칼라 곱셈 \cdot\colon K\times V\to V, (a,v)\mapsto av은 이항 연산이 아니며, 넓은 의미의 이항 연산이다. 이를 일항 연산 a\cdot\colon V\to V, v\mapsto av (a\in K)의 집합으로 여길 수 있다. 이들은 각각 함수 집합 W^V 위에 점별 연산을 유도하며, 선형 변환 공간 \hom(V,W)\subset W^V은 이에 대하여 닫혀있다. 따라서 \hom(V,W) 위에 다음과 같은 점별 연산들이 유도된다. * 영선형 변환 0_{V,W}\colon V\to W, v\mapsto 0_W * 임의의 선형 변환 T,U\colon V\to W 및 벡터 v\in V에 대하여, (T+U)(v)=T(v)+U(v). 이를 점별 덧셈이라고 한다. * 임의의 선형 변환 T\colon V\to W 및 벡터 v\in V 및 스칼라 a\in K에 대하여, (aT)(v)=aT(v). 이를 점별 스칼라 곱셈이라고 한다.
## 관계
관계 (수학) n항 관계 :R\subseteq S^{\times n} 은 다음과 같은 특수한 n항 연산으로 여길 수 있다. :F\colon S^{\times n}\to2 :F\colon\vec s\mapsto \begin{cases} 1&\vec s\in R\\\ 0&\vec s\not\in R \end{cases}