public void Test() { var m1 = new MichaelRepro2(); Contract.Assert(m1.b == true); // true var m2 = new MichaelRepro2(29); Contract.Assert(m2.b); // true, but we cannot prove it var m3 = new MichaelRepro2(false); Contract.Assert(!m3.b); // true var m4 = new MichaelRepro2(true, false); Contract.Assert(!m4.b); // true, but we cannot prove it var m5 = new MichaelRepro2(); Contract.Assert(m5.AlwaysTrue()); // true; Contract.Assert(!m5.AlwaysFalse()); // true }