• 検索結果がありません。

JAIST Repository: 自動証明系と対話型証明支援系の連携によるポインタ操作プログラムの検証について(MLATとAgdaの接合)

N/A
N/A
Protected

Academic year: 2021

シェア "JAIST Repository: 自動証明系と対話型証明支援系の連携によるポインタ操作プログラムの検証について(MLATとAgdaの接合)"

Copied!
24
0
0

読み込み中.... (全文を見る)

全文

(1)

Japan Advanced Institute of Science and Technology JAIST Repository https://dspace.jaist.ac.jp/ Title 自動証明系と対話型証明支援系の連携によるポインタ 操作プログラムの検証について(MLATとAgdaの接合) Author(s) 湯浅, 能史; 武山, 誠; 関澤, 俊弦; 田辺, 良則; 高 橋, 孝一 Citation Issue Date 2006-11-30 Type Presentation Text version publisher

URL http://hdl.handle.net/10119/8334 Rights

Description

Theorem Proving and Provers Meeting(2nd TPP)での 発表資料, 開催:2006年11月29日∼30日, 開催場所 :JAIST 情報科学研究科棟II・Collaboration Room 7 (5F)

(2)

自動証明系と対話型証明支援系の

連携によるポインタ操作プログラム

の検証について

(MLAT と Agdaの接合)

湯浅 能史(産総研) 武山 誠(産総研) 関澤 俊弦(産総研・阪大) 田辺 良則(産総研・東大) 高橋 孝一(産総研)

(3)

対話証明器

vs

自動証明器

• 対話型証明支援系 長所 : “あらゆる” 性質が 証明/反証可能。 短所 : 人手による証明。手間がかかる。 • 自動定理証明器 長所 : 機械任せ。“手間がかからない”。 短所 : 示せる性質は限定的。

連携による検証が有効

(4)

Agda + MLAT

• Agda ---- 対話型証明支援系。 Martin-Löf型理論 に基づく。 Emacs による ユーザインターフェース。. • MLAT ---- 抽象遷移系生成器。ポインタ操作プログ ラムが対象。様相論理を用いた述語抽象。 • 連携の方法 ---- Agdaプラグイン機構を利用。 • 検証の枠組み ---- Hoare 論理。 • 検証の対象 ---- ポインタ操作プログラム。手続き型。

(5)

目次

• 対話証明器 Agda について

– Agda による定理証明 – Agda Prover Plug-in

• Pml-Hoare 論理 • 抽象遷移系生成器 MLAT について – MLAT の仕組み – ポインタ構造と時相論理式 • Agda-MLAT連携による検証例 – リスト反転プログラムの検証 – ループ不変式の確定 • まとめ

(6)

目次

• 対話証明器 Agda について

– Agda による定理証明 – Agda Prover Plug-in

• Pml-Hoare 論理 • 抽象遷移系生成器 MLAT について – MLAT の仕組み – ポインタ構造と時相論理式 • Agda-MLAT連携による検証例 – リスト反転プログラムの検証 – ループ不変式の確定 • まとめ

(7)

Emacs

Agdaによる定理証明

• Curry-Howard 対応に基づいた 証明の符号化。 • 関数型プログラ ミング言語に似 た証明記述。 • 対話的にゴール をサブゴールに 展開する。

comCnj (A,B :: Set) :: A Λ B -> B Λ A = ¥(ab :: A Λ B)-> and elimAndR ab elimAndL ab A Λ B → B Λ A B Λ A A Λ B B A A Λ B (Λ-I) (Λ-EL) (Λ-ER) (→-I) ab ab [ ] [ ]

(8)

Emacs

Agdaによる定理証明

• Curry-Howard 対応に基づいた 証明の符号化。 • 関数型プログラ ミング言語に似 た証明記述。 • 対話的にゴール をサブゴールに 展開する。 A Λ B → B Λ A B Λ A A Λ B B A A Λ B (Λ-I) (Λ-EL) (Λ-ER) (→-I) ab

comCnj (A,B :: Set) :: A Λ B -> B Λ A = {! !} = = {!ab!} = ¥(ab :: A Λ B)->{! !} {!and!}{! !} {! !}

and {!elimAndR!}elimAndR {! !}{!ab!}ab {!elimAndL!} elimAndL {! !}{!elimAndL!}{!ab!}ab

ab :: A Λ B

ab

[ ] [ ]

(9)

Emacs

Agda Prover Plug-in

• 既存の自動証明 器に手を加える ことなく、Agda側 の設定でだけで 接続できる。 • これまで接続し た自動証明器: – gandalf (FOL) – NuSMV

comCnj (A,B :: Set) :: A Λ B -> B Λ A = {!external “Fol”!} = external “Fol” = {! !} = Emacs Agda Prover A ΛB -> B ΛA A ΛB -> B ΛA TRUE A ΛB -> B ΛA TRUE TRUE

(10)

目次

• 対話証明器 Agda について

– Agda による定理証明

– Agda Prover Plug-in

• Pml-Hoare 論理 • 抽象遷移系生成器 MLAT について – MLAT の仕組み – ポインタ構造と時相論理式 • Agda-MLAT連携による検証例 – リスト反転プログラムの検証 – ループ不変式の確定 • まとめ

(11)

• プログラム

PML-Hoare

論理

• 推論規則 (P,Q,R:ヒープの状態を記述する論理式) • 基本条件式 AS : 最弱前条件: ・命令 c 実行前に wpc Q ならば実行後にはQ ・wpcQ は上記を満たすもで、最弱のもの Agda上に”深い符号化”で実現 MLATで自動証明 (制限付き) Pformula(後述) • 基本命令文 AC : ノード x に格納された値 ノードy の f-フィールド Pointer Manipulation Language

Hoare Triple (Hoare 式) P {cs} Q 

(12)

目次

• 対話証明器 Agda について

– Agda による定理証明

– Agda Prover Plug-in • Pml-Hoare 論理 • 抽象遷移系生成器 MLAT について – MLAT の仕組み – ポインタ構造と時相論理式 • Agda-MLAT連携による検証例 – リスト反転プログラムの検証 – ループ不変式の確定 • まとめ

(13)

MLA

T (Modal Logic Abstraction Tool)

y := null ; …… while (….) { ……… …… x.f := y } ………… …… 述語 :P, Q ← Start ← Loop ← End プログラム : (T,T) (T,F) (F,T) (F,F) (T,T) (T,F) (F,T) (F,F) (T,T) (T,F) (F,T) (F,F) Start Loop End 「最弱前条件(wp)」と「充足可能性判定(sat)」により遷移可能性を判定する。 sat(A Λ wp(cs, B)) = true ⇒ 遷移あり sat(C Λ wp(ds, D)) = false ⇒ 遷移なし A B cs ds C D pfvalid(X,cs,Y) =

not sat(X Λ wp(cs, not Y))

Hoare式の判定 抽 象 遷 移 系 の 作 成

(14)

ポインタ構造と時相論理式

変数 :x, y,…. y := null ; …… while (….) { ……… …… x.f := y } ………… …… プログラム: フィールド:f, g,…. f f f f f g g f プログラム実行のある時 でのヒープの状態を リプ 構造とみなす x y 変数 x がノード s を す : s |= x 変数 y がノード t を す : t |= y s t x の f-next の g-next は y である: x |- EfX EgX y (i.e. s. (s |= x → s |= EfX EgX y) ) x はf-loop の一 を す: x |- EfX EfF x (i.e. s. (s|= x → s |= EfX EfF x) ) 性質を 様相CTL式で記述する。 フィールド 様相

(15)

• プログラム

PML-Hoare

論理

• 推論規則 (P,Q,R:ヒープの状態を記述する論理式) • 基本条件式 AS : Agda上に”深い符号化”で実現 MLATで自動証明 (制限付き) • 基本命令文 AC : Pformula: 式 “x |- P” の命 合(x: プログラム変数, P: CTL式) 例: (x |- P) ⇒ (y |- Q) Λ (z |- R)

(16)

目次

• 対話証明器 Agda について

– Agda による定理証明

– Agda Prover Plug-in • Pml-Hoare 論理 • 抽象遷移系生成器 MLAT について – MLAT の仕組み – ポインタ構造と時相論理式 • Agda-MLAT連携による検証例 – リスト反転プログラムの検証 – ループ不変式の確定 • まとめ

(17)

検証例「リスト反転プログラム」

y yy y yyyyyyyy yyyyyyyy current current current current current current current current current current reverse : ループを一 すると : ・ t, y, x が に移動 ・ が一つ反転

(18)

Agda

での証明記述

ループ不変式 Agda-MLAT連携による 行 で 前/ 後条件 Hoare式 Listp x := (x |- EF NULL) x から NULL (= nil )に する MLATによる自動証明

(19)

ループ不変式の確定

y yy y u v y yy y yyyy yyyy yyyy ループ不変式 → “No” ( MLAT ) 1st trial

(20)

ループ不変式の確定

ループ不変式 → “No” ( MLAT )

?

u v Null x y x y x y x y x y x y x y → “OK” ( MLAT ) 2nd trial 3rd trial

(21)

Agda

での証明記述

MLATによる自動証明

ループ不変式

Agda-MLAT連携による

(22)

目次

• 対話証明器 Agda について

– Agda による定理証明

– Agda Prover Plug-in • Pml-Hoare 論理 • 抽象遷移系生成器 MLAT について – MLAT の仕組み – ポインタ構造と時相論理式 • Agda-MLAT連携による検証例 – リスト反転プログラムの検証 – ループ不変式の確定 • まとめ

(23)

まとめ:

後の

後の ・最弱 前条件の 。(現状では、Hoare式の証明 は MLATでしか できない) ・MLATからAgda の の け し。( のときに 反例、 のときに証明の ヒント) ・大きな例 、 の 、etc. 自動-対話 の リ ト ・ 対話証明器を用いた により、自動証明に かかる時間を短 できる。 ( 0s 10s) ・ 行 の として自動証明器を用いることがで きる。(ループ不変式の な )

(24)

参照

関連したドキュメント

Keywords: Learning Process, Instructional Design, Learning Analytics, Time-Series Clustering, Dynamic Time

Causation and effectuation processes: A validation study , Journal of Business Venturing, 26, pp.375-390. [4] McKelvie, Alexander & Chandler, Gaylen & Detienne, Dawn

Previous studies have reported phase separation of phospholipid membranes containing charged lipids by the addition of metal ions and phase separation induced by osmotic application

It is separated into several subsections, including introduction, research and development, open innovation, international R&D management, cross-cultural collaboration,

UBICOMM2008 BEST PAPER AWARD 丹   康 雄 情報科学研究科 教 授 平成20年11月. マルチメディア・仮想環境基礎研究会MVE賞

During the implementation stage, we explored appropriate creative pedagogy in foreign language classrooms We conducted practical lectures using the creative teaching method

講演 1 「多様性の尊重とわたしたちにできること:LGBTQ+と無意識の 偏見」 (北陸先端科学技術大学院大学グローバルコミュニケーションセンター 講師 元山

1) A novel large-scale tactile sensing system at low cost for robot links: The research proposes an accomplished tactile sensing system for robot links with a large sensing area