fact: Definition sink_spec := DECLARE _sink WITH sh : share, i : Z, arr: val, arr_contents: list heap_item, first_available : Z, b : Z PRE [tuint, tptr t_struct_edge, tuint] PROP (readable_share sh; writable_share sh; 0 <= i <= Zlength arr_contents; first_available = Zlength arr_contents; (i = Zlength arr_contents -> (2 * i) <= Int.max_unsigned); (i < Zlength arr_contents -> (2 * (first_available - 1) <= Int.max_unsigned)); weak_heap_ordered_top_down_bounded arr_contents b i) PARAMS (Vint (Int.repr i); arr; Vint (Int.repr first_available)) GLOBALS () SEP (harray sh arr_contents arr) POST [tvoid] EX arr_contents' : list heap_item, PROP (heap_ordered_bounded arr_contents' b; Permutation arr_contents arr_contents') LOCAL () SEP (harray sh arr_contents' arr).
imports: CertiGraph.unionfind.env_unionfind_arr CertiGraph.unionfind.uf_arr_specs VST.floyd.library RelationClasses CertiGraph.binheap.binary_heap_model CertiGraph.binheap.binary_heap_Zmodel Sorting CertiGraph.kruskal.WeightedEdgeListGraph CertiGraph.kruskal.env_kruskal_edgelist CertiGraph.kruskal.spatial_wedgearray_graph CertiGraph.graph.graph_model CertiGraph.floyd_ext.share