Tuesday, 29 May 2018

Agda で DAG

DAGは、ループのないグラフですね。

Agdaで否定やろうかどうしようか考えていて、まぁ、考えてるってことはやるんだけど、例題が何かいいものあれば。この前は対偶だったけど。

で、結局、突破したのは discrete な圏つまりグラフだったので、グラフがいいかなと。

授業の前の昼飯の前には片付かなかったんですが、授業の後でできました。ちょっとうれしい。

Agda の data で List みたいに direct につながっている奴、indirect につながっている奴を作るってのを思いついたら、あとは割と一直線でした。

いや、うそだな。場合分けの書き方が謎すぎる。当てずっぽうっぽい。

   dag : { V : Set } ( E : V -> V -> Set ) -> Set
   dag {V} E = ∀ (n : V) → ¬ ( connected E n n )

とか書けるので、それっぽい。

Agda もう少しメタ計算したいんだけどな。この場合分けを自動生成するとかはやってはくれるんですが、埋めるのは人手。埋める所まで自動化して欲しい所。Coq だとそういうのがあるらしいが...

No comments: