call(G,Val0,ValF)
holds, then the value
associated with Key in NewTree is ValF, otherwise it is the value
associated with the key in Tree. Fails if Key isn't in Tree or if
call(G,Val0,ValF)
is not satisfiable for all Val0 in Keys. Assumes
keys are sorted and not repeated (fails if this is not true).