You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
When we verify specs, we still need to provide stub harnesses invoking the function-under-proof. Morally, it seems that those harnesses should be irrelevant, but #306 (specifically this commit a95a2ce) suggest that this may be wrong: In this commit, the spec for poly_add() does not provide any bound on the r buffer, and yet the proof goes through. This is likely because the harness allocates the data on the stack, which may inadvertently add to the pre-conditions of poly_add -- it's likely that an uninitialized poly* should have been passed.
Understand what the correct shape of harnesses for spec-proofs is
Apply needed changes throughout
Adjust the CBMC proof guide accordingly
The text was updated successfully, but these errors were encountered:
I agree that the harness should infer a little information as possible, so passing an unitialized pointer rather than a pointer to a stack-allocated local object feels OK to me, assuming the proofs all succeed. We need to confirm this advice with CBMC team, then update the Proof Guide accordingly.
When we verify specs, we still need to provide stub harnesses invoking the function-under-proof. Morally, it seems that those harnesses should be irrelevant, but #306 (specifically this commit a95a2ce) suggest that this may be wrong: In this commit, the spec for
poly_add()
does not provide any bound on ther
buffer, and yet the proof goes through. This is likely because the harness allocates the data on the stack, which may inadvertently add to the pre-conditions ofpoly_add
-- it's likely that an uninitializedpoly*
should have been passed.The text was updated successfully, but these errors were encountered: