'이 문장은 거짓이다'
그렇다면? 이 문장은 거짓이다 라는게 거짓이므로
이 문장은 참이고 이 문장이 참이므로 거짓이고..
끝이없는 순환에 빠진다.
명제는 참 또는 거짓이어야만 하고 둘의 중첩상태라던가는 존재하지 않는데
이 문장은 참일까 거짓일까
코드로 나타내면 어떻게 될지 생각해봤다
파이썬으로 짜니까 굉장히 직관적인( 위 문장 그 자체인..) 코드가 된다.
당연히 이렇게 뜨겠지
This_statement 는 뭘까?
바로 저 문장자체를 가르키는데 그러면
이런식으로 나타낼 수 있겠다
물론 이 코드도 같은 에러가 난다
This_statement는 statement인 이상 True 나 False 일거니까
그냥 둘다 넣어보면서 진행하는게 맞다고 생각되었다
그다음으로 떠오른건
This_statement와 This_statement is False 가 같냐 라는 의문이었다.
결과는 This_statement의 진리값과는 관계없이
This_statement 와 This_statement is False는 같지않았다.
즉 논리적으로 거짓이라는 말이다 True == False 처럼
얼핏 'A는 거짓이다' 같이 보이는 단순한 명제 처럼 보이지만
A 가 'A는 거짓이다' 와 같다는 명제를 포함하고 있으면
이것은 항상 논리적으로 거짓인 모순된 명제가 되는것이다.
조금 다른이야기로 이 역설에 대한 역사적인 solution은
러셀이나 타르스키가 제시했는데
제대로 다 읽은건 아니지만
핵심은 메타언어 또는 계형이론 (둘이 비슷한거같다) 으로 설명하는데
대충 그냥 언어(계수 0) 과 메타 언어(계수 1 또는 그 이상.. 메타언어의 메타언어라면 계수 2 같이) 는 계층이 다르고
구분되어서 다루어져야 한다는것과
'참이다 or 거짓이다' 를 술어로 두는 문장(명제)는 보통의 언어가 아닌 메타언어라는 것이다.
그래서 '이 문장' 과 '이 문장은 거짓이다' 라는것은 계층이 다르고, (이 문장의 계수와 관계없이)
둘은 동일하지 않다.
그렇게 되는거같다..
그냥 갑자기 궁금해져서 대충 찾아본거라 아닐 수 도 있다.. 심심해서 적어봄
https://medium.com/riskified-technology/coding-the-liar-paradox-a53643b677a1
의외로
이런거 코드로 짜둔거 꽤 있네 ㅇㅅㅇ
헐 찾아볼걸
파이썬의 is랑 "this statement is false"에서의 is가 다른 의미이기에 이 해석은 틀렸음
그럼 뭐가 맞을까
뭐 누구나 다 해볼법한 생각인데, 직접 코드로 짜본건 인정. 그외엔 다 그냥 학부생 수준
이건 당연히 알아야 수학의 귀류법을 이해할 수 있는거 아님?
하긴 대한민국 학교에서는 논리를 가르치지 않으니까 그럴 수 있지
오옹..좀 재밋내