-
Notifications
You must be signed in to change notification settings - Fork 77
Open
Labels
topics: saw-core namesIssues related to URI-based saw-core namesIssues related to URI-based saw-core namestype: bugIssues reporting bugs or unexpected/unwanted behaviorIssues reporting bugs or unexpected/unwanted behaviorusabilityAn issue that impedes efficient understanding and useAn issue that impedes efficient understanding and use
Milestone
Description
Usually constants translated from Cryptol are eligible to be made uninterpreted with tactics like unint_z3. But it doesn't work if the constant is a cryptol primitive. For example:
sawscript> prove (unint_z3 ["complement"]) {{ \(x:[8]) y -> x == y ==> complement x == complement y }}
Stack trace:
"prove" (<stdin>:1:1-1:6):
"unint_z3" (<stdin>:1:8-1:16):
Could not resolve name: "complement"
The deeper problem is that the name "complement" is not registered under its proper name in saw-core, as other cryptol constants are. If we print the term, we can see that there is no trace of the original name:
sawscript> print_term {{ complement }}
[02:02:56.016] ecCompl
Metadata
Metadata
Assignees
Labels
topics: saw-core namesIssues related to URI-based saw-core namesIssues related to URI-based saw-core namestype: bugIssues reporting bugs or unexpected/unwanted behaviorIssues reporting bugs or unexpected/unwanted behaviorusabilityAn issue that impedes efficient understanding and useAn issue that impedes efficient understanding and use