Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Memory safety proofs using function contracts #133

Merged
merged 1 commit into from
Jan 30, 2023

Conversation

feliperodri
Copy link
Contributor

Replace all existing CBMC proof harnesses with function contracts to prove all API-level functions in coreJSON. This reduces the number of proofs to maintain, explicitly documents all assumptions in a specification format, and allow proof decomposition using checkable artifacts (i.e., function contracts). We can completely remove all stubs.

Signed-off-by: Felipe R. Monteiro [email protected]

test/cbmc/proofs/objectSearch/Makefile Show resolved Hide resolved
test/cbmc/proofs/skipScalars/Makefile Outdated Show resolved Hide resolved
test/cbmc/proofs/JSON_Validate/Makefile Show resolved Hide resolved
test/cbmc/proofs/JSON_SearchConst/Makefile Show resolved Hide resolved
test/cbmc/proofs/arraySearch/Makefile Show resolved Hide resolved
@feliperodri feliperodri force-pushed the function-contracts branch 4 times, most recently from d1b9a45 to e05350a Compare December 26, 2022 01:52
Replace all existing CBMC proof harnesses with function contracts
to prove all API-level functions in coreJSON. This reduces the
number of proofs to maintain, explicitly documents all assumptions
in a specification format, and allow proof decomposition using
checkable artifacts (i.e., contracts).

Signed-off-by: Felipe R. Monteiro <[email protected]>
Copy link
Contributor

@angelonakos angelonakos left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM. Proofs seem to be running faster than latest commit on the main branch.

Copy link
Member

@AniruddhaKanhere AniruddhaKanhere left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I approve of this change.

Thank you @feliperodri for moving this repository away from stubs and towards function contracts.

@cobusve cobusve self-requested a review January 30, 2023 21:45
@AniruddhaKanhere AniruddhaKanhere merged commit 40a7eae into FreeRTOS:main Jan 30, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants