anchor.diff:    case get_socket(S, Id) of
       Sock = #socket{socket = Socket} ->
         Socket /= undefined andalso
  -      in_tcp_state(Sock, close_states()) andalso
  -         not child_in(S, Id, syn_rcvd);  %% BUG precondition
  +      in_tcp_state(Sock, close_states());
       _ ->
         false
     end.
  
positive.code: counter({Init, Offs}) -> Init + Offs;
  counter('_') -> '_'.
  
  %% -- Property ---------------------------------------------------------------
  
  invariant(S) ->
  
negative.code:   case Sock#socket.socket_type of
      listen ->
        ?PAR([ ?UNBLOCK({accept, Pid}, closed) || Pid <- Sock#socket.blocked ] ++
             %% BUG: only sends FIN to connections in the accept_queue
             [ ?APPLY(do_close, [Child]) || Child <- Sock#socket.accept_queue ]),
             %% Should be this:
             %% [ ?APPLY(do_close, [Child#socket.id]) ||
             %%   Child <- S#state.sockets, Child#socket.parent == Id,
             %%   Child#socket.socket == undefined ]))),
        ?APPLY(reset, [Id]);
      _ ->
        ?APPLY(do_close, [Id]),
  