More Related Content
ODP
PDF
Rubyの御先祖CLUのお話(OSC 2011 Shimane LT 資料) PDF
effective modern c++ chapeter36 PDF
PDF
PDF
Rubyの御先祖CLU(くるう)のお話(OSC2013 Hamamatsu 発表資料) PDF
PPT
What's hot
PPT
Javascriptで無限ループを実現する5つの方法 KEY
PDF
Async design with Unity3D PDF
PPTX
PDF
PDF
Effective Modern C++ 勉強会#3 Item16 PDF
PDF
PDF
PDF
PPTX
PDF
PDF
AWS は形式手法の夢を見るか? - モデル検査器 Alloy によるインフラ設計 PDF
ジェネリック関数の呼び出され方 #cocoa_kansai PPTX
PDF
PPT
PDF
Hello Dark-Side C# (Part. 1) PDF
Viewers also liked
PDF
Proving Decidability of Intuitionistic Propositional Calculus on Coq PDF
PDF
PPTX
joi2012-sp-day2-broadcasting PDF
PPTX
PPTX
PPTX
PPTX
PPTX
PDF
Similar to Coqでsprintf
PPTX
PDF
PDF
PDF
PDF
PPTX
Ocaml lecture slides 01 at axsh PPTX
MISRA-C2012とISO/IEC 9899:2011 at OSCNagoya2013 PDF
PDF
Adding simpl GVN path into GHC PDF
PDF
“Adoption and Focus: Practical Linear Types for Imperative Programming”他の紹介@P... PPTX
PPTX
KEY
How wonderful to be (statically) typed 〜型が付くってスバラシイ〜 PDF
PDF
KEY
PPT
PPT
PDF
関数型都市忘年会『はじめての函数型プログラミング』 Coqでsprintf
- 1.
- 2.
- 3.
Coqでsprintf
• printf(“%s : %dn”, “Coq”, strlen(“Coq”));
• 第二引数以降の型が、第一引数に依存!
• 依存型のわかりやすい例
• sprintf “Hello”
– (string)型を返して欲しい
• sprintf “There are %d pens.”
– (Z -> string)型を返して欲しい
• 引数によって戻り値の型が異なる
- 4.
- 5.
- 6.
関数定義の命令
証明モードを併用しな 証明モードを併用する
い
単なる定義 Definition Program Definition
構造帰納法による定義 Fixpoint{struct x} Program Fixpoint{struct x}
停止性証明による定義 Function{wf lt x} Program Fixpoint{wf lt x}
(1)
停止性証明による定義 Function{measure f x} Program Fixpoint{measure f x}
(2)
※1 Functionでは、定義直後に停止性証明の証明モードに入る。証明終了後に
余帰納法
実際に関数が定義される。 CoFixpoint Program CoFixpoint
※2 Programでは、定義後にObligation命令(Obligation 1 や Next Obligation) を使っ
てプレースホルダーの証明をするモードに入る。証明終了後に実際に関数が定
義される。場合によっては全て自動で証明されてしまう。
※3 Fixpoint{struct x}では、引数xの構造について単調減少な再帰呼び出しのみ許
可される。CoFixpointでは、戻り値の構造について単調減少な再帰呼び出しの
み許可される。
- 7.
- 8.
- 9.
- 10.
- 11.
- 12.
- 13.
- 14.
sprintfの実装
• 実行例
• sprintf“Hello, world!”
– → “Hello, world!”
• sprintf “%d + %d = %d” (1) (2) (1+2)
– → “1 + 2 = 3”
• sprintf “Hello, %s!” “Masaki”
– → “Hello, Masaki”
- 15.
- 16.
- 17.
- 18.