It considers trees such as the below not to contain counterexamples when they clearly do.
location: I_push[1[int]] V[]
HYP (initial suffix): PIV: {}
SDT: []-+
[]-TRUE: s1
[]-TRUE: s2
[Leaf-]
SUL (initial suffix): PIV: {}
SDT: []-+
[]-(s1=c1)
| []-TRUE: s2
| [Leaf+]
+-(s1!=c1)
[]-TRUE: s2
[Leaf-]
The way the expression is constructed should be reviewed. In my mind, hasCounterexample is akin to asking whether the two SDT's are not equivalent.
It considers trees such as the below not to contain counterexamples when they clearly do.
location: I_push[1[int]] V[]
HYP (initial suffix): PIV: {}
SDT: []-+
[]-TRUE: s1
[]-TRUE: s2
[Leaf-]
SUL (initial suffix): PIV: {}
SDT: []-+
[]-(s1=c1)
| []-TRUE: s2
| [Leaf+]
+-(s1!=c1)
[]-TRUE: s2
[Leaf-]
The way the expression is constructed should be reviewed. In my mind, hasCounterexample is akin to asking whether the two SDT's are not equivalent.