Theory Int_Sound

theory Int_Sound
  imports
    Int_Classify
begin

section ‹What Int supplies to the framework›

text ‹
  Two reader-commutation facts and an initial-state contract. None of the three
  mentions a context, a routing function, a seed key, or a solver. The
  commutation facts are theory‹Voblint_Analysis_Int.Int_Exec›'s
  ‹int_tf.tf_st_for_commute› and ‹int_tf.enter_st_for_commute›, proved once for
  every refinement mode.

  Int's specification, its concretization and the soundness of the one against
  the other are not restated here. Those are constants and theorems of
  locale‹dg_domain_exec›, which an assembly reaches by interpreting that locale
  from the commutation facts --- so a per-domain copy would only rename what the
  locale already proves.
›

subsection ‹What the initial abstract state describes›

text ‹
  The stores a run may start in are described by the function the entry state
  represents. This mentions neither a solver nor a coverage
  assumption --- only the entry state and the global-variable predicate --- so
  it is stated here rather than inside a solved-system context.
›

lemma int_cinit_gamma:
  "cinit_stores 𝒢 ⊆ default_st_gamma 𝒢 cinit_int_dom_st"
  by (auto simp: cinit_stores_def gamma_state_def default_st_gamma_initial
      gamma_top [where 'a = int_dom, unfolded gamma_abs_int_dom_ext])

end