Array
スキーマのシーケンスを追跡するスキーマがありますData
。Increment
プロモーションを使用して、 で使用する操作をプロモーションできArray
ます。
ArrayIncrement
内の 1 つのデータのみをインクリメントしますArray
。ごと Data
にインクリメントするようにするにはどうすればよい\ran data
ですか?
Array
スキーマのシーケンスを追跡するスキーマがありますData
。Increment
プロモーションを使用して、 で使用する操作をプロモーションできArray
ます。
ArrayIncrement
内の 1 つのデータのみをインクリメントしますArray
。ごと Data
にインクリメントするようにするにはどうすればよい\ran data
ですか?
すべての値をインクリメントするアプローチの基本的な障害は、プロモート (最後の行) でリレーショナル オーバーライドを使用すると、position 以外のすべての値data'
が同じ値にマップされるように指定されることです。data
index?
1 つのアプローチは、すべての要素の関係を明示的に「反復」することです。
--- ArrayIncrement ---
| ΔArray
---
| dom data = dom data'
| ∀ i:dom data; ΔData ·
| θData = data i ∧ θData' = data' i ∧ Increment
------
本文の最初の行では、ドメインが同じままであると述べています。それがなければ、追加の要素を含む無限のソリューションが存在することになります。
次の行では、ソリューションの 2 行目と同様に、特定のインデックスで前後の状態を表す変数を設定しPromote
ます。