Socket
Types
Functions
def ipv4_addr (host: String) (port: {p : Int | p >= 0 && p <= 65535}) : {a : SockAddr | ipv4_sock_addr a == True}
def stream_socket : {s : StreamSocket | stream_bound s == False && stream_connected s == False}
def dgram_socket : {s : DatagramSocket | dgram_bound s == False && dgram_connected s == False}
def tcp_accept_socket (r: TcpAccept) : {s : StreamSocket | stream_connected s == True}
def tcp_accept_peer (r: TcpAccept) : {a : SockAddr | ipv4_sock_addr a == True}
def stream_bind (addr: {ad : SockAddr | ipv4_sock_addr ad == True}) (s: {sock : StreamSocket | stream_bound sock == False}) : {out : StreamSocket | stream_bound out == True}
def stream_listen (backlog: {n : Int | n > 0}) (s: {sock : StreamSocket | stream_bound sock == True}) : {out : StreamSocket | stream_bound out == True}
def stream_connect (addr: {ad : SockAddr | ipv4_sock_addr ad == True}) (s: {sock : StreamSocket | stream_connected sock == False}) : {out : StreamSocket | stream_connected out == True}
def stream_accept (s: {sock : StreamSocket | stream_bound sock == True && stream_connected sock == False}) : TcpAccept
def stream_send (data: SocketPayload) (s: {sock : StreamSocket | stream_connected sock == True}) : {sent : Int | sent >= 0 && sent <= payload_len data}
def stream_recv (bufsize: {n : Int | n > 0}) (s: {sock : StreamSocket | stream_connected sock == True}) : {p : SocketPayload | payload_len p <= bufsize}
def stream_close (s: StreamSocket) : Unit
def dgram_bind (addr: {ad : SockAddr | ipv4_sock_addr ad == True}) (s: {sock : DatagramSocket | dgram_bound sock == False}) : {out : DatagramSocket | dgram_bound out == True}
def dgram_connect (addr: {ad : SockAddr | ipv4_sock_addr ad == True}) (s: DatagramSocket) : {out : DatagramSocket | dgram_connected out == True}
def dgram_sendto (data: SocketPayload) (addr: {ad : SockAddr | ipv4_sock_addr ad == True}) (s: DatagramSocket) : {sent : Int | sent >= 0 && sent <= payload_len data}
def dgram_recvfrom (bufsize: {n : Int | n > 0}) (s: {sock : DatagramSocket | dgram_bound sock == True}) : {r : UdpRecvFrom | udp_payload_len r <= bufsize}
def udp_recv_payload (r: UdpRecvFrom) : {p : SocketPayload | payload_len p == udp_payload_len r}
def udp_recv_peer (r: UdpRecvFrom) : {a : SockAddr | ipv4_sock_addr a == True}
def dgram_send (data: SocketPayload) (s: {sock : DatagramSocket | dgram_connected sock == True}) : {sent : Int | sent >= 0 && sent <= payload_len data}
def dgram_recv (bufsize: {n : Int | n > 0}) (s: {sock : DatagramSocket | dgram_connected sock == True}) : {p : SocketPayload | payload_len p <= bufsize}
def dgram_close (s: DatagramSocket) : Unit
Uninterpreted
Functions declared as def f ... = uninterpreted: only their signature is known to the verifier; they have no body.
def stream_bound : (s : StreamSocket) -> Bool
def stream_connected : (s : StreamSocket) -> Bool
def dgram_bound : (s : DatagramSocket) -> Bool
def dgram_connected : (s : DatagramSocket) -> Bool
def payload_len : (p : SocketPayload) -> Int
def udp_payload_len : (r : UdpRecvFrom) -> Int
def ipv4_sock_addr : (a : SockAddr) -> Bool