수학에서 **연산**(演算, 영어: operation)은 공집합이 아닌 집합에서, 집합에 속하는 임의의 두 원소로부터 제3의 원소를 만드는 것이다. 또는, 연산자의 정의에 따라 한 개 이상의 피연산자를 계산하여 하나의 결과값(답)을 구하는 것이다. 피연산자 또는 항이 하나일 때 단항연산, 두 개일 때 이항연산, n개일 때 n항 연산이라고 한다.

정의
--

집합 S와 음이 아닌 정수 {\displaystyle n\in \mathbb {Z} \_{\geq 0}}이 주어졌다고 하자. S 위의 **n항 연산**(n項演算, 영어: n-ary operation)은 다음과 같은 함수이다.

{\displaystyle F\colon S^{\times n}\to S}
즉, 이는 임의의 S 위의 n조 {\displaystyle {\vec {s}}\in S^{\times n}}를 유일한 S의 원소 {\displaystyle 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의 한 원소를 얻는 함수 {\displaystyle S\times S\to S}이다. 편의상 이항 연산을 **덧셈** 또는 **곱셈**이라고 하기도 한다. 이항 연산을 갖춘 집합을 **마그마**라고 한다. S 위의 **삼항 연산**(三項演算, 영어: ternary operation)은 S의 세 원소로부터 S의 한 원소를 얻는 함수 {\displaystyle S\times S\times S\to S}이다.

넓은 의미에서, **n항 연산**은 다음과 같은 함수이다.

{\displaystyle 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 항 연산**은 다음과 같은 함수이다.

{\displaystyle F\colon S^{\times \alpha }\to S}
넓은 의미에서, **\alpha 항 연산**은 다음과 같은 함수이다.

{\displaystyle F\colon \prod \_{\beta <\alpha }S\_{\alpha }\to S}
연산은 관계의 특수한 경우이다.

### 연산에 대한 닫힘

집합 S 및 그 위의 n항 연산 {\displaystyle F\colon S^{\times n}\to S}가 주어졌다고 하자. S의 부분 집합 T\subset S가 다음 조건을 만족시키면, T가 **F에 대하여 닫혀있다**(F에對하여닫혀있다, 영어: closed under F)고 한다.

* 임의의 {\displaystyle {\vec {t}}\in T^{\times n}}에 대하여, {\displaystyle f({\vec {t}})\in T}

또한, T\subset S의 {\displaystyle F\colon S^{\times n}\to S}에 대한 **폐포**(閉包, 영어: closure) {\displaystyle \operatorname {cl} \_{F}T}는 F에 대하여 닫혀있는 최소 집합 {\displaystyle T\subset \operatorname {cl} \_{F}T\subset S}이다. 즉, 이는 다음과 같다.

{\displaystyle \operatorname {cl} \_{F}T=T\cup F(T^{\times n})\cup F((T\cup F(T^{\times n}))^{\times n})\cup \cdots }
보다 일반적으로, 집합 S 및 그 위의 연산의 부분 집합 {\displaystyle \textstyle {\mathcal {F}}\subset \bigcup \_{n=0}^{\infty }S^{S^{\times n}}}이 주어졌다고 하자. T\subset S가 다음 조건을 만족시키면, **{\mathcal F}에 대하여 닫혀있다**({\mathcal F}에對하여닫혀있다, 영어: closed under {\mathcal F})고 한다.

* 임의의 {\displaystyle F\in {\mathcal {F}}}에 대하여, T는 F에 대하여 닫혀있다.

또한, T\subset S의 {\displaystyle \textstyle {\mathcal {F}}\subset \bigcup \_{n=0}^{\infty }S^{S^{\times n}}}에 대한 **폐포**(閉包, 영어: closure) {\displaystyle \operatorname {cl} \_{\mathcal {F}}T}는 {\mathcal F}에 대하여 닫혀있는 최소 집합 {\displaystyle T\subset \operatorname {cl} \_{\mathcal {F}}T\subset S}이다.

{\displaystyle \operatorname {cl} \_{\mathcal {F}}T=\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}

표기
--

연산의 표기법은 함수 표기법 이외에도 여러 가지가 있다. 자주 사용되는 표기법으로는 연산자를 피연산자의 앞에 배치하여 표기하는 전위 표기법(=폴란드 표기법), 연산자를 피연산자의 뒤에 배치하여 표기하는 후위 표기법(=역폴란드 표기법), 연산자를 두 피연산자의 사이에 표기하는 중위 표기법 따위가 있다.

일항 연산은 전위 표기법 {\displaystyle -a}(반수), {\displaystyle \lnot p}(부정) 또는 후위 표기법 n!(계승) 또는 함수 표기법 \sin(x)(사인) 등을 사용하여 표기할 수 있다. 연산자를 위 첨자 표기하는 방법 {\displaystyle A^{\operatorname {T} }}(전치 행렬)도 있다. 제곱근 {\displaystyle {\sqrt {a}}}의 경우, 연산자가 피연산자의 왼쪽과 위쪽에 걸쳐 위치한다.

이항 연산은 보통 함수 표기법 {\displaystyle F(a,b)} 대신 중위 표기법 {\displaystyle a+b}, {\displaystyle a\cdot b}를 사용하거나 연산자를 생략하는 방식 ab를 사용한다. 거듭제곱 a^{b}의 경우, 연산자를 생략하되 두 번째 변수인 지수를 위 첨자 표기한다. 전위 표기법 {\displaystyle +\ a\ b}, {\displaystyle \cdot \ a\ b}이나 후위 표기법 {\displaystyle a\ b\ +}, {\displaystyle a\ b\ \cdot }을 사용하기도 한다.

연산
--

주어진 연산으로부터, 새로운 연산을 다음과 같이 유도할 수 있다.

### 제한

S 위의 n항 연산

{\displaystyle F\colon S^{\times n}\to S}
은 그에 대하여 닫혀있는 부분 집합 T\subset S 위에 새로운 n항 연산

{\displaystyle F|\_{T}\colon T^{\times n}\to T}
{\displaystyle F|\_{T}\colon {\vec {t}}\mapsto F({\vec {t}})}
을 유도한다. 이를 F의 T에서의 **제한**(制限, 영어: restriction)이라고 한다.

### 멱집합 위에 유도되는 연산

n항 연산

{\displaystyle F\colon S^{\times n}\to S}
는 멱집합 \mathcal P(S) 위에 다음과 같은 연산을 유도한다.

{\displaystyle {\tilde {F}}\colon {\mathcal {P}}(S)^{\times n}\to {\mathcal {P}}(S)}
{\displaystyle {\tilde {F}}\colon {\vec {T}}\mapsto \{F({\vec {t}})|t\_{i}\in T\_{i}\}}
즉, 이는 상을 취하는 연산이다. 이를 F에 의해 **멱집합 위에 유도되는 연산**이라고 한다.

### 점별 연산

n항 연산

{\displaystyle F\colon Y^{\times n}\to Y}
은 함수 집합 Y^{X} 위에 다음과 같은 n항 연산을 유도한다.

{\displaystyle {\tilde {F}}\colon (Y^{X})^{\times n}\to Y^{X}}
{\displaystyle {\tilde {F}}\colon {\vec {f}}\mapsto (x\mapsto F({\vec {f}}(x)))}
이를 F에 대한 **점별 연산**(點別演算, 영어: pointwise operation)이라고 한다.

예
-

### 사칙 연산

 이 부분의 본문은 사칙 연산입니다.
실수 집합 \mathbb {R}  위에 정의된 사칙 연산 가운데,

* 덧셈 {\displaystyle +\colon \mathbb {R} \times \mathbb {R} \to \mathbb {R} }, {\displaystyle (r,s)\mapsto r+s}은 \mathbb {R}  위의 이항 연산이다.
* 뺄셈 {\displaystyle -\colon \mathbb {R} \times \mathbb {R} \to \mathbb {R} }, {\displaystyle (r,s)\mapsto r-s} 역시 \mathbb {R}  위의 이항 연산이다.
* 곱셈 {\displaystyle \cdot \colon \mathbb {R} \times \mathbb {R} \to \mathbb {R} }, {\displaystyle (r,s)\mapsto rs} 역시 \mathbb {R}  위의 이항 연산이다.
* 그러나, 나눗셈 {\displaystyle /\colon \mathbb {R} \times (\mathbb {R} \setminus \{0\})\to \mathbb {R} }, {\displaystyle (r,s)\mapsto r/s}은 이항 연산이 아니다. 0으로 나누기가 정의되지 않았기 때문이다. 다만, 나눗셈은 넓은 의미에서 이항 연산이다.

자연수 집합 {\mathbb N}이 사칙 연산에 대하여 닫혀있는지의 여부는 각각 다음과 같다.

* {\mathbb N}은 +에 대하여 닫혀있다. 즉, 임의의 m,n\in {\mathbb N}에 대하여, {\displaystyle m+n\in \mathbb {N} }이다.
* {\mathbb N}은 -에 대하여 닫혀있지 않다. 예를 들어, {\displaystyle 3,5\in \mathbb {N} }이지만, {\displaystyle 3-5=-2\not \in \mathbb {N} }이다. 사실, {\displaystyle \operatorname {cl} \_{-}\mathbb {N} =\mathbb {Z} }이다. (여기서 \mathbb {Z} 는 정수 집합이다.)
* {\mathbb N}은 \cdot 에 대하여 닫혀있다. 즉, 임의의 m,n\in {\mathbb N}에 대하여, {\displaystyle mn\in \mathbb {N} }이다.
* {\mathbb N}은 {\displaystyle /}에 대하여 닫혀있지 않다. 예를 들어, {\displaystyle 2,5\in \mathbb {N} }이지만, {\displaystyle 2/5\not \in \mathbb {N} }이다. 사실, {\displaystyle \operatorname {cl} \_{/}\mathbb {N} =\mathbb {Q} }이다. (여기서 \mathbb {Q} 는 유리수 집합이다.)

### 논리 연산

 이 부분의 본문은 논리 연산입니다.
논리식의 논리합과 논리곱은 논리식 집합 위의 이항 연산이다. 논리식의 부정은 논리식 집합 위의 일항 연산이다.

### 군 위의 연산

군 G 위에 정의된 연산들 가운데,

* 항등원 1\_{G}\in G는 G 위의 영항 연산이다.
* 곱셈 \cdot \colon G\times G\to G, {\displaystyle (g,h)\mapsto gh}는 G 위의 이항 연산이다.

이들에 의해 멱집합에 유도되는 연산들은 각각 다음과 같다.

* 자명군 {\displaystyle \{1\_{G}\}\subset G}
* 임의의 {\displaystyle H,K\subset G}에 대하여, {\displaystyle HK=\{hk|h\in H,\;k\in K\}\subset G}
	+ 특히, 임의의 {\displaystyle g\in G\supset H}에 대하여, {\displaystyle gH=\{gh|h\in H\}\subset G}

### 벡터 공간 위의 연산

체 K 위의 벡터 공간 V에 정의된 연산들 가운데,

* 영벡터 {\displaystyle 0\_{V}\in V}는 V 위의 영항 연산이다.
* 벡터 덧셈 +\colon V\times V\to V, {\displaystyle (v,w)\mapsto v+w}은 V 위의 이항 연산이다.
* 그러나, 스칼라 곱셈 \cdot \colon K\times V\to V, {\displaystyle (a,v)\mapsto av}은 이항 연산이 아니며, 넓은 의미의 이항 연산이다. 이를 일항 연산 {\displaystyle a\cdot \colon V\to V}, {\displaystyle v\mapsto av} (a\in K)의 집합으로 여길 수 있다.

이들은 각각 함수 집합 {\displaystyle W^{V}} 위에 점별 연산을 유도하며, 선형 변환 공간 {\displaystyle \hom(V,W)\subset W^{V}}은 이에 대하여 닫혀있다. 따라서 {\displaystyle \hom(V,W)} 위에 다음과 같은 점별 연산들이 유도된다.

* 영선형 변환 {\displaystyle 0\_{V,W}\colon V\to W}, {\displaystyle v\mapsto 0\_{W}}
* 임의의 선형 변환 {\displaystyle T,U\colon V\to W} 및 벡터 v\in V에 대하여, {\displaystyle (T+U)(v)=T(v)+U(v)}. 이를 점별 덧셈이라고 한다.
* 임의의 선형 변환 T\colon V\to W 및 벡터 v\in V 및 스칼라 a\in K에 대하여, {\displaystyle (aT)(v)=aT(v)}. 이를 점별 스칼라 곱셈이라고 한다.

### 관계

 이 부분의 본문은 관계 (수학)입니다.
n항 관계

{\displaystyle R\subseteq S^{\times n}}
은 다음과 같은 특수한 n항 연산으로 여길 수 있다.

{\displaystyle F\colon S^{\times n}\to 2}
{\displaystyle F\colon {\vec {s}}\mapsto {\begin{cases}1&{\vec {s}}\in R\\0&{\vec {s}}\not \in R\end{cases}}}