ゲームの概要ゲームの概要 BATTLEFIELD 4 バトルフィールド 4は、ゲームと栄光を共に体験できる、ジャンルを代表する超大作です。次世代の演算能力と
値渡しのゲームの圏における 深さ優先戦略について
description
Transcript of 値渡しのゲームの圏における 深さ優先戦略について
![Page 1: 値渡しのゲームの圏における 深さ優先戦略について](https://reader034.fdocuments.net/reader034/viewer/2022050802/568159a6550346895dc708e8/html5/thumbnails/1.jpg)
値渡しのゲームの圏における深さ優先戦略について
産業技術総合研究所システム検証研究ラボ
松岡聡
![Page 2: 値渡しのゲームの圏における 深さ優先戦略について](https://reader034.fdocuments.net/reader034/viewer/2022050802/568159a6550346895dc708e8/html5/thumbnails/2.jpg)
ゲーム意味論とは (歴史)
• もともとは線型論理の意味論(Blass, Abramsky & Jagadeesan)
•高階のプログラミング言語についての意味論(Abramsky一派、 Hyland & Ong)
![Page 3: 値渡しのゲームの圏における 深さ優先戦略について](https://reader034.fdocuments.net/reader034/viewer/2022050802/568159a6550346895dc708e8/html5/thumbnails/3.jpg)
値渡しゲームの圏 CBV
• 本田と吉田による• Hyland & Ong のポインター・名前渡しゲームの圏の変種
![Page 4: 値渡しのゲームの圏における 深さ優先戦略について](https://reader034.fdocuments.net/reader034/viewer/2022050802/568159a6550346895dc708e8/html5/thumbnails/4.jpg)
値渡しゲームの圏の重要性
• C言語は値渡しである• ソフトウェア検証に応用を持つ1階のプログラムならばプログラムを正確に意味を保存しつつオートマトンに変換できる
• 合成で閉じている (プログラムモジュールごとに検証可能)
![Page 5: 値渡しのゲームの圏における 深さ優先戦略について](https://reader034.fdocuments.net/reader034/viewer/2022050802/568159a6550346895dc708e8/html5/thumbnails/5.jpg)
例int succ(int x) {
return x+1;
}
私はsuccにいる
私 敵
int nを渡す
私
n をもらって n+1を返す
値渡しゲームの圏における意味
![Page 6: 値渡しのゲームの圏における 深さ優先戦略について](https://reader034.fdocuments.net/reader034/viewer/2022050802/568159a6550346895dc708e8/html5/thumbnails/6.jpg)
例2
int foo (int bar(int)) {return succ(bar(5));
}
fooにいる
私 敵
barにいる
私
bar(5)
を返す
値渡しゲームの圏における意味
5 を敵に渡す
敵 私
succ(bar(5))を返す
![Page 7: 値渡しのゲームの圏における 深さ優先戦略について](https://reader034.fdocuments.net/reader034/viewer/2022050802/568159a6550346895dc708e8/html5/thumbnails/7.jpg)
アリーナ(ゲーム盤)
nat= ω
例
nat->nat =
nat
nat
nat=>natここで nat=>natは singleton
{*}
![Page 8: 値渡しのゲームの圏における 深さ優先戦略について](https://reader034.fdocuments.net/reader034/viewer/2022050802/568159a6550346895dc708e8/html5/thumbnails/8.jpg)
アリーナ (ゲーム盤)
((nat=>nat)=>(nat=>nat)=>nat=>nat)=>(nat=>nat)=>(nat=>nat)=>nat
(nat=>nat)=>(nat=>nat)=>nat(nat=>nat)=>(nat=>nat)=>
nat=>nat
nat=>nat (nat=>nat)=>nat=>nat
nat
nat
nat=>nat nat=>n
at
(nat=>nat)=>nat
nat=>nat
natnat
nat
nat=>nat
nat
nat nat nat
natnat
(((nat=>nat)=>(nat=>nat)=>nat=>nat)=>(nat=>nat)=>(nat=>nat)=>nat)=>nat
nat
![Page 9: 値渡しのゲームの圏における 深さ優先戦略について](https://reader034.fdocuments.net/reader034/viewer/2022050802/568159a6550346895dc708e8/html5/thumbnails/9.jpg)
ポラリティ
((nat=>nat)=>(nat=>nat)=>nat=>nat)=>(nat=>nat)=>(nat=>nat)=>nat
(nat=>nat)=>(nat=>nat)=>nat(nat=>nat)=>(nat=>nat)=>
nat=>nat
nat=>nat (nat=>nat)=>nat=>nat
nat
nat
nat=>nat nat=>n
at
(nat=>nat)=>nat
nat=>nat
natnat
nat
nat=>nat
nat
nat nat nat
natnat
(((nat=>nat)=>(nat=>nat)=>nat=>nat)=>(nat=>nat)=>(nat=>nat)=>nat)=>nat
nat
![Page 10: 値渡しのゲームの圏における 深さ優先戦略について](https://reader034.fdocuments.net/reader034/viewer/2022050802/568159a6550346895dc708e8/html5/thumbnails/10.jpg)
プルーフネット
((nat=>nat)=>(nat=>nat)=>nat=>nat)=>(nat=>nat)=>(nat=>nat)=>nat
(nat=>nat)=>(nat=>nat)=>nat(nat=>nat)=>(nat=>nat)=>
nat=>nat
nat=>nat(nat=>nat)=>nat=>nat
nat
nat
nat=>nat nat=>n
at
(nat=>nat)=>nat
nat=>nat
natnat
nat
nat=>nat
natnat
natnat
natnat
例
(((nat=>nat)=>(nat=>nat)=>nat=>nat)=>(nat=>nat)=>(nat=>nat)=>nat)=>nat
nat
![Page 11: 値渡しのゲームの圏における 深さ優先戦略について](https://reader034.fdocuments.net/reader034/viewer/2022050802/568159a6550346895dc708e8/html5/thumbnails/11.jpg)
戦略 τ(その1)
((nat=>nat)=>(nat=>nat)=>nat=>nat)=>(nat=>nat)=>(nat=>nat)=>nat 2
(nat=>nat)=>(nat=>nat)=>nat(nat=>nat)=>(nat=>nat)=>
nat=>nat 3
nat=>nat 4
(nat=>nat)=>nat=>nat 5
nat 9
nat 10
nat=>nat 6 nat=>n
at
(nat=>nat)=>nat
nat=>nat
natnat
nat
nat=>nat 7
nat 11
nat 12
nat 13nat
8 natnat
(((nat=>nat)=>(nat=>nat)=>nat=>nat)=>(nat=>nat)=>(nat=>nat)=>nat)=>nat 1
nat
![Page 12: 値渡しのゲームの圏における 深さ優先戦略について](https://reader034.fdocuments.net/reader034/viewer/2022050802/568159a6550346895dc708e8/html5/thumbnails/12.jpg)
戦略 τ(その2)
((nat=>nat)=>(nat=>nat)=>nat=>nat)=>(nat=>nat)=>(nat=>nat)=>nat 2
(nat=>nat)=>(nat=>nat)=>nat 14(nat=>nat)=>(nat=>nat)=>
nat=>nat 3
nat=>nat (nat=>nat)=>nat=>nat
nat
nat
nat=>nat nat=>nat
15
(nat=>nat)=>nat
nat=>nat
natnat
nat
nat=>nat
nat
nat nat nat
nat 16
nat 17
(((nat=>nat)=>(nat=>nat)=>nat=>nat)=>(nat=>nat)=>(nat=>nat)=>nat)=>nat 1
nat
![Page 13: 値渡しのゲームの圏における 深さ優先戦略について](https://reader034.fdocuments.net/reader034/viewer/2022050802/568159a6550346895dc708e8/html5/thumbnails/13.jpg)
戦略 τ(その3)
((nat=>nat)=>(nat=>nat)=>nat=>nat)=>(nat=>nat)=>(nat=>nat)=>nat 2
(nat=>nat)=>(nat=>nat)=>nat 14(nat=>nat)=>(nat=>nat)=>
nat=>nat 3
nat=>nat (nat=>nat)=>nat=>nat
nat
nat
nat=>nat nat=>nat
15
(nat=>nat)=>nat 18
nat=>nat 19
natnat 20
nat 21
nat=>nat
nat
nat nat nat
nat nat
(((nat=>nat)=>(nat=>nat)=>nat=>nat)=>(nat=>nat)=>(nat=>nat)=>nat)=>nat 1
nat
![Page 14: 値渡しのゲームの圏における 深さ優先戦略について](https://reader034.fdocuments.net/reader034/viewer/2022050802/568159a6550346895dc708e8/html5/thumbnails/14.jpg)
戦略 τ(その4)
((nat=>nat)=>(nat=>nat)=>nat=>nat)=>(nat=>nat)=>(nat=>nat)=>nat 2
(nat=>nat)=>(nat=>nat)=>nat 14(nat=>nat)=>(nat=>nat)=>
nat=>nat 3
nat=>nat (nat=>nat)=>nat=>nat
nat
nat
nat=>nat nat=>nat
15
(nat=>nat)=>nat 18
nat=>nat 19
nat 22
nat nat
nat=>nat
nat
nat nat nat
nat nat
(((nat=>nat)=>(nat=>nat)=>nat=>nat)=>(nat=>nat)=>(nat=>nat)=>nat)=>nat 1
nat 23
![Page 15: 値渡しのゲームの圏における 深さ優先戦略について](https://reader034.fdocuments.net/reader034/viewer/2022050802/568159a6550346895dc708e8/html5/thumbnails/15.jpg)
別のアリーナ(ゲーム盤)
((nat=>nat)=>(nat=>nat)=>nat=>nat)=>(nat=>nat)=>(nat=>nat)=>nat
(nat=>nat)=>(nat=>nat)=>nat
(nat=>nat)=>(nat=>nat)=>nat=>nat
nat=>nat
(nat=>nat)=>nat=>nat
nat
natnat=>nat
nat=>nat
(nat=>nat)=>nat
nat=>nat
natnat
nat
nat=>nat
natnat
natnat
natnat
例
![Page 16: 値渡しのゲームの圏における 深さ優先戦略について](https://reader034.fdocuments.net/reader034/viewer/2022050802/568159a6550346895dc708e8/html5/thumbnails/16.jpg)
ポラリティ
((nat=>nat)=>(nat=>nat)=>nat=>nat)=>(nat=>nat)=>(nat=>nat)=>nat
(nat=>nat)=>(nat=>nat)=>nat
(nat=>nat)=>(nat=>nat)=>nat=>nat
nat=>nat
(nat=>nat)=>nat=>nat
nat
natnat=>nat
nat=>nat
(nat=>nat)=>nat
nat=>nat
natnat
nat
nat=>nat
natnat
natnat
natnat
例
![Page 17: 値渡しのゲームの圏における 深さ優先戦略について](https://reader034.fdocuments.net/reader034/viewer/2022050802/568159a6550346895dc708e8/html5/thumbnails/17.jpg)
プルーフ・ネット
((nat->nat)->(nat->nat)->nat->nat)->(nat->nat)->(nat->nat)->nat
(nat->nat)->(nat->nat)->nat
(nat->nat)->(nat->nat)->nat->nat
nat->nat
(nat->nat)->nat->nat
nat
natnat->nat
nat=>nat
(nat=>nat)=>nat
nat=>nat
natnat
nat
nat->natnat
natnat
nat
natnat
例3
![Page 18: 値渡しのゲームの圏における 深さ優先戦略について](https://reader034.fdocuments.net/reader034/viewer/2022050802/568159a6550346895dc708e8/html5/thumbnails/18.jpg)
戦略 σ1(p λ(-)を使った)(その1)
((nat=>nat)=>(nat=>nat)=>nat=>nat)=>(nat=>nat)=>(nat=>nat)=>nat 2
(nat=>nat)=>(nat=>nat)=>nat 14
(nat=>nat)=>(nat=>nat)=>nat=>nat 3
nat=>nat 4
(nat=>nat)=>nat=>nat
nat 9
nat 10 nat=>na
t
nat=>nat 15
(nat=>nat)=>nat 18
nat=>nat 19
natnat
nat
nat=>nat
natnat
natnat
nat 16
nat 17
![Page 19: 値渡しのゲームの圏における 深さ優先戦略について](https://reader034.fdocuments.net/reader034/viewer/2022050802/568159a6550346895dc708e8/html5/thumbnails/19.jpg)
戦略 σ1(p λ(-)を使った)(その2)
((nat=>nat)=>(nat=>nat)=>nat=>nat)=>(nat=>nat)=>(nat=>nat)=>nat 2
(nat=>nat)=>(nat=>nat)=>nat 14
(nat=>nat)=>(nat=>nat)=>nat=>nat 3
nat=>nat 4
(nat=>nat)=>nat=>nat 5
nat
nat nat=>nat 6
nat=>nat 15
(nat=>nat)=>nat 18
nat=>nat 19
natnat 20
nat 21
nat=>natnat 11
nat 12 natnat
nat nat
![Page 20: 値渡しのゲームの圏における 深さ優先戦略について](https://reader034.fdocuments.net/reader034/viewer/2022050802/568159a6550346895dc708e8/html5/thumbnails/20.jpg)
戦略 σ1(p λ(-)を使った)(その3)
((nat=>nat)=>(nat=>nat)=>nat=>nat)=>(nat=>nat)=>(nat=>nat)=>nat 2
(nat=>nat)=>(nat=>nat)=>nat 14
(nat=>nat)=>(nat=>nat)=>nat=>nat 3
nat=>nat 4
(nat=>nat)=>nat=>nat 5
nat
nat nat=>nat 6
nat=>nat 15
(nat=>nat)=>nat 18
nat=>nat 19
nat 22nat nat
nat=>nat 7
nat nat nat
13nat 8
nat nat
![Page 21: 値渡しのゲームの圏における 深さ優先戦略について](https://reader034.fdocuments.net/reader034/viewer/2022050802/568159a6550346895dc708e8/html5/thumbnails/21.jpg)
戦略 σ2(p λ’(-)を使った)(その1)
((nat=>nat)=>(nat=>nat)=>nat=>nat)=>(nat=>nat)=>(nat=>nat)=>nat 2
(nat=>nat)=>(nat=>nat)=>nat 14
(nat=>nat)=>(nat=>nat)=>nat=>nat 3
nat=>nat 4
(nat=>nat)=>nat=>nat
nat 9
nat 10 nat=>na
t
nat=>nat 15
(nat=>nat)=>nat
nat=>nat
natnat
nat
nat=>nat
natnat
natnat
nat 16
nat 17
![Page 22: 値渡しのゲームの圏における 深さ優先戦略について](https://reader034.fdocuments.net/reader034/viewer/2022050802/568159a6550346895dc708e8/html5/thumbnails/22.jpg)
戦略 σ2(p λ’(-)を使った)(その2)
((nat=>nat)=>(nat=>nat)=>nat=>nat)=>(nat=>nat)=>(nat=>nat)=>nat 2
(nat=>nat)=>(nat=>nat)=>nat 14
(nat=>nat)=>(nat=>nat)=>nat=>nat 3
nat=>nat 4
(nat=>nat)=>nat=>nat 5
nat
nat nat=>nat 6
nat=>nat 15
(nat=>nat)=>nat 18
nat=>nat 19
natnat 20
nat 21
nat=>nat
n at 11
nat 12
natnat
nat nat
![Page 23: 値渡しのゲームの圏における 深さ優先戦略について](https://reader034.fdocuments.net/reader034/viewer/2022050802/568159a6550346895dc708e8/html5/thumbnails/23.jpg)
戦略 σ2(p λ’(-)を使った)(その3)
((nat=>nat)=>(nat=>nat)=>nat=>nat)=>(nat=>nat)=>(nat=>nat)=>nat 2
(nat=>nat)=>(nat=>nat)=>nat 14
(nat=>nat)=>(nat=>nat)=>nat=>nat 3
nat=>nat 4
(nat=>nat)=>nat=>nat 5
nat
nat nat=>nat 6
nat=>nat 15
(nat=>nat)=>nat 18
nat=>nat 19
nat 22 nat
nat
nat=>nat 7
n atnat nat
13nat 8
nat nat
![Page 24: 値渡しのゲームの圏における 深さ優先戦略について](https://reader034.fdocuments.net/reader034/viewer/2022050802/568159a6550346895dc708e8/html5/thumbnails/24.jpg)
ゲームのプレー
1 2 3 14
15
18
19
4 5 6 7 8 9 16
17
10
11
20
21
12
13
22
23
1 2 3 14
15
4 5 18
19
6 7 8 9 16
17
10
11
20
21
12
13
22
23
σ1と τ によるプレー
σ2と τ によるプレー
![Page 25: 値渡しのゲームの圏における 深さ優先戦略について](https://reader034.fdocuments.net/reader034/viewer/2022050802/568159a6550346895dc708e8/html5/thumbnails/25.jpg)
いままでわかったこと
• pλ(-)を使った戦略は通常の値渡しの戦略であるが、 pλ’(-) を使った戦略も、ある種の値渡しの戦略に対応している