「x,y,zを自然数とする。このとき、x=3ならばy=5になる。あるいは、y=5ならばz=8になる」をめぐって
正しいのになぜかみんなが「変だ!」という問題: x,y,zを自然数とする。このとき、x=3ならばy=5になる。あるいは、y=5ならばz=8になる。
2012-05-30 08:32:06@noricoco あ、わざわざすみません。歩きながら読んでいて意味がよくわからなかったのですが、いま落ち着いて考えてみると、確かにこれは正しいですね。おもしろい問題です!ありがとうございました。
2012-05-30 09:53:04@noricoco (x=3→y=5)∨(y=5→z=8) が恒真との趣旨でしょうけれど,そのようには読みにくい.「y=5になる。あるいは、」と記してるので,文がそこで切れてると思ってしばし考えてしまいました.句読点の難しさですね.
2012-05-30 10:24:51@tadamago いろいろなバリエーションで誤読がないように書いて試したのですが、どの場合でもおおむね「変だ!」と言われます。たぶん、レレバンスの問題だと思います。
2012-05-30 10:32:40. @noricoco 先生による良問に @hyuki が蛇足の説明を付けました⇒「x,y,zを自然数とする。このとき、x=3ならばy=5になる。あるいは、y=5ならばz=8になる」この命題は常に成り立つのですが、そのことを納得 and/or 証明できますか。
2012-05-30 11:09:22@hiratara Coqだと、forall (x y z:nat),(x=3 -> y=5) \/ (y=5->z=8)は証明できるけども、forall (p q r:Prop),(p->q)\/(q->r)は証明できないので、これはダメです!
2012-05-30 11:51:03@hyuki ちなみに、(A→B)∨(B→C) が胆で、それを根拠づけるのに A→B ⇔ ¬A∨B を持ち出すのは牛刀です。出題者は当然ご承知でしょう。
2012-05-30 12:14:12そのことを納得 and/or 証明できますか。 @hyuki ほんの少しバリエーションを加えたら自分もきっと気づかないです。
2012-05-30 12:16:49@kamo_hiroyasu そ、そうなんですか…(しばらく考える)… Bは真か偽のいずれか。Bが真ならA→Bが真。Bが偽ならB→Cが真。よって(A→B)∨(B→C) は恒に真。…これで済む。ということでしょうか?
2012-05-30 12:24:43@noricoco そうですか…(こういうことが可能かどうかわかりませんが)もしも法律上の文言に悪用されたら嫌ですね^^;
2012-05-30 12:26:44Coqで証明。eq_nat_dec使用。 http://t.co/eyjr6KMo QT @hyuki 「x,y,zを自然数とする。このとき、=3ならばy=5になる。あるいは、y=5ならばz=8になる」この命題は常に成り立つのですが、そのことを納得 and/or 証明できますか。
2012-05-30 13:01:23@tmiya_ へ、へえ…こんなふうになるんですか。Coqについてはまったくしらないんですが、eq_nat_decというので y が 5に等しい場合と等しくない場合の場合分けをしているのかなあ…と想像しました。
2012-05-30 13:21:22@y_bonten はい。NJ + (A→B)∨(B→C) は面白い体系です。鹿島先生の教科書の11.4節に出てきます。http://t.co/LrsVftDQ
2012-05-30 13:23:11@halcat0x15a あー、specialize (...); intro; destruct H. しなくても直接 destruct (...) の方が簡潔で良い証明だと思います...こっそり直そうかな。
2012-05-30 13:34:17@tmiya_ @hyuki eq_nat_decは、型を自然数に限定するなら、任意のm nについて、m=n ¥/m<>nが直観主義の立場からも認められることを意味している、ということでしょうか?
2012-05-30 13:53:07@katayama_k @hyuki 端的に言うとm=n ¥/m<>nの判定は構成的に判定できるので排中律の助けを借りなくてOKです。nat (=Peanoの自然数)は帰納的に定義され、帰納的に定義されている型の値は場合分け可能なのでその手の判定が出来る、ということだと思います。
2012-05-30 14:08:52