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

[SMT] Add function application operation, function and uninterpreted sort types #6847

Merged
merged 1 commit into from Mar 22, 2024

Conversation

maerhart
Copy link
Member

Recursive functions are not (yet) supported and would require their own operations.

Copy link

@math-fehr math-fehr left a comment

Choose a reason for hiding this comment

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

Nice! I would just rename declare to declare-fun, to follow SMT-LIB.
Note also that having two separate functions might make some matching/lowerings more annoying, as we will need to check what is the result type of the declare-fun. But I'm not sure what is best, so I'm fine with keeping them merged.

Note that we need to be clear on one part of the semantics. Functions with no arguments do not exist in SMT-LIB. Or at least, they cannot be called, as they are equivalent to their non-function value type.

include/circt/Dialect/SMT/SMTOps.td Outdated Show resolved Hide resolved
include/circt/Dialect/SMT/SMTTypes.td Show resolved Hide resolved
include/circt/Dialect/SMT/SMTTypes.td Outdated Show resolved Hide resolved
include/circt/Dialect/SMT/SMTTypes.td Outdated Show resolved Hide resolved
lib/Dialect/SMT/SMTTypes.cpp Outdated Show resolved Hide resolved
lib/Dialect/SMT/SMTTypes.cpp Outdated Show resolved Hide resolved
test/Dialect/SMT/basic.mlir Outdated Show resolved Hide resolved
Base automatically changed from maerhart-smt-quantifiers to main March 22, 2024 15:56
@maerhart maerhart merged commit f8c7fae into main Mar 22, 2024
4 checks passed
@maerhart maerhart deleted the maerhart-smt-functions branch March 22, 2024 16:13
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