Exactly, a formal specification language (including any programming language) requires you to make all your the implicit, underlying assumptions explicit. Nothing can be taken for granted and there is no "you know what I mean." But once you really do know exactly what you mean, it's usually not so hard to specify it. Figuring out what you want is the hardest part.
Well, sometimes we get things like C++11's `auto`, which do let you trade formality for brevity.
It's helpful sometimes, but can cause misunderstandings, just like natural language pronouns.