수학 에서 연산 (演算, 영어 : operation )은 공집합 이 아닌 집합에서, 집합에 속하는 임의의 두 원소로부터 제3의 원소를 만드는 것이다. 또는, 연산자 의 정의에 따라 한 개 이상의 피연산자 를 계산하여 하나의 결과값(답)을 구하는 것이다. 피연산자 또는 항이 하나일 때 단항연산, 두 개일 때 이항연산 , n개일 때 n항 연산이라고 한다.
집합
S
{\displaystyle S}
와 음이 아닌 정수
n
∈
Z
≥
0
{\displaystyle n\in \mathbb {Z} _{\geq 0}}
이 주어졌다고 하자.
S
{\displaystyle S}
위의
n
{\displaystyle n}
항 연산 (
n
{\displaystyle n}
項演算, 영어 : n-ary operation )은 다음과 같은 함수이다.
F
:
S
×
n
→
S
{\displaystyle F\colon S^{\times n}\to S}
즉, 이는 임의의
S
{\displaystyle S}
위의
n
{\displaystyle n}
조
s
→
∈
S
×
n
{\displaystyle {\vec {s}}\in S^{\times n}}
를 유일한
S
{\displaystyle S}
의 원소
F
(
s
→
)
∈
S
{\displaystyle F({\vec {s}})\in S}
에 대응시킨다. 특히,
S
{\displaystyle S}
위의 영항 연산 (零項演算, 영어 : 0-ary operation )은
S
{\displaystyle S}
의 원소
s
∈
S
{\displaystyle s\in S}
이다.
S
{\displaystyle S}
위의 일항 연산 (一項演算, 영어 : unary operation ) 또는 단항 연산 (單項演算)은
S
{\displaystyle S}
위의 함수
S
→
S
{\displaystyle S\to S}
이다.
S
{\displaystyle S}
위의 이항 연산 (二項演算, 영어 : binary operation )은
S
{\displaystyle S}
의 두 원소로부터
S
{\displaystyle S}
의 한 원소를 얻는 함수
S
×
S
→
S
{\displaystyle S\times S\to S}
이다. 편의상 이항 연산을 덧셈 또는 곱셈 이라고 하기도 한다. 이항 연산을 갖춘 집합을 마그마 라고 한다.
S
{\displaystyle S}
위의 삼항 연산 (三項演算, 영어 : ternary operation )은
S
{\displaystyle S}
의 세 원소로부터
S
{\displaystyle S}
의 한 원소를 얻는 함수
S
×
S
×
S
→
S
{\displaystyle S\times S\times S\to S}
이다.
넓은 의미에서,
n
{\displaystyle n}
항 연산 은 다음과 같은 함수이다.
F
:
S
0
×
S
1
×
⋯
×
S
n
−
1
→
S
{\displaystyle F\colon S_{0}\times S_{1}\times \cdots \times S_{n-1}\to S}
또한, 무한 순서수 항수를 허용하여 연산의 개념을 일반화할 수 있다. 이 경우, 원래의 항수가 유한한 연산을 유한항 연산 (有限項演算, 영어 : finitary operation )이라고 하며, 항수가 무한한 연산을 무한항 연산 (無限項演算, 영어 : infinitary operation )이라고 한다.
구체적으로, 집합
S
{\displaystyle S}
와 순서수
α
∈
Ord
{\displaystyle \alpha \in \operatorname {Ord} }
에 대하여,
S
{\displaystyle S}
위의
α
{\displaystyle \alpha }
항 연산 은 다음과 같은 함수이다.
F
:
S
×
α
→
S
{\displaystyle F\colon S^{\times \alpha }\to S}
넓은 의미에서,
α
{\displaystyle \alpha }
항 연산 은 다음과 같은 함수이다.
F
:
∏
β
<
α
S
α
→
S
{\displaystyle F\colon \prod _{\beta <\alpha }S_{\alpha }\to S}
연산은 관계 의 특수한 경우이다.
집합
S
{\displaystyle S}
및 그 위의
n
{\displaystyle n}
항 연산
F
:
S
×
n
→
S
{\displaystyle F\colon S^{\times n}\to S}
가 주어졌다고 하자.
S
{\displaystyle S}
의 부분 집합
T
⊂
S
{\displaystyle T\subset S}
가 다음 조건을 만족시키면,
T
{\displaystyle T}
가
F
{\displaystyle F}
에 대하여 닫혀있다 (
F
{\displaystyle F}
에對하여닫혀있다, 영어 : closed under
F
{\displaystyle F}
)고 한다.
임의의
t
→
∈
T
×
n
{\displaystyle {\vec {t}}\in T^{\times n}}
에 대하여,
f
(
t
→
)
∈
T
{\displaystyle f({\vec {t}})\in T}
또한,
T
⊂
S
{\displaystyle T\subset S}
의
F
:
S
×
n
→
S
{\displaystyle F\colon S^{\times n}\to S}
에 대한 폐포 (閉包, 영어 : closure )
cl
F
T
{\displaystyle \operatorname {cl} _{F}T}
는
F
{\displaystyle F}
에 대하여 닫혀있는 최소 집합
T
⊂
cl
F
T
⊂
S
{\displaystyle T\subset \operatorname {cl} _{F}T\subset S}
이다. 즉, 이는 다음과 같다.
cl
F
T
=
T
∪
F
(
T
×
n
)
∪
F
(
(
T
∪
F
(
T
×
n
)
)
×
n
)
∪
⋯
{\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 S}
및 그 위의 연산의 부분 집합
F
⊂
⋃
n
=
0
∞
S
S
×
n
{\displaystyle \textstyle {\mathcal {F}}\subset \bigcup _{n=0}^{\infty }S^{S^{\times n}}}
이 주어졌다고 하자.
T
⊂
S
{\displaystyle T\subset S}
가 다음 조건을 만족시키면,
F
{\displaystyle {\mathcal {F}}}
에 대하여 닫혀있다 (
F
{\displaystyle {\mathcal {F}}}
에對하여닫혀있다, 영어 : closed under
F
{\displaystyle {\mathcal {F}}}
)고 한다.
임의의
F
∈
F
{\displaystyle F\in {\mathcal {F}}}
에 대하여,
T
{\displaystyle T}
는
F
{\displaystyle F}
에 대하여 닫혀있다.
또한,
T
⊂
S
{\displaystyle T\subset S}
의
F
⊂
⋃
n
=
0
∞
S
S
×
n
{\displaystyle \textstyle {\mathcal {F}}\subset \bigcup _{n=0}^{\infty }S^{S^{\times n}}}
에 대한 폐포 (閉包, 영어 : closure )
cl
F
T
{\displaystyle \operatorname {cl} _{\mathcal {F}}T}
는
F
{\displaystyle {\mathcal {F}}}
에 대하여 닫혀있는 최소 집합
T
⊂
cl
F
T
⊂
S
{\displaystyle T\subset \operatorname {cl} _{\mathcal {F}}T\subset S}
이다.
cl
F
T
=
⋃
k
=
0
∞
⋃
F
∈
F
cl
F
⋃
F
∈
F
cl
F
⋯
⋃
F
∈
F
cl
F
⏞
k
T
{\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}
연산의 표기법은 함수 표기법 이외에도 여러 가지가 있다. 자주 사용되는 표기법으로는 연산자를 피연산자의 앞에 배치하여 표기하는 전위 표기법 (=폴란드 표기법 ), 연산자를 피연산자의 뒤에 배치하여 표기하는 후위 표기법 (=역폴란드 표기법 ), 연산자를 두 피연산자의 사이에 표기하는 중위 표기법 따위가 있다.
일항 연산은 전위 표기법
−
a
{\displaystyle -a}
(반수 ),
¬
p
{\displaystyle \lnot p}
(부정 ) 또는 후위 표기법
n
!
{\displaystyle n!}
(계승 ) 또는 함수 표기법
sin
(
x
)
{\displaystyle \sin(x)}
(사인 ) 등을 사용하여 표기할 수 있다. 연산자를 위 첨자 표기하는 방법
A
T
{\displaystyle A^{\operatorname {T} }}
(전치 행렬 )도 있다. 제곱근
a
{\displaystyle {\sqrt {a}}}
의 경우, 연산자가 피연산자의 왼쪽과 위쪽에 걸쳐 위치한다.
이항 연산은 보통 함수 표기법
F
(
a
,
b
)
{\displaystyle F(a,b)}
대신 중위 표기법
a
+
b
{\displaystyle a+b}
,
a
⋅
b
{\displaystyle a\cdot b}
를 사용하거나 연산자를 생략하는 방식
a
b
{\displaystyle ab}
를 사용한다. 거듭제곱
a
b
{\displaystyle a^{b}}
의 경우, 연산자를 생략하되 두 번째 변수인 지수를 위 첨자 표기한다. 전위 표기법
+
a
b
{\displaystyle +\ a\ b}
,
⋅
a
b
{\displaystyle \cdot \ a\ b}
이나 후위 표기법
a
b
+
{\displaystyle a\ b\ +}
,
a
b
⋅
{\displaystyle a\ b\ \cdot }
을 사용하기도 한다.
주어진 연산으로부터, 새로운 연산을 다음과 같이 유도할 수 있다.
S
{\displaystyle S}
위의
n
{\displaystyle n}
항 연산
F
:
S
×
n
→
S
{\displaystyle F\colon S^{\times n}\to S}
은 그에 대하여 닫혀있는 부분 집합
T
⊂
S
{\displaystyle T\subset S}
위에 새로운
n
{\displaystyle n}
항 연산
F
|
T
:
T
×
n
→
T
{\displaystyle F|_{T}\colon T^{\times n}\to T}
F
|
T
:
t
→
↦
F
(
t
→
)
{\displaystyle F|_{T}\colon {\vec {t}}\mapsto F({\vec {t}})}
을 유도한다. 이를
F
{\displaystyle F}
의
T
{\displaystyle T}
에서의 제한 (制限, 영어 : restriction )이라고 한다.
n
{\displaystyle n}
항 연산
F
:
S
×
n
→
S
{\displaystyle F\colon S^{\times n}\to S}
는 멱집합
P
(
S
)
{\displaystyle {\mathcal {P}}(S)}
위에 다음과 같은 연산을 유도한다.
F
~
:
P
(
S
)
×
n
→
P
(
S
)
{\displaystyle {\tilde {F}}\colon {\mathcal {P}}(S)^{\times n}\to {\mathcal {P}}(S)}
F
~
:
T
→
↦
{
F
(
t
→
)
|
t
i
∈
T
i
}
{\displaystyle {\tilde {F}}\colon {\vec {T}}\mapsto \{F({\vec {t}})|t_{i}\in T_{i}\}}
즉, 이는 상 을 취하는 연산이다. 이를
F
{\displaystyle F}
에 의해 멱집합 위에 유도되는 연산 이라고 한다.
n
{\displaystyle n}
항 연산
F
:
Y
×
n
→
Y
{\displaystyle F\colon Y^{\times n}\to Y}
은 함수 집합
Y
X
{\displaystyle Y^{X}}
위에 다음과 같은
n
{\displaystyle n}
항 연산을 유도한다.
F
~
:
(
Y
X
)
×
n
→
Y
X
{\displaystyle {\tilde {F}}\colon (Y^{X})^{\times n}\to Y^{X}}
F
~
:
f
→
↦
(
x
↦
F
(
f
→
(
x
)
)
)
{\displaystyle {\tilde {F}}\colon {\vec {f}}\mapsto (x\mapsto F({\vec {f}}(x)))}
이를
F
{\displaystyle F}
에 대한 점별 연산 (點別演算, 영어 : pointwise operation )이라고 한다.
실수 집합
R
{\displaystyle \mathbb {R} }
위에 정의된 사칙 연산 가운데,
덧셈
+
:
R
×
R
→
R
{\displaystyle +\colon \mathbb {R} \times \mathbb {R} \to \mathbb {R} }
,
(
r
,
s
)
↦
r
+
s
{\displaystyle (r,s)\mapsto r+s}
은
R
{\displaystyle \mathbb {R} }
위의 이항 연산이다.
뺄셈
−
:
R
×
R
→
R
{\displaystyle -\colon \mathbb {R} \times \mathbb {R} \to \mathbb {R} }
,
(
r
,
s
)
↦
r
−
s
{\displaystyle (r,s)\mapsto r-s}
역시
R
{\displaystyle \mathbb {R} }
위의 이항 연산이다.
곱셈
⋅
:
R
×
R
→
R
{\displaystyle \cdot \colon \mathbb {R} \times \mathbb {R} \to \mathbb {R} }
,
(
r
,
s
)
↦
r
s
{\displaystyle (r,s)\mapsto rs}
역시
R
{\displaystyle \mathbb {R} }
위의 이항 연산이다.
그러나, 나눗셈
/
:
R
×
(
R
∖
{
0
}
)
→
R
{\displaystyle /\colon \mathbb {R} \times (\mathbb {R} \setminus \{0\})\to \mathbb {R} }
,
(
r
,
s
)
↦
r
/
s
{\displaystyle (r,s)\mapsto r/s}
은 이항 연산이 아니다. 0으로 나누기 가 정의되지 않았기 때문이다. 다만, 나눗셈은 넓은 의미에서 이항 연산이다.
자연수 집합
N
{\displaystyle \mathbb {N} }
이 사칙 연산에 대하여 닫혀있는지의 여부는 각각 다음과 같다.
N
{\displaystyle \mathbb {N} }
은
+
{\displaystyle +}
에 대하여 닫혀있다. 즉, 임의의
m
,
n
∈
N
{\displaystyle m,n\in \mathbb {N} }
에 대하여,
m
+
n
∈
N
{\displaystyle m+n\in \mathbb {N} }
이다.
N
{\displaystyle \mathbb {N} }
은
−
{\displaystyle -}
에 대하여 닫혀있지 않다. 예를 들어,
3
,
5
∈
N
{\displaystyle 3,5\in \mathbb {N} }
이지만,
3
−
5
=
−
2
∉
N
{\displaystyle 3-5=-2\not \in \mathbb {N} }
이다. 사실,
cl
−
N
=
Z
{\displaystyle \operatorname {cl} _{-}\mathbb {N} =\mathbb {Z} }
이다. (여기서
Z
{\displaystyle \mathbb {Z} }
는 정수 집합이다.)
N
{\displaystyle \mathbb {N} }
은
⋅
{\displaystyle \cdot }
에 대하여 닫혀있다. 즉, 임의의
m
,
n
∈
N
{\displaystyle m,n\in \mathbb {N} }
에 대하여,
m
n
∈
N
{\displaystyle mn\in \mathbb {N} }
이다.
N
{\displaystyle \mathbb {N} }
은
/
{\displaystyle /}
에 대하여 닫혀있지 않다. 예를 들어,
2
,
5
∈
N
{\displaystyle 2,5\in \mathbb {N} }
이지만,
2
/
5
∉
N
{\displaystyle 2/5\not \in \mathbb {N} }
이다. 사실,
cl
/
N
=
Q
{\displaystyle \operatorname {cl} _{/}\mathbb {N} =\mathbb {Q} }
이다. (여기서
Q
{\displaystyle \mathbb {Q} }
는 유리수 집합이다.)
논리식의 논리합 과 논리곱 은 논리식 집합 위의 이항 연산이다. 논리식의 부정 은 논리식 집합 위의 일항 연산이다.
군
G
{\displaystyle G}
위에 정의된 연산들 가운데,
항등원
1
G
∈
G
{\displaystyle 1_{G}\in G}
는
G
{\displaystyle G}
위의 영항 연산이다.
곱셈
⋅
:
G
×
G
→
G
{\displaystyle \cdot \colon G\times G\to G}
,
(
g
,
h
)
↦
g
h
{\displaystyle (g,h)\mapsto gh}
는
G
{\displaystyle G}
위의 이항 연산이다.
이들에 의해 멱집합에 유도되는 연산들은 각각 다음과 같다.
자명군
{
1
G
}
⊂
G
{\displaystyle \{1_{G}\}\subset G}
임의의
H
,
K
⊂
G
{\displaystyle H,K\subset G}
에 대하여,
H
K
=
{
h
k
|
h
∈
H
,
k
∈
K
}
⊂
G
{\displaystyle HK=\{hk|h\in H,\;k\in K\}\subset G}
특히, 임의의
g
∈
G
⊃
H
{\displaystyle g\in G\supset H}
에 대하여,
g
H
=
{
g
h
|
h
∈
H
}
⊂
G
{\displaystyle gH=\{gh|h\in H\}\subset G}
체
K
{\displaystyle K}
위의 벡터 공간
V
{\displaystyle V}
에 정의된 연산들 가운데,
영벡터
0
V
∈
V
{\displaystyle 0_{V}\in V}
는
V
{\displaystyle V}
위의 영항 연산이다.
벡터 덧셈
+
:
V
×
V
→
V
{\displaystyle +\colon V\times V\to V}
,
(
v
,
w
)
↦
v
+
w
{\displaystyle (v,w)\mapsto v+w}
은
V
{\displaystyle V}
위의 이항 연산이다.
그러나, 스칼라 곱셈
⋅
:
K
×
V
→
V
{\displaystyle \cdot \colon K\times V\to V}
,
(
a
,
v
)
↦
a
v
{\displaystyle (a,v)\mapsto av}
은 이항 연산이 아니며, 넓은 의미의 이항 연산이다. 이를 일항 연산
a
⋅
:
V
→
V
{\displaystyle a\cdot \colon V\to V}
,
v
↦
a
v
{\displaystyle v\mapsto av}
(
a
∈
K
{\displaystyle a\in K}
)의 집합으로 여길 수 있다.
이들은 각각 함수 집합
W
V
{\displaystyle W^{V}}
위에 점별 연산을 유도하며, 선형 변환 공간
hom
(
V
,
W
)
⊂
W
V
{\displaystyle \hom(V,W)\subset W^{V}}
은 이에 대하여 닫혀있다. 따라서
hom
(
V
,
W
)
{\displaystyle \hom(V,W)}
위에 다음과 같은 점별 연산들이 유도된다.
영선형 변환
0
V
,
W
:
V
→
W
{\displaystyle 0_{V,W}\colon V\to W}
,
v
↦
0
W
{\displaystyle v\mapsto 0_{W}}
임의의 선형 변환
T
,
U
:
V
→
W
{\displaystyle T,U\colon V\to W}
및 벡터
v
∈
V
{\displaystyle v\in V}
에 대하여,
(
T
+
U
)
(
v
)
=
T
(
v
)
+
U
(
v
)
{\displaystyle (T+U)(v)=T(v)+U(v)}
. 이를 점별 덧셈이라고 한다.
임의의 선형 변환
T
:
V
→
W
{\displaystyle T\colon V\to W}
및 벡터
v
∈
V
{\displaystyle v\in V}
및 스칼라
a
∈
K
{\displaystyle a\in K}
에 대하여,
(
a
T
)
(
v
)
=
a
T
(
v
)
{\displaystyle (aT)(v)=aT(v)}
. 이를 점별 스칼라 곱셈이라고 한다.
n
{\displaystyle n}
항 관계
R
⊆
S
×
n
{\displaystyle R\subseteq S^{\times n}}
은 다음과 같은 특수한
n
{\displaystyle n}
항 연산으로 여길 수 있다.
F
:
S
×
n
→
2
{\displaystyle F\colon S^{\times n}\to 2}
F
:
s
→
↦
{
1
s
→
∈
R
0
s
→
∉
R
{\displaystyle F\colon {\vec {s}}\mapsto {\begin{cases}1&{\vec {s}}\in R\\0&{\vec {s}}\not \in R\end{cases}}}