Авторы часто не видят разницы между словами lie и lay, и путают их.
LIE
У глагола lie два базовых значения: «лгать» и «лежать на чем-то», «покоиться», «простираться».
Если речь идет о лжи, то lie — это обычный глагол и прошедшее время у него будет lied, а совершенное на данный момент действие будет — has lied или had lied.
Если же речь идет о «лежании», то lie становится неправильным глаголом, и в прошедшем времени у нас получается lay, а совершенное действие — has(d) lain.
LAY
Теперь рассмотрим глагол lay, означающий «положить».
В настоящем времени он пишется точно так же, как прошедшее время у lie (в смысле «лежать») — и тут как раз возникает путаница.
Lay — это тоже неправильный глагол, и в прошедшем времени он звучит как laid, а в совершенном виде — has(d) laid.
Запомнить сложно… но можно.