<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Formal-Method on Rindrics Mumbles</title>
    <link>https://rindrics.com/tags/formal-method/</link>
    <description>Formal-Method</description>    
    <generator>Hugo -- gohugo.io</generator>
    <language>en</language>
    <lastBuildDate>Fri, 07 Aug 2026 00:00:00 +0900</lastBuildDate>
    <atom:link href="https://rindrics.com/tags/formal-method/index.xml" rel="self" type="application/rss+xml" />
    
    <item>
      <title>イミュータブルなデータレジストリの設計: Alloy による形式検証</title>
      <link>https://rindrics.com/posts/immutable-data-registry-alloy-formal-verification/</link>
      <pubDate>Fri, 07 Aug 2026 00:00:00 +0900</pubDate>
      
      <guid>https://rindrics.com/posts/immutable-data-registry-alloy-formal-verification/</guid>
      <description>&lt;p&gt;&lt;a href=&#34;../stock-assess-data-registry-1/&#34;&gt;前回&lt;/a&gt;に引き続き、data-registryサービスを実装していく。
今回はdatasetVersionの生成ロジック周りを設計する。&lt;/p&gt;
&lt;h2 id=&#34;はじめに&#34;&gt;はじめに&lt;/h2&gt;
&lt;p&gt;&lt;a href=&#34;https://rindrics.com/posts/stock-assess-api-contract-postmortem/#:~:text=data%20service%E3%81%AE%E3%82%88%E3%81%86%E3%81%AA%E7%8B%AC%E7%AB%8B%E3%81%97%E3%81%9F%E3%82%B5%E3%83%BC%E3%83%93%E3%82%B9%E3%81%8C%E5%BF%85%E8%A6%81%E3%81%AB%E6%80%9D%E3%82%8F%E3%82%8C%E3%82%8B&#34;&gt;データを登録するためのサービスが必要&lt;/a&gt;ということがわかったので、下の記事で、データ登録サービス: data-registryの構築に必要なセットアップを終え、ハンドラの実装まで完了した。








&lt;div class=&#34;card&#34;&gt;
  &lt;a href=&#34;https://rindrics.com/posts/stock-assess-data-registry-1/&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34; class=&#34;card-link&#34;&gt;
    &lt;div class=&#34;card-content&#34;&gt;
      &lt;h4 class=&#34;card-title&#34;&gt;データ登録サービスの構築 その1 | rindrics.com&lt;/h4&gt;
      
      &lt;span class=&#34;card-url&#34;&gt;https://rindrics.com/posts/stock-assess-data-registry-1/&lt;/span&gt;
    &lt;/div&gt;
  &lt;/a&gt;
&lt;/div&gt;
&lt;/p&gt;
&lt;p&gt;作業の進捗は下記の通り:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;input checked=&#34;&#34; disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; API契約を書く&lt;/li&gt;
&lt;li&gt;&lt;input checked=&#34;&#34; disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; ルーティングの動作確認&lt;/li&gt;
&lt;li&gt;&lt;input checked=&#34;&#34; disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; db セットアップ&lt;/li&gt;
&lt;li&gt;&lt;input checked=&#34;&#34; disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; リポジトリ・ハンドラの実装&lt;/li&gt;
&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; datasetVersion生成ロジックの設計&lt;/li&gt;
&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; リファクタリング&lt;/li&gt;
&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; エラーハンドリングの追加&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;データセットの生成ロジックは、Alloyでモデル検証しつつ設計する。&lt;/p&gt;
&lt;h2 id=&#34;要求と要件の整理&#34;&gt;要求と要件の整理&lt;/h2&gt;
&lt;p&gt;正常ケースのレスポンスとして、まずUUID形式の&lt;code&gt;version&lt;/code&gt;を返してほしい旨については&lt;a href=&#34;https://gist.github.com/rindrics/8504980873e631a7f692543090995e8e#file-gistfile1-txt-L100-L111&#34;&gt;OpenAPI&lt;/a&gt;に既に書いた。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#93a1a1;background-color:#002b36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-json&#34; data-lang=&#34;json&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;{
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#268bd2&#34;&gt;&amp;#34;version&amp;#34;&lt;/span&gt;: &lt;span style=&#34;color:#2aa198&#34;&gt;&amp;#34;019f8bff-a5b8-7014-bfc8-41561eaac24c&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;}
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;将来的にはもっと有用なレスポンスを返したほうがよさそうだが、ひとまずの仕様としてシンプルなこの動作について、ロジックを設計したい。&lt;/p&gt;
&lt;p&gt;ここで設計するのは、この文字列を何のアルゴリズムで得るかという話ではなく、この値がレスポンスとして返るまでにどんな事項を考慮しないといけないかという話。
コンシューマのユースケース支援の観点と、バックエンドサービスとしての堅牢性や処理速度をバランスさせながら考えていく。&lt;/p&gt;
&lt;h3 id=&#34;要求requirements&#34;&gt;要求（Requirements）&lt;/h3&gt;
&lt;p&gt;仕様を検討するにあたり、data-registryのコンシューマのユースケースを想定し、要求を洗い出したい。
&lt;a href=&#34;../stock-assess-data-registry-ubiquitous-language&#34;&gt;こちらの記事&lt;/a&gt;で定義したユビキタス言語を使い、要求を次のように整理する:&lt;/p&gt;
&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th&gt;ID&lt;/th&gt;
          &lt;th&gt;説明&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td&gt;R001&lt;/td&gt;
          &lt;td&gt;同一の登録要求に対して、常に同じ応答を返すこと&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;R002&lt;/td&gt;
          &lt;td&gt;同一の版に対する取得要求には、常に同じ内容を返すこと&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;R003&lt;/td&gt;
          &lt;td&gt;評価データまたはパラメータセットの登録成功後、その版を取得できること&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;R004&lt;/td&gt;
          &lt;td&gt;評価データまたはパラメータセットの登録に失敗した場合、コンシューマが失敗を検知できること&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;R005&lt;/td&gt;
          &lt;td&gt;登録要求に対して有限時間内に応答すること&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;R006&lt;/td&gt;
          &lt;td&gt;評価データ、パラメータセットまたはシナリオを、通常の利用対象から外せること&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;R007&lt;/td&gt;
          &lt;td&gt;評価データまたはパラメータセットを修正した場合でも、修正前の版を取得できること&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;R008&lt;/td&gt;
          &lt;td&gt;任意の版を指定して取得できること&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;R009&lt;/td&gt;
          &lt;td&gt;外部公開済みの版を訂正した場合でも、訂正前の版を追跡できること&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;R010&lt;/td&gt;
          &lt;td&gt;アーカイブと、機密情報などを除去するための物理削除を区別できること&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;R011&lt;/td&gt;
          &lt;td&gt;評価データおよびパラメータセットの版の履歴を追跡できること&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;immutableなサービスにしようと意気込んでいたので&lt;code&gt;R010&lt;/code&gt;は当初入れてなかったが、リソースのリビジョン機能をサポートするAPIでは物理削除が必須という記述を読んだので追加した&lt;sup id=&#34;fnref:1&#34;&gt;&lt;a href=&#34;#fn:1&#34; class=&#34;footnote-ref&#34; role=&#34;doc-noteref&#34;&gt;1&lt;/a&gt;&lt;/sup&gt;。&lt;/p&gt;
&lt;h3 id=&#34;システム要件system-requirements&#34;&gt;システム要件（System Requirements）&lt;/h3&gt;
&lt;p&gt;上で整理した要求から、下記のシステム要件が導かれた:&lt;/p&gt;
&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th&gt;ID&lt;/th&gt;
          &lt;th&gt;説明&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td&gt;SR001&lt;/td&gt;
          &lt;td&gt;各評価データおよびパラメータセットは、版を用いて管理されなければならない&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;SR002&lt;/td&gt;
          &lt;td&gt;登録後の版の内容を変更してはならない&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;SR003&lt;/td&gt;
          &lt;td&gt;評価データまたはパラメータセットを修正するときは、既存の版を更新せず、新しい版を作成しなければならない&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;SR004&lt;/td&gt;
          &lt;td&gt;新しい版は、修正元となった版を0個または1個参照しなければならない&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;SR005&lt;/td&gt;
          &lt;td&gt;同一の登録要求識別子を持つ登録要求に対しては同一の結果を返し、新たな版を重複して作成してはならない&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;SR006&lt;/td&gt;
          &lt;td&gt;登録処理が成功した場合、取得APIから登録された版の内容を取得できなければならない&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;SR007&lt;/td&gt;
          &lt;td&gt;版を指定した取得要求には、その版に記録された内容を返さなければならない&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;SR008&lt;/td&gt;
          &lt;td&gt;評価データおよびパラメータセットは、それぞれ高々1つの最新版を持たなければならない&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;SR009&lt;/td&gt;
          &lt;td&gt;新しい版の登録成功後、最新版は新しい版を指さなければならない&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;SR010&lt;/td&gt;
          &lt;td&gt;新しい版が登録されても、過去の版を変更または削除してはならない&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;これらの要件を出発点とし、データ登録機能を提供するバックエンドサービスとしてあるべき姿に照らして、追加で必要な要件をモデル検証であぶり出していく。&lt;/p&gt;
&lt;p&gt;モデル検証には&lt;a href=&#34;https://alloytools.org/alloy6.html&#34;&gt;Alloy 6&lt;/a&gt;を利用する。
動作環境は下記の通り:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;macOS 15.6.1（Apple M1 Max）&lt;/li&gt;
&lt;li&gt;Alloy Analyzer 6.1.0.20211119T054551&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;要件を満たすモデルの探索&#34;&gt;要件を満たすモデルの探索&lt;/h2&gt;
&lt;h3 id=&#34;システム基本構造の定義&#34;&gt;システム基本構造の定義&lt;/h3&gt;
&lt;p&gt;data-registryサービスのドメイン構造として、下記を表現することにした:&lt;/p&gt;
&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th&gt;#&lt;/th&gt;
          &lt;th&gt;Alloy signature&lt;/th&gt;
          &lt;th&gt;意味&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td&gt;1&lt;/td&gt;
          &lt;td&gt;Resource&lt;/td&gt;
          &lt;td&gt;ユビキタス言語より&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;2&lt;/td&gt;
          &lt;td&gt;AnnualAssessment&lt;/td&gt;
          &lt;td&gt;ユビキタス言語より&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;3&lt;/td&gt;
          &lt;td&gt;AssessmentTarget&lt;/td&gt;
          &lt;td&gt;ユビキタス言語より&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;4&lt;/td&gt;
          &lt;td&gt;AssessmentDataRevision&lt;/td&gt;
          &lt;td&gt;評価データの版&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;5&lt;/td&gt;
          &lt;td&gt;ParameterSetRevision&lt;/td&gt;
          &lt;td&gt;パラメータセットの版&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;6&lt;/td&gt;
          &lt;td&gt;Registry&lt;/td&gt;
          &lt;td&gt;data-registryサービス&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;その他、Alloyによるシミュレーションを動かすために必要なstutterなどを足して、下記のコードから始めることにする:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#93a1a1;background-color:#002b36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-alloy:model.als&#34; data-lang=&#34;alloy:model.als&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;commit &lt;span style=&#34;color:#2aa198&#34;&gt;46&lt;/span&gt;d22f240c3b20868818dcbf6d5b09dba5d161d7
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;Author: Akira Hayashi &lt;span style=&#34;color:#719e07&#34;&gt;&amp;lt;&lt;/span&gt;rindrics@gmail&lt;span style=&#34;color:#719e07&#34;&gt;.&lt;/span&gt;com&lt;span style=&#34;color:#719e07&#34;&gt;&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;Date:   Thu Jul &lt;span style=&#34;color:#2aa198&#34;&gt;30&lt;/span&gt; &lt;span style=&#34;color:#2aa198&#34;&gt;06&lt;/span&gt;:&lt;span style=&#34;color:#2aa198&#34;&gt;04&lt;/span&gt;:&lt;span style=&#34;color:#2aa198&#34;&gt;25&lt;/span&gt; &lt;span style=&#34;color:#2aa198&#34;&gt;2026&lt;/span&gt; &lt;span style=&#34;color:#719e07&#34;&gt;+&lt;/span&gt;&lt;span style=&#34;color:#2aa198&#34;&gt;0900&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    feat: define fundamental model structure
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;diff &lt;span style=&#34;color:#586e75&#34;&gt;--git a/services/data-registry/docs/model.als b/services/data-registry/docs/model.als&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;new file mode &lt;span style=&#34;color:#2aa198&#34;&gt;100644&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;index &lt;span style=&#34;color:#2aa198&#34;&gt;0000000&lt;/span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;..&lt;/span&gt;&lt;span style=&#34;color:#2aa198&#34;&gt;36&lt;/span&gt;a45f9
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#586e75&#34;&gt;--- /dev/null&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;+++&lt;/span&gt; b&lt;span style=&#34;color:#719e07&#34;&gt;/&lt;/span&gt;services&lt;span style=&#34;color:#719e07&#34;&gt;/&lt;/span&gt;data&lt;span style=&#34;color:#719e07&#34;&gt;-&lt;/span&gt;registry&lt;span style=&#34;color:#719e07&#34;&gt;/&lt;/span&gt;docs&lt;span style=&#34;color:#719e07&#34;&gt;/&lt;/span&gt;model&lt;span style=&#34;color:#719e07&#34;&gt;.&lt;/span&gt;als
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;@@ &lt;span style=&#34;color:#719e07&#34;&gt;-&lt;/span&gt;&lt;span style=&#34;color:#2aa198&#34;&gt;0&lt;/span&gt;,&lt;span style=&#34;color:#2aa198&#34;&gt;0&lt;/span&gt; &lt;span style=&#34;color:#719e07&#34;&gt;+&lt;/span&gt;&lt;span style=&#34;color:#2aa198&#34;&gt;1&lt;/span&gt;,&lt;span style=&#34;color:#2aa198&#34;&gt;84&lt;/span&gt; @@
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;+&lt;/span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;module&lt;/span&gt; DataRegistry
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;+&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;+&lt;/span&gt;&lt;span style=&#34;color:#586e75&#34;&gt;/*  ============================================================
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#586e75&#34;&gt;+    1. System Requirements
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#586e75&#34;&gt;+    ============================================================ */&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;+&lt;/span&gt;&lt;span style=&#34;color:#586e75&#34;&gt;// SR001: AssessmentData and ParameterSet, along with their respective versions, must be managed separately.&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;+&lt;/span&gt;&lt;span style=&#34;color:#586e75&#34;&gt;// SR002: Each version must be assigned a unique identifier, and the contents must not be modified after registration.&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;+&lt;/span&gt;&lt;span style=&#34;color:#586e75&#34;&gt;// SR003: When modifying AssessmentData or ParameterSet, a new version must be created instead of updating the existing version.&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;+&lt;/span&gt;&lt;span style=&#34;color:#586e75&#34;&gt;// SR004: A new version must reference exactly zero or one previous version as its source.&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;+&lt;/span&gt;&lt;span style=&#34;color:#586e75&#34;&gt;// SR005: For registration requests with identical IdempotencyKey, the same result must be returned without creating duplicate versions.&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;+&lt;/span&gt;&lt;span style=&#34;color:#586e75&#34;&gt;// SR006: After successful registration, the registered version must be retrievable via the retrieval API.&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;+&lt;/span&gt;&lt;span style=&#34;color:#586e75&#34;&gt;// SR007: Retrieval requests specifying a version must return the contents recorded in that version.&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;+&lt;/span&gt;&lt;span style=&#34;color:#586e75&#34;&gt;// SR008: AssessmentData and ParameterSet must each have at most one current version.&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;+&lt;/span&gt;&lt;span style=&#34;color:#586e75&#34;&gt;// SR009: After successful registration of a new version, the current version must point to the new version.&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;+&lt;/span&gt;&lt;span style=&#34;color:#586e75&#34;&gt;// SR010: Past versions must not be modified or deleted even after a new version is registered.&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;+&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;+&lt;/span&gt;&lt;span style=&#34;color:#586e75&#34;&gt;/*  ============================================================
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#586e75&#34;&gt;+    2. Domain
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#586e75&#34;&gt;+    ============================================================ */&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;+&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;+&lt;/span&gt;&lt;span style=&#34;color:#268bd2&#34;&gt;sig&lt;/span&gt; Resource &lt;span style=&#34;color:#719e07&#34;&gt;{}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;+&lt;/span&gt;&lt;span style=&#34;color:#268bd2&#34;&gt;sig&lt;/span&gt; AnnualAssessment &lt;span style=&#34;color:#719e07&#34;&gt;{}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;+&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;+&lt;/span&gt;&lt;span style=&#34;color:#268bd2&#34;&gt;sig&lt;/span&gt; AssessmentTarget &lt;span style=&#34;color:#719e07&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;+&lt;/span&gt;	resource: &lt;span style=&#34;color:#719e07&#34;&gt;one&lt;/span&gt; Resource,
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;+&lt;/span&gt;	year: &lt;span style=&#34;color:#719e07&#34;&gt;one&lt;/span&gt; AnnualAssessment
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;+}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;+&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;+&lt;/span&gt;&lt;span style=&#34;color:#268bd2&#34;&gt;sig&lt;/span&gt; AssessmentDataRevision &lt;span style=&#34;color:#719e07&#34;&gt;{}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;+&lt;/span&gt;&lt;span style=&#34;color:#268bd2&#34;&gt;sig&lt;/span&gt; ParameterSetRevision &lt;span style=&#34;color:#719e07&#34;&gt;{}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;+&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;+&lt;/span&gt;&lt;span style=&#34;color:#586e75&#34;&gt;/*  ============================================================
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#586e75&#34;&gt;+    3. State
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#586e75&#34;&gt;+    ============================================================ */&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;+&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;+&lt;/span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;one&lt;/span&gt; &lt;span style=&#34;color:#268bd2&#34;&gt;sig&lt;/span&gt; Registry &lt;span style=&#34;color:#719e07&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;+&lt;/span&gt;	&lt;span style=&#34;color:#719e07&#34;&gt;var&lt;/span&gt; assessmentData: AssessmentTarget &lt;span style=&#34;color:#719e07&#34;&gt;-&amp;gt;&lt;/span&gt; &lt;span style=&#34;color:#719e07&#34;&gt;lone&lt;/span&gt; AssessmentDataRevision,
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;+&lt;/span&gt;	&lt;span style=&#34;color:#719e07&#34;&gt;var&lt;/span&gt; parameterSet: AssessmentTarget &lt;span style=&#34;color:#719e07&#34;&gt;-&amp;gt;&lt;/span&gt; &lt;span style=&#34;color:#719e07&#34;&gt;lone&lt;/span&gt; ParameterSetRevision
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;+}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;+&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;+&lt;/span&gt;&lt;span style=&#34;color:#586e75&#34;&gt;/*  ============================================================
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#586e75&#34;&gt;+    4. Operations
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#586e75&#34;&gt;+    ============================================================ */&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;+&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;+&lt;/span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;pred&lt;/span&gt; init &lt;span style=&#34;color:#719e07&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;+&lt;/span&gt;	&lt;span style=&#34;color:#719e07&#34;&gt;no&lt;/span&gt; Registry&lt;span style=&#34;color:#719e07&#34;&gt;.&lt;/span&gt;assessmentData
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;+&lt;/span&gt;	&lt;span style=&#34;color:#719e07&#34;&gt;no&lt;/span&gt; Registry&lt;span style=&#34;color:#719e07&#34;&gt;.&lt;/span&gt;parameterSet
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;+}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;+&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;+&lt;/span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;pred&lt;/span&gt; registerAssessmentData&lt;span style=&#34;color:#719e07&#34;&gt;[&lt;/span&gt;at: AssessmentTarget, adr: AssessmentDataRevision&lt;span style=&#34;color:#719e07&#34;&gt;]&lt;/span&gt; &lt;span style=&#34;color:#719e07&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;+&lt;/span&gt;	Registry&lt;span style=&#34;color:#719e07&#34;&gt;.&lt;/span&gt;assessmentData&lt;span style=&#34;color:#719e07&#34;&gt;&amp;#39;&lt;/span&gt; &lt;span style=&#34;color:#719e07&#34;&gt;=&lt;/span&gt; Registry&lt;span style=&#34;color:#719e07&#34;&gt;.&lt;/span&gt;assessmentData &lt;span style=&#34;color:#719e07&#34;&gt;+&lt;/span&gt; at &lt;span style=&#34;color:#719e07&#34;&gt;-&amp;gt;&lt;/span&gt; adr
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;+&lt;/span&gt;	Registry&lt;span style=&#34;color:#719e07&#34;&gt;.&lt;/span&gt;parameterSet&lt;span style=&#34;color:#719e07&#34;&gt;&amp;#39;&lt;/span&gt; &lt;span style=&#34;color:#719e07&#34;&gt;=&lt;/span&gt; Registry&lt;span style=&#34;color:#719e07&#34;&gt;.&lt;/span&gt;parameterSet
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;+}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;+&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;+&lt;/span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;pred&lt;/span&gt; registerParameterSet&lt;span style=&#34;color:#719e07&#34;&gt;[&lt;/span&gt;at: AssessmentTarget, psr: ParameterSetRevision&lt;span style=&#34;color:#719e07&#34;&gt;]&lt;/span&gt; &lt;span style=&#34;color:#719e07&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;+&lt;/span&gt;	Registry&lt;span style=&#34;color:#719e07&#34;&gt;.&lt;/span&gt;assessmentData&lt;span style=&#34;color:#719e07&#34;&gt;&amp;#39;&lt;/span&gt; &lt;span style=&#34;color:#719e07&#34;&gt;=&lt;/span&gt; Registry&lt;span style=&#34;color:#719e07&#34;&gt;.&lt;/span&gt;assessmentData
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;+&lt;/span&gt;	Registry&lt;span style=&#34;color:#719e07&#34;&gt;.&lt;/span&gt;parameterSet&lt;span style=&#34;color:#719e07&#34;&gt;&amp;#39;&lt;/span&gt; &lt;span style=&#34;color:#719e07&#34;&gt;=&lt;/span&gt; Registry&lt;span style=&#34;color:#719e07&#34;&gt;.&lt;/span&gt;parameterSet &lt;span style=&#34;color:#719e07&#34;&gt;+&lt;/span&gt; at &lt;span style=&#34;color:#719e07&#34;&gt;-&amp;gt;&lt;/span&gt; psr
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;+}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;+&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;+&lt;/span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;pred&lt;/span&gt; stutter &lt;span style=&#34;color:#719e07&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;+&lt;/span&gt;	Registry&lt;span style=&#34;color:#719e07&#34;&gt;.&lt;/span&gt;assessmentData&lt;span style=&#34;color:#719e07&#34;&gt;&amp;#39;&lt;/span&gt; &lt;span style=&#34;color:#719e07&#34;&gt;=&lt;/span&gt; Registry&lt;span style=&#34;color:#719e07&#34;&gt;.&lt;/span&gt;assessmentData
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;+&lt;/span&gt;	Registry&lt;span style=&#34;color:#719e07&#34;&gt;.&lt;/span&gt;parameterSet&lt;span style=&#34;color:#719e07&#34;&gt;&amp;#39;&lt;/span&gt; &lt;span style=&#34;color:#719e07&#34;&gt;=&lt;/span&gt; Registry&lt;span style=&#34;color:#719e07&#34;&gt;.&lt;/span&gt;parameterSet
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;+}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;+&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;+&lt;/span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;pred&lt;/span&gt; step &lt;span style=&#34;color:#719e07&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;+&lt;/span&gt;	stutter
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;+&lt;/span&gt;	&lt;span style=&#34;color:#719e07&#34;&gt;or&lt;/span&gt; &lt;span style=&#34;color:#719e07&#34;&gt;(&lt;/span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;some&lt;/span&gt; at: AssessmentTarget, adr: AssessmentDataRevision &lt;span style=&#34;color:#719e07&#34;&gt;|&lt;/span&gt; registerAssessmentData&lt;span style=&#34;color:#719e07&#34;&gt;[&lt;/span&gt;at, adr&lt;span style=&#34;color:#719e07&#34;&gt;])&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;+&lt;/span&gt;	&lt;span style=&#34;color:#719e07&#34;&gt;or&lt;/span&gt; &lt;span style=&#34;color:#719e07&#34;&gt;(&lt;/span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;some&lt;/span&gt; at: AssessmentTarget, psr: ParameterSetRevision &lt;span style=&#34;color:#719e07&#34;&gt;|&lt;/span&gt; registerParameterSet&lt;span style=&#34;color:#719e07&#34;&gt;[&lt;/span&gt;at, psr&lt;span style=&#34;color:#719e07&#34;&gt;])&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;+}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;+&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;+&lt;/span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;fact&lt;/span&gt; traces &lt;span style=&#34;color:#719e07&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;+&lt;/span&gt;	init
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;+&lt;/span&gt;	&lt;span style=&#34;color:#719e07&#34;&gt;always&lt;/span&gt; step
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;+}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;+&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;+&lt;/span&gt;&lt;span style=&#34;color:#586e75&#34;&gt;/*  ============================================================
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#586e75&#34;&gt;+    5. Properties
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#586e75&#34;&gt;+    ============================================================ */&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;+&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;+&lt;/span&gt;&lt;span style=&#34;color:#586e75&#34;&gt;/*  ============================================================
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#586e75&#34;&gt;+    6. Sanity
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#586e75&#34;&gt;+    ============================================================ */&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;+&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;+&lt;/span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;run&lt;/span&gt; &lt;span style=&#34;color:#719e07&#34;&gt;{}&lt;/span&gt; &lt;span style=&#34;color:#719e07&#34;&gt;for&lt;/span&gt; &lt;span style=&#34;color:#2aa198&#34;&gt;2&lt;/span&gt; &lt;span style=&#34;color:#719e07&#34;&gt;but&lt;/span&gt; &lt;span style=&#34;color:#2aa198&#34;&gt;1&lt;/span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;..&lt;/span&gt;&lt;span style=&#34;color:#2aa198&#34;&gt;3&lt;/span&gt; &lt;span style=&#34;color:#719e07&#34;&gt;steps&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;code&gt;run&lt;/code&gt;を実行してみると、下図のような関係が表示された:&lt;/p&gt;
&lt;figure&gt;&lt;img src=&#34;https://rindrics.com/images/2026-07-29-data/init.webp&#34;
    alt=&#34;システムの初期状態&#34;&gt;&lt;figcaption&gt;
      &lt;p&gt;システムの初期状態&lt;/p&gt;
    &lt;/figcaption&gt;
&lt;/figure&gt;

&lt;p&gt;（Alloyのおさらい）この図が意味していることは下記だ:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;AssessmentTarger0&lt;/code&gt; は &lt;code&gt;AnnualAssessment&lt;/code&gt; と &lt;code&gt;Resource1&lt;/code&gt; からなる評価対象である&lt;/li&gt;
&lt;li&gt;&lt;code&gt;AssessmentTarger1&lt;/code&gt; も同じ年の評価だが、対象資源は &lt;code&gt;Resource0&lt;/code&gt; である&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Registry&lt;/code&gt; にはまだなにも登録されていない（= エッジが一本もない）&lt;/li&gt;
&lt;li&gt;&lt;code&gt;AssessmentDataRevision&lt;/code&gt; という概念がモデリングされているが使われていない（= データが登録されていない）&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;code&gt;registerParameterSet&lt;/code&gt; predicateをstepに含めているにも関わらずデータが登録されていないことになっている理由は下記だ:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;a. step内で&lt;code&gt;registerParameterSet&lt;/code&gt;の遷移が&lt;code&gt;or&lt;/code&gt;の一つの選択肢として定義されているだけであり、その遷移が少なくとも一度選択されることは保証されていないため
&lt;ul&gt;
&lt;li&gt;stutterが常に選択可能なら、すべてのステップで&lt;code&gt;stutter&lt;/code&gt;だけが選択され、登録が一度も起きないトレースも許される&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;b. Alloyによるケース探索ではインスタンスから生成されがちだから&lt;sup id=&#34;fnref:2&#34;&gt;&lt;a href=&#34;#fn:2&#34; class=&#34;footnote-ref&#34; role=&#34;doc-noteref&#34;&gt;2&lt;/a&gt;&lt;/sup&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;逆に、データが登録された状況を見てみたければ下記のようにすれば良い:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#93a1a1;background-color:#002b36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-diff:model.als&#34; data-lang=&#34;diff:model.als&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#719e07&#34;&gt;pred&lt;/span&gt; step &lt;span style=&#34;color:#719e07&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;-&lt;/span&gt; 	stutter
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;-&lt;/span&gt; 	&lt;span style=&#34;color:#719e07&#34;&gt;or&lt;/span&gt; &lt;span style=&#34;color:#719e07&#34;&gt;(&lt;/span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;some&lt;/span&gt; at: AssessmentTarget, adr: AssessmentDataRevision &lt;span style=&#34;color:#719e07&#34;&gt;|&lt;/span&gt; registerAssessmentData&lt;span style=&#34;color:#719e07&#34;&gt;[&lt;/span&gt;at, adr&lt;span style=&#34;color:#719e07&#34;&gt;])&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;-&lt;/span&gt; 	&lt;span style=&#34;color:#719e07&#34;&gt;or&lt;/span&gt; &lt;span style=&#34;color:#719e07&#34;&gt;(&lt;/span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;some&lt;/span&gt; at: AssessmentTarget, psr: ParameterSetRevision &lt;span style=&#34;color:#719e07&#34;&gt;|&lt;/span&gt; registerParameterSet&lt;span style=&#34;color:#719e07&#34;&gt;[&lt;/span&gt;at, psr&lt;span style=&#34;color:#719e07&#34;&gt;])&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;+&lt;/span&gt;   &lt;span style=&#34;color:#719e07&#34;&gt;some&lt;/span&gt; at: AssessmentTarget, adr: AssessmentDataRevision &lt;span style=&#34;color:#719e07&#34;&gt;|&lt;/span&gt; registerAssessmentData&lt;span style=&#34;color:#719e07&#34;&gt;[&lt;/span&gt;at, adr&lt;span style=&#34;color:#719e07&#34;&gt;]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#719e07&#34;&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;↑力技でやるならこう。&lt;/p&gt;
&lt;p&gt;こちらのほうがスマートか↓&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#93a1a1;background-color:#002b36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-diff:model.als&#34; data-lang=&#34;diff:model.als&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;-&lt;/span&gt; &lt;span style=&#34;color:#719e07&#34;&gt;run&lt;/span&gt; &lt;span style=&#34;color:#719e07&#34;&gt;{}&lt;/span&gt; &lt;span style=&#34;color:#719e07&#34;&gt;for&lt;/span&gt; &lt;span style=&#34;color:#2aa198&#34;&gt;2&lt;/span&gt; &lt;span style=&#34;color:#719e07&#34;&gt;but&lt;/span&gt; &lt;span style=&#34;color:#2aa198&#34;&gt;1&lt;/span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;..&lt;/span&gt;&lt;span style=&#34;color:#2aa198&#34;&gt;3&lt;/span&gt; &lt;span style=&#34;color:#719e07&#34;&gt;steps&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;+&lt;/span&gt; &lt;span style=&#34;color:#719e07&#34;&gt;run&lt;/span&gt; &lt;span style=&#34;color:#719e07&#34;&gt;{&lt;/span&gt; &lt;span style=&#34;color:#719e07&#34;&gt;eventually&lt;/span&gt; &lt;span style=&#34;color:#719e07&#34;&gt;(&lt;/span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;some&lt;/span&gt; Registry&lt;span style=&#34;color:#719e07&#34;&gt;.&lt;/span&gt;assessmentData&lt;span style=&#34;color:#719e07&#34;&gt;)&lt;/span&gt; &lt;span style=&#34;color:#719e07&#34;&gt;}&lt;/span&gt; &lt;span style=&#34;color:#719e07&#34;&gt;for&lt;/span&gt; &lt;span style=&#34;color:#2aa198&#34;&gt;2&lt;/span&gt; &lt;span style=&#34;color:#719e07&#34;&gt;but&lt;/span&gt; &lt;span style=&#34;color:#2aa198&#34;&gt;1&lt;/span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;..&lt;/span&gt;&lt;span style=&#34;color:#2aa198&#34;&gt;3&lt;/span&gt; &lt;span style=&#34;color:#719e07&#34;&gt;steps&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;実行すると、下図のようにデータが登録された状態を一応見ることができる:
&lt;figure&gt;&lt;img src=&#34;https://rindrics.com/images/2026-07-29-data/init-registered.webp&#34;
    alt=&#34;データが登録されたケースの一例&#34;&gt;&lt;figcaption&gt;
      &lt;p&gt;データが登録されたケースの一例&lt;/p&gt;
    &lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;図示のためのこの変更は不要だったので元に戻しておく。&lt;/p&gt;
&lt;p&gt;ここから、各要件をAlloyで形式化し、全ての要件が常に満たされるシステム仕様となっているかを検証していく。
「すべての要件が常に」と強めに書いたのは、各要件は私が定義した: つまり調整余地があるもなので、要件全体として整合するようにしたいからだ&lt;sup id=&#34;fnref:3&#34;&gt;&lt;a href=&#34;#fn:3&#34; class=&#34;footnote-ref&#34; role=&#34;doc-noteref&#34;&gt;3&lt;/a&gt;&lt;/sup&gt;。&lt;/p&gt;
&lt;h3 id=&#34;sr001-版による管理&#34;&gt;SR001: 版による管理&lt;/h3&gt;
&lt;blockquote&gt;
&lt;p&gt;SR001: 各評価データおよびパラメータセットは、版を用いて管理されなければならない&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;この要件は下記のように表現できる。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#93a1a1;background-color:#002b36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-diff:model.als&#34; data-lang=&#34;diff:model.als&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;     &lt;span style=&#34;color:#2aa198&#34;&gt;5&lt;/span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;.&lt;/span&gt; Properties
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;     &lt;span style=&#34;color:#719e07&#34;&gt;============================================================&lt;/span&gt; &lt;span style=&#34;color:#719e07&#34;&gt;*/&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; 
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;+&lt;/span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;assert&lt;/span&gt; SR001_revision_belongs_to_at_most_one_target &lt;span style=&#34;color:#719e07&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;+&lt;/span&gt;    &lt;span style=&#34;color:#719e07&#34;&gt;all&lt;/span&gt; adr: AssessmentDataRevision &lt;span style=&#34;color:#719e07&#34;&gt;|&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;+&lt;/span&gt;        &lt;span style=&#34;color:#719e07&#34;&gt;lone&lt;/span&gt; Registry&lt;span style=&#34;color:#719e07&#34;&gt;.&lt;/span&gt;assessmentData&lt;span style=&#34;color:#719e07&#34;&gt;.&lt;/span&gt;adr
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;+&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;+&lt;/span&gt;    &lt;span style=&#34;color:#719e07&#34;&gt;all&lt;/span&gt; psr: ParameterSetRevision &lt;span style=&#34;color:#719e07&#34;&gt;|&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;+&lt;/span&gt;        &lt;span style=&#34;color:#719e07&#34;&gt;lone&lt;/span&gt; Registry&lt;span style=&#34;color:#719e07&#34;&gt;.&lt;/span&gt;parameterSet&lt;span style=&#34;color:#719e07&#34;&gt;.&lt;/span&gt;psr
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;+}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;+&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;+&lt;/span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;check&lt;/span&gt; SR001_revision_belongs_to_at_most_one_target &lt;span style=&#34;color:#719e07&#34;&gt;for&lt;/span&gt; &lt;span style=&#34;color:#2aa198&#34;&gt;2&lt;/span&gt; &lt;span style=&#34;color:#719e07&#34;&gt;but&lt;/span&gt; &lt;span style=&#34;color:#2aa198&#34;&gt;1&lt;/span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;..&lt;/span&gt;&lt;span style=&#34;color:#2aa198&#34;&gt;3&lt;/span&gt; &lt;span style=&#34;color:#719e07&#34;&gt;steps&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;+&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;+&lt;/span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;pred&lt;/span&gt; SR001_revisions_can_be_registered &lt;span style=&#34;color:#719e07&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;+&lt;/span&gt;	&lt;span style=&#34;color:#719e07&#34;&gt;eventually&lt;/span&gt; &lt;span style=&#34;color:#719e07&#34;&gt;(&lt;/span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;some&lt;/span&gt; at: AssessmentTarget, adr: AssessmentDataRevision,
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;+&lt;/span&gt;		psr: ParameterSetRevision &lt;span style=&#34;color:#719e07&#34;&gt;|&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;+&lt;/span&gt;		Registry&lt;span style=&#34;color:#719e07&#34;&gt;.&lt;/span&gt;assessmentData&lt;span style=&#34;color:#719e07&#34;&gt;[&lt;/span&gt;at&lt;span style=&#34;color:#719e07&#34;&gt;]&lt;/span&gt; &lt;span style=&#34;color:#719e07&#34;&gt;=&lt;/span&gt; adr
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;+&lt;/span&gt;		&lt;span style=&#34;color:#719e07&#34;&gt;and&lt;/span&gt; Registry&lt;span style=&#34;color:#719e07&#34;&gt;.&lt;/span&gt;parameterSet&lt;span style=&#34;color:#719e07&#34;&gt;[&lt;/span&gt;at&lt;span style=&#34;color:#719e07&#34;&gt;]&lt;/span&gt; &lt;span style=&#34;color:#719e07&#34;&gt;=&lt;/span&gt; psr&lt;span style=&#34;color:#719e07&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;+}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;+&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;+&lt;/span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;run&lt;/span&gt; SR001_revisions_can_be_registered &lt;span style=&#34;color:#719e07&#34;&gt;for&lt;/span&gt; &lt;span style=&#34;color:#2aa198&#34;&gt;2&lt;/span&gt; &lt;span style=&#34;color:#719e07&#34;&gt;but&lt;/span&gt; &lt;span style=&#34;color:#2aa198&#34;&gt;1&lt;/span&gt; AssessmentTarget, &lt;span style=&#34;color:#2aa198&#34;&gt;1&lt;/span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;..&lt;/span&gt;&lt;span style=&#34;color:#2aa198&#34;&gt;3&lt;/span&gt; &lt;span style=&#34;color:#719e07&#34;&gt;steps&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;+&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; &lt;span style=&#34;color:#586e75&#34;&gt;/*  ============================================================
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#586e75&#34;&gt;     6. Sanity
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#586e75&#34;&gt;     ============================================================ */&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Execute Allしてみる:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#93a1a1;background-color:#002b36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-gdscript3&#34; data-lang=&#34;gdscript3&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;Executing &lt;span style=&#34;color:#2aa198&#34;&gt;&amp;#34;Check SR001_revision_belongs_to_at_most_one_target for 2 but 1..3 steps&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;   Actual scopes: &lt;span style=&#34;color:#2aa198&#34;&gt;2&lt;/span&gt; &lt;span style=&#34;color:#cb4b16&#34;&gt;Resource&lt;/span&gt;, &lt;span style=&#34;color:#2aa198&#34;&gt;2&lt;/span&gt; AnnualAssessment, &lt;span style=&#34;color:#2aa198&#34;&gt;2&lt;/span&gt; AssessmentTarget, &lt;span style=&#34;color:#2aa198&#34;&gt;2&lt;/span&gt; AssessmentDataRevision, &lt;span style=&#34;color:#2aa198&#34;&gt;2&lt;/span&gt; ParameterSetRevision, exactly &lt;span style=&#34;color:#2aa198&#34;&gt;1&lt;/span&gt; Registry
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;   Solver&lt;span style=&#34;color:#719e07&#34;&gt;=&lt;/span&gt;sat4j Steps&lt;span style=&#34;color:#719e07&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#2aa198&#34;&gt;1.&lt;/span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;.&lt;/span&gt;&lt;span style=&#34;color:#2aa198&#34;&gt;3&lt;/span&gt; Bitwidth&lt;span style=&#34;color:#719e07&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#2aa198&#34;&gt;4&lt;/span&gt; MaxSeq&lt;span style=&#34;color:#719e07&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#2aa198&#34;&gt;2&lt;/span&gt; SkolemDepth&lt;span style=&#34;color:#719e07&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#2aa198&#34;&gt;1&lt;/span&gt; Symmetry&lt;span style=&#34;color:#719e07&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#2aa198&#34;&gt;20&lt;/span&gt; Mode&lt;span style=&#34;color:#719e07&#34;&gt;=&lt;/span&gt;batch
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;   &lt;span style=&#34;color:#2aa198&#34;&gt;1.&lt;/span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;.&lt;/span&gt;&lt;span style=&#34;color:#2aa198&#34;&gt;3&lt;/span&gt; steps&lt;span style=&#34;color:#719e07&#34;&gt;.&lt;/span&gt; &lt;span style=&#34;color:#2aa198&#34;&gt;1553&lt;/span&gt; vars&lt;span style=&#34;color:#719e07&#34;&gt;.&lt;/span&gt; &lt;span style=&#34;color:#2aa198&#34;&gt;108&lt;/span&gt; primary vars&lt;span style=&#34;color:#719e07&#34;&gt;.&lt;/span&gt; &lt;span style=&#34;color:#2aa198&#34;&gt;2564&lt;/span&gt; clauses&lt;span style=&#34;color:#719e07&#34;&gt;.&lt;/span&gt; &lt;span style=&#34;color:#2aa198&#34;&gt;10&lt;/span&gt;ms&lt;span style=&#34;color:#719e07&#34;&gt;.&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;   No counterexample found&lt;span style=&#34;color:#719e07&#34;&gt;.&lt;/span&gt; Assertion may be valid&lt;span style=&#34;color:#719e07&#34;&gt;.&lt;/span&gt; &lt;span style=&#34;color:#2aa198&#34;&gt;0&lt;/span&gt;ms&lt;span style=&#34;color:#719e07&#34;&gt;.&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;Executing &lt;span style=&#34;color:#2aa198&#34;&gt;&amp;#34;Run SR001_revisions_can_be_registered for 2 but 1..3 steps, 1 AssessmentTarget&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;   Actual scopes: &lt;span style=&#34;color:#2aa198&#34;&gt;2&lt;/span&gt; &lt;span style=&#34;color:#cb4b16&#34;&gt;Resource&lt;/span&gt;, &lt;span style=&#34;color:#2aa198&#34;&gt;2&lt;/span&gt; AnnualAssessment, &lt;span style=&#34;color:#2aa198&#34;&gt;1&lt;/span&gt; AssessmentTarget, &lt;span style=&#34;color:#2aa198&#34;&gt;2&lt;/span&gt; AssessmentDataRevision, &lt;span style=&#34;color:#2aa198&#34;&gt;2&lt;/span&gt; ParameterSetRevision, exactly &lt;span style=&#34;color:#2aa198&#34;&gt;1&lt;/span&gt; Registry
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;   Solver&lt;span style=&#34;color:#719e07&#34;&gt;=&lt;/span&gt;sat4j Steps&lt;span style=&#34;color:#719e07&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#2aa198&#34;&gt;1.&lt;/span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;.&lt;/span&gt;&lt;span style=&#34;color:#2aa198&#34;&gt;3&lt;/span&gt; Bitwidth&lt;span style=&#34;color:#719e07&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#2aa198&#34;&gt;4&lt;/span&gt; MaxSeq&lt;span style=&#34;color:#719e07&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#2aa198&#34;&gt;2&lt;/span&gt; SkolemDepth&lt;span style=&#34;color:#719e07&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#2aa198&#34;&gt;1&lt;/span&gt; Symmetry&lt;span style=&#34;color:#719e07&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#2aa198&#34;&gt;20&lt;/span&gt; Mode&lt;span style=&#34;color:#719e07&#34;&gt;=&lt;/span&gt;batch
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;   &lt;span style=&#34;color:#2aa198&#34;&gt;1.&lt;/span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;.&lt;/span&gt;&lt;span style=&#34;color:#2aa198&#34;&gt;3&lt;/span&gt; steps&lt;span style=&#34;color:#719e07&#34;&gt;.&lt;/span&gt; &lt;span style=&#34;color:#2aa198&#34;&gt;2479&lt;/span&gt; vars&lt;span style=&#34;color:#719e07&#34;&gt;.&lt;/span&gt; &lt;span style=&#34;color:#2aa198&#34;&gt;198&lt;/span&gt; primary vars&lt;span style=&#34;color:#719e07&#34;&gt;.&lt;/span&gt; &lt;span style=&#34;color:#2aa198&#34;&gt;3967&lt;/span&gt; clauses&lt;span style=&#34;color:#719e07&#34;&gt;.&lt;/span&gt; &lt;span style=&#34;color:#2aa198&#34;&gt;8&lt;/span&gt;ms&lt;span style=&#34;color:#719e07&#34;&gt;.&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;   &lt;span style=&#34;color:#719e07&#34;&gt;.&lt;/span&gt; found&lt;span style=&#34;color:#719e07&#34;&gt;.&lt;/span&gt; Predicate is consistent&lt;span style=&#34;color:#719e07&#34;&gt;.&lt;/span&gt; &lt;span style=&#34;color:#2aa198&#34;&gt;3&lt;/span&gt;ms&lt;span style=&#34;color:#719e07&#34;&gt;.&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;Executing &lt;span style=&#34;color:#2aa198&#34;&gt;&amp;#34;Run run$3 for 2 but 1..3 steps&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;   Actual scopes: &lt;span style=&#34;color:#2aa198&#34;&gt;2&lt;/span&gt; &lt;span style=&#34;color:#cb4b16&#34;&gt;Resource&lt;/span&gt;, &lt;span style=&#34;color:#2aa198&#34;&gt;2&lt;/span&gt; AnnualAssessment, &lt;span style=&#34;color:#2aa198&#34;&gt;2&lt;/span&gt; AssessmentTarget, &lt;span style=&#34;color:#2aa198&#34;&gt;2&lt;/span&gt; AssessmentDataRevision, &lt;span style=&#34;color:#2aa198&#34;&gt;2&lt;/span&gt; ParameterSetRevision, exactly &lt;span style=&#34;color:#2aa198&#34;&gt;1&lt;/span&gt; Registry
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;   Solver&lt;span style=&#34;color:#719e07&#34;&gt;=&lt;/span&gt;sat4j Steps&lt;span style=&#34;color:#719e07&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#2aa198&#34;&gt;1.&lt;/span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;.&lt;/span&gt;&lt;span style=&#34;color:#2aa198&#34;&gt;3&lt;/span&gt; Bitwidth&lt;span style=&#34;color:#719e07&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#2aa198&#34;&gt;4&lt;/span&gt; MaxSeq&lt;span style=&#34;color:#719e07&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#2aa198&#34;&gt;2&lt;/span&gt; SkolemDepth&lt;span style=&#34;color:#719e07&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#2aa198&#34;&gt;1&lt;/span&gt; Symmetry&lt;span style=&#34;color:#719e07&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#2aa198&#34;&gt;20&lt;/span&gt; Mode&lt;span style=&#34;color:#719e07&#34;&gt;=&lt;/span&gt;batch
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;   &lt;span style=&#34;color:#2aa198&#34;&gt;1.&lt;/span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;.&lt;/span&gt;&lt;span style=&#34;color:#2aa198&#34;&gt;1&lt;/span&gt; steps&lt;span style=&#34;color:#719e07&#34;&gt;.&lt;/span&gt; &lt;span style=&#34;color:#2aa198&#34;&gt;2769&lt;/span&gt; vars&lt;span style=&#34;color:#719e07&#34;&gt;.&lt;/span&gt; &lt;span style=&#34;color:#2aa198&#34;&gt;225&lt;/span&gt; primary vars&lt;span style=&#34;color:#719e07&#34;&gt;.&lt;/span&gt; &lt;span style=&#34;color:#2aa198&#34;&gt;4415&lt;/span&gt; clauses&lt;span style=&#34;color:#719e07&#34;&gt;.&lt;/span&gt; &lt;span style=&#34;color:#2aa198&#34;&gt;1&lt;/span&gt;ms&lt;span style=&#34;color:#719e07&#34;&gt;.&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;   &lt;span style=&#34;color:#719e07&#34;&gt;.&lt;/span&gt; found&lt;span style=&#34;color:#719e07&#34;&gt;.&lt;/span&gt; Predicate is consistent&lt;span style=&#34;color:#719e07&#34;&gt;.&lt;/span&gt; &lt;span style=&#34;color:#2aa198&#34;&gt;2&lt;/span&gt;ms&lt;span style=&#34;color:#719e07&#34;&gt;.&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#2aa198&#34;&gt;3&lt;/span&gt; commands were executed&lt;span style=&#34;color:#719e07&#34;&gt;.&lt;/span&gt; The results are:
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;   &lt;span style=&#34;color:#586e75&#34;&gt;#1: No counterexample found. SR001_revision_belongs_to_at_most_one_target may be valid.&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;   &lt;span style=&#34;color:#586e75&#34;&gt;#2: Instance found. SR001_revisions_can_be_registered is consistent.&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;   &lt;span style=&#34;color:#586e75&#34;&gt;#3: Instance found. run$3 is consistent.&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;↑反例なし、全要件を満たすインスタンスあり（以下 OK &amp;#x2705; と表現）。&lt;/p&gt;
&lt;h3 id=&#34;sr002-不変性&#34;&gt;SR002: 不変性&lt;/h3&gt;
&lt;blockquote&gt;
&lt;p&gt;SR002: 登録後の版の内容を変更してはならない&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;これは下のように表現する:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#93a1a1;background-color:#002b36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-diff:model.als&#34; data-lang=&#34;diff:model.als&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  year: &lt;span style=&#34;color:#719e07&#34;&gt;one&lt;/span&gt; AnnualAssessment
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; &lt;span style=&#34;color:#719e07&#34;&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; 
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;-&lt;/span&gt;&lt;span style=&#34;color:#268bd2&#34;&gt;sig&lt;/span&gt; AssessmentDataRevision &lt;span style=&#34;color:#719e07&#34;&gt;{}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;-&lt;/span&gt;&lt;span style=&#34;color:#268bd2&#34;&gt;sig&lt;/span&gt; ParameterSetRevision &lt;span style=&#34;color:#719e07&#34;&gt;{}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;+&lt;/span&gt;&lt;span style=&#34;color:#268bd2&#34;&gt;sig&lt;/span&gt; AssessmentData &lt;span style=&#34;color:#719e07&#34;&gt;{}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;+&lt;/span&gt;&lt;span style=&#34;color:#268bd2&#34;&gt;sig&lt;/span&gt; ParameterSet &lt;span style=&#34;color:#719e07&#34;&gt;{}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;+&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;+&lt;/span&gt;&lt;span style=&#34;color:#268bd2&#34;&gt;sig&lt;/span&gt; RevisionId &lt;span style=&#34;color:#719e07&#34;&gt;{}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;+&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;+&lt;/span&gt;&lt;span style=&#34;color:#268bd2&#34;&gt;sig&lt;/span&gt; AssessmentDataRevision &lt;span style=&#34;color:#719e07&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;+&lt;/span&gt;    id: &lt;span style=&#34;color:#719e07&#34;&gt;one&lt;/span&gt; RevisionId,
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;+&lt;/span&gt;    assessmentData: &lt;span style=&#34;color:#719e07&#34;&gt;one&lt;/span&gt; AssessmentData
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;+}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;+&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;+&lt;/span&gt;&lt;span style=&#34;color:#268bd2&#34;&gt;sig&lt;/span&gt; ParameterSetRevision &lt;span style=&#34;color:#719e07&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;+&lt;/span&gt;    id: &lt;span style=&#34;color:#719e07&#34;&gt;one&lt;/span&gt; RevisionId,
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;+&lt;/span&gt;    parameterSet: &lt;span style=&#34;color:#719e07&#34;&gt;one&lt;/span&gt; ParameterSet
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;+}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;+&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;+&lt;/span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;fact&lt;/span&gt; revisionIdUnique &lt;span style=&#34;color:#719e07&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;+&lt;/span&gt;	&lt;span style=&#34;color:#719e07&#34;&gt;all&lt;/span&gt; r1, r2: AssessmentDataRevision &lt;span style=&#34;color:#719e07&#34;&gt;|&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;+&lt;/span&gt;		r1&lt;span style=&#34;color:#719e07&#34;&gt;.&lt;/span&gt;id &lt;span style=&#34;color:#719e07&#34;&gt;=&lt;/span&gt; r2&lt;span style=&#34;color:#719e07&#34;&gt;.&lt;/span&gt;id &lt;span style=&#34;color:#719e07&#34;&gt;implies&lt;/span&gt; r1 &lt;span style=&#34;color:#719e07&#34;&gt;=&lt;/span&gt; r2
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;+&lt;/span&gt;	&lt;span style=&#34;color:#719e07&#34;&gt;all&lt;/span&gt; r1, r2: ParameterSetRevision &lt;span style=&#34;color:#719e07&#34;&gt;|&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;+&lt;/span&gt;		r1&lt;span style=&#34;color:#719e07&#34;&gt;.&lt;/span&gt;id &lt;span style=&#34;color:#719e07&#34;&gt;=&lt;/span&gt; r2&lt;span style=&#34;color:#719e07&#34;&gt;.&lt;/span&gt;id &lt;span style=&#34;color:#719e07&#34;&gt;implies&lt;/span&gt; r1 &lt;span style=&#34;color:#719e07&#34;&gt;=&lt;/span&gt; r2
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;+}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; 
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; &lt;span style=&#34;color:#586e75&#34;&gt;/*  ============================================================
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#586e75&#34;&gt;     3. State
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#586e75&#34;&gt;@@ -96,6 +115,28 @@ pred SR001_revisions_can_be_registered {
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#586e75&#34;&gt; 
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#586e75&#34;&gt; run SR001_revisions_can_be_registered for 2 but 1 AssessmentTarget, 1..3 steps
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#586e75&#34;&gt; 
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#586e75&#34;&gt;+// SR002: The contents of a revision should not be modified after registration.
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#586e75&#34;&gt;+// (Automatically satisfied by definition)
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#586e75&#34;&gt;+
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#586e75&#34;&gt;+pred SR002_registered_revision_contents_remain_available {
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#586e75&#34;&gt;+	eventually (some at: AssessmentTarget,
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#586e75&#34;&gt;+		adr: AssessmentDataRevision, psr: ParameterSetRevision,
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#586e75&#34;&gt;+		data: AssessmentData, params: ParameterSet |
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#586e75&#34;&gt;+		Registry.assessmentData[at] = adr
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#586e75&#34;&gt;+		and adr.assessmentData = data
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#586e75&#34;&gt;+		and Registry.parameterSet[at] = psr
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#586e75&#34;&gt;+		and psr.parameterSet = params
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#586e75&#34;&gt;+		and after (
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#586e75&#34;&gt;+			Registry.assessmentData[at] = adr
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#586e75&#34;&gt;+			and adr.assessmentData = data
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#586e75&#34;&gt;+			and Registry.parameterSet[at] = psr
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#586e75&#34;&gt;+			and psr.parameterSet = params
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#586e75&#34;&gt;+		))
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#586e75&#34;&gt;+}
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#586e75&#34;&gt;+
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#586e75&#34;&gt;+run SR002_registered_revision_contents_remain_available
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#586e75&#34;&gt;+	for 2 but 1 AssessmentTarget, 1..4 steps
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#586e75&#34;&gt;+
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#586e75&#34;&gt; /*  ============================================================
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#586e75&#34;&gt;     6. Sanity
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#586e75&#34;&gt;     ============================================================ */&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;↑各Revisionに、非&lt;code&gt;var&lt;/code&gt;のフィールドとして &lt;code&gt;one AssessmentData&lt;/code&gt; と &lt;code&gt;one ParameterSet&lt;/code&gt; を定義することによって保証する（保証といっても実装時の契約ではあるが）。&lt;/p&gt;
&lt;p&gt;assertは追加していないが、この変更によって不整合が出ていないかをExecute Allで確認する:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#93a1a1;background-color:#002b36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-fallback&#34; data-lang=&#34;fallback&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;4 commands were executed. The results are:
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;   #1: No counterexample found. SR001_revision_belongs_to_at_most_one_target may be valid.
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;   #2: Instance found. SR001_revisions_can_be_registered is consistent.
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;   #3: Instance found. SR002_registered_revision_contents_remain_available is consistent.
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;   #4: Instance found. run$4 is consistent.
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;OK &amp;#x2705;&lt;/p&gt;
&lt;p&gt;こちらは全体のsanity check:
&lt;figure&gt;&lt;img src=&#34;https://rindrics.com/images/2026-07-29-data/sr002.webp&#34;
    alt=&#34;現時点のsanity checkを持たすモデル&#34;&gt;&lt;figcaption&gt;
      &lt;p&gt;現時点のsanity checkを持たすモデル&lt;/p&gt;
    &lt;/figcaption&gt;
&lt;/figure&gt;

↑&lt;code&gt;AssessmentDataRevision&lt;/code&gt; と &lt;code&gt;ParameterSetRevision&lt;/code&gt; が導入されたことで、モデルの構造が変わったのがわかる（スペース的に辛いのでノード数を減らしている）。&lt;/p&gt;
&lt;p&gt;また、SR002の正常ケースの例をひとつ見てみたいので、明示的に&lt;code&gt;egistered_revision_contents_remain_available&lt;/code&gt;という&lt;code&gt;run&lt;/code&gt;も追加した:
&lt;figure&gt;&lt;img src=&#34;https://rindrics.com/images/2026-07-29-data/sr002-run.webp&#34;
    alt=&#34;SR002を満たすケースの一例&#34;&gt;&lt;figcaption&gt;
      &lt;p&gt;SR002を満たすケースの一例&lt;/p&gt;
    &lt;/figcaption&gt;
&lt;/figure&gt;

&amp;hellip;いや待て。
あるAssessmentDataRevisonと、あるParameterSetRevisionが同じRevisionIdを持ちうることになっているのか？
それは意図と違う。&lt;/p&gt;
&lt;p&gt;確かにちゃんとモデリングできていなかった:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#93a1a1;background-color:#002b36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-diff:model.als&#34; data-lang=&#34;diff:model.als&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; &lt;span style=&#34;color:#268bd2&#34;&gt;sig&lt;/span&gt; AssessmentData &lt;span style=&#34;color:#719e07&#34;&gt;{}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; &lt;span style=&#34;color:#268bd2&#34;&gt;sig&lt;/span&gt; ParameterSet &lt;span style=&#34;color:#719e07&#34;&gt;{}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; 
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;-&lt;/span&gt;&lt;span style=&#34;color:#268bd2&#34;&gt;sig&lt;/span&gt; RevisionId &lt;span style=&#34;color:#719e07&#34;&gt;{}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;+&lt;/span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;abstract&lt;/span&gt; &lt;span style=&#34;color:#268bd2&#34;&gt;sig&lt;/span&gt; RevisionId &lt;span style=&#34;color:#719e07&#34;&gt;{}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;+&lt;/span&gt;&lt;span style=&#34;color:#268bd2&#34;&gt;sig&lt;/span&gt; AssessmentDataRevisionId, ParameterSetRevisionId &lt;span style=&#34;color:#719e07&#34;&gt;extends&lt;/span&gt; RevisionId &lt;span style=&#34;color:#719e07&#34;&gt;{}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; 
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; &lt;span style=&#34;color:#268bd2&#34;&gt;sig&lt;/span&gt; AssessmentDataRevision &lt;span style=&#34;color:#719e07&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;-&lt;/span&gt;    id: &lt;span style=&#34;color:#719e07&#34;&gt;one&lt;/span&gt; RevisionId,
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;+&lt;/span&gt;    id: &lt;span style=&#34;color:#719e07&#34;&gt;one&lt;/span&gt; AssessmentDataRevisionId,
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;     assessmentData: &lt;span style=&#34;color:#719e07&#34;&gt;one&lt;/span&gt; AssessmentData
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; &lt;span style=&#34;color:#719e07&#34;&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; 
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; &lt;span style=&#34;color:#268bd2&#34;&gt;sig&lt;/span&gt; ParameterSetRevision &lt;span style=&#34;color:#719e07&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;-&lt;/span&gt;    id: &lt;span style=&#34;color:#719e07&#34;&gt;one&lt;/span&gt; RevisionId,
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;+&lt;/span&gt;    id: &lt;span style=&#34;color:#719e07&#34;&gt;one&lt;/span&gt; ParameterSetRevisionId,
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;     parameterSet: &lt;span style=&#34;color:#719e07&#34;&gt;one&lt;/span&gt; ParameterSet
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; &lt;span style=&#34;color:#719e07&#34;&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;もう一度状態を見てみる:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#93a1a1;background-color:#002b36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-fallback&#34; data-lang=&#34;fallback&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;4 commands were executed. The results are:
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;   #1: No counterexample found. SR001_revision_belongs_to_at_most_one_target may be valid.
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;   #2: Instance found. SR001_revisions_can_be_registered is consistent.
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;   #3: Instance found. SR002_registered_cont_available is consistent.
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;   #4: Instance found. run$4 is consistent.
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;OK &amp;#x2705;&lt;/p&gt;
&lt;p&gt;これで、AssessmentDataRevisonとParameterSetRevisionはそれぞれのRevisionIdを持つようになった。
&lt;figure&gt;&lt;img src=&#34;https://rindrics.com/images/2026-07-29-data/sr002-fixed.webp&#34;
    alt=&#34;SR002を満たすケースの一例（修正版）&#34;&gt;&lt;figcaption&gt;
      &lt;p&gt;SR002を満たすケースの一例（修正版）&lt;/p&gt;
    &lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;Alloyの可視化機能に助けられた。&lt;/p&gt;
&lt;h3 id=&#34;sr003-不変性その2&#34;&gt;SR003: 不変性その2&lt;/h3&gt;
&lt;blockquote&gt;
&lt;p&gt;SR003 : 評価データまたはパラメータセットを修正するときは、既存の版を更新せず、新しい版を作成しなければならない&lt;/p&gt;
&lt;/blockquote&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#93a1a1;background-color:#002b36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-diff:model.als&#34; data-lang=&#34;diff:model.als&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; &lt;span style=&#34;color:#268bd2&#34;&gt;sig&lt;/span&gt; AssessmentDataRevisionId, ParameterSetRevisionId &lt;span style=&#34;color:#719e07&#34;&gt;extends&lt;/span&gt; RevisionId &lt;span style=&#34;color:#719e07&#34;&gt;{}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; 
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;+&lt;/span&gt;&lt;span style=&#34;color:#586e75&#34;&gt;// SR002: Each revision has unique identifier&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; &lt;span style=&#34;color:#268bd2&#34;&gt;sig&lt;/span&gt; AssessmentDataRevision &lt;span style=&#34;color:#719e07&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; id: &lt;span style=&#34;color:#719e07&#34;&gt;one&lt;/span&gt; AssessmentDataRevisionId,
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;-&lt;/span&gt;	assessmentData: &lt;span style=&#34;color:#719e07&#34;&gt;one&lt;/span&gt; AssessmentData
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;+&lt;/span&gt;	assessmentData: &lt;span style=&#34;color:#719e07&#34;&gt;one&lt;/span&gt; AssessmentData,
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;+&lt;/span&gt;	previousSource: &lt;span style=&#34;color:#719e07&#34;&gt;lone&lt;/span&gt; AssessmentDataRevision
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; &lt;span style=&#34;color:#719e07&#34;&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; 
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; &lt;span style=&#34;color:#268bd2&#34;&gt;sig&lt;/span&gt; ParameterSetRevision &lt;span style=&#34;color:#719e07&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  id: &lt;span style=&#34;color:#719e07&#34;&gt;one&lt;/span&gt; ParameterSetRevisionId,
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;-&lt;/span&gt; parameterSet: &lt;span style=&#34;color:#719e07&#34;&gt;one&lt;/span&gt; ParameterSet
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;+&lt;/span&gt;	parameterSet: &lt;span style=&#34;color:#719e07&#34;&gt;one&lt;/span&gt; ParameterSet,
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;+&lt;/span&gt;	previousSource: &lt;span style=&#34;color:#719e07&#34;&gt;lone&lt;/span&gt; ParameterSetRevision
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; &lt;span style=&#34;color:#719e07&#34;&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; 
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;-&lt;/span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;fact&lt;/span&gt; revisionIdUnique &lt;span style=&#34;color:#719e07&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;-&lt;/span&gt;	&lt;span style=&#34;color:#719e07&#34;&gt;all&lt;/span&gt; r1, r2: AssessmentDataRevision &lt;span style=&#34;color:#719e07&#34;&gt;|&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;-&lt;/span&gt;		r1&lt;span style=&#34;color:#719e07&#34;&gt;.&lt;/span&gt;id &lt;span style=&#34;color:#719e07&#34;&gt;=&lt;/span&gt; r2&lt;span style=&#34;color:#719e07&#34;&gt;.&lt;/span&gt;id &lt;span style=&#34;color:#719e07&#34;&gt;implies&lt;/span&gt; r1 &lt;span style=&#34;color:#719e07&#34;&gt;=&lt;/span&gt; r2
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;-&lt;/span&gt;	&lt;span style=&#34;color:#719e07&#34;&gt;all&lt;/span&gt; r1, r2: ParameterSetRevision &lt;span style=&#34;color:#719e07&#34;&gt;|&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;-&lt;/span&gt;		r1&lt;span style=&#34;color:#719e07&#34;&gt;.&lt;/span&gt;id &lt;span style=&#34;color:#719e07&#34;&gt;=&lt;/span&gt; r2&lt;span style=&#34;color:#719e07&#34;&gt;.&lt;/span&gt;id &lt;span style=&#34;color:#719e07&#34;&gt;implies&lt;/span&gt; r1 &lt;span style=&#34;color:#719e07&#34;&gt;=&lt;/span&gt; r2
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;+&lt;/span&gt;&lt;span style=&#34;color:#586e75&#34;&gt;// SR002: Unique identifier enforcement&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;+&lt;/span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;fact&lt;/span&gt; revisionIdUniqueAssessmentData &lt;span style=&#34;color:#719e07&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;+&lt;/span&gt;	&lt;span style=&#34;color:#719e07&#34;&gt;all&lt;/span&gt; adr1, adr2: AssessmentDataRevision &lt;span style=&#34;color:#719e07&#34;&gt;|&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;+&lt;/span&gt;		adr1&lt;span style=&#34;color:#719e07&#34;&gt;.&lt;/span&gt;id &lt;span style=&#34;color:#719e07&#34;&gt;=&lt;/span&gt; adr2&lt;span style=&#34;color:#719e07&#34;&gt;.&lt;/span&gt;id &lt;span style=&#34;color:#719e07&#34;&gt;implies&lt;/span&gt; adr1 &lt;span style=&#34;color:#719e07&#34;&gt;=&lt;/span&gt; adr2
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;+}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;+&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;+&lt;/span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;fact&lt;/span&gt; revisionIdUniqueParameterSet &lt;span style=&#34;color:#719e07&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;+&lt;/span&gt;	&lt;span style=&#34;color:#719e07&#34;&gt;all&lt;/span&gt; psr1, psr2: ParameterSetRevision &lt;span style=&#34;color:#719e07&#34;&gt;|&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;+&lt;/span&gt;		psr1&lt;span style=&#34;color:#719e07&#34;&gt;.&lt;/span&gt;id &lt;span style=&#34;color:#719e07&#34;&gt;=&lt;/span&gt; psr2&lt;span style=&#34;color:#719e07&#34;&gt;.&lt;/span&gt;id &lt;span style=&#34;color:#719e07&#34;&gt;implies&lt;/span&gt; psr1 &lt;span style=&#34;color:#719e07&#34;&gt;=&lt;/span&gt; psr2
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;+}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;+&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;+&lt;/span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;fact&lt;/span&gt; noCyclicSource &lt;span style=&#34;color:#719e07&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;+&lt;/span&gt;	&lt;span style=&#34;color:#719e07&#34;&gt;all&lt;/span&gt; adr: AssessmentDataRevision &lt;span style=&#34;color:#719e07&#34;&gt;|&lt;/span&gt; adr not &lt;span style=&#34;color:#719e07&#34;&gt;in&lt;/span&gt; adr&lt;span style=&#34;color:#719e07&#34;&gt;.^&lt;/span&gt;previousSource
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;+&lt;/span&gt;	&lt;span style=&#34;color:#719e07&#34;&gt;all&lt;/span&gt; psr: ParameterSetRevision &lt;span style=&#34;color:#719e07&#34;&gt;|&lt;/span&gt; psr not &lt;span style=&#34;color:#719e07&#34;&gt;in&lt;/span&gt; psr&lt;span style=&#34;color:#719e07&#34;&gt;.^&lt;/span&gt;previousSource
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; &lt;span style=&#34;color:#719e07&#34;&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; 
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; &lt;span style=&#34;color:#586e75&#34;&gt;/*  ============================================================
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#586e75&#34;&gt;@@ -54,8 +66,8 @@ fact revisionIdUnique {
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#586e75&#34;&gt;     ============================================================ */&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; 
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; &lt;span style=&#34;color:#719e07&#34;&gt;one&lt;/span&gt; &lt;span style=&#34;color:#268bd2&#34;&gt;sig&lt;/span&gt; Registry &lt;span style=&#34;color:#719e07&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;-&lt;/span&gt;	&lt;span style=&#34;color:#719e07&#34;&gt;var&lt;/span&gt; assessmentData: AssessmentTarget &lt;span style=&#34;color:#719e07&#34;&gt;-&amp;gt;&lt;/span&gt; &lt;span style=&#34;color:#719e07&#34;&gt;lone&lt;/span&gt; AssessmentDataRevision,
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;-&lt;/span&gt;	&lt;span style=&#34;color:#719e07&#34;&gt;var&lt;/span&gt; parameterSet: AssessmentTarget &lt;span style=&#34;color:#719e07&#34;&gt;-&amp;gt;&lt;/span&gt; &lt;span style=&#34;color:#719e07&#34;&gt;lone&lt;/span&gt; ParameterSetRevision
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;+&lt;/span&gt;	&lt;span style=&#34;color:#719e07&#34;&gt;var&lt;/span&gt; currentAssessmentData: AssessmentTarget &lt;span style=&#34;color:#719e07&#34;&gt;-&amp;gt;&lt;/span&gt; &lt;span style=&#34;color:#719e07&#34;&gt;lone&lt;/span&gt; AssessmentDataRevision,
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;+&lt;/span&gt;	&lt;span style=&#34;color:#719e07&#34;&gt;var&lt;/span&gt; currentParameterSet: AssessmentTarget &lt;span style=&#34;color:#719e07&#34;&gt;-&amp;gt;&lt;/span&gt; &lt;span style=&#34;color:#719e07&#34;&gt;lone&lt;/span&gt; ParameterSetRevision
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; &lt;span style=&#34;color:#719e07&#34;&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; 
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; &lt;span style=&#34;color:#586e75&#34;&gt;/*  ============================================================
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#586e75&#34;&gt;@@ -63,23 +75,33 @@ one sig Registry {
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#586e75&#34;&gt;     ============================================================ */&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; 
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; &lt;span style=&#34;color:#719e07&#34;&gt;pred&lt;/span&gt; init &lt;span style=&#34;color:#719e07&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;-&lt;/span&gt;	&lt;span style=&#34;color:#719e07&#34;&gt;no&lt;/span&gt; Registry&lt;span style=&#34;color:#719e07&#34;&gt;.&lt;/span&gt;assessmentData
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;-&lt;/span&gt;	&lt;span style=&#34;color:#719e07&#34;&gt;no&lt;/span&gt; Registry&lt;span style=&#34;color:#719e07&#34;&gt;.&lt;/span&gt;parameterSet
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;+&lt;/span&gt;	&lt;span style=&#34;color:#719e07&#34;&gt;no&lt;/span&gt; Registry&lt;span style=&#34;color:#719e07&#34;&gt;.&lt;/span&gt;currentAssessmentData
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;+&lt;/span&gt;	&lt;span style=&#34;color:#719e07&#34;&gt;no&lt;/span&gt; Registry&lt;span style=&#34;color:#719e07&#34;&gt;.&lt;/span&gt;currentParameterSet
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; &lt;span style=&#34;color:#719e07&#34;&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; 
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; &lt;span style=&#34;color:#719e07&#34;&gt;pred&lt;/span&gt; registerAssessmentData&lt;span style=&#34;color:#719e07&#34;&gt;[&lt;/span&gt;at: AssessmentTarget, adr: AssessmentDataRevision&lt;span style=&#34;color:#719e07&#34;&gt;]&lt;/span&gt; &lt;span style=&#34;color:#719e07&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;-&lt;/span&gt;	Registry&lt;span style=&#34;color:#719e07&#34;&gt;.&lt;/span&gt;assessmentData&lt;span style=&#34;color:#719e07&#34;&gt;&amp;#39;&lt;/span&gt; &lt;span style=&#34;color:#719e07&#34;&gt;=&lt;/span&gt; Registry&lt;span style=&#34;color:#719e07&#34;&gt;.&lt;/span&gt;assessmentData &lt;span style=&#34;color:#719e07&#34;&gt;+&lt;/span&gt; at &lt;span style=&#34;color:#719e07&#34;&gt;-&amp;gt;&lt;/span&gt; adr
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;-&lt;/span&gt;	Registry&lt;span style=&#34;color:#719e07&#34;&gt;.&lt;/span&gt;parameterSet&lt;span style=&#34;color:#719e07&#34;&gt;&amp;#39;&lt;/span&gt; &lt;span style=&#34;color:#719e07&#34;&gt;=&lt;/span&gt; Registry&lt;span style=&#34;color:#719e07&#34;&gt;.&lt;/span&gt;parameterSet
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;+&lt;/span&gt;	&lt;span style=&#34;color:#719e07&#34;&gt;(&lt;/span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;no&lt;/span&gt; Registry&lt;span style=&#34;color:#719e07&#34;&gt;.&lt;/span&gt;currentAssessmentData&lt;span style=&#34;color:#719e07&#34;&gt;[&lt;/span&gt;at&lt;span style=&#34;color:#719e07&#34;&gt;]&lt;/span&gt; &lt;span style=&#34;color:#719e07&#34;&gt;and&lt;/span&gt; &lt;span style=&#34;color:#719e07&#34;&gt;no&lt;/span&gt; adr&lt;span style=&#34;color:#719e07&#34;&gt;.&lt;/span&gt;previousSource&lt;span style=&#34;color:#719e07&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;+&lt;/span&gt;	&lt;span style=&#34;color:#719e07&#34;&gt;or&lt;/span&gt; &lt;span style=&#34;color:#719e07&#34;&gt;(&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;+&lt;/span&gt;		&lt;span style=&#34;color:#719e07&#34;&gt;some&lt;/span&gt; Registry&lt;span style=&#34;color:#719e07&#34;&gt;.&lt;/span&gt;currentAssessmentData&lt;span style=&#34;color:#719e07&#34;&gt;[&lt;/span&gt;at&lt;span style=&#34;color:#719e07&#34;&gt;]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;+&lt;/span&gt;		&lt;span style=&#34;color:#719e07&#34;&gt;and&lt;/span&gt; adr&lt;span style=&#34;color:#719e07&#34;&gt;.&lt;/span&gt;previousSource &lt;span style=&#34;color:#719e07&#34;&gt;=&lt;/span&gt; Registry&lt;span style=&#34;color:#719e07&#34;&gt;.&lt;/span&gt;currentAssessmentData&lt;span style=&#34;color:#719e07&#34;&gt;[&lt;/span&gt;at&lt;span style=&#34;color:#719e07&#34;&gt;]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;+&lt;/span&gt;	&lt;span style=&#34;color:#719e07&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;+&lt;/span&gt;	Registry&lt;span style=&#34;color:#719e07&#34;&gt;.&lt;/span&gt;currentAssessmentData&lt;span style=&#34;color:#719e07&#34;&gt;&amp;#39;&lt;/span&gt; &lt;span style=&#34;color:#719e07&#34;&gt;=&lt;/span&gt; Registry&lt;span style=&#34;color:#719e07&#34;&gt;.&lt;/span&gt;currentAssessmentData &lt;span style=&#34;color:#719e07&#34;&gt;++&lt;/span&gt; at &lt;span style=&#34;color:#719e07&#34;&gt;-&amp;gt;&lt;/span&gt; adr
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;+&lt;/span&gt;	Registry&lt;span style=&#34;color:#719e07&#34;&gt;.&lt;/span&gt;currentParameterSet&lt;span style=&#34;color:#719e07&#34;&gt;&amp;#39;&lt;/span&gt; &lt;span style=&#34;color:#719e07&#34;&gt;=&lt;/span&gt; Registry&lt;span style=&#34;color:#719e07&#34;&gt;.&lt;/span&gt;currentParameterSet
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; &lt;span style=&#34;color:#719e07&#34;&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; 
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; &lt;span style=&#34;color:#719e07&#34;&gt;pred&lt;/span&gt; registerParameterSet&lt;span style=&#34;color:#719e07&#34;&gt;[&lt;/span&gt;at: AssessmentTarget, psr: ParameterSetRevision&lt;span style=&#34;color:#719e07&#34;&gt;]&lt;/span&gt; &lt;span style=&#34;color:#719e07&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;-&lt;/span&gt;	Registry&lt;span style=&#34;color:#719e07&#34;&gt;.&lt;/span&gt;assessmentData&lt;span style=&#34;color:#719e07&#34;&gt;&amp;#39;&lt;/span&gt; &lt;span style=&#34;color:#719e07&#34;&gt;=&lt;/span&gt; Registry&lt;span style=&#34;color:#719e07&#34;&gt;.&lt;/span&gt;assessmentData
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;-&lt;/span&gt;	Registry&lt;span style=&#34;color:#719e07&#34;&gt;.&lt;/span&gt;parameterSet&lt;span style=&#34;color:#719e07&#34;&gt;&amp;#39;&lt;/span&gt; &lt;span style=&#34;color:#719e07&#34;&gt;=&lt;/span&gt; Registry&lt;span style=&#34;color:#719e07&#34;&gt;.&lt;/span&gt;parameterSet &lt;span style=&#34;color:#719e07&#34;&gt;+&lt;/span&gt; at &lt;span style=&#34;color:#719e07&#34;&gt;-&amp;gt;&lt;/span&gt; psr
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;+&lt;/span&gt;	&lt;span style=&#34;color:#719e07&#34;&gt;(&lt;/span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;no&lt;/span&gt; Registry&lt;span style=&#34;color:#719e07&#34;&gt;.&lt;/span&gt;currentParameterSet&lt;span style=&#34;color:#719e07&#34;&gt;[&lt;/span&gt;at&lt;span style=&#34;color:#719e07&#34;&gt;]&lt;/span&gt; &lt;span style=&#34;color:#719e07&#34;&gt;and&lt;/span&gt; &lt;span style=&#34;color:#719e07&#34;&gt;no&lt;/span&gt; psr&lt;span style=&#34;color:#719e07&#34;&gt;.&lt;/span&gt;previousSource&lt;span style=&#34;color:#719e07&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;+&lt;/span&gt;	&lt;span style=&#34;color:#719e07&#34;&gt;or&lt;/span&gt; &lt;span style=&#34;color:#719e07&#34;&gt;(&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;+&lt;/span&gt;		&lt;span style=&#34;color:#719e07&#34;&gt;some&lt;/span&gt; Registry&lt;span style=&#34;color:#719e07&#34;&gt;.&lt;/span&gt;currentParameterSet&lt;span style=&#34;color:#719e07&#34;&gt;[&lt;/span&gt;at&lt;span style=&#34;color:#719e07&#34;&gt;]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;+&lt;/span&gt;		&lt;span style=&#34;color:#719e07&#34;&gt;and&lt;/span&gt; psr&lt;span style=&#34;color:#719e07&#34;&gt;.&lt;/span&gt;previousSource &lt;span style=&#34;color:#719e07&#34;&gt;=&lt;/span&gt; Registry&lt;span style=&#34;color:#719e07&#34;&gt;.&lt;/span&gt;currentParameterSet&lt;span style=&#34;color:#719e07&#34;&gt;[&lt;/span&gt;at&lt;span style=&#34;color:#719e07&#34;&gt;]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;+&lt;/span&gt;	&lt;span style=&#34;color:#719e07&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;+&lt;/span&gt;	Registry&lt;span style=&#34;color:#719e07&#34;&gt;.&lt;/span&gt;currentAssessmentData&lt;span style=&#34;color:#719e07&#34;&gt;&amp;#39;&lt;/span&gt; &lt;span style=&#34;color:#719e07&#34;&gt;=&lt;/span&gt; Registry&lt;span style=&#34;color:#719e07&#34;&gt;.&lt;/span&gt;currentAssessmentData
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;+&lt;/span&gt;	Registry&lt;span style=&#34;color:#719e07&#34;&gt;.&lt;/span&gt;currentParameterSet&lt;span style=&#34;color:#719e07&#34;&gt;&amp;#39;&lt;/span&gt; &lt;span style=&#34;color:#719e07&#34;&gt;=&lt;/span&gt; Registry&lt;span style=&#34;color:#719e07&#34;&gt;.&lt;/span&gt;currentParameterSet &lt;span style=&#34;color:#719e07&#34;&gt;++&lt;/span&gt; at &lt;span style=&#34;color:#719e07&#34;&gt;-&amp;gt;&lt;/span&gt; psr
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; &lt;span style=&#34;color:#719e07&#34;&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; 
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; &lt;span style=&#34;color:#719e07&#34;&gt;pred&lt;/span&gt; stutter &lt;span style=&#34;color:#719e07&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;-&lt;/span&gt;	Registry&lt;span style=&#34;color:#719e07&#34;&gt;.&lt;/span&gt;assessmentData&lt;span style=&#34;color:#719e07&#34;&gt;&amp;#39;&lt;/span&gt; &lt;span style=&#34;color:#719e07&#34;&gt;=&lt;/span&gt; Registry&lt;span style=&#34;color:#719e07&#34;&gt;.&lt;/span&gt;assessmentData
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;-&lt;/span&gt;	Registry&lt;span style=&#34;color:#719e07&#34;&gt;.&lt;/span&gt;parameterSet&lt;span style=&#34;color:#719e07&#34;&gt;&amp;#39;&lt;/span&gt; &lt;span style=&#34;color:#719e07&#34;&gt;=&lt;/span&gt; Registry&lt;span style=&#34;color:#719e07&#34;&gt;.&lt;/span&gt;parameterSet
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;+&lt;/span&gt;	Registry&lt;span style=&#34;color:#719e07&#34;&gt;.&lt;/span&gt;currentAssessmentData&lt;span style=&#34;color:#719e07&#34;&gt;&amp;#39;&lt;/span&gt; &lt;span style=&#34;color:#719e07&#34;&gt;=&lt;/span&gt; Registry&lt;span style=&#34;color:#719e07&#34;&gt;.&lt;/span&gt;currentAssessmentData
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;+&lt;/span&gt;	Registry&lt;span style=&#34;color:#719e07&#34;&gt;.&lt;/span&gt;currentParameterSet&lt;span style=&#34;color:#719e07&#34;&gt;&amp;#39;&lt;/span&gt; &lt;span style=&#34;color:#719e07&#34;&gt;=&lt;/span&gt; Registry&lt;span style=&#34;color:#719e07&#34;&gt;.&lt;/span&gt;currentParameterSet
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; &lt;span style=&#34;color:#719e07&#34;&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; 
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; &lt;span style=&#34;color:#719e07&#34;&gt;pred&lt;/span&gt; step &lt;span style=&#34;color:#719e07&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;@@ &lt;span style=&#34;color:#719e07&#34;&gt;-&lt;/span&gt;&lt;span style=&#34;color:#2aa198&#34;&gt;97&lt;/span&gt;,&lt;span style=&#34;color:#2aa198&#34;&gt;40&lt;/span&gt; &lt;span style=&#34;color:#719e07&#34;&gt;+&lt;/span&gt;&lt;span style=&#34;color:#2aa198&#34;&gt;119&lt;/span&gt;,&lt;span style=&#34;color:#2aa198&#34;&gt;32&lt;/span&gt; @@ &lt;span style=&#34;color:#719e07&#34;&gt;fact&lt;/span&gt; traces &lt;span style=&#34;color:#719e07&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;     &lt;span style=&#34;color:#2aa198&#34;&gt;5&lt;/span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;.&lt;/span&gt; Properties
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;     &lt;span style=&#34;color:#719e07&#34;&gt;============================================================&lt;/span&gt; &lt;span style=&#34;color:#719e07&#34;&gt;*/&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; 
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;-&lt;/span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;assert&lt;/span&gt; SR001_revision_belongs_to_at_most_one_target &lt;span style=&#34;color:#719e07&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;-&lt;/span&gt;    &lt;span style=&#34;color:#719e07&#34;&gt;all&lt;/span&gt; adr: AssessmentDataRevision &lt;span style=&#34;color:#719e07&#34;&gt;|&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;-&lt;/span&gt;        &lt;span style=&#34;color:#719e07&#34;&gt;lone&lt;/span&gt; Registry&lt;span style=&#34;color:#719e07&#34;&gt;.&lt;/span&gt;assessmentData&lt;span style=&#34;color:#719e07&#34;&gt;.&lt;/span&gt;adr
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;-&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;-&lt;/span&gt;    &lt;span style=&#34;color:#719e07&#34;&gt;all&lt;/span&gt; psr: ParameterSetRevision &lt;span style=&#34;color:#719e07&#34;&gt;|&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;-&lt;/span&gt;        &lt;span style=&#34;color:#719e07&#34;&gt;lone&lt;/span&gt; Registry&lt;span style=&#34;color:#719e07&#34;&gt;.&lt;/span&gt;parameterSet&lt;span style=&#34;color:#719e07&#34;&gt;.&lt;/span&gt;psr
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;-}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;-&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;-&lt;/span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;check&lt;/span&gt; SR001_revision_belongs_to_at_most_one_target &lt;span style=&#34;color:#719e07&#34;&gt;for&lt;/span&gt; &lt;span style=&#34;color:#2aa198&#34;&gt;2&lt;/span&gt; &lt;span style=&#34;color:#719e07&#34;&gt;but&lt;/span&gt; &lt;span style=&#34;color:#2aa198&#34;&gt;1&lt;/span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;..&lt;/span&gt;&lt;span style=&#34;color:#2aa198&#34;&gt;3&lt;/span&gt; &lt;span style=&#34;color:#719e07&#34;&gt;steps&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;+&lt;/span&gt;&lt;span style=&#34;color:#586e75&#34;&gt;// SR001: At most one current version per AssessmentTarget&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;+&lt;/span&gt;&lt;span style=&#34;color:#586e75&#34;&gt;// (Automatically satisfied by Registry definition: lone AssessmentDataRevision)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; 
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; &lt;span style=&#34;color:#719e07&#34;&gt;pred&lt;/span&gt; SR001_revisions_can_be_registered &lt;span style=&#34;color:#719e07&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; 	&lt;span style=&#34;color:#719e07&#34;&gt;eventually&lt;/span&gt; &lt;span style=&#34;color:#719e07&#34;&gt;(&lt;/span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;some&lt;/span&gt; at: AssessmentTarget, adr: AssessmentDataRevision,
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; 		psr: ParameterSetRevision &lt;span style=&#34;color:#719e07&#34;&gt;|&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;-&lt;/span&gt;		Registry&lt;span style=&#34;color:#719e07&#34;&gt;.&lt;/span&gt;assessmentData&lt;span style=&#34;color:#719e07&#34;&gt;[&lt;/span&gt;at&lt;span style=&#34;color:#719e07&#34;&gt;]&lt;/span&gt; &lt;span style=&#34;color:#719e07&#34;&gt;=&lt;/span&gt; adr
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;-&lt;/span&gt;		&lt;span style=&#34;color:#719e07&#34;&gt;and&lt;/span&gt; Registry&lt;span style=&#34;color:#719e07&#34;&gt;.&lt;/span&gt;parameterSet&lt;span style=&#34;color:#719e07&#34;&gt;[&lt;/span&gt;at&lt;span style=&#34;color:#719e07&#34;&gt;]&lt;/span&gt; &lt;span style=&#34;color:#719e07&#34;&gt;=&lt;/span&gt; psr&lt;span style=&#34;color:#719e07&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;+&lt;/span&gt;		Registry&lt;span style=&#34;color:#719e07&#34;&gt;.&lt;/span&gt;currentAssessmentData&lt;span style=&#34;color:#719e07&#34;&gt;[&lt;/span&gt;at&lt;span style=&#34;color:#719e07&#34;&gt;]&lt;/span&gt; &lt;span style=&#34;color:#719e07&#34;&gt;=&lt;/span&gt; adr
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;+&lt;/span&gt;		&lt;span style=&#34;color:#719e07&#34;&gt;and&lt;/span&gt; Registry&lt;span style=&#34;color:#719e07&#34;&gt;.&lt;/span&gt;currentParameterSet&lt;span style=&#34;color:#719e07&#34;&gt;[&lt;/span&gt;at&lt;span style=&#34;color:#719e07&#34;&gt;]&lt;/span&gt; &lt;span style=&#34;color:#719e07&#34;&gt;=&lt;/span&gt; psr&lt;span style=&#34;color:#719e07&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; &lt;span style=&#34;color:#719e07&#34;&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; 
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; &lt;span style=&#34;color:#719e07&#34;&gt;run&lt;/span&gt; SR001_revisions_can_be_registered &lt;span style=&#34;color:#719e07&#34;&gt;for&lt;/span&gt; &lt;span style=&#34;color:#2aa198&#34;&gt;2&lt;/span&gt; &lt;span style=&#34;color:#719e07&#34;&gt;but&lt;/span&gt; &lt;span style=&#34;color:#2aa198&#34;&gt;1&lt;/span&gt; AssessmentTarget, &lt;span style=&#34;color:#2aa198&#34;&gt;1&lt;/span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;..&lt;/span&gt;&lt;span style=&#34;color:#2aa198&#34;&gt;3&lt;/span&gt; &lt;span style=&#34;color:#719e07&#34;&gt;steps&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; 
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; &lt;span style=&#34;color:#586e75&#34;&gt;// SR002: The contents of a revision should not be modified after registration.&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; &lt;span style=&#34;color:#586e75&#34;&gt;// (Automatically satisfied by definition)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;-&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; &lt;span style=&#34;color:#719e07&#34;&gt;pred&lt;/span&gt; SR002_registered_cont_available &lt;span style=&#34;color:#719e07&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; 	&lt;span style=&#34;color:#719e07&#34;&gt;eventually&lt;/span&gt; &lt;span style=&#34;color:#719e07&#34;&gt;(&lt;/span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;some&lt;/span&gt; at: AssessmentTarget,
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; 		adr: AssessmentDataRevision, psr: ParameterSetRevision,
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; 		data: AssessmentData, params: ParameterSet &lt;span style=&#34;color:#719e07&#34;&gt;|&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;-&lt;/span&gt;		Registry&lt;span style=&#34;color:#719e07&#34;&gt;.&lt;/span&gt;assessmentData&lt;span style=&#34;color:#719e07&#34;&gt;[&lt;/span&gt;at&lt;span style=&#34;color:#719e07&#34;&gt;]&lt;/span&gt; &lt;span style=&#34;color:#719e07&#34;&gt;=&lt;/span&gt; adr
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;+&lt;/span&gt;		Registry&lt;span style=&#34;color:#719e07&#34;&gt;.&lt;/span&gt;currentAssessmentData&lt;span style=&#34;color:#719e07&#34;&gt;[&lt;/span&gt;at&lt;span style=&#34;color:#719e07&#34;&gt;]&lt;/span&gt; &lt;span style=&#34;color:#719e07&#34;&gt;=&lt;/span&gt; adr
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; 		&lt;span style=&#34;color:#719e07&#34;&gt;and&lt;/span&gt; adr&lt;span style=&#34;color:#719e07&#34;&gt;.&lt;/span&gt;assessmentData &lt;span style=&#34;color:#719e07&#34;&gt;=&lt;/span&gt; data
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;-&lt;/span&gt;		&lt;span style=&#34;color:#719e07&#34;&gt;and&lt;/span&gt; Registry&lt;span style=&#34;color:#719e07&#34;&gt;.&lt;/span&gt;parameterSet&lt;span style=&#34;color:#719e07&#34;&gt;[&lt;/span&gt;at&lt;span style=&#34;color:#719e07&#34;&gt;]&lt;/span&gt; &lt;span style=&#34;color:#719e07&#34;&gt;=&lt;/span&gt; psr
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;+&lt;/span&gt;		&lt;span style=&#34;color:#719e07&#34;&gt;and&lt;/span&gt; Registry&lt;span style=&#34;color:#719e07&#34;&gt;.&lt;/span&gt;currentParameterSet&lt;span style=&#34;color:#719e07&#34;&gt;[&lt;/span&gt;at&lt;span style=&#34;color:#719e07&#34;&gt;]&lt;/span&gt; &lt;span style=&#34;color:#719e07&#34;&gt;=&lt;/span&gt; psr
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; 		&lt;span style=&#34;color:#719e07&#34;&gt;and&lt;/span&gt; psr&lt;span style=&#34;color:#719e07&#34;&gt;.&lt;/span&gt;parameterSet &lt;span style=&#34;color:#719e07&#34;&gt;=&lt;/span&gt; params
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; 		&lt;span style=&#34;color:#719e07&#34;&gt;and&lt;/span&gt; &lt;span style=&#34;color:#719e07&#34;&gt;after&lt;/span&gt; &lt;span style=&#34;color:#719e07&#34;&gt;(&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;-&lt;/span&gt;			Registry&lt;span style=&#34;color:#719e07&#34;&gt;.&lt;/span&gt;assessmentData&lt;span style=&#34;color:#719e07&#34;&gt;[&lt;/span&gt;at&lt;span style=&#34;color:#719e07&#34;&gt;]&lt;/span&gt; &lt;span style=&#34;color:#719e07&#34;&gt;=&lt;/span&gt; adr
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;+&lt;/span&gt;			Registry&lt;span style=&#34;color:#719e07&#34;&gt;.&lt;/span&gt;currentAssessmentData&lt;span style=&#34;color:#719e07&#34;&gt;[&lt;/span&gt;at&lt;span style=&#34;color:#719e07&#34;&gt;]&lt;/span&gt; &lt;span style=&#34;color:#719e07&#34;&gt;=&lt;/span&gt; adr
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; 			&lt;span style=&#34;color:#719e07&#34;&gt;and&lt;/span&gt; adr&lt;span style=&#34;color:#719e07&#34;&gt;.&lt;/span&gt;assessmentData &lt;span style=&#34;color:#719e07&#34;&gt;=&lt;/span&gt; data
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;-&lt;/span&gt;			&lt;span style=&#34;color:#719e07&#34;&gt;and&lt;/span&gt; Registry&lt;span style=&#34;color:#719e07&#34;&gt;.&lt;/span&gt;parameterSet&lt;span style=&#34;color:#719e07&#34;&gt;[&lt;/span&gt;at&lt;span style=&#34;color:#719e07&#34;&gt;]&lt;/span&gt; &lt;span style=&#34;color:#719e07&#34;&gt;=&lt;/span&gt; psr
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;+&lt;/span&gt;			&lt;span style=&#34;color:#719e07&#34;&gt;and&lt;/span&gt; Registry&lt;span style=&#34;color:#719e07&#34;&gt;.&lt;/span&gt;currentParameterSet&lt;span style=&#34;color:#719e07&#34;&gt;[&lt;/span&gt;at&lt;span style=&#34;color:#719e07&#34;&gt;]&lt;/span&gt; &lt;span style=&#34;color:#719e07&#34;&gt;=&lt;/span&gt; psr
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; 			&lt;span style=&#34;color:#719e07&#34;&gt;and&lt;/span&gt; psr&lt;span style=&#34;color:#719e07&#34;&gt;.&lt;/span&gt;parameterSet &lt;span style=&#34;color:#719e07&#34;&gt;=&lt;/span&gt; params
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; 		&lt;span style=&#34;color:#719e07&#34;&gt;))&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; &lt;span style=&#34;color:#719e07&#34;&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;@@ &lt;span style=&#34;color:#719e07&#34;&gt;-&lt;/span&gt;&lt;span style=&#34;color:#2aa198&#34;&gt;138&lt;/span&gt;,&lt;span style=&#34;color:#2aa198&#34;&gt;6&lt;/span&gt; &lt;span style=&#34;color:#719e07&#34;&gt;+&lt;/span&gt;&lt;span style=&#34;color:#2aa198&#34;&gt;152&lt;/span&gt;,&lt;span style=&#34;color:#2aa198&#34;&gt;46&lt;/span&gt; @@ &lt;span style=&#34;color:#719e07&#34;&gt;pred&lt;/span&gt; SR002_registered_cont_available &lt;span style=&#34;color:#719e07&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; &lt;span style=&#34;color:#719e07&#34;&gt;run&lt;/span&gt; SR002_registered_cont_available
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; 	&lt;span style=&#34;color:#719e07&#34;&gt;for&lt;/span&gt; &lt;span style=&#34;color:#2aa198&#34;&gt;2&lt;/span&gt; &lt;span style=&#34;color:#719e07&#34;&gt;but&lt;/span&gt; &lt;span style=&#34;color:#2aa198&#34;&gt;1&lt;/span&gt; AssessmentTarget, &lt;span style=&#34;color:#2aa198&#34;&gt;1&lt;/span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;..&lt;/span&gt;&lt;span style=&#34;color:#2aa198&#34;&gt;4&lt;/span&gt; &lt;span style=&#34;color:#719e07&#34;&gt;steps&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; 
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;+&lt;/span&gt;&lt;span style=&#34;color:#586e75&#34;&gt;// SR003: When modifying, a new version must be created instead of updating the existing version&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;+&lt;/span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;assert&lt;/span&gt; SR003_new_version_on_change &lt;span style=&#34;color:#719e07&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;+&lt;/span&gt;	&lt;span style=&#34;color:#719e07&#34;&gt;always&lt;/span&gt; &lt;span style=&#34;color:#719e07&#34;&gt;(&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;+&lt;/span&gt;		&lt;span style=&#34;color:#719e07&#34;&gt;(&lt;/span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;all&lt;/span&gt; at: AssessmentTarget &lt;span style=&#34;color:#719e07&#34;&gt;|&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;+&lt;/span&gt;			&lt;span style=&#34;color:#719e07&#34;&gt;(&lt;/span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;some&lt;/span&gt; Registry&lt;span style=&#34;color:#719e07&#34;&gt;.&lt;/span&gt;currentAssessmentData&lt;span style=&#34;color:#719e07&#34;&gt;[&lt;/span&gt;at&lt;span style=&#34;color:#719e07&#34;&gt;]&lt;/span&gt; &lt;span style=&#34;color:#719e07&#34;&gt;and&lt;/span&gt; &lt;span style=&#34;color:#719e07&#34;&gt;some&lt;/span&gt; Registry&lt;span style=&#34;color:#719e07&#34;&gt;.&lt;/span&gt;currentAssessmentData&lt;span style=&#34;color:#719e07&#34;&gt;&amp;#39;[&lt;/span&gt;at&lt;span style=&#34;color:#719e07&#34;&gt;])&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;+&lt;/span&gt;			&lt;span style=&#34;color:#719e07&#34;&gt;implies&lt;/span&gt; Registry&lt;span style=&#34;color:#719e07&#34;&gt;.&lt;/span&gt;currentAssessmentData&lt;span style=&#34;color:#719e07&#34;&gt;[&lt;/span&gt;at&lt;span style=&#34;color:#719e07&#34;&gt;]&lt;/span&gt; &lt;span style=&#34;color:#719e07&#34;&gt;=&lt;/span&gt; Registry&lt;span style=&#34;color:#719e07&#34;&gt;.&lt;/span&gt;currentAssessmentData&lt;span style=&#34;color:#719e07&#34;&gt;&amp;#39;[&lt;/span&gt;at&lt;span style=&#34;color:#719e07&#34;&gt;]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;+&lt;/span&gt;				&lt;span style=&#34;color:#719e07&#34;&gt;or&lt;/span&gt; Registry&lt;span style=&#34;color:#719e07&#34;&gt;.&lt;/span&gt;currentAssessmentData&lt;span style=&#34;color:#719e07&#34;&gt;&amp;#39;[&lt;/span&gt;at&lt;span style=&#34;color:#719e07&#34;&gt;]&lt;/span&gt; &lt;span style=&#34;color:#719e07&#34;&gt;in&lt;/span&gt; &lt;span style=&#34;color:#719e07&#34;&gt;(&lt;/span&gt;Registry&lt;span style=&#34;color:#719e07&#34;&gt;.&lt;/span&gt;currentAssessmentData&lt;span style=&#34;color:#719e07&#34;&gt;[&lt;/span&gt;at&lt;span style=&#34;color:#719e07&#34;&gt;]).~&lt;/span&gt;previousSource&lt;span style=&#34;color:#719e07&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;+&lt;/span&gt;		&lt;span style=&#34;color:#719e07&#34;&gt;and&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;+&lt;/span&gt;		&lt;span style=&#34;color:#719e07&#34;&gt;(&lt;/span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;all&lt;/span&gt; at: AssessmentTarget &lt;span style=&#34;color:#719e07&#34;&gt;|&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;+&lt;/span&gt;			&lt;span style=&#34;color:#719e07&#34;&gt;(&lt;/span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;some&lt;/span&gt; Registry&lt;span style=&#34;color:#719e07&#34;&gt;.&lt;/span&gt;currentParameterSet&lt;span style=&#34;color:#719e07&#34;&gt;[&lt;/span&gt;at&lt;span style=&#34;color:#719e07&#34;&gt;]&lt;/span&gt; &lt;span style=&#34;color:#719e07&#34;&gt;and&lt;/span&gt; &lt;span style=&#34;color:#719e07&#34;&gt;some&lt;/span&gt; Registry&lt;span style=&#34;color:#719e07&#34;&gt;.&lt;/span&gt;currentParameterSet&lt;span style=&#34;color:#719e07&#34;&gt;&amp;#39;[&lt;/span&gt;at&lt;span style=&#34;color:#719e07&#34;&gt;])&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;+&lt;/span&gt;			&lt;span style=&#34;color:#719e07&#34;&gt;implies&lt;/span&gt; Registry&lt;span style=&#34;color:#719e07&#34;&gt;.&lt;/span&gt;currentParameterSet&lt;span style=&#34;color:#719e07&#34;&gt;[&lt;/span&gt;at&lt;span style=&#34;color:#719e07&#34;&gt;]&lt;/span&gt; &lt;span style=&#34;color:#719e07&#34;&gt;=&lt;/span&gt; Registry&lt;span style=&#34;color:#719e07&#34;&gt;.&lt;/span&gt;currentParameterSet&lt;span style=&#34;color:#719e07&#34;&gt;&amp;#39;[&lt;/span&gt;at&lt;span style=&#34;color:#719e07&#34;&gt;]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;+&lt;/span&gt;				&lt;span style=&#34;color:#719e07&#34;&gt;or&lt;/span&gt; Registry&lt;span style=&#34;color:#719e07&#34;&gt;.&lt;/span&gt;currentParameterSet&lt;span style=&#34;color:#719e07&#34;&gt;&amp;#39;[&lt;/span&gt;at&lt;span style=&#34;color:#719e07&#34;&gt;]&lt;/span&gt; &lt;span style=&#34;color:#719e07&#34;&gt;in&lt;/span&gt; &lt;span style=&#34;color:#719e07&#34;&gt;(&lt;/span&gt;Registry&lt;span style=&#34;color:#719e07&#34;&gt;.&lt;/span&gt;currentParameterSet&lt;span style=&#34;color:#719e07&#34;&gt;[&lt;/span&gt;at&lt;span style=&#34;color:#719e07&#34;&gt;]).~&lt;/span&gt;previousSource&lt;span style=&#34;color:#719e07&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;+&lt;/span&gt;	&lt;span style=&#34;color:#719e07&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;+}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;+&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;+&lt;/span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;check&lt;/span&gt; SR003_new_version_on_change &lt;span style=&#34;color:#719e07&#34;&gt;for&lt;/span&gt; &lt;span style=&#34;color:#2aa198&#34;&gt;2&lt;/span&gt; &lt;span style=&#34;color:#719e07&#34;&gt;but&lt;/span&gt; &lt;span style=&#34;color:#2aa198&#34;&gt;1&lt;/span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;..&lt;/span&gt;&lt;span style=&#34;color:#2aa198&#34;&gt;3&lt;/span&gt; &lt;span style=&#34;color:#719e07&#34;&gt;steps&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;+&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;+&lt;/span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;pred&lt;/span&gt; SR003_assessment_data_can_be_changed_with_new_revision &lt;span style=&#34;color:#719e07&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;+&lt;/span&gt;	&lt;span style=&#34;color:#719e07&#34;&gt;eventually&lt;/span&gt; &lt;span style=&#34;color:#719e07&#34;&gt;(&lt;/span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;some&lt;/span&gt; at: AssessmentTarget,
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;+&lt;/span&gt;		source, newRevision: AssessmentDataRevision &lt;span style=&#34;color:#719e07&#34;&gt;|&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;+&lt;/span&gt;		Registry&lt;span style=&#34;color:#719e07&#34;&gt;.&lt;/span&gt;currentAssessmentData&lt;span style=&#34;color:#719e07&#34;&gt;[&lt;/span&gt;at&lt;span style=&#34;color:#719e07&#34;&gt;]&lt;/span&gt; &lt;span style=&#34;color:#719e07&#34;&gt;=&lt;/span&gt; source
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;+&lt;/span&gt;		&lt;span style=&#34;color:#719e07&#34;&gt;and&lt;/span&gt; source&lt;span style=&#34;color:#719e07&#34;&gt;.&lt;/span&gt;assessmentData &lt;span style=&#34;color:#719e07&#34;&gt;!=&lt;/span&gt; newRevision&lt;span style=&#34;color:#719e07&#34;&gt;.&lt;/span&gt;assessmentData
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;+&lt;/span&gt;		&lt;span style=&#34;color:#719e07&#34;&gt;and&lt;/span&gt; newRevision&lt;span style=&#34;color:#719e07&#34;&gt;.&lt;/span&gt;previousSource &lt;span style=&#34;color:#719e07&#34;&gt;=&lt;/span&gt; source
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;+&lt;/span&gt;		&lt;span style=&#34;color:#719e07&#34;&gt;and&lt;/span&gt; registerAssessmentData&lt;span style=&#34;color:#719e07&#34;&gt;[&lt;/span&gt;at, newRevision&lt;span style=&#34;color:#719e07&#34;&gt;])&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;+}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;+&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;+&lt;/span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;pred&lt;/span&gt; SR003_parameter_set_can_be_changed_with_new_revision &lt;span style=&#34;color:#719e07&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;+&lt;/span&gt;	&lt;span style=&#34;color:#719e07&#34;&gt;eventually&lt;/span&gt; &lt;span style=&#34;color:#719e07&#34;&gt;(&lt;/span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;some&lt;/span&gt; at: AssessmentTarget,
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;+&lt;/span&gt;		source, newRevision: ParameterSetRevision &lt;span style=&#34;color:#719e07&#34;&gt;|&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;+&lt;/span&gt;		Registry&lt;span style=&#34;color:#719e07&#34;&gt;.&lt;/span&gt;currentParameterSet&lt;span style=&#34;color:#719e07&#34;&gt;[&lt;/span&gt;at&lt;span style=&#34;color:#719e07&#34;&gt;]&lt;/span&gt; &lt;span style=&#34;color:#719e07&#34;&gt;=&lt;/span&gt; source
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;+&lt;/span&gt;		&lt;span style=&#34;color:#719e07&#34;&gt;and&lt;/span&gt; source&lt;span style=&#34;color:#719e07&#34;&gt;.&lt;/span&gt;parameterSet &lt;span style=&#34;color:#719e07&#34;&gt;!=&lt;/span&gt; newRevision&lt;span style=&#34;color:#719e07&#34;&gt;.&lt;/span&gt;parameterSet
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;+&lt;/span&gt;		&lt;span style=&#34;color:#719e07&#34;&gt;and&lt;/span&gt; newRevision&lt;span style=&#34;color:#719e07&#34;&gt;.&lt;/span&gt;previousSource &lt;span style=&#34;color:#719e07&#34;&gt;=&lt;/span&gt; source
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;+&lt;/span&gt;		&lt;span style=&#34;color:#719e07&#34;&gt;and&lt;/span&gt; registerParameterSet&lt;span style=&#34;color:#719e07&#34;&gt;[&lt;/span&gt;at, newRevision&lt;span style=&#34;color:#719e07&#34;&gt;])&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;+}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;+&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;+&lt;/span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;run&lt;/span&gt; SR003_assessment_data_can_be_changed_with_new_revision
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;+&lt;/span&gt;	&lt;span style=&#34;color:#719e07&#34;&gt;for&lt;/span&gt; &lt;span style=&#34;color:#2aa198&#34;&gt;2&lt;/span&gt; &lt;span style=&#34;color:#719e07&#34;&gt;but&lt;/span&gt; &lt;span style=&#34;color:#2aa198&#34;&gt;1&lt;/span&gt; AssessmentTarget, &lt;span style=&#34;color:#2aa198&#34;&gt;1&lt;/span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;..&lt;/span&gt;&lt;span style=&#34;color:#2aa198&#34;&gt;3&lt;/span&gt; &lt;span style=&#34;color:#719e07&#34;&gt;steps&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;+&lt;/span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;run&lt;/span&gt; SR003_parameter_set_can_be_changed_with_new_revision
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;+&lt;/span&gt;	&lt;span style=&#34;color:#719e07&#34;&gt;for&lt;/span&gt; &lt;span style=&#34;color:#2aa198&#34;&gt;2&lt;/span&gt; &lt;span style=&#34;color:#719e07&#34;&gt;but&lt;/span&gt; &lt;span style=&#34;color:#2aa198&#34;&gt;1&lt;/span&gt; AssessmentTarget, &lt;span style=&#34;color:#2aa198&#34;&gt;1&lt;/span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;..&lt;/span&gt;&lt;span style=&#34;color:#2aa198&#34;&gt;3&lt;/span&gt; &lt;span style=&#34;color:#719e07&#34;&gt;steps&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;+&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; &lt;span style=&#34;color:#586e75&#34;&gt;/*  ============================================================
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#586e75&#34;&gt;     6. Sanity
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#586e75&#34;&gt;     ============================================================ */&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;code&gt;assert SR003_new_version_on_change&lt;/code&gt; の下記の部分は「current revisionが同じまま（変わらない）、または next revisionが current revision から派生している」を意味している:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#93a1a1;background-color:#002b36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-alloy&#34; data-lang=&#34;alloy&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;implies&lt;/span&gt; Registry&lt;span style=&#34;color:#719e07&#34;&gt;.&lt;/span&gt;currentAssessmentData&lt;span style=&#34;color:#719e07&#34;&gt;[&lt;/span&gt;at&lt;span style=&#34;color:#719e07&#34;&gt;]&lt;/span&gt; &lt;span style=&#34;color:#719e07&#34;&gt;=&lt;/span&gt; Registry&lt;span style=&#34;color:#719e07&#34;&gt;.&lt;/span&gt;currentAssessmentData&lt;span style=&#34;color:#719e07&#34;&gt;&amp;#39;[&lt;/span&gt;at&lt;span style=&#34;color:#719e07&#34;&gt;]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;				&lt;span style=&#34;color:#719e07&#34;&gt;or&lt;/span&gt; Registry&lt;span style=&#34;color:#719e07&#34;&gt;.&lt;/span&gt;currentAssessmentData&lt;span style=&#34;color:#719e07&#34;&gt;&amp;#39;[&lt;/span&gt;at&lt;span style=&#34;color:#719e07&#34;&gt;]&lt;/span&gt; &lt;span style=&#34;color:#719e07&#34;&gt;in&lt;/span&gt; &lt;span style=&#34;color:#719e07&#34;&gt;(&lt;/span&gt;Registry&lt;span style=&#34;color:#719e07&#34;&gt;.&lt;/span&gt;currentAssessmentData&lt;span style=&#34;color:#719e07&#34;&gt;[&lt;/span&gt;at&lt;span style=&#34;color:#719e07&#34;&gt;]).~&lt;/span&gt;previousSource&lt;span style=&#34;color:#719e07&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Execute All:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#93a1a1;background-color:#002b36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-fallback&#34; data-lang=&#34;fallback&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;6 commands were executed. The results are:
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;   #1: Instance found. SR001_revisions_can_be_registered is consistent.
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;   #2: Instance found. SR002_registered_cont_available is consistent.
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;   #3: No counterexample found. SR003_new_version_on_change may be valid.
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;   #4: Instance found. SR003_assessment_data_can_be_changed_with_new_revision is consistent.
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;   #5: Instance found. SR003_parameter_set_can_be_changed_with_new_revision is consistent.
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;   #6: Instance found. run$6 is consistent.
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;OK &amp;#x2705;&lt;/p&gt;
&lt;p&gt;AssessmentDataが変わった際には、別のRevisionとなるようになっている:
&lt;figure&gt;&lt;img src=&#34;https://rindrics.com/images/2026-07-29-data/sr003.webp&#34;
    alt=&#34;SR003を満たすケースの一例&#34;&gt;&lt;figcaption&gt;
      &lt;p&gt;SR003を満たすケースの一例&lt;/p&gt;
    &lt;/figcaption&gt;
&lt;/figure&gt;

（末尾の数字が交差しているが、これは自動付与されたものなので気にしなくて良いはず。）&lt;/p&gt;
&lt;h3 id=&#34;sr004-版の参照規則&#34;&gt;SR004: 版の参照規則&lt;/h3&gt;
&lt;blockquote&gt;
&lt;p&gt;SR004: 新しい版は、修正元となった版を0個または1個参照しなければならない&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;これは、&lt;code&gt;previousSource: lone AssessmentDataRevision&lt;/code&gt; の &lt;code&gt;lone&lt;/code&gt; によって、既に定義レベルで保証されている。
一応、状態を見てみたいので&lt;code&gt;run&lt;/code&gt;を追加した:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#93a1a1;background-color:#002b36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-diff:moodel.als&#34; data-lang=&#34;diff:moodel.als&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; 	&lt;span style=&#34;color:#719e07&#34;&gt;for&lt;/span&gt; &lt;span style=&#34;color:#2aa198&#34;&gt;2&lt;/span&gt; &lt;span style=&#34;color:#719e07&#34;&gt;but&lt;/span&gt; &lt;span style=&#34;color:#2aa198&#34;&gt;1&lt;/span&gt; AssessmentTarget, &lt;span style=&#34;color:#2aa198&#34;&gt;1&lt;/span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;..&lt;/span&gt;&lt;span style=&#34;color:#2aa198&#34;&gt;3&lt;/span&gt; &lt;span style=&#34;color:#719e07&#34;&gt;steps&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; 
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;+&lt;/span&gt;&lt;span style=&#34;color:#586e75&#34;&gt;// SR004: Each revision can reference exactly zero or one previous version&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;+&lt;/span&gt;&lt;span style=&#34;color:#586e75&#34;&gt;// (Enforced by previousSource: lone field definition - no explicit assertion needed)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;+&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;+&lt;/span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;pred&lt;/span&gt; SR004_root_and_derived_revisions_can_exist &lt;span style=&#34;color:#719e07&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;+&lt;/span&gt;	&lt;span style=&#34;color:#719e07&#34;&gt;some&lt;/span&gt; rootAdr, derivedAdr: AssessmentDataRevision,
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;+&lt;/span&gt;		rootPsr, derivedPsr: ParameterSetRevision &lt;span style=&#34;color:#719e07&#34;&gt;|&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;+&lt;/span&gt;		rootAdr &lt;span style=&#34;color:#719e07&#34;&gt;!=&lt;/span&gt; derivedAdr
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;+&lt;/span&gt;		&lt;span style=&#34;color:#719e07&#34;&gt;and&lt;/span&gt; &lt;span style=&#34;color:#719e07&#34;&gt;no&lt;/span&gt; rootAdr&lt;span style=&#34;color:#719e07&#34;&gt;.&lt;/span&gt;previousSource
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;+&lt;/span&gt;		&lt;span style=&#34;color:#719e07&#34;&gt;and&lt;/span&gt; derivedAdr&lt;span style=&#34;color:#719e07&#34;&gt;.&lt;/span&gt;previousSource &lt;span style=&#34;color:#719e07&#34;&gt;=&lt;/span&gt; rootAdr
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;+&lt;/span&gt;		&lt;span style=&#34;color:#719e07&#34;&gt;and&lt;/span&gt; rootPsr &lt;span style=&#34;color:#719e07&#34;&gt;!=&lt;/span&gt; derivedPsr
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;+&lt;/span&gt;		&lt;span style=&#34;color:#719e07&#34;&gt;and&lt;/span&gt; &lt;span style=&#34;color:#719e07&#34;&gt;no&lt;/span&gt; rootPsr&lt;span style=&#34;color:#719e07&#34;&gt;.&lt;/span&gt;previousSource
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;+&lt;/span&gt;		&lt;span style=&#34;color:#719e07&#34;&gt;and&lt;/span&gt; derivedPsr&lt;span style=&#34;color:#719e07&#34;&gt;.&lt;/span&gt;previousSource &lt;span style=&#34;color:#719e07&#34;&gt;=&lt;/span&gt; rootPsr
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;+}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;+&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;+&lt;/span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;run&lt;/span&gt; SR004_root_and_derived_revisions_can_exist
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;+&lt;/span&gt;	&lt;span style=&#34;color:#719e07&#34;&gt;for&lt;/span&gt; &lt;span style=&#34;color:#2aa198&#34;&gt;4&lt;/span&gt; &lt;span style=&#34;color:#719e07&#34;&gt;but&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;+&lt;/span&gt;	&lt;span style=&#34;color:#719e07&#34;&gt;exactly&lt;/span&gt; &lt;span style=&#34;color:#2aa198&#34;&gt;2&lt;/span&gt; AssessmentDataRevision,
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;+&lt;/span&gt;	&lt;span style=&#34;color:#719e07&#34;&gt;exactly&lt;/span&gt; &lt;span style=&#34;color:#2aa198&#34;&gt;2&lt;/span&gt; ParameterSetRevision,
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;+&lt;/span&gt;	&lt;span style=&#34;color:#719e07&#34;&gt;exactly&lt;/span&gt; &lt;span style=&#34;color:#2aa198&#34;&gt;2&lt;/span&gt; AssessmentDataRevisionId,
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;+&lt;/span&gt;	&lt;span style=&#34;color:#719e07&#34;&gt;exactly&lt;/span&gt; &lt;span style=&#34;color:#2aa198&#34;&gt;2&lt;/span&gt; ParameterSetRevisionId,
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;+&lt;/span&gt;	&lt;span style=&#34;color:#2aa198&#34;&gt;1&lt;/span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;..&lt;/span&gt;&lt;span style=&#34;color:#2aa198&#34;&gt;2&lt;/span&gt; &lt;span style=&#34;color:#719e07&#34;&gt;steps&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;+&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; &lt;span style=&#34;color:#586e75&#34;&gt;/*  ============================================================
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#586e75&#34;&gt;     6. Sanity
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#586e75&#34;&gt;     ============================================================ */&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;一例を見てみる:
&lt;figure&gt;&lt;img src=&#34;https://rindrics.com/images/2026-07-29-data/sr004.webp&#34;
    alt=&#34;SR004を満たすケースの一例&#34;&gt;&lt;figcaption&gt;
      &lt;p&gt;SR004を満たすケースの一例&lt;/p&gt;
    &lt;/figcaption&gt;
&lt;/figure&gt;

なるほど、データの内容が同じでも親が違う状況が示されていて、この場合には違う版として扱われるらしい。
少し意図と違うが、これについては次の&lt;code&gt;SR005&lt;/code&gt;で考える。&lt;/p&gt;
&lt;h3 id=&#34;sr005-冪等性&#34;&gt;SR005: 冪等性&lt;/h3&gt;
&lt;blockquote&gt;
&lt;p&gt;SR005: 同一の登録要求識別子を持つ登録要求に対しては同一の結果を返し、新たな版を重複して作成してはならない&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;先ほど述べた問題にも関係する冪等性。
下記のようにモデリングしてみる:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#93a1a1;background-color:#002b36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-diff:moodel.als&#34; data-lang=&#34;diff:moodel.als&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; &lt;span style=&#34;color:#268bd2&#34;&gt;sig&lt;/span&gt; AssessmentDataRevisionId, ParameterSetRevisionId &lt;span style=&#34;color:#719e07&#34;&gt;extends&lt;/span&gt; RevisionId &lt;span style=&#34;color:#719e07&#34;&gt;{}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; 
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;+&lt;/span&gt;&lt;span style=&#34;color:#268bd2&#34;&gt;sig&lt;/span&gt; HashKey &lt;span style=&#34;color:#719e07&#34;&gt;{}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;+&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;+&lt;/span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;abstract&lt;/span&gt; &lt;span style=&#34;color:#268bd2&#34;&gt;sig&lt;/span&gt; Status &lt;span style=&#34;color:#719e07&#34;&gt;{}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;+&lt;/span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;one&lt;/span&gt; &lt;span style=&#34;color:#268bd2&#34;&gt;sig&lt;/span&gt; Success, Failure &lt;span style=&#34;color:#719e07&#34;&gt;extends&lt;/span&gt; Status &lt;span style=&#34;color:#719e07&#34;&gt;{}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;+&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;+&lt;/span&gt;&lt;span style=&#34;color:#268bd2&#34;&gt;sig&lt;/span&gt; Response &lt;span style=&#34;color:#719e07&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;+&lt;/span&gt;	revision: &lt;span style=&#34;color:#719e07&#34;&gt;lone&lt;/span&gt; &lt;span style=&#34;color:#719e07&#34;&gt;(&lt;/span&gt;AssessmentDataRevision &lt;span style=&#34;color:#719e07&#34;&gt;+&lt;/span&gt; ParameterSetRevision&lt;span style=&#34;color:#719e07&#34;&gt;)&lt;/span&gt;,
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;+&lt;/span&gt;	status: &lt;span style=&#34;color:#719e07&#34;&gt;one&lt;/span&gt; Status
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;+}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;+&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; &lt;span style=&#34;color:#586e75&#34;&gt;// SR002: Each revision has unique identifier&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; &lt;span style=&#34;color:#268bd2&#34;&gt;sig&lt;/span&gt; AssessmentDataRevision &lt;span style=&#34;color:#719e07&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; 	id: &lt;span style=&#34;color:#719e07&#34;&gt;one&lt;/span&gt; AssessmentDataRevisionId,
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;@@ &lt;span style=&#34;color:#719e07&#34;&gt;-&lt;/span&gt;&lt;span style=&#34;color:#2aa198&#34;&gt;67&lt;/span&gt;,&lt;span style=&#34;color:#2aa198&#34;&gt;7&lt;/span&gt; &lt;span style=&#34;color:#719e07&#34;&gt;+&lt;/span&gt;&lt;span style=&#34;color:#2aa198&#34;&gt;77&lt;/span&gt;,&lt;span style=&#34;color:#2aa198&#34;&gt;9&lt;/span&gt; @@ &lt;span style=&#34;color:#719e07&#34;&gt;fact&lt;/span&gt; noCyclicSource &lt;span style=&#34;color:#719e07&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; 
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; &lt;span style=&#34;color:#719e07&#34;&gt;one&lt;/span&gt; &lt;span style=&#34;color:#268bd2&#34;&gt;sig&lt;/span&gt; Registry &lt;span style=&#34;color:#719e07&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; 	&lt;span style=&#34;color:#719e07&#34;&gt;var&lt;/span&gt; currentAssessmentData: AssessmentTarget &lt;span style=&#34;color:#719e07&#34;&gt;-&amp;gt;&lt;/span&gt; &lt;span style=&#34;color:#719e07&#34;&gt;lone&lt;/span&gt; AssessmentDataRevision,
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;-&lt;/span&gt;	&lt;span style=&#34;color:#719e07&#34;&gt;var&lt;/span&gt; currentParameterSet: AssessmentTarget &lt;span style=&#34;color:#719e07&#34;&gt;-&amp;gt;&lt;/span&gt; &lt;span style=&#34;color:#719e07&#34;&gt;lone&lt;/span&gt; ParameterSetRevision
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;+&lt;/span&gt;	&lt;span style=&#34;color:#719e07&#34;&gt;var&lt;/span&gt; currentParameterSet: AssessmentTarget &lt;span style=&#34;color:#719e07&#34;&gt;-&amp;gt;&lt;/span&gt; &lt;span style=&#34;color:#719e07&#34;&gt;lone&lt;/span&gt; ParameterSetRevision,
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;+&lt;/span&gt;	&lt;span style=&#34;color:#586e75&#34;&gt;// SR005: Track responses by HashKey (idempotency key) for idempotency verification&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;+&lt;/span&gt;	&lt;span style=&#34;color:#719e07&#34;&gt;var&lt;/span&gt; responseLog: HashKey &lt;span style=&#34;color:#719e07&#34;&gt;-&amp;gt;&lt;/span&gt; &lt;span style=&#34;color:#719e07&#34;&gt;lone&lt;/span&gt; Response
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; &lt;span style=&#34;color:#719e07&#34;&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; 
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; &lt;span style=&#34;color:#586e75&#34;&gt;/*  ============================================================
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#586e75&#34;&gt;@@ -77,37 +89,80 @@ one sig Registry {
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#586e75&#34;&gt; pred init {
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#586e75&#34;&gt; 	no Registry.currentAssessmentData
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#586e75&#34;&gt; 	no Registry.currentParameterSet
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#586e75&#34;&gt;+	no Registry.responseLog
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#586e75&#34;&gt; }
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#586e75&#34;&gt; 
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#586e75&#34;&gt;-pred registerAssessmentData[at: AssessmentTarget, adr: AssessmentDataRevision] {
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#586e75&#34;&gt;-	(no Registry.currentAssessmentData[at] and no adr.previousSource)
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#586e75&#34;&gt;+// SR005: Log response by idempotency key
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#586e75&#34;&gt;+pred registerAssessmentData[
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#586e75&#34;&gt;+	at: AssessmentTarget,
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#586e75&#34;&gt;+	adr: AssessmentDataRevision,
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#586e75&#34;&gt;+	idempotencyKey: HashKey
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#586e75&#34;&gt;+] {
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#586e75&#34;&gt;+	(
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#586e75&#34;&gt;+		no Registry.responseLog[idempotencyKey]
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#586e75&#34;&gt;+		and (
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#586e75&#34;&gt;+			(no Registry.currentAssessmentData[at] and no adr.previousSource)
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#586e75&#34;&gt;+			or (
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#586e75&#34;&gt;+				some Registry.currentAssessmentData[at]
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#586e75&#34;&gt;+				and adr.previousSource = Registry.currentAssessmentData[at]
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#586e75&#34;&gt;+			)
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#586e75&#34;&gt;+		)
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#586e75&#34;&gt;+		and Registry.currentAssessmentData&amp;#39; = Registry.currentAssessmentData ++ at -&amp;gt; adr
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#586e75&#34;&gt;+		and Registry.currentParameterSet&amp;#39; = Registry.currentParameterSet
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#586e75&#34;&gt;+		and some r: Response |
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#586e75&#34;&gt;+			r.revision = adr
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#586e75&#34;&gt;+			and r.status = Success
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#586e75&#34;&gt;+			and Registry.responseLog&amp;#39; = Registry.responseLog + idempotencyKey -&amp;gt; r
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#586e75&#34;&gt;+	)
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#586e75&#34;&gt; 	or (
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#586e75&#34;&gt;-		some Registry.currentAssessmentData[at]
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#586e75&#34;&gt;-		and adr.previousSource = Registry.currentAssessmentData[at]
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#586e75&#34;&gt;+		some Registry.responseLog[idempotencyKey]
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#586e75&#34;&gt;+		and Registry.currentAssessmentData&amp;#39; = Registry.currentAssessmentData
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#586e75&#34;&gt;+		and Registry.currentParameterSet&amp;#39; = Registry.currentParameterSet
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#586e75&#34;&gt;+		and Registry.responseLog&amp;#39; = Registry.responseLog
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#586e75&#34;&gt; 	)
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#586e75&#34;&gt;-	Registry.currentAssessmentData&amp;#39; = Registry.currentAssessmentData ++ at -&amp;gt; adr
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#586e75&#34;&gt;-	Registry.currentParameterSet&amp;#39; = Registry.currentParameterSet
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#586e75&#34;&gt; }
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#586e75&#34;&gt; 
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#586e75&#34;&gt;-pred registerParameterSet[at: AssessmentTarget, psr: ParameterSetRevision] {
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#586e75&#34;&gt;-	(no Registry.currentParameterSet[at] and no psr.previousSource)
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#586e75&#34;&gt;+pred registerParameterSet[
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#586e75&#34;&gt;+	at: AssessmentTarget,
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#586e75&#34;&gt;+	psr: ParameterSetRevision,
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#586e75&#34;&gt;+	idempotencyKey: HashKey
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#586e75&#34;&gt;+] {
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#586e75&#34;&gt;+	(
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#586e75&#34;&gt;+		no Registry.responseLog[idempotencyKey]
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#586e75&#34;&gt;+		and (
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#586e75&#34;&gt;+			(no Registry.currentParameterSet[at] and no psr.previousSource)
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#586e75&#34;&gt;+			or (
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#586e75&#34;&gt;+				some Registry.currentParameterSet[at]
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#586e75&#34;&gt;+				and psr.previousSource = Registry.currentParameterSet[at]
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#586e75&#34;&gt;+			)
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#586e75&#34;&gt;+		)
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#586e75&#34;&gt;+		and Registry.currentAssessmentData&amp;#39; = Registry.currentAssessmentData
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#586e75&#34;&gt;+		and Registry.currentParameterSet&amp;#39; = Registry.currentParameterSet ++ at -&amp;gt; psr
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#586e75&#34;&gt;+		and some r: Response |
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#586e75&#34;&gt;+			r.revision = psr
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#586e75&#34;&gt;+			and r.status = Success
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#586e75&#34;&gt;+			and Registry.responseLog&amp;#39; = Registry.responseLog + idempotencyKey -&amp;gt; r
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#586e75&#34;&gt;+	)
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#586e75&#34;&gt; 	or (
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#586e75&#34;&gt;-		some Registry.currentParameterSet[at]
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#586e75&#34;&gt;-		and psr.previousSource = Registry.currentParameterSet[at]
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#586e75&#34;&gt;+		some Registry.responseLog[idempotencyKey]
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#586e75&#34;&gt;+		and Registry.currentAssessmentData&amp;#39; = Registry.currentAssessmentData
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#586e75&#34;&gt;+		and Registry.currentParameterSet&amp;#39; = Registry.currentParameterSet
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#586e75&#34;&gt;+		and Registry.responseLog&amp;#39; = Registry.responseLog
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#586e75&#34;&gt; 	)
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#586e75&#34;&gt;-	Registry.currentAssessmentData&amp;#39; = Registry.currentAssessmentData
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#586e75&#34;&gt;-	Registry.currentParameterSet&amp;#39; = Registry.currentParameterSet ++ at -&amp;gt; psr
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#586e75&#34;&gt; }
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#586e75&#34;&gt; 
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#586e75&#34;&gt; pred stutter {
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#586e75&#34;&gt; 	Registry.currentAssessmentData&amp;#39; = Registry.currentAssessmentData
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#586e75&#34;&gt; 	Registry.currentParameterSet&amp;#39; = Registry.currentParameterSet
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#586e75&#34;&gt;+	Registry.responseLog&amp;#39; = Registry.responseLog
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#586e75&#34;&gt; }
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#586e75&#34;&gt; 
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#586e75&#34;&gt; pred step {
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#586e75&#34;&gt; 	stutter
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#586e75&#34;&gt;-	or (some at: AssessmentTarget, adr: AssessmentDataRevision | registerAssessmentData[at, adr])
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#586e75&#34;&gt;-	or (some at: AssessmentTarget, psr: ParameterSetRevision | registerParameterSet[at, psr])
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#586e75&#34;&gt;+	or (some at: AssessmentTarget, adr: AssessmentDataRevision, hk: HashKey |
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#586e75&#34;&gt;+		registerAssessmentData[at, adr, hk])
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#586e75&#34;&gt;+	or (some at: AssessmentTarget, psr: ParameterSetRevision, hk: HashKey |
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#586e75&#34;&gt;+		registerParameterSet[at, psr, hk])
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#586e75&#34;&gt; }
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#586e75&#34;&gt; 
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#586e75&#34;&gt; fact traces {
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#586e75&#34;&gt;@@ -171,20 +226,22 @@ check SR003_new_version_on_change for 2 but 1..3 steps
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#586e75&#34;&gt; 
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#586e75&#34;&gt; pred SR003_assessment_update {
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#586e75&#34;&gt; 	eventually (some at: AssessmentTarget,
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#586e75&#34;&gt;-		source, newRevision: AssessmentDataRevision |
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#586e75&#34;&gt;+		source, newRevision: AssessmentDataRevision,
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#586e75&#34;&gt;+		hk: HashKey |
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#586e75&#34;&gt; 		Registry.currentAssessmentData[at] = source
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#586e75&#34;&gt; 		and source.assessmentData != newRevision.assessmentData
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#586e75&#34;&gt; 		and newRevision.previousSource = source
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#586e75&#34;&gt;-		and registerAssessmentData[at, newRevision])
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#586e75&#34;&gt;+		and registerAssessmentData[at, newRevision, hk])
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#586e75&#34;&gt; }
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#586e75&#34;&gt; 
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#586e75&#34;&gt; pred SR003_parameter_update {
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#586e75&#34;&gt; 	eventually (some at: AssessmentTarget,
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#586e75&#34;&gt;-		source, newRevision: ParameterSetRevision |
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#586e75&#34;&gt;+		source, newRevision: ParameterSetRevision,
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#586e75&#34;&gt;+		hk: HashKey |
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#586e75&#34;&gt; 		Registry.currentParameterSet[at] = source
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#586e75&#34;&gt; 		and source.parameterSet != newRevision.parameterSet
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#586e75&#34;&gt; 		and newRevision.previousSource = source
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#586e75&#34;&gt;-		and registerParameterSet[at, newRevision])
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#586e75&#34;&gt;+		and registerParameterSet[at, newRevision, hk])
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#586e75&#34;&gt; }
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#586e75&#34;&gt; 
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#586e75&#34;&gt; run SR003_assessment_update
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#586e75&#34;&gt;@@ -214,6 +271,51 @@ run SR004_revision_chain
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#586e75&#34;&gt; 	exactly 2 ParameterSetRevisionId,
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#586e75&#34;&gt; 	1..2 steps
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#586e75&#34;&gt; 
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#586e75&#34;&gt;+// SR005: Idempotency - same HashKey (idempotency key) returns same response
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#586e75&#34;&gt;+assert SR005_idempotency {
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#586e75&#34;&gt;+	always (
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#586e75&#34;&gt;+		all hk: HashKey |
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#586e75&#34;&gt;+			(some Registry.responseLog[hk]) implies always Registry.responseLog[hk] = Registry.responseLog&amp;#39;[hk]
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#586e75&#34;&gt;+	)
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#586e75&#34;&gt;+}
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#586e75&#34;&gt;+
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#586e75&#34;&gt;+check SR005_idempotency for 2 but 1..3 steps
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#586e75&#34;&gt;+
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#586e75&#34;&gt;+pred SR005_assessment_data_retry_returns_same_response {
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#586e75&#34;&gt;+	some at: AssessmentTarget, adr: AssessmentDataRevision,
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#586e75&#34;&gt;+		hk: HashKey, r: Response |
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#586e75&#34;&gt;+		eventually (
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#586e75&#34;&gt;+			no Registry.responseLog[hk]
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#586e75&#34;&gt;+			and registerAssessmentData[at, adr, hk]
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#586e75&#34;&gt;+			and Registry.responseLog&amp;#39;[hk] = r
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#586e75&#34;&gt;+			and after (
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#586e75&#34;&gt;+				Registry.responseLog[hk] = r
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#586e75&#34;&gt;+				and registerAssessmentData[at, adr, hk]
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#586e75&#34;&gt;+				and Registry.responseLog&amp;#39;[hk] = r
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#586e75&#34;&gt;+			)
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#586e75&#34;&gt;+		)
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#586e75&#34;&gt;+}
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#586e75&#34;&gt;+
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#586e75&#34;&gt;+pred SR005_parameter_set_retry_returns_same_response {
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#586e75&#34;&gt;+	some at: AssessmentTarget, psr: ParameterSetRevision,
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#586e75&#34;&gt;+		hk: HashKey, r: Response |
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#586e75&#34;&gt;+		eventually (
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#586e75&#34;&gt;+			no Registry.responseLog[hk]
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#586e75&#34;&gt;+			and registerParameterSet[at, psr, hk]
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#586e75&#34;&gt;+			and Registry.responseLog&amp;#39;[hk] = r
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#586e75&#34;&gt;+			and after (
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#586e75&#34;&gt;+				Registry.responseLog[hk] = r
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#586e75&#34;&gt;+				and registerParameterSet[at, psr, hk]
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#586e75&#34;&gt;+				and Registry.responseLog&amp;#39;[hk] = r
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#586e75&#34;&gt;+			)
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#586e75&#34;&gt;+		)
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#586e75&#34;&gt;+}
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#586e75&#34;&gt;+
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#586e75&#34;&gt;+run SR005_assessment_data_retry_returns_same_response
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#586e75&#34;&gt;+	for 2 but 1 AssessmentTarget, 1..3 steps
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#586e75&#34;&gt;+run SR005_parameter_set_retry_returns_same_response
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#586e75&#34;&gt;+	for 2 but 1 AssessmentTarget, 1..3 steps
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#586e75&#34;&gt;+
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#586e75&#34;&gt; /*  ============================================================
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#586e75&#34;&gt;     6. Sanity
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#586e75&#34;&gt;     ============================================================ */&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;code&gt;var responseLog: HashKey -&amp;gt; lone Response&lt;/code&gt; の右辺が&lt;code&gt;one&lt;/code&gt;ではなく&lt;code&gt;lone&lt;/code&gt;なのは、データが未登録の状況を表現するため。
実装時における冪等性保証を助けるために、リクエストには&lt;a href=&#34;https://datatracker.ietf.org/doc/draft-ietf-httpapi-idempotency-key-header/07/&#34;&gt;idempotency key&lt;/a&gt;を使う想定。
このkeyの計算には、親とする版のIDも含める必要がある。
始めはAssessmentDataなどの&lt;strong&gt;内容の&lt;/strong&gt;みからkeyを生成して、同一の内容の登録リクエストは拒否してしまおうと考えていたが、そうすると履歴の復元: 内容が同じデータの再登録の時に不都合が出そう。&lt;/p&gt;
&lt;p&gt;ともあれ、同一性の定義については詳細設計に回すとして、ひとまず次に進む。&lt;/p&gt;
&lt;p&gt;Execute All:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#93a1a1;background-color:#002b36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-fallback&#34; data-lang=&#34;fallback&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;10 commands were executed. The results are:
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;   #1: Instance found. SR001_registration is consistent.
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;   #2: Instance found. SR002_content_stability is consistent.
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;   #3: No counterexample found. SR003_new_version_on_change may be valid.
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;   #4: Instance found. SR003_assessment_update is consistent.
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;   #5: Instance found. SR003_parameter_update is consistent.
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;   #6: Instance found. SR004_revision_chain is consistent.
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;   #7: No counterexample found. SR005_idempotency may be valid.
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;   #8: Instance found. SR005_assessment_retry is consistent.
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;   #9: Instance found. SR005_parameter_retry is consistent.
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;   #10: Instance found. run$10 is consistent.
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;↑OK :white_check_mark&lt;/p&gt;
&lt;figure&gt;&lt;img src=&#34;https://rindrics.com/images/2026-07-29-data/sr005.webp&#34;
    alt=&#34;SR005を満たすケースの一例&#34;&gt;&lt;figcaption&gt;
      &lt;p&gt;SR005を満たすケースの一例&lt;/p&gt;
    &lt;/figcaption&gt;
&lt;/figure&gt;

&lt;p&gt;↑同一のHashKeyとともに何度リクエストしても、Revisionは変化しない様子が示されている。&lt;/p&gt;
&lt;h3 id=&#34;sr006-取得可能性&#34;&gt;SR006: 取得可能性&lt;/h3&gt;
&lt;blockquote&gt;
&lt;p&gt;SR006: 登録処理が成功した場合、取得APIから登録された版の内容を取得できなければならない&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;この要件は「成功レスポンスがあるならRevisionが存在する」として表現する:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#93a1a1;background-color:#002b36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-diff:moodel.als&#34; data-lang=&#34;diff:moodel.als&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; &lt;span style=&#34;color:#719e07&#34;&gt;one&lt;/span&gt; &lt;span style=&#34;color:#268bd2&#34;&gt;sig&lt;/span&gt; Registry &lt;span style=&#34;color:#719e07&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; 	&lt;span style=&#34;color:#719e07&#34;&gt;var&lt;/span&gt; currentAssessmentData: AssessmentTarget &lt;span style=&#34;color:#719e07&#34;&gt;-&amp;gt;&lt;/span&gt; &lt;span style=&#34;color:#719e07&#34;&gt;lone&lt;/span&gt; AssessmentDataRevision,
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; 	&lt;span style=&#34;color:#719e07&#34;&gt;var&lt;/span&gt; currentParameterSet: AssessmentTarget &lt;span style=&#34;color:#719e07&#34;&gt;-&amp;gt;&lt;/span&gt; &lt;span style=&#34;color:#719e07&#34;&gt;lone&lt;/span&gt; ParameterSetRevision,
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;+&lt;/span&gt;	&lt;span style=&#34;color:#719e07&#34;&gt;var&lt;/span&gt; registeredAssessmentData: AssessmentTarget &lt;span style=&#34;color:#719e07&#34;&gt;-&amp;gt;&lt;/span&gt; &lt;span style=&#34;color:#719e07&#34;&gt;set&lt;/span&gt; AssessmentDataRevision,
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;+&lt;/span&gt;	&lt;span style=&#34;color:#719e07&#34;&gt;var&lt;/span&gt; registeredParameterSet: AssessmentTarget &lt;span style=&#34;color:#719e07&#34;&gt;-&amp;gt;&lt;/span&gt; &lt;span style=&#34;color:#719e07&#34;&gt;set&lt;/span&gt; ParameterSetRevision,
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; 	&lt;span style=&#34;color:#586e75&#34;&gt;// SR005: Track responses by HashKey (idempotency key) for idempotency verification&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; 	&lt;span style=&#34;color:#719e07&#34;&gt;var&lt;/span&gt; responseLog: HashKey &lt;span style=&#34;color:#719e07&#34;&gt;-&amp;gt;&lt;/span&gt; &lt;span style=&#34;color:#719e07&#34;&gt;lone&lt;/span&gt; Response
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; &lt;span style=&#34;color:#719e07&#34;&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;@@ &lt;span style=&#34;color:#719e07&#34;&gt;-&lt;/span&gt;&lt;span style=&#34;color:#2aa198&#34;&gt;89&lt;/span&gt;,&lt;span style=&#34;color:#2aa198&#34;&gt;6&lt;/span&gt; &lt;span style=&#34;color:#719e07&#34;&gt;+&lt;/span&gt;&lt;span style=&#34;color:#2aa198&#34;&gt;91&lt;/span&gt;,&lt;span style=&#34;color:#2aa198&#34;&gt;8&lt;/span&gt; @@ &lt;span style=&#34;color:#719e07&#34;&gt;one&lt;/span&gt; &lt;span style=&#34;color:#268bd2&#34;&gt;sig&lt;/span&gt; Registry &lt;span style=&#34;color:#719e07&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; &lt;span style=&#34;color:#719e07&#34;&gt;pred&lt;/span&gt; init &lt;span style=&#34;color:#719e07&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; 	&lt;span style=&#34;color:#719e07&#34;&gt;no&lt;/span&gt; Registry&lt;span style=&#34;color:#719e07&#34;&gt;.&lt;/span&gt;currentAssessmentData
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; 	&lt;span style=&#34;color:#719e07&#34;&gt;no&lt;/span&gt; Registry&lt;span style=&#34;color:#719e07&#34;&gt;.&lt;/span&gt;currentParameterSet
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;+&lt;/span&gt;	&lt;span style=&#34;color:#719e07&#34;&gt;no&lt;/span&gt; Registry&lt;span style=&#34;color:#719e07&#34;&gt;.&lt;/span&gt;registeredAssessmentData
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;+&lt;/span&gt;	&lt;span style=&#34;color:#719e07&#34;&gt;no&lt;/span&gt; Registry&lt;span style=&#34;color:#719e07&#34;&gt;.&lt;/span&gt;registeredParameterSet
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; 	&lt;span style=&#34;color:#719e07&#34;&gt;no&lt;/span&gt; Registry&lt;span style=&#34;color:#719e07&#34;&gt;.&lt;/span&gt;responseLog
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; &lt;span style=&#34;color:#719e07&#34;&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; 
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;@@ &lt;span style=&#34;color:#719e07&#34;&gt;-&lt;/span&gt;&lt;span style=&#34;color:#2aa198&#34;&gt;109&lt;/span&gt;,&lt;span style=&#34;color:#2aa198&#34;&gt;6&lt;/span&gt; &lt;span style=&#34;color:#719e07&#34;&gt;+&lt;/span&gt;&lt;span style=&#34;color:#2aa198&#34;&gt;113&lt;/span&gt;,&lt;span style=&#34;color:#2aa198&#34;&gt;8&lt;/span&gt; @@ &lt;span style=&#34;color:#719e07&#34;&gt;pred&lt;/span&gt; registerAssessmentData&lt;span style=&#34;color:#719e07&#34;&gt;[&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; 		&lt;span style=&#34;color:#719e07&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; 		&lt;span style=&#34;color:#719e07&#34;&gt;and&lt;/span&gt; Registry&lt;span style=&#34;color:#719e07&#34;&gt;.&lt;/span&gt;currentAssessmentData&lt;span style=&#34;color:#719e07&#34;&gt;&amp;#39;&lt;/span&gt; &lt;span style=&#34;color:#719e07&#34;&gt;=&lt;/span&gt; Registry&lt;span style=&#34;color:#719e07&#34;&gt;.&lt;/span&gt;currentAssessmentData &lt;span style=&#34;color:#719e07&#34;&gt;++&lt;/span&gt; at &lt;span style=&#34;color:#719e07&#34;&gt;-&amp;gt;&lt;/span&gt; adr
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; 		&lt;span style=&#34;color:#719e07&#34;&gt;and&lt;/span&gt; Registry&lt;span style=&#34;color:#719e07&#34;&gt;.&lt;/span&gt;currentParameterSet&lt;span style=&#34;color:#719e07&#34;&gt;&amp;#39;&lt;/span&gt; &lt;span style=&#34;color:#719e07&#34;&gt;=&lt;/span&gt; Registry&lt;span style=&#34;color:#719e07&#34;&gt;.&lt;/span&gt;currentParameterSet
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;+&lt;/span&gt;		&lt;span style=&#34;color:#719e07&#34;&gt;and&lt;/span&gt; Registry&lt;span style=&#34;color:#719e07&#34;&gt;.&lt;/span&gt;registeredAssessmentData&lt;span style=&#34;color:#719e07&#34;&gt;&amp;#39;&lt;/span&gt; &lt;span style=&#34;color:#719e07&#34;&gt;=&lt;/span&gt; Registry&lt;span style=&#34;color:#719e07&#34;&gt;.&lt;/span&gt;registeredAssessmentData &lt;span style=&#34;color:#719e07&#34;&gt;+&lt;/span&gt; at &lt;span style=&#34;color:#719e07&#34;&gt;-&amp;gt;&lt;/span&gt; adr
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;+&lt;/span&gt;		&lt;span style=&#34;color:#719e07&#34;&gt;and&lt;/span&gt; Registry&lt;span style=&#34;color:#719e07&#34;&gt;.&lt;/span&gt;registeredParameterSet&lt;span style=&#34;color:#719e07&#34;&gt;&amp;#39;&lt;/span&gt; &lt;span style=&#34;color:#719e07&#34;&gt;=&lt;/span&gt; Registry&lt;span style=&#34;color:#719e07&#34;&gt;.&lt;/span&gt;registeredParameterSet
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; 		&lt;span style=&#34;color:#719e07&#34;&gt;and&lt;/span&gt; &lt;span style=&#34;color:#719e07&#34;&gt;some&lt;/span&gt; r: Response &lt;span style=&#34;color:#719e07&#34;&gt;|&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; 			r&lt;span style=&#34;color:#719e07&#34;&gt;.&lt;/span&gt;revision &lt;span style=&#34;color:#719e07&#34;&gt;=&lt;/span&gt; adr
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; 			&lt;span style=&#34;color:#719e07&#34;&gt;and&lt;/span&gt; r&lt;span style=&#34;color:#719e07&#34;&gt;.&lt;/span&gt;status &lt;span style=&#34;color:#719e07&#34;&gt;=&lt;/span&gt; Success
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;@@ &lt;span style=&#34;color:#719e07&#34;&gt;-&lt;/span&gt;&lt;span style=&#34;color:#2aa198&#34;&gt;118&lt;/span&gt;,&lt;span style=&#34;color:#2aa198&#34;&gt;6&lt;/span&gt; &lt;span style=&#34;color:#719e07&#34;&gt;+&lt;/span&gt;&lt;span style=&#34;color:#2aa198&#34;&gt;124&lt;/span&gt;,&lt;span style=&#34;color:#2aa198&#34;&gt;8&lt;/span&gt; @@ &lt;span style=&#34;color:#719e07&#34;&gt;pred&lt;/span&gt; registerAssessmentData&lt;span style=&#34;color:#719e07&#34;&gt;[&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; 		&lt;span style=&#34;color:#719e07&#34;&gt;some&lt;/span&gt; Registry&lt;span style=&#34;color:#719e07&#34;&gt;.&lt;/span&gt;responseLog&lt;span style=&#34;color:#719e07&#34;&gt;[&lt;/span&gt;idempotencyKey&lt;span style=&#34;color:#719e07&#34;&gt;]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; 		&lt;span style=&#34;color:#719e07&#34;&gt;and&lt;/span&gt; Registry&lt;span style=&#34;color:#719e07&#34;&gt;.&lt;/span&gt;currentAssessmentData&lt;span style=&#34;color:#719e07&#34;&gt;&amp;#39;&lt;/span&gt; &lt;span style=&#34;color:#719e07&#34;&gt;=&lt;/span&gt; Registry&lt;span style=&#34;color:#719e07&#34;&gt;.&lt;/span&gt;currentAssessmentData
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; 		&lt;span style=&#34;color:#719e07&#34;&gt;and&lt;/span&gt; Registry&lt;span style=&#34;color:#719e07&#34;&gt;.&lt;/span&gt;currentParameterSet&lt;span style=&#34;color:#719e07&#34;&gt;&amp;#39;&lt;/span&gt; &lt;span style=&#34;color:#719e07&#34;&gt;=&lt;/span&gt; Registry&lt;span style=&#34;color:#719e07&#34;&gt;.&lt;/span&gt;currentParameterSet
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;+&lt;/span&gt;		&lt;span style=&#34;color:#719e07&#34;&gt;and&lt;/span&gt; Registry&lt;span style=&#34;color:#719e07&#34;&gt;.&lt;/span&gt;registeredAssessmentData&lt;span style=&#34;color:#719e07&#34;&gt;&amp;#39;&lt;/span&gt; &lt;span style=&#34;color:#719e07&#34;&gt;=&lt;/span&gt; Registry&lt;span style=&#34;color:#719e07&#34;&gt;.&lt;/span&gt;registeredAssessmentData
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;+&lt;/span&gt;		&lt;span style=&#34;color:#719e07&#34;&gt;and&lt;/span&gt; Registry&lt;span style=&#34;color:#719e07&#34;&gt;.&lt;/span&gt;registeredParameterSet&lt;span style=&#34;color:#719e07&#34;&gt;&amp;#39;&lt;/span&gt; &lt;span style=&#34;color:#719e07&#34;&gt;=&lt;/span&gt; Registry&lt;span style=&#34;color:#719e07&#34;&gt;.&lt;/span&gt;registeredParameterSet
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; 		&lt;span style=&#34;color:#719e07&#34;&gt;and&lt;/span&gt; Registry&lt;span style=&#34;color:#719e07&#34;&gt;.&lt;/span&gt;responseLog&lt;span style=&#34;color:#719e07&#34;&gt;&amp;#39;&lt;/span&gt; &lt;span style=&#34;color:#719e07&#34;&gt;=&lt;/span&gt; Registry&lt;span style=&#34;color:#719e07&#34;&gt;.&lt;/span&gt;responseLog
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; 	&lt;span style=&#34;color:#719e07&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; &lt;span style=&#34;color:#719e07&#34;&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;@@ &lt;span style=&#34;color:#719e07&#34;&gt;-&lt;/span&gt;&lt;span style=&#34;color:#2aa198&#34;&gt;138&lt;/span&gt;,&lt;span style=&#34;color:#2aa198&#34;&gt;6&lt;/span&gt; &lt;span style=&#34;color:#719e07&#34;&gt;+&lt;/span&gt;&lt;span style=&#34;color:#2aa198&#34;&gt;146&lt;/span&gt;,&lt;span style=&#34;color:#2aa198&#34;&gt;8&lt;/span&gt; @@ &lt;span style=&#34;color:#719e07&#34;&gt;pred&lt;/span&gt; registerParameterSet&lt;span style=&#34;color:#719e07&#34;&gt;[&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; 		&lt;span style=&#34;color:#719e07&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; 		&lt;span style=&#34;color:#719e07&#34;&gt;and&lt;/span&gt; Registry&lt;span style=&#34;color:#719e07&#34;&gt;.&lt;/span&gt;currentAssessmentData&lt;span style=&#34;color:#719e07&#34;&gt;&amp;#39;&lt;/span&gt; &lt;span style=&#34;color:#719e07&#34;&gt;=&lt;/span&gt; Registry&lt;span style=&#34;color:#719e07&#34;&gt;.&lt;/span&gt;currentAssessmentData
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; 		&lt;span style=&#34;color:#719e07&#34;&gt;and&lt;/span&gt; Registry&lt;span style=&#34;color:#719e07&#34;&gt;.&lt;/span&gt;currentParameterSet&lt;span style=&#34;color:#719e07&#34;&gt;&amp;#39;&lt;/span&gt; &lt;span style=&#34;color:#719e07&#34;&gt;=&lt;/span&gt; Registry&lt;span style=&#34;color:#719e07&#34;&gt;.&lt;/span&gt;currentParameterSet &lt;span style=&#34;color:#719e07&#34;&gt;++&lt;/span&gt; at &lt;span style=&#34;color:#719e07&#34;&gt;-&amp;gt;&lt;/span&gt; psr
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;+&lt;/span&gt;		&lt;span style=&#34;color:#719e07&#34;&gt;and&lt;/span&gt; Registry&lt;span style=&#34;color:#719e07&#34;&gt;.&lt;/span&gt;registeredAssessmentData&lt;span style=&#34;color:#719e07&#34;&gt;&amp;#39;&lt;/span&gt; &lt;span style=&#34;color:#719e07&#34;&gt;=&lt;/span&gt; Registry&lt;span style=&#34;color:#719e07&#34;&gt;.&lt;/span&gt;registeredAssessmentData
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;+&lt;/span&gt;		&lt;span style=&#34;color:#719e07&#34;&gt;and&lt;/span&gt; Registry&lt;span style=&#34;color:#719e07&#34;&gt;.&lt;/span&gt;registeredParameterSet&lt;span style=&#34;color:#719e07&#34;&gt;&amp;#39;&lt;/span&gt; &lt;span style=&#34;color:#719e07&#34;&gt;=&lt;/span&gt; Registry&lt;span style=&#34;color:#719e07&#34;&gt;.&lt;/span&gt;registeredParameterSet &lt;span style=&#34;color:#719e07&#34;&gt;+&lt;/span&gt; at &lt;span style=&#34;color:#719e07&#34;&gt;-&amp;gt;&lt;/span&gt; psr
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; 		&lt;span style=&#34;color:#719e07&#34;&gt;and&lt;/span&gt; &lt;span style=&#34;color:#719e07&#34;&gt;some&lt;/span&gt; r: Response &lt;span style=&#34;color:#719e07&#34;&gt;|&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; 			r&lt;span style=&#34;color:#719e07&#34;&gt;.&lt;/span&gt;revision &lt;span style=&#34;color:#719e07&#34;&gt;=&lt;/span&gt; psr
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; 			&lt;span style=&#34;color:#719e07&#34;&gt;and&lt;/span&gt; r&lt;span style=&#34;color:#719e07&#34;&gt;.&lt;/span&gt;status &lt;span style=&#34;color:#719e07&#34;&gt;=&lt;/span&gt; Success
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;@@ &lt;span style=&#34;color:#719e07&#34;&gt;-&lt;/span&gt;&lt;span style=&#34;color:#2aa198&#34;&gt;147&lt;/span&gt;,&lt;span style=&#34;color:#2aa198&#34;&gt;6&lt;/span&gt; &lt;span style=&#34;color:#719e07&#34;&gt;+&lt;/span&gt;&lt;span style=&#34;color:#2aa198&#34;&gt;157&lt;/span&gt;,&lt;span style=&#34;color:#2aa198&#34;&gt;8&lt;/span&gt; @@ &lt;span style=&#34;color:#719e07&#34;&gt;pred&lt;/span&gt; registerParameterSet&lt;span style=&#34;color:#719e07&#34;&gt;[&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; 		&lt;span style=&#34;color:#719e07&#34;&gt;some&lt;/span&gt; Registry&lt;span style=&#34;color:#719e07&#34;&gt;.&lt;/span&gt;responseLog&lt;span style=&#34;color:#719e07&#34;&gt;[&lt;/span&gt;idempotencyKey&lt;span style=&#34;color:#719e07&#34;&gt;]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; 		&lt;span style=&#34;color:#719e07&#34;&gt;and&lt;/span&gt; Registry&lt;span style=&#34;color:#719e07&#34;&gt;.&lt;/span&gt;currentAssessmentData&lt;span style=&#34;color:#719e07&#34;&gt;&amp;#39;&lt;/span&gt; &lt;span style=&#34;color:#719e07&#34;&gt;=&lt;/span&gt; Registry&lt;span style=&#34;color:#719e07&#34;&gt;.&lt;/span&gt;currentAssessmentData
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; 		&lt;span style=&#34;color:#719e07&#34;&gt;and&lt;/span&gt; Registry&lt;span style=&#34;color:#719e07&#34;&gt;.&lt;/span&gt;currentParameterSet&lt;span style=&#34;color:#719e07&#34;&gt;&amp;#39;&lt;/span&gt; &lt;span style=&#34;color:#719e07&#34;&gt;=&lt;/span&gt; Registry&lt;span style=&#34;color:#719e07&#34;&gt;.&lt;/span&gt;currentParameterSet
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;+&lt;/span&gt;		&lt;span style=&#34;color:#719e07&#34;&gt;and&lt;/span&gt; Registry&lt;span style=&#34;color:#719e07&#34;&gt;.&lt;/span&gt;registeredAssessmentData&lt;span style=&#34;color:#719e07&#34;&gt;&amp;#39;&lt;/span&gt; &lt;span style=&#34;color:#719e07&#34;&gt;=&lt;/span&gt; Registry&lt;span style=&#34;color:#719e07&#34;&gt;.&lt;/span&gt;registeredAssessmentData
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;+&lt;/span&gt;		&lt;span style=&#34;color:#719e07&#34;&gt;and&lt;/span&gt; Registry&lt;span style=&#34;color:#719e07&#34;&gt;.&lt;/span&gt;registeredParameterSet&lt;span style=&#34;color:#719e07&#34;&gt;&amp;#39;&lt;/span&gt; &lt;span style=&#34;color:#719e07&#34;&gt;=&lt;/span&gt; Registry&lt;span style=&#34;color:#719e07&#34;&gt;.&lt;/span&gt;registeredParameterSet
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; 		&lt;span style=&#34;color:#719e07&#34;&gt;and&lt;/span&gt; Registry&lt;span style=&#34;color:#719e07&#34;&gt;.&lt;/span&gt;responseLog&lt;span style=&#34;color:#719e07&#34;&gt;&amp;#39;&lt;/span&gt; &lt;span style=&#34;color:#719e07&#34;&gt;=&lt;/span&gt; Registry&lt;span style=&#34;color:#719e07&#34;&gt;.&lt;/span&gt;responseLog
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; 	&lt;span style=&#34;color:#719e07&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; &lt;span style=&#34;color:#719e07&#34;&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;@@ &lt;span style=&#34;color:#719e07&#34;&gt;-&lt;/span&gt;&lt;span style=&#34;color:#2aa198&#34;&gt;154&lt;/span&gt;,&lt;span style=&#34;color:#2aa198&#34;&gt;6&lt;/span&gt; &lt;span style=&#34;color:#719e07&#34;&gt;+&lt;/span&gt;&lt;span style=&#34;color:#2aa198&#34;&gt;166&lt;/span&gt;,&lt;span style=&#34;color:#2aa198&#34;&gt;8&lt;/span&gt; @@ &lt;span style=&#34;color:#719e07&#34;&gt;pred&lt;/span&gt; registerParameterSet&lt;span style=&#34;color:#719e07&#34;&gt;[&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; &lt;span style=&#34;color:#719e07&#34;&gt;pred&lt;/span&gt; stutter &lt;span style=&#34;color:#719e07&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; 	Registry&lt;span style=&#34;color:#719e07&#34;&gt;.&lt;/span&gt;currentAssessmentData&lt;span style=&#34;color:#719e07&#34;&gt;&amp;#39;&lt;/span&gt; &lt;span style=&#34;color:#719e07&#34;&gt;=&lt;/span&gt; Registry&lt;span style=&#34;color:#719e07&#34;&gt;.&lt;/span&gt;currentAssessmentData
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; 	Registry&lt;span style=&#34;color:#719e07&#34;&gt;.&lt;/span&gt;currentParameterSet&lt;span style=&#34;color:#719e07&#34;&gt;&amp;#39;&lt;/span&gt; &lt;span style=&#34;color:#719e07&#34;&gt;=&lt;/span&gt; Registry&lt;span style=&#34;color:#719e07&#34;&gt;.&lt;/span&gt;currentParameterSet
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;+&lt;/span&gt;	Registry&lt;span style=&#34;color:#719e07&#34;&gt;.&lt;/span&gt;registeredAssessmentData&lt;span style=&#34;color:#719e07&#34;&gt;&amp;#39;&lt;/span&gt; &lt;span style=&#34;color:#719e07&#34;&gt;=&lt;/span&gt; Registry&lt;span style=&#34;color:#719e07&#34;&gt;.&lt;/span&gt;registeredAssessmentData
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;+&lt;/span&gt;	Registry&lt;span style=&#34;color:#719e07&#34;&gt;.&lt;/span&gt;registeredParameterSet&lt;span style=&#34;color:#719e07&#34;&gt;&amp;#39;&lt;/span&gt; &lt;span style=&#34;color:#719e07&#34;&gt;=&lt;/span&gt; Registry&lt;span style=&#34;color:#719e07&#34;&gt;.&lt;/span&gt;registeredParameterSet
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; 	Registry&lt;span style=&#34;color:#719e07&#34;&gt;.&lt;/span&gt;responseLog&lt;span style=&#34;color:#719e07&#34;&gt;&amp;#39;&lt;/span&gt; &lt;span style=&#34;color:#719e07&#34;&gt;=&lt;/span&gt; Registry&lt;span style=&#34;color:#719e07&#34;&gt;.&lt;/span&gt;responseLog
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; &lt;span style=&#34;color:#719e07&#34;&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; 
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;@@ &lt;span style=&#34;color:#719e07&#34;&gt;-&lt;/span&gt;&lt;span style=&#34;color:#2aa198&#34;&gt;316&lt;/span&gt;,&lt;span style=&#34;color:#2aa198&#34;&gt;6&lt;/span&gt; &lt;span style=&#34;color:#719e07&#34;&gt;+&lt;/span&gt;&lt;span style=&#34;color:#2aa198&#34;&gt;330&lt;/span&gt;,&lt;span style=&#34;color:#2aa198&#34;&gt;47&lt;/span&gt; @@ &lt;span style=&#34;color:#719e07&#34;&gt;run&lt;/span&gt; SR005_assessment_retry
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; &lt;span style=&#34;color:#719e07&#34;&gt;run&lt;/span&gt; SR005_parameter_retry
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; 	&lt;span style=&#34;color:#719e07&#34;&gt;for&lt;/span&gt; &lt;span style=&#34;color:#2aa198&#34;&gt;2&lt;/span&gt; &lt;span style=&#34;color:#719e07&#34;&gt;but&lt;/span&gt; &lt;span style=&#34;color:#2aa198&#34;&gt;1&lt;/span&gt; AssessmentTarget, &lt;span style=&#34;color:#2aa198&#34;&gt;1&lt;/span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;..&lt;/span&gt;&lt;span style=&#34;color:#2aa198&#34;&gt;3&lt;/span&gt; &lt;span style=&#34;color:#719e07&#34;&gt;steps&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; 
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;+&lt;/span&gt;&lt;span style=&#34;color:#586e75&#34;&gt;// SR006: After successful registration, the registered version must be retrievable&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;+&lt;/span&gt;&lt;span style=&#34;color:#586e75&#34;&gt;// If response is logged as successful, the revision must remain registered&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;+&lt;/span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;assert&lt;/span&gt; SR006_retrievability &lt;span style=&#34;color:#719e07&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;+&lt;/span&gt;	&lt;span style=&#34;color:#719e07&#34;&gt;always&lt;/span&gt; &lt;span style=&#34;color:#719e07&#34;&gt;(&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;+&lt;/span&gt;		&lt;span style=&#34;color:#719e07&#34;&gt;all&lt;/span&gt; hk: HashKey, r: Response &lt;span style=&#34;color:#719e07&#34;&gt;|&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;+&lt;/span&gt;			&lt;span style=&#34;color:#719e07&#34;&gt;(&lt;/span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;some&lt;/span&gt; Registry&lt;span style=&#34;color:#719e07&#34;&gt;.&lt;/span&gt;responseLog&lt;span style=&#34;color:#719e07&#34;&gt;[&lt;/span&gt;hk&lt;span style=&#34;color:#719e07&#34;&gt;]&lt;/span&gt; &lt;span style=&#34;color:#719e07&#34;&gt;and&lt;/span&gt; Registry&lt;span style=&#34;color:#719e07&#34;&gt;.&lt;/span&gt;responseLog&lt;span style=&#34;color:#719e07&#34;&gt;[&lt;/span&gt;hk&lt;span style=&#34;color:#719e07&#34;&gt;]&lt;/span&gt; &lt;span style=&#34;color:#719e07&#34;&gt;=&lt;/span&gt; r &lt;span style=&#34;color:#719e07&#34;&gt;and&lt;/span&gt; r&lt;span style=&#34;color:#719e07&#34;&gt;.&lt;/span&gt;status &lt;span style=&#34;color:#719e07&#34;&gt;=&lt;/span&gt; Success&lt;span style=&#34;color:#719e07&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;+&lt;/span&gt;			&lt;span style=&#34;color:#719e07&#34;&gt;implies&lt;/span&gt; &lt;span style=&#34;color:#719e07&#34;&gt;(&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;+&lt;/span&gt;				&lt;span style=&#34;color:#719e07&#34;&gt;(&lt;/span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;some&lt;/span&gt; at: AssessmentTarget, adr: AssessmentDataRevision &lt;span style=&#34;color:#719e07&#34;&gt;|&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;+&lt;/span&gt;					r&lt;span style=&#34;color:#719e07&#34;&gt;.&lt;/span&gt;revision &lt;span style=&#34;color:#719e07&#34;&gt;=&lt;/span&gt; adr &lt;span style=&#34;color:#719e07&#34;&gt;and&lt;/span&gt; adr &lt;span style=&#34;color:#719e07&#34;&gt;in&lt;/span&gt; Registry&lt;span style=&#34;color:#719e07&#34;&gt;.&lt;/span&gt;registeredAssessmentData&lt;span style=&#34;color:#719e07&#34;&gt;[&lt;/span&gt;at&lt;span style=&#34;color:#719e07&#34;&gt;])&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;+&lt;/span&gt;				&lt;span style=&#34;color:#719e07&#34;&gt;or&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;+&lt;/span&gt;				&lt;span style=&#34;color:#719e07&#34;&gt;(&lt;/span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;some&lt;/span&gt; at: AssessmentTarget, psr: ParameterSetRevision &lt;span style=&#34;color:#719e07&#34;&gt;|&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;+&lt;/span&gt;					r&lt;span style=&#34;color:#719e07&#34;&gt;.&lt;/span&gt;revision &lt;span style=&#34;color:#719e07&#34;&gt;=&lt;/span&gt; psr &lt;span style=&#34;color:#719e07&#34;&gt;and&lt;/span&gt; psr &lt;span style=&#34;color:#719e07&#34;&gt;in&lt;/span&gt; Registry&lt;span style=&#34;color:#719e07&#34;&gt;.&lt;/span&gt;registeredParameterSet&lt;span style=&#34;color:#719e07&#34;&gt;[&lt;/span&gt;at&lt;span style=&#34;color:#719e07&#34;&gt;])&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;+&lt;/span&gt;			&lt;span style=&#34;color:#719e07&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;+&lt;/span&gt;	&lt;span style=&#34;color:#719e07&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;+}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;+&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;+&lt;/span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;check&lt;/span&gt; SR006_retrievability &lt;span style=&#34;color:#719e07&#34;&gt;for&lt;/span&gt; &lt;span style=&#34;color:#2aa198&#34;&gt;2&lt;/span&gt; &lt;span style=&#34;color:#719e07&#34;&gt;but&lt;/span&gt; &lt;span style=&#34;color:#2aa198&#34;&gt;1&lt;/span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;..&lt;/span&gt;&lt;span style=&#34;color:#2aa198&#34;&gt;3&lt;/span&gt; &lt;span style=&#34;color:#719e07&#34;&gt;steps&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;+&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;+&lt;/span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;pred&lt;/span&gt; SR006_registered_assessment_data_can_be_retrieved &lt;span style=&#34;color:#719e07&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;+&lt;/span&gt;	&lt;span style=&#34;color:#719e07&#34;&gt;eventually&lt;/span&gt; &lt;span style=&#34;color:#719e07&#34;&gt;(&lt;/span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;some&lt;/span&gt; at: AssessmentTarget, adr: AssessmentDataRevision,
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;+&lt;/span&gt;		hk: HashKey, r: Response &lt;span style=&#34;color:#719e07&#34;&gt;|&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;+&lt;/span&gt;		Registry&lt;span style=&#34;color:#719e07&#34;&gt;.&lt;/span&gt;responseLog&lt;span style=&#34;color:#719e07&#34;&gt;[&lt;/span&gt;hk&lt;span style=&#34;color:#719e07&#34;&gt;]&lt;/span&gt; &lt;span style=&#34;color:#719e07&#34;&gt;=&lt;/span&gt; r
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;+&lt;/span&gt;		&lt;span style=&#34;color:#719e07&#34;&gt;and&lt;/span&gt; r&lt;span style=&#34;color:#719e07&#34;&gt;.&lt;/span&gt;status &lt;span style=&#34;color:#719e07&#34;&gt;=&lt;/span&gt; Success
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;+&lt;/span&gt;		&lt;span style=&#34;color:#719e07&#34;&gt;and&lt;/span&gt; r&lt;span style=&#34;color:#719e07&#34;&gt;.&lt;/span&gt;revision &lt;span style=&#34;color:#719e07&#34;&gt;=&lt;/span&gt; adr
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;+&lt;/span&gt;		&lt;span style=&#34;color:#719e07&#34;&gt;and&lt;/span&gt; adr &lt;span style=&#34;color:#719e07&#34;&gt;in&lt;/span&gt; Registry&lt;span style=&#34;color:#719e07&#34;&gt;.&lt;/span&gt;registeredAssessmentData&lt;span style=&#34;color:#719e07&#34;&gt;[&lt;/span&gt;at&lt;span style=&#34;color:#719e07&#34;&gt;])&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;+}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;+&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;+&lt;/span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;pred&lt;/span&gt; SR006_registered_parameter_set_can_be_retrieved &lt;span style=&#34;color:#719e07&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;+&lt;/span&gt;	&lt;span style=&#34;color:#719e07&#34;&gt;eventually&lt;/span&gt; &lt;span style=&#34;color:#719e07&#34;&gt;(&lt;/span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;some&lt;/span&gt; at: AssessmentTarget, psr: ParameterSetRevision,
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;+&lt;/span&gt;		hk: HashKey, r: Response &lt;span style=&#34;color:#719e07&#34;&gt;|&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;+&lt;/span&gt;		Registry&lt;span style=&#34;color:#719e07&#34;&gt;.&lt;/span&gt;responseLog&lt;span style=&#34;color:#719e07&#34;&gt;[&lt;/span&gt;hk&lt;span style=&#34;color:#719e07&#34;&gt;]&lt;/span&gt; &lt;span style=&#34;color:#719e07&#34;&gt;=&lt;/span&gt; r
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;+&lt;/span&gt;		&lt;span style=&#34;color:#719e07&#34;&gt;and&lt;/span&gt; r&lt;span style=&#34;color:#719e07&#34;&gt;.&lt;/span&gt;status &lt;span style=&#34;color:#719e07&#34;&gt;=&lt;/span&gt; Success
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;+&lt;/span&gt;		&lt;span style=&#34;color:#719e07&#34;&gt;and&lt;/span&gt; r&lt;span style=&#34;color:#719e07&#34;&gt;.&lt;/span&gt;revision &lt;span style=&#34;color:#719e07&#34;&gt;=&lt;/span&gt; psr
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;+&lt;/span&gt;		&lt;span style=&#34;color:#719e07&#34;&gt;and&lt;/span&gt; psr &lt;span style=&#34;color:#719e07&#34;&gt;in&lt;/span&gt; Registry&lt;span style=&#34;color:#719e07&#34;&gt;.&lt;/span&gt;registeredParameterSet&lt;span style=&#34;color:#719e07&#34;&gt;[&lt;/span&gt;at&lt;span style=&#34;color:#719e07&#34;&gt;])&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;+}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;+&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;+&lt;/span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;run&lt;/span&gt; SR006_registered_assessment_data_can_be_retrieved
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;+&lt;/span&gt;	&lt;span style=&#34;color:#719e07&#34;&gt;for&lt;/span&gt; &lt;span style=&#34;color:#2aa198&#34;&gt;2&lt;/span&gt; &lt;span style=&#34;color:#719e07&#34;&gt;but&lt;/span&gt; &lt;span style=&#34;color:#2aa198&#34;&gt;1&lt;/span&gt; AssessmentTarget, &lt;span style=&#34;color:#2aa198&#34;&gt;1&lt;/span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;..&lt;/span&gt;&lt;span style=&#34;color:#2aa198&#34;&gt;3&lt;/span&gt; &lt;span style=&#34;color:#719e07&#34;&gt;steps&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;+&lt;/span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;run&lt;/span&gt; SR006_registered_parameter_set_can_be_retrieved
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;+&lt;/span&gt;	&lt;span style=&#34;color:#719e07&#34;&gt;for&lt;/span&gt; &lt;span style=&#34;color:#2aa198&#34;&gt;2&lt;/span&gt; &lt;span style=&#34;color:#719e07&#34;&gt;but&lt;/span&gt; &lt;span style=&#34;color:#2aa198&#34;&gt;1&lt;/span&gt; AssessmentTarget, &lt;span style=&#34;color:#2aa198&#34;&gt;1&lt;/span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;..&lt;/span&gt;&lt;span style=&#34;color:#2aa198&#34;&gt;3&lt;/span&gt; &lt;span style=&#34;color:#719e07&#34;&gt;steps&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;+&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; &lt;span style=&#34;color:#586e75&#34;&gt;/*  ============================================================
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#586e75&#34;&gt;     6. Sanity
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#586e75&#34;&gt;     ============================================================ */&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Execute All:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#93a1a1;background-color:#002b36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-fallback&#34; data-lang=&#34;fallback&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;13 commands were executed. The results are:
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;   #1: Instance found. SR001_registration is consistent.
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;   #2: Instance found. SR002_content_stability is consistent.
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;   #3: No counterexample found. SR003_new_version_on_change may be valid.
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;   #4: Instance found. SR003_assessment_update is consistent.
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;   #5: Instance found. SR003_parameter_update is consistent.
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;   #6: Instance found. SR004_revision_chain is consistent.
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;   #7: No counterexample found. SR005_idempotency may be valid.
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;   #8: Instance found. SR005_assessment_retry is consistent.
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;   #9: Instance found. SR005_parameter_retry is consistent.
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;   #10: No counterexample found. SR006_retrievability may be valid.
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;   #11: Instance found. SR006_assessment_retrieval is consistent.
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;   #12: Instance found. SR006_parameter_retrieval is consistent.
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;   #13: Instance found. run$13 is consistent.
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;↑OK &amp;#x2705;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;SR006&lt;/code&gt;の例示結果は&lt;code&gt;SR005&lt;/code&gt;と変わらなかった。&lt;/p&gt;
&lt;h3 id=&#34;sr007-取得可能性その2&#34;&gt;SR007: 取得可能性その2&lt;/h3&gt;
&lt;blockquote&gt;
&lt;p&gt;R007: 版を指定した取得要求には、その版に記録された内容を返さなければならない&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;これは原理的には&lt;code&gt;SR001&lt;/code&gt;と&lt;code&gt;SR002&lt;/code&gt;で既に満たされている:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#93a1a1;background-color:#002b36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-diff:moodel.als&#34; data-lang=&#34;diff:moodel.als&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; &lt;span style=&#34;color:#719e07&#34;&gt;run&lt;/span&gt; SR006_parameter_retrieval
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; 	&lt;span style=&#34;color:#719e07&#34;&gt;for&lt;/span&gt; &lt;span style=&#34;color:#2aa198&#34;&gt;2&lt;/span&gt; &lt;span style=&#34;color:#719e07&#34;&gt;but&lt;/span&gt; &lt;span style=&#34;color:#2aa198&#34;&gt;1&lt;/span&gt; AssessmentTarget, &lt;span style=&#34;color:#2aa198&#34;&gt;1&lt;/span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;..&lt;/span&gt;&lt;span style=&#34;color:#2aa198&#34;&gt;3&lt;/span&gt; &lt;span style=&#34;color:#719e07&#34;&gt;steps&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; 
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;+&lt;/span&gt;&lt;span style=&#34;color:#586e75&#34;&gt;// SR007: Retrieval requests return the contents recorded in that version&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;+&lt;/span&gt;&lt;span style=&#34;color:#586e75&#34;&gt;// (Automatically satisfied because revision content is immutable)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;+&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;+&lt;/span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;pred&lt;/span&gt; SR007_assessment_data_can_be_retrieved_by_revision &lt;span style=&#34;color:#719e07&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;+&lt;/span&gt;	&lt;span style=&#34;color:#719e07&#34;&gt;eventually&lt;/span&gt; &lt;span style=&#34;color:#719e07&#34;&gt;(&lt;/span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;some&lt;/span&gt; at: AssessmentTarget, adr: AssessmentDataRevision,
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;+&lt;/span&gt;		data: AssessmentData &lt;span style=&#34;color:#719e07&#34;&gt;|&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;+&lt;/span&gt;		adr &lt;span style=&#34;color:#719e07&#34;&gt;in&lt;/span&gt; Registry&lt;span style=&#34;color:#719e07&#34;&gt;.&lt;/span&gt;registeredAssessmentData&lt;span style=&#34;color:#719e07&#34;&gt;[&lt;/span&gt;at&lt;span style=&#34;color:#719e07&#34;&gt;]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;+&lt;/span&gt;		&lt;span style=&#34;color:#719e07&#34;&gt;and&lt;/span&gt; data &lt;span style=&#34;color:#719e07&#34;&gt;=&lt;/span&gt; adr&lt;span style=&#34;color:#719e07&#34;&gt;.&lt;/span&gt;assessmentData&lt;span style=&#34;color:#719e07&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;+}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;+&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;+&lt;/span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;pred&lt;/span&gt; SR007_parameter_set_can_be_retrieved_by_revision &lt;span style=&#34;color:#719e07&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;+&lt;/span&gt;	&lt;span style=&#34;color:#719e07&#34;&gt;eventually&lt;/span&gt; &lt;span style=&#34;color:#719e07&#34;&gt;(&lt;/span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;some&lt;/span&gt; at: AssessmentTarget, psr: ParameterSetRevision,
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;+&lt;/span&gt;		params: ParameterSet &lt;span style=&#34;color:#719e07&#34;&gt;|&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;+&lt;/span&gt;		psr &lt;span style=&#34;color:#719e07&#34;&gt;in&lt;/span&gt; Registry&lt;span style=&#34;color:#719e07&#34;&gt;.&lt;/span&gt;registeredParameterSet&lt;span style=&#34;color:#719e07&#34;&gt;[&lt;/span&gt;at&lt;span style=&#34;color:#719e07&#34;&gt;]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;+&lt;/span&gt;		&lt;span style=&#34;color:#719e07&#34;&gt;and&lt;/span&gt; params &lt;span style=&#34;color:#719e07&#34;&gt;=&lt;/span&gt; psr&lt;span style=&#34;color:#719e07&#34;&gt;.&lt;/span&gt;parameterSet&lt;span style=&#34;color:#719e07&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;+}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;+&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;+&lt;/span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;run&lt;/span&gt; SR007_assessment_data_can_be_retrieved_by_revision
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;+&lt;/span&gt;	&lt;span style=&#34;color:#719e07&#34;&gt;for&lt;/span&gt; &lt;span style=&#34;color:#2aa198&#34;&gt;2&lt;/span&gt; &lt;span style=&#34;color:#719e07&#34;&gt;but&lt;/span&gt; &lt;span style=&#34;color:#2aa198&#34;&gt;1&lt;/span&gt; AssessmentTarget, &lt;span style=&#34;color:#2aa198&#34;&gt;1&lt;/span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;..&lt;/span&gt;&lt;span style=&#34;color:#2aa198&#34;&gt;3&lt;/span&gt; &lt;span style=&#34;color:#719e07&#34;&gt;steps&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;+&lt;/span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;run&lt;/span&gt; SR007_parameter_set_can_be_retrieved_by_revision
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;+&lt;/span&gt;	&lt;span style=&#34;color:#719e07&#34;&gt;for&lt;/span&gt; &lt;span style=&#34;color:#2aa198&#34;&gt;2&lt;/span&gt; &lt;span style=&#34;color:#719e07&#34;&gt;but&lt;/span&gt; &lt;span style=&#34;color:#2aa198&#34;&gt;1&lt;/span&gt; AssessmentTarget, &lt;span style=&#34;color:#2aa198&#34;&gt;1&lt;/span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;..&lt;/span&gt;&lt;span style=&#34;color:#2aa198&#34;&gt;3&lt;/span&gt; &lt;span style=&#34;color:#719e07&#34;&gt;steps&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;+&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; &lt;span style=&#34;color:#586e75&#34;&gt;/*  ============================================================
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#586e75&#34;&gt;     6. Sanity
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#586e75&#34;&gt;     ============================================================ */&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;実際の挙動がこれを満たすようにするのは実装時の責任。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#93a1a1;background-color:#002b36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-fallback&#34; data-lang=&#34;fallback&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;15 commands were executed. The results are:
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;   #1: Instance found. SR001_registration is consistent.
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;   #2: Instance found. SR002_content_stability is consistent.
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;   #3: No counterexample found. SR003_new_version_on_change may be valid.
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;   #4: Instance found. SR003_assessment_update is consistent.
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;   #5: Instance found. SR003_parameter_update is consistent.
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;   #6: Instance found. SR004_revision_chain is consistent.
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;   #7: No counterexample found. SR005_idempotency may be valid.
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;   #8: Instance found. SR005_assessment_retry is consistent.
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;   #9: Instance found. SR005_parameter_retry is consistent.
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;   #10: No counterexample found. SR006_retrievability may be valid.
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;   #11: Instance found. SR006_assessment_retrieval is consistent.
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;   #12: Instance found. SR006_parameter_retrieval is consistent.
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;   #13: Instance found. SR007_assessment_by_revision is consistent.
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;   #14: Instance found. SR007_parameter_by_revision is consistent.
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;   #15: Instance found. run$15 is consistent.
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;↑OK &amp;#x2705;&lt;/p&gt;
&lt;p&gt;今回の変更も、モデルに構造的な変化はなかった。&lt;/p&gt;
&lt;h3 id=&#34;sr008-最新版の参照&#34;&gt;SR008: 最新版の参照&lt;/h3&gt;
&lt;blockquote&gt;
&lt;p&gt;SR008 評価データおよびパラメータセットは、それぞれ高々1つの最新版を持たなければならない&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;この要件は、既に&lt;code&gt;Registry&lt;/code&gt;の設計レベルで保証されている。
保証しているのは、下記&lt;code&gt;current-&lt;/code&gt;の&lt;code&gt;lone&lt;/code&gt;参照だ:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#93a1a1;background-color:#002b36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-alloy&#34; data-lang=&#34;alloy&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;one&lt;/span&gt; &lt;span style=&#34;color:#268bd2&#34;&gt;sig&lt;/span&gt; Registry &lt;span style=&#34;color:#719e07&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#719e07&#34;&gt;one&lt;/span&gt; &lt;span style=&#34;color:#268bd2&#34;&gt;sig&lt;/span&gt; Registry &lt;span style=&#34;color:#719e07&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;	&lt;span style=&#34;color:#719e07&#34;&gt;var&lt;/span&gt; currentAssessmentData: AssessmentTarget &lt;span style=&#34;color:#719e07&#34;&gt;-&amp;gt;&lt;/span&gt; &lt;span style=&#34;color:#719e07&#34;&gt;lone&lt;/span&gt; AssessmentDataRevision,
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;	&lt;span style=&#34;color:#719e07&#34;&gt;var&lt;/span&gt; currentParameterSet: AssessmentTarget &lt;span style=&#34;color:#719e07&#34;&gt;-&amp;gt;&lt;/span&gt; &lt;span style=&#34;color:#719e07&#34;&gt;lone&lt;/span&gt; ParameterSetRevision,
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;	&lt;span style=&#34;color:#719e07&#34;&gt;var&lt;/span&gt; registeredAssessmentData: AssessmentTarget &lt;span style=&#34;color:#719e07&#34;&gt;-&amp;gt;&lt;/span&gt; &lt;span style=&#34;color:#719e07&#34;&gt;set&lt;/span&gt; AssessmentDataRevision,
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;	&lt;span style=&#34;color:#719e07&#34;&gt;var&lt;/span&gt; registeredParameterSet: AssessmentTarget &lt;span style=&#34;color:#719e07&#34;&gt;-&amp;gt;&lt;/span&gt; &lt;span style=&#34;color:#719e07&#34;&gt;set&lt;/span&gt; ParameterSetRevision,
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;	&lt;span style=&#34;color:#586e75&#34;&gt;// SR005: Track responses by HashKey (idempotency key) for idempotency verification&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;	&lt;span style=&#34;color:#719e07&#34;&gt;var&lt;/span&gt; responseLog: HashKey &lt;span style=&#34;color:#719e07&#34;&gt;-&amp;gt;&lt;/span&gt; &lt;span style=&#34;color:#719e07&#34;&gt;lone&lt;/span&gt; Response
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;一応、ここでも正常ケースを例示しておく:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#93a1a1;background-color:#002b36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-diff:moodel.als&#34; data-lang=&#34;diff:moodel.als&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; &lt;span style=&#34;color:#719e07&#34;&gt;run&lt;/span&gt; SR007_parameter_by_revision
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; 	&lt;span style=&#34;color:#719e07&#34;&gt;for&lt;/span&gt; &lt;span style=&#34;color:#2aa198&#34;&gt;2&lt;/span&gt; &lt;span style=&#34;color:#719e07&#34;&gt;but&lt;/span&gt; &lt;span style=&#34;color:#2aa198&#34;&gt;1&lt;/span&gt; AssessmentTarget, &lt;span style=&#34;color:#2aa198&#34;&gt;1&lt;/span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;..&lt;/span&gt;&lt;span style=&#34;color:#2aa198&#34;&gt;3&lt;/span&gt; &lt;span style=&#34;color:#719e07&#34;&gt;steps&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; 
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;+&lt;/span&gt;&lt;span style=&#34;color:#586e75&#34;&gt;// SR008: AssessmentData and ParameterSet each have at most one current revision&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;+&lt;/span&gt;&lt;span style=&#34;color:#586e75&#34;&gt;// (Enforced by the lone multiplicity of the current revision fields)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;+&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;+&lt;/span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;pred&lt;/span&gt; SR008_assessment_data_has_one_current_among_registered_revisions &lt;span style=&#34;color:#719e07&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;+&lt;/span&gt;	&lt;span style=&#34;color:#719e07&#34;&gt;eventually&lt;/span&gt; &lt;span style=&#34;color:#719e07&#34;&gt;(&lt;/span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;some&lt;/span&gt; at: AssessmentTarget,
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;+&lt;/span&gt;		&lt;span style=&#34;color:#719e07&#34;&gt;disj&lt;/span&gt; previousRevision, currentRevision: AssessmentDataRevision &lt;span style=&#34;color:#719e07&#34;&gt;|&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;+&lt;/span&gt;		previousRevision &lt;span style=&#34;color:#719e07&#34;&gt;+&lt;/span&gt; currentRevision &lt;span style=&#34;color:#719e07&#34;&gt;in&lt;/span&gt; Registry&lt;span style=&#34;color:#719e07&#34;&gt;.&lt;/span&gt;registeredAssessmentData&lt;span style=&#34;color:#719e07&#34;&gt;[&lt;/span&gt;at&lt;span style=&#34;color:#719e07&#34;&gt;]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;+&lt;/span&gt;		&lt;span style=&#34;color:#719e07&#34;&gt;and&lt;/span&gt; Registry&lt;span style=&#34;color:#719e07&#34;&gt;.&lt;/span&gt;currentAssessmentData&lt;span style=&#34;color:#719e07&#34;&gt;[&lt;/span&gt;at&lt;span style=&#34;color:#719e07&#34;&gt;]&lt;/span&gt; &lt;span style=&#34;color:#719e07&#34;&gt;=&lt;/span&gt; currentRevision&lt;span style=&#34;color:#719e07&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;+}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;+&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;+&lt;/span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;pred&lt;/span&gt; SR008_parameter_set_has_one_current_among_registered_revisions &lt;span style=&#34;color:#719e07&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;+&lt;/span&gt;	&lt;span style=&#34;color:#719e07&#34;&gt;eventually&lt;/span&gt; &lt;span style=&#34;color:#719e07&#34;&gt;(&lt;/span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;some&lt;/span&gt; at: AssessmentTarget,
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;+&lt;/span&gt;		&lt;span style=&#34;color:#719e07&#34;&gt;disj&lt;/span&gt; previousRevision, currentRevision: ParameterSetRevision &lt;span style=&#34;color:#719e07&#34;&gt;|&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;+&lt;/span&gt;		previousRevision &lt;span style=&#34;color:#719e07&#34;&gt;+&lt;/span&gt; currentRevision &lt;span style=&#34;color:#719e07&#34;&gt;in&lt;/span&gt; Registry&lt;span style=&#34;color:#719e07&#34;&gt;.&lt;/span&gt;registeredParameterSet&lt;span style=&#34;color:#719e07&#34;&gt;[&lt;/span&gt;at&lt;span style=&#34;color:#719e07&#34;&gt;]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;+&lt;/span&gt;		&lt;span style=&#34;color:#719e07&#34;&gt;and&lt;/span&gt; Registry&lt;span style=&#34;color:#719e07&#34;&gt;.&lt;/span&gt;currentParameterSet&lt;span style=&#34;color:#719e07&#34;&gt;[&lt;/span&gt;at&lt;span style=&#34;color:#719e07&#34;&gt;]&lt;/span&gt; &lt;span style=&#34;color:#719e07&#34;&gt;=&lt;/span&gt; currentRevision&lt;span style=&#34;color:#719e07&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;+}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;+&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;+&lt;/span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;run&lt;/span&gt; SR008_assessment_data_has_one_current_among_registered_revisions
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;+&lt;/span&gt;	&lt;span style=&#34;color:#719e07&#34;&gt;for&lt;/span&gt; &lt;span style=&#34;color:#2aa198&#34;&gt;3&lt;/span&gt; &lt;span style=&#34;color:#719e07&#34;&gt;but&lt;/span&gt; &lt;span style=&#34;color:#2aa198&#34;&gt;1&lt;/span&gt; AssessmentTarget, &lt;span style=&#34;color:#2aa198&#34;&gt;1&lt;/span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;..&lt;/span&gt;&lt;span style=&#34;color:#2aa198&#34;&gt;3&lt;/span&gt; &lt;span style=&#34;color:#719e07&#34;&gt;steps&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;+&lt;/span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;run&lt;/span&gt; SR008_parameter_set_has_one_current_among_registered_revisions
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;+&lt;/span&gt;	&lt;span style=&#34;color:#719e07&#34;&gt;for&lt;/span&gt; &lt;span style=&#34;color:#2aa198&#34;&gt;3&lt;/span&gt; &lt;span style=&#34;color:#719e07&#34;&gt;but&lt;/span&gt; &lt;span style=&#34;color:#2aa198&#34;&gt;1&lt;/span&gt; AssessmentTarget, &lt;span style=&#34;color:#2aa198&#34;&gt;1&lt;/span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;..&lt;/span&gt;&lt;span style=&#34;color:#2aa198&#34;&gt;3&lt;/span&gt; &lt;span style=&#34;color:#719e07&#34;&gt;steps&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;+&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; &lt;span style=&#34;color:#586e75&#34;&gt;/*  ============================================================
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#586e75&#34;&gt;     6. Sanity
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#586e75&#34;&gt;     ============================================================ */&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Execute All:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#93a1a1;background-color:#002b36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-fallback&#34; data-lang=&#34;fallback&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;17 commands were executed. The results are:
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;   #1: Instance found. SR001_registration is consistent.
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;   #2: Instance found. SR002_content_stability is consistent.
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;   #3: No counterexample found. SR003_new_version_on_change may be valid.
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;   #4: Instance found. SR003_assessment_update is consistent.
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;   #5: Instance found. SR003_parameter_update is consistent.
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;   #6: Instance found. SR004_revision_chain is consistent.
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;   #7: No counterexample found. SR005_idempotency may be valid.
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;   #8: Instance found. SR005_assessment_retry is consistent.
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;   #9: Instance found. SR005_parameter_retry is consistent.
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;   #10: No counterexample found. SR006_retrievability may be valid.
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;   #11: Instance found. SR006_assessment_retrieval is consistent.
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;   #12: Instance found. SR006_parameter_retrieval is consistent.
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;   #13: Instance found. SR007_assessment_by_revision is consistent.
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;   #14: Instance found. SR007_parameter_by_revision is consistent.
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;   #15: Instance found. SR008_assessment_current is consistent.
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;   #16: Instance found. SR008_parameter_current is consistent.
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;   #17: Instance found. run$17 is consistent.
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;↑ OK &amp;#x2705;&lt;/p&gt;
&lt;p&gt;正常系を図示する:
&lt;figure&gt;&lt;img src=&#34;https://rindrics.com/images/2026-07-29-data/sr008.webp&#34;
    alt=&#34;SR008を満たすケースの一例&#34;&gt;&lt;figcaption&gt;
      &lt;p&gt;SR008を満たすケースの一例&lt;/p&gt;
    &lt;/figcaption&gt;
&lt;/figure&gt;

↑この例では、RegistryはAssessmentDataRevision0を最新版として参照している。&lt;/p&gt;
&lt;h3 id=&#34;sr009-登録成功後の最新版の参照&#34;&gt;SR009: 登録成功後の最新版の参照&lt;/h3&gt;
&lt;blockquote&gt;
&lt;p&gt;SR009: 新しい版の登録成功後、最新版は新しい版を指さなければならない&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;この要件は、&lt;code&gt;registerAssessmentData&lt;/code&gt; などのpredの定義で保証済み。
具体的には下記の部分だ:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#93a1a1;background-color:#002b36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-alloy&#34; data-lang=&#34;alloy&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;pred&lt;/span&gt; registerAssessmentData&lt;span style=&#34;color:#719e07&#34;&gt;[&lt;/span&gt;at: AssessmentTarget, assessmentData: AssessmentData, idempotencyKey: HashKey&lt;span style=&#34;color:#719e07&#34;&gt;]&lt;/span&gt; &lt;span style=&#34;color:#719e07&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;	&lt;span style=&#34;color:#719e07&#34;&gt;some&lt;/span&gt; adr: AssessmentDataRevision &lt;span style=&#34;color:#719e07&#34;&gt;|&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;		idempotencyKey &lt;span style=&#34;color:#719e07&#34;&gt;=&lt;/span&gt; adr&lt;span style=&#34;color:#719e07&#34;&gt;.&lt;/span&gt;id &lt;span style=&#34;color:#719e07&#34;&gt;and&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;		adr&lt;span style=&#34;color:#719e07&#34;&gt;.&lt;/span&gt;assessmentData &lt;span style=&#34;color:#719e07&#34;&gt;=&lt;/span&gt; assessmentData &lt;span style=&#34;color:#719e07&#34;&gt;and&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;		Registry&lt;span style=&#34;color:#719e07&#34;&gt;.&lt;/span&gt;currentAssessmentData&lt;span style=&#34;color:#719e07&#34;&gt;&amp;#39;&lt;/span&gt; &lt;span style=&#34;color:#719e07&#34;&gt;=&lt;/span&gt; Registry&lt;span style=&#34;color:#719e07&#34;&gt;.&lt;/span&gt;currentAssessmentData &lt;span style=&#34;color:#719e07&#34;&gt;+&lt;/span&gt; at &lt;span style=&#34;color:#719e07&#34;&gt;-&amp;gt;&lt;/span&gt; adr &lt;span style=&#34;color:#719e07&#34;&gt;and&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;		Registry&lt;span style=&#34;color:#719e07&#34;&gt;.&lt;/span&gt;currentParameterSet&lt;span style=&#34;color:#719e07&#34;&gt;&amp;#39;&lt;/span&gt; &lt;span style=&#34;color:#719e07&#34;&gt;=&lt;/span&gt; Registry&lt;span style=&#34;color:#719e07&#34;&gt;.&lt;/span&gt;currentParameterSet &lt;span style=&#34;color:#719e07&#34;&gt;and&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;		&lt;span style=&#34;color:#719e07&#34;&gt;some&lt;/span&gt; r: Response &lt;span style=&#34;color:#719e07&#34;&gt;|&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;			r&lt;span style=&#34;color:#719e07&#34;&gt;.&lt;/span&gt;revision &lt;span style=&#34;color:#719e07&#34;&gt;=&lt;/span&gt; adr &lt;span style=&#34;color:#719e07&#34;&gt;and&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;			r&lt;span style=&#34;color:#719e07&#34;&gt;.&lt;/span&gt;status &lt;span style=&#34;color:#719e07&#34;&gt;=&lt;/span&gt; Success &lt;span style=&#34;color:#719e07&#34;&gt;and&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;			Registry&lt;span style=&#34;color:#719e07&#34;&gt;.&lt;/span&gt;responseLog&lt;span style=&#34;color:#719e07&#34;&gt;&amp;#39;&lt;/span&gt; &lt;span style=&#34;color:#719e07&#34;&gt;=&lt;/span&gt; Registry&lt;span style=&#34;color:#719e07&#34;&gt;.&lt;/span&gt;responseLog &lt;span style=&#34;color:#719e07&#34;&gt;+&lt;/span&gt; idempotencyKey &lt;span style=&#34;color:#719e07&#34;&gt;-&amp;gt;&lt;/span&gt; r
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;この定義は、例えば下記のような状況を表現している:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;code&gt;AssessmentTarget&lt;/code&gt;が&lt;code&gt;2026年度カタクチ太平洋&lt;/code&gt;、&lt;code&gt;currentAssessmentData&lt;/code&gt;が&lt;code&gt;someRevisionHash&lt;/code&gt;に紐づくデータである状態&lt;/li&gt;
&lt;li&gt;新しい登録リクエストが届く: 「&lt;code&gt;2026年度カタクチ太平洋&lt;/code&gt;、&lt;code&gt;新しいassessmentData&lt;/code&gt;、&lt;code&gt;新しいidempotency key&lt;/code&gt;」&lt;/li&gt;
&lt;li&gt;&lt;code&gt;newRevisionHash&lt;/code&gt;と紐づいた&lt;code&gt;currentAssessmentData&lt;/code&gt;が&lt;code&gt;2026年度のカタクチ太平洋&lt;/code&gt;の最新版として保持される&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;ここでも正常系を明示的に例示してみる:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#93a1a1;background-color:#002b36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-diff:model.als&#34; data-lang=&#34;diff:model.als&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; &lt;span style=&#34;color:#719e07&#34;&gt;run&lt;/span&gt; SR008_parameter_current
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; 	&lt;span style=&#34;color:#719e07&#34;&gt;for&lt;/span&gt; &lt;span style=&#34;color:#2aa198&#34;&gt;3&lt;/span&gt; &lt;span style=&#34;color:#719e07&#34;&gt;but&lt;/span&gt; &lt;span style=&#34;color:#2aa198&#34;&gt;1&lt;/span&gt; AssessmentTarget, &lt;span style=&#34;color:#2aa198&#34;&gt;1&lt;/span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;..&lt;/span&gt;&lt;span style=&#34;color:#2aa198&#34;&gt;3&lt;/span&gt; &lt;span style=&#34;color:#719e07&#34;&gt;steps&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; 
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;+&lt;/span&gt;&lt;span style=&#34;color:#586e75&#34;&gt;// SR009: Successful registration makes the new revision current&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;+&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;+&lt;/span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;pred&lt;/span&gt; SR009_assessment_advance &lt;span style=&#34;color:#719e07&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;+&lt;/span&gt;	&lt;span style=&#34;color:#719e07&#34;&gt;eventually&lt;/span&gt; &lt;span style=&#34;color:#719e07&#34;&gt;(&lt;/span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;some&lt;/span&gt; at: AssessmentTarget,
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;+&lt;/span&gt;		&lt;span style=&#34;color:#719e07&#34;&gt;disj&lt;/span&gt; previousRevision, newRevision: AssessmentDataRevision,
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;+&lt;/span&gt;		hk: HashKey &lt;span style=&#34;color:#719e07&#34;&gt;|&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;+&lt;/span&gt;		Registry&lt;span style=&#34;color:#719e07&#34;&gt;.&lt;/span&gt;currentAssessmentData&lt;span style=&#34;color:#719e07&#34;&gt;[&lt;/span&gt;at&lt;span style=&#34;color:#719e07&#34;&gt;]&lt;/span&gt; &lt;span style=&#34;color:#719e07&#34;&gt;=&lt;/span&gt; previousRevision
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;+&lt;/span&gt;		&lt;span style=&#34;color:#719e07&#34;&gt;and&lt;/span&gt; newRevision&lt;span style=&#34;color:#719e07&#34;&gt;.&lt;/span&gt;previousSource &lt;span style=&#34;color:#719e07&#34;&gt;=&lt;/span&gt; previousRevision
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;+&lt;/span&gt;		&lt;span style=&#34;color:#719e07&#34;&gt;and&lt;/span&gt; &lt;span style=&#34;color:#719e07&#34;&gt;no&lt;/span&gt; Registry&lt;span style=&#34;color:#719e07&#34;&gt;.&lt;/span&gt;responseLog&lt;span style=&#34;color:#719e07&#34;&gt;[&lt;/span&gt;hk&lt;span style=&#34;color:#719e07&#34;&gt;]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;+&lt;/span&gt;		&lt;span style=&#34;color:#719e07&#34;&gt;and&lt;/span&gt; registerAssessmentData&lt;span style=&#34;color:#719e07&#34;&gt;[&lt;/span&gt;at, newRevision, hk&lt;span style=&#34;color:#719e07&#34;&gt;]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;+&lt;/span&gt;		&lt;span style=&#34;color:#719e07&#34;&gt;and&lt;/span&gt; Registry&lt;span style=&#34;color:#719e07&#34;&gt;.&lt;/span&gt;currentAssessmentData&lt;span style=&#34;color:#719e07&#34;&gt;&amp;#39;[&lt;/span&gt;at&lt;span style=&#34;color:#719e07&#34;&gt;]&lt;/span&gt; &lt;span style=&#34;color:#719e07&#34;&gt;=&lt;/span&gt; newRevision&lt;span style=&#34;color:#719e07&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;+}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;+&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;+&lt;/span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;pred&lt;/span&gt; SR009_parameter_advance &lt;span style=&#34;color:#719e07&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;+&lt;/span&gt;	&lt;span style=&#34;color:#719e07&#34;&gt;eventually&lt;/span&gt; &lt;span style=&#34;color:#719e07&#34;&gt;(&lt;/span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;some&lt;/span&gt; at: AssessmentTarget,
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;+&lt;/span&gt;		&lt;span style=&#34;color:#719e07&#34;&gt;disj&lt;/span&gt; previousRevision, newRevision: ParameterSetRevision,
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;+&lt;/span&gt;		hk: HashKey &lt;span style=&#34;color:#719e07&#34;&gt;|&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;+&lt;/span&gt;		Registry&lt;span style=&#34;color:#719e07&#34;&gt;.&lt;/span&gt;currentParameterSet&lt;span style=&#34;color:#719e07&#34;&gt;[&lt;/span&gt;at&lt;span style=&#34;color:#719e07&#34;&gt;]&lt;/span&gt; &lt;span style=&#34;color:#719e07&#34;&gt;=&lt;/span&gt; previousRevision
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;+&lt;/span&gt;		&lt;span style=&#34;color:#719e07&#34;&gt;and&lt;/span&gt; newRevision&lt;span style=&#34;color:#719e07&#34;&gt;.&lt;/span&gt;previousSource &lt;span style=&#34;color:#719e07&#34;&gt;=&lt;/span&gt; previousRevision
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;+&lt;/span&gt;		&lt;span style=&#34;color:#719e07&#34;&gt;and&lt;/span&gt; &lt;span style=&#34;color:#719e07&#34;&gt;no&lt;/span&gt; Registry&lt;span style=&#34;color:#719e07&#34;&gt;.&lt;/span&gt;responseLog&lt;span style=&#34;color:#719e07&#34;&gt;[&lt;/span&gt;hk&lt;span style=&#34;color:#719e07&#34;&gt;]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;+&lt;/span&gt;		&lt;span style=&#34;color:#719e07&#34;&gt;and&lt;/span&gt; registerParameterSet&lt;span style=&#34;color:#719e07&#34;&gt;[&lt;/span&gt;at, newRevision, hk&lt;span style=&#34;color:#719e07&#34;&gt;]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;+&lt;/span&gt;		&lt;span style=&#34;color:#719e07&#34;&gt;and&lt;/span&gt; Registry&lt;span style=&#34;color:#719e07&#34;&gt;.&lt;/span&gt;currentParameterSet&lt;span style=&#34;color:#719e07&#34;&gt;&amp;#39;[&lt;/span&gt;at&lt;span style=&#34;color:#719e07&#34;&gt;]&lt;/span&gt; &lt;span style=&#34;color:#719e07&#34;&gt;=&lt;/span&gt; newRevision&lt;span style=&#34;color:#719e07&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;+}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;+&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;+&lt;/span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;run&lt;/span&gt; SR009_assessment_advance
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;+&lt;/span&gt;	&lt;span style=&#34;color:#719e07&#34;&gt;for&lt;/span&gt; &lt;span style=&#34;color:#2aa198&#34;&gt;3&lt;/span&gt; &lt;span style=&#34;color:#719e07&#34;&gt;but&lt;/span&gt; &lt;span style=&#34;color:#2aa198&#34;&gt;1&lt;/span&gt; AssessmentTarget, &lt;span style=&#34;color:#2aa198&#34;&gt;1&lt;/span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;..&lt;/span&gt;&lt;span style=&#34;color:#2aa198&#34;&gt;3&lt;/span&gt; &lt;span style=&#34;color:#719e07&#34;&gt;steps&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;+&lt;/span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;run&lt;/span&gt; SR009_parameter_advance
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;+&lt;/span&gt;	&lt;span style=&#34;color:#719e07&#34;&gt;for&lt;/span&gt; &lt;span style=&#34;color:#2aa198&#34;&gt;3&lt;/span&gt; &lt;span style=&#34;color:#719e07&#34;&gt;but&lt;/span&gt; &lt;span style=&#34;color:#2aa198&#34;&gt;1&lt;/span&gt; AssessmentTarget, &lt;span style=&#34;color:#2aa198&#34;&gt;1&lt;/span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;..&lt;/span&gt;&lt;span style=&#34;color:#2aa198&#34;&gt;3&lt;/span&gt; &lt;span style=&#34;color:#719e07&#34;&gt;steps&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;+&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; &lt;span style=&#34;color:#586e75&#34;&gt;/*  ============================================================
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#586e75&#34;&gt;     6. Sanity
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#586e75&#34;&gt;     ============================================================ */&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Execute Allはall green &amp;#x2705;&lt;/p&gt;
&lt;p&gt;&lt;figure&gt;&lt;img src=&#34;https://rindrics.com/images/2026-07-29-data/sr009.webp&#34;
    alt=&#34;SR009を満たすケースの一例&#34;&gt;&lt;figcaption&gt;
      &lt;p&gt;SR009を満たすケースの一例&lt;/p&gt;
    &lt;/figcaption&gt;
&lt;/figure&gt;

こちらも、モデルに構造的な変化は見られないように思う。&lt;/p&gt;
&lt;h3 id=&#34;sr010-不変性その3&#34;&gt;SR010: 不変性その3&lt;/h3&gt;
&lt;blockquote&gt;
&lt;p&gt;SR010: 新しい版が登録されても、過去の版を変更または削除してはならない&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;こちらは実装の責任なのでモデル検証はスキップ。&lt;/p&gt;
&lt;h3 id=&#34;モデル全体&#34;&gt;モデル全体&lt;/h3&gt;
&lt;p&gt;ここまでの検証で、Alloyのコード全体は最終的に下記のようになった:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#93a1a1;background-color:#002b36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-alloy:model.als&#34; data-lang=&#34;alloy:model.als&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;module&lt;/span&gt; DataRegistry
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#586e75&#34;&gt;/*  ============================================================
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#586e75&#34;&gt;    1. System Requirements
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#586e75&#34;&gt;    ============================================================ */&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#586e75&#34;&gt;// SR001: Each AssessmentData and ParameterSet should be managed through revisions.&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#586e75&#34;&gt;// SR002: The contents of a revision should not be modified after registration.&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#586e75&#34;&gt;// SR003: When modifying AssessmentData or ParameterSet, a new version must be created instead of updating the existing version.&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#586e75&#34;&gt;// SR004: A new version must reference exactly zero or one previous version as its source.&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#586e75&#34;&gt;// SR005: For registration requests with identical IdempotencyKey, the same result must be returned without creating duplicate versions.&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#586e75&#34;&gt;// SR006: After successful registration, the registered version must be retrievable via the retrieval API.&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#586e75&#34;&gt;// SR007: Retrieval requests specifying a version must return the contents recorded in that version.&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#586e75&#34;&gt;// SR008: AssessmentData and ParameterSet must each have at most one current version.&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#586e75&#34;&gt;// SR009: After successful registration of a new version, the current version must point to the new version.&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#586e75&#34;&gt;// SR010: Past versions must not be modified or deleted even after a new version is registered.&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#586e75&#34;&gt;/*  ============================================================
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#586e75&#34;&gt;    2. Domain
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#586e75&#34;&gt;    ============================================================ */&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#268bd2&#34;&gt;sig&lt;/span&gt; Resource &lt;span style=&#34;color:#719e07&#34;&gt;{}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#268bd2&#34;&gt;sig&lt;/span&gt; AnnualAssessment &lt;span style=&#34;color:#719e07&#34;&gt;{}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#268bd2&#34;&gt;sig&lt;/span&gt; AssessmentTarget &lt;span style=&#34;color:#719e07&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;	resource: &lt;span style=&#34;color:#719e07&#34;&gt;one&lt;/span&gt; Resource,
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    year: &lt;span style=&#34;color:#719e07&#34;&gt;one&lt;/span&gt; AnnualAssessment
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#268bd2&#34;&gt;sig&lt;/span&gt; AssessmentData &lt;span style=&#34;color:#719e07&#34;&gt;{}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#268bd2&#34;&gt;sig&lt;/span&gt; ParameterSet &lt;span style=&#34;color:#719e07&#34;&gt;{}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;abstract&lt;/span&gt; &lt;span style=&#34;color:#268bd2&#34;&gt;sig&lt;/span&gt; RevisionId &lt;span style=&#34;color:#719e07&#34;&gt;{}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#268bd2&#34;&gt;sig&lt;/span&gt; AssessmentDataRevisionId, ParameterSetRevisionId &lt;span style=&#34;color:#719e07&#34;&gt;extends&lt;/span&gt; RevisionId &lt;span style=&#34;color:#719e07&#34;&gt;{}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#268bd2&#34;&gt;sig&lt;/span&gt; HashKey &lt;span style=&#34;color:#719e07&#34;&gt;{}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;abstract&lt;/span&gt; &lt;span style=&#34;color:#268bd2&#34;&gt;sig&lt;/span&gt; Status &lt;span style=&#34;color:#719e07&#34;&gt;{}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;one&lt;/span&gt; &lt;span style=&#34;color:#268bd2&#34;&gt;sig&lt;/span&gt; Success, Failure &lt;span style=&#34;color:#719e07&#34;&gt;extends&lt;/span&gt; Status &lt;span style=&#34;color:#719e07&#34;&gt;{}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#268bd2&#34;&gt;sig&lt;/span&gt; Response &lt;span style=&#34;color:#719e07&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;	revision: &lt;span style=&#34;color:#719e07&#34;&gt;lone&lt;/span&gt; &lt;span style=&#34;color:#719e07&#34;&gt;(&lt;/span&gt;AssessmentDataRevision &lt;span style=&#34;color:#719e07&#34;&gt;+&lt;/span&gt; ParameterSetRevision&lt;span style=&#34;color:#719e07&#34;&gt;)&lt;/span&gt;,
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;	status: &lt;span style=&#34;color:#719e07&#34;&gt;one&lt;/span&gt; Status
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#586e75&#34;&gt;// SR002: Each revision has unique identifier&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#268bd2&#34;&gt;sig&lt;/span&gt; AssessmentDataRevision &lt;span style=&#34;color:#719e07&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;	id: &lt;span style=&#34;color:#719e07&#34;&gt;one&lt;/span&gt; AssessmentDataRevisionId,
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;	assessmentData: &lt;span style=&#34;color:#719e07&#34;&gt;one&lt;/span&gt; AssessmentData,
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;	previousSource: &lt;span style=&#34;color:#719e07&#34;&gt;lone&lt;/span&gt; AssessmentDataRevision
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#268bd2&#34;&gt;sig&lt;/span&gt; ParameterSetRevision &lt;span style=&#34;color:#719e07&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;	id: &lt;span style=&#34;color:#719e07&#34;&gt;one&lt;/span&gt; ParameterSetRevisionId,
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;	parameterSet: &lt;span style=&#34;color:#719e07&#34;&gt;one&lt;/span&gt; ParameterSet,
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;	previousSource: &lt;span style=&#34;color:#719e07&#34;&gt;lone&lt;/span&gt; ParameterSetRevision
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#586e75&#34;&gt;// SR002: Unique identifier enforcement&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;fact&lt;/span&gt; revisionIdUniqueAssessmentData &lt;span style=&#34;color:#719e07&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;	&lt;span style=&#34;color:#719e07&#34;&gt;all&lt;/span&gt; adr1, adr2: AssessmentDataRevision &lt;span style=&#34;color:#719e07&#34;&gt;|&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;		adr1&lt;span style=&#34;color:#719e07&#34;&gt;.&lt;/span&gt;id &lt;span style=&#34;color:#719e07&#34;&gt;=&lt;/span&gt; adr2&lt;span style=&#34;color:#719e07&#34;&gt;.&lt;/span&gt;id &lt;span style=&#34;color:#719e07&#34;&gt;implies&lt;/span&gt; adr1 &lt;span style=&#34;color:#719e07&#34;&gt;=&lt;/span&gt; adr2
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;fact&lt;/span&gt; revisionIdUniqueParameterSet &lt;span style=&#34;color:#719e07&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;	&lt;span style=&#34;color:#719e07&#34;&gt;all&lt;/span&gt; psr1, psr2: ParameterSetRevision &lt;span style=&#34;color:#719e07&#34;&gt;|&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;		psr1&lt;span style=&#34;color:#719e07&#34;&gt;.&lt;/span&gt;id &lt;span style=&#34;color:#719e07&#34;&gt;=&lt;/span&gt; psr2&lt;span style=&#34;color:#719e07&#34;&gt;.&lt;/span&gt;id &lt;span style=&#34;color:#719e07&#34;&gt;implies&lt;/span&gt; psr1 &lt;span style=&#34;color:#719e07&#34;&gt;=&lt;/span&gt; psr2
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;fact&lt;/span&gt; noCyclicSource &lt;span style=&#34;color:#719e07&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;	&lt;span style=&#34;color:#719e07&#34;&gt;all&lt;/span&gt; adr: AssessmentDataRevision &lt;span style=&#34;color:#719e07&#34;&gt;|&lt;/span&gt; adr not &lt;span style=&#34;color:#719e07&#34;&gt;in&lt;/span&gt; adr&lt;span style=&#34;color:#719e07&#34;&gt;.^&lt;/span&gt;previousSource
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;	&lt;span style=&#34;color:#719e07&#34;&gt;all&lt;/span&gt; psr: ParameterSetRevision &lt;span style=&#34;color:#719e07&#34;&gt;|&lt;/span&gt; psr not &lt;span style=&#34;color:#719e07&#34;&gt;in&lt;/span&gt; psr&lt;span style=&#34;color:#719e07&#34;&gt;.^&lt;/span&gt;previousSource
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#586e75&#34;&gt;/*  ============================================================
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#586e75&#34;&gt;    3. State
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#586e75&#34;&gt;    ============================================================ */&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;one&lt;/span&gt; &lt;span style=&#34;color:#268bd2&#34;&gt;sig&lt;/span&gt; Registry &lt;span style=&#34;color:#719e07&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;	&lt;span style=&#34;color:#719e07&#34;&gt;var&lt;/span&gt; currentAssessmentData: AssessmentTarget &lt;span style=&#34;color:#719e07&#34;&gt;-&amp;gt;&lt;/span&gt; &lt;span style=&#34;color:#719e07&#34;&gt;lone&lt;/span&gt; AssessmentDataRevision,
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;	&lt;span style=&#34;color:#719e07&#34;&gt;var&lt;/span&gt; currentParameterSet: AssessmentTarget &lt;span style=&#34;color:#719e07&#34;&gt;-&amp;gt;&lt;/span&gt; &lt;span style=&#34;color:#719e07&#34;&gt;lone&lt;/span&gt; ParameterSetRevision,
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;	&lt;span style=&#34;color:#719e07&#34;&gt;var&lt;/span&gt; registeredAssessmentData: AssessmentTarget &lt;span style=&#34;color:#719e07&#34;&gt;-&amp;gt;&lt;/span&gt; &lt;span style=&#34;color:#719e07&#34;&gt;set&lt;/span&gt; AssessmentDataRevision,
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;	&lt;span style=&#34;color:#719e07&#34;&gt;var&lt;/span&gt; registeredParameterSet: AssessmentTarget &lt;span style=&#34;color:#719e07&#34;&gt;-&amp;gt;&lt;/span&gt; &lt;span style=&#34;color:#719e07&#34;&gt;set&lt;/span&gt; ParameterSetRevision,
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;	&lt;span style=&#34;color:#586e75&#34;&gt;// SR005: Track responses by HashKey (idempotency key) for idempotency verification&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;	&lt;span style=&#34;color:#719e07&#34;&gt;var&lt;/span&gt; responseLog: HashKey &lt;span style=&#34;color:#719e07&#34;&gt;-&amp;gt;&lt;/span&gt; &lt;span style=&#34;color:#719e07&#34;&gt;lone&lt;/span&gt; Response
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#586e75&#34;&gt;/*  ============================================================
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#586e75&#34;&gt;    4. Operations
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#586e75&#34;&gt;    ============================================================ */&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;pred&lt;/span&gt; init &lt;span style=&#34;color:#719e07&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;	&lt;span style=&#34;color:#719e07&#34;&gt;no&lt;/span&gt; Registry&lt;span style=&#34;color:#719e07&#34;&gt;.&lt;/span&gt;currentAssessmentData
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;	&lt;span style=&#34;color:#719e07&#34;&gt;no&lt;/span&gt; Registry&lt;span style=&#34;color:#719e07&#34;&gt;.&lt;/span&gt;currentParameterSet
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;	&lt;span style=&#34;color:#719e07&#34;&gt;no&lt;/span&gt; Registry&lt;span style=&#34;color:#719e07&#34;&gt;.&lt;/span&gt;registeredAssessmentData
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;	&lt;span style=&#34;color:#719e07&#34;&gt;no&lt;/span&gt; Registry&lt;span style=&#34;color:#719e07&#34;&gt;.&lt;/span&gt;registeredParameterSet
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;	&lt;span style=&#34;color:#719e07&#34;&gt;no&lt;/span&gt; Registry&lt;span style=&#34;color:#719e07&#34;&gt;.&lt;/span&gt;responseLog
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#586e75&#34;&gt;// SR005: Log response by idempotency key&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;pred&lt;/span&gt; registerAssessmentData&lt;span style=&#34;color:#719e07&#34;&gt;[&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;	at: AssessmentTarget,
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;	adr: AssessmentDataRevision,
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;	idempotencyKey: HashKey
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;]&lt;/span&gt; &lt;span style=&#34;color:#719e07&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;	&lt;span style=&#34;color:#719e07&#34;&gt;(&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;		&lt;span style=&#34;color:#719e07&#34;&gt;no&lt;/span&gt; Registry&lt;span style=&#34;color:#719e07&#34;&gt;.&lt;/span&gt;responseLog&lt;span style=&#34;color:#719e07&#34;&gt;[&lt;/span&gt;idempotencyKey&lt;span style=&#34;color:#719e07&#34;&gt;]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;		&lt;span style=&#34;color:#719e07&#34;&gt;and&lt;/span&gt; &lt;span style=&#34;color:#719e07&#34;&gt;(&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;	&lt;span style=&#34;color:#719e07&#34;&gt;(&lt;/span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;no&lt;/span&gt; Registry&lt;span style=&#34;color:#719e07&#34;&gt;.&lt;/span&gt;currentAssessmentData&lt;span style=&#34;color:#719e07&#34;&gt;[&lt;/span&gt;at&lt;span style=&#34;color:#719e07&#34;&gt;]&lt;/span&gt; &lt;span style=&#34;color:#719e07&#34;&gt;and&lt;/span&gt; &lt;span style=&#34;color:#719e07&#34;&gt;no&lt;/span&gt; adr&lt;span style=&#34;color:#719e07&#34;&gt;.&lt;/span&gt;previousSource&lt;span style=&#34;color:#719e07&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;	&lt;span style=&#34;color:#719e07&#34;&gt;or&lt;/span&gt; &lt;span style=&#34;color:#719e07&#34;&gt;(&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;		&lt;span style=&#34;color:#719e07&#34;&gt;some&lt;/span&gt; Registry&lt;span style=&#34;color:#719e07&#34;&gt;.&lt;/span&gt;currentAssessmentData&lt;span style=&#34;color:#719e07&#34;&gt;[&lt;/span&gt;at&lt;span style=&#34;color:#719e07&#34;&gt;]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;		&lt;span style=&#34;color:#719e07&#34;&gt;and&lt;/span&gt; adr&lt;span style=&#34;color:#719e07&#34;&gt;.&lt;/span&gt;previousSource &lt;span style=&#34;color:#719e07&#34;&gt;=&lt;/span&gt; Registry&lt;span style=&#34;color:#719e07&#34;&gt;.&lt;/span&gt;currentAssessmentData&lt;span style=&#34;color:#719e07&#34;&gt;[&lt;/span&gt;at&lt;span style=&#34;color:#719e07&#34;&gt;]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;	&lt;span style=&#34;color:#719e07&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;		&lt;span style=&#34;color:#719e07&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;		&lt;span style=&#34;color:#719e07&#34;&gt;and&lt;/span&gt; Registry&lt;span style=&#34;color:#719e07&#34;&gt;.&lt;/span&gt;currentAssessmentData&lt;span style=&#34;color:#719e07&#34;&gt;&amp;#39;&lt;/span&gt; &lt;span style=&#34;color:#719e07&#34;&gt;=&lt;/span&gt; Registry&lt;span style=&#34;color:#719e07&#34;&gt;.&lt;/span&gt;currentAssessmentData &lt;span style=&#34;color:#719e07&#34;&gt;++&lt;/span&gt; at &lt;span style=&#34;color:#719e07&#34;&gt;-&amp;gt;&lt;/span&gt; adr
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;		&lt;span style=&#34;color:#719e07&#34;&gt;and&lt;/span&gt; Registry&lt;span style=&#34;color:#719e07&#34;&gt;.&lt;/span&gt;currentParameterSet&lt;span style=&#34;color:#719e07&#34;&gt;&amp;#39;&lt;/span&gt; &lt;span style=&#34;color:#719e07&#34;&gt;=&lt;/span&gt; Registry&lt;span style=&#34;color:#719e07&#34;&gt;.&lt;/span&gt;currentParameterSet
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;		&lt;span style=&#34;color:#719e07&#34;&gt;and&lt;/span&gt; Registry&lt;span style=&#34;color:#719e07&#34;&gt;.&lt;/span&gt;registeredAssessmentData&lt;span style=&#34;color:#719e07&#34;&gt;&amp;#39;&lt;/span&gt; &lt;span style=&#34;color:#719e07&#34;&gt;=&lt;/span&gt; Registry&lt;span style=&#34;color:#719e07&#34;&gt;.&lt;/span&gt;registeredAssessmentData &lt;span style=&#34;color:#719e07&#34;&gt;+&lt;/span&gt; at &lt;span style=&#34;color:#719e07&#34;&gt;-&amp;gt;&lt;/span&gt; adr
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;		&lt;span style=&#34;color:#719e07&#34;&gt;and&lt;/span&gt; Registry&lt;span style=&#34;color:#719e07&#34;&gt;.&lt;/span&gt;registeredParameterSet&lt;span style=&#34;color:#719e07&#34;&gt;&amp;#39;&lt;/span&gt; &lt;span style=&#34;color:#719e07&#34;&gt;=&lt;/span&gt; Registry&lt;span style=&#34;color:#719e07&#34;&gt;.&lt;/span&gt;registeredParameterSet
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;		&lt;span style=&#34;color:#719e07&#34;&gt;and&lt;/span&gt; &lt;span style=&#34;color:#719e07&#34;&gt;some&lt;/span&gt; r: Response &lt;span style=&#34;color:#719e07&#34;&gt;|&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;			r&lt;span style=&#34;color:#719e07&#34;&gt;.&lt;/span&gt;revision &lt;span style=&#34;color:#719e07&#34;&gt;=&lt;/span&gt; adr
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;			&lt;span style=&#34;color:#719e07&#34;&gt;and&lt;/span&gt; r&lt;span style=&#34;color:#719e07&#34;&gt;.&lt;/span&gt;status &lt;span style=&#34;color:#719e07&#34;&gt;=&lt;/span&gt; Success
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;			&lt;span style=&#34;color:#719e07&#34;&gt;and&lt;/span&gt; Registry&lt;span style=&#34;color:#719e07&#34;&gt;.&lt;/span&gt;responseLog&lt;span style=&#34;color:#719e07&#34;&gt;&amp;#39;&lt;/span&gt; &lt;span style=&#34;color:#719e07&#34;&gt;=&lt;/span&gt; Registry&lt;span style=&#34;color:#719e07&#34;&gt;.&lt;/span&gt;responseLog &lt;span style=&#34;color:#719e07&#34;&gt;+&lt;/span&gt; idempotencyKey &lt;span style=&#34;color:#719e07&#34;&gt;-&amp;gt;&lt;/span&gt; r
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;	&lt;span style=&#34;color:#719e07&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;	&lt;span style=&#34;color:#719e07&#34;&gt;or&lt;/span&gt; &lt;span style=&#34;color:#719e07&#34;&gt;(&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;		&lt;span style=&#34;color:#719e07&#34;&gt;some&lt;/span&gt; Registry&lt;span style=&#34;color:#719e07&#34;&gt;.&lt;/span&gt;responseLog&lt;span style=&#34;color:#719e07&#34;&gt;[&lt;/span&gt;idempotencyKey&lt;span style=&#34;color:#719e07&#34;&gt;]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;		&lt;span style=&#34;color:#719e07&#34;&gt;and&lt;/span&gt; Registry&lt;span style=&#34;color:#719e07&#34;&gt;.&lt;/span&gt;currentAssessmentData&lt;span style=&#34;color:#719e07&#34;&gt;&amp;#39;&lt;/span&gt; &lt;span style=&#34;color:#719e07&#34;&gt;=&lt;/span&gt; Registry&lt;span style=&#34;color:#719e07&#34;&gt;.&lt;/span&gt;currentAssessmentData
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;		&lt;span style=&#34;color:#719e07&#34;&gt;and&lt;/span&gt; Registry&lt;span style=&#34;color:#719e07&#34;&gt;.&lt;/span&gt;currentParameterSet&lt;span style=&#34;color:#719e07&#34;&gt;&amp;#39;&lt;/span&gt; &lt;span style=&#34;color:#719e07&#34;&gt;=&lt;/span&gt; Registry&lt;span style=&#34;color:#719e07&#34;&gt;.&lt;/span&gt;currentParameterSet
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;		&lt;span style=&#34;color:#719e07&#34;&gt;and&lt;/span&gt; Registry&lt;span style=&#34;color:#719e07&#34;&gt;.&lt;/span&gt;registeredAssessmentData&lt;span style=&#34;color:#719e07&#34;&gt;&amp;#39;&lt;/span&gt; &lt;span style=&#34;color:#719e07&#34;&gt;=&lt;/span&gt; Registry&lt;span style=&#34;color:#719e07&#34;&gt;.&lt;/span&gt;registeredAssessmentData
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;		&lt;span style=&#34;color:#719e07&#34;&gt;and&lt;/span&gt; Registry&lt;span style=&#34;color:#719e07&#34;&gt;.&lt;/span&gt;registeredParameterSet&lt;span style=&#34;color:#719e07&#34;&gt;&amp;#39;&lt;/span&gt; &lt;span style=&#34;color:#719e07&#34;&gt;=&lt;/span&gt; Registry&lt;span style=&#34;color:#719e07&#34;&gt;.&lt;/span&gt;registeredParameterSet
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;		&lt;span style=&#34;color:#719e07&#34;&gt;and&lt;/span&gt; Registry&lt;span style=&#34;color:#719e07&#34;&gt;.&lt;/span&gt;responseLog&lt;span style=&#34;color:#719e07&#34;&gt;&amp;#39;&lt;/span&gt; &lt;span style=&#34;color:#719e07&#34;&gt;=&lt;/span&gt; Registry&lt;span style=&#34;color:#719e07&#34;&gt;.&lt;/span&gt;responseLog
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;	&lt;span style=&#34;color:#719e07&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;pred&lt;/span&gt; registerParameterSet&lt;span style=&#34;color:#719e07&#34;&gt;[&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;	at: AssessmentTarget,
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;	psr: ParameterSetRevision,
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;	idempotencyKey: HashKey
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;]&lt;/span&gt; &lt;span style=&#34;color:#719e07&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;	&lt;span style=&#34;color:#719e07&#34;&gt;(&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;		&lt;span style=&#34;color:#719e07&#34;&gt;no&lt;/span&gt; Registry&lt;span style=&#34;color:#719e07&#34;&gt;.&lt;/span&gt;responseLog&lt;span style=&#34;color:#719e07&#34;&gt;[&lt;/span&gt;idempotencyKey&lt;span style=&#34;color:#719e07&#34;&gt;]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;		&lt;span style=&#34;color:#719e07&#34;&gt;and&lt;/span&gt; &lt;span style=&#34;color:#719e07&#34;&gt;(&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;	&lt;span style=&#34;color:#719e07&#34;&gt;(&lt;/span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;no&lt;/span&gt; Registry&lt;span style=&#34;color:#719e07&#34;&gt;.&lt;/span&gt;currentParameterSet&lt;span style=&#34;color:#719e07&#34;&gt;[&lt;/span&gt;at&lt;span style=&#34;color:#719e07&#34;&gt;]&lt;/span&gt; &lt;span style=&#34;color:#719e07&#34;&gt;and&lt;/span&gt; &lt;span style=&#34;color:#719e07&#34;&gt;no&lt;/span&gt; psr&lt;span style=&#34;color:#719e07&#34;&gt;.&lt;/span&gt;previousSource&lt;span style=&#34;color:#719e07&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;	&lt;span style=&#34;color:#719e07&#34;&gt;or&lt;/span&gt; &lt;span style=&#34;color:#719e07&#34;&gt;(&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;		&lt;span style=&#34;color:#719e07&#34;&gt;some&lt;/span&gt; Registry&lt;span style=&#34;color:#719e07&#34;&gt;.&lt;/span&gt;currentParameterSet&lt;span style=&#34;color:#719e07&#34;&gt;[&lt;/span&gt;at&lt;span style=&#34;color:#719e07&#34;&gt;]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;		&lt;span style=&#34;color:#719e07&#34;&gt;and&lt;/span&gt; psr&lt;span style=&#34;color:#719e07&#34;&gt;.&lt;/span&gt;previousSource &lt;span style=&#34;color:#719e07&#34;&gt;=&lt;/span&gt; Registry&lt;span style=&#34;color:#719e07&#34;&gt;.&lt;/span&gt;currentParameterSet&lt;span style=&#34;color:#719e07&#34;&gt;[&lt;/span&gt;at&lt;span style=&#34;color:#719e07&#34;&gt;]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;	&lt;span style=&#34;color:#719e07&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;		&lt;span style=&#34;color:#719e07&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;		&lt;span style=&#34;color:#719e07&#34;&gt;and&lt;/span&gt; Registry&lt;span style=&#34;color:#719e07&#34;&gt;.&lt;/span&gt;currentAssessmentData&lt;span style=&#34;color:#719e07&#34;&gt;&amp;#39;&lt;/span&gt; &lt;span style=&#34;color:#719e07&#34;&gt;=&lt;/span&gt; Registry&lt;span style=&#34;color:#719e07&#34;&gt;.&lt;/span&gt;currentAssessmentData
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;		&lt;span style=&#34;color:#719e07&#34;&gt;and&lt;/span&gt; Registry&lt;span style=&#34;color:#719e07&#34;&gt;.&lt;/span&gt;currentParameterSet&lt;span style=&#34;color:#719e07&#34;&gt;&amp;#39;&lt;/span&gt; &lt;span style=&#34;color:#719e07&#34;&gt;=&lt;/span&gt; Registry&lt;span style=&#34;color:#719e07&#34;&gt;.&lt;/span&gt;currentParameterSet &lt;span style=&#34;color:#719e07&#34;&gt;++&lt;/span&gt; at &lt;span style=&#34;color:#719e07&#34;&gt;-&amp;gt;&lt;/span&gt; psr
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;		&lt;span style=&#34;color:#719e07&#34;&gt;and&lt;/span&gt; Registry&lt;span style=&#34;color:#719e07&#34;&gt;.&lt;/span&gt;registeredAssessmentData&lt;span style=&#34;color:#719e07&#34;&gt;&amp;#39;&lt;/span&gt; &lt;span style=&#34;color:#719e07&#34;&gt;=&lt;/span&gt; Registry&lt;span style=&#34;color:#719e07&#34;&gt;.&lt;/span&gt;registeredAssessmentData
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;		&lt;span style=&#34;color:#719e07&#34;&gt;and&lt;/span&gt; Registry&lt;span style=&#34;color:#719e07&#34;&gt;.&lt;/span&gt;registeredParameterSet&lt;span style=&#34;color:#719e07&#34;&gt;&amp;#39;&lt;/span&gt; &lt;span style=&#34;color:#719e07&#34;&gt;=&lt;/span&gt; Registry&lt;span style=&#34;color:#719e07&#34;&gt;.&lt;/span&gt;registeredParameterSet &lt;span style=&#34;color:#719e07&#34;&gt;+&lt;/span&gt; at &lt;span style=&#34;color:#719e07&#34;&gt;-&amp;gt;&lt;/span&gt; psr
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;		&lt;span style=&#34;color:#719e07&#34;&gt;and&lt;/span&gt; &lt;span style=&#34;color:#719e07&#34;&gt;some&lt;/span&gt; r: Response &lt;span style=&#34;color:#719e07&#34;&gt;|&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;			r&lt;span style=&#34;color:#719e07&#34;&gt;.&lt;/span&gt;revision &lt;span style=&#34;color:#719e07&#34;&gt;=&lt;/span&gt; psr
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;			&lt;span style=&#34;color:#719e07&#34;&gt;and&lt;/span&gt; r&lt;span style=&#34;color:#719e07&#34;&gt;.&lt;/span&gt;status &lt;span style=&#34;color:#719e07&#34;&gt;=&lt;/span&gt; Success
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;			&lt;span style=&#34;color:#719e07&#34;&gt;and&lt;/span&gt; Registry&lt;span style=&#34;color:#719e07&#34;&gt;.&lt;/span&gt;responseLog&lt;span style=&#34;color:#719e07&#34;&gt;&amp;#39;&lt;/span&gt; &lt;span style=&#34;color:#719e07&#34;&gt;=&lt;/span&gt; Registry&lt;span style=&#34;color:#719e07&#34;&gt;.&lt;/span&gt;responseLog &lt;span style=&#34;color:#719e07&#34;&gt;+&lt;/span&gt; idempotencyKey &lt;span style=&#34;color:#719e07&#34;&gt;-&amp;gt;&lt;/span&gt; r
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;	&lt;span style=&#34;color:#719e07&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;	&lt;span style=&#34;color:#719e07&#34;&gt;or&lt;/span&gt; &lt;span style=&#34;color:#719e07&#34;&gt;(&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;		&lt;span style=&#34;color:#719e07&#34;&gt;some&lt;/span&gt; Registry&lt;span style=&#34;color:#719e07&#34;&gt;.&lt;/span&gt;responseLog&lt;span style=&#34;color:#719e07&#34;&gt;[&lt;/span&gt;idempotencyKey&lt;span style=&#34;color:#719e07&#34;&gt;]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;		&lt;span style=&#34;color:#719e07&#34;&gt;and&lt;/span&gt; Registry&lt;span style=&#34;color:#719e07&#34;&gt;.&lt;/span&gt;currentAssessmentData&lt;span style=&#34;color:#719e07&#34;&gt;&amp;#39;&lt;/span&gt; &lt;span style=&#34;color:#719e07&#34;&gt;=&lt;/span&gt; Registry&lt;span style=&#34;color:#719e07&#34;&gt;.&lt;/span&gt;currentAssessmentData
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;		&lt;span style=&#34;color:#719e07&#34;&gt;and&lt;/span&gt; Registry&lt;span style=&#34;color:#719e07&#34;&gt;.&lt;/span&gt;currentParameterSet&lt;span style=&#34;color:#719e07&#34;&gt;&amp;#39;&lt;/span&gt; &lt;span style=&#34;color:#719e07&#34;&gt;=&lt;/span&gt; Registry&lt;span style=&#34;color:#719e07&#34;&gt;.&lt;/span&gt;currentParameterSet
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;		&lt;span style=&#34;color:#719e07&#34;&gt;and&lt;/span&gt; Registry&lt;span style=&#34;color:#719e07&#34;&gt;.&lt;/span&gt;registeredAssessmentData&lt;span style=&#34;color:#719e07&#34;&gt;&amp;#39;&lt;/span&gt; &lt;span style=&#34;color:#719e07&#34;&gt;=&lt;/span&gt; Registry&lt;span style=&#34;color:#719e07&#34;&gt;.&lt;/span&gt;registeredAssessmentData
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;		&lt;span style=&#34;color:#719e07&#34;&gt;and&lt;/span&gt; Registry&lt;span style=&#34;color:#719e07&#34;&gt;.&lt;/span&gt;registeredParameterSet&lt;span style=&#34;color:#719e07&#34;&gt;&amp;#39;&lt;/span&gt; &lt;span style=&#34;color:#719e07&#34;&gt;=&lt;/span&gt; Registry&lt;span style=&#34;color:#719e07&#34;&gt;.&lt;/span&gt;registeredParameterSet
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;		&lt;span style=&#34;color:#719e07&#34;&gt;and&lt;/span&gt; Registry&lt;span style=&#34;color:#719e07&#34;&gt;.&lt;/span&gt;responseLog&lt;span style=&#34;color:#719e07&#34;&gt;&amp;#39;&lt;/span&gt; &lt;span style=&#34;color:#719e07&#34;&gt;=&lt;/span&gt; Registry&lt;span style=&#34;color:#719e07&#34;&gt;.&lt;/span&gt;responseLog
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;	&lt;span style=&#34;color:#719e07&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;pred&lt;/span&gt; stutter &lt;span style=&#34;color:#719e07&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;	Registry&lt;span style=&#34;color:#719e07&#34;&gt;.&lt;/span&gt;currentAssessmentData&lt;span style=&#34;color:#719e07&#34;&gt;&amp;#39;&lt;/span&gt; &lt;span style=&#34;color:#719e07&#34;&gt;=&lt;/span&gt; Registry&lt;span style=&#34;color:#719e07&#34;&gt;.&lt;/span&gt;currentAssessmentData
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;	Registry&lt;span style=&#34;color:#719e07&#34;&gt;.&lt;/span&gt;currentParameterSet&lt;span style=&#34;color:#719e07&#34;&gt;&amp;#39;&lt;/span&gt; &lt;span style=&#34;color:#719e07&#34;&gt;=&lt;/span&gt; Registry&lt;span style=&#34;color:#719e07&#34;&gt;.&lt;/span&gt;currentParameterSet
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;	Registry&lt;span style=&#34;color:#719e07&#34;&gt;.&lt;/span&gt;registeredAssessmentData&lt;span style=&#34;color:#719e07&#34;&gt;&amp;#39;&lt;/span&gt; &lt;span style=&#34;color:#719e07&#34;&gt;=&lt;/span&gt; Registry&lt;span style=&#34;color:#719e07&#34;&gt;.&lt;/span&gt;registeredAssessmentData
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;	Registry&lt;span style=&#34;color:#719e07&#34;&gt;.&lt;/span&gt;registeredParameterSet&lt;span style=&#34;color:#719e07&#34;&gt;&amp;#39;&lt;/span&gt; &lt;span style=&#34;color:#719e07&#34;&gt;=&lt;/span&gt; Registry&lt;span style=&#34;color:#719e07&#34;&gt;.&lt;/span&gt;registeredParameterSet
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;	Registry&lt;span style=&#34;color:#719e07&#34;&gt;.&lt;/span&gt;responseLog&lt;span style=&#34;color:#719e07&#34;&gt;&amp;#39;&lt;/span&gt; &lt;span style=&#34;color:#719e07&#34;&gt;=&lt;/span&gt; Registry&lt;span style=&#34;color:#719e07&#34;&gt;.&lt;/span&gt;responseLog
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;pred&lt;/span&gt; step &lt;span style=&#34;color:#719e07&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;	stutter
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;	&lt;span style=&#34;color:#719e07&#34;&gt;or&lt;/span&gt; &lt;span style=&#34;color:#719e07&#34;&gt;(&lt;/span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;some&lt;/span&gt; at: AssessmentTarget, adr: AssessmentDataRevision, hk: HashKey &lt;span style=&#34;color:#719e07&#34;&gt;|&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;		registerAssessmentData&lt;span style=&#34;color:#719e07&#34;&gt;[&lt;/span&gt;at, adr, hk&lt;span style=&#34;color:#719e07&#34;&gt;])&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;	&lt;span style=&#34;color:#719e07&#34;&gt;or&lt;/span&gt; &lt;span style=&#34;color:#719e07&#34;&gt;(&lt;/span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;some&lt;/span&gt; at: AssessmentTarget, psr: ParameterSetRevision, hk: HashKey &lt;span style=&#34;color:#719e07&#34;&gt;|&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;		registerParameterSet&lt;span style=&#34;color:#719e07&#34;&gt;[&lt;/span&gt;at, psr, hk&lt;span style=&#34;color:#719e07&#34;&gt;])&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;fact&lt;/span&gt; traces &lt;span style=&#34;color:#719e07&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;	init
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;	&lt;span style=&#34;color:#719e07&#34;&gt;always&lt;/span&gt; step
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#586e75&#34;&gt;/*  ============================================================
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#586e75&#34;&gt;    5. Properties
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#586e75&#34;&gt;    ============================================================ */&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#586e75&#34;&gt;// SR001: At most one current version per AssessmentTarget&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#586e75&#34;&gt;// (Automatically satisfied by Registry definition: lone AssessmentDataRevision)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;pred&lt;/span&gt; SR001_registration &lt;span style=&#34;color:#719e07&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;	&lt;span style=&#34;color:#719e07&#34;&gt;eventually&lt;/span&gt; &lt;span style=&#34;color:#719e07&#34;&gt;(&lt;/span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;some&lt;/span&gt; at: AssessmentTarget, adr: AssessmentDataRevision,
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;		psr: ParameterSetRevision &lt;span style=&#34;color:#719e07&#34;&gt;|&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;		Registry&lt;span style=&#34;color:#719e07&#34;&gt;.&lt;/span&gt;currentAssessmentData&lt;span style=&#34;color:#719e07&#34;&gt;[&lt;/span&gt;at&lt;span style=&#34;color:#719e07&#34;&gt;]&lt;/span&gt; &lt;span style=&#34;color:#719e07&#34;&gt;=&lt;/span&gt; adr
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;		&lt;span style=&#34;color:#719e07&#34;&gt;and&lt;/span&gt; Registry&lt;span style=&#34;color:#719e07&#34;&gt;.&lt;/span&gt;currentParameterSet&lt;span style=&#34;color:#719e07&#34;&gt;[&lt;/span&gt;at&lt;span style=&#34;color:#719e07&#34;&gt;]&lt;/span&gt; &lt;span style=&#34;color:#719e07&#34;&gt;=&lt;/span&gt; psr&lt;span style=&#34;color:#719e07&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;run&lt;/span&gt; SR001_registration &lt;span style=&#34;color:#719e07&#34;&gt;for&lt;/span&gt; &lt;span style=&#34;color:#2aa198&#34;&gt;2&lt;/span&gt; &lt;span style=&#34;color:#719e07&#34;&gt;but&lt;/span&gt; &lt;span style=&#34;color:#2aa198&#34;&gt;1&lt;/span&gt; AssessmentTarget, &lt;span style=&#34;color:#2aa198&#34;&gt;1&lt;/span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;..&lt;/span&gt;&lt;span style=&#34;color:#2aa198&#34;&gt;3&lt;/span&gt; &lt;span style=&#34;color:#719e07&#34;&gt;steps&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#586e75&#34;&gt;// SR002: The contents of a revision should not be modified after registration.&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#586e75&#34;&gt;// (Automatically satisfied by definition)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;pred&lt;/span&gt; SR002_content_stability &lt;span style=&#34;color:#719e07&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;	&lt;span style=&#34;color:#719e07&#34;&gt;eventually&lt;/span&gt; &lt;span style=&#34;color:#719e07&#34;&gt;(&lt;/span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;some&lt;/span&gt; at: AssessmentTarget,
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;		adr: AssessmentDataRevision, psr: ParameterSetRevision,
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;		data: AssessmentData, params: ParameterSet &lt;span style=&#34;color:#719e07&#34;&gt;|&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;		Registry&lt;span style=&#34;color:#719e07&#34;&gt;.&lt;/span&gt;currentAssessmentData&lt;span style=&#34;color:#719e07&#34;&gt;[&lt;/span&gt;at&lt;span style=&#34;color:#719e07&#34;&gt;]&lt;/span&gt; &lt;span style=&#34;color:#719e07&#34;&gt;=&lt;/span&gt; adr
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;		&lt;span style=&#34;color:#719e07&#34;&gt;and&lt;/span&gt; adr&lt;span style=&#34;color:#719e07&#34;&gt;.&lt;/span&gt;assessmentData &lt;span style=&#34;color:#719e07&#34;&gt;=&lt;/span&gt; data
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;		&lt;span style=&#34;color:#719e07&#34;&gt;and&lt;/span&gt; Registry&lt;span style=&#34;color:#719e07&#34;&gt;.&lt;/span&gt;currentParameterSet&lt;span style=&#34;color:#719e07&#34;&gt;[&lt;/span&gt;at&lt;span style=&#34;color:#719e07&#34;&gt;]&lt;/span&gt; &lt;span style=&#34;color:#719e07&#34;&gt;=&lt;/span&gt; psr
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;		&lt;span style=&#34;color:#719e07&#34;&gt;and&lt;/span&gt; psr&lt;span style=&#34;color:#719e07&#34;&gt;.&lt;/span&gt;parameterSet &lt;span style=&#34;color:#719e07&#34;&gt;=&lt;/span&gt; params
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;		&lt;span style=&#34;color:#719e07&#34;&gt;and&lt;/span&gt; &lt;span style=&#34;color:#719e07&#34;&gt;after&lt;/span&gt; &lt;span style=&#34;color:#719e07&#34;&gt;(&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;			Registry&lt;span style=&#34;color:#719e07&#34;&gt;.&lt;/span&gt;currentAssessmentData&lt;span style=&#34;color:#719e07&#34;&gt;[&lt;/span&gt;at&lt;span style=&#34;color:#719e07&#34;&gt;]&lt;/span&gt; &lt;span style=&#34;color:#719e07&#34;&gt;=&lt;/span&gt; adr
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;			&lt;span style=&#34;color:#719e07&#34;&gt;and&lt;/span&gt; adr&lt;span style=&#34;color:#719e07&#34;&gt;.&lt;/span&gt;assessmentData &lt;span style=&#34;color:#719e07&#34;&gt;=&lt;/span&gt; data
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;			&lt;span style=&#34;color:#719e07&#34;&gt;and&lt;/span&gt; Registry&lt;span style=&#34;color:#719e07&#34;&gt;.&lt;/span&gt;currentParameterSet&lt;span style=&#34;color:#719e07&#34;&gt;[&lt;/span&gt;at&lt;span style=&#34;color:#719e07&#34;&gt;]&lt;/span&gt; &lt;span style=&#34;color:#719e07&#34;&gt;=&lt;/span&gt; psr
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;			&lt;span style=&#34;color:#719e07&#34;&gt;and&lt;/span&gt; psr&lt;span style=&#34;color:#719e07&#34;&gt;.&lt;/span&gt;parameterSet &lt;span style=&#34;color:#719e07&#34;&gt;=&lt;/span&gt; params
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;		&lt;span style=&#34;color:#719e07&#34;&gt;))&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;run&lt;/span&gt; SR002_content_stability
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;	&lt;span style=&#34;color:#719e07&#34;&gt;for&lt;/span&gt; &lt;span style=&#34;color:#2aa198&#34;&gt;2&lt;/span&gt; &lt;span style=&#34;color:#719e07&#34;&gt;but&lt;/span&gt; &lt;span style=&#34;color:#2aa198&#34;&gt;1&lt;/span&gt; AssessmentTarget, &lt;span style=&#34;color:#2aa198&#34;&gt;1&lt;/span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;..&lt;/span&gt;&lt;span style=&#34;color:#2aa198&#34;&gt;4&lt;/span&gt; &lt;span style=&#34;color:#719e07&#34;&gt;steps&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#586e75&#34;&gt;// SR003: When modifying, a new version must be created instead of updating the existing version&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;assert&lt;/span&gt; SR003_new_version_on_change &lt;span style=&#34;color:#719e07&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;	&lt;span style=&#34;color:#719e07&#34;&gt;always&lt;/span&gt; &lt;span style=&#34;color:#719e07&#34;&gt;(&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;		&lt;span style=&#34;color:#719e07&#34;&gt;(&lt;/span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;all&lt;/span&gt; at: AssessmentTarget &lt;span style=&#34;color:#719e07&#34;&gt;|&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;			&lt;span style=&#34;color:#719e07&#34;&gt;(&lt;/span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;some&lt;/span&gt; Registry&lt;span style=&#34;color:#719e07&#34;&gt;.&lt;/span&gt;currentAssessmentData&lt;span style=&#34;color:#719e07&#34;&gt;[&lt;/span&gt;at&lt;span style=&#34;color:#719e07&#34;&gt;]&lt;/span&gt; &lt;span style=&#34;color:#719e07&#34;&gt;and&lt;/span&gt; &lt;span style=&#34;color:#719e07&#34;&gt;some&lt;/span&gt; Registry&lt;span style=&#34;color:#719e07&#34;&gt;.&lt;/span&gt;currentAssessmentData&lt;span style=&#34;color:#719e07&#34;&gt;&amp;#39;[&lt;/span&gt;at&lt;span style=&#34;color:#719e07&#34;&gt;])&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;			&lt;span style=&#34;color:#719e07&#34;&gt;implies&lt;/span&gt; Registry&lt;span style=&#34;color:#719e07&#34;&gt;.&lt;/span&gt;currentAssessmentData&lt;span style=&#34;color:#719e07&#34;&gt;[&lt;/span&gt;at&lt;span style=&#34;color:#719e07&#34;&gt;]&lt;/span&gt; &lt;span style=&#34;color:#719e07&#34;&gt;=&lt;/span&gt; Registry&lt;span style=&#34;color:#719e07&#34;&gt;.&lt;/span&gt;currentAssessmentData&lt;span style=&#34;color:#719e07&#34;&gt;&amp;#39;[&lt;/span&gt;at&lt;span style=&#34;color:#719e07&#34;&gt;]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;				&lt;span style=&#34;color:#719e07&#34;&gt;or&lt;/span&gt; Registry&lt;span style=&#34;color:#719e07&#34;&gt;.&lt;/span&gt;currentAssessmentData&lt;span style=&#34;color:#719e07&#34;&gt;&amp;#39;[&lt;/span&gt;at&lt;span style=&#34;color:#719e07&#34;&gt;]&lt;/span&gt; &lt;span style=&#34;color:#719e07&#34;&gt;in&lt;/span&gt; &lt;span style=&#34;color:#719e07&#34;&gt;(&lt;/span&gt;Registry&lt;span style=&#34;color:#719e07&#34;&gt;.&lt;/span&gt;currentAssessmentData&lt;span style=&#34;color:#719e07&#34;&gt;[&lt;/span&gt;at&lt;span style=&#34;color:#719e07&#34;&gt;]).~&lt;/span&gt;previousSource&lt;span style=&#34;color:#719e07&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;		&lt;span style=&#34;color:#719e07&#34;&gt;and&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;		&lt;span style=&#34;color:#719e07&#34;&gt;(&lt;/span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;all&lt;/span&gt; at: AssessmentTarget &lt;span style=&#34;color:#719e07&#34;&gt;|&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;			&lt;span style=&#34;color:#719e07&#34;&gt;(&lt;/span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;some&lt;/span&gt; Registry&lt;span style=&#34;color:#719e07&#34;&gt;.&lt;/span&gt;currentParameterSet&lt;span style=&#34;color:#719e07&#34;&gt;[&lt;/span&gt;at&lt;span style=&#34;color:#719e07&#34;&gt;]&lt;/span&gt; &lt;span style=&#34;color:#719e07&#34;&gt;and&lt;/span&gt; &lt;span style=&#34;color:#719e07&#34;&gt;some&lt;/span&gt; Registry&lt;span style=&#34;color:#719e07&#34;&gt;.&lt;/span&gt;currentParameterSet&lt;span style=&#34;color:#719e07&#34;&gt;&amp;#39;[&lt;/span&gt;at&lt;span style=&#34;color:#719e07&#34;&gt;])&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;			&lt;span style=&#34;color:#719e07&#34;&gt;implies&lt;/span&gt; Registry&lt;span style=&#34;color:#719e07&#34;&gt;.&lt;/span&gt;currentParameterSet&lt;span style=&#34;color:#719e07&#34;&gt;[&lt;/span&gt;at&lt;span style=&#34;color:#719e07&#34;&gt;]&lt;/span&gt; &lt;span style=&#34;color:#719e07&#34;&gt;=&lt;/span&gt; Registry&lt;span style=&#34;color:#719e07&#34;&gt;.&lt;/span&gt;currentParameterSet&lt;span style=&#34;color:#719e07&#34;&gt;&amp;#39;[&lt;/span&gt;at&lt;span style=&#34;color:#719e07&#34;&gt;]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;				&lt;span style=&#34;color:#719e07&#34;&gt;or&lt;/span&gt; Registry&lt;span style=&#34;color:#719e07&#34;&gt;.&lt;/span&gt;currentParameterSet&lt;span style=&#34;color:#719e07&#34;&gt;&amp;#39;[&lt;/span&gt;at&lt;span style=&#34;color:#719e07&#34;&gt;]&lt;/span&gt; &lt;span style=&#34;color:#719e07&#34;&gt;in&lt;/span&gt; &lt;span style=&#34;color:#719e07&#34;&gt;(&lt;/span&gt;Registry&lt;span style=&#34;color:#719e07&#34;&gt;.&lt;/span&gt;currentParameterSet&lt;span style=&#34;color:#719e07&#34;&gt;[&lt;/span&gt;at&lt;span style=&#34;color:#719e07&#34;&gt;]).~&lt;/span&gt;previousSource&lt;span style=&#34;color:#719e07&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;	&lt;span style=&#34;color:#719e07&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;check&lt;/span&gt; SR003_new_version_on_change &lt;span style=&#34;color:#719e07&#34;&gt;for&lt;/span&gt; &lt;span style=&#34;color:#2aa198&#34;&gt;2&lt;/span&gt; &lt;span style=&#34;color:#719e07&#34;&gt;but&lt;/span&gt; &lt;span style=&#34;color:#2aa198&#34;&gt;1&lt;/span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;..&lt;/span&gt;&lt;span style=&#34;color:#2aa198&#34;&gt;3&lt;/span&gt; &lt;span style=&#34;color:#719e07&#34;&gt;steps&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;pred&lt;/span&gt; SR003_assessment_update &lt;span style=&#34;color:#719e07&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;	&lt;span style=&#34;color:#719e07&#34;&gt;eventually&lt;/span&gt; &lt;span style=&#34;color:#719e07&#34;&gt;(&lt;/span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;some&lt;/span&gt; at: AssessmentTarget,
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;		source, newRevision: AssessmentDataRevision,
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;		hk: HashKey &lt;span style=&#34;color:#719e07&#34;&gt;|&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;		Registry&lt;span style=&#34;color:#719e07&#34;&gt;.&lt;/span&gt;currentAssessmentData&lt;span style=&#34;color:#719e07&#34;&gt;[&lt;/span&gt;at&lt;span style=&#34;color:#719e07&#34;&gt;]&lt;/span&gt; &lt;span style=&#34;color:#719e07&#34;&gt;=&lt;/span&gt; source
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;		&lt;span style=&#34;color:#719e07&#34;&gt;and&lt;/span&gt; source&lt;span style=&#34;color:#719e07&#34;&gt;.&lt;/span&gt;assessmentData &lt;span style=&#34;color:#719e07&#34;&gt;!=&lt;/span&gt; newRevision&lt;span style=&#34;color:#719e07&#34;&gt;.&lt;/span&gt;assessmentData
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;		&lt;span style=&#34;color:#719e07&#34;&gt;and&lt;/span&gt; newRevision&lt;span style=&#34;color:#719e07&#34;&gt;.&lt;/span&gt;previousSource &lt;span style=&#34;color:#719e07&#34;&gt;=&lt;/span&gt; source
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;		&lt;span style=&#34;color:#719e07&#34;&gt;and&lt;/span&gt; registerAssessmentData&lt;span style=&#34;color:#719e07&#34;&gt;[&lt;/span&gt;at, newRevision, hk&lt;span style=&#34;color:#719e07&#34;&gt;])&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;pred&lt;/span&gt; SR003_parameter_update &lt;span style=&#34;color:#719e07&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;	&lt;span style=&#34;color:#719e07&#34;&gt;eventually&lt;/span&gt; &lt;span style=&#34;color:#719e07&#34;&gt;(&lt;/span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;some&lt;/span&gt; at: AssessmentTarget,
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;		source, newRevision: ParameterSetRevision,
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;		hk: HashKey &lt;span style=&#34;color:#719e07&#34;&gt;|&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;		Registry&lt;span style=&#34;color:#719e07&#34;&gt;.&lt;/span&gt;currentParameterSet&lt;span style=&#34;color:#719e07&#34;&gt;[&lt;/span&gt;at&lt;span style=&#34;color:#719e07&#34;&gt;]&lt;/span&gt; &lt;span style=&#34;color:#719e07&#34;&gt;=&lt;/span&gt; source
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;		&lt;span style=&#34;color:#719e07&#34;&gt;and&lt;/span&gt; source&lt;span style=&#34;color:#719e07&#34;&gt;.&lt;/span&gt;parameterSet &lt;span style=&#34;color:#719e07&#34;&gt;!=&lt;/span&gt; newRevision&lt;span style=&#34;color:#719e07&#34;&gt;.&lt;/span&gt;parameterSet
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;		&lt;span style=&#34;color:#719e07&#34;&gt;and&lt;/span&gt; newRevision&lt;span style=&#34;color:#719e07&#34;&gt;.&lt;/span&gt;previousSource &lt;span style=&#34;color:#719e07&#34;&gt;=&lt;/span&gt; source
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;		&lt;span style=&#34;color:#719e07&#34;&gt;and&lt;/span&gt; registerParameterSet&lt;span style=&#34;color:#719e07&#34;&gt;[&lt;/span&gt;at, newRevision, hk&lt;span style=&#34;color:#719e07&#34;&gt;])&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;run&lt;/span&gt; SR003_assessment_update
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;	&lt;span style=&#34;color:#719e07&#34;&gt;for&lt;/span&gt; &lt;span style=&#34;color:#2aa198&#34;&gt;2&lt;/span&gt; &lt;span style=&#34;color:#719e07&#34;&gt;but&lt;/span&gt; &lt;span style=&#34;color:#2aa198&#34;&gt;1&lt;/span&gt; AssessmentTarget, &lt;span style=&#34;color:#2aa198&#34;&gt;1&lt;/span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;..&lt;/span&gt;&lt;span style=&#34;color:#2aa198&#34;&gt;3&lt;/span&gt; &lt;span style=&#34;color:#719e07&#34;&gt;steps&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;run&lt;/span&gt; SR003_parameter_update
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;	&lt;span style=&#34;color:#719e07&#34;&gt;for&lt;/span&gt; &lt;span style=&#34;color:#2aa198&#34;&gt;2&lt;/span&gt; &lt;span style=&#34;color:#719e07&#34;&gt;but&lt;/span&gt; &lt;span style=&#34;color:#2aa198&#34;&gt;1&lt;/span&gt; AssessmentTarget, &lt;span style=&#34;color:#2aa198&#34;&gt;1&lt;/span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;..&lt;/span&gt;&lt;span style=&#34;color:#2aa198&#34;&gt;3&lt;/span&gt; &lt;span style=&#34;color:#719e07&#34;&gt;steps&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#586e75&#34;&gt;// SR004: Each revision can reference exactly zero or one previous version&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#586e75&#34;&gt;// (Enforced by previousSource: lone field definition - no explicit assertion needed)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;pred&lt;/span&gt; SR004_revision_chain &lt;span style=&#34;color:#719e07&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;	&lt;span style=&#34;color:#719e07&#34;&gt;some&lt;/span&gt; rootAdr, derivedAdr: AssessmentDataRevision,
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;		rootPsr, derivedPsr: ParameterSetRevision &lt;span style=&#34;color:#719e07&#34;&gt;|&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;		rootAdr &lt;span style=&#34;color:#719e07&#34;&gt;!=&lt;/span&gt; derivedAdr
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;		&lt;span style=&#34;color:#719e07&#34;&gt;and&lt;/span&gt; &lt;span style=&#34;color:#719e07&#34;&gt;no&lt;/span&gt; rootAdr&lt;span style=&#34;color:#719e07&#34;&gt;.&lt;/span&gt;previousSource
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;		&lt;span style=&#34;color:#719e07&#34;&gt;and&lt;/span&gt; derivedAdr&lt;span style=&#34;color:#719e07&#34;&gt;.&lt;/span&gt;previousSource &lt;span style=&#34;color:#719e07&#34;&gt;=&lt;/span&gt; rootAdr
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;		&lt;span style=&#34;color:#719e07&#34;&gt;and&lt;/span&gt; rootPsr &lt;span style=&#34;color:#719e07&#34;&gt;!=&lt;/span&gt; derivedPsr
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;		&lt;span style=&#34;color:#719e07&#34;&gt;and&lt;/span&gt; &lt;span style=&#34;color:#719e07&#34;&gt;no&lt;/span&gt; rootPsr&lt;span style=&#34;color:#719e07&#34;&gt;.&lt;/span&gt;previousSource
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;		&lt;span style=&#34;color:#719e07&#34;&gt;and&lt;/span&gt; derivedPsr&lt;span style=&#34;color:#719e07&#34;&gt;.&lt;/span&gt;previousSource &lt;span style=&#34;color:#719e07&#34;&gt;=&lt;/span&gt; rootPsr
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;run&lt;/span&gt; SR004_revision_chain
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;	&lt;span style=&#34;color:#719e07&#34;&gt;for&lt;/span&gt; &lt;span style=&#34;color:#2aa198&#34;&gt;4&lt;/span&gt; &lt;span style=&#34;color:#719e07&#34;&gt;but&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;	&lt;span style=&#34;color:#719e07&#34;&gt;exactly&lt;/span&gt; &lt;span style=&#34;color:#2aa198&#34;&gt;2&lt;/span&gt; AssessmentDataRevision,
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;	&lt;span style=&#34;color:#719e07&#34;&gt;exactly&lt;/span&gt; &lt;span style=&#34;color:#2aa198&#34;&gt;2&lt;/span&gt; ParameterSetRevision,
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;	&lt;span style=&#34;color:#719e07&#34;&gt;exactly&lt;/span&gt; &lt;span style=&#34;color:#2aa198&#34;&gt;2&lt;/span&gt; AssessmentDataRevisionId,
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;	&lt;span style=&#34;color:#719e07&#34;&gt;exactly&lt;/span&gt; &lt;span style=&#34;color:#2aa198&#34;&gt;2&lt;/span&gt; ParameterSetRevisionId,
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;	&lt;span style=&#34;color:#2aa198&#34;&gt;1&lt;/span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;..&lt;/span&gt;&lt;span style=&#34;color:#2aa198&#34;&gt;2&lt;/span&gt; &lt;span style=&#34;color:#719e07&#34;&gt;steps&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#586e75&#34;&gt;// SR005: Idempotency - same HashKey (idempotency key) returns same response&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;assert&lt;/span&gt; SR005_idempotency &lt;span style=&#34;color:#719e07&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;	&lt;span style=&#34;color:#719e07&#34;&gt;always&lt;/span&gt; &lt;span style=&#34;color:#719e07&#34;&gt;(&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;		&lt;span style=&#34;color:#719e07&#34;&gt;all&lt;/span&gt; hk: HashKey &lt;span style=&#34;color:#719e07&#34;&gt;|&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;			&lt;span style=&#34;color:#719e07&#34;&gt;(&lt;/span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;some&lt;/span&gt; Registry&lt;span style=&#34;color:#719e07&#34;&gt;.&lt;/span&gt;responseLog&lt;span style=&#34;color:#719e07&#34;&gt;[&lt;/span&gt;hk&lt;span style=&#34;color:#719e07&#34;&gt;])&lt;/span&gt; &lt;span style=&#34;color:#719e07&#34;&gt;implies&lt;/span&gt; &lt;span style=&#34;color:#719e07&#34;&gt;always&lt;/span&gt; Registry&lt;span style=&#34;color:#719e07&#34;&gt;.&lt;/span&gt;responseLog&lt;span style=&#34;color:#719e07&#34;&gt;[&lt;/span&gt;hk&lt;span style=&#34;color:#719e07&#34;&gt;]&lt;/span&gt; &lt;span style=&#34;color:#719e07&#34;&gt;=&lt;/span&gt; Registry&lt;span style=&#34;color:#719e07&#34;&gt;.&lt;/span&gt;responseLog&lt;span style=&#34;color:#719e07&#34;&gt;&amp;#39;[&lt;/span&gt;hk&lt;span style=&#34;color:#719e07&#34;&gt;]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;	&lt;span style=&#34;color:#719e07&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;check&lt;/span&gt; SR005_idempotency &lt;span style=&#34;color:#719e07&#34;&gt;for&lt;/span&gt; &lt;span style=&#34;color:#2aa198&#34;&gt;2&lt;/span&gt; &lt;span style=&#34;color:#719e07&#34;&gt;but&lt;/span&gt; &lt;span style=&#34;color:#2aa198&#34;&gt;1&lt;/span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;..&lt;/span&gt;&lt;span style=&#34;color:#2aa198&#34;&gt;3&lt;/span&gt; &lt;span style=&#34;color:#719e07&#34;&gt;steps&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;pred&lt;/span&gt; SR005_assessment_retry &lt;span style=&#34;color:#719e07&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;	&lt;span style=&#34;color:#719e07&#34;&gt;some&lt;/span&gt; at: AssessmentTarget, adr: AssessmentDataRevision,
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;		hk: HashKey, r: Response &lt;span style=&#34;color:#719e07&#34;&gt;|&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;		&lt;span style=&#34;color:#719e07&#34;&gt;eventually&lt;/span&gt; &lt;span style=&#34;color:#719e07&#34;&gt;(&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;			&lt;span style=&#34;color:#719e07&#34;&gt;no&lt;/span&gt; Registry&lt;span style=&#34;color:#719e07&#34;&gt;.&lt;/span&gt;responseLog&lt;span style=&#34;color:#719e07&#34;&gt;[&lt;/span&gt;hk&lt;span style=&#34;color:#719e07&#34;&gt;]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;			&lt;span style=&#34;color:#719e07&#34;&gt;and&lt;/span&gt; registerAssessmentData&lt;span style=&#34;color:#719e07&#34;&gt;[&lt;/span&gt;at, adr, hk&lt;span style=&#34;color:#719e07&#34;&gt;]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;			&lt;span style=&#34;color:#719e07&#34;&gt;and&lt;/span&gt; Registry&lt;span style=&#34;color:#719e07&#34;&gt;.&lt;/span&gt;responseLog&lt;span style=&#34;color:#719e07&#34;&gt;&amp;#39;[&lt;/span&gt;hk&lt;span style=&#34;color:#719e07&#34;&gt;]&lt;/span&gt; &lt;span style=&#34;color:#719e07&#34;&gt;=&lt;/span&gt; r
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;			&lt;span style=&#34;color:#719e07&#34;&gt;and&lt;/span&gt; &lt;span style=&#34;color:#719e07&#34;&gt;after&lt;/span&gt; &lt;span style=&#34;color:#719e07&#34;&gt;(&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;				Registry&lt;span style=&#34;color:#719e07&#34;&gt;.&lt;/span&gt;responseLog&lt;span style=&#34;color:#719e07&#34;&gt;[&lt;/span&gt;hk&lt;span style=&#34;color:#719e07&#34;&gt;]&lt;/span&gt; &lt;span style=&#34;color:#719e07&#34;&gt;=&lt;/span&gt; r
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;				&lt;span style=&#34;color:#719e07&#34;&gt;and&lt;/span&gt; registerAssessmentData&lt;span style=&#34;color:#719e07&#34;&gt;[&lt;/span&gt;at, adr, hk&lt;span style=&#34;color:#719e07&#34;&gt;]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;				&lt;span style=&#34;color:#719e07&#34;&gt;and&lt;/span&gt; Registry&lt;span style=&#34;color:#719e07&#34;&gt;.&lt;/span&gt;responseLog&lt;span style=&#34;color:#719e07&#34;&gt;&amp;#39;[&lt;/span&gt;hk&lt;span style=&#34;color:#719e07&#34;&gt;]&lt;/span&gt; &lt;span style=&#34;color:#719e07&#34;&gt;=&lt;/span&gt; r
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;			&lt;span style=&#34;color:#719e07&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;		&lt;span style=&#34;color:#719e07&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;pred&lt;/span&gt; SR005_parameter_retry &lt;span style=&#34;color:#719e07&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;	&lt;span style=&#34;color:#719e07&#34;&gt;some&lt;/span&gt; at: AssessmentTarget, psr: ParameterSetRevision,
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;		hk: HashKey, r: Response &lt;span style=&#34;color:#719e07&#34;&gt;|&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;		&lt;span style=&#34;color:#719e07&#34;&gt;eventually&lt;/span&gt; &lt;span style=&#34;color:#719e07&#34;&gt;(&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;			&lt;span style=&#34;color:#719e07&#34;&gt;no&lt;/span&gt; Registry&lt;span style=&#34;color:#719e07&#34;&gt;.&lt;/span&gt;responseLog&lt;span style=&#34;color:#719e07&#34;&gt;[&lt;/span&gt;hk&lt;span style=&#34;color:#719e07&#34;&gt;]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;			&lt;span style=&#34;color:#719e07&#34;&gt;and&lt;/span&gt; registerParameterSet&lt;span style=&#34;color:#719e07&#34;&gt;[&lt;/span&gt;at, psr, hk&lt;span style=&#34;color:#719e07&#34;&gt;]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;			&lt;span style=&#34;color:#719e07&#34;&gt;and&lt;/span&gt; Registry&lt;span style=&#34;color:#719e07&#34;&gt;.&lt;/span&gt;responseLog&lt;span style=&#34;color:#719e07&#34;&gt;&amp;#39;[&lt;/span&gt;hk&lt;span style=&#34;color:#719e07&#34;&gt;]&lt;/span&gt; &lt;span style=&#34;color:#719e07&#34;&gt;=&lt;/span&gt; r
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;			&lt;span style=&#34;color:#719e07&#34;&gt;and&lt;/span&gt; &lt;span style=&#34;color:#719e07&#34;&gt;after&lt;/span&gt; &lt;span style=&#34;color:#719e07&#34;&gt;(&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;				Registry&lt;span style=&#34;color:#719e07&#34;&gt;.&lt;/span&gt;responseLog&lt;span style=&#34;color:#719e07&#34;&gt;[&lt;/span&gt;hk&lt;span style=&#34;color:#719e07&#34;&gt;]&lt;/span&gt; &lt;span style=&#34;color:#719e07&#34;&gt;=&lt;/span&gt; r
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;				&lt;span style=&#34;color:#719e07&#34;&gt;and&lt;/span&gt; registerParameterSet&lt;span style=&#34;color:#719e07&#34;&gt;[&lt;/span&gt;at, psr, hk&lt;span style=&#34;color:#719e07&#34;&gt;]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;				&lt;span style=&#34;color:#719e07&#34;&gt;and&lt;/span&gt; Registry&lt;span style=&#34;color:#719e07&#34;&gt;.&lt;/span&gt;responseLog&lt;span style=&#34;color:#719e07&#34;&gt;&amp;#39;[&lt;/span&gt;hk&lt;span style=&#34;color:#719e07&#34;&gt;]&lt;/span&gt; &lt;span style=&#34;color:#719e07&#34;&gt;=&lt;/span&gt; r
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;			&lt;span style=&#34;color:#719e07&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;		&lt;span style=&#34;color:#719e07&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;run&lt;/span&gt; SR005_assessment_retry
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;	&lt;span style=&#34;color:#719e07&#34;&gt;for&lt;/span&gt; &lt;span style=&#34;color:#2aa198&#34;&gt;2&lt;/span&gt; &lt;span style=&#34;color:#719e07&#34;&gt;but&lt;/span&gt; &lt;span style=&#34;color:#2aa198&#34;&gt;1&lt;/span&gt; AssessmentTarget, &lt;span style=&#34;color:#2aa198&#34;&gt;1&lt;/span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;..&lt;/span&gt;&lt;span style=&#34;color:#2aa198&#34;&gt;3&lt;/span&gt; &lt;span style=&#34;color:#719e07&#34;&gt;steps&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;run&lt;/span&gt; SR005_parameter_retry
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;	&lt;span style=&#34;color:#719e07&#34;&gt;for&lt;/span&gt; &lt;span style=&#34;color:#2aa198&#34;&gt;2&lt;/span&gt; &lt;span style=&#34;color:#719e07&#34;&gt;but&lt;/span&gt; &lt;span style=&#34;color:#2aa198&#34;&gt;1&lt;/span&gt; AssessmentTarget, &lt;span style=&#34;color:#2aa198&#34;&gt;1&lt;/span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;..&lt;/span&gt;&lt;span style=&#34;color:#2aa198&#34;&gt;3&lt;/span&gt; &lt;span style=&#34;color:#719e07&#34;&gt;steps&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#586e75&#34;&gt;// SR006: After successful registration, the registered version must be retrievable&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#586e75&#34;&gt;// If response is logged as successful, the revision must remain registered&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;assert&lt;/span&gt; SR006_retrievability &lt;span style=&#34;color:#719e07&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;	&lt;span style=&#34;color:#719e07&#34;&gt;always&lt;/span&gt; &lt;span style=&#34;color:#719e07&#34;&gt;(&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;		&lt;span style=&#34;color:#719e07&#34;&gt;all&lt;/span&gt; hk: HashKey, r: Response &lt;span style=&#34;color:#719e07&#34;&gt;|&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;			&lt;span style=&#34;color:#719e07&#34;&gt;(&lt;/span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;some&lt;/span&gt; Registry&lt;span style=&#34;color:#719e07&#34;&gt;.&lt;/span&gt;responseLog&lt;span style=&#34;color:#719e07&#34;&gt;[&lt;/span&gt;hk&lt;span style=&#34;color:#719e07&#34;&gt;]&lt;/span&gt; &lt;span style=&#34;color:#719e07&#34;&gt;and&lt;/span&gt; Registry&lt;span style=&#34;color:#719e07&#34;&gt;.&lt;/span&gt;responseLog&lt;span style=&#34;color:#719e07&#34;&gt;[&lt;/span&gt;hk&lt;span style=&#34;color:#719e07&#34;&gt;]&lt;/span&gt; &lt;span style=&#34;color:#719e07&#34;&gt;=&lt;/span&gt; r &lt;span style=&#34;color:#719e07&#34;&gt;and&lt;/span&gt; r&lt;span style=&#34;color:#719e07&#34;&gt;.&lt;/span&gt;status &lt;span style=&#34;color:#719e07&#34;&gt;=&lt;/span&gt; Success&lt;span style=&#34;color:#719e07&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;			&lt;span style=&#34;color:#719e07&#34;&gt;implies&lt;/span&gt; &lt;span style=&#34;color:#719e07&#34;&gt;(&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;				&lt;span style=&#34;color:#719e07&#34;&gt;(&lt;/span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;some&lt;/span&gt; at: AssessmentTarget, adr: AssessmentDataRevision &lt;span style=&#34;color:#719e07&#34;&gt;|&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;					r&lt;span style=&#34;color:#719e07&#34;&gt;.&lt;/span&gt;revision &lt;span style=&#34;color:#719e07&#34;&gt;=&lt;/span&gt; adr &lt;span style=&#34;color:#719e07&#34;&gt;and&lt;/span&gt; adr &lt;span style=&#34;color:#719e07&#34;&gt;in&lt;/span&gt; Registry&lt;span style=&#34;color:#719e07&#34;&gt;.&lt;/span&gt;registeredAssessmentData&lt;span style=&#34;color:#719e07&#34;&gt;[&lt;/span&gt;at&lt;span style=&#34;color:#719e07&#34;&gt;])&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;				&lt;span style=&#34;color:#719e07&#34;&gt;or&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;				&lt;span style=&#34;color:#719e07&#34;&gt;(&lt;/span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;some&lt;/span&gt; at: AssessmentTarget, psr: ParameterSetRevision &lt;span style=&#34;color:#719e07&#34;&gt;|&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;					r&lt;span style=&#34;color:#719e07&#34;&gt;.&lt;/span&gt;revision &lt;span style=&#34;color:#719e07&#34;&gt;=&lt;/span&gt; psr &lt;span style=&#34;color:#719e07&#34;&gt;and&lt;/span&gt; psr &lt;span style=&#34;color:#719e07&#34;&gt;in&lt;/span&gt; Registry&lt;span style=&#34;color:#719e07&#34;&gt;.&lt;/span&gt;registeredParameterSet&lt;span style=&#34;color:#719e07&#34;&gt;[&lt;/span&gt;at&lt;span style=&#34;color:#719e07&#34;&gt;])&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;			&lt;span style=&#34;color:#719e07&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;	&lt;span style=&#34;color:#719e07&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;check&lt;/span&gt; SR006_retrievability &lt;span style=&#34;color:#719e07&#34;&gt;for&lt;/span&gt; &lt;span style=&#34;color:#2aa198&#34;&gt;2&lt;/span&gt; &lt;span style=&#34;color:#719e07&#34;&gt;but&lt;/span&gt; &lt;span style=&#34;color:#2aa198&#34;&gt;1&lt;/span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;..&lt;/span&gt;&lt;span style=&#34;color:#2aa198&#34;&gt;3&lt;/span&gt; &lt;span style=&#34;color:#719e07&#34;&gt;steps&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;pred&lt;/span&gt; SR006_assessment_retrieval &lt;span style=&#34;color:#719e07&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;	&lt;span style=&#34;color:#719e07&#34;&gt;eventually&lt;/span&gt; &lt;span style=&#34;color:#719e07&#34;&gt;(&lt;/span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;some&lt;/span&gt; at: AssessmentTarget, adr: AssessmentDataRevision,
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;		hk: HashKey, r: Response &lt;span style=&#34;color:#719e07&#34;&gt;|&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;		Registry&lt;span style=&#34;color:#719e07&#34;&gt;.&lt;/span&gt;responseLog&lt;span style=&#34;color:#719e07&#34;&gt;[&lt;/span&gt;hk&lt;span style=&#34;color:#719e07&#34;&gt;]&lt;/span&gt; &lt;span style=&#34;color:#719e07&#34;&gt;=&lt;/span&gt; r
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;		&lt;span style=&#34;color:#719e07&#34;&gt;and&lt;/span&gt; r&lt;span style=&#34;color:#719e07&#34;&gt;.&lt;/span&gt;status &lt;span style=&#34;color:#719e07&#34;&gt;=&lt;/span&gt; Success
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;		&lt;span style=&#34;color:#719e07&#34;&gt;and&lt;/span&gt; r&lt;span style=&#34;color:#719e07&#34;&gt;.&lt;/span&gt;revision &lt;span style=&#34;color:#719e07&#34;&gt;=&lt;/span&gt; adr
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;		&lt;span style=&#34;color:#719e07&#34;&gt;and&lt;/span&gt; adr &lt;span style=&#34;color:#719e07&#34;&gt;in&lt;/span&gt; Registry&lt;span style=&#34;color:#719e07&#34;&gt;.&lt;/span&gt;registeredAssessmentData&lt;span style=&#34;color:#719e07&#34;&gt;[&lt;/span&gt;at&lt;span style=&#34;color:#719e07&#34;&gt;])&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;pred&lt;/span&gt; SR006_parameter_retrieval &lt;span style=&#34;color:#719e07&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;	&lt;span style=&#34;color:#719e07&#34;&gt;eventually&lt;/span&gt; &lt;span style=&#34;color:#719e07&#34;&gt;(&lt;/span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;some&lt;/span&gt; at: AssessmentTarget, psr: ParameterSetRevision,
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;		hk: HashKey, r: Response &lt;span style=&#34;color:#719e07&#34;&gt;|&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;		Registry&lt;span style=&#34;color:#719e07&#34;&gt;.&lt;/span&gt;responseLog&lt;span style=&#34;color:#719e07&#34;&gt;[&lt;/span&gt;hk&lt;span style=&#34;color:#719e07&#34;&gt;]&lt;/span&gt; &lt;span style=&#34;color:#719e07&#34;&gt;=&lt;/span&gt; r
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;		&lt;span style=&#34;color:#719e07&#34;&gt;and&lt;/span&gt; r&lt;span style=&#34;color:#719e07&#34;&gt;.&lt;/span&gt;status &lt;span style=&#34;color:#719e07&#34;&gt;=&lt;/span&gt; Success
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;		&lt;span style=&#34;color:#719e07&#34;&gt;and&lt;/span&gt; r&lt;span style=&#34;color:#719e07&#34;&gt;.&lt;/span&gt;revision &lt;span style=&#34;color:#719e07&#34;&gt;=&lt;/span&gt; psr
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;		&lt;span style=&#34;color:#719e07&#34;&gt;and&lt;/span&gt; psr &lt;span style=&#34;color:#719e07&#34;&gt;in&lt;/span&gt; Registry&lt;span style=&#34;color:#719e07&#34;&gt;.&lt;/span&gt;registeredParameterSet&lt;span style=&#34;color:#719e07&#34;&gt;[&lt;/span&gt;at&lt;span style=&#34;color:#719e07&#34;&gt;])&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;run&lt;/span&gt; SR006_assessment_retrieval
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;	&lt;span style=&#34;color:#719e07&#34;&gt;for&lt;/span&gt; &lt;span style=&#34;color:#2aa198&#34;&gt;2&lt;/span&gt; &lt;span style=&#34;color:#719e07&#34;&gt;but&lt;/span&gt; &lt;span style=&#34;color:#2aa198&#34;&gt;1&lt;/span&gt; AssessmentTarget, &lt;span style=&#34;color:#2aa198&#34;&gt;1&lt;/span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;..&lt;/span&gt;&lt;span style=&#34;color:#2aa198&#34;&gt;3&lt;/span&gt; &lt;span style=&#34;color:#719e07&#34;&gt;steps&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;run&lt;/span&gt; SR006_parameter_retrieval
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;	&lt;span style=&#34;color:#719e07&#34;&gt;for&lt;/span&gt; &lt;span style=&#34;color:#2aa198&#34;&gt;2&lt;/span&gt; &lt;span style=&#34;color:#719e07&#34;&gt;but&lt;/span&gt; &lt;span style=&#34;color:#2aa198&#34;&gt;1&lt;/span&gt; AssessmentTarget, &lt;span style=&#34;color:#2aa198&#34;&gt;1&lt;/span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;..&lt;/span&gt;&lt;span style=&#34;color:#2aa198&#34;&gt;3&lt;/span&gt; &lt;span style=&#34;color:#719e07&#34;&gt;steps&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#586e75&#34;&gt;// SR007: Retrieval requests return the contents recorded in that version&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#586e75&#34;&gt;// (Automatically satisfied because revision content is immutable)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;pred&lt;/span&gt; SR007_assessment_by_revision &lt;span style=&#34;color:#719e07&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;	&lt;span style=&#34;color:#719e07&#34;&gt;eventually&lt;/span&gt; &lt;span style=&#34;color:#719e07&#34;&gt;(&lt;/span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;some&lt;/span&gt; at: AssessmentTarget, adr: AssessmentDataRevision,
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;		data: AssessmentData &lt;span style=&#34;color:#719e07&#34;&gt;|&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;		adr &lt;span style=&#34;color:#719e07&#34;&gt;in&lt;/span&gt; Registry&lt;span style=&#34;color:#719e07&#34;&gt;.&lt;/span&gt;registeredAssessmentData&lt;span style=&#34;color:#719e07&#34;&gt;[&lt;/span&gt;at&lt;span style=&#34;color:#719e07&#34;&gt;]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;		&lt;span style=&#34;color:#719e07&#34;&gt;and&lt;/span&gt; data &lt;span style=&#34;color:#719e07&#34;&gt;=&lt;/span&gt; adr&lt;span style=&#34;color:#719e07&#34;&gt;.&lt;/span&gt;assessmentData&lt;span style=&#34;color:#719e07&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;pred&lt;/span&gt; SR007_parameter_by_revision &lt;span style=&#34;color:#719e07&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;	&lt;span style=&#34;color:#719e07&#34;&gt;eventually&lt;/span&gt; &lt;span style=&#34;color:#719e07&#34;&gt;(&lt;/span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;some&lt;/span&gt; at: AssessmentTarget, psr: ParameterSetRevision,
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;		params: ParameterSet &lt;span style=&#34;color:#719e07&#34;&gt;|&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;		psr &lt;span style=&#34;color:#719e07&#34;&gt;in&lt;/span&gt; Registry&lt;span style=&#34;color:#719e07&#34;&gt;.&lt;/span&gt;registeredParameterSet&lt;span style=&#34;color:#719e07&#34;&gt;[&lt;/span&gt;at&lt;span style=&#34;color:#719e07&#34;&gt;]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;		&lt;span style=&#34;color:#719e07&#34;&gt;and&lt;/span&gt; params &lt;span style=&#34;color:#719e07&#34;&gt;=&lt;/span&gt; psr&lt;span style=&#34;color:#719e07&#34;&gt;.&lt;/span&gt;parameterSet&lt;span style=&#34;color:#719e07&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;run&lt;/span&gt; SR007_assessment_by_revision
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;	&lt;span style=&#34;color:#719e07&#34;&gt;for&lt;/span&gt; &lt;span style=&#34;color:#2aa198&#34;&gt;2&lt;/span&gt; &lt;span style=&#34;color:#719e07&#34;&gt;but&lt;/span&gt; &lt;span style=&#34;color:#2aa198&#34;&gt;1&lt;/span&gt; AssessmentTarget, &lt;span style=&#34;color:#2aa198&#34;&gt;1&lt;/span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;..&lt;/span&gt;&lt;span style=&#34;color:#2aa198&#34;&gt;3&lt;/span&gt; &lt;span style=&#34;color:#719e07&#34;&gt;steps&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;run&lt;/span&gt; SR007_parameter_by_revision
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;	&lt;span style=&#34;color:#719e07&#34;&gt;for&lt;/span&gt; &lt;span style=&#34;color:#2aa198&#34;&gt;2&lt;/span&gt; &lt;span style=&#34;color:#719e07&#34;&gt;but&lt;/span&gt; &lt;span style=&#34;color:#2aa198&#34;&gt;1&lt;/span&gt; AssessmentTarget, &lt;span style=&#34;color:#2aa198&#34;&gt;1&lt;/span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;..&lt;/span&gt;&lt;span style=&#34;color:#2aa198&#34;&gt;3&lt;/span&gt; &lt;span style=&#34;color:#719e07&#34;&gt;steps&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#586e75&#34;&gt;// SR008: AssessmentData and ParameterSet each have at most one current revision&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#586e75&#34;&gt;// (Enforced by the lone multiplicity of the current revision fields)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;pred&lt;/span&gt; SR008_assessment_current &lt;span style=&#34;color:#719e07&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;	&lt;span style=&#34;color:#719e07&#34;&gt;eventually&lt;/span&gt; &lt;span style=&#34;color:#719e07&#34;&gt;(&lt;/span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;some&lt;/span&gt; at: AssessmentTarget,
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;		&lt;span style=&#34;color:#719e07&#34;&gt;disj&lt;/span&gt; previousRevision, currentRevision: AssessmentDataRevision &lt;span style=&#34;color:#719e07&#34;&gt;|&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;		previousRevision &lt;span style=&#34;color:#719e07&#34;&gt;+&lt;/span&gt; currentRevision &lt;span style=&#34;color:#719e07&#34;&gt;in&lt;/span&gt; Registry&lt;span style=&#34;color:#719e07&#34;&gt;.&lt;/span&gt;registeredAssessmentData&lt;span style=&#34;color:#719e07&#34;&gt;[&lt;/span&gt;at&lt;span style=&#34;color:#719e07&#34;&gt;]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;		&lt;span style=&#34;color:#719e07&#34;&gt;and&lt;/span&gt; Registry&lt;span style=&#34;color:#719e07&#34;&gt;.&lt;/span&gt;currentAssessmentData&lt;span style=&#34;color:#719e07&#34;&gt;[&lt;/span&gt;at&lt;span style=&#34;color:#719e07&#34;&gt;]&lt;/span&gt; &lt;span style=&#34;color:#719e07&#34;&gt;=&lt;/span&gt; currentRevision&lt;span style=&#34;color:#719e07&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;pred&lt;/span&gt; SR008_parameter_current &lt;span style=&#34;color:#719e07&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;	&lt;span style=&#34;color:#719e07&#34;&gt;eventually&lt;/span&gt; &lt;span style=&#34;color:#719e07&#34;&gt;(&lt;/span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;some&lt;/span&gt; at: AssessmentTarget,
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;		&lt;span style=&#34;color:#719e07&#34;&gt;disj&lt;/span&gt; previousRevision, currentRevision: ParameterSetRevision &lt;span style=&#34;color:#719e07&#34;&gt;|&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;		previousRevision &lt;span style=&#34;color:#719e07&#34;&gt;+&lt;/span&gt; currentRevision &lt;span style=&#34;color:#719e07&#34;&gt;in&lt;/span&gt; Registry&lt;span style=&#34;color:#719e07&#34;&gt;.&lt;/span&gt;registeredParameterSet&lt;span style=&#34;color:#719e07&#34;&gt;[&lt;/span&gt;at&lt;span style=&#34;color:#719e07&#34;&gt;]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;		&lt;span style=&#34;color:#719e07&#34;&gt;and&lt;/span&gt; Registry&lt;span style=&#34;color:#719e07&#34;&gt;.&lt;/span&gt;currentParameterSet&lt;span style=&#34;color:#719e07&#34;&gt;[&lt;/span&gt;at&lt;span style=&#34;color:#719e07&#34;&gt;]&lt;/span&gt; &lt;span style=&#34;color:#719e07&#34;&gt;=&lt;/span&gt; currentRevision&lt;span style=&#34;color:#719e07&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;run&lt;/span&gt; SR008_assessment_current
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;	&lt;span style=&#34;color:#719e07&#34;&gt;for&lt;/span&gt; &lt;span style=&#34;color:#2aa198&#34;&gt;3&lt;/span&gt; &lt;span style=&#34;color:#719e07&#34;&gt;but&lt;/span&gt; &lt;span style=&#34;color:#2aa198&#34;&gt;1&lt;/span&gt; AssessmentTarget, &lt;span style=&#34;color:#2aa198&#34;&gt;1&lt;/span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;..&lt;/span&gt;&lt;span style=&#34;color:#2aa198&#34;&gt;3&lt;/span&gt; &lt;span style=&#34;color:#719e07&#34;&gt;steps&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;run&lt;/span&gt; SR008_parameter_current
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;	&lt;span style=&#34;color:#719e07&#34;&gt;for&lt;/span&gt; &lt;span style=&#34;color:#2aa198&#34;&gt;3&lt;/span&gt; &lt;span style=&#34;color:#719e07&#34;&gt;but&lt;/span&gt; &lt;span style=&#34;color:#2aa198&#34;&gt;1&lt;/span&gt; AssessmentTarget, &lt;span style=&#34;color:#2aa198&#34;&gt;1&lt;/span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;..&lt;/span&gt;&lt;span style=&#34;color:#2aa198&#34;&gt;3&lt;/span&gt; &lt;span style=&#34;color:#719e07&#34;&gt;steps&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#586e75&#34;&gt;// SR009: Successful registration makes the new revision current&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;pred&lt;/span&gt; SR009_assessment_advance &lt;span style=&#34;color:#719e07&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;	&lt;span style=&#34;color:#719e07&#34;&gt;eventually&lt;/span&gt; &lt;span style=&#34;color:#719e07&#34;&gt;(&lt;/span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;some&lt;/span&gt; at: AssessmentTarget,
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;		&lt;span style=&#34;color:#719e07&#34;&gt;disj&lt;/span&gt; previousRevision, newRevision: AssessmentDataRevision,
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;		hk: HashKey &lt;span style=&#34;color:#719e07&#34;&gt;|&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;		Registry&lt;span style=&#34;color:#719e07&#34;&gt;.&lt;/span&gt;currentAssessmentData&lt;span style=&#34;color:#719e07&#34;&gt;[&lt;/span&gt;at&lt;span style=&#34;color:#719e07&#34;&gt;]&lt;/span&gt; &lt;span style=&#34;color:#719e07&#34;&gt;=&lt;/span&gt; previousRevision
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;		&lt;span style=&#34;color:#719e07&#34;&gt;and&lt;/span&gt; newRevision&lt;span style=&#34;color:#719e07&#34;&gt;.&lt;/span&gt;previousSource &lt;span style=&#34;color:#719e07&#34;&gt;=&lt;/span&gt; previousRevision
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;		&lt;span style=&#34;color:#719e07&#34;&gt;and&lt;/span&gt; &lt;span style=&#34;color:#719e07&#34;&gt;no&lt;/span&gt; Registry&lt;span style=&#34;color:#719e07&#34;&gt;.&lt;/span&gt;responseLog&lt;span style=&#34;color:#719e07&#34;&gt;[&lt;/span&gt;hk&lt;span style=&#34;color:#719e07&#34;&gt;]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;		&lt;span style=&#34;color:#719e07&#34;&gt;and&lt;/span&gt; registerAssessmentData&lt;span style=&#34;color:#719e07&#34;&gt;[&lt;/span&gt;at, newRevision, hk&lt;span style=&#34;color:#719e07&#34;&gt;]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;		&lt;span style=&#34;color:#719e07&#34;&gt;and&lt;/span&gt; Registry&lt;span style=&#34;color:#719e07&#34;&gt;.&lt;/span&gt;currentAssessmentData&lt;span style=&#34;color:#719e07&#34;&gt;&amp;#39;[&lt;/span&gt;at&lt;span style=&#34;color:#719e07&#34;&gt;]&lt;/span&gt; &lt;span style=&#34;color:#719e07&#34;&gt;=&lt;/span&gt; newRevision&lt;span style=&#34;color:#719e07&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;pred&lt;/span&gt; SR009_parameter_advance &lt;span style=&#34;color:#719e07&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;	&lt;span style=&#34;color:#719e07&#34;&gt;eventually&lt;/span&gt; &lt;span style=&#34;color:#719e07&#34;&gt;(&lt;/span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;some&lt;/span&gt; at: AssessmentTarget,
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;		&lt;span style=&#34;color:#719e07&#34;&gt;disj&lt;/span&gt; previousRevision, newRevision: ParameterSetRevision,
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;		hk: HashKey &lt;span style=&#34;color:#719e07&#34;&gt;|&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;		Registry&lt;span style=&#34;color:#719e07&#34;&gt;.&lt;/span&gt;currentParameterSet&lt;span style=&#34;color:#719e07&#34;&gt;[&lt;/span&gt;at&lt;span style=&#34;color:#719e07&#34;&gt;]&lt;/span&gt; &lt;span style=&#34;color:#719e07&#34;&gt;=&lt;/span&gt; previousRevision
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;		&lt;span style=&#34;color:#719e07&#34;&gt;and&lt;/span&gt; newRevision&lt;span style=&#34;color:#719e07&#34;&gt;.&lt;/span&gt;previousSource &lt;span style=&#34;color:#719e07&#34;&gt;=&lt;/span&gt; previousRevision
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;		&lt;span style=&#34;color:#719e07&#34;&gt;and&lt;/span&gt; &lt;span style=&#34;color:#719e07&#34;&gt;no&lt;/span&gt; Registry&lt;span style=&#34;color:#719e07&#34;&gt;.&lt;/span&gt;responseLog&lt;span style=&#34;color:#719e07&#34;&gt;[&lt;/span&gt;hk&lt;span style=&#34;color:#719e07&#34;&gt;]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;		&lt;span style=&#34;color:#719e07&#34;&gt;and&lt;/span&gt; registerParameterSet&lt;span style=&#34;color:#719e07&#34;&gt;[&lt;/span&gt;at, newRevision, hk&lt;span style=&#34;color:#719e07&#34;&gt;]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;		&lt;span style=&#34;color:#719e07&#34;&gt;and&lt;/span&gt; Registry&lt;span style=&#34;color:#719e07&#34;&gt;.&lt;/span&gt;currentParameterSet&lt;span style=&#34;color:#719e07&#34;&gt;&amp;#39;[&lt;/span&gt;at&lt;span style=&#34;color:#719e07&#34;&gt;]&lt;/span&gt; &lt;span style=&#34;color:#719e07&#34;&gt;=&lt;/span&gt; newRevision&lt;span style=&#34;color:#719e07&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;run&lt;/span&gt; SR009_assessment_advance
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;	&lt;span style=&#34;color:#719e07&#34;&gt;for&lt;/span&gt; &lt;span style=&#34;color:#2aa198&#34;&gt;3&lt;/span&gt; &lt;span style=&#34;color:#719e07&#34;&gt;but&lt;/span&gt; &lt;span style=&#34;color:#2aa198&#34;&gt;1&lt;/span&gt; AssessmentTarget, &lt;span style=&#34;color:#2aa198&#34;&gt;1&lt;/span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;..&lt;/span&gt;&lt;span style=&#34;color:#2aa198&#34;&gt;3&lt;/span&gt; &lt;span style=&#34;color:#719e07&#34;&gt;steps&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;run&lt;/span&gt; SR009_parameter_advance
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;	&lt;span style=&#34;color:#719e07&#34;&gt;for&lt;/span&gt; &lt;span style=&#34;color:#2aa198&#34;&gt;3&lt;/span&gt; &lt;span style=&#34;color:#719e07&#34;&gt;but&lt;/span&gt; &lt;span style=&#34;color:#2aa198&#34;&gt;1&lt;/span&gt; AssessmentTarget, &lt;span style=&#34;color:#2aa198&#34;&gt;1&lt;/span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;..&lt;/span&gt;&lt;span style=&#34;color:#2aa198&#34;&gt;3&lt;/span&gt; &lt;span style=&#34;color:#719e07&#34;&gt;steps&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#586e75&#34;&gt;// SR010: Past versions must not be modified or deleted even after a new version is registered&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#586e75&#34;&gt;// (Automatically satisfied by operation design: registerAssessmentData/registerParameterSet only extend&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#586e75&#34;&gt;//  the mapping with new versions; they never modify or remove existing entries)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;pred&lt;/span&gt; SR010_assessment_history &lt;span style=&#34;color:#719e07&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;	&lt;span style=&#34;color:#719e07&#34;&gt;eventually&lt;/span&gt; &lt;span style=&#34;color:#719e07&#34;&gt;(&lt;/span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;some&lt;/span&gt; at: AssessmentTarget,
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;		&lt;span style=&#34;color:#719e07&#34;&gt;disj&lt;/span&gt; previousRevision, newRevision: AssessmentDataRevision,
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;		hk: HashKey &lt;span style=&#34;color:#719e07&#34;&gt;|&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;		Registry&lt;span style=&#34;color:#719e07&#34;&gt;.&lt;/span&gt;currentAssessmentData&lt;span style=&#34;color:#719e07&#34;&gt;[&lt;/span&gt;at&lt;span style=&#34;color:#719e07&#34;&gt;]&lt;/span&gt; &lt;span style=&#34;color:#719e07&#34;&gt;=&lt;/span&gt; previousRevision
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;		&lt;span style=&#34;color:#719e07&#34;&gt;and&lt;/span&gt; previousRevision &lt;span style=&#34;color:#719e07&#34;&gt;in&lt;/span&gt; Registry&lt;span style=&#34;color:#719e07&#34;&gt;.&lt;/span&gt;registeredAssessmentData&lt;span style=&#34;color:#719e07&#34;&gt;[&lt;/span&gt;at&lt;span style=&#34;color:#719e07&#34;&gt;]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;		&lt;span style=&#34;color:#719e07&#34;&gt;and&lt;/span&gt; newRevision&lt;span style=&#34;color:#719e07&#34;&gt;.&lt;/span&gt;previousSource &lt;span style=&#34;color:#719e07&#34;&gt;=&lt;/span&gt; previousRevision
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;		&lt;span style=&#34;color:#719e07&#34;&gt;and&lt;/span&gt; &lt;span style=&#34;color:#719e07&#34;&gt;no&lt;/span&gt; Registry&lt;span style=&#34;color:#719e07&#34;&gt;.&lt;/span&gt;responseLog&lt;span style=&#34;color:#719e07&#34;&gt;[&lt;/span&gt;hk&lt;span style=&#34;color:#719e07&#34;&gt;]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;		&lt;span style=&#34;color:#719e07&#34;&gt;and&lt;/span&gt; registerAssessmentData&lt;span style=&#34;color:#719e07&#34;&gt;[&lt;/span&gt;at, newRevision, hk&lt;span style=&#34;color:#719e07&#34;&gt;]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;		&lt;span style=&#34;color:#719e07&#34;&gt;and&lt;/span&gt; previousRevision &lt;span style=&#34;color:#719e07&#34;&gt;+&lt;/span&gt; newRevision &lt;span style=&#34;color:#719e07&#34;&gt;in&lt;/span&gt; Registry&lt;span style=&#34;color:#719e07&#34;&gt;.&lt;/span&gt;registeredAssessmentData&lt;span style=&#34;color:#719e07&#34;&gt;&amp;#39;[&lt;/span&gt;at&lt;span style=&#34;color:#719e07&#34;&gt;]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;		&lt;span style=&#34;color:#719e07&#34;&gt;and&lt;/span&gt; Registry&lt;span style=&#34;color:#719e07&#34;&gt;.&lt;/span&gt;currentAssessmentData&lt;span style=&#34;color:#719e07&#34;&gt;&amp;#39;[&lt;/span&gt;at&lt;span style=&#34;color:#719e07&#34;&gt;]&lt;/span&gt; &lt;span style=&#34;color:#719e07&#34;&gt;=&lt;/span&gt; newRevision&lt;span style=&#34;color:#719e07&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;pred&lt;/span&gt; SR010_parameter_history &lt;span style=&#34;color:#719e07&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;	&lt;span style=&#34;color:#719e07&#34;&gt;eventually&lt;/span&gt; &lt;span style=&#34;color:#719e07&#34;&gt;(&lt;/span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;some&lt;/span&gt; at: AssessmentTarget,
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;		&lt;span style=&#34;color:#719e07&#34;&gt;disj&lt;/span&gt; previousRevision, newRevision: ParameterSetRevision,
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;		hk: HashKey &lt;span style=&#34;color:#719e07&#34;&gt;|&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;		Registry&lt;span style=&#34;color:#719e07&#34;&gt;.&lt;/span&gt;currentParameterSet&lt;span style=&#34;color:#719e07&#34;&gt;[&lt;/span&gt;at&lt;span style=&#34;color:#719e07&#34;&gt;]&lt;/span&gt; &lt;span style=&#34;color:#719e07&#34;&gt;=&lt;/span&gt; previousRevision
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;		&lt;span style=&#34;color:#719e07&#34;&gt;and&lt;/span&gt; previousRevision &lt;span style=&#34;color:#719e07&#34;&gt;in&lt;/span&gt; Registry&lt;span style=&#34;color:#719e07&#34;&gt;.&lt;/span&gt;registeredParameterSet&lt;span style=&#34;color:#719e07&#34;&gt;[&lt;/span&gt;at&lt;span style=&#34;color:#719e07&#34;&gt;]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;		&lt;span style=&#34;color:#719e07&#34;&gt;and&lt;/span&gt; newRevision&lt;span style=&#34;color:#719e07&#34;&gt;.&lt;/span&gt;previousSource &lt;span style=&#34;color:#719e07&#34;&gt;=&lt;/span&gt; previousRevision
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;		&lt;span style=&#34;color:#719e07&#34;&gt;and&lt;/span&gt; &lt;span style=&#34;color:#719e07&#34;&gt;no&lt;/span&gt; Registry&lt;span style=&#34;color:#719e07&#34;&gt;.&lt;/span&gt;responseLog&lt;span style=&#34;color:#719e07&#34;&gt;[&lt;/span&gt;hk&lt;span style=&#34;color:#719e07&#34;&gt;]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;		&lt;span style=&#34;color:#719e07&#34;&gt;and&lt;/span&gt; registerParameterSet&lt;span style=&#34;color:#719e07&#34;&gt;[&lt;/span&gt;at, newRevision, hk&lt;span style=&#34;color:#719e07&#34;&gt;]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;		&lt;span style=&#34;color:#719e07&#34;&gt;and&lt;/span&gt; previousRevision &lt;span style=&#34;color:#719e07&#34;&gt;+&lt;/span&gt; newRevision &lt;span style=&#34;color:#719e07&#34;&gt;in&lt;/span&gt; Registry&lt;span style=&#34;color:#719e07&#34;&gt;.&lt;/span&gt;registeredParameterSet&lt;span style=&#34;color:#719e07&#34;&gt;&amp;#39;[&lt;/span&gt;at&lt;span style=&#34;color:#719e07&#34;&gt;]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;		&lt;span style=&#34;color:#719e07&#34;&gt;and&lt;/span&gt; Registry&lt;span style=&#34;color:#719e07&#34;&gt;.&lt;/span&gt;currentParameterSet&lt;span style=&#34;color:#719e07&#34;&gt;&amp;#39;[&lt;/span&gt;at&lt;span style=&#34;color:#719e07&#34;&gt;]&lt;/span&gt; &lt;span style=&#34;color:#719e07&#34;&gt;=&lt;/span&gt; newRevision&lt;span style=&#34;color:#719e07&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;run&lt;/span&gt; SR010_assessment_history
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;	&lt;span style=&#34;color:#719e07&#34;&gt;for&lt;/span&gt; &lt;span style=&#34;color:#2aa198&#34;&gt;3&lt;/span&gt; &lt;span style=&#34;color:#719e07&#34;&gt;but&lt;/span&gt; &lt;span style=&#34;color:#2aa198&#34;&gt;1&lt;/span&gt; AssessmentTarget, &lt;span style=&#34;color:#2aa198&#34;&gt;1&lt;/span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;..&lt;/span&gt;&lt;span style=&#34;color:#2aa198&#34;&gt;3&lt;/span&gt; &lt;span style=&#34;color:#719e07&#34;&gt;steps&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;run&lt;/span&gt; SR010_parameter_history
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;	&lt;span style=&#34;color:#719e07&#34;&gt;for&lt;/span&gt; &lt;span style=&#34;color:#2aa198&#34;&gt;3&lt;/span&gt; &lt;span style=&#34;color:#719e07&#34;&gt;but&lt;/span&gt; &lt;span style=&#34;color:#2aa198&#34;&gt;1&lt;/span&gt; AssessmentTarget, &lt;span style=&#34;color:#2aa198&#34;&gt;1&lt;/span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;..&lt;/span&gt;&lt;span style=&#34;color:#2aa198&#34;&gt;3&lt;/span&gt; &lt;span style=&#34;color:#719e07&#34;&gt;steps&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#586e75&#34;&gt;/*  ============================================================
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#586e75&#34;&gt;    6. Sanity
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#586e75&#34;&gt;    ============================================================ */&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;run&lt;/span&gt; &lt;span style=&#34;color:#719e07&#34;&gt;{}&lt;/span&gt; &lt;span style=&#34;color:#719e07&#34;&gt;for&lt;/span&gt; &lt;span style=&#34;color:#2aa198&#34;&gt;2&lt;/span&gt; &lt;span style=&#34;color:#719e07&#34;&gt;but&lt;/span&gt; &lt;span style=&#34;color:#2aa198&#34;&gt;1&lt;/span&gt;&lt;span style=&#34;color:#719e07&#34;&gt;..&lt;/span&gt;&lt;span style=&#34;color:#2aa198&#34;&gt;3&lt;/span&gt; &lt;span style=&#34;color:#719e07&#34;&gt;steps&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Execute Allの結果:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#93a1a1;background-color:#002b36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-fallback&#34; data-lang=&#34;fallback&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;21 commands were executed. The results are:
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;   #1: Instance found. SR001_registration is consistent.
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;   #2: Instance found. SR002_content_stability is consistent.
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;   #3: No counterexample found. SR003_new_version_on_change may be valid.
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;   #4: Instance found. SR003_assessment_update is consistent.
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;   #5: Instance found. SR003_parameter_update is consistent.
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;   #6: Instance found. SR004_revision_chain is consistent.
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;   #7: No counterexample found. SR005_idempotency may be valid.
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;   #8: Instance found. SR005_assessment_retry is consistent.
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;   #9: Instance found. SR005_parameter_retry is consistent.
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;   #10: No counterexample found. SR006_retrievability may be valid.
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;   #11: Instance found. SR006_assessment_retrieval is consistent.
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;   #12: Instance found. SR006_parameter_retrieval is consistent.
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;   #13: Instance found. SR007_assessment_by_revision is consistent.
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;   #14: Instance found. SR007_parameter_by_revision is consistent.
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;   #15: Instance found. SR008_assessment_current is consistent.
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;   #16: Instance found. SR008_parameter_current is consistent.
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;   #17: Instance found. SR009_assessment_advance is consistent.
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;   #18: Instance found. SR009_parameter_advance is consistent.
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;   #19: Instance found. SR010_assessment_history is consistent.
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;   #20: Instance found. SR010_parameter_history is consistent.
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;   #21: Instance found. run$21 is consistent.
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;↑ OK &amp;#x2705;&lt;/p&gt;
&lt;h2 id=&#34;学んだこと&#34;&gt;学んだこと&lt;/h2&gt;
&lt;p&gt;今回は反省点が多い。
途中から雲行きの怪しさを感じていた。
まとめると下記だ:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;要件定義が雑すぎた&lt;/li&gt;
&lt;li&gt;スコープを決めていなかった&lt;/li&gt;
&lt;li&gt;進め方の戦略がなかった&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;要件定義が雑すぎた&#34;&gt;要件定義が雑すぎた&lt;/h3&gt;
&lt;p&gt;一つ一つの要件の検証にかなり時間をかけているわけだが、そもそもそれぞれの要件自体の吟味が足りていないかった。要件をかっちり決める手法として、昔（確か2022年くらい）&lt;a href=&#34;https://www.shoeisha.co.jp/book/detail/9784798146522&#34;&gt;この本&lt;/a&gt;を読んだことでICONIXを知ったのだが、当時は重厚すぎるような印象を持っていた。&lt;/p&gt;
&lt;p&gt;今回設計しているdata-registryは、&lt;a href=&#34;https://rindrics.com/posts/stock-assess-api-contract-postmortem/#:~:text=data%20service%E3%81%AE%E3%82%88%E3%81%86%E3%81%AA%E7%8B%AC%E7%AB%8B%E3%81%97%E3%81%9F%E3%82%B5%E3%83%BC%E3%83%93%E3%82%B9%E3%81%8C%E5%BF%85%E8%A6%81%E3%81%AB%E6%80%9D%E3%82%8F%E3%82%8C%E3%82%8B&#34;&gt;構想当時&lt;/a&gt;にはとてもシンプルなものという見立てだったが、少し設計してみると考えるべきことがどんどん出てくる（なお今、この設計でも観点が全然足りていないだろう）。&lt;/p&gt;
&lt;h3 id=&#34;スコープを決めていなかった&#34;&gt;スコープを決めていなかった&lt;/h3&gt;
&lt;p&gt;今回は合計で10要件を検証したように書いているが、実は途中でどんどん要件が増えてしまい、最終的に20を超えてしまっていた。
収集がつかなくなりそうだったので、記事としてはいったん10の要件で一区切りとすることにした。
ちなみに区切りとするために捨てた機能は「アーカイブ」「物理削除」「外部公開」の三つ。
非機能要件としては並行性への対処を無視している。
時間の関係から、そもそも「機能」「スコープ」について言及していない内容になってしまったが、このやり方は是非真似しないでほしい（？）。&lt;/p&gt;
&lt;h3 id=&#34;進め方の戦略がなかった&#34;&gt;進め方の戦略がなかった&lt;/h3&gt;
&lt;p&gt;これは上記二つの反省点と同列ではなく、より上位の観点にある。
Alloyで検証することが決まっているような形で走り始めてしまったため、Alloyでの検証に向かないような要件が出てきたときに管理できなくなった。
今後の管理を考えると、サービスごとにユースケース・要求・要件にIDをふってドキュメント化しておくといいかもしれない。
そろそろカンバンを作るか。&lt;/p&gt;
&lt;p&gt;・・・&lt;/p&gt;
&lt;p&gt;反省点は多いし、設計にまだ穴もあるだろうが、そろそろ動くものを作りたい。
いや、その前に冪等性の定義とDB設計があるか。&lt;/p&gt;
&lt;p&gt;作業の進捗としてはこんな感じだろうか:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;input checked=&#34;&#34; disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; API契約を書く&lt;/li&gt;
&lt;li&gt;&lt;input checked=&#34;&#34; disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; ルーティングの動作確認&lt;/li&gt;
&lt;li&gt;&lt;input checked=&#34;&#34; disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; db セットアップ&lt;/li&gt;
&lt;li&gt;&lt;input checked=&#34;&#34; disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; リポジトリ・ハンドラの実装&lt;/li&gt;
&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; &lt;del&gt;datasetVersion生成ロジックの設計&lt;/del&gt;&lt;/li&gt;
&lt;li&gt;&lt;input checked=&#34;&#34; disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; API基本設計&lt;/li&gt;
&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; Revision生成ロジックの設計&lt;/li&gt;
&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; データベース設計&lt;/li&gt;
&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; リファクタリング&lt;/li&gt;
&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; エラーハンドリングの追加&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;つづく&lt;/p&gt;
&lt;h2 id=&#34;参考情報&#34;&gt;参考情報&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Geewax (2022)『APIデザインパターン』マイナビ出版&lt;/li&gt;
&lt;/ul&gt;
&lt;div class=&#34;footnotes&#34; role=&#34;doc-endnotes&#34;&gt;
&lt;hr&gt;
&lt;ol&gt;
&lt;li id=&#34;fn:1&#34;&gt;
&lt;p&gt;たまたま『&lt;a href=&#34;https://book.mynavi.jp/ec/products/detail/id=131252&#34;&gt;APIデザインパターン&lt;/a&gt;』を読んでいたのだった。第28章「リソースリビジョン」がドンピシャの内容だった&amp;#160;&lt;a href=&#34;#fnref:1&#34; class=&#34;footnote-backref&#34; role=&#34;doc-backlink&#34;&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id=&#34;fn:2&#34;&gt;
&lt;p&gt;『抽象によるソフトウェア設計』でも解説されており、特異な例を見つけるのに有用とされている。それはたしかにそうかも。ちなみに、このAlloyの挙動を決めているのは解析エンジンの挙動。私の環境ではSAT4Jソルバーだったので、SAT4Jのコードを見てみたところ、&lt;a href=&#34;https://gitlab.ow2.org/sat4j/sat4j/-/commit/b0f351ab54a30fa9cb787e2a197954a700da5872?file_path=org.sat4j.core%2Fsrc%2Fmain%2Fjava%2Forg%2Fsat4j%2Fminisat%2Forders%2FSolutionPhaseSelectionStrategy.java#line_0f73d4584_A60&#34;&gt;この部分&lt;/a&gt;によって、解決フェーズでまず&lt;code&gt;false&lt;/code&gt;が試されそうだった&amp;#160;&lt;a href=&#34;#fnref:2&#34; class=&#34;footnote-backref&#34; role=&#34;doc-backlink&#34;&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id=&#34;fn:3&#34;&gt;
&lt;p&gt;Alloyによる探索が有限スコープなのは実用観点で脇に置いておく&amp;#160;&lt;a href=&#34;#fnref:3&#34; class=&#34;footnote-backref&#34; role=&#34;doc-backlink&#34;&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/div&gt;</description>
    </item>
    
  </channel>
</rss>
