Deque
Types
Functions
def new_deque (_ : Unit) : {d : (Deque a) | deque_size d = 0}
def push_back (1 x : a) (1 d : (Deque a)) : {out : (Deque a) | deque_size out = deque_size d + 1}
def push_front (1 x : a) (1 d : (Deque a)) : {out : (Deque a) | deque_size out = deque_size d + 1}
def pop_back (1 d : (Deque a) | deque_size d > 0) : {p : (DequePop a) | pop_size p = deque_size d - 1}
def pop_front (1 d : (Deque a) | deque_size d > 0) : {p : (DequePop a) | pop_size p = deque_size d - 1}
def pop_value (1 p : (DequePop a)) : a
def pop_deque (1 p : (DequePop a)) : {d : (Deque a) | deque_size d = pop_size p}
def peek_back (_inst2062 : (Copy a)) (borrow d : (Deque a) | deque_size d > 0) : a
def peek_front (_inst2063 : (Copy a)) (borrow d : (Deque a) | deque_size d > 0) : a
def discard (1 d : (Deque a) | deque_size d = 0) : Unit
def with_pop (_inst2064 : (Copy a)) (1 token : (DequePop a)) (1 consume : (value : a) → (1 handle : (Deque a) | deque_size handle = pop_size token) → b) : b
def with_pop_owned (1 token : (DequePop a)) (1 consume : (1 value : a) → (1 handle : (Deque a) | deque_size handle = pop_size token) → b) : b
def length (borrow d : (Deque a)) : {n : Int | n = deque_size d && n ≥ 0}
def empty (borrow d : (Deque a)) : {b : Bool | b = (deque_size d = 0)}
Uninterpreted
Functions declared as def f ... = uninterpreted: only their signature is known to the verifier; they have no body.
def deque_size : (d : (Deque a)) → Int
def pop_size : (p : (DequePop a)) → Int