計算機科学において、高階モデル検査 (higher-order model checking)はモデル検査問題の亜種で、システムの振る舞いが高階関数によって決定される場合を扱う。
高階モデル検査は、与えられた高階再帰スキームが生成するラベル付き木が、交替性パリティオートマトンによって受理されるかを判定する問題である。
一般的なモデル検査では、検証対象のシステムを有限状態機械などで記述するが、高階モデル検査では無限の状態を扱うため、検証対象のシステムは無限木として定義される。
ランク付きアルファベット (ranked alphabet) とは、関数 であって が有限のものである。このとき、各 は 終端記号 (terminal symbol) と呼ばれ、 は a のアリティをあらわす。
Σ-ラベル付き木 (Σ-labeled tree) とは、(有限とは限らない)根つき木 T に以下の情報を追加したものである。
- 各頂点 v に終端記号 が対応づけられている。
- 各頂点 v にはちょうど 個の子ノードが存在し、それぞれの辺は 1 から までの整数で付番されている。
高階モデル検査では、ラベル付き木を高階再帰スキームで記述し、その性質を交替性パリティオートマトンで記述する。
高階再帰スキームは、再帰を許した単純型つきλ計算によってラベル付き木を記述する方法である。
高階再帰スキームにおける単純型はソート (sort) あるいはカインド (kind) と呼ばれる。ソートはただ1つの基本型を持つ単純型で、以下のように帰納的に定義される。
- 特別な記号 o について、 o はソートである。
- と がソートであるとき、 はソートである。 「」は右結合として、曖昧性の虞れがないときは括弧を省略する。たとえば、 は の略記である。
ソートにはアリティ (arity) と オーダー (order) と呼ばれる自然数が以下のように割り当てられている。アリティは引数の個数、オーダーは高階関数の高階さをあらわす。
このとき、高階再帰スキーム (higher-order recursion scheme) とは、組 であって、以下の条件を満たすものである。
- Σはランク付きアルファベットである。
- は有限集合 の各元にソートを割り当てる関数である。各元 は非終端記号 (non-terminal symbol) と呼ばれる。
- は各非終端記号 にλ項を割り当てる関数である。このλ項は全てのλ抽象が先頭にある形 (, ここで t は型 o を持つアプリカティブなλ項) でなければならない。より正確には、アプリカティブなλ項は以下のように帰納的に定義される。
* 終端記号 はアプリカティブなλ項である。