#目的 国を作るときにどのようなシステムが必要なのか提案してみた。 DXということばが2020年に一般人の間で流行している。 プログラマーは一般人のやっていることの間違いなどを示すが、 民間ではなく司法立法行政までをすべてを包摂した提案がない。 もし提案するなら、全てのシステムをどのように連携させるべきなのか、 ドメインモデルと各マイクロサービスの切り方と互いのメッセージの設計までを提案したい。

#やってみた感想 法律では一つの概念もドメインモデリングすると、もっと細かいモデルが必要であることに気づく。 法律用語も数学的裏付けを得てより洗練されることもあり得ると感じた。

#なんでKotlin? 法律をプログラミング言語FStar で表現して間違いを見つける試みがある。 あそこまで型による検査を表現しようとすると、テストを書いているのと変わらない。 なので、現実的に型推論がかなり効いて、人間の書く量が一番少なく、 一番多くのことをはじめの段階から表現しやすいKotlinにした。 より専門的な人が増えれば、法律の無矛盾を証明するサービスは FStarで書いても良いと思う。

#開発の順序 認識をする順番に行う。 進化の系統図の一番根本の状態では、自分と外の環境の区別しかなく、仲間と自分の区別はないはずなので、その状態で必要な情報から開発してく。 生まれた瞬間に認識している要素から先に開発する。 違う政治体制でも使えるものから開発する

#依存関係 永続している対象に依存する

数学的整合性 これはプログラミング言語そのものに含まれているので意図して開発することは少ない 宇宙の存在 銀河 太陽系 地球 日本列島 地形データも細かいところは10年ぐらいで変わるが、人間はもっと長生きするので、その段階になったら依存関係にならないようにする。 鳥の飛来地など生物の定住地や地下資源などは人間が改変せずに存続する期間を永続性の程度の決定に使う。