I was using 'assumption' in the strict mathematical-logic sense. These assumptions are stated and it is trivial to check that the proof is not true if the assumptions aren't true.
Some may argue that there's no guarantee that such proofs apply to real world systems. But really, there's no guarantee that any abstract model does. We humans have to get paid for something.
I would argue that those who would argue that have probably not spent a lot of time doing any real-world formal verification.
People seem to like arguing about its utility in the abstract without ever doing it.
In short: most of the objections people have to formal verification also apply to modeling something in software to begin with.