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 (map x,y to ...)(1 = 1, member(1,rest(cons(1,null)))) => let ... in (map x,y to ...)(true, member(1,rest(cons(1,null)))) => let ... in (map x,y to ...)(true, (map x,l to ...)(1,rest(cons(1,null)))) => let ... in (map x,y to ...)(true, (map x,l to ...)(1,null)) => let ... in (map x,y to ...)(true, if null?(null) then false else or(1 = first(null), member(1,rest(null)))) => let ... in (map x,y to ...)(true, if true then false else or(1 = first(null), member(1,rest(null)))) => let ... in (map x,y to ...)(true, false) => let ... in if true then true else false => let ... in true => true