Agda で回路設計(をしたい)

    snisimu ( 西村 )




                     2011/09/25
                     @ProofSummit
論理回路のキモ
     = FF (フリップ・フロップ)

in       out     in

     clock
               clock
     reset
                out
FF を関数で表現
          n    n+1   n+2

  in


clock


 out



        out : 自然数 → 0/1
        out (n+1) = in (n)
ひとつ具体例

          0
                            OUT
   IN     1
                    clock
WRITE               reset




WRITE 時の IN の値が OUT に出力され続けます。
(次に WRITE されるまでは)
回路の Agda 記述

          0
                      OUT
   IN     1
              clock
WRITE         reset
仕様の Agda 記述
WRITE 時の IN の値が OUT に出力され続けます。
(次に WRITE されるまでは)
今後やりたい事…
●
    Agda 記述から、このような形式の回路記述
    を見つけ出してハードウェア記述言語に変換
    するコンパイラ(?)を作りたい。
●
    少さな、トイ CPU を証明付きで書きたい
補足 : 例題の Agda 記述全体

Agdaで回路設計(をしたい)