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
-
In the small example below, we declare two functions,
lemma1
andlemma2
, each of which provides the same quantified fact. The quantifiers, however, use differentqid
fields. In the final assert, we expect the quantifier fromlemma2
to be used. However, in the trace file that's produced, it appears thatuser_lemma1
was instantiated instead (although it's possible we're misinterpreting the trace file), since thenew-match
entry points at an entry like[mk-quant] #32 user_lemma1 1 #27 #2
.Interestingly, if we change the name of the quantified variable in
lemma2
fromx
toy
, then the trace showsuser_lemma2
being instantiated as expected (i.e., thenew-match
points 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 theqid
field. If so, is that intended behavior (e.g., as an optimization), or is it inadvertent?Beta Was this translation helpful? Give feedback.
All reactions