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

Treat missing values in models as abstract #860

Merged

Conversation

bclement-ocp
Copy link
Collaborator

When printing models, we can end up with class representatives that are not actually in the model. This can happen if a class representative is a defined constant, but also if it is an intermediate fresh constant introduced by the solver (!kXXX). This is because, in a class containing only uninterpreted terms, the representative will be the minimum term, independently of whether it is defined or fresh.

This patch records and adds such terms to the values table as a (named) Abstract constant. This ensures that the same abstract value is used for all uses of a given constant.

This is backported from a0575d2 for branch 2.5.x.

Fixes #854

When printing models, we can end up with class representatives that are
not actually in the model. This can happen if a class representative is
a defined constant, but also if it is an intermediate fresh constant
introduced by the solver (!kXXX). This is because, in a class containing
only uninterpreted terms, the representative will be the minimum term,
independently of whether it is defined or fresh.

This patch records and adds such terms to the `values` table as a
(named) `Abstract` constant. This ensures that the same abstract value
is used for all uses of a given constant.

This is backported from a0575d2 for branch 2.5.x.

Fixes OCamlPro#854
@Halbaroth Halbaroth merged commit ec74b44 into OCamlPro:v2.5.x Oct 4, 2023
10 checks passed
@Halbaroth Halbaroth added this to the 2.5.2 milestone Oct 13, 2023
@Halbaroth Halbaroth added frontend models This issue is related to model generation. labels Oct 13, 2023
@bclement-ocp bclement-ocp deleted the models-missing-values-2.5.1 branch January 23, 2024 08:47
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
frontend models This issue is related to model generation.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants