《朗文》第六版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,但在许多情况下并不表示过去时间。