(set-option :print-success false) (set-info :smt-lib-version 2.0) (set-option :produce-models true) (set-option :AUTO_CONFIG false) (set-option :pp.bv_literals false) (set-option :MODEL.V2 true) (set-option :smt.PHASE_SELECTION 0) (set-option :smt.RESTART_STRATEGY 0) (set-option :smt.RESTART_FACTOR |1.5|) (set-option :smt.ARITH.RANDOM_INITIAL_VALUE true) (set-option :smt.CASE_SPLIT 3) (set-option :smt.DELAY_UNITS true) (set-option :NNF.SK_HACK true) (set-option :smt.MBQI false) (set-option :smt.QI.EAGER_THRESHOLD 100) (set-option :TYPE_CHECK true) (set-option :smt.BV.REFLECT true) (set-option :model_compress false) ; done setting options (declare-fun tickleBool (Bool) Bool) (assert (and (tickleBool true) (tickleBool false))) (declare-sort T@FieldName 0) (declare-sort T@String 0) (declare-datatypes ((T@Edge 0)) (((Field (|f#Field| T@FieldName) ) (Index (|i#Index| Int) ) (String (|s#String| T@String) ) ) )) (declare-sort T@Address 0) (declare-datatypes ((T@Value 0)) (((Boolean (|b#Boolean| Bool) ) (Integer (|i#Integer| Int) ) (Address (|a#Address| T@Address) ) (Map (|m#Map| (Array T@Edge T@Value)) ) ) )) (declare-datatypes ((T@ResourceStore 0)) (((ResourceStore (|domain#ResourceStore| (Array T@Address Bool)) (|contents#ResourceStore| (Array T@Address T@Value)) ) ) )) (declare-datatypes ((T@Path 0)) (((Nil ) (Cons (|p#Cons| T@Path) (|e#Cons| T@Edge) ) ) )) (declare-sort T@TypeName 0) (declare-sort T@LocalName 0) (declare-datatypes ((T@Reference 0)) (((GlobalReference (|a#GlobalReference| T@Address) (|t#GlobalReference| T@TypeName) (|p#GlobalReference| T@Path) (|v#GlobalReference| T@Value) ) (LocalReference (|c#LocalReference| Int) (|l#LocalReference| T@LocalName) (|p#LocalReference| T@Path) (|v#LocalReference| T@Value) ) ) )) (declare-fun TestReference_T () T@TypeName) (declare-fun TestReference_T_value () T@FieldName) (declare-fun t0_LocalName () T@LocalName) (declare-fun t1_LocalName () T@LocalName) (declare-fun t2_LocalName () T@LocalName) (declare-fun t3_LocalName () T@LocalName) (declare-fun t4_LocalName () T@LocalName) (declare-fun t5_LocalName () T@LocalName) (declare-fun t6_LocalName () T@LocalName) (declare-fun t7_LocalName () T@LocalName) (declare-fun t8_LocalName () T@LocalName) (declare-fun t9_LocalName () T@LocalName) (declare-fun t10_LocalName () T@LocalName) (declare-fun t11_LocalName () T@LocalName) (declare-fun t12_LocalName () T@LocalName) (declare-fun t13_LocalName () T@LocalName) (declare-fun t14_LocalName () T@LocalName) (declare-fun t15_LocalName () T@LocalName) (declare-fun t16_LocalName () T@LocalName) (assert (distinct t0_LocalName t1_LocalName t2_LocalName t3_LocalName t4_LocalName t5_LocalName t6_LocalName t7_LocalName t8_LocalName t9_LocalName t10_LocalName t11_LocalName t12_LocalName t13_LocalName t14_LocalName t15_LocalName t16_LocalName) ) (declare-fun ControlFlow (Int Int) Int) (declare-fun %lbl%+0 () Bool) (declare-fun %lbl%+1 () Bool) (declare-fun inline$IsPrefix0$1$srcPath@0 () T@Path) (declare-fun %lbl%@2 () Bool) (declare-fun %lbl%+3 () Bool) (declare-fun %lbl%+4 () Bool) (declare-fun inline$IsPrefix0$0$srcPath@0 () T@Path) (declare-fun %lbl%@5 () Bool) (declare-fun %lbl%+6 () Bool) (declare-fun %lbl%+7 () Bool) (declare-fun |inline$UpdateValueMax$2$dstValue'@1| () T@Value) (declare-fun inline$UpdateValueMax$2$dstValue@0 () T@Value) (declare-fun inline$UpdateValueMax$2$e@0 () T@Edge) (declare-fun inline$UpdateValueMax$2$srcValue@0 () T@Value) (declare-fun %lbl%+8 () Bool) (declare-fun inline$UpdateValueMax$2$srcPath@0 () T@Path) (declare-fun inline$UpdateValue0$2$dstPath@0 () T@Path) (declare-fun %lbl%+9 () Bool) (declare-fun inline$UpdateValueMax$2$dstPath@0 () T@Path) (declare-fun %lbl%+10 () Bool) (declare-fun %lbl%+11 () Bool) (declare-fun inline$UpdateValue0$2$dstValue@0 () T@Value) (declare-fun %lbl%+12 () Bool) (declare-fun %lbl%+13 () Bool) (declare-fun |inline$WriteRef$0$to'@3| () T@Reference) (declare-fun rs_TestReference_T () T@ResourceStore) (declare-fun %lbl%+14 () Bool) (declare-fun %lbl%+15 () Bool) (declare-fun %lbl%+16 () Bool) (declare-fun |inline$DeepUpdateReference$0$dst'@2| () T@Reference) (declare-fun arg0 () T@Reference) (declare-fun |inline$UpdateValueMax$1$dstValue'| () T@Value) (declare-fun %lbl%+17 () Bool) (declare-fun |inline$UpdateValueMax$1$dstValue'@1| () T@Value) (declare-fun inline$UpdateValueMax$1$dstValue@0 () T@Value) (declare-fun inline$UpdateValueMax$1$e@0 () T@Edge) (declare-fun inline$UpdateValueMax$1$srcValue@0 () T@Value) (declare-fun %lbl%+18 () Bool) (declare-fun inline$UpdateValueMax$1$srcPath@0 () T@Path) (declare-fun inline$UpdateValue0$1$dstPath@0 () T@Path) (declare-fun %lbl%+19 () Bool) (declare-fun inline$UpdateValueMax$1$dstPath@0 () T@Path) (declare-fun inline$UpdateValue0$1$dstValue@0 () T@Value) (declare-fun %lbl%+20 () Bool) (declare-fun %lbl%+21 () Bool) (declare-fun %lbl%+22 () Bool) (declare-fun %lbl%+23 () Bool) (declare-fun inline$IsPrefixMax$1$isPrefix@1 () Bool) (declare-fun %lbl%+24 () Bool) (declare-fun %lbl%+25 () Bool) (declare-fun inline$IsPrefix0$1$isPrefix@1 () Bool) (declare-fun %lbl%+26 () Bool) (declare-fun %lbl%+27 () Bool) (declare-fun inline$IsPrefixMax$1$dstPath@0 () T@Path) (declare-fun %lbl%+28 () Bool) (declare-fun %lbl%+29 () Bool) (declare-fun inline$IsPrefixMax$1$srcPath@0 () T@Path) (declare-fun %lbl%+30 () Bool) (declare-fun %lbl%+31 () Bool) (declare-fun %lbl%+32 () Bool) (declare-fun %lbl%+33 () Bool) (declare-fun %lbl%+34 () Bool) (declare-fun %lbl%+35 () Bool) (declare-fun %lbl%+36 () Bool) (declare-fun %lbl%+37 () Bool) (declare-fun %lbl%+38 () Bool) (declare-fun |inline$DeepUpdateReference$0$dst'@1| () T@Reference) (declare-fun |inline$UpdateValueMax$0$dstValue'| () T@Value) (declare-fun %lbl%+39 () Bool) (declare-fun |inline$UpdateValueMax$0$dstValue'@1| () T@Value) (declare-fun inline$UpdateValueMax$0$dstValue@0 () T@Value) (declare-fun inline$UpdateValueMax$0$e@0 () T@Edge) (declare-fun inline$UpdateValueMax$0$srcValue@0 () T@Value) (declare-fun %lbl%+40 () Bool) (declare-fun inline$UpdateValueMax$0$srcPath@0 () T@Path) (declare-fun inline$UpdateValue0$0$dstPath@0 () T@Path) (declare-fun %lbl%+41 () Bool) (declare-fun inline$UpdateValueMax$0$dstPath@0 () T@Path) (declare-fun inline$UpdateValue0$0$dstValue@0 () T@Value) (declare-fun %lbl%+42 () Bool) (declare-fun %lbl%+43 () Bool) (declare-fun %lbl%+44 () Bool) (declare-fun %lbl%+45 () Bool) (declare-fun inline$IsPrefixMax$0$isPrefix@1 () Bool) (declare-fun %lbl%+46 () Bool) (declare-fun %lbl%+47 () Bool) (declare-fun inline$IsPrefix0$0$isPrefix@1 () Bool) (declare-fun %lbl%+48 () Bool) (declare-fun %lbl%+49 () Bool) (declare-fun inline$IsPrefixMax$0$dstPath@0 () T@Path) (declare-fun %lbl%+50 () Bool) (declare-fun %lbl%+51 () Bool) (declare-fun inline$IsPrefixMax$0$srcPath@0 () T@Path) (declare-fun %lbl%+52 () Bool) (declare-fun %lbl%+53 () Bool) (declare-fun %lbl%+54 () Bool) (declare-fun %lbl%+55 () Bool) (declare-fun %lbl%+56 () Bool) (declare-fun %lbl%+57 () Bool) (declare-fun %lbl%+58 () Bool) (declare-fun %lbl%+59 () Bool) (declare-fun %lbl%+60 () Bool) (declare-fun |inline$WriteRef$0$to'@2| () T@Reference) (declare-fun inline$LdConst$0$ret@1 () T@Value) (declare-fun %lbl%+61 () Bool) (declare-fun |inline$WriteRef$0$to'@1| () T@Reference) (declare-fun %lbl%+62 () Bool) (declare-fun %lbl%+63 () Bool) (declare-fun |c'| () Int) (declare-fun c () Int) (declare-fun %lbl%+64 () Bool) (push 1) (set-info :boogie-vc-id TestReference_mut_b) (assert (not (=> (= (ControlFlow 0 0) 16187) (let ((inline$UpdateValue0$1$anon3_Else_correct (=> (and %lbl%+0 true) true))) (let ((inline$IsPrefix0$1$anon5_Else_correct (=> (and %lbl%+1 true) (=> (not (= inline$IsPrefix0$1$srcPath@0 Nil)) (or %lbl%@2 (=> (= (ControlFlow 0 4205) (- 0 16915)) false)))))) (let ((inline$UpdateValue0$0$anon3_Else_correct (=> (and %lbl%+3 true) true))) (let ((inline$IsPrefix0$0$anon5_Else_correct (=> (and %lbl%+4 true) (=> (not (= inline$IsPrefix0$0$srcPath@0 Nil)) (or %lbl%@5 (=> (= (ControlFlow 0 3647) (- 0 16619)) false)))))) (let ((inline$DeepUpdateGlobal$0$anon2_Then$1_correct (=> (and %lbl%+6 true) true))) (let ((inline$UpdateValueMax$2$anon3_Else$1_correct (=> (and %lbl%+7 true) (=> (and (= |inline$UpdateValueMax$2$dstValue'@1| (Map (store (|m#Map| inline$UpdateValueMax$2$dstValue@0) inline$UpdateValueMax$2$e@0 inline$UpdateValueMax$2$srcValue@0))) (= (ControlFlow 0 4883) 4919)) inline$DeepUpdateGlobal$0$anon2_Then$1_correct)))) (let ((inline$UpdateValue0$2$anon3_Then_correct (=> (and %lbl%+8 true) (=> (and (= inline$UpdateValueMax$2$srcPath@0 inline$UpdateValue0$2$dstPath@0) (= (ControlFlow 0 4863) 4883)) inline$UpdateValueMax$2$anon3_Else$1_correct)))) (let ((inline$UpdateValueMax$2$anon3_Then_correct (=> (and %lbl%+9 true) (=> (and (= inline$UpdateValueMax$2$srcPath@0 inline$UpdateValueMax$2$dstPath@0) (= (ControlFlow 0 4893) 4919)) inline$DeepUpdateGlobal$0$anon2_Then$1_correct)))) (let ((inline$UpdateValue0$2$anon3_Else_correct (=> (and %lbl%+10 true) true))) (let ((inline$UpdateValue0$2$Entry_correct (=> (and %lbl%+11 true) (=> (and (= inline$UpdateValue0$2$dstPath@0 (Cons inline$UpdateValueMax$2$dstPath@0 inline$UpdateValueMax$2$e@0)) (= inline$UpdateValue0$2$dstValue@0 (select (|m#Map| inline$UpdateValueMax$2$dstValue@0) inline$UpdateValueMax$2$e@0))) (and (=> (= (ControlFlow 0 4841) 4863) inline$UpdateValue0$2$anon3_Then_correct) (=> (= (ControlFlow 0 4841) 4853) inline$UpdateValue0$2$anon3_Else_correct)))))) (let ((inline$UpdateValueMax$2$anon3_Else_correct (=> (and %lbl%+12 true) (=> (and (not (= inline$UpdateValueMax$2$srcPath@0 inline$UpdateValueMax$2$dstPath@0)) (= (ControlFlow 0 4869) 4841)) inline$UpdateValue0$2$Entry_correct)))) (let ((inline$UpdateValueMax$2$Entry_correct (=> (and %lbl%+13 true) (=> (and (and (= inline$UpdateValueMax$2$srcPath@0 (|p#GlobalReference| |inline$WriteRef$0$to'@3|)) (= inline$UpdateValueMax$2$srcValue@0 (|v#GlobalReference| |inline$WriteRef$0$to'@3|))) (and (= inline$UpdateValueMax$2$dstPath@0 Nil) (= inline$UpdateValueMax$2$dstValue@0 (select (|contents#ResourceStore| rs_TestReference_T) (|a#GlobalReference| |inline$WriteRef$0$to'@3|))))) (and (=> (= (ControlFlow 0 4762) 4893) inline$UpdateValueMax$2$anon3_Then_correct) (=> (= (ControlFlow 0 4762) 4869) inline$UpdateValueMax$2$anon3_Else_correct)))))) (let ((inline$DeepUpdateGlobal$0$anon2_Then_correct (=> (and %lbl%+14 true) (=> (and (and (is-GlobalReference |inline$WriteRef$0$to'@3|) (= TestReference_T (|t#GlobalReference| |inline$WriteRef$0$to'@3|))) (= (ControlFlow 0 4899) 4762)) inline$UpdateValueMax$2$Entry_correct)))) (let ((inline$DeepUpdateGlobal$0$anon2_Else_correct (=> (and %lbl%+15 true) true))) (let ((inline$DeepUpdateReference$0$anon9_Then$1_correct (=> (and %lbl%+16 true) (=> (= |inline$DeepUpdateReference$0$dst'@2| (LocalReference (|c#LocalReference| arg0) (|l#LocalReference| arg0) (|p#LocalReference| arg0) |inline$UpdateValueMax$1$dstValue'|)) (and (=> (= (ControlFlow 0 4519) 4899) inline$DeepUpdateGlobal$0$anon2_Then_correct) (=> (= (ControlFlow 0 4519) 4649) inline$DeepUpdateGlobal$0$anon2_Else_correct)))))) (let ((inline$UpdateValueMax$1$anon3_Else$1_correct (=> (and %lbl%+17 true) (=> (and (= |inline$UpdateValueMax$1$dstValue'@1| (Map (store (|m#Map| inline$UpdateValueMax$1$dstValue@0) inline$UpdateValueMax$1$e@0 inline$UpdateValueMax$1$srcValue@0))) (= (ControlFlow 0 4485) 4519)) inline$DeepUpdateReference$0$anon9_Then$1_correct)))) (let ((inline$UpdateValue0$1$anon3_Then_correct (=> (and %lbl%+18 true) (=> (and (= inline$UpdateValueMax$1$srcPath@0 inline$UpdateValue0$1$dstPath@0) (= (ControlFlow 0 4465) 4485)) inline$UpdateValueMax$1$anon3_Else$1_correct)))) (let ((inline$UpdateValue0$1$Entry_correct (=> (and %lbl%+19 true) (=> (and (= inline$UpdateValue0$1$dstPath@0 (Cons inline$UpdateValueMax$1$dstPath@0 inline$UpdateValueMax$1$e@0)) (= inline$UpdateValue0$1$dstValue@0 (select (|m#Map| inline$UpdateValueMax$1$dstValue@0) inline$UpdateValueMax$1$e@0))) (and (=> (= (ControlFlow 0 4443) 4465) inline$UpdateValue0$1$anon3_Then_correct) (=> (= (ControlFlow 0 4443) 4455) inline$UpdateValue0$1$anon3_Else_correct)))))) (let ((inline$UpdateValueMax$1$anon3_Else_correct (=> (and %lbl%+20 true) (=> (and (not (= inline$UpdateValueMax$1$srcPath@0 inline$UpdateValueMax$1$dstPath@0)) (= (ControlFlow 0 4471) 4443)) inline$UpdateValue0$1$Entry_correct)))) (let ((inline$UpdateValueMax$1$anon3_Then_correct (=> (and %lbl%+21 true) (=> (and (= inline$UpdateValueMax$1$srcPath@0 inline$UpdateValueMax$1$dstPath@0) (= (ControlFlow 0 4495) 4519)) inline$DeepUpdateReference$0$anon9_Then$1_correct)))) (let ((inline$UpdateValueMax$1$Entry_correct (=> (and %lbl%+22 true) (=> (and (and (= inline$UpdateValueMax$1$srcPath@0 (|p#LocalReference| |inline$WriteRef$0$to'@3|)) (= inline$UpdateValueMax$1$srcValue@0 (|v#LocalReference| |inline$WriteRef$0$to'@3|))) (and (= inline$UpdateValueMax$1$dstPath@0 (|p#LocalReference| arg0)) (= inline$UpdateValueMax$1$dstValue@0 (|v#LocalReference| arg0)))) (and (=> (= (ControlFlow 0 4364) 4495) inline$UpdateValueMax$1$anon3_Then_correct) (=> (= (ControlFlow 0 4364) 4471) inline$UpdateValueMax$1$anon3_Else_correct)))))) (let ((inline$DeepUpdateReference$0$anon9_Then_correct (=> (and %lbl%+23 true) (=> (and inline$IsPrefixMax$1$isPrefix@1 (= (ControlFlow 0 4501) 4364)) inline$UpdateValueMax$1$Entry_correct)))) (let ((inline$DeepUpdateReference$0$anon9_Else_correct (=> (and %lbl%+24 true) (=> (not inline$IsPrefixMax$1$isPrefix@1) (and (=> (= (ControlFlow 0 4267) 4899) inline$DeepUpdateGlobal$0$anon2_Then_correct) (=> (= (ControlFlow 0 4267) 4649) inline$DeepUpdateGlobal$0$anon2_Else_correct)))))) (let ((inline$IsPrefixMax$1$anon5_Else$1_correct (=> (and %lbl%+25 true) (=> (and (=> inline$IsPrefixMax$1$isPrefix@1 inline$IsPrefix0$1$isPrefix@1) (=> inline$IsPrefix0$1$isPrefix@1 inline$IsPrefixMax$1$isPrefix@1)) (and (=> (= (ControlFlow 0 4233) 4501) inline$DeepUpdateReference$0$anon9_Then_correct) (=> (= (ControlFlow 0 4233) 4267) inline$DeepUpdateReference$0$anon9_Else_correct)))))) (let ((inline$IsPrefix0$1$anon5_Then_correct (=> (and %lbl%+26 true) (=> (= inline$IsPrefix0$1$srcPath@0 Nil) (=> (and (and (=> inline$IsPrefix0$1$isPrefix@1 false) (=> false inline$IsPrefix0$1$isPrefix@1)) (= (ControlFlow 0 4215) 4233)) inline$IsPrefixMax$1$anon5_Else$1_correct))))) (let ((inline$IsPrefix0$1$anon4_Else_correct (=> (and %lbl%+27 true) (=> (not (= inline$IsPrefix0$1$srcPath@0 inline$IsPrefixMax$1$dstPath@0)) (and (=> (= (ControlFlow 0 4195) 4215) inline$IsPrefix0$1$anon5_Then_correct) (=> (= (ControlFlow 0 4195) 4205) inline$IsPrefix0$1$anon5_Else_correct)))))) (let ((inline$IsPrefix0$1$anon4_Then_correct (=> (and %lbl%+28 true) (=> (= inline$IsPrefix0$1$srcPath@0 inline$IsPrefixMax$1$dstPath@0) (=> (and (and (=> inline$IsPrefix0$1$isPrefix@1 true) (=> true inline$IsPrefix0$1$isPrefix@1)) (= (ControlFlow 0 4225) 4233)) inline$IsPrefixMax$1$anon5_Else$1_correct))))) (let ((inline$IsPrefix0$1$Entry_correct (=> (and %lbl%+29 true) (=> (= inline$IsPrefix0$1$srcPath@0 (|p#Cons| inline$IsPrefixMax$1$srcPath@0)) (and (=> (= (ControlFlow 0 4185) 4225) inline$IsPrefix0$1$anon4_Then_correct) (=> (= (ControlFlow 0 4185) 4195) inline$IsPrefix0$1$anon4_Else_correct)))))) (let ((inline$IsPrefixMax$1$anon5_Else_correct (=> (and %lbl%+30 true) (=> (and (not (= inline$IsPrefixMax$1$srcPath@0 Nil)) (= (ControlFlow 0 4231) 4185)) inline$IsPrefix0$1$Entry_correct)))) (let ((inline$IsPrefixMax$1$anon5_Then_correct (=> (and %lbl%+31 true) (=> (= inline$IsPrefixMax$1$srcPath@0 Nil) (=> (and (=> inline$IsPrefixMax$1$isPrefix@1 false) (=> false inline$IsPrefixMax$1$isPrefix@1)) (and (=> (= (ControlFlow 0 4243) 4501) inline$DeepUpdateReference$0$anon9_Then_correct) (=> (= (ControlFlow 0 4243) 4267) inline$DeepUpdateReference$0$anon9_Else_correct))))))) (let ((inline$IsPrefixMax$1$anon4_Else_correct (=> (and %lbl%+32 true) (=> (not (= inline$IsPrefixMax$1$srcPath@0 inline$IsPrefixMax$1$dstPath@0)) (and (=> (= (ControlFlow 0 4110) 4243) inline$IsPrefixMax$1$anon5_Then_correct) (=> (= (ControlFlow 0 4110) 4231) inline$IsPrefixMax$1$anon5_Else_correct)))))) (let ((inline$IsPrefixMax$1$anon4_Then_correct (=> (and %lbl%+33 true) (=> (= inline$IsPrefixMax$1$srcPath@0 inline$IsPrefixMax$1$dstPath@0) (=> (and (=> inline$IsPrefixMax$1$isPrefix@1 true) (=> true inline$IsPrefixMax$1$isPrefix@1)) (and (=> (= (ControlFlow 0 4253) 4501) inline$DeepUpdateReference$0$anon9_Then_correct) (=> (= (ControlFlow 0 4253) 4267) inline$DeepUpdateReference$0$anon9_Else_correct))))))) (let ((inline$IsPrefixMax$1$Entry_correct (=> (and %lbl%+34 true) (=> (and (= inline$IsPrefixMax$1$dstPath@0 (|p#LocalReference| arg0)) (= inline$IsPrefixMax$1$srcPath@0 (|p#LocalReference| |inline$WriteRef$0$to'@3|))) (and (=> (= (ControlFlow 0 4100) 4253) inline$IsPrefixMax$1$anon4_Then_correct) (=> (= (ControlFlow 0 4100) 4110) inline$IsPrefixMax$1$anon4_Else_correct)))))) (let ((inline$DeepUpdateReference$0$anon8_Then_correct (=> (and %lbl%+35 true) (=> (and (and (and (is-LocalReference arg0) (= (|c#LocalReference| |inline$WriteRef$0$to'@3|) (|c#LocalReference| arg0))) (= (|l#LocalReference| |inline$WriteRef$0$to'@3|) (|l#LocalReference| arg0))) (= (ControlFlow 0 4259) 4100)) inline$IsPrefixMax$1$Entry_correct)))) (let ((inline$DeepUpdateReference$0$anon8_Else_correct (=> (and %lbl%+36 true) (=> (not (and (and (is-LocalReference arg0) (= (|c#LocalReference| |inline$WriteRef$0$to'@3|) (|c#LocalReference| arg0))) (= (|l#LocalReference| |inline$WriteRef$0$to'@3|) (|l#LocalReference| arg0)))) (and (=> (= (ControlFlow 0 3999) 4899) inline$DeepUpdateGlobal$0$anon2_Then_correct) (=> (= (ControlFlow 0 3999) 4649) inline$DeepUpdateGlobal$0$anon2_Else_correct)))))) (let ((inline$DeepUpdateReference$0$anon7_Then_correct (=> (and %lbl%+37 true) (=> (is-LocalReference |inline$WriteRef$0$to'@3|) (and (=> (= (ControlFlow 0 3967) 4259) inline$DeepUpdateReference$0$anon8_Then_correct) (=> (= (ControlFlow 0 3967) 3999) inline$DeepUpdateReference$0$anon8_Else_correct)))))) (let ((inline$DeepUpdateReference$0$anon11_Then$1_correct (=> (and %lbl%+38 true) (=> (= |inline$DeepUpdateReference$0$dst'@1| (GlobalReference (|a#GlobalReference| arg0) (|t#GlobalReference| arg0) (|p#GlobalReference| arg0) |inline$UpdateValueMax$0$dstValue'|)) (and (=> (= (ControlFlow 0 3961) 4899) inline$DeepUpdateGlobal$0$anon2_Then_correct) (=> (= (ControlFlow 0 3961) 4649) inline$DeepUpdateGlobal$0$anon2_Else_correct)))))) (let ((inline$UpdateValueMax$0$anon3_Else$1_correct (=> (and %lbl%+39 true) (=> (and (= |inline$UpdateValueMax$0$dstValue'@1| (Map (store (|m#Map| inline$UpdateValueMax$0$dstValue@0) inline$UpdateValueMax$0$e@0 inline$UpdateValueMax$0$srcValue@0))) (= (ControlFlow 0 3927) 3961)) inline$DeepUpdateReference$0$anon11_Then$1_correct)))) (let ((inline$UpdateValue0$0$anon3_Then_correct (=> (and %lbl%+40 true) (=> (and (= inline$UpdateValueMax$0$srcPath@0 inline$UpdateValue0$0$dstPath@0) (= (ControlFlow 0 3907) 3927)) inline$UpdateValueMax$0$anon3_Else$1_correct)))) (let ((inline$UpdateValue0$0$Entry_correct (=> (and %lbl%+41 true) (=> (and (= inline$UpdateValue0$0$dstPath@0 (Cons inline$UpdateValueMax$0$dstPath@0 inline$UpdateValueMax$0$e@0)) (= inline$UpdateValue0$0$dstValue@0 (select (|m#Map| inline$UpdateValueMax$0$dstValue@0) inline$UpdateValueMax$0$e@0))) (and (=> (= (ControlFlow 0 3885) 3907) inline$UpdateValue0$0$anon3_Then_correct) (=> (= (ControlFlow 0 3885) 3897) inline$UpdateValue0$0$anon3_Else_correct)))))) (let ((inline$UpdateValueMax$0$anon3_Else_correct (=> (and %lbl%+42 true) (=> (and (not (= inline$UpdateValueMax$0$srcPath@0 inline$UpdateValueMax$0$dstPath@0)) (= (ControlFlow 0 3913) 3885)) inline$UpdateValue0$0$Entry_correct)))) (let ((inline$UpdateValueMax$0$anon3_Then_correct (=> (and %lbl%+43 true) (=> (and (= inline$UpdateValueMax$0$srcPath@0 inline$UpdateValueMax$0$dstPath@0) (= (ControlFlow 0 3937) 3961)) inline$DeepUpdateReference$0$anon11_Then$1_correct)))) (let ((inline$UpdateValueMax$0$Entry_correct (=> (and %lbl%+44 true) (=> (and (and (= inline$UpdateValueMax$0$srcPath@0 (|p#GlobalReference| |inline$WriteRef$0$to'@3|)) (= inline$UpdateValueMax$0$srcValue@0 (|v#GlobalReference| |inline$WriteRef$0$to'@3|))) (and (= inline$UpdateValueMax$0$dstPath@0 (|p#GlobalReference| arg0)) (= inline$UpdateValueMax$0$dstValue@0 (|v#GlobalReference| arg0)))) (and (=> (= (ControlFlow 0 3806) 3937) inline$UpdateValueMax$0$anon3_Then_correct) (=> (= (ControlFlow 0 3806) 3913) inline$UpdateValueMax$0$anon3_Else_correct)))))) (let ((inline$DeepUpdateReference$0$anon11_Then_correct (=> (and %lbl%+45 true) (=> (and inline$IsPrefixMax$0$isPrefix@1 (= (ControlFlow 0 3943) 3806)) inline$UpdateValueMax$0$Entry_correct)))) (let ((inline$DeepUpdateReference$0$anon11_Else_correct (=> (and %lbl%+46 true) (=> (not inline$IsPrefixMax$0$isPrefix@1) (and (=> (= (ControlFlow 0 3709) 4899) inline$DeepUpdateGlobal$0$anon2_Then_correct) (=> (= (ControlFlow 0 3709) 4649) inline$DeepUpdateGlobal$0$anon2_Else_correct)))))) (let ((inline$IsPrefixMax$0$anon5_Else$1_correct (=> (and %lbl%+47 true) (=> (and (=> inline$IsPrefixMax$0$isPrefix@1 inline$IsPrefix0$0$isPrefix@1) (=> inline$IsPrefix0$0$isPrefix@1 inline$IsPrefixMax$0$isPrefix@1)) (and (=> (= (ControlFlow 0 3675) 3943) inline$DeepUpdateReference$0$anon11_Then_correct) (=> (= (ControlFlow 0 3675) 3709) inline$DeepUpdateReference$0$anon11_Else_correct)))))) (let ((inline$IsPrefix0$0$anon5_Then_correct (=> (and %lbl%+48 true) (=> (= inline$IsPrefix0$0$srcPath@0 Nil) (=> (and (and (=> inline$IsPrefix0$0$isPrefix@1 false) (=> false inline$IsPrefix0$0$isPrefix@1)) (= (ControlFlow 0 3657) 3675)) inline$IsPrefixMax$0$anon5_Else$1_correct))))) (let ((inline$IsPrefix0$0$anon4_Else_correct (=> (and %lbl%+49 true) (=> (not (= inline$IsPrefix0$0$srcPath@0 inline$IsPrefixMax$0$dstPath@0)) (and (=> (= (ControlFlow 0 3637) 3657) inline$IsPrefix0$0$anon5_Then_correct) (=> (= (ControlFlow 0 3637) 3647) inline$IsPrefix0$0$anon5_Else_correct)))))) (let ((inline$IsPrefix0$0$anon4_Then_correct (=> (and %lbl%+50 true) (=> (= inline$IsPrefix0$0$srcPath@0 inline$IsPrefixMax$0$dstPath@0) (=> (and (and (=> inline$IsPrefix0$0$isPrefix@1 true) (=> true inline$IsPrefix0$0$isPrefix@1)) (= (ControlFlow 0 3667) 3675)) inline$IsPrefixMax$0$anon5_Else$1_correct))))) (let ((inline$IsPrefix0$0$Entry_correct (=> (and %lbl%+51 true) (=> (= inline$IsPrefix0$0$srcPath@0 (|p#Cons| inline$IsPrefixMax$0$srcPath@0)) (and (=> (= (ControlFlow 0 3627) 3667) inline$IsPrefix0$0$anon4_Then_correct) (=> (= (ControlFlow 0 3627) 3637) inline$IsPrefix0$0$anon4_Else_correct)))))) (let ((inline$IsPrefixMax$0$anon5_Else_correct (=> (and %lbl%+52 true) (=> (and (not (= inline$IsPrefixMax$0$srcPath@0 Nil)) (= (ControlFlow 0 3673) 3627)) inline$IsPrefix0$0$Entry_correct)))) (let ((inline$IsPrefixMax$0$anon5_Then_correct (=> (and %lbl%+53 true) (=> (= inline$IsPrefixMax$0$srcPath@0 Nil) (=> (and (=> inline$IsPrefixMax$0$isPrefix@1 false) (=> false inline$IsPrefixMax$0$isPrefix@1)) (and (=> (= (ControlFlow 0 3685) 3943) inline$DeepUpdateReference$0$anon11_Then_correct) (=> (= (ControlFlow 0 3685) 3709) inline$DeepUpdateReference$0$anon11_Else_correct))))))) (let ((inline$IsPrefixMax$0$anon4_Else_correct (=> (and %lbl%+54 true) (=> (not (= inline$IsPrefixMax$0$srcPath@0 inline$IsPrefixMax$0$dstPath@0)) (and (=> (= (ControlFlow 0 3552) 3685) inline$IsPrefixMax$0$anon5_Then_correct) (=> (= (ControlFlow 0 3552) 3673) inline$IsPrefixMax$0$anon5_Else_correct)))))) (let ((inline$IsPrefixMax$0$anon4_Then_correct (=> (and %lbl%+55 true) (=> (= inline$IsPrefixMax$0$srcPath@0 inline$IsPrefixMax$0$dstPath@0) (=> (and (=> inline$IsPrefixMax$0$isPrefix@1 true) (=> true inline$IsPrefixMax$0$isPrefix@1)) (and (=> (= (ControlFlow 0 3695) 3943) inline$DeepUpdateReference$0$anon11_Then_correct) (=> (= (ControlFlow 0 3695) 3709) inline$DeepUpdateReference$0$anon11_Else_correct))))))) (let ((inline$IsPrefixMax$0$Entry_correct (=> (and %lbl%+56 true) (=> (and (= inline$IsPrefixMax$0$dstPath@0 (|p#GlobalReference| arg0)) (= inline$IsPrefixMax$0$srcPath@0 (|p#GlobalReference| |inline$WriteRef$0$to'@3|))) (and (=> (= (ControlFlow 0 3542) 3695) inline$IsPrefixMax$0$anon4_Then_correct) (=> (= (ControlFlow 0 3542) 3552) inline$IsPrefixMax$0$anon4_Else_correct)))))) (let ((inline$DeepUpdateReference$0$anon10_Then_correct (=> (and %lbl%+57 true) (=> (and (and (and (is-GlobalReference arg0) (= (|a#GlobalReference| |inline$WriteRef$0$to'@3|) (|a#GlobalReference| arg0))) (= (|t#GlobalReference| |inline$WriteRef$0$to'@3|) (|t#GlobalReference| arg0))) (= (ControlFlow 0 3701) 3542)) inline$IsPrefixMax$0$Entry_correct)))) (let ((inline$DeepUpdateReference$0$anon10_Else_correct (=> (and %lbl%+58 true) (=> (not (and (and (is-GlobalReference arg0) (= (|a#GlobalReference| |inline$WriteRef$0$to'@3|) (|a#GlobalReference| arg0))) (= (|t#GlobalReference| |inline$WriteRef$0$to'@3|) (|t#GlobalReference| arg0)))) (and (=> (= (ControlFlow 0 3441) 4899) inline$DeepUpdateGlobal$0$anon2_Then_correct) (=> (= (ControlFlow 0 3441) 4649) inline$DeepUpdateGlobal$0$anon2_Else_correct)))))) (let ((inline$DeepUpdateReference$0$anon7_Else_correct (=> (and %lbl%+59 true) (=> (not (is-LocalReference |inline$WriteRef$0$to'@3|)) (and (=> (= (ControlFlow 0 3409) 3701) inline$DeepUpdateReference$0$anon10_Then_correct) (=> (= (ControlFlow 0 3409) 3441) inline$DeepUpdateReference$0$anon10_Else_correct)))))) (let ((inline$WriteRef$0$anon3_Else_correct (=> (and %lbl%+60 true) (=> (not (is-GlobalReference arg0)) (=> (and (= |inline$WriteRef$0$to'@2| (LocalReference (|c#LocalReference| arg0) (|l#LocalReference| arg0) (|p#LocalReference| arg0) inline$LdConst$0$ret@1)) (= |inline$WriteRef$0$to'@3| |inline$WriteRef$0$to'@2|)) (and (=> (= (ControlFlow 0 3125) 3967) inline$DeepUpdateReference$0$anon7_Then_correct) (=> (= (ControlFlow 0 3125) 3409) inline$DeepUpdateReference$0$anon7_Else_correct))))))) (let ((inline$WriteRef$0$anon3_Then_correct (=> (and %lbl%+61 true) (=> (is-GlobalReference arg0) (=> (and (= |inline$WriteRef$0$to'@1| (GlobalReference (|a#GlobalReference| arg0) (|t#GlobalReference| arg0) (|p#GlobalReference| arg0) inline$LdConst$0$ret@1)) (= |inline$WriteRef$0$to'@3| |inline$WriteRef$0$to'@1|)) (and (=> (= (ControlFlow 0 3147) 3967) inline$DeepUpdateReference$0$anon7_Then_correct) (=> (= (ControlFlow 0 3147) 3409) inline$DeepUpdateReference$0$anon7_Else_correct))))))) (let ((inline$LdConst$0$anon0_correct (=> (and %lbl%+62 true) (=> (= inline$LdConst$0$ret@1 (Integer 0)) (and (=> (= (ControlFlow 0 2992) 3147) inline$WriteRef$0$anon3_Then_correct) (=> (= (ControlFlow 0 2992) 3125) inline$WriteRef$0$anon3_Else_correct)))))) (let ((anon0_correct (=> (and %lbl%+63 true) (=> (and (> |c'| c) (= (ControlFlow 0 2998) 2992)) inline$LdConst$0$anon0_correct)))) (let ((PreconditionGeneratedEntry_correct (=> (and %lbl%+64 true) (=> (= (ControlFlow 0 16187) 2998) anon0_correct)))) PreconditionGeneratedEntry_correct)))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) )) (check-sat) (pop 1) ; Valid (reset) (set-option :print-success false) (set-info :smt-lib-version 2.0) (set-option :produce-models true) (set-option :AUTO_CONFIG false) (set-option :pp.bv_literals false) (set-option :MODEL.V2 true) (set-option :smt.PHASE_SELECTION 0) (set-option :smt.RESTART_STRATEGY 0) (set-option :smt.RESTART_FACTOR |1.5|) (set-option :smt.ARITH.RANDOM_INITIAL_VALUE true) (set-option :smt.CASE_SPLIT 3) (set-option :smt.DELAY_UNITS true) (set-option :NNF.SK_HACK true) (set-option :smt.MBQI false) (set-option :smt.QI.EAGER_THRESHOLD 100) (set-option :TYPE_CHECK true) (set-option :smt.BV.REFLECT true) (set-option :model_compress false) ; done setting options (declare-fun tickleBool (Bool) Bool) (assert (and (tickleBool true) (tickleBool false))) (declare-sort T@FieldName 0) (declare-sort T@String 0) (declare-datatypes ((T@Edge 0)) (((Field (|f#Field| T@FieldName) ) (Index (|i#Index| Int) ) (String (|s#String| T@String) ) ) )) (declare-sort T@Address 0) (declare-datatypes ((T@Value 0)) (((Boolean (|b#Boolean| Bool) ) (Integer (|i#Integer| Int) ) (Address (|a#Address| T@Address) ) (Map (|m#Map| (Array T@Edge T@Value)) ) ) )) (declare-datatypes ((T@ResourceStore 0)) (((ResourceStore (|domain#ResourceStore| (Array T@Address Bool)) (|contents#ResourceStore| (Array T@Address T@Value)) ) ) )) (declare-datatypes ((T@Path 0)) (((Nil ) (Cons (|p#Cons| T@Path) (|e#Cons| T@Edge) ) ) )) (declare-sort T@TypeName 0) (declare-sort T@LocalName 0) (declare-datatypes ((T@Reference 0)) (((GlobalReference (|a#GlobalReference| T@Address) (|t#GlobalReference| T@TypeName) (|p#GlobalReference| T@Path) (|v#GlobalReference| T@Value) ) (LocalReference (|c#LocalReference| Int) (|l#LocalReference| T@LocalName) (|p#LocalReference| T@Path) (|v#LocalReference| T@Value) ) ) )) (declare-fun TestReference_T () T@TypeName) (declare-fun TestReference_T_value () T@FieldName) (declare-fun t0_LocalName () T@LocalName) (declare-fun t1_LocalName () T@LocalName) (declare-fun t2_LocalName () T@LocalName) (declare-fun t3_LocalName () T@LocalName) (declare-fun t4_LocalName () T@LocalName) (declare-fun t5_LocalName () T@LocalName) (declare-fun t6_LocalName () T@LocalName) (declare-fun t7_LocalName () T@LocalName) (declare-fun t8_LocalName () T@LocalName) (declare-fun t9_LocalName () T@LocalName) (declare-fun t10_LocalName () T@LocalName) (declare-fun t11_LocalName () T@LocalName) (declare-fun t12_LocalName () T@LocalName) (declare-fun t13_LocalName () T@LocalName) (declare-fun t14_LocalName () T@LocalName) (declare-fun t15_LocalName () T@LocalName) (declare-fun t16_LocalName () T@LocalName) (assert (distinct t0_LocalName t1_LocalName t2_LocalName t3_LocalName t4_LocalName t5_LocalName t6_LocalName t7_LocalName t8_LocalName t9_LocalName t10_LocalName t11_LocalName t12_LocalName t13_LocalName t14_LocalName t15_LocalName t16_LocalName) ) ; Valid (declare-fun ControlFlow (Int Int) Int) (declare-fun %lbl%+0 () Bool) (declare-fun %lbl%+1 () Bool) (declare-fun inline$IsPrefix0$1$srcPath@0 () T@Path) (declare-fun %lbl%@2 () Bool) (declare-fun %lbl%+3 () Bool) (declare-fun %lbl%+4 () Bool) (declare-fun inline$IsPrefix0$0$srcPath@0 () T@Path) (declare-fun %lbl%@5 () Bool) (declare-fun %lbl%+6 () Bool) (declare-fun %lbl%+7 () Bool) (declare-fun inline$IsPrefix0$3$srcPath@0 () T@Path) (declare-fun %lbl%@8 () Bool) (declare-fun %lbl%+9 () Bool) (declare-fun %lbl%+10 () Bool) (declare-fun inline$IsPrefix0$2$srcPath@0 () T@Path) (declare-fun %lbl%@11 () Bool) (declare-fun %lbl%+12 () Bool) (declare-fun %lbl%+13 () Bool) (declare-fun inline$IsPrefix0$5$srcPath@0 () T@Path) (declare-fun %lbl%@14 () Bool) (declare-fun %lbl%+15 () Bool) (declare-fun %lbl%+16 () Bool) (declare-fun inline$IsPrefix0$4$srcPath@0 () T@Path) (declare-fun %lbl%@17 () Bool) (declare-fun %lbl%+18 () Bool) (declare-fun %lbl%+19 () Bool) (declare-fun %lbl%+20 () Bool) (declare-fun %lbl%+21 () Bool) (declare-fun %lbl%+22 () Bool) (declare-fun %lbl%+23 () Bool) (declare-fun %lbl%+24 () Bool) (declare-fun %lbl%+25 () Bool) (declare-fun %lbl%+26 () Bool) (declare-fun %lbl%@27 () Bool) (declare-fun %lbl%+28 () Bool) (declare-fun inline$LdConst$2$ret@1 () T@Value) (declare-fun %lbl%+29 () Bool) (declare-fun inline$Not$0$dst@1 () T@Value) (declare-fun %lbl%+30 () Bool) (declare-fun %lbl%+31 () Bool) (declare-fun inline$Eq_int$0$dst@1 () T@Value) (declare-fun %lbl%+32 () Bool) (declare-fun inline$ReadRef$0$v@3 () T@Value) (declare-fun inline$LdConst$1$ret@1 () T@Value) (declare-fun %lbl%+33 () Bool) (declare-fun %lbl%+34 () Bool) (declare-fun |inline$DeepUpdateReference$0$dst'@3| () T@Reference) (declare-fun inline$ReadRef$0$v@2 () T@Value) (declare-fun %lbl%+35 () Bool) (declare-fun inline$ReadRef$0$v@1 () T@Value) (declare-fun %lbl%+36 () Bool) (declare-fun |inline$UpdateValueMax$13$dstValue'@1| () T@Value) (declare-fun t11 () T@Value) (declare-fun inline$UpdateValueMax$13$e@0 () T@Edge) (declare-fun inline$UpdateValueMax$13$srcValue@0 () T@Value) (declare-fun %lbl%+37 () Bool) (declare-fun inline$UpdateValueMax$13$srcPath@0 () T@Path) (declare-fun inline$UpdateValue0$13$dstPath@0 () T@Path) (declare-fun %lbl%+38 () Bool) (declare-fun inline$UpdateValueMax$13$dstPath@0 () T@Path) (declare-fun inline$UpdateValue0$13$dstValue@0 () T@Value) (declare-fun %lbl%+39 () Bool) (declare-fun %lbl%+40 () Bool) (declare-fun %lbl%+41 () Bool) (declare-fun call3formal@t0@0 () T@Reference) (declare-fun %lbl%+42 () Bool) (declare-fun c () Int) (declare-fun %lbl%+43 () Bool) (declare-fun %lbl%+44 () Bool) (declare-fun |inline$UpdateValueMax$12$dstValue'@1| () T@Value) (declare-fun t10 () T@Value) (declare-fun inline$UpdateValueMax$12$e@0 () T@Edge) (declare-fun inline$UpdateValueMax$12$srcValue@0 () T@Value) (declare-fun %lbl%+45 () Bool) (declare-fun inline$UpdateValueMax$12$srcPath@0 () T@Path) (declare-fun inline$UpdateValue0$12$dstPath@0 () T@Path) (declare-fun %lbl%+46 () Bool) (declare-fun inline$UpdateValueMax$12$dstPath@0 () T@Path) (declare-fun inline$UpdateValue0$12$dstValue@0 () T@Value) (declare-fun %lbl%+47 () Bool) (declare-fun %lbl%+48 () Bool) (declare-fun %lbl%+49 () Bool) (declare-fun %lbl%+50 () Bool) (declare-fun %lbl%+51 () Bool) (declare-fun %lbl%+52 () Bool) (declare-fun |inline$UpdateValueMax$11$dstValue'@1| () T@Value) (declare-fun t9 () T@Value) (declare-fun inline$UpdateValueMax$11$e@0 () T@Edge) (declare-fun inline$UpdateValueMax$11$srcValue@0 () T@Value) (declare-fun %lbl%+53 () Bool) (declare-fun inline$UpdateValueMax$11$srcPath@0 () T@Path) (declare-fun inline$UpdateValue0$11$dstPath@0 () T@Path) (declare-fun %lbl%+54 () Bool) (declare-fun inline$UpdateValueMax$11$dstPath@0 () T@Path) (declare-fun inline$UpdateValue0$11$dstValue@0 () T@Value) (declare-fun %lbl%+55 () Bool) (declare-fun %lbl%+56 () Bool) (declare-fun %lbl%+57 () Bool) (declare-fun %lbl%+58 () Bool) (declare-fun %lbl%+59 () Bool) (declare-fun %lbl%+60 () Bool) (declare-fun |inline$UpdateValueMax$10$dstValue'@1| () T@Value) (declare-fun t8 () T@Value) (declare-fun inline$UpdateValueMax$10$e@0 () T@Edge) (declare-fun inline$UpdateValueMax$10$srcValue@0 () T@Value) (declare-fun %lbl%+61 () Bool) (declare-fun inline$UpdateValueMax$10$srcPath@0 () T@Path) (declare-fun inline$UpdateValue0$10$dstPath@0 () T@Path) (declare-fun %lbl%+62 () Bool) (declare-fun inline$UpdateValueMax$10$dstPath@0 () T@Path) (declare-fun inline$UpdateValue0$10$dstValue@0 () T@Value) (declare-fun %lbl%+63 () Bool) (declare-fun %lbl%+64 () Bool) (declare-fun %lbl%+65 () Bool) (declare-fun %lbl%+66 () Bool) (declare-fun %lbl%+67 () Bool) (declare-fun %lbl%+68 () Bool) (declare-fun |inline$UpdateValueMax$9$dstValue'@1| () T@Value) (declare-fun t7 () T@Value) (declare-fun inline$UpdateValueMax$9$e@0 () T@Edge) (declare-fun inline$UpdateValueMax$9$srcValue@0 () T@Value) (declare-fun %lbl%+69 () Bool) (declare-fun inline$UpdateValueMax$9$srcPath@0 () T@Path) (declare-fun inline$UpdateValue0$9$dstPath@0 () T@Path) (declare-fun %lbl%+70 () Bool) (declare-fun inline$UpdateValueMax$9$dstPath@0 () T@Path) (declare-fun inline$UpdateValue0$9$dstValue@0 () T@Value) (declare-fun %lbl%+71 () Bool) (declare-fun %lbl%+72 () Bool) (declare-fun %lbl%+73 () Bool) (declare-fun %lbl%+74 () Bool) (declare-fun %lbl%+75 () Bool) (declare-fun %lbl%+76 () Bool) (declare-fun |inline$UpdateValueMax$8$dstValue'@1| () T@Value) (declare-fun t6 () T@Value) (declare-fun inline$UpdateValueMax$8$e@0 () T@Edge) (declare-fun inline$UpdateValueMax$8$srcValue@0 () T@Value) (declare-fun %lbl%+77 () Bool) (declare-fun inline$UpdateValueMax$8$srcPath@0 () T@Path) (declare-fun inline$UpdateValue0$8$dstPath@0 () T@Path) (declare-fun %lbl%+78 () Bool) (declare-fun inline$UpdateValueMax$8$dstPath@0 () T@Path) (declare-fun inline$UpdateValue0$8$dstValue@0 () T@Value) (declare-fun %lbl%+79 () Bool) (declare-fun %lbl%+80 () Bool) (declare-fun %lbl%+81 () Bool) (declare-fun %lbl%+82 () Bool) (declare-fun %lbl%+83 () Bool) (declare-fun %lbl%+84 () Bool) (declare-fun |inline$UpdateValueMax$7$dstValue'@1| () T@Value) (declare-fun inline$LdConst$0$ret@1 () T@Value) (declare-fun inline$UpdateValueMax$7$e@0 () T@Edge) (declare-fun inline$UpdateValueMax$7$srcValue@0 () T@Value) (declare-fun %lbl%+85 () Bool) (declare-fun inline$UpdateValueMax$7$srcPath@0 () T@Path) (declare-fun inline$UpdateValue0$7$dstPath@0 () T@Path) (declare-fun %lbl%+86 () Bool) (declare-fun inline$UpdateValueMax$7$dstPath@0 () T@Path) (declare-fun inline$UpdateValue0$7$dstValue@0 () T@Value) (declare-fun %lbl%+87 () Bool) (declare-fun %lbl%+88 () Bool) (declare-fun %lbl%+89 () Bool) (declare-fun %lbl%+90 () Bool) (declare-fun %lbl%+91 () Bool) (declare-fun %lbl%+92 () Bool) (declare-fun |inline$UpdateValueMax$6$dstValue'@1| () T@Value) (declare-fun inline$UpdateValueMax$6$e@0 () T@Edge) (declare-fun inline$UpdateValueMax$6$srcValue@0 () T@Value) (declare-fun %lbl%+93 () Bool) (declare-fun inline$UpdateValueMax$6$srcPath@0 () T@Path) (declare-fun inline$UpdateValue0$6$dstPath@0 () T@Path) (declare-fun %lbl%+94 () Bool) (declare-fun inline$UpdateValueMax$6$dstPath@0 () T@Path) (declare-fun inline$UpdateValue0$6$dstValue@0 () T@Value) (declare-fun %lbl%+95 () Bool) (declare-fun %lbl%+96 () Bool) (declare-fun %lbl%+97 () Bool) (declare-fun %lbl%+98 () Bool) (declare-fun %lbl%+99 () Bool) (declare-fun %lbl%+100 () Bool) (declare-fun |inline$DeepUpdateReference$2$dst'@2| () T@Reference) (declare-fun t5 () T@Reference) (declare-fun |inline$UpdateValueMax$5$dstValue'| () T@Value) (declare-fun %lbl%+101 () Bool) (declare-fun |inline$UpdateValueMax$5$dstValue'@1| () T@Value) (declare-fun inline$UpdateValueMax$5$dstValue@0 () T@Value) (declare-fun inline$UpdateValueMax$5$e@0 () T@Edge) (declare-fun inline$UpdateValueMax$5$srcValue@0 () T@Value) (declare-fun %lbl%+102 () Bool) (declare-fun inline$UpdateValueMax$5$srcPath@0 () T@Path) (declare-fun inline$UpdateValue0$5$dstPath@0 () T@Path) (declare-fun %lbl%+103 () Bool) (declare-fun inline$UpdateValueMax$5$dstPath@0 () T@Path) (declare-fun inline$UpdateValue0$5$dstValue@0 () T@Value) (declare-fun %lbl%+104 () Bool) (declare-fun %lbl%+105 () Bool) (declare-fun %lbl%+106 () Bool) (declare-fun %lbl%+107 () Bool) (declare-fun inline$IsPrefixMax$5$isPrefix@1 () Bool) (declare-fun %lbl%+108 () Bool) (declare-fun %lbl%+109 () Bool) (declare-fun inline$IsPrefix0$5$isPrefix@1 () Bool) (declare-fun %lbl%+110 () Bool) (declare-fun %lbl%+111 () Bool) (declare-fun inline$IsPrefixMax$5$dstPath@0 () T@Path) (declare-fun %lbl%+112 () Bool) (declare-fun %lbl%+113 () Bool) (declare-fun inline$IsPrefixMax$5$srcPath@0 () T@Path) (declare-fun %lbl%+114 () Bool) (declare-fun %lbl%+115 () Bool) (declare-fun %lbl%+116 () Bool) (declare-fun %lbl%+117 () Bool) (declare-fun %lbl%+118 () Bool) (declare-fun %lbl%+119 () Bool) (declare-fun %lbl%+120 () Bool) (declare-fun %lbl%+121 () Bool) (declare-fun %lbl%+122 () Bool) (declare-fun |inline$DeepUpdateReference$2$dst'@1| () T@Reference) (declare-fun |inline$UpdateValueMax$4$dstValue'| () T@Value) (declare-fun %lbl%+123 () Bool) (declare-fun |inline$UpdateValueMax$4$dstValue'@1| () T@Value) (declare-fun inline$UpdateValueMax$4$dstValue@0 () T@Value) (declare-fun inline$UpdateValueMax$4$e@0 () T@Edge) (declare-fun inline$UpdateValueMax$4$srcValue@0 () T@Value) (declare-fun %lbl%+124 () Bool) (declare-fun inline$UpdateValueMax$4$srcPath@0 () T@Path) (declare-fun inline$UpdateValue0$4$dstPath@0 () T@Path) (declare-fun %lbl%+125 () Bool) (declare-fun inline$UpdateValueMax$4$dstPath@0 () T@Path) (declare-fun inline$UpdateValue0$4$dstValue@0 () T@Value) (declare-fun %lbl%+126 () Bool) (declare-fun %lbl%+127 () Bool) (declare-fun %lbl%+128 () Bool) (declare-fun %lbl%+129 () Bool) (declare-fun inline$IsPrefixMax$4$isPrefix@1 () Bool) (declare-fun %lbl%+130 () Bool) (declare-fun %lbl%+131 () Bool) (declare-fun inline$IsPrefix0$4$isPrefix@1 () Bool) (declare-fun %lbl%+132 () Bool) (declare-fun %lbl%+133 () Bool) (declare-fun inline$IsPrefixMax$4$dstPath@0 () T@Path) (declare-fun %lbl%+134 () Bool) (declare-fun %lbl%+135 () Bool) (declare-fun inline$IsPrefixMax$4$srcPath@0 () T@Path) (declare-fun %lbl%+136 () Bool) (declare-fun %lbl%+137 () Bool) (declare-fun %lbl%+138 () Bool) (declare-fun %lbl%+139 () Bool) (declare-fun %lbl%+140 () Bool) (declare-fun %lbl%+141 () Bool) (declare-fun %lbl%+142 () Bool) (declare-fun %lbl%+143 () Bool) (declare-fun %lbl%+144 () Bool) (declare-fun |inline$DeepUpdateReference$1$dst'@2| () T@Reference) (declare-fun inline$BorrowLoc$0$dst@1 () T@Reference) (declare-fun |inline$UpdateValueMax$3$dstValue'| () T@Value) (declare-fun %lbl%+145 () Bool) (declare-fun |inline$UpdateValueMax$3$dstValue'@1| () T@Value) (declare-fun inline$UpdateValueMax$3$dstValue@0 () T@Value) (declare-fun inline$UpdateValueMax$3$e@0 () T@Edge) (declare-fun inline$UpdateValueMax$3$srcValue@0 () T@Value) (declare-fun %lbl%+146 () Bool) (declare-fun inline$UpdateValueMax$3$srcPath@0 () T@Path) (declare-fun inline$UpdateValue0$3$dstPath@0 () T@Path) (declare-fun %lbl%+147 () Bool) (declare-fun inline$UpdateValueMax$3$dstPath@0 () T@Path) (declare-fun inline$UpdateValue0$3$dstValue@0 () T@Value) (declare-fun %lbl%+148 () Bool) (declare-fun %lbl%+149 () Bool) (declare-fun %lbl%+150 () Bool) (declare-fun %lbl%+151 () Bool) (declare-fun inline$IsPrefixMax$3$isPrefix@1 () Bool) (declare-fun %lbl%+152 () Bool) (declare-fun %lbl%+153 () Bool) (declare-fun inline$IsPrefix0$3$isPrefix@1 () Bool) (declare-fun %lbl%+154 () Bool) (declare-fun %lbl%+155 () Bool) (declare-fun inline$IsPrefixMax$3$dstPath@0 () T@Path) (declare-fun %lbl%+156 () Bool) (declare-fun %lbl%+157 () Bool) (declare-fun inline$IsPrefixMax$3$srcPath@0 () T@Path) (declare-fun %lbl%+158 () Bool) (declare-fun %lbl%+159 () Bool) (declare-fun %lbl%+160 () Bool) (declare-fun %lbl%+161 () Bool) (declare-fun %lbl%+162 () Bool) (declare-fun %lbl%+163 () Bool) (declare-fun %lbl%+164 () Bool) (declare-fun %lbl%+165 () Bool) (declare-fun %lbl%+166 () Bool) (declare-fun |inline$DeepUpdateReference$1$dst'@1| () T@Reference) (declare-fun |inline$UpdateValueMax$2$dstValue'| () T@Value) (declare-fun %lbl%+167 () Bool) (declare-fun |inline$UpdateValueMax$2$dstValue'@1| () T@Value) (declare-fun inline$UpdateValueMax$2$dstValue@0 () T@Value) (declare-fun inline$UpdateValueMax$2$e@0 () T@Edge) (declare-fun inline$UpdateValueMax$2$srcValue@0 () T@Value) (declare-fun %lbl%+168 () Bool) (declare-fun inline$UpdateValueMax$2$srcPath@0 () T@Path) (declare-fun inline$UpdateValue0$2$dstPath@0 () T@Path) (declare-fun %lbl%+169 () Bool) (declare-fun inline$UpdateValueMax$2$dstPath@0 () T@Path) (declare-fun inline$UpdateValue0$2$dstValue@0 () T@Value) (declare-fun %lbl%+170 () Bool) (declare-fun %lbl%+171 () Bool) (declare-fun %lbl%+172 () Bool) (declare-fun %lbl%+173 () Bool) (declare-fun inline$IsPrefixMax$2$isPrefix@1 () Bool) (declare-fun %lbl%+174 () Bool) (declare-fun %lbl%+175 () Bool) (declare-fun inline$IsPrefix0$2$isPrefix@1 () Bool) (declare-fun %lbl%+176 () Bool) (declare-fun %lbl%+177 () Bool) (declare-fun inline$IsPrefixMax$2$dstPath@0 () T@Path) (declare-fun %lbl%+178 () Bool) (declare-fun %lbl%+179 () Bool) (declare-fun inline$IsPrefixMax$2$srcPath@0 () T@Path) (declare-fun %lbl%+180 () Bool) (declare-fun %lbl%+181 () Bool) (declare-fun %lbl%+182 () Bool) (declare-fun %lbl%+183 () Bool) (declare-fun %lbl%+184 () Bool) (declare-fun %lbl%+185 () Bool) (declare-fun %lbl%+186 () Bool) (declare-fun %lbl%+187 () Bool) (declare-fun %lbl%+188 () Bool) (declare-fun |inline$DeepUpdateReference$0$dst'@2| () T@Reference) (declare-fun |inline$UpdateValueMax$1$dstValue'@2| () T@Value) (declare-fun %lbl%+189 () Bool) (declare-fun |inline$UpdateValueMax$1$dstValue'@1| () T@Value) (declare-fun inline$UpdateValueMax$1$dstValue@0 () T@Value) (declare-fun inline$UpdateValueMax$1$e@0 () T@Edge) (declare-fun inline$UpdateValueMax$1$srcValue@0 () T@Value) (declare-fun %lbl%+190 () Bool) (declare-fun inline$UpdateValueMax$1$srcPath@0 () T@Path) (declare-fun inline$UpdateValue0$1$dstPath@0 () T@Path) (declare-fun %lbl%+191 () Bool) (declare-fun inline$UpdateValueMax$1$dstPath@0 () T@Path) (declare-fun inline$UpdateValue0$1$dstValue@0 () T@Value) (declare-fun %lbl%+192 () Bool) (declare-fun %lbl%+193 () Bool) (declare-fun %lbl%+194 () Bool) (declare-fun %lbl%+195 () Bool) (declare-fun inline$IsPrefixMax$1$isPrefix@1 () Bool) (declare-fun %lbl%+196 () Bool) (declare-fun %lbl%+197 () Bool) (declare-fun inline$IsPrefix0$1$isPrefix@1 () Bool) (declare-fun %lbl%+198 () Bool) (declare-fun %lbl%+199 () Bool) (declare-fun inline$IsPrefixMax$1$dstPath@0 () T@Path) (declare-fun %lbl%+200 () Bool) (declare-fun %lbl%+201 () Bool) (declare-fun inline$IsPrefixMax$1$srcPath@0 () T@Path) (declare-fun %lbl%+202 () Bool) (declare-fun %lbl%+203 () Bool) (declare-fun %lbl%+204 () Bool) (declare-fun %lbl%+205 () Bool) (declare-fun %lbl%+206 () Bool) (declare-fun %lbl%+207 () Bool) (declare-fun %lbl%+208 () Bool) (declare-fun %lbl%+209 () Bool) (declare-fun %lbl%+210 () Bool) (declare-fun |inline$DeepUpdateReference$0$dst'@1| () T@Reference) (declare-fun |inline$UpdateValueMax$0$dstValue'@2| () T@Value) (declare-fun %lbl%+211 () Bool) (declare-fun |inline$UpdateValueMax$0$dstValue'@1| () T@Value) (declare-fun inline$UpdateValueMax$0$dstValue@0 () T@Value) (declare-fun inline$UpdateValueMax$0$e@0 () T@Edge) (declare-fun inline$UpdateValueMax$0$srcValue@0 () T@Value) (declare-fun %lbl%+212 () Bool) (declare-fun inline$UpdateValueMax$0$srcPath@0 () T@Path) (declare-fun inline$UpdateValue0$0$dstPath@0 () T@Path) (declare-fun %lbl%+213 () Bool) (declare-fun inline$UpdateValueMax$0$dstPath@0 () T@Path) (declare-fun inline$UpdateValue0$0$dstValue@0 () T@Value) (declare-fun %lbl%+214 () Bool) (declare-fun %lbl%+215 () Bool) (declare-fun %lbl%+216 () Bool) (declare-fun %lbl%+217 () Bool) (declare-fun inline$IsPrefixMax$0$isPrefix@1 () Bool) (declare-fun %lbl%+218 () Bool) (declare-fun %lbl%+219 () Bool) (declare-fun inline$IsPrefix0$0$isPrefix@1 () Bool) (declare-fun %lbl%+220 () Bool) (declare-fun %lbl%+221 () Bool) (declare-fun inline$IsPrefixMax$0$dstPath@0 () T@Path) (declare-fun %lbl%+222 () Bool) (declare-fun %lbl%+223 () Bool) (declare-fun inline$IsPrefixMax$0$srcPath@0 () T@Path) (declare-fun %lbl%+224 () Bool) (declare-fun %lbl%+225 () Bool) (declare-fun %lbl%+226 () Bool) (declare-fun %lbl%+227 () Bool) (declare-fun %lbl%+228 () Bool) (declare-fun %lbl%+229 () Bool) (declare-fun %lbl%+230 () Bool) (declare-fun %lbl%+231 () Bool) (declare-fun %lbl%+232 () Bool) (declare-fun %lbl%+233 () Bool) (declare-fun %lbl%+234 () Bool) (declare-fun |c'| () Int) (declare-fun %lbl%+235 () Bool) (push 1) (set-info :boogie-vc-id TestReference_mut_ref) (assert (not (=> (= (ControlFlow 0 0) 17367) (let ((inline$UpdateValue0$1$anon3_Else_correct (=> (and %lbl%+0 true) true))) (let ((inline$IsPrefix0$1$anon5_Else_correct (=> (and %lbl%+1 true) (=> (not (= inline$IsPrefix0$1$srcPath@0 Nil)) (or %lbl%@2 (=> (= (ControlFlow 0 6518) (- 0 18636)) false)))))) (let ((inline$UpdateValue0$0$anon3_Else_correct (=> (and %lbl%+3 true) true))) (let ((inline$IsPrefix0$0$anon5_Else_correct (=> (and %lbl%+4 true) (=> (not (= inline$IsPrefix0$0$srcPath@0 Nil)) (or %lbl%@5 (=> (= (ControlFlow 0 5960) (- 0 18332)) false)))))) (let ((inline$UpdateValue0$3$anon3_Else_correct (=> (and %lbl%+6 true) true))) (let ((inline$IsPrefix0$3$anon5_Else_correct (=> (and %lbl%+7 true) (=> (not (= inline$IsPrefix0$3$srcPath@0 Nil)) (or %lbl%@8 (=> (= (ControlFlow 0 7890) (- 0 19282)) false)))))) (let ((inline$UpdateValue0$2$anon3_Else_correct (=> (and %lbl%+9 true) true))) (let ((inline$IsPrefix0$2$anon5_Else_correct (=> (and %lbl%+10 true) (=> (not (= inline$IsPrefix0$2$srcPath@0 Nil)) (or %lbl%@11 (=> (= (ControlFlow 0 7332) (- 0 18986)) false)))))) (let ((inline$UpdateValue0$5$anon3_Else_correct (=> (and %lbl%+12 true) true))) (let ((inline$IsPrefix0$5$anon5_Else_correct (=> (and %lbl%+13 true) (=> (not (= inline$IsPrefix0$5$srcPath@0 Nil)) (or %lbl%@14 (=> (= (ControlFlow 0 9262) (- 0 19901)) false)))))) (let ((inline$UpdateValue0$4$anon3_Else_correct (=> (and %lbl%+15 true) true))) (let ((inline$IsPrefix0$4$anon5_Else_correct (=> (and %lbl%+16 true) (=> (not (= inline$IsPrefix0$4$srcPath@0 Nil)) (or %lbl%@17 (=> (= (ControlFlow 0 8704) (- 0 19605)) false)))))) (let ((inline$UpdateValue0$6$anon3_Else_correct (=> (and %lbl%+18 true) true))) (let ((inline$UpdateValue0$7$anon3_Else_correct (=> (and %lbl%+19 true) true))) (let ((inline$UpdateValue0$8$anon3_Else_correct (=> (and %lbl%+20 true) true))) (let ((inline$UpdateValue0$9$anon3_Else_correct (=> (and %lbl%+21 true) true))) (let ((inline$UpdateValue0$10$anon3_Else_correct (=> (and %lbl%+22 true) true))) (let ((inline$UpdateValue0$11$anon3_Else_correct (=> (and %lbl%+23 true) true))) (let ((inline$UpdateValue0$12$anon3_Else_correct (=> (and %lbl%+24 true) true))) (let ((inline$UpdateValue0$13$anon3_Else_correct (=> (and %lbl%+25 true) true))) (let ((anon3_Else$1_correct (=> (and %lbl%+26 true) (or %lbl%@27 (=> (= (ControlFlow 0 13078) (- 0 21559)) false))))) (let ((inline$LdConst$2$anon0_correct (=> (and %lbl%+28 true) (=> (and (= inline$LdConst$2$ret@1 (Integer 42)) (= (ControlFlow 0 13068) 13078)) anon3_Else$1_correct)))) (let ((anon3_Else_correct (=> (and %lbl%+29 true) (=> (and (|b#Boolean| inline$Not$0$dst@1) (= (ControlFlow 0 13074) 13068)) inline$LdConst$2$anon0_correct)))) (let ((anon3_Then_correct (=> (and %lbl%+30 true) true))) (let ((inline$Not$0$anon0_correct (=> (and %lbl%+31 true) (=> (= inline$Not$0$dst@1 (Boolean (not (|b#Boolean| inline$Eq_int$0$dst@1)))) (and (=> (= (ControlFlow 0 13025) 13086) anon3_Then_correct) (=> (= (ControlFlow 0 13025) 13074) anon3_Else_correct)))))) (let ((inline$Eq_int$0$anon0_correct (=> (and %lbl%+32 true) (=> (and (= inline$Eq_int$0$dst@1 (Boolean (= (|i#Integer| inline$ReadRef$0$v@3) (|i#Integer| inline$LdConst$1$ret@1)))) (= (ControlFlow 0 12980) 13025)) inline$Not$0$anon0_correct)))) (let ((inline$LdConst$1$anon0_correct (=> (and %lbl%+33 true) (=> (and (= inline$LdConst$1$ret@1 (Integer 0)) (= (ControlFlow 0 12921) 12980)) inline$Eq_int$0$anon0_correct)))) (let ((inline$ReadRef$0$anon3_Else_correct (=> (and %lbl%+34 true) (=> (and (and (not (is-GlobalReference |inline$DeepUpdateReference$0$dst'@3|)) (= inline$ReadRef$0$v@2 (|v#LocalReference| |inline$DeepUpdateReference$0$dst'@3|))) (and (= inline$ReadRef$0$v@3 inline$ReadRef$0$v@2) (= (ControlFlow 0 12808) 12921))) inline$LdConst$1$anon0_correct)))) (let ((inline$ReadRef$0$anon3_Then_correct (=> (and %lbl%+35 true) (=> (and (and (is-GlobalReference |inline$DeepUpdateReference$0$dst'@3|) (= inline$ReadRef$0$v@1 (|v#GlobalReference| |inline$DeepUpdateReference$0$dst'@3|))) (and (= inline$ReadRef$0$v@3 inline$ReadRef$0$v@1) (= (ControlFlow 0 12818) 12921))) inline$LdConst$1$anon0_correct)))) (let ((inline$UpdateValueMax$13$anon3_Else$1_correct (=> (and %lbl%+36 true) (=> (= |inline$UpdateValueMax$13$dstValue'@1| (Map (store (|m#Map| t11) inline$UpdateValueMax$13$e@0 inline$UpdateValueMax$13$srcValue@0))) (and (=> (= (ControlFlow 0 12694) 12818) inline$ReadRef$0$anon3_Then_correct) (=> (= (ControlFlow 0 12694) 12808) inline$ReadRef$0$anon3_Else_correct)))))) (let ((inline$UpdateValue0$13$anon3_Then_correct (=> (and %lbl%+37 true) (=> (and (= inline$UpdateValueMax$13$srcPath@0 inline$UpdateValue0$13$dstPath@0) (= (ControlFlow 0 12674) 12694)) inline$UpdateValueMax$13$anon3_Else$1_correct)))) (let ((inline$UpdateValue0$13$Entry_correct (=> (and %lbl%+38 true) (=> (and (= inline$UpdateValue0$13$dstPath@0 (Cons inline$UpdateValueMax$13$dstPath@0 inline$UpdateValueMax$13$e@0)) (= inline$UpdateValue0$13$dstValue@0 (select (|m#Map| t11) inline$UpdateValueMax$13$e@0))) (and (=> (= (ControlFlow 0 12652) 12674) inline$UpdateValue0$13$anon3_Then_correct) (=> (= (ControlFlow 0 12652) 12664) inline$UpdateValue0$13$anon3_Else_correct)))))) (let ((inline$UpdateValueMax$13$anon3_Else_correct (=> (and %lbl%+39 true) (=> (and (not (= inline$UpdateValueMax$13$srcPath@0 inline$UpdateValueMax$13$dstPath@0)) (= (ControlFlow 0 12680) 12652)) inline$UpdateValue0$13$Entry_correct)))) (let ((inline$UpdateValueMax$13$anon3_Then_correct (=> (and %lbl%+40 true) (=> (= inline$UpdateValueMax$13$srcPath@0 inline$UpdateValueMax$13$dstPath@0) (and (=> (= (ControlFlow 0 12704) 12818) inline$ReadRef$0$anon3_Then_correct) (=> (= (ControlFlow 0 12704) 12808) inline$ReadRef$0$anon3_Else_correct)))))) (let ((inline$UpdateValueMax$13$Entry_correct (=> (and %lbl%+41 true) (=> (= inline$UpdateValueMax$13$srcPath@0 (|p#LocalReference| call3formal@t0@0)) (=> (and (= inline$UpdateValueMax$13$srcValue@0 (|v#LocalReference| call3formal@t0@0)) (= inline$UpdateValueMax$13$dstPath@0 Nil)) (and (=> (= (ControlFlow 0 12573) 12704) inline$UpdateValueMax$13$anon3_Then_correct) (=> (= (ControlFlow 0 12573) 12680) inline$UpdateValueMax$13$anon3_Else_correct))))))) (let ((inline$DeepUpdateLocal$7$anon2_Then_correct (=> (and %lbl%+42 true) (=> (and (and (and (is-LocalReference call3formal@t0@0) (= c (|c#LocalReference| call3formal@t0@0))) (= t11_LocalName (|l#LocalReference| call3formal@t0@0))) (= (ControlFlow 0 12710) 12573)) inline$UpdateValueMax$13$Entry_correct)))) (let ((inline$DeepUpdateLocal$7$anon2_Else_correct (=> (and %lbl%+43 true) (=> (not (and (and (is-LocalReference call3formal@t0@0) (= c (|c#LocalReference| call3formal@t0@0))) (= t11_LocalName (|l#LocalReference| call3formal@t0@0)))) (and (=> (= (ControlFlow 0 12458) 12818) inline$ReadRef$0$anon3_Then_correct) (=> (= (ControlFlow 0 12458) 12808) inline$ReadRef$0$anon3_Else_correct)))))) (let ((inline$UpdateValueMax$12$anon3_Else$1_correct (=> (and %lbl%+44 true) (=> (= |inline$UpdateValueMax$12$dstValue'@1| (Map (store (|m#Map| t10) inline$UpdateValueMax$12$e@0 inline$UpdateValueMax$12$srcValue@0))) (and (=> (= (ControlFlow 0 12302) 12710) inline$DeepUpdateLocal$7$anon2_Then_correct) (=> (= (ControlFlow 0 12302) 12458) inline$DeepUpdateLocal$7$anon2_Else_correct)))))) (let ((inline$UpdateValue0$12$anon3_Then_correct (=> (and %lbl%+45 true) (=> (and (= inline$UpdateValueMax$12$srcPath@0 inline$UpdateValue0$12$dstPath@0) (= (ControlFlow 0 12282) 12302)) inline$UpdateValueMax$12$anon3_Else$1_correct)))) (let ((inline$UpdateValue0$12$Entry_correct (=> (and %lbl%+46 true) (=> (and (= inline$UpdateValue0$12$dstPath@0 (Cons inline$UpdateValueMax$12$dstPath@0 inline$UpdateValueMax$12$e@0)) (= inline$UpdateValue0$12$dstValue@0 (select (|m#Map| t10) inline$UpdateValueMax$12$e@0))) (and (=> (= (ControlFlow 0 12260) 12282) inline$UpdateValue0$12$anon3_Then_correct) (=> (= (ControlFlow 0 12260) 12272) inline$UpdateValue0$12$anon3_Else_correct)))))) (let ((inline$UpdateValueMax$12$anon3_Else_correct (=> (and %lbl%+47 true) (=> (and (not (= inline$UpdateValueMax$12$srcPath@0 inline$UpdateValueMax$12$dstPath@0)) (= (ControlFlow 0 12288) 12260)) inline$UpdateValue0$12$Entry_correct)))) (let ((inline$UpdateValueMax$12$anon3_Then_correct (=> (and %lbl%+48 true) (=> (= inline$UpdateValueMax$12$srcPath@0 inline$UpdateValueMax$12$dstPath@0) (and (=> (= (ControlFlow 0 12312) 12710) inline$DeepUpdateLocal$7$anon2_Then_correct) (=> (= (ControlFlow 0 12312) 12458) inline$DeepUpdateLocal$7$anon2_Else_correct)))))) (let ((inline$UpdateValueMax$12$Entry_correct (=> (and %lbl%+49 true) (=> (= inline$UpdateValueMax$12$srcPath@0 (|p#LocalReference| call3formal@t0@0)) (=> (and (= inline$UpdateValueMax$12$srcValue@0 (|v#LocalReference| call3formal@t0@0)) (= inline$UpdateValueMax$12$dstPath@0 Nil)) (and (=> (= (ControlFlow 0 12181) 12312) inline$UpdateValueMax$12$anon3_Then_correct) (=> (= (ControlFlow 0 12181) 12288) inline$UpdateValueMax$12$anon3_Else_correct))))))) (let ((inline$DeepUpdateLocal$6$anon2_Then_correct (=> (and %lbl%+50 true) (=> (and (and (and (is-LocalReference call3formal@t0@0) (= c (|c#LocalReference| call3formal@t0@0))) (= t10_LocalName (|l#LocalReference| call3formal@t0@0))) (= (ControlFlow 0 12318) 12181)) inline$UpdateValueMax$12$Entry_correct)))) (let ((inline$DeepUpdateLocal$6$anon2_Else_correct (=> (and %lbl%+51 true) (=> (not (and (and (is-LocalReference call3formal@t0@0) (= c (|c#LocalReference| call3formal@t0@0))) (= t10_LocalName (|l#LocalReference| call3formal@t0@0)))) (and (=> (= (ControlFlow 0 12066) 12710) inline$DeepUpdateLocal$7$anon2_Then_correct) (=> (= (ControlFlow 0 12066) 12458) inline$DeepUpdateLocal$7$anon2_Else_correct)))))) (let ((inline$UpdateValueMax$11$anon3_Else$1_correct (=> (and %lbl%+52 true) (=> (= |inline$UpdateValueMax$11$dstValue'@1| (Map (store (|m#Map| t9) inline$UpdateValueMax$11$e@0 inline$UpdateValueMax$11$srcValue@0))) (and (=> (= (ControlFlow 0 11910) 12318) inline$DeepUpdateLocal$6$anon2_Then_correct) (=> (= (ControlFlow 0 11910) 12066) inline$DeepUpdateLocal$6$anon2_Else_correct)))))) (let ((inline$UpdateValue0$11$anon3_Then_correct (=> (and %lbl%+53 true) (=> (and (= inline$UpdateValueMax$11$srcPath@0 inline$UpdateValue0$11$dstPath@0) (= (ControlFlow 0 11890) 11910)) inline$UpdateValueMax$11$anon3_Else$1_correct)))) (let ((inline$UpdateValue0$11$Entry_correct (=> (and %lbl%+54 true) (=> (and (= inline$UpdateValue0$11$dstPath@0 (Cons inline$UpdateValueMax$11$dstPath@0 inline$UpdateValueMax$11$e@0)) (= inline$UpdateValue0$11$dstValue@0 (select (|m#Map| t9) inline$UpdateValueMax$11$e@0))) (and (=> (= (ControlFlow 0 11868) 11890) inline$UpdateValue0$11$anon3_Then_correct) (=> (= (ControlFlow 0 11868) 11880) inline$UpdateValue0$11$anon3_Else_correct)))))) (let ((inline$UpdateValueMax$11$anon3_Else_correct (=> (and %lbl%+55 true) (=> (and (not (= inline$UpdateValueMax$11$srcPath@0 inline$UpdateValueMax$11$dstPath@0)) (= (ControlFlow 0 11896) 11868)) inline$UpdateValue0$11$Entry_correct)))) (let ((inline$UpdateValueMax$11$anon3_Then_correct (=> (and %lbl%+56 true) (=> (= inline$UpdateValueMax$11$srcPath@0 inline$UpdateValueMax$11$dstPath@0) (and (=> (= (ControlFlow 0 11920) 12318) inline$DeepUpdateLocal$6$anon2_Then_correct) (=> (= (ControlFlow 0 11920) 12066) inline$DeepUpdateLocal$6$anon2_Else_correct)))))) (let ((inline$UpdateValueMax$11$Entry_correct (=> (and %lbl%+57 true) (=> (= inline$UpdateValueMax$11$srcPath@0 (|p#LocalReference| call3formal@t0@0)) (=> (and (= inline$UpdateValueMax$11$srcValue@0 (|v#LocalReference| call3formal@t0@0)) (= inline$UpdateValueMax$11$dstPath@0 Nil)) (and (=> (= (ControlFlow 0 11789) 11920) inline$UpdateValueMax$11$anon3_Then_correct) (=> (= (ControlFlow 0 11789) 11896) inline$UpdateValueMax$11$anon3_Else_correct))))))) (let ((inline$DeepUpdateLocal$5$anon2_Then_correct (=> (and %lbl%+58 true) (=> (and (and (and (is-LocalReference call3formal@t0@0) (= c (|c#LocalReference| call3formal@t0@0))) (= t9_LocalName (|l#LocalReference| call3formal@t0@0))) (= (ControlFlow 0 11926) 11789)) inline$UpdateValueMax$11$Entry_correct)))) (let ((inline$DeepUpdateLocal$5$anon2_Else_correct (=> (and %lbl%+59 true) (=> (not (and (and (is-LocalReference call3formal@t0@0) (= c (|c#LocalReference| call3formal@t0@0))) (= t9_LocalName (|l#LocalReference| call3formal@t0@0)))) (and (=> (= (ControlFlow 0 11674) 12318) inline$DeepUpdateLocal$6$anon2_Then_correct) (=> (= (ControlFlow 0 11674) 12066) inline$DeepUpdateLocal$6$anon2_Else_correct)))))) (let ((inline$UpdateValueMax$10$anon3_Else$1_correct (=> (and %lbl%+60 true) (=> (= |inline$UpdateValueMax$10$dstValue'@1| (Map (store (|m#Map| t8) inline$UpdateValueMax$10$e@0 inline$UpdateValueMax$10$srcValue@0))) (and (=> (= (ControlFlow 0 11518) 11926) inline$DeepUpdateLocal$5$anon2_Then_correct) (=> (= (ControlFlow 0 11518) 11674) inline$DeepUpdateLocal$5$anon2_Else_correct)))))) (let ((inline$UpdateValue0$10$anon3_Then_correct (=> (and %lbl%+61 true) (=> (and (= inline$UpdateValueMax$10$srcPath@0 inline$UpdateValue0$10$dstPath@0) (= (ControlFlow 0 11498) 11518)) inline$UpdateValueMax$10$anon3_Else$1_correct)))) (let ((inline$UpdateValue0$10$Entry_correct (=> (and %lbl%+62 true) (=> (and (= inline$UpdateValue0$10$dstPath@0 (Cons inline$UpdateValueMax$10$dstPath@0 inline$UpdateValueMax$10$e@0)) (= inline$UpdateValue0$10$dstValue@0 (select (|m#Map| t8) inline$UpdateValueMax$10$e@0))) (and (=> (= (ControlFlow 0 11476) 11498) inline$UpdateValue0$10$anon3_Then_correct) (=> (= (ControlFlow 0 11476) 11488) inline$UpdateValue0$10$anon3_Else_correct)))))) (let ((inline$UpdateValueMax$10$anon3_Else_correct (=> (and %lbl%+63 true) (=> (and (not (= inline$UpdateValueMax$10$srcPath@0 inline$UpdateValueMax$10$dstPath@0)) (= (ControlFlow 0 11504) 11476)) inline$UpdateValue0$10$Entry_correct)))) (let ((inline$UpdateValueMax$10$anon3_Then_correct (=> (and %lbl%+64 true) (=> (= inline$UpdateValueMax$10$srcPath@0 inline$UpdateValueMax$10$dstPath@0) (and (=> (= (ControlFlow 0 11528) 11926) inline$DeepUpdateLocal$5$anon2_Then_correct) (=> (= (ControlFlow 0 11528) 11674) inline$DeepUpdateLocal$5$anon2_Else_correct)))))) (let ((inline$UpdateValueMax$10$Entry_correct (=> (and %lbl%+65 true) (=> (= inline$UpdateValueMax$10$srcPath@0 (|p#LocalReference| call3formal@t0@0)) (=> (and (= inline$UpdateValueMax$10$srcValue@0 (|v#LocalReference| call3formal@t0@0)) (= inline$UpdateValueMax$10$dstPath@0 Nil)) (and (=> (= (ControlFlow 0 11397) 11528) inline$UpdateValueMax$10$anon3_Then_correct) (=> (= (ControlFlow 0 11397) 11504) inline$UpdateValueMax$10$anon3_Else_correct))))))) (let ((inline$DeepUpdateLocal$4$anon2_Then_correct (=> (and %lbl%+66 true) (=> (and (and (and (is-LocalReference call3formal@t0@0) (= c (|c#LocalReference| call3formal@t0@0))) (= t8_LocalName (|l#LocalReference| call3formal@t0@0))) (= (ControlFlow 0 11534) 11397)) inline$UpdateValueMax$10$Entry_correct)))) (let ((inline$DeepUpdateLocal$4$anon2_Else_correct (=> (and %lbl%+67 true) (=> (not (and (and (is-LocalReference call3formal@t0@0) (= c (|c#LocalReference| call3formal@t0@0))) (= t8_LocalName (|l#LocalReference| call3formal@t0@0)))) (and (=> (= (ControlFlow 0 11282) 11926) inline$DeepUpdateLocal$5$anon2_Then_correct) (=> (= (ControlFlow 0 11282) 11674) inline$DeepUpdateLocal$5$anon2_Else_correct)))))) (let ((inline$UpdateValueMax$9$anon3_Else$1_correct (=> (and %lbl%+68 true) (=> (= |inline$UpdateValueMax$9$dstValue'@1| (Map (store (|m#Map| t7) inline$UpdateValueMax$9$e@0 inline$UpdateValueMax$9$srcValue@0))) (and (=> (= (ControlFlow 0 11126) 11534) inline$DeepUpdateLocal$4$anon2_Then_correct) (=> (= (ControlFlow 0 11126) 11282) inline$DeepUpdateLocal$4$anon2_Else_correct)))))) (let ((inline$UpdateValue0$9$anon3_Then_correct (=> (and %lbl%+69 true) (=> (and (= inline$UpdateValueMax$9$srcPath@0 inline$UpdateValue0$9$dstPath@0) (= (ControlFlow 0 11106) 11126)) inline$UpdateValueMax$9$anon3_Else$1_correct)))) (let ((inline$UpdateValue0$9$Entry_correct (=> (and %lbl%+70 true) (=> (and (= inline$UpdateValue0$9$dstPath@0 (Cons inline$UpdateValueMax$9$dstPath@0 inline$UpdateValueMax$9$e@0)) (= inline$UpdateValue0$9$dstValue@0 (select (|m#Map| t7) inline$UpdateValueMax$9$e@0))) (and (=> (= (ControlFlow 0 11084) 11106) inline$UpdateValue0$9$anon3_Then_correct) (=> (= (ControlFlow 0 11084) 11096) inline$UpdateValue0$9$anon3_Else_correct)))))) (let ((inline$UpdateValueMax$9$anon3_Else_correct (=> (and %lbl%+71 true) (=> (and (not (= inline$UpdateValueMax$9$srcPath@0 inline$UpdateValueMax$9$dstPath@0)) (= (ControlFlow 0 11112) 11084)) inline$UpdateValue0$9$Entry_correct)))) (let ((inline$UpdateValueMax$9$anon3_Then_correct (=> (and %lbl%+72 true) (=> (= inline$UpdateValueMax$9$srcPath@0 inline$UpdateValueMax$9$dstPath@0) (and (=> (= (ControlFlow 0 11136) 11534) inline$DeepUpdateLocal$4$anon2_Then_correct) (=> (= (ControlFlow 0 11136) 11282) inline$DeepUpdateLocal$4$anon2_Else_correct)))))) (let ((inline$UpdateValueMax$9$Entry_correct (=> (and %lbl%+73 true) (=> (= inline$UpdateValueMax$9$srcPath@0 (|p#LocalReference| call3formal@t0@0)) (=> (and (= inline$UpdateValueMax$9$srcValue@0 (|v#LocalReference| call3formal@t0@0)) (= inline$UpdateValueMax$9$dstPath@0 Nil)) (and (=> (= (ControlFlow 0 11005) 11136) inline$UpdateValueMax$9$anon3_Then_correct) (=> (= (ControlFlow 0 11005) 11112) inline$UpdateValueMax$9$anon3_Else_correct))))))) (let ((inline$DeepUpdateLocal$3$anon2_Then_correct (=> (and %lbl%+74 true) (=> (and (and (and (is-LocalReference call3formal@t0@0) (= c (|c#LocalReference| call3formal@t0@0))) (= t7_LocalName (|l#LocalReference| call3formal@t0@0))) (= (ControlFlow 0 11142) 11005)) inline$UpdateValueMax$9$Entry_correct)))) (let ((inline$DeepUpdateLocal$3$anon2_Else_correct (=> (and %lbl%+75 true) (=> (not (and (and (is-LocalReference call3formal@t0@0) (= c (|c#LocalReference| call3formal@t0@0))) (= t7_LocalName (|l#LocalReference| call3formal@t0@0)))) (and (=> (= (ControlFlow 0 10890) 11534) inline$DeepUpdateLocal$4$anon2_Then_correct) (=> (= (ControlFlow 0 10890) 11282) inline$DeepUpdateLocal$4$anon2_Else_correct)))))) (let ((inline$UpdateValueMax$8$anon3_Else$1_correct (=> (and %lbl%+76 true) (=> (= |inline$UpdateValueMax$8$dstValue'@1| (Map (store (|m#Map| t6) inline$UpdateValueMax$8$e@0 inline$UpdateValueMax$8$srcValue@0))) (and (=> (= (ControlFlow 0 10734) 11142) inline$DeepUpdateLocal$3$anon2_Then_correct) (=> (= (ControlFlow 0 10734) 10890) inline$DeepUpdateLocal$3$anon2_Else_correct)))))) (let ((inline$UpdateValue0$8$anon3_Then_correct (=> (and %lbl%+77 true) (=> (and (= inline$UpdateValueMax$8$srcPath@0 inline$UpdateValue0$8$dstPath@0) (= (ControlFlow 0 10714) 10734)) inline$UpdateValueMax$8$anon3_Else$1_correct)))) (let ((inline$UpdateValue0$8$Entry_correct (=> (and %lbl%+78 true) (=> (and (= inline$UpdateValue0$8$dstPath@0 (Cons inline$UpdateValueMax$8$dstPath@0 inline$UpdateValueMax$8$e@0)) (= inline$UpdateValue0$8$dstValue@0 (select (|m#Map| t6) inline$UpdateValueMax$8$e@0))) (and (=> (= (ControlFlow 0 10692) 10714) inline$UpdateValue0$8$anon3_Then_correct) (=> (= (ControlFlow 0 10692) 10704) inline$UpdateValue0$8$anon3_Else_correct)))))) (let ((inline$UpdateValueMax$8$anon3_Else_correct (=> (and %lbl%+79 true) (=> (and (not (= inline$UpdateValueMax$8$srcPath@0 inline$UpdateValueMax$8$dstPath@0)) (= (ControlFlow 0 10720) 10692)) inline$UpdateValue0$8$Entry_correct)))) (let ((inline$UpdateValueMax$8$anon3_Then_correct (=> (and %lbl%+80 true) (=> (= inline$UpdateValueMax$8$srcPath@0 inline$UpdateValueMax$8$dstPath@0) (and (=> (= (ControlFlow 0 10744) 11142) inline$DeepUpdateLocal$3$anon2_Then_correct) (=> (= (ControlFlow 0 10744) 10890) inline$DeepUpdateLocal$3$anon2_Else_correct)))))) (let ((inline$UpdateValueMax$8$Entry_correct (=> (and %lbl%+81 true) (=> (= inline$UpdateValueMax$8$srcPath@0 (|p#LocalReference| call3formal@t0@0)) (=> (and (= inline$UpdateValueMax$8$srcValue@0 (|v#LocalReference| call3formal@t0@0)) (= inline$UpdateValueMax$8$dstPath@0 Nil)) (and (=> (= (ControlFlow 0 10613) 10744) inline$UpdateValueMax$8$anon3_Then_correct) (=> (= (ControlFlow 0 10613) 10720) inline$UpdateValueMax$8$anon3_Else_correct))))))) (let ((inline$DeepUpdateLocal$2$anon2_Then_correct (=> (and %lbl%+82 true) (=> (and (and (and (is-LocalReference call3formal@t0@0) (= c (|c#LocalReference| call3formal@t0@0))) (= t6_LocalName (|l#LocalReference| call3formal@t0@0))) (= (ControlFlow 0 10750) 10613)) inline$UpdateValueMax$8$Entry_correct)))) (let ((inline$DeepUpdateLocal$2$anon2_Else_correct (=> (and %lbl%+83 true) (=> (not (and (and (is-LocalReference call3formal@t0@0) (= c (|c#LocalReference| call3formal@t0@0))) (= t6_LocalName (|l#LocalReference| call3formal@t0@0)))) (and (=> (= (ControlFlow 0 10498) 11142) inline$DeepUpdateLocal$3$anon2_Then_correct) (=> (= (ControlFlow 0 10498) 10890) inline$DeepUpdateLocal$3$anon2_Else_correct)))))) (let ((inline$UpdateValueMax$7$anon3_Else$1_correct (=> (and %lbl%+84 true) (=> (= |inline$UpdateValueMax$7$dstValue'@1| (Map (store (|m#Map| inline$LdConst$0$ret@1) inline$UpdateValueMax$7$e@0 inline$UpdateValueMax$7$srcValue@0))) (and (=> (= (ControlFlow 0 10342) 10750) inline$DeepUpdateLocal$2$anon2_Then_correct) (=> (= (ControlFlow 0 10342) 10498) inline$DeepUpdateLocal$2$anon2_Else_correct)))))) (let ((inline$UpdateValue0$7$anon3_Then_correct (=> (and %lbl%+85 true) (=> (and (= inline$UpdateValueMax$7$srcPath@0 inline$UpdateValue0$7$dstPath@0) (= (ControlFlow 0 10322) 10342)) inline$UpdateValueMax$7$anon3_Else$1_correct)))) (let ((inline$UpdateValue0$7$Entry_correct (=> (and %lbl%+86 true) (=> (and (= inline$UpdateValue0$7$dstPath@0 (Cons inline$UpdateValueMax$7$dstPath@0 inline$UpdateValueMax$7$e@0)) (= inline$UpdateValue0$7$dstValue@0 (select (|m#Map| inline$LdConst$0$ret@1) inline$UpdateValueMax$7$e@0))) (and (=> (= (ControlFlow 0 10300) 10322) inline$UpdateValue0$7$anon3_Then_correct) (=> (= (ControlFlow 0 10300) 10312) inline$UpdateValue0$7$anon3_Else_correct)))))) (let ((inline$UpdateValueMax$7$anon3_Else_correct (=> (and %lbl%+87 true) (=> (and (not (= inline$UpdateValueMax$7$srcPath@0 inline$UpdateValueMax$7$dstPath@0)) (= (ControlFlow 0 10328) 10300)) inline$UpdateValue0$7$Entry_correct)))) (let ((inline$UpdateValueMax$7$anon3_Then_correct (=> (and %lbl%+88 true) (=> (= inline$UpdateValueMax$7$srcPath@0 inline$UpdateValueMax$7$dstPath@0) (and (=> (= (ControlFlow 0 10352) 10750) inline$DeepUpdateLocal$2$anon2_Then_correct) (=> (= (ControlFlow 0 10352) 10498) inline$DeepUpdateLocal$2$anon2_Else_correct)))))) (let ((inline$UpdateValueMax$7$Entry_correct (=> (and %lbl%+89 true) (=> (= inline$UpdateValueMax$7$srcPath@0 (|p#LocalReference| call3formal@t0@0)) (=> (and (= inline$UpdateValueMax$7$srcValue@0 (|v#LocalReference| call3formal@t0@0)) (= inline$UpdateValueMax$7$dstPath@0 Nil)) (and (=> (= (ControlFlow 0 10221) 10352) inline$UpdateValueMax$7$anon3_Then_correct) (=> (= (ControlFlow 0 10221) 10328) inline$UpdateValueMax$7$anon3_Else_correct))))))) (let ((inline$DeepUpdateLocal$1$anon2_Then_correct (=> (and %lbl%+90 true) (=> (and (and (and (is-LocalReference call3formal@t0@0) (= c (|c#LocalReference| call3formal@t0@0))) (= t2_LocalName (|l#LocalReference| call3formal@t0@0))) (= (ControlFlow 0 10358) 10221)) inline$UpdateValueMax$7$Entry_correct)))) (let ((inline$DeepUpdateLocal$1$anon2_Else_correct (=> (and %lbl%+91 true) (=> (not (and (and (is-LocalReference call3formal@t0@0) (= c (|c#LocalReference| call3formal@t0@0))) (= t2_LocalName (|l#LocalReference| call3formal@t0@0)))) (and (=> (= (ControlFlow 0 10106) 10750) inline$DeepUpdateLocal$2$anon2_Then_correct) (=> (= (ControlFlow 0 10106) 10498) inline$DeepUpdateLocal$2$anon2_Else_correct)))))) (let ((inline$UpdateValueMax$6$anon3_Else$1_correct (=> (and %lbl%+92 true) (=> (= |inline$UpdateValueMax$6$dstValue'@1| (Map (store (|m#Map| inline$LdConst$0$ret@1) inline$UpdateValueMax$6$e@0 inline$UpdateValueMax$6$srcValue@0))) (and (=> (= (ControlFlow 0 9950) 10358) inline$DeepUpdateLocal$1$anon2_Then_correct) (=> (= (ControlFlow 0 9950) 10106) inline$DeepUpdateLocal$1$anon2_Else_correct)))))) (let ((inline$UpdateValue0$6$anon3_Then_correct (=> (and %lbl%+93 true) (=> (and (= inline$UpdateValueMax$6$srcPath@0 inline$UpdateValue0$6$dstPath@0) (= (ControlFlow 0 9930) 9950)) inline$UpdateValueMax$6$anon3_Else$1_correct)))) (let ((inline$UpdateValue0$6$Entry_correct (=> (and %lbl%+94 true) (=> (and (= inline$UpdateValue0$6$dstPath@0 (Cons inline$UpdateValueMax$6$dstPath@0 inline$UpdateValueMax$6$e@0)) (= inline$UpdateValue0$6$dstValue@0 (select (|m#Map| inline$LdConst$0$ret@1) inline$UpdateValueMax$6$e@0))) (and (=> (= (ControlFlow 0 9908) 9930) inline$UpdateValue0$6$anon3_Then_correct) (=> (= (ControlFlow 0 9908) 9920) inline$UpdateValue0$6$anon3_Else_correct)))))) (let ((inline$UpdateValueMax$6$anon3_Else_correct (=> (and %lbl%+95 true) (=> (and (not (= inline$UpdateValueMax$6$srcPath@0 inline$UpdateValueMax$6$dstPath@0)) (= (ControlFlow 0 9936) 9908)) inline$UpdateValue0$6$Entry_correct)))) (let ((inline$UpdateValueMax$6$anon3_Then_correct (=> (and %lbl%+96 true) (=> (= inline$UpdateValueMax$6$srcPath@0 inline$UpdateValueMax$6$dstPath@0) (and (=> (= (ControlFlow 0 9960) 10358) inline$DeepUpdateLocal$1$anon2_Then_correct) (=> (= (ControlFlow 0 9960) 10106) inline$DeepUpdateLocal$1$anon2_Else_correct)))))) (let ((inline$UpdateValueMax$6$Entry_correct (=> (and %lbl%+97 true) (=> (= inline$UpdateValueMax$6$srcPath@0 (|p#LocalReference| call3formal@t0@0)) (=> (and (= inline$UpdateValueMax$6$srcValue@0 (|v#LocalReference| call3formal@t0@0)) (= inline$UpdateValueMax$6$dstPath@0 Nil)) (and (=> (= (ControlFlow 0 9829) 9960) inline$UpdateValueMax$6$anon3_Then_correct) (=> (= (ControlFlow 0 9829) 9936) inline$UpdateValueMax$6$anon3_Else_correct))))))) (let ((inline$DeepUpdateLocal$0$anon2_Then_correct (=> (and %lbl%+98 true) (=> (and (and (and (is-LocalReference call3formal@t0@0) (= c (|c#LocalReference| call3formal@t0@0))) (= t0_LocalName (|l#LocalReference| call3formal@t0@0))) (= (ControlFlow 0 9966) 9829)) inline$UpdateValueMax$6$Entry_correct)))) (let ((inline$DeepUpdateLocal$0$anon2_Else_correct (=> (and %lbl%+99 true) (=> (not (and (and (is-LocalReference call3formal@t0@0) (= c (|c#LocalReference| call3formal@t0@0))) (= t0_LocalName (|l#LocalReference| call3formal@t0@0)))) (and (=> (= (ControlFlow 0 9714) 10358) inline$DeepUpdateLocal$1$anon2_Then_correct) (=> (= (ControlFlow 0 9714) 10106) inline$DeepUpdateLocal$1$anon2_Else_correct)))))) (let ((inline$DeepUpdateReference$2$anon9_Then$1_correct (=> (and %lbl%+100 true) (=> (= |inline$DeepUpdateReference$2$dst'@2| (LocalReference (|c#LocalReference| t5) (|l#LocalReference| t5) (|p#LocalReference| t5) |inline$UpdateValueMax$5$dstValue'|)) (and (=> (= (ControlFlow 0 9576) 9966) inline$DeepUpdateLocal$0$anon2_Then_correct) (=> (= (ControlFlow 0 9576) 9714) inline$DeepUpdateLocal$0$anon2_Else_correct)))))) (let ((inline$UpdateValueMax$5$anon3_Else$1_correct (=> (and %lbl%+101 true) (=> (and (= |inline$UpdateValueMax$5$dstValue'@1| (Map (store (|m#Map| inline$UpdateValueMax$5$dstValue@0) inline$UpdateValueMax$5$e@0 inline$UpdateValueMax$5$srcValue@0))) (= (ControlFlow 0 9542) 9576)) inline$DeepUpdateReference$2$anon9_Then$1_correct)))) (let ((inline$UpdateValue0$5$anon3_Then_correct (=> (and %lbl%+102 true) (=> (and (= inline$UpdateValueMax$5$srcPath@0 inline$UpdateValue0$5$dstPath@0) (= (ControlFlow 0 9522) 9542)) inline$UpdateValueMax$5$anon3_Else$1_correct)))) (let ((inline$UpdateValue0$5$Entry_correct (=> (and %lbl%+103 true) (=> (and (= inline$UpdateValue0$5$dstPath@0 (Cons inline$UpdateValueMax$5$dstPath@0 inline$UpdateValueMax$5$e@0)) (= inline$UpdateValue0$5$dstValue@0 (select (|m#Map| inline$UpdateValueMax$5$dstValue@0) inline$UpdateValueMax$5$e@0))) (and (=> (= (ControlFlow 0 9500) 9522) inline$UpdateValue0$5$anon3_Then_correct) (=> (= (ControlFlow 0 9500) 9512) inline$UpdateValue0$5$anon3_Else_correct)))))) (let ((inline$UpdateValueMax$5$anon3_Else_correct (=> (and %lbl%+104 true) (=> (and (not (= inline$UpdateValueMax$5$srcPath@0 inline$UpdateValueMax$5$dstPath@0)) (= (ControlFlow 0 9528) 9500)) inline$UpdateValue0$5$Entry_correct)))) (let ((inline$UpdateValueMax$5$anon3_Then_correct (=> (and %lbl%+105 true) (=> (and (= inline$UpdateValueMax$5$srcPath@0 inline$UpdateValueMax$5$dstPath@0) (= (ControlFlow 0 9552) 9576)) inline$DeepUpdateReference$2$anon9_Then$1_correct)))) (let ((inline$UpdateValueMax$5$Entry_correct (=> (and %lbl%+106 true) (=> (and (and (= inline$UpdateValueMax$5$srcPath@0 (|p#LocalReference| call3formal@t0@0)) (= inline$UpdateValueMax$5$srcValue@0 (|v#LocalReference| call3formal@t0@0))) (and (= inline$UpdateValueMax$5$dstPath@0 (|p#LocalReference| t5)) (= inline$UpdateValueMax$5$dstValue@0 (|v#LocalReference| t5)))) (and (=> (= (ControlFlow 0 9421) 9552) inline$UpdateValueMax$5$anon3_Then_correct) (=> (= (ControlFlow 0 9421) 9528) inline$UpdateValueMax$5$anon3_Else_correct)))))) (let ((inline$DeepUpdateReference$2$anon9_Then_correct (=> (and %lbl%+107 true) (=> (and inline$IsPrefixMax$5$isPrefix@1 (= (ControlFlow 0 9558) 9421)) inline$UpdateValueMax$5$Entry_correct)))) (let ((inline$DeepUpdateReference$2$anon9_Else_correct (=> (and %lbl%+108 true) (=> (not inline$IsPrefixMax$5$isPrefix@1) (and (=> (= (ControlFlow 0 9324) 9966) inline$DeepUpdateLocal$0$anon2_Then_correct) (=> (= (ControlFlow 0 9324) 9714) inline$DeepUpdateLocal$0$anon2_Else_correct)))))) (let ((inline$IsPrefixMax$5$anon5_Else$1_correct (=> (and %lbl%+109 true) (=> (and (=> inline$IsPrefixMax$5$isPrefix@1 inline$IsPrefix0$5$isPrefix@1) (=> inline$IsPrefix0$5$isPrefix@1 inline$IsPrefixMax$5$isPrefix@1)) (and (=> (= (ControlFlow 0 9290) 9558) inline$DeepUpdateReference$2$anon9_Then_correct) (=> (= (ControlFlow 0 9290) 9324) inline$DeepUpdateReference$2$anon9_Else_correct)))))) (let ((inline$IsPrefix0$5$anon5_Then_correct (=> (and %lbl%+110 true) (=> (= inline$IsPrefix0$5$srcPath@0 Nil) (=> (and (and (=> inline$IsPrefix0$5$isPrefix@1 false) (=> false inline$IsPrefix0$5$isPrefix@1)) (= (ControlFlow 0 9272) 9290)) inline$IsPrefixMax$5$anon5_Else$1_correct))))) (let ((inline$IsPrefix0$5$anon4_Else_correct (=> (and %lbl%+111 true) (=> (not (= inline$IsPrefix0$5$srcPath@0 inline$IsPrefixMax$5$dstPath@0)) (and (=> (= (ControlFlow 0 9252) 9272) inline$IsPrefix0$5$anon5_Then_correct) (=> (= (ControlFlow 0 9252) 9262) inline$IsPrefix0$5$anon5_Else_correct)))))) (let ((inline$IsPrefix0$5$anon4_Then_correct (=> (and %lbl%+112 true) (=> (= inline$IsPrefix0$5$srcPath@0 inline$IsPrefixMax$5$dstPath@0) (=> (and (and (=> inline$IsPrefix0$5$isPrefix@1 true) (=> true inline$IsPrefix0$5$isPrefix@1)) (= (ControlFlow 0 9282) 9290)) inline$IsPrefixMax$5$anon5_Else$1_correct))))) (let ((inline$IsPrefix0$5$Entry_correct (=> (and %lbl%+113 true) (=> (= inline$IsPrefix0$5$srcPath@0 (|p#Cons| inline$IsPrefixMax$5$srcPath@0)) (and (=> (= (ControlFlow 0 9242) 9282) inline$IsPrefix0$5$anon4_Then_correct) (=> (= (ControlFlow 0 9242) 9252) inline$IsPrefix0$5$anon4_Else_correct)))))) (let ((inline$IsPrefixMax$5$anon5_Else_correct (=> (and %lbl%+114 true) (=> (and (not (= inline$IsPrefixMax$5$srcPath@0 Nil)) (= (ControlFlow 0 9288) 9242)) inline$IsPrefix0$5$Entry_correct)))) (let ((inline$IsPrefixMax$5$anon5_Then_correct (=> (and %lbl%+115 true) (=> (= inline$IsPrefixMax$5$srcPath@0 Nil) (=> (and (=> inline$IsPrefixMax$5$isPrefix@1 false) (=> false inline$IsPrefixMax$5$isPrefix@1)) (and (=> (= (ControlFlow 0 9300) 9558) inline$DeepUpdateReference$2$anon9_Then_correct) (=> (= (ControlFlow 0 9300) 9324) inline$DeepUpdateReference$2$anon9_Else_correct))))))) (let ((inline$IsPrefixMax$5$anon4_Else_correct (=> (and %lbl%+116 true) (=> (not (= inline$IsPrefixMax$5$srcPath@0 inline$IsPrefixMax$5$dstPath@0)) (and (=> (= (ControlFlow 0 9167) 9300) inline$IsPrefixMax$5$anon5_Then_correct) (=> (= (ControlFlow 0 9167) 9288) inline$IsPrefixMax$5$anon5_Else_correct)))))) (let ((inline$IsPrefixMax$5$anon4_Then_correct (=> (and %lbl%+117 true) (=> (= inline$IsPrefixMax$5$srcPath@0 inline$IsPrefixMax$5$dstPath@0) (=> (and (=> inline$IsPrefixMax$5$isPrefix@1 true) (=> true inline$IsPrefixMax$5$isPrefix@1)) (and (=> (= (ControlFlow 0 9310) 9558) inline$DeepUpdateReference$2$anon9_Then_correct) (=> (= (ControlFlow 0 9310) 9324) inline$DeepUpdateReference$2$anon9_Else_correct))))))) (let ((inline$IsPrefixMax$5$Entry_correct (=> (and %lbl%+118 true) (=> (and (= inline$IsPrefixMax$5$dstPath@0 (|p#LocalReference| t5)) (= inline$IsPrefixMax$5$srcPath@0 (|p#LocalReference| call3formal@t0@0))) (and (=> (= (ControlFlow 0 9157) 9310) inline$IsPrefixMax$5$anon4_Then_correct) (=> (= (ControlFlow 0 9157) 9167) inline$IsPrefixMax$5$anon4_Else_correct)))))) (let ((inline$DeepUpdateReference$2$anon8_Then_correct (=> (and %lbl%+119 true) (=> (and (and (and (is-LocalReference t5) (= (|c#LocalReference| call3formal@t0@0) (|c#LocalReference| t5))) (= (|l#LocalReference| call3formal@t0@0) (|l#LocalReference| t5))) (= (ControlFlow 0 9316) 9157)) inline$IsPrefixMax$5$Entry_correct)))) (let ((inline$DeepUpdateReference$2$anon8_Else_correct (=> (and %lbl%+120 true) (=> (not (and (and (is-LocalReference t5) (= (|c#LocalReference| call3formal@t0@0) (|c#LocalReference| t5))) (= (|l#LocalReference| call3formal@t0@0) (|l#LocalReference| t5)))) (and (=> (= (ControlFlow 0 9056) 9966) inline$DeepUpdateLocal$0$anon2_Then_correct) (=> (= (ControlFlow 0 9056) 9714) inline$DeepUpdateLocal$0$anon2_Else_correct)))))) (let ((inline$DeepUpdateReference$2$anon7_Then_correct (=> (and %lbl%+121 true) (=> (is-LocalReference call3formal@t0@0) (and (=> (= (ControlFlow 0 9024) 9316) inline$DeepUpdateReference$2$anon8_Then_correct) (=> (= (ControlFlow 0 9024) 9056) inline$DeepUpdateReference$2$anon8_Else_correct)))))) (let ((inline$DeepUpdateReference$2$anon11_Then$1_correct (=> (and %lbl%+122 true) (=> (= |inline$DeepUpdateReference$2$dst'@1| (GlobalReference (|a#GlobalReference| t5) (|t#GlobalReference| t5) (|p#GlobalReference| t5) |inline$UpdateValueMax$4$dstValue'|)) (and (=> (= (ControlFlow 0 9018) 9966) inline$DeepUpdateLocal$0$anon2_Then_correct) (=> (= (ControlFlow 0 9018) 9714) inline$DeepUpdateLocal$0$anon2_Else_correct)))))) (let ((inline$UpdateValueMax$4$anon3_Else$1_correct (=> (and %lbl%+123 true) (=> (and (= |inline$UpdateValueMax$4$dstValue'@1| (Map (store (|m#Map| inline$UpdateValueMax$4$dstValue@0) inline$UpdateValueMax$4$e@0 inline$UpdateValueMax$4$srcValue@0))) (= (ControlFlow 0 8984) 9018)) inline$DeepUpdateReference$2$anon11_Then$1_correct)))) (let ((inline$UpdateValue0$4$anon3_Then_correct (=> (and %lbl%+124 true) (=> (and (= inline$UpdateValueMax$4$srcPath@0 inline$UpdateValue0$4$dstPath@0) (= (ControlFlow 0 8964) 8984)) inline$UpdateValueMax$4$anon3_Else$1_correct)))) (let ((inline$UpdateValue0$4$Entry_correct (=> (and %lbl%+125 true) (=> (and (= inline$UpdateValue0$4$dstPath@0 (Cons inline$UpdateValueMax$4$dstPath@0 inline$UpdateValueMax$4$e@0)) (= inline$UpdateValue0$4$dstValue@0 (select (|m#Map| inline$UpdateValueMax$4$dstValue@0) inline$UpdateValueMax$4$e@0))) (and (=> (= (ControlFlow 0 8942) 8964) inline$UpdateValue0$4$anon3_Then_correct) (=> (= (ControlFlow 0 8942) 8954) inline$UpdateValue0$4$anon3_Else_correct)))))) (let ((inline$UpdateValueMax$4$anon3_Else_correct (=> (and %lbl%+126 true) (=> (and (not (= inline$UpdateValueMax$4$srcPath@0 inline$UpdateValueMax$4$dstPath@0)) (= (ControlFlow 0 8970) 8942)) inline$UpdateValue0$4$Entry_correct)))) (let ((inline$UpdateValueMax$4$anon3_Then_correct (=> (and %lbl%+127 true) (=> (and (= inline$UpdateValueMax$4$srcPath@0 inline$UpdateValueMax$4$dstPath@0) (= (ControlFlow 0 8994) 9018)) inline$DeepUpdateReference$2$anon11_Then$1_correct)))) (let ((inline$UpdateValueMax$4$Entry_correct (=> (and %lbl%+128 true) (=> (and (and (= inline$UpdateValueMax$4$srcPath@0 (|p#GlobalReference| call3formal@t0@0)) (= inline$UpdateValueMax$4$srcValue@0 (|v#GlobalReference| call3formal@t0@0))) (and (= inline$UpdateValueMax$4$dstPath@0 (|p#GlobalReference| t5)) (= inline$UpdateValueMax$4$dstValue@0 (|v#GlobalReference| t5)))) (and (=> (= (ControlFlow 0 8863) 8994) inline$UpdateValueMax$4$anon3_Then_correct) (=> (= (ControlFlow 0 8863) 8970) inline$UpdateValueMax$4$anon3_Else_correct)))))) (let ((inline$DeepUpdateReference$2$anon11_Then_correct (=> (and %lbl%+129 true) (=> (and inline$IsPrefixMax$4$isPrefix@1 (= (ControlFlow 0 9000) 8863)) inline$UpdateValueMax$4$Entry_correct)))) (let ((inline$DeepUpdateReference$2$anon11_Else_correct (=> (and %lbl%+130 true) (=> (not inline$IsPrefixMax$4$isPrefix@1) (and (=> (= (ControlFlow 0 8766) 9966) inline$DeepUpdateLocal$0$anon2_Then_correct) (=> (= (ControlFlow 0 8766) 9714) inline$DeepUpdateLocal$0$anon2_Else_correct)))))) (let ((inline$IsPrefixMax$4$anon5_Else$1_correct (=> (and %lbl%+131 true) (=> (and (=> inline$IsPrefixMax$4$isPrefix@1 inline$IsPrefix0$4$isPrefix@1) (=> inline$IsPrefix0$4$isPrefix@1 inline$IsPrefixMax$4$isPrefix@1)) (and (=> (= (ControlFlow 0 8732) 9000) inline$DeepUpdateReference$2$anon11_Then_correct) (=> (= (ControlFlow 0 8732) 8766) inline$DeepUpdateReference$2$anon11_Else_correct)))))) (let ((inline$IsPrefix0$4$anon5_Then_correct (=> (and %lbl%+132 true) (=> (= inline$IsPrefix0$4$srcPath@0 Nil) (=> (and (and (=> inline$IsPrefix0$4$isPrefix@1 false) (=> false inline$IsPrefix0$4$isPrefix@1)) (= (ControlFlow 0 8714) 8732)) inline$IsPrefixMax$4$anon5_Else$1_correct))))) (let ((inline$IsPrefix0$4$anon4_Else_correct (=> (and %lbl%+133 true) (=> (not (= inline$IsPrefix0$4$srcPath@0 inline$IsPrefixMax$4$dstPath@0)) (and (=> (= (ControlFlow 0 8694) 8714) inline$IsPrefix0$4$anon5_Then_correct) (=> (= (ControlFlow 0 8694) 8704) inline$IsPrefix0$4$anon5_Else_correct)))))) (let ((inline$IsPrefix0$4$anon4_Then_correct (=> (and %lbl%+134 true) (=> (= inline$IsPrefix0$4$srcPath@0 inline$IsPrefixMax$4$dstPath@0) (=> (and (and (=> inline$IsPrefix0$4$isPrefix@1 true) (=> true inline$IsPrefix0$4$isPrefix@1)) (= (ControlFlow 0 8724) 8732)) inline$IsPrefixMax$4$anon5_Else$1_correct))))) (let ((inline$IsPrefix0$4$Entry_correct (=> (and %lbl%+135 true) (=> (= inline$IsPrefix0$4$srcPath@0 (|p#Cons| inline$IsPrefixMax$4$srcPath@0)) (and (=> (= (ControlFlow 0 8684) 8724) inline$IsPrefix0$4$anon4_Then_correct) (=> (= (ControlFlow 0 8684) 8694) inline$IsPrefix0$4$anon4_Else_correct)))))) (let ((inline$IsPrefixMax$4$anon5_Else_correct (=> (and %lbl%+136 true) (=> (and (not (= inline$IsPrefixMax$4$srcPath@0 Nil)) (= (ControlFlow 0 8730) 8684)) inline$IsPrefix0$4$Entry_correct)))) (let ((inline$IsPrefixMax$4$anon5_Then_correct (=> (and %lbl%+137 true) (=> (= inline$IsPrefixMax$4$srcPath@0 Nil) (=> (and (=> inline$IsPrefixMax$4$isPrefix@1 false) (=> false inline$IsPrefixMax$4$isPrefix@1)) (and (=> (= (ControlFlow 0 8742) 9000) inline$DeepUpdateReference$2$anon11_Then_correct) (=> (= (ControlFlow 0 8742) 8766) inline$DeepUpdateReference$2$anon11_Else_correct))))))) (let ((inline$IsPrefixMax$4$anon4_Else_correct (=> (and %lbl%+138 true) (=> (not (= inline$IsPrefixMax$4$srcPath@0 inline$IsPrefixMax$4$dstPath@0)) (and (=> (= (ControlFlow 0 8609) 8742) inline$IsPrefixMax$4$anon5_Then_correct) (=> (= (ControlFlow 0 8609) 8730) inline$IsPrefixMax$4$anon5_Else_correct)))))) (let ((inline$IsPrefixMax$4$anon4_Then_correct (=> (and %lbl%+139 true) (=> (= inline$IsPrefixMax$4$srcPath@0 inline$IsPrefixMax$4$dstPath@0) (=> (and (=> inline$IsPrefixMax$4$isPrefix@1 true) (=> true inline$IsPrefixMax$4$isPrefix@1)) (and (=> (= (ControlFlow 0 8752) 9000) inline$DeepUpdateReference$2$anon11_Then_correct) (=> (= (ControlFlow 0 8752) 8766) inline$DeepUpdateReference$2$anon11_Else_correct))))))) (let ((inline$IsPrefixMax$4$Entry_correct (=> (and %lbl%+140 true) (=> (and (= inline$IsPrefixMax$4$dstPath@0 (|p#GlobalReference| t5)) (= inline$IsPrefixMax$4$srcPath@0 (|p#GlobalReference| call3formal@t0@0))) (and (=> (= (ControlFlow 0 8599) 8752) inline$IsPrefixMax$4$anon4_Then_correct) (=> (= (ControlFlow 0 8599) 8609) inline$IsPrefixMax$4$anon4_Else_correct)))))) (let ((inline$DeepUpdateReference$2$anon10_Then_correct (=> (and %lbl%+141 true) (=> (and (and (and (is-GlobalReference t5) (= (|a#GlobalReference| call3formal@t0@0) (|a#GlobalReference| t5))) (= (|t#GlobalReference| call3formal@t0@0) (|t#GlobalReference| t5))) (= (ControlFlow 0 8758) 8599)) inline$IsPrefixMax$4$Entry_correct)))) (let ((inline$DeepUpdateReference$2$anon10_Else_correct (=> (and %lbl%+142 true) (=> (not (and (and (is-GlobalReference t5) (= (|a#GlobalReference| call3formal@t0@0) (|a#GlobalReference| t5))) (= (|t#GlobalReference| call3formal@t0@0) (|t#GlobalReference| t5)))) (and (=> (= (ControlFlow 0 8498) 9966) inline$DeepUpdateLocal$0$anon2_Then_correct) (=> (= (ControlFlow 0 8498) 9714) inline$DeepUpdateLocal$0$anon2_Else_correct)))))) (let ((inline$DeepUpdateReference$2$anon7_Else_correct (=> (and %lbl%+143 true) (=> (not (is-LocalReference call3formal@t0@0)) (and (=> (= (ControlFlow 0 8466) 8758) inline$DeepUpdateReference$2$anon10_Then_correct) (=> (= (ControlFlow 0 8466) 8498) inline$DeepUpdateReference$2$anon10_Else_correct)))))) (let ((inline$DeepUpdateReference$1$anon9_Then$1_correct (=> (and %lbl%+144 true) (=> (= |inline$DeepUpdateReference$1$dst'@2| (LocalReference (|c#LocalReference| inline$BorrowLoc$0$dst@1) (|l#LocalReference| inline$BorrowLoc$0$dst@1) (|p#LocalReference| inline$BorrowLoc$0$dst@1) |inline$UpdateValueMax$3$dstValue'|)) (and (=> (= (ControlFlow 0 8204) 9024) inline$DeepUpdateReference$2$anon7_Then_correct) (=> (= (ControlFlow 0 8204) 8466) inline$DeepUpdateReference$2$anon7_Else_correct)))))) (let ((inline$UpdateValueMax$3$anon3_Else$1_correct (=> (and %lbl%+145 true) (=> (and (= |inline$UpdateValueMax$3$dstValue'@1| (Map (store (|m#Map| inline$UpdateValueMax$3$dstValue@0) inline$UpdateValueMax$3$e@0 inline$UpdateValueMax$3$srcValue@0))) (= (ControlFlow 0 8170) 8204)) inline$DeepUpdateReference$1$anon9_Then$1_correct)))) (let ((inline$UpdateValue0$3$anon3_Then_correct (=> (and %lbl%+146 true) (=> (and (= inline$UpdateValueMax$3$srcPath@0 inline$UpdateValue0$3$dstPath@0) (= (ControlFlow 0 8150) 8170)) inline$UpdateValueMax$3$anon3_Else$1_correct)))) (let ((inline$UpdateValue0$3$Entry_correct (=> (and %lbl%+147 true) (=> (and (= inline$UpdateValue0$3$dstPath@0 (Cons inline$UpdateValueMax$3$dstPath@0 inline$UpdateValueMax$3$e@0)) (= inline$UpdateValue0$3$dstValue@0 (select (|m#Map| inline$UpdateValueMax$3$dstValue@0) inline$UpdateValueMax$3$e@0))) (and (=> (= (ControlFlow 0 8128) 8150) inline$UpdateValue0$3$anon3_Then_correct) (=> (= (ControlFlow 0 8128) 8140) inline$UpdateValue0$3$anon3_Else_correct)))))) (let ((inline$UpdateValueMax$3$anon3_Else_correct (=> (and %lbl%+148 true) (=> (and (not (= inline$UpdateValueMax$3$srcPath@0 inline$UpdateValueMax$3$dstPath@0)) (= (ControlFlow 0 8156) 8128)) inline$UpdateValue0$3$Entry_correct)))) (let ((inline$UpdateValueMax$3$anon3_Then_correct (=> (and %lbl%+149 true) (=> (and (= inline$UpdateValueMax$3$srcPath@0 inline$UpdateValueMax$3$dstPath@0) (= (ControlFlow 0 8180) 8204)) inline$DeepUpdateReference$1$anon9_Then$1_correct)))) (let ((inline$UpdateValueMax$3$Entry_correct (=> (and %lbl%+150 true) (=> (and (and (= inline$UpdateValueMax$3$srcPath@0 (|p#LocalReference| call3formal@t0@0)) (= inline$UpdateValueMax$3$srcValue@0 (|v#LocalReference| call3formal@t0@0))) (and (= inline$UpdateValueMax$3$dstPath@0 (|p#LocalReference| inline$BorrowLoc$0$dst@1)) (= inline$UpdateValueMax$3$dstValue@0 (|v#LocalReference| inline$BorrowLoc$0$dst@1)))) (and (=> (= (ControlFlow 0 8049) 8180) inline$UpdateValueMax$3$anon3_Then_correct) (=> (= (ControlFlow 0 8049) 8156) inline$UpdateValueMax$3$anon3_Else_correct)))))) (let ((inline$DeepUpdateReference$1$anon9_Then_correct (=> (and %lbl%+151 true) (=> (and inline$IsPrefixMax$3$isPrefix@1 (= (ControlFlow 0 8186) 8049)) inline$UpdateValueMax$3$Entry_correct)))) (let ((inline$DeepUpdateReference$1$anon9_Else_correct (=> (and %lbl%+152 true) (=> (not inline$IsPrefixMax$3$isPrefix@1) (and (=> (= (ControlFlow 0 7952) 9024) inline$DeepUpdateReference$2$anon7_Then_correct) (=> (= (ControlFlow 0 7952) 8466) inline$DeepUpdateReference$2$anon7_Else_correct)))))) (let ((inline$IsPrefixMax$3$anon5_Else$1_correct (=> (and %lbl%+153 true) (=> (and (=> inline$IsPrefixMax$3$isPrefix@1 inline$IsPrefix0$3$isPrefix@1) (=> inline$IsPrefix0$3$isPrefix@1 inline$IsPrefixMax$3$isPrefix@1)) (and (=> (= (ControlFlow 0 7918) 8186) inline$DeepUpdateReference$1$anon9_Then_correct) (=> (= (ControlFlow 0 7918) 7952) inline$DeepUpdateReference$1$anon9_Else_correct)))))) (let ((inline$IsPrefix0$3$anon5_Then_correct (=> (and %lbl%+154 true) (=> (= inline$IsPrefix0$3$srcPath@0 Nil) (=> (and (and (=> inline$IsPrefix0$3$isPrefix@1 false) (=> false inline$IsPrefix0$3$isPrefix@1)) (= (ControlFlow 0 7900) 7918)) inline$IsPrefixMax$3$anon5_Else$1_correct))))) (let ((inline$IsPrefix0$3$anon4_Else_correct (=> (and %lbl%+155 true) (=> (not (= inline$IsPrefix0$3$srcPath@0 inline$IsPrefixMax$3$dstPath@0)) (and (=> (= (ControlFlow 0 7880) 7900) inline$IsPrefix0$3$anon5_Then_correct) (=> (= (ControlFlow 0 7880) 7890) inline$IsPrefix0$3$anon5_Else_correct)))))) (let ((inline$IsPrefix0$3$anon4_Then_correct (=> (and %lbl%+156 true) (=> (= inline$IsPrefix0$3$srcPath@0 inline$IsPrefixMax$3$dstPath@0) (=> (and (and (=> inline$IsPrefix0$3$isPrefix@1 true) (=> true inline$IsPrefix0$3$isPrefix@1)) (= (ControlFlow 0 7910) 7918)) inline$IsPrefixMax$3$anon5_Else$1_correct))))) (let ((inline$IsPrefix0$3$Entry_correct (=> (and %lbl%+157 true) (=> (= inline$IsPrefix0$3$srcPath@0 (|p#Cons| inline$IsPrefixMax$3$srcPath@0)) (and (=> (= (ControlFlow 0 7870) 7910) inline$IsPrefix0$3$anon4_Then_correct) (=> (= (ControlFlow 0 7870) 7880) inline$IsPrefix0$3$anon4_Else_correct)))))) (let ((inline$IsPrefixMax$3$anon5_Else_correct (=> (and %lbl%+158 true) (=> (and (not (= inline$IsPrefixMax$3$srcPath@0 Nil)) (= (ControlFlow 0 7916) 7870)) inline$IsPrefix0$3$Entry_correct)))) (let ((inline$IsPrefixMax$3$anon5_Then_correct (=> (and %lbl%+159 true) (=> (= inline$IsPrefixMax$3$srcPath@0 Nil) (=> (and (=> inline$IsPrefixMax$3$isPrefix@1 false) (=> false inline$IsPrefixMax$3$isPrefix@1)) (and (=> (= (ControlFlow 0 7928) 8186) inline$DeepUpdateReference$1$anon9_Then_correct) (=> (= (ControlFlow 0 7928) 7952) inline$DeepUpdateReference$1$anon9_Else_correct))))))) (let ((inline$IsPrefixMax$3$anon4_Else_correct (=> (and %lbl%+160 true) (=> (not (= inline$IsPrefixMax$3$srcPath@0 inline$IsPrefixMax$3$dstPath@0)) (and (=> (= (ControlFlow 0 7795) 7928) inline$IsPrefixMax$3$anon5_Then_correct) (=> (= (ControlFlow 0 7795) 7916) inline$IsPrefixMax$3$anon5_Else_correct)))))) (let ((inline$IsPrefixMax$3$anon4_Then_correct (=> (and %lbl%+161 true) (=> (= inline$IsPrefixMax$3$srcPath@0 inline$IsPrefixMax$3$dstPath@0) (=> (and (=> inline$IsPrefixMax$3$isPrefix@1 true) (=> true inline$IsPrefixMax$3$isPrefix@1)) (and (=> (= (ControlFlow 0 7938) 8186) inline$DeepUpdateReference$1$anon9_Then_correct) (=> (= (ControlFlow 0 7938) 7952) inline$DeepUpdateReference$1$anon9_Else_correct))))))) (let ((inline$IsPrefixMax$3$Entry_correct (=> (and %lbl%+162 true) (=> (and (= inline$IsPrefixMax$3$dstPath@0 (|p#LocalReference| inline$BorrowLoc$0$dst@1)) (= inline$IsPrefixMax$3$srcPath@0 (|p#LocalReference| call3formal@t0@0))) (and (=> (= (ControlFlow 0 7785) 7938) inline$IsPrefixMax$3$anon4_Then_correct) (=> (= (ControlFlow 0 7785) 7795) inline$IsPrefixMax$3$anon4_Else_correct)))))) (let ((inline$DeepUpdateReference$1$anon8_Then_correct (=> (and %lbl%+163 true) (=> (and (and (and (is-LocalReference inline$BorrowLoc$0$dst@1) (= (|c#LocalReference| call3formal@t0@0) (|c#LocalReference| inline$BorrowLoc$0$dst@1))) (= (|l#LocalReference| call3formal@t0@0) (|l#LocalReference| inline$BorrowLoc$0$dst@1))) (= (ControlFlow 0 7944) 7785)) inline$IsPrefixMax$3$Entry_correct)))) (let ((inline$DeepUpdateReference$1$anon8_Else_correct (=> (and %lbl%+164 true) (=> (not (and (and (is-LocalReference inline$BorrowLoc$0$dst@1) (= (|c#LocalReference| call3formal@t0@0) (|c#LocalReference| inline$BorrowLoc$0$dst@1))) (= (|l#LocalReference| call3formal@t0@0) (|l#LocalReference| inline$BorrowLoc$0$dst@1)))) (and (=> (= (ControlFlow 0 7684) 9024) inline$DeepUpdateReference$2$anon7_Then_correct) (=> (= (ControlFlow 0 7684) 8466) inline$DeepUpdateReference$2$anon7_Else_correct)))))) (let ((inline$DeepUpdateReference$1$anon7_Then_correct (=> (and %lbl%+165 true) (=> (is-LocalReference call3formal@t0@0) (and (=> (= (ControlFlow 0 7652) 7944) inline$DeepUpdateReference$1$anon8_Then_correct) (=> (= (ControlFlow 0 7652) 7684) inline$DeepUpdateReference$1$anon8_Else_correct)))))) (let ((inline$DeepUpdateReference$1$anon11_Then$1_correct (=> (and %lbl%+166 true) (=> (= |inline$DeepUpdateReference$1$dst'@1| (GlobalReference (|a#GlobalReference| inline$BorrowLoc$0$dst@1) (|t#GlobalReference| inline$BorrowLoc$0$dst@1) (|p#GlobalReference| inline$BorrowLoc$0$dst@1) |inline$UpdateValueMax$2$dstValue'|)) (and (=> (= (ControlFlow 0 7646) 9024) inline$DeepUpdateReference$2$anon7_Then_correct) (=> (= (ControlFlow 0 7646) 8466) inline$DeepUpdateReference$2$anon7_Else_correct)))))) (let ((inline$UpdateValueMax$2$anon3_Else$1_correct (=> (and %lbl%+167 true) (=> (and (= |inline$UpdateValueMax$2$dstValue'@1| (Map (store (|m#Map| inline$UpdateValueMax$2$dstValue@0) inline$UpdateValueMax$2$e@0 inline$UpdateValueMax$2$srcValue@0))) (= (ControlFlow 0 7612) 7646)) inline$DeepUpdateReference$1$anon11_Then$1_correct)))) (let ((inline$UpdateValue0$2$anon3_Then_correct (=> (and %lbl%+168 true) (=> (and (= inline$UpdateValueMax$2$srcPath@0 inline$UpdateValue0$2$dstPath@0) (= (ControlFlow 0 7592) 7612)) inline$UpdateValueMax$2$anon3_Else$1_correct)))) (let ((inline$UpdateValue0$2$Entry_correct (=> (and %lbl%+169 true) (=> (and (= inline$UpdateValue0$2$dstPath@0 (Cons inline$UpdateValueMax$2$dstPath@0 inline$UpdateValueMax$2$e@0)) (= inline$UpdateValue0$2$dstValue@0 (select (|m#Map| inline$UpdateValueMax$2$dstValue@0) inline$UpdateValueMax$2$e@0))) (and (=> (= (ControlFlow 0 7570) 7592) inline$UpdateValue0$2$anon3_Then_correct) (=> (= (ControlFlow 0 7570) 7582) inline$UpdateValue0$2$anon3_Else_correct)))))) (let ((inline$UpdateValueMax$2$anon3_Else_correct (=> (and %lbl%+170 true) (=> (and (not (= inline$UpdateValueMax$2$srcPath@0 inline$UpdateValueMax$2$dstPath@0)) (= (ControlFlow 0 7598) 7570)) inline$UpdateValue0$2$Entry_correct)))) (let ((inline$UpdateValueMax$2$anon3_Then_correct (=> (and %lbl%+171 true) (=> (and (= inline$UpdateValueMax$2$srcPath@0 inline$UpdateValueMax$2$dstPath@0) (= (ControlFlow 0 7622) 7646)) inline$DeepUpdateReference$1$anon11_Then$1_correct)))) (let ((inline$UpdateValueMax$2$Entry_correct (=> (and %lbl%+172 true) (=> (and (and (= inline$UpdateValueMax$2$srcPath@0 (|p#GlobalReference| call3formal@t0@0)) (= inline$UpdateValueMax$2$srcValue@0 (|v#GlobalReference| call3formal@t0@0))) (and (= inline$UpdateValueMax$2$dstPath@0 (|p#GlobalReference| inline$BorrowLoc$0$dst@1)) (= inline$UpdateValueMax$2$dstValue@0 (|v#GlobalReference| inline$BorrowLoc$0$dst@1)))) (and (=> (= (ControlFlow 0 7491) 7622) inline$UpdateValueMax$2$anon3_Then_correct) (=> (= (ControlFlow 0 7491) 7598) inline$UpdateValueMax$2$anon3_Else_correct)))))) (let ((inline$DeepUpdateReference$1$anon11_Then_correct (=> (and %lbl%+173 true) (=> (and inline$IsPrefixMax$2$isPrefix@1 (= (ControlFlow 0 7628) 7491)) inline$UpdateValueMax$2$Entry_correct)))) (let ((inline$DeepUpdateReference$1$anon11_Else_correct (=> (and %lbl%+174 true) (=> (not inline$IsPrefixMax$2$isPrefix@1) (and (=> (= (ControlFlow 0 7394) 9024) inline$DeepUpdateReference$2$anon7_Then_correct) (=> (= (ControlFlow 0 7394) 8466) inline$DeepUpdateReference$2$anon7_Else_correct)))))) (let ((inline$IsPrefixMax$2$anon5_Else$1_correct (=> (and %lbl%+175 true) (=> (and (=> inline$IsPrefixMax$2$isPrefix@1 inline$IsPrefix0$2$isPrefix@1) (=> inline$IsPrefix0$2$isPrefix@1 inline$IsPrefixMax$2$isPrefix@1)) (and (=> (= (ControlFlow 0 7360) 7628) inline$DeepUpdateReference$1$anon11_Then_correct) (=> (= (ControlFlow 0 7360) 7394) inline$DeepUpdateReference$1$anon11_Else_correct)))))) (let ((inline$IsPrefix0$2$anon5_Then_correct (=> (and %lbl%+176 true) (=> (= inline$IsPrefix0$2$srcPath@0 Nil) (=> (and (and (=> inline$IsPrefix0$2$isPrefix@1 false) (=> false inline$IsPrefix0$2$isPrefix@1)) (= (ControlFlow 0 7342) 7360)) inline$IsPrefixMax$2$anon5_Else$1_correct))))) (let ((inline$IsPrefix0$2$anon4_Else_correct (=> (and %lbl%+177 true) (=> (not (= inline$IsPrefix0$2$srcPath@0 inline$IsPrefixMax$2$dstPath@0)) (and (=> (= (ControlFlow 0 7322) 7342) inline$IsPrefix0$2$anon5_Then_correct) (=> (= (ControlFlow 0 7322) 7332) inline$IsPrefix0$2$anon5_Else_correct)))))) (let ((inline$IsPrefix0$2$anon4_Then_correct (=> (and %lbl%+178 true) (=> (= inline$IsPrefix0$2$srcPath@0 inline$IsPrefixMax$2$dstPath@0) (=> (and (and (=> inline$IsPrefix0$2$isPrefix@1 true) (=> true inline$IsPrefix0$2$isPrefix@1)) (= (ControlFlow 0 7352) 7360)) inline$IsPrefixMax$2$anon5_Else$1_correct))))) (let ((inline$IsPrefix0$2$Entry_correct (=> (and %lbl%+179 true) (=> (= inline$IsPrefix0$2$srcPath@0 (|p#Cons| inline$IsPrefixMax$2$srcPath@0)) (and (=> (= (ControlFlow 0 7312) 7352) inline$IsPrefix0$2$anon4_Then_correct) (=> (= (ControlFlow 0 7312) 7322) inline$IsPrefix0$2$anon4_Else_correct)))))) (let ((inline$IsPrefixMax$2$anon5_Else_correct (=> (and %lbl%+180 true) (=> (and (not (= inline$IsPrefixMax$2$srcPath@0 Nil)) (= (ControlFlow 0 7358) 7312)) inline$IsPrefix0$2$Entry_correct)))) (let ((inline$IsPrefixMax$2$anon5_Then_correct (=> (and %lbl%+181 true) (=> (= inline$IsPrefixMax$2$srcPath@0 Nil) (=> (and (=> inline$IsPrefixMax$2$isPrefix@1 false) (=> false inline$IsPrefixMax$2$isPrefix@1)) (and (=> (= (ControlFlow 0 7370) 7628) inline$DeepUpdateReference$1$anon11_Then_correct) (=> (= (ControlFlow 0 7370) 7394) inline$DeepUpdateReference$1$anon11_Else_correct))))))) (let ((inline$IsPrefixMax$2$anon4_Else_correct (=> (and %lbl%+182 true) (=> (not (= inline$IsPrefixMax$2$srcPath@0 inline$IsPrefixMax$2$dstPath@0)) (and (=> (= (ControlFlow 0 7237) 7370) inline$IsPrefixMax$2$anon5_Then_correct) (=> (= (ControlFlow 0 7237) 7358) inline$IsPrefixMax$2$anon5_Else_correct)))))) (let ((inline$IsPrefixMax$2$anon4_Then_correct (=> (and %lbl%+183 true) (=> (= inline$IsPrefixMax$2$srcPath@0 inline$IsPrefixMax$2$dstPath@0) (=> (and (=> inline$IsPrefixMax$2$isPrefix@1 true) (=> true inline$IsPrefixMax$2$isPrefix@1)) (and (=> (= (ControlFlow 0 7380) 7628) inline$DeepUpdateReference$1$anon11_Then_correct) (=> (= (ControlFlow 0 7380) 7394) inline$DeepUpdateReference$1$anon11_Else_correct))))))) (let ((inline$IsPrefixMax$2$Entry_correct (=> (and %lbl%+184 true) (=> (and (= inline$IsPrefixMax$2$dstPath@0 (|p#GlobalReference| inline$BorrowLoc$0$dst@1)) (= inline$IsPrefixMax$2$srcPath@0 (|p#GlobalReference| call3formal@t0@0))) (and (=> (= (ControlFlow 0 7227) 7380) inline$IsPrefixMax$2$anon4_Then_correct) (=> (= (ControlFlow 0 7227) 7237) inline$IsPrefixMax$2$anon4_Else_correct)))))) (let ((inline$DeepUpdateReference$1$anon10_Then_correct (=> (and %lbl%+185 true) (=> (and (and (and (is-GlobalReference inline$BorrowLoc$0$dst@1) (= (|a#GlobalReference| call3formal@t0@0) (|a#GlobalReference| inline$BorrowLoc$0$dst@1))) (= (|t#GlobalReference| call3formal@t0@0) (|t#GlobalReference| inline$BorrowLoc$0$dst@1))) (= (ControlFlow 0 7386) 7227)) inline$IsPrefixMax$2$Entry_correct)))) (let ((inline$DeepUpdateReference$1$anon10_Else_correct (=> (and %lbl%+186 true) (=> (not (and (and (is-GlobalReference inline$BorrowLoc$0$dst@1) (= (|a#GlobalReference| call3formal@t0@0) (|a#GlobalReference| inline$BorrowLoc$0$dst@1))) (= (|t#GlobalReference| call3formal@t0@0) (|t#GlobalReference| inline$BorrowLoc$0$dst@1)))) (and (=> (= (ControlFlow 0 7126) 9024) inline$DeepUpdateReference$2$anon7_Then_correct) (=> (= (ControlFlow 0 7126) 8466) inline$DeepUpdateReference$2$anon7_Else_correct)))))) (let ((inline$DeepUpdateReference$1$anon7_Else_correct (=> (and %lbl%+187 true) (=> (not (is-LocalReference call3formal@t0@0)) (and (=> (= (ControlFlow 0 7094) 7386) inline$DeepUpdateReference$1$anon10_Then_correct) (=> (= (ControlFlow 0 7094) 7126) inline$DeepUpdateReference$1$anon10_Else_correct)))))) (let ((inline$DeepUpdateReference$0$anon9_Then$1_correct (=> (and %lbl%+188 true) (=> (and (= |inline$DeepUpdateReference$0$dst'@2| (LocalReference (|c#LocalReference| inline$BorrowLoc$0$dst@1) (|l#LocalReference| inline$BorrowLoc$0$dst@1) (|p#LocalReference| inline$BorrowLoc$0$dst@1) |inline$UpdateValueMax$1$dstValue'@2|)) (= |inline$DeepUpdateReference$0$dst'@3| |inline$DeepUpdateReference$0$dst'@2|)) (and (=> (= (ControlFlow 0 6832) 7652) inline$DeepUpdateReference$1$anon7_Then_correct) (=> (= (ControlFlow 0 6832) 7094) inline$DeepUpdateReference$1$anon7_Else_correct)))))) (let ((inline$UpdateValueMax$1$anon3_Else$1_correct (=> (and %lbl%+189 true) (=> (= |inline$UpdateValueMax$1$dstValue'@1| (Map (store (|m#Map| inline$UpdateValueMax$1$dstValue@0) inline$UpdateValueMax$1$e@0 inline$UpdateValueMax$1$srcValue@0))) (=> (and (= |inline$UpdateValueMax$1$dstValue'@2| |inline$UpdateValueMax$1$dstValue'@1|) (= (ControlFlow 0 6798) 6832)) inline$DeepUpdateReference$0$anon9_Then$1_correct))))) (let ((inline$UpdateValue0$1$anon3_Then_correct (=> (and %lbl%+190 true) (=> (and (= inline$UpdateValueMax$1$srcPath@0 inline$UpdateValue0$1$dstPath@0) (= (ControlFlow 0 6778) 6798)) inline$UpdateValueMax$1$anon3_Else$1_correct)))) (let ((inline$UpdateValue0$1$Entry_correct (=> (and %lbl%+191 true) (=> (and (= inline$UpdateValue0$1$dstPath@0 (Cons inline$UpdateValueMax$1$dstPath@0 inline$UpdateValueMax$1$e@0)) (= inline$UpdateValue0$1$dstValue@0 (select (|m#Map| inline$UpdateValueMax$1$dstValue@0) inline$UpdateValueMax$1$e@0))) (and (=> (= (ControlFlow 0 6756) 6778) inline$UpdateValue0$1$anon3_Then_correct) (=> (= (ControlFlow 0 6756) 6768) inline$UpdateValue0$1$anon3_Else_correct)))))) (let ((inline$UpdateValueMax$1$anon3_Else_correct (=> (and %lbl%+192 true) (=> (and (not (= inline$UpdateValueMax$1$srcPath@0 inline$UpdateValueMax$1$dstPath@0)) (= (ControlFlow 0 6784) 6756)) inline$UpdateValue0$1$Entry_correct)))) (let ((inline$UpdateValueMax$1$anon3_Then_correct (=> (and %lbl%+193 true) (=> (= inline$UpdateValueMax$1$srcPath@0 inline$UpdateValueMax$1$dstPath@0) (=> (and (= |inline$UpdateValueMax$1$dstValue'@2| inline$UpdateValueMax$1$srcValue@0) (= (ControlFlow 0 6808) 6832)) inline$DeepUpdateReference$0$anon9_Then$1_correct))))) (let ((inline$UpdateValueMax$1$Entry_correct (=> (and %lbl%+194 true) (=> (and (and (= inline$UpdateValueMax$1$srcPath@0 (|p#LocalReference| call3formal@t0@0)) (= inline$UpdateValueMax$1$srcValue@0 (|v#LocalReference| call3formal@t0@0))) (and (= inline$UpdateValueMax$1$dstPath@0 (|p#LocalReference| inline$BorrowLoc$0$dst@1)) (= inline$UpdateValueMax$1$dstValue@0 (|v#LocalReference| inline$BorrowLoc$0$dst@1)))) (and (=> (= (ControlFlow 0 6677) 6808) inline$UpdateValueMax$1$anon3_Then_correct) (=> (= (ControlFlow 0 6677) 6784) inline$UpdateValueMax$1$anon3_Else_correct)))))) (let ((inline$DeepUpdateReference$0$anon9_Then_correct (=> (and %lbl%+195 true) (=> (and inline$IsPrefixMax$1$isPrefix@1 (= (ControlFlow 0 6814) 6677)) inline$UpdateValueMax$1$Entry_correct)))) (let ((inline$DeepUpdateReference$0$anon9_Else_correct (=> (and %lbl%+196 true) (=> (and (not inline$IsPrefixMax$1$isPrefix@1) (= |inline$DeepUpdateReference$0$dst'@3| inline$BorrowLoc$0$dst@1)) (and (=> (= (ControlFlow 0 6580) 7652) inline$DeepUpdateReference$1$anon7_Then_correct) (=> (= (ControlFlow 0 6580) 7094) inline$DeepUpdateReference$1$anon7_Else_correct)))))) (let ((inline$IsPrefixMax$1$anon5_Else$1_correct (=> (and %lbl%+197 true) (=> (and (=> inline$IsPrefixMax$1$isPrefix@1 inline$IsPrefix0$1$isPrefix@1) (=> inline$IsPrefix0$1$isPrefix@1 inline$IsPrefixMax$1$isPrefix@1)) (and (=> (= (ControlFlow 0 6546) 6814) inline$DeepUpdateReference$0$anon9_Then_correct) (=> (= (ControlFlow 0 6546) 6580) inline$DeepUpdateReference$0$anon9_Else_correct)))))) (let ((inline$IsPrefix0$1$anon5_Then_correct (=> (and %lbl%+198 true) (=> (= inline$IsPrefix0$1$srcPath@0 Nil) (=> (and (and (=> inline$IsPrefix0$1$isPrefix@1 false) (=> false inline$IsPrefix0$1$isPrefix@1)) (= (ControlFlow 0 6528) 6546)) inline$IsPrefixMax$1$anon5_Else$1_correct))))) (let ((inline$IsPrefix0$1$anon4_Else_correct (=> (and %lbl%+199 true) (=> (not (= inline$IsPrefix0$1$srcPath@0 inline$IsPrefixMax$1$dstPath@0)) (and (=> (= (ControlFlow 0 6508) 6528) inline$IsPrefix0$1$anon5_Then_correct) (=> (= (ControlFlow 0 6508) 6518) inline$IsPrefix0$1$anon5_Else_correct)))))) (let ((inline$IsPrefix0$1$anon4_Then_correct (=> (and %lbl%+200 true) (=> (= inline$IsPrefix0$1$srcPath@0 inline$IsPrefixMax$1$dstPath@0) (=> (and (and (=> inline$IsPrefix0$1$isPrefix@1 true) (=> true inline$IsPrefix0$1$isPrefix@1)) (= (ControlFlow 0 6538) 6546)) inline$IsPrefixMax$1$anon5_Else$1_correct))))) (let ((inline$IsPrefix0$1$Entry_correct (=> (and %lbl%+201 true) (=> (= inline$IsPrefix0$1$srcPath@0 (|p#Cons| inline$IsPrefixMax$1$srcPath@0)) (and (=> (= (ControlFlow 0 6498) 6538) inline$IsPrefix0$1$anon4_Then_correct) (=> (= (ControlFlow 0 6498) 6508) inline$IsPrefix0$1$anon4_Else_correct)))))) (let ((inline$IsPrefixMax$1$anon5_Else_correct (=> (and %lbl%+202 true) (=> (and (not (= inline$IsPrefixMax$1$srcPath@0 Nil)) (= (ControlFlow 0 6544) 6498)) inline$IsPrefix0$1$Entry_correct)))) (let ((inline$IsPrefixMax$1$anon5_Then_correct (=> (and %lbl%+203 true) (=> (= inline$IsPrefixMax$1$srcPath@0 Nil) (=> (and (=> inline$IsPrefixMax$1$isPrefix@1 false) (=> false inline$IsPrefixMax$1$isPrefix@1)) (and (=> (= (ControlFlow 0 6556) 6814) inline$DeepUpdateReference$0$anon9_Then_correct) (=> (= (ControlFlow 0 6556) 6580) inline$DeepUpdateReference$0$anon9_Else_correct))))))) (let ((inline$IsPrefixMax$1$anon4_Else_correct (=> (and %lbl%+204 true) (=> (not (= inline$IsPrefixMax$1$srcPath@0 inline$IsPrefixMax$1$dstPath@0)) (and (=> (= (ControlFlow 0 6423) 6556) inline$IsPrefixMax$1$anon5_Then_correct) (=> (= (ControlFlow 0 6423) 6544) inline$IsPrefixMax$1$anon5_Else_correct)))))) (let ((inline$IsPrefixMax$1$anon4_Then_correct (=> (and %lbl%+205 true) (=> (= inline$IsPrefixMax$1$srcPath@0 inline$IsPrefixMax$1$dstPath@0) (=> (and (=> inline$IsPrefixMax$1$isPrefix@1 true) (=> true inline$IsPrefixMax$1$isPrefix@1)) (and (=> (= (ControlFlow 0 6566) 6814) inline$DeepUpdateReference$0$anon9_Then_correct) (=> (= (ControlFlow 0 6566) 6580) inline$DeepUpdateReference$0$anon9_Else_correct))))))) (let ((inline$IsPrefixMax$1$Entry_correct (=> (and %lbl%+206 true) (=> (and (= inline$IsPrefixMax$1$dstPath@0 (|p#LocalReference| inline$BorrowLoc$0$dst@1)) (= inline$IsPrefixMax$1$srcPath@0 (|p#LocalReference| call3formal@t0@0))) (and (=> (= (ControlFlow 0 6413) 6566) inline$IsPrefixMax$1$anon4_Then_correct) (=> (= (ControlFlow 0 6413) 6423) inline$IsPrefixMax$1$anon4_Else_correct)))))) (let ((inline$DeepUpdateReference$0$anon8_Then_correct (=> (and %lbl%+207 true) (=> (and (and (and (is-LocalReference inline$BorrowLoc$0$dst@1) (= (|c#LocalReference| call3formal@t0@0) (|c#LocalReference| inline$BorrowLoc$0$dst@1))) (= (|l#LocalReference| call3formal@t0@0) (|l#LocalReference| inline$BorrowLoc$0$dst@1))) (= (ControlFlow 0 6572) 6413)) inline$IsPrefixMax$1$Entry_correct)))) (let ((inline$DeepUpdateReference$0$anon8_Else_correct (=> (and %lbl%+208 true) (=> (and (not (and (and (is-LocalReference inline$BorrowLoc$0$dst@1) (= (|c#LocalReference| call3formal@t0@0) (|c#LocalReference| inline$BorrowLoc$0$dst@1))) (= (|l#LocalReference| call3formal@t0@0) (|l#LocalReference| inline$BorrowLoc$0$dst@1)))) (= |inline$DeepUpdateReference$0$dst'@3| inline$BorrowLoc$0$dst@1)) (and (=> (= (ControlFlow 0 6312) 7652) inline$DeepUpdateReference$1$anon7_Then_correct) (=> (= (ControlFlow 0 6312) 7094) inline$DeepUpdateReference$1$anon7_Else_correct)))))) (let ((inline$DeepUpdateReference$0$anon7_Then_correct (=> (and %lbl%+209 true) (=> (is-LocalReference call3formal@t0@0) (and (=> (= (ControlFlow 0 6280) 6572) inline$DeepUpdateReference$0$anon8_Then_correct) (=> (= (ControlFlow 0 6280) 6312) inline$DeepUpdateReference$0$anon8_Else_correct)))))) (let ((inline$DeepUpdateReference$0$anon11_Then$1_correct (=> (and %lbl%+210 true) (=> (and (= |inline$DeepUpdateReference$0$dst'@1| (GlobalReference (|a#GlobalReference| inline$BorrowLoc$0$dst@1) (|t#GlobalReference| inline$BorrowLoc$0$dst@1) (|p#GlobalReference| inline$BorrowLoc$0$dst@1) |inline$UpdateValueMax$0$dstValue'@2|)) (= |inline$DeepUpdateReference$0$dst'@3| |inline$DeepUpdateReference$0$dst'@1|)) (and (=> (= (ControlFlow 0 6274) 7652) inline$DeepUpdateReference$1$anon7_Then_correct) (=> (= (ControlFlow 0 6274) 7094) inline$DeepUpdateReference$1$anon7_Else_correct)))))) (let ((inline$UpdateValueMax$0$anon3_Else$1_correct (=> (and %lbl%+211 true) (=> (= |inline$UpdateValueMax$0$dstValue'@1| (Map (store (|m#Map| inline$UpdateValueMax$0$dstValue@0) inline$UpdateValueMax$0$e@0 inline$UpdateValueMax$0$srcValue@0))) (=> (and (= |inline$UpdateValueMax$0$dstValue'@2| |inline$UpdateValueMax$0$dstValue'@1|) (= (ControlFlow 0 6240) 6274)) inline$DeepUpdateReference$0$anon11_Then$1_correct))))) (let ((inline$UpdateValue0$0$anon3_Then_correct (=> (and %lbl%+212 true) (=> (and (= inline$UpdateValueMax$0$srcPath@0 inline$UpdateValue0$0$dstPath@0) (= (ControlFlow 0 6220) 6240)) inline$UpdateValueMax$0$anon3_Else$1_correct)))) (let ((inline$UpdateValue0$0$Entry_correct (=> (and %lbl%+213 true) (=> (and (= inline$UpdateValue0$0$dstPath@0 (Cons inline$UpdateValueMax$0$dstPath@0 inline$UpdateValueMax$0$e@0)) (= inline$UpdateValue0$0$dstValue@0 (select (|m#Map| inline$UpdateValueMax$0$dstValue@0) inline$UpdateValueMax$0$e@0))) (and (=> (= (ControlFlow 0 6198) 6220) inline$UpdateValue0$0$anon3_Then_correct) (=> (= (ControlFlow 0 6198) 6210) inline$UpdateValue0$0$anon3_Else_correct)))))) (let ((inline$UpdateValueMax$0$anon3_Else_correct (=> (and %lbl%+214 true) (=> (and (not (= inline$UpdateValueMax$0$srcPath@0 inline$UpdateValueMax$0$dstPath@0)) (= (ControlFlow 0 6226) 6198)) inline$UpdateValue0$0$Entry_correct)))) (let ((inline$UpdateValueMax$0$anon3_Then_correct (=> (and %lbl%+215 true) (=> (= inline$UpdateValueMax$0$srcPath@0 inline$UpdateValueMax$0$dstPath@0) (=> (and (= |inline$UpdateValueMax$0$dstValue'@2| inline$UpdateValueMax$0$srcValue@0) (= (ControlFlow 0 6250) 6274)) inline$DeepUpdateReference$0$anon11_Then$1_correct))))) (let ((inline$UpdateValueMax$0$Entry_correct (=> (and %lbl%+216 true) (=> (and (and (= inline$UpdateValueMax$0$srcPath@0 (|p#GlobalReference| call3formal@t0@0)) (= inline$UpdateValueMax$0$srcValue@0 (|v#GlobalReference| call3formal@t0@0))) (and (= inline$UpdateValueMax$0$dstPath@0 (|p#GlobalReference| inline$BorrowLoc$0$dst@1)) (= inline$UpdateValueMax$0$dstValue@0 (|v#GlobalReference| inline$BorrowLoc$0$dst@1)))) (and (=> (= (ControlFlow 0 6119) 6250) inline$UpdateValueMax$0$anon3_Then_correct) (=> (= (ControlFlow 0 6119) 6226) inline$UpdateValueMax$0$anon3_Else_correct)))))) (let ((inline$DeepUpdateReference$0$anon11_Then_correct (=> (and %lbl%+217 true) (=> (and inline$IsPrefixMax$0$isPrefix@1 (= (ControlFlow 0 6256) 6119)) inline$UpdateValueMax$0$Entry_correct)))) (let ((inline$DeepUpdateReference$0$anon11_Else_correct (=> (and %lbl%+218 true) (=> (and (not inline$IsPrefixMax$0$isPrefix@1) (= |inline$DeepUpdateReference$0$dst'@3| inline$BorrowLoc$0$dst@1)) (and (=> (= (ControlFlow 0 6022) 7652) inline$DeepUpdateReference$1$anon7_Then_correct) (=> (= (ControlFlow 0 6022) 7094) inline$DeepUpdateReference$1$anon7_Else_correct)))))) (let ((inline$IsPrefixMax$0$anon5_Else$1_correct (=> (and %lbl%+219 true) (=> (and (=> inline$IsPrefixMax$0$isPrefix@1 inline$IsPrefix0$0$isPrefix@1) (=> inline$IsPrefix0$0$isPrefix@1 inline$IsPrefixMax$0$isPrefix@1)) (and (=> (= (ControlFlow 0 5988) 6256) inline$DeepUpdateReference$0$anon11_Then_correct) (=> (= (ControlFlow 0 5988) 6022) inline$DeepUpdateReference$0$anon11_Else_correct)))))) (let ((inline$IsPrefix0$0$anon5_Then_correct (=> (and %lbl%+220 true) (=> (= inline$IsPrefix0$0$srcPath@0 Nil) (=> (and (and (=> inline$IsPrefix0$0$isPrefix@1 false) (=> false inline$IsPrefix0$0$isPrefix@1)) (= (ControlFlow 0 5970) 5988)) inline$IsPrefixMax$0$anon5_Else$1_correct))))) (let ((inline$IsPrefix0$0$anon4_Else_correct (=> (and %lbl%+221 true) (=> (not (= inline$IsPrefix0$0$srcPath@0 inline$IsPrefixMax$0$dstPath@0)) (and (=> (= (ControlFlow 0 5950) 5970) inline$IsPrefix0$0$anon5_Then_correct) (=> (= (ControlFlow 0 5950) 5960) inline$IsPrefix0$0$anon5_Else_correct)))))) (let ((inline$IsPrefix0$0$anon4_Then_correct (=> (and %lbl%+222 true) (=> (= inline$IsPrefix0$0$srcPath@0 inline$IsPrefixMax$0$dstPath@0) (=> (and (and (=> inline$IsPrefix0$0$isPrefix@1 true) (=> true inline$IsPrefix0$0$isPrefix@1)) (= (ControlFlow 0 5980) 5988)) inline$IsPrefixMax$0$anon5_Else$1_correct))))) (let ((inline$IsPrefix0$0$Entry_correct (=> (and %lbl%+223 true) (=> (= inline$IsPrefix0$0$srcPath@0 (|p#Cons| inline$IsPrefixMax$0$srcPath@0)) (and (=> (= (ControlFlow 0 5940) 5980) inline$IsPrefix0$0$anon4_Then_correct) (=> (= (ControlFlow 0 5940) 5950) inline$IsPrefix0$0$anon4_Else_correct)))))) (let ((inline$IsPrefixMax$0$anon5_Else_correct (=> (and %lbl%+224 true) (=> (and (not (= inline$IsPrefixMax$0$srcPath@0 Nil)) (= (ControlFlow 0 5986) 5940)) inline$IsPrefix0$0$Entry_correct)))) (let ((inline$IsPrefixMax$0$anon5_Then_correct (=> (and %lbl%+225 true) (=> (= inline$IsPrefixMax$0$srcPath@0 Nil) (=> (and (=> inline$IsPrefixMax$0$isPrefix@1 false) (=> false inline$IsPrefixMax$0$isPrefix@1)) (and (=> (= (ControlFlow 0 5998) 6256) inline$DeepUpdateReference$0$anon11_Then_correct) (=> (= (ControlFlow 0 5998) 6022) inline$DeepUpdateReference$0$anon11_Else_correct))))))) (let ((inline$IsPrefixMax$0$anon4_Else_correct (=> (and %lbl%+226 true) (=> (not (= inline$IsPrefixMax$0$srcPath@0 inline$IsPrefixMax$0$dstPath@0)) (and (=> (= (ControlFlow 0 5865) 5998) inline$IsPrefixMax$0$anon5_Then_correct) (=> (= (ControlFlow 0 5865) 5986) inline$IsPrefixMax$0$anon5_Else_correct)))))) (let ((inline$IsPrefixMax$0$anon4_Then_correct (=> (and %lbl%+227 true) (=> (= inline$IsPrefixMax$0$srcPath@0 inline$IsPrefixMax$0$dstPath@0) (=> (and (=> inline$IsPrefixMax$0$isPrefix@1 true) (=> true inline$IsPrefixMax$0$isPrefix@1)) (and (=> (= (ControlFlow 0 6008) 6256) inline$DeepUpdateReference$0$anon11_Then_correct) (=> (= (ControlFlow 0 6008) 6022) inline$DeepUpdateReference$0$anon11_Else_correct))))))) (let ((inline$IsPrefixMax$0$Entry_correct (=> (and %lbl%+228 true) (=> (and (= inline$IsPrefixMax$0$dstPath@0 (|p#GlobalReference| inline$BorrowLoc$0$dst@1)) (= inline$IsPrefixMax$0$srcPath@0 (|p#GlobalReference| call3formal@t0@0))) (and (=> (= (ControlFlow 0 5855) 6008) inline$IsPrefixMax$0$anon4_Then_correct) (=> (= (ControlFlow 0 5855) 5865) inline$IsPrefixMax$0$anon4_Else_correct)))))) (let ((inline$DeepUpdateReference$0$anon10_Then_correct (=> (and %lbl%+229 true) (=> (and (and (and (is-GlobalReference inline$BorrowLoc$0$dst@1) (= (|a#GlobalReference| call3formal@t0@0) (|a#GlobalReference| inline$BorrowLoc$0$dst@1))) (= (|t#GlobalReference| call3formal@t0@0) (|t#GlobalReference| inline$BorrowLoc$0$dst@1))) (= (ControlFlow 0 6014) 5855)) inline$IsPrefixMax$0$Entry_correct)))) (let ((inline$DeepUpdateReference$0$anon10_Else_correct (=> (and %lbl%+230 true) (=> (and (not (and (and (is-GlobalReference inline$BorrowLoc$0$dst@1) (= (|a#GlobalReference| call3formal@t0@0) (|a#GlobalReference| inline$BorrowLoc$0$dst@1))) (= (|t#GlobalReference| call3formal@t0@0) (|t#GlobalReference| inline$BorrowLoc$0$dst@1)))) (= |inline$DeepUpdateReference$0$dst'@3| inline$BorrowLoc$0$dst@1)) (and (=> (= (ControlFlow 0 5754) 7652) inline$DeepUpdateReference$1$anon7_Then_correct) (=> (= (ControlFlow 0 5754) 7094) inline$DeepUpdateReference$1$anon7_Else_correct)))))) (let ((inline$DeepUpdateReference$0$anon7_Else_correct (=> (and %lbl%+231 true) (=> (not (is-LocalReference call3formal@t0@0)) (and (=> (= (ControlFlow 0 5722) 6014) inline$DeepUpdateReference$0$anon10_Then_correct) (=> (= (ControlFlow 0 5722) 5754) inline$DeepUpdateReference$0$anon10_Else_correct)))))) (let ((inline$BorrowLoc$0$anon0_correct (=> (and %lbl%+232 true) (=> (= inline$BorrowLoc$0$dst@1 (LocalReference c t0_LocalName Nil inline$LdConst$0$ret@1)) (and (=> (= (ControlFlow 0 5394) 6280) inline$DeepUpdateReference$0$anon7_Then_correct) (=> (= (ControlFlow 0 5394) 5722) inline$DeepUpdateReference$0$anon7_Else_correct)))))) (let ((inline$LdConst$0$anon0_correct (=> (and %lbl%+233 true) (=> (and (= inline$LdConst$0$ret@1 (Integer 20)) (= (ControlFlow 0 5300) 5394)) inline$BorrowLoc$0$anon0_correct)))) (let ((anon0_correct (=> (and %lbl%+234 true) (=> (and (> |c'| c) (= (ControlFlow 0 5306) 5300)) inline$LdConst$0$anon0_correct)))) (let ((PreconditionGeneratedEntry_correct (=> (and %lbl%+235 true) (=> (= (ControlFlow 0 17367) 5306) anon0_correct)))) PreconditionGeneratedEntry_correct)))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) )) (check-sat)