명제와 기호 논리

'bill은 jake의 아버지다'를 컴퓨터가 알아듣게 적으려면?

명제

참이거나 거짓일 수 있는 진술

명제(proposition)는 참이거나 거짓일 수 있는 진술입니다. 명제는 객체와, 객체 사이의 관계로 이루어집니다.

여기서 객체(object)는 사람이나 물건처럼 가리킬 수 있는 대상입니다. 문장은 예시입니다.

기호 논리

말은 여러 뜻으로 읽힙니다

사람의 말은 뜻이 모호합니다. 그래서 명제를 기호로 적는 기호 논리(symbolic logic)를 씁니다. 논리 프로그래밍이 쓰는 기호 논리를 술어 논리(predicate calculus)라고 합니다.

'크다'는 예시입니다.

복합 항

관계의 이름과 대상들로 적습니다

관계는 복합 항(compound term)으로 적습니다. 앞은 관계의 이름인 함수기호(functor)이고, 괄호 안은 순서가 있는 매개변수 목록입니다. 수학의 함수처럼 생겼습니다.

이 강의가 따르는 교재의 예입니다. 순서가 있는 값의 묶음을 튜플(tuple)이라고 합니다. student(jon)처럼 매개변수가 하나여도 됩니다. 'jon은 학생이다'라는 뜻입니다.

관계와 표

복합 항 하나는 표의 한 줄입니다

수학에서 관계는 표로 나타낼 수 있습니다. 복합 항 하나는 그 표의 한 줄에 해당합니다. 복합 항 하나로 된 명제를 원자 명제(atomic proposition)라고 합니다.

원자 명제는 더 작은 명제로 쪼개지지 않는 명제입니다.

사실과 질의

참이라고 두는 것, 참인지 묻는 것

명제는 두 가지로 쓰입니다. 사실(fact)은 참이라고 가정한 명제입니다. 질의(query)는 참인지 거짓인지를 가려 달라는 명제입니다.

사실을 모아 둔 곳을 이 강에서는 창고라고 부르겠습니다. father(bill, jake)는 교재의 예이고 나머지 사실은 예시입니다. 답을 yes, no로 적는 것은 뒤에 볼 Prolog의 방식입니다.

다음 편

명제 하나는 적었습니다. 명제끼리는 어떻게 이을까요?

3편명제와 명제는 어떻게 이을까? 15강 목록