anchor.diff:        aggregate(adjacent(TcpStates),
         eqc_component:pretty_commands(?MODULE, Cmds, {H, S, Res},
           Res == ok)))))
  -  end)))).
  +  end))))).
   
   cleanup() -> cleanup([]).
   cleanup(_Sockets) ->
  
positive.code:   inject(RemoteIp, Ip, Data),
    ok.
  
  ack_callouts(S, [_Ip, _Port, _RemoteIp, _RemotePort, _Seq, _Ack]) ->
    case S#state.tcp_state of
      syn_rcvd ->
        ?WHEN(S#state.socket_type == accept, ?UNBLOCK(accept, ok)),
        ?SET(tcp_state, established);
      fin_wait_1 ->
        ?SET(tcp_state, fin_wait_2);
      closing ->
        ?UNBLOCK(close, ok),
        ?SET(tcp_state, time_wait);
      last_ack ->
        ?UNBLOCK(close, ok),
        ?APPLY(reset, []),
        ?SET(tcp_state, closed)
    end.
  
  %% --- fin ---
  
  fin_pre(S) ->
    in_tcp_state(S, [established, fin_wait_1, fin_wait_2]).
  
  fin_args(S) ->
    [S#state.ip, S#state.port,
     S#state.rip, S#state.rport,
     S#state.rseq, S#state.rcvd].
  
  fin_pre(S, Args) ->
    fin_args(S) == Args.
  
  fin_adapt(S, _) -> fin_args(S).
  
  fin(Ip, Port, RemoteIp, RemotePort, Seq, Ack) ->
    Packet =
      #pkt{sport = RemotePort,
           dport = Port,
  
negative.code: %% -- Common pre-/post-conditions --------------------------------------------
  
  command_precondition_common(S, start) ->
    S == [];
  command_precondition_common(S, _Cmd) ->
    S =/= [].
  
  postcondition_common(S, Call = {call, _, Cmd, _, _}, Res) ->
    case lists:member(Cmd, [open, listen, accept]) of
  