{{위키데이터 속성 추적}}
[[파일:Binary operations as black box.svg|thumb]]
[[수학]]에서 '''연산'''(演算, {{llang|en|operation}})은 [[공집합]]이 아닌 집합에서, 집합에 속하는 임의의 두 원소로부터 제3의 원소를 만드는 것이다. 또는, [[연산자]]의 정의에 따라 한 개 이상의 [[피연산자]]를 계산하여 하나의 결과값(답)을 구하는 것이다. 피연산자 또는 항이 하나일 때 단항연산, 두 개일 때 [[이항연산]], n개일 때 n항 연산이라고 한다.

== 정의 ==
집합 <math>S</math>와 음이 아닌 정수 <math>n\in\mathbb Z_{\ge0}</math>이 주어졌다고 하자. <math>S</math> 위의 '''<math>n</math>항 연산'''(<math>n</math>項演算, {{llang|en|n-ary operation}})은 다음과 같은 함수이다.
:<math>F\colon S^{\times n}\to S</math>
즉, 이는 임의의 <math>S</math> 위의 <math>n</math>조 <math>\vec s\in S^{\times n}</math>를 유일한 <math>S</math>의 원소 <math>F(\vec s)\in S</math>에 대응시킨다. 특히, <math>S</math> 위의 '''영항 연산'''(零項演算, {{llang|en|0-ary operation}})은 <math>S</math>의 원소 <math>s\in S</math>이다. <math>S</math> 위의 '''일항 연산'''(一項演算, {{llang|en|unary operation}}) 또는 '''단항 연산'''(單項演算)은 <math>S</math> 위의 함수 <math>S\to S</math>이다. <math>S</math> 위의 '''이항 연산'''(二項演算, {{llang|en|binary operation}})은 <math>S</math>의 두 원소로부터 <math>S</math>의 한 원소를 얻는 함수 <math>S\times S\to S</math>이다. 편의상 이항 연산을 '''덧셈''' 또는 '''곱셈'''이라고 하기도 한다. 이항 연산을 갖춘 집합을 '''[[마그마 (수학)|마그마]]'''라고 한다. <math>S</math> 위의 '''삼항 연산'''(三項演算, {{llang|en|ternary operation}})은 <math>S</math>의 세 원소로부터 <math>S</math>의 한 원소를 얻는 함수 <math>S\times S\times S\to S</math>이다.

넓은 의미에서, '''<math>n</math>항 연산'''은 다음과 같은 함수이다.
:<math>F\colon S_0\times S_1\times\cdots\times S_{n-1}\to S</math>
또한, [[무한 순서수]] 항수를 허용하여 연산의 개념을 일반화할 수 있다. 이 경우, 원래의 항수가 유한한 연산을 '''유한항 연산'''(有限項演算, {{llang|en|finitary operation}})이라고 하며, 항수가 무한한 연산을 '''무한항 연산'''(無限項演算, {{llang|en|infinitary operation}})이라고 한다.

구체적으로, 집합 <math>S</math>와 [[순서수]] <math>\alpha\in\operatorname{Ord}</math>에 대하여, <math>S</math> 위의 '''<math>\alpha</math>항 연산'''은 다음과 같은 함수이다.
:<math>F\colon S^{\times\alpha}\to S</math>
넓은 의미에서, '''<math>\alpha</math>항 연산'''은 다음과 같은 함수이다.
:<math>F\colon\prod_{\beta<\alpha}S_\alpha\to S</math>

연산은 [[관계 (수학)|관계]]의 특수한 경우이다.

=== 연산에 대한 닫힘 ===
집합 <math>S</math> 및 그 위의 <math>n</math>항 연산 <math>F\colon S^{\times n}\to S</math>가 주어졌다고 하자. <math>S</math>의 [[부분 집합]] <math>T\subset S</math>가 다음 조건을 만족시키면, <math>T</math>가 '''<math>F</math>에 대하여 닫혀있다'''(<math>F</math>에對하여닫혀있다, {{llang|en|closed under <math>F</math>}})고 한다.
* 임의의 <math>\vec t\in T^{\times n}</math>에 대하여, <math>f(\vec t)\in T</math>
또한, <math>T\subset S</math>의 <math>F\colon S^{\times n}\to S</math>에 대한 '''폐포'''(閉包, {{llang|en|closure}}) <math>\operatorname{cl}_FT</math>는 <math>F</math>에 대하여 닫혀있는 최소 집합 <math>T\subset\operatorname{cl}_FT\subset S</math>이다. 즉, 이는 다음과 같다.
:<math>\operatorname{cl}_FT=T\cup F(T^{\times n})\cup F((T\cup F(T^{\times n}))^{\times n})\cup\cdots</math>
보다 일반적으로, 집합 <math>S</math> 및 그 위의 연산의 부분 집합 <math>\textstyle\mathcal F\subset\bigcup_{n=0}^\infty S^{S^{\times n}}</math>이 주어졌다고 하자. <math>T\subset S</math>가 다음 조건을 만족시키면, '''<math>\mathcal F</math>에 대하여 닫혀있다'''(<math>\mathcal F</math>에對하여닫혀있다, {{llang|en|closed under <math>\mathcal F</math>}})고 한다.
* 임의의 <math>F\in\mathcal F</math>에 대하여, <math>T</math>는 <math>F</math>에 대하여 닫혀있다.
또한, <math>T\subset S</math>의 <math>\textstyle\mathcal F\subset\bigcup_{n=0}^\infty S^{S^{\times n}}</math>에 대한 '''폐포'''(閉包, {{llang|en|closure}}) <math>\operatorname{cl}_\mathcal FT</math>는 <math>\mathcal F</math>에 대하여 닫혀있는 최소 집합 <math>T\subset\operatorname{cl}_\mathcal FT\subset S</math>이다.
:<math>\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</math>

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

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

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

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

=== 제한 ===
<math>S</math> 위의 <math>n</math>항 연산
:<math>F\colon S^{\times n}\to S</math>
은 그에 대하여 닫혀있는 부분 집합 <math>T\subset S</math> 위에 새로운 <math>n</math>항 연산
:<math>F|_T\colon T^{\times n}\to T</math>
:<math>F|_T\colon\vec t\mapsto F(\vec t)</math>
을 유도한다. 이를 <math>F</math>의 <math>T</math>에서의 '''제한'''(制限, {{llang|en|restriction}})이라고 한다.

=== 멱집합 위에 유도되는 연산 ===
<math>n</math>항 연산
:<math>F\colon S^{\times n}\to S</math>
는 [[멱집합]] <math>\mathcal P(S)</math> 위에 다음과 같은 연산을 유도한다.
:<math>\tilde F\colon\mathcal P(S)^{\times n}\to\mathcal P(S)</math>
:<math>\tilde F\colon\vec T\mapsto\{F(\vec t)|t_i\in T_i\}</math>
즉, 이는 [[상 (수학)|상]]을 취하는 연산이다. 이를 <math>F</math>에 의해 '''멱집합 위에 유도되는 연산'''이라고 한다.

=== 점별 연산 ===
<math>n</math>항 연산
:<math>F\colon Y^{\times n}\to Y</math>
은 함수 집합 <math>Y^X</math> 위에 다음과 같은 <math>n</math>항 연산을 유도한다.
:<math>\tilde F\colon(Y^X)^{\times n}\to Y^X</math>
:<math>\tilde F\colon\vec f\mapsto(x\mapsto F(\vec f(x)))</math>
이를 <math>F</math>에 대한 '''점별 연산'''(點別演算, {{llang|en|pointwise operation}})이라고 한다.

== 예 ==
=== 사칙 연산 ===
{{본문|사칙 연산}}
[[실수]] 집합 <math>\mathbb R</math> 위에 정의된 [[사칙 연산]] 가운데,
* [[덧셈]] <math>+\colon\mathbb R\times\mathbb R\to\mathbb R</math>, <math>(r,s)\mapsto r+s</math>은 <math>\mathbb R</math> 위의 이항 연산이다.
* [[뺄셈]] <math>-\colon\mathbb R\times\mathbb R\to\mathbb R</math>, <math>(r,s)\mapsto r-s</math> 역시 <math>\mathbb R</math> 위의 이항 연산이다.
* [[곱셈]] <math>\cdot\colon\mathbb R\times\mathbb R\to\mathbb R</math>, <math>(r,s)\mapsto rs</math> 역시 <math>\mathbb R</math> 위의 이항 연산이다.
* 그러나, [[나눗셈]] <math>/\colon\mathbb R\times(\mathbb R\setminus\{0\})\to\mathbb R</math>, <math>(r,s)\mapsto r/s</math>은 이항 연산이 아니다. [[0으로 나누기]]가 정의되지 않았기 때문이다. 다만, 나눗셈은 넓은 의미에서 이항 연산이다.
[[자연수]] 집합 <math>\mathbb N</math>이 사칙 연산에 대하여 닫혀있는지의 여부는 각각 다음과 같다.
* <math>\mathbb N</math>은 <math>+</math>에 대하여 닫혀있다. 즉, 임의의 <math>m,n\in\mathbb N</math>에 대하여, <math>m+n\in\mathbb N</math>이다.
* <math>\mathbb N</math>은 <math>-</math>에 대하여 닫혀있지 않다. 예를 들어, <math>3,5\in\mathbb N</math>이지만, <math>3-5=-2\not\in\mathbb N</math>이다. 사실, <math>\operatorname{cl}_-\mathbb N=\mathbb Z</math>이다. (여기서 <math>\mathbb Z</math>는 [[정수]] 집합이다.)
* <math>\mathbb N</math>은 <math>\cdot</math>에 대하여 닫혀있다. 즉, 임의의 <math>m,n\in\mathbb N</math>에 대하여, <math>mn\in\mathbb N</math>이다.
* <math>\mathbb N</math>은 <math>/</math>에 대하여 닫혀있지 않다. 예를 들어, <math>2,5\in\mathbb N</math>이지만, <math>2/5\not\in\mathbb N</math>이다. 사실, <math>\operatorname{cl}_/\mathbb N=\mathbb Q</math>이다. (여기서 <math>\mathbb Q</math>는 [[유리수]] 집합이다.)

=== 논리 연산 ===
{{본문|논리 연산}}
논리식의 [[논리합]]과 [[논리곱]]은 논리식 집합 위의 이항 연산이다. 논리식의 [[부정 (논리학)|부정]]은 논리식 집합 위의 일항 연산이다.

=== 군 위의 연산 ===
[[군 (수학)|군]] <math>G</math> 위에 정의된 연산들 가운데,
* [[항등원]] <math>1_G\in G</math>는 <math>G</math> 위의 영항 연산이다.
* 곱셈 <math>\cdot\colon G\times G\to G</math>, <math>(g,h)\mapsto gh</math>는 <math>G</math> 위의 이항 연산이다.
이들에 의해 멱집합에 유도되는 연산들은 각각 다음과 같다.
* [[자명군]] <math>\{1_G\}\subset G</math>
* 임의의 <math>H,K\subset G</math>에 대하여, <math>HK=\{hk|h\in H,\;k\in K\}\subset G</math>
** 특히, 임의의 <math>g\in G\supset H</math>에 대하여, <math>gH=\{gh|h\in H\}\subset G</math>

=== 벡터 공간 위의 연산 ===
[[체 (수학)|체]] <math>K</math> 위의 [[벡터 공간]] <math>V</math>에 정의된 연산들 가운데,
* [[영벡터]] <math>0_V\in V</math>는 <math>V</math> 위의 영항 연산이다.
* [[벡터 덧셈]] <math>+\colon V\times V\to V</math>, <math>(v,w)\mapsto v+w</math>은 <math>V</math> 위의 이항 연산이다.
* 그러나, [[스칼라 곱셈]] <math>\cdot\colon K\times V\to V</math>, <math>(a,v)\mapsto av</math>은 이항 연산이 아니며, 넓은 의미의 이항 연산이다. 이를 일항 연산 <math>a\cdot\colon V\to V</math>, <math>v\mapsto av</math> (<math>a\in K</math>)의 집합으로 여길 수 있다.
이들은 각각 함수 집합 <math>W^V</math> 위에 점별 연산을 유도하며, [[선형 변환]] 공간 <math>\hom(V,W)\subset W^V</math>은 이에 대하여 닫혀있다. 따라서 <math>\hom(V,W)</math> 위에 다음과 같은 점별 연산들이 유도된다.
* 영선형 변환 <math>0_{V,W}\colon V\to W</math>, <math>v\mapsto 0_W</math>
* 임의의 선형 변환 <math>T,U\colon V\to W</math> 및 벡터 <math>v\in V</math>에 대하여, <math>(T+U)(v)=T(v)+U(v)</math>. 이를 점별 덧셈이라고 한다.
* 임의의 선형 변환 <math>T\colon V\to W</math> 및 벡터 <math>v\in V</math> 및 스칼라 <math>a\in K</math>에 대하여, <math>(aT)(v)=aT(v)</math>. 이를 점별 스칼라 곱셈이라고 한다.

=== 관계 ===
{{본문|관계 (수학)}}
<math>n</math>항 관계
:<math>R\subseteq S^{\times n}</math>
은 다음과 같은 특수한 <math>n</math>항 연산으로 여길 수 있다.
:<math>F\colon S^{\times n}\to2</math>
:<math>F\colon\vec s\mapsto
\begin{cases}
1&\vec s\in R\\
0&\vec s\not\in R
\end{cases}</math>

== 같이 보기 ==
* [[관계 (수학)]]
* [[하이퍼 연산]]
* [[중위 표기법]]
* [[연산자]]
* [[연산의 우선순위]]
== 외부 링크 ==
* {{eom|title=Algebraic operation}}
* {{eom|title=Binary operation}}
* {{eom|title=Operand}}
* {{매스월드|id=Operation|title=Operation}}
* {{매스월드|id=UnaryOperation|title=Unary operation}}
* {{매스월드|id=BinaryOperation|title=Binary operation}}
* {{플래닛매스|urlname=operation|title=Operation}}
* {{플래닛매스|urlname=binaryoperation|title=Binary operation}}
* {{proofwiki|제목=Definition:Operation}}
* {{proofwiki|id=Definition:Subset Product|제목=Definition:Subset product}}

[[분류:대수학]]
[[분류:산술]]