Can, could and could have, could (do) and could have (done)

C. To say that something is possible or impossible. (e.g. Learning English can be difficult (= Learning English is sometimes difficult.))
a. For requests and refusals of requests. (e.g. Can I go home now?)
b. To offer to help someone. (e.g. Can I help you?)

C1. We use ‘could’ have: to show that something is possible now or was possible at some time in the past. (e.g. It’s ten o’clock. They could have arrived now.)

C2. We also use ‘could’ (not can) for actions which are not realistic. (e.g. I’m so tired, I could sleep for a week. (not I can sleep for a week) I can stay with Julie when I go to Paris. (realistic))
a. We also use ‘could’ (not can) to say that something is possible now or in the future. The meaning is similar to ‘might’ or ‘may’. (e.g. The story could be true, but I don’t think it is. (not can be true))

C4. We use ‘could have (done)‘ to talk about the past. (e.g. I’m so tired, I could sleep for a week. (now), I was so tired, I could have slept for a week. (past))
a. Something ‘could have happened’ = it was possible but did not happen. (e.g. Why did you stay at a hotel when you were in Paris? You could have stayed with Julie. (you didn’t stay with her))
b. We use ‘couldn’t’ to say that something would not be possible now. (e.g. I couldn’t live in a big city. I’d hate it. (= it wouldn’t be possible for me))
c. For the past we use ‘couldn’t have (done)‘. (e.g. We had a really good holiday. It couldn’t have been better.)

C5. We make questions by putting the subject after ‘can/could’: Can I …? Can you …? Could I … Could you …? and so on.
a. The negative form is ‘can’t’ or ‘couldn’t’ in spoken English and ‘cannot’ or ‘could not’ in written English. We sometimes say cannot or could not, but it is very emphatic.