맨위로가기

논리 연산

"오늘의AI위키"는 AI 기술로 일관성 있고 체계적인 최신 지식을 제공하는 혁신 플랫폼입니다.
"오늘의AI위키"의 AI를 통해 더욱 풍부하고 폭넓은 지식 경험을 누리세요.

1. 개요

논리 연산은 논리적 명제를 조작하고 결합하는 데 사용되는 연산이다. 멱등, 교환, 결합, 분배, 흡수, 드 모르간의 법칙 등의 연산 법칙을 따르며, 부정, 논리곱, 논리합, 조건문, 쌍조건문 등의 종류가 있다. 논리 연산은 0입력, 1입력, 2입력 연산으로 나뉘며, 완전성을 통해 특정 연산자 집합만으로 모든 논리 연산을 표현할 수 있다. 컴퓨터 과학에서는 논리 게이트를 통해 디지털 회로를 구성하고 비트 연산을 수행하며, 집합론에서는 집합 연산을 정의하는 데 사용된다. 자연어 연결사와 관련된 연구도 진행되며, 형식 의미론에서 자연어 연결사의 의미를 논리 연산과 연결하여 연구한다.

더 읽어볼만한 페이지

  • 논리 기호 - 화살표
    화살표는 방향이나 관계를 나타내는 기호로, 과거에는 물의 흐름이나 군대 이동을 나타냈지만 현재는 표지판, 수학, 논리학, 컴퓨터 과학 등 다양한 분야에서 활용되며 유니코드에는 다양한 형태의 화살표 기호들이 정의되어 있다.
  • 논리 기호 - 이중 턴스틸
    이중 턴스틸은 논리학에서 모델 구조와 문장 집합의 관계를 나타내는 기호로, 문장 집합의 충족 가능성을 표현하며 의미론적 귀결 및 항진명제와 관련되어 있고, 유니코드와 LaTeX, TeX 환경에서 특정 방식으로 표현된다.
  • 논리 연결자 - 거짓
    거짓은 논리학에서 명제의 진리값 중 하나로 참의 반대되는 개념이며, 고전 논리와 부울 논리에서 명제가 가질 수 있는 값이고, 부정, 조건문과 연관되어 있으며, 형식 이론에서는 정리로 도출되지 않을 때 일관성이 있다고 정의된다.
  • 논리 연결자 - 논리적 참
  • 컴퓨터 과학 - 수학적 최적화
    수학적 최적화는 주어진 집합에서 실수 또는 정수 변수를 갖는 함수의 최댓값이나 최솟값을 찾는 문제로, 변수 종류, 제약 조건, 목적 함수 개수에 따라 다양한 분야로 나뉘며 여러 학문 분야에서 활용된다.
  • 컴퓨터 과학 - 증명 보조기
    증명 보조기는 수학적 증명의 정확성을 검증하고 형식적인 증명 탐색을 지원하는 소프트웨어 도구로, 고차 논리, 의존 타입, 작은 커널, 자동 정리 증명, 반사 증명, 코드 생성 등의 다양한 기능을 제공하며, "정리 증명기 박물관" 프로젝트를 통해 소스 보존을 목표로 하는 다양한 시스템들이 존재한다.
논리 연산
개요
정의논리 연산(logical operations)은 하나 이상의 논리 입력에 대해 논리적 출력을 생성하는 연산이다.
다른 이름불 연산(boolean operations)
논리 접속사 (logical connectives)
명제 접속사 (propositional connectives)
종류
부정 (NOT)입력된 논리값의 반대 값을 출력한다. (참 → 거짓, 거짓 → 참)
논리곱 (AND)모든 입력이 참일 경우에만 참을 출력한다.
논리합 (OR)하나 이상의 입력이 참일 경우 참을 출력한다.
배타적 논리합 (XOR)입력 중 하나만 참일 경우 참을 출력한다.
조건 (IMPLICATION)'만약 A라면 B이다'의 형태로, A가 참이고 B가 거짓일 경우에만 거짓을 출력한다.
동치 (EQUIVALENCE)두 입력이 동일한 논리값을 가질 경우 참을 출력한다.
NAND논리곱의 결과를 부정한다.
NOR논리합의 결과를 부정한다.
응용 분야
컴퓨터 과학디지털 회로 설계
프로그래밍 언어 (조건문, 논리 연산자)
데이터베이스 (SQL의 WHERE 절)
수학명제 논리
집합론
철학논리적 추론

2. 연산 법칙

논리합(\lor), 논리곱(\land), 부정(\lnot) 연산은 다음과 같은 법칙들을 따른다.


  • '''멱등 법칙'''



\begin{align}

p \lor p &\equiv p \\

p \land p &\equiv p \\

\end{align}


  • '''교환 법칙'''



\begin{align}

p \lor q &\equiv q \lor p \\

p \land q &\equiv q \land p \\

\end{align}


  • '''결합 법칙'''



\begin{align}

p \lor(q \lor r) &\equiv (p \lor q)\lor r \\

p \land(q \land r) &\equiv (p \land q)\land r \\

\end{align}


  • '''분배 법칙'''



\begin{align}

p \lor(q \land r) &\equiv (p \lor q)\land(p \lor r) \\

p \land(q \lor r) &\equiv (p \land q)\lor(p \land r) \\

\end{align}




\begin{align}

p \lor(p \land q) &\equiv p \\

p \land(p \lor q) &\equiv p \\

\end{align}




\begin{align}

\lnot(p \lor q) &\equiv (\lnot p)\land(\lnot q) \\

\lnot(p \land q) &\equiv (\lnot p)\lor(\lnot q) \\

\end{align}


  • '''기타'''



\begin{align}

&p \lor 0 \equiv p \\

&p \land 0 \equiv 0 \\

&p \lor 1 \equiv 1 \\

&p \land 1 \equiv p \\

&p \lor (\lnot p) \equiv 1 \\

&p \land (\lnot p) \equiv 0 \\

&\lnot(\lnot p) \equiv p \\

\end{align}


3. 연산의 종류

여기에서는 출력이 하나인 논리 함수만을 다룬다. 논리 연산에서 사용하는 진리값은 참(1)과 거짓(0) 두 가지로 표현한다.

논리 연산은 입력되는 값의 개수에 따라 분류할 수 있다. 입력이 없는 0입력 연산, 입력이 하나인 1입력 연산, 입력이 두 개인 2입력 연산 등이 있다.

3. 1. 0입력 연산

(작성할 내용 없음 - 원본 소스에 해당 섹션 관련 정보가 부재함)

3. 2. 1입력 연산

하나의 입력을 받아 하나의 출력을 내는 부울 함수는 다음 4가지 종류가 있다.

  • 입력값에 관계없이 항상 0을 출력한다.
  • 입력값에 관계없이 항상 1을 출력한다.
  • 입력값을 그대로 출력한다.
  • 입력이 0이면 1을, 입력이 1이면 0을 출력한다. 즉, 입력의 부정(\neg, '''NOT''') 연산을 수행한다.

3. 3. 2입력 연산

2개의 입력 ''P'', ''Q''에 대해 가능한 논리 연산은 다음 16가지가 전부이다.

이하 표에서는 논리합에는 \vee, 논리곱에는 \wedge 기호를 사용한다.

2입력 논리 연산 (P, Q)
연산기호등가식진리표 (P, Q)벤 다이어그램
0, 00, 11, 01, 1
모순\bot, P \wedge ¬P0000
모순
논리곱 (AND)P \wedge Q, P & Q, P AND Q¬(P \rightarrow ¬Q), ¬(¬P \leftarrow Q), ¬P \downarrow ¬Q0001
논리곱
비함의P \not\rightarrow Q, P \not\supset QP \wedge ¬Q, ¬P \downarrow Q, ¬(P \not\leftarrow ¬Q)0010
비함의
명제 PP0011
명제 P
역비함의P \not\leftarrow Q, P \not\subset QP \downarrow ¬Q, ¬P \wedge Q, ¬(P \not\rightarrow ¬Q)0100
역비함의
명제 QQ0101
명제 Q
배타적 논리합 (XOR)P \oplus Q, P \not\leftrightarrow Q, P \not\equiv Q, P XOR Q(P \leftrightarrow ¬Q), (¬P \leftrightarrow Q), ¬(P \leftrightarrow Q)0110
배타적 논리합
논리합 (OR)P \vee Q, P OR QP \leftarrow ¬Q, ¬P \rightarrow Q, ¬(¬P \uparrow ¬Q)0111
논리합
NOR (Not OR)P \downarrow Q, P NOR QP \not\leftarrow ¬Q, ¬(¬P \not\rightarrow Q), ¬P \wedge ¬Q1000
NOR
동치 (XNOR)P \leftrightarrow Q, P \equiv Q, P XNOR Q, P IFF QP \not\leftrightarrow ¬Q, ¬P \not\leftrightarrow Q, ¬P \leftrightarrow ¬Q1001
동치
부정 Q¬Q1010
부정 Q
역함의P \leftarrow Q, P \subset QP \vee ¬Q, ¬P \uparrow Q, ¬P \rightarrow ¬Q1011
역함의
부정 P¬P1100
부정 P
함의 (조건식)P \rightarrow Q, P \supset QP \uparrow ¬Q, ¬P \vee Q, ¬P \leftarrow ¬Q1101
함의
NAND (Not AND)P \uparrow Q, P | Q, P NAND QP \rightarrow ¬Q, ¬P \leftarrow Q, ¬P \vee ¬Q1110
NAND
항진\top, P \vee ¬P1111
항진


4. 논리 연산의 표현

표벤
다이어그램0항 접속사(상수)⊤진리/항진1--⊥거짓/모순0--단항 접속사p =01

p
¬
¬p
이항 접속사p =0011q =0101∧논리곱0001↑대안 부정 (NAND)1110∨논리합0111↓배타적 논리합 (XOR)0110↔조건문1101↛역함축1011↚자세한 정보



고전 논리의 표준 논리 연결사는 영어 등 많은 자연어의 문법적 접속사와 어느 정도 유사하다. 하지만 자연어에서는 보어, 동사어미, 입자 형태로 나타나기도 한다. 자연어 연결사의 의미를 연구하는 분야는 형식 의미론이다.

자연어 연결사의 의미는 고전 논리의 대응어와 정확히 일치하지 않는 경우가 많다. 예를 들어, 많은 언어에서 '또는'은 배타적 의미(둘 중 하나만 참)로 해석될 수 있다. 일부 학자들은 이를 자연어 의미론이 비고전적이라는 증거로 보지만, 다른 학자들은 화용론적 설명(스칼라 함축 등)을 통해 고전적 의미론을 유지하려 한다. 이 외에도 자유 선택 추론, 헐포드의 제약, 대안 질문 등에서 자연어와 고전 논리 간의 차이가 나타난다.

또한 함축의 역설, 당나귀 지칭, 반사실적 조건문 문제 등 자연어 조건문과 고전 논리의 조건문 사이에도 명백한 불일치가 존재한다. 이러한 현상 때문에 자연어 조건문의 의미를 엄격 조건, 가변적 엄격 조건, 다양한 동적 연산자 등으로 설명하려는 시도가 있다.

다음 표는 영어 연결사와 표준적인 고전 논리 연산자의 대응 관계를 보여준다.

영어 연결사와 고전 논리 연산자 비교
영어 단어연결사기호논리 게이트
not부정\negNOT
and논리곱\wedgeAND
or논리합\veeOR
if...then조건문\toIMPLY
...if역함축\leftarrow
either...or배타적 논리합\oplusXOR
if and only if쌍조건\leftrightarrowXNOR
not both대안 부정 (NAND)\uparrowNAND
neither...nor결합 부정 (NOR)\downarrowNOR
but not비함축\not\toNIMPLY


4. 1. 표기법의 역사

5. 논리 연산자의 성질

논리합\lor, 논리곱\land, 부정\lnot이라고 할 때, 논리 연산자들은 다양한 성질을 만족시킨다. 이러한 성질은 논리식을 간소화하거나 동치 관계를 증명하는 데 사용된다. 주요 법칙과 성질은 다음과 같다. (여기서 0은 거짓, 1은 참을 나타낸다.)

'''기본 법칙'''




\begin{align}

p \lor p &\equiv p \\

p \land p &\equiv p \\

\end{align}




\begin{align}

p \lor q &\equiv q \lor p \\

p \land q &\equiv q \land p \\

\end{align}




\begin{align}

p \lor(q \lor r) &\equiv (p \lor q)\lor r \\

p \land(q \land r) &\equiv (p \land q)\land r \\

\end{align}




\begin{align}

p \lor(q \land r) &\equiv (p \lor q)\land(p \lor r) \\

p \land(q \lor r) &\equiv (p \land q)\lor(p \land r) \\

\end{align}




\begin{align}

p \lor(p \land q) &\equiv p \\

p \land(p \lor q) &\equiv p \\

\end{align}




\begin{align}

\lnot(p \lor q) &\equiv (\lnot p)\land(\lnot q) \\

\lnot(p \land q) &\equiv (\lnot p)\lor(\lnot q) \\

\end{align}



'''항등원, 영원, 보원, 이중 부정 법칙'''


\begin{align}

&p \lor 0 \equiv p \\

&p \land 0 \equiv 0 \\

&p \lor 1 \equiv 1 \\

&p \land 1 \equiv p \\

\end{align}




\begin{align}

&p \lor (\lnot p) \equiv 1 \\

&p \land (\lnot p) \equiv 0 \\

\end{align}




\begin{align}

&\lnot(\lnot p) \equiv p \\

\end{align}



'''추가 속성'''

논리 연결어는 다음과 같은 추가적인 속성을 가질 수 있다.

고전 논리, 대부분의 다치 논리, 직관주의 논리에서 논리곱(\land)과 논리합(\lor)은 결합 법칙, 교환 법칙, 멱등 법칙을 만족한다. 또한 분배 법칙과 흡수 법칙도 성립한다. 고전 논리와 일부 다치 논리에서는 논리곱과 논리합이 서로 쌍대적이며, 부정은 자기 쌍대적이다. 직관주의 논리에서는 부정이 자기 쌍대적이다.

6. 우선 순위

수학이나 프로그래밍에서처럼, 논리 연산에서도 복잡한 수식을 명확하게 하고 괄호 사용을 줄이기 위해 연산자 우선 순위 규칙을 정할 수 있다. 일반적으로 사용되는 우선 순위는 다음과 같다.

1. 부정 (\neg)

2. 논리곱 (\land)

3. 논리합 (\lor)

4. 조건 (\to)

5. 쌍조건 (\leftrightarrow)

이 규칙에 따르면, \neg가 가장 먼저 계산되고, \leftrightarrow가 가장 나중에 계산된다. 예를 들어, P \vee Q \wedge{\neg R} \rightarrow S라는 식은 괄호를 사용하여 명시적으로 표현하면 (P \vee (Q \wedge (\neg R))) \rightarrow S와 같다. 즉, \neg R이 먼저 계산되고, 그 결과와 Q의 논리곱(\wedge)이 계산되며, 다시 그 결과와 P의 논리합(\vee)이 계산된 후, 마지막으로 이 전체 결과와 S 사이의 조건(\rightarrow) 연산이 수행된다.

다음 표는 일반적으로 통용되는 논리 연산자의 우선 순위를 나타낸다.[19][20]

연산자우선 순위
\neg1
\land2
\lor3
\to4
\leftrightarrow5



하지만 모든 컴파일러가 이 순서를 따르는 것은 아니다. 예를 들어, 선언(\lor)이 함축(\to) 또는 쌍방향 함축(\leftrightarrow)보다 우선 순위가 낮은 순서도 사용되었다.[21] 때때로 결합(\land)과 선언(\lor) 사이의 우선 순위가 지정되지 않아 괄호로 주어진 공식에 명시적으로 제공해야 한다. 우선 순위는 비원자 공식을 해석할 때 어떤 연결사가 "주 연결사"인지 결정한다.

7. 완전성

특정 논리 연산자들의 조합만으로 임의의 다른 논리 연산을 모두 표현할 수 있는 성질을 완전성(functional completeness영어)이라고 한다.

논리합(∨)과 논리곱(∧)만으로는 완전성을 만족하지 못하며, 반드시 부정(¬) 연산자가 필요하다. 반면, 부정(¬) 연산자가 있다면 논리합(∨)과 논리곱(∧) 중 어느 하나만 있어도 완전한 집합을 이룰 수 있다. 즉, {¬, ∨} 집합과 {¬, ∧} 집합은 각각 완전하다.

더 나아가, 부정 논리곱(NAND) 연산자나 부정 논리합(NOR) 연산자는 각각 하나만으로도 완전성을 만족한다. 즉, NAND 연산자 하나만 사용하거나 NOR 연산자 하나만 사용하여 모든 논리 연산을 표현할 수 있다.

한편, '만약 ...이면 ...이다'를 나타내는 논리 함의(→, imply) 연산자는 완전성과 관련하여 미묘한 점이 있다. 논리 함의 연산자만으로는 완전하지 않으며, 거짓을 나타내는 상수(⊥)와 같은 상수 입력을 필요로 할 수 있다. 이를 '사실상의 완전성'(virtual completeness영어)이라고 표현하기도 한다.

8. 응용

논리 연산자는 컴퓨터 과학집합론에서 사용된다.

8. 1. 컴퓨터 과학

논리 연산자는 컴퓨터 과학집합론에서 사용된다. 논리 연산자의 진리 함수적 접근 방식은 논리 게이트를 통해 디지털 회로로 구현된다. 사실상 모든 디지털 회로(주요 예외는 DRAM)는 NAND, NOR, NOT 및 전송 게이트로 구성된다. 비트 벡터(유한 부울 대수에 해당)에 대한 논리 연산은 비트 연산이다.

하지만 컴퓨터 프로그래밍에서 논리 연산자를 사용하는 모든 경우에 불리언 의미가 있는 것은 아니다. 예를 들어, 지연 평가가 ''P'' ∧ ''Q'' 와 ''P'' ∨ ''Q'' 연산에 적용될 때, 표현식 ''P''나 ''Q'' 중 하나 또는 둘 다 부작용을 일으킨다면 이 연산자들은 교환 법칙이 성립하지 않을 수 있다. 또한, 조건문 if (P) then Q;의 경우, 조건 ''P''가 거짓이면 ''Q''는 실행되지 않으므로, 전체 문장이 참(true)으로 평가될 수 있음에도 불구하고 본질적으로 불리언 연산과는 다르다. 이는 고전 논리의 관점보다는 직관주의나 구성주의에서 물질 조건문을 다루는 방식과 더 유사하다.

8. 2. 집합론

논리 연산자는 컴퓨터 과학집합론에서 사용된다. 논리 연산자는 다음과 같이 집합론의 기본적인 연산을 정의하는 데 사용된다.[22]

집합 연산연결자정의
교집합논리곱A \cap B = \{x : x \in A \land x \in B \}[23][24][25]
합집합논리합A \cup B = \{x : x \in A \lor x \in B \}[26][23][24]
여집합부정\overline{A} = \{x : x \notin A \}[27][24][28]
부분 집합함축A \subseteq B \leftrightarrow (x \in A \rightarrow x \in B)[29][24][30]
동일쌍조건자A = B \leftrightarrow (\forall X)[A \in X \leftrightarrow B \in X][29][24][31]



이 집합의 동일성에 대한 정의는 외연성 공리와 동치이다.

9. 자연어와의 관계

형식 의미론에서는 자연어의 연결사가 가진 의미를 논리 연산과 연결하여 연구한다. 하지만 자연어에서 사용되는 연결사의 의미가 항상 논리 연산의 정의와 정확히 일치하는 것은 아니다. 예를 들어, 자연어의 '또는'은 배타적으로 해석될 때도 있고, '만약 ...라면'은 함축의 역설과 같은 문제를 보이기도 한다.

자연어 문장은 논리 연결사를 통해 그 의미가 변환될 수 있다. 예를 들어, "비가 온다"는 진술을 p로, "나는 실내에 있다"는 진술을 q로 표시할 때, 다음과 같이 다양한 문장을 만들 수 있다.[2]



주요 논리 연결사와 관련된 자연어 표현 및 용어는 다음 표와 같이 정리할 수 있다.

연결사영어로부분에 대한 명사동사구
결합A와 B 둘 다결합자A와 B는 결합된다
분리A 또는 B, 또는 둘 다분리자A와 B는 분리된다
부정A가 아닌 경우부정항/피연산자A는 부정된다
조건문만약 A, 그러면 B전건, 후건B는 A에 의해 함축된다
쌍조건문A는, 그리고 오직 A일 때만, B동치A와 B는 동치이다


참조

[1] 웹사이트 What is the difference between logical and conditional /operator/ https://stackoverflo[...] 2015-04-09
[2] 서적 数理逻辑:形式化方法的应用 Preprint. 2023
[3] 간행물 Die formalen Regeln der intuitionistischen Logik 1930
[4] 문서 A brief survey of 20th century logical notations https://members.lori[...] Denis Roegel 2002
[5] 서적 Begriffsschrift, eine der arithmetischen nachgebildete Formelsprache des reinen Denkens Verlag von Louis Nebert 1879
[6] 문서 Mathematical logic as based on the theory of types Bertrand Russell 1908
[7] 문서 Arithmetices principia, nova methodo exposita Giuseppe Peano 1889
[8] 문서 Über die Bausteine der mathematischen Logik Moses Schönfinkel 1924
[9] 문서 On an improvement in Boole's calculus of logic Charles Sanders Peirce 1867
[10] 서적 Prinzipien der Mathematik 1918
[11] 서적 Théorie des ensembles Hermann & Cie, Éditeurs 1954
[12] 서적 Begriffsschrift, eine der arithmetischen nachgebildete Formelsprache des reinen Denkens Verlag von Louis Nebert 1879
[13] 서적 Die Aristotelische Theorie der Möglichkeitsschlösse: Eine logisch-philologische Untersuchung der Kapitel 13-22 von Aristoteles' Analytica priora I Junker und Dünnhaupt Verlag 1933
[14] 서적 Théorie des ensembles Hermann & Cie, Éditeurs 1954
[15] 문서 Untersuchungen über das logische Schließen Gerhard Gentzen 1934
[16] 문서 Éléments de logique formelle Chazal 1996
[17] 백과사전 Über die Grundlagen der Logik und der Arithmetik 1905
[18] 문서 A Précis of Mathematical Logic Józef Maria Bocheński 1959
[19] 서적 Discrete Mathematics Using a Computer https://books.google[...] Springer
[20] 서적 Logic primer The MIT Press 2022
[21] 서적 Software Abstractions: Logic, Language, and Analysis https://books.google[...] MIT Press
[22] 서적 A book of set theory Dover Publications, Inc 2014
[23] 웹사이트 Set operations https://www.siue.edu[...] 2024-06-11
[24] 웹사이트 1.5 Logic and Sets https://www.whitman.[...] 2024-06-11
[25] 웹사이트 Theory Set https://mirror.clark[...] 2024-06-11
[26] 웹사이트 Set Inclusion and Relations https://autry.sites.[...] 2024-06-11
[27] 웹사이트 Complement and Set Difference https://web.mnstate.[...] 2024-06-11
[28] 웹사이트 Set Operations and Subsets – Foundations of Mathematics https://ma225.wordpr[...] 2024-06-11
[29] 웹사이트 Basic concepts https://www.siue.edu[...] 2024-06-11
[30] 웹사이트 Set Operations and Subsets – Foundations of Mathematics https://ma225.wordpr[...] 2024-06-11
[31] 웹사이트 Set Operations and Subsets – Foundations of Mathematics https://ma225.wordpr[...] 2024-06-11
[32] 문서 たとえば、三角関数の sin などといった関数それ自体が「関数」であり、sin(3.14) などのように関数と実引数とを結びつけること and・or 結びつけたものを「関数適用」と言う。



본 사이트는 AI가 위키백과와 뉴스 기사,정부 간행물,학술 논문등을 바탕으로 정보를 가공하여 제공하는 백과사전형 서비스입니다.
모든 문서는 AI에 의해 자동 생성되며, CC BY-SA 4.0 라이선스에 따라 이용할 수 있습니다.
하지만, 위키백과나 뉴스 기사 자체에 오류, 부정확한 정보, 또는 가짜 뉴스가 포함될 수 있으며, AI는 이러한 내용을 완벽하게 걸러내지 못할 수 있습니다.
따라서 제공되는 정보에 일부 오류나 편향이 있을 수 있으므로, 중요한 정보는 반드시 다른 출처를 통해 교차 검증하시기 바랍니다.

문의하기 : help@durumis.com