본문 바로가기
Computer Science

[Programming] Propositional Logic

by Henry Cho 2020. 10. 15.
728x90

Propositional Logic은 한국말로 명제 논리라고 부른다.

필자는 명제 논리라는 용어를 보고는 도저히 이해가 가지 않기 때문에

Propositional logic 원래 용어를 가지고 설명하겠다.

Propositional logic은 내용에 대해서 true인지 false인지를 확인하는 과정이자 기호로 표기하는 방법을 의미한다.

"미국남부형은 매력적이다"라는 문장이 있을 때 사실이기 때문에 true에 해당된다.

"1+1 = 2" 라는 것도 사실이기 때문에 true에 해당한다.

이러한 문장이나 내용에 대한 논리의 참 거짓을 Propositional logic에서 Logic operations들을 활용해 표기한다.

 

Logic operations

Negation NOT ¬p, p'
Conjunction AND p^q, p·q
Disjunction OR pvq, p+q
Exclusive OR XOR (¬p^q)V(p^¬q)

Logic operations은 총 네 가지가 있으며, 네 가지 기호를 활용하여 논리를 표기하는 것을 proposition logic이라고 한다.

Negation, Conjunction 등과 같은 말보다 NOT과 AND가 더 친숙할 것이다.

그래도 해당 기호를 어떻게 부르는지 정도는 알고 있으면 좋다.

예를 들어 자동차를 성인이 되서까지 붕붕이라고 공식적인 자리에서 말하고 다닐 순 없지 않은가.

 

Negation(NOT)

NOT은 반대로 설정해주면 된다.

0(false)값은 1(ture)로 바꿔주면 된다.

예를 들어서 p=0, ¬p=1이다.

 

Conjunction(AND)

AND는 그리고의 의미를 가지고 있듯이 값이 같아야 true값이 산출된다.

p q p^q
0 0 0
0 1 0
1 0 0
1 1 1

 

Disjunction(OR)

OR은 또는 이라는 의미를 가지고 있듯이 하나만 참일 경우 true값이 산출된다.

p q p+q
0 0 0
0 1 1
1 0 1
1 1 1

 

Exclusive OR(XOR)

XOR은 두 값이 참일 경우에는 거짓이 된다.

그 외에는 OR과 같은 결괏값이 산출된다.

p q p XOR q
0 0 0
0 1 1
1 0 1
1 1 0
728x90

댓글