データ型の実装とは、次の組 (Rep,Init,(opm)m∈Op) をいう。
- Rep は表現(内部の状態)の集合、Init⊆Rep は構築子が作りうる表現の集合。
- 各公開操作 m∈Op は、引数の集合 Xm、結果の集合 Ym、事前条件 prem⊆Rep×Xm と、写像 opm:Rep×Xm→Rep×Ym(新しい表現と結果を返す)をもつ。
表現不変条件とは、部分集合 Inv⊆Rep をいう。集合 A(抽象値の集合)への写像 α:Inv→A を抽象化関数という。
このデータ型を使うプログラムの実行とは、表現と呼び出し側の状態の組の列 (r0,e0),(r1,e1),…,(rN,eN) をいう。実行が表現を漏らさないとは、r0∈Init であり、各 i<N について次のどちらかが成り立つことをいう。
- (公開操作の呼び出し)ある m∈Op と x∈Xm があって、(ri,x)∈prem かつ opm(ri,x)=(ri+1,y)(y は結果)。
- (呼び出し側の動作)ri+1=ri。