fact: Definition prog1: PProg := fun n => match n with | 0 => put (2,null);; put (1,3);; put (head,1);; put (6,1);; put (5,2);; put (head,5);; put (4,5);; put (3,1);; put (head,3);; skip | 1 => node1 <- get(head);; if (node1 =? init) || (node1 =? null) then skip else item1 <- get(node1);; node2 <- get(S node1);; if node2 =? null then skip else item2 <- get(node2);; node3 <- get(S node2);; assert (item1 <? item2);; if node3 =? null then skip else item3 <- get(node3);; node4 <- get(S node3);; assert (item2 <? item3);; assert (node4 =? null);; skip | _ => skip end%Prog%bool.
imports: Chapar(Predefs KVStore ReflectiveAbstractSemantics)