(declare-rel Invariant (Bool Bool Bool Bool Bool Bool Bool Bool Bool Bool)) (declare-rel Goal (Bool Bool Bool Bool Bool Bool Bool Bool Bool Bool)) (declare-var A Bool) (declare-var B Bool) (declare-var C Bool) (declare-var D Bool) (declare-var E Bool) (declare-var F Bool) (declare-var G Bool) (declare-var H Bool) (declare-var I Bool) (declare-var J Bool) (declare-var K Bool) (declare-var L Bool) (declare-var M Bool) (declare-var N Bool) (declare-var O Bool) (declare-var P Bool) (declare-var Q Bool) (declare-var R Bool) (declare-var S Bool) (declare-var T Bool) (rule (=> (not (or J I H G F E D C B A)) (Invariant J I H G F E D C B A))) (rule (let ((a!1 (and (Invariant T S R Q P O N M L K) (=> (not (and true)) (not E)) (=> (not (and T)) (not D)) (=> (not (and S)) (not C)) (=> (not (and R)) (not B)) (=> (not (and Q)) (not A)) (= J (xor E T)) (= I (xor D S)) (= H (xor C R)) (= G (xor B Q)) (= F (xor A P)) (=> D (not E)) (=> C (not D)) (=> B (not C)) (=> A (not B)) ((_ at-most 3) J I H G F)))) (=> a!1 (Invariant J I H G F E D C B A)))) (rule (=> (and (Invariant J I H G F E D C B A) (not J) (not I) (not H) (not G) F) (Goal J I H G F E D C B A))) (query Goal)