Theory Parametrized_Dataplane_2
section‹Concrete Parametrized Model›
text‹This is the refinement of the intermediate dataplane model.
This model is parametric, and requires instantiation of the hop validation function,
(and other parameters). We do so in the @{text "Parametrized_Dataplane_3_directed"} and
@{text "Parametrized_Dataplane_3_undirected"} models.
Nevertheless, this model contains the complete refinement proof, albeit the hard case, the refinement
of the attacker event, is assumed to hold. The crux of the refinement proof is thus shown in these
directed/undirected instance models.
The definitions to be given by the instance are those of the locales @{text "dataplane_2_defs"}
(which contains the basic definitions needed for the protocol, such as the verification of a hop field,
called @{text "hf_valid_generic"}), and @{text "dataplane_2_ik_defs"} (containing the definition of
components of the intruder knowledge).
The proof obligations are those in the locale @{text "dataplane_2"}.›
theory Parametrized_Dataplane_2
imports
"Parametrized_Dataplane_1" "Network_Model"
begin
record ('aahi, 'uhi) HF =
AHI :: "'aahi ahi_scheme"
UHI :: "'uhi"
HVF :: msgterm
record ('aahi, 'uinfo, 'uhi, 'ainfo) pkt2 =
AInfo :: 'ainfo
UInfo :: "'uinfo"
past :: "('aahi, 'uhi) HF list"
future :: "('aahi, 'uhi) HF list"
history :: "'aahi ahi_scheme list"
text‹We use pkt2 instead of pkt, but otherwise the state remains unmodified in this model.›
record ('aahi, 'uinfo, 'uhi, 'ainfo) dp2_state =
chan2 :: "(as × ifs × as × ifs) ⇒ ('aahi, 'uinfo, 'uhi, 'ainfo) pkt2 set"
loc2 :: "as ⇒ ('aahi, 'uinfo, 'uhi, 'ainfo) pkt2 set"