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

fix(BV): Properly set fully interpreted operators #1073

Merged
merged 1 commit into from
Mar 25, 2024

Commits on Mar 25, 2024

  1. fix(BV): Properly set fully interpreted operators

    Alt-Ergo calls "fully interpreted" symbols that are fully internalized
    in semantic values and do not need to be taken into consideration by the
    CC(X) algorithm (see function `congruents` in `ccx.ml`).
    
    (Note that `fully_interpreted` is only called for the Shostak theory
    associated with the symbol according to `is_min_symb`.)
    
    The BV theory incorrectly states that all its symbols are fully
    interpreted, including `bv2nat`, `int2bv`, etc.; however, only `concat`,
    `extract` and `bv2nat` are fully interpreted. This means that Alt-Ergo
    never performs congruence closure for these functions, leading to missed
    reasoning opportunities.
    bclement-ocp committed Mar 25, 2024
    Configuration menu
    Copy the full SHA
    c71be56 View commit details
    Browse the repository at this point in the history