If the value associated with key Key is Val0 in Tree, and if
call(G,Val0,ValF) holds, then NewTree differs from Tree only in that
Key is associated with value ValF in tree NewTree. Fails if it
cannot find Key in Tree, or if call(G,Val0,ValF) is not satisfiable.