comparison Paper/tex/spec.tex @ 6:9ec2d2ac1309

DONE 一度これで提出
author soto <soto@cr.ie.u-ryukyu.ac.jp>
date Thu, 05 May 2022 22:32:45 +0900
parents 14a0e409d574
children
comparison
equal deleted inserted replaced
5:6c0b1fcbac2d 6:9ec2d2ac1309
1 \section{検証手法} 1 \section{検証手法}
2 本章では検証する際の手法を説明する。 2 本章では検証する際の手法を説明する.
3 CodeGear の引数となる DataGear が事前条件となり、 3 CodeGear の引数となる DataGear が事前条件となり,
4 それを検証する為のPre Conditionを検証する為の Meta Gearsが存在する。 4 それを検証する為のPre Conditionを検証する為の Meta Gearsが存在する.
5 その後、さらに事後条件となる DetaGear も Meta Gears にて検証する。 5 その後,さらに事後条件となる DetaGear も Meta Gears にて検証する.
6 これらを用いて Hoare Logic によりプログラムの検証を行いたい。 6 これらを用いて Hoare Logic によりプログラムの検証を行いたい.
7 7
8 \subsection{CbC記法で書くagda} 8 \subsection{CbC記法で書くagda}
9 CbCプログラムの検証をするに当たり、AgdaコードもCbC記法で記述を行う。つまり継続渡しを用いて記述する必要がある。 9 CbCプログラムの検証をするに当たり,AgdaコードもCbC記法で記述を行う.つまり継続渡しを用いて記述する必要がある.
10 \coderef{agda-cg}が例となるコードである。 10 \coderef{agda-cg}が例となるコードである.
11 11
12 \lstinputlisting[caption= Agdaでの CodeGear の例, label=agda-cg]{src/cbc-agda.agda} 12 \lstinputlisting[caption= Agdaでの CodeGear の例, label=agda-cg]{src/cbc-agda.agda}
13 13
14 前述した加算を行うコードと比較すると、不定の型 (t) により継続を行なっている部分が見える。 14 前述した加算を行うコードと比較すると,不定の型 (t) により継続を行なっている部分が見える.
15 これがAgdaで表現された CodeGear となる。 15 これがAgdaで表現された CodeGear となる.
16 16
17 \subsection{agda による Meta Gears} 17 \subsection{agda による Meta Gears}
18 通常の Meta Gears はノーマルレベルの CodeGear、 DataGear では扱えないメタレベルの計算を扱う単位である。 18 通常の Meta Gears はノーマルレベルの CodeGear, DataGear では扱えないメタレベルの計算を扱う単位である.
19 今回はその Meta Gears をAgdaによる検証の為に用いる。 19 今回はその Meta Gears をAgdaによる検証の為に用いる.
20 20
21 \begin{itemize} 21 \begin{itemize}
22 \item Meta DataGear \mbox{}\\ 22 \item Meta DataGear \mbox{}\\
23 Agda 上で Meta DataGear を持つことでデータ構造自体が関係を持つデータを作ることができる。 23 Agda 上で Meta DataGear を持つことでデータ構造自体が関係を持つデータを作ることができる.
24 これを用いることで、仕様となる制約条件を記述することができる。 24 これを用いることで,仕様となる制約条件を記述することができる.
25 25
26 \item Meta CodeGear\mbox{}\\ 26 \item Meta CodeGear\mbox{}\\
27 Meta CodeGear は 通常の CodeGear では扱えないメタレベルの計算を扱う CodeGear 27 Meta CodeGear は 通常の CodeGear では扱えないメタレベルの計算を扱う CodeGear
28 である。Agda での Meta CodeGear は Meta DataGear を引数に取りそれらの関係を返 28 である.Agda での Meta CodeGear は Meta DataGear を引数に取りそれらの関係を返
29 す CodeGear である。故に、Meta CodeGear は Agda で記述した CodeGear の検証そのものである 29 す CodeGear である.故に,Meta CodeGear は Agda で記述した CodeGear の検証そのものである
30 \end{itemize} 30 \end{itemize}
31 31