《朗文》第六版ought to词条有一例句:
You were out enjoying yourself when you ought to have been studying.
应该学习的时候你却在外玩。
这里have been studying是不是应改为be studying?
由于主句为过去时,所以ought to也表过去,其后再接个完成进行时,则语意不通;假如ought to表目前,则出现“主过从现”,不合语法规则。
1) 第一质疑权威是可以的,但这种朗文除非排版或版本错误,不然极少有错。
2) should /ought to have done是过去该做却没做,是情态表达的意义之一。
https://www.cpsenglish.com/question/35634
另外注意: 情态助动词没“时态”的标记, 少数几个词项虽有过去时形式如 could, might, would, should,但在很多状况下并不表示过去时间。