I do lose track after that though, in my brain, It looks like the entire second part after the second pipe character should be just one long fact assigned to the stack between tildes, but I think it's adding each one of the bullet-prefixed lines to it.
[0] https://nova-lang.net/introduction-to-nova/sight/#sometimes-...
[0]: http://www.navgen.com/nova/index.html
[1]: https://research.nvidia.com/publication/2013-07_nova-functio...
Homograph = same spelling, different meaning
Homophone = same pronunciation, different meaning
Homonym = same spelling and pronunciation, different meaning
It's also interesting checking their (Greek originating) etymologies and morphologies. Homo- from omós meaning same, -graph/-phone/-onym from gráphō/phōné/ónoma (ō becoming represented by letter ω in modern Greek) meaning writing/sound/name. And, syn-, equivalent to prefix co-, is from syn (preposition) meaning jointly/together. So respectively, literal meanings, being same writing, same sound, same name, co-named.
Hence about hom/synonym, their difference comes from "name" and "word" being distinct concepts. More specifically, in (Aristotelian) philosophy "name" was tied to essence of things, synonym being "same name, same essence" *, homonym being "same name, different essence". In time "name" and "word" were conflated. Moreover synonym evolved semantically, only retaining the "same essence" as "same meaning", and homonym retained its form. Result being one term being about "many words to same meaning" and the other about "one word to many meanings"**.
*So by ancient philosophy my choice of synonym will've been accurate! But you're right they stand opposite, both then and now.
**And then there's the homonym/polysemy distinction for specifying unrelated/related meanings, essentially reviving Aristotelean essence, and the reason why in dictionaries some words (e.g. bank, see[0]) have multiple entries each with multiple meanings.