自己鳥

鳥xは自分自身が好きであれば、すなわちxのxへの応答がxであれば、自己中心的と呼ばれる。
記号的には、xx = x である。

結合条件とものまね鳥がいる条件のもとで、少なくとも一羽の鳥は自己中心的であることを示せ。coqで。

とりあえず。

Theorem there_is_egocentric_bird :
exists E : Bird, E = bird_respond E E.
assert(H: forall A : Bird, exists B : Bird, B = bird_respond A B).
apply any_bird_is_fond_of_least_one_bird.
destruct there_is_mockingbird as [M].
assert(HM: exists B: Bird, B = bird_respond M B).
apply H.
destruct HM as [B].
assert(HMB: bird_respond B B = bird_respond M B).
apply H0. 
exists B.  rewrite HMB. apply H1.
Qed.

何故

Axiom bird_composition :
forall A B : Bird, 
exists C : Bird,
forall x : Bird,
bird_respond C x = bird_respond A (bird_respond B x).

Axiom there_is_mockingbird :
exists M, forall x, bird_respond x x = bird_respond M x.


Theorem there_is_egocentric_bird2 :
bird_composition -> there_is_mockingbird ->
exists E : Bird, E = bird_respond E E.

と書くことが出来ないのか?

  • >の左側には、Prop or Setでないと駄目とか言われる。
Definition bird_compsition : Prop :=
forall A B : Bird, 
exists C : Bird,
forall x : Bird,
bird_respond C x = bird_respond A (bird_respond B x).

であればいいのかな?未確認であるが。
今確認した。いけそーだな。
しかしその場合は、いちいちunfold しなきゃならんのか。めんどいな。