1강부터 20강까지는 값을 구했습니다. 식을 전개하고 방정식을 풀고 경우의 수를 셌습니다. 21강부터는 다루는 대상이 바뀝니다. 이제부터는 주장을 다룹니다. "이 값은 얼마입니까"가 아니라 "이 주장은 참입니까"를 묻고, 참이라면 왜 참인지를 적는 법을 배웁니다.
이것이 필요한 이유는 분명합니다. 33강부터 시작되는 미적분학은 "가 연속이면 최댓값을 가집니다" 같은 문장으로 이루어져 있습니다. 이런 문장을 정확히 읽으려면 "이면"이 무엇을 뜻하는지, 그 문장이 거짓이 되려면 무엇이 필요한지를 먼저 알아야 합니다. 이 강의는 그 문법의 첫 글자를 놓습니다.
문제. 다음 다섯 문장 중에서 참인지 거짓인지가 하나로 정해지는 것을 모두 고르세요. 정해지지 않는 것은 왜 정해지지 않는지도 적으세요.
(가) 입니다.
(나) 입니다.
(다) 이 그래프는 아름답습니다.
(라) 은 짝수입니다.
(마) 모든 실수 에 대하여 입니다.
생각의 실마리. 각 문장을 읽고 "참입니다" 또는 "거짓입니다" 중 하나를 확실히 말할 수 있는지 시도해 봅니다. 말할 수 없다면 그 이유가 무엇인지 따집니다. 정보가 모자라서인지, 아니면 판단할 기준 자체가 없어서인지를 구분합니다.
풀이. (가)는 계산하면 이므로 참입니다. 참거짓이 정해집니다.
(나)는 가 무엇인지 모르면 답할 수 없습니다. 이면 참이고 이면 거짓입니다. 문장 자체만으로는 참거짓이 정해지지 않습니다.
(다)는 아름답다는 기준이 사람마다 다릅니다. 정보를 더 준다고 해서 정해지는 것이 아니라 판단 기준 자체가 없습니다.
(라)는 이므로 짝수가 아닙니다. 따라서 이 문장은 거짓입니다. 그런데 거짓이라는 것도 하나로 정해진 값입니다. 참거짓이 정해지는 문장에 포함됩니다.
(마)는 1강에서 실수의 제곱이 음수가 될 수 없음을 확인했습니다. 참입니다.
따라서 참거짓이 정해지는 것은 (가), (라), (마) 세 개입니다.
이 문제에서 배우는 것: 명제.
참인지 거짓인지가 하나로 정해지는 문장을 명제라고 합니다. 여기서 중요한 것이 두 가지입니다.
첫째, 거짓인 문장도 명제입니다. (라)처럼 틀린 주장이라도 "틀렸다"가 하나로 정해지면 명제입니다. 명제가 아닌 것은 틀린 문장이 아니라 참거짓을 말할 수 없는 문장입니다.
둘째, (나)처럼 변수가 들어 있어서 값에 따라 참거짓이 달라지는 문장은 명제가 아니라 조건이라고 부릅니다. 조건을 명제로 만드는 방법은 두 가지입니다. 변수에 구체적인 값을 넣거나, "모든 에 대하여"처럼 범위를 지정하는 말을 붙이는 것입니다. 뒤쪽 방법이 22강에서 다룰 한정 기호입니다. (마)가 바로 그 방식으로 명제가 된 문장입니다.
명제는 보통 , , 로 이름 붙이고, 그 참거짓을 진리값이라고 합니다. 참을 , 거짓을 로 씁니다.
바로 확인.
확인 1-1. 다음 중 명제인 것을 고르세요. (가) 입니다. (나) 입니다. (다) 어떤 자연수는 짝수입니다. (라) 오늘은 덥습니다.
답. (가)와 (다)입니다. (가)는 참이고, (다)는 가 짝수이므로 참입니다. (나)는 가 정해지지 않아 조건이고, (라)는 기준이 없습니다.
확인 1-2. "입니다"가 명제가 되도록 두 가지 방법으로 고치세요.
답. 값을 넣어 "입니다"로 고치면 참인 명제가 됩니다. 범위를 붙여 "모든 실수 에 대하여 입니다"로 고치면 거짓인 명제가 됩니다. 어느 쪽이든 참거짓이 하나로 정해집니다.
확인 1-3. "은 소수입니다"는 명제입니까? 명제라면 진리값은 무엇입니까?
답. 명제입니다. 소수는 보다 큰 자연수 중 약수가 과 자기 자신뿐인 수로 정의되므로 은 소수가 아닙니다. 진리값은 거짓입니다.
문제. 다음 세 문장의 부정을 각각 만드세요.
(가) : "은 짝수입니다"
(나) : "입니다"
(다) : "이고 입니다"
생각의 실마리. 부정은 원래 문장이 참일 때 거짓이 되고 거짓일 때 참이 되는 문장입니다. 그러니 "원래 문장이 성립하지 않는 모든 경우"를 빠짐없이 담아야 합니다. (다)에서 특히 조심합니다. 두 조건이 모두 성립해야 참인 문장이 거짓이 되려면 몇 개가 깨져야 하는지 생각합니다.
풀이. (가)의 부정은 "은 짝수가 아닙니다"입니다. 정수는 짝수이거나 홀수이므로 "은 홀수입니다"라고 써도 같습니다. 가 거짓이었으므로 부정은 참입니다.
(나)에서 이 성립하지 않는다는 것은 가 이상이 아니라는 뜻입니다. 8강에서 다룬 대로 실수는 과 둘 중 정확히 하나에 속하므로 부정은 "입니다"입니다. 여기서 흔한 실수는 이라고 쓰는 것입니다. 은 원래 문장을 참으로 만들므로 부정에 들어가면 안 됩니다.
(다)는 두 조건이 모두 성립할 때만 참입니다. 그러므로 거짓이 되는 경우는 이거나, 이거나, 둘 다 아닌 경우입니다. 셋을 한 문장으로 묶으면 "이거나 입니다"가 됩니다. 여기서 "이거나"는 둘 중 적어도 하나라는 뜻이므로 둘 다 아닌 경우까지 포함합니다.
이고 라고 쓰면 안 됩니다. 이고 인 경우를 보면 원래 문장은 거짓인데 이 식은 성립하지 않으므로, 부정이 담아야 할 경우를 놓칩니다.
이 문제에서 배우는 것: 부정과 진리표.
명제 의 부정을 로 쓰고 "피 아님"이라고 읽습니다. 는 가 참이면 거짓, 거짓이면 참입니다. 이것을 표로 적은 것이 진리표입니다.
부정을 두 번 하면 원래로 돌아옵니다. 즉 는 와 같은 진리값을 가집니다. 이것을 이중부정이라고 합니다.
부등호의 부정에서 등호가 어디로 가는지 정리해 둡니다. 의 부정은 이고, 의 부정은 이며, 의 부정은 입니다. 등호가 반대쪽으로 넘어간다고 기억합니다.
바로 확인.
확인 2-1. "입니다"의 부정을 쓰세요.
답. "입니다"입니다.
확인 2-2. "이거나 입니다"의 부정을 쓰세요.
답. "이고 입니다"입니다. 둘 중 하나라도 이면 원래 문장이 참이므로, 거짓이 되려면 둘 다 이 아니어야 합니다.
확인 2-3. 가 거짓일 때 의 진리값은 무엇입니까?
답. 부정을 세 번 했으므로 한 번 한 것과 같습니다. 가 거짓이므로 값은 참입니다.
문제. 를 "은 짝수입니다", 를 "은 의 배수입니다"라고 합니다.
(1) " 그리고 "와 " 또는 "의 진리값을 각각 구하세요.
(2) 진리표를 써서 와 가 항상 같은 값을 가지는지 확인하세요.
생각의 실마리. (2)에서 와 가 가질 수 있는 진리값의 조합은 몇 가지인지 먼저 셉니다. 각각 두 가지이므로 곱의 법칙으로 네 가지입니다. 네 줄을 모두 적고 양쪽 열을 비교합니다.
풀이. (1) 이므로 는 참입니다. 는 나누어떨어지지 않으므로 는 거짓입니다.
"그리고"는 둘 다 참일 때만 참이므로 " 그리고 "는 거짓입니다. "또는"은 적어도 하나가 참이면 참이므로 " 또는 "는 참입니다.
(2) 네 줄을 모두 적습니다.
네 번째 열과 마지막 열이 네 줄에서 모두 같습니다. 따라서 두 명제는 항상 같은 값을 가집니다.
이 문제에서 배우는 것: 논리곱, 논리합, 드모르간 법칙.
" 그리고 "를 로 쓰고 논리곱이라고 합니다. 둘 다 참일 때만 참입니다.
" 또는 "를 로 쓰고 논리합이라고 합니다. 적어도 하나가 참이면 참입니다. 일상어의 "또는"은 둘 중 하나만이라는 뜻으로 쓰이기도 하지만, 수학에서 는 둘 다 참인 경우도 포함합니다.
방금 진리표로 확인한 것이 드모르간 법칙입니다.
여기서 는 두 명제가 모든 경우에 같은 진리값을 가진다는 뜻이고, 이때 두 명제가 동치라고 말합니다. 말로 옮기면 "그리고의 부정은 또는이 되고, 또는의 부정은 그리고가 된다"입니다. 문제 2의 (다)에서 손으로 만든 부정이 바로 이 법칙이었습니다.
동치를 판정하는 방법은 지금 한 것이 전부입니다. 진리표를 모두 적고 두 열을 비교합니다. 한 줄이라도 다르면 동치가 아니며, 그 한 줄이 곧 반례입니다.
바로 확인.
확인 3-1. 와 는 동치입니까? 아니라면 반례가 되는 줄을 지목하세요.
답. 동치가 아닙니다. 가 참이고 가 거짓인 줄을 봅니다. 가 참이므로 는 거짓인데, 는 거짓이고 는 참이므로 는 참입니다. 값이 다르므로 이 줄이 반례입니다.
확인 3-2. "입니다"를 를 써서 두 부등식으로 나누고, 그 부정을 드모르간 법칙으로 구하세요.
답. 원래 문장은 입니다. 부정은 입니다.
확인 3-3. 가 참일 때 의 진리값은 와 관계없이 정해집니까?
답. 정해집니다. 적어도 하나가 참이면 되므로 가 무엇이든 는 참입니다.
문제. 선생님이 "시험에서 점을 넘으면 상을 주겠습니다"라고 약속했습니다. 다음 네 경우에서 선생님이 약속을 어긴 경우를 고르세요.
(가) 점을 받았고 상을 받았습니다.
(나) 점을 받았는데 상을 받지 못했습니다.
(다) 점을 받았고 상을 받지 못했습니다.
(라) 점을 받았는데 상을 받았습니다.
생각의 실마리. 약속은 점을 넘은 경우에 대해서만 무언가를 말하고 있습니다. 점을 넘지 못한 경우에 대해서는 아무 말도 하지 않았다는 점에 주목합니다. 아무 말도 하지 않은 경우에 대해서 약속을 어겼다고 할 수 있는지 따집니다.
풀이. (가)는 점을 넘었고 상을 받았으므로 약속대로입니다. 어기지 않았습니다.
(나)는 점을 넘었는데 상을 주지 않았습니다. 약속을 어겼습니다.
(다)는 점을 넘지 못했습니다. 이 경우에 대해 선생님은 아무 약속도 하지 않았으므로 상을 주지 않아도 약속을 어긴 것이 아닙니다.
(라)도 점을 넘지 못한 경우입니다. 선생님이 상을 주지 말라고 약속한 적은 없으므로, 상을 주었다고 해서 약속을 어긴 것은 아닙니다.
따라서 약속을 어긴 것은 (나) 하나뿐입니다.
이 문제에서 배우는 것: 조건문.
"이면 이다"를 로 쓰고 조건문이라고 합니다. 를 가정 또는 전건, 를 결론 또는 후건이라고 합니다.
방금 확인한 대로 조건문이 거짓이 되는 경우는 가정이 참인데 결론이 거짓인 경우 하나뿐입니다. 나머지는 모두 참입니다.
가정이 거짓이면 결론이 무엇이든 조건문 전체가 참이 됩니다. 이것을 공허하게 참이라고 부릅니다. 처음에는 어색하지만, (다)와 (라)에서 본 대로 약속하지 않은 경우를 위반으로 셀 수는 없다는 상식과 같습니다.
이 진리표에서 중요한 동치가 하나 나옵니다. 조건문이 거짓인 줄은 가 참이고 가 거짓인 줄뿐이므로, 참인 경우는 "가 거짓이거나 가 참인" 경우입니다. 즉
입니다. 여기에 드모르간 법칙을 쓰면 조건문의 부정도 바로 나옵니다.
조건문의 부정은 조건문이 아니라 논리곱이라는 점이 핵심입니다. "이면 이다"를 부정하려면 "이면 가 아니다"가 아니라 "인데 가 아닌 경우가 있다"를 보여야 합니다. 이것이 뒤에서 반례를 찾는 작업의 근거입니다.
바로 확인.
확인 4-1. "이면 입니다"의 부정을 쓰세요.
답. "인데 입니다"입니다.
확인 4-2. 가 거짓일 때 의 진리값을 구하세요.
답. 참입니다. 가정이 거짓이면 결론과 무관하게 조건문은 참입니다.
확인 4-3. "은 짝수이면 은 보다 큽니다"의 진리값을 구하세요.
답. 참입니다. 가정 "은 짝수입니다"가 거짓이므로 공허하게 참입니다. 결론이 거짓이라는 사실은 진리값을 바꾸지 않습니다.
문제. 명제 에 대해 를 역, 를 이, 를 대우라고 합니다.
(1) 진리표를 써서 셋 중 원래 명제와 동치인 것을 찾으세요.
(2) "이면 입니다"의 역을 만들고, 그 역이 거짓임을 보이는 구체적인 값을 하나 드세요.
생각의 실마리. (1)은 네 줄짜리 진리표를 만들고 네 개의 열을 나란히 비교하면 끝납니다. (2)에서 역이 거짓임을 보이려면 문제 4에서 배운 대로 "가정은 참인데 결론이 거짓인 값"을 하나 찾으면 됩니다.
풀이. (1) 네 줄을 모두 적습니다.
| 역 | 이 | 대우 | |||
|---|---|---|---|---|---|
세 번째 열과 마지막 열이 네 줄에서 모두 일치합니다. 따라서 대우만 원래 명제와 동치입니다. 역과 이는 두 번째 줄과 세 번째 줄에서 원래 명제와 다른 값을 가지므로 동치가 아닙니다. 한편 역과 이는 서로 같은 열을 가지므로 둘끼리는 동치입니다.
(2) 원래 명제의 역은 "이면 입니다"입니다. 를 넣어 봅니다. 가정 는 참이고, 결론 는 거짓입니다. 가정이 참인데 결론이 거짓이므로 이 역은 거짓입니다. 가 반례입니다.
이 문제에서 배우는 것: 역, 이, 대우와 필요충분조건.
에 대하여 다음과 같이 부릅니다.
| 이름 | 식 | 원래와의 관계 |
|---|---|---|
| 역 | 동치가 아닙니다 | |
| 이 | 동치가 아닙니다 | |
| 대우 | 항상 동치입니다 |
이 동치가 이 강의에서 가장 자주 쓰일 결과입니다. 원래 명제를 증명하기 어려울 때 대우를 대신 증명해도 되는 근거이며, 23강의 대우증명이 여기에 기대어 있습니다.
가 참일 때 다음과 같이 말합니다. 는 이기 위한 충분조건이고, 는 이기 위한 필요조건입니다. 화살표가 나가는 쪽이 충분조건이고 들어오는 쪽이 필요조건이라고 기억합니다. 와 가 모두 참이면 와 는 필요충분조건이며 로 씁니다.
이면 이므로 는 의 충분조건입니다. 그러나 (2)에서 본 대로 역은 거짓이므로 필요조건은 아닙니다.
바로 확인.
확인 5-1. "이 의 배수이면 은 짝수입니다"의 대우를 쓰세요.
답. "이 짝수가 아니면 은 의 배수가 아닙니다"입니다.
확인 5-2. 위 명제의 역을 쓰고 반례를 하나 드세요.
답. 역은 "이 짝수이면 은 의 배수입니다"입니다. 이 반례입니다. 은 짝수이지만 의 배수가 아닙니다.
확인 5-3. ""은 ""이기 위한 어떤 조건입니까?
답. 충분조건이지만 필요조건은 아닙니다. 이면 이지만, 은 이면서 이 아니므로 역은 성립하지 않습니다.
| 기호 | 이름 | 참이 되는 때 | 거짓이 되는 때 |
|---|---|---|---|
| 부정 | 가 거짓일 때 | 가 참일 때 | |
| 논리곱 | 둘 다 참일 때 | 하나라도 거짓일 때 | |
| 논리합 | 하나라도 참일 때 | 둘 다 거짓일 때 | |
| 조건문 | 나머지 모든 경우 | 참이고 거짓일 때 | |
| 동치 | 두 진리값이 같을 때 | 두 진리값이 다를 때 |
| 상황 | 쓸 도구 |
|---|---|
| 그리고와 또는이 섞인 문장을 부정합니다 | 드모르간 법칙 |
| 조건문을 부정합니다 | |
| 원래 명제를 증명하기 어렵습니다 | 대우로 바꿉니다 |
| 두 명제가 동치인지 판정합니다 | 진리표 네 줄을 비교합니다 |
| 동치가 아님을 보입니다 | 값이 다른 줄 하나를 지목합니다 |
| 조건문이 거짓임을 보입니다 | 가정은 참, 결론은 거짓인 예를 듭니다 |
문제 6. "이고 입니다"의 부정을 쓰세요.
답. "이거나 입니다"입니다.
문제 7. 가 참, 가 거짓, 이 참일 때 의 진리값을 구하세요.
답. 참입니다. 는 거짓이지만, 가 참이고 이 참이므로 이 참입니다. 논리합이므로 전체가 참입니다.
문제 8. "이 소수이면 은 홀수입니다"가 거짓임을 보이세요.
답. 가 반례입니다. 는 소수이므로 가정이 참이지만 짝수이므로 결론이 거짓입니다.
문제 9. 와 가 동치임을 진리표로 확인하세요.
답. 네 줄에서 와 , 와 , 와 , 와 가 각각 일치합니다.
문제 10. "이면 입니다"의 진리값을 판정하고 근거를 쓰세요.
답. 거짓입니다. 이면 이므로 가정이 참인데 이므로 결론이 거짓입니다.
문제 11. 와 가 동치임을 확인하세요. 몇 줄짜리 진리표가 필요합니까?
답. 변수가 세 개이므로 줄이 필요합니다. 여덟 줄을 모두 적으면 두 열이 일치합니다. 가 거짓인 네 줄에서는 양쪽이 모두 거짓이고, 가 참인 네 줄에서는 양쪽이 모두 과 같은 값을 가집니다.
문제 12. "모든 조건을 만족하지는 않습니다"와 "모든 조건을 만족하지 않습니다"는 같은 뜻입니까?
답. 다릅니다. 앞은 적어도 하나를 만족하지 못한다는 뜻이고, 뒤는 하나도 만족하지 못한다는 뜻입니다. 앞이 이고 뒤가 입니다. 한국어에서 조사 하나로 갈리므로 22강에서 기호로 구분합니다.
문제 13. 의 대우를 쓰세요.
답. 입니다. 대우는 앞뒤를 바꾸고 각각 부정하는 것인데, 의 부정은 이중부정이므로 가 됩니다.
문제 14. "이면 이거나 입니다"의 대우를 쓰세요.
답. "이고 이면 입니다"입니다. 결론의 부정에 드모르간 법칙을 적용한 결과입니다.
문제 15. 가 참이고 이 참일 때 은 반드시 참입니까?
답. 참입니다. 가 참이면 첫 조건문에서 가 참이고, 두 번째 조건문에서 이 참입니다. 가 거짓이면 은 공허하게 참입니다. 어느 경우에도 참이며, 이것을 삼단논법이라고 합니다.
문제 16. "가 유리수이면 는 실수입니다"에서 유리수라는 것은 실수이기 위한 어떤 조건입니까?
답. 충분조건입니다. 1강에서 본 대로 이므로 조건문은 참이지만, 가 실수이면서 유리수가 아니므로 역은 거짓입니다.
문제 17. 가 참이 되는 줄은 진리표 네 줄 중 몇 개입니까? 어느 줄입니까?
답. 두 개입니다. 두 진리값이 같은 줄, 즉 와 입니다.
문제 18. "비가 오면 땅이 젖습니다"가 참일 때, 땅이 젖은 것을 보고 비가 왔다고 결론지을 수 있습니까?
답. 없습니다. 그 결론은 역인 "땅이 젖으면 비가 왔습니다"를 쓰는 것인데, 역은 원래 명제와 동치가 아닙니다. 물을 뿌려도 땅은 젖으므로 반례가 존재합니다. 다만 땅이 젖지 않았다면 비가 오지 않았다고 결론지을 수 있습니다. 이것은 대우이므로 항상 성립합니다.
심화 1. 명제 변수가 개일 때 진리표는 몇 줄입니까? 그 근거를 19강의 셈으로 설명하세요.
답. 줄입니다.
풀이. 각 변수는 참 또는 거짓 두 가지 값을 가질 수 있고, 변수들의 값은 서로 독립적으로 정해집니다. 19강의 곱의 법칙에 따라 첫 변수 가지, 둘째 변수 가지를 곱하는 식으로 번 곱하므로 가지입니다.
남는 것. 진리표는 변수 수에 대해 지수적으로 커집니다. 변수가 개면 줄이 되어 손으로 다루기 어렵습니다. 그래서 실제 증명에서는 진리표를 전부 적는 대신 동치 법칙을 써서 식을 변형합니다.
심화 2. 를 진리표가 아니라 이미 얻은 동치 법칙만으로 유도하세요.
답. 드모르간 법칙과 이중부정으로 유도됩니다.
풀이. 문제 4에서 를 얻었습니다. 양쪽을 부정하면 입니다. 오른쪽에 드모르간 법칙을 적용하면 가 됩니다. 이중부정으로 는 이므로 결과는 입니다.
남는 것. 진리표는 확인하는 도구이고 동치 법칙은 계산하는 도구입니다. 변수가 많아지면 후자만 실용적입니다. 이 계산이 2강에서 다항식을 전개하던 것과 같은 성격이라는 점에 주목합니다. 규칙을 적용해 식을 다른 모양으로 바꾸는 작업입니다.
심화 3. 어떤 진리값 조합에서도 항상 참인 명제를 항진명제라고 합니다. 가 항진명제임을 보이고, 도 항진명제인지 판정하세요.
답. 둘 다 항진명제입니다.
풀이. 가 참이면 의 첫 항이 참이고, 가 거짓이면 둘째 항이 참입니다. 두 경우뿐이므로 항상 참입니다.
두 번째 식은 네 줄을 봅니다. 가 거짓인 줄은 가 참이고 가 거짓인 줄 하나뿐인데, 그 줄에서는 가 거짓이므로 가 공허하게 참입니다. 따라서 어느 줄에서도 적어도 하나는 참이며 논리합은 항상 참입니다.
남는 것. 두 번째 결과는 직관과 어긋나 보입니다. 아무 관계도 없는 두 명제를 가져와도 "하나가 다른 하나를 함의한다"가 반드시 성립합니다. 이것은 조건문이 인과관계가 아니라 진리값의 조합만 본다는 사실을 보여 줍니다. 조건문을 읽을 때 원인과 결과를 읽지 않도록 주의합니다.
심화 4. 과 이 동치임을 보이세요.
답. 동치입니다.
풀이. 왼쪽을 로 바꿉니다. 논리합은 묶는 순서를 바꿔도 되므로 입니다. 드모르간 법칙으로 는 이므로 전체는 이고, 이는 입니다.
남는 것. 이 동치는 뒤에서 증명을 쓸 때 계속 쓰입니다. "이면, 일 때 이다"를 보이는 것과 "와 가 모두 성립하면 이다"를 보이는 것이 같으므로, 가정이 여러 개인 정리를 만나면 가정을 모두 한꺼번에 놓고 시작해도 됩니다.
심화 5. 와 와 중에서 과 하나만 남기고 나머지를 지워도 모든 연결사를 표현할 수 있습니까?
답. 가능합니다. 과 만 있어도 되고, 과 만 있어도 됩니다.
풀이. 드모르간 법칙을 부정하면 이므로 는 과 로 표현됩니다. 같은 방식으로 이므로 도 과 로 표현됩니다. 조건문은 이므로 이미 표현되어 있고, 는 입니다.
남는 것. 필요한 연결사가 실제로는 두 개뿐이라는 사실은 논리를 다루는 프로그램을 만들 때 중요합니다. 모든 식을 두 연결사로 바꿔 두면 처리해야 할 경우가 줄어듭니다. 429강 이후의 하드웨어에서도 소수의 기본 연산으로 모든 논리를 조립하는 같은 발상이 쓰입니다.
심화 6. "이 문장은 거짓입니다"는 명제입니까?
답. 명제가 아닙니다.
풀이. 참이라고 가정하면 문장의 내용에 따라 거짓이어야 하므로 모순입니다. 거짓이라고 가정하면 "거짓이다"라는 주장이 맞는 것이므로 참이어야 하고 역시 모순입니다. 참도 거짓도 될 수 없으므로 참거짓이 하나로 정해지지 않습니다.
남는 것. 자기 자신을 가리키는 문장은 명제의 범위 밖에 있습니다. 그래서 수학에서는 명제를 만들 때 대상의 범위를 미리 정해 두고, 그 범위 안의 대상에 대해서만 말합니다. 이 범위를 다루는 도구가 26강의 집합이며, 22강의 한정 기호도 항상 "어떤 범위 안에서"를 함께 적습니다.
진리표는 참과 거짓의 배열이므로 numpy 불리언 배열로 그대로 옮길 수 있습니다. 손으로 적은 표와 코드의 결과가 같은지 확인합니다.
import numpy as np
# 두 변수의 네 줄을 한 번에 만듭니다.
p = np.array([True, True, False, False])
q = np.array([True, False, True, False])
# 문제 3: 드모르간 법칙
print(np.array_equal(~(p & q), (~p) | (~q))) # True
print(np.array_equal(~(p | q), (~p) & (~q))) # True
# 문제 4: 조건문은 ~p or q 입니다.
imp = (~p) | q
print(imp) # [ True False True True]
# 문제 5: 대우만 동치이고 역과 이는 아닙니다.
conv = (~q) | p # 역 q -> p
inv = p | (~q) # 이 ~p -> ~q
contra = q | (~p) # 대우 ~q -> ~p
print(np.array_equal(imp, contra)) # True
print(np.array_equal(imp, conv)) # False
print(np.array_equal(conv, inv)) # True
# 심화 3: 항진명제는 모든 줄이 참입니다.
print(np.all(p | (~p))) # True
print(np.all(imp | conv)) # True
# 심화 4: p -> (q -> r) 과 (p and q) -> r
P = np.array([True]*4 + [False]*4)
Q = np.array([True, True, False, False]*2)
R = np.array([True, False]*4)
left = (~P) | ((~Q) | R)
right = (~(P & Q)) | R
print(np.array_equal(left, right)) # True
코드가 출력한 값이 위 주석과 모두 같습니다. 특히 역과 이가 서로 동치라는 사실이 세 번째 판정에서 확인됩니다.
정답.
| 기호 | 읽는 법 | 뜻 |
|---|---|---|
| , , | 피, 큐, 알 | 명제를 가리키는 이름입니다 |
| , | 참, 거짓 | 진리값입니다 |
| 피 아님 | 의 부정입니다 | |
| 피 그리고 큐 | 둘 다 참일 때만 참입니다 | |
| 피 또는 큐 | 적어도 하나가 참이면 참입니다 | |
| 피이면 큐 | 가정이 참인데 결론이 거짓일 때만 거짓입니다 | |
| 피와 큐는 동치 | 두 진리값이 같을 때 참입니다 | |
| 항상 같습니다 | 모든 경우에 진리값이 일치합니다 |
다음 22강에서는 "모든"과 "어떤"을 기호로 적고, 그 문장을 부정하는 법을 배웁니다. 문제 1의 (나)처럼 명제가 되지 못했던 조건들이 그 기호를 만나 명제가 됩니다.