タグ

関連タグで絞り込む (2)

タグの絞り込みを解除

proofとverificationに関するkirakkingのブックマーク (1)

  • Haskell+GADTで定理証明 その1: 型レベル自然数の等価性 - keigoiの日記

    実は、私のfull-sessionsというセッション型のライブラリは中で unsafeCoerce#を使っているので型安全でない。使ってくれる人にとってそれは心もとないだろうし、そもそもunsafeなんとかは、いけがみさんによればSPJとSimon Marlowしか使ってはいけないことになっているらしい。やっぱりHaskellを使うものとして型安全性くらいは保証したい。でも、かといって普通のHaskellではうまく型を付けられない。(Typeableクラスのキャストを使っても解決にはならない。) そこで、魔法のGADT。 この型とこの型はぜったい等しいのにーというのが文脈から明らかなとき、それを表現できるのがGADTだ…というのが私の理解。まさしく私のケースにぴったりだ。これを使えばunsafeCoerceなんか要らんかもしれない。 いいかえれば、いわゆる定理証明をGADTつきのHaske

    Haskell+GADTで定理証明 その1: 型レベル自然数の等価性 - keigoiの日記
  • 1