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

Sygus2 #1166

Closed
wants to merge 11 commits into from
Closed

Sygus2 #1166

wants to merge 11 commits into from

Conversation

andreistefanescu
Copy link
Contributor

No description provided.

b <- freshConstant sym (safeSymbol "noSatisfyingWrite") BaseBoolRepr
Partial.Err <$>
Partial.annotateME sym mop (NoSatisfyingWrite tp) b
-- b <- freshConstant sym (safeSymbol "noSatisfyingWrite") BaseBoolRepr
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This should be controlled by some sort of config or saw option. The intent is to avoid very large sets of fresh constants due to the "trick".

withFile "foo.smt2" WriteMode $ \handle ->
Z3.writeZ3HornSMT2File sym True handle uninterp_inv_fns implications
withFile "foo.sy" WriteMode $ \handle ->
CVC5.writeCVC5SyFile sym handle uninterp_inv_fns implications
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Currently, always creates these files which record the attempted solver operation for examination in case of failure. Creating these should be configurable; used for debugging only.

-- CVC5.runCVC5SyGuS sym logData uninterp_inv_fns implications >>= \case
-- Sat sub -> return sub
-- Unsat{} -> fail "Prover returned Infeasible"
-- Unknown -> fail "Prover returned Fail"
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Needs to have some option to select which solver to use (other than commenting and recompiling as used here).

-- checked.
--
-- The basic use case here is for verifiying functions that loop
-- The basic use case here is for verifying functions that loop
-- through an array of data of symbolic length. This is done by
-- providing a \""fixpoint function\" which describes how the live
-- values in the loop at an arbitrary iteration are used to compute
-- the final values of those variables before execution leaves the
-- loop. The number and order of these variables depends on
-- internal details of the representation, so is relatively fragile.
simpleLoopFixpoint ::
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This function is an extension/enhancement that does not impact other code and is only utilized when specifically utilizing this fixpoint feature, so while this is messy, it's relatively safe to include to prevent significant bitrot.

@RyanGlScott
Copy link
Contributor

Superseded by #1178.

@RyanGlScott RyanGlScott deleted the sygus2 branch May 14, 2024 17:40
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

Successfully merging this pull request may close these issues.

None yet

3 participants