関数型言語使いの
ための
形式証明入門

(株)proof ninja 代表取締役CEO

@yoshihiro503

yoshihiro503

関数型言語と形式証明が好きな
ブロックチェーンエンジニア

yoshihiro503

  • DMM: Coq
  • Everforth: Scala
  • 産総研: Coq
  • 大阪大学, NII: OCaml
  • トップエスイー(NII): 社会人向けCoq教育
  • Givery: エンジニア研修

ワクワク数学トーク

教育

  • 0歳児のお母さん
  • バリスタ
  • 経理事務

形式証明がどううれしいか完全に理解する

形式証明とは
コンパイル時に
プログラムの正しさを
数学的に証明する

つまり

実行・納品する前
開発時にバグをなくせる

関数型言語の良いとこ

  • 単体テストがしやすい
  • 型チェックが強い がち

そっくり

そしてもっと強力!

でも、むずいんでしょ?

そんなあなたに
おすすめ

Coq

(イラスト by chomado)

Coq

Coqは型のパズルで
証明をつくることができる
ツール

ここで型クイズ

次の型の値をつくれ

??? : int

??? : string -> list int

??? : ∀ A B,
  (A * B) -> A

A, B は型変数

??? : ∀ xs f,
  size (filter f xs) <= size xs

詳しくはここ

CoqTokyo

  • Coqの勉強会
  • 初心者大歓迎
  • 次回は次の火曜日 3/28 https://readcoqart.connpass.com/event/278106/

ワクワク数学トーク