공허한 참

박준규 @curry@hackers.pub

하스켈의 `all` 함수에 빈 리스트를 넣었을 때 왜 `True`가 반환되는지에 대한 의문을 "공허한 참(Vacuous truth)"이라는 개념을 통해 탐구합니다. 흔히 '구현이 그렇게 되어 있으니까'라고 생각할 수 있지만, 저자는 이 현상을 논리적으로 분석합니다. `all` 함수의 구현 방식과, 빈 리스트에 대한 연산 결과가 전체 결과에 미치는 영향을 설명하며, 공집합의 모든 원소가 짝수라는 명제가 참인 이유와 유사한 논리적 근거를 제시합니다. 이를 통해 코드와 수학 간의 연결고리를 발견하고, 마지막으로 ChatGPT가 생성한 유머러스한 이미지를 곁들여 독자에게 즐거움을 선사합니다.

Read more →
4

If you have a fediverse account, you can quote this article from your own instance. Search https://hackers.pub/ap/articles/01994fbc-7471-7d65-baa7-c4a2690739e3 on your instance and quote it. (Note that quoting is not supported in Mastodon.)

어떤 조건문을 만족하는 원소의 집합을 QQ 라고 해봅시다
그럼 QQ의 임의의 부분집합 PP 의 원소는 QQ의 원소이므로, 그 조건문을 만족할 겁니다
이 때, 공집합\empty은 모든 집합의 부분집합이죠?
따라서 공집합의 원소는 모든 조건문을 만족합니다

공허한 참(Vacuous truth)은 사실 좀더 포괄적인 개념입니다
가정이 거짓이면 명제는 항상 참이다라는 개념입니다
공허한 참이라고 부르니 어렵게 느껴지죠?
저는 항상 한국어 한정으로 '니 말이 진짜면 내일 해가 서쪽에서 뜨겠다' 참으로 이름을 바꿔야한다고 주장해왔습니다
가정(니 말)이 거짓이니 결론(해가 서쪽에서 뜨는 것)이 참이든 거짓이든 명제는 참이 되죠

이걸 공집합의 원소는 모든 명제를 만족한다 에 적용시켜볼까요?
이 명제를 좀더 조건문처럼 쓰기 위해 만약 (가정)이라면 (결론)이다 형태로 바꿔보죠
그럼 a가 공집합에 포함된다면, a는 모든 명제를 만족한다 가 됩니다
그런데, a가 공집합에 포함된다 는 거짓이죠?
따라서 해당 조건문은 가정 자체가 거짓인 공허한 참입니다

2