anchor.diff:  syn_ack_pre(S, [Ip, Port, RIp, RPort, _, Seq, Id]) ->
     case get_socket(S, Id) of
       Sock = #socket{} ->
  -      in_tcp_state(S, Id, syn_sent) andalso
  +      in_tcp_state(Sock, syn_sent) andalso
           Sock#socket.rcvd == Sock#socket.seq andalso
           Ip    == Sock#socket.ip    andalso
           Port  == Sock#socket.port  andalso
  
positive.code:     Sock = #socket{} ->
        Sock#socket.socket == Socket andalso
        Socket /= undefined andalso
        in_tcp_state(S, Id, close_states());
      _ ->
        false
    end.
  
negative.code: initial_state() ->
    #state{}.
  
  in_tcp_state(Sock, TcpState) when not is_list(TcpState) ->
    in_tcp_state(Sock, [TcpState]);
  in_tcp_state(#socket{tcp_state = St}, TcpStates) ->
    lists:member(St, TcpStates);
  in_tcp_state(_, _) -> false.
  
  in_tcp_state(S, Id, TcpStates) ->
    in_tcp_state(get_socket(S, Id), TcpStates).
  
  sockets_in_state(S, TcpStates) when is_list(TcpStates) ->
    [ Sock || Sock <- S#state.sockets,
  