When translating "he thinks I bought three books, but I didn't buy anything", do we add a completion 了 for "bought"? When learning about when to use 了, we're typically given simple examples with clear-cut answers, such as the following:

我买了三本书。
I bought three books.
Expressing completion with &quot;le&quot;

We are taught that the reason we add the 了 is for completion: 买 is complete in the above example.  Then we get thrown into the real world, where we might want to say something like:

他以为我买了三本书，但是我什么都没买。
He thinks I bought three books, but I didn't buy anything.

We have a grammar vs. context battle: the (local) grammar implies we should add the 了 (as above in 我买了三本书), while the context destroys the logic used above (买 is not complete), which gives a contradiction.
Question: When translating &quot;he thinks I bought three books, but I didn't buy anything&quot;, do we add a completion 了 for &quot;bought&quot;?
which gives a contradiction.

There is no contradiction. Everything described in &quot;他以为 (he thought)&quot; is hypothetical.
Similarly, everything described in [He said: &quot;....&quot; ] doesn't need to be in the same universe with the rest of the text.

Nothing wrong with '他以为我买了三本书，但是我什么都没买。' (The fact -- 'you bought three books' is in his mind only)

'我看着我买了三本书，但是我什么都没买。' would be contradicting (The two facts cannot be both true)

'他叫我买了三本书，但是我什么都没买。' would also be contradicting. It has to be '他叫我买三本书，但是我什么都没买。' ('told you to buy' cannot be changed to 'told you to have bought')