Overlaying is used to run a program which is longer than the address space of a computer : Yes
No it's not true.
Refer this links:
In a general computing sense, overlaying means "the process of transferring a block of program code or other data into internal memory, replacing what is already stored". Overlaying is a programming method that allows programs to be larger than the computer's main memory. An embedded system would normally use overlays because of the limitation of physical memory, which is internal memory for a system-on-chip, and the lack of virtual memory facilities.
yes you are correct, for more you can read: https://en.wikipedia.org/wiki/Overlay_(programming)