OCamlPro / alt-ergo

OCamlPro public development repository for Alt-Ergo
https://alt-ergo.ocamlpro.com/
Other
130 stars 33 forks source link

ADT: Normalize representatives in assume #1096

Closed bclement-ocp closed 3 months ago

bclement-ocp commented 4 months ago

Following #1087 I believe the assume_literals function is incorrect: it should call Uf.find_r on all semantic values that appear in the literals.

Semantic values that appear in the literals given to assume are not guaranteed to be in normal form, even though they usually are: during CC(X) resolution I believe it is possible to generate a literal such as x = y then later pick a new representative for y or x. I have seen this happen with bit-vectors; presumably it can also happen with ADTs.

(Sorry, I missed it during review!)