• Share
  • Email
  • Embed
  • Like
  • Save
  • Private Content
Nagoya Matsuri 2013 ぐだぐだAgda
 

Nagoya Matsuri 2013 ぐだぐだAgda

on

  • 1,207 views

Slide used in Nagoya (Chi-)Matsuri

Slide used in Nagoya (Chi-)Matsuri

Statistics

Views

Total Views
1,207
Views on SlideShare
1,182
Embed Views
25

Actions

Likes
2
Downloads
4
Comments
0

1 Embed 25

https://twitter.com 25

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

    Nagoya Matsuri 2013 ぐだぐだAgda Nagoya Matsuri 2013 ぐだぐだAgda Presentation Transcript

    • ぐだぐだAgda なごやちまつり @chiguri 御清聴誠に感謝しております!
    • または 御清聴誠に感謝しております!
    • 経験したのが7年前なだけの Coqユーザーが Agdaを仕事で 半年使っただけ 御清聴誠に感謝しております!
    • タイトル • タイトルはcamlspotter様のブ ログ記事「経験15年の OCaml ユーザーが Haskell を仕事で半年使ってみた」の もじり –あんなにすごい内容じゃないです 御清聴誠に感謝しております!
    • お前誰だよ • 3月に無事博士号を 取得した元学生 • パンダ –鶏付き • 通称chiguri • 今神奈川大学 御清聴誠に感謝しております!
    • 昨日のProofSummitで • Abellaをべらべらしゃべった –これこそぐだぐだだった気もする 御清聴誠に感謝しております!
    • 発表までの流れ • 4月末に@tmiya_さん、@bleis さん、@kyon_mmさんと東京 でお食事した • 5月に@kyon_mmさんのつぶや きによりまつりの存在を知った • 登録して数日後、発表者になっ ていた 御清聴誠に感謝しております!
    • なごやといえば? • こわい • なごやか • まさかり • きょん×ぶれ • 関数型 • 証明 御清聴誠に感謝しております! つまり Agda Coq Epigram などなど 爆発しろー 異論は 認める
    • さる事情から • 仕事でAgdaを使うことに • 今までCoqだったのに • とりあえずAgdaの話をしよう 御清聴誠に感謝しております!
    • Agdaなグループ • 今いる場所は、実にAgdaな グループ –Agda Implementors’ Meetingに 行っている • 開発に近い人が・・・ –ウカツなこと言えない! –コワイ! 御清聴誠に感謝しております!
    • Wikipediaより 御清聴誠に感謝しております! 職場で 隣に います
    • おまけ:Agdaを Google先生に聞くと • Agodaホテルの宣伝がでる –何度か試したせいで手元で出ない 御清聴誠に感謝しております!
    • 脱線した 御清聴誠に感謝しております!
    • チュートリアル • Agdaにももちろんある –しかも開発者謹製! • ちょっと不親切な部分もある –構文に関する説明があまりないので –よくあるエラーでも書いてくれると非常 に助かるのだけど・・・ 御清聴誠に感謝しております!
    • AgdaとCoqの違い • 文法・開発言語 (OCaml vs. Haskell) • 型体系(pCIC vs. Martin-Löf) • 構造的帰納法(有無) • 証明(tactic vs. term) 御清聴誠に感謝しております!
    • コード紹介 • データ型の宣言とかHaskellほ とんどそのまま • 関数の定義もほとんどそのま ま 御清聴誠に感謝しております!
    • パターンマッチ • 関数の定義部で行う –依存型の処理もここで行う • case文どこ行った!! 御清聴誠に感謝しております!
    • 仕様と証明 • Curry-Howard対応を厳密に 使うAgdaは、 –仕様は型として –証明は項として 記述する 御清聴誠に感謝しております!
    • Coqでいうrewrite相当 • 「あとこれを等式で書き換え るだけ」 • 等価性のパターンマッチ –パターンマッチを書く場所と同じ レベルでrewriteという記述がある が、まだよくわかっていない 御清聴誠に感謝しております!
    • パターンマッチの列 • 3つのbool値をそれぞれパター ンマッチすると –2×2×2=8回分岐 • しかもその分岐の後が同じ(ように 見える式)だとなんかこうもやもや • 短く書きたいなあ・・・ 御清聴誠に感謝しております!
    • パラメータの関係 • 引数に.(式)と書くとその引数を他の 引数を使って表現できる – 例)同じ値しか引数に来ない、リストの 長さが渡される、などなど • チュートリアルに例がいくつかある が、どうやって関係性を解決してい るのかよく分からない – 便利なのは間違いないのだが 御清聴誠に感謝しております!
    • でも実は • 仕事では全く困ってない • せいぜいときどき依存型が 出てくるだけだから –その意味ではプログラミングしや すいので問題ない 御清聴誠に感謝しております!
    • 仕事でAgda • 証明?→No • 依存型プログラミング?→ 多分No(若干Yes?) • じゃあなによ? 御清聴誠に感謝しております!
    • D-Caseというものを少々 御清聴誠に感謝しております!
    • D-Case in Agda • Agda wikiからたどれる –Windowsのみインストーラで提供 • しかもJava7をインストールしていると 止められる(Java6以前を要求) • D-Caseとは –議論の流れを表したもの –多くは図 • 特にここでは木構造の図 御清聴誠に感謝しております!
    • AgdaからD-Caseを作る • Agdaの型システムによって – 分岐の網羅性 – パラメータの依存関係 などが検査・表現できる • 通常、議論は – 厳密でない – 形式的に書きづらい ため、postulate(仮定)を多用する – 結果として証明はあまり書けない 御清聴誠に感謝しております!
    • だから • まだ私は生きています • まさかりはやめて! 御清聴誠に感謝しております!
    • 以上です 御清聴誠に感謝しております!