Skip to content

Conversation

@janvrany
Copy link
Collaborator

@janvrany janvrany commented May 2, 2025

This PR is my evolution of PR #512 that fixes few issues I had with the original version. Nothing major though:

  • Removes #isZ3String: and alike from Z3Context. There's only one sender at the moment and - more importantly - none of the other nodes use this style. Instead, call to Z3 API was moved to instance side of Z3String.
  • Z3Context current should not be used in instance methods of Z3ContextedObject subclasses. Such objects know their context and should use it. Again, that's consistent with other nodes.
  • Added some conversion / testing methods (#toZ3String, #asString, #cast: and so on).

This is the bare minimum necessary to implement the symConstant function;
in particular, we are not paying any attention to escaping whatsoever.
@janvrany
Copy link
Collaborator Author

@shingarov Any objections regarding this PR?

@shingarov
Copy link
Owner

Frankly, I would let this sit until someone with a special love for Z3 Strings commits to investing 1000+ hours of his life into this. The reason why we got into this rabbit-hole was as an emergency pseudo-solution to access "named things" through a custom type-level theory function, which we needed to access state from Jib. Is this branch's code needed for TR-Formal or Jib-Formal (e.g. for Prague demos)?

@janvrany
Copy link
Collaborator Author

Is this branch's code needed for TR-Formal or Jib-Formal (e.g. for Prague demos)?

No.

Okay, let it sleep then.

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.

2 participants