CBMC: Use polyvec_permute contract in polymat_permute proof #1445
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
The mlk_polymat_permute_bitrev_to_custom was split up into two parts to work around CBMC performance issues when proving it on top of the native backend.
However, it was forgotten to call mlk_polyvec_permute_bitrev_to_custom (which is proven for both the C and native backend) in the mlk_polymat_permute_bitrev_to_custom proof.
As a consequence, mlk_polymat_permute_bitrev_to_custom wasn't actually proven for the native backend, as the C version was inlined. This commit closes that gap by calling it by contract.