diff --git a/p4_symbolic/symbolic/expected/basic.smt2 b/p4_symbolic/symbolic/expected/basic.smt2 index 670ef6d1..56d4bac1 100644 --- a/p4_symbolic/symbolic/expected/basic.smt2 +++ b/p4_symbolic/symbolic/expected/basic.smt2 @@ -5,49 +5,49 @@ (declare-fun ipv4.dstAddr () (_ BitVec 32)) (declare-fun ipv4.$valid$ () Bool) (assert - (let (($x125 (= standard_metadata.ingress_port (_ bv1 9)))) - (or (or false (= standard_metadata.ingress_port (_ bv0 9))) $x125))) + (let (($x129 (= standard_metadata.ingress_port (_ bv1 9)))) + (or (or false (= standard_metadata.ingress_port (_ bv0 9))) $x129))) (assert - (let (($x45 (= ipv4.dstAddr (_ bv168427520 32)))) - (let (($x46 (and true $x45))) - (let (($x61 (not $x46))) - (let (($x65 (and $x61 (not (and true (= ((_ extract 31 16) ipv4.dstAddr) ((_ extract 31 16) (_ bv168427520 32)))))))) - (let (($x69 (and $x65 (not (and true (= ((_ extract 31 16) ipv4.dstAddr) ((_ extract 31 16) (_ bv336855040 32)))))))) - (let (($x73 (and $x69 (not (and true (= ((_ extract 31 24) ipv4.dstAddr) ((_ extract 31 24) (_ bv167772160 32)))))))) - (let (($x42 (and true ipv4.$valid$))) - (let (($x59 (and true (= ((_ extract 31 24) ipv4.dstAddr) ((_ extract 31 24) (_ bv167772160 32)))))) - (let (($x71 (and (and $x42 $x69) $x59))) - (let ((?x83 (ite $x71 (_ bv1 9) (ite (and $x42 $x73) (_ bv511 9) standard_metadata.egress_spec)))) - (let (($x54 (and true (= ((_ extract 31 16) ipv4.dstAddr) ((_ extract 31 16) (_ bv336855040 32)))))) - (let (($x67 (and (and $x42 $x65) $x54))) - (let (($x50 (and true (= ((_ extract 31 16) ipv4.dstAddr) ((_ extract 31 16) (_ bv168427520 32)))))) - (let (($x63 (and (and $x42 $x61) $x50))) - (let (($x60 (and $x42 $x46))) - (let ((?x113 (ite $x60 (_ bv1 9) (ite $x63 (_ bv0 9) (ite $x67 (_ bv1 9) ?x83))))) - (let (($x41 (= ?x113 (_ bv511 9)))) - (or $x41 (or (or false (= ?x113 (_ bv0 9))) (= ?x113 (_ bv1 9)))))))))))))))))))))) + (let (($x49 (= ipv4.dstAddr (_ bv168427520 32)))) + (let (($x50 (and true $x49))) + (let (($x65 (not $x50))) + (let (($x69 (and $x65 (not (and true (= ((_ extract 31 16) ipv4.dstAddr) ((_ extract 31 16) (_ bv168427520 32)))))))) + (let (($x73 (and $x69 (not (and true (= ((_ extract 31 16) ipv4.dstAddr) ((_ extract 31 16) (_ bv336855040 32)))))))) + (let (($x77 (and $x73 (not (and true (= ((_ extract 31 24) ipv4.dstAddr) ((_ extract 31 24) (_ bv167772160 32)))))))) + (let (($x46 (and true ipv4.$valid$))) + (let (($x63 (and true (= ((_ extract 31 24) ipv4.dstAddr) ((_ extract 31 24) (_ bv167772160 32)))))) + (let (($x75 (and (and $x46 $x73) $x63))) + (let ((?x87 (ite $x75 (_ bv1 9) (ite (and $x46 $x77) (_ bv511 9) standard_metadata.egress_spec)))) + (let (($x58 (and true (= ((_ extract 31 16) ipv4.dstAddr) ((_ extract 31 16) (_ bv336855040 32)))))) + (let (($x71 (and (and $x46 $x69) $x58))) + (let (($x54 (and true (= ((_ extract 31 16) ipv4.dstAddr) ((_ extract 31 16) (_ bv168427520 32)))))) + (let (($x67 (and (and $x46 $x65) $x54))) + (let (($x64 (and $x46 $x50))) + (let ((?x117 (ite $x64 (_ bv1 9) (ite $x67 (_ bv0 9) (ite $x71 (_ bv1 9) ?x87))))) + (let (($x45 (= ?x117 (_ bv511 9)))) + (or $x45 (or (or false (= ?x117 (_ bv0 9))) (= ?x117 (_ bv1 9)))))))))))))))))))))) (assert - (let (($x59 (and true (= ((_ extract 31 24) ipv4.dstAddr) ((_ extract 31 24) (_ bv167772160 32)))))) - (let (($x42 (and true ipv4.$valid$))) - (let ((?x92 (ite (and $x42 (and true (= ((_ extract 31 16) ipv4.dstAddr) ((_ extract 31 16) (_ bv336855040 32))))) 3 (ite (and $x42 $x59) 2 (- 1))))) - (let ((?x102 (ite (and $x42 (and true (= ((_ extract 31 16) ipv4.dstAddr) ((_ extract 31 16) (_ bv168427520 32))))) 0 ?x92))) - (let (($x45 (= ipv4.dstAddr (_ bv168427520 32)))) - (let (($x46 (and true $x45))) - (let (($x60 (and $x42 $x46))) - (let ((?x120 (ite ipv4.$valid$ (ite $x60 1 ?x102) (- 1)))) - (let (($x119 (ite ipv4.$valid$ $x42 false))) - (let (($x61 (not $x46))) - (let (($x65 (and $x61 (not (and true (= ((_ extract 31 16) ipv4.dstAddr) ((_ extract 31 16) (_ bv168427520 32)))))))) - (let (($x69 (and $x65 (not (and true (= ((_ extract 31 16) ipv4.dstAddr) ((_ extract 31 16) (_ bv336855040 32)))))))) - (let ((?x77 (ite (and $x42 (and $x69 (not $x59))) (_ bv511 9) standard_metadata.egress_spec))) - (let (($x71 (and (and $x42 $x69) $x59))) - (let (($x54 (and true (= ((_ extract 31 16) ipv4.dstAddr) ((_ extract 31 16) (_ bv336855040 32)))))) - (let (($x67 (and (and $x42 $x65) $x54))) - (let (($x50 (and true (= ((_ extract 31 16) ipv4.dstAddr) ((_ extract 31 16) (_ bv168427520 32)))))) - (let (($x63 (and (and $x42 $x61) $x50))) - (let ((?x113 (ite $x60 (_ bv1 9) (ite $x63 (_ bv0 9) (ite $x67 (_ bv1 9) (ite $x71 (_ bv1 9) ?x77)))))) - (let (($x41 (= ?x113 (_ bv511 9)))) - (and (and (not $x41) $x119) (= ?x120 (- 1)))))))))))))))))))))))) + (let (($x63 (and true (= ((_ extract 31 24) ipv4.dstAddr) ((_ extract 31 24) (_ bv167772160 32)))))) + (let (($x46 (and true ipv4.$valid$))) + (let ((?x96 (ite (and $x46 (and true (= ((_ extract 31 16) ipv4.dstAddr) ((_ extract 31 16) (_ bv336855040 32))))) 3 (ite (and $x46 $x63) 2 (- 1))))) + (let ((?x106 (ite (and $x46 (and true (= ((_ extract 31 16) ipv4.dstAddr) ((_ extract 31 16) (_ bv168427520 32))))) 0 ?x96))) + (let (($x49 (= ipv4.dstAddr (_ bv168427520 32)))) + (let (($x50 (and true $x49))) + (let (($x64 (and $x46 $x50))) + (let ((?x124 (ite ipv4.$valid$ (ite $x64 1 ?x106) (- 1)))) + (let (($x123 (ite ipv4.$valid$ $x46 false))) + (let (($x65 (not $x50))) + (let (($x69 (and $x65 (not (and true (= ((_ extract 31 16) ipv4.dstAddr) ((_ extract 31 16) (_ bv168427520 32)))))))) + (let (($x73 (and $x69 (not (and true (= ((_ extract 31 16) ipv4.dstAddr) ((_ extract 31 16) (_ bv336855040 32)))))))) + (let ((?x81 (ite (and $x46 (and $x73 (not $x63))) (_ bv511 9) standard_metadata.egress_spec))) + (let (($x75 (and (and $x46 $x73) $x63))) + (let (($x58 (and true (= ((_ extract 31 16) ipv4.dstAddr) ((_ extract 31 16) (_ bv336855040 32)))))) + (let (($x71 (and (and $x46 $x69) $x58))) + (let (($x54 (and true (= ((_ extract 31 16) ipv4.dstAddr) ((_ extract 31 16) (_ bv168427520 32)))))) + (let (($x67 (and (and $x46 $x65) $x54))) + (let ((?x117 (ite $x64 (_ bv1 9) (ite $x67 (_ bv0 9) (ite $x71 (_ bv1 9) (ite $x75 (_ bv1 9) ?x81)))))) + (let (($x45 (= ?x117 (_ bv511 9)))) + (and (and (not $x45) $x123) (= ?x124 (- 1)))))))))))))))))))))))) (check-sat) ; @@ -57,50 +57,50 @@ (declare-fun ipv4.dstAddr () (_ BitVec 32)) (declare-fun ipv4.$valid$ () Bool) (assert - (let (($x125 (= standard_metadata.ingress_port (_ bv1 9)))) - (or (or false (= standard_metadata.ingress_port (_ bv0 9))) $x125))) + (let (($x129 (= standard_metadata.ingress_port (_ bv1 9)))) + (or (or false (= standard_metadata.ingress_port (_ bv0 9))) $x129))) (assert - (let (($x45 (= ipv4.dstAddr (_ bv168427520 32)))) - (let (($x46 (and true $x45))) - (let (($x61 (not $x46))) - (let (($x65 (and $x61 (not (and true (= ((_ extract 31 16) ipv4.dstAddr) ((_ extract 31 16) (_ bv168427520 32)))))))) - (let (($x69 (and $x65 (not (and true (= ((_ extract 31 16) ipv4.dstAddr) ((_ extract 31 16) (_ bv336855040 32)))))))) - (let (($x73 (and $x69 (not (and true (= ((_ extract 31 24) ipv4.dstAddr) ((_ extract 31 24) (_ bv167772160 32)))))))) - (let (($x42 (and true ipv4.$valid$))) - (let (($x59 (and true (= ((_ extract 31 24) ipv4.dstAddr) ((_ extract 31 24) (_ bv167772160 32)))))) - (let (($x71 (and (and $x42 $x69) $x59))) - (let ((?x83 (ite $x71 (_ bv1 9) (ite (and $x42 $x73) (_ bv511 9) standard_metadata.egress_spec)))) - (let (($x54 (and true (= ((_ extract 31 16) ipv4.dstAddr) ((_ extract 31 16) (_ bv336855040 32)))))) - (let (($x67 (and (and $x42 $x65) $x54))) - (let (($x50 (and true (= ((_ extract 31 16) ipv4.dstAddr) ((_ extract 31 16) (_ bv168427520 32)))))) - (let (($x63 (and (and $x42 $x61) $x50))) - (let (($x60 (and $x42 $x46))) - (let ((?x113 (ite $x60 (_ bv1 9) (ite $x63 (_ bv0 9) (ite $x67 (_ bv1 9) ?x83))))) - (let (($x41 (= ?x113 (_ bv511 9)))) - (or $x41 (or (or false (= ?x113 (_ bv0 9))) (= ?x113 (_ bv1 9)))))))))))))))))))))) + (let (($x49 (= ipv4.dstAddr (_ bv168427520 32)))) + (let (($x50 (and true $x49))) + (let (($x65 (not $x50))) + (let (($x69 (and $x65 (not (and true (= ((_ extract 31 16) ipv4.dstAddr) ((_ extract 31 16) (_ bv168427520 32)))))))) + (let (($x73 (and $x69 (not (and true (= ((_ extract 31 16) ipv4.dstAddr) ((_ extract 31 16) (_ bv336855040 32)))))))) + (let (($x77 (and $x73 (not (and true (= ((_ extract 31 24) ipv4.dstAddr) ((_ extract 31 24) (_ bv167772160 32)))))))) + (let (($x46 (and true ipv4.$valid$))) + (let (($x63 (and true (= ((_ extract 31 24) ipv4.dstAddr) ((_ extract 31 24) (_ bv167772160 32)))))) + (let (($x75 (and (and $x46 $x73) $x63))) + (let ((?x87 (ite $x75 (_ bv1 9) (ite (and $x46 $x77) (_ bv511 9) standard_metadata.egress_spec)))) + (let (($x58 (and true (= ((_ extract 31 16) ipv4.dstAddr) ((_ extract 31 16) (_ bv336855040 32)))))) + (let (($x71 (and (and $x46 $x69) $x58))) + (let (($x54 (and true (= ((_ extract 31 16) ipv4.dstAddr) ((_ extract 31 16) (_ bv168427520 32)))))) + (let (($x67 (and (and $x46 $x65) $x54))) + (let (($x64 (and $x46 $x50))) + (let ((?x117 (ite $x64 (_ bv1 9) (ite $x67 (_ bv0 9) (ite $x71 (_ bv1 9) ?x87))))) + (let (($x45 (= ?x117 (_ bv511 9)))) + (or $x45 (or (or false (= ?x117 (_ bv0 9))) (= ?x117 (_ bv1 9)))))))))))))))))))))) (assert - (let (($x59 (and true (= ((_ extract 31 24) ipv4.dstAddr) ((_ extract 31 24) (_ bv167772160 32)))))) - (let (($x42 (and true ipv4.$valid$))) - (let ((?x92 (ite (and $x42 (and true (= ((_ extract 31 16) ipv4.dstAddr) ((_ extract 31 16) (_ bv336855040 32))))) 3 (ite (and $x42 $x59) 2 (- 1))))) - (let ((?x102 (ite (and $x42 (and true (= ((_ extract 31 16) ipv4.dstAddr) ((_ extract 31 16) (_ bv168427520 32))))) 0 ?x92))) - (let (($x45 (= ipv4.dstAddr (_ bv168427520 32)))) - (let (($x46 (and true $x45))) - (let (($x60 (and $x42 $x46))) - (let ((?x120 (ite ipv4.$valid$ (ite $x60 1 ?x102) (- 1)))) - (let (($x119 (ite ipv4.$valid$ $x42 false))) - (let (($x61 (not $x46))) - (let (($x65 (and $x61 (not (and true (= ((_ extract 31 16) ipv4.dstAddr) ((_ extract 31 16) (_ bv168427520 32)))))))) - (let (($x69 (and $x65 (not (and true (= ((_ extract 31 16) ipv4.dstAddr) ((_ extract 31 16) (_ bv336855040 32)))))))) - (let ((?x77 (ite (and $x42 (and $x69 (not $x59))) (_ bv511 9) standard_metadata.egress_spec))) - (let (($x71 (and (and $x42 $x69) $x59))) - (let (($x54 (and true (= ((_ extract 31 16) ipv4.dstAddr) ((_ extract 31 16) (_ bv336855040 32)))))) - (let (($x67 (and (and $x42 $x65) $x54))) - (let (($x50 (and true (= ((_ extract 31 16) ipv4.dstAddr) ((_ extract 31 16) (_ bv168427520 32)))))) - (let (($x63 (and (and $x42 $x61) $x50))) - (let ((?x113 (ite $x60 (_ bv1 9) (ite $x63 (_ bv0 9) (ite $x67 (_ bv1 9) (ite $x71 (_ bv1 9) ?x77)))))) - (let (($x41 (= ?x113 (_ bv511 9)))) - (let (($x246 (and (not $x41) $x119))) - (and $x246 (= ?x120 0)))))))))))))))))))))))) + (let (($x63 (and true (= ((_ extract 31 24) ipv4.dstAddr) ((_ extract 31 24) (_ bv167772160 32)))))) + (let (($x46 (and true ipv4.$valid$))) + (let ((?x96 (ite (and $x46 (and true (= ((_ extract 31 16) ipv4.dstAddr) ((_ extract 31 16) (_ bv336855040 32))))) 3 (ite (and $x46 $x63) 2 (- 1))))) + (let ((?x106 (ite (and $x46 (and true (= ((_ extract 31 16) ipv4.dstAddr) ((_ extract 31 16) (_ bv168427520 32))))) 0 ?x96))) + (let (($x49 (= ipv4.dstAddr (_ bv168427520 32)))) + (let (($x50 (and true $x49))) + (let (($x64 (and $x46 $x50))) + (let ((?x124 (ite ipv4.$valid$ (ite $x64 1 ?x106) (- 1)))) + (let (($x123 (ite ipv4.$valid$ $x46 false))) + (let (($x65 (not $x50))) + (let (($x69 (and $x65 (not (and true (= ((_ extract 31 16) ipv4.dstAddr) ((_ extract 31 16) (_ bv168427520 32)))))))) + (let (($x73 (and $x69 (not (and true (= ((_ extract 31 16) ipv4.dstAddr) ((_ extract 31 16) (_ bv336855040 32)))))))) + (let ((?x81 (ite (and $x46 (and $x73 (not $x63))) (_ bv511 9) standard_metadata.egress_spec))) + (let (($x75 (and (and $x46 $x73) $x63))) + (let (($x58 (and true (= ((_ extract 31 16) ipv4.dstAddr) ((_ extract 31 16) (_ bv336855040 32)))))) + (let (($x71 (and (and $x46 $x69) $x58))) + (let (($x54 (and true (= ((_ extract 31 16) ipv4.dstAddr) ((_ extract 31 16) (_ bv168427520 32)))))) + (let (($x67 (and (and $x46 $x65) $x54))) + (let ((?x117 (ite $x64 (_ bv1 9) (ite $x67 (_ bv0 9) (ite $x71 (_ bv1 9) (ite $x75 (_ bv1 9) ?x81)))))) + (let (($x45 (= ?x117 (_ bv511 9)))) + (let (($x250 (and (not $x45) $x123))) + (and $x250 (= ?x124 0)))))))))))))))))))))))) (check-sat) ; @@ -110,49 +110,49 @@ (declare-fun ipv4.dstAddr () (_ BitVec 32)) (declare-fun ipv4.$valid$ () Bool) (assert - (let (($x125 (= standard_metadata.ingress_port (_ bv1 9)))) - (or (or false (= standard_metadata.ingress_port (_ bv0 9))) $x125))) + (let (($x129 (= standard_metadata.ingress_port (_ bv1 9)))) + (or (or false (= standard_metadata.ingress_port (_ bv0 9))) $x129))) (assert - (let (($x45 (= ipv4.dstAddr (_ bv168427520 32)))) - (let (($x46 (and true $x45))) - (let (($x61 (not $x46))) - (let (($x65 (and $x61 (not (and true (= ((_ extract 31 16) ipv4.dstAddr) ((_ extract 31 16) (_ bv168427520 32)))))))) - (let (($x69 (and $x65 (not (and true (= ((_ extract 31 16) ipv4.dstAddr) ((_ extract 31 16) (_ bv336855040 32)))))))) - (let (($x73 (and $x69 (not (and true (= ((_ extract 31 24) ipv4.dstAddr) ((_ extract 31 24) (_ bv167772160 32)))))))) - (let (($x42 (and true ipv4.$valid$))) - (let (($x59 (and true (= ((_ extract 31 24) ipv4.dstAddr) ((_ extract 31 24) (_ bv167772160 32)))))) - (let (($x71 (and (and $x42 $x69) $x59))) - (let ((?x83 (ite $x71 (_ bv1 9) (ite (and $x42 $x73) (_ bv511 9) standard_metadata.egress_spec)))) - (let (($x54 (and true (= ((_ extract 31 16) ipv4.dstAddr) ((_ extract 31 16) (_ bv336855040 32)))))) - (let (($x67 (and (and $x42 $x65) $x54))) - (let (($x50 (and true (= ((_ extract 31 16) ipv4.dstAddr) ((_ extract 31 16) (_ bv168427520 32)))))) - (let (($x63 (and (and $x42 $x61) $x50))) - (let (($x60 (and $x42 $x46))) - (let ((?x113 (ite $x60 (_ bv1 9) (ite $x63 (_ bv0 9) (ite $x67 (_ bv1 9) ?x83))))) - (let (($x41 (= ?x113 (_ bv511 9)))) - (or $x41 (or (or false (= ?x113 (_ bv0 9))) (= ?x113 (_ bv1 9)))))))))))))))))))))) + (let (($x49 (= ipv4.dstAddr (_ bv168427520 32)))) + (let (($x50 (and true $x49))) + (let (($x65 (not $x50))) + (let (($x69 (and $x65 (not (and true (= ((_ extract 31 16) ipv4.dstAddr) ((_ extract 31 16) (_ bv168427520 32)))))))) + (let (($x73 (and $x69 (not (and true (= ((_ extract 31 16) ipv4.dstAddr) ((_ extract 31 16) (_ bv336855040 32)))))))) + (let (($x77 (and $x73 (not (and true (= ((_ extract 31 24) ipv4.dstAddr) ((_ extract 31 24) (_ bv167772160 32)))))))) + (let (($x46 (and true ipv4.$valid$))) + (let (($x63 (and true (= ((_ extract 31 24) ipv4.dstAddr) ((_ extract 31 24) (_ bv167772160 32)))))) + (let (($x75 (and (and $x46 $x73) $x63))) + (let ((?x87 (ite $x75 (_ bv1 9) (ite (and $x46 $x77) (_ bv511 9) standard_metadata.egress_spec)))) + (let (($x58 (and true (= ((_ extract 31 16) ipv4.dstAddr) ((_ extract 31 16) (_ bv336855040 32)))))) + (let (($x71 (and (and $x46 $x69) $x58))) + (let (($x54 (and true (= ((_ extract 31 16) ipv4.dstAddr) ((_ extract 31 16) (_ bv168427520 32)))))) + (let (($x67 (and (and $x46 $x65) $x54))) + (let (($x64 (and $x46 $x50))) + (let ((?x117 (ite $x64 (_ bv1 9) (ite $x67 (_ bv0 9) (ite $x71 (_ bv1 9) ?x87))))) + (let (($x45 (= ?x117 (_ bv511 9)))) + (or $x45 (or (or false (= ?x117 (_ bv0 9))) (= ?x117 (_ bv1 9)))))))))))))))))))))) (assert - (let (($x59 (and true (= ((_ extract 31 24) ipv4.dstAddr) ((_ extract 31 24) (_ bv167772160 32)))))) - (let (($x42 (and true ipv4.$valid$))) - (let ((?x92 (ite (and $x42 (and true (= ((_ extract 31 16) ipv4.dstAddr) ((_ extract 31 16) (_ bv336855040 32))))) 3 (ite (and $x42 $x59) 2 (- 1))))) - (let ((?x102 (ite (and $x42 (and true (= ((_ extract 31 16) ipv4.dstAddr) ((_ extract 31 16) (_ bv168427520 32))))) 0 ?x92))) - (let (($x45 (= ipv4.dstAddr (_ bv168427520 32)))) - (let (($x46 (and true $x45))) - (let (($x60 (and $x42 $x46))) - (let ((?x120 (ite ipv4.$valid$ (ite $x60 1 ?x102) (- 1)))) - (let (($x119 (ite ipv4.$valid$ $x42 false))) - (let (($x61 (not $x46))) - (let (($x65 (and $x61 (not (and true (= ((_ extract 31 16) ipv4.dstAddr) ((_ extract 31 16) (_ bv168427520 32)))))))) - (let (($x69 (and $x65 (not (and true (= ((_ extract 31 16) ipv4.dstAddr) ((_ extract 31 16) (_ bv336855040 32)))))))) - (let ((?x77 (ite (and $x42 (and $x69 (not $x59))) (_ bv511 9) standard_metadata.egress_spec))) - (let (($x71 (and (and $x42 $x69) $x59))) - (let (($x54 (and true (= ((_ extract 31 16) ipv4.dstAddr) ((_ extract 31 16) (_ bv336855040 32)))))) - (let (($x67 (and (and $x42 $x65) $x54))) - (let (($x50 (and true (= ((_ extract 31 16) ipv4.dstAddr) ((_ extract 31 16) (_ bv168427520 32)))))) - (let (($x63 (and (and $x42 $x61) $x50))) - (let ((?x113 (ite $x60 (_ bv1 9) (ite $x63 (_ bv0 9) (ite $x67 (_ bv1 9) (ite $x71 (_ bv1 9) ?x77)))))) - (let (($x41 (= ?x113 (_ bv511 9)))) - (and (and (not $x41) $x119) (= ?x120 1))))))))))))))))))))))) + (let (($x63 (and true (= ((_ extract 31 24) ipv4.dstAddr) ((_ extract 31 24) (_ bv167772160 32)))))) + (let (($x46 (and true ipv4.$valid$))) + (let ((?x96 (ite (and $x46 (and true (= ((_ extract 31 16) ipv4.dstAddr) ((_ extract 31 16) (_ bv336855040 32))))) 3 (ite (and $x46 $x63) 2 (- 1))))) + (let ((?x106 (ite (and $x46 (and true (= ((_ extract 31 16) ipv4.dstAddr) ((_ extract 31 16) (_ bv168427520 32))))) 0 ?x96))) + (let (($x49 (= ipv4.dstAddr (_ bv168427520 32)))) + (let (($x50 (and true $x49))) + (let (($x64 (and $x46 $x50))) + (let ((?x124 (ite ipv4.$valid$ (ite $x64 1 ?x106) (- 1)))) + (let (($x123 (ite ipv4.$valid$ $x46 false))) + (let (($x65 (not $x50))) + (let (($x69 (and $x65 (not (and true (= ((_ extract 31 16) ipv4.dstAddr) ((_ extract 31 16) (_ bv168427520 32)))))))) + (let (($x73 (and $x69 (not (and true (= ((_ extract 31 16) ipv4.dstAddr) ((_ extract 31 16) (_ bv336855040 32)))))))) + (let ((?x81 (ite (and $x46 (and $x73 (not $x63))) (_ bv511 9) standard_metadata.egress_spec))) + (let (($x75 (and (and $x46 $x73) $x63))) + (let (($x58 (and true (= ((_ extract 31 16) ipv4.dstAddr) ((_ extract 31 16) (_ bv336855040 32)))))) + (let (($x71 (and (and $x46 $x69) $x58))) + (let (($x54 (and true (= ((_ extract 31 16) ipv4.dstAddr) ((_ extract 31 16) (_ bv168427520 32)))))) + (let (($x67 (and (and $x46 $x65) $x54))) + (let ((?x117 (ite $x64 (_ bv1 9) (ite $x67 (_ bv0 9) (ite $x71 (_ bv1 9) (ite $x75 (_ bv1 9) ?x81)))))) + (let (($x45 (= ?x117 (_ bv511 9)))) + (and (and (not $x45) $x123) (= ?x124 1))))))))))))))))))))))) (check-sat) ; @@ -162,49 +162,49 @@ (declare-fun ipv4.dstAddr () (_ BitVec 32)) (declare-fun ipv4.$valid$ () Bool) (assert - (let (($x125 (= standard_metadata.ingress_port (_ bv1 9)))) - (or (or false (= standard_metadata.ingress_port (_ bv0 9))) $x125))) + (let (($x129 (= standard_metadata.ingress_port (_ bv1 9)))) + (or (or false (= standard_metadata.ingress_port (_ bv0 9))) $x129))) (assert - (let (($x45 (= ipv4.dstAddr (_ bv168427520 32)))) - (let (($x46 (and true $x45))) - (let (($x61 (not $x46))) - (let (($x65 (and $x61 (not (and true (= ((_ extract 31 16) ipv4.dstAddr) ((_ extract 31 16) (_ bv168427520 32)))))))) - (let (($x69 (and $x65 (not (and true (= ((_ extract 31 16) ipv4.dstAddr) ((_ extract 31 16) (_ bv336855040 32)))))))) - (let (($x73 (and $x69 (not (and true (= ((_ extract 31 24) ipv4.dstAddr) ((_ extract 31 24) (_ bv167772160 32)))))))) - (let (($x42 (and true ipv4.$valid$))) - (let (($x59 (and true (= ((_ extract 31 24) ipv4.dstAddr) ((_ extract 31 24) (_ bv167772160 32)))))) - (let (($x71 (and (and $x42 $x69) $x59))) - (let ((?x83 (ite $x71 (_ bv1 9) (ite (and $x42 $x73) (_ bv511 9) standard_metadata.egress_spec)))) - (let (($x54 (and true (= ((_ extract 31 16) ipv4.dstAddr) ((_ extract 31 16) (_ bv336855040 32)))))) - (let (($x67 (and (and $x42 $x65) $x54))) - (let (($x50 (and true (= ((_ extract 31 16) ipv4.dstAddr) ((_ extract 31 16) (_ bv168427520 32)))))) - (let (($x63 (and (and $x42 $x61) $x50))) - (let (($x60 (and $x42 $x46))) - (let ((?x113 (ite $x60 (_ bv1 9) (ite $x63 (_ bv0 9) (ite $x67 (_ bv1 9) ?x83))))) - (let (($x41 (= ?x113 (_ bv511 9)))) - (or $x41 (or (or false (= ?x113 (_ bv0 9))) (= ?x113 (_ bv1 9)))))))))))))))))))))) + (let (($x49 (= ipv4.dstAddr (_ bv168427520 32)))) + (let (($x50 (and true $x49))) + (let (($x65 (not $x50))) + (let (($x69 (and $x65 (not (and true (= ((_ extract 31 16) ipv4.dstAddr) ((_ extract 31 16) (_ bv168427520 32)))))))) + (let (($x73 (and $x69 (not (and true (= ((_ extract 31 16) ipv4.dstAddr) ((_ extract 31 16) (_ bv336855040 32)))))))) + (let (($x77 (and $x73 (not (and true (= ((_ extract 31 24) ipv4.dstAddr) ((_ extract 31 24) (_ bv167772160 32)))))))) + (let (($x46 (and true ipv4.$valid$))) + (let (($x63 (and true (= ((_ extract 31 24) ipv4.dstAddr) ((_ extract 31 24) (_ bv167772160 32)))))) + (let (($x75 (and (and $x46 $x73) $x63))) + (let ((?x87 (ite $x75 (_ bv1 9) (ite (and $x46 $x77) (_ bv511 9) standard_metadata.egress_spec)))) + (let (($x58 (and true (= ((_ extract 31 16) ipv4.dstAddr) ((_ extract 31 16) (_ bv336855040 32)))))) + (let (($x71 (and (and $x46 $x69) $x58))) + (let (($x54 (and true (= ((_ extract 31 16) ipv4.dstAddr) ((_ extract 31 16) (_ bv168427520 32)))))) + (let (($x67 (and (and $x46 $x65) $x54))) + (let (($x64 (and $x46 $x50))) + (let ((?x117 (ite $x64 (_ bv1 9) (ite $x67 (_ bv0 9) (ite $x71 (_ bv1 9) ?x87))))) + (let (($x45 (= ?x117 (_ bv511 9)))) + (or $x45 (or (or false (= ?x117 (_ bv0 9))) (= ?x117 (_ bv1 9)))))))))))))))))))))) (assert - (let (($x59 (and true (= ((_ extract 31 24) ipv4.dstAddr) ((_ extract 31 24) (_ bv167772160 32)))))) - (let (($x42 (and true ipv4.$valid$))) - (let ((?x92 (ite (and $x42 (and true (= ((_ extract 31 16) ipv4.dstAddr) ((_ extract 31 16) (_ bv336855040 32))))) 3 (ite (and $x42 $x59) 2 (- 1))))) - (let ((?x102 (ite (and $x42 (and true (= ((_ extract 31 16) ipv4.dstAddr) ((_ extract 31 16) (_ bv168427520 32))))) 0 ?x92))) - (let (($x45 (= ipv4.dstAddr (_ bv168427520 32)))) - (let (($x46 (and true $x45))) - (let (($x60 (and $x42 $x46))) - (let ((?x120 (ite ipv4.$valid$ (ite $x60 1 ?x102) (- 1)))) - (let (($x119 (ite ipv4.$valid$ $x42 false))) - (let (($x61 (not $x46))) - (let (($x65 (and $x61 (not (and true (= ((_ extract 31 16) ipv4.dstAddr) ((_ extract 31 16) (_ bv168427520 32)))))))) - (let (($x69 (and $x65 (not (and true (= ((_ extract 31 16) ipv4.dstAddr) ((_ extract 31 16) (_ bv336855040 32)))))))) - (let ((?x77 (ite (and $x42 (and $x69 (not $x59))) (_ bv511 9) standard_metadata.egress_spec))) - (let (($x71 (and (and $x42 $x69) $x59))) - (let (($x54 (and true (= ((_ extract 31 16) ipv4.dstAddr) ((_ extract 31 16) (_ bv336855040 32)))))) - (let (($x67 (and (and $x42 $x65) $x54))) - (let (($x50 (and true (= ((_ extract 31 16) ipv4.dstAddr) ((_ extract 31 16) (_ bv168427520 32)))))) - (let (($x63 (and (and $x42 $x61) $x50))) - (let ((?x113 (ite $x60 (_ bv1 9) (ite $x63 (_ bv0 9) (ite $x67 (_ bv1 9) (ite $x71 (_ bv1 9) ?x77)))))) - (let (($x41 (= ?x113 (_ bv511 9)))) - (and (and (not $x41) $x119) (= ?x120 2))))))))))))))))))))))) + (let (($x63 (and true (= ((_ extract 31 24) ipv4.dstAddr) ((_ extract 31 24) (_ bv167772160 32)))))) + (let (($x46 (and true ipv4.$valid$))) + (let ((?x96 (ite (and $x46 (and true (= ((_ extract 31 16) ipv4.dstAddr) ((_ extract 31 16) (_ bv336855040 32))))) 3 (ite (and $x46 $x63) 2 (- 1))))) + (let ((?x106 (ite (and $x46 (and true (= ((_ extract 31 16) ipv4.dstAddr) ((_ extract 31 16) (_ bv168427520 32))))) 0 ?x96))) + (let (($x49 (= ipv4.dstAddr (_ bv168427520 32)))) + (let (($x50 (and true $x49))) + (let (($x64 (and $x46 $x50))) + (let ((?x124 (ite ipv4.$valid$ (ite $x64 1 ?x106) (- 1)))) + (let (($x123 (ite ipv4.$valid$ $x46 false))) + (let (($x65 (not $x50))) + (let (($x69 (and $x65 (not (and true (= ((_ extract 31 16) ipv4.dstAddr) ((_ extract 31 16) (_ bv168427520 32)))))))) + (let (($x73 (and $x69 (not (and true (= ((_ extract 31 16) ipv4.dstAddr) ((_ extract 31 16) (_ bv336855040 32)))))))) + (let ((?x81 (ite (and $x46 (and $x73 (not $x63))) (_ bv511 9) standard_metadata.egress_spec))) + (let (($x75 (and (and $x46 $x73) $x63))) + (let (($x58 (and true (= ((_ extract 31 16) ipv4.dstAddr) ((_ extract 31 16) (_ bv336855040 32)))))) + (let (($x71 (and (and $x46 $x69) $x58))) + (let (($x54 (and true (= ((_ extract 31 16) ipv4.dstAddr) ((_ extract 31 16) (_ bv168427520 32)))))) + (let (($x67 (and (and $x46 $x65) $x54))) + (let ((?x117 (ite $x64 (_ bv1 9) (ite $x67 (_ bv0 9) (ite $x71 (_ bv1 9) (ite $x75 (_ bv1 9) ?x81)))))) + (let (($x45 (= ?x117 (_ bv511 9)))) + (and (and (not $x45) $x123) (= ?x124 2))))))))))))))))))))))) (check-sat) ; @@ -214,48 +214,48 @@ (declare-fun ipv4.dstAddr () (_ BitVec 32)) (declare-fun ipv4.$valid$ () Bool) (assert - (let (($x125 (= standard_metadata.ingress_port (_ bv1 9)))) - (or (or false (= standard_metadata.ingress_port (_ bv0 9))) $x125))) + (let (($x129 (= standard_metadata.ingress_port (_ bv1 9)))) + (or (or false (= standard_metadata.ingress_port (_ bv0 9))) $x129))) (assert - (let (($x45 (= ipv4.dstAddr (_ bv168427520 32)))) - (let (($x46 (and true $x45))) - (let (($x61 (not $x46))) - (let (($x65 (and $x61 (not (and true (= ((_ extract 31 16) ipv4.dstAddr) ((_ extract 31 16) (_ bv168427520 32)))))))) - (let (($x69 (and $x65 (not (and true (= ((_ extract 31 16) ipv4.dstAddr) ((_ extract 31 16) (_ bv336855040 32)))))))) - (let (($x73 (and $x69 (not (and true (= ((_ extract 31 24) ipv4.dstAddr) ((_ extract 31 24) (_ bv167772160 32)))))))) - (let (($x42 (and true ipv4.$valid$))) - (let (($x59 (and true (= ((_ extract 31 24) ipv4.dstAddr) ((_ extract 31 24) (_ bv167772160 32)))))) - (let (($x71 (and (and $x42 $x69) $x59))) - (let ((?x83 (ite $x71 (_ bv1 9) (ite (and $x42 $x73) (_ bv511 9) standard_metadata.egress_spec)))) - (let (($x54 (and true (= ((_ extract 31 16) ipv4.dstAddr) ((_ extract 31 16) (_ bv336855040 32)))))) - (let (($x67 (and (and $x42 $x65) $x54))) - (let (($x50 (and true (= ((_ extract 31 16) ipv4.dstAddr) ((_ extract 31 16) (_ bv168427520 32)))))) - (let (($x63 (and (and $x42 $x61) $x50))) - (let (($x60 (and $x42 $x46))) - (let ((?x113 (ite $x60 (_ bv1 9) (ite $x63 (_ bv0 9) (ite $x67 (_ bv1 9) ?x83))))) - (let (($x41 (= ?x113 (_ bv511 9)))) - (or $x41 (or (or false (= ?x113 (_ bv0 9))) (= ?x113 (_ bv1 9)))))))))))))))))))))) + (let (($x49 (= ipv4.dstAddr (_ bv168427520 32)))) + (let (($x50 (and true $x49))) + (let (($x65 (not $x50))) + (let (($x69 (and $x65 (not (and true (= ((_ extract 31 16) ipv4.dstAddr) ((_ extract 31 16) (_ bv168427520 32)))))))) + (let (($x73 (and $x69 (not (and true (= ((_ extract 31 16) ipv4.dstAddr) ((_ extract 31 16) (_ bv336855040 32)))))))) + (let (($x77 (and $x73 (not (and true (= ((_ extract 31 24) ipv4.dstAddr) ((_ extract 31 24) (_ bv167772160 32)))))))) + (let (($x46 (and true ipv4.$valid$))) + (let (($x63 (and true (= ((_ extract 31 24) ipv4.dstAddr) ((_ extract 31 24) (_ bv167772160 32)))))) + (let (($x75 (and (and $x46 $x73) $x63))) + (let ((?x87 (ite $x75 (_ bv1 9) (ite (and $x46 $x77) (_ bv511 9) standard_metadata.egress_spec)))) + (let (($x58 (and true (= ((_ extract 31 16) ipv4.dstAddr) ((_ extract 31 16) (_ bv336855040 32)))))) + (let (($x71 (and (and $x46 $x69) $x58))) + (let (($x54 (and true (= ((_ extract 31 16) ipv4.dstAddr) ((_ extract 31 16) (_ bv168427520 32)))))) + (let (($x67 (and (and $x46 $x65) $x54))) + (let (($x64 (and $x46 $x50))) + (let ((?x117 (ite $x64 (_ bv1 9) (ite $x67 (_ bv0 9) (ite $x71 (_ bv1 9) ?x87))))) + (let (($x45 (= ?x117 (_ bv511 9)))) + (or $x45 (or (or false (= ?x117 (_ bv0 9))) (= ?x117 (_ bv1 9)))))))))))))))))))))) (assert - (let (($x59 (and true (= ((_ extract 31 24) ipv4.dstAddr) ((_ extract 31 24) (_ bv167772160 32)))))) - (let (($x42 (and true ipv4.$valid$))) - (let ((?x92 (ite (and $x42 (and true (= ((_ extract 31 16) ipv4.dstAddr) ((_ extract 31 16) (_ bv336855040 32))))) 3 (ite (and $x42 $x59) 2 (- 1))))) - (let ((?x102 (ite (and $x42 (and true (= ((_ extract 31 16) ipv4.dstAddr) ((_ extract 31 16) (_ bv168427520 32))))) 0 ?x92))) - (let (($x45 (= ipv4.dstAddr (_ bv168427520 32)))) - (let (($x46 (and true $x45))) - (let (($x60 (and $x42 $x46))) - (let ((?x120 (ite ipv4.$valid$ (ite $x60 1 ?x102) (- 1)))) - (let (($x119 (ite ipv4.$valid$ $x42 false))) - (let (($x61 (not $x46))) - (let (($x65 (and $x61 (not (and true (= ((_ extract 31 16) ipv4.dstAddr) ((_ extract 31 16) (_ bv168427520 32)))))))) - (let (($x69 (and $x65 (not (and true (= ((_ extract 31 16) ipv4.dstAddr) ((_ extract 31 16) (_ bv336855040 32)))))))) - (let ((?x77 (ite (and $x42 (and $x69 (not $x59))) (_ bv511 9) standard_metadata.egress_spec))) - (let (($x71 (and (and $x42 $x69) $x59))) - (let (($x54 (and true (= ((_ extract 31 16) ipv4.dstAddr) ((_ extract 31 16) (_ bv336855040 32)))))) - (let (($x67 (and (and $x42 $x65) $x54))) - (let (($x50 (and true (= ((_ extract 31 16) ipv4.dstAddr) ((_ extract 31 16) (_ bv168427520 32)))))) - (let (($x63 (and (and $x42 $x61) $x50))) - (let ((?x113 (ite $x60 (_ bv1 9) (ite $x63 (_ bv0 9) (ite $x67 (_ bv1 9) (ite $x71 (_ bv1 9) ?x77)))))) - (let (($x41 (= ?x113 (_ bv511 9)))) - (and (and (not $x41) $x119) (= ?x120 3))))))))))))))))))))))) + (let (($x63 (and true (= ((_ extract 31 24) ipv4.dstAddr) ((_ extract 31 24) (_ bv167772160 32)))))) + (let (($x46 (and true ipv4.$valid$))) + (let ((?x96 (ite (and $x46 (and true (= ((_ extract 31 16) ipv4.dstAddr) ((_ extract 31 16) (_ bv336855040 32))))) 3 (ite (and $x46 $x63) 2 (- 1))))) + (let ((?x106 (ite (and $x46 (and true (= ((_ extract 31 16) ipv4.dstAddr) ((_ extract 31 16) (_ bv168427520 32))))) 0 ?x96))) + (let (($x49 (= ipv4.dstAddr (_ bv168427520 32)))) + (let (($x50 (and true $x49))) + (let (($x64 (and $x46 $x50))) + (let ((?x124 (ite ipv4.$valid$ (ite $x64 1 ?x106) (- 1)))) + (let (($x123 (ite ipv4.$valid$ $x46 false))) + (let (($x65 (not $x50))) + (let (($x69 (and $x65 (not (and true (= ((_ extract 31 16) ipv4.dstAddr) ((_ extract 31 16) (_ bv168427520 32)))))))) + (let (($x73 (and $x69 (not (and true (= ((_ extract 31 16) ipv4.dstAddr) ((_ extract 31 16) (_ bv336855040 32)))))))) + (let ((?x81 (ite (and $x46 (and $x73 (not $x63))) (_ bv511 9) standard_metadata.egress_spec))) + (let (($x75 (and (and $x46 $x73) $x63))) + (let (($x58 (and true (= ((_ extract 31 16) ipv4.dstAddr) ((_ extract 31 16) (_ bv336855040 32)))))) + (let (($x71 (and (and $x46 $x69) $x58))) + (let (($x54 (and true (= ((_ extract 31 16) ipv4.dstAddr) ((_ extract 31 16) (_ bv168427520 32)))))) + (let (($x67 (and (and $x46 $x65) $x54))) + (let ((?x117 (ite $x64 (_ bv1 9) (ite $x67 (_ bv0 9) (ite $x71 (_ bv1 9) (ite $x75 (_ bv1 9) ?x81)))))) + (let (($x45 (= ?x117 (_ bv511 9)))) + (and (and (not $x45) $x123) (= ?x124 3))))))))))))))))))))))) (check-sat) diff --git a/p4_symbolic/symbolic/expected/conditional.smt2 b/p4_symbolic/symbolic/expected/conditional.smt2 index 29458bd6..d406e6cd 100644 --- a/p4_symbolic/symbolic/expected/conditional.smt2 +++ b/p4_symbolic/symbolic/expected/conditional.smt2 @@ -4,31 +4,31 @@ (declare-fun standard_metadata.egress_spec () (_ BitVec 9)) (declare-fun ethernet.dst_addr () (_ BitVec 48)) (assert - (let (($x61 (= standard_metadata.ingress_port (_ bv1 9)))) - (or (or false (= standard_metadata.ingress_port (_ bv0 9))) $x61))) + (let (($x64 (= standard_metadata.ingress_port (_ bv1 9)))) + (or (or false (= standard_metadata.ingress_port (_ bv0 9))) $x64))) (assert - (let (($x31 (= standard_metadata.ingress_port (concat (_ bv0 8) (_ bv0 1))))) - (let (($x33 (and true $x31))) - (let (($x34 (and true (not $x31)))) - (let ((?x47 (ite (and true (not (and true (= ethernet.dst_addr (_ bv1 48))))) (_ bv511 9) (ite $x34 (_ bv511 9) (ite $x33 (_ bv511 9) standard_metadata.egress_spec))))) - (let (($x42 (= ethernet.dst_addr (_ bv1 48)))) - (let (($x43 (and true $x42))) - (let (($x44 (and true $x43))) - (let ((?x52 (ite $x44 (_ bv1 9) ?x47))) - (let (($x54 (= ?x52 (_ bv511 9)))) - (or $x54 (or (or false (= ?x52 (_ bv0 9))) (= ?x52 (_ bv1 9)))))))))))))) + (let (($x34 (= standard_metadata.ingress_port (concat (_ bv0 8) (_ bv0 1))))) + (let (($x36 (and true $x34))) + (let (($x37 (and true (not $x34)))) + (let ((?x50 (ite (and true (not (and true (= ethernet.dst_addr (_ bv1 48))))) (_ bv511 9) (ite $x37 (_ bv511 9) (ite $x36 (_ bv511 9) standard_metadata.egress_spec))))) + (let (($x45 (= ethernet.dst_addr (_ bv1 48)))) + (let (($x46 (and true $x45))) + (let (($x47 (and true $x46))) + (let ((?x55 (ite $x47 (_ bv1 9) ?x50))) + (let (($x57 (= ?x55 (_ bv511 9)))) + (or $x57 (or (or false (= ?x55 (_ bv0 9))) (= ?x55 (_ bv1 9)))))))))))))) (assert - (let (($x31 (= standard_metadata.ingress_port (concat (_ bv0 8) (_ bv0 1))))) - (let (($x33 (and true $x31))) - (let (($x39 (ite $x31 $x33 false))) - (let (($x34 (and true (not $x31)))) - (let ((?x47 (ite (and true (not (and true (= ethernet.dst_addr (_ bv1 48))))) (_ bv511 9) (ite $x34 (_ bv511 9) (ite $x33 (_ bv511 9) standard_metadata.egress_spec))))) - (let (($x42 (= ethernet.dst_addr (_ bv1 48)))) - (let (($x43 (and true $x42))) - (let (($x44 (and true $x43))) - (let ((?x52 (ite $x44 (_ bv1 9) ?x47))) - (let (($x54 (= ?x52 (_ bv511 9)))) - (and (and (not $x54) $x39) (= (- 1) (- 1)))))))))))))) + (let (($x34 (= standard_metadata.ingress_port (concat (_ bv0 8) (_ bv0 1))))) + (let (($x36 (and true $x34))) + (let (($x42 (ite $x34 $x36 false))) + (let (($x37 (and true (not $x34)))) + (let ((?x50 (ite (and true (not (and true (= ethernet.dst_addr (_ bv1 48))))) (_ bv511 9) (ite $x37 (_ bv511 9) (ite $x36 (_ bv511 9) standard_metadata.egress_spec))))) + (let (($x45 (= ethernet.dst_addr (_ bv1 48)))) + (let (($x46 (and true $x45))) + (let (($x47 (and true $x46))) + (let ((?x55 (ite $x47 (_ bv1 9) ?x50))) + (let (($x57 (= ?x55 (_ bv511 9)))) + (and (and (not $x57) $x42) (= (- 1) (- 1)))))))))))))) (check-sat) ; @@ -37,31 +37,31 @@ (declare-fun standard_metadata.egress_spec () (_ BitVec 9)) (declare-fun ethernet.dst_addr () (_ BitVec 48)) (assert - (let (($x61 (= standard_metadata.ingress_port (_ bv1 9)))) - (or (or false (= standard_metadata.ingress_port (_ bv0 9))) $x61))) + (let (($x64 (= standard_metadata.ingress_port (_ bv1 9)))) + (or (or false (= standard_metadata.ingress_port (_ bv0 9))) $x64))) (assert - (let (($x31 (= standard_metadata.ingress_port (concat (_ bv0 8) (_ bv0 1))))) - (let (($x33 (and true $x31))) - (let (($x34 (and true (not $x31)))) - (let ((?x47 (ite (and true (not (and true (= ethernet.dst_addr (_ bv1 48))))) (_ bv511 9) (ite $x34 (_ bv511 9) (ite $x33 (_ bv511 9) standard_metadata.egress_spec))))) - (let (($x42 (= ethernet.dst_addr (_ bv1 48)))) - (let (($x43 (and true $x42))) - (let (($x44 (and true $x43))) - (let ((?x52 (ite $x44 (_ bv1 9) ?x47))) - (let (($x54 (= ?x52 (_ bv511 9)))) - (or $x54 (or (or false (= ?x52 (_ bv0 9))) (= ?x52 (_ bv1 9)))))))))))))) + (let (($x34 (= standard_metadata.ingress_port (concat (_ bv0 8) (_ bv0 1))))) + (let (($x36 (and true $x34))) + (let (($x37 (and true (not $x34)))) + (let ((?x50 (ite (and true (not (and true (= ethernet.dst_addr (_ bv1 48))))) (_ bv511 9) (ite $x37 (_ bv511 9) (ite $x36 (_ bv511 9) standard_metadata.egress_spec))))) + (let (($x45 (= ethernet.dst_addr (_ bv1 48)))) + (let (($x46 (and true $x45))) + (let (($x47 (and true $x46))) + (let ((?x55 (ite $x47 (_ bv1 9) ?x50))) + (let (($x57 (= ?x55 (_ bv511 9)))) + (or $x57 (or (or false (= ?x55 (_ bv0 9))) (= ?x55 (_ bv1 9)))))))))))))) (assert - (let (($x34 (and true (not (= standard_metadata.ingress_port (concat (_ bv0 8) (_ bv0 1))))))) - (let (($x31 (= standard_metadata.ingress_port (concat (_ bv0 8) (_ bv0 1))))) - (let (($x40 (ite $x31 false $x34))) - (let ((?x38 (ite $x34 (_ bv511 9) (ite (and true $x31) (_ bv511 9) standard_metadata.egress_spec)))) - (let ((?x47 (ite (and true (not (and true (= ethernet.dst_addr (_ bv1 48))))) (_ bv511 9) ?x38))) - (let (($x42 (= ethernet.dst_addr (_ bv1 48)))) - (let (($x43 (and true $x42))) - (let (($x44 (and true $x43))) - (let ((?x52 (ite $x44 (_ bv1 9) ?x47))) - (let (($x54 (= ?x52 (_ bv511 9)))) - (and (and (not $x54) $x40) (= (- 1) (- 1)))))))))))))) + (let (($x37 (and true (not (= standard_metadata.ingress_port (concat (_ bv0 8) (_ bv0 1))))))) + (let (($x34 (= standard_metadata.ingress_port (concat (_ bv0 8) (_ bv0 1))))) + (let (($x43 (ite $x34 false $x37))) + (let ((?x41 (ite $x37 (_ bv511 9) (ite (and true $x34) (_ bv511 9) standard_metadata.egress_spec)))) + (let ((?x50 (ite (and true (not (and true (= ethernet.dst_addr (_ bv1 48))))) (_ bv511 9) ?x41))) + (let (($x45 (= ethernet.dst_addr (_ bv1 48)))) + (let (($x46 (and true $x45))) + (let (($x47 (and true $x46))) + (let ((?x55 (ite $x47 (_ bv1 9) ?x50))) + (let (($x57 (= ?x55 (_ bv511 9)))) + (and (and (not $x57) $x43) (= (- 1) (- 1)))))))))))))) (check-sat) ; @@ -70,31 +70,31 @@ (declare-fun standard_metadata.egress_spec () (_ BitVec 9)) (declare-fun ethernet.dst_addr () (_ BitVec 48)) (assert - (let (($x61 (= standard_metadata.ingress_port (_ bv1 9)))) - (or (or false (= standard_metadata.ingress_port (_ bv0 9))) $x61))) + (let (($x64 (= standard_metadata.ingress_port (_ bv1 9)))) + (or (or false (= standard_metadata.ingress_port (_ bv0 9))) $x64))) (assert - (let (($x31 (= standard_metadata.ingress_port (concat (_ bv0 8) (_ bv0 1))))) - (let (($x33 (and true $x31))) - (let (($x34 (and true (not $x31)))) - (let ((?x47 (ite (and true (not (and true (= ethernet.dst_addr (_ bv1 48))))) (_ bv511 9) (ite $x34 (_ bv511 9) (ite $x33 (_ bv511 9) standard_metadata.egress_spec))))) - (let (($x42 (= ethernet.dst_addr (_ bv1 48)))) - (let (($x43 (and true $x42))) - (let (($x44 (and true $x43))) - (let ((?x52 (ite $x44 (_ bv1 9) ?x47))) - (let (($x54 (= ?x52 (_ bv511 9)))) - (or $x54 (or (or false (= ?x52 (_ bv0 9))) (= ?x52 (_ bv1 9)))))))))))))) + (let (($x34 (= standard_metadata.ingress_port (concat (_ bv0 8) (_ bv0 1))))) + (let (($x36 (and true $x34))) + (let (($x37 (and true (not $x34)))) + (let ((?x50 (ite (and true (not (and true (= ethernet.dst_addr (_ bv1 48))))) (_ bv511 9) (ite $x37 (_ bv511 9) (ite $x36 (_ bv511 9) standard_metadata.egress_spec))))) + (let (($x45 (= ethernet.dst_addr (_ bv1 48)))) + (let (($x46 (and true $x45))) + (let (($x47 (and true $x46))) + (let ((?x55 (ite $x47 (_ bv1 9) ?x50))) + (let (($x57 (= ?x55 (_ bv511 9)))) + (or $x57 (or (or false (= ?x55 (_ bv0 9))) (= ?x55 (_ bv1 9)))))))))))))) (assert - (let (($x42 (= ethernet.dst_addr (_ bv1 48)))) - (let (($x43 (and true $x42))) - (let (($x44 (and true $x43))) - (let ((?x49 (ite $x44 0 (- 1)))) - (let (($x31 (= standard_metadata.ingress_port (concat (_ bv0 8) (_ bv0 1))))) - (let (($x33 (and true $x31))) - (let (($x34 (and true (not $x31)))) - (let ((?x47 (ite (and true (not $x43)) (_ bv511 9) (ite $x34 (_ bv511 9) (ite $x33 (_ bv511 9) standard_metadata.egress_spec))))) - (let ((?x52 (ite $x44 (_ bv1 9) ?x47))) - (let (($x54 (= ?x52 (_ bv511 9)))) - (and (and (not $x54) true) (= ?x49 (- 1)))))))))))))) + (let (($x45 (= ethernet.dst_addr (_ bv1 48)))) + (let (($x46 (and true $x45))) + (let (($x47 (and true $x46))) + (let ((?x52 (ite $x47 0 (- 1)))) + (let (($x34 (= standard_metadata.ingress_port (concat (_ bv0 8) (_ bv0 1))))) + (let (($x36 (and true $x34))) + (let (($x37 (and true (not $x34)))) + (let ((?x50 (ite (and true (not $x46)) (_ bv511 9) (ite $x37 (_ bv511 9) (ite $x36 (_ bv511 9) standard_metadata.egress_spec))))) + (let ((?x55 (ite $x47 (_ bv1 9) ?x50))) + (let (($x57 (= ?x55 (_ bv511 9)))) + (and (and (not $x57) true) (= ?x52 (- 1)))))))))))))) (check-sat) ; @@ -103,31 +103,31 @@ (declare-fun standard_metadata.egress_spec () (_ BitVec 9)) (declare-fun ethernet.dst_addr () (_ BitVec 48)) (assert - (let (($x61 (= standard_metadata.ingress_port (_ bv1 9)))) - (or (or false (= standard_metadata.ingress_port (_ bv0 9))) $x61))) + (let (($x64 (= standard_metadata.ingress_port (_ bv1 9)))) + (or (or false (= standard_metadata.ingress_port (_ bv0 9))) $x64))) (assert - (let (($x31 (= standard_metadata.ingress_port (concat (_ bv0 8) (_ bv0 1))))) - (let (($x33 (and true $x31))) - (let (($x34 (and true (not $x31)))) - (let ((?x47 (ite (and true (not (and true (= ethernet.dst_addr (_ bv1 48))))) (_ bv511 9) (ite $x34 (_ bv511 9) (ite $x33 (_ bv511 9) standard_metadata.egress_spec))))) - (let (($x42 (= ethernet.dst_addr (_ bv1 48)))) - (let (($x43 (and true $x42))) - (let (($x44 (and true $x43))) - (let ((?x52 (ite $x44 (_ bv1 9) ?x47))) - (let (($x54 (= ?x52 (_ bv511 9)))) - (or $x54 (or (or false (= ?x52 (_ bv0 9))) (= ?x52 (_ bv1 9)))))))))))))) + (let (($x34 (= standard_metadata.ingress_port (concat (_ bv0 8) (_ bv0 1))))) + (let (($x36 (and true $x34))) + (let (($x37 (and true (not $x34)))) + (let ((?x50 (ite (and true (not (and true (= ethernet.dst_addr (_ bv1 48))))) (_ bv511 9) (ite $x37 (_ bv511 9) (ite $x36 (_ bv511 9) standard_metadata.egress_spec))))) + (let (($x45 (= ethernet.dst_addr (_ bv1 48)))) + (let (($x46 (and true $x45))) + (let (($x47 (and true $x46))) + (let ((?x55 (ite $x47 (_ bv1 9) ?x50))) + (let (($x57 (= ?x55 (_ bv511 9)))) + (or $x57 (or (or false (= ?x55 (_ bv0 9))) (= ?x55 (_ bv1 9)))))))))))))) (assert - (let (($x42 (= ethernet.dst_addr (_ bv1 48)))) - (let (($x43 (and true $x42))) - (let (($x44 (and true $x43))) - (let ((?x49 (ite $x44 0 (- 1)))) - (let (($x31 (= standard_metadata.ingress_port (concat (_ bv0 8) (_ bv0 1))))) - (let (($x33 (and true $x31))) - (let (($x34 (and true (not $x31)))) - (let ((?x47 (ite (and true (not $x43)) (_ bv511 9) (ite $x34 (_ bv511 9) (ite $x33 (_ bv511 9) standard_metadata.egress_spec))))) - (let ((?x52 (ite $x44 (_ bv1 9) ?x47))) - (let (($x54 (= ?x52 (_ bv511 9)))) - (let (($x97 (and (not $x54) true))) - (and $x97 (= ?x49 0)))))))))))))) + (let (($x45 (= ethernet.dst_addr (_ bv1 48)))) + (let (($x46 (and true $x45))) + (let (($x47 (and true $x46))) + (let ((?x52 (ite $x47 0 (- 1)))) + (let (($x34 (= standard_metadata.ingress_port (concat (_ bv0 8) (_ bv0 1))))) + (let (($x36 (and true $x34))) + (let (($x37 (and true (not $x34)))) + (let ((?x50 (ite (and true (not $x46)) (_ bv511 9) (ite $x37 (_ bv511 9) (ite $x36 (_ bv511 9) standard_metadata.egress_spec))))) + (let ((?x55 (ite $x47 (_ bv1 9) ?x50))) + (let (($x57 (= ?x55 (_ bv511 9)))) + (let (($x100 (and (not $x57) true))) + (and $x100 (= ?x52 0)))))))))))))) (check-sat) diff --git a/p4_symbolic/symbolic/expected/conditional_nonlattice.smt2 b/p4_symbolic/symbolic/expected/conditional_nonlattice.smt2 index cfba9e48..8add470b 100644 --- a/p4_symbolic/symbolic/expected/conditional_nonlattice.smt2 +++ b/p4_symbolic/symbolic/expected/conditional_nonlattice.smt2 @@ -4,71 +4,71 @@ (declare-fun standard_metadata.egress_spec () (_ BitVec 9)) (declare-fun ethernet.dst_addr () (_ BitVec 48)) (assert - (let (($x170 (= standard_metadata.ingress_port (_ bv19 9)))) - (let (($x165 (= standard_metadata.ingress_port (_ bv18 9)))) - (let (($x160 (= standard_metadata.ingress_port (_ bv17 9)))) - (let (($x155 (= standard_metadata.ingress_port (_ bv16 9)))) - (let (($x150 (= standard_metadata.ingress_port (_ bv15 9)))) - (let (($x145 (= standard_metadata.ingress_port (_ bv14 9)))) - (let (($x140 (= standard_metadata.ingress_port (_ bv13 9)))) - (let (($x135 (= standard_metadata.ingress_port (_ bv12 9)))) - (let (($x130 (= standard_metadata.ingress_port (_ bv11 9)))) - (let (($x125 (= standard_metadata.ingress_port (_ bv10 9)))) - (let (($x120 (= standard_metadata.ingress_port (_ bv9 9)))) - (let (($x115 (= standard_metadata.ingress_port (_ bv8 9)))) - (let (($x110 (= standard_metadata.ingress_port (_ bv7 9)))) - (let (($x105 (= standard_metadata.ingress_port (_ bv6 9)))) - (let (($x100 (= standard_metadata.ingress_port (_ bv5 9)))) - (let (($x95 (= standard_metadata.ingress_port (_ bv4 9)))) - (let (($x90 (= standard_metadata.ingress_port (_ bv3 9)))) - (let (($x85 (= standard_metadata.ingress_port (_ bv2 9)))) - (let (($x80 (= standard_metadata.ingress_port (_ bv1 9)))) - (let (($x86 (or (or (or false (= standard_metadata.ingress_port (_ bv0 9))) $x80) $x85))) - (let (($x121 (or (or (or (or (or (or (or $x86 $x90) $x95) $x100) $x105) $x110) $x115) $x120))) - (let (($x156 (or (or (or (or (or (or (or $x121 $x125) $x130) $x135) $x140) $x145) $x150) $x155))) - (or (or (or $x156 $x160) $x165) $x170)))))))))))))))))))))))) + (let (($x173 (= standard_metadata.ingress_port (_ bv19 9)))) + (let (($x168 (= standard_metadata.ingress_port (_ bv18 9)))) + (let (($x163 (= standard_metadata.ingress_port (_ bv17 9)))) + (let (($x158 (= standard_metadata.ingress_port (_ bv16 9)))) + (let (($x153 (= standard_metadata.ingress_port (_ bv15 9)))) + (let (($x148 (= standard_metadata.ingress_port (_ bv14 9)))) + (let (($x143 (= standard_metadata.ingress_port (_ bv13 9)))) + (let (($x138 (= standard_metadata.ingress_port (_ bv12 9)))) + (let (($x133 (= standard_metadata.ingress_port (_ bv11 9)))) + (let (($x128 (= standard_metadata.ingress_port (_ bv10 9)))) + (let (($x123 (= standard_metadata.ingress_port (_ bv9 9)))) + (let (($x118 (= standard_metadata.ingress_port (_ bv8 9)))) + (let (($x113 (= standard_metadata.ingress_port (_ bv7 9)))) + (let (($x108 (= standard_metadata.ingress_port (_ bv6 9)))) + (let (($x103 (= standard_metadata.ingress_port (_ bv5 9)))) + (let (($x98 (= standard_metadata.ingress_port (_ bv4 9)))) + (let (($x93 (= standard_metadata.ingress_port (_ bv3 9)))) + (let (($x88 (= standard_metadata.ingress_port (_ bv2 9)))) + (let (($x83 (= standard_metadata.ingress_port (_ bv1 9)))) + (let (($x89 (or (or (or false (= standard_metadata.ingress_port (_ bv0 9))) $x83) $x88))) + (let (($x124 (or (or (or (or (or (or (or $x89 $x93) $x98) $x103) $x108) $x113) $x118) $x123))) + (let (($x159 (or (or (or (or (or (or (or $x124 $x128) $x133) $x138) $x143) $x148) $x153) $x158))) + (or (or (or $x159 $x163) $x168) $x173)))))))))))))))))))))))) (assert - (let (($x37 (bvugt standard_metadata.ingress_port (concat (_ bv0 5) (_ bv15 4))))) - (let (($x31 (bvugt standard_metadata.ingress_port (concat (_ bv0 5) (_ bv10 4))))) - (let (($x33 (and true $x31))) - (let (($x39 (and $x33 $x37))) - (let (($x40 (and $x33 (not $x37)))) - (let (($x50 (bvugt standard_metadata.ingress_port (concat (_ bv0 6) (_ bv5 3))))) - (let (($x34 (and true (not $x31)))) - (let (($x52 (and $x34 $x50))) - (let ((?x54 (ite $x52 (_ bv511 9) (ite $x40 (_ bv511 9) (ite $x39 (_ bv511 9) standard_metadata.egress_spec))))) - (let (($x53 (and $x34 (not $x50)))) - (let ((?x66 (ite (and true (not (and true (= ethernet.dst_addr (_ bv1 48))))) (_ bv511 9) (ite $x53 (_ bv511 9) ?x54)))) - (let (($x61 (= ethernet.dst_addr (_ bv1 48)))) - (let (($x62 (and true $x61))) - (let (($x63 (and true $x62))) - (let ((?x71 (ite $x63 (_ bv1 9) ?x66))) - (let (($x93 (or (or (or (or false (= ?x71 (_ bv0 9))) (= ?x71 (_ bv1 9))) (= ?x71 (_ bv2 9))) (= ?x71 (_ bv3 9))))) - (let (($x113 (or (or (or (or $x93 (= ?x71 (_ bv4 9))) (= ?x71 (_ bv5 9))) (= ?x71 (_ bv6 9))) (= ?x71 (_ bv7 9))))) - (let (($x133 (or (or (or (or $x113 (= ?x71 (_ bv8 9))) (= ?x71 (_ bv9 9))) (= ?x71 (_ bv10 9))) (= ?x71 (_ bv11 9))))) - (let (($x153 (or (or (or (or $x133 (= ?x71 (_ bv12 9))) (= ?x71 (_ bv13 9))) (= ?x71 (_ bv14 9))) (= ?x71 (_ bv15 9))))) - (let (($x173 (or (or (or (or $x153 (= ?x71 (_ bv16 9))) (= ?x71 (_ bv17 9))) (= ?x71 (_ bv18 9))) (= ?x71 (_ bv19 9))))) - (let (($x73 (= ?x71 (_ bv511 9)))) - (or $x73 $x173))))))))))))))))))))))) + (let (($x40 (bvugt standard_metadata.ingress_port (concat (_ bv0 5) (_ bv15 4))))) + (let (($x34 (bvugt standard_metadata.ingress_port (concat (_ bv0 5) (_ bv10 4))))) + (let (($x36 (and true $x34))) + (let (($x42 (and $x36 $x40))) + (let (($x43 (and $x36 (not $x40)))) + (let (($x53 (bvugt standard_metadata.ingress_port (concat (_ bv0 6) (_ bv5 3))))) + (let (($x37 (and true (not $x34)))) + (let (($x55 (and $x37 $x53))) + (let ((?x57 (ite $x55 (_ bv511 9) (ite $x43 (_ bv511 9) (ite $x42 (_ bv511 9) standard_metadata.egress_spec))))) + (let (($x56 (and $x37 (not $x53)))) + (let ((?x69 (ite (and true (not (and true (= ethernet.dst_addr (_ bv1 48))))) (_ bv511 9) (ite $x56 (_ bv511 9) ?x57)))) + (let (($x64 (= ethernet.dst_addr (_ bv1 48)))) + (let (($x65 (and true $x64))) + (let (($x66 (and true $x65))) + (let ((?x74 (ite $x66 (_ bv1 9) ?x69))) + (let (($x96 (or (or (or (or false (= ?x74 (_ bv0 9))) (= ?x74 (_ bv1 9))) (= ?x74 (_ bv2 9))) (= ?x74 (_ bv3 9))))) + (let (($x116 (or (or (or (or $x96 (= ?x74 (_ bv4 9))) (= ?x74 (_ bv5 9))) (= ?x74 (_ bv6 9))) (= ?x74 (_ bv7 9))))) + (let (($x136 (or (or (or (or $x116 (= ?x74 (_ bv8 9))) (= ?x74 (_ bv9 9))) (= ?x74 (_ bv10 9))) (= ?x74 (_ bv11 9))))) + (let (($x156 (or (or (or (or $x136 (= ?x74 (_ bv12 9))) (= ?x74 (_ bv13 9))) (= ?x74 (_ bv14 9))) (= ?x74 (_ bv15 9))))) + (let (($x176 (or (or (or (or $x156 (= ?x74 (_ bv16 9))) (= ?x74 (_ bv17 9))) (= ?x74 (_ bv18 9))) (= ?x74 (_ bv19 9))))) + (let (($x76 (= ?x74 (_ bv511 9)))) + (or $x76 $x176))))))))))))))))))))))) (assert - (let (($x50 (bvugt standard_metadata.ingress_port (concat (_ bv0 6) (_ bv5 3))))) - (let (($x34 (and true (not (bvugt standard_metadata.ingress_port (concat (_ bv0 5) (_ bv10 4))))))) - (let (($x52 (and $x34 $x50))) - (let (($x37 (bvugt standard_metadata.ingress_port (concat (_ bv0 5) (_ bv15 4))))) - (let (($x31 (bvugt standard_metadata.ingress_port (concat (_ bv0 5) (_ bv10 4))))) - (let (($x33 (and true $x31))) - (let (($x39 (and $x33 $x37))) - (let (($x58 (ite $x31 (ite $x37 $x39 false) (ite $x50 $x52 false)))) - (let (($x40 (and $x33 (not $x37)))) - (let ((?x54 (ite $x52 (_ bv511 9) (ite $x40 (_ bv511 9) (ite $x39 (_ bv511 9) standard_metadata.egress_spec))))) - (let (($x53 (and $x34 (not $x50)))) - (let ((?x66 (ite (and true (not (and true (= ethernet.dst_addr (_ bv1 48))))) (_ bv511 9) (ite $x53 (_ bv511 9) ?x54)))) - (let (($x61 (= ethernet.dst_addr (_ bv1 48)))) - (let (($x62 (and true $x61))) - (let (($x63 (and true $x62))) - (let ((?x71 (ite $x63 (_ bv1 9) ?x66))) - (let (($x73 (= ?x71 (_ bv511 9)))) - (and (and (not $x73) $x58) (= (- 1) (- 1))))))))))))))))))))) + (let (($x53 (bvugt standard_metadata.ingress_port (concat (_ bv0 6) (_ bv5 3))))) + (let (($x37 (and true (not (bvugt standard_metadata.ingress_port (concat (_ bv0 5) (_ bv10 4))))))) + (let (($x55 (and $x37 $x53))) + (let (($x40 (bvugt standard_metadata.ingress_port (concat (_ bv0 5) (_ bv15 4))))) + (let (($x34 (bvugt standard_metadata.ingress_port (concat (_ bv0 5) (_ bv10 4))))) + (let (($x36 (and true $x34))) + (let (($x42 (and $x36 $x40))) + (let (($x61 (ite $x34 (ite $x40 $x42 false) (ite $x53 $x55 false)))) + (let (($x43 (and $x36 (not $x40)))) + (let ((?x57 (ite $x55 (_ bv511 9) (ite $x43 (_ bv511 9) (ite $x42 (_ bv511 9) standard_metadata.egress_spec))))) + (let (($x56 (and $x37 (not $x53)))) + (let ((?x69 (ite (and true (not (and true (= ethernet.dst_addr (_ bv1 48))))) (_ bv511 9) (ite $x56 (_ bv511 9) ?x57)))) + (let (($x64 (= ethernet.dst_addr (_ bv1 48)))) + (let (($x65 (and true $x64))) + (let (($x66 (and true $x65))) + (let ((?x74 (ite $x66 (_ bv1 9) ?x69))) + (let (($x76 (= ?x74 (_ bv511 9)))) + (and (and (not $x76) $x61) (= (- 1) (- 1))))))))))))))))))))) (check-sat) ; @@ -77,70 +77,70 @@ (declare-fun standard_metadata.egress_spec () (_ BitVec 9)) (declare-fun ethernet.dst_addr () (_ BitVec 48)) (assert - (let (($x170 (= standard_metadata.ingress_port (_ bv19 9)))) - (let (($x165 (= standard_metadata.ingress_port (_ bv18 9)))) - (let (($x160 (= standard_metadata.ingress_port (_ bv17 9)))) - (let (($x155 (= standard_metadata.ingress_port (_ bv16 9)))) - (let (($x150 (= standard_metadata.ingress_port (_ bv15 9)))) - (let (($x145 (= standard_metadata.ingress_port (_ bv14 9)))) - (let (($x140 (= standard_metadata.ingress_port (_ bv13 9)))) - (let (($x135 (= standard_metadata.ingress_port (_ bv12 9)))) - (let (($x130 (= standard_metadata.ingress_port (_ bv11 9)))) - (let (($x125 (= standard_metadata.ingress_port (_ bv10 9)))) - (let (($x120 (= standard_metadata.ingress_port (_ bv9 9)))) - (let (($x115 (= standard_metadata.ingress_port (_ bv8 9)))) - (let (($x110 (= standard_metadata.ingress_port (_ bv7 9)))) - (let (($x105 (= standard_metadata.ingress_port (_ bv6 9)))) - (let (($x100 (= standard_metadata.ingress_port (_ bv5 9)))) - (let (($x95 (= standard_metadata.ingress_port (_ bv4 9)))) - (let (($x90 (= standard_metadata.ingress_port (_ bv3 9)))) - (let (($x85 (= standard_metadata.ingress_port (_ bv2 9)))) - (let (($x80 (= standard_metadata.ingress_port (_ bv1 9)))) - (let (($x86 (or (or (or false (= standard_metadata.ingress_port (_ bv0 9))) $x80) $x85))) - (let (($x121 (or (or (or (or (or (or (or $x86 $x90) $x95) $x100) $x105) $x110) $x115) $x120))) - (let (($x156 (or (or (or (or (or (or (or $x121 $x125) $x130) $x135) $x140) $x145) $x150) $x155))) - (or (or (or $x156 $x160) $x165) $x170)))))))))))))))))))))))) + (let (($x173 (= standard_metadata.ingress_port (_ bv19 9)))) + (let (($x168 (= standard_metadata.ingress_port (_ bv18 9)))) + (let (($x163 (= standard_metadata.ingress_port (_ bv17 9)))) + (let (($x158 (= standard_metadata.ingress_port (_ bv16 9)))) + (let (($x153 (= standard_metadata.ingress_port (_ bv15 9)))) + (let (($x148 (= standard_metadata.ingress_port (_ bv14 9)))) + (let (($x143 (= standard_metadata.ingress_port (_ bv13 9)))) + (let (($x138 (= standard_metadata.ingress_port (_ bv12 9)))) + (let (($x133 (= standard_metadata.ingress_port (_ bv11 9)))) + (let (($x128 (= standard_metadata.ingress_port (_ bv10 9)))) + (let (($x123 (= standard_metadata.ingress_port (_ bv9 9)))) + (let (($x118 (= standard_metadata.ingress_port (_ bv8 9)))) + (let (($x113 (= standard_metadata.ingress_port (_ bv7 9)))) + (let (($x108 (= standard_metadata.ingress_port (_ bv6 9)))) + (let (($x103 (= standard_metadata.ingress_port (_ bv5 9)))) + (let (($x98 (= standard_metadata.ingress_port (_ bv4 9)))) + (let (($x93 (= standard_metadata.ingress_port (_ bv3 9)))) + (let (($x88 (= standard_metadata.ingress_port (_ bv2 9)))) + (let (($x83 (= standard_metadata.ingress_port (_ bv1 9)))) + (let (($x89 (or (or (or false (= standard_metadata.ingress_port (_ bv0 9))) $x83) $x88))) + (let (($x124 (or (or (or (or (or (or (or $x89 $x93) $x98) $x103) $x108) $x113) $x118) $x123))) + (let (($x159 (or (or (or (or (or (or (or $x124 $x128) $x133) $x138) $x143) $x148) $x153) $x158))) + (or (or (or $x159 $x163) $x168) $x173)))))))))))))))))))))))) (assert - (let (($x37 (bvugt standard_metadata.ingress_port (concat (_ bv0 5) (_ bv15 4))))) - (let (($x31 (bvugt standard_metadata.ingress_port (concat (_ bv0 5) (_ bv10 4))))) - (let (($x33 (and true $x31))) - (let (($x39 (and $x33 $x37))) - (let (($x40 (and $x33 (not $x37)))) - (let (($x50 (bvugt standard_metadata.ingress_port (concat (_ bv0 6) (_ bv5 3))))) - (let (($x34 (and true (not $x31)))) - (let (($x52 (and $x34 $x50))) - (let ((?x54 (ite $x52 (_ bv511 9) (ite $x40 (_ bv511 9) (ite $x39 (_ bv511 9) standard_metadata.egress_spec))))) - (let (($x53 (and $x34 (not $x50)))) - (let ((?x66 (ite (and true (not (and true (= ethernet.dst_addr (_ bv1 48))))) (_ bv511 9) (ite $x53 (_ bv511 9) ?x54)))) - (let (($x61 (= ethernet.dst_addr (_ bv1 48)))) - (let (($x62 (and true $x61))) - (let (($x63 (and true $x62))) - (let ((?x71 (ite $x63 (_ bv1 9) ?x66))) - (let (($x93 (or (or (or (or false (= ?x71 (_ bv0 9))) (= ?x71 (_ bv1 9))) (= ?x71 (_ bv2 9))) (= ?x71 (_ bv3 9))))) - (let (($x113 (or (or (or (or $x93 (= ?x71 (_ bv4 9))) (= ?x71 (_ bv5 9))) (= ?x71 (_ bv6 9))) (= ?x71 (_ bv7 9))))) - (let (($x133 (or (or (or (or $x113 (= ?x71 (_ bv8 9))) (= ?x71 (_ bv9 9))) (= ?x71 (_ bv10 9))) (= ?x71 (_ bv11 9))))) - (let (($x153 (or (or (or (or $x133 (= ?x71 (_ bv12 9))) (= ?x71 (_ bv13 9))) (= ?x71 (_ bv14 9))) (= ?x71 (_ bv15 9))))) - (let (($x173 (or (or (or (or $x153 (= ?x71 (_ bv16 9))) (= ?x71 (_ bv17 9))) (= ?x71 (_ bv18 9))) (= ?x71 (_ bv19 9))))) - (let (($x73 (= ?x71 (_ bv511 9)))) - (or $x73 $x173))))))))))))))))))))))) + (let (($x40 (bvugt standard_metadata.ingress_port (concat (_ bv0 5) (_ bv15 4))))) + (let (($x34 (bvugt standard_metadata.ingress_port (concat (_ bv0 5) (_ bv10 4))))) + (let (($x36 (and true $x34))) + (let (($x42 (and $x36 $x40))) + (let (($x43 (and $x36 (not $x40)))) + (let (($x53 (bvugt standard_metadata.ingress_port (concat (_ bv0 6) (_ bv5 3))))) + (let (($x37 (and true (not $x34)))) + (let (($x55 (and $x37 $x53))) + (let ((?x57 (ite $x55 (_ bv511 9) (ite $x43 (_ bv511 9) (ite $x42 (_ bv511 9) standard_metadata.egress_spec))))) + (let (($x56 (and $x37 (not $x53)))) + (let ((?x69 (ite (and true (not (and true (= ethernet.dst_addr (_ bv1 48))))) (_ bv511 9) (ite $x56 (_ bv511 9) ?x57)))) + (let (($x64 (= ethernet.dst_addr (_ bv1 48)))) + (let (($x65 (and true $x64))) + (let (($x66 (and true $x65))) + (let ((?x74 (ite $x66 (_ bv1 9) ?x69))) + (let (($x96 (or (or (or (or false (= ?x74 (_ bv0 9))) (= ?x74 (_ bv1 9))) (= ?x74 (_ bv2 9))) (= ?x74 (_ bv3 9))))) + (let (($x116 (or (or (or (or $x96 (= ?x74 (_ bv4 9))) (= ?x74 (_ bv5 9))) (= ?x74 (_ bv6 9))) (= ?x74 (_ bv7 9))))) + (let (($x136 (or (or (or (or $x116 (= ?x74 (_ bv8 9))) (= ?x74 (_ bv9 9))) (= ?x74 (_ bv10 9))) (= ?x74 (_ bv11 9))))) + (let (($x156 (or (or (or (or $x136 (= ?x74 (_ bv12 9))) (= ?x74 (_ bv13 9))) (= ?x74 (_ bv14 9))) (= ?x74 (_ bv15 9))))) + (let (($x176 (or (or (or (or $x156 (= ?x74 (_ bv16 9))) (= ?x74 (_ bv17 9))) (= ?x74 (_ bv18 9))) (= ?x74 (_ bv19 9))))) + (let (($x76 (= ?x74 (_ bv511 9)))) + (or $x76 $x176))))))))))))))))))))))) (assert - (let (($x34 (and true (not (bvugt standard_metadata.ingress_port (concat (_ bv0 5) (_ bv10 4))))))) - (let (($x53 (and $x34 (not (bvugt standard_metadata.ingress_port (concat (_ bv0 6) (_ bv5 3))))))) - (let (($x50 (bvugt standard_metadata.ingress_port (concat (_ bv0 6) (_ bv5 3))))) - (let (($x31 (bvugt standard_metadata.ingress_port (concat (_ bv0 5) (_ bv10 4))))) - (let (($x33 (and true $x31))) - (let (($x40 (and $x33 (not (bvugt standard_metadata.ingress_port (concat (_ bv0 5) (_ bv15 4))))))) - (let (($x37 (bvugt standard_metadata.ingress_port (concat (_ bv0 5) (_ bv15 4))))) - (let (($x59 (ite $x31 (ite $x37 false $x40) (ite $x50 false $x53)))) - (let ((?x44 (ite $x40 (_ bv511 9) (ite (and $x33 $x37) (_ bv511 9) standard_metadata.egress_spec)))) - (let (($x52 (and $x34 $x50))) - (let ((?x66 (ite (and true (not (and true (= ethernet.dst_addr (_ bv1 48))))) (_ bv511 9) (ite $x53 (_ bv511 9) (ite $x52 (_ bv511 9) ?x44))))) - (let (($x61 (= ethernet.dst_addr (_ bv1 48)))) - (let (($x62 (and true $x61))) - (let (($x63 (and true $x62))) - (let ((?x71 (ite $x63 (_ bv1 9) ?x66))) - (let (($x73 (= ?x71 (_ bv511 9)))) - (and (and (not $x73) $x59) (= (- 1) (- 1)))))))))))))))))))) + (let (($x37 (and true (not (bvugt standard_metadata.ingress_port (concat (_ bv0 5) (_ bv10 4))))))) + (let (($x56 (and $x37 (not (bvugt standard_metadata.ingress_port (concat (_ bv0 6) (_ bv5 3))))))) + (let (($x53 (bvugt standard_metadata.ingress_port (concat (_ bv0 6) (_ bv5 3))))) + (let (($x34 (bvugt standard_metadata.ingress_port (concat (_ bv0 5) (_ bv10 4))))) + (let (($x36 (and true $x34))) + (let (($x43 (and $x36 (not (bvugt standard_metadata.ingress_port (concat (_ bv0 5) (_ bv15 4))))))) + (let (($x40 (bvugt standard_metadata.ingress_port (concat (_ bv0 5) (_ bv15 4))))) + (let (($x62 (ite $x34 (ite $x40 false $x43) (ite $x53 false $x56)))) + (let ((?x47 (ite $x43 (_ bv511 9) (ite (and $x36 $x40) (_ bv511 9) standard_metadata.egress_spec)))) + (let (($x55 (and $x37 $x53))) + (let ((?x69 (ite (and true (not (and true (= ethernet.dst_addr (_ bv1 48))))) (_ bv511 9) (ite $x56 (_ bv511 9) (ite $x55 (_ bv511 9) ?x47))))) + (let (($x64 (= ethernet.dst_addr (_ bv1 48)))) + (let (($x65 (and true $x64))) + (let (($x66 (and true $x65))) + (let ((?x74 (ite $x66 (_ bv1 9) ?x69))) + (let (($x76 (= ?x74 (_ bv511 9)))) + (and (and (not $x76) $x62) (= (- 1) (- 1)))))))))))))))))))) (check-sat) ; @@ -149,70 +149,70 @@ (declare-fun standard_metadata.egress_spec () (_ BitVec 9)) (declare-fun ethernet.dst_addr () (_ BitVec 48)) (assert - (let (($x170 (= standard_metadata.ingress_port (_ bv19 9)))) - (let (($x165 (= standard_metadata.ingress_port (_ bv18 9)))) - (let (($x160 (= standard_metadata.ingress_port (_ bv17 9)))) - (let (($x155 (= standard_metadata.ingress_port (_ bv16 9)))) - (let (($x150 (= standard_metadata.ingress_port (_ bv15 9)))) - (let (($x145 (= standard_metadata.ingress_port (_ bv14 9)))) - (let (($x140 (= standard_metadata.ingress_port (_ bv13 9)))) - (let (($x135 (= standard_metadata.ingress_port (_ bv12 9)))) - (let (($x130 (= standard_metadata.ingress_port (_ bv11 9)))) - (let (($x125 (= standard_metadata.ingress_port (_ bv10 9)))) - (let (($x120 (= standard_metadata.ingress_port (_ bv9 9)))) - (let (($x115 (= standard_metadata.ingress_port (_ bv8 9)))) - (let (($x110 (= standard_metadata.ingress_port (_ bv7 9)))) - (let (($x105 (= standard_metadata.ingress_port (_ bv6 9)))) - (let (($x100 (= standard_metadata.ingress_port (_ bv5 9)))) - (let (($x95 (= standard_metadata.ingress_port (_ bv4 9)))) - (let (($x90 (= standard_metadata.ingress_port (_ bv3 9)))) - (let (($x85 (= standard_metadata.ingress_port (_ bv2 9)))) - (let (($x80 (= standard_metadata.ingress_port (_ bv1 9)))) - (let (($x86 (or (or (or false (= standard_metadata.ingress_port (_ bv0 9))) $x80) $x85))) - (let (($x121 (or (or (or (or (or (or (or $x86 $x90) $x95) $x100) $x105) $x110) $x115) $x120))) - (let (($x156 (or (or (or (or (or (or (or $x121 $x125) $x130) $x135) $x140) $x145) $x150) $x155))) - (or (or (or $x156 $x160) $x165) $x170)))))))))))))))))))))))) + (let (($x173 (= standard_metadata.ingress_port (_ bv19 9)))) + (let (($x168 (= standard_metadata.ingress_port (_ bv18 9)))) + (let (($x163 (= standard_metadata.ingress_port (_ bv17 9)))) + (let (($x158 (= standard_metadata.ingress_port (_ bv16 9)))) + (let (($x153 (= standard_metadata.ingress_port (_ bv15 9)))) + (let (($x148 (= standard_metadata.ingress_port (_ bv14 9)))) + (let (($x143 (= standard_metadata.ingress_port (_ bv13 9)))) + (let (($x138 (= standard_metadata.ingress_port (_ bv12 9)))) + (let (($x133 (= standard_metadata.ingress_port (_ bv11 9)))) + (let (($x128 (= standard_metadata.ingress_port (_ bv10 9)))) + (let (($x123 (= standard_metadata.ingress_port (_ bv9 9)))) + (let (($x118 (= standard_metadata.ingress_port (_ bv8 9)))) + (let (($x113 (= standard_metadata.ingress_port (_ bv7 9)))) + (let (($x108 (= standard_metadata.ingress_port (_ bv6 9)))) + (let (($x103 (= standard_metadata.ingress_port (_ bv5 9)))) + (let (($x98 (= standard_metadata.ingress_port (_ bv4 9)))) + (let (($x93 (= standard_metadata.ingress_port (_ bv3 9)))) + (let (($x88 (= standard_metadata.ingress_port (_ bv2 9)))) + (let (($x83 (= standard_metadata.ingress_port (_ bv1 9)))) + (let (($x89 (or (or (or false (= standard_metadata.ingress_port (_ bv0 9))) $x83) $x88))) + (let (($x124 (or (or (or (or (or (or (or $x89 $x93) $x98) $x103) $x108) $x113) $x118) $x123))) + (let (($x159 (or (or (or (or (or (or (or $x124 $x128) $x133) $x138) $x143) $x148) $x153) $x158))) + (or (or (or $x159 $x163) $x168) $x173)))))))))))))))))))))))) (assert - (let (($x37 (bvugt standard_metadata.ingress_port (concat (_ bv0 5) (_ bv15 4))))) - (let (($x31 (bvugt standard_metadata.ingress_port (concat (_ bv0 5) (_ bv10 4))))) - (let (($x33 (and true $x31))) - (let (($x39 (and $x33 $x37))) - (let (($x40 (and $x33 (not $x37)))) - (let (($x50 (bvugt standard_metadata.ingress_port (concat (_ bv0 6) (_ bv5 3))))) - (let (($x34 (and true (not $x31)))) - (let (($x52 (and $x34 $x50))) - (let ((?x54 (ite $x52 (_ bv511 9) (ite $x40 (_ bv511 9) (ite $x39 (_ bv511 9) standard_metadata.egress_spec))))) - (let (($x53 (and $x34 (not $x50)))) - (let ((?x66 (ite (and true (not (and true (= ethernet.dst_addr (_ bv1 48))))) (_ bv511 9) (ite $x53 (_ bv511 9) ?x54)))) - (let (($x61 (= ethernet.dst_addr (_ bv1 48)))) - (let (($x62 (and true $x61))) - (let (($x63 (and true $x62))) - (let ((?x71 (ite $x63 (_ bv1 9) ?x66))) - (let (($x93 (or (or (or (or false (= ?x71 (_ bv0 9))) (= ?x71 (_ bv1 9))) (= ?x71 (_ bv2 9))) (= ?x71 (_ bv3 9))))) - (let (($x113 (or (or (or (or $x93 (= ?x71 (_ bv4 9))) (= ?x71 (_ bv5 9))) (= ?x71 (_ bv6 9))) (= ?x71 (_ bv7 9))))) - (let (($x133 (or (or (or (or $x113 (= ?x71 (_ bv8 9))) (= ?x71 (_ bv9 9))) (= ?x71 (_ bv10 9))) (= ?x71 (_ bv11 9))))) - (let (($x153 (or (or (or (or $x133 (= ?x71 (_ bv12 9))) (= ?x71 (_ bv13 9))) (= ?x71 (_ bv14 9))) (= ?x71 (_ bv15 9))))) - (let (($x173 (or (or (or (or $x153 (= ?x71 (_ bv16 9))) (= ?x71 (_ bv17 9))) (= ?x71 (_ bv18 9))) (= ?x71 (_ bv19 9))))) - (let (($x73 (= ?x71 (_ bv511 9)))) - (or $x73 $x173))))))))))))))))))))))) + (let (($x40 (bvugt standard_metadata.ingress_port (concat (_ bv0 5) (_ bv15 4))))) + (let (($x34 (bvugt standard_metadata.ingress_port (concat (_ bv0 5) (_ bv10 4))))) + (let (($x36 (and true $x34))) + (let (($x42 (and $x36 $x40))) + (let (($x43 (and $x36 (not $x40)))) + (let (($x53 (bvugt standard_metadata.ingress_port (concat (_ bv0 6) (_ bv5 3))))) + (let (($x37 (and true (not $x34)))) + (let (($x55 (and $x37 $x53))) + (let ((?x57 (ite $x55 (_ bv511 9) (ite $x43 (_ bv511 9) (ite $x42 (_ bv511 9) standard_metadata.egress_spec))))) + (let (($x56 (and $x37 (not $x53)))) + (let ((?x69 (ite (and true (not (and true (= ethernet.dst_addr (_ bv1 48))))) (_ bv511 9) (ite $x56 (_ bv511 9) ?x57)))) + (let (($x64 (= ethernet.dst_addr (_ bv1 48)))) + (let (($x65 (and true $x64))) + (let (($x66 (and true $x65))) + (let ((?x74 (ite $x66 (_ bv1 9) ?x69))) + (let (($x96 (or (or (or (or false (= ?x74 (_ bv0 9))) (= ?x74 (_ bv1 9))) (= ?x74 (_ bv2 9))) (= ?x74 (_ bv3 9))))) + (let (($x116 (or (or (or (or $x96 (= ?x74 (_ bv4 9))) (= ?x74 (_ bv5 9))) (= ?x74 (_ bv6 9))) (= ?x74 (_ bv7 9))))) + (let (($x136 (or (or (or (or $x116 (= ?x74 (_ bv8 9))) (= ?x74 (_ bv9 9))) (= ?x74 (_ bv10 9))) (= ?x74 (_ bv11 9))))) + (let (($x156 (or (or (or (or $x136 (= ?x74 (_ bv12 9))) (= ?x74 (_ bv13 9))) (= ?x74 (_ bv14 9))) (= ?x74 (_ bv15 9))))) + (let (($x176 (or (or (or (or $x156 (= ?x74 (_ bv16 9))) (= ?x74 (_ bv17 9))) (= ?x74 (_ bv18 9))) (= ?x74 (_ bv19 9))))) + (let (($x76 (= ?x74 (_ bv511 9)))) + (or $x76 $x176))))))))))))))))))))))) (assert - (let (($x61 (= ethernet.dst_addr (_ bv1 48)))) - (let (($x62 (and true $x61))) - (let (($x63 (and true $x62))) - (let ((?x68 (ite $x63 0 (- 1)))) - (let (($x37 (bvugt standard_metadata.ingress_port (concat (_ bv0 5) (_ bv15 4))))) - (let (($x31 (bvugt standard_metadata.ingress_port (concat (_ bv0 5) (_ bv10 4))))) - (let (($x33 (and true $x31))) - (let (($x39 (and $x33 $x37))) - (let (($x40 (and $x33 (not $x37)))) - (let (($x50 (bvugt standard_metadata.ingress_port (concat (_ bv0 6) (_ bv5 3))))) - (let (($x34 (and true (not $x31)))) - (let (($x52 (and $x34 $x50))) - (let ((?x54 (ite $x52 (_ bv511 9) (ite $x40 (_ bv511 9) (ite $x39 (_ bv511 9) standard_metadata.egress_spec))))) - (let (($x53 (and $x34 (not $x50)))) - (let ((?x71 (ite $x63 (_ bv1 9) (ite (and true (not $x62)) (_ bv511 9) (ite $x53 (_ bv511 9) ?x54))))) - (let (($x73 (= ?x71 (_ bv511 9)))) - (and (and (not $x73) true) (= ?x68 (- 1)))))))))))))))))))) + (let (($x64 (= ethernet.dst_addr (_ bv1 48)))) + (let (($x65 (and true $x64))) + (let (($x66 (and true $x65))) + (let ((?x71 (ite $x66 0 (- 1)))) + (let (($x40 (bvugt standard_metadata.ingress_port (concat (_ bv0 5) (_ bv15 4))))) + (let (($x34 (bvugt standard_metadata.ingress_port (concat (_ bv0 5) (_ bv10 4))))) + (let (($x36 (and true $x34))) + (let (($x42 (and $x36 $x40))) + (let (($x43 (and $x36 (not $x40)))) + (let (($x53 (bvugt standard_metadata.ingress_port (concat (_ bv0 6) (_ bv5 3))))) + (let (($x37 (and true (not $x34)))) + (let (($x55 (and $x37 $x53))) + (let ((?x57 (ite $x55 (_ bv511 9) (ite $x43 (_ bv511 9) (ite $x42 (_ bv511 9) standard_metadata.egress_spec))))) + (let (($x56 (and $x37 (not $x53)))) + (let ((?x74 (ite $x66 (_ bv1 9) (ite (and true (not $x65)) (_ bv511 9) (ite $x56 (_ bv511 9) ?x57))))) + (let (($x76 (= ?x74 (_ bv511 9)))) + (and (and (not $x76) true) (= ?x71 (- 1)))))))))))))))))))) (check-sat) ; @@ -221,70 +221,70 @@ (declare-fun standard_metadata.egress_spec () (_ BitVec 9)) (declare-fun ethernet.dst_addr () (_ BitVec 48)) (assert - (let (($x170 (= standard_metadata.ingress_port (_ bv19 9)))) - (let (($x165 (= standard_metadata.ingress_port (_ bv18 9)))) - (let (($x160 (= standard_metadata.ingress_port (_ bv17 9)))) - (let (($x155 (= standard_metadata.ingress_port (_ bv16 9)))) - (let (($x150 (= standard_metadata.ingress_port (_ bv15 9)))) - (let (($x145 (= standard_metadata.ingress_port (_ bv14 9)))) - (let (($x140 (= standard_metadata.ingress_port (_ bv13 9)))) - (let (($x135 (= standard_metadata.ingress_port (_ bv12 9)))) - (let (($x130 (= standard_metadata.ingress_port (_ bv11 9)))) - (let (($x125 (= standard_metadata.ingress_port (_ bv10 9)))) - (let (($x120 (= standard_metadata.ingress_port (_ bv9 9)))) - (let (($x115 (= standard_metadata.ingress_port (_ bv8 9)))) - (let (($x110 (= standard_metadata.ingress_port (_ bv7 9)))) - (let (($x105 (= standard_metadata.ingress_port (_ bv6 9)))) - (let (($x100 (= standard_metadata.ingress_port (_ bv5 9)))) - (let (($x95 (= standard_metadata.ingress_port (_ bv4 9)))) - (let (($x90 (= standard_metadata.ingress_port (_ bv3 9)))) - (let (($x85 (= standard_metadata.ingress_port (_ bv2 9)))) - (let (($x80 (= standard_metadata.ingress_port (_ bv1 9)))) - (let (($x86 (or (or (or false (= standard_metadata.ingress_port (_ bv0 9))) $x80) $x85))) - (let (($x121 (or (or (or (or (or (or (or $x86 $x90) $x95) $x100) $x105) $x110) $x115) $x120))) - (let (($x156 (or (or (or (or (or (or (or $x121 $x125) $x130) $x135) $x140) $x145) $x150) $x155))) - (or (or (or $x156 $x160) $x165) $x170)))))))))))))))))))))))) + (let (($x173 (= standard_metadata.ingress_port (_ bv19 9)))) + (let (($x168 (= standard_metadata.ingress_port (_ bv18 9)))) + (let (($x163 (= standard_metadata.ingress_port (_ bv17 9)))) + (let (($x158 (= standard_metadata.ingress_port (_ bv16 9)))) + (let (($x153 (= standard_metadata.ingress_port (_ bv15 9)))) + (let (($x148 (= standard_metadata.ingress_port (_ bv14 9)))) + (let (($x143 (= standard_metadata.ingress_port (_ bv13 9)))) + (let (($x138 (= standard_metadata.ingress_port (_ bv12 9)))) + (let (($x133 (= standard_metadata.ingress_port (_ bv11 9)))) + (let (($x128 (= standard_metadata.ingress_port (_ bv10 9)))) + (let (($x123 (= standard_metadata.ingress_port (_ bv9 9)))) + (let (($x118 (= standard_metadata.ingress_port (_ bv8 9)))) + (let (($x113 (= standard_metadata.ingress_port (_ bv7 9)))) + (let (($x108 (= standard_metadata.ingress_port (_ bv6 9)))) + (let (($x103 (= standard_metadata.ingress_port (_ bv5 9)))) + (let (($x98 (= standard_metadata.ingress_port (_ bv4 9)))) + (let (($x93 (= standard_metadata.ingress_port (_ bv3 9)))) + (let (($x88 (= standard_metadata.ingress_port (_ bv2 9)))) + (let (($x83 (= standard_metadata.ingress_port (_ bv1 9)))) + (let (($x89 (or (or (or false (= standard_metadata.ingress_port (_ bv0 9))) $x83) $x88))) + (let (($x124 (or (or (or (or (or (or (or $x89 $x93) $x98) $x103) $x108) $x113) $x118) $x123))) + (let (($x159 (or (or (or (or (or (or (or $x124 $x128) $x133) $x138) $x143) $x148) $x153) $x158))) + (or (or (or $x159 $x163) $x168) $x173)))))))))))))))))))))))) (assert - (let (($x37 (bvugt standard_metadata.ingress_port (concat (_ bv0 5) (_ bv15 4))))) - (let (($x31 (bvugt standard_metadata.ingress_port (concat (_ bv0 5) (_ bv10 4))))) - (let (($x33 (and true $x31))) - (let (($x39 (and $x33 $x37))) - (let (($x40 (and $x33 (not $x37)))) - (let (($x50 (bvugt standard_metadata.ingress_port (concat (_ bv0 6) (_ bv5 3))))) - (let (($x34 (and true (not $x31)))) - (let (($x52 (and $x34 $x50))) - (let ((?x54 (ite $x52 (_ bv511 9) (ite $x40 (_ bv511 9) (ite $x39 (_ bv511 9) standard_metadata.egress_spec))))) - (let (($x53 (and $x34 (not $x50)))) - (let ((?x66 (ite (and true (not (and true (= ethernet.dst_addr (_ bv1 48))))) (_ bv511 9) (ite $x53 (_ bv511 9) ?x54)))) - (let (($x61 (= ethernet.dst_addr (_ bv1 48)))) - (let (($x62 (and true $x61))) - (let (($x63 (and true $x62))) - (let ((?x71 (ite $x63 (_ bv1 9) ?x66))) - (let (($x93 (or (or (or (or false (= ?x71 (_ bv0 9))) (= ?x71 (_ bv1 9))) (= ?x71 (_ bv2 9))) (= ?x71 (_ bv3 9))))) - (let (($x113 (or (or (or (or $x93 (= ?x71 (_ bv4 9))) (= ?x71 (_ bv5 9))) (= ?x71 (_ bv6 9))) (= ?x71 (_ bv7 9))))) - (let (($x133 (or (or (or (or $x113 (= ?x71 (_ bv8 9))) (= ?x71 (_ bv9 9))) (= ?x71 (_ bv10 9))) (= ?x71 (_ bv11 9))))) - (let (($x153 (or (or (or (or $x133 (= ?x71 (_ bv12 9))) (= ?x71 (_ bv13 9))) (= ?x71 (_ bv14 9))) (= ?x71 (_ bv15 9))))) - (let (($x173 (or (or (or (or $x153 (= ?x71 (_ bv16 9))) (= ?x71 (_ bv17 9))) (= ?x71 (_ bv18 9))) (= ?x71 (_ bv19 9))))) - (let (($x73 (= ?x71 (_ bv511 9)))) - (or $x73 $x173))))))))))))))))))))))) + (let (($x40 (bvugt standard_metadata.ingress_port (concat (_ bv0 5) (_ bv15 4))))) + (let (($x34 (bvugt standard_metadata.ingress_port (concat (_ bv0 5) (_ bv10 4))))) + (let (($x36 (and true $x34))) + (let (($x42 (and $x36 $x40))) + (let (($x43 (and $x36 (not $x40)))) + (let (($x53 (bvugt standard_metadata.ingress_port (concat (_ bv0 6) (_ bv5 3))))) + (let (($x37 (and true (not $x34)))) + (let (($x55 (and $x37 $x53))) + (let ((?x57 (ite $x55 (_ bv511 9) (ite $x43 (_ bv511 9) (ite $x42 (_ bv511 9) standard_metadata.egress_spec))))) + (let (($x56 (and $x37 (not $x53)))) + (let ((?x69 (ite (and true (not (and true (= ethernet.dst_addr (_ bv1 48))))) (_ bv511 9) (ite $x56 (_ bv511 9) ?x57)))) + (let (($x64 (= ethernet.dst_addr (_ bv1 48)))) + (let (($x65 (and true $x64))) + (let (($x66 (and true $x65))) + (let ((?x74 (ite $x66 (_ bv1 9) ?x69))) + (let (($x96 (or (or (or (or false (= ?x74 (_ bv0 9))) (= ?x74 (_ bv1 9))) (= ?x74 (_ bv2 9))) (= ?x74 (_ bv3 9))))) + (let (($x116 (or (or (or (or $x96 (= ?x74 (_ bv4 9))) (= ?x74 (_ bv5 9))) (= ?x74 (_ bv6 9))) (= ?x74 (_ bv7 9))))) + (let (($x136 (or (or (or (or $x116 (= ?x74 (_ bv8 9))) (= ?x74 (_ bv9 9))) (= ?x74 (_ bv10 9))) (= ?x74 (_ bv11 9))))) + (let (($x156 (or (or (or (or $x136 (= ?x74 (_ bv12 9))) (= ?x74 (_ bv13 9))) (= ?x74 (_ bv14 9))) (= ?x74 (_ bv15 9))))) + (let (($x176 (or (or (or (or $x156 (= ?x74 (_ bv16 9))) (= ?x74 (_ bv17 9))) (= ?x74 (_ bv18 9))) (= ?x74 (_ bv19 9))))) + (let (($x76 (= ?x74 (_ bv511 9)))) + (or $x76 $x176))))))))))))))))))))))) (assert - (let (($x61 (= ethernet.dst_addr (_ bv1 48)))) - (let (($x62 (and true $x61))) - (let (($x63 (and true $x62))) - (let ((?x68 (ite $x63 0 (- 1)))) - (let (($x37 (bvugt standard_metadata.ingress_port (concat (_ bv0 5) (_ bv15 4))))) - (let (($x31 (bvugt standard_metadata.ingress_port (concat (_ bv0 5) (_ bv10 4))))) - (let (($x33 (and true $x31))) - (let (($x39 (and $x33 $x37))) - (let (($x40 (and $x33 (not $x37)))) - (let (($x50 (bvugt standard_metadata.ingress_port (concat (_ bv0 6) (_ bv5 3))))) - (let (($x34 (and true (not $x31)))) - (let (($x52 (and $x34 $x50))) - (let ((?x54 (ite $x52 (_ bv511 9) (ite $x40 (_ bv511 9) (ite $x39 (_ bv511 9) standard_metadata.egress_spec))))) - (let (($x53 (and $x34 (not $x50)))) - (let ((?x71 (ite $x63 (_ bv1 9) (ite (and true (not $x62)) (_ bv511 9) (ite $x53 (_ bv511 9) ?x54))))) - (let (($x73 (= ?x71 (_ bv511 9)))) - (let (($x269 (and (not $x73) true))) - (and $x269 (= ?x68 0)))))))))))))))))))) + (let (($x64 (= ethernet.dst_addr (_ bv1 48)))) + (let (($x65 (and true $x64))) + (let (($x66 (and true $x65))) + (let ((?x71 (ite $x66 0 (- 1)))) + (let (($x40 (bvugt standard_metadata.ingress_port (concat (_ bv0 5) (_ bv15 4))))) + (let (($x34 (bvugt standard_metadata.ingress_port (concat (_ bv0 5) (_ bv10 4))))) + (let (($x36 (and true $x34))) + (let (($x42 (and $x36 $x40))) + (let (($x43 (and $x36 (not $x40)))) + (let (($x53 (bvugt standard_metadata.ingress_port (concat (_ bv0 6) (_ bv5 3))))) + (let (($x37 (and true (not $x34)))) + (let (($x55 (and $x37 $x53))) + (let ((?x57 (ite $x55 (_ bv511 9) (ite $x43 (_ bv511 9) (ite $x42 (_ bv511 9) standard_metadata.egress_spec))))) + (let (($x56 (and $x37 (not $x53)))) + (let ((?x74 (ite $x66 (_ bv1 9) (ite (and true (not $x65)) (_ bv511 9) (ite $x56 (_ bv511 9) ?x57))))) + (let (($x76 (= ?x74 (_ bv511 9)))) + (let (($x272 (and (not $x76) true))) + (and $x272 (= ?x71 0)))))))))))))))))))) (check-sat) diff --git a/p4_symbolic/symbolic/expected/conditional_sequence.smt2 b/p4_symbolic/symbolic/expected/conditional_sequence.smt2 index 521c9730..9d544276 100644 --- a/p4_symbolic/symbolic/expected/conditional_sequence.smt2 +++ b/p4_symbolic/symbolic/expected/conditional_sequence.smt2 @@ -4,19 +4,19 @@ (declare-fun standard_metadata.egress_spec () (_ BitVec 9)) (declare-fun h1.f1 () (_ BitVec 8)) (assert - (let (($x106 (= standard_metadata.ingress_port (_ bv1 9)))) - (or (or false (= standard_metadata.ingress_port (_ bv0 9))) $x106))) -(assert - (let (($x108 (= standard_metadata.egress_spec (_ bv1 9)))) - (let (($x92 (= standard_metadata.egress_spec (_ bv511 9)))) - (or $x92 (or (or false (= standard_metadata.egress_spec (_ bv0 9))) $x108))))) -(assert - (let ((?x37 (concat (_ bv0 7) (_ bv0 1)))) - (let (($x38 (= h1.f1 ?x37))) - (let (($x44 (ite $x38 false (and true (not $x38))))) - (let (($x92 (= standard_metadata.egress_spec (_ bv511 9)))) - (let (($x150 (not $x92))) - (and (and $x150 $x44) (= (- 1) (- 1))))))))) + (let (($x109 (= standard_metadata.ingress_port (_ bv1 9)))) + (or (or false (= standard_metadata.ingress_port (_ bv0 9))) $x109))) +(assert + (let (($x111 (= standard_metadata.egress_spec (_ bv1 9)))) + (let (($x95 (= standard_metadata.egress_spec (_ bv511 9)))) + (or $x95 (or (or false (= standard_metadata.egress_spec (_ bv0 9))) $x111))))) +(assert + (let ((?x40 (concat (_ bv0 7) (_ bv0 1)))) + (let (($x41 (= h1.f1 ?x40))) + (let (($x47 (ite $x41 false (and true (not $x41))))) + (let (($x95 (= standard_metadata.egress_spec (_ bv511 9)))) + (let (($x153 (not $x95))) + (and (and $x153 $x47) (= (- 1) (- 1))))))))) (check-sat) ; @@ -25,19 +25,19 @@ (declare-fun standard_metadata.egress_spec () (_ BitVec 9)) (declare-fun h1.f2 () (_ BitVec 8)) (assert - (let (($x106 (= standard_metadata.ingress_port (_ bv1 9)))) - (or (or false (= standard_metadata.ingress_port (_ bv0 9))) $x106))) + (let (($x109 (= standard_metadata.ingress_port (_ bv1 9)))) + (or (or false (= standard_metadata.ingress_port (_ bv0 9))) $x109))) (assert - (let (($x108 (= standard_metadata.egress_spec (_ bv1 9)))) - (let (($x92 (= standard_metadata.egress_spec (_ bv511 9)))) - (or $x92 (or (or false (= standard_metadata.egress_spec (_ bv0 9))) $x108))))) + (let (($x111 (= standard_metadata.egress_spec (_ bv1 9)))) + (let (($x95 (= standard_metadata.egress_spec (_ bv511 9)))) + (or $x95 (or (or false (= standard_metadata.egress_spec (_ bv0 9))) $x111))))) (assert - (let ((?x37 (concat (_ bv0 7) (_ bv0 1)))) - (let (($x45 (= h1.f2 ?x37))) - (let (($x50 (ite $x45 false (and true (not $x45))))) - (let (($x92 (= standard_metadata.egress_spec (_ bv511 9)))) - (let (($x150 (not $x92))) - (and (and $x150 $x50) (= (- 1) (- 1))))))))) + (let ((?x40 (concat (_ bv0 7) (_ bv0 1)))) + (let (($x48 (= h1.f2 ?x40))) + (let (($x53 (ite $x48 false (and true (not $x48))))) + (let (($x95 (= standard_metadata.egress_spec (_ bv511 9)))) + (let (($x153 (not $x95))) + (and (and $x153 $x53) (= (- 1) (- 1))))))))) (check-sat) ; @@ -46,19 +46,19 @@ (declare-fun standard_metadata.egress_spec () (_ BitVec 9)) (declare-fun h1.f3 () (_ BitVec 8)) (assert - (let (($x106 (= standard_metadata.ingress_port (_ bv1 9)))) - (or (or false (= standard_metadata.ingress_port (_ bv0 9))) $x106))) + (let (($x109 (= standard_metadata.ingress_port (_ bv1 9)))) + (or (or false (= standard_metadata.ingress_port (_ bv0 9))) $x109))) (assert - (let (($x108 (= standard_metadata.egress_spec (_ bv1 9)))) - (let (($x92 (= standard_metadata.egress_spec (_ bv511 9)))) - (or $x92 (or (or false (= standard_metadata.egress_spec (_ bv0 9))) $x108))))) + (let (($x111 (= standard_metadata.egress_spec (_ bv1 9)))) + (let (($x95 (= standard_metadata.egress_spec (_ bv511 9)))) + (or $x95 (or (or false (= standard_metadata.egress_spec (_ bv0 9))) $x111))))) (assert - (let ((?x37 (concat (_ bv0 7) (_ bv0 1)))) - (let (($x51 (= h1.f3 ?x37))) - (let (($x56 (ite $x51 false (and true (not $x51))))) - (let (($x92 (= standard_metadata.egress_spec (_ bv511 9)))) - (let (($x150 (not $x92))) - (and (and $x150 $x56) (= (- 1) (- 1))))))))) + (let ((?x40 (concat (_ bv0 7) (_ bv0 1)))) + (let (($x54 (= h1.f3 ?x40))) + (let (($x59 (ite $x54 false (and true (not $x54))))) + (let (($x95 (= standard_metadata.egress_spec (_ bv511 9)))) + (let (($x153 (not $x95))) + (and (and $x153 $x59) (= (- 1) (- 1))))))))) (check-sat) ; @@ -67,19 +67,19 @@ (declare-fun standard_metadata.egress_spec () (_ BitVec 9)) (declare-fun h1.f4 () (_ BitVec 8)) (assert - (let (($x106 (= standard_metadata.ingress_port (_ bv1 9)))) - (or (or false (= standard_metadata.ingress_port (_ bv0 9))) $x106))) + (let (($x109 (= standard_metadata.ingress_port (_ bv1 9)))) + (or (or false (= standard_metadata.ingress_port (_ bv0 9))) $x109))) (assert - (let (($x108 (= standard_metadata.egress_spec (_ bv1 9)))) - (let (($x92 (= standard_metadata.egress_spec (_ bv511 9)))) - (or $x92 (or (or false (= standard_metadata.egress_spec (_ bv0 9))) $x108))))) + (let (($x111 (= standard_metadata.egress_spec (_ bv1 9)))) + (let (($x95 (= standard_metadata.egress_spec (_ bv511 9)))) + (or $x95 (or (or false (= standard_metadata.egress_spec (_ bv0 9))) $x111))))) (assert - (let ((?x37 (concat (_ bv0 7) (_ bv0 1)))) - (let (($x57 (= h1.f4 ?x37))) - (let (($x62 (ite $x57 false (and true (not $x57))))) - (let (($x92 (= standard_metadata.egress_spec (_ bv511 9)))) - (let (($x150 (not $x92))) - (and (and $x150 $x62) (= (- 1) (- 1))))))))) + (let ((?x40 (concat (_ bv0 7) (_ bv0 1)))) + (let (($x60 (= h1.f4 ?x40))) + (let (($x65 (ite $x60 false (and true (not $x60))))) + (let (($x95 (= standard_metadata.egress_spec (_ bv511 9)))) + (let (($x153 (not $x95))) + (and (and $x153 $x65) (= (- 1) (- 1))))))))) (check-sat) ; @@ -88,19 +88,19 @@ (declare-fun standard_metadata.egress_spec () (_ BitVec 9)) (declare-fun h1.f5 () (_ BitVec 8)) (assert - (let (($x106 (= standard_metadata.ingress_port (_ bv1 9)))) - (or (or false (= standard_metadata.ingress_port (_ bv0 9))) $x106))) + (let (($x109 (= standard_metadata.ingress_port (_ bv1 9)))) + (or (or false (= standard_metadata.ingress_port (_ bv0 9))) $x109))) (assert - (let (($x108 (= standard_metadata.egress_spec (_ bv1 9)))) - (let (($x92 (= standard_metadata.egress_spec (_ bv511 9)))) - (or $x92 (or (or false (= standard_metadata.egress_spec (_ bv0 9))) $x108))))) + (let (($x111 (= standard_metadata.egress_spec (_ bv1 9)))) + (let (($x95 (= standard_metadata.egress_spec (_ bv511 9)))) + (or $x95 (or (or false (= standard_metadata.egress_spec (_ bv0 9))) $x111))))) (assert - (let ((?x37 (concat (_ bv0 7) (_ bv0 1)))) - (let (($x63 (= h1.f5 ?x37))) - (let (($x68 (ite $x63 false (and true (not $x63))))) - (let (($x92 (= standard_metadata.egress_spec (_ bv511 9)))) - (let (($x150 (not $x92))) - (and (and $x150 $x68) (= (- 1) (- 1))))))))) + (let ((?x40 (concat (_ bv0 7) (_ bv0 1)))) + (let (($x66 (= h1.f5 ?x40))) + (let (($x71 (ite $x66 false (and true (not $x66))))) + (let (($x95 (= standard_metadata.egress_spec (_ bv511 9)))) + (let (($x153 (not $x95))) + (and (and $x153 $x71) (= (- 1) (- 1))))))))) (check-sat) ; @@ -109,19 +109,19 @@ (declare-fun standard_metadata.egress_spec () (_ BitVec 9)) (declare-fun h1.f6 () (_ BitVec 8)) (assert - (let (($x106 (= standard_metadata.ingress_port (_ bv1 9)))) - (or (or false (= standard_metadata.ingress_port (_ bv0 9))) $x106))) + (let (($x109 (= standard_metadata.ingress_port (_ bv1 9)))) + (or (or false (= standard_metadata.ingress_port (_ bv0 9))) $x109))) (assert - (let (($x108 (= standard_metadata.egress_spec (_ bv1 9)))) - (let (($x92 (= standard_metadata.egress_spec (_ bv511 9)))) - (or $x92 (or (or false (= standard_metadata.egress_spec (_ bv0 9))) $x108))))) + (let (($x111 (= standard_metadata.egress_spec (_ bv1 9)))) + (let (($x95 (= standard_metadata.egress_spec (_ bv511 9)))) + (or $x95 (or (or false (= standard_metadata.egress_spec (_ bv0 9))) $x111))))) (assert - (let ((?x37 (concat (_ bv0 7) (_ bv0 1)))) - (let (($x69 (= h1.f6 ?x37))) - (let (($x74 (ite $x69 false (and true (not $x69))))) - (let (($x92 (= standard_metadata.egress_spec (_ bv511 9)))) - (let (($x150 (not $x92))) - (and (and $x150 $x74) (= (- 1) (- 1))))))))) + (let ((?x40 (concat (_ bv0 7) (_ bv0 1)))) + (let (($x72 (= h1.f6 ?x40))) + (let (($x77 (ite $x72 false (and true (not $x72))))) + (let (($x95 (= standard_metadata.egress_spec (_ bv511 9)))) + (let (($x153 (not $x95))) + (and (and $x153 $x77) (= (- 1) (- 1))))))))) (check-sat) ; @@ -130,19 +130,19 @@ (declare-fun standard_metadata.egress_spec () (_ BitVec 9)) (declare-fun h1.f7 () (_ BitVec 8)) (assert - (let (($x106 (= standard_metadata.ingress_port (_ bv1 9)))) - (or (or false (= standard_metadata.ingress_port (_ bv0 9))) $x106))) + (let (($x109 (= standard_metadata.ingress_port (_ bv1 9)))) + (or (or false (= standard_metadata.ingress_port (_ bv0 9))) $x109))) (assert - (let (($x108 (= standard_metadata.egress_spec (_ bv1 9)))) - (let (($x92 (= standard_metadata.egress_spec (_ bv511 9)))) - (or $x92 (or (or false (= standard_metadata.egress_spec (_ bv0 9))) $x108))))) + (let (($x111 (= standard_metadata.egress_spec (_ bv1 9)))) + (let (($x95 (= standard_metadata.egress_spec (_ bv511 9)))) + (or $x95 (or (or false (= standard_metadata.egress_spec (_ bv0 9))) $x111))))) (assert - (let ((?x37 (concat (_ bv0 7) (_ bv0 1)))) - (let (($x75 (= h1.f7 ?x37))) - (let (($x80 (ite $x75 false (and true (not $x75))))) - (let (($x92 (= standard_metadata.egress_spec (_ bv511 9)))) - (let (($x150 (not $x92))) - (and (and $x150 $x80) (= (- 1) (- 1))))))))) + (let ((?x40 (concat (_ bv0 7) (_ bv0 1)))) + (let (($x78 (= h1.f7 ?x40))) + (let (($x83 (ite $x78 false (and true (not $x78))))) + (let (($x95 (= standard_metadata.egress_spec (_ bv511 9)))) + (let (($x153 (not $x95))) + (and (and $x153 $x83) (= (- 1) (- 1))))))))) (check-sat) ; @@ -151,19 +151,19 @@ (declare-fun standard_metadata.egress_spec () (_ BitVec 9)) (declare-fun h1.f8 () (_ BitVec 8)) (assert - (let (($x106 (= standard_metadata.ingress_port (_ bv1 9)))) - (or (or false (= standard_metadata.ingress_port (_ bv0 9))) $x106))) + (let (($x109 (= standard_metadata.ingress_port (_ bv1 9)))) + (or (or false (= standard_metadata.ingress_port (_ bv0 9))) $x109))) (assert - (let (($x108 (= standard_metadata.egress_spec (_ bv1 9)))) - (let (($x92 (= standard_metadata.egress_spec (_ bv511 9)))) - (or $x92 (or (or false (= standard_metadata.egress_spec (_ bv0 9))) $x108))))) + (let (($x111 (= standard_metadata.egress_spec (_ bv1 9)))) + (let (($x95 (= standard_metadata.egress_spec (_ bv511 9)))) + (or $x95 (or (or false (= standard_metadata.egress_spec (_ bv0 9))) $x111))))) (assert - (let ((?x37 (concat (_ bv0 7) (_ bv0 1)))) - (let (($x81 (= h1.f8 ?x37))) - (let (($x86 (ite $x81 false (and true (not $x81))))) - (let (($x92 (= standard_metadata.egress_spec (_ bv511 9)))) - (let (($x150 (not $x92))) - (and (and $x150 $x86) (= (- 1) (- 1))))))))) + (let ((?x40 (concat (_ bv0 7) (_ bv0 1)))) + (let (($x84 (= h1.f8 ?x40))) + (let (($x89 (ite $x84 false (and true (not $x84))))) + (let (($x95 (= standard_metadata.egress_spec (_ bv511 9)))) + (let (($x153 (not $x95))) + (and (and $x153 $x89) (= (- 1) (- 1))))))))) (check-sat) ; @@ -172,19 +172,19 @@ (declare-fun standard_metadata.egress_spec () (_ BitVec 9)) (declare-fun h1.f1 () (_ BitVec 8)) (assert - (let (($x106 (= standard_metadata.ingress_port (_ bv1 9)))) - (or (or false (= standard_metadata.ingress_port (_ bv0 9))) $x106))) + (let (($x109 (= standard_metadata.ingress_port (_ bv1 9)))) + (or (or false (= standard_metadata.ingress_port (_ bv0 9))) $x109))) (assert - (let (($x108 (= standard_metadata.egress_spec (_ bv1 9)))) - (let (($x92 (= standard_metadata.egress_spec (_ bv511 9)))) - (or $x92 (or (or false (= standard_metadata.egress_spec (_ bv0 9))) $x108))))) + (let (($x111 (= standard_metadata.egress_spec (_ bv1 9)))) + (let (($x95 (= standard_metadata.egress_spec (_ bv511 9)))) + (or $x95 (or (or false (= standard_metadata.egress_spec (_ bv0 9))) $x111))))) (assert - (let ((?x37 (concat (_ bv0 7) (_ bv0 1)))) - (let (($x38 (= h1.f1 ?x37))) - (let (($x43 (ite $x38 (and true $x38) false))) - (let (($x92 (= standard_metadata.egress_spec (_ bv511 9)))) - (let (($x150 (not $x92))) - (and (and $x150 $x43) (= (- 1) (- 1))))))))) + (let ((?x40 (concat (_ bv0 7) (_ bv0 1)))) + (let (($x41 (= h1.f1 ?x40))) + (let (($x46 (ite $x41 (and true $x41) false))) + (let (($x95 (= standard_metadata.egress_spec (_ bv511 9)))) + (let (($x153 (not $x95))) + (and (and $x153 $x46) (= (- 1) (- 1))))))))) (check-sat) ; @@ -193,19 +193,19 @@ (declare-fun standard_metadata.egress_spec () (_ BitVec 9)) (declare-fun h1.f2 () (_ BitVec 8)) (assert - (let (($x106 (= standard_metadata.ingress_port (_ bv1 9)))) - (or (or false (= standard_metadata.ingress_port (_ bv0 9))) $x106))) + (let (($x109 (= standard_metadata.ingress_port (_ bv1 9)))) + (or (or false (= standard_metadata.ingress_port (_ bv0 9))) $x109))) (assert - (let (($x108 (= standard_metadata.egress_spec (_ bv1 9)))) - (let (($x92 (= standard_metadata.egress_spec (_ bv511 9)))) - (or $x92 (or (or false (= standard_metadata.egress_spec (_ bv0 9))) $x108))))) + (let (($x111 (= standard_metadata.egress_spec (_ bv1 9)))) + (let (($x95 (= standard_metadata.egress_spec (_ bv511 9)))) + (or $x95 (or (or false (= standard_metadata.egress_spec (_ bv0 9))) $x111))))) (assert - (let ((?x37 (concat (_ bv0 7) (_ bv0 1)))) - (let (($x45 (= h1.f2 ?x37))) - (let (($x49 (ite $x45 (and true $x45) false))) - (let (($x92 (= standard_metadata.egress_spec (_ bv511 9)))) - (let (($x150 (not $x92))) - (and (and $x150 $x49) (= (- 1) (- 1))))))))) + (let ((?x40 (concat (_ bv0 7) (_ bv0 1)))) + (let (($x48 (= h1.f2 ?x40))) + (let (($x52 (ite $x48 (and true $x48) false))) + (let (($x95 (= standard_metadata.egress_spec (_ bv511 9)))) + (let (($x153 (not $x95))) + (and (and $x153 $x52) (= (- 1) (- 1))))))))) (check-sat) ; @@ -214,19 +214,19 @@ (declare-fun standard_metadata.egress_spec () (_ BitVec 9)) (declare-fun h1.f3 () (_ BitVec 8)) (assert - (let (($x106 (= standard_metadata.ingress_port (_ bv1 9)))) - (or (or false (= standard_metadata.ingress_port (_ bv0 9))) $x106))) + (let (($x109 (= standard_metadata.ingress_port (_ bv1 9)))) + (or (or false (= standard_metadata.ingress_port (_ bv0 9))) $x109))) (assert - (let (($x108 (= standard_metadata.egress_spec (_ bv1 9)))) - (let (($x92 (= standard_metadata.egress_spec (_ bv511 9)))) - (or $x92 (or (or false (= standard_metadata.egress_spec (_ bv0 9))) $x108))))) + (let (($x111 (= standard_metadata.egress_spec (_ bv1 9)))) + (let (($x95 (= standard_metadata.egress_spec (_ bv511 9)))) + (or $x95 (or (or false (= standard_metadata.egress_spec (_ bv0 9))) $x111))))) (assert - (let ((?x37 (concat (_ bv0 7) (_ bv0 1)))) - (let (($x51 (= h1.f3 ?x37))) - (let (($x55 (ite $x51 (and true $x51) false))) - (let (($x92 (= standard_metadata.egress_spec (_ bv511 9)))) - (let (($x150 (not $x92))) - (and (and $x150 $x55) (= (- 1) (- 1))))))))) + (let ((?x40 (concat (_ bv0 7) (_ bv0 1)))) + (let (($x54 (= h1.f3 ?x40))) + (let (($x58 (ite $x54 (and true $x54) false))) + (let (($x95 (= standard_metadata.egress_spec (_ bv511 9)))) + (let (($x153 (not $x95))) + (and (and $x153 $x58) (= (- 1) (- 1))))))))) (check-sat) ; @@ -235,19 +235,19 @@ (declare-fun standard_metadata.egress_spec () (_ BitVec 9)) (declare-fun h1.f4 () (_ BitVec 8)) (assert - (let (($x106 (= standard_metadata.ingress_port (_ bv1 9)))) - (or (or false (= standard_metadata.ingress_port (_ bv0 9))) $x106))) + (let (($x109 (= standard_metadata.ingress_port (_ bv1 9)))) + (or (or false (= standard_metadata.ingress_port (_ bv0 9))) $x109))) (assert - (let (($x108 (= standard_metadata.egress_spec (_ bv1 9)))) - (let (($x92 (= standard_metadata.egress_spec (_ bv511 9)))) - (or $x92 (or (or false (= standard_metadata.egress_spec (_ bv0 9))) $x108))))) + (let (($x111 (= standard_metadata.egress_spec (_ bv1 9)))) + (let (($x95 (= standard_metadata.egress_spec (_ bv511 9)))) + (or $x95 (or (or false (= standard_metadata.egress_spec (_ bv0 9))) $x111))))) (assert - (let ((?x37 (concat (_ bv0 7) (_ bv0 1)))) - (let (($x57 (= h1.f4 ?x37))) - (let (($x61 (ite $x57 (and true $x57) false))) - (let (($x92 (= standard_metadata.egress_spec (_ bv511 9)))) - (let (($x150 (not $x92))) - (and (and $x150 $x61) (= (- 1) (- 1))))))))) + (let ((?x40 (concat (_ bv0 7) (_ bv0 1)))) + (let (($x60 (= h1.f4 ?x40))) + (let (($x64 (ite $x60 (and true $x60) false))) + (let (($x95 (= standard_metadata.egress_spec (_ bv511 9)))) + (let (($x153 (not $x95))) + (and (and $x153 $x64) (= (- 1) (- 1))))))))) (check-sat) ; @@ -256,19 +256,19 @@ (declare-fun standard_metadata.egress_spec () (_ BitVec 9)) (declare-fun h1.f5 () (_ BitVec 8)) (assert - (let (($x106 (= standard_metadata.ingress_port (_ bv1 9)))) - (or (or false (= standard_metadata.ingress_port (_ bv0 9))) $x106))) + (let (($x109 (= standard_metadata.ingress_port (_ bv1 9)))) + (or (or false (= standard_metadata.ingress_port (_ bv0 9))) $x109))) (assert - (let (($x108 (= standard_metadata.egress_spec (_ bv1 9)))) - (let (($x92 (= standard_metadata.egress_spec (_ bv511 9)))) - (or $x92 (or (or false (= standard_metadata.egress_spec (_ bv0 9))) $x108))))) + (let (($x111 (= standard_metadata.egress_spec (_ bv1 9)))) + (let (($x95 (= standard_metadata.egress_spec (_ bv511 9)))) + (or $x95 (or (or false (= standard_metadata.egress_spec (_ bv0 9))) $x111))))) (assert - (let ((?x37 (concat (_ bv0 7) (_ bv0 1)))) - (let (($x63 (= h1.f5 ?x37))) - (let (($x67 (ite $x63 (and true $x63) false))) - (let (($x92 (= standard_metadata.egress_spec (_ bv511 9)))) - (let (($x150 (not $x92))) - (and (and $x150 $x67) (= (- 1) (- 1))))))))) + (let ((?x40 (concat (_ bv0 7) (_ bv0 1)))) + (let (($x66 (= h1.f5 ?x40))) + (let (($x70 (ite $x66 (and true $x66) false))) + (let (($x95 (= standard_metadata.egress_spec (_ bv511 9)))) + (let (($x153 (not $x95))) + (and (and $x153 $x70) (= (- 1) (- 1))))))))) (check-sat) ; @@ -277,19 +277,19 @@ (declare-fun standard_metadata.egress_spec () (_ BitVec 9)) (declare-fun h1.f6 () (_ BitVec 8)) (assert - (let (($x106 (= standard_metadata.ingress_port (_ bv1 9)))) - (or (or false (= standard_metadata.ingress_port (_ bv0 9))) $x106))) + (let (($x109 (= standard_metadata.ingress_port (_ bv1 9)))) + (or (or false (= standard_metadata.ingress_port (_ bv0 9))) $x109))) (assert - (let (($x108 (= standard_metadata.egress_spec (_ bv1 9)))) - (let (($x92 (= standard_metadata.egress_spec (_ bv511 9)))) - (or $x92 (or (or false (= standard_metadata.egress_spec (_ bv0 9))) $x108))))) + (let (($x111 (= standard_metadata.egress_spec (_ bv1 9)))) + (let (($x95 (= standard_metadata.egress_spec (_ bv511 9)))) + (or $x95 (or (or false (= standard_metadata.egress_spec (_ bv0 9))) $x111))))) (assert - (let ((?x37 (concat (_ bv0 7) (_ bv0 1)))) - (let (($x69 (= h1.f6 ?x37))) - (let (($x73 (ite $x69 (and true $x69) false))) - (let (($x92 (= standard_metadata.egress_spec (_ bv511 9)))) - (let (($x150 (not $x92))) - (and (and $x150 $x73) (= (- 1) (- 1))))))))) + (let ((?x40 (concat (_ bv0 7) (_ bv0 1)))) + (let (($x72 (= h1.f6 ?x40))) + (let (($x76 (ite $x72 (and true $x72) false))) + (let (($x95 (= standard_metadata.egress_spec (_ bv511 9)))) + (let (($x153 (not $x95))) + (and (and $x153 $x76) (= (- 1) (- 1))))))))) (check-sat) ; @@ -298,19 +298,19 @@ (declare-fun standard_metadata.egress_spec () (_ BitVec 9)) (declare-fun h1.f7 () (_ BitVec 8)) (assert - (let (($x106 (= standard_metadata.ingress_port (_ bv1 9)))) - (or (or false (= standard_metadata.ingress_port (_ bv0 9))) $x106))) + (let (($x109 (= standard_metadata.ingress_port (_ bv1 9)))) + (or (or false (= standard_metadata.ingress_port (_ bv0 9))) $x109))) (assert - (let (($x108 (= standard_metadata.egress_spec (_ bv1 9)))) - (let (($x92 (= standard_metadata.egress_spec (_ bv511 9)))) - (or $x92 (or (or false (= standard_metadata.egress_spec (_ bv0 9))) $x108))))) + (let (($x111 (= standard_metadata.egress_spec (_ bv1 9)))) + (let (($x95 (= standard_metadata.egress_spec (_ bv511 9)))) + (or $x95 (or (or false (= standard_metadata.egress_spec (_ bv0 9))) $x111))))) (assert - (let ((?x37 (concat (_ bv0 7) (_ bv0 1)))) - (let (($x75 (= h1.f7 ?x37))) - (let (($x79 (ite $x75 (and true $x75) false))) - (let (($x92 (= standard_metadata.egress_spec (_ bv511 9)))) - (let (($x150 (not $x92))) - (and (and $x150 $x79) (= (- 1) (- 1))))))))) + (let ((?x40 (concat (_ bv0 7) (_ bv0 1)))) + (let (($x78 (= h1.f7 ?x40))) + (let (($x82 (ite $x78 (and true $x78) false))) + (let (($x95 (= standard_metadata.egress_spec (_ bv511 9)))) + (let (($x153 (not $x95))) + (and (and $x153 $x82) (= (- 1) (- 1))))))))) (check-sat) ; @@ -319,19 +319,19 @@ (declare-fun standard_metadata.egress_spec () (_ BitVec 9)) (declare-fun h1.f8 () (_ BitVec 8)) (assert - (let (($x106 (= standard_metadata.ingress_port (_ bv1 9)))) - (or (or false (= standard_metadata.ingress_port (_ bv0 9))) $x106))) + (let (($x109 (= standard_metadata.ingress_port (_ bv1 9)))) + (or (or false (= standard_metadata.ingress_port (_ bv0 9))) $x109))) (assert - (let (($x108 (= standard_metadata.egress_spec (_ bv1 9)))) - (let (($x92 (= standard_metadata.egress_spec (_ bv511 9)))) - (or $x92 (or (or false (= standard_metadata.egress_spec (_ bv0 9))) $x108))))) + (let (($x111 (= standard_metadata.egress_spec (_ bv1 9)))) + (let (($x95 (= standard_metadata.egress_spec (_ bv511 9)))) + (or $x95 (or (or false (= standard_metadata.egress_spec (_ bv0 9))) $x111))))) (assert - (let ((?x37 (concat (_ bv0 7) (_ bv0 1)))) - (let (($x81 (= h1.f8 ?x37))) - (let (($x85 (ite $x81 (and true $x81) false))) - (let (($x92 (= standard_metadata.egress_spec (_ bv511 9)))) - (let (($x150 (not $x92))) - (and (and $x150 $x85) (= (- 1) (- 1))))))))) + (let ((?x40 (concat (_ bv0 7) (_ bv0 1)))) + (let (($x84 (= h1.f8 ?x40))) + (let (($x88 (ite $x84 (and true $x84) false))) + (let (($x95 (= standard_metadata.egress_spec (_ bv511 9)))) + (let (($x153 (not $x95))) + (and (and $x153 $x88) (= (- 1) (- 1))))))))) (check-sat) ; @@ -340,16 +340,16 @@ (declare-fun standard_metadata.egress_spec () (_ BitVec 9)) (declare-fun h1.fr () (_ BitVec 8)) (assert - (let (($x106 (= standard_metadata.ingress_port (_ bv1 9)))) - (or (or false (= standard_metadata.ingress_port (_ bv0 9))) $x106))) + (let (($x109 (= standard_metadata.ingress_port (_ bv1 9)))) + (or (or false (= standard_metadata.ingress_port (_ bv0 9))) $x109))) (assert - (let (($x108 (= standard_metadata.egress_spec (_ bv1 9)))) - (let (($x92 (= standard_metadata.egress_spec (_ bv511 9)))) - (or $x92 (or (or false (= standard_metadata.egress_spec (_ bv0 9))) $x108))))) + (let (($x111 (= standard_metadata.egress_spec (_ bv1 9)))) + (let (($x95 (= standard_metadata.egress_spec (_ bv511 9)))) + (or $x95 (or (or false (= standard_metadata.egress_spec (_ bv0 9))) $x111))))) (assert - (let (($x90 (and true (and true (= h1.fr (_ bv255 8)))))) - (let ((?x94 (ite $x90 0 (- 1)))) - (and (and (not (= standard_metadata.egress_spec (_ bv511 9))) true) (= ?x94 (- 1)))))) + (let (($x93 (and true (and true (= h1.fr (_ bv255 8)))))) + (let ((?x97 (ite $x93 0 (- 1)))) + (and (and (not (= standard_metadata.egress_spec (_ bv511 9))) true) (= ?x97 (- 1)))))) (check-sat) ; @@ -358,14 +358,14 @@ (declare-fun standard_metadata.egress_spec () (_ BitVec 9)) (declare-fun h1.fr () (_ BitVec 8)) (assert - (let (($x106 (= standard_metadata.ingress_port (_ bv1 9)))) - (or (or false (= standard_metadata.ingress_port (_ bv0 9))) $x106))) + (let (($x109 (= standard_metadata.ingress_port (_ bv1 9)))) + (or (or false (= standard_metadata.ingress_port (_ bv0 9))) $x109))) (assert - (let (($x108 (= standard_metadata.egress_spec (_ bv1 9)))) - (let (($x92 (= standard_metadata.egress_spec (_ bv511 9)))) - (or $x92 (or (or false (= standard_metadata.egress_spec (_ bv0 9))) $x108))))) + (let (($x111 (= standard_metadata.egress_spec (_ bv1 9)))) + (let (($x95 (= standard_metadata.egress_spec (_ bv511 9)))) + (or $x95 (or (or false (= standard_metadata.egress_spec (_ bv0 9))) $x111))))) (assert - (let (($x90 (and true (and true (= h1.fr (_ bv255 8)))))) - (let ((?x94 (ite $x90 0 (- 1)))) - (and (and (not (= standard_metadata.egress_spec (_ bv511 9))) true) (= ?x94 0))))) + (let (($x93 (and true (and true (= h1.fr (_ bv255 8)))))) + (let ((?x97 (ite $x93 0 (- 1)))) + (and (and (not (= standard_metadata.egress_spec (_ bv511 9))) true) (= ?x97 0))))) (check-sat) diff --git a/p4_symbolic/symbolic/expected/hardcoded.smt2 b/p4_symbolic/symbolic/expected/hardcoded.smt2 index 76c947da..b4336cd2 100644 --- a/p4_symbolic/symbolic/expected/hardcoded.smt2 +++ b/p4_symbolic/symbolic/expected/hardcoded.smt2 @@ -3,25 +3,25 @@ (declare-fun standard_metadata.ingress_port () (_ BitVec 9)) (declare-fun standard_metadata.egress_spec () (_ BitVec 9)) (assert - (let (($x47 (= standard_metadata.ingress_port (_ bv1 9)))) - (or (or false (= standard_metadata.ingress_port (_ bv0 9))) $x47))) + (let (($x49 (= standard_metadata.ingress_port (_ bv1 9)))) + (or (or false (= standard_metadata.ingress_port (_ bv0 9))) $x49))) (assert - (let ((?x26 (concat (_ bv0 8) (_ bv0 1)))) - (let (($x27 (= standard_metadata.ingress_port ?x26))) - (let (($x29 (and true $x27))) - (let (($x30 (and true (not $x27)))) - (let ((?x35 (ite $x30 ?x26 (ite $x29 (concat (_ bv0 8) (_ bv1 1)) standard_metadata.egress_spec)))) - (let (($x39 (= ?x35 (_ bv511 9)))) - (or $x39 (or (or false (= ?x35 (_ bv0 9))) (= ?x35 (_ bv1 9))))))))))) + (let ((?x28 (concat (_ bv0 8) (_ bv0 1)))) + (let (($x29 (= standard_metadata.ingress_port ?x28))) + (let (($x31 (and true $x29))) + (let (($x32 (and true (not $x29)))) + (let ((?x37 (ite $x32 ?x28 (ite $x31 (concat (_ bv0 8) (_ bv1 1)) standard_metadata.egress_spec)))) + (let (($x41 (= ?x37 (_ bv511 9)))) + (or $x41 (or (or false (= ?x37 (_ bv0 9))) (= ?x37 (_ bv1 9))))))))))) (assert - (let ((?x26 (concat (_ bv0 8) (_ bv0 1)))) - (let (($x27 (= standard_metadata.ingress_port ?x26))) - (let (($x29 (and true $x27))) - (let (($x36 (ite $x27 $x29 false))) - (let (($x30 (and true (not $x27)))) - (let ((?x35 (ite $x30 ?x26 (ite $x29 (concat (_ bv0 8) (_ bv1 1)) standard_metadata.egress_spec)))) - (let (($x39 (= ?x35 (_ bv511 9)))) - (and (and (not $x39) $x36) (= (- 1) (- 1))))))))))) + (let ((?x28 (concat (_ bv0 8) (_ bv0 1)))) + (let (($x29 (= standard_metadata.ingress_port ?x28))) + (let (($x31 (and true $x29))) + (let (($x38 (ite $x29 $x31 false))) + (let (($x32 (and true (not $x29)))) + (let ((?x37 (ite $x32 ?x28 (ite $x31 (concat (_ bv0 8) (_ bv1 1)) standard_metadata.egress_spec)))) + (let (($x41 (= ?x37 (_ bv511 9)))) + (and (and (not $x41) $x38) (= (- 1) (- 1))))))))))) (check-sat) ; @@ -29,24 +29,24 @@ (declare-fun standard_metadata.ingress_port () (_ BitVec 9)) (declare-fun standard_metadata.egress_spec () (_ BitVec 9)) (assert - (let (($x47 (= standard_metadata.ingress_port (_ bv1 9)))) - (or (or false (= standard_metadata.ingress_port (_ bv0 9))) $x47))) + (let (($x49 (= standard_metadata.ingress_port (_ bv1 9)))) + (or (or false (= standard_metadata.ingress_port (_ bv0 9))) $x49))) (assert - (let ((?x26 (concat (_ bv0 8) (_ bv0 1)))) - (let (($x27 (= standard_metadata.ingress_port ?x26))) - (let (($x29 (and true $x27))) - (let (($x30 (and true (not $x27)))) - (let ((?x35 (ite $x30 ?x26 (ite $x29 (concat (_ bv0 8) (_ bv1 1)) standard_metadata.egress_spec)))) - (let (($x39 (= ?x35 (_ bv511 9)))) - (or $x39 (or (or false (= ?x35 (_ bv0 9))) (= ?x35 (_ bv1 9))))))))))) + (let ((?x28 (concat (_ bv0 8) (_ bv0 1)))) + (let (($x29 (= standard_metadata.ingress_port ?x28))) + (let (($x31 (and true $x29))) + (let (($x32 (and true (not $x29)))) + (let ((?x37 (ite $x32 ?x28 (ite $x31 (concat (_ bv0 8) (_ bv1 1)) standard_metadata.egress_spec)))) + (let (($x41 (= ?x37 (_ bv511 9)))) + (or $x41 (or (or false (= ?x37 (_ bv0 9))) (= ?x37 (_ bv1 9))))))))))) (assert - (let (($x30 (and true (not (= standard_metadata.ingress_port (concat (_ bv0 8) (_ bv0 1))))))) - (let ((?x26 (concat (_ bv0 8) (_ bv0 1)))) - (let (($x27 (= standard_metadata.ingress_port ?x26))) - (let (($x37 (ite $x27 false $x30))) - (let (($x29 (and true $x27))) - (let ((?x35 (ite $x30 ?x26 (ite $x29 (concat (_ bv0 8) (_ bv1 1)) standard_metadata.egress_spec)))) - (let (($x39 (= ?x35 (_ bv511 9)))) - (and (and (not $x39) $x37) (= (- 1) (- 1))))))))))) + (let (($x32 (and true (not (= standard_metadata.ingress_port (concat (_ bv0 8) (_ bv0 1))))))) + (let ((?x28 (concat (_ bv0 8) (_ bv0 1)))) + (let (($x29 (= standard_metadata.ingress_port ?x28))) + (let (($x39 (ite $x29 false $x32))) + (let (($x31 (and true $x29))) + (let ((?x37 (ite $x32 ?x28 (ite $x31 (concat (_ bv0 8) (_ bv1 1)) standard_metadata.egress_spec)))) + (let (($x41 (= ?x37 (_ bv511 9)))) + (and (and (not $x41) $x39) (= (- 1) (- 1))))))))))) (check-sat) diff --git a/p4_symbolic/symbolic/expected/reflector.smt2 b/p4_symbolic/symbolic/expected/reflector.smt2 index 13fb49fd..dea91acc 100644 --- a/p4_symbolic/symbolic/expected/reflector.smt2 +++ b/p4_symbolic/symbolic/expected/reflector.smt2 @@ -3,15 +3,15 @@ (declare-fun standard_metadata.ingress_port () (_ BitVec 9)) (declare-fun standard_metadata.egress_spec () (_ BitVec 9)) (assert - (let (($x35 (= standard_metadata.ingress_port (_ bv1 9)))) - (or (or false (= standard_metadata.ingress_port (_ bv0 9))) $x35))) + (let (($x37 (= standard_metadata.ingress_port (_ bv1 9)))) + (or (or false (= standard_metadata.ingress_port (_ bv0 9))) $x37))) (assert - (let ((?x25 (ite true standard_metadata.ingress_port standard_metadata.egress_spec))) - (let (($x27 (= ?x25 (_ bv511 9)))) - (or $x27 (or (or false (= ?x25 (_ bv0 9))) (= ?x25 (_ bv1 9))))))) + (let ((?x27 (ite true standard_metadata.ingress_port standard_metadata.egress_spec))) + (let (($x29 (= ?x27 (_ bv511 9)))) + (or $x29 (or (or false (= ?x27 (_ bv0 9))) (= ?x27 (_ bv1 9))))))) (assert - (let ((?x25 (ite true standard_metadata.ingress_port standard_metadata.egress_spec))) - (let (($x27 (= ?x25 (_ bv511 9)))) - (and (and (not $x27) true) (= (- 1) (- 1)))))) + (let ((?x27 (ite true standard_metadata.ingress_port standard_metadata.egress_spec))) + (let (($x29 (= ?x27 (_ bv511 9)))) + (and (and (not $x29) true) (= (- 1) (- 1)))))) (check-sat) diff --git a/p4_symbolic/symbolic/expected/string_optional.smt2 b/p4_symbolic/symbolic/expected/string_optional.smt2 index be5e676a..34984f99 100644 --- a/p4_symbolic/symbolic/expected/string_optional.smt2 +++ b/p4_symbolic/symbolic/expected/string_optional.smt2 @@ -4,50 +4,50 @@ (declare-fun standard_metadata.egress_spec () (_ BitVec 9)) (declare-fun scalars.metadata.string_field () (_ BitVec 9)) (assert - (let (($x38 (= standard_metadata.ingress_port (_ bv2 9)))) - (let (($x35 (= standard_metadata.ingress_port (_ bv1 9)))) - (or (or (or false (= standard_metadata.ingress_port (_ bv0 9))) $x35) $x38)))) + (let (($x40 (= standard_metadata.ingress_port (_ bv2 9)))) + (let (($x37 (= standard_metadata.ingress_port (_ bv1 9)))) + (or (or (or false (= standard_metadata.ingress_port (_ bv0 9))) $x37) $x40)))) (assert - (let ((?x65 (concat (_ bv0 7) (_ bv2 2)))) - (let ((?x29 (concat (_ bv0 8) (_ bv0 1)))) - (let (($x38 (= standard_metadata.ingress_port (_ bv2 9)))) - (let (($x39 (and true $x38))) - (let (($x32 (= standard_metadata.ingress_port (_ bv0 9)))) - (let (($x33 (and true $x32))) - (let (($x41 (not $x33))) - (let (($x46 (and true (and $x41 (not (and true (= standard_metadata.ingress_port (_ bv1 9)))))))) - (let ((?x54 (ite (and $x46 $x39) ?x29 (ite true ?x29 scalars.metadata.string_field)))) - (let (($x35 (= standard_metadata.ingress_port (_ bv1 9)))) - (let (($x36 (and true $x35))) - (let (($x40 (and true $x33))) - (let ((?x66 (ite $x40 ?x65 (ite (and (and true $x41) $x36) (concat (_ bv0 8) (_ bv1 1)) ?x54)))) - (let (($x68 (and true (= ?x66 ?x65)))) - (let ((?x78 (ite (and (and true (not $x68)) true) (_ bv1 9) standard_metadata.egress_spec))) - (let (($x69 (and true $x68))) - (let ((?x80 (ite $x69 (_ bv0 9) ?x78))) - (let (($x49 (= ?x80 (_ bv511 9)))) - (or $x49 (or (or (or false (= ?x80 (_ bv0 9))) (= ?x80 (_ bv1 9))) (= ?x80 (_ bv2 9))))))))))))))))))))))) + (let ((?x67 (concat (_ bv0 7) (_ bv2 2)))) + (let ((?x31 (concat (_ bv0 8) (_ bv0 1)))) + (let (($x40 (= standard_metadata.ingress_port (_ bv2 9)))) + (let (($x41 (and true $x40))) + (let (($x34 (= standard_metadata.ingress_port (_ bv0 9)))) + (let (($x35 (and true $x34))) + (let (($x43 (not $x35))) + (let (($x48 (and true (and $x43 (not (and true (= standard_metadata.ingress_port (_ bv1 9)))))))) + (let ((?x56 (ite (and $x48 $x41) ?x31 (ite true ?x31 scalars.metadata.string_field)))) + (let (($x37 (= standard_metadata.ingress_port (_ bv1 9)))) + (let (($x38 (and true $x37))) + (let (($x42 (and true $x35))) + (let ((?x68 (ite $x42 ?x67 (ite (and (and true $x43) $x38) (concat (_ bv0 8) (_ bv1 1)) ?x56)))) + (let (($x70 (and true (= ?x68 ?x67)))) + (let ((?x80 (ite (and (and true (not $x70)) true) (_ bv1 9) standard_metadata.egress_spec))) + (let (($x71 (and true $x70))) + (let ((?x82 (ite $x71 (_ bv0 9) ?x80))) + (let (($x51 (= ?x82 (_ bv511 9)))) + (or $x51 (or (or (or false (= ?x82 (_ bv0 9))) (= ?x82 (_ bv1 9))) (= ?x82 (_ bv2 9))))))))))))))))))))))) (assert - (let ((?x65 (concat (_ bv0 7) (_ bv2 2)))) - (let ((?x29 (concat (_ bv0 8) (_ bv0 1)))) - (let (($x38 (= standard_metadata.ingress_port (_ bv2 9)))) - (let (($x39 (and true $x38))) - (let (($x32 (= standard_metadata.ingress_port (_ bv0 9)))) - (let (($x33 (and true $x32))) - (let (($x41 (not $x33))) - (let (($x46 (and true (and $x41 (not (and true (= standard_metadata.ingress_port (_ bv1 9)))))))) - (let ((?x54 (ite (and $x46 $x39) ?x29 (ite true ?x29 scalars.metadata.string_field)))) - (let (($x35 (= standard_metadata.ingress_port (_ bv1 9)))) - (let (($x36 (and true $x35))) - (let (($x40 (and true $x33))) - (let ((?x66 (ite $x40 ?x65 (ite (and (and true $x41) $x36) (concat (_ bv0 8) (_ bv1 1)) ?x54)))) - (let (($x68 (and true (= ?x66 ?x65)))) - (let (($x69 (and true $x68))) - (let ((?x79 (ite $x69 0 (ite (and true true) 1 (- 1))))) - (let ((?x78 (ite (and (and true (not $x68)) true) (_ bv1 9) standard_metadata.egress_spec))) - (let ((?x80 (ite $x69 (_ bv0 9) ?x78))) - (let (($x49 (= ?x80 (_ bv511 9)))) - (and (and (not $x49) true) (= ?x79 (- 1))))))))))))))))))))))) + (let ((?x67 (concat (_ bv0 7) (_ bv2 2)))) + (let ((?x31 (concat (_ bv0 8) (_ bv0 1)))) + (let (($x40 (= standard_metadata.ingress_port (_ bv2 9)))) + (let (($x41 (and true $x40))) + (let (($x34 (= standard_metadata.ingress_port (_ bv0 9)))) + (let (($x35 (and true $x34))) + (let (($x43 (not $x35))) + (let (($x48 (and true (and $x43 (not (and true (= standard_metadata.ingress_port (_ bv1 9)))))))) + (let ((?x56 (ite (and $x48 $x41) ?x31 (ite true ?x31 scalars.metadata.string_field)))) + (let (($x37 (= standard_metadata.ingress_port (_ bv1 9)))) + (let (($x38 (and true $x37))) + (let (($x42 (and true $x35))) + (let ((?x68 (ite $x42 ?x67 (ite (and (and true $x43) $x38) (concat (_ bv0 8) (_ bv1 1)) ?x56)))) + (let (($x70 (and true (= ?x68 ?x67)))) + (let (($x71 (and true $x70))) + (let ((?x81 (ite $x71 0 (ite (and true true) 1 (- 1))))) + (let ((?x80 (ite (and (and true (not $x70)) true) (_ bv1 9) standard_metadata.egress_spec))) + (let ((?x82 (ite $x71 (_ bv0 9) ?x80))) + (let (($x51 (= ?x82 (_ bv511 9)))) + (and (and (not $x51) true) (= ?x81 (- 1))))))))))))))))))))))) (check-sat) ; @@ -56,51 +56,51 @@ (declare-fun standard_metadata.egress_spec () (_ BitVec 9)) (declare-fun scalars.metadata.string_field () (_ BitVec 9)) (assert - (let (($x38 (= standard_metadata.ingress_port (_ bv2 9)))) - (let (($x35 (= standard_metadata.ingress_port (_ bv1 9)))) - (or (or (or false (= standard_metadata.ingress_port (_ bv0 9))) $x35) $x38)))) + (let (($x40 (= standard_metadata.ingress_port (_ bv2 9)))) + (let (($x37 (= standard_metadata.ingress_port (_ bv1 9)))) + (or (or (or false (= standard_metadata.ingress_port (_ bv0 9))) $x37) $x40)))) (assert - (let ((?x65 (concat (_ bv0 7) (_ bv2 2)))) - (let ((?x29 (concat (_ bv0 8) (_ bv0 1)))) - (let (($x38 (= standard_metadata.ingress_port (_ bv2 9)))) - (let (($x39 (and true $x38))) - (let (($x32 (= standard_metadata.ingress_port (_ bv0 9)))) - (let (($x33 (and true $x32))) - (let (($x41 (not $x33))) - (let (($x46 (and true (and $x41 (not (and true (= standard_metadata.ingress_port (_ bv1 9)))))))) - (let ((?x54 (ite (and $x46 $x39) ?x29 (ite true ?x29 scalars.metadata.string_field)))) - (let (($x35 (= standard_metadata.ingress_port (_ bv1 9)))) - (let (($x36 (and true $x35))) - (let (($x40 (and true $x33))) - (let ((?x66 (ite $x40 ?x65 (ite (and (and true $x41) $x36) (concat (_ bv0 8) (_ bv1 1)) ?x54)))) - (let (($x68 (and true (= ?x66 ?x65)))) - (let ((?x78 (ite (and (and true (not $x68)) true) (_ bv1 9) standard_metadata.egress_spec))) - (let (($x69 (and true $x68))) - (let ((?x80 (ite $x69 (_ bv0 9) ?x78))) - (let (($x49 (= ?x80 (_ bv511 9)))) - (or $x49 (or (or (or false (= ?x80 (_ bv0 9))) (= ?x80 (_ bv1 9))) (= ?x80 (_ bv2 9))))))))))))))))))))))) + (let ((?x67 (concat (_ bv0 7) (_ bv2 2)))) + (let ((?x31 (concat (_ bv0 8) (_ bv0 1)))) + (let (($x40 (= standard_metadata.ingress_port (_ bv2 9)))) + (let (($x41 (and true $x40))) + (let (($x34 (= standard_metadata.ingress_port (_ bv0 9)))) + (let (($x35 (and true $x34))) + (let (($x43 (not $x35))) + (let (($x48 (and true (and $x43 (not (and true (= standard_metadata.ingress_port (_ bv1 9)))))))) + (let ((?x56 (ite (and $x48 $x41) ?x31 (ite true ?x31 scalars.metadata.string_field)))) + (let (($x37 (= standard_metadata.ingress_port (_ bv1 9)))) + (let (($x38 (and true $x37))) + (let (($x42 (and true $x35))) + (let ((?x68 (ite $x42 ?x67 (ite (and (and true $x43) $x38) (concat (_ bv0 8) (_ bv1 1)) ?x56)))) + (let (($x70 (and true (= ?x68 ?x67)))) + (let ((?x80 (ite (and (and true (not $x70)) true) (_ bv1 9) standard_metadata.egress_spec))) + (let (($x71 (and true $x70))) + (let ((?x82 (ite $x71 (_ bv0 9) ?x80))) + (let (($x51 (= ?x82 (_ bv511 9)))) + (or $x51 (or (or (or false (= ?x82 (_ bv0 9))) (= ?x82 (_ bv1 9))) (= ?x82 (_ bv2 9))))))))))))))))))))))) (assert - (let ((?x65 (concat (_ bv0 7) (_ bv2 2)))) - (let ((?x29 (concat (_ bv0 8) (_ bv0 1)))) - (let (($x38 (= standard_metadata.ingress_port (_ bv2 9)))) - (let (($x39 (and true $x38))) - (let (($x32 (= standard_metadata.ingress_port (_ bv0 9)))) - (let (($x33 (and true $x32))) - (let (($x41 (not $x33))) - (let (($x46 (and true (and $x41 (not (and true (= standard_metadata.ingress_port (_ bv1 9)))))))) - (let ((?x54 (ite (and $x46 $x39) ?x29 (ite true ?x29 scalars.metadata.string_field)))) - (let (($x35 (= standard_metadata.ingress_port (_ bv1 9)))) - (let (($x36 (and true $x35))) - (let (($x40 (and true $x33))) - (let ((?x66 (ite $x40 ?x65 (ite (and (and true $x41) $x36) (concat (_ bv0 8) (_ bv1 1)) ?x54)))) - (let (($x68 (and true (= ?x66 ?x65)))) - (let (($x69 (and true $x68))) - (let ((?x79 (ite $x69 0 (ite (and true true) 1 (- 1))))) - (let ((?x78 (ite (and (and true (not $x68)) true) (_ bv1 9) standard_metadata.egress_spec))) - (let ((?x80 (ite $x69 (_ bv0 9) ?x78))) - (let (($x49 (= ?x80 (_ bv511 9)))) - (let (($x117 (and (not $x49) true))) - (and $x117 (= ?x79 0))))))))))))))))))))))) + (let ((?x67 (concat (_ bv0 7) (_ bv2 2)))) + (let ((?x31 (concat (_ bv0 8) (_ bv0 1)))) + (let (($x40 (= standard_metadata.ingress_port (_ bv2 9)))) + (let (($x41 (and true $x40))) + (let (($x34 (= standard_metadata.ingress_port (_ bv0 9)))) + (let (($x35 (and true $x34))) + (let (($x43 (not $x35))) + (let (($x48 (and true (and $x43 (not (and true (= standard_metadata.ingress_port (_ bv1 9)))))))) + (let ((?x56 (ite (and $x48 $x41) ?x31 (ite true ?x31 scalars.metadata.string_field)))) + (let (($x37 (= standard_metadata.ingress_port (_ bv1 9)))) + (let (($x38 (and true $x37))) + (let (($x42 (and true $x35))) + (let ((?x68 (ite $x42 ?x67 (ite (and (and true $x43) $x38) (concat (_ bv0 8) (_ bv1 1)) ?x56)))) + (let (($x70 (and true (= ?x68 ?x67)))) + (let (($x71 (and true $x70))) + (let ((?x81 (ite $x71 0 (ite (and true true) 1 (- 1))))) + (let ((?x80 (ite (and (and true (not $x70)) true) (_ bv1 9) standard_metadata.egress_spec))) + (let ((?x82 (ite $x71 (_ bv0 9) ?x80))) + (let (($x51 (= ?x82 (_ bv511 9)))) + (let (($x119 (and (not $x51) true))) + (and $x119 (= ?x81 0))))))))))))))))))))))) (check-sat) ; @@ -109,50 +109,50 @@ (declare-fun standard_metadata.egress_spec () (_ BitVec 9)) (declare-fun scalars.metadata.string_field () (_ BitVec 9)) (assert - (let (($x38 (= standard_metadata.ingress_port (_ bv2 9)))) - (let (($x35 (= standard_metadata.ingress_port (_ bv1 9)))) - (or (or (or false (= standard_metadata.ingress_port (_ bv0 9))) $x35) $x38)))) + (let (($x40 (= standard_metadata.ingress_port (_ bv2 9)))) + (let (($x37 (= standard_metadata.ingress_port (_ bv1 9)))) + (or (or (or false (= standard_metadata.ingress_port (_ bv0 9))) $x37) $x40)))) (assert - (let ((?x65 (concat (_ bv0 7) (_ bv2 2)))) - (let ((?x29 (concat (_ bv0 8) (_ bv0 1)))) - (let (($x38 (= standard_metadata.ingress_port (_ bv2 9)))) - (let (($x39 (and true $x38))) - (let (($x32 (= standard_metadata.ingress_port (_ bv0 9)))) - (let (($x33 (and true $x32))) - (let (($x41 (not $x33))) - (let (($x46 (and true (and $x41 (not (and true (= standard_metadata.ingress_port (_ bv1 9)))))))) - (let ((?x54 (ite (and $x46 $x39) ?x29 (ite true ?x29 scalars.metadata.string_field)))) - (let (($x35 (= standard_metadata.ingress_port (_ bv1 9)))) - (let (($x36 (and true $x35))) - (let (($x40 (and true $x33))) - (let ((?x66 (ite $x40 ?x65 (ite (and (and true $x41) $x36) (concat (_ bv0 8) (_ bv1 1)) ?x54)))) - (let (($x68 (and true (= ?x66 ?x65)))) - (let ((?x78 (ite (and (and true (not $x68)) true) (_ bv1 9) standard_metadata.egress_spec))) - (let (($x69 (and true $x68))) - (let ((?x80 (ite $x69 (_ bv0 9) ?x78))) - (let (($x49 (= ?x80 (_ bv511 9)))) - (or $x49 (or (or (or false (= ?x80 (_ bv0 9))) (= ?x80 (_ bv1 9))) (= ?x80 (_ bv2 9))))))))))))))))))))))) + (let ((?x67 (concat (_ bv0 7) (_ bv2 2)))) + (let ((?x31 (concat (_ bv0 8) (_ bv0 1)))) + (let (($x40 (= standard_metadata.ingress_port (_ bv2 9)))) + (let (($x41 (and true $x40))) + (let (($x34 (= standard_metadata.ingress_port (_ bv0 9)))) + (let (($x35 (and true $x34))) + (let (($x43 (not $x35))) + (let (($x48 (and true (and $x43 (not (and true (= standard_metadata.ingress_port (_ bv1 9)))))))) + (let ((?x56 (ite (and $x48 $x41) ?x31 (ite true ?x31 scalars.metadata.string_field)))) + (let (($x37 (= standard_metadata.ingress_port (_ bv1 9)))) + (let (($x38 (and true $x37))) + (let (($x42 (and true $x35))) + (let ((?x68 (ite $x42 ?x67 (ite (and (and true $x43) $x38) (concat (_ bv0 8) (_ bv1 1)) ?x56)))) + (let (($x70 (and true (= ?x68 ?x67)))) + (let ((?x80 (ite (and (and true (not $x70)) true) (_ bv1 9) standard_metadata.egress_spec))) + (let (($x71 (and true $x70))) + (let ((?x82 (ite $x71 (_ bv0 9) ?x80))) + (let (($x51 (= ?x82 (_ bv511 9)))) + (or $x51 (or (or (or false (= ?x82 (_ bv0 9))) (= ?x82 (_ bv1 9))) (= ?x82 (_ bv2 9))))))))))))))))))))))) (assert - (let ((?x65 (concat (_ bv0 7) (_ bv2 2)))) - (let ((?x29 (concat (_ bv0 8) (_ bv0 1)))) - (let (($x38 (= standard_metadata.ingress_port (_ bv2 9)))) - (let (($x39 (and true $x38))) - (let (($x32 (= standard_metadata.ingress_port (_ bv0 9)))) - (let (($x33 (and true $x32))) - (let (($x41 (not $x33))) - (let (($x46 (and true (and $x41 (not (and true (= standard_metadata.ingress_port (_ bv1 9)))))))) - (let ((?x54 (ite (and $x46 $x39) ?x29 (ite true ?x29 scalars.metadata.string_field)))) - (let (($x35 (= standard_metadata.ingress_port (_ bv1 9)))) - (let (($x36 (and true $x35))) - (let (($x40 (and true $x33))) - (let ((?x66 (ite $x40 ?x65 (ite (and (and true $x41) $x36) (concat (_ bv0 8) (_ bv1 1)) ?x54)))) - (let (($x68 (and true (= ?x66 ?x65)))) - (let (($x69 (and true $x68))) - (let ((?x79 (ite $x69 0 (ite (and true true) 1 (- 1))))) - (let ((?x78 (ite (and (and true (not $x68)) true) (_ bv1 9) standard_metadata.egress_spec))) - (let ((?x80 (ite $x69 (_ bv0 9) ?x78))) - (let (($x49 (= ?x80 (_ bv511 9)))) - (and (and (not $x49) true) (= ?x79 1)))))))))))))))))))))) + (let ((?x67 (concat (_ bv0 7) (_ bv2 2)))) + (let ((?x31 (concat (_ bv0 8) (_ bv0 1)))) + (let (($x40 (= standard_metadata.ingress_port (_ bv2 9)))) + (let (($x41 (and true $x40))) + (let (($x34 (= standard_metadata.ingress_port (_ bv0 9)))) + (let (($x35 (and true $x34))) + (let (($x43 (not $x35))) + (let (($x48 (and true (and $x43 (not (and true (= standard_metadata.ingress_port (_ bv1 9)))))))) + (let ((?x56 (ite (and $x48 $x41) ?x31 (ite true ?x31 scalars.metadata.string_field)))) + (let (($x37 (= standard_metadata.ingress_port (_ bv1 9)))) + (let (($x38 (and true $x37))) + (let (($x42 (and true $x35))) + (let ((?x68 (ite $x42 ?x67 (ite (and (and true $x43) $x38) (concat (_ bv0 8) (_ bv1 1)) ?x56)))) + (let (($x70 (and true (= ?x68 ?x67)))) + (let (($x71 (and true $x70))) + (let ((?x81 (ite $x71 0 (ite (and true true) 1 (- 1))))) + (let ((?x80 (ite (and (and true (not $x70)) true) (_ bv1 9) standard_metadata.egress_spec))) + (let ((?x82 (ite $x71 (_ bv0 9) ?x80))) + (let (($x51 (= ?x82 (_ bv511 9)))) + (and (and (not $x51) true) (= ?x81 1)))))))))))))))))))))) (check-sat) ; @@ -161,52 +161,52 @@ (declare-fun standard_metadata.egress_spec () (_ BitVec 9)) (declare-fun scalars.metadata.string_field () (_ BitVec 9)) (assert - (let (($x38 (= standard_metadata.ingress_port (_ bv2 9)))) - (let (($x35 (= standard_metadata.ingress_port (_ bv1 9)))) - (or (or (or false (= standard_metadata.ingress_port (_ bv0 9))) $x35) $x38)))) + (let (($x40 (= standard_metadata.ingress_port (_ bv2 9)))) + (let (($x37 (= standard_metadata.ingress_port (_ bv1 9)))) + (or (or (or false (= standard_metadata.ingress_port (_ bv0 9))) $x37) $x40)))) (assert - (let ((?x65 (concat (_ bv0 7) (_ bv2 2)))) - (let ((?x29 (concat (_ bv0 8) (_ bv0 1)))) - (let (($x38 (= standard_metadata.ingress_port (_ bv2 9)))) - (let (($x39 (and true $x38))) - (let (($x32 (= standard_metadata.ingress_port (_ bv0 9)))) - (let (($x33 (and true $x32))) - (let (($x41 (not $x33))) - (let (($x46 (and true (and $x41 (not (and true (= standard_metadata.ingress_port (_ bv1 9)))))))) - (let ((?x54 (ite (and $x46 $x39) ?x29 (ite true ?x29 scalars.metadata.string_field)))) - (let (($x35 (= standard_metadata.ingress_port (_ bv1 9)))) - (let (($x36 (and true $x35))) - (let (($x40 (and true $x33))) - (let ((?x66 (ite $x40 ?x65 (ite (and (and true $x41) $x36) (concat (_ bv0 8) (_ bv1 1)) ?x54)))) - (let (($x68 (and true (= ?x66 ?x65)))) - (let ((?x78 (ite (and (and true (not $x68)) true) (_ bv1 9) standard_metadata.egress_spec))) - (let (($x69 (and true $x68))) - (let ((?x80 (ite $x69 (_ bv0 9) ?x78))) - (let (($x49 (= ?x80 (_ bv511 9)))) - (or $x49 (or (or (or false (= ?x80 (_ bv0 9))) (= ?x80 (_ bv1 9))) (= ?x80 (_ bv2 9))))))))))))))))))))))) + (let ((?x67 (concat (_ bv0 7) (_ bv2 2)))) + (let ((?x31 (concat (_ bv0 8) (_ bv0 1)))) + (let (($x40 (= standard_metadata.ingress_port (_ bv2 9)))) + (let (($x41 (and true $x40))) + (let (($x34 (= standard_metadata.ingress_port (_ bv0 9)))) + (let (($x35 (and true $x34))) + (let (($x43 (not $x35))) + (let (($x48 (and true (and $x43 (not (and true (= standard_metadata.ingress_port (_ bv1 9)))))))) + (let ((?x56 (ite (and $x48 $x41) ?x31 (ite true ?x31 scalars.metadata.string_field)))) + (let (($x37 (= standard_metadata.ingress_port (_ bv1 9)))) + (let (($x38 (and true $x37))) + (let (($x42 (and true $x35))) + (let ((?x68 (ite $x42 ?x67 (ite (and (and true $x43) $x38) (concat (_ bv0 8) (_ bv1 1)) ?x56)))) + (let (($x70 (and true (= ?x68 ?x67)))) + (let ((?x80 (ite (and (and true (not $x70)) true) (_ bv1 9) standard_metadata.egress_spec))) + (let (($x71 (and true $x70))) + (let ((?x82 (ite $x71 (_ bv0 9) ?x80))) + (let (($x51 (= ?x82 (_ bv511 9)))) + (or $x51 (or (or (or false (= ?x82 (_ bv0 9))) (= ?x82 (_ bv1 9))) (= ?x82 (_ bv2 9))))))))))))))))))))))) (assert - (let ((?x53 (ite (and true (and true (= standard_metadata.ingress_port (_ bv2 9)))) 2 (- 1)))) - (let ((?x57 (ite (and true (and true (= standard_metadata.ingress_port (_ bv1 9)))) 1 ?x53))) - (let (($x32 (= standard_metadata.ingress_port (_ bv0 9)))) - (let (($x33 (and true $x32))) - (let (($x40 (and true $x33))) - (let ((?x62 (ite $x40 0 ?x57))) - (let ((?x65 (concat (_ bv0 7) (_ bv2 2)))) - (let ((?x29 (concat (_ bv0 8) (_ bv0 1)))) - (let (($x38 (= standard_metadata.ingress_port (_ bv2 9)))) - (let (($x39 (and true $x38))) - (let (($x41 (not $x33))) - (let (($x46 (and true (and $x41 (not (and true (= standard_metadata.ingress_port (_ bv1 9)))))))) - (let ((?x54 (ite (and $x46 $x39) ?x29 (ite true ?x29 scalars.metadata.string_field)))) - (let (($x35 (= standard_metadata.ingress_port (_ bv1 9)))) - (let (($x36 (and true $x35))) - (let ((?x66 (ite $x40 ?x65 (ite (and (and true $x41) $x36) (concat (_ bv0 8) (_ bv1 1)) ?x54)))) - (let (($x68 (and true (= ?x66 ?x65)))) - (let ((?x78 (ite (and (and true (not $x68)) true) (_ bv1 9) standard_metadata.egress_spec))) - (let (($x69 (and true $x68))) - (let ((?x80 (ite $x69 (_ bv0 9) ?x78))) - (let (($x49 (= ?x80 (_ bv511 9)))) - (and (and (not $x49) true) (= ?x62 (- 1))))))))))))))))))))))))) + (let ((?x55 (ite (and true (and true (= standard_metadata.ingress_port (_ bv2 9)))) 2 (- 1)))) + (let ((?x59 (ite (and true (and true (= standard_metadata.ingress_port (_ bv1 9)))) 1 ?x55))) + (let (($x34 (= standard_metadata.ingress_port (_ bv0 9)))) + (let (($x35 (and true $x34))) + (let (($x42 (and true $x35))) + (let ((?x64 (ite $x42 0 ?x59))) + (let ((?x67 (concat (_ bv0 7) (_ bv2 2)))) + (let ((?x31 (concat (_ bv0 8) (_ bv0 1)))) + (let (($x40 (= standard_metadata.ingress_port (_ bv2 9)))) + (let (($x41 (and true $x40))) + (let (($x43 (not $x35))) + (let (($x48 (and true (and $x43 (not (and true (= standard_metadata.ingress_port (_ bv1 9)))))))) + (let ((?x56 (ite (and $x48 $x41) ?x31 (ite true ?x31 scalars.metadata.string_field)))) + (let (($x37 (= standard_metadata.ingress_port (_ bv1 9)))) + (let (($x38 (and true $x37))) + (let ((?x68 (ite $x42 ?x67 (ite (and (and true $x43) $x38) (concat (_ bv0 8) (_ bv1 1)) ?x56)))) + (let (($x70 (and true (= ?x68 ?x67)))) + (let ((?x80 (ite (and (and true (not $x70)) true) (_ bv1 9) standard_metadata.egress_spec))) + (let (($x71 (and true $x70))) + (let ((?x82 (ite $x71 (_ bv0 9) ?x80))) + (let (($x51 (= ?x82 (_ bv511 9)))) + (and (and (not $x51) true) (= ?x64 (- 1))))))))))))))))))))))))) (check-sat) ; @@ -215,53 +215,53 @@ (declare-fun standard_metadata.egress_spec () (_ BitVec 9)) (declare-fun scalars.metadata.string_field () (_ BitVec 9)) (assert - (let (($x38 (= standard_metadata.ingress_port (_ bv2 9)))) - (let (($x35 (= standard_metadata.ingress_port (_ bv1 9)))) - (or (or (or false (= standard_metadata.ingress_port (_ bv0 9))) $x35) $x38)))) + (let (($x40 (= standard_metadata.ingress_port (_ bv2 9)))) + (let (($x37 (= standard_metadata.ingress_port (_ bv1 9)))) + (or (or (or false (= standard_metadata.ingress_port (_ bv0 9))) $x37) $x40)))) (assert - (let ((?x65 (concat (_ bv0 7) (_ bv2 2)))) - (let ((?x29 (concat (_ bv0 8) (_ bv0 1)))) - (let (($x38 (= standard_metadata.ingress_port (_ bv2 9)))) - (let (($x39 (and true $x38))) - (let (($x32 (= standard_metadata.ingress_port (_ bv0 9)))) - (let (($x33 (and true $x32))) - (let (($x41 (not $x33))) - (let (($x46 (and true (and $x41 (not (and true (= standard_metadata.ingress_port (_ bv1 9)))))))) - (let ((?x54 (ite (and $x46 $x39) ?x29 (ite true ?x29 scalars.metadata.string_field)))) - (let (($x35 (= standard_metadata.ingress_port (_ bv1 9)))) - (let (($x36 (and true $x35))) - (let (($x40 (and true $x33))) - (let ((?x66 (ite $x40 ?x65 (ite (and (and true $x41) $x36) (concat (_ bv0 8) (_ bv1 1)) ?x54)))) - (let (($x68 (and true (= ?x66 ?x65)))) - (let ((?x78 (ite (and (and true (not $x68)) true) (_ bv1 9) standard_metadata.egress_spec))) - (let (($x69 (and true $x68))) - (let ((?x80 (ite $x69 (_ bv0 9) ?x78))) - (let (($x49 (= ?x80 (_ bv511 9)))) - (or $x49 (or (or (or false (= ?x80 (_ bv0 9))) (= ?x80 (_ bv1 9))) (= ?x80 (_ bv2 9))))))))))))))))))))))) + (let ((?x67 (concat (_ bv0 7) (_ bv2 2)))) + (let ((?x31 (concat (_ bv0 8) (_ bv0 1)))) + (let (($x40 (= standard_metadata.ingress_port (_ bv2 9)))) + (let (($x41 (and true $x40))) + (let (($x34 (= standard_metadata.ingress_port (_ bv0 9)))) + (let (($x35 (and true $x34))) + (let (($x43 (not $x35))) + (let (($x48 (and true (and $x43 (not (and true (= standard_metadata.ingress_port (_ bv1 9)))))))) + (let ((?x56 (ite (and $x48 $x41) ?x31 (ite true ?x31 scalars.metadata.string_field)))) + (let (($x37 (= standard_metadata.ingress_port (_ bv1 9)))) + (let (($x38 (and true $x37))) + (let (($x42 (and true $x35))) + (let ((?x68 (ite $x42 ?x67 (ite (and (and true $x43) $x38) (concat (_ bv0 8) (_ bv1 1)) ?x56)))) + (let (($x70 (and true (= ?x68 ?x67)))) + (let ((?x80 (ite (and (and true (not $x70)) true) (_ bv1 9) standard_metadata.egress_spec))) + (let (($x71 (and true $x70))) + (let ((?x82 (ite $x71 (_ bv0 9) ?x80))) + (let (($x51 (= ?x82 (_ bv511 9)))) + (or $x51 (or (or (or false (= ?x82 (_ bv0 9))) (= ?x82 (_ bv1 9))) (= ?x82 (_ bv2 9))))))))))))))))))))))) (assert - (let ((?x53 (ite (and true (and true (= standard_metadata.ingress_port (_ bv2 9)))) 2 (- 1)))) - (let ((?x57 (ite (and true (and true (= standard_metadata.ingress_port (_ bv1 9)))) 1 ?x53))) - (let (($x32 (= standard_metadata.ingress_port (_ bv0 9)))) - (let (($x33 (and true $x32))) - (let (($x40 (and true $x33))) - (let ((?x62 (ite $x40 0 ?x57))) - (let ((?x65 (concat (_ bv0 7) (_ bv2 2)))) - (let ((?x29 (concat (_ bv0 8) (_ bv0 1)))) - (let (($x38 (= standard_metadata.ingress_port (_ bv2 9)))) - (let (($x39 (and true $x38))) - (let (($x41 (not $x33))) - (let (($x46 (and true (and $x41 (not (and true (= standard_metadata.ingress_port (_ bv1 9)))))))) - (let ((?x54 (ite (and $x46 $x39) ?x29 (ite true ?x29 scalars.metadata.string_field)))) - (let (($x35 (= standard_metadata.ingress_port (_ bv1 9)))) - (let (($x36 (and true $x35))) - (let ((?x66 (ite $x40 ?x65 (ite (and (and true $x41) $x36) (concat (_ bv0 8) (_ bv1 1)) ?x54)))) - (let (($x68 (and true (= ?x66 ?x65)))) - (let ((?x78 (ite (and (and true (not $x68)) true) (_ bv1 9) standard_metadata.egress_spec))) - (let (($x69 (and true $x68))) - (let ((?x80 (ite $x69 (_ bv0 9) ?x78))) - (let (($x49 (= ?x80 (_ bv511 9)))) - (let (($x117 (and (not $x49) true))) - (and $x117 (= ?x62 0))))))))))))))))))))))))) + (let ((?x55 (ite (and true (and true (= standard_metadata.ingress_port (_ bv2 9)))) 2 (- 1)))) + (let ((?x59 (ite (and true (and true (= standard_metadata.ingress_port (_ bv1 9)))) 1 ?x55))) + (let (($x34 (= standard_metadata.ingress_port (_ bv0 9)))) + (let (($x35 (and true $x34))) + (let (($x42 (and true $x35))) + (let ((?x64 (ite $x42 0 ?x59))) + (let ((?x67 (concat (_ bv0 7) (_ bv2 2)))) + (let ((?x31 (concat (_ bv0 8) (_ bv0 1)))) + (let (($x40 (= standard_metadata.ingress_port (_ bv2 9)))) + (let (($x41 (and true $x40))) + (let (($x43 (not $x35))) + (let (($x48 (and true (and $x43 (not (and true (= standard_metadata.ingress_port (_ bv1 9)))))))) + (let ((?x56 (ite (and $x48 $x41) ?x31 (ite true ?x31 scalars.metadata.string_field)))) + (let (($x37 (= standard_metadata.ingress_port (_ bv1 9)))) + (let (($x38 (and true $x37))) + (let ((?x68 (ite $x42 ?x67 (ite (and (and true $x43) $x38) (concat (_ bv0 8) (_ bv1 1)) ?x56)))) + (let (($x70 (and true (= ?x68 ?x67)))) + (let ((?x80 (ite (and (and true (not $x70)) true) (_ bv1 9) standard_metadata.egress_spec))) + (let (($x71 (and true $x70))) + (let ((?x82 (ite $x71 (_ bv0 9) ?x80))) + (let (($x51 (= ?x82 (_ bv511 9)))) + (let (($x119 (and (not $x51) true))) + (and $x119 (= ?x64 0))))))))))))))))))))))))) (check-sat) ; @@ -270,52 +270,52 @@ (declare-fun standard_metadata.egress_spec () (_ BitVec 9)) (declare-fun scalars.metadata.string_field () (_ BitVec 9)) (assert - (let (($x38 (= standard_metadata.ingress_port (_ bv2 9)))) - (let (($x35 (= standard_metadata.ingress_port (_ bv1 9)))) - (or (or (or false (= standard_metadata.ingress_port (_ bv0 9))) $x35) $x38)))) + (let (($x40 (= standard_metadata.ingress_port (_ bv2 9)))) + (let (($x37 (= standard_metadata.ingress_port (_ bv1 9)))) + (or (or (or false (= standard_metadata.ingress_port (_ bv0 9))) $x37) $x40)))) (assert - (let ((?x65 (concat (_ bv0 7) (_ bv2 2)))) - (let ((?x29 (concat (_ bv0 8) (_ bv0 1)))) - (let (($x38 (= standard_metadata.ingress_port (_ bv2 9)))) - (let (($x39 (and true $x38))) - (let (($x32 (= standard_metadata.ingress_port (_ bv0 9)))) - (let (($x33 (and true $x32))) - (let (($x41 (not $x33))) - (let (($x46 (and true (and $x41 (not (and true (= standard_metadata.ingress_port (_ bv1 9)))))))) - (let ((?x54 (ite (and $x46 $x39) ?x29 (ite true ?x29 scalars.metadata.string_field)))) - (let (($x35 (= standard_metadata.ingress_port (_ bv1 9)))) - (let (($x36 (and true $x35))) - (let (($x40 (and true $x33))) - (let ((?x66 (ite $x40 ?x65 (ite (and (and true $x41) $x36) (concat (_ bv0 8) (_ bv1 1)) ?x54)))) - (let (($x68 (and true (= ?x66 ?x65)))) - (let ((?x78 (ite (and (and true (not $x68)) true) (_ bv1 9) standard_metadata.egress_spec))) - (let (($x69 (and true $x68))) - (let ((?x80 (ite $x69 (_ bv0 9) ?x78))) - (let (($x49 (= ?x80 (_ bv511 9)))) - (or $x49 (or (or (or false (= ?x80 (_ bv0 9))) (= ?x80 (_ bv1 9))) (= ?x80 (_ bv2 9))))))))))))))))))))))) + (let ((?x67 (concat (_ bv0 7) (_ bv2 2)))) + (let ((?x31 (concat (_ bv0 8) (_ bv0 1)))) + (let (($x40 (= standard_metadata.ingress_port (_ bv2 9)))) + (let (($x41 (and true $x40))) + (let (($x34 (= standard_metadata.ingress_port (_ bv0 9)))) + (let (($x35 (and true $x34))) + (let (($x43 (not $x35))) + (let (($x48 (and true (and $x43 (not (and true (= standard_metadata.ingress_port (_ bv1 9)))))))) + (let ((?x56 (ite (and $x48 $x41) ?x31 (ite true ?x31 scalars.metadata.string_field)))) + (let (($x37 (= standard_metadata.ingress_port (_ bv1 9)))) + (let (($x38 (and true $x37))) + (let (($x42 (and true $x35))) + (let ((?x68 (ite $x42 ?x67 (ite (and (and true $x43) $x38) (concat (_ bv0 8) (_ bv1 1)) ?x56)))) + (let (($x70 (and true (= ?x68 ?x67)))) + (let ((?x80 (ite (and (and true (not $x70)) true) (_ bv1 9) standard_metadata.egress_spec))) + (let (($x71 (and true $x70))) + (let ((?x82 (ite $x71 (_ bv0 9) ?x80))) + (let (($x51 (= ?x82 (_ bv511 9)))) + (or $x51 (or (or (or false (= ?x82 (_ bv0 9))) (= ?x82 (_ bv1 9))) (= ?x82 (_ bv2 9))))))))))))))))))))))) (assert - (let ((?x53 (ite (and true (and true (= standard_metadata.ingress_port (_ bv2 9)))) 2 (- 1)))) - (let ((?x57 (ite (and true (and true (= standard_metadata.ingress_port (_ bv1 9)))) 1 ?x53))) - (let (($x32 (= standard_metadata.ingress_port (_ bv0 9)))) - (let (($x33 (and true $x32))) - (let (($x40 (and true $x33))) - (let ((?x62 (ite $x40 0 ?x57))) - (let ((?x65 (concat (_ bv0 7) (_ bv2 2)))) - (let ((?x29 (concat (_ bv0 8) (_ bv0 1)))) - (let (($x38 (= standard_metadata.ingress_port (_ bv2 9)))) - (let (($x39 (and true $x38))) - (let (($x41 (not $x33))) - (let (($x46 (and true (and $x41 (not (and true (= standard_metadata.ingress_port (_ bv1 9)))))))) - (let ((?x54 (ite (and $x46 $x39) ?x29 (ite true ?x29 scalars.metadata.string_field)))) - (let (($x35 (= standard_metadata.ingress_port (_ bv1 9)))) - (let (($x36 (and true $x35))) - (let ((?x66 (ite $x40 ?x65 (ite (and (and true $x41) $x36) (concat (_ bv0 8) (_ bv1 1)) ?x54)))) - (let (($x68 (and true (= ?x66 ?x65)))) - (let ((?x78 (ite (and (and true (not $x68)) true) (_ bv1 9) standard_metadata.egress_spec))) - (let (($x69 (and true $x68))) - (let ((?x80 (ite $x69 (_ bv0 9) ?x78))) - (let (($x49 (= ?x80 (_ bv511 9)))) - (and (and (not $x49) true) (= ?x62 1)))))))))))))))))))))))) + (let ((?x55 (ite (and true (and true (= standard_metadata.ingress_port (_ bv2 9)))) 2 (- 1)))) + (let ((?x59 (ite (and true (and true (= standard_metadata.ingress_port (_ bv1 9)))) 1 ?x55))) + (let (($x34 (= standard_metadata.ingress_port (_ bv0 9)))) + (let (($x35 (and true $x34))) + (let (($x42 (and true $x35))) + (let ((?x64 (ite $x42 0 ?x59))) + (let ((?x67 (concat (_ bv0 7) (_ bv2 2)))) + (let ((?x31 (concat (_ bv0 8) (_ bv0 1)))) + (let (($x40 (= standard_metadata.ingress_port (_ bv2 9)))) + (let (($x41 (and true $x40))) + (let (($x43 (not $x35))) + (let (($x48 (and true (and $x43 (not (and true (= standard_metadata.ingress_port (_ bv1 9)))))))) + (let ((?x56 (ite (and $x48 $x41) ?x31 (ite true ?x31 scalars.metadata.string_field)))) + (let (($x37 (= standard_metadata.ingress_port (_ bv1 9)))) + (let (($x38 (and true $x37))) + (let ((?x68 (ite $x42 ?x67 (ite (and (and true $x43) $x38) (concat (_ bv0 8) (_ bv1 1)) ?x56)))) + (let (($x70 (and true (= ?x68 ?x67)))) + (let ((?x80 (ite (and (and true (not $x70)) true) (_ bv1 9) standard_metadata.egress_spec))) + (let (($x71 (and true $x70))) + (let ((?x82 (ite $x71 (_ bv0 9) ?x80))) + (let (($x51 (= ?x82 (_ bv511 9)))) + (and (and (not $x51) true) (= ?x64 1)))))))))))))))))))))))) (check-sat) ; @@ -324,52 +324,52 @@ (declare-fun standard_metadata.egress_spec () (_ BitVec 9)) (declare-fun scalars.metadata.string_field () (_ BitVec 9)) (assert - (let (($x38 (= standard_metadata.ingress_port (_ bv2 9)))) - (let (($x35 (= standard_metadata.ingress_port (_ bv1 9)))) - (or (or (or false (= standard_metadata.ingress_port (_ bv0 9))) $x35) $x38)))) + (let (($x40 (= standard_metadata.ingress_port (_ bv2 9)))) + (let (($x37 (= standard_metadata.ingress_port (_ bv1 9)))) + (or (or (or false (= standard_metadata.ingress_port (_ bv0 9))) $x37) $x40)))) (assert - (let ((?x65 (concat (_ bv0 7) (_ bv2 2)))) - (let ((?x29 (concat (_ bv0 8) (_ bv0 1)))) - (let (($x38 (= standard_metadata.ingress_port (_ bv2 9)))) - (let (($x39 (and true $x38))) - (let (($x32 (= standard_metadata.ingress_port (_ bv0 9)))) - (let (($x33 (and true $x32))) - (let (($x41 (not $x33))) - (let (($x46 (and true (and $x41 (not (and true (= standard_metadata.ingress_port (_ bv1 9)))))))) - (let ((?x54 (ite (and $x46 $x39) ?x29 (ite true ?x29 scalars.metadata.string_field)))) - (let (($x35 (= standard_metadata.ingress_port (_ bv1 9)))) - (let (($x36 (and true $x35))) - (let (($x40 (and true $x33))) - (let ((?x66 (ite $x40 ?x65 (ite (and (and true $x41) $x36) (concat (_ bv0 8) (_ bv1 1)) ?x54)))) - (let (($x68 (and true (= ?x66 ?x65)))) - (let ((?x78 (ite (and (and true (not $x68)) true) (_ bv1 9) standard_metadata.egress_spec))) - (let (($x69 (and true $x68))) - (let ((?x80 (ite $x69 (_ bv0 9) ?x78))) - (let (($x49 (= ?x80 (_ bv511 9)))) - (or $x49 (or (or (or false (= ?x80 (_ bv0 9))) (= ?x80 (_ bv1 9))) (= ?x80 (_ bv2 9))))))))))))))))))))))) + (let ((?x67 (concat (_ bv0 7) (_ bv2 2)))) + (let ((?x31 (concat (_ bv0 8) (_ bv0 1)))) + (let (($x40 (= standard_metadata.ingress_port (_ bv2 9)))) + (let (($x41 (and true $x40))) + (let (($x34 (= standard_metadata.ingress_port (_ bv0 9)))) + (let (($x35 (and true $x34))) + (let (($x43 (not $x35))) + (let (($x48 (and true (and $x43 (not (and true (= standard_metadata.ingress_port (_ bv1 9)))))))) + (let ((?x56 (ite (and $x48 $x41) ?x31 (ite true ?x31 scalars.metadata.string_field)))) + (let (($x37 (= standard_metadata.ingress_port (_ bv1 9)))) + (let (($x38 (and true $x37))) + (let (($x42 (and true $x35))) + (let ((?x68 (ite $x42 ?x67 (ite (and (and true $x43) $x38) (concat (_ bv0 8) (_ bv1 1)) ?x56)))) + (let (($x70 (and true (= ?x68 ?x67)))) + (let ((?x80 (ite (and (and true (not $x70)) true) (_ bv1 9) standard_metadata.egress_spec))) + (let (($x71 (and true $x70))) + (let ((?x82 (ite $x71 (_ bv0 9) ?x80))) + (let (($x51 (= ?x82 (_ bv511 9)))) + (or $x51 (or (or (or false (= ?x82 (_ bv0 9))) (= ?x82 (_ bv1 9))) (= ?x82 (_ bv2 9))))))))))))))))))))))) (assert - (let ((?x53 (ite (and true (and true (= standard_metadata.ingress_port (_ bv2 9)))) 2 (- 1)))) - (let ((?x57 (ite (and true (and true (= standard_metadata.ingress_port (_ bv1 9)))) 1 ?x53))) - (let (($x32 (= standard_metadata.ingress_port (_ bv0 9)))) - (let (($x33 (and true $x32))) - (let (($x40 (and true $x33))) - (let ((?x62 (ite $x40 0 ?x57))) - (let ((?x65 (concat (_ bv0 7) (_ bv2 2)))) - (let ((?x29 (concat (_ bv0 8) (_ bv0 1)))) - (let (($x38 (= standard_metadata.ingress_port (_ bv2 9)))) - (let (($x39 (and true $x38))) - (let (($x41 (not $x33))) - (let (($x46 (and true (and $x41 (not (and true (= standard_metadata.ingress_port (_ bv1 9)))))))) - (let ((?x54 (ite (and $x46 $x39) ?x29 (ite true ?x29 scalars.metadata.string_field)))) - (let (($x35 (= standard_metadata.ingress_port (_ bv1 9)))) - (let (($x36 (and true $x35))) - (let ((?x66 (ite $x40 ?x65 (ite (and (and true $x41) $x36) (concat (_ bv0 8) (_ bv1 1)) ?x54)))) - (let (($x68 (and true (= ?x66 ?x65)))) - (let ((?x78 (ite (and (and true (not $x68)) true) (_ bv1 9) standard_metadata.egress_spec))) - (let (($x69 (and true $x68))) - (let ((?x80 (ite $x69 (_ bv0 9) ?x78))) - (let (($x49 (= ?x80 (_ bv511 9)))) - (and (and (not $x49) true) (= ?x62 2)))))))))))))))))))))))) + (let ((?x55 (ite (and true (and true (= standard_metadata.ingress_port (_ bv2 9)))) 2 (- 1)))) + (let ((?x59 (ite (and true (and true (= standard_metadata.ingress_port (_ bv1 9)))) 1 ?x55))) + (let (($x34 (= standard_metadata.ingress_port (_ bv0 9)))) + (let (($x35 (and true $x34))) + (let (($x42 (and true $x35))) + (let ((?x64 (ite $x42 0 ?x59))) + (let ((?x67 (concat (_ bv0 7) (_ bv2 2)))) + (let ((?x31 (concat (_ bv0 8) (_ bv0 1)))) + (let (($x40 (= standard_metadata.ingress_port (_ bv2 9)))) + (let (($x41 (and true $x40))) + (let (($x43 (not $x35))) + (let (($x48 (and true (and $x43 (not (and true (= standard_metadata.ingress_port (_ bv1 9)))))))) + (let ((?x56 (ite (and $x48 $x41) ?x31 (ite true ?x31 scalars.metadata.string_field)))) + (let (($x37 (= standard_metadata.ingress_port (_ bv1 9)))) + (let (($x38 (and true $x37))) + (let ((?x68 (ite $x42 ?x67 (ite (and (and true $x43) $x38) (concat (_ bv0 8) (_ bv1 1)) ?x56)))) + (let (($x70 (and true (= ?x68 ?x67)))) + (let ((?x80 (ite (and (and true (not $x70)) true) (_ bv1 9) standard_metadata.egress_spec))) + (let (($x71 (and true $x70))) + (let ((?x82 (ite $x71 (_ bv0 9) ?x80))) + (let (($x51 (= ?x82 (_ bv511 9)))) + (and (and (not $x51) true) (= ?x64 2)))))))))))))))))))))))) (check-sat) ; @@ -378,48 +378,48 @@ (declare-fun standard_metadata.egress_spec () (_ BitVec 9)) (declare-fun scalars.metadata.string_field () (_ BitVec 9)) (assert - (let (($x38 (= standard_metadata.ingress_port (_ bv2 9)))) - (let (($x35 (= standard_metadata.ingress_port (_ bv1 9)))) - (or (or (or false (= standard_metadata.ingress_port (_ bv0 9))) $x35) $x38)))) + (let (($x40 (= standard_metadata.ingress_port (_ bv2 9)))) + (let (($x37 (= standard_metadata.ingress_port (_ bv1 9)))) + (or (or (or false (= standard_metadata.ingress_port (_ bv0 9))) $x37) $x40)))) (assert - (let ((?x65 (concat (_ bv0 7) (_ bv2 2)))) - (let ((?x29 (concat (_ bv0 8) (_ bv0 1)))) - (let (($x38 (= standard_metadata.ingress_port (_ bv2 9)))) - (let (($x39 (and true $x38))) - (let (($x32 (= standard_metadata.ingress_port (_ bv0 9)))) - (let (($x33 (and true $x32))) - (let (($x41 (not $x33))) - (let (($x46 (and true (and $x41 (not (and true (= standard_metadata.ingress_port (_ bv1 9)))))))) - (let ((?x54 (ite (and $x46 $x39) ?x29 (ite true ?x29 scalars.metadata.string_field)))) - (let (($x35 (= standard_metadata.ingress_port (_ bv1 9)))) - (let (($x36 (and true $x35))) - (let (($x40 (and true $x33))) - (let ((?x66 (ite $x40 ?x65 (ite (and (and true $x41) $x36) (concat (_ bv0 8) (_ bv1 1)) ?x54)))) - (let (($x68 (and true (= ?x66 ?x65)))) - (let ((?x78 (ite (and (and true (not $x68)) true) (_ bv1 9) standard_metadata.egress_spec))) - (let (($x69 (and true $x68))) - (let ((?x80 (ite $x69 (_ bv0 9) ?x78))) - (let (($x49 (= ?x80 (_ bv511 9)))) - (or $x49 (or (or (or false (= ?x80 (_ bv0 9))) (= ?x80 (_ bv1 9))) (= ?x80 (_ bv2 9))))))))))))))))))))))) + (let ((?x67 (concat (_ bv0 7) (_ bv2 2)))) + (let ((?x31 (concat (_ bv0 8) (_ bv0 1)))) + (let (($x40 (= standard_metadata.ingress_port (_ bv2 9)))) + (let (($x41 (and true $x40))) + (let (($x34 (= standard_metadata.ingress_port (_ bv0 9)))) + (let (($x35 (and true $x34))) + (let (($x43 (not $x35))) + (let (($x48 (and true (and $x43 (not (and true (= standard_metadata.ingress_port (_ bv1 9)))))))) + (let ((?x56 (ite (and $x48 $x41) ?x31 (ite true ?x31 scalars.metadata.string_field)))) + (let (($x37 (= standard_metadata.ingress_port (_ bv1 9)))) + (let (($x38 (and true $x37))) + (let (($x42 (and true $x35))) + (let ((?x68 (ite $x42 ?x67 (ite (and (and true $x43) $x38) (concat (_ bv0 8) (_ bv1 1)) ?x56)))) + (let (($x70 (and true (= ?x68 ?x67)))) + (let ((?x80 (ite (and (and true (not $x70)) true) (_ bv1 9) standard_metadata.egress_spec))) + (let (($x71 (and true $x70))) + (let ((?x82 (ite $x71 (_ bv0 9) ?x80))) + (let (($x51 (= ?x82 (_ bv511 9)))) + (or $x51 (or (or (or false (= ?x82 (_ bv0 9))) (= ?x82 (_ bv1 9))) (= ?x82 (_ bv2 9))))))))))))))))))))))) (assert - (let ((?x65 (concat (_ bv0 7) (_ bv2 2)))) - (let ((?x29 (concat (_ bv0 8) (_ bv0 1)))) - (let (($x38 (= standard_metadata.ingress_port (_ bv2 9)))) - (let (($x39 (and true $x38))) - (let (($x32 (= standard_metadata.ingress_port (_ bv0 9)))) - (let (($x33 (and true $x32))) - (let (($x41 (not $x33))) - (let (($x46 (and true (and $x41 (not (and true (= standard_metadata.ingress_port (_ bv1 9)))))))) - (let ((?x54 (ite (and $x46 $x39) ?x29 (ite true ?x29 scalars.metadata.string_field)))) - (let (($x35 (= standard_metadata.ingress_port (_ bv1 9)))) - (let (($x36 (and true $x35))) - (let (($x40 (and true $x33))) - (let ((?x66 (ite $x40 ?x65 (ite (and (and true $x41) $x36) (concat (_ bv0 8) (_ bv1 1)) ?x54)))) - (let (($x68 (and true (= ?x66 ?x65)))) - (let ((?x78 (ite (and (and true (not $x68)) true) (_ bv1 9) standard_metadata.egress_spec))) - (let (($x69 (and true $x68))) - (let ((?x80 (ite $x69 (_ bv0 9) ?x78))) - (let (($x49 (= ?x80 (_ bv511 9)))) - (and (and (not $x49) true) (= (- 1) (- 1)))))))))))))))))))))) + (let ((?x67 (concat (_ bv0 7) (_ bv2 2)))) + (let ((?x31 (concat (_ bv0 8) (_ bv0 1)))) + (let (($x40 (= standard_metadata.ingress_port (_ bv2 9)))) + (let (($x41 (and true $x40))) + (let (($x34 (= standard_metadata.ingress_port (_ bv0 9)))) + (let (($x35 (and true $x34))) + (let (($x43 (not $x35))) + (let (($x48 (and true (and $x43 (not (and true (= standard_metadata.ingress_port (_ bv1 9)))))))) + (let ((?x56 (ite (and $x48 $x41) ?x31 (ite true ?x31 scalars.metadata.string_field)))) + (let (($x37 (= standard_metadata.ingress_port (_ bv1 9)))) + (let (($x38 (and true $x37))) + (let (($x42 (and true $x35))) + (let ((?x68 (ite $x42 ?x67 (ite (and (and true $x43) $x38) (concat (_ bv0 8) (_ bv1 1)) ?x56)))) + (let (($x70 (and true (= ?x68 ?x67)))) + (let ((?x80 (ite (and (and true (not $x70)) true) (_ bv1 9) standard_metadata.egress_spec))) + (let (($x71 (and true $x70))) + (let ((?x82 (ite $x71 (_ bv0 9) ?x80))) + (let (($x51 (= ?x82 (_ bv511 9)))) + (and (and (not $x51) true) (= (- 1) (- 1)))))))))))))))))))))) (check-sat) diff --git a/p4_symbolic/symbolic/expected/table.smt2 b/p4_symbolic/symbolic/expected/table.smt2 index 71f928db..c92db371 100644 --- a/p4_symbolic/symbolic/expected/table.smt2 +++ b/p4_symbolic/symbolic/expected/table.smt2 @@ -3,30 +3,30 @@ (declare-fun standard_metadata.ingress_port () (_ BitVec 9)) (declare-fun standard_metadata.egress_spec () (_ BitVec 9)) (assert - (let (($x28 (= standard_metadata.ingress_port (_ bv1 9)))) - (or (or false (= standard_metadata.ingress_port (_ bv0 9))) $x28))) + (let (($x30 (= standard_metadata.ingress_port (_ bv1 9)))) + (or (or false (= standard_metadata.ingress_port (_ bv0 9))) $x30))) (assert - (let (($x28 (= standard_metadata.ingress_port (_ bv1 9)))) - (let (($x29 (and true $x28))) - (let (($x32 (and true (not (and true (= standard_metadata.ingress_port (_ bv0 9))))))) - (let (($x25 (= standard_metadata.ingress_port (_ bv0 9)))) - (let (($x26 (and true $x25))) - (let (($x30 (and true $x26))) - (let ((?x44 (ite $x30 (_ bv1 9) (ite (and $x32 $x29) (_ bv0 9) standard_metadata.egress_spec)))) - (let (($x35 (= ?x44 (_ bv511 9)))) - (or $x35 (or (or false (= ?x44 (_ bv0 9))) (= ?x44 (_ bv1 9))))))))))))) + (let (($x30 (= standard_metadata.ingress_port (_ bv1 9)))) + (let (($x31 (and true $x30))) + (let (($x34 (and true (not (and true (= standard_metadata.ingress_port (_ bv0 9))))))) + (let (($x27 (= standard_metadata.ingress_port (_ bv0 9)))) + (let (($x28 (and true $x27))) + (let (($x32 (and true $x28))) + (let ((?x46 (ite $x32 (_ bv1 9) (ite (and $x34 $x31) (_ bv0 9) standard_metadata.egress_spec)))) + (let (($x37 (= ?x46 (_ bv511 9)))) + (or $x37 (or (or false (= ?x46 (_ bv0 9))) (= ?x46 (_ bv1 9))))))))))))) (assert - (let ((?x40 (ite (and true (and true (= standard_metadata.ingress_port (_ bv1 9)))) 1 (- 1)))) - (let (($x25 (= standard_metadata.ingress_port (_ bv0 9)))) - (let (($x26 (and true $x25))) - (let (($x30 (and true $x26))) - (let ((?x43 (ite $x30 0 ?x40))) - (let (($x28 (= standard_metadata.ingress_port (_ bv1 9)))) - (let (($x29 (and true $x28))) - (let ((?x41 (ite (and (and true (not $x26)) $x29) (_ bv0 9) standard_metadata.egress_spec))) - (let ((?x44 (ite $x30 (_ bv1 9) ?x41))) - (let (($x35 (= ?x44 (_ bv511 9)))) - (and (and (not $x35) true) (= ?x43 (- 1)))))))))))))) + (let ((?x42 (ite (and true (and true (= standard_metadata.ingress_port (_ bv1 9)))) 1 (- 1)))) + (let (($x27 (= standard_metadata.ingress_port (_ bv0 9)))) + (let (($x28 (and true $x27))) + (let (($x32 (and true $x28))) + (let ((?x45 (ite $x32 0 ?x42))) + (let (($x30 (= standard_metadata.ingress_port (_ bv1 9)))) + (let (($x31 (and true $x30))) + (let ((?x43 (ite (and (and true (not $x28)) $x31) (_ bv0 9) standard_metadata.egress_spec))) + (let ((?x46 (ite $x32 (_ bv1 9) ?x43))) + (let (($x37 (= ?x46 (_ bv511 9)))) + (and (and (not $x37) true) (= ?x45 (- 1)))))))))))))) (check-sat) ; @@ -34,31 +34,31 @@ (declare-fun standard_metadata.ingress_port () (_ BitVec 9)) (declare-fun standard_metadata.egress_spec () (_ BitVec 9)) (assert - (let (($x28 (= standard_metadata.ingress_port (_ bv1 9)))) - (or (or false (= standard_metadata.ingress_port (_ bv0 9))) $x28))) + (let (($x30 (= standard_metadata.ingress_port (_ bv1 9)))) + (or (or false (= standard_metadata.ingress_port (_ bv0 9))) $x30))) (assert - (let (($x28 (= standard_metadata.ingress_port (_ bv1 9)))) - (let (($x29 (and true $x28))) - (let (($x32 (and true (not (and true (= standard_metadata.ingress_port (_ bv0 9))))))) - (let (($x25 (= standard_metadata.ingress_port (_ bv0 9)))) - (let (($x26 (and true $x25))) - (let (($x30 (and true $x26))) - (let ((?x44 (ite $x30 (_ bv1 9) (ite (and $x32 $x29) (_ bv0 9) standard_metadata.egress_spec)))) - (let (($x35 (= ?x44 (_ bv511 9)))) - (or $x35 (or (or false (= ?x44 (_ bv0 9))) (= ?x44 (_ bv1 9))))))))))))) + (let (($x30 (= standard_metadata.ingress_port (_ bv1 9)))) + (let (($x31 (and true $x30))) + (let (($x34 (and true (not (and true (= standard_metadata.ingress_port (_ bv0 9))))))) + (let (($x27 (= standard_metadata.ingress_port (_ bv0 9)))) + (let (($x28 (and true $x27))) + (let (($x32 (and true $x28))) + (let ((?x46 (ite $x32 (_ bv1 9) (ite (and $x34 $x31) (_ bv0 9) standard_metadata.egress_spec)))) + (let (($x37 (= ?x46 (_ bv511 9)))) + (or $x37 (or (or false (= ?x46 (_ bv0 9))) (= ?x46 (_ bv1 9))))))))))))) (assert - (let ((?x40 (ite (and true (and true (= standard_metadata.ingress_port (_ bv1 9)))) 1 (- 1)))) - (let (($x25 (= standard_metadata.ingress_port (_ bv0 9)))) - (let (($x26 (and true $x25))) - (let (($x30 (and true $x26))) - (let ((?x43 (ite $x30 0 ?x40))) - (let (($x28 (= standard_metadata.ingress_port (_ bv1 9)))) - (let (($x29 (and true $x28))) - (let ((?x41 (ite (and (and true (not $x26)) $x29) (_ bv0 9) standard_metadata.egress_spec))) - (let ((?x44 (ite $x30 (_ bv1 9) ?x41))) - (let (($x35 (= ?x44 (_ bv511 9)))) - (let (($x109 (and (not $x35) true))) - (and $x109 (= ?x43 0)))))))))))))) + (let ((?x42 (ite (and true (and true (= standard_metadata.ingress_port (_ bv1 9)))) 1 (- 1)))) + (let (($x27 (= standard_metadata.ingress_port (_ bv0 9)))) + (let (($x28 (and true $x27))) + (let (($x32 (and true $x28))) + (let ((?x45 (ite $x32 0 ?x42))) + (let (($x30 (= standard_metadata.ingress_port (_ bv1 9)))) + (let (($x31 (and true $x30))) + (let ((?x43 (ite (and (and true (not $x28)) $x31) (_ bv0 9) standard_metadata.egress_spec))) + (let ((?x46 (ite $x32 (_ bv1 9) ?x43))) + (let (($x37 (= ?x46 (_ bv511 9)))) + (let (($x111 (and (not $x37) true))) + (and $x111 (= ?x45 0)))))))))))))) (check-sat) ; @@ -66,29 +66,29 @@ (declare-fun standard_metadata.ingress_port () (_ BitVec 9)) (declare-fun standard_metadata.egress_spec () (_ BitVec 9)) (assert - (let (($x28 (= standard_metadata.ingress_port (_ bv1 9)))) - (or (or false (= standard_metadata.ingress_port (_ bv0 9))) $x28))) + (let (($x30 (= standard_metadata.ingress_port (_ bv1 9)))) + (or (or false (= standard_metadata.ingress_port (_ bv0 9))) $x30))) (assert - (let (($x28 (= standard_metadata.ingress_port (_ bv1 9)))) - (let (($x29 (and true $x28))) - (let (($x32 (and true (not (and true (= standard_metadata.ingress_port (_ bv0 9))))))) - (let (($x25 (= standard_metadata.ingress_port (_ bv0 9)))) - (let (($x26 (and true $x25))) - (let (($x30 (and true $x26))) - (let ((?x44 (ite $x30 (_ bv1 9) (ite (and $x32 $x29) (_ bv0 9) standard_metadata.egress_spec)))) - (let (($x35 (= ?x44 (_ bv511 9)))) - (or $x35 (or (or false (= ?x44 (_ bv0 9))) (= ?x44 (_ bv1 9))))))))))))) + (let (($x30 (= standard_metadata.ingress_port (_ bv1 9)))) + (let (($x31 (and true $x30))) + (let (($x34 (and true (not (and true (= standard_metadata.ingress_port (_ bv0 9))))))) + (let (($x27 (= standard_metadata.ingress_port (_ bv0 9)))) + (let (($x28 (and true $x27))) + (let (($x32 (and true $x28))) + (let ((?x46 (ite $x32 (_ bv1 9) (ite (and $x34 $x31) (_ bv0 9) standard_metadata.egress_spec)))) + (let (($x37 (= ?x46 (_ bv511 9)))) + (or $x37 (or (or false (= ?x46 (_ bv0 9))) (= ?x46 (_ bv1 9))))))))))))) (assert - (let ((?x40 (ite (and true (and true (= standard_metadata.ingress_port (_ bv1 9)))) 1 (- 1)))) - (let (($x25 (= standard_metadata.ingress_port (_ bv0 9)))) - (let (($x26 (and true $x25))) - (let (($x30 (and true $x26))) - (let ((?x43 (ite $x30 0 ?x40))) - (let (($x28 (= standard_metadata.ingress_port (_ bv1 9)))) - (let (($x29 (and true $x28))) - (let ((?x41 (ite (and (and true (not $x26)) $x29) (_ bv0 9) standard_metadata.egress_spec))) - (let ((?x44 (ite $x30 (_ bv1 9) ?x41))) - (let (($x35 (= ?x44 (_ bv511 9)))) - (and (and (not $x35) true) (= ?x43 1))))))))))))) + (let ((?x42 (ite (and true (and true (= standard_metadata.ingress_port (_ bv1 9)))) 1 (- 1)))) + (let (($x27 (= standard_metadata.ingress_port (_ bv0 9)))) + (let (($x28 (and true $x27))) + (let (($x32 (and true $x28))) + (let ((?x45 (ite $x32 0 ?x42))) + (let (($x30 (= standard_metadata.ingress_port (_ bv1 9)))) + (let (($x31 (and true $x30))) + (let ((?x43 (ite (and (and true (not $x28)) $x31) (_ bv0 9) standard_metadata.egress_spec))) + (let ((?x46 (ite $x32 (_ bv1 9) ?x43))) + (let (($x37 (= ?x46 (_ bv511 9)))) + (and (and (not $x37) true) (= ?x45 1))))))))))))) (check-sat) diff --git a/p4_symbolic/symbolic/expected/table_hit_1.smt2 b/p4_symbolic/symbolic/expected/table_hit_1.smt2 index 12f99633..c55566dd 100644 --- a/p4_symbolic/symbolic/expected/table_hit_1.smt2 +++ b/p4_symbolic/symbolic/expected/table_hit_1.smt2 @@ -5,41 +5,41 @@ (declare-fun ethernet.ether_type () (_ BitVec 16)) (declare-fun ethernet.src_addr () (_ BitVec 48)) (assert - (let (($x92 (= standard_metadata.ingress_port (_ bv7 9)))) - (let (($x87 (= standard_metadata.ingress_port (_ bv6 9)))) - (let (($x82 (= standard_metadata.ingress_port (_ bv5 9)))) - (let (($x77 (= standard_metadata.ingress_port (_ bv4 9)))) - (let (($x72 (= standard_metadata.ingress_port (_ bv3 9)))) - (let (($x68 (= standard_metadata.ingress_port (_ bv2 9)))) - (let (($x64 (= standard_metadata.ingress_port (_ bv1 9)))) - (let (($x69 (or (or (or false (= standard_metadata.ingress_port (_ bv0 9))) $x64) $x68))) - (or (or (or (or (or $x69 $x72) $x77) $x82) $x87) $x92)))))))))) + (let (($x95 (= standard_metadata.ingress_port (_ bv7 9)))) + (let (($x90 (= standard_metadata.ingress_port (_ bv6 9)))) + (let (($x85 (= standard_metadata.ingress_port (_ bv5 9)))) + (let (($x80 (= standard_metadata.ingress_port (_ bv4 9)))) + (let (($x75 (= standard_metadata.ingress_port (_ bv3 9)))) + (let (($x71 (= standard_metadata.ingress_port (_ bv2 9)))) + (let (($x67 (= standard_metadata.ingress_port (_ bv1 9)))) + (let (($x72 (or (or (or false (= standard_metadata.ingress_port (_ bv0 9))) $x67) $x71))) + (or (or (or (or (or $x72 $x75) $x80) $x85) $x90) $x95)))))))))) (assert - (let ((?x36 (ite (and true (not (and true (= ethernet.ether_type (_ bv16 16))))) (_ bv511 9) standard_metadata.egress_spec))) - (let (($x29 (= ethernet.ether_type (_ bv16 16)))) - (let (($x30 (and true $x29))) - (let (($x31 (and true $x30))) - (let ((?x38 (ite $x31 0 (- 1)))) - (let (($x43 (and (distinct ?x38 (- 1)) true))) - (let (($x44 (and true $x43))) - (let (($x48 (and $x44 (and true (= ethernet.src_addr (_ bv256 48)))))) - (let ((?x54 (ite $x48 (_ bv3 9) (ite $x31 (_ bv2 9) ?x36)))) - (let (($x75 (or (or (or (or false (= ?x54 (_ bv0 9))) (= ?x54 (_ bv1 9))) (= ?x54 (_ bv2 9))) (= ?x54 (_ bv3 9))))) - (let (($x95 (or (or (or (or $x75 (= ?x54 (_ bv4 9))) (= ?x54 (_ bv5 9))) (= ?x54 (_ bv6 9))) (= ?x54 (_ bv7 9))))) - (let (($x56 (= ?x54 (_ bv511 9)))) - (or $x56 $x95)))))))))))))) + (let ((?x39 (ite (and true (not (and true (= ethernet.ether_type (_ bv16 16))))) (_ bv511 9) standard_metadata.egress_spec))) + (let (($x32 (= ethernet.ether_type (_ bv16 16)))) + (let (($x33 (and true $x32))) + (let (($x34 (and true $x33))) + (let ((?x41 (ite $x34 0 (- 1)))) + (let (($x46 (and (distinct ?x41 (- 1)) true))) + (let (($x47 (and true $x46))) + (let (($x51 (and $x47 (and true (= ethernet.src_addr (_ bv256 48)))))) + (let ((?x57 (ite $x51 (_ bv3 9) (ite $x34 (_ bv2 9) ?x39)))) + (let (($x78 (or (or (or (or false (= ?x57 (_ bv0 9))) (= ?x57 (_ bv1 9))) (= ?x57 (_ bv2 9))) (= ?x57 (_ bv3 9))))) + (let (($x98 (or (or (or (or $x78 (= ?x57 (_ bv4 9))) (= ?x57 (_ bv5 9))) (= ?x57 (_ bv6 9))) (= ?x57 (_ bv7 9))))) + (let (($x59 (= ?x57 (_ bv511 9)))) + (or $x59 $x98)))))))))))))) (assert - (let (($x29 (= ethernet.ether_type (_ bv16 16)))) - (let (($x30 (and true $x29))) - (let (($x31 (and true $x30))) - (let ((?x38 (ite $x31 0 (- 1)))) - (let ((?x41 (ite $x31 (_ bv2 9) (ite (and true (not $x30)) (_ bv511 9) standard_metadata.egress_spec)))) - (let (($x43 (and (distinct ?x38 (- 1)) true))) - (let (($x44 (and true $x43))) - (let (($x48 (and $x44 (and true (= ethernet.src_addr (_ bv256 48)))))) - (let ((?x54 (ite $x48 (_ bv3 9) ?x41))) - (let (($x56 (= ?x54 (_ bv511 9)))) - (and (and (not $x56) true) (= ?x38 (- 1)))))))))))))) + (let (($x32 (= ethernet.ether_type (_ bv16 16)))) + (let (($x33 (and true $x32))) + (let (($x34 (and true $x33))) + (let ((?x41 (ite $x34 0 (- 1)))) + (let ((?x44 (ite $x34 (_ bv2 9) (ite (and true (not $x33)) (_ bv511 9) standard_metadata.egress_spec)))) + (let (($x46 (and (distinct ?x41 (- 1)) true))) + (let (($x47 (and true $x46))) + (let (($x51 (and $x47 (and true (= ethernet.src_addr (_ bv256 48)))))) + (let ((?x57 (ite $x51 (_ bv3 9) ?x44))) + (let (($x59 (= ?x57 (_ bv511 9)))) + (and (and (not $x59) true) (= ?x41 (- 1)))))))))))))) (check-sat) ; @@ -49,42 +49,42 @@ (declare-fun ethernet.ether_type () (_ BitVec 16)) (declare-fun ethernet.src_addr () (_ BitVec 48)) (assert - (let (($x92 (= standard_metadata.ingress_port (_ bv7 9)))) - (let (($x87 (= standard_metadata.ingress_port (_ bv6 9)))) - (let (($x82 (= standard_metadata.ingress_port (_ bv5 9)))) - (let (($x77 (= standard_metadata.ingress_port (_ bv4 9)))) - (let (($x72 (= standard_metadata.ingress_port (_ bv3 9)))) - (let (($x68 (= standard_metadata.ingress_port (_ bv2 9)))) - (let (($x64 (= standard_metadata.ingress_port (_ bv1 9)))) - (let (($x69 (or (or (or false (= standard_metadata.ingress_port (_ bv0 9))) $x64) $x68))) - (or (or (or (or (or $x69 $x72) $x77) $x82) $x87) $x92)))))))))) + (let (($x95 (= standard_metadata.ingress_port (_ bv7 9)))) + (let (($x90 (= standard_metadata.ingress_port (_ bv6 9)))) + (let (($x85 (= standard_metadata.ingress_port (_ bv5 9)))) + (let (($x80 (= standard_metadata.ingress_port (_ bv4 9)))) + (let (($x75 (= standard_metadata.ingress_port (_ bv3 9)))) + (let (($x71 (= standard_metadata.ingress_port (_ bv2 9)))) + (let (($x67 (= standard_metadata.ingress_port (_ bv1 9)))) + (let (($x72 (or (or (or false (= standard_metadata.ingress_port (_ bv0 9))) $x67) $x71))) + (or (or (or (or (or $x72 $x75) $x80) $x85) $x90) $x95)))))))))) (assert - (let ((?x36 (ite (and true (not (and true (= ethernet.ether_type (_ bv16 16))))) (_ bv511 9) standard_metadata.egress_spec))) - (let (($x29 (= ethernet.ether_type (_ bv16 16)))) - (let (($x30 (and true $x29))) - (let (($x31 (and true $x30))) - (let ((?x38 (ite $x31 0 (- 1)))) - (let (($x43 (and (distinct ?x38 (- 1)) true))) - (let (($x44 (and true $x43))) - (let (($x48 (and $x44 (and true (= ethernet.src_addr (_ bv256 48)))))) - (let ((?x54 (ite $x48 (_ bv3 9) (ite $x31 (_ bv2 9) ?x36)))) - (let (($x75 (or (or (or (or false (= ?x54 (_ bv0 9))) (= ?x54 (_ bv1 9))) (= ?x54 (_ bv2 9))) (= ?x54 (_ bv3 9))))) - (let (($x95 (or (or (or (or $x75 (= ?x54 (_ bv4 9))) (= ?x54 (_ bv5 9))) (= ?x54 (_ bv6 9))) (= ?x54 (_ bv7 9))))) - (let (($x56 (= ?x54 (_ bv511 9)))) - (or $x56 $x95)))))))))))))) + (let ((?x39 (ite (and true (not (and true (= ethernet.ether_type (_ bv16 16))))) (_ bv511 9) standard_metadata.egress_spec))) + (let (($x32 (= ethernet.ether_type (_ bv16 16)))) + (let (($x33 (and true $x32))) + (let (($x34 (and true $x33))) + (let ((?x41 (ite $x34 0 (- 1)))) + (let (($x46 (and (distinct ?x41 (- 1)) true))) + (let (($x47 (and true $x46))) + (let (($x51 (and $x47 (and true (= ethernet.src_addr (_ bv256 48)))))) + (let ((?x57 (ite $x51 (_ bv3 9) (ite $x34 (_ bv2 9) ?x39)))) + (let (($x78 (or (or (or (or false (= ?x57 (_ bv0 9))) (= ?x57 (_ bv1 9))) (= ?x57 (_ bv2 9))) (= ?x57 (_ bv3 9))))) + (let (($x98 (or (or (or (or $x78 (= ?x57 (_ bv4 9))) (= ?x57 (_ bv5 9))) (= ?x57 (_ bv6 9))) (= ?x57 (_ bv7 9))))) + (let (($x59 (= ?x57 (_ bv511 9)))) + (or $x59 $x98)))))))))))))) (assert - (let (($x29 (= ethernet.ether_type (_ bv16 16)))) - (let (($x30 (and true $x29))) - (let (($x31 (and true $x30))) - (let ((?x38 (ite $x31 0 (- 1)))) - (let ((?x41 (ite $x31 (_ bv2 9) (ite (and true (not $x30)) (_ bv511 9) standard_metadata.egress_spec)))) - (let (($x43 (and (distinct ?x38 (- 1)) true))) - (let (($x44 (and true $x43))) - (let (($x48 (and $x44 (and true (= ethernet.src_addr (_ bv256 48)))))) - (let ((?x54 (ite $x48 (_ bv3 9) ?x41))) - (let (($x56 (= ?x54 (_ bv511 9)))) - (let (($x208 (and (not $x56) true))) - (and $x208 (= ?x38 0)))))))))))))) + (let (($x32 (= ethernet.ether_type (_ bv16 16)))) + (let (($x33 (and true $x32))) + (let (($x34 (and true $x33))) + (let ((?x41 (ite $x34 0 (- 1)))) + (let ((?x44 (ite $x34 (_ bv2 9) (ite (and true (not $x33)) (_ bv511 9) standard_metadata.egress_spec)))) + (let (($x46 (and (distinct ?x41 (- 1)) true))) + (let (($x47 (and true $x46))) + (let (($x51 (and $x47 (and true (= ethernet.src_addr (_ bv256 48)))))) + (let ((?x57 (ite $x51 (_ bv3 9) ?x44))) + (let (($x59 (= ?x57 (_ bv511 9)))) + (let (($x211 (and (not $x59) true))) + (and $x211 (= ?x41 0)))))))))))))) (check-sat) ; @@ -94,43 +94,43 @@ (declare-fun ethernet.ether_type () (_ BitVec 16)) (declare-fun ethernet.src_addr () (_ BitVec 48)) (assert - (let (($x92 (= standard_metadata.ingress_port (_ bv7 9)))) - (let (($x87 (= standard_metadata.ingress_port (_ bv6 9)))) - (let (($x82 (= standard_metadata.ingress_port (_ bv5 9)))) - (let (($x77 (= standard_metadata.ingress_port (_ bv4 9)))) - (let (($x72 (= standard_metadata.ingress_port (_ bv3 9)))) - (let (($x68 (= standard_metadata.ingress_port (_ bv2 9)))) - (let (($x64 (= standard_metadata.ingress_port (_ bv1 9)))) - (let (($x69 (or (or (or false (= standard_metadata.ingress_port (_ bv0 9))) $x64) $x68))) - (or (or (or (or (or $x69 $x72) $x77) $x82) $x87) $x92)))))))))) + (let (($x95 (= standard_metadata.ingress_port (_ bv7 9)))) + (let (($x90 (= standard_metadata.ingress_port (_ bv6 9)))) + (let (($x85 (= standard_metadata.ingress_port (_ bv5 9)))) + (let (($x80 (= standard_metadata.ingress_port (_ bv4 9)))) + (let (($x75 (= standard_metadata.ingress_port (_ bv3 9)))) + (let (($x71 (= standard_metadata.ingress_port (_ bv2 9)))) + (let (($x67 (= standard_metadata.ingress_port (_ bv1 9)))) + (let (($x72 (or (or (or false (= standard_metadata.ingress_port (_ bv0 9))) $x67) $x71))) + (or (or (or (or (or $x72 $x75) $x80) $x85) $x90) $x95)))))))))) (assert - (let ((?x36 (ite (and true (not (and true (= ethernet.ether_type (_ bv16 16))))) (_ bv511 9) standard_metadata.egress_spec))) - (let (($x29 (= ethernet.ether_type (_ bv16 16)))) - (let (($x30 (and true $x29))) - (let (($x31 (and true $x30))) - (let ((?x38 (ite $x31 0 (- 1)))) - (let (($x43 (and (distinct ?x38 (- 1)) true))) - (let (($x44 (and true $x43))) - (let (($x48 (and $x44 (and true (= ethernet.src_addr (_ bv256 48)))))) - (let ((?x54 (ite $x48 (_ bv3 9) (ite $x31 (_ bv2 9) ?x36)))) - (let (($x75 (or (or (or (or false (= ?x54 (_ bv0 9))) (= ?x54 (_ bv1 9))) (= ?x54 (_ bv2 9))) (= ?x54 (_ bv3 9))))) - (let (($x95 (or (or (or (or $x75 (= ?x54 (_ bv4 9))) (= ?x54 (_ bv5 9))) (= ?x54 (_ bv6 9))) (= ?x54 (_ bv7 9))))) - (let (($x56 (= ?x54 (_ bv511 9)))) - (or $x56 $x95)))))))))))))) + (let ((?x39 (ite (and true (not (and true (= ethernet.ether_type (_ bv16 16))))) (_ bv511 9) standard_metadata.egress_spec))) + (let (($x32 (= ethernet.ether_type (_ bv16 16)))) + (let (($x33 (and true $x32))) + (let (($x34 (and true $x33))) + (let ((?x41 (ite $x34 0 (- 1)))) + (let (($x46 (and (distinct ?x41 (- 1)) true))) + (let (($x47 (and true $x46))) + (let (($x51 (and $x47 (and true (= ethernet.src_addr (_ bv256 48)))))) + (let ((?x57 (ite $x51 (_ bv3 9) (ite $x34 (_ bv2 9) ?x39)))) + (let (($x78 (or (or (or (or false (= ?x57 (_ bv0 9))) (= ?x57 (_ bv1 9))) (= ?x57 (_ bv2 9))) (= ?x57 (_ bv3 9))))) + (let (($x98 (or (or (or (or $x78 (= ?x57 (_ bv4 9))) (= ?x57 (_ bv5 9))) (= ?x57 (_ bv6 9))) (= ?x57 (_ bv7 9))))) + (let (($x59 (= ?x57 (_ bv511 9)))) + (or $x59 $x98)))))))))))))) (assert - (let (($x29 (= ethernet.ether_type (_ bv16 16)))) - (let (($x30 (and true $x29))) - (let (($x31 (and true $x30))) - (let ((?x38 (ite $x31 0 (- 1)))) - (let (($x43 (and (distinct ?x38 (- 1)) true))) - (let (($x44 (and true $x43))) - (let (($x48 (and $x44 (and true (= ethernet.src_addr (_ bv256 48)))))) - (let ((?x50 (ite $x43 (ite $x48 0 (- 1)) (- 1)))) - (let (($x49 (ite $x43 $x44 false))) - (let ((?x41 (ite $x31 (_ bv2 9) (ite (and true (not $x30)) (_ bv511 9) standard_metadata.egress_spec)))) - (let ((?x54 (ite $x48 (_ bv3 9) ?x41))) - (let (($x56 (= ?x54 (_ bv511 9)))) - (and (and (not $x56) $x49) (= ?x50 (- 1)))))))))))))))) + (let (($x32 (= ethernet.ether_type (_ bv16 16)))) + (let (($x33 (and true $x32))) + (let (($x34 (and true $x33))) + (let ((?x41 (ite $x34 0 (- 1)))) + (let (($x46 (and (distinct ?x41 (- 1)) true))) + (let (($x47 (and true $x46))) + (let (($x51 (and $x47 (and true (= ethernet.src_addr (_ bv256 48)))))) + (let ((?x53 (ite $x46 (ite $x51 0 (- 1)) (- 1)))) + (let (($x52 (ite $x46 $x47 false))) + (let ((?x44 (ite $x34 (_ bv2 9) (ite (and true (not $x33)) (_ bv511 9) standard_metadata.egress_spec)))) + (let ((?x57 (ite $x51 (_ bv3 9) ?x44))) + (let (($x59 (= ?x57 (_ bv511 9)))) + (and (and (not $x59) $x52) (= ?x53 (- 1)))))))))))))))) (check-sat) ; @@ -140,42 +140,42 @@ (declare-fun ethernet.ether_type () (_ BitVec 16)) (declare-fun ethernet.src_addr () (_ BitVec 48)) (assert - (let (($x92 (= standard_metadata.ingress_port (_ bv7 9)))) - (let (($x87 (= standard_metadata.ingress_port (_ bv6 9)))) - (let (($x82 (= standard_metadata.ingress_port (_ bv5 9)))) - (let (($x77 (= standard_metadata.ingress_port (_ bv4 9)))) - (let (($x72 (= standard_metadata.ingress_port (_ bv3 9)))) - (let (($x68 (= standard_metadata.ingress_port (_ bv2 9)))) - (let (($x64 (= standard_metadata.ingress_port (_ bv1 9)))) - (let (($x69 (or (or (or false (= standard_metadata.ingress_port (_ bv0 9))) $x64) $x68))) - (or (or (or (or (or $x69 $x72) $x77) $x82) $x87) $x92)))))))))) + (let (($x95 (= standard_metadata.ingress_port (_ bv7 9)))) + (let (($x90 (= standard_metadata.ingress_port (_ bv6 9)))) + (let (($x85 (= standard_metadata.ingress_port (_ bv5 9)))) + (let (($x80 (= standard_metadata.ingress_port (_ bv4 9)))) + (let (($x75 (= standard_metadata.ingress_port (_ bv3 9)))) + (let (($x71 (= standard_metadata.ingress_port (_ bv2 9)))) + (let (($x67 (= standard_metadata.ingress_port (_ bv1 9)))) + (let (($x72 (or (or (or false (= standard_metadata.ingress_port (_ bv0 9))) $x67) $x71))) + (or (or (or (or (or $x72 $x75) $x80) $x85) $x90) $x95)))))))))) (assert - (let ((?x36 (ite (and true (not (and true (= ethernet.ether_type (_ bv16 16))))) (_ bv511 9) standard_metadata.egress_spec))) - (let (($x29 (= ethernet.ether_type (_ bv16 16)))) - (let (($x30 (and true $x29))) - (let (($x31 (and true $x30))) - (let ((?x38 (ite $x31 0 (- 1)))) - (let (($x43 (and (distinct ?x38 (- 1)) true))) - (let (($x44 (and true $x43))) - (let (($x48 (and $x44 (and true (= ethernet.src_addr (_ bv256 48)))))) - (let ((?x54 (ite $x48 (_ bv3 9) (ite $x31 (_ bv2 9) ?x36)))) - (let (($x75 (or (or (or (or false (= ?x54 (_ bv0 9))) (= ?x54 (_ bv1 9))) (= ?x54 (_ bv2 9))) (= ?x54 (_ bv3 9))))) - (let (($x95 (or (or (or (or $x75 (= ?x54 (_ bv4 9))) (= ?x54 (_ bv5 9))) (= ?x54 (_ bv6 9))) (= ?x54 (_ bv7 9))))) - (let (($x56 (= ?x54 (_ bv511 9)))) - (or $x56 $x95)))))))))))))) + (let ((?x39 (ite (and true (not (and true (= ethernet.ether_type (_ bv16 16))))) (_ bv511 9) standard_metadata.egress_spec))) + (let (($x32 (= ethernet.ether_type (_ bv16 16)))) + (let (($x33 (and true $x32))) + (let (($x34 (and true $x33))) + (let ((?x41 (ite $x34 0 (- 1)))) + (let (($x46 (and (distinct ?x41 (- 1)) true))) + (let (($x47 (and true $x46))) + (let (($x51 (and $x47 (and true (= ethernet.src_addr (_ bv256 48)))))) + (let ((?x57 (ite $x51 (_ bv3 9) (ite $x34 (_ bv2 9) ?x39)))) + (let (($x78 (or (or (or (or false (= ?x57 (_ bv0 9))) (= ?x57 (_ bv1 9))) (= ?x57 (_ bv2 9))) (= ?x57 (_ bv3 9))))) + (let (($x98 (or (or (or (or $x78 (= ?x57 (_ bv4 9))) (= ?x57 (_ bv5 9))) (= ?x57 (_ bv6 9))) (= ?x57 (_ bv7 9))))) + (let (($x59 (= ?x57 (_ bv511 9)))) + (or $x59 $x98)))))))))))))) (assert - (let (($x29 (= ethernet.ether_type (_ bv16 16)))) - (let (($x30 (and true $x29))) - (let (($x31 (and true $x30))) - (let ((?x38 (ite $x31 0 (- 1)))) - (let (($x43 (and (distinct ?x38 (- 1)) true))) - (let (($x44 (and true $x43))) - (let (($x48 (and $x44 (and true (= ethernet.src_addr (_ bv256 48)))))) - (let ((?x50 (ite $x43 (ite $x48 0 (- 1)) (- 1)))) - (let (($x49 (ite $x43 $x44 false))) - (let ((?x41 (ite $x31 (_ bv2 9) (ite (and true (not $x30)) (_ bv511 9) standard_metadata.egress_spec)))) - (let ((?x54 (ite $x48 (_ bv3 9) ?x41))) - (let (($x56 (= ?x54 (_ bv511 9)))) - (and (and (not $x56) $x49) (= ?x50 0))))))))))))))) + (let (($x32 (= ethernet.ether_type (_ bv16 16)))) + (let (($x33 (and true $x32))) + (let (($x34 (and true $x33))) + (let ((?x41 (ite $x34 0 (- 1)))) + (let (($x46 (and (distinct ?x41 (- 1)) true))) + (let (($x47 (and true $x46))) + (let (($x51 (and $x47 (and true (= ethernet.src_addr (_ bv256 48)))))) + (let ((?x53 (ite $x46 (ite $x51 0 (- 1)) (- 1)))) + (let (($x52 (ite $x46 $x47 false))) + (let ((?x44 (ite $x34 (_ bv2 9) (ite (and true (not $x33)) (_ bv511 9) standard_metadata.egress_spec)))) + (let ((?x57 (ite $x51 (_ bv3 9) ?x44))) + (let (($x59 (= ?x57 (_ bv511 9)))) + (and (and (not $x59) $x52) (= ?x53 0))))))))))))))) (check-sat) diff --git a/p4_symbolic/symbolic/expected/table_hit_2.smt2 b/p4_symbolic/symbolic/expected/table_hit_2.smt2 index 68790db9..d90a6943 100644 --- a/p4_symbolic/symbolic/expected/table_hit_2.smt2 +++ b/p4_symbolic/symbolic/expected/table_hit_2.smt2 @@ -6,43 +6,43 @@ (declare-fun h1.f2 () (_ BitVec 8)) (declare-fun h1.f3 () (_ BitVec 8)) (assert - (let (($x100 (= standard_metadata.ingress_port (_ bv7 9)))) - (let (($x95 (= standard_metadata.ingress_port (_ bv6 9)))) - (let (($x90 (= standard_metadata.ingress_port (_ bv5 9)))) - (let (($x85 (= standard_metadata.ingress_port (_ bv4 9)))) - (let (($x80 (= standard_metadata.ingress_port (_ bv3 9)))) - (let (($x76 (= standard_metadata.ingress_port (_ bv2 9)))) - (let (($x72 (= standard_metadata.ingress_port (_ bv1 9)))) - (let (($x77 (or (or (or false (= standard_metadata.ingress_port (_ bv0 9))) $x72) $x76))) - (or (or (or (or (or $x77 $x80) $x85) $x90) $x95) $x100)))))))))) + (let (($x103 (= standard_metadata.ingress_port (_ bv7 9)))) + (let (($x98 (= standard_metadata.ingress_port (_ bv6 9)))) + (let (($x93 (= standard_metadata.ingress_port (_ bv5 9)))) + (let (($x88 (= standard_metadata.ingress_port (_ bv4 9)))) + (let (($x83 (= standard_metadata.ingress_port (_ bv3 9)))) + (let (($x79 (= standard_metadata.ingress_port (_ bv2 9)))) + (let (($x75 (= standard_metadata.ingress_port (_ bv1 9)))) + (let (($x80 (or (or (or false (= standard_metadata.ingress_port (_ bv0 9))) $x75) $x79))) + (or (or (or (or (or $x80 $x83) $x88) $x93) $x98) $x103)))))))))) (assert - (let (($x37 (and true (and true (= h1.f1 (_ bv255 8)))))) - (let ((?x43 (ite $x37 (_ bv1 9) (ite true (concat (_ bv0 8) (_ bv0 1)) standard_metadata.egress_spec)))) - (let ((?x41 (ite $x37 0 (- 1)))) - (let (($x44 (and (distinct ?x41 (- 1)) true))) - (let (($x45 (and true $x44))) - (let (($x48 (and $x45 (and true (= h1.f2 (_ bv255 8)))))) - (let (($x54 (= ?x41 (- 1)))) - (let (($x55 (and true $x54))) - (let (($x58 (and $x55 (and true (= h1.f3 (_ bv255 8)))))) - (let ((?x63 (ite $x58 (_ bv3 9) (ite $x48 (_ bv2 9) ?x43)))) - (let (($x83 (or (or (or (or false (= ?x63 (_ bv0 9))) (= ?x63 (_ bv1 9))) (= ?x63 (_ bv2 9))) (= ?x63 (_ bv3 9))))) - (let (($x103 (or (or (or (or $x83 (= ?x63 (_ bv4 9))) (= ?x63 (_ bv5 9))) (= ?x63 (_ bv6 9))) (= ?x63 (_ bv7 9))))) - (let (($x39 (= ?x63 (_ bv511 9)))) - (or $x39 $x103))))))))))))))) + (let (($x40 (and true (and true (= h1.f1 (_ bv255 8)))))) + (let ((?x46 (ite $x40 (_ bv1 9) (ite true (concat (_ bv0 8) (_ bv0 1)) standard_metadata.egress_spec)))) + (let ((?x44 (ite $x40 0 (- 1)))) + (let (($x47 (and (distinct ?x44 (- 1)) true))) + (let (($x48 (and true $x47))) + (let (($x51 (and $x48 (and true (= h1.f2 (_ bv255 8)))))) + (let (($x57 (= ?x44 (- 1)))) + (let (($x58 (and true $x57))) + (let (($x61 (and $x58 (and true (= h1.f3 (_ bv255 8)))))) + (let ((?x66 (ite $x61 (_ bv3 9) (ite $x51 (_ bv2 9) ?x46)))) + (let (($x86 (or (or (or (or false (= ?x66 (_ bv0 9))) (= ?x66 (_ bv1 9))) (= ?x66 (_ bv2 9))) (= ?x66 (_ bv3 9))))) + (let (($x106 (or (or (or (or $x86 (= ?x66 (_ bv4 9))) (= ?x66 (_ bv5 9))) (= ?x66 (_ bv6 9))) (= ?x66 (_ bv7 9))))) + (let (($x42 (= ?x66 (_ bv511 9)))) + (or $x42 $x106))))))))))))))) (assert - (let (($x37 (and true (and true (= h1.f1 (_ bv255 8)))))) - (let ((?x41 (ite $x37 0 (- 1)))) - (let (($x54 (= ?x41 (- 1)))) - (let ((?x43 (ite $x37 (_ bv1 9) (ite true (concat (_ bv0 8) (_ bv0 1)) standard_metadata.egress_spec)))) - (let (($x44 (and (distinct ?x41 (- 1)) true))) - (let (($x45 (and true $x44))) - (let (($x48 (and $x45 (and true (= h1.f2 (_ bv255 8)))))) - (let (($x55 (and true $x54))) - (let (($x58 (and $x55 (and true (= h1.f3 (_ bv255 8)))))) - (let ((?x63 (ite $x58 (_ bv3 9) (ite $x48 (_ bv2 9) ?x43)))) - (let (($x39 (= ?x63 (_ bv511 9)))) - (and (and (not $x39) true) $x54))))))))))))) + (let (($x40 (and true (and true (= h1.f1 (_ bv255 8)))))) + (let ((?x44 (ite $x40 0 (- 1)))) + (let (($x57 (= ?x44 (- 1)))) + (let ((?x46 (ite $x40 (_ bv1 9) (ite true (concat (_ bv0 8) (_ bv0 1)) standard_metadata.egress_spec)))) + (let (($x47 (and (distinct ?x44 (- 1)) true))) + (let (($x48 (and true $x47))) + (let (($x51 (and $x48 (and true (= h1.f2 (_ bv255 8)))))) + (let (($x58 (and true $x57))) + (let (($x61 (and $x58 (and true (= h1.f3 (_ bv255 8)))))) + (let ((?x66 (ite $x61 (_ bv3 9) (ite $x51 (_ bv2 9) ?x46)))) + (let (($x42 (= ?x66 (_ bv511 9)))) + (and (and (not $x42) true) $x57))))))))))))) (check-sat) ; @@ -53,43 +53,43 @@ (declare-fun h1.f2 () (_ BitVec 8)) (declare-fun h1.f3 () (_ BitVec 8)) (assert - (let (($x100 (= standard_metadata.ingress_port (_ bv7 9)))) - (let (($x95 (= standard_metadata.ingress_port (_ bv6 9)))) - (let (($x90 (= standard_metadata.ingress_port (_ bv5 9)))) - (let (($x85 (= standard_metadata.ingress_port (_ bv4 9)))) - (let (($x80 (= standard_metadata.ingress_port (_ bv3 9)))) - (let (($x76 (= standard_metadata.ingress_port (_ bv2 9)))) - (let (($x72 (= standard_metadata.ingress_port (_ bv1 9)))) - (let (($x77 (or (or (or false (= standard_metadata.ingress_port (_ bv0 9))) $x72) $x76))) - (or (or (or (or (or $x77 $x80) $x85) $x90) $x95) $x100)))))))))) + (let (($x103 (= standard_metadata.ingress_port (_ bv7 9)))) + (let (($x98 (= standard_metadata.ingress_port (_ bv6 9)))) + (let (($x93 (= standard_metadata.ingress_port (_ bv5 9)))) + (let (($x88 (= standard_metadata.ingress_port (_ bv4 9)))) + (let (($x83 (= standard_metadata.ingress_port (_ bv3 9)))) + (let (($x79 (= standard_metadata.ingress_port (_ bv2 9)))) + (let (($x75 (= standard_metadata.ingress_port (_ bv1 9)))) + (let (($x80 (or (or (or false (= standard_metadata.ingress_port (_ bv0 9))) $x75) $x79))) + (or (or (or (or (or $x80 $x83) $x88) $x93) $x98) $x103)))))))))) (assert - (let (($x37 (and true (and true (= h1.f1 (_ bv255 8)))))) - (let ((?x43 (ite $x37 (_ bv1 9) (ite true (concat (_ bv0 8) (_ bv0 1)) standard_metadata.egress_spec)))) - (let ((?x41 (ite $x37 0 (- 1)))) - (let (($x44 (and (distinct ?x41 (- 1)) true))) - (let (($x45 (and true $x44))) - (let (($x48 (and $x45 (and true (= h1.f2 (_ bv255 8)))))) - (let (($x54 (= ?x41 (- 1)))) - (let (($x55 (and true $x54))) - (let (($x58 (and $x55 (and true (= h1.f3 (_ bv255 8)))))) - (let ((?x63 (ite $x58 (_ bv3 9) (ite $x48 (_ bv2 9) ?x43)))) - (let (($x83 (or (or (or (or false (= ?x63 (_ bv0 9))) (= ?x63 (_ bv1 9))) (= ?x63 (_ bv2 9))) (= ?x63 (_ bv3 9))))) - (let (($x103 (or (or (or (or $x83 (= ?x63 (_ bv4 9))) (= ?x63 (_ bv5 9))) (= ?x63 (_ bv6 9))) (= ?x63 (_ bv7 9))))) - (let (($x39 (= ?x63 (_ bv511 9)))) - (or $x39 $x103))))))))))))))) + (let (($x40 (and true (and true (= h1.f1 (_ bv255 8)))))) + (let ((?x46 (ite $x40 (_ bv1 9) (ite true (concat (_ bv0 8) (_ bv0 1)) standard_metadata.egress_spec)))) + (let ((?x44 (ite $x40 0 (- 1)))) + (let (($x47 (and (distinct ?x44 (- 1)) true))) + (let (($x48 (and true $x47))) + (let (($x51 (and $x48 (and true (= h1.f2 (_ bv255 8)))))) + (let (($x57 (= ?x44 (- 1)))) + (let (($x58 (and true $x57))) + (let (($x61 (and $x58 (and true (= h1.f3 (_ bv255 8)))))) + (let ((?x66 (ite $x61 (_ bv3 9) (ite $x51 (_ bv2 9) ?x46)))) + (let (($x86 (or (or (or (or false (= ?x66 (_ bv0 9))) (= ?x66 (_ bv1 9))) (= ?x66 (_ bv2 9))) (= ?x66 (_ bv3 9))))) + (let (($x106 (or (or (or (or $x86 (= ?x66 (_ bv4 9))) (= ?x66 (_ bv5 9))) (= ?x66 (_ bv6 9))) (= ?x66 (_ bv7 9))))) + (let (($x42 (= ?x66 (_ bv511 9)))) + (or $x42 $x106))))))))))))))) (assert - (let (($x37 (and true (and true (= h1.f1 (_ bv255 8)))))) - (let ((?x41 (ite $x37 0 (- 1)))) - (let ((?x43 (ite $x37 (_ bv1 9) (ite true (concat (_ bv0 8) (_ bv0 1)) standard_metadata.egress_spec)))) - (let (($x44 (and (distinct ?x41 (- 1)) true))) - (let (($x45 (and true $x44))) - (let (($x48 (and $x45 (and true (= h1.f2 (_ bv255 8)))))) - (let (($x54 (= ?x41 (- 1)))) - (let (($x55 (and true $x54))) - (let (($x58 (and $x55 (and true (= h1.f3 (_ bv255 8)))))) - (let ((?x63 (ite $x58 (_ bv3 9) (ite $x48 (_ bv2 9) ?x43)))) - (let (($x39 (= ?x63 (_ bv511 9)))) - (and (and (not $x39) true) (= ?x41 0)))))))))))))) + (let (($x40 (and true (and true (= h1.f1 (_ bv255 8)))))) + (let ((?x44 (ite $x40 0 (- 1)))) + (let ((?x46 (ite $x40 (_ bv1 9) (ite true (concat (_ bv0 8) (_ bv0 1)) standard_metadata.egress_spec)))) + (let (($x47 (and (distinct ?x44 (- 1)) true))) + (let (($x48 (and true $x47))) + (let (($x51 (and $x48 (and true (= h1.f2 (_ bv255 8)))))) + (let (($x57 (= ?x44 (- 1)))) + (let (($x58 (and true $x57))) + (let (($x61 (and $x58 (and true (= h1.f3 (_ bv255 8)))))) + (let ((?x66 (ite $x61 (_ bv3 9) (ite $x51 (_ bv2 9) ?x46)))) + (let (($x42 (= ?x66 (_ bv511 9)))) + (and (and (not $x42) true) (= ?x44 0)))))))))))))) (check-sat) ; @@ -100,45 +100,45 @@ (declare-fun h1.f2 () (_ BitVec 8)) (declare-fun h1.f3 () (_ BitVec 8)) (assert - (let (($x100 (= standard_metadata.ingress_port (_ bv7 9)))) - (let (($x95 (= standard_metadata.ingress_port (_ bv6 9)))) - (let (($x90 (= standard_metadata.ingress_port (_ bv5 9)))) - (let (($x85 (= standard_metadata.ingress_port (_ bv4 9)))) - (let (($x80 (= standard_metadata.ingress_port (_ bv3 9)))) - (let (($x76 (= standard_metadata.ingress_port (_ bv2 9)))) - (let (($x72 (= standard_metadata.ingress_port (_ bv1 9)))) - (let (($x77 (or (or (or false (= standard_metadata.ingress_port (_ bv0 9))) $x72) $x76))) - (or (or (or (or (or $x77 $x80) $x85) $x90) $x95) $x100)))))))))) + (let (($x103 (= standard_metadata.ingress_port (_ bv7 9)))) + (let (($x98 (= standard_metadata.ingress_port (_ bv6 9)))) + (let (($x93 (= standard_metadata.ingress_port (_ bv5 9)))) + (let (($x88 (= standard_metadata.ingress_port (_ bv4 9)))) + (let (($x83 (= standard_metadata.ingress_port (_ bv3 9)))) + (let (($x79 (= standard_metadata.ingress_port (_ bv2 9)))) + (let (($x75 (= standard_metadata.ingress_port (_ bv1 9)))) + (let (($x80 (or (or (or false (= standard_metadata.ingress_port (_ bv0 9))) $x75) $x79))) + (or (or (or (or (or $x80 $x83) $x88) $x93) $x98) $x103)))))))))) (assert - (let (($x37 (and true (and true (= h1.f1 (_ bv255 8)))))) - (let ((?x43 (ite $x37 (_ bv1 9) (ite true (concat (_ bv0 8) (_ bv0 1)) standard_metadata.egress_spec)))) - (let ((?x41 (ite $x37 0 (- 1)))) - (let (($x44 (and (distinct ?x41 (- 1)) true))) - (let (($x45 (and true $x44))) - (let (($x48 (and $x45 (and true (= h1.f2 (_ bv255 8)))))) - (let (($x54 (= ?x41 (- 1)))) - (let (($x55 (and true $x54))) - (let (($x58 (and $x55 (and true (= h1.f3 (_ bv255 8)))))) - (let ((?x63 (ite $x58 (_ bv3 9) (ite $x48 (_ bv2 9) ?x43)))) - (let (($x83 (or (or (or (or false (= ?x63 (_ bv0 9))) (= ?x63 (_ bv1 9))) (= ?x63 (_ bv2 9))) (= ?x63 (_ bv3 9))))) - (let (($x103 (or (or (or (or $x83 (= ?x63 (_ bv4 9))) (= ?x63 (_ bv5 9))) (= ?x63 (_ bv6 9))) (= ?x63 (_ bv7 9))))) - (let (($x39 (= ?x63 (_ bv511 9)))) - (or $x39 $x103))))))))))))))) + (let (($x40 (and true (and true (= h1.f1 (_ bv255 8)))))) + (let ((?x46 (ite $x40 (_ bv1 9) (ite true (concat (_ bv0 8) (_ bv0 1)) standard_metadata.egress_spec)))) + (let ((?x44 (ite $x40 0 (- 1)))) + (let (($x47 (and (distinct ?x44 (- 1)) true))) + (let (($x48 (and true $x47))) + (let (($x51 (and $x48 (and true (= h1.f2 (_ bv255 8)))))) + (let (($x57 (= ?x44 (- 1)))) + (let (($x58 (and true $x57))) + (let (($x61 (and $x58 (and true (= h1.f3 (_ bv255 8)))))) + (let ((?x66 (ite $x61 (_ bv3 9) (ite $x51 (_ bv2 9) ?x46)))) + (let (($x86 (or (or (or (or false (= ?x66 (_ bv0 9))) (= ?x66 (_ bv1 9))) (= ?x66 (_ bv2 9))) (= ?x66 (_ bv3 9))))) + (let (($x106 (or (or (or (or $x86 (= ?x66 (_ bv4 9))) (= ?x66 (_ bv5 9))) (= ?x66 (_ bv6 9))) (= ?x66 (_ bv7 9))))) + (let (($x42 (= ?x66 (_ bv511 9)))) + (or $x42 $x106))))))))))))))) (assert - (let (($x37 (and true (and true (= h1.f1 (_ bv255 8)))))) - (let ((?x41 (ite $x37 0 (- 1)))) - (let (($x44 (and (distinct ?x41 (- 1)) true))) - (let (($x45 (and true $x44))) - (let (($x48 (and $x45 (and true (= h1.f2 (_ bv255 8)))))) - (let (($x54 (= ?x41 (- 1)))) - (let ((?x65 (ite $x54 (- 1) (ite $x44 (ite $x48 0 (- 1)) (- 1))))) - (let (($x64 (ite $x54 false (ite $x44 $x45 false)))) - (let ((?x43 (ite $x37 (_ bv1 9) (ite true (concat (_ bv0 8) (_ bv0 1)) standard_metadata.egress_spec)))) - (let (($x55 (and true $x54))) - (let (($x58 (and $x55 (and true (= h1.f3 (_ bv255 8)))))) - (let ((?x63 (ite $x58 (_ bv3 9) (ite $x48 (_ bv2 9) ?x43)))) - (let (($x39 (= ?x63 (_ bv511 9)))) - (and (and (not $x39) $x64) (= ?x65 (- 1))))))))))))))))) + (let (($x40 (and true (and true (= h1.f1 (_ bv255 8)))))) + (let ((?x44 (ite $x40 0 (- 1)))) + (let (($x47 (and (distinct ?x44 (- 1)) true))) + (let (($x48 (and true $x47))) + (let (($x51 (and $x48 (and true (= h1.f2 (_ bv255 8)))))) + (let (($x57 (= ?x44 (- 1)))) + (let ((?x68 (ite $x57 (- 1) (ite $x47 (ite $x51 0 (- 1)) (- 1))))) + (let (($x67 (ite $x57 false (ite $x47 $x48 false)))) + (let ((?x46 (ite $x40 (_ bv1 9) (ite true (concat (_ bv0 8) (_ bv0 1)) standard_metadata.egress_spec)))) + (let (($x58 (and true $x57))) + (let (($x61 (and $x58 (and true (= h1.f3 (_ bv255 8)))))) + (let ((?x66 (ite $x61 (_ bv3 9) (ite $x51 (_ bv2 9) ?x46)))) + (let (($x42 (= ?x66 (_ bv511 9)))) + (and (and (not $x42) $x67) (= ?x68 (- 1))))))))))))))))) (check-sat) ; @@ -149,45 +149,45 @@ (declare-fun h1.f2 () (_ BitVec 8)) (declare-fun h1.f3 () (_ BitVec 8)) (assert - (let (($x100 (= standard_metadata.ingress_port (_ bv7 9)))) - (let (($x95 (= standard_metadata.ingress_port (_ bv6 9)))) - (let (($x90 (= standard_metadata.ingress_port (_ bv5 9)))) - (let (($x85 (= standard_metadata.ingress_port (_ bv4 9)))) - (let (($x80 (= standard_metadata.ingress_port (_ bv3 9)))) - (let (($x76 (= standard_metadata.ingress_port (_ bv2 9)))) - (let (($x72 (= standard_metadata.ingress_port (_ bv1 9)))) - (let (($x77 (or (or (or false (= standard_metadata.ingress_port (_ bv0 9))) $x72) $x76))) - (or (or (or (or (or $x77 $x80) $x85) $x90) $x95) $x100)))))))))) + (let (($x103 (= standard_metadata.ingress_port (_ bv7 9)))) + (let (($x98 (= standard_metadata.ingress_port (_ bv6 9)))) + (let (($x93 (= standard_metadata.ingress_port (_ bv5 9)))) + (let (($x88 (= standard_metadata.ingress_port (_ bv4 9)))) + (let (($x83 (= standard_metadata.ingress_port (_ bv3 9)))) + (let (($x79 (= standard_metadata.ingress_port (_ bv2 9)))) + (let (($x75 (= standard_metadata.ingress_port (_ bv1 9)))) + (let (($x80 (or (or (or false (= standard_metadata.ingress_port (_ bv0 9))) $x75) $x79))) + (or (or (or (or (or $x80 $x83) $x88) $x93) $x98) $x103)))))))))) (assert - (let (($x37 (and true (and true (= h1.f1 (_ bv255 8)))))) - (let ((?x43 (ite $x37 (_ bv1 9) (ite true (concat (_ bv0 8) (_ bv0 1)) standard_metadata.egress_spec)))) - (let ((?x41 (ite $x37 0 (- 1)))) - (let (($x44 (and (distinct ?x41 (- 1)) true))) - (let (($x45 (and true $x44))) - (let (($x48 (and $x45 (and true (= h1.f2 (_ bv255 8)))))) - (let (($x54 (= ?x41 (- 1)))) - (let (($x55 (and true $x54))) - (let (($x58 (and $x55 (and true (= h1.f3 (_ bv255 8)))))) - (let ((?x63 (ite $x58 (_ bv3 9) (ite $x48 (_ bv2 9) ?x43)))) - (let (($x83 (or (or (or (or false (= ?x63 (_ bv0 9))) (= ?x63 (_ bv1 9))) (= ?x63 (_ bv2 9))) (= ?x63 (_ bv3 9))))) - (let (($x103 (or (or (or (or $x83 (= ?x63 (_ bv4 9))) (= ?x63 (_ bv5 9))) (= ?x63 (_ bv6 9))) (= ?x63 (_ bv7 9))))) - (let (($x39 (= ?x63 (_ bv511 9)))) - (or $x39 $x103))))))))))))))) + (let (($x40 (and true (and true (= h1.f1 (_ bv255 8)))))) + (let ((?x46 (ite $x40 (_ bv1 9) (ite true (concat (_ bv0 8) (_ bv0 1)) standard_metadata.egress_spec)))) + (let ((?x44 (ite $x40 0 (- 1)))) + (let (($x47 (and (distinct ?x44 (- 1)) true))) + (let (($x48 (and true $x47))) + (let (($x51 (and $x48 (and true (= h1.f2 (_ bv255 8)))))) + (let (($x57 (= ?x44 (- 1)))) + (let (($x58 (and true $x57))) + (let (($x61 (and $x58 (and true (= h1.f3 (_ bv255 8)))))) + (let ((?x66 (ite $x61 (_ bv3 9) (ite $x51 (_ bv2 9) ?x46)))) + (let (($x86 (or (or (or (or false (= ?x66 (_ bv0 9))) (= ?x66 (_ bv1 9))) (= ?x66 (_ bv2 9))) (= ?x66 (_ bv3 9))))) + (let (($x106 (or (or (or (or $x86 (= ?x66 (_ bv4 9))) (= ?x66 (_ bv5 9))) (= ?x66 (_ bv6 9))) (= ?x66 (_ bv7 9))))) + (let (($x42 (= ?x66 (_ bv511 9)))) + (or $x42 $x106))))))))))))))) (assert - (let (($x37 (and true (and true (= h1.f1 (_ bv255 8)))))) - (let ((?x41 (ite $x37 0 (- 1)))) - (let (($x44 (and (distinct ?x41 (- 1)) true))) - (let (($x45 (and true $x44))) - (let (($x48 (and $x45 (and true (= h1.f2 (_ bv255 8)))))) - (let (($x54 (= ?x41 (- 1)))) - (let ((?x65 (ite $x54 (- 1) (ite $x44 (ite $x48 0 (- 1)) (- 1))))) - (let (($x64 (ite $x54 false (ite $x44 $x45 false)))) - (let ((?x43 (ite $x37 (_ bv1 9) (ite true (concat (_ bv0 8) (_ bv0 1)) standard_metadata.egress_spec)))) - (let (($x55 (and true $x54))) - (let (($x58 (and $x55 (and true (= h1.f3 (_ bv255 8)))))) - (let ((?x63 (ite $x58 (_ bv3 9) (ite $x48 (_ bv2 9) ?x43)))) - (let (($x39 (= ?x63 (_ bv511 9)))) - (and (and (not $x39) $x64) (= ?x65 0)))))))))))))))) + (let (($x40 (and true (and true (= h1.f1 (_ bv255 8)))))) + (let ((?x44 (ite $x40 0 (- 1)))) + (let (($x47 (and (distinct ?x44 (- 1)) true))) + (let (($x48 (and true $x47))) + (let (($x51 (and $x48 (and true (= h1.f2 (_ bv255 8)))))) + (let (($x57 (= ?x44 (- 1)))) + (let ((?x68 (ite $x57 (- 1) (ite $x47 (ite $x51 0 (- 1)) (- 1))))) + (let (($x67 (ite $x57 false (ite $x47 $x48 false)))) + (let ((?x46 (ite $x40 (_ bv1 9) (ite true (concat (_ bv0 8) (_ bv0 1)) standard_metadata.egress_spec)))) + (let (($x58 (and true $x57))) + (let (($x61 (and $x58 (and true (= h1.f3 (_ bv255 8)))))) + (let ((?x66 (ite $x61 (_ bv3 9) (ite $x51 (_ bv2 9) ?x46)))) + (let (($x42 (= ?x66 (_ bv511 9)))) + (and (and (not $x42) $x67) (= ?x68 0)))))))))))))))) (check-sat) ; @@ -198,45 +198,45 @@ (declare-fun h1.f2 () (_ BitVec 8)) (declare-fun h1.f3 () (_ BitVec 8)) (assert - (let (($x100 (= standard_metadata.ingress_port (_ bv7 9)))) - (let (($x95 (= standard_metadata.ingress_port (_ bv6 9)))) - (let (($x90 (= standard_metadata.ingress_port (_ bv5 9)))) - (let (($x85 (= standard_metadata.ingress_port (_ bv4 9)))) - (let (($x80 (= standard_metadata.ingress_port (_ bv3 9)))) - (let (($x76 (= standard_metadata.ingress_port (_ bv2 9)))) - (let (($x72 (= standard_metadata.ingress_port (_ bv1 9)))) - (let (($x77 (or (or (or false (= standard_metadata.ingress_port (_ bv0 9))) $x72) $x76))) - (or (or (or (or (or $x77 $x80) $x85) $x90) $x95) $x100)))))))))) + (let (($x103 (= standard_metadata.ingress_port (_ bv7 9)))) + (let (($x98 (= standard_metadata.ingress_port (_ bv6 9)))) + (let (($x93 (= standard_metadata.ingress_port (_ bv5 9)))) + (let (($x88 (= standard_metadata.ingress_port (_ bv4 9)))) + (let (($x83 (= standard_metadata.ingress_port (_ bv3 9)))) + (let (($x79 (= standard_metadata.ingress_port (_ bv2 9)))) + (let (($x75 (= standard_metadata.ingress_port (_ bv1 9)))) + (let (($x80 (or (or (or false (= standard_metadata.ingress_port (_ bv0 9))) $x75) $x79))) + (or (or (or (or (or $x80 $x83) $x88) $x93) $x98) $x103)))))))))) (assert - (let (($x37 (and true (and true (= h1.f1 (_ bv255 8)))))) - (let ((?x43 (ite $x37 (_ bv1 9) (ite true (concat (_ bv0 8) (_ bv0 1)) standard_metadata.egress_spec)))) - (let ((?x41 (ite $x37 0 (- 1)))) - (let (($x44 (and (distinct ?x41 (- 1)) true))) - (let (($x45 (and true $x44))) - (let (($x48 (and $x45 (and true (= h1.f2 (_ bv255 8)))))) - (let (($x54 (= ?x41 (- 1)))) - (let (($x55 (and true $x54))) - (let (($x58 (and $x55 (and true (= h1.f3 (_ bv255 8)))))) - (let ((?x63 (ite $x58 (_ bv3 9) (ite $x48 (_ bv2 9) ?x43)))) - (let (($x83 (or (or (or (or false (= ?x63 (_ bv0 9))) (= ?x63 (_ bv1 9))) (= ?x63 (_ bv2 9))) (= ?x63 (_ bv3 9))))) - (let (($x103 (or (or (or (or $x83 (= ?x63 (_ bv4 9))) (= ?x63 (_ bv5 9))) (= ?x63 (_ bv6 9))) (= ?x63 (_ bv7 9))))) - (let (($x39 (= ?x63 (_ bv511 9)))) - (or $x39 $x103))))))))))))))) + (let (($x40 (and true (and true (= h1.f1 (_ bv255 8)))))) + (let ((?x46 (ite $x40 (_ bv1 9) (ite true (concat (_ bv0 8) (_ bv0 1)) standard_metadata.egress_spec)))) + (let ((?x44 (ite $x40 0 (- 1)))) + (let (($x47 (and (distinct ?x44 (- 1)) true))) + (let (($x48 (and true $x47))) + (let (($x51 (and $x48 (and true (= h1.f2 (_ bv255 8)))))) + (let (($x57 (= ?x44 (- 1)))) + (let (($x58 (and true $x57))) + (let (($x61 (and $x58 (and true (= h1.f3 (_ bv255 8)))))) + (let ((?x66 (ite $x61 (_ bv3 9) (ite $x51 (_ bv2 9) ?x46)))) + (let (($x86 (or (or (or (or false (= ?x66 (_ bv0 9))) (= ?x66 (_ bv1 9))) (= ?x66 (_ bv2 9))) (= ?x66 (_ bv3 9))))) + (let (($x106 (or (or (or (or $x86 (= ?x66 (_ bv4 9))) (= ?x66 (_ bv5 9))) (= ?x66 (_ bv6 9))) (= ?x66 (_ bv7 9))))) + (let (($x42 (= ?x66 (_ bv511 9)))) + (or $x42 $x106))))))))))))))) (assert - (let (($x37 (and true (and true (= h1.f1 (_ bv255 8)))))) - (let ((?x41 (ite $x37 0 (- 1)))) - (let (($x54 (= ?x41 (- 1)))) - (let (($x55 (and true $x54))) - (let (($x58 (and $x55 (and true (= h1.f3 (_ bv255 8)))))) - (let ((?x60 (ite $x54 (ite $x58 0 (- 1)) (- 1)))) - (let (($x59 (ite $x54 $x55 false))) - (let ((?x43 (ite $x37 (_ bv1 9) (ite true (concat (_ bv0 8) (_ bv0 1)) standard_metadata.egress_spec)))) - (let (($x44 (and (distinct ?x41 (- 1)) true))) - (let (($x45 (and true $x44))) - (let (($x48 (and $x45 (and true (= h1.f2 (_ bv255 8)))))) - (let ((?x63 (ite $x58 (_ bv3 9) (ite $x48 (_ bv2 9) ?x43)))) - (let (($x39 (= ?x63 (_ bv511 9)))) - (and (and (not $x39) $x59) (= ?x60 (- 1))))))))))))))))) + (let (($x40 (and true (and true (= h1.f1 (_ bv255 8)))))) + (let ((?x44 (ite $x40 0 (- 1)))) + (let (($x57 (= ?x44 (- 1)))) + (let (($x58 (and true $x57))) + (let (($x61 (and $x58 (and true (= h1.f3 (_ bv255 8)))))) + (let ((?x63 (ite $x57 (ite $x61 0 (- 1)) (- 1)))) + (let (($x62 (ite $x57 $x58 false))) + (let ((?x46 (ite $x40 (_ bv1 9) (ite true (concat (_ bv0 8) (_ bv0 1)) standard_metadata.egress_spec)))) + (let (($x47 (and (distinct ?x44 (- 1)) true))) + (let (($x48 (and true $x47))) + (let (($x51 (and $x48 (and true (= h1.f2 (_ bv255 8)))))) + (let ((?x66 (ite $x61 (_ bv3 9) (ite $x51 (_ bv2 9) ?x46)))) + (let (($x42 (= ?x66 (_ bv511 9)))) + (and (and (not $x42) $x62) (= ?x63 (- 1))))))))))))))))) (check-sat) ; @@ -247,45 +247,45 @@ (declare-fun h1.f2 () (_ BitVec 8)) (declare-fun h1.f3 () (_ BitVec 8)) (assert - (let (($x100 (= standard_metadata.ingress_port (_ bv7 9)))) - (let (($x95 (= standard_metadata.ingress_port (_ bv6 9)))) - (let (($x90 (= standard_metadata.ingress_port (_ bv5 9)))) - (let (($x85 (= standard_metadata.ingress_port (_ bv4 9)))) - (let (($x80 (= standard_metadata.ingress_port (_ bv3 9)))) - (let (($x76 (= standard_metadata.ingress_port (_ bv2 9)))) - (let (($x72 (= standard_metadata.ingress_port (_ bv1 9)))) - (let (($x77 (or (or (or false (= standard_metadata.ingress_port (_ bv0 9))) $x72) $x76))) - (or (or (or (or (or $x77 $x80) $x85) $x90) $x95) $x100)))))))))) + (let (($x103 (= standard_metadata.ingress_port (_ bv7 9)))) + (let (($x98 (= standard_metadata.ingress_port (_ bv6 9)))) + (let (($x93 (= standard_metadata.ingress_port (_ bv5 9)))) + (let (($x88 (= standard_metadata.ingress_port (_ bv4 9)))) + (let (($x83 (= standard_metadata.ingress_port (_ bv3 9)))) + (let (($x79 (= standard_metadata.ingress_port (_ bv2 9)))) + (let (($x75 (= standard_metadata.ingress_port (_ bv1 9)))) + (let (($x80 (or (or (or false (= standard_metadata.ingress_port (_ bv0 9))) $x75) $x79))) + (or (or (or (or (or $x80 $x83) $x88) $x93) $x98) $x103)))))))))) (assert - (let (($x37 (and true (and true (= h1.f1 (_ bv255 8)))))) - (let ((?x43 (ite $x37 (_ bv1 9) (ite true (concat (_ bv0 8) (_ bv0 1)) standard_metadata.egress_spec)))) - (let ((?x41 (ite $x37 0 (- 1)))) - (let (($x44 (and (distinct ?x41 (- 1)) true))) - (let (($x45 (and true $x44))) - (let (($x48 (and $x45 (and true (= h1.f2 (_ bv255 8)))))) - (let (($x54 (= ?x41 (- 1)))) - (let (($x55 (and true $x54))) - (let (($x58 (and $x55 (and true (= h1.f3 (_ bv255 8)))))) - (let ((?x63 (ite $x58 (_ bv3 9) (ite $x48 (_ bv2 9) ?x43)))) - (let (($x83 (or (or (or (or false (= ?x63 (_ bv0 9))) (= ?x63 (_ bv1 9))) (= ?x63 (_ bv2 9))) (= ?x63 (_ bv3 9))))) - (let (($x103 (or (or (or (or $x83 (= ?x63 (_ bv4 9))) (= ?x63 (_ bv5 9))) (= ?x63 (_ bv6 9))) (= ?x63 (_ bv7 9))))) - (let (($x39 (= ?x63 (_ bv511 9)))) - (or $x39 $x103))))))))))))))) + (let (($x40 (and true (and true (= h1.f1 (_ bv255 8)))))) + (let ((?x46 (ite $x40 (_ bv1 9) (ite true (concat (_ bv0 8) (_ bv0 1)) standard_metadata.egress_spec)))) + (let ((?x44 (ite $x40 0 (- 1)))) + (let (($x47 (and (distinct ?x44 (- 1)) true))) + (let (($x48 (and true $x47))) + (let (($x51 (and $x48 (and true (= h1.f2 (_ bv255 8)))))) + (let (($x57 (= ?x44 (- 1)))) + (let (($x58 (and true $x57))) + (let (($x61 (and $x58 (and true (= h1.f3 (_ bv255 8)))))) + (let ((?x66 (ite $x61 (_ bv3 9) (ite $x51 (_ bv2 9) ?x46)))) + (let (($x86 (or (or (or (or false (= ?x66 (_ bv0 9))) (= ?x66 (_ bv1 9))) (= ?x66 (_ bv2 9))) (= ?x66 (_ bv3 9))))) + (let (($x106 (or (or (or (or $x86 (= ?x66 (_ bv4 9))) (= ?x66 (_ bv5 9))) (= ?x66 (_ bv6 9))) (= ?x66 (_ bv7 9))))) + (let (($x42 (= ?x66 (_ bv511 9)))) + (or $x42 $x106))))))))))))))) (assert - (let (($x37 (and true (and true (= h1.f1 (_ bv255 8)))))) - (let ((?x41 (ite $x37 0 (- 1)))) - (let (($x54 (= ?x41 (- 1)))) - (let (($x55 (and true $x54))) - (let (($x58 (and $x55 (and true (= h1.f3 (_ bv255 8)))))) - (let ((?x60 (ite $x54 (ite $x58 0 (- 1)) (- 1)))) - (let (($x59 (ite $x54 $x55 false))) - (let ((?x43 (ite $x37 (_ bv1 9) (ite true (concat (_ bv0 8) (_ bv0 1)) standard_metadata.egress_spec)))) - (let (($x44 (and (distinct ?x41 (- 1)) true))) - (let (($x45 (and true $x44))) - (let (($x48 (and $x45 (and true (= h1.f2 (_ bv255 8)))))) - (let ((?x63 (ite $x58 (_ bv3 9) (ite $x48 (_ bv2 9) ?x43)))) - (let (($x39 (= ?x63 (_ bv511 9)))) - (and (and (not $x39) $x59) (= ?x60 0)))))))))))))))) + (let (($x40 (and true (and true (= h1.f1 (_ bv255 8)))))) + (let ((?x44 (ite $x40 0 (- 1)))) + (let (($x57 (= ?x44 (- 1)))) + (let (($x58 (and true $x57))) + (let (($x61 (and $x58 (and true (= h1.f3 (_ bv255 8)))))) + (let ((?x63 (ite $x57 (ite $x61 0 (- 1)) (- 1)))) + (let (($x62 (ite $x57 $x58 false))) + (let ((?x46 (ite $x40 (_ bv1 9) (ite true (concat (_ bv0 8) (_ bv0 1)) standard_metadata.egress_spec)))) + (let (($x47 (and (distinct ?x44 (- 1)) true))) + (let (($x48 (and true $x47))) + (let (($x51 (and $x48 (and true (= h1.f2 (_ bv255 8)))))) + (let ((?x66 (ite $x61 (_ bv3 9) (ite $x51 (_ bv2 9) ?x46)))) + (let (($x42 (= ?x66 (_ bv511 9)))) + (and (and (not $x42) $x62) (= ?x63 0)))))))))))))))) (check-sat) ; @@ -296,43 +296,43 @@ (declare-fun h1.f2 () (_ BitVec 8)) (declare-fun h1.f3 () (_ BitVec 8)) (assert - (let (($x100 (= standard_metadata.ingress_port (_ bv7 9)))) - (let (($x95 (= standard_metadata.ingress_port (_ bv6 9)))) - (let (($x90 (= standard_metadata.ingress_port (_ bv5 9)))) - (let (($x85 (= standard_metadata.ingress_port (_ bv4 9)))) - (let (($x80 (= standard_metadata.ingress_port (_ bv3 9)))) - (let (($x76 (= standard_metadata.ingress_port (_ bv2 9)))) - (let (($x72 (= standard_metadata.ingress_port (_ bv1 9)))) - (let (($x77 (or (or (or false (= standard_metadata.ingress_port (_ bv0 9))) $x72) $x76))) - (or (or (or (or (or $x77 $x80) $x85) $x90) $x95) $x100)))))))))) + (let (($x103 (= standard_metadata.ingress_port (_ bv7 9)))) + (let (($x98 (= standard_metadata.ingress_port (_ bv6 9)))) + (let (($x93 (= standard_metadata.ingress_port (_ bv5 9)))) + (let (($x88 (= standard_metadata.ingress_port (_ bv4 9)))) + (let (($x83 (= standard_metadata.ingress_port (_ bv3 9)))) + (let (($x79 (= standard_metadata.ingress_port (_ bv2 9)))) + (let (($x75 (= standard_metadata.ingress_port (_ bv1 9)))) + (let (($x80 (or (or (or false (= standard_metadata.ingress_port (_ bv0 9))) $x75) $x79))) + (or (or (or (or (or $x80 $x83) $x88) $x93) $x98) $x103)))))))))) (assert - (let (($x37 (and true (and true (= h1.f1 (_ bv255 8)))))) - (let ((?x43 (ite $x37 (_ bv1 9) (ite true (concat (_ bv0 8) (_ bv0 1)) standard_metadata.egress_spec)))) - (let ((?x41 (ite $x37 0 (- 1)))) - (let (($x44 (and (distinct ?x41 (- 1)) true))) - (let (($x45 (and true $x44))) - (let (($x48 (and $x45 (and true (= h1.f2 (_ bv255 8)))))) - (let (($x54 (= ?x41 (- 1)))) - (let (($x55 (and true $x54))) - (let (($x58 (and $x55 (and true (= h1.f3 (_ bv255 8)))))) - (let ((?x63 (ite $x58 (_ bv3 9) (ite $x48 (_ bv2 9) ?x43)))) - (let (($x83 (or (or (or (or false (= ?x63 (_ bv0 9))) (= ?x63 (_ bv1 9))) (= ?x63 (_ bv2 9))) (= ?x63 (_ bv3 9))))) - (let (($x103 (or (or (or (or $x83 (= ?x63 (_ bv4 9))) (= ?x63 (_ bv5 9))) (= ?x63 (_ bv6 9))) (= ?x63 (_ bv7 9))))) - (let (($x39 (= ?x63 (_ bv511 9)))) - (or $x39 $x103))))))))))))))) + (let (($x40 (and true (and true (= h1.f1 (_ bv255 8)))))) + (let ((?x46 (ite $x40 (_ bv1 9) (ite true (concat (_ bv0 8) (_ bv0 1)) standard_metadata.egress_spec)))) + (let ((?x44 (ite $x40 0 (- 1)))) + (let (($x47 (and (distinct ?x44 (- 1)) true))) + (let (($x48 (and true $x47))) + (let (($x51 (and $x48 (and true (= h1.f2 (_ bv255 8)))))) + (let (($x57 (= ?x44 (- 1)))) + (let (($x58 (and true $x57))) + (let (($x61 (and $x58 (and true (= h1.f3 (_ bv255 8)))))) + (let ((?x66 (ite $x61 (_ bv3 9) (ite $x51 (_ bv2 9) ?x46)))) + (let (($x86 (or (or (or (or false (= ?x66 (_ bv0 9))) (= ?x66 (_ bv1 9))) (= ?x66 (_ bv2 9))) (= ?x66 (_ bv3 9))))) + (let (($x106 (or (or (or (or $x86 (= ?x66 (_ bv4 9))) (= ?x66 (_ bv5 9))) (= ?x66 (_ bv6 9))) (= ?x66 (_ bv7 9))))) + (let (($x42 (= ?x66 (_ bv511 9)))) + (or $x42 $x106))))))))))))))) (assert - (let (($x37 (and true (and true (= h1.f1 (_ bv255 8)))))) - (let ((?x43 (ite $x37 (_ bv1 9) (ite true (concat (_ bv0 8) (_ bv0 1)) standard_metadata.egress_spec)))) - (let ((?x41 (ite $x37 0 (- 1)))) - (let (($x44 (and (distinct ?x41 (- 1)) true))) - (let (($x45 (and true $x44))) - (let (($x48 (and $x45 (and true (= h1.f2 (_ bv255 8)))))) - (let (($x54 (= ?x41 (- 1)))) - (let (($x55 (and true $x54))) - (let (($x58 (and $x55 (and true (= h1.f3 (_ bv255 8)))))) - (let ((?x63 (ite $x58 (_ bv3 9) (ite $x48 (_ bv2 9) ?x43)))) - (let (($x39 (= ?x63 (_ bv511 9)))) - (and (and (not $x39) true) (= (- 1) (- 1))))))))))))))) + (let (($x40 (and true (and true (= h1.f1 (_ bv255 8)))))) + (let ((?x46 (ite $x40 (_ bv1 9) (ite true (concat (_ bv0 8) (_ bv0 1)) standard_metadata.egress_spec)))) + (let ((?x44 (ite $x40 0 (- 1)))) + (let (($x47 (and (distinct ?x44 (- 1)) true))) + (let (($x48 (and true $x47))) + (let (($x51 (and $x48 (and true (= h1.f2 (_ bv255 8)))))) + (let (($x57 (= ?x44 (- 1)))) + (let (($x58 (and true $x57))) + (let (($x61 (and $x58 (and true (= h1.f3 (_ bv255 8)))))) + (let ((?x66 (ite $x61 (_ bv3 9) (ite $x51 (_ bv2 9) ?x46)))) + (let (($x42 (= ?x66 (_ bv511 9)))) + (and (and (not $x42) true) (= (- 1) (- 1))))))))))))))) (check-sat) ; @@ -343,42 +343,42 @@ (declare-fun h1.f2 () (_ BitVec 8)) (declare-fun h1.f3 () (_ BitVec 8)) (assert - (let (($x100 (= standard_metadata.ingress_port (_ bv7 9)))) - (let (($x95 (= standard_metadata.ingress_port (_ bv6 9)))) - (let (($x90 (= standard_metadata.ingress_port (_ bv5 9)))) - (let (($x85 (= standard_metadata.ingress_port (_ bv4 9)))) - (let (($x80 (= standard_metadata.ingress_port (_ bv3 9)))) - (let (($x76 (= standard_metadata.ingress_port (_ bv2 9)))) - (let (($x72 (= standard_metadata.ingress_port (_ bv1 9)))) - (let (($x77 (or (or (or false (= standard_metadata.ingress_port (_ bv0 9))) $x72) $x76))) - (or (or (or (or (or $x77 $x80) $x85) $x90) $x95) $x100)))))))))) + (let (($x103 (= standard_metadata.ingress_port (_ bv7 9)))) + (let (($x98 (= standard_metadata.ingress_port (_ bv6 9)))) + (let (($x93 (= standard_metadata.ingress_port (_ bv5 9)))) + (let (($x88 (= standard_metadata.ingress_port (_ bv4 9)))) + (let (($x83 (= standard_metadata.ingress_port (_ bv3 9)))) + (let (($x79 (= standard_metadata.ingress_port (_ bv2 9)))) + (let (($x75 (= standard_metadata.ingress_port (_ bv1 9)))) + (let (($x80 (or (or (or false (= standard_metadata.ingress_port (_ bv0 9))) $x75) $x79))) + (or (or (or (or (or $x80 $x83) $x88) $x93) $x98) $x103)))))))))) (assert - (let (($x37 (and true (and true (= h1.f1 (_ bv255 8)))))) - (let ((?x43 (ite $x37 (_ bv1 9) (ite true (concat (_ bv0 8) (_ bv0 1)) standard_metadata.egress_spec)))) - (let ((?x41 (ite $x37 0 (- 1)))) - (let (($x44 (and (distinct ?x41 (- 1)) true))) - (let (($x45 (and true $x44))) - (let (($x48 (and $x45 (and true (= h1.f2 (_ bv255 8)))))) - (let (($x54 (= ?x41 (- 1)))) - (let (($x55 (and true $x54))) - (let (($x58 (and $x55 (and true (= h1.f3 (_ bv255 8)))))) - (let ((?x63 (ite $x58 (_ bv3 9) (ite $x48 (_ bv2 9) ?x43)))) - (let (($x83 (or (or (or (or false (= ?x63 (_ bv0 9))) (= ?x63 (_ bv1 9))) (= ?x63 (_ bv2 9))) (= ?x63 (_ bv3 9))))) - (let (($x103 (or (or (or (or $x83 (= ?x63 (_ bv4 9))) (= ?x63 (_ bv5 9))) (= ?x63 (_ bv6 9))) (= ?x63 (_ bv7 9))))) - (let (($x39 (= ?x63 (_ bv511 9)))) - (or $x39 $x103))))))))))))))) + (let (($x40 (and true (and true (= h1.f1 (_ bv255 8)))))) + (let ((?x46 (ite $x40 (_ bv1 9) (ite true (concat (_ bv0 8) (_ bv0 1)) standard_metadata.egress_spec)))) + (let ((?x44 (ite $x40 0 (- 1)))) + (let (($x47 (and (distinct ?x44 (- 1)) true))) + (let (($x48 (and true $x47))) + (let (($x51 (and $x48 (and true (= h1.f2 (_ bv255 8)))))) + (let (($x57 (= ?x44 (- 1)))) + (let (($x58 (and true $x57))) + (let (($x61 (and $x58 (and true (= h1.f3 (_ bv255 8)))))) + (let ((?x66 (ite $x61 (_ bv3 9) (ite $x51 (_ bv2 9) ?x46)))) + (let (($x86 (or (or (or (or false (= ?x66 (_ bv0 9))) (= ?x66 (_ bv1 9))) (= ?x66 (_ bv2 9))) (= ?x66 (_ bv3 9))))) + (let (($x106 (or (or (or (or $x86 (= ?x66 (_ bv4 9))) (= ?x66 (_ bv5 9))) (= ?x66 (_ bv6 9))) (= ?x66 (_ bv7 9))))) + (let (($x42 (= ?x66 (_ bv511 9)))) + (or $x42 $x106))))))))))))))) (assert - (let (($x37 (and true (and true (= h1.f1 (_ bv255 8)))))) - (let ((?x43 (ite $x37 (_ bv1 9) (ite true (concat (_ bv0 8) (_ bv0 1)) standard_metadata.egress_spec)))) - (let ((?x41 (ite $x37 0 (- 1)))) - (let (($x44 (and (distinct ?x41 (- 1)) true))) - (let (($x45 (and true $x44))) - (let (($x48 (and $x45 (and true (= h1.f2 (_ bv255 8)))))) - (let (($x54 (= ?x41 (- 1)))) - (let (($x55 (and true $x54))) - (let (($x58 (and $x55 (and true (= h1.f3 (_ bv255 8)))))) - (let ((?x63 (ite $x58 (_ bv3 9) (ite $x48 (_ bv2 9) ?x43)))) - (let (($x39 (= ?x63 (_ bv511 9)))) - (and (and (not $x39) true) (= (- 1) (- 1))))))))))))))) + (let (($x40 (and true (and true (= h1.f1 (_ bv255 8)))))) + (let ((?x46 (ite $x40 (_ bv1 9) (ite true (concat (_ bv0 8) (_ bv0 1)) standard_metadata.egress_spec)))) + (let ((?x44 (ite $x40 0 (- 1)))) + (let (($x47 (and (distinct ?x44 (- 1)) true))) + (let (($x48 (and true $x47))) + (let (($x51 (and $x48 (and true (= h1.f2 (_ bv255 8)))))) + (let (($x57 (= ?x44 (- 1)))) + (let (($x58 (and true $x57))) + (let (($x61 (and $x58 (and true (= h1.f3 (_ bv255 8)))))) + (let ((?x66 (ite $x61 (_ bv3 9) (ite $x51 (_ bv2 9) ?x46)))) + (let (($x42 (= ?x66 (_ bv511 9)))) + (and (and (not $x42) true) (= (- 1) (- 1))))))))))))))) (check-sat) diff --git a/p4_symbolic/symbolic/expected/vrf.smt2 b/p4_symbolic/symbolic/expected/vrf.smt2 index c6082986..67fd07d9 100644 --- a/p4_symbolic/symbolic/expected/vrf.smt2 +++ b/p4_symbolic/symbolic/expected/vrf.smt2 @@ -8,69 +8,69 @@ (declare-fun ipv4.dstAddr () (_ BitVec 32)) (declare-fun scalars.local_metadata_t.vrf_is_valid () (_ BitVec 1)) (assert - (let (($x169 (= standard_metadata.ingress_port (_ bv1 9)))) - (or (or false (= standard_metadata.ingress_port (_ bv0 9))) $x169))) + (let (($x173 (= standard_metadata.ingress_port (_ bv1 9)))) + (or (or false (= standard_metadata.ingress_port (_ bv0 9))) $x173))) (assert - (let ((?x50 (concat (_ bv0 9) (_ bv0 1)))) - (let (($x64 (and true (= (bvand ipv4.srcAddr (_ bv555813129 32)) (_ bv555810816 32))))) - (let (($x53 (and true ipv4.$valid$))) - (let (($x68 (and (and $x53 (not (and true (= (bvand ipv4.srcAddr (_ bv153159945 32)) (_ bv2162944 32))))) $x64))) - (let ((?x80 (concat (_ bv0 9) (_ bv1 1)))) - (let (($x59 (and true (= (bvand ipv4.srcAddr (_ bv153159945 32)) (_ bv2162944 32))))) - (let (($x65 (and $x53 $x59))) - (let ((?x81 (ite $x65 ?x80 (ite $x68 ?x50 (ite true ?x50 scalars.local_metadata_t.vrf))))) - (let (($x90 (= ?x81 ?x50))) - (let (($x108 (and (and true (= ((_ extract 31 24) ipv4.dstAddr) ((_ extract 31 24) (_ bv167772160 32)))) $x90))) - (let (($x102 (and (and true (= ((_ extract 31 16) ipv4.dstAddr) ((_ extract 31 16) (_ bv336855040 32)))) (= ?x81 ?x80)))) - (let (($x96 (and (and true (= ((_ extract 31 16) ipv4.dstAddr) ((_ extract 31 16) (_ bv168427520 32)))) $x90))) - (let (($x91 (and (and true (= ipv4.dstAddr (_ bv168427520 32))) $x90))) - (let (($x110 (not $x91))) - (let (($x114 (and $x110 (not $x96)))) - (let (($x118 (and $x114 (not $x102)))) - (let ((?x47 (ite false (_ bv1 1) (_ bv0 1)))) - (let ((?x76 (ite true (_ bv1 1) (_ bv0 1)))) - (let ((?x82 (ite $x65 ?x76 (ite $x68 ?x76 (ite true ?x47 scalars.local_metadata_t.vrf_is_valid))))) - (let (($x83 (bvuge ?x82 (_ bv1 1)))) - (let (($x85 (and $x53 $x83))) - (let ((?x125 (ite (and $x85 (and $x118 (not $x108))) (_ bv511 9) standard_metadata.egress_spec))) - (let (($x120 (and (and $x85 $x118) $x108))) - (let (($x116 (and (and $x85 $x114) $x102))) - (let (($x112 (and (and $x85 $x110) $x96))) - (let (($x109 (and $x85 $x91))) - (let ((?x158 (ite $x109 (_ bv1 9) (ite $x112 (_ bv0 9) (ite $x116 (_ bv1 9) (ite $x120 (_ bv1 9) ?x125)))))) - (let (($x52 (= ?x158 (_ bv511 9)))) - (or $x52 (or (or false (= ?x158 (_ bv0 9))) (= ?x158 (_ bv1 9))))))))))))))))))))))))))))))))) + (let ((?x54 (concat (_ bv0 9) (_ bv0 1)))) + (let (($x68 (and true (= (bvand ipv4.srcAddr (_ bv555813129 32)) (_ bv555810816 32))))) + (let (($x57 (and true ipv4.$valid$))) + (let (($x72 (and (and $x57 (not (and true (= (bvand ipv4.srcAddr (_ bv153159945 32)) (_ bv2162944 32))))) $x68))) + (let ((?x84 (concat (_ bv0 9) (_ bv1 1)))) + (let (($x63 (and true (= (bvand ipv4.srcAddr (_ bv153159945 32)) (_ bv2162944 32))))) + (let (($x69 (and $x57 $x63))) + (let ((?x85 (ite $x69 ?x84 (ite $x72 ?x54 (ite true ?x54 scalars.local_metadata_t.vrf))))) + (let (($x94 (= ?x85 ?x54))) + (let (($x112 (and (and true (= ((_ extract 31 24) ipv4.dstAddr) ((_ extract 31 24) (_ bv167772160 32)))) $x94))) + (let (($x106 (and (and true (= ((_ extract 31 16) ipv4.dstAddr) ((_ extract 31 16) (_ bv336855040 32)))) (= ?x85 ?x84)))) + (let (($x100 (and (and true (= ((_ extract 31 16) ipv4.dstAddr) ((_ extract 31 16) (_ bv168427520 32)))) $x94))) + (let (($x95 (and (and true (= ipv4.dstAddr (_ bv168427520 32))) $x94))) + (let (($x114 (not $x95))) + (let (($x118 (and $x114 (not $x100)))) + (let (($x122 (and $x118 (not $x106)))) + (let ((?x51 (ite false (_ bv1 1) (_ bv0 1)))) + (let ((?x80 (ite true (_ bv1 1) (_ bv0 1)))) + (let ((?x86 (ite $x69 ?x80 (ite $x72 ?x80 (ite true ?x51 scalars.local_metadata_t.vrf_is_valid))))) + (let (($x87 (bvuge ?x86 (_ bv1 1)))) + (let (($x89 (and $x57 $x87))) + (let ((?x129 (ite (and $x89 (and $x122 (not $x112))) (_ bv511 9) standard_metadata.egress_spec))) + (let (($x124 (and (and $x89 $x122) $x112))) + (let (($x120 (and (and $x89 $x118) $x106))) + (let (($x116 (and (and $x89 $x114) $x100))) + (let (($x113 (and $x89 $x95))) + (let ((?x162 (ite $x113 (_ bv1 9) (ite $x116 (_ bv0 9) (ite $x120 (_ bv1 9) (ite $x124 (_ bv1 9) ?x129)))))) + (let (($x56 (= ?x162 (_ bv511 9)))) + (or $x56 (or (or false (= ?x162 (_ bv0 9))) (= ?x162 (_ bv1 9))))))))))))))))))))))))))))))))) (assert - (let ((?x50 (concat (_ bv0 9) (_ bv0 1)))) - (let (($x64 (and true (= (bvand ipv4.srcAddr (_ bv555813129 32)) (_ bv555810816 32))))) - (let (($x53 (and true ipv4.$valid$))) - (let (($x68 (and (and $x53 (not (and true (= (bvand ipv4.srcAddr (_ bv153159945 32)) (_ bv2162944 32))))) $x64))) - (let ((?x80 (concat (_ bv0 9) (_ bv1 1)))) - (let (($x59 (and true (= (bvand ipv4.srcAddr (_ bv153159945 32)) (_ bv2162944 32))))) - (let (($x65 (and $x53 $x59))) - (let ((?x81 (ite $x65 ?x80 (ite $x68 ?x50 (ite true ?x50 scalars.local_metadata_t.vrf))))) - (let (($x90 (= ?x81 ?x50))) - (let (($x108 (and (and true (= ((_ extract 31 24) ipv4.dstAddr) ((_ extract 31 24) (_ bv167772160 32)))) $x90))) - (let ((?x47 (ite false (_ bv1 1) (_ bv0 1)))) - (let ((?x76 (ite true (_ bv1 1) (_ bv0 1)))) - (let ((?x82 (ite $x65 ?x76 (ite $x68 ?x76 (ite true ?x47 scalars.local_metadata_t.vrf_is_valid))))) - (let (($x83 (bvuge ?x82 (_ bv1 1)))) - (let (($x85 (and $x53 $x83))) - (let (($x102 (and (and true (= ((_ extract 31 16) ipv4.dstAddr) ((_ extract 31 16) (_ bv336855040 32)))) (= ?x81 ?x80)))) - (let (($x96 (and (and true (= ((_ extract 31 16) ipv4.dstAddr) ((_ extract 31 16) (_ bv168427520 32)))) $x90))) - (let ((?x149 (ite (and $x85 $x96) 0 (ite (and $x85 $x102) 3 (ite (and $x85 $x108) 2 (- 1)))))) - (let (($x91 (and (and true (= ipv4.dstAddr (_ bv168427520 32))) $x90))) - (let (($x109 (and $x85 $x91))) - (let ((?x70 (ite ipv4.$valid$ (ite $x83 (ite $x109 1 ?x149) (- 1)) (- 1)))) - (let (($x69 (ite ipv4.$valid$ (ite $x83 $x85 false) false))) - (let (($x123 (and $x85 (and (and (and (not $x91) (not $x96)) (not $x102)) (not $x108))))) - (let (($x120 (and (and $x85 (and (and (not $x91) (not $x96)) (not $x102))) $x108))) - (let (($x116 (and (and $x85 (and (not $x91) (not $x96))) $x102))) - (let ((?x142 (ite $x116 (_ bv1 9) (ite $x120 (_ bv1 9) (ite $x123 (_ bv511 9) standard_metadata.egress_spec))))) - (let (($x112 (and (and $x85 (not $x91)) $x96))) - (let ((?x158 (ite $x109 (_ bv1 9) (ite $x112 (_ bv0 9) ?x142)))) - (let (($x52 (= ?x158 (_ bv511 9)))) - (and (and (not $x52) $x69) (= ?x70 (- 1))))))))))))))))))))))))))))))))) + (let ((?x54 (concat (_ bv0 9) (_ bv0 1)))) + (let (($x68 (and true (= (bvand ipv4.srcAddr (_ bv555813129 32)) (_ bv555810816 32))))) + (let (($x57 (and true ipv4.$valid$))) + (let (($x72 (and (and $x57 (not (and true (= (bvand ipv4.srcAddr (_ bv153159945 32)) (_ bv2162944 32))))) $x68))) + (let ((?x84 (concat (_ bv0 9) (_ bv1 1)))) + (let (($x63 (and true (= (bvand ipv4.srcAddr (_ bv153159945 32)) (_ bv2162944 32))))) + (let (($x69 (and $x57 $x63))) + (let ((?x85 (ite $x69 ?x84 (ite $x72 ?x54 (ite true ?x54 scalars.local_metadata_t.vrf))))) + (let (($x94 (= ?x85 ?x54))) + (let (($x112 (and (and true (= ((_ extract 31 24) ipv4.dstAddr) ((_ extract 31 24) (_ bv167772160 32)))) $x94))) + (let ((?x51 (ite false (_ bv1 1) (_ bv0 1)))) + (let ((?x80 (ite true (_ bv1 1) (_ bv0 1)))) + (let ((?x86 (ite $x69 ?x80 (ite $x72 ?x80 (ite true ?x51 scalars.local_metadata_t.vrf_is_valid))))) + (let (($x87 (bvuge ?x86 (_ bv1 1)))) + (let (($x89 (and $x57 $x87))) + (let (($x106 (and (and true (= ((_ extract 31 16) ipv4.dstAddr) ((_ extract 31 16) (_ bv336855040 32)))) (= ?x85 ?x84)))) + (let (($x100 (and (and true (= ((_ extract 31 16) ipv4.dstAddr) ((_ extract 31 16) (_ bv168427520 32)))) $x94))) + (let ((?x153 (ite (and $x89 $x100) 0 (ite (and $x89 $x106) 3 (ite (and $x89 $x112) 2 (- 1)))))) + (let (($x95 (and (and true (= ipv4.dstAddr (_ bv168427520 32))) $x94))) + (let (($x113 (and $x89 $x95))) + (let ((?x74 (ite ipv4.$valid$ (ite $x87 (ite $x113 1 ?x153) (- 1)) (- 1)))) + (let (($x73 (ite ipv4.$valid$ (ite $x87 $x89 false) false))) + (let (($x127 (and $x89 (and (and (and (not $x95) (not $x100)) (not $x106)) (not $x112))))) + (let (($x124 (and (and $x89 (and (and (not $x95) (not $x100)) (not $x106))) $x112))) + (let (($x120 (and (and $x89 (and (not $x95) (not $x100))) $x106))) + (let ((?x146 (ite $x120 (_ bv1 9) (ite $x124 (_ bv1 9) (ite $x127 (_ bv511 9) standard_metadata.egress_spec))))) + (let (($x116 (and (and $x89 (not $x95)) $x100))) + (let ((?x162 (ite $x113 (_ bv1 9) (ite $x116 (_ bv0 9) ?x146)))) + (let (($x56 (= ?x162 (_ bv511 9)))) + (and (and (not $x56) $x73) (= ?x74 (- 1))))))))))))))))))))))))))))))))) (check-sat) ; @@ -83,70 +83,70 @@ (declare-fun ipv4.dstAddr () (_ BitVec 32)) (declare-fun scalars.local_metadata_t.vrf_is_valid () (_ BitVec 1)) (assert - (let (($x169 (= standard_metadata.ingress_port (_ bv1 9)))) - (or (or false (= standard_metadata.ingress_port (_ bv0 9))) $x169))) + (let (($x173 (= standard_metadata.ingress_port (_ bv1 9)))) + (or (or false (= standard_metadata.ingress_port (_ bv0 9))) $x173))) (assert - (let ((?x50 (concat (_ bv0 9) (_ bv0 1)))) - (let (($x64 (and true (= (bvand ipv4.srcAddr (_ bv555813129 32)) (_ bv555810816 32))))) - (let (($x53 (and true ipv4.$valid$))) - (let (($x68 (and (and $x53 (not (and true (= (bvand ipv4.srcAddr (_ bv153159945 32)) (_ bv2162944 32))))) $x64))) - (let ((?x80 (concat (_ bv0 9) (_ bv1 1)))) - (let (($x59 (and true (= (bvand ipv4.srcAddr (_ bv153159945 32)) (_ bv2162944 32))))) - (let (($x65 (and $x53 $x59))) - (let ((?x81 (ite $x65 ?x80 (ite $x68 ?x50 (ite true ?x50 scalars.local_metadata_t.vrf))))) - (let (($x90 (= ?x81 ?x50))) - (let (($x108 (and (and true (= ((_ extract 31 24) ipv4.dstAddr) ((_ extract 31 24) (_ bv167772160 32)))) $x90))) - (let (($x102 (and (and true (= ((_ extract 31 16) ipv4.dstAddr) ((_ extract 31 16) (_ bv336855040 32)))) (= ?x81 ?x80)))) - (let (($x96 (and (and true (= ((_ extract 31 16) ipv4.dstAddr) ((_ extract 31 16) (_ bv168427520 32)))) $x90))) - (let (($x91 (and (and true (= ipv4.dstAddr (_ bv168427520 32))) $x90))) - (let (($x110 (not $x91))) - (let (($x114 (and $x110 (not $x96)))) - (let (($x118 (and $x114 (not $x102)))) - (let ((?x47 (ite false (_ bv1 1) (_ bv0 1)))) - (let ((?x76 (ite true (_ bv1 1) (_ bv0 1)))) - (let ((?x82 (ite $x65 ?x76 (ite $x68 ?x76 (ite true ?x47 scalars.local_metadata_t.vrf_is_valid))))) - (let (($x83 (bvuge ?x82 (_ bv1 1)))) - (let (($x85 (and $x53 $x83))) - (let ((?x125 (ite (and $x85 (and $x118 (not $x108))) (_ bv511 9) standard_metadata.egress_spec))) - (let (($x120 (and (and $x85 $x118) $x108))) - (let (($x116 (and (and $x85 $x114) $x102))) - (let (($x112 (and (and $x85 $x110) $x96))) - (let (($x109 (and $x85 $x91))) - (let ((?x158 (ite $x109 (_ bv1 9) (ite $x112 (_ bv0 9) (ite $x116 (_ bv1 9) (ite $x120 (_ bv1 9) ?x125)))))) - (let (($x52 (= ?x158 (_ bv511 9)))) - (or $x52 (or (or false (= ?x158 (_ bv0 9))) (= ?x158 (_ bv1 9))))))))))))))))))))))))))))))))) + (let ((?x54 (concat (_ bv0 9) (_ bv0 1)))) + (let (($x68 (and true (= (bvand ipv4.srcAddr (_ bv555813129 32)) (_ bv555810816 32))))) + (let (($x57 (and true ipv4.$valid$))) + (let (($x72 (and (and $x57 (not (and true (= (bvand ipv4.srcAddr (_ bv153159945 32)) (_ bv2162944 32))))) $x68))) + (let ((?x84 (concat (_ bv0 9) (_ bv1 1)))) + (let (($x63 (and true (= (bvand ipv4.srcAddr (_ bv153159945 32)) (_ bv2162944 32))))) + (let (($x69 (and $x57 $x63))) + (let ((?x85 (ite $x69 ?x84 (ite $x72 ?x54 (ite true ?x54 scalars.local_metadata_t.vrf))))) + (let (($x94 (= ?x85 ?x54))) + (let (($x112 (and (and true (= ((_ extract 31 24) ipv4.dstAddr) ((_ extract 31 24) (_ bv167772160 32)))) $x94))) + (let (($x106 (and (and true (= ((_ extract 31 16) ipv4.dstAddr) ((_ extract 31 16) (_ bv336855040 32)))) (= ?x85 ?x84)))) + (let (($x100 (and (and true (= ((_ extract 31 16) ipv4.dstAddr) ((_ extract 31 16) (_ bv168427520 32)))) $x94))) + (let (($x95 (and (and true (= ipv4.dstAddr (_ bv168427520 32))) $x94))) + (let (($x114 (not $x95))) + (let (($x118 (and $x114 (not $x100)))) + (let (($x122 (and $x118 (not $x106)))) + (let ((?x51 (ite false (_ bv1 1) (_ bv0 1)))) + (let ((?x80 (ite true (_ bv1 1) (_ bv0 1)))) + (let ((?x86 (ite $x69 ?x80 (ite $x72 ?x80 (ite true ?x51 scalars.local_metadata_t.vrf_is_valid))))) + (let (($x87 (bvuge ?x86 (_ bv1 1)))) + (let (($x89 (and $x57 $x87))) + (let ((?x129 (ite (and $x89 (and $x122 (not $x112))) (_ bv511 9) standard_metadata.egress_spec))) + (let (($x124 (and (and $x89 $x122) $x112))) + (let (($x120 (and (and $x89 $x118) $x106))) + (let (($x116 (and (and $x89 $x114) $x100))) + (let (($x113 (and $x89 $x95))) + (let ((?x162 (ite $x113 (_ bv1 9) (ite $x116 (_ bv0 9) (ite $x120 (_ bv1 9) (ite $x124 (_ bv1 9) ?x129)))))) + (let (($x56 (= ?x162 (_ bv511 9)))) + (or $x56 (or (or false (= ?x162 (_ bv0 9))) (= ?x162 (_ bv1 9))))))))))))))))))))))))))))))))) (assert - (let ((?x50 (concat (_ bv0 9) (_ bv0 1)))) - (let (($x64 (and true (= (bvand ipv4.srcAddr (_ bv555813129 32)) (_ bv555810816 32))))) - (let (($x53 (and true ipv4.$valid$))) - (let (($x68 (and (and $x53 (not (and true (= (bvand ipv4.srcAddr (_ bv153159945 32)) (_ bv2162944 32))))) $x64))) - (let ((?x80 (concat (_ bv0 9) (_ bv1 1)))) - (let (($x59 (and true (= (bvand ipv4.srcAddr (_ bv153159945 32)) (_ bv2162944 32))))) - (let (($x65 (and $x53 $x59))) - (let ((?x81 (ite $x65 ?x80 (ite $x68 ?x50 (ite true ?x50 scalars.local_metadata_t.vrf))))) - (let (($x90 (= ?x81 ?x50))) - (let (($x108 (and (and true (= ((_ extract 31 24) ipv4.dstAddr) ((_ extract 31 24) (_ bv167772160 32)))) $x90))) - (let ((?x47 (ite false (_ bv1 1) (_ bv0 1)))) - (let ((?x76 (ite true (_ bv1 1) (_ bv0 1)))) - (let ((?x82 (ite $x65 ?x76 (ite $x68 ?x76 (ite true ?x47 scalars.local_metadata_t.vrf_is_valid))))) - (let (($x83 (bvuge ?x82 (_ bv1 1)))) - (let (($x85 (and $x53 $x83))) - (let (($x102 (and (and true (= ((_ extract 31 16) ipv4.dstAddr) ((_ extract 31 16) (_ bv336855040 32)))) (= ?x81 ?x80)))) - (let (($x96 (and (and true (= ((_ extract 31 16) ipv4.dstAddr) ((_ extract 31 16) (_ bv168427520 32)))) $x90))) - (let ((?x149 (ite (and $x85 $x96) 0 (ite (and $x85 $x102) 3 (ite (and $x85 $x108) 2 (- 1)))))) - (let (($x91 (and (and true (= ipv4.dstAddr (_ bv168427520 32))) $x90))) - (let (($x109 (and $x85 $x91))) - (let ((?x70 (ite ipv4.$valid$ (ite $x83 (ite $x109 1 ?x149) (- 1)) (- 1)))) - (let (($x69 (ite ipv4.$valid$ (ite $x83 $x85 false) false))) - (let (($x123 (and $x85 (and (and (and (not $x91) (not $x96)) (not $x102)) (not $x108))))) - (let (($x120 (and (and $x85 (and (and (not $x91) (not $x96)) (not $x102))) $x108))) - (let (($x116 (and (and $x85 (and (not $x91) (not $x96))) $x102))) - (let ((?x142 (ite $x116 (_ bv1 9) (ite $x120 (_ bv1 9) (ite $x123 (_ bv511 9) standard_metadata.egress_spec))))) - (let (($x112 (and (and $x85 (not $x91)) $x96))) - (let ((?x158 (ite $x109 (_ bv1 9) (ite $x112 (_ bv0 9) ?x142)))) - (let (($x52 (= ?x158 (_ bv511 9)))) - (let (($x309 (and (not $x52) $x69))) - (and $x309 (= ?x70 0))))))))))))))))))))))))))))))))) + (let ((?x54 (concat (_ bv0 9) (_ bv0 1)))) + (let (($x68 (and true (= (bvand ipv4.srcAddr (_ bv555813129 32)) (_ bv555810816 32))))) + (let (($x57 (and true ipv4.$valid$))) + (let (($x72 (and (and $x57 (not (and true (= (bvand ipv4.srcAddr (_ bv153159945 32)) (_ bv2162944 32))))) $x68))) + (let ((?x84 (concat (_ bv0 9) (_ bv1 1)))) + (let (($x63 (and true (= (bvand ipv4.srcAddr (_ bv153159945 32)) (_ bv2162944 32))))) + (let (($x69 (and $x57 $x63))) + (let ((?x85 (ite $x69 ?x84 (ite $x72 ?x54 (ite true ?x54 scalars.local_metadata_t.vrf))))) + (let (($x94 (= ?x85 ?x54))) + (let (($x112 (and (and true (= ((_ extract 31 24) ipv4.dstAddr) ((_ extract 31 24) (_ bv167772160 32)))) $x94))) + (let ((?x51 (ite false (_ bv1 1) (_ bv0 1)))) + (let ((?x80 (ite true (_ bv1 1) (_ bv0 1)))) + (let ((?x86 (ite $x69 ?x80 (ite $x72 ?x80 (ite true ?x51 scalars.local_metadata_t.vrf_is_valid))))) + (let (($x87 (bvuge ?x86 (_ bv1 1)))) + (let (($x89 (and $x57 $x87))) + (let (($x106 (and (and true (= ((_ extract 31 16) ipv4.dstAddr) ((_ extract 31 16) (_ bv336855040 32)))) (= ?x85 ?x84)))) + (let (($x100 (and (and true (= ((_ extract 31 16) ipv4.dstAddr) ((_ extract 31 16) (_ bv168427520 32)))) $x94))) + (let ((?x153 (ite (and $x89 $x100) 0 (ite (and $x89 $x106) 3 (ite (and $x89 $x112) 2 (- 1)))))) + (let (($x95 (and (and true (= ipv4.dstAddr (_ bv168427520 32))) $x94))) + (let (($x113 (and $x89 $x95))) + (let ((?x74 (ite ipv4.$valid$ (ite $x87 (ite $x113 1 ?x153) (- 1)) (- 1)))) + (let (($x73 (ite ipv4.$valid$ (ite $x87 $x89 false) false))) + (let (($x127 (and $x89 (and (and (and (not $x95) (not $x100)) (not $x106)) (not $x112))))) + (let (($x124 (and (and $x89 (and (and (not $x95) (not $x100)) (not $x106))) $x112))) + (let (($x120 (and (and $x89 (and (not $x95) (not $x100))) $x106))) + (let ((?x146 (ite $x120 (_ bv1 9) (ite $x124 (_ bv1 9) (ite $x127 (_ bv511 9) standard_metadata.egress_spec))))) + (let (($x116 (and (and $x89 (not $x95)) $x100))) + (let ((?x162 (ite $x113 (_ bv1 9) (ite $x116 (_ bv0 9) ?x146)))) + (let (($x56 (= ?x162 (_ bv511 9)))) + (let (($x313 (and (not $x56) $x73))) + (and $x313 (= ?x74 0))))))))))))))))))))))))))))))))) (check-sat) ; @@ -159,69 +159,69 @@ (declare-fun ipv4.dstAddr () (_ BitVec 32)) (declare-fun scalars.local_metadata_t.vrf_is_valid () (_ BitVec 1)) (assert - (let (($x169 (= standard_metadata.ingress_port (_ bv1 9)))) - (or (or false (= standard_metadata.ingress_port (_ bv0 9))) $x169))) + (let (($x173 (= standard_metadata.ingress_port (_ bv1 9)))) + (or (or false (= standard_metadata.ingress_port (_ bv0 9))) $x173))) (assert - (let ((?x50 (concat (_ bv0 9) (_ bv0 1)))) - (let (($x64 (and true (= (bvand ipv4.srcAddr (_ bv555813129 32)) (_ bv555810816 32))))) - (let (($x53 (and true ipv4.$valid$))) - (let (($x68 (and (and $x53 (not (and true (= (bvand ipv4.srcAddr (_ bv153159945 32)) (_ bv2162944 32))))) $x64))) - (let ((?x80 (concat (_ bv0 9) (_ bv1 1)))) - (let (($x59 (and true (= (bvand ipv4.srcAddr (_ bv153159945 32)) (_ bv2162944 32))))) - (let (($x65 (and $x53 $x59))) - (let ((?x81 (ite $x65 ?x80 (ite $x68 ?x50 (ite true ?x50 scalars.local_metadata_t.vrf))))) - (let (($x90 (= ?x81 ?x50))) - (let (($x108 (and (and true (= ((_ extract 31 24) ipv4.dstAddr) ((_ extract 31 24) (_ bv167772160 32)))) $x90))) - (let (($x102 (and (and true (= ((_ extract 31 16) ipv4.dstAddr) ((_ extract 31 16) (_ bv336855040 32)))) (= ?x81 ?x80)))) - (let (($x96 (and (and true (= ((_ extract 31 16) ipv4.dstAddr) ((_ extract 31 16) (_ bv168427520 32)))) $x90))) - (let (($x91 (and (and true (= ipv4.dstAddr (_ bv168427520 32))) $x90))) - (let (($x110 (not $x91))) - (let (($x114 (and $x110 (not $x96)))) - (let (($x118 (and $x114 (not $x102)))) - (let ((?x47 (ite false (_ bv1 1) (_ bv0 1)))) - (let ((?x76 (ite true (_ bv1 1) (_ bv0 1)))) - (let ((?x82 (ite $x65 ?x76 (ite $x68 ?x76 (ite true ?x47 scalars.local_metadata_t.vrf_is_valid))))) - (let (($x83 (bvuge ?x82 (_ bv1 1)))) - (let (($x85 (and $x53 $x83))) - (let ((?x125 (ite (and $x85 (and $x118 (not $x108))) (_ bv511 9) standard_metadata.egress_spec))) - (let (($x120 (and (and $x85 $x118) $x108))) - (let (($x116 (and (and $x85 $x114) $x102))) - (let (($x112 (and (and $x85 $x110) $x96))) - (let (($x109 (and $x85 $x91))) - (let ((?x158 (ite $x109 (_ bv1 9) (ite $x112 (_ bv0 9) (ite $x116 (_ bv1 9) (ite $x120 (_ bv1 9) ?x125)))))) - (let (($x52 (= ?x158 (_ bv511 9)))) - (or $x52 (or (or false (= ?x158 (_ bv0 9))) (= ?x158 (_ bv1 9))))))))))))))))))))))))))))))))) + (let ((?x54 (concat (_ bv0 9) (_ bv0 1)))) + (let (($x68 (and true (= (bvand ipv4.srcAddr (_ bv555813129 32)) (_ bv555810816 32))))) + (let (($x57 (and true ipv4.$valid$))) + (let (($x72 (and (and $x57 (not (and true (= (bvand ipv4.srcAddr (_ bv153159945 32)) (_ bv2162944 32))))) $x68))) + (let ((?x84 (concat (_ bv0 9) (_ bv1 1)))) + (let (($x63 (and true (= (bvand ipv4.srcAddr (_ bv153159945 32)) (_ bv2162944 32))))) + (let (($x69 (and $x57 $x63))) + (let ((?x85 (ite $x69 ?x84 (ite $x72 ?x54 (ite true ?x54 scalars.local_metadata_t.vrf))))) + (let (($x94 (= ?x85 ?x54))) + (let (($x112 (and (and true (= ((_ extract 31 24) ipv4.dstAddr) ((_ extract 31 24) (_ bv167772160 32)))) $x94))) + (let (($x106 (and (and true (= ((_ extract 31 16) ipv4.dstAddr) ((_ extract 31 16) (_ bv336855040 32)))) (= ?x85 ?x84)))) + (let (($x100 (and (and true (= ((_ extract 31 16) ipv4.dstAddr) ((_ extract 31 16) (_ bv168427520 32)))) $x94))) + (let (($x95 (and (and true (= ipv4.dstAddr (_ bv168427520 32))) $x94))) + (let (($x114 (not $x95))) + (let (($x118 (and $x114 (not $x100)))) + (let (($x122 (and $x118 (not $x106)))) + (let ((?x51 (ite false (_ bv1 1) (_ bv0 1)))) + (let ((?x80 (ite true (_ bv1 1) (_ bv0 1)))) + (let ((?x86 (ite $x69 ?x80 (ite $x72 ?x80 (ite true ?x51 scalars.local_metadata_t.vrf_is_valid))))) + (let (($x87 (bvuge ?x86 (_ bv1 1)))) + (let (($x89 (and $x57 $x87))) + (let ((?x129 (ite (and $x89 (and $x122 (not $x112))) (_ bv511 9) standard_metadata.egress_spec))) + (let (($x124 (and (and $x89 $x122) $x112))) + (let (($x120 (and (and $x89 $x118) $x106))) + (let (($x116 (and (and $x89 $x114) $x100))) + (let (($x113 (and $x89 $x95))) + (let ((?x162 (ite $x113 (_ bv1 9) (ite $x116 (_ bv0 9) (ite $x120 (_ bv1 9) (ite $x124 (_ bv1 9) ?x129)))))) + (let (($x56 (= ?x162 (_ bv511 9)))) + (or $x56 (or (or false (= ?x162 (_ bv0 9))) (= ?x162 (_ bv1 9))))))))))))))))))))))))))))))))) (assert - (let ((?x50 (concat (_ bv0 9) (_ bv0 1)))) - (let (($x64 (and true (= (bvand ipv4.srcAddr (_ bv555813129 32)) (_ bv555810816 32))))) - (let (($x53 (and true ipv4.$valid$))) - (let (($x68 (and (and $x53 (not (and true (= (bvand ipv4.srcAddr (_ bv153159945 32)) (_ bv2162944 32))))) $x64))) - (let ((?x80 (concat (_ bv0 9) (_ bv1 1)))) - (let (($x59 (and true (= (bvand ipv4.srcAddr (_ bv153159945 32)) (_ bv2162944 32))))) - (let (($x65 (and $x53 $x59))) - (let ((?x81 (ite $x65 ?x80 (ite $x68 ?x50 (ite true ?x50 scalars.local_metadata_t.vrf))))) - (let (($x90 (= ?x81 ?x50))) - (let (($x108 (and (and true (= ((_ extract 31 24) ipv4.dstAddr) ((_ extract 31 24) (_ bv167772160 32)))) $x90))) - (let ((?x47 (ite false (_ bv1 1) (_ bv0 1)))) - (let ((?x76 (ite true (_ bv1 1) (_ bv0 1)))) - (let ((?x82 (ite $x65 ?x76 (ite $x68 ?x76 (ite true ?x47 scalars.local_metadata_t.vrf_is_valid))))) - (let (($x83 (bvuge ?x82 (_ bv1 1)))) - (let (($x85 (and $x53 $x83))) - (let (($x102 (and (and true (= ((_ extract 31 16) ipv4.dstAddr) ((_ extract 31 16) (_ bv336855040 32)))) (= ?x81 ?x80)))) - (let (($x96 (and (and true (= ((_ extract 31 16) ipv4.dstAddr) ((_ extract 31 16) (_ bv168427520 32)))) $x90))) - (let ((?x149 (ite (and $x85 $x96) 0 (ite (and $x85 $x102) 3 (ite (and $x85 $x108) 2 (- 1)))))) - (let (($x91 (and (and true (= ipv4.dstAddr (_ bv168427520 32))) $x90))) - (let (($x109 (and $x85 $x91))) - (let ((?x70 (ite ipv4.$valid$ (ite $x83 (ite $x109 1 ?x149) (- 1)) (- 1)))) - (let (($x69 (ite ipv4.$valid$ (ite $x83 $x85 false) false))) - (let (($x123 (and $x85 (and (and (and (not $x91) (not $x96)) (not $x102)) (not $x108))))) - (let (($x120 (and (and $x85 (and (and (not $x91) (not $x96)) (not $x102))) $x108))) - (let (($x116 (and (and $x85 (and (not $x91) (not $x96))) $x102))) - (let ((?x142 (ite $x116 (_ bv1 9) (ite $x120 (_ bv1 9) (ite $x123 (_ bv511 9) standard_metadata.egress_spec))))) - (let (($x112 (and (and $x85 (not $x91)) $x96))) - (let ((?x158 (ite $x109 (_ bv1 9) (ite $x112 (_ bv0 9) ?x142)))) - (let (($x52 (= ?x158 (_ bv511 9)))) - (and (and (not $x52) $x69) (= ?x70 1)))))))))))))))))))))))))))))))) + (let ((?x54 (concat (_ bv0 9) (_ bv0 1)))) + (let (($x68 (and true (= (bvand ipv4.srcAddr (_ bv555813129 32)) (_ bv555810816 32))))) + (let (($x57 (and true ipv4.$valid$))) + (let (($x72 (and (and $x57 (not (and true (= (bvand ipv4.srcAddr (_ bv153159945 32)) (_ bv2162944 32))))) $x68))) + (let ((?x84 (concat (_ bv0 9) (_ bv1 1)))) + (let (($x63 (and true (= (bvand ipv4.srcAddr (_ bv153159945 32)) (_ bv2162944 32))))) + (let (($x69 (and $x57 $x63))) + (let ((?x85 (ite $x69 ?x84 (ite $x72 ?x54 (ite true ?x54 scalars.local_metadata_t.vrf))))) + (let (($x94 (= ?x85 ?x54))) + (let (($x112 (and (and true (= ((_ extract 31 24) ipv4.dstAddr) ((_ extract 31 24) (_ bv167772160 32)))) $x94))) + (let ((?x51 (ite false (_ bv1 1) (_ bv0 1)))) + (let ((?x80 (ite true (_ bv1 1) (_ bv0 1)))) + (let ((?x86 (ite $x69 ?x80 (ite $x72 ?x80 (ite true ?x51 scalars.local_metadata_t.vrf_is_valid))))) + (let (($x87 (bvuge ?x86 (_ bv1 1)))) + (let (($x89 (and $x57 $x87))) + (let (($x106 (and (and true (= ((_ extract 31 16) ipv4.dstAddr) ((_ extract 31 16) (_ bv336855040 32)))) (= ?x85 ?x84)))) + (let (($x100 (and (and true (= ((_ extract 31 16) ipv4.dstAddr) ((_ extract 31 16) (_ bv168427520 32)))) $x94))) + (let ((?x153 (ite (and $x89 $x100) 0 (ite (and $x89 $x106) 3 (ite (and $x89 $x112) 2 (- 1)))))) + (let (($x95 (and (and true (= ipv4.dstAddr (_ bv168427520 32))) $x94))) + (let (($x113 (and $x89 $x95))) + (let ((?x74 (ite ipv4.$valid$ (ite $x87 (ite $x113 1 ?x153) (- 1)) (- 1)))) + (let (($x73 (ite ipv4.$valid$ (ite $x87 $x89 false) false))) + (let (($x127 (and $x89 (and (and (and (not $x95) (not $x100)) (not $x106)) (not $x112))))) + (let (($x124 (and (and $x89 (and (and (not $x95) (not $x100)) (not $x106))) $x112))) + (let (($x120 (and (and $x89 (and (not $x95) (not $x100))) $x106))) + (let ((?x146 (ite $x120 (_ bv1 9) (ite $x124 (_ bv1 9) (ite $x127 (_ bv511 9) standard_metadata.egress_spec))))) + (let (($x116 (and (and $x89 (not $x95)) $x100))) + (let ((?x162 (ite $x113 (_ bv1 9) (ite $x116 (_ bv0 9) ?x146)))) + (let (($x56 (= ?x162 (_ bv511 9)))) + (and (and (not $x56) $x73) (= ?x74 1)))))))))))))))))))))))))))))))) (check-sat) ; @@ -234,69 +234,69 @@ (declare-fun ipv4.dstAddr () (_ BitVec 32)) (declare-fun scalars.local_metadata_t.vrf_is_valid () (_ BitVec 1)) (assert - (let (($x169 (= standard_metadata.ingress_port (_ bv1 9)))) - (or (or false (= standard_metadata.ingress_port (_ bv0 9))) $x169))) + (let (($x173 (= standard_metadata.ingress_port (_ bv1 9)))) + (or (or false (= standard_metadata.ingress_port (_ bv0 9))) $x173))) (assert - (let ((?x50 (concat (_ bv0 9) (_ bv0 1)))) - (let (($x64 (and true (= (bvand ipv4.srcAddr (_ bv555813129 32)) (_ bv555810816 32))))) - (let (($x53 (and true ipv4.$valid$))) - (let (($x68 (and (and $x53 (not (and true (= (bvand ipv4.srcAddr (_ bv153159945 32)) (_ bv2162944 32))))) $x64))) - (let ((?x80 (concat (_ bv0 9) (_ bv1 1)))) - (let (($x59 (and true (= (bvand ipv4.srcAddr (_ bv153159945 32)) (_ bv2162944 32))))) - (let (($x65 (and $x53 $x59))) - (let ((?x81 (ite $x65 ?x80 (ite $x68 ?x50 (ite true ?x50 scalars.local_metadata_t.vrf))))) - (let (($x90 (= ?x81 ?x50))) - (let (($x108 (and (and true (= ((_ extract 31 24) ipv4.dstAddr) ((_ extract 31 24) (_ bv167772160 32)))) $x90))) - (let (($x102 (and (and true (= ((_ extract 31 16) ipv4.dstAddr) ((_ extract 31 16) (_ bv336855040 32)))) (= ?x81 ?x80)))) - (let (($x96 (and (and true (= ((_ extract 31 16) ipv4.dstAddr) ((_ extract 31 16) (_ bv168427520 32)))) $x90))) - (let (($x91 (and (and true (= ipv4.dstAddr (_ bv168427520 32))) $x90))) - (let (($x110 (not $x91))) - (let (($x114 (and $x110 (not $x96)))) - (let (($x118 (and $x114 (not $x102)))) - (let ((?x47 (ite false (_ bv1 1) (_ bv0 1)))) - (let ((?x76 (ite true (_ bv1 1) (_ bv0 1)))) - (let ((?x82 (ite $x65 ?x76 (ite $x68 ?x76 (ite true ?x47 scalars.local_metadata_t.vrf_is_valid))))) - (let (($x83 (bvuge ?x82 (_ bv1 1)))) - (let (($x85 (and $x53 $x83))) - (let ((?x125 (ite (and $x85 (and $x118 (not $x108))) (_ bv511 9) standard_metadata.egress_spec))) - (let (($x120 (and (and $x85 $x118) $x108))) - (let (($x116 (and (and $x85 $x114) $x102))) - (let (($x112 (and (and $x85 $x110) $x96))) - (let (($x109 (and $x85 $x91))) - (let ((?x158 (ite $x109 (_ bv1 9) (ite $x112 (_ bv0 9) (ite $x116 (_ bv1 9) (ite $x120 (_ bv1 9) ?x125)))))) - (let (($x52 (= ?x158 (_ bv511 9)))) - (or $x52 (or (or false (= ?x158 (_ bv0 9))) (= ?x158 (_ bv1 9))))))))))))))))))))))))))))))))) + (let ((?x54 (concat (_ bv0 9) (_ bv0 1)))) + (let (($x68 (and true (= (bvand ipv4.srcAddr (_ bv555813129 32)) (_ bv555810816 32))))) + (let (($x57 (and true ipv4.$valid$))) + (let (($x72 (and (and $x57 (not (and true (= (bvand ipv4.srcAddr (_ bv153159945 32)) (_ bv2162944 32))))) $x68))) + (let ((?x84 (concat (_ bv0 9) (_ bv1 1)))) + (let (($x63 (and true (= (bvand ipv4.srcAddr (_ bv153159945 32)) (_ bv2162944 32))))) + (let (($x69 (and $x57 $x63))) + (let ((?x85 (ite $x69 ?x84 (ite $x72 ?x54 (ite true ?x54 scalars.local_metadata_t.vrf))))) + (let (($x94 (= ?x85 ?x54))) + (let (($x112 (and (and true (= ((_ extract 31 24) ipv4.dstAddr) ((_ extract 31 24) (_ bv167772160 32)))) $x94))) + (let (($x106 (and (and true (= ((_ extract 31 16) ipv4.dstAddr) ((_ extract 31 16) (_ bv336855040 32)))) (= ?x85 ?x84)))) + (let (($x100 (and (and true (= ((_ extract 31 16) ipv4.dstAddr) ((_ extract 31 16) (_ bv168427520 32)))) $x94))) + (let (($x95 (and (and true (= ipv4.dstAddr (_ bv168427520 32))) $x94))) + (let (($x114 (not $x95))) + (let (($x118 (and $x114 (not $x100)))) + (let (($x122 (and $x118 (not $x106)))) + (let ((?x51 (ite false (_ bv1 1) (_ bv0 1)))) + (let ((?x80 (ite true (_ bv1 1) (_ bv0 1)))) + (let ((?x86 (ite $x69 ?x80 (ite $x72 ?x80 (ite true ?x51 scalars.local_metadata_t.vrf_is_valid))))) + (let (($x87 (bvuge ?x86 (_ bv1 1)))) + (let (($x89 (and $x57 $x87))) + (let ((?x129 (ite (and $x89 (and $x122 (not $x112))) (_ bv511 9) standard_metadata.egress_spec))) + (let (($x124 (and (and $x89 $x122) $x112))) + (let (($x120 (and (and $x89 $x118) $x106))) + (let (($x116 (and (and $x89 $x114) $x100))) + (let (($x113 (and $x89 $x95))) + (let ((?x162 (ite $x113 (_ bv1 9) (ite $x116 (_ bv0 9) (ite $x120 (_ bv1 9) (ite $x124 (_ bv1 9) ?x129)))))) + (let (($x56 (= ?x162 (_ bv511 9)))) + (or $x56 (or (or false (= ?x162 (_ bv0 9))) (= ?x162 (_ bv1 9))))))))))))))))))))))))))))))))) (assert - (let ((?x50 (concat (_ bv0 9) (_ bv0 1)))) - (let (($x64 (and true (= (bvand ipv4.srcAddr (_ bv555813129 32)) (_ bv555810816 32))))) - (let (($x53 (and true ipv4.$valid$))) - (let (($x68 (and (and $x53 (not (and true (= (bvand ipv4.srcAddr (_ bv153159945 32)) (_ bv2162944 32))))) $x64))) - (let ((?x80 (concat (_ bv0 9) (_ bv1 1)))) - (let (($x59 (and true (= (bvand ipv4.srcAddr (_ bv153159945 32)) (_ bv2162944 32))))) - (let (($x65 (and $x53 $x59))) - (let ((?x81 (ite $x65 ?x80 (ite $x68 ?x50 (ite true ?x50 scalars.local_metadata_t.vrf))))) - (let (($x90 (= ?x81 ?x50))) - (let (($x108 (and (and true (= ((_ extract 31 24) ipv4.dstAddr) ((_ extract 31 24) (_ bv167772160 32)))) $x90))) - (let ((?x47 (ite false (_ bv1 1) (_ bv0 1)))) - (let ((?x76 (ite true (_ bv1 1) (_ bv0 1)))) - (let ((?x82 (ite $x65 ?x76 (ite $x68 ?x76 (ite true ?x47 scalars.local_metadata_t.vrf_is_valid))))) - (let (($x83 (bvuge ?x82 (_ bv1 1)))) - (let (($x85 (and $x53 $x83))) - (let (($x102 (and (and true (= ((_ extract 31 16) ipv4.dstAddr) ((_ extract 31 16) (_ bv336855040 32)))) (= ?x81 ?x80)))) - (let (($x96 (and (and true (= ((_ extract 31 16) ipv4.dstAddr) ((_ extract 31 16) (_ bv168427520 32)))) $x90))) - (let ((?x149 (ite (and $x85 $x96) 0 (ite (and $x85 $x102) 3 (ite (and $x85 $x108) 2 (- 1)))))) - (let (($x91 (and (and true (= ipv4.dstAddr (_ bv168427520 32))) $x90))) - (let (($x109 (and $x85 $x91))) - (let ((?x70 (ite ipv4.$valid$ (ite $x83 (ite $x109 1 ?x149) (- 1)) (- 1)))) - (let (($x69 (ite ipv4.$valid$ (ite $x83 $x85 false) false))) - (let (($x123 (and $x85 (and (and (and (not $x91) (not $x96)) (not $x102)) (not $x108))))) - (let (($x120 (and (and $x85 (and (and (not $x91) (not $x96)) (not $x102))) $x108))) - (let (($x116 (and (and $x85 (and (not $x91) (not $x96))) $x102))) - (let ((?x142 (ite $x116 (_ bv1 9) (ite $x120 (_ bv1 9) (ite $x123 (_ bv511 9) standard_metadata.egress_spec))))) - (let (($x112 (and (and $x85 (not $x91)) $x96))) - (let ((?x158 (ite $x109 (_ bv1 9) (ite $x112 (_ bv0 9) ?x142)))) - (let (($x52 (= ?x158 (_ bv511 9)))) - (and (and (not $x52) $x69) (= ?x70 2)))))))))))))))))))))))))))))))) + (let ((?x54 (concat (_ bv0 9) (_ bv0 1)))) + (let (($x68 (and true (= (bvand ipv4.srcAddr (_ bv555813129 32)) (_ bv555810816 32))))) + (let (($x57 (and true ipv4.$valid$))) + (let (($x72 (and (and $x57 (not (and true (= (bvand ipv4.srcAddr (_ bv153159945 32)) (_ bv2162944 32))))) $x68))) + (let ((?x84 (concat (_ bv0 9) (_ bv1 1)))) + (let (($x63 (and true (= (bvand ipv4.srcAddr (_ bv153159945 32)) (_ bv2162944 32))))) + (let (($x69 (and $x57 $x63))) + (let ((?x85 (ite $x69 ?x84 (ite $x72 ?x54 (ite true ?x54 scalars.local_metadata_t.vrf))))) + (let (($x94 (= ?x85 ?x54))) + (let (($x112 (and (and true (= ((_ extract 31 24) ipv4.dstAddr) ((_ extract 31 24) (_ bv167772160 32)))) $x94))) + (let ((?x51 (ite false (_ bv1 1) (_ bv0 1)))) + (let ((?x80 (ite true (_ bv1 1) (_ bv0 1)))) + (let ((?x86 (ite $x69 ?x80 (ite $x72 ?x80 (ite true ?x51 scalars.local_metadata_t.vrf_is_valid))))) + (let (($x87 (bvuge ?x86 (_ bv1 1)))) + (let (($x89 (and $x57 $x87))) + (let (($x106 (and (and true (= ((_ extract 31 16) ipv4.dstAddr) ((_ extract 31 16) (_ bv336855040 32)))) (= ?x85 ?x84)))) + (let (($x100 (and (and true (= ((_ extract 31 16) ipv4.dstAddr) ((_ extract 31 16) (_ bv168427520 32)))) $x94))) + (let ((?x153 (ite (and $x89 $x100) 0 (ite (and $x89 $x106) 3 (ite (and $x89 $x112) 2 (- 1)))))) + (let (($x95 (and (and true (= ipv4.dstAddr (_ bv168427520 32))) $x94))) + (let (($x113 (and $x89 $x95))) + (let ((?x74 (ite ipv4.$valid$ (ite $x87 (ite $x113 1 ?x153) (- 1)) (- 1)))) + (let (($x73 (ite ipv4.$valid$ (ite $x87 $x89 false) false))) + (let (($x127 (and $x89 (and (and (and (not $x95) (not $x100)) (not $x106)) (not $x112))))) + (let (($x124 (and (and $x89 (and (and (not $x95) (not $x100)) (not $x106))) $x112))) + (let (($x120 (and (and $x89 (and (not $x95) (not $x100))) $x106))) + (let ((?x146 (ite $x120 (_ bv1 9) (ite $x124 (_ bv1 9) (ite $x127 (_ bv511 9) standard_metadata.egress_spec))))) + (let (($x116 (and (and $x89 (not $x95)) $x100))) + (let ((?x162 (ite $x113 (_ bv1 9) (ite $x116 (_ bv0 9) ?x146)))) + (let (($x56 (= ?x162 (_ bv511 9)))) + (and (and (not $x56) $x73) (= ?x74 2)))))))))))))))))))))))))))))))) (check-sat) ; @@ -309,69 +309,69 @@ (declare-fun ipv4.dstAddr () (_ BitVec 32)) (declare-fun scalars.local_metadata_t.vrf_is_valid () (_ BitVec 1)) (assert - (let (($x169 (= standard_metadata.ingress_port (_ bv1 9)))) - (or (or false (= standard_metadata.ingress_port (_ bv0 9))) $x169))) + (let (($x173 (= standard_metadata.ingress_port (_ bv1 9)))) + (or (or false (= standard_metadata.ingress_port (_ bv0 9))) $x173))) (assert - (let ((?x50 (concat (_ bv0 9) (_ bv0 1)))) - (let (($x64 (and true (= (bvand ipv4.srcAddr (_ bv555813129 32)) (_ bv555810816 32))))) - (let (($x53 (and true ipv4.$valid$))) - (let (($x68 (and (and $x53 (not (and true (= (bvand ipv4.srcAddr (_ bv153159945 32)) (_ bv2162944 32))))) $x64))) - (let ((?x80 (concat (_ bv0 9) (_ bv1 1)))) - (let (($x59 (and true (= (bvand ipv4.srcAddr (_ bv153159945 32)) (_ bv2162944 32))))) - (let (($x65 (and $x53 $x59))) - (let ((?x81 (ite $x65 ?x80 (ite $x68 ?x50 (ite true ?x50 scalars.local_metadata_t.vrf))))) - (let (($x90 (= ?x81 ?x50))) - (let (($x108 (and (and true (= ((_ extract 31 24) ipv4.dstAddr) ((_ extract 31 24) (_ bv167772160 32)))) $x90))) - (let (($x102 (and (and true (= ((_ extract 31 16) ipv4.dstAddr) ((_ extract 31 16) (_ bv336855040 32)))) (= ?x81 ?x80)))) - (let (($x96 (and (and true (= ((_ extract 31 16) ipv4.dstAddr) ((_ extract 31 16) (_ bv168427520 32)))) $x90))) - (let (($x91 (and (and true (= ipv4.dstAddr (_ bv168427520 32))) $x90))) - (let (($x110 (not $x91))) - (let (($x114 (and $x110 (not $x96)))) - (let (($x118 (and $x114 (not $x102)))) - (let ((?x47 (ite false (_ bv1 1) (_ bv0 1)))) - (let ((?x76 (ite true (_ bv1 1) (_ bv0 1)))) - (let ((?x82 (ite $x65 ?x76 (ite $x68 ?x76 (ite true ?x47 scalars.local_metadata_t.vrf_is_valid))))) - (let (($x83 (bvuge ?x82 (_ bv1 1)))) - (let (($x85 (and $x53 $x83))) - (let ((?x125 (ite (and $x85 (and $x118 (not $x108))) (_ bv511 9) standard_metadata.egress_spec))) - (let (($x120 (and (and $x85 $x118) $x108))) - (let (($x116 (and (and $x85 $x114) $x102))) - (let (($x112 (and (and $x85 $x110) $x96))) - (let (($x109 (and $x85 $x91))) - (let ((?x158 (ite $x109 (_ bv1 9) (ite $x112 (_ bv0 9) (ite $x116 (_ bv1 9) (ite $x120 (_ bv1 9) ?x125)))))) - (let (($x52 (= ?x158 (_ bv511 9)))) - (or $x52 (or (or false (= ?x158 (_ bv0 9))) (= ?x158 (_ bv1 9))))))))))))))))))))))))))))))))) + (let ((?x54 (concat (_ bv0 9) (_ bv0 1)))) + (let (($x68 (and true (= (bvand ipv4.srcAddr (_ bv555813129 32)) (_ bv555810816 32))))) + (let (($x57 (and true ipv4.$valid$))) + (let (($x72 (and (and $x57 (not (and true (= (bvand ipv4.srcAddr (_ bv153159945 32)) (_ bv2162944 32))))) $x68))) + (let ((?x84 (concat (_ bv0 9) (_ bv1 1)))) + (let (($x63 (and true (= (bvand ipv4.srcAddr (_ bv153159945 32)) (_ bv2162944 32))))) + (let (($x69 (and $x57 $x63))) + (let ((?x85 (ite $x69 ?x84 (ite $x72 ?x54 (ite true ?x54 scalars.local_metadata_t.vrf))))) + (let (($x94 (= ?x85 ?x54))) + (let (($x112 (and (and true (= ((_ extract 31 24) ipv4.dstAddr) ((_ extract 31 24) (_ bv167772160 32)))) $x94))) + (let (($x106 (and (and true (= ((_ extract 31 16) ipv4.dstAddr) ((_ extract 31 16) (_ bv336855040 32)))) (= ?x85 ?x84)))) + (let (($x100 (and (and true (= ((_ extract 31 16) ipv4.dstAddr) ((_ extract 31 16) (_ bv168427520 32)))) $x94))) + (let (($x95 (and (and true (= ipv4.dstAddr (_ bv168427520 32))) $x94))) + (let (($x114 (not $x95))) + (let (($x118 (and $x114 (not $x100)))) + (let (($x122 (and $x118 (not $x106)))) + (let ((?x51 (ite false (_ bv1 1) (_ bv0 1)))) + (let ((?x80 (ite true (_ bv1 1) (_ bv0 1)))) + (let ((?x86 (ite $x69 ?x80 (ite $x72 ?x80 (ite true ?x51 scalars.local_metadata_t.vrf_is_valid))))) + (let (($x87 (bvuge ?x86 (_ bv1 1)))) + (let (($x89 (and $x57 $x87))) + (let ((?x129 (ite (and $x89 (and $x122 (not $x112))) (_ bv511 9) standard_metadata.egress_spec))) + (let (($x124 (and (and $x89 $x122) $x112))) + (let (($x120 (and (and $x89 $x118) $x106))) + (let (($x116 (and (and $x89 $x114) $x100))) + (let (($x113 (and $x89 $x95))) + (let ((?x162 (ite $x113 (_ bv1 9) (ite $x116 (_ bv0 9) (ite $x120 (_ bv1 9) (ite $x124 (_ bv1 9) ?x129)))))) + (let (($x56 (= ?x162 (_ bv511 9)))) + (or $x56 (or (or false (= ?x162 (_ bv0 9))) (= ?x162 (_ bv1 9))))))))))))))))))))))))))))))))) (assert - (let ((?x50 (concat (_ bv0 9) (_ bv0 1)))) - (let (($x64 (and true (= (bvand ipv4.srcAddr (_ bv555813129 32)) (_ bv555810816 32))))) - (let (($x53 (and true ipv4.$valid$))) - (let (($x68 (and (and $x53 (not (and true (= (bvand ipv4.srcAddr (_ bv153159945 32)) (_ bv2162944 32))))) $x64))) - (let ((?x80 (concat (_ bv0 9) (_ bv1 1)))) - (let (($x59 (and true (= (bvand ipv4.srcAddr (_ bv153159945 32)) (_ bv2162944 32))))) - (let (($x65 (and $x53 $x59))) - (let ((?x81 (ite $x65 ?x80 (ite $x68 ?x50 (ite true ?x50 scalars.local_metadata_t.vrf))))) - (let (($x90 (= ?x81 ?x50))) - (let (($x108 (and (and true (= ((_ extract 31 24) ipv4.dstAddr) ((_ extract 31 24) (_ bv167772160 32)))) $x90))) - (let ((?x47 (ite false (_ bv1 1) (_ bv0 1)))) - (let ((?x76 (ite true (_ bv1 1) (_ bv0 1)))) - (let ((?x82 (ite $x65 ?x76 (ite $x68 ?x76 (ite true ?x47 scalars.local_metadata_t.vrf_is_valid))))) - (let (($x83 (bvuge ?x82 (_ bv1 1)))) - (let (($x85 (and $x53 $x83))) - (let (($x102 (and (and true (= ((_ extract 31 16) ipv4.dstAddr) ((_ extract 31 16) (_ bv336855040 32)))) (= ?x81 ?x80)))) - (let (($x96 (and (and true (= ((_ extract 31 16) ipv4.dstAddr) ((_ extract 31 16) (_ bv168427520 32)))) $x90))) - (let ((?x149 (ite (and $x85 $x96) 0 (ite (and $x85 $x102) 3 (ite (and $x85 $x108) 2 (- 1)))))) - (let (($x91 (and (and true (= ipv4.dstAddr (_ bv168427520 32))) $x90))) - (let (($x109 (and $x85 $x91))) - (let ((?x70 (ite ipv4.$valid$ (ite $x83 (ite $x109 1 ?x149) (- 1)) (- 1)))) - (let (($x69 (ite ipv4.$valid$ (ite $x83 $x85 false) false))) - (let (($x123 (and $x85 (and (and (and (not $x91) (not $x96)) (not $x102)) (not $x108))))) - (let (($x120 (and (and $x85 (and (and (not $x91) (not $x96)) (not $x102))) $x108))) - (let (($x116 (and (and $x85 (and (not $x91) (not $x96))) $x102))) - (let ((?x142 (ite $x116 (_ bv1 9) (ite $x120 (_ bv1 9) (ite $x123 (_ bv511 9) standard_metadata.egress_spec))))) - (let (($x112 (and (and $x85 (not $x91)) $x96))) - (let ((?x158 (ite $x109 (_ bv1 9) (ite $x112 (_ bv0 9) ?x142)))) - (let (($x52 (= ?x158 (_ bv511 9)))) - (and (and (not $x52) $x69) (= ?x70 3)))))))))))))))))))))))))))))))) + (let ((?x54 (concat (_ bv0 9) (_ bv0 1)))) + (let (($x68 (and true (= (bvand ipv4.srcAddr (_ bv555813129 32)) (_ bv555810816 32))))) + (let (($x57 (and true ipv4.$valid$))) + (let (($x72 (and (and $x57 (not (and true (= (bvand ipv4.srcAddr (_ bv153159945 32)) (_ bv2162944 32))))) $x68))) + (let ((?x84 (concat (_ bv0 9) (_ bv1 1)))) + (let (($x63 (and true (= (bvand ipv4.srcAddr (_ bv153159945 32)) (_ bv2162944 32))))) + (let (($x69 (and $x57 $x63))) + (let ((?x85 (ite $x69 ?x84 (ite $x72 ?x54 (ite true ?x54 scalars.local_metadata_t.vrf))))) + (let (($x94 (= ?x85 ?x54))) + (let (($x112 (and (and true (= ((_ extract 31 24) ipv4.dstAddr) ((_ extract 31 24) (_ bv167772160 32)))) $x94))) + (let ((?x51 (ite false (_ bv1 1) (_ bv0 1)))) + (let ((?x80 (ite true (_ bv1 1) (_ bv0 1)))) + (let ((?x86 (ite $x69 ?x80 (ite $x72 ?x80 (ite true ?x51 scalars.local_metadata_t.vrf_is_valid))))) + (let (($x87 (bvuge ?x86 (_ bv1 1)))) + (let (($x89 (and $x57 $x87))) + (let (($x106 (and (and true (= ((_ extract 31 16) ipv4.dstAddr) ((_ extract 31 16) (_ bv336855040 32)))) (= ?x85 ?x84)))) + (let (($x100 (and (and true (= ((_ extract 31 16) ipv4.dstAddr) ((_ extract 31 16) (_ bv168427520 32)))) $x94))) + (let ((?x153 (ite (and $x89 $x100) 0 (ite (and $x89 $x106) 3 (ite (and $x89 $x112) 2 (- 1)))))) + (let (($x95 (and (and true (= ipv4.dstAddr (_ bv168427520 32))) $x94))) + (let (($x113 (and $x89 $x95))) + (let ((?x74 (ite ipv4.$valid$ (ite $x87 (ite $x113 1 ?x153) (- 1)) (- 1)))) + (let (($x73 (ite ipv4.$valid$ (ite $x87 $x89 false) false))) + (let (($x127 (and $x89 (and (and (and (not $x95) (not $x100)) (not $x106)) (not $x112))))) + (let (($x124 (and (and $x89 (and (and (not $x95) (not $x100)) (not $x106))) $x112))) + (let (($x120 (and (and $x89 (and (not $x95) (not $x100))) $x106))) + (let ((?x146 (ite $x120 (_ bv1 9) (ite $x124 (_ bv1 9) (ite $x127 (_ bv511 9) standard_metadata.egress_spec))))) + (let (($x116 (and (and $x89 (not $x95)) $x100))) + (let ((?x162 (ite $x113 (_ bv1 9) (ite $x116 (_ bv0 9) ?x146)))) + (let (($x56 (= ?x162 (_ bv511 9)))) + (and (and (not $x56) $x73) (= ?x74 3)))))))))))))))))))))))))))))))) (check-sat) ; @@ -384,70 +384,70 @@ (declare-fun ipv4.dstAddr () (_ BitVec 32)) (declare-fun scalars.local_metadata_t.vrf_is_valid () (_ BitVec 1)) (assert - (let (($x169 (= standard_metadata.ingress_port (_ bv1 9)))) - (or (or false (= standard_metadata.ingress_port (_ bv0 9))) $x169))) + (let (($x173 (= standard_metadata.ingress_port (_ bv1 9)))) + (or (or false (= standard_metadata.ingress_port (_ bv0 9))) $x173))) (assert - (let ((?x50 (concat (_ bv0 9) (_ bv0 1)))) - (let (($x64 (and true (= (bvand ipv4.srcAddr (_ bv555813129 32)) (_ bv555810816 32))))) - (let (($x53 (and true ipv4.$valid$))) - (let (($x68 (and (and $x53 (not (and true (= (bvand ipv4.srcAddr (_ bv153159945 32)) (_ bv2162944 32))))) $x64))) - (let ((?x80 (concat (_ bv0 9) (_ bv1 1)))) - (let (($x59 (and true (= (bvand ipv4.srcAddr (_ bv153159945 32)) (_ bv2162944 32))))) - (let (($x65 (and $x53 $x59))) - (let ((?x81 (ite $x65 ?x80 (ite $x68 ?x50 (ite true ?x50 scalars.local_metadata_t.vrf))))) - (let (($x90 (= ?x81 ?x50))) - (let (($x108 (and (and true (= ((_ extract 31 24) ipv4.dstAddr) ((_ extract 31 24) (_ bv167772160 32)))) $x90))) - (let (($x102 (and (and true (= ((_ extract 31 16) ipv4.dstAddr) ((_ extract 31 16) (_ bv336855040 32)))) (= ?x81 ?x80)))) - (let (($x96 (and (and true (= ((_ extract 31 16) ipv4.dstAddr) ((_ extract 31 16) (_ bv168427520 32)))) $x90))) - (let (($x91 (and (and true (= ipv4.dstAddr (_ bv168427520 32))) $x90))) - (let (($x110 (not $x91))) - (let (($x114 (and $x110 (not $x96)))) - (let (($x118 (and $x114 (not $x102)))) - (let ((?x47 (ite false (_ bv1 1) (_ bv0 1)))) - (let ((?x76 (ite true (_ bv1 1) (_ bv0 1)))) - (let ((?x82 (ite $x65 ?x76 (ite $x68 ?x76 (ite true ?x47 scalars.local_metadata_t.vrf_is_valid))))) - (let (($x83 (bvuge ?x82 (_ bv1 1)))) - (let (($x85 (and $x53 $x83))) - (let ((?x125 (ite (and $x85 (and $x118 (not $x108))) (_ bv511 9) standard_metadata.egress_spec))) - (let (($x120 (and (and $x85 $x118) $x108))) - (let (($x116 (and (and $x85 $x114) $x102))) - (let (($x112 (and (and $x85 $x110) $x96))) - (let (($x109 (and $x85 $x91))) - (let ((?x158 (ite $x109 (_ bv1 9) (ite $x112 (_ bv0 9) (ite $x116 (_ bv1 9) (ite $x120 (_ bv1 9) ?x125)))))) - (let (($x52 (= ?x158 (_ bv511 9)))) - (or $x52 (or (or false (= ?x158 (_ bv0 9))) (= ?x158 (_ bv1 9))))))))))))))))))))))))))))))))) + (let ((?x54 (concat (_ bv0 9) (_ bv0 1)))) + (let (($x68 (and true (= (bvand ipv4.srcAddr (_ bv555813129 32)) (_ bv555810816 32))))) + (let (($x57 (and true ipv4.$valid$))) + (let (($x72 (and (and $x57 (not (and true (= (bvand ipv4.srcAddr (_ bv153159945 32)) (_ bv2162944 32))))) $x68))) + (let ((?x84 (concat (_ bv0 9) (_ bv1 1)))) + (let (($x63 (and true (= (bvand ipv4.srcAddr (_ bv153159945 32)) (_ bv2162944 32))))) + (let (($x69 (and $x57 $x63))) + (let ((?x85 (ite $x69 ?x84 (ite $x72 ?x54 (ite true ?x54 scalars.local_metadata_t.vrf))))) + (let (($x94 (= ?x85 ?x54))) + (let (($x112 (and (and true (= ((_ extract 31 24) ipv4.dstAddr) ((_ extract 31 24) (_ bv167772160 32)))) $x94))) + (let (($x106 (and (and true (= ((_ extract 31 16) ipv4.dstAddr) ((_ extract 31 16) (_ bv336855040 32)))) (= ?x85 ?x84)))) + (let (($x100 (and (and true (= ((_ extract 31 16) ipv4.dstAddr) ((_ extract 31 16) (_ bv168427520 32)))) $x94))) + (let (($x95 (and (and true (= ipv4.dstAddr (_ bv168427520 32))) $x94))) + (let (($x114 (not $x95))) + (let (($x118 (and $x114 (not $x100)))) + (let (($x122 (and $x118 (not $x106)))) + (let ((?x51 (ite false (_ bv1 1) (_ bv0 1)))) + (let ((?x80 (ite true (_ bv1 1) (_ bv0 1)))) + (let ((?x86 (ite $x69 ?x80 (ite $x72 ?x80 (ite true ?x51 scalars.local_metadata_t.vrf_is_valid))))) + (let (($x87 (bvuge ?x86 (_ bv1 1)))) + (let (($x89 (and $x57 $x87))) + (let ((?x129 (ite (and $x89 (and $x122 (not $x112))) (_ bv511 9) standard_metadata.egress_spec))) + (let (($x124 (and (and $x89 $x122) $x112))) + (let (($x120 (and (and $x89 $x118) $x106))) + (let (($x116 (and (and $x89 $x114) $x100))) + (let (($x113 (and $x89 $x95))) + (let ((?x162 (ite $x113 (_ bv1 9) (ite $x116 (_ bv0 9) (ite $x120 (_ bv1 9) (ite $x124 (_ bv1 9) ?x129)))))) + (let (($x56 (= ?x162 (_ bv511 9)))) + (or $x56 (or (or false (= ?x162 (_ bv0 9))) (= ?x162 (_ bv1 9))))))))))))))))))))))))))))))))) (assert - (let (($x64 (and true (= (bvand ipv4.srcAddr (_ bv555813129 32)) (_ bv555810816 32))))) - (let (($x53 (and true ipv4.$valid$))) - (let (($x59 (and true (= (bvand ipv4.srcAddr (_ bv153159945 32)) (_ bv2162944 32))))) - (let (($x65 (and $x53 $x59))) - (let ((?x84 (ite ipv4.$valid$ (ite $x65 0 (ite (and $x53 $x64) 1 (- 1))) (- 1)))) - (let (($x71 (ite ipv4.$valid$ $x53 false))) - (let ((?x50 (concat (_ bv0 9) (_ bv0 1)))) - (let (($x68 (and (and $x53 (not $x59)) $x64))) - (let ((?x80 (concat (_ bv0 9) (_ bv1 1)))) - (let ((?x81 (ite $x65 ?x80 (ite $x68 ?x50 (ite true ?x50 scalars.local_metadata_t.vrf))))) - (let (($x90 (= ?x81 ?x50))) - (let (($x108 (and (and true (= ((_ extract 31 24) ipv4.dstAddr) ((_ extract 31 24) (_ bv167772160 32)))) $x90))) - (let (($x102 (and (and true (= ((_ extract 31 16) ipv4.dstAddr) ((_ extract 31 16) (_ bv336855040 32)))) (= ?x81 ?x80)))) - (let (($x96 (and (and true (= ((_ extract 31 16) ipv4.dstAddr) ((_ extract 31 16) (_ bv168427520 32)))) $x90))) - (let (($x91 (and (and true (= ipv4.dstAddr (_ bv168427520 32))) $x90))) - (let (($x110 (not $x91))) - (let (($x114 (and $x110 (not $x96)))) - (let (($x118 (and $x114 (not $x102)))) - (let ((?x47 (ite false (_ bv1 1) (_ bv0 1)))) - (let ((?x76 (ite true (_ bv1 1) (_ bv0 1)))) - (let ((?x82 (ite $x65 ?x76 (ite $x68 ?x76 (ite true ?x47 scalars.local_metadata_t.vrf_is_valid))))) - (let (($x83 (bvuge ?x82 (_ bv1 1)))) - (let (($x85 (and $x53 $x83))) - (let ((?x125 (ite (and $x85 (and $x118 (not $x108))) (_ bv511 9) standard_metadata.egress_spec))) - (let (($x120 (and (and $x85 $x118) $x108))) - (let (($x116 (and (and $x85 $x114) $x102))) - (let (($x112 (and (and $x85 $x110) $x96))) - (let (($x109 (and $x85 $x91))) - (let ((?x158 (ite $x109 (_ bv1 9) (ite $x112 (_ bv0 9) (ite $x116 (_ bv1 9) (ite $x120 (_ bv1 9) ?x125)))))) - (let (($x52 (= ?x158 (_ bv511 9)))) - (and (and (not $x52) $x71) (= ?x84 (- 1)))))))))))))))))))))))))))))))))) + (let (($x68 (and true (= (bvand ipv4.srcAddr (_ bv555813129 32)) (_ bv555810816 32))))) + (let (($x57 (and true ipv4.$valid$))) + (let (($x63 (and true (= (bvand ipv4.srcAddr (_ bv153159945 32)) (_ bv2162944 32))))) + (let (($x69 (and $x57 $x63))) + (let ((?x88 (ite ipv4.$valid$ (ite $x69 0 (ite (and $x57 $x68) 1 (- 1))) (- 1)))) + (let (($x75 (ite ipv4.$valid$ $x57 false))) + (let ((?x54 (concat (_ bv0 9) (_ bv0 1)))) + (let (($x72 (and (and $x57 (not $x63)) $x68))) + (let ((?x84 (concat (_ bv0 9) (_ bv1 1)))) + (let ((?x85 (ite $x69 ?x84 (ite $x72 ?x54 (ite true ?x54 scalars.local_metadata_t.vrf))))) + (let (($x94 (= ?x85 ?x54))) + (let (($x112 (and (and true (= ((_ extract 31 24) ipv4.dstAddr) ((_ extract 31 24) (_ bv167772160 32)))) $x94))) + (let (($x106 (and (and true (= ((_ extract 31 16) ipv4.dstAddr) ((_ extract 31 16) (_ bv336855040 32)))) (= ?x85 ?x84)))) + (let (($x100 (and (and true (= ((_ extract 31 16) ipv4.dstAddr) ((_ extract 31 16) (_ bv168427520 32)))) $x94))) + (let (($x95 (and (and true (= ipv4.dstAddr (_ bv168427520 32))) $x94))) + (let (($x114 (not $x95))) + (let (($x118 (and $x114 (not $x100)))) + (let (($x122 (and $x118 (not $x106)))) + (let ((?x51 (ite false (_ bv1 1) (_ bv0 1)))) + (let ((?x80 (ite true (_ bv1 1) (_ bv0 1)))) + (let ((?x86 (ite $x69 ?x80 (ite $x72 ?x80 (ite true ?x51 scalars.local_metadata_t.vrf_is_valid))))) + (let (($x87 (bvuge ?x86 (_ bv1 1)))) + (let (($x89 (and $x57 $x87))) + (let ((?x129 (ite (and $x89 (and $x122 (not $x112))) (_ bv511 9) standard_metadata.egress_spec))) + (let (($x124 (and (and $x89 $x122) $x112))) + (let (($x120 (and (and $x89 $x118) $x106))) + (let (($x116 (and (and $x89 $x114) $x100))) + (let (($x113 (and $x89 $x95))) + (let ((?x162 (ite $x113 (_ bv1 9) (ite $x116 (_ bv0 9) (ite $x120 (_ bv1 9) (ite $x124 (_ bv1 9) ?x129)))))) + (let (($x56 (= ?x162 (_ bv511 9)))) + (and (and (not $x56) $x75) (= ?x88 (- 1)))))))))))))))))))))))))))))))))) (check-sat) ; @@ -460,70 +460,70 @@ (declare-fun ipv4.dstAddr () (_ BitVec 32)) (declare-fun scalars.local_metadata_t.vrf_is_valid () (_ BitVec 1)) (assert - (let (($x169 (= standard_metadata.ingress_port (_ bv1 9)))) - (or (or false (= standard_metadata.ingress_port (_ bv0 9))) $x169))) + (let (($x173 (= standard_metadata.ingress_port (_ bv1 9)))) + (or (or false (= standard_metadata.ingress_port (_ bv0 9))) $x173))) (assert - (let ((?x50 (concat (_ bv0 9) (_ bv0 1)))) - (let (($x64 (and true (= (bvand ipv4.srcAddr (_ bv555813129 32)) (_ bv555810816 32))))) - (let (($x53 (and true ipv4.$valid$))) - (let (($x68 (and (and $x53 (not (and true (= (bvand ipv4.srcAddr (_ bv153159945 32)) (_ bv2162944 32))))) $x64))) - (let ((?x80 (concat (_ bv0 9) (_ bv1 1)))) - (let (($x59 (and true (= (bvand ipv4.srcAddr (_ bv153159945 32)) (_ bv2162944 32))))) - (let (($x65 (and $x53 $x59))) - (let ((?x81 (ite $x65 ?x80 (ite $x68 ?x50 (ite true ?x50 scalars.local_metadata_t.vrf))))) - (let (($x90 (= ?x81 ?x50))) - (let (($x108 (and (and true (= ((_ extract 31 24) ipv4.dstAddr) ((_ extract 31 24) (_ bv167772160 32)))) $x90))) - (let (($x102 (and (and true (= ((_ extract 31 16) ipv4.dstAddr) ((_ extract 31 16) (_ bv336855040 32)))) (= ?x81 ?x80)))) - (let (($x96 (and (and true (= ((_ extract 31 16) ipv4.dstAddr) ((_ extract 31 16) (_ bv168427520 32)))) $x90))) - (let (($x91 (and (and true (= ipv4.dstAddr (_ bv168427520 32))) $x90))) - (let (($x110 (not $x91))) - (let (($x114 (and $x110 (not $x96)))) - (let (($x118 (and $x114 (not $x102)))) - (let ((?x47 (ite false (_ bv1 1) (_ bv0 1)))) - (let ((?x76 (ite true (_ bv1 1) (_ bv0 1)))) - (let ((?x82 (ite $x65 ?x76 (ite $x68 ?x76 (ite true ?x47 scalars.local_metadata_t.vrf_is_valid))))) - (let (($x83 (bvuge ?x82 (_ bv1 1)))) - (let (($x85 (and $x53 $x83))) - (let ((?x125 (ite (and $x85 (and $x118 (not $x108))) (_ bv511 9) standard_metadata.egress_spec))) - (let (($x120 (and (and $x85 $x118) $x108))) - (let (($x116 (and (and $x85 $x114) $x102))) - (let (($x112 (and (and $x85 $x110) $x96))) - (let (($x109 (and $x85 $x91))) - (let ((?x158 (ite $x109 (_ bv1 9) (ite $x112 (_ bv0 9) (ite $x116 (_ bv1 9) (ite $x120 (_ bv1 9) ?x125)))))) - (let (($x52 (= ?x158 (_ bv511 9)))) - (or $x52 (or (or false (= ?x158 (_ bv0 9))) (= ?x158 (_ bv1 9))))))))))))))))))))))))))))))))) + (let ((?x54 (concat (_ bv0 9) (_ bv0 1)))) + (let (($x68 (and true (= (bvand ipv4.srcAddr (_ bv555813129 32)) (_ bv555810816 32))))) + (let (($x57 (and true ipv4.$valid$))) + (let (($x72 (and (and $x57 (not (and true (= (bvand ipv4.srcAddr (_ bv153159945 32)) (_ bv2162944 32))))) $x68))) + (let ((?x84 (concat (_ bv0 9) (_ bv1 1)))) + (let (($x63 (and true (= (bvand ipv4.srcAddr (_ bv153159945 32)) (_ bv2162944 32))))) + (let (($x69 (and $x57 $x63))) + (let ((?x85 (ite $x69 ?x84 (ite $x72 ?x54 (ite true ?x54 scalars.local_metadata_t.vrf))))) + (let (($x94 (= ?x85 ?x54))) + (let (($x112 (and (and true (= ((_ extract 31 24) ipv4.dstAddr) ((_ extract 31 24) (_ bv167772160 32)))) $x94))) + (let (($x106 (and (and true (= ((_ extract 31 16) ipv4.dstAddr) ((_ extract 31 16) (_ bv336855040 32)))) (= ?x85 ?x84)))) + (let (($x100 (and (and true (= ((_ extract 31 16) ipv4.dstAddr) ((_ extract 31 16) (_ bv168427520 32)))) $x94))) + (let (($x95 (and (and true (= ipv4.dstAddr (_ bv168427520 32))) $x94))) + (let (($x114 (not $x95))) + (let (($x118 (and $x114 (not $x100)))) + (let (($x122 (and $x118 (not $x106)))) + (let ((?x51 (ite false (_ bv1 1) (_ bv0 1)))) + (let ((?x80 (ite true (_ bv1 1) (_ bv0 1)))) + (let ((?x86 (ite $x69 ?x80 (ite $x72 ?x80 (ite true ?x51 scalars.local_metadata_t.vrf_is_valid))))) + (let (($x87 (bvuge ?x86 (_ bv1 1)))) + (let (($x89 (and $x57 $x87))) + (let ((?x129 (ite (and $x89 (and $x122 (not $x112))) (_ bv511 9) standard_metadata.egress_spec))) + (let (($x124 (and (and $x89 $x122) $x112))) + (let (($x120 (and (and $x89 $x118) $x106))) + (let (($x116 (and (and $x89 $x114) $x100))) + (let (($x113 (and $x89 $x95))) + (let ((?x162 (ite $x113 (_ bv1 9) (ite $x116 (_ bv0 9) (ite $x120 (_ bv1 9) (ite $x124 (_ bv1 9) ?x129)))))) + (let (($x56 (= ?x162 (_ bv511 9)))) + (or $x56 (or (or false (= ?x162 (_ bv0 9))) (= ?x162 (_ bv1 9))))))))))))))))))))))))))))))))) (assert - (let (($x64 (and true (= (bvand ipv4.srcAddr (_ bv555813129 32)) (_ bv555810816 32))))) - (let (($x53 (and true ipv4.$valid$))) - (let (($x59 (and true (= (bvand ipv4.srcAddr (_ bv153159945 32)) (_ bv2162944 32))))) - (let (($x65 (and $x53 $x59))) - (let ((?x84 (ite ipv4.$valid$ (ite $x65 0 (ite (and $x53 $x64) 1 (- 1))) (- 1)))) - (let (($x71 (ite ipv4.$valid$ $x53 false))) - (let ((?x50 (concat (_ bv0 9) (_ bv0 1)))) - (let (($x68 (and (and $x53 (not $x59)) $x64))) - (let ((?x80 (concat (_ bv0 9) (_ bv1 1)))) - (let ((?x81 (ite $x65 ?x80 (ite $x68 ?x50 (ite true ?x50 scalars.local_metadata_t.vrf))))) - (let (($x90 (= ?x81 ?x50))) - (let (($x108 (and (and true (= ((_ extract 31 24) ipv4.dstAddr) ((_ extract 31 24) (_ bv167772160 32)))) $x90))) - (let (($x102 (and (and true (= ((_ extract 31 16) ipv4.dstAddr) ((_ extract 31 16) (_ bv336855040 32)))) (= ?x81 ?x80)))) - (let (($x96 (and (and true (= ((_ extract 31 16) ipv4.dstAddr) ((_ extract 31 16) (_ bv168427520 32)))) $x90))) - (let (($x91 (and (and true (= ipv4.dstAddr (_ bv168427520 32))) $x90))) - (let (($x110 (not $x91))) - (let (($x114 (and $x110 (not $x96)))) - (let (($x118 (and $x114 (not $x102)))) - (let ((?x47 (ite false (_ bv1 1) (_ bv0 1)))) - (let ((?x76 (ite true (_ bv1 1) (_ bv0 1)))) - (let ((?x82 (ite $x65 ?x76 (ite $x68 ?x76 (ite true ?x47 scalars.local_metadata_t.vrf_is_valid))))) - (let (($x83 (bvuge ?x82 (_ bv1 1)))) - (let (($x85 (and $x53 $x83))) - (let ((?x125 (ite (and $x85 (and $x118 (not $x108))) (_ bv511 9) standard_metadata.egress_spec))) - (let (($x120 (and (and $x85 $x118) $x108))) - (let (($x116 (and (and $x85 $x114) $x102))) - (let (($x112 (and (and $x85 $x110) $x96))) - (let (($x109 (and $x85 $x91))) - (let ((?x158 (ite $x109 (_ bv1 9) (ite $x112 (_ bv0 9) (ite $x116 (_ bv1 9) (ite $x120 (_ bv1 9) ?x125)))))) - (let (($x52 (= ?x158 (_ bv511 9)))) - (and (and (not $x52) $x71) (= ?x84 0))))))))))))))))))))))))))))))))) + (let (($x68 (and true (= (bvand ipv4.srcAddr (_ bv555813129 32)) (_ bv555810816 32))))) + (let (($x57 (and true ipv4.$valid$))) + (let (($x63 (and true (= (bvand ipv4.srcAddr (_ bv153159945 32)) (_ bv2162944 32))))) + (let (($x69 (and $x57 $x63))) + (let ((?x88 (ite ipv4.$valid$ (ite $x69 0 (ite (and $x57 $x68) 1 (- 1))) (- 1)))) + (let (($x75 (ite ipv4.$valid$ $x57 false))) + (let ((?x54 (concat (_ bv0 9) (_ bv0 1)))) + (let (($x72 (and (and $x57 (not $x63)) $x68))) + (let ((?x84 (concat (_ bv0 9) (_ bv1 1)))) + (let ((?x85 (ite $x69 ?x84 (ite $x72 ?x54 (ite true ?x54 scalars.local_metadata_t.vrf))))) + (let (($x94 (= ?x85 ?x54))) + (let (($x112 (and (and true (= ((_ extract 31 24) ipv4.dstAddr) ((_ extract 31 24) (_ bv167772160 32)))) $x94))) + (let (($x106 (and (and true (= ((_ extract 31 16) ipv4.dstAddr) ((_ extract 31 16) (_ bv336855040 32)))) (= ?x85 ?x84)))) + (let (($x100 (and (and true (= ((_ extract 31 16) ipv4.dstAddr) ((_ extract 31 16) (_ bv168427520 32)))) $x94))) + (let (($x95 (and (and true (= ipv4.dstAddr (_ bv168427520 32))) $x94))) + (let (($x114 (not $x95))) + (let (($x118 (and $x114 (not $x100)))) + (let (($x122 (and $x118 (not $x106)))) + (let ((?x51 (ite false (_ bv1 1) (_ bv0 1)))) + (let ((?x80 (ite true (_ bv1 1) (_ bv0 1)))) + (let ((?x86 (ite $x69 ?x80 (ite $x72 ?x80 (ite true ?x51 scalars.local_metadata_t.vrf_is_valid))))) + (let (($x87 (bvuge ?x86 (_ bv1 1)))) + (let (($x89 (and $x57 $x87))) + (let ((?x129 (ite (and $x89 (and $x122 (not $x112))) (_ bv511 9) standard_metadata.egress_spec))) + (let (($x124 (and (and $x89 $x122) $x112))) + (let (($x120 (and (and $x89 $x118) $x106))) + (let (($x116 (and (and $x89 $x114) $x100))) + (let (($x113 (and $x89 $x95))) + (let ((?x162 (ite $x113 (_ bv1 9) (ite $x116 (_ bv0 9) (ite $x120 (_ bv1 9) (ite $x124 (_ bv1 9) ?x129)))))) + (let (($x56 (= ?x162 (_ bv511 9)))) + (and (and (not $x56) $x75) (= ?x88 0))))))))))))))))))))))))))))))))) (check-sat) ; @@ -536,70 +536,70 @@ (declare-fun ipv4.dstAddr () (_ BitVec 32)) (declare-fun scalars.local_metadata_t.vrf_is_valid () (_ BitVec 1)) (assert - (let (($x169 (= standard_metadata.ingress_port (_ bv1 9)))) - (or (or false (= standard_metadata.ingress_port (_ bv0 9))) $x169))) + (let (($x173 (= standard_metadata.ingress_port (_ bv1 9)))) + (or (or false (= standard_metadata.ingress_port (_ bv0 9))) $x173))) (assert - (let ((?x50 (concat (_ bv0 9) (_ bv0 1)))) - (let (($x64 (and true (= (bvand ipv4.srcAddr (_ bv555813129 32)) (_ bv555810816 32))))) - (let (($x53 (and true ipv4.$valid$))) - (let (($x68 (and (and $x53 (not (and true (= (bvand ipv4.srcAddr (_ bv153159945 32)) (_ bv2162944 32))))) $x64))) - (let ((?x80 (concat (_ bv0 9) (_ bv1 1)))) - (let (($x59 (and true (= (bvand ipv4.srcAddr (_ bv153159945 32)) (_ bv2162944 32))))) - (let (($x65 (and $x53 $x59))) - (let ((?x81 (ite $x65 ?x80 (ite $x68 ?x50 (ite true ?x50 scalars.local_metadata_t.vrf))))) - (let (($x90 (= ?x81 ?x50))) - (let (($x108 (and (and true (= ((_ extract 31 24) ipv4.dstAddr) ((_ extract 31 24) (_ bv167772160 32)))) $x90))) - (let (($x102 (and (and true (= ((_ extract 31 16) ipv4.dstAddr) ((_ extract 31 16) (_ bv336855040 32)))) (= ?x81 ?x80)))) - (let (($x96 (and (and true (= ((_ extract 31 16) ipv4.dstAddr) ((_ extract 31 16) (_ bv168427520 32)))) $x90))) - (let (($x91 (and (and true (= ipv4.dstAddr (_ bv168427520 32))) $x90))) - (let (($x110 (not $x91))) - (let (($x114 (and $x110 (not $x96)))) - (let (($x118 (and $x114 (not $x102)))) - (let ((?x47 (ite false (_ bv1 1) (_ bv0 1)))) - (let ((?x76 (ite true (_ bv1 1) (_ bv0 1)))) - (let ((?x82 (ite $x65 ?x76 (ite $x68 ?x76 (ite true ?x47 scalars.local_metadata_t.vrf_is_valid))))) - (let (($x83 (bvuge ?x82 (_ bv1 1)))) - (let (($x85 (and $x53 $x83))) - (let ((?x125 (ite (and $x85 (and $x118 (not $x108))) (_ bv511 9) standard_metadata.egress_spec))) - (let (($x120 (and (and $x85 $x118) $x108))) - (let (($x116 (and (and $x85 $x114) $x102))) - (let (($x112 (and (and $x85 $x110) $x96))) - (let (($x109 (and $x85 $x91))) - (let ((?x158 (ite $x109 (_ bv1 9) (ite $x112 (_ bv0 9) (ite $x116 (_ bv1 9) (ite $x120 (_ bv1 9) ?x125)))))) - (let (($x52 (= ?x158 (_ bv511 9)))) - (or $x52 (or (or false (= ?x158 (_ bv0 9))) (= ?x158 (_ bv1 9))))))))))))))))))))))))))))))))) + (let ((?x54 (concat (_ bv0 9) (_ bv0 1)))) + (let (($x68 (and true (= (bvand ipv4.srcAddr (_ bv555813129 32)) (_ bv555810816 32))))) + (let (($x57 (and true ipv4.$valid$))) + (let (($x72 (and (and $x57 (not (and true (= (bvand ipv4.srcAddr (_ bv153159945 32)) (_ bv2162944 32))))) $x68))) + (let ((?x84 (concat (_ bv0 9) (_ bv1 1)))) + (let (($x63 (and true (= (bvand ipv4.srcAddr (_ bv153159945 32)) (_ bv2162944 32))))) + (let (($x69 (and $x57 $x63))) + (let ((?x85 (ite $x69 ?x84 (ite $x72 ?x54 (ite true ?x54 scalars.local_metadata_t.vrf))))) + (let (($x94 (= ?x85 ?x54))) + (let (($x112 (and (and true (= ((_ extract 31 24) ipv4.dstAddr) ((_ extract 31 24) (_ bv167772160 32)))) $x94))) + (let (($x106 (and (and true (= ((_ extract 31 16) ipv4.dstAddr) ((_ extract 31 16) (_ bv336855040 32)))) (= ?x85 ?x84)))) + (let (($x100 (and (and true (= ((_ extract 31 16) ipv4.dstAddr) ((_ extract 31 16) (_ bv168427520 32)))) $x94))) + (let (($x95 (and (and true (= ipv4.dstAddr (_ bv168427520 32))) $x94))) + (let (($x114 (not $x95))) + (let (($x118 (and $x114 (not $x100)))) + (let (($x122 (and $x118 (not $x106)))) + (let ((?x51 (ite false (_ bv1 1) (_ bv0 1)))) + (let ((?x80 (ite true (_ bv1 1) (_ bv0 1)))) + (let ((?x86 (ite $x69 ?x80 (ite $x72 ?x80 (ite true ?x51 scalars.local_metadata_t.vrf_is_valid))))) + (let (($x87 (bvuge ?x86 (_ bv1 1)))) + (let (($x89 (and $x57 $x87))) + (let ((?x129 (ite (and $x89 (and $x122 (not $x112))) (_ bv511 9) standard_metadata.egress_spec))) + (let (($x124 (and (and $x89 $x122) $x112))) + (let (($x120 (and (and $x89 $x118) $x106))) + (let (($x116 (and (and $x89 $x114) $x100))) + (let (($x113 (and $x89 $x95))) + (let ((?x162 (ite $x113 (_ bv1 9) (ite $x116 (_ bv0 9) (ite $x120 (_ bv1 9) (ite $x124 (_ bv1 9) ?x129)))))) + (let (($x56 (= ?x162 (_ bv511 9)))) + (or $x56 (or (or false (= ?x162 (_ bv0 9))) (= ?x162 (_ bv1 9))))))))))))))))))))))))))))))))) (assert - (let (($x64 (and true (= (bvand ipv4.srcAddr (_ bv555813129 32)) (_ bv555810816 32))))) - (let (($x53 (and true ipv4.$valid$))) - (let (($x59 (and true (= (bvand ipv4.srcAddr (_ bv153159945 32)) (_ bv2162944 32))))) - (let (($x65 (and $x53 $x59))) - (let ((?x84 (ite ipv4.$valid$ (ite $x65 0 (ite (and $x53 $x64) 1 (- 1))) (- 1)))) - (let (($x71 (ite ipv4.$valid$ $x53 false))) - (let ((?x50 (concat (_ bv0 9) (_ bv0 1)))) - (let (($x68 (and (and $x53 (not $x59)) $x64))) - (let ((?x80 (concat (_ bv0 9) (_ bv1 1)))) - (let ((?x81 (ite $x65 ?x80 (ite $x68 ?x50 (ite true ?x50 scalars.local_metadata_t.vrf))))) - (let (($x90 (= ?x81 ?x50))) - (let (($x108 (and (and true (= ((_ extract 31 24) ipv4.dstAddr) ((_ extract 31 24) (_ bv167772160 32)))) $x90))) - (let (($x102 (and (and true (= ((_ extract 31 16) ipv4.dstAddr) ((_ extract 31 16) (_ bv336855040 32)))) (= ?x81 ?x80)))) - (let (($x96 (and (and true (= ((_ extract 31 16) ipv4.dstAddr) ((_ extract 31 16) (_ bv168427520 32)))) $x90))) - (let (($x91 (and (and true (= ipv4.dstAddr (_ bv168427520 32))) $x90))) - (let (($x110 (not $x91))) - (let (($x114 (and $x110 (not $x96)))) - (let (($x118 (and $x114 (not $x102)))) - (let ((?x47 (ite false (_ bv1 1) (_ bv0 1)))) - (let ((?x76 (ite true (_ bv1 1) (_ bv0 1)))) - (let ((?x82 (ite $x65 ?x76 (ite $x68 ?x76 (ite true ?x47 scalars.local_metadata_t.vrf_is_valid))))) - (let (($x83 (bvuge ?x82 (_ bv1 1)))) - (let (($x85 (and $x53 $x83))) - (let ((?x125 (ite (and $x85 (and $x118 (not $x108))) (_ bv511 9) standard_metadata.egress_spec))) - (let (($x120 (and (and $x85 $x118) $x108))) - (let (($x116 (and (and $x85 $x114) $x102))) - (let (($x112 (and (and $x85 $x110) $x96))) - (let (($x109 (and $x85 $x91))) - (let ((?x158 (ite $x109 (_ bv1 9) (ite $x112 (_ bv0 9) (ite $x116 (_ bv1 9) (ite $x120 (_ bv1 9) ?x125)))))) - (let (($x52 (= ?x158 (_ bv511 9)))) - (and (and (not $x52) $x71) (= ?x84 1))))))))))))))))))))))))))))))))) + (let (($x68 (and true (= (bvand ipv4.srcAddr (_ bv555813129 32)) (_ bv555810816 32))))) + (let (($x57 (and true ipv4.$valid$))) + (let (($x63 (and true (= (bvand ipv4.srcAddr (_ bv153159945 32)) (_ bv2162944 32))))) + (let (($x69 (and $x57 $x63))) + (let ((?x88 (ite ipv4.$valid$ (ite $x69 0 (ite (and $x57 $x68) 1 (- 1))) (- 1)))) + (let (($x75 (ite ipv4.$valid$ $x57 false))) + (let ((?x54 (concat (_ bv0 9) (_ bv0 1)))) + (let (($x72 (and (and $x57 (not $x63)) $x68))) + (let ((?x84 (concat (_ bv0 9) (_ bv1 1)))) + (let ((?x85 (ite $x69 ?x84 (ite $x72 ?x54 (ite true ?x54 scalars.local_metadata_t.vrf))))) + (let (($x94 (= ?x85 ?x54))) + (let (($x112 (and (and true (= ((_ extract 31 24) ipv4.dstAddr) ((_ extract 31 24) (_ bv167772160 32)))) $x94))) + (let (($x106 (and (and true (= ((_ extract 31 16) ipv4.dstAddr) ((_ extract 31 16) (_ bv336855040 32)))) (= ?x85 ?x84)))) + (let (($x100 (and (and true (= ((_ extract 31 16) ipv4.dstAddr) ((_ extract 31 16) (_ bv168427520 32)))) $x94))) + (let (($x95 (and (and true (= ipv4.dstAddr (_ bv168427520 32))) $x94))) + (let (($x114 (not $x95))) + (let (($x118 (and $x114 (not $x100)))) + (let (($x122 (and $x118 (not $x106)))) + (let ((?x51 (ite false (_ bv1 1) (_ bv0 1)))) + (let ((?x80 (ite true (_ bv1 1) (_ bv0 1)))) + (let ((?x86 (ite $x69 ?x80 (ite $x72 ?x80 (ite true ?x51 scalars.local_metadata_t.vrf_is_valid))))) + (let (($x87 (bvuge ?x86 (_ bv1 1)))) + (let (($x89 (and $x57 $x87))) + (let ((?x129 (ite (and $x89 (and $x122 (not $x112))) (_ bv511 9) standard_metadata.egress_spec))) + (let (($x124 (and (and $x89 $x122) $x112))) + (let (($x120 (and (and $x89 $x118) $x106))) + (let (($x116 (and (and $x89 $x114) $x100))) + (let (($x113 (and $x89 $x95))) + (let ((?x162 (ite $x113 (_ bv1 9) (ite $x116 (_ bv0 9) (ite $x120 (_ bv1 9) (ite $x124 (_ bv1 9) ?x129)))))) + (let (($x56 (= ?x162 (_ bv511 9)))) + (and (and (not $x56) $x75) (= ?x88 1))))))))))))))))))))))))))))))))) (check-sat) ; @@ -612,66 +612,66 @@ (declare-fun ipv4.dstAddr () (_ BitVec 32)) (declare-fun scalars.local_metadata_t.vrf_is_valid () (_ BitVec 1)) (assert - (let (($x169 (= standard_metadata.ingress_port (_ bv1 9)))) - (or (or false (= standard_metadata.ingress_port (_ bv0 9))) $x169))) + (let (($x173 (= standard_metadata.ingress_port (_ bv1 9)))) + (or (or false (= standard_metadata.ingress_port (_ bv0 9))) $x173))) (assert - (let ((?x50 (concat (_ bv0 9) (_ bv0 1)))) - (let (($x64 (and true (= (bvand ipv4.srcAddr (_ bv555813129 32)) (_ bv555810816 32))))) - (let (($x53 (and true ipv4.$valid$))) - (let (($x68 (and (and $x53 (not (and true (= (bvand ipv4.srcAddr (_ bv153159945 32)) (_ bv2162944 32))))) $x64))) - (let ((?x80 (concat (_ bv0 9) (_ bv1 1)))) - (let (($x59 (and true (= (bvand ipv4.srcAddr (_ bv153159945 32)) (_ bv2162944 32))))) - (let (($x65 (and $x53 $x59))) - (let ((?x81 (ite $x65 ?x80 (ite $x68 ?x50 (ite true ?x50 scalars.local_metadata_t.vrf))))) - (let (($x90 (= ?x81 ?x50))) - (let (($x108 (and (and true (= ((_ extract 31 24) ipv4.dstAddr) ((_ extract 31 24) (_ bv167772160 32)))) $x90))) - (let (($x102 (and (and true (= ((_ extract 31 16) ipv4.dstAddr) ((_ extract 31 16) (_ bv336855040 32)))) (= ?x81 ?x80)))) - (let (($x96 (and (and true (= ((_ extract 31 16) ipv4.dstAddr) ((_ extract 31 16) (_ bv168427520 32)))) $x90))) - (let (($x91 (and (and true (= ipv4.dstAddr (_ bv168427520 32))) $x90))) - (let (($x110 (not $x91))) - (let (($x114 (and $x110 (not $x96)))) - (let (($x118 (and $x114 (not $x102)))) - (let ((?x47 (ite false (_ bv1 1) (_ bv0 1)))) - (let ((?x76 (ite true (_ bv1 1) (_ bv0 1)))) - (let ((?x82 (ite $x65 ?x76 (ite $x68 ?x76 (ite true ?x47 scalars.local_metadata_t.vrf_is_valid))))) - (let (($x83 (bvuge ?x82 (_ bv1 1)))) - (let (($x85 (and $x53 $x83))) - (let ((?x125 (ite (and $x85 (and $x118 (not $x108))) (_ bv511 9) standard_metadata.egress_spec))) - (let (($x120 (and (and $x85 $x118) $x108))) - (let (($x116 (and (and $x85 $x114) $x102))) - (let (($x112 (and (and $x85 $x110) $x96))) - (let (($x109 (and $x85 $x91))) - (let ((?x158 (ite $x109 (_ bv1 9) (ite $x112 (_ bv0 9) (ite $x116 (_ bv1 9) (ite $x120 (_ bv1 9) ?x125)))))) - (let (($x52 (= ?x158 (_ bv511 9)))) - (or $x52 (or (or false (= ?x158 (_ bv0 9))) (= ?x158 (_ bv1 9))))))))))))))))))))))))))))))))) + (let ((?x54 (concat (_ bv0 9) (_ bv0 1)))) + (let (($x68 (and true (= (bvand ipv4.srcAddr (_ bv555813129 32)) (_ bv555810816 32))))) + (let (($x57 (and true ipv4.$valid$))) + (let (($x72 (and (and $x57 (not (and true (= (bvand ipv4.srcAddr (_ bv153159945 32)) (_ bv2162944 32))))) $x68))) + (let ((?x84 (concat (_ bv0 9) (_ bv1 1)))) + (let (($x63 (and true (= (bvand ipv4.srcAddr (_ bv153159945 32)) (_ bv2162944 32))))) + (let (($x69 (and $x57 $x63))) + (let ((?x85 (ite $x69 ?x84 (ite $x72 ?x54 (ite true ?x54 scalars.local_metadata_t.vrf))))) + (let (($x94 (= ?x85 ?x54))) + (let (($x112 (and (and true (= ((_ extract 31 24) ipv4.dstAddr) ((_ extract 31 24) (_ bv167772160 32)))) $x94))) + (let (($x106 (and (and true (= ((_ extract 31 16) ipv4.dstAddr) ((_ extract 31 16) (_ bv336855040 32)))) (= ?x85 ?x84)))) + (let (($x100 (and (and true (= ((_ extract 31 16) ipv4.dstAddr) ((_ extract 31 16) (_ bv168427520 32)))) $x94))) + (let (($x95 (and (and true (= ipv4.dstAddr (_ bv168427520 32))) $x94))) + (let (($x114 (not $x95))) + (let (($x118 (and $x114 (not $x100)))) + (let (($x122 (and $x118 (not $x106)))) + (let ((?x51 (ite false (_ bv1 1) (_ bv0 1)))) + (let ((?x80 (ite true (_ bv1 1) (_ bv0 1)))) + (let ((?x86 (ite $x69 ?x80 (ite $x72 ?x80 (ite true ?x51 scalars.local_metadata_t.vrf_is_valid))))) + (let (($x87 (bvuge ?x86 (_ bv1 1)))) + (let (($x89 (and $x57 $x87))) + (let ((?x129 (ite (and $x89 (and $x122 (not $x112))) (_ bv511 9) standard_metadata.egress_spec))) + (let (($x124 (and (and $x89 $x122) $x112))) + (let (($x120 (and (and $x89 $x118) $x106))) + (let (($x116 (and (and $x89 $x114) $x100))) + (let (($x113 (and $x89 $x95))) + (let ((?x162 (ite $x113 (_ bv1 9) (ite $x116 (_ bv0 9) (ite $x120 (_ bv1 9) (ite $x124 (_ bv1 9) ?x129)))))) + (let (($x56 (= ?x162 (_ bv511 9)))) + (or $x56 (or (or false (= ?x162 (_ bv0 9))) (= ?x162 (_ bv1 9))))))))))))))))))))))))))))))))) (assert - (let ((?x50 (concat (_ bv0 9) (_ bv0 1)))) - (let (($x64 (and true (= (bvand ipv4.srcAddr (_ bv555813129 32)) (_ bv555810816 32))))) - (let (($x53 (and true ipv4.$valid$))) - (let (($x68 (and (and $x53 (not (and true (= (bvand ipv4.srcAddr (_ bv153159945 32)) (_ bv2162944 32))))) $x64))) - (let ((?x80 (concat (_ bv0 9) (_ bv1 1)))) - (let (($x59 (and true (= (bvand ipv4.srcAddr (_ bv153159945 32)) (_ bv2162944 32))))) - (let (($x65 (and $x53 $x59))) - (let ((?x81 (ite $x65 ?x80 (ite $x68 ?x50 (ite true ?x50 scalars.local_metadata_t.vrf))))) - (let (($x90 (= ?x81 ?x50))) - (let (($x108 (and (and true (= ((_ extract 31 24) ipv4.dstAddr) ((_ extract 31 24) (_ bv167772160 32)))) $x90))) - (let (($x102 (and (and true (= ((_ extract 31 16) ipv4.dstAddr) ((_ extract 31 16) (_ bv336855040 32)))) (= ?x81 ?x80)))) - (let (($x96 (and (and true (= ((_ extract 31 16) ipv4.dstAddr) ((_ extract 31 16) (_ bv168427520 32)))) $x90))) - (let (($x91 (and (and true (= ipv4.dstAddr (_ bv168427520 32))) $x90))) - (let (($x110 (not $x91))) - (let (($x114 (and $x110 (not $x96)))) - (let (($x118 (and $x114 (not $x102)))) - (let ((?x47 (ite false (_ bv1 1) (_ bv0 1)))) - (let ((?x76 (ite true (_ bv1 1) (_ bv0 1)))) - (let ((?x82 (ite $x65 ?x76 (ite $x68 ?x76 (ite true ?x47 scalars.local_metadata_t.vrf_is_valid))))) - (let (($x83 (bvuge ?x82 (_ bv1 1)))) - (let (($x85 (and $x53 $x83))) - (let ((?x125 (ite (and $x85 (and $x118 (not $x108))) (_ bv511 9) standard_metadata.egress_spec))) - (let (($x120 (and (and $x85 $x118) $x108))) - (let (($x116 (and (and $x85 $x114) $x102))) - (let (($x112 (and (and $x85 $x110) $x96))) - (let (($x109 (and $x85 $x91))) - (let ((?x158 (ite $x109 (_ bv1 9) (ite $x112 (_ bv0 9) (ite $x116 (_ bv1 9) (ite $x120 (_ bv1 9) ?x125)))))) - (let (($x52 (= ?x158 (_ bv511 9)))) - (and (and (not $x52) true) (= (- 1) (- 1)))))))))))))))))))))))))))))))) + (let ((?x54 (concat (_ bv0 9) (_ bv0 1)))) + (let (($x68 (and true (= (bvand ipv4.srcAddr (_ bv555813129 32)) (_ bv555810816 32))))) + (let (($x57 (and true ipv4.$valid$))) + (let (($x72 (and (and $x57 (not (and true (= (bvand ipv4.srcAddr (_ bv153159945 32)) (_ bv2162944 32))))) $x68))) + (let ((?x84 (concat (_ bv0 9) (_ bv1 1)))) + (let (($x63 (and true (= (bvand ipv4.srcAddr (_ bv153159945 32)) (_ bv2162944 32))))) + (let (($x69 (and $x57 $x63))) + (let ((?x85 (ite $x69 ?x84 (ite $x72 ?x54 (ite true ?x54 scalars.local_metadata_t.vrf))))) + (let (($x94 (= ?x85 ?x54))) + (let (($x112 (and (and true (= ((_ extract 31 24) ipv4.dstAddr) ((_ extract 31 24) (_ bv167772160 32)))) $x94))) + (let (($x106 (and (and true (= ((_ extract 31 16) ipv4.dstAddr) ((_ extract 31 16) (_ bv336855040 32)))) (= ?x85 ?x84)))) + (let (($x100 (and (and true (= ((_ extract 31 16) ipv4.dstAddr) ((_ extract 31 16) (_ bv168427520 32)))) $x94))) + (let (($x95 (and (and true (= ipv4.dstAddr (_ bv168427520 32))) $x94))) + (let (($x114 (not $x95))) + (let (($x118 (and $x114 (not $x100)))) + (let (($x122 (and $x118 (not $x106)))) + (let ((?x51 (ite false (_ bv1 1) (_ bv0 1)))) + (let ((?x80 (ite true (_ bv1 1) (_ bv0 1)))) + (let ((?x86 (ite $x69 ?x80 (ite $x72 ?x80 (ite true ?x51 scalars.local_metadata_t.vrf_is_valid))))) + (let (($x87 (bvuge ?x86 (_ bv1 1)))) + (let (($x89 (and $x57 $x87))) + (let ((?x129 (ite (and $x89 (and $x122 (not $x112))) (_ bv511 9) standard_metadata.egress_spec))) + (let (($x124 (and (and $x89 $x122) $x112))) + (let (($x120 (and (and $x89 $x118) $x106))) + (let (($x116 (and (and $x89 $x114) $x100))) + (let (($x113 (and $x89 $x95))) + (let ((?x162 (ite $x113 (_ bv1 9) (ite $x116 (_ bv0 9) (ite $x120 (_ bv1 9) (ite $x124 (_ bv1 9) ?x129)))))) + (let (($x56 (= ?x162 (_ bv511 9)))) + (and (and (not $x56) true) (= (- 1) (- 1)))))))))))))))))))))))))))))))) (check-sat) diff --git a/p4_symbolic/symbolic/symbolic.h b/p4_symbolic/symbolic/symbolic.h index 9fd320d4..6dc387fb 100644 --- a/p4_symbolic/symbolic/symbolic.h +++ b/p4_symbolic/symbolic/symbolic.h @@ -46,6 +46,17 @@ constexpr int kDropPort = 511; // 2^9 - 1. constexpr int kCpuPort = 510; // 2^9 - 2. constexpr int kPortBitwidth = 9; +// Boolean pseudo header field that is initialized to false, set to true when +// the header is extracted, and set to true/false when `setValid`/`setInvalid` +// is called, respectively. +constexpr absl::string_view kValidPseudoField = "$valid$"; +// Boolean pseudo header field denoting that the header has been extracted by +// the parser. It is initialized to false and set to true when the header is +// extracted. This is necessary to distinguish between headers extracted and +// headers set to valid in the parsers via the `setValid` primitives. For +// example, a `packet_in` header may be set to valid but should never be +// extracted from the input packet. +constexpr absl::string_view kExtractedPseudoField = "$extracted$"; // Boolean pseudo header field that is set to true by p4-symbolic if the packet // gets cloned. Not an actual header field, but convenient for analysis. constexpr absl::string_view kGotClonedPseudoField = "$got_cloned$"; diff --git a/p4_symbolic/symbolic/util.cc b/p4_symbolic/symbolic/util.cc index e17ac707..661d2c2e 100644 --- a/p4_symbolic/symbolic/util.cc +++ b/p4_symbolic/symbolic/util.cc @@ -22,8 +22,8 @@ #include "absl/strings/str_format.h" #include "absl/strings/substitute.h" #include "glog/logging.h" -#include "p4_pdpi/utils/ir.h" #include "p4_symbolic/symbolic/operators.h" +#include "p4_symbolic/symbolic/symbolic.h" #include "p4_symbolic/z3_util.h" namespace p4_symbolic { @@ -50,11 +50,14 @@ absl::StatusOr> FreeSymbolicHeaders( // variable for every field in every header instance. absl::btree_map symbolic_headers; for (const auto &[header_name, header_type] : headers) { - // Special validity field. - std::string valid_field_name = absl::StrFormat("%s.$valid$", header_name); - z3::expr valid_expression = - Z3Context().bool_const(valid_field_name.c_str()); - symbolic_headers.insert({valid_field_name, valid_expression}); + // Pseudo fields used in P4-Symbolic indicating the state of the header. + for (const auto &pseudo_field_name : + {kValidPseudoField, kExtractedPseudoField}) { + std::string field_name = + absl::StrFormat("%s.%s", header_name, pseudo_field_name); + z3::expr free_expr = Z3Context().bool_const(field_name.c_str()); + symbolic_headers.insert({field_name, free_expr}); + } // Regular fields defined in the p4 program or v1model. for (const auto &[field_name, field] : header_type.fields()) { @@ -76,6 +79,7 @@ absl::StatusOr> FreeSymbolicHeaders( std::string(kGotClonedPseudoField), Z3Context().bool_val(false), }); + return symbolic_headers; } diff --git a/p4_symbolic/symbolic/util.h b/p4_symbolic/symbolic/util.h index 3203e537..9f219cb6 100644 --- a/p4_symbolic/symbolic/util.h +++ b/p4_symbolic/symbolic/util.h @@ -17,12 +17,10 @@ #ifndef P4_SYMBOLIC_SYMBOLIC_UTIL_H_ #define P4_SYMBOLIC_SYMBOLIC_UTIL_H_ -#include #include #include "google/protobuf/map.h" #include "gutil/status.h" -#include "p4_pdpi/ir.pb.h" #include "p4_symbolic/ir/ir.pb.h" #include "p4_symbolic/symbolic/symbolic.h" #include "p4_symbolic/symbolic/values.h"