‘A implies B’는 왜 ‘~A or B’일까?

By | 2007/01/08

수학 형식과 기능‘을 읽다가

군 이론에 대한 부분이 나오자 무슨 말인지 모르겠더군요.

관련 내용이 있는 책을 찾아보니 ‘대수학’과목이네요.

우리학교 수학과 커리큘럼을 보니 3~4학년용이군요.;;;;

수학 전공도 아닐뿐더러 공업수학도 안 배운 저에게

3~4학년용이라니..;;

그래서 50%정도 이해하고 넘어가니 다음 절은 ‘부울대수’입니다.

이건 이산수학을 독학하면서 조금 봤죠.

컴퓨터 시간에도 나오기도 하는 것이죠.^^

 

그런데 한 그림에 필이 꼽혔습니다.

‘S ⇒ T’를 벤다이어그램으로 나타내면 위와 같다는군요.

책에서는 이런 설명이 있습니다.

첫 번째 나오는 설명은 이해가 가지만

어째서 두 번째 설명으로 넘어가는지 모르겠습니다.

‘S ⇒ T’를 이렇게 말합니다.

‘S이면 T이다.’

이것이 첫 번째 설명이 되는 것이지요.

그럼 두 번째 설명은 수식으로 하면 다음과 같습니다.

‘~S∨T’

첫 번째와 두 번째가 어떻게 연결되는 것인지 잘 모르겠습니다.

 

구글링을 해보았습니다.

위의 벤다이어그램으로도 설명이 되지만,

진리표(truth table)을 보니 조금 낫네요.

‘~A∨B’는 분명 저 진리표대로 나옵니다.

그렇다면 ‘A⇒B’이 저 진리표를 따르는지 확인해보겠습니다.

A⇒B’은 ‘만약 A가 참이면 B 역시 참이다.’이니

1. A는 참, B도 참이면 명제 역시 참입니다.

2. A가 참, B가 거짓이면 명제는 거짓입니다.

왜냐하면 A가 참일 때 B 역시 참이라고 했는데 거짓이기 때문입니다.

그러나 3, 4번은 모르겠습니다.

A가 거짓일 때 언급이 없기에 참인지 거짓인지 알 수가 없을테니 말입니다.

하지만 참인지 거짓인지 알 수 없는건 명제가 되지 않으니 앞뒤가 안 맞습니다.

 

여기에 대해 이산수학 책에 이런 글이 있습니다.

  • 조건문(conditional statement)의 수학적 개념은 가정과 결론을 완전 독립적으로 취급한다. 즉, 가정과 결론 사이에 아무런 관계가 없는 것이다.
  • 인과관계가 있는 보통문장에서는 3, 4번이 참인지 거짓인지를 모를 것이다. 그러나 논리의 조건문에서는 3, 4번을 참으로 정의한다.

A와 B는 독립적으로 취급하는군요.

그럼 질문이 바뀌었습니다.

1. 왜 둘을 독립적으로 취급하는걸까?

2. 왜 3, 4번을 참으로 정의할까?

 

답을 찾고자 인터넷을 더 찾아보았습니다.

글을 읽어보시면 알겠지만,

3, 4번을 참으로 했을 경우 황당한 일이 발생하더군요.

그 중 하나를 바꿔 적겠습니다.

‘2+2=5라면 NoSyu는 교황이다.’를 증명하라는 말에

‘2+2=4이기에 5=4가 될 것입니다.

양변에 3을 빼면 2=1이 될 것입니다.

NoSyu와 교황은 둘이니 둘은 하나가 될 것입니다.

따라서 NoSyu는 교황입니다.’

이거 어디서 많이 들어본 얘기이군요.

0으로 나눌 수 있다면 저렇게 할 수 있다고 한 이야기가 생각납니다.

 

역시 일반적인 말과 수학에서 말하는 조건문은 다른가봅니다.

그래서 위키피디아에서는 혼동을 줄이고자

‘if then’을 쓰지 말고,

‘it is not the case that A and/or it is the case that B’ 혹은

‘A is false and/or B is true'(=‘~A∨B’)라 하자는군요.

(우리나라말로 번역이 힘들어서 원문을 그대로 가져왔습니다.)

 

왜 둘은 달라야 하는지,

수학적으로는 왜 그러해야 하는지는

알 듯 모를 듯 싶네요.

좀 더 알아보면 알 듯 싶기도 합니다만,

혹시 아시는 분은 힌트를 주시면 고맙겠습니다.

 

참조

수학 형식과 기능

공통수학 정석

이산수학 및 응용

위키피디아(http://en.wikipedia.org/)

foldop(http://www.swif.it/foldop/)

Wolfram MathWorld(http://mathworld.wolfram.com)

Interactive Mathematics Miscellany and Puzzles

14 thoughts on “‘A implies B’는 왜 ‘~A or B’일까?

  1. NoSyu

    /입코군/
    제가 다른분에게 설명하는 글이 아닌 질문하는 글이기 때문일겁니다.^^

    Reply
  2. 로냐프

    F -> F (T)는 대우를 생각해보면 T -> T가 되므로 true가 됨을 알 수 있…을까요?
    요즘 이산수학을 듣는지라 가정문이 F인 경우에 대해서는 결론에 상관없이 true라고 들었는데 그 이유에 대해서는 ‘그렇게 정해져있으니까’라는 설명이었습니다.

    int c = ( a > b ) ? true : false; 라는 문장이라면 a,b와의 관계에 종속적으로 c값으 도출되는 것일텐데 어째서 독립적인건지 모르겠습니다.

    잠시후에 수업에 들어가니 여쭤봐야겠습니다.

    Reply
  3. NoSyu

    /로냐프/
    오랜만이네요.^^
    네.. 저도 대우를 생각해서 하나 발견해냈지만,
    A, B 둘 다 false인 경우는 설명하기 힘들더군요.
    그리고 수학적 조건문과 언어(컴퓨터 언어도 들어가더군요.)적 조건문은 차이난다는 글이 있더군요.
    혹시 답변 얻으시면 힌트 부탁드립니다.^^

    Reply
  4. 로냐프

    여쭤봤습니다. 간단하게 대답하시더군요

    "약속이야"

    "그럼 2=1일때 1=0이다, 라는게 가능한가요?"

    "응, 수학적으론 가능해"

    …라고 하시더군요.
    간단명료하고 할말없어지는 답변이었습니다.

    Reply
  5. 로냐프

    아, 참고로 위에 저 문장은 컴파일시 warning이 뜹니다.
    저도 제가 왜 저렇게 썼는지 궁금해져서 돌려보니까 컴파일러에 따라 안되기도 하더군요;

    Reply
  6. NoSyu

    /로냐프/
    알아봐주셔서 고맙습니다.
    정말 간단명료하네요.
    제가 궁금한 건 왜 그렇게 약속을 했는가입니다.
    다른 글에 보면 ‘0^0=1’이라는 글을 적었습니다.
    http://nosyu.pe.kr/wordpress/451
    원래 0^0은 정의되어있지 않다가 맞으나
    계산기나 어떤 식에서는 1이라고 정의한다는군요.
    그 이유에 대해 탐구(?)해 본적이 있어
    이번 것도 찾을 수 있지 않을까 했지만 못 찾았네요.ㅜㅜ

    Reply
  7. NoSyu

    /로냐프/
    제가 알기론 표준 C에서는 True, False가 정의되어 있지 않은 것으로 기억합니다.
    다만 임플리멘테이션에 따라 True == 1, False == 0으로 상수화시켰다고 한 듯 싶네요.
    확실하지 않은 정보라..^^;;;;

    Reply
  8. 방랑객

    어익후 머리야..-_-ㅋ
    부사관시험준비 수학공부해야 하는데 큰일입니다ㅜ

    Reply
  9. NoSyu

    /방랑객/
    설명조의 글이 아니라 머리아프실거에요.^^
    부사관 시험 준비하시는군요.
    합격하시길..^^

    Reply
  10. 마래바

    도대체 뭔 소리냐고요~~ 참.나 (배영만 버전)
    내 인생에 있어 수학은… 입니다. (답이 없다는 뜻이죠.ㅋㅋㅋ)

    Reply

Leave a Reply