I've left out the getters for the first and last names - they're not important for the conversation at hand. Now, since I have an invariant on the age field that it must be non-negative [1], I expected the following test to fail:

The test will fail as expected. So, either I don't get how invariants work, or Spec# has a bug with respect to enforcing invariants. I'm leaning towards the former, but Spec# seems pretty "twichy" in its current beta release so who knows.

[1] I could've used a uint to enforce the contract, but I was more curious about how Spec# handles invariants.