Skip to content

Remove whole-struct assignment in polyvec functions #102

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

Open
mkannwischer opened this issue Apr 9, 2025 · 0 comments
Open

Remove whole-struct assignment in polyvec functions #102

mkannwischer opened this issue Apr 9, 2025 · 0 comments

Comments

@mkannwischer
Copy link
Contributor

mkannwischer commented Apr 9, 2025

For the CBMC proof of polyveck_decompose added in #92, some workarounds were needed due to limitations in CBMC:

This issue is to track diffblue/cbmc#8617.
Further functions were identified in #151.

Once that is resolved and CBMC is updated, we should be able to remove the workarounds in all affected functions

  • polyveck_decompose
  • polyvecl_add
  • polyveck_add
  • polyveck_sub
  • polyveck_use_hint
  • polyveck_reduce
  • polyvecl_reduce
  • polyvecl_ntt
  • polyveck_ntt
  • polyveck_addq
  • polyveck_power2round
  • polyvecl_invntt_tomont
  • polyveck_invntt_tomont
mkannwischer added a commit that referenced this issue Apr 12, 2025
Resolves #117

Unrolling resulted in too poor performance. The direct proof works, but it
requires to workaround the CBMC limitation described in:
#102
diffblue/cbmc#8617

Signed-off-by: Matthias J. Kannwischer <[email protected]>
@mkannwischer mkannwischer changed the title Remove whole-struct assignment in polyveck_decompose Remove whole-struct assignment in polyveck_decompose, and polyvecl_add Apr 12, 2025
mkannwischer added a commit that referenced this issue Apr 13, 2025
Resolves #117

Unrolling resulted in too poor performance. The direct proof works, but it
requires to workaround the CBMC limitation described in:
#102
diffblue/cbmc#8617

Signed-off-by: Matthias J. Kannwischer <[email protected]>
@mkannwischer mkannwischer changed the title Remove whole-struct assignment in polyveck_decompose, and polyvecl_add Remove whole-struct assignment in polyveck_decompose, polyvecl_add, and polyveck_add Apr 13, 2025
mkannwischer added a commit that referenced this issue Apr 13, 2025
Resolves #127

Unrolling resulted in too poor performance. The direct proof works, but it
requires to workaround the CBMC limitation described in:
#102
diffblue/cbmc#8617

This also moves the correctness post-condition in poly_sub into a assert at
the end of the function. This vastly improves performance.

Signed-off-by: Matthias J. Kannwischer <[email protected]>
@mkannwischer mkannwischer changed the title Remove whole-struct assignment in polyveck_decompose, polyvecl_add, and polyveck_add Remove whole-struct assignment in polyvec functions Apr 13, 2025
mkannwischer added a commit that referenced this issue Apr 13, 2025
Resolves #127

Unrolling resulted in too poor performance. The direct proof works, but it
requires to workaround the CBMC limitation described in:
#102
diffblue/cbmc#8617

This also moves the correctness post-condition in poly_sub into a assert at
the end of the function. This vastly improves performance.

Signed-off-by: Matthias J. Kannwischer <[email protected]>
mkannwischer added a commit that referenced this issue Apr 13, 2025
Resolves #135

Unrolling resulted in too poor performance. The direct proof works, but it
requires to workaround the CBMC limitation described in:
#102
diffblue/cbmc#8617

Signed-off-by: Matthias J. Kannwischer <[email protected]>
mkannwischer added a commit that referenced this issue Apr 13, 2025
Resolves #117

Unrolling resulted in too poor performance. The direct proof works, but it
requires to workaround the CBMC limitation described in:
#102
diffblue/cbmc#8617

Signed-off-by: Matthias J. Kannwischer <[email protected]>
mkannwischer added a commit that referenced this issue Apr 13, 2025
Resolves #127

Unrolling resulted in too poor performance. The direct proof works, but it
requires to workaround the CBMC limitation described in:
#102
diffblue/cbmc#8617

This also moves the correctness post-condition in poly_sub into a assert at
the end of the function. This vastly improves performance.

Signed-off-by: Matthias J. Kannwischer <[email protected]>
mkannwischer added a commit that referenced this issue Apr 13, 2025
Resolves #135

Unrolling resulted in too poor performance. The direct proof works, but it
requires to workaround the CBMC limitation described in:
#102
diffblue/cbmc#8617

Signed-off-by: Matthias J. Kannwischer <[email protected]>
mkannwischer added a commit that referenced this issue Apr 16, 2025
Resolves #117

Unrolling resulted in too poor performance. The direct proof works, but it
requires to workaround the CBMC limitation described in:
#102
diffblue/cbmc#8617

Signed-off-by: Matthias J. Kannwischer <[email protected]>
mkannwischer added a commit that referenced this issue Apr 16, 2025
Resolves #127

Unrolling resulted in too poor performance. The direct proof works, but it
requires to workaround the CBMC limitation described in:
#102
diffblue/cbmc#8617

This also moves the correctness post-condition in poly_sub into a assert at
the end of the function. This vastly improves performance.

Signed-off-by: Matthias J. Kannwischer <[email protected]>
mkannwischer added a commit that referenced this issue Apr 16, 2025
Resolves #135

Unrolling resulted in too poor performance. The direct proof works, but it
requires to workaround the CBMC limitation described in:
#102
diffblue/cbmc#8617

Signed-off-by: Matthias J. Kannwischer <[email protected]>
mkannwischer added a commit that referenced this issue Apr 16, 2025
Resolves #127

Unrolling resulted in too poor performance. The direct proof works, but it
requires to workaround the CBMC limitation described in:
#102
diffblue/cbmc#8617

This also moves the correctness post-condition in poly_sub into a assert at
the end of the function. This vastly improves performance.

Signed-off-by: Matthias J. Kannwischer <[email protected]>
mkannwischer added a commit that referenced this issue Apr 16, 2025
Resolves #135

Unrolling resulted in too poor performance. The direct proof works, but it
requires to workaround the CBMC limitation described in:
#102
diffblue/cbmc#8617

Signed-off-by: Matthias J. Kannwischer <[email protected]>
mkannwischer added a commit that referenced this issue Apr 16, 2025
Resolves #117

Unrolling resulted in too poor performance. The direct proof works, but it
requires to workaround the CBMC limitation described in:
#102
diffblue/cbmc#8617

Signed-off-by: Matthias J. Kannwischer <[email protected]>
mkannwischer added a commit that referenced this issue Apr 16, 2025
Resolves #127

Unrolling resulted in too poor performance. The direct proof works, but it
requires to workaround the CBMC limitation described in:
#102
diffblue/cbmc#8617

This also moves the correctness post-condition in poly_sub into a assert at
the end of the function. This vastly improves performance.

Signed-off-by: Matthias J. Kannwischer <[email protected]>
mkannwischer added a commit that referenced this issue Apr 16, 2025
Resolves #135

Unrolling resulted in too poor performance. The direct proof works, but it
requires to workaround the CBMC limitation described in:
#102
diffblue/cbmc#8617

Signed-off-by: Matthias J. Kannwischer <[email protected]>
mkannwischer added a commit that referenced this issue Apr 16, 2025
Resolves #117

Unrolling resulted in too poor performance. The direct proof works, but it
requires to workaround the CBMC limitation described in:
#102
diffblue/cbmc#8617

Signed-off-by: Matthias J. Kannwischer <[email protected]>
mkannwischer added a commit that referenced this issue Apr 16, 2025
Resolves #127

Unrolling resulted in too poor performance. The direct proof works, but it
requires to workaround the CBMC limitation described in:
#102
diffblue/cbmc#8617

This also moves the correctness post-condition in poly_sub into a assert at
the end of the function. This vastly improves performance.

Signed-off-by: Matthias J. Kannwischer <[email protected]>
mkannwischer added a commit that referenced this issue Apr 16, 2025
Resolves #135

Unrolling resulted in too poor performance. The direct proof works, but it
requires to workaround the CBMC limitation described in:
#102
diffblue/cbmc#8617

Signed-off-by: Matthias J. Kannwischer <[email protected]>
mkannwischer added a commit that referenced this issue Apr 16, 2025
Resolves #117

Unrolling resulted in too poor performance. The direct proof works, but it
requires to workaround the CBMC limitation described in:
#102
diffblue/cbmc#8617

Signed-off-by: Matthias J. Kannwischer <[email protected]>
mkannwischer added a commit that referenced this issue Apr 16, 2025
Resolves #127

Unrolling resulted in too poor performance. The direct proof works, but it
requires to workaround the CBMC limitation described in:
#102
diffblue/cbmc#8617

This also moves the correctness post-condition in poly_sub into a assert at
the end of the function. This vastly improves performance.

Signed-off-by: Matthias J. Kannwischer <[email protected]>
mkannwischer added a commit that referenced this issue Apr 16, 2025
Resolves #135

Unrolling resulted in too poor performance. The direct proof works, but it
requires to workaround the CBMC limitation described in:
#102
diffblue/cbmc#8617

Signed-off-by: Matthias J. Kannwischer <[email protected]>
hanno-becker pushed a commit that referenced this issue Apr 17, 2025
Resolves #117

Unrolling resulted in too poor performance. The direct proof works, but it
requires to workaround the CBMC limitation described in:
#102
diffblue/cbmc#8617

Signed-off-by: Matthias J. Kannwischer <[email protected]>
hanno-becker pushed a commit that referenced this issue Apr 17, 2025
Resolves #127

Unrolling resulted in too poor performance. The direct proof works, but it
requires to workaround the CBMC limitation described in:
#102
diffblue/cbmc#8617

This also moves the correctness post-condition in poly_sub into a assert at
the end of the function. This vastly improves performance.

Signed-off-by: Matthias J. Kannwischer <[email protected]>
hanno-becker pushed a commit that referenced this issue Apr 17, 2025
Resolves #135

Unrolling resulted in too poor performance. The direct proof works, but it
requires to workaround the CBMC limitation described in:
#102
diffblue/cbmc#8617

Signed-off-by: Matthias J. Kannwischer <[email protected]>
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

No branches or pull requests

1 participant