theory Graph_Impl
imports
"../../Refine_Imperative_HOL/Sepref"
Flow_Networks.Graph
begin
type_synonym capacity_impl = int
locale Impl_Succ =
fixes absG :: "'ga ⇒ capacity_impl graph"
fixes ifT :: "'ig itself"
fixes succ :: "'ga ⇒ node ⇒ node list nrest"
fixes isG :: "'ga ⇒ 'gi ⇒ assn"
fixes succ_impl :: "'gi ⇒ node ⇒ node list Heap"
fixes N :: "node"
assumes si_rule[sepref_fr_rules]: "(uncurry succ_impl,(uncurry succ)) ∈ [λ(c,u). u∈Graph.V (absG c)]⇩a isG⇧k *⇩a (pure nat_rel)⇧k → list_assn (pure nat_rel)"
begin
term "Impl_Succ "
lemma this_loc: "Impl_Succ absG succ isG succ_impl" apply unfold_locales done
sepref_register "succ" :: "'ig ⇒ node ⇒ node list nrest"
print_theorems
end
end