Я предполагаю, что это связано с внутренним боксом логических значений для универсальных типов, которые могут содержать кортежи.В любом случае, вот простой обходной путь:
lemma test(x : (int, bool)) {
var (i, b) := x;
assert x == (x.0, true) || x == (x.0, false);
}
Rustan