Cases for variables and pairs: W(G | x) = (tau | True) if (x:tau) in G W(G | x) = Fail otherwise W(G | (e1, e2)) = ((tau1,tau2 | C1/\C2) where W(G | e1)= (tau1,C1) W(G | e2)= (tau2,C2)