Replies: 3 comments 2 replies
-
|
ast.cpp: ast_manager::get_node_hash computes the hash of a quantifier without comparing qids. Comparison on quantifiers uses compare_nodes meta-data is ignored. |
Beta Was this translation helpful? Give feedback.
1 reply
-
|
I think the question is about semantics. It allows the quantifier identifier fields to be mutable. |
Beta Was this translation helpful? Give feedback.
0 replies
-
|
I pushed 6e53621 to have equality relation include qid. |
Beta Was this translation helpful? Give feedback.
1 reply
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
-
In the small example below, we declare two functions,
lemma1andlemma2, each of which provides the same quantified fact. The quantifiers, however, use differentqidfields. In the final assert, we expect the quantifier fromlemma2to be used. However, in the trace file that's produced, it appears thatuser_lemma1was instantiated instead (although it's possible we're misinterpreting the trace file), since thenew-matchentry points at an entry like[mk-quant] #32 user_lemma1 1 #27 #2.Interestingly, if we change the name of the quantified variable in
lemma2fromxtoy, then the trace showsuser_lemma2being instantiated as expected (i.e., thenew-matchpoints at an entry like[mk-quant] #35 user_lemma2 1 #27 #25). This made us wonder if quantifers are being hashed or otherwise deduplicated in a way that ignores theqidfield. If so, is that intended behavior (e.g., as an optimization), or is it inadvertent?Beta Was this translation helpful? Give feedback.
All reactions