fact: Definition init_empty_graph_spec := DECLARE _init_empty_graph WITH gv: globals, sh: share PRE [] PROP (writable_share sh) PARAMS () GLOBALS (gv) SEP (mem_mgr gv; data_at sh tint (Vint (Int.repr MAX_EDGES)) (gv _MAX_EDGES)) POST [ tptr t_wedgearray_graph ] EX gptr eptr: pointer_val, PROP () LOCAL (temp ret_temp (pointer_val_val gptr)) SEP ( mem_mgr gv; malloc_token' sh (MAX_EDGES * sizeof t_struct_edge) (pointer_val_val eptr); malloc_token' sh (sizeof t_wedgearray_graph) (pointer_val_val gptr); data_at sh tint (Vint (Int.repr MAX_EDGES)) (gv _MAX_EDGES); data_at sh (t_wedgearray_graph) (Vint (Int.repr 0), (Vint (Int.repr 0), pointer_val_val eptr)) (pointer_val_val gptr); data_at sh (tarray t_struct_edge MAX_EDGES) (Vundef_cwedges MAX_EDGES) (pointer_val_val eptr) ).
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