Theory Packet

(*  Title:      HOL/HOLCF/IOA/NTP/Packet.thy
    Author:     Tobias Nipkow & Konrad Slind
*)

theory Packet
imports Multiset
begin

type_synonym
  'msg packet = "bool * 'msg"

definition
  hdr :: "'msg packet ⇒ bool" where
  "hdr ≡ fst"

definition
  msg :: "'msg packet ⇒ 'msg" where
  "msg ≡ snd"


text ‹Instantiation of a tautology?›
lemma eq_packet_imp_eq_hdr: "∀x. x = packet ⟶ hdr(x) = hdr(packet)"
  by simp

declare hdr_def [simp] msg_def [simp]

end