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

unexpected user error (rule_DomainMinMax.minOfDomain ?) #575

Open
ott2 opened this issue Jun 21, 2023 · 3 comments
Open

unexpected user error (rule_DomainMinMax.minOfDomain ?) #575

ott2 opened this issue Jun 21, 2023 · 3 comments

Comments

@ott2
Copy link
Collaborator

ott2 commented Jun 21, 2023

I have a simple spec which:

  • works fine unparameterised
  • breaks if changing one letting to a given, and providing that in a param file: conjure: user error (rule_DomainMinMax.minOfDomain ?)
  • breaks on a 2020-vintage conjure in the latter case with This should never happen, sorry!... IO Error rule_DomainMinMax.minOfDomain ?

Here are the files, with .txt endings due to github's faulty semantics for filenames.

test0.essence
test.essence
test.param

@ott2
Copy link
Collaborator Author

ott2 commented Sep 18, 2024

This is still happening with latest Conjure v2.5.1 (Repository version 843ec486d (2024-06-24 13:32:59 +0100)) compiled with GHC 9.4.

As an alternative to switching to CPMpy, I would really like to understand how to work around this. As far as I can tell this error is caused by Conjure being overzealous in its sanity checks. Note that I can't hardcode n because conjure is too slow to solve the full spec (of which this is a tiny extract) and I need to hand the problem to Minion or a SAT solver.

@ozgurakgun
Copy link
Collaborator

ozgurakgun commented Sep 23, 2024

Hi @ott2 -

Obviously not ideal, but one suggested work around would be the following. Apologies, I didn't find time to look into this yet.

such that forAll i,j : int(0..4) .  {i + j*5 + n/2, (i+1)%5 + j*5 + n/2} in EHS
such that forAll edge_pair in EHS . exists i,j : int(0..4) . {i + j*5 + n/2, (i+1)%5 + j*5 + n/2} = edge_pair

Hope I didn't make a mistake/typo there!

@ozgurakgun
Copy link
Collaborator

Also, feel free to use an alternative if that's a better tool for the problem you are solving - I won't be offended :)

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

2 participants