Is it a coincidence that the etymologically unrelated but closely associated words could, should, and would look and sound nearly the same? Mostly yes, with a little bit of no.
Could derives from the Old English word cuðe, the past tense of cunnan, meaning “to be able”; the present-tense form is can. The terminal spelling and pronunciation changed to d in the fourteenth century, but unlike in the case of should and would, which naturally developed their similar appearance (they already rhymed), could was manipulated by the insertion of additional letters to match the other words.
(The obsolete character in the Old English form is an eth, pronounced like th. Yes, that means that the word was pronounced “cooth.” That similarity to couth is not a coincidence; couth, also derived from cunnan, originally meant “known.” Supplanted by could hundreds of years later, couth reemerged in the late nineteenth century as a back-formed antonym of uncouth meaning “sophisticated.” Cunning is also related.)
Should evolved from sceolde, the past tense of the Old English word sceal, which meant “ought to” or “must” as well as “owe” and shifted in sense while still in its Middle English form so that it referred to the future as well as an obligation; the latter Old English word is the derivation of shall.
Would comes from the Old English term wolde, past tense and past subjunctive of willan, meaning “to will,” and is the past tense of will.
The phrases “could have,” “should have,” and “would have” are often contracted (in speech if not in writing) to could’ve, should’ve, and would’ve; slang variants are coulda, shoulda, and woulda. Other contractions based on phrases that bring these words together with not are couldn’t, shouldn’t, and wouldn’t. These contractions sometimes puzzle English-language learners because, for consistency, the latter should be styled could’n’t and so on. Couldn’t’ve and the like are natural progressions of this form but should be reserved for informal writing.
Could-have, should-have, and would-have are nouns, usually in plural form, that refer to what could, should, or would have happened under different circumstances than those that actually existed. (Note the hyphens that distinguish these nouns from the verb phrases that inspired them.) Another development is the adjective would-be, which denotes someone who wishes to be or pretends to be something other than what he or she is.
Could, should, and would can also confound nonnative speakers because they can be used to refer both to the past (as in “As I child, I would visit my grandparents every summer”) and the future (as in “I would do it again if I had the chance”).