함께 시작해 볼까요?
형식 언어의 기호를 이름·변수·함수·술어로 나누고, 그 재료로 항과 식을 만드는 규칙을 익힙니다. 지정 연락인이라는 가상 함수로 함수항을 처음 읽으며, 자유변수가 어떤 자리에서 묶이는지 계산합니다. 식을 구성하는 순서를 따라가면 모든 식의 성질을 어떻게 증명할 수 있는지도 괄호 수의 예로 확인합니다.
뜻을 읽기 전에 식의 모양부터 확인해야 하나요?
어떤 기호열이 올바른 식인지는 구성 규칙을 따라 확인합니다.
1편에서는 문장이 참인지, 증명할 수 있는지 나누었어요. 이번에는 문장 자체를 살펴보나요?
네. 기호를 아무렇게나 늘어놓으면 참·거짓을 평가할 식이 되는 것은 아닙니다. 이번에는 어떤 재료를 어떤 순서로 결합할 수 있는지 정하겠습니다. 이 모양에 관한 규칙을 구문이라고 부르고, 그 식에 뜻을 주는 해석은 의미론에서 다룹니다.
아라의 지정 연락인이 서류를 냈다는 말을 어떻게 쓸까요?
1편처럼 P(x)는 “x가 오후 6시까지 서류를 냈다”입니다. 이번에는 각 사람에게 등록부 안의 지정 연락인이 한 명씩 정해져 있다고 하겠습니다.
이 대응을 함수기호 f로 표시하면, f(a)는 아라의 지정 연락인을 가리키고 P(f(a))는 그 사람이 서류를 냈다는 식이 됩니다. 먼저 f(a)와 P(f(a))의 역할이 다름을 살펴보겠습니다.
괄호가 들어갔으니 f(a)도 참이나 거짓인가요?
f(a)는 이 예에서 한 사람을 가리킵니다. 그 사람이 서류를 냈는지 묻는 P(f(a))가 참·거짓을 평가할 식입니다. 대상을 가리키는 표현과 그 대상에 대해 말하는 식을 나누는 것이 첫걸음입니다.
표가 화면보다 넓으면 좌우로 움직여 수식과 풀이를 읽어 보세요.
| 표현 | 역할 | 다음에 할 일 |
|---|---|---|
| a | 아라를 가리키는 이름 | 술어의 자리에 넣을 수 있습니다. |
| f(a) | 아라의 지정 연락인을 가리키는 항 | 그 대상에 관한 식을 만들 수 있습니다. |
| P(f(a)) | 그 연락인이 서류를 냈다는 식 | 해석을 정해 참·거짓을 확인할 수 있습니다. |
“f(a)가 참이다”라는 말은 이 기호 약속에서 맞는 표현인가요?
답과 풀이 확인하기
맞지 않습니다. f(a)는 항이므로 대상을 가리킵니다.
그 대상의 성질을 말하려면 P(f(a))처럼 술어를 붙여 식을 만들어야 합니다. 괄호가 있다는 모양만으로 항과 식을 구별할 수는 없습니다.
어떤 기호를 쓸지 먼저 정해 볼까요?
같은 글자라도 기호의 종류와 자리 수를 먼저 정해야 합니다.
어떤 글자는 이름이고 어떤 글자는 함수인지 미리 정하나요?
그렇습니다. 이번 편에서는 아래 기호들로 이루어진 작은 언어를 사용하겠습니다. 이름을 나타내는 기호는 상수기호라고도 부릅니다. f는 입력 자리 하나를 가진 함수기호, P와 Q는 대상 자리 하나를 가진 술어기호, R은 대상 자리 두 개를 가진 관계의 술어기호입니다.
표가 화면보다 넓으면 좌우로 움직여 수식과 풀이를 읽어 보세요.
| 종류 | 기호 | 어떻게 쓰나요? |
|---|---|---|
| 상수기호 | a, b, k | 각 해석에서 영역 안의 한 대상을 가리킵니다. |
| 변수 | x, y, z, x₁, x₂, … | 대상을 배정받을 자리입니다. 필요한 만큼 새 변수를 쓸 수 있습니다. |
| 한 자리 함수기호 | f | 항 하나를 받아 f(항)이라는 새 항을 만듭니다. |
| 한 자리 술어기호 | P, Q | 항 하나를 받아 P(항), Q(항)이라는 식을 만듭니다. |
| 두 자리 술어기호 | R | 항 두 개를 받아 R(항,항)이라는 식을 만듭니다. |
| 동일성 기호 | = | 양쪽 항이 같은 대상을 가리킨다는 식을 만듭니다. |
| 연결사 | ¬, ∧, ∨, →, ↔ | 이미 만든 식을 새 식으로 결합합니다. |
| 양화사 | ∀, ∃ | 변수와 몸통 식을 받아 새 식을 만듭니다. |
| 모순 기호 | ⊥ | 항상 거짓을 나타내는 기본 식입니다. |
| 구분 표시 | (, ), 쉼표 | 입력 자리와 식의 묶임을 표시합니다. |
f에 대상을 두 개 넣은 f(a,b)는 어떨까요?
이번 언어에서는 f가 한 자리 함수이므로 그 모양으로 항을 만들 수 없습니다. 두 자리 함수기호를 별도로 도입한 언어라면 두 항을 받는 규칙을 사용할 수 있지만, 지금의 f에 정한 자리 수를 중간에 바꾸지는 않습니다.
R(a)와 P(a,b)는 이번 언어의 올바른 식인가요?
답과 풀이 확인하기
둘 다 정한 자리 수에 맞지 않습니다.
R에는 두 항이 필요하고 P에는 한 항이 필요합니다. 같은 의미를 떠올릴 수 있는지와 별개로, 선언한 기호의 자리 수를 지켜야 합니다.
한 해석에서 a와 k가 같은 사람을 가리키면, 두 기호를 애초에 하나의 글자라고 보아도 되나요?
답과 풀이 확인하기
기호 두 개와 그 기호가 가리키는 대상은 구별합니다.
a와 k는 서로 다른 상수기호이지만 같은 대상을 가리킬 수 있습니다. 나중에 a=k의 참을 해석할 때 바로 그 차이가 필요합니다.
항은 어떤 작은 재료에서부터 만드나요?
변수와 이름에서 시작하여 함수기호를 유한 번 적용합니다.
함수항이 길어지면 어디까지가 항인지 어떻게 확인하나요?
만드는 규칙을 먼저 정하면 됩니다. 이 언어에서는 모든 변수와 a·b·k가 항입니다. 이미 만든 항 t가 있으면 f(t)도 항입니다. 이 규칙을 유한 번 적용하여 얻은 것만 항으로 인정합니다. 여기의 t는 특정 변수 글자가 아니라 항 하나 전체를 대신하는 설명용 약칭입니다.
표가 화면보다 넓으면 좌우로 움직여 수식과 풀이를 읽어 보세요.
| 단계 | 규칙 | 예 |
|---|---|---|
| 시작 1 | 변수는 항입니다. | x, y |
| 시작 2 | 상수기호는 항입니다. | a, b, k |
| 반복 | t가 항이면 f(t)도 항입니다. | a에서 f(a), 다시 f(f(a)) |
이미 항이라는 조건을 다시 사용하는 방식이군요.
이처럼 작은 구성에 적용한 규칙을 더 큰 구성에도 다시 쓰는 정의를 재귀적 정의라고 부릅니다. 끝없이 이어지는 표현 하나를 허용한다는 뜻은 아닙니다. 각각의 항은 유한한 길이로 완성되어야 합니다. 다만 그 길이에 하나의 공통 최대치를 미리 정하지는 않습니다.
표가 화면보다 넓으면 좌우로 움직여 수식과 풀이를 읽어 보세요.
| 후보 | 판정 | 이유 |
|---|---|---|
| f(f(a)) | 항 | a에서 f를 두 번 적용했습니다. |
| f(x) | 항 | 변수 x에 f를 적용했습니다. |
| f(P(a)) | 항이 아님 | P(a)는 식이며 f가 받을 항이 아닙니다. |
| f(a,b) | 항이 아님 | 한 자리 함수에 두 입력을 넣었습니다. |
f(f(f(k)))가 항이라는 것을 처음부터 설명해 볼까요?
답과 풀이 확인하기
k가 상수기호라서 항이고, f(k), f(f(k)), f(f(f(k)))를 차례로 만들 수 있습니다.
각 단계는 바로 앞에서 만든 항 하나를 f의 입력으로 사용합니다. 마지막 항의 값이 무엇인지는 해석을 정한 다음에 계산할 수 있습니다.
변수 x가 들어 있다는 이유로 f(x)가 항이 아니라고 해도 되나요?
답과 풀이 확인하기
그렇게 말할 수 없습니다. f(x)는 올바른 항입니다.
변수도 처음부터 항으로 허용했습니다. 다만 그 항이 가리키는 대상을 계산하려면 해석과 함께 x에 어떤 대상을 배정했는지 알아야 합니다.
함수는 모든 사람에게 무엇을 정해야 하나요?
이 과정의 함수는 각 입력에 영역 안의 값을 정확히 하나 배정합니다.
지정 연락인이 없는 사람이 있어도 f라고 쓰면 되나요?
통상적인 일차논리에서 함수기호에 주는 해석은 전체 영역의 모든 입력에 값이 정확히 하나 있는 함수입니다. 이번 가상 등록부에서는 연락인을 빠짐없이 한 명씩 지정했다고 정하겠습니다. 실제 기록에 미지정자가 있다면, 이런 함수 약속을 그대로 만족하는지부터 확인해야 합니다.
영역은 아라·보라·찬우이며, 연락인을 다음과 같이 지정합니다.
a와 k는 둘 다 아라를 가리키고, b는 보라를 가리킵니다. 아래 f의 표는 영역 안의 세 입력을 빠짐없이 적었습니다. 연락인도 항상 같은 영역 안의 사람입니다.
| 입력인 사람 | f가 돌려주는 연락인 |
|---|---|
| 아라 | 보라 |
| 보라 | 찬우 |
| 찬우 | 아라 |
각 사람의 연락인이 서로 달라야 한다는 뜻도 들어 있나요?
함수라는 조건은 입력 하나에 값이 하나라는 뜻입니다. 서로 다른 두 입력에 같은 연락인을 지정해도 함수가 될 수 있습니다. 위 표는 순환하는 예 하나일 뿐이며, 모든 함수가 순환하거나 입력마다 다른 값을 가져야 하는 것은 아닙니다. 자기 자신을 연락인으로 정하는 경우도 함수 조건만으로 배제되지 않습니다.
아라에게 보라와 찬우를 동시에 f의 값으로 주고 어느 쪽인지 정하지 않았다면, 지금의 f 해석이 완성되었나요?
답과 풀이 확인하기
완성되지 않았습니다.
입력 아라에 대해 값이 정확히 하나여야 합니다. 여러 연락 관계를 기록하려면 관계 술어를 쓰거나, 그중 한 명을 대표 연락인으로 정한다는 별도 약속이 필요합니다.
세 사람 모두의 연락인을 보라 한 명으로 지정한 표도 함수가 되나요?
답과 풀이 확인하기
함수가 됩니다.
각 입력에 같은 값 보라를 하나씩 배정합니다. 값의 유일성과 입력들 사이의 일대일 대응은 서로 다른 조건입니다.
겹친 함수항은 안쪽부터 어떻게 읽나요?
한 번 얻은 대상을 다음 함수의 입력으로 사용합니다.
f(f(a))를 보면 f가 두 번이라서 복잡해 보여요.
안쪽 f(a)부터 읽으면 됩니다. a는 아라이고, 표에서 아라의 연락인은 보라입니다. 그러면 바깥 f는 보라를 입력으로 받습니다. 보라의 연락인은 찬우이므로 f(f(a))가 가리키는 대상은 찬우입니다.
표가 화면보다 넓으면 좌우로 움직여 수식과 풀이를 읽어 보세요.
| 표현 | 바로 안쪽에서 얻은 대상 | 전체가 가리키는 대상 |
|---|---|---|
| a | 이름 해석 | 아라 |
| f(a) | a가 가리키는 아라 | 보라 |
| f(f(a)) | f(a)가 가리키는 보라 | 찬우 |
| f(f(f(a))) | f(f(a))가 가리키는 찬우 | 아라 |
| f(k) | k가 가리키는 아라 | 보라 |
f(a)와 b는 표기가 다르지만 둘 다 보라군요.
그렇습니다. 이 해석에서는 f(a)=b라는 동일성 식이 참입니다. 항 두 개의 글자열이 같아야 동일성 식이 참인 것은 아닙니다. 실제로 가리키는 대상이 같은지 봅니다. 우리 과정의 =는 각 해석에서 대상의 실제 동일성으로 해석합니다.
이 표에서 f(f(b))는 누구를 가리키나요?
답과 풀이 확인하기
아라를 가리킵니다.
b는 보라입니다. f(b)는 찬우이고, f(f(b))는 찬우의 연락인 아라입니다.
4절의 표에서 f(a)=f(k)가 참인 이유를 두 단계로 설명해 볼까요?
답과 풀이 확인하기
a와 k가 모두 아라를 가리키고, 같은 입력 아라에 함수 f는 같은 값 보라를 줍니다.
여기서 기호 a와 k가 같아진 것은 아닙니다. 같은 대상을 가리키는 두 항에 함수를 적용한 결과가 일치합니다.
항을 사용하면 가장 작은 식은 어떻게 만드나요?
술어의 자리에 항을 넣거나, 두 항의 동일성을 말합니다.
항을 만들었으니 이제 식을 만들 수 있겠어요.
P와 Q에는 항 하나, R에는 항 두 개를 넣습니다. 두 항 사이에 =를 놓을 수도 있습니다. 이렇게 만든 것을 원자식이라고 부릅니다. 원자식은 연결사나 양화사로 더 작은 식을 묶어서 만든 것이 아니라, 항을 바탕으로 만든 기본 식입니다. ⊥도 기본 식으로 둡니다.
표가 화면보다 넓으면 좌우로 움직여 수식과 풀이를 읽어 보세요.
| 구성 | 예 | 무엇을 살피나요? |
|---|---|---|
| 한 자리 술어와 항 하나 | P(f(a)) | f(a)가 가리키는 대상이 P인지 봅니다. |
| 두 자리 술어와 항 두 개 | R(a,f(a)) | a의 대상에서 f(a)의 대상으로 R 관계가 있는지 봅니다. |
| 항 두 개의 동일성 | f(a)=b | 두 항이 같은 대상을 가리키는지 봅니다. |
| 모순 기호 | ⊥ | 항상 거짓인 기본 식입니다. |
R(a,f(a))의 R은 어떤 뜻으로 읽을까요?
가상 모임의 예에서는 “앞 사람이 뒤 사람에게 오후 6시까지 인사했다”로 읽겠습니다. Q는 1편처럼 “오후 6시까지 확인 도장을 받았다”입니다. 연락인이라는 함수 f를 정했다고 해서 인사 관계 R까지 저절로 정해지는 것은 아닙니다. 어떤 쌍에 R이 참인지도 해석에서 따로 지정합니다.
P(f(a))와 f(P(a)) 중 어느 쪽이 올바른 원자식인가요?
답과 풀이 확인하기
P(f(a))가 올바른 원자식입니다.
f(a)는 항이므로 P의 자리에 들어갈 수 있습니다. 반대로 P(a)는 식이므로 함수 f의 입력 항으로 사용할 수 없습니다.
f(a)=b는 a와 b가 같은 사람이라는 뜻인가요?
답과 풀이 확인하기
그렇게 말한 식은 아닙니다.
왼쪽 전체 항 f(a)의 값과 b의 값을 비교합니다. 위 표에서는 아라의 연락인 보라가 b의 대상과 같아서 참이며, a 자신이 b와 같다는 주장은 들어 있지 않습니다.
이미 만든 식들로 더 큰 식은 어떻게 만드나요?
결합 규칙은 항과 식을 서로 다른 입력으로 받습니다.
원자식에서 긴 식으로 가는 규칙은 무엇인가요?
A와 B가 이미 만들어진 식이라고 합시다. ¬A를 만들거나, 두 식을 (A∧B), (A∨B), (A→B), (A↔B)로 묶을 수 있습니다. 변수 x와 식 A가 있으면 ∀xA와 ∃xA도 만듭니다. 원자식에서 시작해 이 규칙으로 유한 번 만든 것만 식으로 인정하겠습니다.
표가 화면보다 넓으면 좌우로 움직여 수식과 풀이를 읽어 보세요.
| 출발 재료 | 새 식 | 추가한 구조 |
|---|---|---|
| 원자식 | 그 자체로 식 | 식 구성의 시작 |
| 식 A | ¬A | 부정 하나 |
| 식 A와 식 B | (A∧B), (A∨B), (A→B), (A↔B) | 두 식을 연결사 하나와 괄호 한 쌍으로 묶음 |
| 변수 x와 식 A | ∀xA, ∃xA | x를 맡는 양화사 하나 |
∀aP(a)도 a가 대상을 가리키니 가능하지 않을까요?
이번 문법의 양화사는 변수를 받습니다. a는 상수기호이므로 ∀aP(a)는 규칙에 맞지 않습니다. ∀xP(x)처럼 변수를 사용해야 합니다. 반면 ∀xP(a)는 허용합니다. 몸통 P(a)에 자유로운 x가 없어서 실제로 묶는 자리가 없더라도 문법상 식을 만들 수 있습니다.
¬f(a)는 올바른 식인가요?
답과 풀이 확인하기
이번 문법에서는 올바른 식이 아닙니다.
부정 ¬의 뒤에는 식이 필요하지만 f(a)는 항입니다. ¬P(f(a))라면 P(f(a))라는 식을 부정하므로 올바릅니다.
P(a)Q(a)를 이어 쓰면 두 식을 결합한 새 식이 되나요?
답과 풀이 확인하기
그대로는 새 식이 되지 않습니다.
두 식을 어떤 연결사로 묶는지 정해야 합니다. 예를 들어 (P(a)∧Q(a))는 연언 규칙으로 만든 식입니다.
긴 식 하나를 실제로 만들어 볼까요?
새로 붙인 부분과 이미 만든 부분을 분리하여 구성 순서를 기록합니다.
∀x(P(f(x))→∃yR(x,y))도 작은 부분에서 만들 수 있나요?
만들 수 있습니다. 먼저 항들을 확인한 뒤 원자식을 만듭니다. 그다음 R(x,y)에 ∃y를 붙이고, P(f(x))와 그 존재식을 조건문으로 묶습니다. 마지막에 ∀x를 붙이면 전체 식이 됩니다.
표가 화면보다 넓으면 좌우로 움직여 수식과 풀이를 읽어 보세요.
| 단계 | 만든 표현 | 재료와 사용한 규칙 |
|---|---|---|
| 1 | x, y | 변수는 항입니다. |
| 2 | f(x) | 항 x에 한 자리 함수 f를 적용합니다. |
| 3 | P(f(x)) | 항 f(x)를 P에 넣어 원자식을 만듭니다. |
| 4 | R(x,y) | 항 x와 y를 R의 두 자리에 넣습니다. |
| 5 | ∃yR(x,y) | 4번 식에 존재양화사를 붙입니다. |
| 6 | (P(f(x))→∃yR(x,y)) | 3번과 5번 식을 조건문으로 묶습니다. |
| 7 | ∀x(P(f(x))→∃yR(x,y)) | 6번 전체에 전칭양화사를 붙입니다. |
3번과 4번은 순서를 바꾸어 만들어도 되나요?
필요한 항이 이미 준비되었다면 가능합니다. 그러나 마지막 식을 어떤 두 부분으로 조건 결합했는지, 어느 식 전체에 ∀x를 붙였는지는 고정되어 있습니다. 구성 작업의 시간 순서가 여러 개일 수 있다는 사실과, 완성된 식의 구조가 애매하다는 말은 다릅니다.
7번의 바로 앞 재료인 6번 전체는 어떤 식인가요?
답과 풀이 확인하기
조건문입니다. 주된 연결사는 →이고, 앞부분은 P(f(x)), 뒷부분은 ∃yR(x,y)입니다.
7번에서는 이 조건문 전체를 ∀x의 몸통으로 사용합니다. 전체 식의 바깥 구조와 그 몸통의 바깥 구조를 나누어 보세요.
이 구성표를 만들었다는 사실만으로 7번 식이 모든 해석에서 참임을 보였나요?
답과 풀이 확인하기
참임을 보인 것은 아닙니다.
표는 그 표현이 문법에 맞는 식임을 보여 줍니다. 어떤 해석에서 참인지, 모든 해석에서 참인지는 P·R·f의 해석과 양화사의 의미를 사용해 별도로 검토합니다.
주연산자는 식의 어느 부분을 보아야 찾나요?
글자의 왼쪽 순서보다 마지막에 결합한 구조를 봅니다.
주연산자는 가장 먼저 적힌 논리 기호인가요?
항상 그렇지는 않습니다. 전체 식을 마지막으로 만든 구성 단계에서 더한 연결사나 양화사가 주연산자입니다. 예를 들어 (∀xP(x)→Q(a))는 두 식을 →로 묶어 만든 조건문입니다. 처음 보이는 ∀x는 왼쪽 부분식 안에 있습니다.
표가 화면보다 넓으면 좌우로 움직여 수식과 풀이를 읽어 보세요.
| 식 | 주연산자 | 바로 아래 구조 |
|---|---|---|
| ∀x(P(x)→Q(x)) | ∀x | 몸통은 (P(x)→Q(x))입니다. |
| (∀xP(x)→Q(a)) | → | 앞부분 ∀xP(x), 뒷부분 Q(a)입니다. |
| ¬∀xP(x) | ¬ | 부정하는 식은 ∀xP(x)입니다. |
| ∀x¬P(x) | ∀x | 몸통은 ¬P(x)입니다. |
| P(f(a)) | 논리 연결사·양화사 없음 | P와 항 f(a)로 만든 원자식입니다. |
P(a)∧Q(a)처럼 바깥 괄호를 생략했던 경우에는요?
읽기에 혼동이 없을 때에는 최외곽 괄호를 생략하는 관례를 쓰기도 합니다. 이 편에서 구성 규칙을 확인하거나 괄호 수를 세는 연습을 할 때에는 두 식을 결합한 부분을 (A∧B)처럼 괄호까지 갖춘 모양으로 되돌려 봅니다. 양화사의 몸통과 연결 범위가 분명해야 합니다.
(∀xP(x)∧Q(x))에서 전체의 주연산자와 자유롭게 남을 수 있는 x의 자리는 어디인가요?
답과 풀이 확인하기
주연산자는 ∧이고, 오른쪽 Q(x)의 x는 왼쪽 ∀x에 묶이지 않습니다.
괄호 전체를 만든 마지막 단계는 두 식의 연언입니다. 왼쪽 양화사의 몸통은 P(x)이고, 오른쪽 Q(x)는 그 바깥입니다.
∀x(P(x)∧Q(x))와 (∀xP(x)∧Q(x))는 같은 구조인가요?
답과 풀이 확인하기
서로 다른 구조입니다.
첫 식에서는 ∀x가 연언 전체를 맡아 두 x를 모두 묶습니다. 둘째 식에서는 왼쪽 P의 x만 묶고 오른쪽 Q의 x는 자유롭게 남깁니다.
같은 x라도 자유로운 자리와 묶인 자리가 다른가요?
변수 글자 전체가 아니라 각 출현의 담당 양화사를 추적합니다.
x가 식 안에 여러 번 나오면 자유변수인지 한 번에 정하면 되나요?
먼저 각 출현을 따로 봅니다. 아래 식 ∀x(R(x,y)∧∃xP(f(x)))에서는 바깥 ∀x와 안쪽 ∃x가 서로 다른 범위를 맡습니다. R 안의 x는 바깥 ∀x에 묶이고, f(x) 안의 x는 더 안쪽 ∃x에 묶입니다. y를 맡는 양화사는 없습니다.
| 위치 | 역할 | 누가 맡나요? |
|---|---|---|
| R(x,y)의 첫 자리 x | 속박 출현 | 바깥 ∀x |
| R(x,y)의 둘째 자리 y | 자유 출현 | 해당 양화사 없음 |
| P(f(x)) 안의 x | 속박 출현 | 안쪽 ∃x |
양화사 바로 뒤에 적힌 x도 자유변수로 세나요?
그 x는 어느 변수를 묶겠다는 표시입니다. 자유변수를 찾을 때에는 몸통의 항 자리에 있는 출현이 어느 양화사에 묶이는지 봅니다. 양화사 자체의 변수 표시를 별도의 자유로운 대상 자리로 세지 않습니다.
(P(x)∧∃xQ(x))에서 자유로운 x의 출현은 어디인가요?
답과 풀이 확인하기
왼쪽 P(x)의 x입니다.
오른쪽 Q(x)의 x는 ∃x의 몸통에 있어 묶입니다. 왼쪽 P(x)는 그 양화사의 범위 밖에 있습니다.
∀xR(x,y)를 ∀yR(y,y)로 바꾸면 왜 자유변수의 역할이 달라지나요?
답과 풀이 확인하기
원래 자유롭던 둘째 자리 y를 새 ∀y가 묶기 때문입니다.
바깥 양화사 이름만 바꾸려면 이미 자유롭게 쓰인 y를 새 이름으로 고르면 안 됩니다. 쓰이지 않은 z로 ∀zR(z,y)라고 쓰면 원래 자유로운 y를 보존할 수 있습니다.
자유변수 목록도 작은 부분부터 계산할 수 있나요?
몸통의 자유변수를 모은 뒤 양화사가 맡는 변수만 뺍니다.
식이 길어질수록 눈으로 자유로운 자리를 놓칠 것 같아요.
자유롭게 나타나는 변수들의 집합을 FV라고 적겠습니다. 영어 free variables를 줄인 표시이며, 식의 의미를 분석하는 설명용 도구입니다. 예를 들어 FV(R(x,y))={x,y}입니다. 같은 변수가 여러 번 나와도 목록에는 한 번만 적고, 하나도 없으면 ∅를 씁니다.
표가 화면보다 넓으면 좌우로 움직여 수식과 풀이를 읽어 보세요.
| 대상 | 변수 목록 | 이유 |
|---|---|---|
| 상수 a, b, k | ∅ | 상수에는 변수가 없습니다. |
| 변수 x | {x} | x가 하나의 변수 자리입니다. |
| 항 f(t) | t에 있는 변수 목록과 같음 | 함수기호 f가 변수를 새로 묶지 않습니다. |
| P(t), Q(t) | t에 있는 변수 목록 | 원자식 안의 변수는 아직 모두 자유롭습니다. |
| R(t,u), t=u | t와 u의 변수 목록을 합침 | 두 항의 변수를 빠짐없이 모읍니다. |
| ⊥ | ∅ | 변수 자리가 없습니다. |
표가 화면보다 넓으면 좌우로 움직여 수식과 풀이를 읽어 보세요.
| 식의 모양 | FV 계산 | 쉬운 말 |
|---|---|---|
| ¬A | FV(A) | 부정은 변수를 묶지 않습니다. |
| (A∧B), (A∨B), (A→B), (A↔B) | FV(A)∪FV(B) | 두 목록을 합칩니다. ∪는 집합의 합집합입니다. |
| ∀xA, ∃xA | FV(A)∖{x} | 몸통의 목록에서 x만 뺍니다. ∖는 여기서 해당 원소를 제외하는 표시입니다. |
함수 안에 있는 변수도 원자식의 자유변수 계산에 들어가는군요.
네. f(x) 안의 x는 함수기호 때문에 숨거나 묶이지 않습니다. P(f(x))에서는 자유롭고, ∀xP(f(x)) 전체에서는 ∀x가 그 출현을 묶습니다. 무엇의 FV를 구하는지, 식 전체인지 몸통만인지 적어 두면 좋습니다.
FV(∀xR(x,y))는 무엇인가요?
답과 풀이 확인하기
{y}입니다.
몸통 R(x,y)의 자유변수 집합은 {x,y}입니다. ∀x를 붙이면 x를 빼므로 y만 남습니다.
FV((∀xP(x)∧Q(x)))는 무엇인가요?
답과 풀이 확인하기
{x}입니다.
왼쪽 ∀xP(x)의 FV는 ∅이고 오른쪽 Q(x)의 FV는 {x}입니다. 연언은 두 집합을 합치므로 전체에는 자유로운 x가 남습니다.
자유변수가 없으면 참인 문장인가요?
문장이라는 구문적 분류와 참이라는 의미적 판단을 나눕니다.
FV가 ∅인 식은 모두 문장이라고 부르나요?
그렇습니다. 자유변수가 없는 식을 문장, 또는 닫힌 식이라고 부릅니다. 닫혀 있다는 것은 변수의 열린 자리가 없다는 말이며, 참이라고 보증하는 말은 아닙니다. ∃xP(x)는 닫힌 문장이지만 제출자가 없는 해석에서는 거짓입니다.
표가 화면보다 넓으면 좌우로 움직여 수식과 풀이를 읽어 보세요.
| 표현 | 종류 | 자유변수 | 주의할 점 |
|---|---|---|---|
| f(a) | 닫힌 항 | 없음 | 항이므로 문장에 포함시키지 않습니다. |
| P(f(x)) | 열린 식 | x | x의 대상 배정이 필요할 수 있습니다. |
| ∀xP(f(x)) | 문장 | 없음 | 해석을 주면 참·거짓이 결정됩니다. |
| ∃xP(x) | 문장 | 없음 | P의 외연이 비면 거짓입니다. |
| x=x | 열린 식 | x | 모든 배정에서 참이어도 자유로운 x가 남은 식입니다. |
x=x는 어떤 대상을 넣어도 참인데도 열린 식인가요?
문장인지 여부는 자유변수의 출현으로 정합니다. x=x에는 두 x를 묶는 양화사가 없으므로 FV가 {x}입니다. 열린 식도 모든 배정에서 같은 값을 가질 수 있습니다. 따라서 “값이 실제로 달라지는가”를 문장의 정의로 삼지는 않습니다.
f(a)에 변수가 없으니 1편의 전제 모음 Γ에 문장으로 넣어도 되나요?
답과 풀이 확인하기
그렇게 넣을 수 없습니다.
f(a)는 닫힌 항입니다. 전제는 참·거짓을 평가할 문장이어야 하므로, 예를 들어 P(f(a)) 또는 f(a)=b처럼 식을 만든 뒤 자유변수 여부를 확인해야 합니다.
∀xP(a)는 문장인가요? x가 몸통에 없어도 허용되나요?
답과 풀이 확인하기
문장이며 이번 문법에서 허용됩니다.
P(a)의 FV는 이미 ∅입니다. 그 몸통에 ∀x를 붙여도 자유변수는 없고, ∀가 실제로 묶는 x의 출현은 없습니다. 표준 비어 있지 않은 영역에서는 P(a)와 같은 값을 갖습니다.
식에 대해 설명하는 A와 B도 그 식의 기호인가요?
대상 언어와 그 언어를 설명하는 메타언어를 구별합니다.
구성 규칙에 A와 B가 계속 나오는데, 2절의 술어 목록에는 없어요.
A와 B는 우리가 만든 식 하나 전체를 대신하는 메타언어의 약칭입니다. 분석 대상인 언어를 대상 언어라고 하고, 그 언어를 설명하는 한국어와 약칭들을 메타언어라고 부릅니다. 예를 들어 “A가 식이면 ¬A도 식”이라는 설명에서 A에 P(a)를 넣으면 실제 대상 언어의 식 ¬P(a)를 얻습니다.
표가 화면보다 넓으면 좌우로 움직여 수식과 풀이를 읽어 보세요.
| 표시 | 이 편에서의 위치 | 뜻 |
|---|---|---|
| P(a) | 대상 언어의 문장 | 이름 a의 대상이 P라는 식 |
| A | 메타언어의 약칭 | 설명 중 특정하거나 임의의 식 전체를 가리킴 |
| t, u | 메타언어의 약칭 | 설명 중 항 전체를 가리킴 |
| FV(A) | 메타언어의 표기 | 식 A의 자유변수 집합 |
| Γ ⊢ A | 메타언어의 주장 | 전제 Γ에서 문장 A로 가는 증명이 있다는 말 |
표에서 A=P(a)라고 설명하는 것과 대상 언어의 a=b는 같은 종류인가요?
“A는 P(a)의 약칭”이라고 정하는 것은 표현을 가리키는 설명입니다. 대상 언어의 a=b는 두 이름이 같은 대상을 가리킨다는 식입니다. 혼동을 피하려고 이번 편에서는 약칭을 정할 때 말로 풀어 쓰겠습니다. 기호를 설명하는 문장 자체를 다시 그 대상 언어의 식이라고 생각하지 않아도 됩니다.
¬A라는 규칙에서 A를 항 f(a)로 골라도 되나요?
답과 풀이 확인하기
그 규칙의 조건을 충족하지 않습니다.
A는 식을 대신하도록 정했습니다. 항 f(a)를 넣으면 ¬f(a)가 되어 식 구성 규칙을 따르지 못합니다. P(f(a))처럼 식을 선택해야 합니다.
1편의 Γ ⊨ Q(a) 전체가 이번에 정한 대상 언어의 한 문장인가요?
답과 풀이 확인하기
그 전체는 대상 언어의 문장이 아닙니다.
Γ와 ⊨는 대상 언어의 기호 목록에 들어 있지 않습니다. 그것은 전제 모음과 문장 사이의 의미적 귀결을 설명하는 메타언어의 주장입니다.
구조를 따라가면 모든 식의 성질도 증명할 수 있나요?
가장 작은 경우와 모든 결합 방식을 확인하는 구조적 귀납을 처음 사용합니다.
규칙대로 만들면 된다는 생각이 증명에도 쓰이나요?
쓰입니다. 모든 원자식에 어떤 성질이 있고, 그 성질을 가진 작은 식들을 허용된 방식으로 결합할 때마다 성질이 유지된다면, 구성 규칙으로 만든 모든 식에도 그 성질이 있습니다. 이것을 식의 구조에 대한 귀납, 구조적 귀납이라고 부릅니다.
이 편의 구성 규칙으로 쓴 모든 식은 여는 괄호 수와 닫는 괄호 수가 같습니다.
이번 증명에서는 7절의 완전한 구성 표기를 사용합니다. 두 식을 연결할 때 (A∧B)처럼 괄호 한 쌍을 쓰고, ¬A와 ∀xA·∃xA에는 별도 괄호를 추가하지 않습니다. 술어와 함수의 입력 괄호도 셉니다. 동일성은 t=u처럼 씁니다.
주장은 괄호 두 종류의 개수가 같다는 것까지입니다. 개수가 같다는 사실만으로 임의의 기호열이 올바른 식이라고 판정하려는 것은 아닙니다.
원자식에도 함수항의 괄호가 들어가요. 원자식부터 바로 시작해도 되나요?
그래서 먼저 항에 대한 작은 증명을 합니다. 변수와 상수에는 괄호가 없으므로 두 수가 0으로 같습니다. t의 괄호 수가 같다면 f(t)는 여는 괄호와 닫는 괄호를 하나씩 더하므로 여전히 같습니다. 항을 만드는 모든 경우를 확인했으므로 모든 항의 괄호 수가 같습니다.
표가 화면보다 넓으면 좌우로 움직여 수식과 풀이를 읽어 보세요.
| 원자식의 종류 | 괄호를 세는 방법 | 결과 |
|---|---|---|
| P(t), Q(t) | 항 t의 균형 잡힌 수에 한 쌍을 추가 | 여는 수와 닫는 수가 같습니다. |
| R(t,u) | 두 항의 각각 같은 수를 합치고 한 쌍을 추가 | 여는 수와 닫는 수가 같습니다. |
| t=u | 두 항의 각각 같은 수를 합침 | 추가 괄호가 없어도 두 수는 같습니다. |
| ⊥ | 괄호가 없음 | 두 수가 모두 0입니다. |
이제 작은 식 A와 B에 대해 두 수가 같다고 가정하고, 각각의 결합 규칙을 확인합니다. 이 가정은 이미 작은 구성들에 대해 확보한 성질을 다음 구성으로 이어 가기 위한 귀납 가정입니다. 처음부터 모든 식의 결론을 가정하는 것은 아닙니다.
표가 화면보다 넓으면 좌우로 움직여 수식과 풀이를 읽어 보세요.
| 결합한 식 | 귀납 가정을 사용하는 곳 | 새로 더한 괄호 |
|---|---|---|
| ¬A | A의 두 괄호 수가 같음 | 추가 없음 |
| (A∧B), (A∨B), (A→B), (A↔B) | A의 같은 수와 B의 같은 수를 합침 | 여는 괄호 1개, 닫는 괄호 1개 |
| ∀xA, ∃xA | A의 두 괄호 수가 같음 | 추가 없음 |
원자식도 되고, 어떤 방식으로 더 큰 식을 만들어도 유지되니 모든 식에서 성립하는군요.
네. 모든 식은 원자식에서 유한 번 구성된 것으로 정의했습니다. 출발점과 모든 구성 규칙에서 성질이 유지되므로 어느 완성된 식까지 가도 성질을 잃지 않습니다. 이것으로 이번 주장의 구조적 귀납 증명이 끝납니다.
¬A와 (A∧B)의 경우만 확인하고 ∀xA·∃xA를 빠뜨리면 모든 식의 증명이 끝났나요?
답과 풀이 확인하기
아직 끝나지 않았습니다.
양화식을 만드는 규칙도 허용되어 있으므로 그 규칙에서 성질이 보존되는지 확인해야 합니다. 여기서는 양화사가 괄호를 추가하지 않아 성질이 그대로 유지된다고 설명합니다.
P(a)Q(a)는 여는 괄호와 닫는 괄호가 각각 두 개입니다. 그래서 올바른 식인가요?
답과 풀이 확인하기
괄호 수가 같아도 이 기호열은 올바른 식이 아닙니다.
두 식을 연결사 없이 이어 붙이는 구성 규칙은 없습니다. 방금 증명한 것은 모든 올바른 식이 갖는 성질이지, 그 성질만 있으면 올바른 식이라는 역방향이 아닙니다.
구성과 자유변수를 혼자서 끝까지 확인해 볼까요?
항의 종류에서 시작해 전체 식의 구조와 열린 자리를 정리합니다.
문법, 자유변수, 귀납을 한꺼번에 기억하려니 다시 복잡해졌어요.
문제를 풀 때에는 작은 질문부터 나누어 보세요. f의 입력이 항인지, P와 R의 자리에 알맞은 항이 들어갔는지, 두 식을 어떤 연결사로 묶었는지, 양화사가 어떤 출현을 맡는지 순서대로 확인하면 됩니다. 방금 만든 긴 식으로 다시 연습하겠습니다.
표가 화면보다 넓으면 좌우로 움직여 수식과 풀이를 읽어 보세요.
| 부분 | FV 또는 항의 변수 목록 | 계산 |
|---|---|---|
| f(x) | {x} | 함수는 변수를 묶지 않습니다. |
| P(f(x)) | {x} | 항 안의 x가 원자식에서 자유롭습니다. |
| R(x,y) | {x,y} | 두 변수 출현이 모두 자유롭습니다. |
| ∃yR(x,y) | {x} | 몸통의 {x,y}에서 y를 뺍니다. |
| (P(f(x))→∃yR(x,y)) | {x} | {x}와 {x}를 합칩니다. |
| ∀x(P(f(x))→∃yR(x,y)) | ∅ | 마지막에 x를 뺍니다. |
∀x(P(f(x))→∃yR(x,y))는 항·열린 식·문장 가운데 무엇인가요?
답과 풀이 확인하기
문장입니다.
항들을 사용하여 식 구성 규칙에 맞게 만들었고, 위 계산에서 전체 FV가 ∅입니다. 문장이라고 분류했다고 해서 그 참이나 증명 가능성까지 확인한 것은 아닙니다.
∃yR(f(x),y)의 주연산자와 자유변수 집합은 각각 무엇인가요?
답과 풀이 확인하기
주연산자는 ∃y이고, 자유변수 집합은 {x}입니다.
몸통 R(f(x),y)의 FV는 {x,y}입니다. ∃y를 붙이면 y만 빠지고, 함수항 f(x) 안의 x는 그대로 자유롭게 남습니다.
∀x(P(x)→f(x))는 어떤 단계에서 식 만들기에 실패하나요?
답과 풀이 확인하기
조건문의 뒷부분을 만들 때 실패합니다.
f(x)는 항이어서 (P(x)→f(x))는 두 식을 묶는 조건문 규칙에 맞지 않습니다. 그 바깥에 ∀x를 붙여도 잘못된 몸통을 올바른 식으로 바꾸어 주지 않습니다.
f(a)=b가 참인 작은 세계를 보았으므로, 두 항은 모든 해석에서 같은 값을 가지나요?
답과 풀이 확인하기
그 한 해석만으로는 그렇게 말할 수 없습니다.
예를 들어 같은 세 사람 영역과 a=아라, b=보라를 두고 f를 자기 자신에게 보내는 함수로 바꾸면 f(a)는 아라이므로 f(a)=b는 거짓입니다. 잘 만들어진 문장의 실제 값은 해석에 따라 달라집니다.
다음 3편에서는 이 구성 순서를 그대로 이용하여 항의 값과 식의 만족을 계산합니다. 이름과 함수의 해석을 정하고, 변수에 대상을 배정한 다음, 작은 항과 식에서 큰 식으로 올라갑니다. 오늘 익힌 구조가 의미를 계산하는 순서도 안내해 줄 것입니다.
오늘 익힌 내용을 어떻게 설명할까요?
예시를 하나 정해서 설명해 보세요. 다시 생각해 보고 싶은 질문도 함께 적을 수 있습니다.
기록은 현재 브라우저에만 저장됩니다. 다른 기기에서는 보이지 않습니다.
참고한 논리학 자료
4개 자료개념의 정의와 기호의 뜻을 아래 자료로 확인했습니다. 대화와 생활 예시는 학습을 위해 작성했습니다.
01Open Logic Project, Terms and Formulas(항과 식)
함수항과 원자식·복합식의 재귀적 구성, 항과 식에 대한 귀납 원리를 확인했습니다. 이번 편에서는 한 자리 함수 f가 있는 작은 언어로 좁히고, 괄호 수에 대한 항의 귀납과 식의 귀납을 직접 전개했습니다.
원문 확인02Open Logic Project, Syntax of First-Order Logic(일차논리의 구문)
언어의 기호·자리 수·유한한 구성, 자유 출현의 재귀적 정의와 문장 구분을 확인했습니다. FV 표는 그 정의에 따라 예제를 한 단계씩 계산하도록 구성했습니다.
원문 확인03Open Logic Project, Structures for First-order Languages(일차논리 언어의 구조)
상수는 영역의 대상, n자리 함수기호는 영역의 n개 입력에서 영역으로 가는 전체함수, 술어는 관계로 해석한다는 조건을 확인했습니다. 세 사람의 지정 연락인 순환표는 LTCT가 새로 만들었습니다.
원문 확인04Open Logic Project, 《forall x: Calgary》(포 올 엑스: 캘거리) 27장 · Sentences of FOL(일차논리의 식과 문장)
원자식·문장·주연산자·자유변수와 속박변수의 출현, 대상 언어와 메타언어를 구별하는 설명을 참고했습니다. 함수항의 추가 구성은 Open Logic의 일반 일차논리 문법을 따릅니다.
원문 확인고급 논리학 · 제2편
식은 어떤 규칙으로 만들어지나요?