haskell-ja > Archives > 2011/12/15

2011/12/15 03:42:39 UTCnobsun
#
【教えて君】f::a->b、g::b->a、ia=g.f、ib=f.gとしたとき、iaおよびibが恒等関数になっているかどうかを形式的に示したいときどんな風に示せばいいのでしょうか。
#
反例を上げれば恒等関数になっていることを示せますが、反例が見つからないときに、恒等関数になるということを示すにはどのように論じればいいでしょうか。
#
反例を上げれば恒等関数になっている → 反例を上げれば恒等関数になっていない
2011/12/15 04:46:32 UTCshiro
#
fやgがどのように与えられてるかによるような… 定義域,値域が離散・有限でf, gが列挙で与えられてたらtrivialですよね。どういう問題を想定してるんでしょ。
2011/12/15 05:42:56 UTCnobsun
#
fはdereference関数、gはreference関数、ただし、dereference関数は引数がnullだったらnullでなくなるまでブロックする
2011/12/15 05:48:35 UTCnobsun
#
どのようなsemanticsを与えるかによるんですが、どのようにsemanticsを与えれば議論できるかがわかっていないのです > わし
2011/12/15 05:51:11 UTCshiro
#
私もよくわからないですが、何らかの形式的な仕様が与えられてて、その合成を置換してったら恒等写像になった、っていうふうにできたらまあいいのかなって気はします。
2011/12/15 05:54:07 UTCnobsun
#
fとgはプリミティブであるとして、どのようにsemanticsを与えれば、それぞれdereferenceとreferenceと言えるだろうかということを考えています。
#
ですくなくとも、f.g と g.f は恒等関数になっていなければならないだろうと。
2011/12/15 06:06:33 UTCsakai
#
操作的意味論を定義して、観測等価性を証明するのが普通の方法かと。
2011/12/15 06:09:41 UTCnobsun
#
dereferenceがブロックする可能性があるということを表現するにはどのような操作的意味論を構成するのが通常でしょうか?
#
観測等価性とは形式的にはどういうものですか?
2011/12/15 06:21:44 UTCsakai
#
ブロックするのはSTMの論文の操作的意味論を見ると良いかも。
2011/12/15 06:23:44 UTCnobsun
#
おお、なるほど、早速さがしてみます
2011/12/15 07:04:18 UTCsakai
#
観測等価性はとりあえず http://en.wikipedia.org/wiki/Observational_equivalence とか。
2011/12/15 07:06:49 UTCnobsun
#
あれっ。この説明なんか読んだことあるなぁ。いつどこで?>わし