Agdaを使った形式化の実例紹介 
~あるいは、ただの文系SEがAgdaに到達するまで~ 
木下修司 
神奈川大学大学院理学研究科
自己紹介 
• www.kino3.jp 
• 1983年生まれ31歳1児の父 
• 奈良県出身 
• 2007 東京大学文学部卒(インド哲学仏教学) 
• 2007-12 日本コントロールシステム(株) 
– SEとして勤務。主にJava/F...
Agdaをどう教えるか? 
• 日本語書籍なし(英語も?) 
– wikiを見よ、はつらいよ 
• learnyouanagda.comの現状に蒼然 
– 現状はともかく、Haskell->Agdaか? 
• 3年生向け授業at 神奈川大学 
...
「形式化」とは? 
• 何かしらの「記述」を形式化する 
• 形式化して、検証する 
• 形式化の妥当性をどう考える? 
何かしらの 
記述 
Agdaコードになった 
記述 
形式化 
コンピュータで 
チェック(検証) 
可能
実例PiMLTT in Agda 
• PiMLTT = Programming in Martin-Löf's 
Type Theory 
• 作成中のAgdaコード紹介
実例PiMLTT in Agda 
• PiMLTT = Programming in Martin-Löf's 
Type Theory 
• 作成中のAgdaコード紹介 
• 文字が違う→読み替え発生→妥当性判定 
が複雑に 
– Agda...
今後の展望 
• 色々なものをAgda(もしくは相当する新 
言語?)で書く 
• UX/UIとの融合? 
• ソフトウェアの仕様以外のもの
Upcoming SlideShare
Loading in …5
×

Agdaを使った形式化の実例紹介

620 views

Published on

About using Agda for any formalization

Published in: Software
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
620
On SlideShare
0
From Embeds
0
Number of Embeds
25
Actions
Shares
0
Downloads
3
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Agdaを使った形式化の実例紹介

  1. 1. Agdaを使った形式化の実例紹介 ~あるいは、ただの文系SEがAgdaに到達するまで~ 木下修司 神奈川大学大学院理学研究科
  2. 2. 自己紹介 • www.kino3.jp • 1983年生まれ31歳1児の父 • 奈良県出身 • 2007 東京大学文学部卒(インド哲学仏教学) • 2007-12 日本コントロールシステム(株) – SEとして勤務。主にJava/FlexなWebアプリ開発 • 2012 退職。奈良先端科学技術大学院大学博士前期課程入学 – 入学前はNLPをやろうと思っていたが、型理論や形式手法に興味を持つ。 • 2014 神奈川大学大学院博士後期課程入学 – 指導教官の異動にともない – 理学研究科は湘南ひらつかキャンパス(神奈川県平塚市) – Type Theory, Category Theoryなど勉強しつつ、Agdaを使いつつ。 – 業務システム開発への形式手法の適用
  3. 3. Agdaをどう教えるか? • 日本語書籍なし(英語も?) – wikiを見よ、はつらいよ • learnyouanagda.comの現状に蒼然 – 現状はともかく、Haskell->Agdaか? • 3年生向け授業at 神奈川大学 • printfから始まらない • 自分も最初意味不明だった(今も?) – 集合論の基礎はどこで習うの? • 本は書きたい、書きます • アイデア募集中
  4. 4. 「形式化」とは? • 何かしらの「記述」を形式化する • 形式化して、検証する • 形式化の妥当性をどう考える? 何かしらの 記述 Agdaコードになった 記述 形式化 コンピュータで チェック(検証) 可能
  5. 5. 実例PiMLTT in Agda • PiMLTT = Programming in Martin-Löf's Type Theory • 作成中のAgdaコード紹介
  6. 6. 実例PiMLTT in Agda • PiMLTT = Programming in Martin-Löf's Type Theory • 作成中のAgdaコード紹介 • 文字が違う→読み替え発生→妥当性判定 が複雑に – Agdaを改修すれば済む話? • そこそこFormalと思われる定義でも、 Agdaにするとそうでもない。
  7. 7. 今後の展望 • 色々なものをAgda(もしくは相当する新 言語?)で書く • UX/UIとの融合? • ソフトウェアの仕様以外のもの

×