2

仕様

Arrayスキーマのシーケンスを追跡するスキーマがありますDataIncrementプロモーションを使用して、 で使用する操作をプロモーションできArrayます。

ArrayIncrement内の 1 つのデータのみをインクリメントしますArrayごと Dataにインクリメントするようにするにはどうすればよい\ran dataですか?

4

1 に答える 1

1

すべての値をインクリメントするアプローチの基本的な障害は、プロモート (最後の行) でリレーショナル オーバーライドを使用すると、position 以外のすべての値data'が同じ値にマップされるように指定されることです。dataindex?

1 つのアプローチは、すべての要素の関係を明示的に「反復」することです。

--- ArrayIncrement ---
| ΔArray
---
| dom data = dom data' 
| ∀ i:dom data; ΔData ·
|       θData = data i ∧ θData' = data' i ∧ Increment
------

本文の最初の行では、ドメインが同じままであると述べています。それがなければ、追加の要素を含む無限のソリューションが存在することになります。

次の行では、ソリューションの 2 行目と同様に、特定のインデックスで前後の状態を表す変数を設定しPromoteます。

于 2017-11-28T20:31:35.693 に答える