let or := map x,y to if x then true else y; member := map x,l to if null?(l) then false else or(x = first(l), member(x, rest(l))); in member (1, cons(1, null)) => let ... in (map x, l to ...)(1, cons(1, null)) => let ... in if null?(cons(1,null)) then false else or(1 = first(cons(1,null)), member(1,rest(cons(1,null)))) => let ... in if false then false else or(1 = first(cons(1,null)), member(1,rest(cons(1,null)))) => let ... in or(1 = first(cons(1,null)), member(1,rest(cons(1,null)))) => let ... in (map x,y to ...)(1 = first(cons(1,null)), member(1,rest(cons(1,null)))) => let ... in if 1 = first(cons(1,null)) then true else member(1,rest(cons(1,null))) => let ... in if 1 = 1 then true else member(1,rest(cons(1,null))) => let ... in if true then true else member(1,rest(cons(1,null))) => let ... in true => true