メインコンテンツへスキップ
見出し画像

第2冊『日本政治 Digital Twin 全実装コード大全』――28言語を全最適し、Political Realityを実際に構築する(第4回)(第Ⅲ部 Runtime 第3章 Government Runtime――政治・行政・財政のState Transitionを実装する)

    第Ⅲ部 Runtime

    ――政治・行政・財政のState Transitionを実装する

    第Ⅰ部では、日本国家をMachine-readableにするOntologyを定義した。

    第Ⅱ部では、法令、選挙・国会、行政機関、地方自治体、予算・財政・契約、統計という一次資料をCanonical Japan Stateへ統合した。

    ここまでで、

    [
    \boxed{
    PoliticalReality
    \rightarrow
    Ontology
    \rightarrow
    Data
    \rightarrow
    CanonicalState
    }
    ]

    という経路は成立した。

    しかし、国家はDatabaseではない。

    選挙が行われる。

    人がRoleへ就く。

    国会が議決する。

    法令が公布され、施行される。

    行政組織が再編される。

    予算が成立する。

    Resourceが配分される。

    Programが実行される。

    地方自治体でServiceが提供される。

    そして社会のRealityが変化する。

    国家とは、Stateの集合であると同時に、Stateが継続的に変化するSystemである。

    第Ⅲ部では、この変化そのものをCodeへ翻訳する。

    その中心が、

    [
    \boxed{
    Government\ Runtime
    }
    ]

    である。

    ⸻

    Runtimeの最小単位はState Transitionである。

    [
    \boxed{
    State_t
    +
    Event
    \rightarrow
    State_{t+1}
    }
    ]

    しかし、国家規模のRuntimeでは、Eventが存在するだけではStateを変更できない。

    そのEventはSchema上有効か。

    誰が行ったのか。

    そのRoleは有効だったか。

    そのAuthorityはScope内だったか。

    必要なLegal Basisは存在するか。

    Evidenceは十分か。

    Temporal Conditionは成立しているか。

    これらを検証する必要がある。

    したがって、より正確には、

    [
    \boxed{
    State_{t+1}

    Transition(
    State_t,
    Event,
    Authority,
    Evidence,
    Rules,
    Time
    )
    }
    ]

    となる。

    Runtimeとは、単にEvent Handlerを動かすことではない。

    Political Realityが「どの条件なら変化したとみなせるか」を実行可能なRuleとして実装することである。

    ⸻

    ここで最も重要なのは、

    [
    \boxed{
    Executable
    \neq
    Autonomous
    }
    ]

    という境界である。

    Digital Twinが法令をMachine-readableにできても、法律を制定するAuthorityを持つわけではない。

    予算をSimulationできても、予算を成立させることはできない。

    AI Agentが政策Optionを生成できても、政治的Decisionを代替しない。

    Runtimeは国家を自律制御するEngineではない。

    現実の制度主体によって行われたDecisionとEventを、正確に検証し、Canonical Stateへ反映するExecution Layerである。

    [
    \boxed{
    MachineCapability
    \neq
    InstitutionalAuthority
    }
    ]

    は第Ⅲ部全体を貫くInvariantとなる。

    ⸻

    そのため、State TransitionにはHuman-authoritative Architectureを組み込む。

    Observe
     ↓
    Validate
     ↓
    Analyze
     ↓
    Simulate
     ↓
    Propose
     ↓
    Human / Institutional Decision
     ↓
    Authorize
     ↓
    Commit Event
     ↓
    Update State
     ↓
    Audit

    AIが担えるのは、Observation、Retrieval、Analysis、Inference、Simulation、Proposalまでである。

    Authoritative Stateを変更するTransitionには、制度上有効なAuthorityが必要になる。

    [
    \boxed{
    MachineProposal
    \neq
    AuthorizedDecision
    }
    ]

    である。

    ⸻

    第Ⅲ部では、まずPolitical State Machineを構築する。

    Election。

    Appointment。

    Resignation。

    Cabinet Formation。

    Diet Session。

    Political Decision。

    これらをCanonical Eventとして処理し、

    [
    PoliticalState_t
    \rightarrow
    PoliticalState_{t+1}
    ]

    を生成する。

    次にLaw / Regulation Runtimeを実装する。

    法案提出、議決、公布、施行、改正、廃止をTemporal Transitionとして処理し、

    [
    LegalState_t
    \rightarrow
    LegalState_{t+1}
    ]

    を再現する。

    そしてDiet / Cabinet Runtimeによって、Political DecisionとGovernment Executionの境界を接続する。

    ⸻

    行政側では、Ministry Vertical Runtimeを構築する。

    Institution
       ↓
    GovernmentUnit
       ↓
    Role
       ↓
    Authority
       ↓
    Program
       ↓
    Execution

    というVertical Chainを実行可能にする。

    ただし、HierarchyだけでAuthorityを推論しない。

    [
    \boxed{
    OrganizationHierarchy
    \neq
    AuthorityGraph
    }
    ]

    である。

    Role、Legal Basis、Scope、Timeを検証して初めてActionを許可する。

    ⸻

    Fiscal Runtimeでは、

    [
    \boxed{
    Requested
    \rightarrow
    Authorized
    \rightarrow
    Allocated
    \rightarrow
    Committed
    \rightarrow
    Paid
    }
    ]

    というState Transitionを実装する。

    Budgetが成立したことと、Moneyが実際に流れたことを分離する。

    Contract、Grant、Transfer、ProcurementなどのFiscal Instrumentも、それぞれ異なるEventとして扱う。

    これによってDigital Twin上のMoneyは、静的なAmountからResource Flowへ変わる。

    ⸻

    Local Government Runtimeでは、47都道府県・全市区町村を中央政府の末端Processとして扱わない。

    National GovernmentとLocal GovernmentはCanonical Graph上で接続されるが、それぞれのAuthority Boundaryを維持する。

    [
    \boxed{
    IntegratedRuntime
    \neq
    CentralizedAuthority
    }
    ]

    である。

    国から地方へのFunding。

    制度上のDelegation。

    共同Program。

    Data Sharing。

    地方独自のDecision。

    これらを異なるRelationとEventとして処理する。

    ⸻

    そして最後に、Political、Legal、Administrative、Fiscal、Local RuntimeをIntegrated Government Runtimeへ接続する。

    Political Event
         ↓
    Legal State
         ↓
    Government Authority
         ↓
    Policy / Program
         ↓
    Fiscal State
         ↓
    Administrative Execution
         ↓
    Local Execution
         ↓
    Observed Reality

    ここで初めて、Digital Twinは「現在の国家を表示するSystem」から、「国家がどのように現在へ到達したかを再生できるSystem」へ変わる。

    [
    \boxed{
    Snapshot
    \rightarrow
    Transition
    \rightarrow
    History
    }
    ]

    である。

    ⸻

    Runtimeにはもう一つ重要な能力がある。

    Replayである。

    同じOntology Version。

    同じSchema Version。

    同じInitial State。

    同じValidated Event Log。

    を与えれば、同じStateへ到達できなければならない。

    [
    \boxed{
    InitialState
    +
    EventLog
    \rightarrow
    ReproducibleState
    }
    ]

    このDeterminismが、監査、研究、Historical Reconstruction、Simulationの基礎になる。

    AI Modelの出力が変化しても、Canonical Government Runtimeまで非決定的になってはならない。

    したがって、

    [
    \boxed{
    DeterministicCore
    +
    ProbabilisticIntelligence
    }
    ]

    という分離を維持する。

    ⸻

    そしてRuntimeは、必ず失敗を前提に設計する。

    不正なEvent。

    Evidence不足。

    期限切れRole。

    Authority Scope外のAction。

    Source Conflict。

    Schema Version不整合。

    Duplicate Event。

    Out-of-order Event。

    System Failure。

    これらが発生したとき、誤ったStateをAuthoritativeとしてCommitしてはならない。

    Candidate Event
         ↓
    Validation
      ┌──┴──┐
    PASS   FAIL
     ↓       ↓
    Commit  Reject / Quarantine
     ↓
    Audit

    さらにCorrection、Rollback、RecoveryをEvent Historyとして残す。

    [
    \boxed{
    Failure
    \neq
    SilentStateCorruption
    }
    ]

    である。

    ⸻

    第Ⅲ部で構築するのは、国家を自動運転するSoftwareではない。

    国家の変化を、

    Meaning。

    Authority。

    Evidence。

    Time。

    History。

    とともに実行可能にするRuntimeである。

    第Ⅰ部のOntologyが「国家とは何か」を定義した。

    第Ⅱ部のDataが「国家はいまどうなっているか」を観測した。

    第Ⅲ部のRuntimeは、

    [
    \boxed{
    How\ does\ JapanState\ change?
    }
    ]

    に答える。

    その最小構造は、

    [
    \boxed{
    CanonicalState
    +
    ValidatedEvent
    +
    ValidAuthority
    +
    Evidence
    \rightarrow
    NewCanonicalState
    }
    ]

    である。

    ここから日本政治Digital Twinは、静的なGovernment Data Platformを離れ、時間の中で動き始める。

    [
    \boxed{
    Ontology
    \rightarrow
    Data
    \rightarrow
    Runtime
    }
    ]

    国家は、StateからProcessへ移る。
    第3章 Government Runtime

    第1節 Political State Machine

    政治は、人物、政党、議席、国会、内閣を並べただけでは記述できない。

    選挙が行われる。

    候補者が当選する。

    任期が始まり、終わる。

    国会が召集される。

    議案が提出される。

    審議される。

    議決される。

    内閣が組織される。

    Roleが交代する。

    これらのEventによってPolitical Stateは継続的に変化する。

    したがってPolitical Digital TwinのRuntimeは、

    [
    \boxed{
    PoliticalState_t
    +
    PoliticalEvent
    \rightarrow
    PoliticalState_{t+1}
    }
    ]

    というState Machineとして実装する。

    1 Political Stateを定義する

    Political Stateとは、ある時点における政治的構成のCanonical Snapshotである。

    概念的には、

    PoliticalState {
       persons
       roles
       elections
       political_bodies
       memberships
       sessions
       bills
       decisions
       authority_refs
       valid_at
    }

    から構成される。

    重要なのは、PersonそのものをState Transitionさせるのではなく、PersonとRole、Political Body、Election等のRelationを変化させることである。

    [
    \boxed{
    PersonIdentity
    \neq
    PoliticalState
    }
    ]

    である。

    2 Event-drivenにする

    Current Tableを直接編集する方式では、政治史を失う。

    そこで、すべての政治変化をCanonical Eventとして記録する。

    ELECTION_CALLED
    CANDIDACY_REGISTERED
    VOTE_HELD
    ELECTED
    TERM_STARTED
    TERM_ENDED
    ROLE_ASSIGNED
    ROLE_ENDED
    SESSION_CONVENED
    SESSION_CLOSED
    BILL_INTRODUCED
    BILL_PASSED
    BILL_REJECTED
    BILL_WITHDRAWN
    CABINET_FORMED
    CABINET_RESIGNED

    Current Political StateはEvent LogからMaterializeする。

    [
    \boxed{
    PoliticalHistory

    InitialState
    +
    PoliticalEventLog
    }
    ]

    となる。

    3 Event Transition Ruleを固定する

    Eventが届いたからといって、即座にStateを変更しない。

    PoliticalEvent
         ↓
    Schema Validation
         ↓
    Identity Resolution
         ↓
    Temporal Validation
         ↓
    Authority / Procedure Validation
         ↓
    Evidence Validation
         ↓
    Transition Validation
         ↓
    Commit

    を通す。

    概念的には、

    def transition(state, event):
       validate_schema(event)
       validate_identity(event)
       validate_time(event)
       validate_procedure(event)
       validate_evidence(event)
       validate_transition(state, event)
       return apply_event(state, event)

    となる。

    [
    \boxed{
    EventExistence
    \neq
    ValidStateTransition
    }
    ]

    である。

    4 Election State Machine

    ElectionはPolitical Stateを大きく変化させる。

    SCHEDULED
      ↓
    CANDIDACY_OPEN
      ↓
    VOTING
      ↓
    COUNTING
      ↓
    RESULT_CONFIRMED
      ↓
    ROLE_TRANSITION

    といったState Machineとして表現できる。

    ただし実装上のState名は、実際の法制度・Sourceで確認できるEventへ対応させる。

    重要なのは、

    [
    \boxed{
    Candidate
    \neq
    ElectedPerson
    \neq
    ActiveRoleHolder
    }
    ]

    という分離である。

    当選結果が確定したことと、特定Roleの任期が開始したことを同一Eventにしない。

    5 Role Transitionを独立させる

    政治家の交代はPerson Nodeの上書きではない。

    Person A
      │
    OCCUPIES
      ▼
    Role
      │
    ROLE_ENDED
      ▼
    Historical Occupancy
    Person B
      │
    ROLE_ASSIGNED
      ▼
    Role

    とする。

    これによってRoleそのものの制度的Identityを維持しながら、OccupantをTemporalに変更できる。

    [
    \boxed{
    RoleContinuity
    \neq
    PersonContinuity
    }
    ]

    である。

    6 任期をTemporal Constraintにする

    Roleには有効期間がある。

    RoleOccupancy {
       person_ref
       role_ref
       valid_from
       valid_to
       assignment_event_ref
       termination_event_ref
    }

    したがって任意時点について、

    occupant(role, t)

    を求められる。

    期限切れOccupancyをCurrent Authorityとして利用してはならない。

    [
    \boxed{
    ExpiredRole
    \Rightarrow
    NoCurrentAuthority
    }
    ]

    をRuntimeで検証する。

    7 Political BodyもStateを持つ

    国会、各院、委員会等も固定Entityではあるが、その構成は変化する。

    PoliticalBodyState {
       body_ref
       active_members[]
       active_roles[]
       session_ref
       valid_at
    }

    Member加入・離脱、委員会所属、役職変更をEventとして反映する。

    ここでも、

    [
    \boxed{
    Membership
    \neq
    Authority
    }
    ]

    である。

    所属しているだけで、そのPolitical Bodyの全Authorityを個人が持つわけではない。

    8 Session Runtimeを実装する

    国会活動にはSessionというTemporal Contextがある。

    SESSION_CONVENED
         ↓
    ACTIVE_SESSION
         ↓
    Meetings / Deliberations / Decisions
         ↓
    SESSION_CLOSED

    MeetingやBill EventをSessionへ接続することで、

    「どの国会の、どの会期で、どのDecisionが行われたか」

    を再現できる。

    [
    \boxed{
    Decision
    +
    InstitutionalContext
    +
    Time
    }
    ]

    として政治的Eventを保存する。

    9 Bill State Machineを分離する

    BillはLegal Instrumentになる前のPolitical Entityである。

    概念的には、

    DRAFT / PREPARATION
         ↓
    INTRODUCED
         ↓
    DELIBERATING
         ↓
    PASSED / REJECTED /
    WITHDRAWN / EXPIRED

    としてStateを遷移させる。

    成立後のLegal Stateは次節のLaw / Regulation Runtimeへ渡す。

    [
    \boxed{
    BillStateMachine
    \neq
    LegalStateMachine
    }
    ]

    である。

    この境界によって政治過程と法的効力を混同しない。

    10 DecisionをSpeechから分離する

    Political Runtimeには大量のSpeech Dataが存在する。

    しかし、

    [
    \boxed{
    Speech
    \neq
    InstitutionalDecision
    }
    ]

    である。

    発言はPolitical EventまたはEvidenceとして保存できるが、正式なDecisionを生成するには、そのPolitical Bodyに定められたProcedureを満たす必要がある。

    したがって、

    Meeting
     ↓
    Proposal / Bill
     ↓
    Procedure
     ↓
    Vote / Resolution
     ↓
    InstitutionalDecision

    として処理する。

    11 Collective Authorityを守る

    国会や委員会などのDecisionは、個人Authorityだけでは説明できない。

    PoliticalBody
         │
    HAS_AUTHORITY
         ▼
    CollectiveAction

    とし、

    Member AuthorityとCollective Body Authorityを分離する。

    必要に応じて、

    Quorum。

    Voting Rule。

    Required Majority。

    Procedure。

    などをConstraintとして検証する。

    [
    \boxed{
    MemberAction
    \neq
    BodyDecision
    }
    ]

    である。

    12 Cabinet StateをPolitical Stateへ接続する

    内閣もTemporal Political Entityとして扱う。

    CabinetState {
       cabinet_ref
       prime_minister_role_ref
       minister_role_refs[]
       formed_at
       ended_at
       evidence_refs[]
    }

    人が変わるたびに「政府」というEntityを上書きするのではなく、

    Person。

    Role。

    Cabinet State。

    Institution。

    を分離する。

    これによってHistorical Cabinet Stateを再構成できる。

    13 Political EventからAuthority Stateを更新する

    Role TransitionはAuthority Graphにも影響する。

    ROLE_ASSIGNED
        ↓
    Active Occupancy
        ↓
    Role Authority Resolution
        ↓
    Authority Available to Person

    逆に、

    ROLE_ENDED
        ↓
    Occupancy Closed
        ↓
    Person Authority Removed

    となる。

    ただしAuthorityそのものをPersonへコピーしない。

    [
    \boxed{
    Person
    +
    ActiveRole
    +
    ValidAuthority
    \rightarrow
    PermittedPoliticalAction
    }
    ]

    としてRuntimeで解決する。

    14 Duplicate Eventを防ぐ

    同じElection ResultやRole Assignmentを複数Sourceから取得する可能性がある。

    したがってEventにはIdempotencyを持たせる。

    event_id
    event_type
    subject_ref
    effective_at
    source_event_ref

    などから重複候補を判定する。

    [
    \boxed{
    Replay
    \neq
    DuplicateExecution
    }
    ]

    である。

    Event Logを再生しても、同じTransitionが二重適用されてはならない。

    15 Arrival OrderとPolitical Timeを分離する

    Sourceへの掲載順とReality上の発生順は一致しないことがある。

    [
    \boxed{
    ArrivalOrder
    \neq
    RealityOrder
    }
    ]

    である。

    したがって、

    occurred_at
    effective_at
    published_at
    retrieved_at
    recorded_at

    を区別する。

    遅れて取得されたEventでも、Historical Stateの正しい位置へ配置できるようにする。

    16 Correctionを新しいEventとして処理する

    誤ったSourceやIdentity Resolutionが後で訂正された場合、過去Eventを黙って削除しない。

    Original Event
         ↓
    CORRECTION_EVENT
         ↓
    Corrected State

    とする。

    これによって、

    「当時Systemは何を認識していたか」

    と、

    「現在どのStateが正しいと判断されているか」

    を両方保持できる。

    17 Political RuntimeをReplay可能にする

    Political State Machineの重要な能力がHistorical Replayである。

    Initial Political State
           +
    Political Event Log
           ↓
    Replay(until=t)
           ↓
    PoliticalState(t)

    したがって、

    [
    \boxed{
    PoliticalState(t)

    Replay(PoliticalEvents_{\leq t})
    }
    ]

    となる。

    これによって任意の日付について、議員、Role、Political Body、Session、Bill State等を再構成できる。

    18 AIをTransition Authorityにしない

    AIはPolitical Runtimeを支援できる。

    新しい政治EventをSourceから抽出する。

    Person Identity Candidateを提示する。

    BillとPolicyのRelationを推論する。

    異常なState Transitionを検出する。

    しかし、

    [
    \boxed{
    AIProposedEvent
    \neq
    CommittedPoliticalEvent
    }
    ]

    である。

    AIが抽出したEventはCandidateとしてValidation Pipelineへ送る。

    Canonical Political Stateを直接変更する権限は持たせない。

    19 Political State Machineを完成させる

    最終的なRuntimeは、

    Official Evidence
         ↓
    Political Event Candidate
         ↓
    Identity Resolution
         ↓
    Temporal Validation
         ↓
    Procedure / Authority Validation
         ↓
    Evidence Validation
         ↓
    Canonical Event
         ↓
    State Transition
         ↓
    PoliticalState(t+1)
         ↓
    Audit Log

    となる。

    その核心は、

    [
    \boxed{
    PoliticalState_{t+1}

    Transition(
    PoliticalState_t,
    ValidatedPoliticalEvent
    )
    }
    ]

    である。

    これによってDigital Twinは、「現在誰が議員か」を答えるDatabaseから、

    誰が選ばれたのか。

    いつRoleが始まったのか。

    どのPolitical Bodyに属したのか。

    どのSessionで何が審議されたのか。

    どのDecisionが成立したのか。

    そのDecisionによって何が次のStateへ渡されたのか。

    を再生できるPolitical Runtimeへ変わる。

    そして政治的Decisionの一部は、次にLegal Stateを変化させる。

    法案が可決されたからといって、直ちに現行法になるわけではない。

    公布。

    施行。

    改正。

    廃止。

    それぞれに異なるTemporal Stateが存在する。

    次節では、

    [
    \boxed{
    PoliticalDecision
    \rightarrow
    LegalEvent
    \rightarrow
    LegalStateTransition
    }
    ]

    を実装する。

    Political State Machineから、Law / Regulation Runtimeへ。

    国家の意思決定は、Ruleの変化へ進む。
    第2節 Law / Regulation Runtime

    Political State Machineによって、選挙、国会、議案、議決、内閣という政治的State Transitionを実装した。

    しかし、Political DecisionとLegal Realityは同一ではない。

    法案が提出された。

    国会で可決された。

    公布された。

    施行された。

    改正された。

    廃止された。

    これらは異なるEventであり、異なる時点でLegal Stateを変化させる。

    したがってLaw / Regulation Runtimeの基本式は、

    [
    \boxed{
    LegalState_t
    +
    ValidatedLegalEvent
    \rightarrow
    LegalState_{t+1}
    }
    ]

    となる。

    目的は法令文を検索できるようにすることではない。

    任意の時点について、

    その時、日本ではどのRuleが有効だったのか。

    を再構成できるExecutable Legal Stateをつくることである。

    1 BillとLawを分離する

    最初のInvariantは、

    [
    \boxed{
    Bill
    \neq
    Law
    }
    ]

    である。

    Political Runtime上のBillが所定の過程を経ても、Legal Runtimeでは別のIdentityとLifecycleを持つ。

    Bill
    ↓
    Political Decision
    ↓
    Enactment Process
    ↓
    Promulgation
    ↓
    Legal Instrument
    ↓
    Effective Legal State

    Bill IdentityをそのままLaw Identityとして流用しない。

    両者をRESULTS_IN等の明示的Relationで接続する。

    2 Legal Instrumentを第一級Entityにする

    Legal Runtimeでは、法的規範を単なるDocumentとして扱わない。

    LegalInstrument {
       canonical_legal_id
       instrument_type
       official_title
       promulgation_ref
       effective_rules[]
       revision_refs[]
       legal_basis_refs[]
       evidence_refs[]
    }

    を中心に置く。

    法律、政令、省令等は同じLegal Instrument Familyへ置きながら、instrument_typeとAuthorityを分離する。

    [
    \boxed{
    LegalDocument
    \neq
    LegalEffect
    }
    ]

    である。

    3 Legal LifecycleをEvent化する

    法令の変化をCanonical Eventとして記録する。

    LAW_ENACTED
    LAW_PROMULGATED
    LAW_EFFECTIVE
    LAW_AMENDED
    LAW_PARTIALLY_EFFECTIVE
    LAW_SUSPENDED
    LAW_REPEALED
    REGULATION_ISSUED
    REGULATION_PROMULGATED
    REGULATION_EFFECTIVE
    REGULATION_AMENDED
    REGULATION_REPEALED

    これによってCurrent Textの上書きではなく、

    [
    \boxed{
    LegalHistory

    InitialLegalState
    +
    LegalEventLog
    }
    ]

    として履歴を再生できる。

    4 PromulgationとEffectを分離する

    Legal Runtimeで特に重要なのが時間である。

    [
    \boxed{
    PromulgatedAt
    \neq
    EffectiveAt
    }
    ]

    公布された法令が、その日に全面施行されるとは限らない。

    したがって、

    LegalTemporalState {
       enacted_at
       promulgated_at
       effective_from
       effective_to
       recorded_at
    }

    を分離する。

    これによって「公布済みだが未施行」というStateを正確に表現できる。

    5 段階施行を表現する

    一つの法令でも条項ごとに施行時期が異なる場合がある。

    したがって、

    [
    \boxed{
    LawEffective
    \neq
    AllProvisionsEffective
    }
    ]

    である。

    LegalInstrument
         ↓
    Provision
         ↓
    EffectivePeriod

    としてProvision LevelまでTemporal Stateを持てるようにする。

    概念的には、

    effective(provision, t) -> true | false

    を問い合わせられる。

    これにより、ある日付に実際に有効だった条文集合を生成できる。

    6 RevisionをVersionとして保持する

    改正時に法令本文を直接置換してはならない。

    LegalInstrument
      ├── Version_1
      ├── Version_2
      └── Version_3

    としてRevision Historyを保持する。

    各Versionには、

    LegalVersion {
       version_id
       legal_instrument_ref
       valid_from
       valid_to
       amendment_event_ref
       source_snapshot_ref
    }

    を持たせる。

    したがって、

    [
    \boxed{
    CurrentLaw

    LatestEffectiveVersion(t)
    }
    ]

    としてCurrent Viewを生成する。

    7 改正法と被改正法を接続する

    改正は単なるText Differenceではない。

    AmendingInstrument
         │
       AMENDS
         ▼
    TargetInstrument
         ↓
    TargetProvision

    というLegal Relationを形成する。

    さらに、

    ADD
    REPLACE
    DELETE
    RENUMBER
    MOVE

    などのChange Operationへ展開できる。

    これによって、

    [
    \boxed{
    Amendment

    LegalEvent
    +
    Target
    +
    ChangeOperation
    +
    EffectiveTime
    }
    ]

    として機械処理できる。

    8 法令HierarchyをAuthority Graphへ接続する

    Legal Instrumentは孤立して存在しない。

    Constitution
      ↓
    Law
      ↓
    Cabinet Order
      ↓
    Ministerial Ordinance

    のような法的構造を記述できるが、単純なTreeだけでAuthorityを決定してはならない。

    重要なのは、

    LegalInstrument
         │
    AUTHORIZED_BY
         ▼
    LegalBasis

    というRelationである。

    [
    \boxed{
    LowerLevelInstrument
    \Rightarrow
    RequiresValidLegalBasis
    }
    ]

    をRuntimeで検証する。

    9 Issuer Authorityを検証する

    Regulationを発するにはInstitutional Authorityが必要である。

    Issuer
     +
    ActiveRole / Institution
     +
    LegalBasis
     +
    AuthorityScope
     +
    Time
         ↓
    ValidLegalAction

    とする。

    つまり、

    [
    \boxed{
    ValidLegalEvent

    ValidIssuer
    +
    ValidAuthority
    +
    ValidProcedure
    +
    ValidEvidence
    +
    ValidTime
    }
    ]

    である。

    Digital Twinは文書が公開されたという事実だけから、その法的効力を推測しない。

    10 Legal ReferenceとLegal Dependencyを分ける

    法令同士には多数の参照が存在する。

    REFERS_TO
    AMENDS
    REPEALS
    AUTHORIZED_BY
    IMPLEMENTS
    DEFINES
    EXEMPTS_FROM

    などを区別する。

    [
    \boxed{
    TextReference
    \neq
    LegalDependency
    }
    ]

    である。

    単に他法令名が本文に現れただけで、Authority Relationを生成してはならない。

    11 RepealをDeletionにしない

    廃止された法令もDigital Twinから削除しない。

    ACTIVE
     ↓
    REPEAL_EVENT
     ↓
    REPEALED

    とする。

    [
    \boxed{
    Repealed
    \neq
    Deleted
    }
    ]

    である。

    過去の行政行為や政策を理解するには、当時有効だった法令を保持しなければならない。

    Historical Stateでは廃止済み法令も重要なAuthoritative Evidenceになる。

    12 Effective Law Setを生成する

    任意時点tについて、

    [
    \boxed{
    EffectiveLawSet(t)

    {
    L
    \mid
    EffectiveFrom(L)\leq t < EffectiveTo(L)
    }
    }
    ]

    を生成する。

    Provision Levelまで扱うなら、

    [
    \boxed{
    EffectiveProvisionSet(t)
    }
    ]

    を計算する。

    これにより、

    「2020年時点のRule」

    「2026年時点のRule」

    を同じCurrent Databaseから推測するのではなく、それぞれのHistorical Legal Stateとして再構成できる。

    13 Legal StateとInstitutionを接続する

    法令はGovernment ArchitectureへAuthorityを与える。

    LegalInstrument
         ↓
    ESTABLISHES / AUTHORIZES
         ↓
    Institution
         ↓
    GovernmentUnit
         ↓
    Role
         ↓
    Authority

    これによって法令改正が組織・Authority Stateへ与える影響を追跡できる。

    例えばInstitutionの設置・廃止・所掌変更がLegal Eventによって発生する場合、

    Legal Event
       ↓
    Authority Change
       ↓
    Organization Event
       ↓
    Government State Transition

    へ渡す。

    14 Legal StateとPolicyを接続する

    PolicyとLawも同一ではない。

    [
    \boxed{
    Policy
    \neq
    Law
    }
    ]

    である。

    Policy
      │
    IMPLEMENTED_THROUGH
      ▼
    LegalInstrument

    または、

    LegalInstrument
      │
    PROVIDES_BASIS_FOR
      ▼
    Policy / Program

    として接続する。

    これにより、「政策方針が存在する」ことと「法的根拠が成立している」ことを区別できる。

    15 政治から法へのBoundaryを固定する

    前節のPolitical State Machineとの接続点は明確にする。

    Political Runtime
         ↓
    Institutional Decision
         ↓
    Legal Transition Candidate
         ↓
    Legal Procedure Validation
         ↓
    Promulgation / Effect Event
         ↓
    Legal Runtime

    したがって、

    [
    \boxed{
    PoliticalApproval
    \neq
    LegalEffect
    }
    ]

    である。

    Political RuntimeはDecisionを生成する。

    Legal Runtimeは、そのDecisionがどのLegal Eventを経てRuleとして有効になるかを処理する。

    16 RuntimeをDeterministicにする

    Legal Runtimeは同じInitial Stateと同じValidated Event Logから、同じLegal Stateを生成しなければならない。

    InitialLegalState
         +
    ValidatedLegalEvents
         ↓
    Replay(until=t)
         ↓
    LegalState(t)

    したがって、

    [
    \boxed{
    LegalState(t)

    Replay(
    LegalEvents_{\leq t}
    )
    }
    ]

    である。

    AIによる法令解釈が変化しても、Canonical Legal Stateまで変化してはならない。

    17 InterpretationとLegal Stateを分離する

    法令には解釈が必要な場合がある。

    しかし、

    [
    \boxed{
    LegalText
    \neq
    Interpretation
    }
    ]

    かつ、

    [
    \boxed{
    Interpretation
    \neq
    AuthoritativeLegalState
    }
    ]

    である。

    AIによるInterpretation。

    研究者によるInterpretation。

    行政上のInterpretation。

    司法判断。

    これらを同一State Classへ潰さない。

    Canonical Legal StateはEvidenceに基づく法令・Version・Effect・Authorityを保持し、Interpretation Layerは別に接続する。

    18 AIをLegal Authorityにしない

    AIは、

    法令構造のParse。

    改正箇所の検出。

    参照法令の抽出。

    Version Comparison。

    Legal Basis Candidateの探索。

    矛盾候補の検出。

    を支援できる。

    しかし、

    [
    \boxed{
    AIInterpretation
    \neq
    LegalAuthority
    }
    ]

    である。

    AIが「この法令はこう解釈される」と生成した文章によってCanonical Legal Stateを変更してはならない。

    Machine-generated RelationはINFERREDとしてValidation対象にする。

    19 Law / Regulation Runtimeを完成させる

    最終的なLegal Runtimeは、

    Political Decision
         ↓
    Legal Event Candidate
         ↓
    Legal Identity Resolution
         ↓
    Procedure Validation
         ↓
    Issuer / Authority Validation
         ↓
    Legal Basis Validation
         ↓
    Temporal Validation
         ↓
    Evidence Validation
         ↓
    Canonical Legal Event
         ↓
    Legal State Transition
         ↓
    Effective Law / Provision Set
         ↓
    Audit / Replay

    となる。

    その核心は、

    [
    \boxed{
    LegalState_{t+1}

    Transition(
    LegalState_t,
    ValidatedLegalEvent
    )
    }
    ]

    である。

    これによって日本政治Digital Twinは、法令を「現在読めるText」としてではなく、

    いつ成立し、いつ公布され、いつ何が施行され、どのVersionが有効となり、どのInstitutionとAuthorityを成立させたのか

    というTemporal Legal Realityとして実行できる。

    Political State Machineが国家のDecisionを動かした。

    Law / Regulation Runtimeは、そのDecisionをRuleへ変換した。

    しかし、Ruleが成立しただけでは行政は動かない。

    国会と内閣。

    Political DecisionとExecutive Decision。

    法的AuthorityとAdministrative Execution。

    これらを接続して初めて、国家の意思はGovernment Actionへ移る。

    次節では、

    [
    \boxed{
    Diet
    \rightarrow
    Cabinet
    \rightarrow
    GovernmentExecution
    }
    ]

    をRuntimeとして接続する。

    政治と法から、実際に行政を動かすExecution Boundaryへ。

    日本政治Digital Twinは、Diet / Cabinet Runtimeへ進む。
    第3節 Diet / Cabinet Runtime

    Political State Machineは政治主体と意思決定の変化を記述し、Law / Regulation Runtimeはその一部をLegal Stateへ変換した。

    しかし、日本国家のExecutionを動かすには、さらに一つの境界を実装しなければならない。

    国会と内閣である。

    国会は国権の最高機関であり、国の唯一の立法機関として法律、予算、条約承認などに関与する。一方、行政権は内閣に属し、内閣は行政各部を指揮監督する。

    Digital Twinでは、この制度的分業を単純な、

    Diet
    ↓
    Cabinet
    ↓
    Ministries

    というCommand Treeへ圧縮してはならない。

    必要なのは、

    [
    \boxed{
    PoliticalDecision
    \rightarrow
    InstitutionalAuthority
    \rightarrow
    ExecutiveAction
    }
    ]

    の各境界を保持したRuntimeである。

    1 Diet StateとCabinet Stateを分離する

    まず、

    [
    \boxed{
    DietState
    \neq
    CabinetState
    }
    ]

    とする。

    GovernmentRuntime {
       diet_state
       cabinet_state
       legal_state
       executive_state
    }

    国会の構成が変わることと、内閣の構成が変わることは別のState Transitionである。

    同じPolitical Realityへ属していても、それぞれ独立したIdentity、Event、Authority、Timeを持つ。

    2 Diet RuntimeをCollective Decision Engineとして実装する

    国会Runtimeの中心は、個々の議員ではなくPolitical BodyによるCollective Decisionである。

    Diet
    ├── House of Representatives
    ├── House of Councillors
    ├── Committees
    ├── Sessions
    ├── Meetings
    ├── Bills
    ├── Motions
    └── Decisions

    したがって、

    [
    \boxed{
    MemberAction
    \neq
    DietDecision
    }
    ]

    である。

    個人の発言、質問、賛否と、国会として成立したDecisionを分離する。

    3 Diet DecisionをState Transitionとして処理する

    国会に関係するEventを、

    SESSION_CONVENED
    MEETING_OPENED
    BILL_INTRODUCED
    DELIBERATION_STARTED
    COMMITTEE_DECISION_RECORDED
    HOUSE_DECISION_RECORDED
    BUDGET_DECISION_RECORDED
    TREATY_DECISION_RECORDED
    SESSION_CLOSED

    などへCanonicalizeする。

    ただし、Event名そのものが法的効果を保証するわけではない。

    [
    \boxed{
    RecordedPoliticalEvent
    +
    ValidProcedure
    \rightarrow
    InstitutionalDecision
    }
    ]

    というValidationを通す。

    4 ProcedureをExecutable Constraintにする

    国会のDecisionは単純なBooleanではない。

    PoliticalBody
         +
    Session
         +
    Agenda
         +
    Procedure
         +
    RequiredCondition
         +
    RecordedResult
         ↓
    InstitutionalDecision

    として処理する。

    Runtimeは、どのBodyが、どのProcedureを経て、何を決定したかを保持する。

    これにより「議論された」と「決定された」を混同しない。

    [
    \boxed{
    Deliberated
    \neq
    Decided
    }
    ]

    である。

    5 Diet Outputを型付きEventとして渡す

    国会のDecisionは、その内容によって異なるRuntimeへ渡される。

    Diet Decision
    ├── Legal → Legal Runtime
    ├── Fiscal → Budget Runtime
    ├── Treaty-related → Relevant Runtime
    └── Political / Institutional → Political Runtime

    つまり、Diet Runtime自体がすべてのStateを変更するわけではない。

    [
    \boxed{
    Decision
    \rightarrow
    TypedTransitionCandidate
    }
    ]

    として次のDomain Runtimeへ渡す。

    これによってDomain Boundaryを維持する。

    6 CabinetをExecutive Political Bodyとして扱う

    内閣も単なる「総理大臣+大臣一覧」ではない。

    Cabinet {
       cabinet_ref
       prime_minister_role_ref
       minister_role_refs[]
       collective_authority_refs[]
       formed_at
       valid_until
       evidence_refs[]
    }

    としてTemporal Stateを持つ。

    PersonとRoleを分離し、

    [
    \boxed{
    Person
    \neq
    MinisterRole
    \neq
    Cabinet
    }
    ]

    とする。

    内閣の交代でもPerson IdentityやInstitution Identityを破壊しない。

    7 Cabinet FormationをEvent Chainにする

    内閣形成も一回のDatabase Updateではない。

    Political Preconditions
         ↓
    Prime Minister Role Transition
         ↓
    Minister Role Assignments
         ↓
    Cabinet Formation Event
         ↓
    Active Cabinet State

    としてEvent Chainを形成する。

    退任時も、

    CABINET_RESIGNATION_EVENT
         ↓
    Role Transition
         ↓
    Historical Cabinet State

    へ移す。

    これによってHistorical Replayが可能になる。

    8 Cabinet DecisionとMinister Actionを分ける

    行政側でもCollective AuthorityとIndividual Authorityを混同してはならない。

    [
    \boxed{
    CabinetDecision
    \neq
    MinisterAction
    }
    ]

    である。

    Cabinet
      │
    COLLECTIVE_AUTHORITY
      ▼
    Cabinet Action
    Minister Role
      │
    ROLE_AUTHORITY
      ▼
    Ministerial Action

    としてAuthority Graphを分離する。

    どちらが必要なのかはAction TypeとLegal Basisによって決まる。

    9 Cabinet RuntimeをLegal Stateへ接続する

    内閣のActionにはLegal Runtimeへ接続されるものがある。

    Cabinet Action
         ↓
    Legal Basis Validation
         ↓
    Legal Event Candidate
         ↓
    Law / Regulation Runtime

    重要なのは、

    [
    \boxed{
    ExecutiveDecision
    \neq
    LegalEffect
    }
    ]

    である。

    内閣側のDecisionが存在しても、必要な法的手続・公布・施行等を経なければLegal Stateを直接変更しない。

    10 Cabinetから行政各部へExecutionを渡す

    Cabinet RuntimeとMinistry Runtimeの境界では、

    Cabinet State
         ↓
    Authorized Executive Direction
         ↓
    Responsible Institution
         ↓
    Government Unit
         ↓
    Program / Administrative Action

    というExecution Chainを形成する。

    しかし、

    [
    \boxed{
    PoliticalDirection
    \neq
    CompletedExecution
    }
    ]

    である。

    Directionが出されたことと、各行政機関でImplementationされたことを別Stateとして保持する。

    11 Responsibility Resolutionを行う

    Executive ActionにはResponsible InstitutionをResolutionする。

    ExecutiveAction {
       action_id
       authority_ref
       legal_basis_refs[]
       responsible_institution_refs[]
       responsible_unit_refs[]
       effective_time
       evidence_refs[]
    }

    これによって、

    「誰が決めたか」

    と、

    「誰が実行するか」

    を分離する。

    [
    \boxed{
    DecisionAuthority
    \neq
    ExecutionResponsibility
    }
    ]

    である。

    12 複数府省庁へのExecutionを表現する

    一つの政策が複数府省庁へまたがることもある。

    Executive Decision
         ↓
    Execution Plan
      ┌──┼──┐
      ↓  ↓  ↓
    Inst A Inst B Inst C

    このとき、一つの巨大なUnified Ministryへ統合しない。

    各InstitutionのAuthorityを維持したままDependency Graphを形成する。

    [
    \boxed{
    CrossMinistryDependency
    \neq
    CrossMinistryAuthority
    }
    ]

    である。

    13 DietとCabinetの関係を双方向に保持する

    国会と内閣は一方向Pipelineだけではない。

    Diet
    ↓
    Law / Budget / Institutional Decision
    ↓
    Cabinet
    ↓
    Government Execution
    ↓
    Reporting / Accountability / New Proposal
    ↓
    Diet

    というLoopを形成する。

    したがって、

    [
    \boxed{
    Diet
    \leftrightarrow
    Cabinet
    }
    ]

    を複数のTyped RelationとEventによって表現する。

    単純なCONTROLS Edge一つへ圧縮しない。

    14 Decision Provenanceを保持する

    行政Actionがどこから生じたかを遡れる必要がある。

    AdministrativeAction
         ↓
    ExecutiveDecision
         ↓
    Political / Legal Basis
         ↓
    Evidence
         ↓
    SourceSnapshot

    これによって、

    「この行政Actionは何に基づいているか」

    をMachine-readableに回答できる。

    [
    \boxed{
    ExecutionWithoutProvenance
    \neq
    AuthoritativeExecution
    }
    ]

    である。

    15 Runtime Commandと現実の権限を分離する

    Software上のexecute()というFunctionが、国家権限を生み出してはならない。

    RuntimeCommand
         ↓
    Authority Validation
         ↓
    Procedure Validation
         ↓
    Evidence Validation
         ↓
    State Transition

    とする。

    [
    \boxed{
    SoftwarePermission
    \neq
    InstitutionalAuthority
    }
    ]

    である。

    System Administratorであっても、政治的・法的AuthorityがなければAuthoritative Political Stateを変更できない。

    16 Historical Replayを可能にする

    Diet / Cabinet RuntimeもEvent Logから再構成する。

    [
    \boxed{
    DietCabinetState(t)

    Replay(
    ValidatedEvents_{\leq t}
    )
    }
    ]

    とする。

    これによって任意時点で、

    国会の構成。

    会期。

    議案State。

    内閣構成。

    Role Occupancy。

    Institutional Decisions。

    Executive Actions。

    を再現できる。

    さらにKnownAtを指定すれば、その時点で利用可能だったEvidenceだけによるStateも再構成できる。

    17 AIをGovernment Decision Makerにしない

    AIはDiet / Cabinet Runtimeで、

    議事録検索。

    Decision Candidate抽出。

    法的根拠探索。

    関係府省庁候補のResolution。

    Cross-Ministry Dependency分析。

    Historical Comparison。

    を支援できる。

    しかし、

    [
    \boxed{
    AIRecommendation
    \neq
    GovernmentDecision
    }
    ]

    である。

    AI Agentが生成したActionはProposal Stateに留める。

    Authoritative Transitionには、制度上有効なHuman / Institutional Decisionを要求する。

    18 Diet / Cabinet Runtimeを統合する

    最終的なExecution Flowは、

    Political Reality
         ↓
    Diet Event
         ↓
    Procedure Validation
         ↓
    Institutional Decision
         ↓
    Legal / Fiscal Transition
         ↓
    Cabinet State
         ↓
    Executive Decision
         ↓
    Authority / Legal Basis Validation
         ↓
    Responsible Institution
         ↓
    Administrative Execution Candidate
         ↓
    Audit

    となる。

    その核心は、

    [
    \boxed{
    Decision
    +
    Authority
    +
    Procedure
    +
    LegalBasis
    +
    Evidence
    \rightarrow
    ExecutableGovernmentAction
    }
    ]

    である。

    ここで日本政治Digital Twinは、Political DecisionとGovernment Executionの境界を越える。

    しかし、内閣がActionを決定しても、それを実際に処理するのは行政機関である。

    省。

    庁。

    局。

    部。

    課。

    室。

    地方支分部局。

    そして、それぞれに割り当てられたRole、Authority、Capability。

    次節では、これらをVertical Runtimeとして実装する。

    [
    \boxed{
    Institution
    \rightarrow
    GovernmentUnit
    \rightarrow
    Role
    \rightarrow
    Authority
    \rightarrow
    Action
    }
    ]

    Diet / Cabinet Runtimeから、Ministry Vertical Runtimeへ。

    国家のDecisionは、行政組織の内部を通ってExecutionへ進む。
    第4節 Ministry Vertical Runtime

    Diet / Cabinet Runtimeによって、Political DecisionをExecutive Actionへ接続した。

    しかし、内閣がDecisionしただけでは行政は実行されない。

    実際のExecutionは、省庁、その内部部局、地方支分部局、施設等の組織構造と、そこに配置されたRole、Authority、Capabilityを通じて行われる。

    したがってMinistry Vertical Runtimeの基本構造は、

    [
    \boxed{
    Institution
    \rightarrow
    GovernmentUnit
    \rightarrow
    Role
    \rightarrow
    Authority
    \rightarrow
    Action
    \rightarrow
    StateTransition
    }
    ]

    となる。

    ここで実装するのは、単なる電子組織図ではない。

    「どの行政Actionを、どの組織単位が、どのAuthorityに基づいて実行できるのか」を検証しながらStateを動かすVertical Execution Runtimeである。

    1 組織図とRuntimeを分離する

    行政組織を、

    Ministry
     ↓
    Bureau
     ↓
    Department
     ↓
    Division
     ↓
    Office

    と記述するだけならOrganization Graphである。

    Runtimeにはさらに、

    GovernmentUnit
         ↓
    Role
         ↓
    Authority
         ↓
    Capability
         ↓
    Action
         ↓
    Event

    が必要になる。

    したがって、

    [
    \boxed{
    OrganizationStructure
    \neq
    ExecutionRuntime
    }
    ]

    である。

    2 Government Unitを再帰構造にする

    日本の行政組織は、すべてが同一階層ではない。

    そこで特定の名称をCodeへ固定せず、

    GovernmentUnit {
       canonical_unit_id
       institution_ref
       unit_type
       parent_unit_ref
       valid_time
       authority_refs[]
       capability_refs[]
    }

    というRecursive Modelを採用する。

    [
    \boxed{
    GovernmentUnit
    \rightarrow
    GovernmentUnit
    }
    ]

    という自己参照構造によって、異なる府省庁の組織形態を同じRuntimeで扱える。

    3 HierarchyとAuthorityを分離する

    Ministry Vertical Runtimeで最も重要なInvariantの一つが、

    [
    \boxed{
    PART_OF
    \neq
    HAS_AUTHORITY_OVER
    }
    ]

    である。

    上位組織に属するからといって、すべてのActionについて直接Authorityを持つとは限らない。

    したがって、

    GovernmentUnit A
         │
       PART_OF
         ▼
    GovernmentUnit B
    Role
         │
    HAS_AUTHORITY
         ▼
    ActionScope

    を別Graphとして保持する。

    Organization TreeからAuthorityを自動推論しない。

    4 RoleをExecution Pointにする

    行政ActionはInstitutionという抽象Entityが直接行うのではなく、制度上定義されたRoleを通じて実行される。

    Person
     │
    OCCUPIES
     ▼
    Role
     │
    BELONGS_TO
     ▼
    GovernmentUnit

    Roleには、

    RoleRuntime {
       role_ref
       unit_ref
       authority_refs[]
       valid_from
       valid_to
       delegation_refs[]
    }

    を持たせる。

    [
    \boxed{
    Person
    \neq
    Role
    \neq
    Authority
    }
    ]

    という第Ⅰ部のOntologyが、ここでExecution Ruleになる。

    5 AuthorityをAction Scopeとして実装する

    Authorityは単なるadmin=trueではない。

    Authority {
       authority_id
       role_ref
       action_type
       object_scope
       jurisdiction_scope
       legal_basis_refs[]
       valid_from
       valid_to
       constraints[]
    }

    として保持する。

    Action実行時には、

    [
    \boxed{
    ValidAuthority

    Role
    \times
    Action
    \times
    Scope
    \times
    LegalBasis
    \times
    Time
    }
    ]

    を検証する。

    これによって「権限がある」という曖昧な状態を、Machine-verifiableなConstraintへ変換する。

    6 CapabilityとAuthorityを分ける

    組織が技術的・人的に実行可能であることと、制度上実行してよいことも異なる。

    [
    \boxed{
    Capability
    \neq
    Authority
    }
    ]

    である。

    例えば、

    GovernmentUnit
      │
    HAS_CAPABILITY
      ▼
    DataAnalysis
    Role
      │
    HAS_AUTHORITY
      ▼
    OfficialPublication

    のように分離する。

    AI導入によってCapabilityが拡張されても、それだけでAuthorityは拡張されない。

    これは次世代Government AIに不可欠な境界である。

    7 Administrative ActionをCanonicalizeする

    行政Runtimeで発生するActionをTyped Actionとして定義する。

    REVIEW
    APPROVE
    REJECT
    ISSUE
    NOTIFY
    REGISTER
    ALLOCATE
    INSPECT
    REQUEST
    REPORT
    PUBLISH
    TRANSFER
    EXECUTE_PROGRAM

    実際のDomainではさらに詳細なAction Typeへ展開する。

    各Actionには、

    AdministrativeAction {
       action_id
       action_type
       actor_role_ref
       unit_ref
       target_refs[]
       authority_ref
       legal_basis_refs[]
       occurred_at
       evidence_refs[]
    }

    を持たせる。

    8 CommandとEventを分離する

    Runtimeへ「これを実行したい」というRequestが届いても、まだRealityは変化していない。

    Command
      ↓
    Validation
      ↓
    Execution
      ↓
    Event
      ↓
    State Transition

    とする。

    [
    \boxed{
    Command
    \neq
    Event
    }
    ]

    である。

    CommandはIntent。

    Eventは実際に成立したState Changeの記録である。

    失敗したCommandから成功Eventを生成してはならない。

    9 Vertical Validation Pipeline

    Actionは次のPipelineを通す。

    Command
     ↓
    Actor Identity
     ↓
    Active Role
     ↓
    Government Unit
     ↓
    Authority Scope
     ↓
    Legal Basis
     ↓
    Temporal Constraint
     ↓
    Required Evidence
     ↓
    Business Rule
     ↓
    Execute
     ↓
    Canonical Event

    一つでも成立しなければAuthoritative StateへCommitしない。

    概念的には、

    def authorize(command, state):
       role = resolve_active_role(command.actor, state)
       authority = resolve_authority(role, command.action)
       validate_scope(authority, command.target)
       validate_legal_basis(authority)
       validate_time(authority)
       validate_evidence(command)
       return authority

    となる。

    10 Delegationを明示する

    行政組織ではAuthorityの委任・代行等を考慮する必要がある。

    Digital Twinでは元Authorityを直接書き換えず、

    Original Authority
         ↓
    Delegation Event
         ↓
    Delegated Authority
         ↓
    Delegate Role

    として表現する。

    重要なInvariantは、

    [
    \boxed{
    DelegatedAuthority
    \subseteq
    OriginalAuthority
    }
    ]

    である。

    委任によって元のAuthorityを超える権限を生成してはならない。

    有効期間とScopeも保持する。

    11 WorkflowをState Machineにする

    行政業務は一つのFunction Callではなく、複数Roleを通過する場合がある。

    DRAFT
     ↓
    REVIEW
     ↓
    APPROVAL
     ↓
    EXECUTION
     ↓
    PUBLICATION
     ↓
    CLOSED

    各Transitionについて、

    TransitionRule {
       from_state
       to_state
       required_role
       required_authority
       required_evidence
       guard_conditions[]
    }

    を定義する。

    これによってWorkflow自体をExecutable Policyへ変換できる。

    12 Vertical RuntimeをProgramへ接続する

    行政組織は組織のために存在するのではない。

    政策・ProgramをExecutionする。

    Policy
     ↓
    Program
     ↓
    Responsible Institution
     ↓
    Government Unit
     ↓
    Role
     ↓
    Administrative Action
     ↓
    Program State

    したがって、

    [
    \boxed{
    ProgramExecution

    Institution
    +
    Capability
    +
    Authority
    +
    Resource
    +
    Action
    }
    ]

    として記述する。

    「担当府省庁」というLabelだけでExecutionを済ませない。

    13 VerticalとFiscalを接続する

    Program ExecutionにはResourceが必要になる。

    GovernmentUnit
         ↓
    Program
         ↓
    Fiscal Authorization
         ↓
    Resource Allocation
         ↓
    Execution

    しかし、

    [
    \boxed{
    AdministrativeAuthority
    \neq
    FiscalAuthority
    }
    ]

    である。

    政策上の担当Authorityを持つRoleが、そのまますべての支出Authorityを持つとは限らない。

    この境界は次節のBudget / Fiscal Runtimeで実装する。

    14 Cross-Ministry Dependencyを外部Relationにする

    Vertical Runtimeは一つの府省庁内部だけで閉じない。

    Ministry A Runtime
         │
    DEPENDS_ON
         ▼
    Ministry B Runtime

    を許容する。

    ただし、

    [
    \boxed{
    Dependency
    \neq
    Authority
    }
    ]

    である。

    AがBのDataやActionを必要とすることと、AがBを指揮できることは別である。

    Vertical Runtimeを維持したまま、後続のIntegrated Government Runtimeで横断接続する。

    15 組織再編をRuntimeへ反映する

    省庁、局、課等は時間とともに変化する。

    UNIT_CREATED
    UNIT_RENAMED
    UNIT_MOVED
    UNIT_SPLIT
    UNIT_MERGED
    UNIT_DISSOLVED
    MANDATE_CHANGED

    をOrganization Eventとして処理する。

    再編後もHistorical Identityと旧Authorityを保持する。

    [
    \boxed{
    CurrentOrganization
    \neq
    HistoricalOrganization
    }
    ]

    である。

    過去の行政Actionを現在の組織構造へ誤って割り当てない。

    16 AuditをVertical Chain全体に通す

    すべてのAuthoritative Actionについて、

    Who
    ↓
    Which Role
    ↓
    Which Unit
    ↓
    Which Authority
    ↓
    Which Legal Basis
    ↓
    Which Action
    ↓
    Which State Changed
    ↓
    Which Evidence

    を再構成できなければならない。

    したがって、

    [
    \boxed{
    AdministrativeAction
    \rightarrow
    Authority
    \rightarrow
    Evidence
    }
    ]

    のTraceを必須とする。

    これは責任追跡だけでなく、System Debuggingにも必要である。

    17 AI AgentをVertical Runtimeへ配置する

    AI Agentは行政Verticalの各層を支援できる。

    Source Retrieval
         ↓
    Document Analysis
         ↓
    Action Candidate
         ↓
    Required Evidence Search
         ↓
    Rule Check
         ↓
    Human Review
         ↓
    Authorized Execution

    AIは大量の行政情報を横断し、次のAction Candidateを生成できる。

    しかし、

    [
    \boxed{
    AgentCapability
    \neq
    GovernmentAuthority
    }
    ]

    である。

    AI AgentにはCanonical Authorityを付与せず、Proposal、Analysis、Retrieval、Validation Assistanceを基本Roleとする。

    18 Ministry RuntimeをReplay可能にする

    Administrative Event Logから任意時点のVertical Stateを再構成する。

    [
    \boxed{
    MinistryState(t)

    Replay(
    AdministrativeEvents_{\leq t}
    )
    }
    ]

    これによって、

    その時どの組織が存在したか。

    誰がどのRoleにいたか。

    どのAuthorityが有効だったか。

    どのProgramを担当していたか。

    どのActionが実行されたか。

    をHistorical Stateとして再現できる。

    19 Vertical Runtimeを完成させる

    最終的なMinistry Vertical Runtimeは、

    Executive Decision
         ↓
    Responsible Institution
         ↓
    Government Unit
         ↓
    Active Role
         ↓
    Authority
         ↓
    Legal Basis
         ↓
    Capability
         ↓
    Administrative Command
         ↓
    Validation
         ↓
    Execution
         ↓
    Canonical Event
         ↓
    Administrative State Transition
         ↓
    Audit / Replay

    となる。

    その核心は、

    [
    \boxed{
    AdministrativeState_{t+1}

    Transition(
    AdministrativeState_t,
    Action,
    Role,
    Authority,
    LegalBasis,
    Evidence
    )
    }
    ]

    である。

    ここで日本政治Digital Twinは、省庁を組織名の一覧としてではなく、AuthorityとActionが流れるExecutable Verticalとして記述できるようになる。

    しかし、行政Actionを実行するには、もう一つのConstraintがある。

    Resourceである。

    政策を担当していること。

    実行Authorityを持っていること。

    それだけではMoneyを動かすことはできない。

    予算の要求。

    成立。

    配分。

    Commitment。

    契約。

    支払。

    決算。

    これらにも独立したState Transitionが存在する。

    次節では、

    [
    \boxed{
    FiscalAuthorization
    \rightarrow
    ResourceFlow
    \rightarrow
    Execution
    }
    ]

    を実装する。

    Ministry Vertical RuntimeからBudget / Fiscal Runtimeへ。

    行政のAuthorityは、国家ResourceのExecutionへ接続される。
    第5節 Budget / Fiscal Runtime

    Ministry Vertical Runtimeによって、行政ActionをInstitution、Government Unit、Role、Authorityへ接続した。

    しかし、行政上のAuthorityを持つことと、国家Resourceを支出できることは同一ではない。

    政策が存在する。

    担当組織が存在する。

    Programが存在する。

    それでもFiscal Authorizationがなければ、Moneyは動かない。

    したがってBudget / Fiscal Runtimeでは、

    [
    \boxed{
    Policy
    \rightarrow
    Budget
    \rightarrow
    Authorization
    \rightarrow
    Allocation
    \rightarrow
    Commitment
    \rightarrow
    Payment
    \rightarrow
    Execution
    }
    ]

    を独立したState Transitionとして実装する。

    目的は政府支出を集計することではない。

    どのAuthorityによって、どのResourceが、いつ、どのProgram・Organization・Territoryへ移動したのかを再生可能にすることである。

    1 Fiscal Stateを定義する

    Fiscal Runtimeの中心には、単一の「予算額」ではなく複数のStateを置く。

    FiscalState {
       fiscal_year
       accounts
       fiscal_items
       programs
       authorizations
       allocations
       commitments
       contracts
       payments
       balances
       evidence_refs[]
    }

    最重要Invariantは、

    [
    \boxed{
    Requested
    \neq
    Proposed
    \neq
    Authorized
    \neq
    Allocated
    \neq
    Committed
    \neq
    Paid
    }
    ]

    である。

    「予算がある」と「実際に支出された」を同一視しない。

    2 Budget LifecycleをState Machineにする

    Budgetは静的Documentではない。

    概念的には、

    REQUESTED
       ↓
    PROPOSED
       ↓
    AUTHORIZED
       ↓
    ALLOCATED
       ↓
    EXECUTING
       ↓
    CLOSED

    というLifecycleを持つ。

    途中で補正、配分変更、契約、支払等が発生すれば、それぞれをFiscal Eventとして記録する。

    [
    \boxed{
    FiscalState_t
    +
    FiscalEvent
    \rightarrow
    FiscalState_{t+1}
    }
    ]

    である。

    Current Amountを上書きするのではなく、ResourceがどのTransitionを通過したのかを保持する。

    3 Political DecisionとFiscal Effectを分離する

    国会による予算DecisionはFiscal Runtimeへの重要なInputである。

    しかし、

    [
    \boxed{
    BudgetDecision
    \neq
    Payment
    }
    ]

    である。

    Diet Decision
        ↓
    Fiscal Authorization Event
        ↓
    Authorized Budget State
        ↓
    Administrative Allocation
        ↓
    Fiscal Execution

    という境界を置く。

    これによってPolitical Runtime、Diet / Cabinet Runtime、Fiscal Runtimeの責任範囲を分離できる。

    4 Fiscal Authorizationを第一級Entityにする

    Moneyを動かすにはFiscal Authorityが必要になる。

    FiscalAuthorization {
       authorization_id
       fiscal_item_ref
       account_ref
       amount_limit
       authority_ref
       legal_basis_refs[]
       valid_from
       valid_to
       constraints[]
    }

    とする。

    そして、

    [
    \boxed{
    AdministrativeAuthority
    \neq
    FiscalAuthority
    }
    ]

    を維持する。

    政策担当者だからといって、任意の金額を支出できるわけではない。

    5 Allocationを独立Transitionにする

    成立したBudgetが、どのProgram、Government Unit、Project等へ割り当てられるかを記述する。

    FiscalAuthorization
         ↓
    Allocation Event
         ↓
    Program / Unit
         ↓
    Available Resource

    Allocationには、

    Allocation {
       allocation_id
       source_fiscal_ref
       destination_ref
       amount
       effective_at
       authority_ref
       evidence_refs[]
    }

    を持たせる。

    [
    \boxed{
    AuthorizedAmount
    \neq
    AllocatedAmount
    }
    ]

    である。

    6 CommitmentをPaymentから分離する

    支出義務が生じたことと、Moneyが実際に支払われたことも異なる。

    [
    \boxed{
    Commitment
    \neq
    Payment
    }
    ]

    とする。

    Available Resource
         ↓
    Commitment
         ↓
    Contract / Obligation
         ↓
    Payment Event

    これにより、Budget消化を単なるPayment履歴ではなく、Execution Processとして追跡できる。

    7 ProcurementとContractを接続する

    調達を伴う場合、

    Program
     ↓
    Procurement
     ↓
    Award
     ↓
    Contract
     ↓
    Commitment
     ↓
    Payment

    というChainを形成する。

    ただし、

    [
    \boxed{
    Procurement
    \neq
    Contract
    \neq
    Payment
    }
    ]

    である。

    調達開始。

    契約成立。

    契約変更。

    履行。

    支払。

    を別Eventとして保持する。

    8 Fiscal Instrumentを型付けする

    国家Resourceは契約だけで移動するわけではない。

    PROCUREMENT
    GRANT
    SUBSIDY
    TRANSFER
    CONTRIBUTION
    INVESTMENT
    LOAN
    CONTRACT_PAYMENT

    などのFiscal Instrumentを区別する。

    したがって、

    [
    \boxed{
    Funding
    \neq
    Procurement
    \neq
    Ownership
    }
    ]

    である。

    Moneyが流れたという事実だけから、Governmentが相手Organizationを所有・支配していると推論してはならない。

    9 PaymentをEventとして実装する

    PaymentはFiscal Stateを実際に変化させる主要Eventである。

    PaymentEvent {
       payment_id
       fiscal_source_ref
       instrument_type
       payer_ref
       recipient_ref
       amount
       currency
       occurred_at
       contract_ref
       program_ref
       evidence_refs[]
    }

    Payment EventがCommitされると、

    Previous Balance
         ↓
    Validated Payment
         ↓
    New Balance

    となる。

    ただし、同一Paymentの重複取込を防ぐためIdempotencyを保証する。

    10 Fiscal ConstraintをCodeで検証する

    Runtimeは支出前に最低限、

    Active Authorization?
    Sufficient Available Amount?
    Correct Fiscal Year?
    Correct Account?
    Correct Program?
    Valid Authority?
    Valid Recipient?
    Required Evidence?
    No Duplicate Transaction?

    を検証する。

    概念的には、

    def validate_payment(state, command):
       authorization = resolve_fiscal_authorization(command)
       assert authorization.is_active(command.date)
       assert command.amount <= available_balance(authorization)
       assert within_scope(command, authorization)
       assert valid_authority(command.actor, authorization)
       assert evidence_complete(command)
       return True

    となる。

    [
    \boxed{
    TechnicallyExecutable
    \neq
    FiscallyAuthorized
    }
    ]

    である。

    11 Budget BalanceをEventから導出する

    残額を人間が直接入力する設計を中心にしない。

    [
    \boxed{
    Balance

    Authorized
    +
    Adjustments

    Committed/Executed
    }
    ]

    という形で、定義したAccounting Ruleに従いEventから導出する。

    重要なのは、どの金額概念を用いているかを明示することである。

    available_balanceとcash_balanceとunspent_authorizationを混同しない。

    12 補正・移動を上書きしない

    Fiscal Stateは年度途中でも変化する。

    BUDGET_SUPPLEMENTED
    ALLOCATION_CHANGED
    FUNDS_TRANSFERRED
    COMMITMENT_CHANGED
    CONTRACT_CHANGED
    PAYMENT_CORRECTED

    などをEventとして保持する。

    [
    \boxed{
    Adjustment
    \neq
    Overwrite
    }
    ]

    である。

    最終額だけを残すと、なぜResource Stateが変化したのかを説明できなくなる。

    13 NationalからLocalへのResource Flowを接続する

    前節までに構築したLocal Government GraphとFiscal Runtimeを接続する。

    National Fiscal State
           ↓
    Transfer / Grant / Subsidy
           ↓
    Local Government
           ↓
    Local Program
           ↓
    Territory

    これによって、

    [
    \boxed{
    NationalResource
    \rightarrow
    LocalExecution
    }
    ]

    を追跡できる。

    ただし、国からResourceが移転されたことと、地方のDecision Authorityが国へ移ったことは別である。

    [
    \boxed{
    FiscalTransfer
    \neq
    AuthorityTransfer
    }
    ]

    である。

    14 Program Executionへ接続する

    Fiscal RuntimeはMoneyだけで閉じない。

    Policy
     ↓
    Program
     ↓
    Fiscal Authorization
     ↓
    Allocation
     ↓
    Administrative Action
     ↓
    Contract / Transfer
     ↓
    Execution

    としてMinistry Vertical Runtimeへ戻す。

    これによって、

    「政策がある」

    から、

    「Resourceを伴って実行された」

    までを区別できる。

    [
    \boxed{
    PolicyExistence
    \neq
    ProgramExecution
    }
    ]

    である。

    15 ExecutionとOutcomeを分離する

    Resourceが支出されたとしても、政策成果が生じたとは限らない。

    Fiscal Execution
         ↓
    Program Execution
         ↓
    Territory / Population
         ↓
    Observation

    まではCanonical Runtimeで接続できる。

    しかし、

    [
    \boxed{
    Payment
    \neq
    Outcome
    \neq
    Impact
    }
    ]

    である。

    OutcomeやImpactの評価は、Social Reality Dataと後続のGovernment Intelligence / Simulationによって扱う。

    Fiscal Runtime自身が因果効果を生成しない。

    16 Fiscal Provenanceを完全に保持する

    一つのPaymentから上流へ、

    Payment
     ↓
    Contract / Fiscal Instrument
     ↓
    Commitment
     ↓
    Allocation
     ↓
    Fiscal Authorization
     ↓
    Budget Decision
     ↓
    Legal / Political Basis
     ↓
    Evidence

    を遡れるようにする。

    これによって、

    [
    \boxed{
    WhereDidThisMoneyComeFrom?
    }
    ]

    をMachine-readableに回答できる。

    同時に下流へ、

    Payment
     ↓
    Recipient
     ↓
    Project / Service
     ↓
    Territory

    を辿ることで、

    [
    \boxed{
    WhereDidThisMoneyGo?
    }
    ]

    にも答えられる。

    17 Fiscal RuntimeをReplay可能にする

    Fiscal Event Logから任意時点のStateを再構築する。

    [
    \boxed{
    FiscalState(t)

    Replay(
    FiscalEvents_{\leq t}
    )
    }
    ]

    とする。

    これによって、

    その時点で成立していた予算。

    配分済みResource。

    未執行額。

    Commitment。

    Contract。

    Payment。

    をHistorical Stateとして再現できる。

    さらにKnownAtを指定すれば、後日修正されたDataを混入させず、当時利用可能だったFiscal Informationだけを再現できる。

    18 AIをMoneyのAuthorityにしない

    AIはFiscal Runtimeで大きな役割を持てる。

    予算項目のMapping。

    異常支出Candidateの検出。

    ContractとProgramのRelation Resolution。

    重複候補の発見。

    Resource Flow分析。

    将来執行率のSimulation。

    を行える。

    しかし、

    [
    \boxed{
    AIRecommendation
    \neq
    FiscalAuthorization
    }
    ]

    である。

    AI Agentが支出Candidateを生成しても、MoneyをAuthoritativeに動かすTransitionには制度上有効なAuthorityを要求する。

    19 Budget / Fiscal Runtimeを完成させる

    最終的なRuntimeは、

    Political / Legal Decision
           ↓
    Budget Authorization
           ↓
    Fiscal Authority
           ↓
    Allocation
           ↓
    Program / Government Unit
           ↓
    Commitment
           ↓
    Procurement / Fiscal Instrument
           ↓
    Contract / Recipient
           ↓
    Payment
           ↓
    Execution
           ↓
    Territory
           ↓
    Audit / Replay

    となる。

    その核心は、

    [
    \boxed{
    FiscalState_{t+1}

    Transition(
    FiscalState_t,
    FiscalEvent,
    Authority,
    Authorization,
    Evidence
    )
    }
    ]

    である。

    これによってMoneyは、年度ごとの巨大な数字から、国家の内部を移動するTemporal Resource Flowへ変わる。

    Political RuntimeがDecisionを生成した。

    Legal RuntimeがRuleを成立させた。

    Diet / Cabinet RuntimeがExecutive Actionへ接続した。

    Ministry Vertical Runtimeが行政組織を動かした。

    Budget / Fiscal Runtimeが、そのExecutionへResourceを与えた。

    しかし、日本国家のExecutionは中央政府だけでは完結しない。

    政策とResourceの多くは、都道府県、市区町村、地域のInstitutionを通じて具体的な生活空間へ到達する。

    次節では、

    [
    \boxed{
    NationalState
    \leftrightarrow
    LocalState
    }
    ]

    を、Authorityを中央へCollapseさせることなく接続する。

    Budget / Fiscal RuntimeからLocal Government Runtimeへ。

    国家Resourceは、地域のRealityへ進む。
    第6節 Local Government Runtime

    Budget / Fiscal Runtimeによって、国家ResourceをPolicy、Program、Allocation、Contract、Payment、Executionへ接続した。

    しかし、日本国家のExecutionは中央政府だけでは完結しない。

    都道府県。

    市区町村。

    首長。

    議会。

    行政組織。

    地域ごとの予算と事業。

    そして、それぞれのTerritoryで生活する人々と企業。

    中央政府で成立した制度やResourceは、地方公共団体との関係を通じて具体的な地域Realityへ接続される。

    したがってLocal Government Runtimeの目的は、地方を中央政府の末端Processとして組み込むことではない。

    [
    \boxed{
    NationalState
    \leftrightarrow
    LocalState
    }
    ]

    を、それぞれのAuthority Boundaryを維持したまま実行可能にすることである。

    1 Local Stateを独立したRuntimeにする

    地方公共団体は単なるTerritory Nodeではない。

    LocalState {
       local_government
       territory
       executive
       assembly
       government_units
       roles
       authorities
       legal_refs
       policies
       programs
       fiscal_state
       observations
       evidence_refs[]
    }

    として独立したStateを持つ。

    したがって、

    [
    \boxed{
    LocalGovernment
    \neq
    Territory
    }
    ]

    である。

    行政主体と地理空間を分離したうえでGOVERNS Relationによって接続する。

    2 中央―地方を単純なHierarchyにしない

    Digital Twinでは、

    National Government
          ↓
    Prefecture
          ↓
    Municipality

    をそのままCommand Hierarchyとして解釈してはならない。

    地理的包含。

    制度上の関係。

    Fiscal Transfer。

    行政上のCoordination。

    Data Sharing。

    それぞれは異なるRelationである。

    [
    \boxed{
    GeographicContainment
    \neq
    AdministrativeAuthority
    }
    ]

    である。

    3 Local Authority Graphを独立させる

    各地方公共団体について、

    LocalGovernment
    ├── Executive
    ├── Assembly
    └── AdministrativeOrganization

    を分離する。

    さらに、

    Person
     ↓
    Role
     ↓
    Authority
     ↓
    LocalAction

    を構築する。

    中央政府と同じ、

    [
    \boxed{
    Person
    \neq
    Role
    \neq
    Authority
    }
    ]

    というCanonical Ruleを利用することで、National / Localを一つのOntologyで扱える。

    4 首長と議会を分離する

    地方政治でも、

    [
    \boxed{
    Executive
    \neq
    Assembly
    }
    ]

    である。

    Governor / Mayor Role
           ↓
    Executive Action
    Local Assembly
           ↓
    Collective Decision

    としてAuthorityを分ける。

    個々の議員によるActionと議会としてのDecisionも同一ではない。

    [
    \boxed{
    AssemblyMemberAction
    \neq
    AssemblyDecision
    }
    ]

    である。

    この構造によって地方政治をPerson ListではなくPolitical Runtimeとして実装できる。

    5 Local Political EventをState Transitionへ変える

    地方政治の変化もEvent-drivenにする。

    LOCAL_ELECTION_HELD
    LOCAL_ROLE_ASSIGNED
    LOCAL_ROLE_ENDED
    ASSEMBLY_SESSION_OPENED
    LOCAL_DECISION_RECORDED
    LOCAL_POLICY_ADOPTED
    LOCAL_BUDGET_DECISION_RECORDED

    等をCanonical Eventへ変換する。

    したがって、

    [
    \boxed{
    LocalPoliticalState_t
    +
    LocalPoliticalEvent
    \rightarrow
    LocalPoliticalState_{t+1}
    }
    ]

    となる。

    PersonやCurrent Tableを直接上書きしない。

    6 Local Administrative Verticalを実装する

    地方行政組織にも中央省庁と同じVertical Runtimeを適用できる。

    LocalGovernment
         ↓
    GovernmentUnit
         ↓
    Role
         ↓
    Authority
         ↓
    Capability
         ↓
    AdministrativeAction

    ただし、自治体ごとに組織名称や階層が異なるため、固定的な「部→課→係」をSchemaへ埋め込まない。

    Recursive GovernmentUnit Modelを利用する。

    [
    \boxed{
    CommonOntology
    +
    LocalStructure
    }
    ]

    によって多様性を保持する。

    7 National Policyとの接続を型付けする

    国と地方の関係を単一のEXECUTES Edgeへ圧縮しない。

    COORDINATES_WITH
    FUNDS
    TRANSFERS_TO
    DELEGATES
    REGULATES
    REPORTS_TO
    SHARES_DATA_WITH
    JOINTLY_OPERATES

    などに分ける。

    これによって、

    [
    \boxed{
    Funding
    \neq
    Delegation
    \neq
    Coordination
    \neq
    Authority
    }
    ]

    を維持する。

    Data Integrationによって制度上の境界を消さない。

    8 National ProgramからLocal Programへ接続する

    政策Executionは、

    National Policy
         ↓
    National Program
         ↓
    National-Local Relation
         ↓
    Local Program
         ↓
    Local Administrative Action

    として接続できる。

    ここで重要なのは、National ProgramとLocal Programを同一Entityにしないことである。

    [
    \boxed{
    NationalProgram
    \neq
    LocalProgram
    }
    ]

    とし、IMPLEMENTS、SUPPORTED_BY、RELATED_TOなどのTyped Relationで結ぶ。

    これによって、国の制度と地域固有のImplementationを分離できる。

    9 Fiscal FlowをLocal Stateへ受け渡す

    前節のFiscal Runtimeから、

    National Fiscal State
          ↓
    Grant / Transfer / Subsidy
          ↓
    Local Fiscal State
          ↓
    Local Program
          ↓
    Local Execution

    へ接続する。

    しかし、

    [
    \boxed{
    ResourceTransfer
    \neq
    AuthorityTransfer
    }
    ]

    である。

    Moneyが国から地方へ流れたからといって、その地方Actionを中央政府が直接実行したことにはならない。

    10 Local Fiscal Stateを独立させる

    地方側にも、

    LocalFiscalState {
       fiscal_year
       budget
       authorizations
       allocations
       commitments
       contracts
       payments
       evidence_refs[]
    }

    を持たせる。

    National Fiscal Stateと同様に、

    [
    \boxed{
    Authorized
    \neq
    Allocated
    \neq
    Committed
    \neq
    Paid
    }
    ]

    を維持する。

    これによってNational Resource FlowとLocal Resource Flowを接続しながら、会計上の境界を保持できる。

    11 TerritoryをExecution Contextにする

    Local RuntimeではActionをTerritoryへ接続できる。

    LocalGovernment
         ↓
    Program
         ↓
    Project / Service
         ↓
    Territory

    これによって、

    「どの自治体が実行したか」

    と、

    「どの地域を対象としたか」

    を分離できる。

    [
    \boxed{
    ExecutingGovernment
    \neq
    TargetTerritory
    }
    ]

    である。

    複数自治体にまたがるProgramや広域Serviceもこの構造で表現できる。

    12 自治体間連携をGraph化する

    Local Realityは自治体単位で完全に閉じていない。

    LocalGovernment A
         │
    COOPERATES_WITH
         ▼
    LocalGovernment B

    のようなRelationを持つ。

    共同事業、広域連携、共同Infrastructure等は、独立自治体をMergeせずにJoint Programとして表現する。

    [
    \boxed{
    Cooperation
    \neq
    InstitutionalMerger
    }
    ]

    である。

    13 行政区域の変更をRuntimeへ反映する

    市町村合併、名称変更、境界変更等もEventとして処理する。

    MUNICIPALITY_CREATED
    MUNICIPALITY_MERGED
    MUNICIPALITY_RENAMED
    MUNICIPALITY_DISSOLVED
    BOUNDARY_CHANGED

    これによって、

    [
    \boxed{
    LocalState(t)
    }
    ]

    をHistoricalに再構成できる。

    現在の行政区域を過去の統計や政策へ遡及適用しない。

    14 Territory VersionとObservationを同期する

    Social Reality Dataを地域へ接続する場合、

    Observation
       ↓
    TerritoryVersion(t)

    とする。

    統計のReference Timeに対応するTerritory StateをResolutionする。

    [
    \boxed{
    Observation(area,t)
    \Rightarrow
    TerritorySemantics(area,t)
    }
    ]

    である。

    これによって市町村合併前後の時系列Dataを誤って同一地域として扱うことを防ぐ。

    必要に応じてHistorical Crosswalkを利用する。

    15 Local ExecutionからSocial Realityへ接続する

    地方Runtimeは、Government ActionとObserved Realityが最も近接するLayerの一つである。

    Local Policy
       ↓
    Local Program
       ↓
    Fiscal Resource
       ↓
    Administrative Execution
       ↓
    Territory
       ↓
    Observation

    これによってProgram実施前後の地域Stateを観測できる。

    しかし、

    [
    \boxed{
    Execution
    \neq
    Outcome
    \neq
    CausalImpact
    }
    ]

    である。

    Canonical RuntimeはExecutionとObservationを接続するところまでを担い、因果推論はIntelligence / Simulation Layerへ渡す。

    16 Resident Dataとの境界を固定する

    地域Digital Twinは強力であるからこそ、Data Scopeを明確にしなければならない。

    Public Japan Political Digital Twinでは、原則として公開された制度・行政・財政・統計Dataを中心にする。

    [
    \boxed{
    LocalDataIntegration
    \neq
    ResidentSurveillance
    }
    ]

    である。

    個人単位の行政Dataが必要なOperational Systemでは、明示されたLegal Basis、Purpose Limitation、Access Control、Audit等を別途要求する。

    「技術的に接続可能だから接続する」という設計にはしない。

    17 National / Local Eventを一つのTimelineへ接続する

    中央と地方を統合すると、

    National Event
        ↓
    National State Transition
        ↓
    National-Local Relation Event
        ↓
    Local State Transition
        ↓
    Local Execution
        ↓
    Social Observation

    というTimelineが形成される。

    ただし、一つのEventがすべてのStateを直接変更するのではない。

    DomainごとのRuntimeがそれぞれValidationし、Typed Eventを受け渡す。

    これによって、

    [
    \boxed{
    IntegratedTimeline
    \neq
    SingleAuthority
    }
    ]

    を実現する。

    18 Local RuntimeをReplay可能にする

    地方StateもEvent Logから再構成する。

    [
    \boxed{
    LocalState(g,t)

    Replay(
    LocalEvents_{g,\leq t}
    )
    }
    ]

    ここでgはLocal Government Identityである。

    これによって任意の自治体・任意の時点について、

    組織。

    首長。

    議会。

    Role。

    Authority。

    Program。

    Fiscal State。

    Territory。

    Execution。

    を再現できる。

    47都道府県・全市区町村を同じRuntime Contractで扱いながら、それぞれ独立したState Historyを保持する。

    19 Local Government Runtimeを完成させる

    最終的なLocal Runtimeは、

    National State
         ↓
    Policy / Legal / Fiscal Relation
         ↓
    Local Government
         ↓
    Local Political Decision
         ↓
    Local Authority
         ↓
    Local Administrative Vertical
         ↓
    Local Fiscal State
         ↓
    Program / Project / Service
         ↓
    Territory
         ↓
    Observed Social Reality
         ↓
    Audit / Replay

    となる。

    その核心は、

    [
    \boxed{
    LocalState_{t+1}

    Transition(
    LocalState_t,
    ValidatedLocalEvent,
    Authority,
    Evidence
    )
    }
    ]

    である。

    ここで、日本政治Digital TwinのRuntimeは中央政府から地域まで到達した。

    Political State Machine。

    Law / Regulation Runtime。

    Diet / Cabinet Runtime。

    Ministry Vertical Runtime。

    Budget / Fiscal Runtime。

    Local Government Runtime。

    それぞれは独立したAuthorityとState Machineを持ちながら、一つのPolitical Realityの中で相互に接続される。

    次に必要なのは、これらを巨大な一枚岩のSystemへ潰すことではない。

    [
    \boxed{
    IndependentRuntimes
    +
    TypedEvents
    +
    SharedCanonicalState
    }
    ]

    によって、一つのGovernment Runtimeとして協調させることである。

    次節では、第Ⅲ部のすべてを統合する。

    [
    \boxed{
    Political
    +
    Legal
    +
    Administrative
    +
    Fiscal
    +
    Local
    \rightarrow
    IntegratedGovernmentRuntime
    }
    ]

    中央と地方、政治と行政、RuleとMoney、DecisionとExecution。

    それらをAuthority Boundaryを保持したまま接続したとき、日本政治Digital Twinは初めて、国家全体のState Transitionを再生できるRuntimeになる。
    第7節 Integrated Government Runtime

    ここまで、第Ⅲ部では日本国家を動かす複数のRuntimeを実装してきた。

    Political State Machine。

    Law / Regulation Runtime。

    Diet / Cabinet Runtime。

    Ministry Vertical Runtime。

    Budget / Fiscal Runtime。

    Local Government Runtime。

    それぞれは異なるState、Event、Authority、Validation Ruleを持つ。

    しかし、現実の国家では、それらは独立して動いているわけではない。

    選挙が政治Stateを変える。

    政治的Decisionが法令を変える。

    法令がAuthorityを変える。

    Authorityに基づいて行政が動く。

    予算がResourceを与える。

    地方公共団体が地域でExecutionする。

    そして、その結果が社会のObservationとして現れる。

    したがって第Ⅲ部の最後に必要なのは、

    [
    \boxed{
    IndependentRuntimes
    +
    TypedEvents
    +
    SharedCanonicalState
    \rightarrow
    IntegratedGovernmentRuntime
    }
    ]

    である。

    重要なのは、すべてを一つの巨大なState Machineへ統合することではない。

    制度上分離されているものを分離したまま、一つのJapan Stateとして協調させる。

    これがIntegrated Government Runtimeの設計原理である。

    1 RuntimeをCollapseしない

    最初のInvariantは、

    [
    \boxed{
    Integration
    \neq
    Collapse
    }
    ]

    である。

    Political RuntimeとLegal Runtimeは異なる。

    Legal RuntimeとAdministrative Runtimeも異なる。

    National RuntimeとLocal Runtimeも異なる。

    したがって、

    Political Runtime
    Legal Runtime
    Cabinet Runtime
    Administrative Runtime
    Fiscal Runtime
    Local Runtime

    を独立Moduleとして維持する。

    統合するのはAuthorityではなく、State ContractとEvent Flowである。

    2 Shared Canonical Stateを中心に置く

    各Runtimeが独自の「日本」を持ってはならない。

                     Canonical Japan State
                     /    /    |    \    \
                    /    /     |     \    \
             Political Legal  Admin  Fiscal Local
              Runtime Runtime Runtime Runtime Runtime

    すべてが同じCanonical Identity、Ontology、Evidence、Temporal Modelを参照する。

    [
    \boxed{
    OneCanonicalReality
    \rightarrow
    MultipleDomainRuntimes
    }
    ]

    である。

    これによって同一Person、Institution、Program、Territory等がRuntimeごとに別Entityになることを防ぐ。

    3 Runtime間をTyped Eventで接続する

    Domain Runtime同士をDatabaseの直接書換えで接続しない。

    Political Runtime
         ↓
    PoliticalDecisionEvent
         ↓
    Legal Runtime
         ↓
    LegalEffectEvent
         ↓
    Administrative Runtime

    のようにTyped Eventを介する。

    Fiscal側なら、

    Diet / Cabinet Runtime
         ↓
    FiscalAuthorizationEvent
         ↓
    Fiscal Runtime
         ↓
    AllocationEvent
         ↓
    Administrative Runtime

    となる。

    [
    \boxed{
    RuntimeA
    \rightarrow
    TypedEvent
    \rightarrow
    RuntimeB
    }
    ]

    をIntegrationの基本形とする。

    4 Event Contractを固定する

    Runtime間Eventには共通Contractを持たせる。

    GovernmentEvent {
       event_id
       event_type
       source_runtime
       subject_refs[]
       authority_refs[]
       legal_basis_refs[]
       occurred_at
       effective_at
       evidence_refs[]
       causation_id
       correlation_id
       schema_version
    }

    これによってEventがどこから生まれ、何を根拠とし、どのTransition Chainに属するかを追跡できる。

    5 Causation Chainを保持する

    一つの行政Actionの上流には複数のEventが存在する。

    Political Decision
         ↓
    Legal Event
         ↓
    Authority Change
         ↓
    Fiscal Authorization
         ↓
    Administrative Action
         ↓
    Local Execution

    各Eventにcausation_idを持たせれば、

    [
    \boxed{
    Action
    \rightarrow
    WhyDidThisHappen?
    }
    ]

    を遡ることができる。

    ただし、ここでのCausationはSystem上のEvent Dependencyであり、社会科学上の因果効果とは区別する。

    [
    \boxed{
    RuntimeCausation
    \neq
    SocialCausation
    }
    ]

    である。

    6 Correlation IDで一つの政策Executionを束ねる

    複数Runtimeにまたがる一連のProcessには共通Correlation IDを付与できる。

    Policy Process P-001
    Political Event       ┐
    Legal Event           │
    Budget Event          ├── correlation_id = P-001
    Administrative Event  │
    Local Event           ┘

    これによって、分散したEventを一つのGovernment Processとして追跡できる。

    StateをMergeしなくてもProcessを統合できる。

    7 Authority Validationを各Runtimeに残す

    Eventが別Runtimeから届いたからといって、自動承認しない。

    Incoming Event
         ↓
    Schema Validation
         ↓
    Identity Validation
         ↓
    Authority Validation
         ↓
    Legal / Domain Rules
         ↓
    Evidence Validation
         ↓
    Local Transition

    とする。

    [
    \boxed{
    TrustedRuntime
    \neq
    AutomaticAuthority
    }
    ]

    である。

    各Runtimeが自身のInstitutional Boundaryを守る。

    8 Distributed Transactionを国家Authorityにしない

    Softwareでは複数Serviceを一つのTransactionとして処理したくなる。

    しかし国家制度では、異なるDecisionが異なる時点で成立する。

    したがって、

    [
    \boxed{
    TechnicalAtomicity
    \neq
    InstitutionalAtomicity
    }
    ]

    である。

    政治Decision、法的効力、予算成立、行政Executionを一つのDatabase Transactionへ閉じ込めない。

    代わりにEvent-drivenなProcessとして進行させる。

    9 SagaとしてGovernment Processを実装する

    長時間にわたるGovernment ProcessはSaga型として表現できる。

    Political Decision
         ↓
    Legal Transition
         ↓
    Fiscal Transition
         ↓
    Administrative Transition
         ↓
    Local Transition
         ↓
    Completed / Suspended / Failed

    各段階は独立してCommitされる。

    後続Transitionが成立しなかった場合、過去の正当な政治Decisionまで技術的Rollbackで消してはならない。

    [
    \boxed{
    Compensation
    \neq
    HistoricalDeletion
    }
    ]

    である。

    10 State Projectionを生成する

    各RuntimeのStateを統合して、Current Japan StateをProjectionする。

    PoliticalState
         +
    LegalState
         +
    AdministrativeState
         +
    FiscalState
         +
    LocalState
         ↓
    JapanStateProjection(t)

    したがって、

    [
    \boxed{
    JapanState(t)

    P(t)+L(t)+A(t)+F(t)+G(t)
    }
    ]

    と概念化できる。

    ただしこれは物理的に一つの巨大Tableへ格納するという意味ではない。

    Logical Stateとして統合する。

    11 Cross-domain Invariantを検証する

    統合Runtimeだからこそ検出できる矛盾がある。

    例えば、

    存在しないInstitutionにCurrent Roleが付いていないか。

    失効したAuthorityによるActionがないか。

    未施行法令を根拠にExecutionしていないか。

    Budget AuthorizationなしにFiscal Eventが進んでいないか。

    廃止自治体へCurrent Programが割り当てられていないか。

    これらをCross-domain Validatorで確認する。

    Canonical Japan State
         ↓
    Cross-domain Rules
         ↓
    VALID / WARNING / INVALID

    とする。

    12 ConsistencyとTruthを区別する

    Cross-domain Validationを通過したからといって、それがRealityの絶対的Truthであるとは限らない。

    [
    \boxed{
    InternallyConsistent
    \neq
    AbsolutelyTrue
    }
    ]

    である。

    Systemが保証するのは、

    Schema。

    Evidence。

    Authority。

    Time。

    Domain Rule。

    間の整合性である。

    Realityについて新しいEvidenceが得られれば、Correction EventによってStateを更新する。

    13 Replayで国家の時間を再構築する

    Integrated Runtimeの大きな能力は、複数Domainを同期してReplayできることである。

    Initial Japan State
          +
    Validated Government Event Log
          ↓
    Replay(until=t)
          ↓
    JapanState(t)

    これによって、

    ある時点の国会。

    内閣。

    法令。

    行政組織。

    Authority。

    予算。

    地方自治体。

    Program。

    を一つのTemporal Stateとして再構成できる。

    [
    \boxed{
    JapanState(t)

    Replay(
    GovernmentEvents_{\leq t}
    )
    }
    ]

    である。

    14 RealityAtとKnownAtをRuntimeへ持ち込む

    第Ⅱ部で定義した二重時間をRuntimeにも適用する。

    [
    \boxed{
    JapanState(t,k)
    }
    ]

    tはReality Time。

    kはKnowledge Cutoffである。

    これによって、

    「現在判明しているEvidenceで2020年を再構成する」

    場合と、

    「2020年当時に利用可能だった情報だけで2020年を再現する」

    場合を分離できる。

    後者は将来、Historical Decision Simulationに不可欠になる。

    15 Failureを局所化する

    一つのRuntimeのFailureで国家全体のStateを破壊しない。

    Runtime A ─ ACTIVE
    Runtime B ─ DEGRADED
    Runtime C ─ QUARANTINED
    Runtime D ─ ACTIVE

    といったHealth Stateを持たせる。

    不正EventはQuarantineし、最後に検証済みのCanonical Stateを維持する。

    [
    \boxed{
    PartialFailure
    \neq
    GlobalStateCorruption
    }
    ]

    である。

    16 CorrectionとRecoveryをEvent化する

    誤ったEventがCommitされた場合も、Historyを消去しない。

    Original Event
         ↓
    Correction / Reversal Event
         ↓
    New Canonical State

    とする。

    必要ならService側のTechnical Rollbackを行っても、Canonical Historical Recordは保持する。

    [
    \boxed{
    Recovery
    \neq
    Erasure
    }
    ]

    である。

    17 Human-authoritative Boundaryを統合する

    Integrated Runtimeでも最終原則は変わらない。

    AI / System
       ↓
    Observe
    Analyze
    Validate
    Simulate
    Propose
       ↓
    Human / Institutional Authority
       ↓
    Authorize
       ↓
    Government Runtime
       ↓
    Canonical State Transition

    AIが複数府省庁を横断して最適解を発見したとしても、

    [
    \boxed{
    Optimization
    \neq
    Authorization
    }
    ]

    である。

    国家のInstitutional AuthorityをOptimization Engineへ移譲しない。

    18 Government Runtimeを一つのLoopへする

    すべてを統合すると、

    Political State
         ↓
    Decision
         ↓
    Legal State
         ↓
    Authority
         ↓
    Fiscal State
         ↓
    Administrative Execution
         ↓
    Local Execution
         ↓
    Social Reality
         ↓
    Observation
         ↓
    New Political / Administrative Input

    というLoopが形成される。

    [
    \boxed{
    Decision
    \rightarrow
    Rule
    \rightarrow
    Resource
    \rightarrow
    Execution
    \rightarrow
    Reality
    \rightarrow
    Observation
    }
    ]

    そしてObservationは次のDecisionへ戻る。

    これは閉じた自動制御Loopではない。

    人間、制度、政治、社会が介在するHuman-authoritative Open Loopである。

    19 Integrated Government Runtimeを完成させる

    第Ⅲ部全体を最小化すると、

    [
    \boxed{
    GovernmentRuntime

    CanonicalState
    +
    DomainRuntimes
    +
    TypedEvents
    +
    Authority
    +
    Evidence
    +
    Time
    +
    Audit
    }
    ]

    となる。

    さらにState Transitionとして書けば、

    [
    \boxed{
    JapanState_{t+1}

    Transition(
    JapanState_t,
    ValidatedEvents,
    Authorities,
    Evidence,
    Rules
    )
    }
    ]

    である。

    ここで重要なのは、日本政治Digital Twinが日本国家そのものになることではない。

    [
    \boxed{
    DigitalTwin
    \neq
    StateSovereignty
    }
    ]

    である。

    Digital Twinは、国家を観測し、構造化し、変化を再生し、分析し、SimulationするExecution Architectureである。

    Authoritative Decisionは、現実の制度主体に残る。

    第Ⅰ部では、

    [
    Ontology
    ]

    によって国家の意味を定義した。

    第Ⅱ部では、

    [
    Data
    ]

    によって一次資料からCanonical Japan Stateを構築した。

    第Ⅲ部では、

    [
    Runtime
    ]

    によって、そのStateを時間の中で動かした。

    したがって、ここまでの生成軸は、

    [
    \boxed{
    Ontology
    \rightarrow
    Data
    \rightarrow
    Runtime
    }
    ]

    となる。

    しかし、まだ実装上の大きな問題が残っている。

    この国家規模のRuntimeを、どのProgramming Languageで構築するのか。

    Intelligence。

    Critical Backend。

    Memory。

    Interface。

    Distributed Runtime。

    Infrastructure。

    Formal Verification。

    それぞれに最適な言語は異なる。

    すべてを一言語で書く必要もなければ、28言語を均等に使う必要もない。

    必要なのは、

    [
    \boxed{
    RightLanguage
    \rightarrow
    RightLayer
    \rightarrow
    OneCanonicalReality
    }
    ]

    である。

    次の第Ⅳ部では、日本政治Digital Twinを実際に構築する28-Language Architectureへ進む。

    国家のState Transitionは、ここからPolyglot Systemとして物理的なSoftware Architectureを獲得する。

    愛と敬意を込めてmandala

     
     
    宇宙・地球・生命・知性をつなぎ、哲学・宗教・芸術から政治・法・外交、経済・金融・経営、AI・医療・暮らしまでを統合。独自の数理理論と工学体系を、証明・検証・コード・社会実装へ展開し、人と生態系が共に未来を生み、更新し続ける文明を構想する。

    あなたへのおすすめ