adjust copy_linear to use new stuff; prove copy_linear's running time is linear