47.76/31.13 YES 50.37/31.87 proof of /export/starexec/sandbox2/benchmark/theBenchmark.hs 50.37/31.87 # AProVE Commit ID: 48fb2092695e11cc9f56e44b17a92a5f88ffb256 marcel 20180622 unpublished dirty 50.37/31.87 50.37/31.87 50.37/31.87 H-Termination with start terms of the given HASKELL could be proven: 50.37/31.87 50.37/31.87 (0) HASKELL 50.37/31.87 (1) LR [EQUIVALENT, 0 ms] 50.37/31.87 (2) HASKELL 50.37/31.87 (3) CR [EQUIVALENT, 0 ms] 50.37/31.87 (4) HASKELL 50.37/31.87 (5) BR [EQUIVALENT, 0 ms] 50.37/31.87 (6) HASKELL 50.37/31.87 (7) COR [EQUIVALENT, 10 ms] 50.37/31.87 (8) HASKELL 50.37/31.87 (9) LetRed [EQUIVALENT, 0 ms] 50.37/31.87 (10) HASKELL 50.37/31.87 (11) NumRed [SOUND, 6 ms] 50.37/31.87 (12) HASKELL 50.37/31.87 (13) Narrow [SOUND, 0 ms] 50.37/31.87 (14) AND 50.37/31.87 (15) QDP 50.37/31.87 (16) QDPSizeChangeProof [EQUIVALENT, 0 ms] 50.37/31.87 (17) YES 50.37/31.87 (18) QDP 50.37/31.87 (19) QDPSizeChangeProof [EQUIVALENT, 0 ms] 50.37/31.87 (20) YES 50.37/31.87 (21) QDP 50.37/31.87 (22) QDPSizeChangeProof [EQUIVALENT, 0 ms] 50.37/31.87 (23) YES 50.37/31.87 (24) QDP 50.37/31.87 (25) QDPSizeChangeProof [EQUIVALENT, 0 ms] 50.37/31.87 (26) YES 50.37/31.87 (27) QDP 50.37/31.87 (28) QDPSizeChangeProof [EQUIVALENT, 0 ms] 50.37/31.87 (29) YES 50.37/31.87 (30) QDP 50.37/31.87 (31) QDPSizeChangeProof [EQUIVALENT, 0 ms] 50.37/31.87 (32) YES 50.37/31.87 (33) QDP 50.37/31.87 (34) QDPSizeChangeProof [EQUIVALENT, 0 ms] 50.37/31.87 (35) YES 50.37/31.87 (36) QDP 50.37/31.87 (37) TransformationProof [EQUIVALENT, 0 ms] 50.37/31.87 (38) QDP 50.37/31.87 (39) TransformationProof [EQUIVALENT, 0 ms] 50.37/31.87 (40) QDP 50.37/31.87 (41) TransformationProof [EQUIVALENT, 0 ms] 50.37/31.87 (42) QDP 50.37/31.87 (43) UsableRulesProof [EQUIVALENT, 0 ms] 50.37/31.87 (44) QDP 50.37/31.87 (45) QReductionProof [EQUIVALENT, 5 ms] 50.37/31.87 (46) QDP 50.37/31.87 (47) TransformationProof [EQUIVALENT, 0 ms] 50.37/31.87 (48) QDP 50.37/31.87 (49) TransformationProof [EQUIVALENT, 0 ms] 50.37/31.87 (50) QDP 50.37/31.87 (51) TransformationProof [EQUIVALENT, 0 ms] 50.37/31.87 (52) QDP 50.37/31.87 (53) UsableRulesProof [EQUIVALENT, 0 ms] 50.37/31.87 (54) QDP 50.37/31.87 (55) QReductionProof [EQUIVALENT, 0 ms] 50.37/31.87 (56) QDP 50.37/31.87 (57) TransformationProof [EQUIVALENT, 0 ms] 50.37/31.87 (58) QDP 50.37/31.87 (59) TransformationProof [EQUIVALENT, 0 ms] 50.37/31.87 (60) QDP 50.37/31.87 (61) TransformationProof [EQUIVALENT, 0 ms] 50.37/31.87 (62) QDP 50.37/31.87 (63) UsableRulesProof [EQUIVALENT, 0 ms] 50.37/31.87 (64) QDP 50.37/31.87 (65) QReductionProof [EQUIVALENT, 0 ms] 50.37/31.87 (66) QDP 50.37/31.87 (67) TransformationProof [EQUIVALENT, 0 ms] 50.37/31.87 (68) QDP 50.37/31.87 (69) TransformationProof [EQUIVALENT, 0 ms] 50.37/31.87 (70) QDP 50.37/31.87 (71) TransformationProof [EQUIVALENT, 0 ms] 50.37/31.87 (72) QDP 50.37/31.87 (73) TransformationProof [EQUIVALENT, 0 ms] 50.37/31.87 (74) QDP 50.37/31.87 (75) TransformationProof [EQUIVALENT, 0 ms] 50.37/31.87 (76) QDP 50.37/31.87 (77) UsableRulesProof [EQUIVALENT, 0 ms] 50.37/31.87 (78) QDP 50.37/31.87 (79) QReductionProof [EQUIVALENT, 0 ms] 50.37/31.87 (80) QDP 50.37/31.87 (81) TransformationProof [EQUIVALENT, 0 ms] 50.37/31.87 (82) QDP 50.37/31.87 (83) TransformationProof [EQUIVALENT, 0 ms] 50.37/31.87 (84) QDP 50.37/31.87 (85) TransformationProof [EQUIVALENT, 0 ms] 50.37/31.87 (86) QDP 50.37/31.87 (87) TransformationProof [EQUIVALENT, 0 ms] 50.37/31.87 (88) QDP 50.37/31.87 (89) UsableRulesProof [EQUIVALENT, 0 ms] 50.37/31.87 (90) QDP 50.37/31.87 (91) QReductionProof [EQUIVALENT, 0 ms] 50.37/31.87 (92) QDP 50.37/31.87 (93) TransformationProof [EQUIVALENT, 0 ms] 50.37/31.87 (94) QDP 50.37/31.87 (95) TransformationProof [EQUIVALENT, 0 ms] 50.37/31.87 (96) QDP 50.37/31.87 (97) UsableRulesProof [EQUIVALENT, 0 ms] 50.37/31.87 (98) QDP 50.37/31.87 (99) QReductionProof [EQUIVALENT, 0 ms] 50.37/31.87 (100) QDP 50.37/31.87 (101) QDPSizeChangeProof [EQUIVALENT, 0 ms] 50.37/31.87 (102) YES 50.37/31.87 (103) QDP 50.37/31.87 (104) QDPSizeChangeProof [EQUIVALENT, 0 ms] 50.37/31.87 (105) YES 50.37/31.87 (106) QDP 50.37/31.87 (107) QDPSizeChangeProof [EQUIVALENT, 0 ms] 50.37/31.87 (108) YES 50.37/31.87 (109) QDP 50.37/31.87 (110) QDPSizeChangeProof [EQUIVALENT, 0 ms] 50.37/31.87 (111) YES 50.37/31.87 (112) QDP 50.37/31.87 (113) QDPSizeChangeProof [EQUIVALENT, 0 ms] 50.37/31.87 (114) YES 50.37/31.87 (115) QDP 50.37/31.87 (116) QDPSizeChangeProof [EQUIVALENT, 0 ms] 50.37/31.87 (117) YES 50.37/31.87 (118) QDP 50.37/31.87 (119) QDPSizeChangeProof [EQUIVALENT, 0 ms] 50.37/31.87 (120) YES 50.37/31.87 (121) QDP 50.37/31.87 (122) QDPSizeChangeProof [EQUIVALENT, 0 ms] 50.37/31.87 (123) YES 50.37/31.87 50.37/31.87 50.37/31.87 ---------------------------------------- 50.37/31.87 50.37/31.87 (0) 50.37/31.87 Obligation: 50.37/31.87 mainModule Main 50.37/31.87 module FiniteMap where { 50.37/31.87 import qualified Main; 50.37/31.87 import qualified Maybe; 50.37/31.87 import qualified Prelude; 50.37/31.87 data FiniteMap b a = EmptyFM | Branch b a Int (FiniteMap b a) (FiniteMap b a) ; 50.37/31.87 50.37/31.87 instance (Eq a, Eq b) => Eq FiniteMap a b where { 50.37/31.87 } 50.37/31.87 addToFM :: Ord b => FiniteMap b a -> b -> a -> FiniteMap b a; 50.37/31.87 addToFM fm key elt = addToFM_C (\old new ->new) fm key elt; 50.37/31.87 50.37/31.87 addToFM_C :: Ord b => (a -> a -> a) -> FiniteMap b a -> b -> a -> FiniteMap b a; 50.37/31.87 addToFM_C combiner EmptyFM key elt = unitFM key elt; 50.37/31.87 addToFM_C combiner (Branch key elt size fm_l fm_r) new_key new_elt | new_key < key = mkBalBranch key elt (addToFM_C combiner fm_l new_key new_elt) fm_r 50.37/31.87 | new_key > key = mkBalBranch key elt fm_l (addToFM_C combiner fm_r new_key new_elt) 50.37/31.87 | otherwise = Branch new_key (combiner elt new_elt) size fm_l fm_r; 50.37/31.87 50.37/31.87 deleteMax :: Ord b => FiniteMap b a -> FiniteMap b a; 50.37/31.87 deleteMax (Branch key elt _ fm_l EmptyFM) = fm_l; 50.37/31.87 deleteMax (Branch key elt _ fm_l fm_r) = mkBalBranch key elt fm_l (deleteMax fm_r); 50.37/31.87 50.37/31.87 deleteMin :: Ord b => FiniteMap b a -> FiniteMap b a; 50.37/31.87 deleteMin (Branch key elt _ EmptyFM fm_r) = fm_r; 50.37/31.87 deleteMin (Branch key elt _ fm_l fm_r) = mkBalBranch key elt (deleteMin fm_l) fm_r; 50.37/31.87 50.37/31.87 emptyFM :: FiniteMap a b; 50.37/31.87 emptyFM = EmptyFM; 50.37/31.87 50.37/31.87 filterFM :: Ord b => (b -> a -> Bool) -> FiniteMap b a -> FiniteMap b a; 50.37/31.87 filterFM p EmptyFM = emptyFM; 50.37/31.87 filterFM p (Branch key elt _ fm_l fm_r) | p key elt = mkVBalBranch key elt (filterFM p fm_l) (filterFM p fm_r) 50.37/31.87 | otherwise = glueVBal (filterFM p fm_l) (filterFM p fm_r); 50.37/31.87 50.37/31.87 findMax :: FiniteMap b a -> (b,a); 50.37/31.87 findMax (Branch key elt _ _ EmptyFM) = (key,elt); 50.37/31.87 findMax (Branch key elt _ _ fm_r) = findMax fm_r; 50.37/31.87 50.37/31.87 findMin :: FiniteMap a b -> (a,b); 50.37/31.87 findMin (Branch key elt _ EmptyFM _) = (key,elt); 50.37/31.87 findMin (Branch key elt _ fm_l _) = findMin fm_l; 50.37/31.87 50.37/31.87 glueBal :: Ord b => FiniteMap b a -> FiniteMap b a -> FiniteMap b a; 50.37/31.87 glueBal EmptyFM fm2 = fm2; 50.37/31.87 glueBal fm1 EmptyFM = fm1; 50.37/31.87 glueBal fm1 fm2 | sizeFM fm2 > sizeFM fm1 = mkBalBranch mid_key2 mid_elt2 fm1 (deleteMin fm2) 50.37/31.87 | otherwise = mkBalBranch mid_key1 mid_elt1 (deleteMax fm1) fm2 where { 50.37/31.87 mid_elt1 = (\(_,mid_elt1) ->mid_elt1) vv2; 50.37/31.87 mid_elt2 = (\(_,mid_elt2) ->mid_elt2) vv3; 50.37/31.87 mid_key1 = (\(mid_key1,_) ->mid_key1) vv2; 50.37/31.87 mid_key2 = (\(mid_key2,_) ->mid_key2) vv3; 50.37/31.87 vv2 = findMax fm1; 50.37/31.87 vv3 = findMin fm2; 50.37/31.87 }; 50.37/31.87 50.37/31.87 glueVBal :: Ord b => FiniteMap b a -> FiniteMap b a -> FiniteMap b a; 50.37/31.87 glueVBal EmptyFM fm2 = fm2; 50.37/31.87 glueVBal fm1 EmptyFM = fm1; 50.37/31.87 glueVBal fm_l@(Branch key_l elt_l _ fm_ll fm_lr) fm_r@(Branch key_r elt_r _ fm_rl fm_rr) | sIZE_RATIO * size_l < size_r = mkBalBranch key_r elt_r (glueVBal fm_l fm_rl) fm_rr 50.37/31.87 | sIZE_RATIO * size_r < size_l = mkBalBranch key_l elt_l fm_ll (glueVBal fm_lr fm_r) 50.37/31.87 | otherwise = glueBal fm_l fm_r where { 50.37/31.87 size_l = sizeFM fm_l; 50.37/31.87 size_r = sizeFM fm_r; 50.37/31.87 }; 50.37/31.87 50.37/31.87 mkBalBranch :: Ord b => b -> a -> FiniteMap b a -> FiniteMap b a -> FiniteMap b a; 50.37/31.87 mkBalBranch key elt fm_L fm_R | size_l + size_r < 2 = mkBranch 1 key elt fm_L fm_R 50.37/31.87 | size_r > sIZE_RATIO * size_l = case fm_R of { 50.37/31.87 Branch _ _ _ fm_rl fm_rr | sizeFM fm_rl < 2 * sizeFM fm_rr -> single_L fm_L fm_R 50.37/31.87 | otherwise -> double_L fm_L fm_R; 50.37/31.87 } 50.37/31.87 | size_l > sIZE_RATIO * size_r = case fm_L of { 50.37/31.87 Branch _ _ _ fm_ll fm_lr | sizeFM fm_lr < 2 * sizeFM fm_ll -> single_R fm_L fm_R 50.37/31.87 | otherwise -> double_R fm_L fm_R; 50.37/31.87 } 50.37/31.87 | otherwise = mkBranch 2 key elt fm_L fm_R where { 50.37/31.87 double_L fm_l (Branch key_r elt_r _ (Branch key_rl elt_rl _ fm_rll fm_rlr) fm_rr) = mkBranch 5 key_rl elt_rl (mkBranch 6 key elt fm_l fm_rll) (mkBranch 7 key_r elt_r fm_rlr fm_rr); 50.37/31.87 double_R (Branch key_l elt_l _ fm_ll (Branch key_lr elt_lr _ fm_lrl fm_lrr)) fm_r = mkBranch 10 key_lr elt_lr (mkBranch 11 key_l elt_l fm_ll fm_lrl) (mkBranch 12 key elt fm_lrr fm_r); 50.37/31.87 single_L fm_l (Branch key_r elt_r _ fm_rl fm_rr) = mkBranch 3 key_r elt_r (mkBranch 4 key elt fm_l fm_rl) fm_rr; 50.37/31.87 single_R (Branch key_l elt_l _ fm_ll fm_lr) fm_r = mkBranch 8 key_l elt_l fm_ll (mkBranch 9 key elt fm_lr fm_r); 50.37/31.87 size_l = sizeFM fm_L; 50.37/31.87 size_r = sizeFM fm_R; 50.37/31.87 }; 50.37/31.87 50.37/31.87 mkBranch :: Ord b => Int -> b -> a -> FiniteMap b a -> FiniteMap b a -> FiniteMap b a; 50.37/31.87 mkBranch which key elt fm_l fm_r = let { 50.37/31.87 result = Branch key elt (unbox (1 + left_size + right_size)) fm_l fm_r; 50.37/31.87 } in result where { 50.37/31.87 balance_ok = True; 50.37/31.87 left_ok = case fm_l of { 50.37/31.87 EmptyFM-> True; 50.37/31.87 Branch left_key _ _ _ _-> let { 50.37/31.87 biggest_left_key = fst (findMax fm_l); 50.37/31.87 } in biggest_left_key < key; 50.37/31.87 } ; 50.37/31.87 left_size = sizeFM fm_l; 50.37/31.87 right_ok = case fm_r of { 50.37/31.87 EmptyFM-> True; 50.37/31.87 Branch right_key _ _ _ _-> let { 50.37/31.87 smallest_right_key = fst (findMin fm_r); 50.37/31.87 } in key < smallest_right_key; 50.37/31.87 } ; 50.37/31.87 right_size = sizeFM fm_r; 50.37/31.87 unbox :: Int -> Int; 50.37/31.87 unbox x = x; 50.37/31.87 }; 50.37/31.87 50.37/31.87 mkVBalBranch :: Ord a => a -> b -> FiniteMap a b -> FiniteMap a b -> FiniteMap a b; 50.37/31.87 mkVBalBranch key elt EmptyFM fm_r = addToFM fm_r key elt; 50.37/31.87 mkVBalBranch key elt fm_l EmptyFM = addToFM fm_l key elt; 50.37/31.87 mkVBalBranch key elt fm_l@(Branch key_l elt_l _ fm_ll fm_lr) fm_r@(Branch key_r elt_r _ fm_rl fm_rr) | sIZE_RATIO * size_l < size_r = mkBalBranch key_r elt_r (mkVBalBranch key elt fm_l fm_rl) fm_rr 50.37/31.87 | sIZE_RATIO * size_r < size_l = mkBalBranch key_l elt_l fm_ll (mkVBalBranch key elt fm_lr fm_r) 50.37/31.87 | otherwise = mkBranch 13 key elt fm_l fm_r where { 50.37/31.87 size_l = sizeFM fm_l; 50.37/31.87 size_r = sizeFM fm_r; 50.37/31.87 }; 50.37/31.87 50.37/31.87 sIZE_RATIO :: Int; 50.37/31.87 sIZE_RATIO = 5; 50.37/31.87 50.37/31.87 sizeFM :: FiniteMap a b -> Int; 50.37/31.87 sizeFM EmptyFM = 0; 50.37/31.87 sizeFM (Branch _ _ size _ _) = size; 50.37/31.87 50.37/31.87 unitFM :: b -> a -> FiniteMap b a; 50.37/31.87 unitFM key elt = Branch key elt 1 emptyFM emptyFM; 50.37/31.87 50.37/31.87 } 50.37/31.87 module Maybe where { 50.37/31.87 import qualified FiniteMap; 50.37/31.87 import qualified Main; 50.37/31.87 import qualified Prelude; 50.37/31.87 } 50.37/31.87 module Main where { 50.37/31.87 import qualified FiniteMap; 50.37/31.87 import qualified Maybe; 50.37/31.87 import qualified Prelude; 50.37/31.87 } 50.37/31.87 50.37/31.87 ---------------------------------------- 50.37/31.87 50.37/31.87 (1) LR (EQUIVALENT) 50.37/31.87 Lambda Reductions: 50.37/31.87 The following Lambda expression 50.37/31.87 "\oldnew->new" 50.37/31.87 is transformed to 50.37/31.87 "addToFM0 old new = new; 50.37/31.87 " 50.37/31.87 The following Lambda expression 50.37/31.87 "\(_,mid_elt2)->mid_elt2" 50.37/31.87 is transformed to 50.37/31.87 "mid_elt20 (_,mid_elt2) = mid_elt2; 50.37/31.87 " 50.37/31.87 The following Lambda expression 50.37/31.87 "\(mid_key2,_)->mid_key2" 50.37/31.87 is transformed to 50.37/31.87 "mid_key20 (mid_key2,_) = mid_key2; 50.37/31.87 " 50.37/31.87 The following Lambda expression 50.37/31.87 "\(mid_key1,_)->mid_key1" 50.37/31.87 is transformed to 50.37/31.87 "mid_key10 (mid_key1,_) = mid_key1; 50.37/31.87 " 50.37/31.87 The following Lambda expression 50.37/31.87 "\(_,mid_elt1)->mid_elt1" 50.37/31.87 is transformed to 50.37/31.87 "mid_elt10 (_,mid_elt1) = mid_elt1; 50.37/31.87 " 50.37/31.87 50.37/31.87 ---------------------------------------- 50.37/31.87 50.37/31.87 (2) 50.37/31.87 Obligation: 50.37/31.87 mainModule Main 50.37/31.87 module FiniteMap where { 50.37/31.87 import qualified Main; 50.37/31.87 import qualified Maybe; 50.37/31.87 import qualified Prelude; 50.37/31.87 data FiniteMap a b = EmptyFM | Branch a b Int (FiniteMap a b) (FiniteMap a b) ; 50.37/31.87 50.37/31.87 instance (Eq a, Eq b) => Eq FiniteMap b a where { 50.37/31.87 } 50.37/31.87 addToFM :: Ord b => FiniteMap b a -> b -> a -> FiniteMap b a; 50.37/31.87 addToFM fm key elt = addToFM_C addToFM0 fm key elt; 50.37/31.87 50.37/31.87 addToFM0 old new = new; 50.37/31.87 50.37/31.87 addToFM_C :: Ord a => (b -> b -> b) -> FiniteMap a b -> a -> b -> FiniteMap a b; 50.37/31.87 addToFM_C combiner EmptyFM key elt = unitFM key elt; 50.37/31.87 addToFM_C combiner (Branch key elt size fm_l fm_r) new_key new_elt | new_key < key = mkBalBranch key elt (addToFM_C combiner fm_l new_key new_elt) fm_r 50.37/31.87 | new_key > key = mkBalBranch key elt fm_l (addToFM_C combiner fm_r new_key new_elt) 50.37/31.87 | otherwise = Branch new_key (combiner elt new_elt) size fm_l fm_r; 50.37/31.87 50.37/31.87 deleteMax :: Ord a => FiniteMap a b -> FiniteMap a b; 50.37/31.87 deleteMax (Branch key elt _ fm_l EmptyFM) = fm_l; 50.37/31.87 deleteMax (Branch key elt _ fm_l fm_r) = mkBalBranch key elt fm_l (deleteMax fm_r); 50.37/31.87 50.37/31.87 deleteMin :: Ord b => FiniteMap b a -> FiniteMap b a; 50.37/31.87 deleteMin (Branch key elt _ EmptyFM fm_r) = fm_r; 50.37/31.87 deleteMin (Branch key elt _ fm_l fm_r) = mkBalBranch key elt (deleteMin fm_l) fm_r; 50.37/31.87 50.37/31.87 emptyFM :: FiniteMap b a; 50.37/31.87 emptyFM = EmptyFM; 50.37/31.87 50.37/31.87 filterFM :: Ord a => (a -> b -> Bool) -> FiniteMap a b -> FiniteMap a b; 50.37/31.87 filterFM p EmptyFM = emptyFM; 50.37/31.87 filterFM p (Branch key elt _ fm_l fm_r) | p key elt = mkVBalBranch key elt (filterFM p fm_l) (filterFM p fm_r) 50.37/31.87 | otherwise = glueVBal (filterFM p fm_l) (filterFM p fm_r); 50.37/31.87 50.37/31.87 findMax :: FiniteMap a b -> (a,b); 50.37/31.87 findMax (Branch key elt _ _ EmptyFM) = (key,elt); 50.37/31.87 findMax (Branch key elt _ _ fm_r) = findMax fm_r; 50.37/31.87 50.37/31.87 findMin :: FiniteMap b a -> (b,a); 50.37/31.87 findMin (Branch key elt _ EmptyFM _) = (key,elt); 50.37/31.87 findMin (Branch key elt _ fm_l _) = findMin fm_l; 50.37/31.87 50.37/31.87 glueBal :: Ord b => FiniteMap b a -> FiniteMap b a -> FiniteMap b a; 50.37/31.87 glueBal EmptyFM fm2 = fm2; 50.37/31.87 glueBal fm1 EmptyFM = fm1; 50.37/31.87 glueBal fm1 fm2 | sizeFM fm2 > sizeFM fm1 = mkBalBranch mid_key2 mid_elt2 fm1 (deleteMin fm2) 50.37/31.87 | otherwise = mkBalBranch mid_key1 mid_elt1 (deleteMax fm1) fm2 where { 50.37/31.87 mid_elt1 = mid_elt10 vv2; 50.37/31.87 mid_elt10 (_,mid_elt1) = mid_elt1; 50.37/31.87 mid_elt2 = mid_elt20 vv3; 50.37/31.87 mid_elt20 (_,mid_elt2) = mid_elt2; 50.37/31.87 mid_key1 = mid_key10 vv2; 50.37/31.87 mid_key10 (mid_key1,_) = mid_key1; 50.37/31.87 mid_key2 = mid_key20 vv3; 50.37/31.87 mid_key20 (mid_key2,_) = mid_key2; 50.37/31.87 vv2 = findMax fm1; 50.37/31.87 vv3 = findMin fm2; 50.37/31.87 }; 50.37/31.87 50.37/31.87 glueVBal :: Ord a => FiniteMap a b -> FiniteMap a b -> FiniteMap a b; 50.37/31.87 glueVBal EmptyFM fm2 = fm2; 50.37/31.87 glueVBal fm1 EmptyFM = fm1; 50.37/31.87 glueVBal fm_l@(Branch key_l elt_l _ fm_ll fm_lr) fm_r@(Branch key_r elt_r _ fm_rl fm_rr) | sIZE_RATIO * size_l < size_r = mkBalBranch key_r elt_r (glueVBal fm_l fm_rl) fm_rr 50.37/31.87 | sIZE_RATIO * size_r < size_l = mkBalBranch key_l elt_l fm_ll (glueVBal fm_lr fm_r) 50.37/31.87 | otherwise = glueBal fm_l fm_r where { 50.37/31.87 size_l = sizeFM fm_l; 50.37/31.87 size_r = sizeFM fm_r; 50.37/31.87 }; 50.37/31.87 50.37/31.87 mkBalBranch :: Ord b => b -> a -> FiniteMap b a -> FiniteMap b a -> FiniteMap b a; 50.37/31.87 mkBalBranch key elt fm_L fm_R | size_l + size_r < 2 = mkBranch 1 key elt fm_L fm_R 50.37/31.87 | size_r > sIZE_RATIO * size_l = case fm_R of { 50.37/31.87 Branch _ _ _ fm_rl fm_rr | sizeFM fm_rl < 2 * sizeFM fm_rr -> single_L fm_L fm_R 50.37/31.87 | otherwise -> double_L fm_L fm_R; 50.37/31.87 } 50.37/31.87 | size_l > sIZE_RATIO * size_r = case fm_L of { 50.37/31.87 Branch _ _ _ fm_ll fm_lr | sizeFM fm_lr < 2 * sizeFM fm_ll -> single_R fm_L fm_R 50.37/31.87 | otherwise -> double_R fm_L fm_R; 50.37/31.87 } 50.37/31.87 | otherwise = mkBranch 2 key elt fm_L fm_R where { 50.37/31.87 double_L fm_l (Branch key_r elt_r _ (Branch key_rl elt_rl _ fm_rll fm_rlr) fm_rr) = mkBranch 5 key_rl elt_rl (mkBranch 6 key elt fm_l fm_rll) (mkBranch 7 key_r elt_r fm_rlr fm_rr); 50.37/31.87 double_R (Branch key_l elt_l _ fm_ll (Branch key_lr elt_lr _ fm_lrl fm_lrr)) fm_r = mkBranch 10 key_lr elt_lr (mkBranch 11 key_l elt_l fm_ll fm_lrl) (mkBranch 12 key elt fm_lrr fm_r); 50.37/31.87 single_L fm_l (Branch key_r elt_r _ fm_rl fm_rr) = mkBranch 3 key_r elt_r (mkBranch 4 key elt fm_l fm_rl) fm_rr; 50.37/31.87 single_R (Branch key_l elt_l _ fm_ll fm_lr) fm_r = mkBranch 8 key_l elt_l fm_ll (mkBranch 9 key elt fm_lr fm_r); 50.37/31.87 size_l = sizeFM fm_L; 50.37/31.87 size_r = sizeFM fm_R; 50.37/31.87 }; 50.37/31.87 50.37/31.87 mkBranch :: Ord a => Int -> a -> b -> FiniteMap a b -> FiniteMap a b -> FiniteMap a b; 50.37/31.87 mkBranch which key elt fm_l fm_r = let { 50.37/31.87 result = Branch key elt (unbox (1 + left_size + right_size)) fm_l fm_r; 50.37/31.87 } in result where { 50.37/31.87 balance_ok = True; 50.37/31.87 left_ok = case fm_l of { 50.37/31.87 EmptyFM-> True; 50.37/31.87 Branch left_key _ _ _ _-> let { 50.37/31.87 biggest_left_key = fst (findMax fm_l); 50.37/31.87 } in biggest_left_key < key; 50.37/31.87 } ; 50.37/31.87 left_size = sizeFM fm_l; 50.37/31.87 right_ok = case fm_r of { 50.37/31.87 EmptyFM-> True; 50.37/31.87 Branch right_key _ _ _ _-> let { 50.37/31.87 smallest_right_key = fst (findMin fm_r); 50.37/31.87 } in key < smallest_right_key; 50.37/31.87 } ; 50.37/31.87 right_size = sizeFM fm_r; 50.37/31.87 unbox :: Int -> Int; 50.37/31.87 unbox x = x; 50.37/31.87 }; 50.37/31.87 50.37/31.87 mkVBalBranch :: Ord b => b -> a -> FiniteMap b a -> FiniteMap b a -> FiniteMap b a; 50.37/31.87 mkVBalBranch key elt EmptyFM fm_r = addToFM fm_r key elt; 50.37/31.87 mkVBalBranch key elt fm_l EmptyFM = addToFM fm_l key elt; 50.37/31.87 mkVBalBranch key elt fm_l@(Branch key_l elt_l _ fm_ll fm_lr) fm_r@(Branch key_r elt_r _ fm_rl fm_rr) | sIZE_RATIO * size_l < size_r = mkBalBranch key_r elt_r (mkVBalBranch key elt fm_l fm_rl) fm_rr 50.37/31.87 | sIZE_RATIO * size_r < size_l = mkBalBranch key_l elt_l fm_ll (mkVBalBranch key elt fm_lr fm_r) 50.37/31.87 | otherwise = mkBranch 13 key elt fm_l fm_r where { 50.37/31.87 size_l = sizeFM fm_l; 50.37/31.87 size_r = sizeFM fm_r; 50.37/31.87 }; 50.37/31.87 50.37/31.87 sIZE_RATIO :: Int; 50.37/31.87 sIZE_RATIO = 5; 50.37/31.87 50.37/31.87 sizeFM :: FiniteMap a b -> Int; 50.37/31.87 sizeFM EmptyFM = 0; 50.37/31.87 sizeFM (Branch _ _ size _ _) = size; 50.37/31.87 50.37/31.87 unitFM :: b -> a -> FiniteMap b a; 50.37/31.87 unitFM key elt = Branch key elt 1 emptyFM emptyFM; 50.37/31.87 50.37/31.87 } 50.37/31.87 module Maybe where { 50.37/31.87 import qualified FiniteMap; 50.37/31.87 import qualified Main; 50.37/31.87 import qualified Prelude; 50.37/31.87 } 50.37/31.87 module Main where { 50.37/31.87 import qualified FiniteMap; 50.37/31.87 import qualified Maybe; 50.37/31.87 import qualified Prelude; 50.37/31.87 } 50.37/31.87 50.37/31.87 ---------------------------------------- 50.37/31.87 50.37/31.87 (3) CR (EQUIVALENT) 50.37/31.87 Case Reductions: 50.37/31.87 The following Case expression 50.37/31.87 "case fm_r of { 50.37/31.87 EmptyFM -> True; 50.37/31.87 Branch right_key _ _ _ _ -> let { 50.37/31.87 smallest_right_key = fst (findMin fm_r); 50.37/31.87 } in key < smallest_right_key} 50.37/31.87 " 50.37/31.87 is transformed to 50.37/31.87 "right_ok0 fm_r key EmptyFM = True; 50.37/31.87 right_ok0 fm_r key (Branch right_key _ _ _ _) = let { 50.37/31.87 smallest_right_key = fst (findMin fm_r); 50.37/31.87 } in key < smallest_right_key; 50.37/31.87 " 50.37/31.87 The following Case expression 50.37/31.87 "case fm_l of { 50.37/31.87 EmptyFM -> True; 50.37/31.87 Branch left_key _ _ _ _ -> let { 50.37/31.87 biggest_left_key = fst (findMax fm_l); 50.37/31.87 } in biggest_left_key < key} 50.37/31.87 " 50.37/31.87 is transformed to 50.37/31.87 "left_ok0 fm_l key EmptyFM = True; 50.37/31.87 left_ok0 fm_l key (Branch left_key _ _ _ _) = let { 50.37/31.87 biggest_left_key = fst (findMax fm_l); 50.37/31.87 } in biggest_left_key < key; 50.37/31.87 " 50.37/31.87 The following Case expression 50.37/31.87 "case fm_R of { 50.37/31.87 Branch _ _ _ fm_rl fm_rr |sizeFM fm_rl < 2 * sizeFM fm_rrsingle_L fm_L fm_R|otherwisedouble_L fm_L fm_R} 50.37/31.87 " 50.37/31.87 is transformed to 50.37/31.87 "mkBalBranch0 fm_L fm_R (Branch _ _ _ fm_rl fm_rr)|sizeFM fm_rl < 2 * sizeFM fm_rrsingle_L fm_L fm_R|otherwisedouble_L fm_L fm_R; 50.37/31.87 " 50.37/31.87 The following Case expression 50.37/31.87 "case fm_L of { 50.37/31.87 Branch _ _ _ fm_ll fm_lr |sizeFM fm_lr < 2 * sizeFM fm_llsingle_R fm_L fm_R|otherwisedouble_R fm_L fm_R} 50.37/31.87 " 50.37/31.87 is transformed to 50.37/31.87 "mkBalBranch1 fm_L fm_R (Branch _ _ _ fm_ll fm_lr)|sizeFM fm_lr < 2 * sizeFM fm_llsingle_R fm_L fm_R|otherwisedouble_R fm_L fm_R; 50.37/31.87 " 50.37/31.87 50.37/31.87 ---------------------------------------- 50.37/31.87 50.37/31.87 (4) 50.37/31.87 Obligation: 50.37/31.87 mainModule Main 50.37/31.87 module FiniteMap where { 50.37/31.87 import qualified Main; 50.37/31.87 import qualified Maybe; 50.37/31.87 import qualified Prelude; 50.37/31.87 data FiniteMap a b = EmptyFM | Branch a b Int (FiniteMap a b) (FiniteMap a b) ; 50.37/31.87 50.37/31.87 instance (Eq a, Eq b) => Eq FiniteMap b a where { 50.37/31.87 } 50.37/31.87 addToFM :: Ord a => FiniteMap a b -> a -> b -> FiniteMap a b; 50.37/31.87 addToFM fm key elt = addToFM_C addToFM0 fm key elt; 50.37/31.87 50.37/31.87 addToFM0 old new = new; 50.37/31.87 50.37/31.87 addToFM_C :: Ord b => (a -> a -> a) -> FiniteMap b a -> b -> a -> FiniteMap b a; 50.37/31.87 addToFM_C combiner EmptyFM key elt = unitFM key elt; 50.37/31.87 addToFM_C combiner (Branch key elt size fm_l fm_r) new_key new_elt | new_key < key = mkBalBranch key elt (addToFM_C combiner fm_l new_key new_elt) fm_r 50.37/31.87 | new_key > key = mkBalBranch key elt fm_l (addToFM_C combiner fm_r new_key new_elt) 50.37/31.87 | otherwise = Branch new_key (combiner elt new_elt) size fm_l fm_r; 50.37/31.87 50.37/31.87 deleteMax :: Ord b => FiniteMap b a -> FiniteMap b a; 50.37/31.87 deleteMax (Branch key elt _ fm_l EmptyFM) = fm_l; 50.37/31.87 deleteMax (Branch key elt _ fm_l fm_r) = mkBalBranch key elt fm_l (deleteMax fm_r); 50.37/31.87 50.37/31.87 deleteMin :: Ord b => FiniteMap b a -> FiniteMap b a; 50.37/31.87 deleteMin (Branch key elt _ EmptyFM fm_r) = fm_r; 50.37/31.87 deleteMin (Branch key elt _ fm_l fm_r) = mkBalBranch key elt (deleteMin fm_l) fm_r; 50.37/31.87 50.37/31.87 emptyFM :: FiniteMap a b; 50.37/31.87 emptyFM = EmptyFM; 50.37/31.87 50.37/31.87 filterFM :: Ord b => (b -> a -> Bool) -> FiniteMap b a -> FiniteMap b a; 50.37/31.87 filterFM p EmptyFM = emptyFM; 50.37/31.87 filterFM p (Branch key elt _ fm_l fm_r) | p key elt = mkVBalBranch key elt (filterFM p fm_l) (filterFM p fm_r) 50.37/31.87 | otherwise = glueVBal (filterFM p fm_l) (filterFM p fm_r); 50.37/31.87 50.37/31.87 findMax :: FiniteMap b a -> (b,a); 50.37/31.87 findMax (Branch key elt _ _ EmptyFM) = (key,elt); 50.37/31.87 findMax (Branch key elt _ _ fm_r) = findMax fm_r; 50.37/31.87 50.37/31.87 findMin :: FiniteMap b a -> (b,a); 50.37/31.87 findMin (Branch key elt _ EmptyFM _) = (key,elt); 50.37/31.87 findMin (Branch key elt _ fm_l _) = findMin fm_l; 50.37/31.87 50.37/31.87 glueBal :: Ord b => FiniteMap b a -> FiniteMap b a -> FiniteMap b a; 50.37/31.87 glueBal EmptyFM fm2 = fm2; 50.37/31.87 glueBal fm1 EmptyFM = fm1; 50.37/31.87 glueBal fm1 fm2 | sizeFM fm2 > sizeFM fm1 = mkBalBranch mid_key2 mid_elt2 fm1 (deleteMin fm2) 50.37/31.87 | otherwise = mkBalBranch mid_key1 mid_elt1 (deleteMax fm1) fm2 where { 50.37/31.87 mid_elt1 = mid_elt10 vv2; 50.37/31.87 mid_elt10 (_,mid_elt1) = mid_elt1; 50.37/31.87 mid_elt2 = mid_elt20 vv3; 50.37/31.87 mid_elt20 (_,mid_elt2) = mid_elt2; 50.37/31.87 mid_key1 = mid_key10 vv2; 50.37/31.87 mid_key10 (mid_key1,_) = mid_key1; 50.37/31.87 mid_key2 = mid_key20 vv3; 50.37/31.87 mid_key20 (mid_key2,_) = mid_key2; 50.37/31.87 vv2 = findMax fm1; 50.37/31.87 vv3 = findMin fm2; 50.37/31.87 }; 50.37/31.87 50.37/31.87 glueVBal :: Ord b => FiniteMap b a -> FiniteMap b a -> FiniteMap b a; 50.37/31.87 glueVBal EmptyFM fm2 = fm2; 50.37/31.87 glueVBal fm1 EmptyFM = fm1; 50.37/31.87 glueVBal fm_l@(Branch key_l elt_l _ fm_ll fm_lr) fm_r@(Branch key_r elt_r _ fm_rl fm_rr) | sIZE_RATIO * size_l < size_r = mkBalBranch key_r elt_r (glueVBal fm_l fm_rl) fm_rr 50.37/31.87 | sIZE_RATIO * size_r < size_l = mkBalBranch key_l elt_l fm_ll (glueVBal fm_lr fm_r) 50.37/31.87 | otherwise = glueBal fm_l fm_r where { 50.37/31.87 size_l = sizeFM fm_l; 50.37/31.87 size_r = sizeFM fm_r; 50.37/31.87 }; 50.37/31.87 50.37/31.87 mkBalBranch :: Ord a => a -> b -> FiniteMap a b -> FiniteMap a b -> FiniteMap a b; 50.37/31.87 mkBalBranch key elt fm_L fm_R | size_l + size_r < 2 = mkBranch 1 key elt fm_L fm_R 50.37/31.87 | size_r > sIZE_RATIO * size_l = mkBalBranch0 fm_L fm_R fm_R 50.37/31.87 | size_l > sIZE_RATIO * size_r = mkBalBranch1 fm_L fm_R fm_L 50.37/31.87 | otherwise = mkBranch 2 key elt fm_L fm_R where { 50.37/31.87 double_L fm_l (Branch key_r elt_r _ (Branch key_rl elt_rl _ fm_rll fm_rlr) fm_rr) = mkBranch 5 key_rl elt_rl (mkBranch 6 key elt fm_l fm_rll) (mkBranch 7 key_r elt_r fm_rlr fm_rr); 50.37/31.87 double_R (Branch key_l elt_l _ fm_ll (Branch key_lr elt_lr _ fm_lrl fm_lrr)) fm_r = mkBranch 10 key_lr elt_lr (mkBranch 11 key_l elt_l fm_ll fm_lrl) (mkBranch 12 key elt fm_lrr fm_r); 50.37/31.87 mkBalBranch0 fm_L fm_R (Branch _ _ _ fm_rl fm_rr) | sizeFM fm_rl < 2 * sizeFM fm_rr = single_L fm_L fm_R 50.37/31.87 | otherwise = double_L fm_L fm_R; 50.37/31.87 mkBalBranch1 fm_L fm_R (Branch _ _ _ fm_ll fm_lr) | sizeFM fm_lr < 2 * sizeFM fm_ll = single_R fm_L fm_R 50.37/31.87 | otherwise = double_R fm_L fm_R; 50.37/31.87 single_L fm_l (Branch key_r elt_r _ fm_rl fm_rr) = mkBranch 3 key_r elt_r (mkBranch 4 key elt fm_l fm_rl) fm_rr; 50.37/31.87 single_R (Branch key_l elt_l _ fm_ll fm_lr) fm_r = mkBranch 8 key_l elt_l fm_ll (mkBranch 9 key elt fm_lr fm_r); 50.37/31.87 size_l = sizeFM fm_L; 50.37/31.87 size_r = sizeFM fm_R; 50.37/31.87 }; 50.37/31.87 50.37/31.87 mkBranch :: Ord a => Int -> a -> b -> FiniteMap a b -> FiniteMap a b -> FiniteMap a b; 50.37/31.87 mkBranch which key elt fm_l fm_r = let { 50.37/31.87 result = Branch key elt (unbox (1 + left_size + right_size)) fm_l fm_r; 50.37/31.87 } in result where { 50.37/31.87 balance_ok = True; 50.37/31.87 left_ok = left_ok0 fm_l key fm_l; 50.37/31.87 left_ok0 fm_l key EmptyFM = True; 50.37/31.87 left_ok0 fm_l key (Branch left_key _ _ _ _) = let { 50.37/31.87 biggest_left_key = fst (findMax fm_l); 50.37/31.87 } in biggest_left_key < key; 50.37/31.87 left_size = sizeFM fm_l; 50.37/31.87 right_ok = right_ok0 fm_r key fm_r; 50.37/31.87 right_ok0 fm_r key EmptyFM = True; 50.37/31.87 right_ok0 fm_r key (Branch right_key _ _ _ _) = let { 50.37/31.87 smallest_right_key = fst (findMin fm_r); 50.37/31.87 } in key < smallest_right_key; 50.37/31.87 right_size = sizeFM fm_r; 50.37/31.87 unbox :: Int -> Int; 50.37/31.87 unbox x = x; 50.37/31.87 }; 50.37/31.87 50.37/31.87 mkVBalBranch :: Ord b => b -> a -> FiniteMap b a -> FiniteMap b a -> FiniteMap b a; 50.37/31.87 mkVBalBranch key elt EmptyFM fm_r = addToFM fm_r key elt; 50.37/31.87 mkVBalBranch key elt fm_l EmptyFM = addToFM fm_l key elt; 50.37/31.87 mkVBalBranch key elt fm_l@(Branch key_l elt_l _ fm_ll fm_lr) fm_r@(Branch key_r elt_r _ fm_rl fm_rr) | sIZE_RATIO * size_l < size_r = mkBalBranch key_r elt_r (mkVBalBranch key elt fm_l fm_rl) fm_rr 50.37/31.87 | sIZE_RATIO * size_r < size_l = mkBalBranch key_l elt_l fm_ll (mkVBalBranch key elt fm_lr fm_r) 50.37/31.87 | otherwise = mkBranch 13 key elt fm_l fm_r where { 50.37/31.87 size_l = sizeFM fm_l; 50.37/31.87 size_r = sizeFM fm_r; 50.37/31.87 }; 50.37/31.87 50.37/31.87 sIZE_RATIO :: Int; 50.37/31.87 sIZE_RATIO = 5; 50.37/31.87 50.37/31.87 sizeFM :: FiniteMap b a -> Int; 50.37/31.87 sizeFM EmptyFM = 0; 50.37/31.87 sizeFM (Branch _ _ size _ _) = size; 50.37/31.87 50.37/31.87 unitFM :: a -> b -> FiniteMap a b; 50.37/31.87 unitFM key elt = Branch key elt 1 emptyFM emptyFM; 50.37/31.87 50.37/31.87 } 50.37/31.87 module Maybe where { 50.37/31.87 import qualified FiniteMap; 50.37/31.87 import qualified Main; 50.37/31.87 import qualified Prelude; 50.37/31.87 } 50.37/31.87 module Main where { 50.37/31.87 import qualified FiniteMap; 50.37/31.87 import qualified Maybe; 50.37/31.87 import qualified Prelude; 50.37/31.87 } 50.37/31.87 50.37/31.87 ---------------------------------------- 50.37/31.87 50.37/31.87 (5) BR (EQUIVALENT) 50.37/31.87 Replaced joker patterns by fresh variables and removed binding patterns. 50.37/31.87 50.37/31.87 Binding Reductions: 50.37/31.87 The bind variable of the following binding Pattern 50.37/31.87 "fm_l@(Branch wu wv ww wx wy)" 50.37/31.87 is replaced by the following term 50.37/31.87 "Branch wu wv ww wx wy" 50.37/31.87 The bind variable of the following binding Pattern 50.37/31.87 "fm_r@(Branch xu xv xw xx xy)" 50.37/31.87 is replaced by the following term 50.37/31.87 "Branch xu xv xw xx xy" 50.37/31.87 The bind variable of the following binding Pattern 50.37/31.87 "fm_l@(Branch vxu vxv vxw vxx vxy)" 50.37/31.87 is replaced by the following term 50.37/31.87 "Branch vxu vxv vxw vxx vxy" 50.37/31.87 The bind variable of the following binding Pattern 50.37/31.87 "fm_r@(Branch vyu vyv vyw vyx vyy)" 50.37/31.87 is replaced by the following term 50.37/31.87 "Branch vyu vyv vyw vyx vyy" 50.37/31.87 50.37/31.87 ---------------------------------------- 50.37/31.87 50.37/31.87 (6) 50.37/31.87 Obligation: 50.37/31.87 mainModule Main 50.37/31.87 module FiniteMap where { 50.37/31.87 import qualified Main; 50.37/31.87 import qualified Maybe; 50.37/31.87 import qualified Prelude; 50.37/31.87 data FiniteMap a b = EmptyFM | Branch a b Int (FiniteMap a b) (FiniteMap a b) ; 50.37/31.87 50.37/31.87 instance (Eq a, Eq b) => Eq FiniteMap a b where { 50.37/31.87 } 50.37/31.87 addToFM :: Ord b => FiniteMap b a -> b -> a -> FiniteMap b a; 50.37/31.87 addToFM fm key elt = addToFM_C addToFM0 fm key elt; 50.37/31.87 50.37/31.87 addToFM0 old new = new; 50.37/31.87 50.37/31.87 addToFM_C :: Ord b => (a -> a -> a) -> FiniteMap b a -> b -> a -> FiniteMap b a; 50.37/31.87 addToFM_C combiner EmptyFM key elt = unitFM key elt; 50.37/31.87 addToFM_C combiner (Branch key elt size fm_l fm_r) new_key new_elt | new_key < key = mkBalBranch key elt (addToFM_C combiner fm_l new_key new_elt) fm_r 50.37/31.87 | new_key > key = mkBalBranch key elt fm_l (addToFM_C combiner fm_r new_key new_elt) 50.37/31.87 | otherwise = Branch new_key (combiner elt new_elt) size fm_l fm_r; 50.37/31.87 50.37/31.87 deleteMax :: Ord b => FiniteMap b a -> FiniteMap b a; 50.37/31.87 deleteMax (Branch key elt xz fm_l EmptyFM) = fm_l; 50.37/31.87 deleteMax (Branch key elt yu fm_l fm_r) = mkBalBranch key elt fm_l (deleteMax fm_r); 50.37/31.87 50.37/31.87 deleteMin :: Ord a => FiniteMap a b -> FiniteMap a b; 50.37/31.87 deleteMin (Branch key elt vzx EmptyFM fm_r) = fm_r; 50.37/31.87 deleteMin (Branch key elt vzy fm_l fm_r) = mkBalBranch key elt (deleteMin fm_l) fm_r; 50.37/31.87 50.37/31.87 emptyFM :: FiniteMap a b; 50.37/31.87 emptyFM = EmptyFM; 50.37/31.87 50.37/31.87 filterFM :: Ord a => (a -> b -> Bool) -> FiniteMap a b -> FiniteMap a b; 50.37/31.87 filterFM p EmptyFM = emptyFM; 50.37/31.87 filterFM p (Branch key elt vzz fm_l fm_r) | p key elt = mkVBalBranch key elt (filterFM p fm_l) (filterFM p fm_r) 50.37/31.87 | otherwise = glueVBal (filterFM p fm_l) (filterFM p fm_r); 50.37/31.87 50.37/31.87 findMax :: FiniteMap b a -> (b,a); 50.37/31.87 findMax (Branch key elt zx zy EmptyFM) = (key,elt); 50.37/31.87 findMax (Branch key elt zz vuu fm_r) = findMax fm_r; 50.37/31.87 50.37/31.87 findMin :: FiniteMap a b -> (a,b); 50.37/31.87 findMin (Branch key elt wuu EmptyFM wuv) = (key,elt); 50.37/31.87 findMin (Branch key elt wuw fm_l wux) = findMin fm_l; 50.37/31.87 50.37/31.87 glueBal :: Ord a => FiniteMap a b -> FiniteMap a b -> FiniteMap a b; 50.37/31.87 glueBal EmptyFM fm2 = fm2; 50.37/31.87 glueBal fm1 EmptyFM = fm1; 50.37/31.87 glueBal fm1 fm2 | sizeFM fm2 > sizeFM fm1 = mkBalBranch mid_key2 mid_elt2 fm1 (deleteMin fm2) 50.37/31.87 | otherwise = mkBalBranch mid_key1 mid_elt1 (deleteMax fm1) fm2 where { 50.37/31.87 mid_elt1 = mid_elt10 vv2; 50.37/31.87 mid_elt10 (vww,mid_elt1) = mid_elt1; 50.37/31.87 mid_elt2 = mid_elt20 vv3; 50.37/31.87 mid_elt20 (vwv,mid_elt2) = mid_elt2; 50.37/31.87 mid_key1 = mid_key10 vv2; 50.37/31.87 mid_key10 (mid_key1,vwx) = mid_key1; 50.37/31.87 mid_key2 = mid_key20 vv3; 50.37/31.87 mid_key20 (mid_key2,vwy) = mid_key2; 50.37/31.87 vv2 = findMax fm1; 50.37/31.87 vv3 = findMin fm2; 50.37/31.87 }; 50.37/31.87 50.37/31.87 glueVBal :: Ord a => FiniteMap a b -> FiniteMap a b -> FiniteMap a b; 50.37/31.87 glueVBal EmptyFM fm2 = fm2; 50.37/31.87 glueVBal fm1 EmptyFM = fm1; 50.37/31.87 glueVBal (Branch vxu vxv vxw vxx vxy) (Branch vyu vyv vyw vyx vyy) | sIZE_RATIO * size_l < size_r = mkBalBranch vyu vyv (glueVBal (Branch vxu vxv vxw vxx vxy) vyx) vyy 50.37/31.87 | sIZE_RATIO * size_r < size_l = mkBalBranch vxu vxv vxx (glueVBal vxy (Branch vyu vyv vyw vyx vyy)) 50.37/31.87 | otherwise = glueBal (Branch vxu vxv vxw vxx vxy) (Branch vyu vyv vyw vyx vyy) where { 50.37/31.87 size_l = sizeFM (Branch vxu vxv vxw vxx vxy); 50.37/31.87 size_r = sizeFM (Branch vyu vyv vyw vyx vyy); 50.37/31.87 }; 50.37/31.87 50.37/31.87 mkBalBranch :: Ord a => a -> b -> FiniteMap a b -> FiniteMap a b -> FiniteMap a b; 50.37/31.87 mkBalBranch key elt fm_L fm_R | size_l + size_r < 2 = mkBranch 1 key elt fm_L fm_R 50.37/31.87 | size_r > sIZE_RATIO * size_l = mkBalBranch0 fm_L fm_R fm_R 50.37/31.87 | size_l > sIZE_RATIO * size_r = mkBalBranch1 fm_L fm_R fm_L 50.37/31.87 | otherwise = mkBranch 2 key elt fm_L fm_R where { 50.37/31.87 double_L fm_l (Branch key_r elt_r vvv (Branch key_rl elt_rl vvw fm_rll fm_rlr) fm_rr) = mkBranch 5 key_rl elt_rl (mkBranch 6 key elt fm_l fm_rll) (mkBranch 7 key_r elt_r fm_rlr fm_rr); 50.37/31.87 double_R (Branch key_l elt_l vuw fm_ll (Branch key_lr elt_lr vux fm_lrl fm_lrr)) fm_r = mkBranch 10 key_lr elt_lr (mkBranch 11 key_l elt_l fm_ll fm_lrl) (mkBranch 12 key elt fm_lrr fm_r); 50.37/31.87 mkBalBranch0 fm_L fm_R (Branch vvx vvy vvz fm_rl fm_rr) | sizeFM fm_rl < 2 * sizeFM fm_rr = single_L fm_L fm_R 50.37/31.87 | otherwise = double_L fm_L fm_R; 50.37/31.87 mkBalBranch1 fm_L fm_R (Branch vuy vuz vvu fm_ll fm_lr) | sizeFM fm_lr < 2 * sizeFM fm_ll = single_R fm_L fm_R 50.37/31.87 | otherwise = double_R fm_L fm_R; 50.37/31.87 single_L fm_l (Branch key_r elt_r vwu fm_rl fm_rr) = mkBranch 3 key_r elt_r (mkBranch 4 key elt fm_l fm_rl) fm_rr; 50.37/31.87 single_R (Branch key_l elt_l vuv fm_ll fm_lr) fm_r = mkBranch 8 key_l elt_l fm_ll (mkBranch 9 key elt fm_lr fm_r); 50.37/31.87 size_l = sizeFM fm_L; 50.37/31.87 size_r = sizeFM fm_R; 50.37/31.87 }; 50.37/31.87 50.37/31.87 mkBranch :: Ord a => Int -> a -> b -> FiniteMap a b -> FiniteMap a b -> FiniteMap a b; 50.37/31.87 mkBranch which key elt fm_l fm_r = let { 50.37/31.87 result = Branch key elt (unbox (1 + left_size + right_size)) fm_l fm_r; 50.37/31.87 } in result where { 50.37/31.87 balance_ok = True; 50.37/31.87 left_ok = left_ok0 fm_l key fm_l; 50.37/31.87 left_ok0 fm_l key EmptyFM = True; 50.37/31.87 left_ok0 fm_l key (Branch left_key yv yw yx yy) = let { 50.37/31.87 biggest_left_key = fst (findMax fm_l); 50.37/31.87 } in biggest_left_key < key; 50.37/31.87 left_size = sizeFM fm_l; 50.37/31.87 right_ok = right_ok0 fm_r key fm_r; 50.37/31.87 right_ok0 fm_r key EmptyFM = True; 50.37/31.87 right_ok0 fm_r key (Branch right_key yz zu zv zw) = let { 50.37/31.87 smallest_right_key = fst (findMin fm_r); 50.37/31.87 } in key < smallest_right_key; 50.37/31.87 right_size = sizeFM fm_r; 50.37/31.87 unbox :: Int -> Int; 50.37/31.87 unbox x = x; 50.37/31.87 }; 50.37/31.87 50.37/31.87 mkVBalBranch :: Ord a => a -> b -> FiniteMap a b -> FiniteMap a b -> FiniteMap a b; 50.37/31.87 mkVBalBranch key elt EmptyFM fm_r = addToFM fm_r key elt; 50.37/31.87 mkVBalBranch key elt fm_l EmptyFM = addToFM fm_l key elt; 50.37/31.87 mkVBalBranch key elt (Branch wu wv ww wx wy) (Branch xu xv xw xx xy) | sIZE_RATIO * size_l < size_r = mkBalBranch xu xv (mkVBalBranch key elt (Branch wu wv ww wx wy) xx) xy 50.37/31.87 | sIZE_RATIO * size_r < size_l = mkBalBranch wu wv wx (mkVBalBranch key elt wy (Branch xu xv xw xx xy)) 50.37/31.87 | otherwise = mkBranch 13 key elt (Branch wu wv ww wx wy) (Branch xu xv xw xx xy) where { 50.37/31.87 size_l = sizeFM (Branch wu wv ww wx wy); 50.37/31.87 size_r = sizeFM (Branch xu xv xw xx xy); 50.37/31.87 }; 50.37/31.87 50.37/31.87 sIZE_RATIO :: Int; 50.37/31.87 sIZE_RATIO = 5; 50.37/31.87 50.37/31.87 sizeFM :: FiniteMap a b -> Int; 50.37/31.87 sizeFM EmptyFM = 0; 50.37/31.87 sizeFM (Branch vyz vzu size vzv vzw) = size; 50.37/31.87 50.37/31.87 unitFM :: a -> b -> FiniteMap a b; 50.37/31.87 unitFM key elt = Branch key elt 1 emptyFM emptyFM; 50.37/31.87 50.37/31.87 } 50.37/31.87 module Maybe where { 50.37/31.87 import qualified FiniteMap; 50.37/31.87 import qualified Main; 50.37/31.87 import qualified Prelude; 50.37/31.87 } 50.37/31.87 module Main where { 50.37/31.87 import qualified FiniteMap; 50.37/31.87 import qualified Maybe; 50.37/31.87 import qualified Prelude; 50.37/31.87 } 50.37/31.87 50.37/31.87 ---------------------------------------- 50.37/31.87 50.37/31.87 (7) COR (EQUIVALENT) 50.37/31.87 Cond Reductions: 50.37/31.87 The following Function with conditions 50.37/31.87 "undefined |Falseundefined; 50.37/31.87 " 50.37/31.87 is transformed to 50.37/31.87 "undefined = undefined1; 50.37/31.87 " 50.37/31.87 "undefined0 True = undefined; 50.37/31.87 " 50.37/31.87 "undefined1 = undefined0 False; 50.37/31.87 " 50.37/31.87 The following Function with conditions 50.37/31.87 "addToFM_C combiner EmptyFM key elt = unitFM key elt; 50.37/31.87 addToFM_C combiner (Branch key elt size fm_l fm_r) new_key new_elt|new_key < keymkBalBranch key elt (addToFM_C combiner fm_l new_key new_elt) fm_r|new_key > keymkBalBranch key elt fm_l (addToFM_C combiner fm_r new_key new_elt)|otherwiseBranch new_key (combiner elt new_elt) size fm_l fm_r; 50.37/31.87 " 50.37/31.87 is transformed to 50.37/31.87 "addToFM_C combiner EmptyFM key elt = addToFM_C4 combiner EmptyFM key elt; 50.37/31.87 addToFM_C combiner (Branch key elt size fm_l fm_r) new_key new_elt = addToFM_C3 combiner (Branch key elt size fm_l fm_r) new_key new_elt; 50.37/31.87 " 50.37/31.87 "addToFM_C2 combiner key elt size fm_l fm_r new_key new_elt True = mkBalBranch key elt (addToFM_C combiner fm_l new_key new_elt) fm_r; 50.37/31.87 addToFM_C2 combiner key elt size fm_l fm_r new_key new_elt False = addToFM_C1 combiner key elt size fm_l fm_r new_key new_elt (new_key > key); 50.37/31.87 " 50.37/31.87 "addToFM_C0 combiner key elt size fm_l fm_r new_key new_elt True = Branch new_key (combiner elt new_elt) size fm_l fm_r; 50.37/31.87 " 50.37/31.87 "addToFM_C1 combiner key elt size fm_l fm_r new_key new_elt True = mkBalBranch key elt fm_l (addToFM_C combiner fm_r new_key new_elt); 50.37/31.87 addToFM_C1 combiner key elt size fm_l fm_r new_key new_elt False = addToFM_C0 combiner key elt size fm_l fm_r new_key new_elt otherwise; 50.37/31.87 " 50.37/31.87 "addToFM_C3 combiner (Branch key elt size fm_l fm_r) new_key new_elt = addToFM_C2 combiner key elt size fm_l fm_r new_key new_elt (new_key < key); 50.37/31.87 " 50.37/31.87 "addToFM_C4 combiner EmptyFM key elt = unitFM key elt; 50.37/31.87 addToFM_C4 wvu wvv wvw wvx = addToFM_C3 wvu wvv wvw wvx; 50.37/31.87 " 50.37/31.87 The following Function with conditions 50.37/31.87 "mkVBalBranch key elt EmptyFM fm_r = addToFM fm_r key elt; 50.37/31.87 mkVBalBranch key elt fm_l EmptyFM = addToFM fm_l key elt; 50.37/31.87 mkVBalBranch key elt (Branch wu wv ww wx wy) (Branch xu xv xw xx xy)|sIZE_RATIO * size_l < size_rmkBalBranch xu xv (mkVBalBranch key elt (Branch wu wv ww wx wy) xx) xy|sIZE_RATIO * size_r < size_lmkBalBranch wu wv wx (mkVBalBranch key elt wy (Branch xu xv xw xx xy))|otherwisemkBranch 13 key elt (Branch wu wv ww wx wy) (Branch xu xv xw xx xy) where { 51.52/32.14 size_l = sizeFM (Branch wu wv ww wx wy); 51.52/32.14 ; 51.52/32.14 size_r = sizeFM (Branch xu xv xw xx xy); 51.52/32.14 } 51.52/32.14 ; 51.52/32.14 " 51.52/32.14 is transformed to 51.52/32.14 "mkVBalBranch key elt EmptyFM fm_r = mkVBalBranch5 key elt EmptyFM fm_r; 51.52/32.14 mkVBalBranch key elt fm_l EmptyFM = mkVBalBranch4 key elt fm_l EmptyFM; 51.52/32.14 mkVBalBranch key elt (Branch wu wv ww wx wy) (Branch xu xv xw xx xy) = mkVBalBranch3 key elt (Branch wu wv ww wx wy) (Branch xu xv xw xx xy); 51.52/32.14 " 51.52/32.14 "mkVBalBranch3 key elt (Branch wu wv ww wx wy) (Branch xu xv xw xx xy) = mkVBalBranch2 key elt wu wv ww wx wy xu xv xw xx xy (sIZE_RATIO * size_l < size_r) where { 51.52/32.14 mkVBalBranch0 key elt wu wv ww wx wy xu xv xw xx xy True = mkBranch 13 key elt (Branch wu wv ww wx wy) (Branch xu xv xw xx xy); 51.52/32.14 ; 51.52/32.14 mkVBalBranch1 key elt wu wv ww wx wy xu xv xw xx xy True = mkBalBranch wu wv wx (mkVBalBranch key elt wy (Branch xu xv xw xx xy)); 51.52/32.14 mkVBalBranch1 key elt wu wv ww wx wy xu xv xw xx xy False = mkVBalBranch0 key elt wu wv ww wx wy xu xv xw xx xy otherwise; 52.97/33.37 ; 52.97/33.37 mkVBalBranch2 key elt wu wv ww wx wy xu xv xw xx xy True = mkBalBranch xu xv (mkVBalBranch key elt (Branch wu wv ww wx wy) xx) xy; 52.97/33.37 mkVBalBranch2 key elt wu wv ww wx wy xu xv xw xx xy False = mkVBalBranch1 key elt wu wv ww wx wy xu xv xw xx xy (sIZE_RATIO * size_r < size_l); 52.97/33.37 ; 52.97/33.37 size_l = sizeFM (Branch wu wv ww wx wy); 52.97/33.37 ; 52.97/33.37 size_r = sizeFM (Branch xu xv xw xx xy); 52.97/33.37 } 52.97/33.37 ; 52.97/33.37 " 52.97/33.37 "mkVBalBranch4 key elt fm_l EmptyFM = addToFM fm_l key elt; 52.97/33.37 mkVBalBranch4 wwv www wwx wwy = mkVBalBranch3 wwv www wwx wwy; 52.97/33.37 " 52.97/33.37 "mkVBalBranch5 key elt EmptyFM fm_r = addToFM fm_r key elt; 52.97/33.37 mkVBalBranch5 wxu wxv wxw wxx = mkVBalBranch4 wxu wxv wxw wxx; 52.97/33.37 " 52.97/33.37 The following Function with conditions 52.97/33.37 "mkBalBranch1 fm_L fm_R (Branch vuy vuz vvu fm_ll fm_lr)|sizeFM fm_lr < 2 * sizeFM fm_llsingle_R fm_L fm_R|otherwisedouble_R fm_L fm_R; 52.97/33.37 " 52.97/33.37 is transformed to 52.97/33.37 "mkBalBranch1 fm_L fm_R (Branch vuy vuz vvu fm_ll fm_lr) = mkBalBranch12 fm_L fm_R (Branch vuy vuz vvu fm_ll fm_lr); 52.97/33.37 " 52.97/33.37 "mkBalBranch11 fm_L fm_R vuy vuz vvu fm_ll fm_lr True = single_R fm_L fm_R; 52.97/33.37 mkBalBranch11 fm_L fm_R vuy vuz vvu fm_ll fm_lr False = mkBalBranch10 fm_L fm_R vuy vuz vvu fm_ll fm_lr otherwise; 52.97/33.37 " 52.97/33.37 "mkBalBranch10 fm_L fm_R vuy vuz vvu fm_ll fm_lr True = double_R fm_L fm_R; 52.97/33.37 " 52.97/33.37 "mkBalBranch12 fm_L fm_R (Branch vuy vuz vvu fm_ll fm_lr) = mkBalBranch11 fm_L fm_R vuy vuz vvu fm_ll fm_lr (sizeFM fm_lr < 2 * sizeFM fm_ll); 52.97/33.37 " 52.97/33.37 The following Function with conditions 52.97/33.37 "mkBalBranch0 fm_L fm_R (Branch vvx vvy vvz fm_rl fm_rr)|sizeFM fm_rl < 2 * sizeFM fm_rrsingle_L fm_L fm_R|otherwisedouble_L fm_L fm_R; 52.97/33.37 " 52.97/33.37 is transformed to 52.97/33.37 "mkBalBranch0 fm_L fm_R (Branch vvx vvy vvz fm_rl fm_rr) = mkBalBranch02 fm_L fm_R (Branch vvx vvy vvz fm_rl fm_rr); 52.97/33.37 " 52.97/33.37 "mkBalBranch00 fm_L fm_R vvx vvy vvz fm_rl fm_rr True = double_L fm_L fm_R; 52.97/33.37 " 52.97/33.37 "mkBalBranch01 fm_L fm_R vvx vvy vvz fm_rl fm_rr True = single_L fm_L fm_R; 52.97/33.37 mkBalBranch01 fm_L fm_R vvx vvy vvz fm_rl fm_rr False = mkBalBranch00 fm_L fm_R vvx vvy vvz fm_rl fm_rr otherwise; 52.97/33.37 " 52.97/33.37 "mkBalBranch02 fm_L fm_R (Branch vvx vvy vvz fm_rl fm_rr) = mkBalBranch01 fm_L fm_R vvx vvy vvz fm_rl fm_rr (sizeFM fm_rl < 2 * sizeFM fm_rr); 52.97/33.37 " 52.97/33.37 The following Function with conditions 52.97/33.37 "mkBalBranch key elt fm_L fm_R|size_l + size_r < 2mkBranch 1 key elt fm_L fm_R|size_r > sIZE_RATIO * size_lmkBalBranch0 fm_L fm_R fm_R|size_l > sIZE_RATIO * size_rmkBalBranch1 fm_L fm_R fm_L|otherwisemkBranch 2 key elt fm_L fm_R where { 52.97/33.37 double_L fm_l (Branch key_r elt_r vvv (Branch key_rl elt_rl vvw fm_rll fm_rlr) fm_rr) = mkBranch 5 key_rl elt_rl (mkBranch 6 key elt fm_l fm_rll) (mkBranch 7 key_r elt_r fm_rlr fm_rr); 52.97/33.37 ; 52.97/33.37 double_R (Branch key_l elt_l vuw fm_ll (Branch key_lr elt_lr vux fm_lrl fm_lrr)) fm_r = mkBranch 10 key_lr elt_lr (mkBranch 11 key_l elt_l fm_ll fm_lrl) (mkBranch 12 key elt fm_lrr fm_r); 52.97/33.37 ; 52.97/33.37 mkBalBranch0 fm_L fm_R (Branch vvx vvy vvz fm_rl fm_rr)|sizeFM fm_rl < 2 * sizeFM fm_rrsingle_L fm_L fm_R|otherwisedouble_L fm_L fm_R; 52.97/33.37 ; 52.97/33.37 mkBalBranch1 fm_L fm_R (Branch vuy vuz vvu fm_ll fm_lr)|sizeFM fm_lr < 2 * sizeFM fm_llsingle_R fm_L fm_R|otherwisedouble_R fm_L fm_R; 52.97/33.37 ; 52.97/33.37 single_L fm_l (Branch key_r elt_r vwu fm_rl fm_rr) = mkBranch 3 key_r elt_r (mkBranch 4 key elt fm_l fm_rl) fm_rr; 52.97/33.37 ; 52.97/33.37 single_R (Branch key_l elt_l vuv fm_ll fm_lr) fm_r = mkBranch 8 key_l elt_l fm_ll (mkBranch 9 key elt fm_lr fm_r); 52.97/33.37 ; 52.97/33.37 size_l = sizeFM fm_L; 52.97/33.37 ; 52.97/33.37 size_r = sizeFM fm_R; 52.97/33.37 } 52.97/33.37 ; 52.97/33.37 " 52.97/33.37 is transformed to 52.97/33.37 "mkBalBranch key elt fm_L fm_R = mkBalBranch6 key elt fm_L fm_R; 52.97/33.37 " 52.97/33.37 "mkBalBranch6 key elt fm_L fm_R = mkBalBranch5 key elt fm_L fm_R (size_l + size_r < 2) where { 52.97/33.37 double_L fm_l (Branch key_r elt_r vvv (Branch key_rl elt_rl vvw fm_rll fm_rlr) fm_rr) = mkBranch 5 key_rl elt_rl (mkBranch 6 key elt fm_l fm_rll) (mkBranch 7 key_r elt_r fm_rlr fm_rr); 52.97/33.37 ; 52.97/33.37 double_R (Branch key_l elt_l vuw fm_ll (Branch key_lr elt_lr vux fm_lrl fm_lrr)) fm_r = mkBranch 10 key_lr elt_lr (mkBranch 11 key_l elt_l fm_ll fm_lrl) (mkBranch 12 key elt fm_lrr fm_r); 52.97/33.37 ; 52.97/33.37 mkBalBranch0 fm_L fm_R (Branch vvx vvy vvz fm_rl fm_rr) = mkBalBranch02 fm_L fm_R (Branch vvx vvy vvz fm_rl fm_rr); 52.97/33.37 ; 52.97/33.37 mkBalBranch00 fm_L fm_R vvx vvy vvz fm_rl fm_rr True = double_L fm_L fm_R; 52.97/33.37 ; 52.97/33.37 mkBalBranch01 fm_L fm_R vvx vvy vvz fm_rl fm_rr True = single_L fm_L fm_R; 52.97/33.37 mkBalBranch01 fm_L fm_R vvx vvy vvz fm_rl fm_rr False = mkBalBranch00 fm_L fm_R vvx vvy vvz fm_rl fm_rr otherwise; 52.97/33.37 ; 52.97/33.37 mkBalBranch02 fm_L fm_R (Branch vvx vvy vvz fm_rl fm_rr) = mkBalBranch01 fm_L fm_R vvx vvy vvz fm_rl fm_rr (sizeFM fm_rl < 2 * sizeFM fm_rr); 52.97/33.37 ; 52.97/33.37 mkBalBranch1 fm_L fm_R (Branch vuy vuz vvu fm_ll fm_lr) = mkBalBranch12 fm_L fm_R (Branch vuy vuz vvu fm_ll fm_lr); 52.97/33.37 ; 52.97/33.37 mkBalBranch10 fm_L fm_R vuy vuz vvu fm_ll fm_lr True = double_R fm_L fm_R; 52.97/33.37 ; 52.97/33.37 mkBalBranch11 fm_L fm_R vuy vuz vvu fm_ll fm_lr True = single_R fm_L fm_R; 52.97/33.37 mkBalBranch11 fm_L fm_R vuy vuz vvu fm_ll fm_lr False = mkBalBranch10 fm_L fm_R vuy vuz vvu fm_ll fm_lr otherwise; 52.97/33.37 ; 52.97/33.37 mkBalBranch12 fm_L fm_R (Branch vuy vuz vvu fm_ll fm_lr) = mkBalBranch11 fm_L fm_R vuy vuz vvu fm_ll fm_lr (sizeFM fm_lr < 2 * sizeFM fm_ll); 52.97/33.37 ; 52.97/33.37 mkBalBranch2 key elt fm_L fm_R True = mkBranch 2 key elt fm_L fm_R; 52.97/33.37 ; 52.97/33.37 mkBalBranch3 key elt fm_L fm_R True = mkBalBranch1 fm_L fm_R fm_L; 52.97/33.37 mkBalBranch3 key elt fm_L fm_R False = mkBalBranch2 key elt fm_L fm_R otherwise; 52.97/33.37 ; 52.97/33.37 mkBalBranch4 key elt fm_L fm_R True = mkBalBranch0 fm_L fm_R fm_R; 52.97/33.37 mkBalBranch4 key elt fm_L fm_R False = mkBalBranch3 key elt fm_L fm_R (size_l > sIZE_RATIO * size_r); 52.97/33.37 ; 52.97/33.37 mkBalBranch5 key elt fm_L fm_R True = mkBranch 1 key elt fm_L fm_R; 52.97/33.37 mkBalBranch5 key elt fm_L fm_R False = mkBalBranch4 key elt fm_L fm_R (size_r > sIZE_RATIO * size_l); 52.97/33.37 ; 52.97/33.37 single_L fm_l (Branch key_r elt_r vwu fm_rl fm_rr) = mkBranch 3 key_r elt_r (mkBranch 4 key elt fm_l fm_rl) fm_rr; 52.97/33.37 ; 52.97/33.37 single_R (Branch key_l elt_l vuv fm_ll fm_lr) fm_r = mkBranch 8 key_l elt_l fm_ll (mkBranch 9 key elt fm_lr fm_r); 52.97/33.37 ; 52.97/33.37 size_l = sizeFM fm_L; 52.97/33.37 ; 52.97/33.37 size_r = sizeFM fm_R; 52.97/33.37 } 52.97/33.37 ; 52.97/33.37 " 52.97/33.37 The following Function with conditions 52.97/33.37 "glueBal EmptyFM fm2 = fm2; 52.97/33.37 glueBal fm1 EmptyFM = fm1; 52.97/33.37 glueBal fm1 fm2|sizeFM fm2 > sizeFM fm1mkBalBranch mid_key2 mid_elt2 fm1 (deleteMin fm2)|otherwisemkBalBranch mid_key1 mid_elt1 (deleteMax fm1) fm2 where { 52.97/33.37 mid_elt1 = mid_elt10 vv2; 52.97/33.37 ; 52.97/33.37 mid_elt10 (vww,mid_elt1) = mid_elt1; 52.97/33.37 ; 52.97/33.37 mid_elt2 = mid_elt20 vv3; 52.97/33.37 ; 52.97/33.37 mid_elt20 (vwv,mid_elt2) = mid_elt2; 52.97/33.37 ; 52.97/33.37 mid_key1 = mid_key10 vv2; 52.97/33.37 ; 52.97/33.37 mid_key10 (mid_key1,vwx) = mid_key1; 52.97/33.37 ; 52.97/33.37 mid_key2 = mid_key20 vv3; 52.97/33.37 ; 52.97/33.37 mid_key20 (mid_key2,vwy) = mid_key2; 52.97/33.37 ; 52.97/33.37 vv2 = findMax fm1; 52.97/33.37 ; 52.97/33.37 vv3 = findMin fm2; 52.97/33.37 } 52.97/33.37 ; 52.97/33.37 " 52.97/33.37 is transformed to 52.97/33.37 "glueBal EmptyFM fm2 = glueBal4 EmptyFM fm2; 52.97/33.37 glueBal fm1 EmptyFM = glueBal3 fm1 EmptyFM; 52.97/33.37 glueBal fm1 fm2 = glueBal2 fm1 fm2; 52.97/33.37 " 52.97/33.37 "glueBal2 fm1 fm2 = glueBal1 fm1 fm2 (sizeFM fm2 > sizeFM fm1) where { 52.97/33.37 glueBal0 fm1 fm2 True = mkBalBranch mid_key1 mid_elt1 (deleteMax fm1) fm2; 52.97/33.37 ; 52.97/33.37 glueBal1 fm1 fm2 True = mkBalBranch mid_key2 mid_elt2 fm1 (deleteMin fm2); 52.97/33.37 glueBal1 fm1 fm2 False = glueBal0 fm1 fm2 otherwise; 52.97/33.37 ; 52.97/33.37 mid_elt1 = mid_elt10 vv2; 52.97/33.37 ; 52.97/33.37 mid_elt10 (vww,mid_elt1) = mid_elt1; 52.97/33.37 ; 52.97/33.37 mid_elt2 = mid_elt20 vv3; 52.97/33.37 ; 52.97/33.37 mid_elt20 (vwv,mid_elt2) = mid_elt2; 52.97/33.37 ; 52.97/33.37 mid_key1 = mid_key10 vv2; 52.97/33.37 ; 52.97/33.37 mid_key10 (mid_key1,vwx) = mid_key1; 52.97/33.37 ; 52.97/33.37 mid_key2 = mid_key20 vv3; 52.97/33.37 ; 52.97/33.37 mid_key20 (mid_key2,vwy) = mid_key2; 52.97/33.37 ; 52.97/33.37 vv2 = findMax fm1; 52.97/33.37 ; 52.97/33.37 vv3 = findMin fm2; 52.97/33.37 } 52.97/33.37 ; 52.97/33.37 " 52.97/33.37 "glueBal3 fm1 EmptyFM = fm1; 52.97/33.37 glueBal3 wyv wyw = glueBal2 wyv wyw; 52.97/33.37 " 52.97/33.37 "glueBal4 EmptyFM fm2 = fm2; 52.97/33.37 glueBal4 wyy wyz = glueBal3 wyy wyz; 52.97/33.37 " 52.97/33.37 The following Function with conditions 52.97/33.37 "glueVBal EmptyFM fm2 = fm2; 52.97/33.37 glueVBal fm1 EmptyFM = fm1; 52.97/33.37 glueVBal (Branch vxu vxv vxw vxx vxy) (Branch vyu vyv vyw vyx vyy)|sIZE_RATIO * size_l < size_rmkBalBranch vyu vyv (glueVBal (Branch vxu vxv vxw vxx vxy) vyx) vyy|sIZE_RATIO * size_r < size_lmkBalBranch vxu vxv vxx (glueVBal vxy (Branch vyu vyv vyw vyx vyy))|otherwiseglueBal (Branch vxu vxv vxw vxx vxy) (Branch vyu vyv vyw vyx vyy) where { 52.97/33.37 size_l = sizeFM (Branch vxu vxv vxw vxx vxy); 52.97/33.37 ; 52.97/33.37 size_r = sizeFM (Branch vyu vyv vyw vyx vyy); 52.97/33.37 } 52.97/33.37 ; 52.97/33.37 " 52.97/33.37 is transformed to 52.97/33.37 "glueVBal EmptyFM fm2 = glueVBal5 EmptyFM fm2; 52.97/33.37 glueVBal fm1 EmptyFM = glueVBal4 fm1 EmptyFM; 52.97/33.37 glueVBal (Branch vxu vxv vxw vxx vxy) (Branch vyu vyv vyw vyx vyy) = glueVBal3 (Branch vxu vxv vxw vxx vxy) (Branch vyu vyv vyw vyx vyy); 52.97/33.37 " 52.97/33.37 "glueVBal3 (Branch vxu vxv vxw vxx vxy) (Branch vyu vyv vyw vyx vyy) = glueVBal2 vxu vxv vxw vxx vxy vyu vyv vyw vyx vyy (sIZE_RATIO * size_l < size_r) where { 52.97/33.37 glueVBal0 vxu vxv vxw vxx vxy vyu vyv vyw vyx vyy True = glueBal (Branch vxu vxv vxw vxx vxy) (Branch vyu vyv vyw vyx vyy); 52.97/33.37 ; 52.97/33.37 glueVBal1 vxu vxv vxw vxx vxy vyu vyv vyw vyx vyy True = mkBalBranch vxu vxv vxx (glueVBal vxy (Branch vyu vyv vyw vyx vyy)); 52.97/33.37 glueVBal1 vxu vxv vxw vxx vxy vyu vyv vyw vyx vyy False = glueVBal0 vxu vxv vxw vxx vxy vyu vyv vyw vyx vyy otherwise; 52.97/33.37 ; 52.97/33.37 glueVBal2 vxu vxv vxw vxx vxy vyu vyv vyw vyx vyy True = mkBalBranch vyu vyv (glueVBal (Branch vxu vxv vxw vxx vxy) vyx) vyy; 52.97/33.37 glueVBal2 vxu vxv vxw vxx vxy vyu vyv vyw vyx vyy False = glueVBal1 vxu vxv vxw vxx vxy vyu vyv vyw vyx vyy (sIZE_RATIO * size_r < size_l); 52.97/33.37 ; 52.97/33.37 size_l = sizeFM (Branch vxu vxv vxw vxx vxy); 52.97/33.37 ; 52.97/33.37 size_r = sizeFM (Branch vyu vyv vyw vyx vyy); 52.97/33.37 } 52.97/33.37 ; 52.97/33.37 " 52.97/33.37 "glueVBal4 fm1 EmptyFM = fm1; 52.97/33.37 glueVBal4 wzx wzy = glueVBal3 wzx wzy; 52.97/33.37 " 52.97/33.37 "glueVBal5 EmptyFM fm2 = fm2; 52.97/33.37 glueVBal5 xuu xuv = glueVBal4 xuu xuv; 52.97/33.37 " 52.97/33.37 The following Function with conditions 52.97/33.37 "filterFM p EmptyFM = emptyFM; 52.97/33.37 filterFM p (Branch key elt vzz fm_l fm_r)|p key eltmkVBalBranch key elt (filterFM p fm_l) (filterFM p fm_r)|otherwiseglueVBal (filterFM p fm_l) (filterFM p fm_r); 52.97/33.37 " 52.97/33.37 is transformed to 52.97/33.37 "filterFM p EmptyFM = filterFM3 p EmptyFM; 52.97/33.37 filterFM p (Branch key elt vzz fm_l fm_r) = filterFM2 p (Branch key elt vzz fm_l fm_r); 52.97/33.37 " 52.97/33.37 "filterFM0 p key elt vzz fm_l fm_r True = glueVBal (filterFM p fm_l) (filterFM p fm_r); 52.97/33.37 " 52.97/33.37 "filterFM1 p key elt vzz fm_l fm_r True = mkVBalBranch key elt (filterFM p fm_l) (filterFM p fm_r); 52.97/33.37 filterFM1 p key elt vzz fm_l fm_r False = filterFM0 p key elt vzz fm_l fm_r otherwise; 52.97/33.37 " 52.97/33.37 "filterFM2 p (Branch key elt vzz fm_l fm_r) = filterFM1 p key elt vzz fm_l fm_r (p key elt); 52.97/33.37 " 52.97/33.37 "filterFM3 p EmptyFM = emptyFM; 52.97/33.37 filterFM3 xuy xuz = filterFM2 xuy xuz; 52.97/33.37 " 52.97/33.37 52.97/33.37 ---------------------------------------- 52.97/33.37 52.97/33.37 (8) 52.97/33.37 Obligation: 52.97/33.37 mainModule Main 52.97/33.37 module FiniteMap where { 52.97/33.37 import qualified Main; 52.97/33.37 import qualified Maybe; 52.97/33.37 import qualified Prelude; 52.97/33.37 data FiniteMap b a = EmptyFM | Branch b a Int (FiniteMap b a) (FiniteMap b a) ; 52.97/33.37 52.97/33.37 instance (Eq a, Eq b) => Eq FiniteMap a b where { 52.97/33.37 } 52.97/33.37 addToFM :: Ord a => FiniteMap a b -> a -> b -> FiniteMap a b; 52.97/33.37 addToFM fm key elt = addToFM_C addToFM0 fm key elt; 52.97/33.37 52.97/33.37 addToFM0 old new = new; 52.97/33.37 52.97/33.37 addToFM_C :: Ord b => (a -> a -> a) -> FiniteMap b a -> b -> a -> FiniteMap b a; 52.97/33.37 addToFM_C combiner EmptyFM key elt = addToFM_C4 combiner EmptyFM key elt; 52.97/33.37 addToFM_C combiner (Branch key elt size fm_l fm_r) new_key new_elt = addToFM_C3 combiner (Branch key elt size fm_l fm_r) new_key new_elt; 52.97/33.37 52.97/33.37 addToFM_C0 combiner key elt size fm_l fm_r new_key new_elt True = Branch new_key (combiner elt new_elt) size fm_l fm_r; 52.97/33.37 52.97/33.37 addToFM_C1 combiner key elt size fm_l fm_r new_key new_elt True = mkBalBranch key elt fm_l (addToFM_C combiner fm_r new_key new_elt); 52.97/33.37 addToFM_C1 combiner key elt size fm_l fm_r new_key new_elt False = addToFM_C0 combiner key elt size fm_l fm_r new_key new_elt otherwise; 52.97/33.37 52.97/33.37 addToFM_C2 combiner key elt size fm_l fm_r new_key new_elt True = mkBalBranch key elt (addToFM_C combiner fm_l new_key new_elt) fm_r; 52.97/33.37 addToFM_C2 combiner key elt size fm_l fm_r new_key new_elt False = addToFM_C1 combiner key elt size fm_l fm_r new_key new_elt (new_key > key); 52.97/33.37 52.97/33.37 addToFM_C3 combiner (Branch key elt size fm_l fm_r) new_key new_elt = addToFM_C2 combiner key elt size fm_l fm_r new_key new_elt (new_key < key); 52.97/33.37 52.97/33.37 addToFM_C4 combiner EmptyFM key elt = unitFM key elt; 52.97/33.37 addToFM_C4 wvu wvv wvw wvx = addToFM_C3 wvu wvv wvw wvx; 52.97/33.37 52.97/33.37 deleteMax :: Ord b => FiniteMap b a -> FiniteMap b a; 52.97/33.37 deleteMax (Branch key elt xz fm_l EmptyFM) = fm_l; 52.97/33.37 deleteMax (Branch key elt yu fm_l fm_r) = mkBalBranch key elt fm_l (deleteMax fm_r); 52.97/33.37 52.97/33.37 deleteMin :: Ord a => FiniteMap a b -> FiniteMap a b; 52.97/33.37 deleteMin (Branch key elt vzx EmptyFM fm_r) = fm_r; 52.97/33.37 deleteMin (Branch key elt vzy fm_l fm_r) = mkBalBranch key elt (deleteMin fm_l) fm_r; 52.97/33.37 52.97/33.37 emptyFM :: FiniteMap a b; 52.97/33.37 emptyFM = EmptyFM; 52.97/33.37 52.97/33.37 filterFM :: Ord b => (b -> a -> Bool) -> FiniteMap b a -> FiniteMap b a; 52.97/33.37 filterFM p EmptyFM = filterFM3 p EmptyFM; 52.97/33.37 filterFM p (Branch key elt vzz fm_l fm_r) = filterFM2 p (Branch key elt vzz fm_l fm_r); 52.97/33.37 52.97/33.37 filterFM0 p key elt vzz fm_l fm_r True = glueVBal (filterFM p fm_l) (filterFM p fm_r); 52.97/33.37 52.97/33.37 filterFM1 p key elt vzz fm_l fm_r True = mkVBalBranch key elt (filterFM p fm_l) (filterFM p fm_r); 52.97/33.37 filterFM1 p key elt vzz fm_l fm_r False = filterFM0 p key elt vzz fm_l fm_r otherwise; 52.97/33.37 52.97/33.37 filterFM2 p (Branch key elt vzz fm_l fm_r) = filterFM1 p key elt vzz fm_l fm_r (p key elt); 52.97/33.37 52.97/33.37 filterFM3 p EmptyFM = emptyFM; 52.97/33.37 filterFM3 xuy xuz = filterFM2 xuy xuz; 52.97/33.37 52.97/33.37 findMax :: FiniteMap b a -> (b,a); 52.97/33.37 findMax (Branch key elt zx zy EmptyFM) = (key,elt); 52.97/33.37 findMax (Branch key elt zz vuu fm_r) = findMax fm_r; 52.97/33.37 52.97/33.37 findMin :: FiniteMap b a -> (b,a); 52.97/33.37 findMin (Branch key elt wuu EmptyFM wuv) = (key,elt); 52.97/33.37 findMin (Branch key elt wuw fm_l wux) = findMin fm_l; 52.97/33.37 52.97/33.37 glueBal :: Ord a => FiniteMap a b -> FiniteMap a b -> FiniteMap a b; 52.97/33.37 glueBal EmptyFM fm2 = glueBal4 EmptyFM fm2; 52.97/33.37 glueBal fm1 EmptyFM = glueBal3 fm1 EmptyFM; 52.97/33.37 glueBal fm1 fm2 = glueBal2 fm1 fm2; 52.97/33.37 52.97/33.37 glueBal2 fm1 fm2 = glueBal1 fm1 fm2 (sizeFM fm2 > sizeFM fm1) where { 52.97/33.37 glueBal0 fm1 fm2 True = mkBalBranch mid_key1 mid_elt1 (deleteMax fm1) fm2; 52.97/33.37 glueBal1 fm1 fm2 True = mkBalBranch mid_key2 mid_elt2 fm1 (deleteMin fm2); 52.97/33.37 glueBal1 fm1 fm2 False = glueBal0 fm1 fm2 otherwise; 52.97/33.37 mid_elt1 = mid_elt10 vv2; 52.97/33.37 mid_elt10 (vww,mid_elt1) = mid_elt1; 52.97/33.37 mid_elt2 = mid_elt20 vv3; 52.97/33.37 mid_elt20 (vwv,mid_elt2) = mid_elt2; 52.97/33.37 mid_key1 = mid_key10 vv2; 52.97/33.37 mid_key10 (mid_key1,vwx) = mid_key1; 52.97/33.37 mid_key2 = mid_key20 vv3; 52.97/33.37 mid_key20 (mid_key2,vwy) = mid_key2; 52.97/33.37 vv2 = findMax fm1; 52.97/33.37 vv3 = findMin fm2; 52.97/33.37 }; 52.97/33.37 52.97/33.37 glueBal3 fm1 EmptyFM = fm1; 52.97/33.37 glueBal3 wyv wyw = glueBal2 wyv wyw; 52.97/33.37 52.97/33.37 glueBal4 EmptyFM fm2 = fm2; 52.97/33.37 glueBal4 wyy wyz = glueBal3 wyy wyz; 52.97/33.37 52.97/33.37 glueVBal :: Ord a => FiniteMap a b -> FiniteMap a b -> FiniteMap a b; 52.97/33.37 glueVBal EmptyFM fm2 = glueVBal5 EmptyFM fm2; 52.97/33.37 glueVBal fm1 EmptyFM = glueVBal4 fm1 EmptyFM; 52.97/33.37 glueVBal (Branch vxu vxv vxw vxx vxy) (Branch vyu vyv vyw vyx vyy) = glueVBal3 (Branch vxu vxv vxw vxx vxy) (Branch vyu vyv vyw vyx vyy); 52.97/33.37 52.97/33.37 glueVBal3 (Branch vxu vxv vxw vxx vxy) (Branch vyu vyv vyw vyx vyy) = glueVBal2 vxu vxv vxw vxx vxy vyu vyv vyw vyx vyy (sIZE_RATIO * size_l < size_r) where { 52.97/33.37 glueVBal0 vxu vxv vxw vxx vxy vyu vyv vyw vyx vyy True = glueBal (Branch vxu vxv vxw vxx vxy) (Branch vyu vyv vyw vyx vyy); 52.97/33.37 glueVBal1 vxu vxv vxw vxx vxy vyu vyv vyw vyx vyy True = mkBalBranch vxu vxv vxx (glueVBal vxy (Branch vyu vyv vyw vyx vyy)); 52.97/33.37 glueVBal1 vxu vxv vxw vxx vxy vyu vyv vyw vyx vyy False = glueVBal0 vxu vxv vxw vxx vxy vyu vyv vyw vyx vyy otherwise; 52.97/33.37 glueVBal2 vxu vxv vxw vxx vxy vyu vyv vyw vyx vyy True = mkBalBranch vyu vyv (glueVBal (Branch vxu vxv vxw vxx vxy) vyx) vyy; 52.97/33.37 glueVBal2 vxu vxv vxw vxx vxy vyu vyv vyw vyx vyy False = glueVBal1 vxu vxv vxw vxx vxy vyu vyv vyw vyx vyy (sIZE_RATIO * size_r < size_l); 52.97/33.37 size_l = sizeFM (Branch vxu vxv vxw vxx vxy); 52.97/33.37 size_r = sizeFM (Branch vyu vyv vyw vyx vyy); 52.97/33.37 }; 52.97/33.37 52.97/33.37 glueVBal4 fm1 EmptyFM = fm1; 52.97/33.37 glueVBal4 wzx wzy = glueVBal3 wzx wzy; 52.97/33.37 52.97/33.37 glueVBal5 EmptyFM fm2 = fm2; 52.97/33.37 glueVBal5 xuu xuv = glueVBal4 xuu xuv; 52.97/33.37 52.97/33.37 mkBalBranch :: Ord a => a -> b -> FiniteMap a b -> FiniteMap a b -> FiniteMap a b; 52.97/33.37 mkBalBranch key elt fm_L fm_R = mkBalBranch6 key elt fm_L fm_R; 52.97/33.37 52.97/33.37 mkBalBranch6 key elt fm_L fm_R = mkBalBranch5 key elt fm_L fm_R (size_l + size_r < 2) where { 52.97/33.37 double_L fm_l (Branch key_r elt_r vvv (Branch key_rl elt_rl vvw fm_rll fm_rlr) fm_rr) = mkBranch 5 key_rl elt_rl (mkBranch 6 key elt fm_l fm_rll) (mkBranch 7 key_r elt_r fm_rlr fm_rr); 52.97/33.37 double_R (Branch key_l elt_l vuw fm_ll (Branch key_lr elt_lr vux fm_lrl fm_lrr)) fm_r = mkBranch 10 key_lr elt_lr (mkBranch 11 key_l elt_l fm_ll fm_lrl) (mkBranch 12 key elt fm_lrr fm_r); 52.97/33.37 mkBalBranch0 fm_L fm_R (Branch vvx vvy vvz fm_rl fm_rr) = mkBalBranch02 fm_L fm_R (Branch vvx vvy vvz fm_rl fm_rr); 52.97/33.37 mkBalBranch00 fm_L fm_R vvx vvy vvz fm_rl fm_rr True = double_L fm_L fm_R; 52.97/33.37 mkBalBranch01 fm_L fm_R vvx vvy vvz fm_rl fm_rr True = single_L fm_L fm_R; 52.97/33.37 mkBalBranch01 fm_L fm_R vvx vvy vvz fm_rl fm_rr False = mkBalBranch00 fm_L fm_R vvx vvy vvz fm_rl fm_rr otherwise; 52.97/33.37 mkBalBranch02 fm_L fm_R (Branch vvx vvy vvz fm_rl fm_rr) = mkBalBranch01 fm_L fm_R vvx vvy vvz fm_rl fm_rr (sizeFM fm_rl < 2 * sizeFM fm_rr); 52.97/33.37 mkBalBranch1 fm_L fm_R (Branch vuy vuz vvu fm_ll fm_lr) = mkBalBranch12 fm_L fm_R (Branch vuy vuz vvu fm_ll fm_lr); 52.97/33.37 mkBalBranch10 fm_L fm_R vuy vuz vvu fm_ll fm_lr True = double_R fm_L fm_R; 52.97/33.37 mkBalBranch11 fm_L fm_R vuy vuz vvu fm_ll fm_lr True = single_R fm_L fm_R; 52.97/33.37 mkBalBranch11 fm_L fm_R vuy vuz vvu fm_ll fm_lr False = mkBalBranch10 fm_L fm_R vuy vuz vvu fm_ll fm_lr otherwise; 52.97/33.37 mkBalBranch12 fm_L fm_R (Branch vuy vuz vvu fm_ll fm_lr) = mkBalBranch11 fm_L fm_R vuy vuz vvu fm_ll fm_lr (sizeFM fm_lr < 2 * sizeFM fm_ll); 52.97/33.37 mkBalBranch2 key elt fm_L fm_R True = mkBranch 2 key elt fm_L fm_R; 52.97/33.37 mkBalBranch3 key elt fm_L fm_R True = mkBalBranch1 fm_L fm_R fm_L; 52.97/33.37 mkBalBranch3 key elt fm_L fm_R False = mkBalBranch2 key elt fm_L fm_R otherwise; 52.97/33.37 mkBalBranch4 key elt fm_L fm_R True = mkBalBranch0 fm_L fm_R fm_R; 52.97/33.37 mkBalBranch4 key elt fm_L fm_R False = mkBalBranch3 key elt fm_L fm_R (size_l > sIZE_RATIO * size_r); 52.97/33.37 mkBalBranch5 key elt fm_L fm_R True = mkBranch 1 key elt fm_L fm_R; 52.97/33.37 mkBalBranch5 key elt fm_L fm_R False = mkBalBranch4 key elt fm_L fm_R (size_r > sIZE_RATIO * size_l); 52.97/33.37 single_L fm_l (Branch key_r elt_r vwu fm_rl fm_rr) = mkBranch 3 key_r elt_r (mkBranch 4 key elt fm_l fm_rl) fm_rr; 52.97/33.37 single_R (Branch key_l elt_l vuv fm_ll fm_lr) fm_r = mkBranch 8 key_l elt_l fm_ll (mkBranch 9 key elt fm_lr fm_r); 52.97/33.37 size_l = sizeFM fm_L; 52.97/33.37 size_r = sizeFM fm_R; 52.97/33.37 }; 52.97/33.37 52.97/33.37 mkBranch :: Ord a => Int -> a -> b -> FiniteMap a b -> FiniteMap a b -> FiniteMap a b; 52.97/33.37 mkBranch which key elt fm_l fm_r = let { 52.97/33.37 result = Branch key elt (unbox (1 + left_size + right_size)) fm_l fm_r; 52.97/33.37 } in result where { 52.97/33.37 balance_ok = True; 52.97/33.37 left_ok = left_ok0 fm_l key fm_l; 52.97/33.37 left_ok0 fm_l key EmptyFM = True; 52.97/33.37 left_ok0 fm_l key (Branch left_key yv yw yx yy) = let { 52.97/33.37 biggest_left_key = fst (findMax fm_l); 52.97/33.37 } in biggest_left_key < key; 52.97/33.37 left_size = sizeFM fm_l; 52.97/33.37 right_ok = right_ok0 fm_r key fm_r; 52.97/33.37 right_ok0 fm_r key EmptyFM = True; 52.97/33.37 right_ok0 fm_r key (Branch right_key yz zu zv zw) = let { 52.97/33.37 smallest_right_key = fst (findMin fm_r); 52.97/33.37 } in key < smallest_right_key; 52.97/33.37 right_size = sizeFM fm_r; 52.97/33.37 unbox :: Int -> Int; 52.97/33.37 unbox x = x; 52.97/33.37 }; 52.97/33.37 52.97/33.37 mkVBalBranch :: Ord a => a -> b -> FiniteMap a b -> FiniteMap a b -> FiniteMap a b; 52.97/33.37 mkVBalBranch key elt EmptyFM fm_r = mkVBalBranch5 key elt EmptyFM fm_r; 52.97/33.37 mkVBalBranch key elt fm_l EmptyFM = mkVBalBranch4 key elt fm_l EmptyFM; 52.97/33.37 mkVBalBranch key elt (Branch wu wv ww wx wy) (Branch xu xv xw xx xy) = mkVBalBranch3 key elt (Branch wu wv ww wx wy) (Branch xu xv xw xx xy); 52.97/33.37 52.97/33.37 mkVBalBranch3 key elt (Branch wu wv ww wx wy) (Branch xu xv xw xx xy) = mkVBalBranch2 key elt wu wv ww wx wy xu xv xw xx xy (sIZE_RATIO * size_l < size_r) where { 52.97/33.37 mkVBalBranch0 key elt wu wv ww wx wy xu xv xw xx xy True = mkBranch 13 key elt (Branch wu wv ww wx wy) (Branch xu xv xw xx xy); 52.97/33.37 mkVBalBranch1 key elt wu wv ww wx wy xu xv xw xx xy True = mkBalBranch wu wv wx (mkVBalBranch key elt wy (Branch xu xv xw xx xy)); 52.97/33.37 mkVBalBranch1 key elt wu wv ww wx wy xu xv xw xx xy False = mkVBalBranch0 key elt wu wv ww wx wy xu xv xw xx xy otherwise; 52.97/33.37 mkVBalBranch2 key elt wu wv ww wx wy xu xv xw xx xy True = mkBalBranch xu xv (mkVBalBranch key elt (Branch wu wv ww wx wy) xx) xy; 52.97/33.37 mkVBalBranch2 key elt wu wv ww wx wy xu xv xw xx xy False = mkVBalBranch1 key elt wu wv ww wx wy xu xv xw xx xy (sIZE_RATIO * size_r < size_l); 52.97/33.37 size_l = sizeFM (Branch wu wv ww wx wy); 52.97/33.37 size_r = sizeFM (Branch xu xv xw xx xy); 52.97/33.37 }; 52.97/33.37 52.97/33.37 mkVBalBranch4 key elt fm_l EmptyFM = addToFM fm_l key elt; 52.97/33.37 mkVBalBranch4 wwv www wwx wwy = mkVBalBranch3 wwv www wwx wwy; 52.97/33.37 52.97/33.37 mkVBalBranch5 key elt EmptyFM fm_r = addToFM fm_r key elt; 52.97/33.37 mkVBalBranch5 wxu wxv wxw wxx = mkVBalBranch4 wxu wxv wxw wxx; 52.97/33.37 52.97/33.37 sIZE_RATIO :: Int; 52.97/33.37 sIZE_RATIO = 5; 52.97/33.37 52.97/33.37 sizeFM :: FiniteMap a b -> Int; 52.97/33.37 sizeFM EmptyFM = 0; 52.97/33.37 sizeFM (Branch vyz vzu size vzv vzw) = size; 52.97/33.37 52.97/33.37 unitFM :: b -> a -> FiniteMap b a; 52.97/33.37 unitFM key elt = Branch key elt 1 emptyFM emptyFM; 52.97/33.37 52.97/33.37 } 52.97/33.37 module Maybe where { 52.97/33.37 import qualified FiniteMap; 52.97/33.37 import qualified Main; 52.97/33.37 import qualified Prelude; 52.97/33.37 } 52.97/33.37 module Main where { 52.97/33.37 import qualified FiniteMap; 52.97/33.37 import qualified Maybe; 52.97/33.37 import qualified Prelude; 52.97/33.37 } 52.97/33.37 52.97/33.37 ---------------------------------------- 52.97/33.37 52.97/33.37 (9) LetRed (EQUIVALENT) 52.97/33.37 Let/Where Reductions: 52.97/33.37 The bindings of the following Let/Where expression 52.97/33.37 "mkBalBranch5 key elt fm_L fm_R (size_l + size_r < 2) where { 52.97/33.37 double_L fm_l (Branch key_r elt_r vvv (Branch key_rl elt_rl vvw fm_rll fm_rlr) fm_rr) = mkBranch 5 key_rl elt_rl (mkBranch 6 key elt fm_l fm_rll) (mkBranch 7 key_r elt_r fm_rlr fm_rr); 52.97/33.37 ; 52.97/33.37 double_R (Branch key_l elt_l vuw fm_ll (Branch key_lr elt_lr vux fm_lrl fm_lrr)) fm_r = mkBranch 10 key_lr elt_lr (mkBranch 11 key_l elt_l fm_ll fm_lrl) (mkBranch 12 key elt fm_lrr fm_r); 52.97/33.37 ; 52.97/33.37 mkBalBranch0 fm_L fm_R (Branch vvx vvy vvz fm_rl fm_rr) = mkBalBranch02 fm_L fm_R (Branch vvx vvy vvz fm_rl fm_rr); 52.97/33.37 ; 52.97/33.37 mkBalBranch00 fm_L fm_R vvx vvy vvz fm_rl fm_rr True = double_L fm_L fm_R; 52.97/33.37 ; 52.97/33.37 mkBalBranch01 fm_L fm_R vvx vvy vvz fm_rl fm_rr True = single_L fm_L fm_R; 52.97/33.37 mkBalBranch01 fm_L fm_R vvx vvy vvz fm_rl fm_rr False = mkBalBranch00 fm_L fm_R vvx vvy vvz fm_rl fm_rr otherwise; 52.97/33.37 ; 52.97/33.37 mkBalBranch02 fm_L fm_R (Branch vvx vvy vvz fm_rl fm_rr) = mkBalBranch01 fm_L fm_R vvx vvy vvz fm_rl fm_rr (sizeFM fm_rl < 2 * sizeFM fm_rr); 52.97/33.38 ; 52.97/33.38 mkBalBranch1 fm_L fm_R (Branch vuy vuz vvu fm_ll fm_lr) = mkBalBranch12 fm_L fm_R (Branch vuy vuz vvu fm_ll fm_lr); 52.97/33.38 ; 52.97/33.38 mkBalBranch10 fm_L fm_R vuy vuz vvu fm_ll fm_lr True = double_R fm_L fm_R; 52.97/33.38 ; 52.97/33.38 mkBalBranch11 fm_L fm_R vuy vuz vvu fm_ll fm_lr True = single_R fm_L fm_R; 52.97/33.38 mkBalBranch11 fm_L fm_R vuy vuz vvu fm_ll fm_lr False = mkBalBranch10 fm_L fm_R vuy vuz vvu fm_ll fm_lr otherwise; 52.97/33.38 ; 52.97/33.38 mkBalBranch12 fm_L fm_R (Branch vuy vuz vvu fm_ll fm_lr) = mkBalBranch11 fm_L fm_R vuy vuz vvu fm_ll fm_lr (sizeFM fm_lr < 2 * sizeFM fm_ll); 52.97/33.38 ; 52.97/33.38 mkBalBranch2 key elt fm_L fm_R True = mkBranch 2 key elt fm_L fm_R; 52.97/33.38 ; 52.97/33.38 mkBalBranch3 key elt fm_L fm_R True = mkBalBranch1 fm_L fm_R fm_L; 52.97/33.38 mkBalBranch3 key elt fm_L fm_R False = mkBalBranch2 key elt fm_L fm_R otherwise; 52.97/33.38 ; 52.97/33.38 mkBalBranch4 key elt fm_L fm_R True = mkBalBranch0 fm_L fm_R fm_R; 52.97/33.38 mkBalBranch4 key elt fm_L fm_R False = mkBalBranch3 key elt fm_L fm_R (size_l > sIZE_RATIO * size_r); 52.97/33.38 ; 52.97/33.38 mkBalBranch5 key elt fm_L fm_R True = mkBranch 1 key elt fm_L fm_R; 52.97/33.38 mkBalBranch5 key elt fm_L fm_R False = mkBalBranch4 key elt fm_L fm_R (size_r > sIZE_RATIO * size_l); 52.97/33.38 ; 52.97/33.38 single_L fm_l (Branch key_r elt_r vwu fm_rl fm_rr) = mkBranch 3 key_r elt_r (mkBranch 4 key elt fm_l fm_rl) fm_rr; 52.97/33.38 ; 52.97/33.38 single_R (Branch key_l elt_l vuv fm_ll fm_lr) fm_r = mkBranch 8 key_l elt_l fm_ll (mkBranch 9 key elt fm_lr fm_r); 52.97/33.38 ; 52.97/33.38 size_l = sizeFM fm_L; 52.97/33.38 ; 52.97/33.38 size_r = sizeFM fm_R; 52.97/33.38 } 52.97/33.38 " 52.97/33.38 are unpacked to the following functions on top level 52.97/33.38 "mkBalBranch6Single_R xvu xvv xvw xvx (Branch key_l elt_l vuv fm_ll fm_lr) fm_r = mkBranch 8 key_l elt_l fm_ll (mkBranch 9 xvu xvv fm_lr fm_r); 52.97/33.38 " 52.97/33.38 "mkBalBranch6Double_R xvu xvv xvw xvx (Branch key_l elt_l vuw fm_ll (Branch key_lr elt_lr vux fm_lrl fm_lrr)) fm_r = mkBranch 10 key_lr elt_lr (mkBranch 11 key_l elt_l fm_ll fm_lrl) (mkBranch 12 xvu xvv fm_lrr fm_r); 52.97/33.38 " 52.97/33.38 "mkBalBranch6Size_l xvu xvv xvw xvx = sizeFM xvw; 52.97/33.38 " 52.97/33.38 "mkBalBranch6Double_L xvu xvv xvw xvx fm_l (Branch key_r elt_r vvv (Branch key_rl elt_rl vvw fm_rll fm_rlr) fm_rr) = mkBranch 5 key_rl elt_rl (mkBranch 6 xvu xvv fm_l fm_rll) (mkBranch 7 key_r elt_r fm_rlr fm_rr); 52.97/33.38 " 52.97/33.38 "mkBalBranch6MkBalBranch12 xvu xvv xvw xvx fm_L fm_R (Branch vuy vuz vvu fm_ll fm_lr) = mkBalBranch6MkBalBranch11 xvu xvv xvw xvx fm_L fm_R vuy vuz vvu fm_ll fm_lr (sizeFM fm_lr < 2 * sizeFM fm_ll); 52.97/33.38 " 52.97/33.38 "mkBalBranch6MkBalBranch11 xvu xvv xvw xvx fm_L fm_R vuy vuz vvu fm_ll fm_lr True = mkBalBranch6Single_R xvu xvv xvw xvx fm_L fm_R; 52.97/33.38 mkBalBranch6MkBalBranch11 xvu xvv xvw xvx fm_L fm_R vuy vuz vvu fm_ll fm_lr False = mkBalBranch6MkBalBranch10 xvu xvv xvw xvx fm_L fm_R vuy vuz vvu fm_ll fm_lr otherwise; 52.97/33.38 " 52.97/33.38 "mkBalBranch6MkBalBranch0 xvu xvv xvw xvx fm_L fm_R (Branch vvx vvy vvz fm_rl fm_rr) = mkBalBranch6MkBalBranch02 xvu xvv xvw xvx fm_L fm_R (Branch vvx vvy vvz fm_rl fm_rr); 52.97/33.38 " 52.97/33.38 "mkBalBranch6MkBalBranch01 xvu xvv xvw xvx fm_L fm_R vvx vvy vvz fm_rl fm_rr True = mkBalBranch6Single_L xvu xvv xvw xvx fm_L fm_R; 52.97/33.38 mkBalBranch6MkBalBranch01 xvu xvv xvw xvx fm_L fm_R vvx vvy vvz fm_rl fm_rr False = mkBalBranch6MkBalBranch00 xvu xvv xvw xvx fm_L fm_R vvx vvy vvz fm_rl fm_rr otherwise; 52.97/33.38 " 52.97/33.38 "mkBalBranch6MkBalBranch02 xvu xvv xvw xvx fm_L fm_R (Branch vvx vvy vvz fm_rl fm_rr) = mkBalBranch6MkBalBranch01 xvu xvv xvw xvx fm_L fm_R vvx vvy vvz fm_rl fm_rr (sizeFM fm_rl < 2 * sizeFM fm_rr); 52.97/33.38 " 52.97/33.38 "mkBalBranch6Size_r xvu xvv xvw xvx = sizeFM xvx; 52.97/33.38 " 52.97/33.38 "mkBalBranch6Single_L xvu xvv xvw xvx fm_l (Branch key_r elt_r vwu fm_rl fm_rr) = mkBranch 3 key_r elt_r (mkBranch 4 xvu xvv fm_l fm_rl) fm_rr; 52.97/33.38 " 52.97/33.38 "mkBalBranch6MkBalBranch5 xvu xvv xvw xvx key elt fm_L fm_R True = mkBranch 1 key elt fm_L fm_R; 52.97/33.38 mkBalBranch6MkBalBranch5 xvu xvv xvw xvx key elt fm_L fm_R False = mkBalBranch6MkBalBranch4 xvu xvv xvw xvx key elt fm_L fm_R (mkBalBranch6Size_r xvu xvv xvw xvx > sIZE_RATIO * mkBalBranch6Size_l xvu xvv xvw xvx); 52.97/33.38 " 52.97/33.38 "mkBalBranch6MkBalBranch1 xvu xvv xvw xvx fm_L fm_R (Branch vuy vuz vvu fm_ll fm_lr) = mkBalBranch6MkBalBranch12 xvu xvv xvw xvx fm_L fm_R (Branch vuy vuz vvu fm_ll fm_lr); 52.97/33.38 " 52.97/33.38 "mkBalBranch6MkBalBranch4 xvu xvv xvw xvx key elt fm_L fm_R True = mkBalBranch6MkBalBranch0 xvu xvv xvw xvx fm_L fm_R fm_R; 52.97/33.38 mkBalBranch6MkBalBranch4 xvu xvv xvw xvx key elt fm_L fm_R False = mkBalBranch6MkBalBranch3 xvu xvv xvw xvx key elt fm_L fm_R (mkBalBranch6Size_l xvu xvv xvw xvx > sIZE_RATIO * mkBalBranch6Size_r xvu xvv xvw xvx); 52.97/33.38 " 52.97/33.38 "mkBalBranch6MkBalBranch00 xvu xvv xvw xvx fm_L fm_R vvx vvy vvz fm_rl fm_rr True = mkBalBranch6Double_L xvu xvv xvw xvx fm_L fm_R; 52.97/33.38 " 52.97/33.38 "mkBalBranch6MkBalBranch10 xvu xvv xvw xvx fm_L fm_R vuy vuz vvu fm_ll fm_lr True = mkBalBranch6Double_R xvu xvv xvw xvx fm_L fm_R; 52.97/33.38 " 52.97/33.38 "mkBalBranch6MkBalBranch3 xvu xvv xvw xvx key elt fm_L fm_R True = mkBalBranch6MkBalBranch1 xvu xvv xvw xvx fm_L fm_R fm_L; 52.97/33.38 mkBalBranch6MkBalBranch3 xvu xvv xvw xvx key elt fm_L fm_R False = mkBalBranch6MkBalBranch2 xvu xvv xvw xvx key elt fm_L fm_R otherwise; 52.97/33.38 " 52.97/33.38 "mkBalBranch6MkBalBranch2 xvu xvv xvw xvx key elt fm_L fm_R True = mkBranch 2 key elt fm_L fm_R; 52.97/33.38 " 52.97/33.38 The bindings of the following Let/Where expression 52.97/33.38 "let { 52.97/33.38 result = Branch key elt (unbox (1 + left_size + right_size)) fm_l fm_r; 52.97/33.38 } in result where { 52.97/33.38 balance_ok = True; 52.97/33.38 ; 52.97/33.38 left_ok = left_ok0 fm_l key fm_l; 52.97/33.38 ; 52.97/33.38 left_ok0 fm_l key EmptyFM = True; 52.97/33.38 left_ok0 fm_l key (Branch left_key yv yw yx yy) = let { 52.97/33.38 biggest_left_key = fst (findMax fm_l); 52.97/33.38 } in biggest_left_key < key; 52.97/33.38 ; 52.97/33.38 left_size = sizeFM fm_l; 52.97/33.38 ; 52.97/33.38 right_ok = right_ok0 fm_r key fm_r; 52.97/33.38 ; 52.97/33.38 right_ok0 fm_r key EmptyFM = True; 52.97/33.38 right_ok0 fm_r key (Branch right_key yz zu zv zw) = let { 52.97/33.38 smallest_right_key = fst (findMin fm_r); 52.97/33.38 } in key < smallest_right_key; 52.97/33.38 ; 52.97/33.38 right_size = sizeFM fm_r; 52.97/33.38 ; 52.97/33.38 unbox x = x; 52.97/33.38 } 52.97/33.38 " 52.97/33.38 are unpacked to the following functions on top level 52.97/33.38 "mkBranchRight_ok0 xvy xvz xwu fm_r key EmptyFM = True; 52.97/33.38 mkBranchRight_ok0 xvy xvz xwu fm_r key (Branch right_key yz zu zv zw) = key < mkBranchRight_ok0Smallest_right_key fm_r; 52.97/33.38 " 52.97/33.38 "mkBranchLeft_ok0 xvy xvz xwu fm_l key EmptyFM = True; 52.97/33.38 mkBranchLeft_ok0 xvy xvz xwu fm_l key (Branch left_key yv yw yx yy) = mkBranchLeft_ok0Biggest_left_key fm_l < key; 52.97/33.38 " 52.97/33.38 "mkBranchUnbox xvy xvz xwu x = x; 52.97/33.38 " 52.97/33.38 "mkBranchRight_ok xvy xvz xwu = mkBranchRight_ok0 xvy xvz xwu xvy xvz xvy; 52.97/33.38 " 52.97/33.38 "mkBranchLeft_ok xvy xvz xwu = mkBranchLeft_ok0 xvy xvz xwu xwu xvz xwu; 52.97/33.38 " 52.97/33.38 "mkBranchRight_size xvy xvz xwu = sizeFM xvy; 52.97/33.38 " 52.97/33.38 "mkBranchLeft_size xvy xvz xwu = sizeFM xwu; 52.97/33.38 " 52.97/33.38 "mkBranchBalance_ok xvy xvz xwu = True; 52.97/33.38 " 52.97/33.38 The bindings of the following Let/Where expression 52.97/33.38 "let { 52.97/33.38 result = Branch key elt (unbox (1 + left_size + right_size)) fm_l fm_r; 52.97/33.38 } in result" 52.97/33.38 are unpacked to the following functions on top level 52.97/33.38 "mkBranchResult xwv xww xwx xwy = Branch xwv xww (mkBranchUnbox xwx xwv xwy (1 + mkBranchLeft_size xwx xwv xwy + mkBranchRight_size xwx xwv xwy)) xwy xwx; 52.97/33.38 " 52.97/33.38 The bindings of the following Let/Where expression 52.97/33.38 "glueVBal2 vxu vxv vxw vxx vxy vyu vyv vyw vyx vyy (sIZE_RATIO * size_l < size_r) where { 52.97/33.38 glueVBal0 vxu vxv vxw vxx vxy vyu vyv vyw vyx vyy True = glueBal (Branch vxu vxv vxw vxx vxy) (Branch vyu vyv vyw vyx vyy); 52.97/33.38 ; 52.97/33.38 glueVBal1 vxu vxv vxw vxx vxy vyu vyv vyw vyx vyy True = mkBalBranch vxu vxv vxx (glueVBal vxy (Branch vyu vyv vyw vyx vyy)); 52.97/33.38 glueVBal1 vxu vxv vxw vxx vxy vyu vyv vyw vyx vyy False = glueVBal0 vxu vxv vxw vxx vxy vyu vyv vyw vyx vyy otherwise; 52.97/33.38 ; 52.97/33.38 glueVBal2 vxu vxv vxw vxx vxy vyu vyv vyw vyx vyy True = mkBalBranch vyu vyv (glueVBal (Branch vxu vxv vxw vxx vxy) vyx) vyy; 52.97/33.38 glueVBal2 vxu vxv vxw vxx vxy vyu vyv vyw vyx vyy False = glueVBal1 vxu vxv vxw vxx vxy vyu vyv vyw vyx vyy (sIZE_RATIO * size_r < size_l); 52.97/33.38 ; 52.97/33.38 size_l = sizeFM (Branch vxu vxv vxw vxx vxy); 52.97/33.38 ; 52.97/33.38 size_r = sizeFM (Branch vyu vyv vyw vyx vyy); 52.97/33.38 } 52.97/33.38 " 52.97/33.38 are unpacked to the following functions on top level 52.97/33.38 "glueVBal3GlueVBal1 xwz xxu xxv xxw xxx xxy xxz xyu xyv xyw vxu vxv vxw vxx vxy vyu vyv vyw vyx vyy True = mkBalBranch vxu vxv vxx (glueVBal vxy (Branch vyu vyv vyw vyx vyy)); 52.97/33.38 glueVBal3GlueVBal1 xwz xxu xxv xxw xxx xxy xxz xyu xyv xyw vxu vxv vxw vxx vxy vyu vyv vyw vyx vyy False = glueVBal3GlueVBal0 xwz xxu xxv xxw xxx xxy xxz xyu xyv xyw vxu vxv vxw vxx vxy vyu vyv vyw vyx vyy otherwise; 52.97/33.38 " 52.97/33.38 "glueVBal3Size_l xwz xxu xxv xxw xxx xxy xxz xyu xyv xyw = sizeFM (Branch xwz xxu xxv xxw xxx); 52.97/33.38 " 52.97/33.38 "glueVBal3Size_r xwz xxu xxv xxw xxx xxy xxz xyu xyv xyw = sizeFM (Branch xxy xxz xyu xyv xyw); 52.97/33.38 " 52.97/33.38 "glueVBal3GlueVBal0 xwz xxu xxv xxw xxx xxy xxz xyu xyv xyw vxu vxv vxw vxx vxy vyu vyv vyw vyx vyy True = glueBal (Branch vxu vxv vxw vxx vxy) (Branch vyu vyv vyw vyx vyy); 52.97/33.38 " 52.97/33.38 "glueVBal3GlueVBal2 xwz xxu xxv xxw xxx xxy xxz xyu xyv xyw vxu vxv vxw vxx vxy vyu vyv vyw vyx vyy True = mkBalBranch vyu vyv (glueVBal (Branch vxu vxv vxw vxx vxy) vyx) vyy; 52.97/33.38 glueVBal3GlueVBal2 xwz xxu xxv xxw xxx xxy xxz xyu xyv xyw vxu vxv vxw vxx vxy vyu vyv vyw vyx vyy False = glueVBal3GlueVBal1 xwz xxu xxv xxw xxx xxy xxz xyu xyv xyw vxu vxv vxw vxx vxy vyu vyv vyw vyx vyy (sIZE_RATIO * glueVBal3Size_r xwz xxu xxv xxw xxx xxy xxz xyu xyv xyw < glueVBal3Size_l xwz xxu xxv xxw xxx xxy xxz xyu xyv xyw); 52.97/33.38 " 52.97/33.38 The bindings of the following Let/Where expression 52.97/33.38 "glueBal1 fm1 fm2 (sizeFM fm2 > sizeFM fm1) where { 52.97/33.38 glueBal0 fm1 fm2 True = mkBalBranch mid_key1 mid_elt1 (deleteMax fm1) fm2; 52.97/33.38 ; 52.97/33.38 glueBal1 fm1 fm2 True = mkBalBranch mid_key2 mid_elt2 fm1 (deleteMin fm2); 52.97/33.38 glueBal1 fm1 fm2 False = glueBal0 fm1 fm2 otherwise; 52.97/33.38 ; 52.97/33.38 mid_elt1 = mid_elt10 vv2; 52.97/33.38 ; 52.97/33.38 mid_elt10 (vww,mid_elt1) = mid_elt1; 52.97/33.38 ; 52.97/33.38 mid_elt2 = mid_elt20 vv3; 52.97/33.38 ; 52.97/33.38 mid_elt20 (vwv,mid_elt2) = mid_elt2; 52.97/33.38 ; 52.97/33.38 mid_key1 = mid_key10 vv2; 52.97/33.38 ; 52.97/33.38 mid_key10 (mid_key1,vwx) = mid_key1; 52.97/33.38 ; 52.97/33.38 mid_key2 = mid_key20 vv3; 52.97/33.38 ; 52.97/33.38 mid_key20 (mid_key2,vwy) = mid_key2; 52.97/33.38 ; 52.97/33.38 vv2 = findMax fm1; 52.97/33.38 ; 52.97/33.38 vv3 = findMin fm2; 52.97/33.38 } 52.97/33.38 " 52.97/33.38 are unpacked to the following functions on top level 52.97/33.38 "glueBal2Mid_key20 xyx xyy (mid_key2,vwy) = mid_key2; 52.97/33.38 " 52.97/33.38 "glueBal2Mid_key2 xyx xyy = glueBal2Mid_key20 xyx xyy (glueBal2Vv3 xyx xyy); 52.97/33.38 " 52.97/33.38 "glueBal2Vv2 xyx xyy = findMax xyx; 52.97/33.38 " 52.97/33.38 "glueBal2Mid_elt10 xyx xyy (vww,mid_elt1) = mid_elt1; 52.97/33.38 " 52.97/33.38 "glueBal2GlueBal0 xyx xyy fm1 fm2 True = mkBalBranch (glueBal2Mid_key1 xyx xyy) (glueBal2Mid_elt1 xyx xyy) (deleteMax fm1) fm2; 52.97/33.38 " 52.97/33.38 "glueBal2Mid_elt2 xyx xyy = glueBal2Mid_elt20 xyx xyy (glueBal2Vv3 xyx xyy); 52.97/33.38 " 52.97/33.38 "glueBal2Mid_elt20 xyx xyy (vwv,mid_elt2) = mid_elt2; 52.97/33.38 " 52.97/33.38 "glueBal2Mid_elt1 xyx xyy = glueBal2Mid_elt10 xyx xyy (glueBal2Vv2 xyx xyy); 52.97/33.38 " 52.97/33.38 "glueBal2Mid_key1 xyx xyy = glueBal2Mid_key10 xyx xyy (glueBal2Vv2 xyx xyy); 52.97/33.38 " 52.97/33.38 "glueBal2GlueBal1 xyx xyy fm1 fm2 True = mkBalBranch (glueBal2Mid_key2 xyx xyy) (glueBal2Mid_elt2 xyx xyy) fm1 (deleteMin fm2); 52.97/33.38 glueBal2GlueBal1 xyx xyy fm1 fm2 False = glueBal2GlueBal0 xyx xyy fm1 fm2 otherwise; 52.97/33.38 " 52.97/33.38 "glueBal2Mid_key10 xyx xyy (mid_key1,vwx) = mid_key1; 52.97/33.38 " 52.97/33.38 "glueBal2Vv3 xyx xyy = findMin xyy; 52.97/33.38 " 52.97/33.38 The bindings of the following Let/Where expression 52.97/33.38 "mkVBalBranch2 key elt wu wv ww wx wy xu xv xw xx xy (sIZE_RATIO * size_l < size_r) where { 52.97/33.38 mkVBalBranch0 key elt wu wv ww wx wy xu xv xw xx xy True = mkBranch 13 key elt (Branch wu wv ww wx wy) (Branch xu xv xw xx xy); 52.97/33.38 ; 52.97/33.38 mkVBalBranch1 key elt wu wv ww wx wy xu xv xw xx xy True = mkBalBranch wu wv wx (mkVBalBranch key elt wy (Branch xu xv xw xx xy)); 52.97/33.38 mkVBalBranch1 key elt wu wv ww wx wy xu xv xw xx xy False = mkVBalBranch0 key elt wu wv ww wx wy xu xv xw xx xy otherwise; 52.97/33.38 ; 52.97/33.38 mkVBalBranch2 key elt wu wv ww wx wy xu xv xw xx xy True = mkBalBranch xu xv (mkVBalBranch key elt (Branch wu wv ww wx wy) xx) xy; 52.97/33.38 mkVBalBranch2 key elt wu wv ww wx wy xu xv xw xx xy False = mkVBalBranch1 key elt wu wv ww wx wy xu xv xw xx xy (sIZE_RATIO * size_r < size_l); 52.97/33.38 ; 52.97/33.38 size_l = sizeFM (Branch wu wv ww wx wy); 52.97/33.38 ; 52.97/33.38 size_r = sizeFM (Branch xu xv xw xx xy); 52.97/33.38 } 52.97/33.38 " 52.97/33.38 are unpacked to the following functions on top level 52.97/33.38 "mkVBalBranch3MkVBalBranch0 xyz xzu xzv xzw xzx xzy xzz yuu yuv yuw key elt wu wv ww wx wy xu xv xw xx xy True = mkBranch 13 key elt (Branch wu wv ww wx wy) (Branch xu xv xw xx xy); 52.97/33.38 " 52.97/33.38 "mkVBalBranch3Size_l xyz xzu xzv xzw xzx xzy xzz yuu yuv yuw = sizeFM (Branch xyz xzu xzv xzw xzx); 52.97/33.38 " 52.97/33.38 "mkVBalBranch3MkVBalBranch1 xyz xzu xzv xzw xzx xzy xzz yuu yuv yuw key elt wu wv ww wx wy xu xv xw xx xy True = mkBalBranch wu wv wx (mkVBalBranch key elt wy (Branch xu xv xw xx xy)); 52.97/33.38 mkVBalBranch3MkVBalBranch1 xyz xzu xzv xzw xzx xzy xzz yuu yuv yuw key elt wu wv ww wx wy xu xv xw xx xy False = mkVBalBranch3MkVBalBranch0 xyz xzu xzv xzw xzx xzy xzz yuu yuv yuw key elt wu wv ww wx wy xu xv xw xx xy otherwise; 52.97/33.38 " 52.97/33.38 "mkVBalBranch3Size_r xyz xzu xzv xzw xzx xzy xzz yuu yuv yuw = sizeFM (Branch xzy xzz yuu yuv yuw); 52.97/33.38 " 52.97/33.38 "mkVBalBranch3MkVBalBranch2 xyz xzu xzv xzw xzx xzy xzz yuu yuv yuw key elt wu wv ww wx wy xu xv xw xx xy True = mkBalBranch xu xv (mkVBalBranch key elt (Branch wu wv ww wx wy) xx) xy; 52.97/33.38 mkVBalBranch3MkVBalBranch2 xyz xzu xzv xzw xzx xzy xzz yuu yuv yuw key elt wu wv ww wx wy xu xv xw xx xy False = mkVBalBranch3MkVBalBranch1 xyz xzu xzv xzw xzx xzy xzz yuu yuv yuw key elt wu wv ww wx wy xu xv xw xx xy (sIZE_RATIO * mkVBalBranch3Size_r xyz xzu xzv xzw xzx xzy xzz yuu yuv yuw < mkVBalBranch3Size_l xyz xzu xzv xzw xzx xzy xzz yuu yuv yuw); 52.97/33.38 " 52.97/33.38 The bindings of the following Let/Where expression 52.97/33.38 "let { 52.97/33.38 smallest_right_key = fst (findMin fm_r); 52.97/33.38 } in key < smallest_right_key" 52.97/33.38 are unpacked to the following functions on top level 52.97/33.38 "mkBranchRight_ok0Smallest_right_key yux = fst (findMin yux); 52.97/33.38 " 52.97/33.38 The bindings of the following Let/Where expression 52.97/33.38 "let { 52.97/33.38 biggest_left_key = fst (findMax fm_l); 52.97/33.38 } in biggest_left_key < key" 52.97/33.38 are unpacked to the following functions on top level 52.97/33.38 "mkBranchLeft_ok0Biggest_left_key yuy = fst (findMax yuy); 52.97/33.38 " 52.97/33.38 52.97/33.38 ---------------------------------------- 52.97/33.38 52.97/33.38 (10) 52.97/33.38 Obligation: 52.97/33.38 mainModule Main 52.97/33.38 module FiniteMap where { 52.97/33.38 import qualified Main; 52.97/33.38 import qualified Maybe; 52.97/33.38 import qualified Prelude; 52.97/33.38 data FiniteMap a b = EmptyFM | Branch a b Int (FiniteMap a b) (FiniteMap a b) ; 52.97/33.38 52.97/33.38 instance (Eq a, Eq b) => Eq FiniteMap a b where { 52.97/33.38 } 52.97/33.38 addToFM :: Ord b => FiniteMap b a -> b -> a -> FiniteMap b a; 52.97/33.38 addToFM fm key elt = addToFM_C addToFM0 fm key elt; 52.97/33.38 52.97/33.38 addToFM0 old new = new; 52.97/33.38 52.97/33.38 addToFM_C :: Ord a => (b -> b -> b) -> FiniteMap a b -> a -> b -> FiniteMap a b; 52.97/33.38 addToFM_C combiner EmptyFM key elt = addToFM_C4 combiner EmptyFM key elt; 52.97/33.38 addToFM_C combiner (Branch key elt size fm_l fm_r) new_key new_elt = addToFM_C3 combiner (Branch key elt size fm_l fm_r) new_key new_elt; 52.97/33.38 52.97/33.38 addToFM_C0 combiner key elt size fm_l fm_r new_key new_elt True = Branch new_key (combiner elt new_elt) size fm_l fm_r; 52.97/33.38 52.97/33.38 addToFM_C1 combiner key elt size fm_l fm_r new_key new_elt True = mkBalBranch key elt fm_l (addToFM_C combiner fm_r new_key new_elt); 52.97/33.38 addToFM_C1 combiner key elt size fm_l fm_r new_key new_elt False = addToFM_C0 combiner key elt size fm_l fm_r new_key new_elt otherwise; 52.97/33.38 52.97/33.38 addToFM_C2 combiner key elt size fm_l fm_r new_key new_elt True = mkBalBranch key elt (addToFM_C combiner fm_l new_key new_elt) fm_r; 52.97/33.38 addToFM_C2 combiner key elt size fm_l fm_r new_key new_elt False = addToFM_C1 combiner key elt size fm_l fm_r new_key new_elt (new_key > key); 52.97/33.38 52.97/33.38 addToFM_C3 combiner (Branch key elt size fm_l fm_r) new_key new_elt = addToFM_C2 combiner key elt size fm_l fm_r new_key new_elt (new_key < key); 52.97/33.38 52.97/33.38 addToFM_C4 combiner EmptyFM key elt = unitFM key elt; 52.97/33.38 addToFM_C4 wvu wvv wvw wvx = addToFM_C3 wvu wvv wvw wvx; 52.97/33.38 52.97/33.38 deleteMax :: Ord b => FiniteMap b a -> FiniteMap b a; 52.97/33.38 deleteMax (Branch key elt xz fm_l EmptyFM) = fm_l; 52.97/33.38 deleteMax (Branch key elt yu fm_l fm_r) = mkBalBranch key elt fm_l (deleteMax fm_r); 52.97/33.38 52.97/33.38 deleteMin :: Ord b => FiniteMap b a -> FiniteMap b a; 52.97/33.38 deleteMin (Branch key elt vzx EmptyFM fm_r) = fm_r; 52.97/33.38 deleteMin (Branch key elt vzy fm_l fm_r) = mkBalBranch key elt (deleteMin fm_l) fm_r; 52.97/33.38 52.97/33.38 emptyFM :: FiniteMap b a; 52.97/33.38 emptyFM = EmptyFM; 52.97/33.38 52.97/33.38 filterFM :: Ord a => (a -> b -> Bool) -> FiniteMap a b -> FiniteMap a b; 52.97/33.38 filterFM p EmptyFM = filterFM3 p EmptyFM; 52.97/33.38 filterFM p (Branch key elt vzz fm_l fm_r) = filterFM2 p (Branch key elt vzz fm_l fm_r); 52.97/33.38 52.97/33.38 filterFM0 p key elt vzz fm_l fm_r True = glueVBal (filterFM p fm_l) (filterFM p fm_r); 52.97/33.38 52.97/33.38 filterFM1 p key elt vzz fm_l fm_r True = mkVBalBranch key elt (filterFM p fm_l) (filterFM p fm_r); 52.97/33.38 filterFM1 p key elt vzz fm_l fm_r False = filterFM0 p key elt vzz fm_l fm_r otherwise; 52.97/33.38 52.97/33.38 filterFM2 p (Branch key elt vzz fm_l fm_r) = filterFM1 p key elt vzz fm_l fm_r (p key elt); 52.97/33.38 52.97/33.38 filterFM3 p EmptyFM = emptyFM; 52.97/33.38 filterFM3 xuy xuz = filterFM2 xuy xuz; 52.97/33.38 52.97/33.38 findMax :: FiniteMap a b -> (a,b); 52.97/33.38 findMax (Branch key elt zx zy EmptyFM) = (key,elt); 52.97/33.38 findMax (Branch key elt zz vuu fm_r) = findMax fm_r; 52.97/33.38 52.97/33.38 findMin :: FiniteMap b a -> (b,a); 52.97/33.38 findMin (Branch key elt wuu EmptyFM wuv) = (key,elt); 52.97/33.38 findMin (Branch key elt wuw fm_l wux) = findMin fm_l; 52.97/33.38 52.97/33.38 glueBal :: Ord b => FiniteMap b a -> FiniteMap b a -> FiniteMap b a; 52.97/33.38 glueBal EmptyFM fm2 = glueBal4 EmptyFM fm2; 52.97/33.38 glueBal fm1 EmptyFM = glueBal3 fm1 EmptyFM; 52.97/33.38 glueBal fm1 fm2 = glueBal2 fm1 fm2; 52.97/33.38 52.97/33.38 glueBal2 fm1 fm2 = glueBal2GlueBal1 fm1 fm2 fm1 fm2 (sizeFM fm2 > sizeFM fm1); 52.97/33.38 52.97/33.38 glueBal2GlueBal0 xyx xyy fm1 fm2 True = mkBalBranch (glueBal2Mid_key1 xyx xyy) (glueBal2Mid_elt1 xyx xyy) (deleteMax fm1) fm2; 52.97/33.38 52.97/33.38 glueBal2GlueBal1 xyx xyy fm1 fm2 True = mkBalBranch (glueBal2Mid_key2 xyx xyy) (glueBal2Mid_elt2 xyx xyy) fm1 (deleteMin fm2); 52.97/33.38 glueBal2GlueBal1 xyx xyy fm1 fm2 False = glueBal2GlueBal0 xyx xyy fm1 fm2 otherwise; 52.97/33.38 52.97/33.38 glueBal2Mid_elt1 xyx xyy = glueBal2Mid_elt10 xyx xyy (glueBal2Vv2 xyx xyy); 52.97/33.38 52.97/33.38 glueBal2Mid_elt10 xyx xyy (vww,mid_elt1) = mid_elt1; 52.97/33.38 52.97/33.38 glueBal2Mid_elt2 xyx xyy = glueBal2Mid_elt20 xyx xyy (glueBal2Vv3 xyx xyy); 52.97/33.38 52.97/33.38 glueBal2Mid_elt20 xyx xyy (vwv,mid_elt2) = mid_elt2; 52.97/33.38 52.97/33.38 glueBal2Mid_key1 xyx xyy = glueBal2Mid_key10 xyx xyy (glueBal2Vv2 xyx xyy); 52.97/33.38 52.97/33.38 glueBal2Mid_key10 xyx xyy (mid_key1,vwx) = mid_key1; 52.97/33.38 52.97/33.38 glueBal2Mid_key2 xyx xyy = glueBal2Mid_key20 xyx xyy (glueBal2Vv3 xyx xyy); 52.97/33.38 52.97/33.38 glueBal2Mid_key20 xyx xyy (mid_key2,vwy) = mid_key2; 52.97/33.38 52.97/33.38 glueBal2Vv2 xyx xyy = findMax xyx; 52.97/33.38 52.97/33.38 glueBal2Vv3 xyx xyy = findMin xyy; 52.97/33.38 52.97/33.38 glueBal3 fm1 EmptyFM = fm1; 52.97/33.38 glueBal3 wyv wyw = glueBal2 wyv wyw; 52.97/33.38 52.97/33.38 glueBal4 EmptyFM fm2 = fm2; 52.97/33.38 glueBal4 wyy wyz = glueBal3 wyy wyz; 52.97/33.38 52.97/33.38 glueVBal :: Ord a => FiniteMap a b -> FiniteMap a b -> FiniteMap a b; 52.97/33.38 glueVBal EmptyFM fm2 = glueVBal5 EmptyFM fm2; 52.97/33.38 glueVBal fm1 EmptyFM = glueVBal4 fm1 EmptyFM; 52.97/33.38 glueVBal (Branch vxu vxv vxw vxx vxy) (Branch vyu vyv vyw vyx vyy) = glueVBal3 (Branch vxu vxv vxw vxx vxy) (Branch vyu vyv vyw vyx vyy); 52.97/33.38 52.97/33.38 glueVBal3 (Branch vxu vxv vxw vxx vxy) (Branch vyu vyv vyw vyx vyy) = glueVBal3GlueVBal2 vxu vxv vxw vxx vxy vyu vyv vyw vyx vyy vxu vxv vxw vxx vxy vyu vyv vyw vyx vyy (sIZE_RATIO * glueVBal3Size_l vxu vxv vxw vxx vxy vyu vyv vyw vyx vyy < glueVBal3Size_r vxu vxv vxw vxx vxy vyu vyv vyw vyx vyy); 52.97/33.38 52.97/33.38 glueVBal3GlueVBal0 xwz xxu xxv xxw xxx xxy xxz xyu xyv xyw vxu vxv vxw vxx vxy vyu vyv vyw vyx vyy True = glueBal (Branch vxu vxv vxw vxx vxy) (Branch vyu vyv vyw vyx vyy); 52.97/33.38 52.97/33.38 glueVBal3GlueVBal1 xwz xxu xxv xxw xxx xxy xxz xyu xyv xyw vxu vxv vxw vxx vxy vyu vyv vyw vyx vyy True = mkBalBranch vxu vxv vxx (glueVBal vxy (Branch vyu vyv vyw vyx vyy)); 52.97/33.38 glueVBal3GlueVBal1 xwz xxu xxv xxw xxx xxy xxz xyu xyv xyw vxu vxv vxw vxx vxy vyu vyv vyw vyx vyy False = glueVBal3GlueVBal0 xwz xxu xxv xxw xxx xxy xxz xyu xyv xyw vxu vxv vxw vxx vxy vyu vyv vyw vyx vyy otherwise; 52.97/33.38 52.97/33.38 glueVBal3GlueVBal2 xwz xxu xxv xxw xxx xxy xxz xyu xyv xyw vxu vxv vxw vxx vxy vyu vyv vyw vyx vyy True = mkBalBranch vyu vyv (glueVBal (Branch vxu vxv vxw vxx vxy) vyx) vyy; 52.97/33.38 glueVBal3GlueVBal2 xwz xxu xxv xxw xxx xxy xxz xyu xyv xyw vxu vxv vxw vxx vxy vyu vyv vyw vyx vyy False = glueVBal3GlueVBal1 xwz xxu xxv xxw xxx xxy xxz xyu xyv xyw vxu vxv vxw vxx vxy vyu vyv vyw vyx vyy (sIZE_RATIO * glueVBal3Size_r xwz xxu xxv xxw xxx xxy xxz xyu xyv xyw < glueVBal3Size_l xwz xxu xxv xxw xxx xxy xxz xyu xyv xyw); 52.97/33.38 52.97/33.38 glueVBal3Size_l xwz xxu xxv xxw xxx xxy xxz xyu xyv xyw = sizeFM (Branch xwz xxu xxv xxw xxx); 52.97/33.38 52.97/33.38 glueVBal3Size_r xwz xxu xxv xxw xxx xxy xxz xyu xyv xyw = sizeFM (Branch xxy xxz xyu xyv xyw); 52.97/33.38 52.97/33.38 glueVBal4 fm1 EmptyFM = fm1; 52.97/33.38 glueVBal4 wzx wzy = glueVBal3 wzx wzy; 52.97/33.38 52.97/33.38 glueVBal5 EmptyFM fm2 = fm2; 52.97/33.38 glueVBal5 xuu xuv = glueVBal4 xuu xuv; 52.97/33.38 52.97/33.38 mkBalBranch :: Ord b => b -> a -> FiniteMap b a -> FiniteMap b a -> FiniteMap b a; 52.97/33.38 mkBalBranch key elt fm_L fm_R = mkBalBranch6 key elt fm_L fm_R; 52.97/33.38 52.97/33.38 mkBalBranch6 key elt fm_L fm_R = mkBalBranch6MkBalBranch5 key elt fm_L fm_R key elt fm_L fm_R (mkBalBranch6Size_l key elt fm_L fm_R + mkBalBranch6Size_r key elt fm_L fm_R < 2); 52.97/33.38 52.97/33.38 mkBalBranch6Double_L xvu xvv xvw xvx fm_l (Branch key_r elt_r vvv (Branch key_rl elt_rl vvw fm_rll fm_rlr) fm_rr) = mkBranch 5 key_rl elt_rl (mkBranch 6 xvu xvv fm_l fm_rll) (mkBranch 7 key_r elt_r fm_rlr fm_rr); 52.97/33.38 52.97/33.38 mkBalBranch6Double_R xvu xvv xvw xvx (Branch key_l elt_l vuw fm_ll (Branch key_lr elt_lr vux fm_lrl fm_lrr)) fm_r = mkBranch 10 key_lr elt_lr (mkBranch 11 key_l elt_l fm_ll fm_lrl) (mkBranch 12 xvu xvv fm_lrr fm_r); 52.97/33.38 52.97/33.38 mkBalBranch6MkBalBranch0 xvu xvv xvw xvx fm_L fm_R (Branch vvx vvy vvz fm_rl fm_rr) = mkBalBranch6MkBalBranch02 xvu xvv xvw xvx fm_L fm_R (Branch vvx vvy vvz fm_rl fm_rr); 52.97/33.38 52.97/33.38 mkBalBranch6MkBalBranch00 xvu xvv xvw xvx fm_L fm_R vvx vvy vvz fm_rl fm_rr True = mkBalBranch6Double_L xvu xvv xvw xvx fm_L fm_R; 52.97/33.38 52.97/33.38 mkBalBranch6MkBalBranch01 xvu xvv xvw xvx fm_L fm_R vvx vvy vvz fm_rl fm_rr True = mkBalBranch6Single_L xvu xvv xvw xvx fm_L fm_R; 52.97/33.38 mkBalBranch6MkBalBranch01 xvu xvv xvw xvx fm_L fm_R vvx vvy vvz fm_rl fm_rr False = mkBalBranch6MkBalBranch00 xvu xvv xvw xvx fm_L fm_R vvx vvy vvz fm_rl fm_rr otherwise; 52.97/33.38 52.97/33.38 mkBalBranch6MkBalBranch02 xvu xvv xvw xvx fm_L fm_R (Branch vvx vvy vvz fm_rl fm_rr) = mkBalBranch6MkBalBranch01 xvu xvv xvw xvx fm_L fm_R vvx vvy vvz fm_rl fm_rr (sizeFM fm_rl < 2 * sizeFM fm_rr); 52.97/33.38 52.97/33.38 mkBalBranch6MkBalBranch1 xvu xvv xvw xvx fm_L fm_R (Branch vuy vuz vvu fm_ll fm_lr) = mkBalBranch6MkBalBranch12 xvu xvv xvw xvx fm_L fm_R (Branch vuy vuz vvu fm_ll fm_lr); 52.97/33.38 52.97/33.38 mkBalBranch6MkBalBranch10 xvu xvv xvw xvx fm_L fm_R vuy vuz vvu fm_ll fm_lr True = mkBalBranch6Double_R xvu xvv xvw xvx fm_L fm_R; 52.97/33.38 52.97/33.38 mkBalBranch6MkBalBranch11 xvu xvv xvw xvx fm_L fm_R vuy vuz vvu fm_ll fm_lr True = mkBalBranch6Single_R xvu xvv xvw xvx fm_L fm_R; 52.97/33.38 mkBalBranch6MkBalBranch11 xvu xvv xvw xvx fm_L fm_R vuy vuz vvu fm_ll fm_lr False = mkBalBranch6MkBalBranch10 xvu xvv xvw xvx fm_L fm_R vuy vuz vvu fm_ll fm_lr otherwise; 52.97/33.38 52.97/33.38 mkBalBranch6MkBalBranch12 xvu xvv xvw xvx fm_L fm_R (Branch vuy vuz vvu fm_ll fm_lr) = mkBalBranch6MkBalBranch11 xvu xvv xvw xvx fm_L fm_R vuy vuz vvu fm_ll fm_lr (sizeFM fm_lr < 2 * sizeFM fm_ll); 52.97/33.38 52.97/33.38 mkBalBranch6MkBalBranch2 xvu xvv xvw xvx key elt fm_L fm_R True = mkBranch 2 key elt fm_L fm_R; 52.97/33.38 52.97/33.38 mkBalBranch6MkBalBranch3 xvu xvv xvw xvx key elt fm_L fm_R True = mkBalBranch6MkBalBranch1 xvu xvv xvw xvx fm_L fm_R fm_L; 52.97/33.38 mkBalBranch6MkBalBranch3 xvu xvv xvw xvx key elt fm_L fm_R False = mkBalBranch6MkBalBranch2 xvu xvv xvw xvx key elt fm_L fm_R otherwise; 52.97/33.38 52.97/33.38 mkBalBranch6MkBalBranch4 xvu xvv xvw xvx key elt fm_L fm_R True = mkBalBranch6MkBalBranch0 xvu xvv xvw xvx fm_L fm_R fm_R; 52.97/33.38 mkBalBranch6MkBalBranch4 xvu xvv xvw xvx key elt fm_L fm_R False = mkBalBranch6MkBalBranch3 xvu xvv xvw xvx key elt fm_L fm_R (mkBalBranch6Size_l xvu xvv xvw xvx > sIZE_RATIO * mkBalBranch6Size_r xvu xvv xvw xvx); 52.97/33.38 52.97/33.38 mkBalBranch6MkBalBranch5 xvu xvv xvw xvx key elt fm_L fm_R True = mkBranch 1 key elt fm_L fm_R; 52.97/33.38 mkBalBranch6MkBalBranch5 xvu xvv xvw xvx key elt fm_L fm_R False = mkBalBranch6MkBalBranch4 xvu xvv xvw xvx key elt fm_L fm_R (mkBalBranch6Size_r xvu xvv xvw xvx > sIZE_RATIO * mkBalBranch6Size_l xvu xvv xvw xvx); 52.97/33.38 52.97/33.38 mkBalBranch6Single_L xvu xvv xvw xvx fm_l (Branch key_r elt_r vwu fm_rl fm_rr) = mkBranch 3 key_r elt_r (mkBranch 4 xvu xvv fm_l fm_rl) fm_rr; 52.97/33.38 52.97/33.38 mkBalBranch6Single_R xvu xvv xvw xvx (Branch key_l elt_l vuv fm_ll fm_lr) fm_r = mkBranch 8 key_l elt_l fm_ll (mkBranch 9 xvu xvv fm_lr fm_r); 52.97/33.38 52.97/33.38 mkBalBranch6Size_l xvu xvv xvw xvx = sizeFM xvw; 52.97/33.38 52.97/33.38 mkBalBranch6Size_r xvu xvv xvw xvx = sizeFM xvx; 52.97/33.38 52.97/33.38 mkBranch :: Ord b => Int -> b -> a -> FiniteMap b a -> FiniteMap b a -> FiniteMap b a; 52.97/33.38 mkBranch which key elt fm_l fm_r = mkBranchResult key elt fm_r fm_l; 52.97/33.38 52.97/33.38 mkBranchBalance_ok xvy xvz xwu = True; 52.97/33.38 52.97/33.38 mkBranchLeft_ok xvy xvz xwu = mkBranchLeft_ok0 xvy xvz xwu xwu xvz xwu; 52.97/33.38 52.97/33.38 mkBranchLeft_ok0 xvy xvz xwu fm_l key EmptyFM = True; 52.97/33.38 mkBranchLeft_ok0 xvy xvz xwu fm_l key (Branch left_key yv yw yx yy) = mkBranchLeft_ok0Biggest_left_key fm_l < key; 52.97/33.38 52.97/33.38 mkBranchLeft_ok0Biggest_left_key yuy = fst (findMax yuy); 52.97/33.38 52.97/33.38 mkBranchLeft_size xvy xvz xwu = sizeFM xwu; 52.97/33.38 52.97/33.38 mkBranchResult xwv xww xwx xwy = Branch xwv xww (mkBranchUnbox xwx xwv xwy (1 + mkBranchLeft_size xwx xwv xwy + mkBranchRight_size xwx xwv xwy)) xwy xwx; 52.97/33.38 52.97/33.38 mkBranchRight_ok xvy xvz xwu = mkBranchRight_ok0 xvy xvz xwu xvy xvz xvy; 52.97/33.38 52.97/33.38 mkBranchRight_ok0 xvy xvz xwu fm_r key EmptyFM = True; 52.97/33.38 mkBranchRight_ok0 xvy xvz xwu fm_r key (Branch right_key yz zu zv zw) = key < mkBranchRight_ok0Smallest_right_key fm_r; 52.97/33.38 52.97/33.38 mkBranchRight_ok0Smallest_right_key yux = fst (findMin yux); 52.97/33.38 52.97/33.38 mkBranchRight_size xvy xvz xwu = sizeFM xvy; 52.97/33.38 52.97/33.38 mkBranchUnbox :: Ord a => -> (FiniteMap a b) ( -> a ( -> (FiniteMap a b) (Int -> Int))); 52.97/33.38 mkBranchUnbox xvy xvz xwu x = x; 52.97/33.38 52.97/33.38 mkVBalBranch :: Ord a => a -> b -> FiniteMap a b -> FiniteMap a b -> FiniteMap a b; 52.97/33.38 mkVBalBranch key elt EmptyFM fm_r = mkVBalBranch5 key elt EmptyFM fm_r; 52.97/33.38 mkVBalBranch key elt fm_l EmptyFM = mkVBalBranch4 key elt fm_l EmptyFM; 52.97/33.38 mkVBalBranch key elt (Branch wu wv ww wx wy) (Branch xu xv xw xx xy) = mkVBalBranch3 key elt (Branch wu wv ww wx wy) (Branch xu xv xw xx xy); 52.97/33.38 52.97/33.38 mkVBalBranch3 key elt (Branch wu wv ww wx wy) (Branch xu xv xw xx xy) = mkVBalBranch3MkVBalBranch2 wu wv ww wx wy xu xv xw xx xy key elt wu wv ww wx wy xu xv xw xx xy (sIZE_RATIO * mkVBalBranch3Size_l wu wv ww wx wy xu xv xw xx xy < mkVBalBranch3Size_r wu wv ww wx wy xu xv xw xx xy); 52.97/33.38 52.97/33.38 mkVBalBranch3MkVBalBranch0 xyz xzu xzv xzw xzx xzy xzz yuu yuv yuw key elt wu wv ww wx wy xu xv xw xx xy True = mkBranch 13 key elt (Branch wu wv ww wx wy) (Branch xu xv xw xx xy); 52.97/33.38 52.97/33.38 mkVBalBranch3MkVBalBranch1 xyz xzu xzv xzw xzx xzy xzz yuu yuv yuw key elt wu wv ww wx wy xu xv xw xx xy True = mkBalBranch wu wv wx (mkVBalBranch key elt wy (Branch xu xv xw xx xy)); 52.97/33.38 mkVBalBranch3MkVBalBranch1 xyz xzu xzv xzw xzx xzy xzz yuu yuv yuw key elt wu wv ww wx wy xu xv xw xx xy False = mkVBalBranch3MkVBalBranch0 xyz xzu xzv xzw xzx xzy xzz yuu yuv yuw key elt wu wv ww wx wy xu xv xw xx xy otherwise; 52.97/33.38 52.97/33.38 mkVBalBranch3MkVBalBranch2 xyz xzu xzv xzw xzx xzy xzz yuu yuv yuw key elt wu wv ww wx wy xu xv xw xx xy True = mkBalBranch xu xv (mkVBalBranch key elt (Branch wu wv ww wx wy) xx) xy; 52.97/33.38 mkVBalBranch3MkVBalBranch2 xyz xzu xzv xzw xzx xzy xzz yuu yuv yuw key elt wu wv ww wx wy xu xv xw xx xy False = mkVBalBranch3MkVBalBranch1 xyz xzu xzv xzw xzx xzy xzz yuu yuv yuw key elt wu wv ww wx wy xu xv xw xx xy (sIZE_RATIO * mkVBalBranch3Size_r xyz xzu xzv xzw xzx xzy xzz yuu yuv yuw < mkVBalBranch3Size_l xyz xzu xzv xzw xzx xzy xzz yuu yuv yuw); 52.97/33.38 52.97/33.38 mkVBalBranch3Size_l xyz xzu xzv xzw xzx xzy xzz yuu yuv yuw = sizeFM (Branch xyz xzu xzv xzw xzx); 52.97/33.38 52.97/33.38 mkVBalBranch3Size_r xyz xzu xzv xzw xzx xzy xzz yuu yuv yuw = sizeFM (Branch xzy xzz yuu yuv yuw); 52.97/33.38 52.97/33.38 mkVBalBranch4 key elt fm_l EmptyFM = addToFM fm_l key elt; 52.97/33.38 mkVBalBranch4 wwv www wwx wwy = mkVBalBranch3 wwv www wwx wwy; 52.97/33.38 52.97/33.38 mkVBalBranch5 key elt EmptyFM fm_r = addToFM fm_r key elt; 52.97/33.38 mkVBalBranch5 wxu wxv wxw wxx = mkVBalBranch4 wxu wxv wxw wxx; 52.97/33.38 52.97/33.38 sIZE_RATIO :: Int; 52.97/33.38 sIZE_RATIO = 5; 52.97/33.38 52.97/33.38 sizeFM :: FiniteMap b a -> Int; 52.97/33.38 sizeFM EmptyFM = 0; 52.97/33.38 sizeFM (Branch vyz vzu size vzv vzw) = size; 52.97/33.38 52.97/33.38 unitFM :: a -> b -> FiniteMap a b; 52.97/33.38 unitFM key elt = Branch key elt 1 emptyFM emptyFM; 52.97/33.38 52.97/33.38 } 52.97/33.38 module Maybe where { 52.97/33.38 import qualified FiniteMap; 52.97/33.38 import qualified Main; 52.97/33.38 import qualified Prelude; 52.97/33.38 } 52.97/33.38 module Main where { 52.97/33.38 import qualified FiniteMap; 52.97/33.38 import qualified Maybe; 52.97/33.38 import qualified Prelude; 52.97/33.38 } 52.97/33.38 52.97/33.38 ---------------------------------------- 52.97/33.38 52.97/33.38 (11) NumRed (SOUND) 52.97/33.38 Num Reduction:All numbers are transformed to their corresponding representation with Succ, Pred and Zero. 52.97/33.38 ---------------------------------------- 52.97/33.38 52.97/33.38 (12) 52.97/33.38 Obligation: 52.97/33.38 mainModule Main 52.97/33.38 module FiniteMap where { 52.97/33.38 import qualified Main; 52.97/33.38 import qualified Maybe; 52.97/33.38 import qualified Prelude; 52.97/33.38 data FiniteMap a b = EmptyFM | Branch a b Int (FiniteMap a b) (FiniteMap a b) ; 52.97/33.38 52.97/33.38 instance (Eq a, Eq b) => Eq FiniteMap a b where { 52.97/33.38 } 52.97/33.38 addToFM :: Ord b => FiniteMap b a -> b -> a -> FiniteMap b a; 52.97/33.38 addToFM fm key elt = addToFM_C addToFM0 fm key elt; 52.97/33.38 52.97/33.38 addToFM0 old new = new; 52.97/33.38 52.97/33.38 addToFM_C :: Ord a => (b -> b -> b) -> FiniteMap a b -> a -> b -> FiniteMap a b; 52.97/33.38 addToFM_C combiner EmptyFM key elt = addToFM_C4 combiner EmptyFM key elt; 52.97/33.38 addToFM_C combiner (Branch key elt size fm_l fm_r) new_key new_elt = addToFM_C3 combiner (Branch key elt size fm_l fm_r) new_key new_elt; 52.97/33.38 52.97/33.38 addToFM_C0 combiner key elt size fm_l fm_r new_key new_elt True = Branch new_key (combiner elt new_elt) size fm_l fm_r; 52.97/33.38 52.97/33.38 addToFM_C1 combiner key elt size fm_l fm_r new_key new_elt True = mkBalBranch key elt fm_l (addToFM_C combiner fm_r new_key new_elt); 52.97/33.38 addToFM_C1 combiner key elt size fm_l fm_r new_key new_elt False = addToFM_C0 combiner key elt size fm_l fm_r new_key new_elt otherwise; 52.97/33.38 52.97/33.38 addToFM_C2 combiner key elt size fm_l fm_r new_key new_elt True = mkBalBranch key elt (addToFM_C combiner fm_l new_key new_elt) fm_r; 52.97/33.38 addToFM_C2 combiner key elt size fm_l fm_r new_key new_elt False = addToFM_C1 combiner key elt size fm_l fm_r new_key new_elt (new_key > key); 52.97/33.38 52.97/33.38 addToFM_C3 combiner (Branch key elt size fm_l fm_r) new_key new_elt = addToFM_C2 combiner key elt size fm_l fm_r new_key new_elt (new_key < key); 52.97/33.38 52.97/33.38 addToFM_C4 combiner EmptyFM key elt = unitFM key elt; 52.97/33.38 addToFM_C4 wvu wvv wvw wvx = addToFM_C3 wvu wvv wvw wvx; 52.97/33.38 52.97/33.38 deleteMax :: Ord a => FiniteMap a b -> FiniteMap a b; 52.97/33.38 deleteMax (Branch key elt xz fm_l EmptyFM) = fm_l; 52.97/33.38 deleteMax (Branch key elt yu fm_l fm_r) = mkBalBranch key elt fm_l (deleteMax fm_r); 52.97/33.38 52.97/33.38 deleteMin :: Ord a => FiniteMap a b -> FiniteMap a b; 52.97/33.38 deleteMin (Branch key elt vzx EmptyFM fm_r) = fm_r; 52.97/33.38 deleteMin (Branch key elt vzy fm_l fm_r) = mkBalBranch key elt (deleteMin fm_l) fm_r; 52.97/33.38 52.97/33.38 emptyFM :: FiniteMap a b; 52.97/33.38 emptyFM = EmptyFM; 52.97/33.38 52.97/33.38 filterFM :: Ord b => (b -> a -> Bool) -> FiniteMap b a -> FiniteMap b a; 52.97/33.38 filterFM p EmptyFM = filterFM3 p EmptyFM; 52.97/33.38 filterFM p (Branch key elt vzz fm_l fm_r) = filterFM2 p (Branch key elt vzz fm_l fm_r); 52.97/33.38 52.97/33.38 filterFM0 p key elt vzz fm_l fm_r True = glueVBal (filterFM p fm_l) (filterFM p fm_r); 52.97/33.38 52.97/33.38 filterFM1 p key elt vzz fm_l fm_r True = mkVBalBranch key elt (filterFM p fm_l) (filterFM p fm_r); 52.97/33.38 filterFM1 p key elt vzz fm_l fm_r False = filterFM0 p key elt vzz fm_l fm_r otherwise; 52.97/33.38 52.97/33.38 filterFM2 p (Branch key elt vzz fm_l fm_r) = filterFM1 p key elt vzz fm_l fm_r (p key elt); 52.97/33.38 52.97/33.38 filterFM3 p EmptyFM = emptyFM; 52.97/33.38 filterFM3 xuy xuz = filterFM2 xuy xuz; 52.97/33.38 52.97/33.38 findMax :: FiniteMap b a -> (b,a); 52.97/33.38 findMax (Branch key elt zx zy EmptyFM) = (key,elt); 52.97/33.38 findMax (Branch key elt zz vuu fm_r) = findMax fm_r; 52.97/33.38 52.97/33.38 findMin :: FiniteMap a b -> (a,b); 52.97/33.38 findMin (Branch key elt wuu EmptyFM wuv) = (key,elt); 52.97/33.38 findMin (Branch key elt wuw fm_l wux) = findMin fm_l; 52.97/33.38 52.97/33.38 glueBal :: Ord a => FiniteMap a b -> FiniteMap a b -> FiniteMap a b; 52.97/33.38 glueBal EmptyFM fm2 = glueBal4 EmptyFM fm2; 52.97/33.38 glueBal fm1 EmptyFM = glueBal3 fm1 EmptyFM; 52.97/33.38 glueBal fm1 fm2 = glueBal2 fm1 fm2; 52.97/33.38 52.97/33.38 glueBal2 fm1 fm2 = glueBal2GlueBal1 fm1 fm2 fm1 fm2 (sizeFM fm2 > sizeFM fm1); 52.97/33.38 52.97/33.38 glueBal2GlueBal0 xyx xyy fm1 fm2 True = mkBalBranch (glueBal2Mid_key1 xyx xyy) (glueBal2Mid_elt1 xyx xyy) (deleteMax fm1) fm2; 52.97/33.38 52.97/33.38 glueBal2GlueBal1 xyx xyy fm1 fm2 True = mkBalBranch (glueBal2Mid_key2 xyx xyy) (glueBal2Mid_elt2 xyx xyy) fm1 (deleteMin fm2); 52.97/33.38 glueBal2GlueBal1 xyx xyy fm1 fm2 False = glueBal2GlueBal0 xyx xyy fm1 fm2 otherwise; 52.97/33.38 52.97/33.38 glueBal2Mid_elt1 xyx xyy = glueBal2Mid_elt10 xyx xyy (glueBal2Vv2 xyx xyy); 52.97/33.38 52.97/33.38 glueBal2Mid_elt10 xyx xyy (vww,mid_elt1) = mid_elt1; 52.97/33.38 52.97/33.38 glueBal2Mid_elt2 xyx xyy = glueBal2Mid_elt20 xyx xyy (glueBal2Vv3 xyx xyy); 52.97/33.38 52.97/33.38 glueBal2Mid_elt20 xyx xyy (vwv,mid_elt2) = mid_elt2; 52.97/33.38 52.97/33.38 glueBal2Mid_key1 xyx xyy = glueBal2Mid_key10 xyx xyy (glueBal2Vv2 xyx xyy); 52.97/33.38 52.97/33.38 glueBal2Mid_key10 xyx xyy (mid_key1,vwx) = mid_key1; 52.97/33.38 52.97/33.38 glueBal2Mid_key2 xyx xyy = glueBal2Mid_key20 xyx xyy (glueBal2Vv3 xyx xyy); 52.97/33.38 52.97/33.38 glueBal2Mid_key20 xyx xyy (mid_key2,vwy) = mid_key2; 52.97/33.38 52.97/33.38 glueBal2Vv2 xyx xyy = findMax xyx; 52.97/33.38 52.97/33.38 glueBal2Vv3 xyx xyy = findMin xyy; 52.97/33.38 52.97/33.38 glueBal3 fm1 EmptyFM = fm1; 52.97/33.38 glueBal3 wyv wyw = glueBal2 wyv wyw; 52.97/33.38 52.97/33.38 glueBal4 EmptyFM fm2 = fm2; 52.97/33.38 glueBal4 wyy wyz = glueBal3 wyy wyz; 52.97/33.38 52.97/33.38 glueVBal :: Ord a => FiniteMap a b -> FiniteMap a b -> FiniteMap a b; 52.97/33.38 glueVBal EmptyFM fm2 = glueVBal5 EmptyFM fm2; 52.97/33.38 glueVBal fm1 EmptyFM = glueVBal4 fm1 EmptyFM; 52.97/33.38 glueVBal (Branch vxu vxv vxw vxx vxy) (Branch vyu vyv vyw vyx vyy) = glueVBal3 (Branch vxu vxv vxw vxx vxy) (Branch vyu vyv vyw vyx vyy); 52.97/33.38 52.97/33.38 glueVBal3 (Branch vxu vxv vxw vxx vxy) (Branch vyu vyv vyw vyx vyy) = glueVBal3GlueVBal2 vxu vxv vxw vxx vxy vyu vyv vyw vyx vyy vxu vxv vxw vxx vxy vyu vyv vyw vyx vyy (sIZE_RATIO * glueVBal3Size_l vxu vxv vxw vxx vxy vyu vyv vyw vyx vyy < glueVBal3Size_r vxu vxv vxw vxx vxy vyu vyv vyw vyx vyy); 52.97/33.38 52.97/33.38 glueVBal3GlueVBal0 xwz xxu xxv xxw xxx xxy xxz xyu xyv xyw vxu vxv vxw vxx vxy vyu vyv vyw vyx vyy True = glueBal (Branch vxu vxv vxw vxx vxy) (Branch vyu vyv vyw vyx vyy); 52.97/33.38 52.97/33.38 glueVBal3GlueVBal1 xwz xxu xxv xxw xxx xxy xxz xyu xyv xyw vxu vxv vxw vxx vxy vyu vyv vyw vyx vyy True = mkBalBranch vxu vxv vxx (glueVBal vxy (Branch vyu vyv vyw vyx vyy)); 52.97/33.38 glueVBal3GlueVBal1 xwz xxu xxv xxw xxx xxy xxz xyu xyv xyw vxu vxv vxw vxx vxy vyu vyv vyw vyx vyy False = glueVBal3GlueVBal0 xwz xxu xxv xxw xxx xxy xxz xyu xyv xyw vxu vxv vxw vxx vxy vyu vyv vyw vyx vyy otherwise; 52.97/33.38 52.97/33.38 glueVBal3GlueVBal2 xwz xxu xxv xxw xxx xxy xxz xyu xyv xyw vxu vxv vxw vxx vxy vyu vyv vyw vyx vyy True = mkBalBranch vyu vyv (glueVBal (Branch vxu vxv vxw vxx vxy) vyx) vyy; 52.97/33.38 glueVBal3GlueVBal2 xwz xxu xxv xxw xxx xxy xxz xyu xyv xyw vxu vxv vxw vxx vxy vyu vyv vyw vyx vyy False = glueVBal3GlueVBal1 xwz xxu xxv xxw xxx xxy xxz xyu xyv xyw vxu vxv vxw vxx vxy vyu vyv vyw vyx vyy (sIZE_RATIO * glueVBal3Size_r xwz xxu xxv xxw xxx xxy xxz xyu xyv xyw < glueVBal3Size_l xwz xxu xxv xxw xxx xxy xxz xyu xyv xyw); 52.97/33.38 52.97/33.38 glueVBal3Size_l xwz xxu xxv xxw xxx xxy xxz xyu xyv xyw = sizeFM (Branch xwz xxu xxv xxw xxx); 52.97/33.38 52.97/33.38 glueVBal3Size_r xwz xxu xxv xxw xxx xxy xxz xyu xyv xyw = sizeFM (Branch xxy xxz xyu xyv xyw); 52.97/33.38 52.97/33.38 glueVBal4 fm1 EmptyFM = fm1; 52.97/33.38 glueVBal4 wzx wzy = glueVBal3 wzx wzy; 52.97/33.38 52.97/33.38 glueVBal5 EmptyFM fm2 = fm2; 52.97/33.38 glueVBal5 xuu xuv = glueVBal4 xuu xuv; 52.97/33.38 52.97/33.38 mkBalBranch :: Ord b => b -> a -> FiniteMap b a -> FiniteMap b a -> FiniteMap b a; 52.97/33.38 mkBalBranch key elt fm_L fm_R = mkBalBranch6 key elt fm_L fm_R; 52.97/33.38 52.97/33.38 mkBalBranch6 key elt fm_L fm_R = mkBalBranch6MkBalBranch5 key elt fm_L fm_R key elt fm_L fm_R (mkBalBranch6Size_l key elt fm_L fm_R + mkBalBranch6Size_r key elt fm_L fm_R < Pos (Succ (Succ Zero))); 52.97/33.38 52.97/33.38 mkBalBranch6Double_L xvu xvv xvw xvx fm_l (Branch key_r elt_r vvv (Branch key_rl elt_rl vvw fm_rll fm_rlr) fm_rr) = mkBranch (Pos (Succ (Succ (Succ (Succ (Succ Zero)))))) key_rl elt_rl (mkBranch (Pos (Succ (Succ (Succ (Succ (Succ (Succ Zero))))))) xvu xvv fm_l fm_rll) (mkBranch (Pos (Succ (Succ (Succ (Succ (Succ (Succ (Succ Zero)))))))) key_r elt_r fm_rlr fm_rr); 52.97/33.38 52.97/33.38 mkBalBranch6Double_R xvu xvv xvw xvx (Branch key_l elt_l vuw fm_ll (Branch key_lr elt_lr vux fm_lrl fm_lrr)) fm_r = mkBranch (Pos (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ Zero))))))))))) key_lr elt_lr (mkBranch (Pos (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ Zero)))))))))))) key_l elt_l fm_ll fm_lrl) (mkBranch (Pos (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ Zero))))))))))))) xvu xvv fm_lrr fm_r); 52.97/33.38 52.97/33.38 mkBalBranch6MkBalBranch0 xvu xvv xvw xvx fm_L fm_R (Branch vvx vvy vvz fm_rl fm_rr) = mkBalBranch6MkBalBranch02 xvu xvv xvw xvx fm_L fm_R (Branch vvx vvy vvz fm_rl fm_rr); 52.97/33.38 52.97/33.38 mkBalBranch6MkBalBranch00 xvu xvv xvw xvx fm_L fm_R vvx vvy vvz fm_rl fm_rr True = mkBalBranch6Double_L xvu xvv xvw xvx fm_L fm_R; 52.97/33.38 52.97/33.38 mkBalBranch6MkBalBranch01 xvu xvv xvw xvx fm_L fm_R vvx vvy vvz fm_rl fm_rr True = mkBalBranch6Single_L xvu xvv xvw xvx fm_L fm_R; 52.97/33.38 mkBalBranch6MkBalBranch01 xvu xvv xvw xvx fm_L fm_R vvx vvy vvz fm_rl fm_rr False = mkBalBranch6MkBalBranch00 xvu xvv xvw xvx fm_L fm_R vvx vvy vvz fm_rl fm_rr otherwise; 52.97/33.38 52.97/33.38 mkBalBranch6MkBalBranch02 xvu xvv xvw xvx fm_L fm_R (Branch vvx vvy vvz fm_rl fm_rr) = mkBalBranch6MkBalBranch01 xvu xvv xvw xvx fm_L fm_R vvx vvy vvz fm_rl fm_rr (sizeFM fm_rl < Pos (Succ (Succ Zero)) * sizeFM fm_rr); 52.97/33.38 52.97/33.38 mkBalBranch6MkBalBranch1 xvu xvv xvw xvx fm_L fm_R (Branch vuy vuz vvu fm_ll fm_lr) = mkBalBranch6MkBalBranch12 xvu xvv xvw xvx fm_L fm_R (Branch vuy vuz vvu fm_ll fm_lr); 52.97/33.38 52.97/33.38 mkBalBranch6MkBalBranch10 xvu xvv xvw xvx fm_L fm_R vuy vuz vvu fm_ll fm_lr True = mkBalBranch6Double_R xvu xvv xvw xvx fm_L fm_R; 52.97/33.38 52.97/33.38 mkBalBranch6MkBalBranch11 xvu xvv xvw xvx fm_L fm_R vuy vuz vvu fm_ll fm_lr True = mkBalBranch6Single_R xvu xvv xvw xvx fm_L fm_R; 52.97/33.38 mkBalBranch6MkBalBranch11 xvu xvv xvw xvx fm_L fm_R vuy vuz vvu fm_ll fm_lr False = mkBalBranch6MkBalBranch10 xvu xvv xvw xvx fm_L fm_R vuy vuz vvu fm_ll fm_lr otherwise; 52.97/33.38 52.97/33.38 mkBalBranch6MkBalBranch12 xvu xvv xvw xvx fm_L fm_R (Branch vuy vuz vvu fm_ll fm_lr) = mkBalBranch6MkBalBranch11 xvu xvv xvw xvx fm_L fm_R vuy vuz vvu fm_ll fm_lr (sizeFM fm_lr < Pos (Succ (Succ Zero)) * sizeFM fm_ll); 52.97/33.38 52.97/33.38 mkBalBranch6MkBalBranch2 xvu xvv xvw xvx key elt fm_L fm_R True = mkBranch (Pos (Succ (Succ Zero))) key elt fm_L fm_R; 52.97/33.38 52.97/33.38 mkBalBranch6MkBalBranch3 xvu xvv xvw xvx key elt fm_L fm_R True = mkBalBranch6MkBalBranch1 xvu xvv xvw xvx fm_L fm_R fm_L; 52.97/33.38 mkBalBranch6MkBalBranch3 xvu xvv xvw xvx key elt fm_L fm_R False = mkBalBranch6MkBalBranch2 xvu xvv xvw xvx key elt fm_L fm_R otherwise; 52.97/33.38 52.97/33.38 mkBalBranch6MkBalBranch4 xvu xvv xvw xvx key elt fm_L fm_R True = mkBalBranch6MkBalBranch0 xvu xvv xvw xvx fm_L fm_R fm_R; 52.97/33.38 mkBalBranch6MkBalBranch4 xvu xvv xvw xvx key elt fm_L fm_R False = mkBalBranch6MkBalBranch3 xvu xvv xvw xvx key elt fm_L fm_R (mkBalBranch6Size_l xvu xvv xvw xvx > sIZE_RATIO * mkBalBranch6Size_r xvu xvv xvw xvx); 52.97/33.38 52.97/33.38 mkBalBranch6MkBalBranch5 xvu xvv xvw xvx key elt fm_L fm_R True = mkBranch (Pos (Succ Zero)) key elt fm_L fm_R; 52.97/33.38 mkBalBranch6MkBalBranch5 xvu xvv xvw xvx key elt fm_L fm_R False = mkBalBranch6MkBalBranch4 xvu xvv xvw xvx key elt fm_L fm_R (mkBalBranch6Size_r xvu xvv xvw xvx > sIZE_RATIO * mkBalBranch6Size_l xvu xvv xvw xvx); 52.97/33.38 52.97/33.38 mkBalBranch6Single_L xvu xvv xvw xvx fm_l (Branch key_r elt_r vwu fm_rl fm_rr) = mkBranch (Pos (Succ (Succ (Succ Zero)))) key_r elt_r (mkBranch (Pos (Succ (Succ (Succ (Succ Zero))))) xvu xvv fm_l fm_rl) fm_rr; 52.97/33.38 52.97/33.38 mkBalBranch6Single_R xvu xvv xvw xvx (Branch key_l elt_l vuv fm_ll fm_lr) fm_r = mkBranch (Pos (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ Zero))))))))) key_l elt_l fm_ll (mkBranch (Pos (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ Zero)))))))))) xvu xvv fm_lr fm_r); 52.97/33.38 52.97/33.38 mkBalBranch6Size_l xvu xvv xvw xvx = sizeFM xvw; 52.97/33.38 52.97/33.38 mkBalBranch6Size_r xvu xvv xvw xvx = sizeFM xvx; 52.97/33.38 52.97/33.38 mkBranch :: Ord b => Int -> b -> a -> FiniteMap b a -> FiniteMap b a -> FiniteMap b a; 52.97/33.38 mkBranch which key elt fm_l fm_r = mkBranchResult key elt fm_r fm_l; 52.97/33.38 52.97/33.38 mkBranchBalance_ok xvy xvz xwu = True; 52.97/33.38 52.97/33.38 mkBranchLeft_ok xvy xvz xwu = mkBranchLeft_ok0 xvy xvz xwu xwu xvz xwu; 52.97/33.38 52.97/33.38 mkBranchLeft_ok0 xvy xvz xwu fm_l key EmptyFM = True; 52.97/33.38 mkBranchLeft_ok0 xvy xvz xwu fm_l key (Branch left_key yv yw yx yy) = mkBranchLeft_ok0Biggest_left_key fm_l < key; 52.97/33.38 52.97/33.38 mkBranchLeft_ok0Biggest_left_key yuy = fst (findMax yuy); 52.97/33.38 52.97/33.38 mkBranchLeft_size xvy xvz xwu = sizeFM xwu; 52.97/33.38 52.97/33.38 mkBranchResult xwv xww xwx xwy = Branch xwv xww (mkBranchUnbox xwx xwv xwy (Pos (Succ Zero) + mkBranchLeft_size xwx xwv xwy + mkBranchRight_size xwx xwv xwy)) xwy xwx; 52.97/33.38 52.97/33.38 mkBranchRight_ok xvy xvz xwu = mkBranchRight_ok0 xvy xvz xwu xvy xvz xvy; 52.97/33.38 52.97/33.38 mkBranchRight_ok0 xvy xvz xwu fm_r key EmptyFM = True; 52.97/33.38 mkBranchRight_ok0 xvy xvz xwu fm_r key (Branch right_key yz zu zv zw) = key < mkBranchRight_ok0Smallest_right_key fm_r; 52.97/33.38 52.97/33.38 mkBranchRight_ok0Smallest_right_key yux = fst (findMin yux); 52.97/33.38 52.97/33.38 mkBranchRight_size xvy xvz xwu = sizeFM xvy; 52.97/33.38 52.97/33.38 mkBranchUnbox :: Ord a => -> (FiniteMap a b) ( -> a ( -> (FiniteMap a b) (Int -> Int))); 52.97/33.38 mkBranchUnbox xvy xvz xwu x = x; 52.97/33.38 52.97/33.38 mkVBalBranch :: Ord b => b -> a -> FiniteMap b a -> FiniteMap b a -> FiniteMap b a; 52.97/33.38 mkVBalBranch key elt EmptyFM fm_r = mkVBalBranch5 key elt EmptyFM fm_r; 52.97/33.38 mkVBalBranch key elt fm_l EmptyFM = mkVBalBranch4 key elt fm_l EmptyFM; 52.97/33.38 mkVBalBranch key elt (Branch wu wv ww wx wy) (Branch xu xv xw xx xy) = mkVBalBranch3 key elt (Branch wu wv ww wx wy) (Branch xu xv xw xx xy); 52.97/33.38 52.97/33.38 mkVBalBranch3 key elt (Branch wu wv ww wx wy) (Branch xu xv xw xx xy) = mkVBalBranch3MkVBalBranch2 wu wv ww wx wy xu xv xw xx xy key elt wu wv ww wx wy xu xv xw xx xy (sIZE_RATIO * mkVBalBranch3Size_l wu wv ww wx wy xu xv xw xx xy < mkVBalBranch3Size_r wu wv ww wx wy xu xv xw xx xy); 52.97/33.38 52.97/33.38 mkVBalBranch3MkVBalBranch0 xyz xzu xzv xzw xzx xzy xzz yuu yuv yuw key elt wu wv ww wx wy xu xv xw xx xy True = mkBranch (Pos (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ Zero)))))))))))))) key elt (Branch wu wv ww wx wy) (Branch xu xv xw xx xy); 52.97/33.38 52.97/33.38 mkVBalBranch3MkVBalBranch1 xyz xzu xzv xzw xzx xzy xzz yuu yuv yuw key elt wu wv ww wx wy xu xv xw xx xy True = mkBalBranch wu wv wx (mkVBalBranch key elt wy (Branch xu xv xw xx xy)); 52.97/33.38 mkVBalBranch3MkVBalBranch1 xyz xzu xzv xzw xzx xzy xzz yuu yuv yuw key elt wu wv ww wx wy xu xv xw xx xy False = mkVBalBranch3MkVBalBranch0 xyz xzu xzv xzw xzx xzy xzz yuu yuv yuw key elt wu wv ww wx wy xu xv xw xx xy otherwise; 52.97/33.38 52.97/33.38 mkVBalBranch3MkVBalBranch2 xyz xzu xzv xzw xzx xzy xzz yuu yuv yuw key elt wu wv ww wx wy xu xv xw xx xy True = mkBalBranch xu xv (mkVBalBranch key elt (Branch wu wv ww wx wy) xx) xy; 52.97/33.38 mkVBalBranch3MkVBalBranch2 xyz xzu xzv xzw xzx xzy xzz yuu yuv yuw key elt wu wv ww wx wy xu xv xw xx xy False = mkVBalBranch3MkVBalBranch1 xyz xzu xzv xzw xzx xzy xzz yuu yuv yuw key elt wu wv ww wx wy xu xv xw xx xy (sIZE_RATIO * mkVBalBranch3Size_r xyz xzu xzv xzw xzx xzy xzz yuu yuv yuw < mkVBalBranch3Size_l xyz xzu xzv xzw xzx xzy xzz yuu yuv yuw); 52.97/33.38 52.97/33.38 mkVBalBranch3Size_l xyz xzu xzv xzw xzx xzy xzz yuu yuv yuw = sizeFM (Branch xyz xzu xzv xzw xzx); 52.97/33.38 52.97/33.38 mkVBalBranch3Size_r xyz xzu xzv xzw xzx xzy xzz yuu yuv yuw = sizeFM (Branch xzy xzz yuu yuv yuw); 52.97/33.38 52.97/33.38 mkVBalBranch4 key elt fm_l EmptyFM = addToFM fm_l key elt; 52.97/33.38 mkVBalBranch4 wwv www wwx wwy = mkVBalBranch3 wwv www wwx wwy; 52.97/33.38 52.97/33.38 mkVBalBranch5 key elt EmptyFM fm_r = addToFM fm_r key elt; 52.97/33.38 mkVBalBranch5 wxu wxv wxw wxx = mkVBalBranch4 wxu wxv wxw wxx; 52.97/33.38 52.97/33.38 sIZE_RATIO :: Int; 52.97/33.38 sIZE_RATIO = Pos (Succ (Succ (Succ (Succ (Succ Zero))))); 52.97/33.38 52.97/33.38 sizeFM :: FiniteMap a b -> Int; 52.97/33.38 sizeFM EmptyFM = Pos Zero; 52.97/33.38 sizeFM (Branch vyz vzu size vzv vzw) = size; 52.97/33.38 52.97/33.38 unitFM :: b -> a -> FiniteMap b a; 52.97/33.38 unitFM key elt = Branch key elt (Pos (Succ Zero)) emptyFM emptyFM; 52.97/33.38 52.97/33.38 } 52.97/33.38 module Maybe where { 52.97/33.38 import qualified FiniteMap; 52.97/33.38 import qualified Main; 52.97/33.38 import qualified Prelude; 52.97/33.38 } 52.97/33.38 module Main where { 52.97/33.38 import qualified FiniteMap; 52.97/33.38 import qualified Maybe; 52.97/33.38 import qualified Prelude; 52.97/33.38 } 52.97/33.38 52.97/33.38 ---------------------------------------- 52.97/33.38 52.97/33.38 (13) Narrow (SOUND) 52.97/33.38 Haskell To QDPs 52.97/33.38 52.97/33.38 digraph dp_graph { 52.97/33.38 node [outthreshold=100, inthreshold=100];1[label="FiniteMap.filterFM",fontsize=16,color="grey",shape="box"];1 -> 3[label="",style="dashed", color="grey", weight=3]; 52.97/33.38 3[label="FiniteMap.filterFM yuz3",fontsize=16,color="grey",shape="box"];3 -> 4[label="",style="dashed", color="grey", weight=3]; 52.97/33.38 4[label="FiniteMap.filterFM yuz3 yuz4",fontsize=16,color="burlywood",shape="triangle"];41070[label="yuz4/FiniteMap.EmptyFM",fontsize=10,color="white",style="solid",shape="box"];4 -> 41070[label="",style="solid", color="burlywood", weight=9]; 52.97/33.38 41070 -> 5[label="",style="solid", color="burlywood", weight=3]; 52.97/33.38 41071[label="yuz4/FiniteMap.Branch yuz40 yuz41 yuz42 yuz43 yuz44",fontsize=10,color="white",style="solid",shape="box"];4 -> 41071[label="",style="solid", color="burlywood", weight=9]; 52.97/33.38 41071 -> 6[label="",style="solid", color="burlywood", weight=3]; 52.97/33.38 5[label="FiniteMap.filterFM yuz3 FiniteMap.EmptyFM",fontsize=16,color="black",shape="box"];5 -> 7[label="",style="solid", color="black", weight=3]; 52.97/33.38 6[label="FiniteMap.filterFM yuz3 (FiniteMap.Branch yuz40 yuz41 yuz42 yuz43 yuz44)",fontsize=16,color="black",shape="box"];6 -> 8[label="",style="solid", color="black", weight=3]; 52.97/33.38 7[label="FiniteMap.filterFM3 yuz3 FiniteMap.EmptyFM",fontsize=16,color="black",shape="box"];7 -> 9[label="",style="solid", color="black", weight=3]; 52.97/33.38 8[label="FiniteMap.filterFM2 yuz3 (FiniteMap.Branch yuz40 yuz41 yuz42 yuz43 yuz44)",fontsize=16,color="black",shape="box"];8 -> 10[label="",style="solid", color="black", weight=3]; 52.97/33.38 9[label="FiniteMap.emptyFM",fontsize=16,color="black",shape="triangle"];9 -> 11[label="",style="solid", color="black", weight=3]; 52.97/33.38 10 -> 12[label="",style="dashed", color="red", weight=0]; 52.97/33.38 10[label="FiniteMap.filterFM1 yuz3 yuz40 yuz41 yuz42 yuz43 yuz44 (yuz3 yuz40 yuz41)",fontsize=16,color="magenta"];10 -> 13[label="",style="dashed", color="magenta", weight=3]; 52.97/33.38 11[label="FiniteMap.EmptyFM",fontsize=16,color="green",shape="box"];13[label="yuz3 yuz40 yuz41",fontsize=16,color="green",shape="box"];13 -> 18[label="",style="dashed", color="green", weight=3]; 52.97/33.38 13 -> 19[label="",style="dashed", color="green", weight=3]; 52.97/33.38 12[label="FiniteMap.filterFM1 yuz3 yuz40 yuz41 yuz42 yuz43 yuz44 yuz5",fontsize=16,color="burlywood",shape="triangle"];41072[label="yuz5/False",fontsize=10,color="white",style="solid",shape="box"];12 -> 41072[label="",style="solid", color="burlywood", weight=9]; 52.97/33.38 41072 -> 16[label="",style="solid", color="burlywood", weight=3]; 52.97/33.38 41073[label="yuz5/True",fontsize=10,color="white",style="solid",shape="box"];12 -> 41073[label="",style="solid", color="burlywood", weight=9]; 52.97/33.38 41073 -> 17[label="",style="solid", color="burlywood", weight=3]; 52.97/33.38 18[label="yuz40",fontsize=16,color="green",shape="box"];19[label="yuz41",fontsize=16,color="green",shape="box"];16[label="FiniteMap.filterFM1 yuz3 yuz40 yuz41 yuz42 yuz43 yuz44 False",fontsize=16,color="black",shape="box"];16 -> 20[label="",style="solid", color="black", weight=3]; 52.97/33.38 17[label="FiniteMap.filterFM1 yuz3 yuz40 yuz41 yuz42 yuz43 yuz44 True",fontsize=16,color="black",shape="box"];17 -> 21[label="",style="solid", color="black", weight=3]; 52.97/33.38 20[label="FiniteMap.filterFM0 yuz3 yuz40 yuz41 yuz42 yuz43 yuz44 otherwise",fontsize=16,color="black",shape="box"];20 -> 22[label="",style="solid", color="black", weight=3]; 52.97/33.38 21 -> 23[label="",style="dashed", color="red", weight=0]; 52.97/33.38 21[label="FiniteMap.mkVBalBranch yuz40 yuz41 (FiniteMap.filterFM yuz3 yuz43) (FiniteMap.filterFM yuz3 yuz44)",fontsize=16,color="magenta"];21 -> 24[label="",style="dashed", color="magenta", weight=3]; 52.97/33.38 21 -> 25[label="",style="dashed", color="magenta", weight=3]; 52.97/33.38 22[label="FiniteMap.filterFM0 yuz3 yuz40 yuz41 yuz42 yuz43 yuz44 True",fontsize=16,color="black",shape="box"];22 -> 26[label="",style="solid", color="black", weight=3]; 52.97/33.38 24 -> 4[label="",style="dashed", color="red", weight=0]; 52.97/33.38 24[label="FiniteMap.filterFM yuz3 yuz44",fontsize=16,color="magenta"];24 -> 27[label="",style="dashed", color="magenta", weight=3]; 52.97/33.38 25 -> 4[label="",style="dashed", color="red", weight=0]; 52.97/33.38 25[label="FiniteMap.filterFM yuz3 yuz43",fontsize=16,color="magenta"];25 -> 28[label="",style="dashed", color="magenta", weight=3]; 52.97/33.38 23[label="FiniteMap.mkVBalBranch yuz40 yuz41 yuz7 yuz6",fontsize=16,color="burlywood",shape="triangle"];41074[label="yuz7/FiniteMap.EmptyFM",fontsize=10,color="white",style="solid",shape="box"];23 -> 41074[label="",style="solid", color="burlywood", weight=9]; 52.97/33.38 41074 -> 29[label="",style="solid", color="burlywood", weight=3]; 52.97/33.38 41075[label="yuz7/FiniteMap.Branch yuz70 yuz71 yuz72 yuz73 yuz74",fontsize=10,color="white",style="solid",shape="box"];23 -> 41075[label="",style="solid", color="burlywood", weight=9]; 52.97/33.38 41075 -> 30[label="",style="solid", color="burlywood", weight=3]; 52.97/33.38 26 -> 31[label="",style="dashed", color="red", weight=0]; 52.97/33.38 26[label="FiniteMap.glueVBal (FiniteMap.filterFM yuz3 yuz43) (FiniteMap.filterFM yuz3 yuz44)",fontsize=16,color="magenta"];26 -> 32[label="",style="dashed", color="magenta", weight=3]; 52.97/33.38 26 -> 33[label="",style="dashed", color="magenta", weight=3]; 52.97/33.38 27[label="yuz44",fontsize=16,color="green",shape="box"];28[label="yuz43",fontsize=16,color="green",shape="box"];29[label="FiniteMap.mkVBalBranch yuz40 yuz41 FiniteMap.EmptyFM yuz6",fontsize=16,color="black",shape="box"];29 -> 34[label="",style="solid", color="black", weight=3]; 52.97/33.38 30[label="FiniteMap.mkVBalBranch yuz40 yuz41 (FiniteMap.Branch yuz70 yuz71 yuz72 yuz73 yuz74) yuz6",fontsize=16,color="burlywood",shape="box"];41076[label="yuz6/FiniteMap.EmptyFM",fontsize=10,color="white",style="solid",shape="box"];30 -> 41076[label="",style="solid", color="burlywood", weight=9]; 52.97/33.38 41076 -> 35[label="",style="solid", color="burlywood", weight=3]; 52.97/33.38 41077[label="yuz6/FiniteMap.Branch yuz60 yuz61 yuz62 yuz63 yuz64",fontsize=10,color="white",style="solid",shape="box"];30 -> 41077[label="",style="solid", color="burlywood", weight=9]; 52.97/33.38 41077 -> 36[label="",style="solid", color="burlywood", weight=3]; 52.97/33.38 32 -> 4[label="",style="dashed", color="red", weight=0]; 52.97/33.38 32[label="FiniteMap.filterFM yuz3 yuz44",fontsize=16,color="magenta"];32 -> 37[label="",style="dashed", color="magenta", weight=3]; 52.97/33.38 33 -> 4[label="",style="dashed", color="red", weight=0]; 52.97/33.38 33[label="FiniteMap.filterFM yuz3 yuz43",fontsize=16,color="magenta"];33 -> 38[label="",style="dashed", color="magenta", weight=3]; 52.97/33.38 31[label="FiniteMap.glueVBal yuz9 yuz8",fontsize=16,color="burlywood",shape="triangle"];41078[label="yuz9/FiniteMap.EmptyFM",fontsize=10,color="white",style="solid",shape="box"];31 -> 41078[label="",style="solid", color="burlywood", weight=9]; 52.97/33.38 41078 -> 39[label="",style="solid", color="burlywood", weight=3]; 52.97/33.38 41079[label="yuz9/FiniteMap.Branch yuz90 yuz91 yuz92 yuz93 yuz94",fontsize=10,color="white",style="solid",shape="box"];31 -> 41079[label="",style="solid", color="burlywood", weight=9]; 52.97/33.38 41079 -> 40[label="",style="solid", color="burlywood", weight=3]; 52.97/33.38 34[label="FiniteMap.mkVBalBranch5 yuz40 yuz41 FiniteMap.EmptyFM yuz6",fontsize=16,color="black",shape="box"];34 -> 41[label="",style="solid", color="black", weight=3]; 52.97/33.38 35[label="FiniteMap.mkVBalBranch yuz40 yuz41 (FiniteMap.Branch yuz70 yuz71 yuz72 yuz73 yuz74) FiniteMap.EmptyFM",fontsize=16,color="black",shape="box"];35 -> 42[label="",style="solid", color="black", weight=3]; 52.97/33.38 36[label="FiniteMap.mkVBalBranch yuz40 yuz41 (FiniteMap.Branch yuz70 yuz71 yuz72 yuz73 yuz74) (FiniteMap.Branch yuz60 yuz61 yuz62 yuz63 yuz64)",fontsize=16,color="black",shape="box"];36 -> 43[label="",style="solid", color="black", weight=3]; 52.97/33.38 37[label="yuz44",fontsize=16,color="green",shape="box"];38[label="yuz43",fontsize=16,color="green",shape="box"];39[label="FiniteMap.glueVBal FiniteMap.EmptyFM yuz8",fontsize=16,color="black",shape="box"];39 -> 44[label="",style="solid", color="black", weight=3]; 52.97/33.38 40[label="FiniteMap.glueVBal (FiniteMap.Branch yuz90 yuz91 yuz92 yuz93 yuz94) yuz8",fontsize=16,color="burlywood",shape="box"];41080[label="yuz8/FiniteMap.EmptyFM",fontsize=10,color="white",style="solid",shape="box"];40 -> 41080[label="",style="solid", color="burlywood", weight=9]; 52.97/33.38 41080 -> 45[label="",style="solid", color="burlywood", weight=3]; 52.97/33.38 41081[label="yuz8/FiniteMap.Branch yuz80 yuz81 yuz82 yuz83 yuz84",fontsize=10,color="white",style="solid",shape="box"];40 -> 41081[label="",style="solid", color="burlywood", weight=9]; 52.97/33.38 41081 -> 46[label="",style="solid", color="burlywood", weight=3]; 52.97/33.38 41[label="FiniteMap.addToFM yuz6 yuz40 yuz41",fontsize=16,color="black",shape="triangle"];41 -> 47[label="",style="solid", color="black", weight=3]; 52.97/33.38 42[label="FiniteMap.mkVBalBranch4 yuz40 yuz41 (FiniteMap.Branch yuz70 yuz71 yuz72 yuz73 yuz74) FiniteMap.EmptyFM",fontsize=16,color="black",shape="box"];42 -> 48[label="",style="solid", color="black", weight=3]; 52.97/33.38 43[label="FiniteMap.mkVBalBranch3 yuz40 yuz41 (FiniteMap.Branch yuz70 yuz71 yuz72 yuz73 yuz74) (FiniteMap.Branch yuz60 yuz61 yuz62 yuz63 yuz64)",fontsize=16,color="black",shape="box"];43 -> 49[label="",style="solid", color="black", weight=3]; 52.97/33.38 44[label="FiniteMap.glueVBal5 FiniteMap.EmptyFM yuz8",fontsize=16,color="black",shape="box"];44 -> 50[label="",style="solid", color="black", weight=3]; 52.97/33.38 45[label="FiniteMap.glueVBal (FiniteMap.Branch yuz90 yuz91 yuz92 yuz93 yuz94) FiniteMap.EmptyFM",fontsize=16,color="black",shape="box"];45 -> 51[label="",style="solid", color="black", weight=3]; 52.97/33.38 46[label="FiniteMap.glueVBal (FiniteMap.Branch yuz90 yuz91 yuz92 yuz93 yuz94) (FiniteMap.Branch yuz80 yuz81 yuz82 yuz83 yuz84)",fontsize=16,color="black",shape="box"];46 -> 52[label="",style="solid", color="black", weight=3]; 52.97/33.38 47[label="FiniteMap.addToFM_C FiniteMap.addToFM0 yuz6 yuz40 yuz41",fontsize=16,color="burlywood",shape="triangle"];41082[label="yuz6/FiniteMap.EmptyFM",fontsize=10,color="white",style="solid",shape="box"];47 -> 41082[label="",style="solid", color="burlywood", weight=9]; 52.97/33.38 41082 -> 53[label="",style="solid", color="burlywood", weight=3]; 52.97/33.38 41083[label="yuz6/FiniteMap.Branch yuz60 yuz61 yuz62 yuz63 yuz64",fontsize=10,color="white",style="solid",shape="box"];47 -> 41083[label="",style="solid", color="burlywood", weight=9]; 52.97/33.38 41083 -> 54[label="",style="solid", color="burlywood", weight=3]; 52.97/33.38 48 -> 41[label="",style="dashed", color="red", weight=0]; 52.97/33.38 48[label="FiniteMap.addToFM (FiniteMap.Branch yuz70 yuz71 yuz72 yuz73 yuz74) yuz40 yuz41",fontsize=16,color="magenta"];48 -> 55[label="",style="dashed", color="magenta", weight=3]; 52.97/33.38 49 -> 19941[label="",style="dashed", color="red", weight=0]; 52.97/33.38 49[label="FiniteMap.mkVBalBranch3MkVBalBranch2 yuz70 yuz71 yuz72 yuz73 yuz74 yuz60 yuz61 yuz62 yuz63 yuz64 yuz40 yuz41 yuz70 yuz71 yuz72 yuz73 yuz74 yuz60 yuz61 yuz62 yuz63 yuz64 (FiniteMap.sIZE_RATIO * FiniteMap.mkVBalBranch3Size_l yuz70 yuz71 yuz72 yuz73 yuz74 yuz60 yuz61 yuz62 yuz63 yuz64 < FiniteMap.mkVBalBranch3Size_r yuz70 yuz71 yuz72 yuz73 yuz74 yuz60 yuz61 yuz62 yuz63 yuz64)",fontsize=16,color="magenta"];49 -> 19942[label="",style="dashed", color="magenta", weight=3]; 52.97/33.38 49 -> 19943[label="",style="dashed", color="magenta", weight=3]; 52.97/33.38 49 -> 19944[label="",style="dashed", color="magenta", weight=3]; 52.97/33.38 49 -> 19945[label="",style="dashed", color="magenta", weight=3]; 52.97/33.38 49 -> 19946[label="",style="dashed", color="magenta", weight=3]; 52.97/33.38 49 -> 19947[label="",style="dashed", color="magenta", weight=3]; 52.97/33.38 49 -> 19948[label="",style="dashed", color="magenta", weight=3]; 52.97/33.38 49 -> 19949[label="",style="dashed", color="magenta", weight=3]; 52.97/33.38 49 -> 19950[label="",style="dashed", color="magenta", weight=3]; 52.97/33.38 49 -> 19951[label="",style="dashed", color="magenta", weight=3]; 52.97/33.38 49 -> 19952[label="",style="dashed", color="magenta", weight=3]; 52.97/33.38 49 -> 19953[label="",style="dashed", color="magenta", weight=3]; 52.97/33.38 49 -> 19954[label="",style="dashed", color="magenta", weight=3]; 52.97/33.38 50[label="yuz8",fontsize=16,color="green",shape="box"];51[label="FiniteMap.glueVBal4 (FiniteMap.Branch yuz90 yuz91 yuz92 yuz93 yuz94) FiniteMap.EmptyFM",fontsize=16,color="black",shape="box"];51 -> 57[label="",style="solid", color="black", weight=3]; 52.97/33.38 52[label="FiniteMap.glueVBal3 (FiniteMap.Branch yuz90 yuz91 yuz92 yuz93 yuz94) (FiniteMap.Branch yuz80 yuz81 yuz82 yuz83 yuz84)",fontsize=16,color="black",shape="box"];52 -> 58[label="",style="solid", color="black", weight=3]; 52.97/33.38 53[label="FiniteMap.addToFM_C FiniteMap.addToFM0 FiniteMap.EmptyFM yuz40 yuz41",fontsize=16,color="black",shape="box"];53 -> 59[label="",style="solid", color="black", weight=3]; 52.97/33.38 54[label="FiniteMap.addToFM_C FiniteMap.addToFM0 (FiniteMap.Branch yuz60 yuz61 yuz62 yuz63 yuz64) yuz40 yuz41",fontsize=16,color="black",shape="box"];54 -> 60[label="",style="solid", color="black", weight=3]; 52.97/33.38 55[label="FiniteMap.Branch yuz70 yuz71 yuz72 yuz73 yuz74",fontsize=16,color="green",shape="box"];19942[label="yuz40",fontsize=16,color="green",shape="box"];19943[label="yuz73",fontsize=16,color="green",shape="box"];19944[label="yuz70",fontsize=16,color="green",shape="box"];19945[label="yuz60",fontsize=16,color="green",shape="box"];19946[label="yuz62",fontsize=16,color="green",shape="box"];19947[label="yuz71",fontsize=16,color="green",shape="box"];19948[label="yuz41",fontsize=16,color="green",shape="box"];19949[label="yuz64",fontsize=16,color="green",shape="box"];19950[label="yuz63",fontsize=16,color="green",shape="box"];19951 -> 13680[label="",style="dashed", color="red", weight=0]; 52.97/33.38 19951[label="FiniteMap.sIZE_RATIO * FiniteMap.mkVBalBranch3Size_l yuz70 yuz71 yuz72 yuz73 yuz74 yuz60 yuz61 yuz62 yuz63 yuz64 < FiniteMap.mkVBalBranch3Size_r yuz70 yuz71 yuz72 yuz73 yuz74 yuz60 yuz61 yuz62 yuz63 yuz64",fontsize=16,color="magenta"];19951 -> 21132[label="",style="dashed", color="magenta", weight=3]; 52.97/33.38 19951 -> 21133[label="",style="dashed", color="magenta", weight=3]; 52.97/33.38 19952[label="yuz72",fontsize=16,color="green",shape="box"];19953[label="yuz61",fontsize=16,color="green",shape="box"];19954[label="yuz74",fontsize=16,color="green",shape="box"];19941[label="FiniteMap.mkVBalBranch3MkVBalBranch2 yuz12340 yuz12341 yuz12342 yuz12343 yuz12344 yuz12380 yuz12381 yuz12382 yuz12383 yuz12384 yuz1240 yuz1241 yuz12340 yuz12341 yuz12342 yuz12343 yuz12344 yuz12380 yuz12381 yuz12382 yuz12383 yuz12384 yuz1366",fontsize=16,color="burlywood",shape="triangle"];41084[label="yuz1366/False",fontsize=10,color="white",style="solid",shape="box"];19941 -> 41084[label="",style="solid", color="burlywood", weight=9]; 52.97/33.38 41084 -> 21134[label="",style="solid", color="burlywood", weight=3]; 52.97/33.38 41085[label="yuz1366/True",fontsize=10,color="white",style="solid",shape="box"];19941 -> 41085[label="",style="solid", color="burlywood", weight=9]; 52.97/33.38 41085 -> 21135[label="",style="solid", color="burlywood", weight=3]; 52.97/33.38 57[label="FiniteMap.Branch yuz90 yuz91 yuz92 yuz93 yuz94",fontsize=16,color="green",shape="box"];58 -> 38642[label="",style="dashed", color="red", weight=0]; 52.97/33.38 58[label="FiniteMap.glueVBal3GlueVBal2 yuz90 yuz91 yuz92 yuz93 yuz94 yuz80 yuz81 yuz82 yuz83 yuz84 yuz90 yuz91 yuz92 yuz93 yuz94 yuz80 yuz81 yuz82 yuz83 yuz84 (FiniteMap.sIZE_RATIO * FiniteMap.glueVBal3Size_l yuz90 yuz91 yuz92 yuz93 yuz94 yuz80 yuz81 yuz82 yuz83 yuz84 < FiniteMap.glueVBal3Size_r yuz90 yuz91 yuz92 yuz93 yuz94 yuz80 yuz81 yuz82 yuz83 yuz84)",fontsize=16,color="magenta"];58 -> 38643[label="",style="dashed", color="magenta", weight=3]; 52.97/33.38 58 -> 38644[label="",style="dashed", color="magenta", weight=3]; 52.97/33.38 58 -> 38645[label="",style="dashed", color="magenta", weight=3]; 52.97/33.38 58 -> 38646[label="",style="dashed", color="magenta", weight=3]; 52.97/33.38 58 -> 38647[label="",style="dashed", color="magenta", weight=3]; 52.97/33.38 58 -> 38648[label="",style="dashed", color="magenta", weight=3]; 52.97/33.38 58 -> 38649[label="",style="dashed", color="magenta", weight=3]; 52.97/33.38 58 -> 38650[label="",style="dashed", color="magenta", weight=3]; 52.97/33.38 58 -> 38651[label="",style="dashed", color="magenta", weight=3]; 52.97/33.38 58 -> 38652[label="",style="dashed", color="magenta", weight=3]; 52.97/33.38 58 -> 38653[label="",style="dashed", color="magenta", weight=3]; 52.97/33.38 59[label="FiniteMap.addToFM_C4 FiniteMap.addToFM0 FiniteMap.EmptyFM yuz40 yuz41",fontsize=16,color="black",shape="box"];59 -> 63[label="",style="solid", color="black", weight=3]; 52.97/33.38 60[label="FiniteMap.addToFM_C3 FiniteMap.addToFM0 (FiniteMap.Branch yuz60 yuz61 yuz62 yuz63 yuz64) yuz40 yuz41",fontsize=16,color="black",shape="box"];60 -> 64[label="",style="solid", color="black", weight=3]; 52.97/33.38 21132[label="FiniteMap.mkVBalBranch3Size_r yuz70 yuz71 yuz72 yuz73 yuz74 yuz60 yuz61 yuz62 yuz63 yuz64",fontsize=16,color="black",shape="box"];21132 -> 21569[label="",style="solid", color="black", weight=3]; 52.97/33.38 21133 -> 22377[label="",style="dashed", color="red", weight=0]; 52.97/33.38 21133[label="FiniteMap.sIZE_RATIO * FiniteMap.mkVBalBranch3Size_l yuz70 yuz71 yuz72 yuz73 yuz74 yuz60 yuz61 yuz62 yuz63 yuz64",fontsize=16,color="magenta"];21133 -> 22378[label="",style="dashed", color="magenta", weight=3]; 52.97/33.38 13680[label="yuz21 < yuz11",fontsize=16,color="black",shape="triangle"];13680 -> 14637[label="",style="solid", color="black", weight=3]; 52.97/33.38 21134[label="FiniteMap.mkVBalBranch3MkVBalBranch2 yuz12340 yuz12341 yuz12342 yuz12343 yuz12344 yuz12380 yuz12381 yuz12382 yuz12383 yuz12384 yuz1240 yuz1241 yuz12340 yuz12341 yuz12342 yuz12343 yuz12344 yuz12380 yuz12381 yuz12382 yuz12383 yuz12384 False",fontsize=16,color="black",shape="box"];21134 -> 21571[label="",style="solid", color="black", weight=3]; 52.97/33.38 21135[label="FiniteMap.mkVBalBranch3MkVBalBranch2 yuz12340 yuz12341 yuz12342 yuz12343 yuz12344 yuz12380 yuz12381 yuz12382 yuz12383 yuz12384 yuz1240 yuz1241 yuz12340 yuz12341 yuz12342 yuz12343 yuz12344 yuz12380 yuz12381 yuz12382 yuz12383 yuz12384 True",fontsize=16,color="black",shape="box"];21135 -> 21572[label="",style="solid", color="black", weight=3]; 52.97/33.38 38643[label="yuz93",fontsize=16,color="green",shape="box"];38644[label="yuz94",fontsize=16,color="green",shape="box"];38645[label="yuz82",fontsize=16,color="green",shape="box"];38646[label="yuz83",fontsize=16,color="green",shape="box"];38647[label="yuz90",fontsize=16,color="green",shape="box"];38648[label="yuz80",fontsize=16,color="green",shape="box"];38649[label="yuz81",fontsize=16,color="green",shape="box"];38650 -> 13680[label="",style="dashed", color="red", weight=0]; 52.97/33.38 38650[label="FiniteMap.sIZE_RATIO * FiniteMap.glueVBal3Size_l yuz90 yuz91 yuz92 yuz93 yuz94 yuz80 yuz81 yuz82 yuz83 yuz84 < FiniteMap.glueVBal3Size_r yuz90 yuz91 yuz92 yuz93 yuz94 yuz80 yuz81 yuz82 yuz83 yuz84",fontsize=16,color="magenta"];38650 -> 39822[label="",style="dashed", color="magenta", weight=3]; 52.97/33.38 38650 -> 39823[label="",style="dashed", color="magenta", weight=3]; 52.97/33.38 38651[label="yuz92",fontsize=16,color="green",shape="box"];38652[label="yuz84",fontsize=16,color="green",shape="box"];38653[label="yuz91",fontsize=16,color="green",shape="box"];38642[label="FiniteMap.glueVBal3GlueVBal2 yuz300 yuz301 yuz302 yuz303 yuz304 yuz340 yuz341 yuz342 yuz343 yuz344 yuz300 yuz301 yuz302 yuz303 yuz304 yuz340 yuz341 yuz342 yuz343 yuz344 yuz1521",fontsize=16,color="burlywood",shape="triangle"];41086[label="yuz1521/False",fontsize=10,color="white",style="solid",shape="box"];38642 -> 41086[label="",style="solid", color="burlywood", weight=9]; 52.97/33.38 41086 -> 39824[label="",style="solid", color="burlywood", weight=3]; 52.97/33.38 41087[label="yuz1521/True",fontsize=10,color="white",style="solid",shape="box"];38642 -> 41087[label="",style="solid", color="burlywood", weight=9]; 52.97/33.38 41087 -> 39825[label="",style="solid", color="burlywood", weight=3]; 52.97/33.38 63[label="FiniteMap.unitFM yuz40 yuz41",fontsize=16,color="black",shape="triangle"];63 -> 67[label="",style="solid", color="black", weight=3]; 52.97/33.38 64 -> 22405[label="",style="dashed", color="red", weight=0]; 52.97/33.38 64[label="FiniteMap.addToFM_C2 FiniteMap.addToFM0 yuz60 yuz61 yuz62 yuz63 yuz64 yuz40 yuz41 (yuz40 < yuz60)",fontsize=16,color="magenta"];64 -> 22406[label="",style="dashed", color="magenta", weight=3]; 52.97/33.38 64 -> 22407[label="",style="dashed", color="magenta", weight=3]; 52.97/33.38 64 -> 22408[label="",style="dashed", color="magenta", weight=3]; 52.97/33.38 64 -> 22409[label="",style="dashed", color="magenta", weight=3]; 52.97/33.38 64 -> 22410[label="",style="dashed", color="magenta", weight=3]; 52.97/33.38 64 -> 22411[label="",style="dashed", color="magenta", weight=3]; 52.97/33.38 64 -> 22412[label="",style="dashed", color="magenta", weight=3]; 52.97/33.38 64 -> 22413[label="",style="dashed", color="magenta", weight=3]; 52.97/33.38 21569[label="FiniteMap.sizeFM (FiniteMap.Branch yuz60 yuz61 yuz62 yuz63 yuz64)",fontsize=16,color="black",shape="triangle"];21569 -> 21591[label="",style="solid", color="black", weight=3]; 52.97/33.38 22378 -> 21597[label="",style="dashed", color="red", weight=0]; 52.97/33.38 22378[label="FiniteMap.mkVBalBranch3Size_l yuz70 yuz71 yuz72 yuz73 yuz74 yuz60 yuz61 yuz62 yuz63 yuz64",fontsize=16,color="magenta"];22378 -> 22382[label="",style="dashed", color="magenta", weight=3]; 52.97/33.38 22378 -> 22383[label="",style="dashed", color="magenta", weight=3]; 52.97/33.38 22378 -> 22384[label="",style="dashed", color="magenta", weight=3]; 52.97/33.38 22378 -> 22385[label="",style="dashed", color="magenta", weight=3]; 52.97/33.38 22378 -> 22386[label="",style="dashed", color="magenta", weight=3]; 52.97/33.38 22378 -> 22387[label="",style="dashed", color="magenta", weight=3]; 52.97/33.38 22378 -> 22388[label="",style="dashed", color="magenta", weight=3]; 52.97/33.38 22378 -> 22389[label="",style="dashed", color="magenta", weight=3]; 52.97/33.38 22378 -> 22390[label="",style="dashed", color="magenta", weight=3]; 52.97/33.38 22378 -> 22391[label="",style="dashed", color="magenta", weight=3]; 52.97/33.38 22377[label="FiniteMap.sIZE_RATIO * yuz1425",fontsize=16,color="black",shape="triangle"];22377 -> 22392[label="",style="solid", color="black", weight=3]; 52.97/33.38 14637 -> 38331[label="",style="dashed", color="red", weight=0]; 52.97/33.38 14637[label="compare yuz21 yuz11 == LT",fontsize=16,color="magenta"];14637 -> 38332[label="",style="dashed", color="magenta", weight=3]; 52.97/33.38 21571 -> 21593[label="",style="dashed", color="red", weight=0]; 52.97/33.38 21571[label="FiniteMap.mkVBalBranch3MkVBalBranch1 yuz12340 yuz12341 yuz12342 yuz12343 yuz12344 yuz12380 yuz12381 yuz12382 yuz12383 yuz12384 yuz1240 yuz1241 yuz12340 yuz12341 yuz12342 yuz12343 yuz12344 yuz12380 yuz12381 yuz12382 yuz12383 yuz12384 (FiniteMap.sIZE_RATIO * FiniteMap.mkVBalBranch3Size_r yuz12340 yuz12341 yuz12342 yuz12343 yuz12344 yuz12380 yuz12381 yuz12382 yuz12383 yuz12384 < FiniteMap.mkVBalBranch3Size_l yuz12340 yuz12341 yuz12342 yuz12343 yuz12344 yuz12380 yuz12381 yuz12382 yuz12383 yuz12384)",fontsize=16,color="magenta"];21571 -> 21594[label="",style="dashed", color="magenta", weight=3]; 52.97/33.38 21572 -> 40155[label="",style="dashed", color="red", weight=0]; 52.97/33.38 21572[label="FiniteMap.mkBalBranch yuz12380 yuz12381 (FiniteMap.mkVBalBranch yuz1240 yuz1241 (FiniteMap.Branch yuz12340 yuz12341 yuz12342 yuz12343 yuz12344) yuz12383) yuz12384",fontsize=16,color="magenta"];21572 -> 40156[label="",style="dashed", color="magenta", weight=3]; 52.97/33.38 21572 -> 40157[label="",style="dashed", color="magenta", weight=3]; 52.97/33.38 21572 -> 40158[label="",style="dashed", color="magenta", weight=3]; 52.97/33.38 21572 -> 40159[label="",style="dashed", color="magenta", weight=3]; 52.97/33.38 39822[label="FiniteMap.glueVBal3Size_r yuz90 yuz91 yuz92 yuz93 yuz94 yuz80 yuz81 yuz82 yuz83 yuz84",fontsize=16,color="black",shape="box"];39822 -> 39835[label="",style="solid", color="black", weight=3]; 52.97/33.38 39823 -> 37634[label="",style="dashed", color="red", weight=0]; 52.97/33.38 39823[label="FiniteMap.sIZE_RATIO * FiniteMap.glueVBal3Size_l yuz90 yuz91 yuz92 yuz93 yuz94 yuz80 yuz81 yuz82 yuz83 yuz84",fontsize=16,color="magenta"];39823 -> 39836[label="",style="dashed", color="magenta", weight=3]; 52.97/33.38 39823 -> 39837[label="",style="dashed", color="magenta", weight=3]; 52.97/33.38 39824[label="FiniteMap.glueVBal3GlueVBal2 yuz300 yuz301 yuz302 yuz303 yuz304 yuz340 yuz341 yuz342 yuz343 yuz344 yuz300 yuz301 yuz302 yuz303 yuz304 yuz340 yuz341 yuz342 yuz343 yuz344 False",fontsize=16,color="black",shape="box"];39824 -> 39838[label="",style="solid", color="black", weight=3]; 52.97/33.38 39825[label="FiniteMap.glueVBal3GlueVBal2 yuz300 yuz301 yuz302 yuz303 yuz304 yuz340 yuz341 yuz342 yuz343 yuz344 yuz300 yuz301 yuz302 yuz303 yuz304 yuz340 yuz341 yuz342 yuz343 yuz344 True",fontsize=16,color="black",shape="box"];39825 -> 39839[label="",style="solid", color="black", weight=3]; 52.97/33.38 67[label="FiniteMap.Branch yuz40 yuz41 (Pos (Succ Zero)) FiniteMap.emptyFM FiniteMap.emptyFM",fontsize=16,color="green",shape="box"];67 -> 71[label="",style="dashed", color="green", weight=3]; 52.97/33.38 67 -> 72[label="",style="dashed", color="green", weight=3]; 52.97/33.38 22406[label="yuz60",fontsize=16,color="green",shape="box"];22407[label="yuz40",fontsize=16,color="green",shape="box"];22408[label="yuz61",fontsize=16,color="green",shape="box"];22409[label="yuz62",fontsize=16,color="green",shape="box"];22410[label="yuz63",fontsize=16,color="green",shape="box"];22411[label="yuz64",fontsize=16,color="green",shape="box"];22412[label="yuz40 < yuz60",fontsize=16,color="black",shape="box"];22412 -> 37414[label="",style="solid", color="black", weight=3]; 52.97/33.38 22413[label="yuz41",fontsize=16,color="green",shape="box"];22405[label="FiniteMap.addToFM_C2 FiniteMap.addToFM0 yuz1435 yuz1436 yuz1437 yuz1438 yuz1439 yuz1440 yuz1441 yuz1442",fontsize=16,color="burlywood",shape="triangle"];41088[label="yuz1442/False",fontsize=10,color="white",style="solid",shape="box"];22405 -> 41088[label="",style="solid", color="burlywood", weight=9]; 52.97/33.38 41088 -> 37415[label="",style="solid", color="burlywood", weight=3]; 52.97/33.38 41089[label="yuz1442/True",fontsize=10,color="white",style="solid",shape="box"];22405 -> 41089[label="",style="solid", color="burlywood", weight=9]; 52.97/33.38 41089 -> 37416[label="",style="solid", color="burlywood", weight=3]; 52.97/33.38 21591[label="yuz62",fontsize=16,color="green",shape="box"];22382[label="yuz64",fontsize=16,color="green",shape="box"];22383[label="yuz73",fontsize=16,color="green",shape="box"];22384[label="yuz70",fontsize=16,color="green",shape="box"];22385[label="yuz63",fontsize=16,color="green",shape="box"];22386[label="yuz60",fontsize=16,color="green",shape="box"];22387[label="yuz62",fontsize=16,color="green",shape="box"];22388[label="yuz71",fontsize=16,color="green",shape="box"];22389[label="yuz72",fontsize=16,color="green",shape="box"];22390[label="yuz61",fontsize=16,color="green",shape="box"];22391[label="yuz74",fontsize=16,color="green",shape="box"];21597[label="FiniteMap.mkVBalBranch3Size_l yuz12340 yuz12341 yuz12342 yuz12343 yuz12344 yuz12380 yuz12381 yuz12382 yuz12383 yuz12384",fontsize=16,color="black",shape="triangle"];21597 -> 21617[label="",style="solid", color="black", weight=3]; 52.97/33.38 22392[label="primMulInt FiniteMap.sIZE_RATIO yuz1425",fontsize=16,color="black",shape="box"];22392 -> 37417[label="",style="solid", color="black", weight=3]; 52.97/33.38 38332 -> 37784[label="",style="dashed", color="red", weight=0]; 52.97/33.38 38332[label="compare yuz21 yuz11",fontsize=16,color="magenta"];38332 -> 38391[label="",style="dashed", color="magenta", weight=3]; 52.97/33.38 38332 -> 38392[label="",style="dashed", color="magenta", weight=3]; 52.97/33.38 38331[label="yuz1502 == LT",fontsize=16,color="burlywood",shape="triangle"];41090[label="yuz1502/LT",fontsize=10,color="white",style="solid",shape="box"];38331 -> 41090[label="",style="solid", color="burlywood", weight=9]; 52.97/33.38 41090 -> 38393[label="",style="solid", color="burlywood", weight=3]; 52.97/33.38 41091[label="yuz1502/EQ",fontsize=10,color="white",style="solid",shape="box"];38331 -> 41091[label="",style="solid", color="burlywood", weight=9]; 52.97/33.38 41091 -> 38394[label="",style="solid", color="burlywood", weight=3]; 52.97/33.38 41092[label="yuz1502/GT",fontsize=10,color="white",style="solid",shape="box"];38331 -> 41092[label="",style="solid", color="burlywood", weight=9]; 52.97/33.38 41092 -> 38395[label="",style="solid", color="burlywood", weight=3]; 52.97/33.38 21594 -> 13680[label="",style="dashed", color="red", weight=0]; 52.97/33.38 21594[label="FiniteMap.sIZE_RATIO * FiniteMap.mkVBalBranch3Size_r yuz12340 yuz12341 yuz12342 yuz12343 yuz12344 yuz12380 yuz12381 yuz12382 yuz12383 yuz12384 < FiniteMap.mkVBalBranch3Size_l yuz12340 yuz12341 yuz12342 yuz12343 yuz12344 yuz12380 yuz12381 yuz12382 yuz12383 yuz12384",fontsize=16,color="magenta"];21594 -> 21597[label="",style="dashed", color="magenta", weight=3]; 52.97/33.38 21594 -> 21598[label="",style="dashed", color="magenta", weight=3]; 52.97/33.38 21593[label="FiniteMap.mkVBalBranch3MkVBalBranch1 yuz12340 yuz12341 yuz12342 yuz12343 yuz12344 yuz12380 yuz12381 yuz12382 yuz12383 yuz12384 yuz1240 yuz1241 yuz12340 yuz12341 yuz12342 yuz12343 yuz12344 yuz12380 yuz12381 yuz12382 yuz12383 yuz12384 yuz1369",fontsize=16,color="burlywood",shape="triangle"];41093[label="yuz1369/False",fontsize=10,color="white",style="solid",shape="box"];21593 -> 41093[label="",style="solid", color="burlywood", weight=9]; 52.97/33.38 41093 -> 21599[label="",style="solid", color="burlywood", weight=3]; 52.97/33.38 41094[label="yuz1369/True",fontsize=10,color="white",style="solid",shape="box"];21593 -> 41094[label="",style="solid", color="burlywood", weight=9]; 52.97/33.38 41094 -> 21600[label="",style="solid", color="burlywood", weight=3]; 52.97/33.38 40156[label="FiniteMap.mkVBalBranch yuz1240 yuz1241 (FiniteMap.Branch yuz12340 yuz12341 yuz12342 yuz12343 yuz12344) yuz12383",fontsize=16,color="burlywood",shape="box"];41095[label="yuz12383/FiniteMap.EmptyFM",fontsize=10,color="white",style="solid",shape="box"];40156 -> 41095[label="",style="solid", color="burlywood", weight=9]; 52.97/33.38 41095 -> 40186[label="",style="solid", color="burlywood", weight=3]; 52.97/33.38 41096[label="yuz12383/FiniteMap.Branch yuz123830 yuz123831 yuz123832 yuz123833 yuz123834",fontsize=10,color="white",style="solid",shape="box"];40156 -> 41096[label="",style="solid", color="burlywood", weight=9]; 52.97/33.38 41096 -> 40187[label="",style="solid", color="burlywood", weight=3]; 52.97/33.38 40157[label="yuz12380",fontsize=16,color="green",shape="box"];40158[label="yuz12381",fontsize=16,color="green",shape="box"];40159[label="yuz12384",fontsize=16,color="green",shape="box"];40155[label="FiniteMap.mkBalBranch yuz340 yuz341 yuz1565 yuz344",fontsize=16,color="black",shape="triangle"];40155 -> 40188[label="",style="solid", color="black", weight=3]; 52.97/33.38 39835 -> 37455[label="",style="dashed", color="red", weight=0]; 52.97/33.38 39835[label="FiniteMap.sizeFM (FiniteMap.Branch yuz80 yuz81 yuz82 yuz83 yuz84)",fontsize=16,color="magenta"];39835 -> 39853[label="",style="dashed", color="magenta", weight=3]; 52.97/33.38 39836 -> 38005[label="",style="dashed", color="red", weight=0]; 52.97/33.38 39836[label="FiniteMap.sIZE_RATIO",fontsize=16,color="magenta"];39837[label="FiniteMap.glueVBal3Size_l yuz90 yuz91 yuz92 yuz93 yuz94 yuz80 yuz81 yuz82 yuz83 yuz84",fontsize=16,color="black",shape="box"];39837 -> 39854[label="",style="solid", color="black", weight=3]; 52.97/33.38 37634[label="yuz600 * yuz401",fontsize=16,color="black",shape="triangle"];37634 -> 37705[label="",style="solid", color="black", weight=3]; 52.97/33.38 39838 -> 39855[label="",style="dashed", color="red", weight=0]; 52.97/33.38 39838[label="FiniteMap.glueVBal3GlueVBal1 yuz300 yuz301 yuz302 yuz303 yuz304 yuz340 yuz341 yuz342 yuz343 yuz344 yuz300 yuz301 yuz302 yuz303 yuz304 yuz340 yuz341 yuz342 yuz343 yuz344 (FiniteMap.sIZE_RATIO * FiniteMap.glueVBal3Size_r yuz300 yuz301 yuz302 yuz303 yuz304 yuz340 yuz341 yuz342 yuz343 yuz344 < FiniteMap.glueVBal3Size_l yuz300 yuz301 yuz302 yuz303 yuz304 yuz340 yuz341 yuz342 yuz343 yuz344)",fontsize=16,color="magenta"];39838 -> 39856[label="",style="dashed", color="magenta", weight=3]; 52.97/33.38 39839 -> 40155[label="",style="dashed", color="red", weight=0]; 52.97/33.38 39839[label="FiniteMap.mkBalBranch yuz340 yuz341 (FiniteMap.glueVBal (FiniteMap.Branch yuz300 yuz301 yuz302 yuz303 yuz304) yuz343) yuz344",fontsize=16,color="magenta"];39839 -> 40160[label="",style="dashed", color="magenta", weight=3]; 52.97/33.38 71 -> 9[label="",style="dashed", color="red", weight=0]; 52.97/33.38 71[label="FiniteMap.emptyFM",fontsize=16,color="magenta"];72 -> 9[label="",style="dashed", color="red", weight=0]; 52.97/33.38 72[label="FiniteMap.emptyFM",fontsize=16,color="magenta"];37414 -> 38331[label="",style="dashed", color="red", weight=0]; 52.97/33.38 37414[label="compare yuz40 yuz60 == LT",fontsize=16,color="magenta"];37414 -> 38334[label="",style="dashed", color="magenta", weight=3]; 52.97/33.38 37415[label="FiniteMap.addToFM_C2 FiniteMap.addToFM0 yuz1435 yuz1436 yuz1437 yuz1438 yuz1439 yuz1440 yuz1441 False",fontsize=16,color="black",shape="box"];37415 -> 37505[label="",style="solid", color="black", weight=3]; 52.97/33.38 37416[label="FiniteMap.addToFM_C2 FiniteMap.addToFM0 yuz1435 yuz1436 yuz1437 yuz1438 yuz1439 yuz1440 yuz1441 True",fontsize=16,color="black",shape="box"];37416 -> 37506[label="",style="solid", color="black", weight=3]; 52.97/33.38 21617[label="FiniteMap.sizeFM (FiniteMap.Branch yuz12340 yuz12341 yuz12342 yuz12343 yuz12344)",fontsize=16,color="black",shape="triangle"];21617 -> 21630[label="",style="solid", color="black", weight=3]; 52.97/33.38 37417[label="primMulInt (Pos (Succ (Succ (Succ (Succ (Succ Zero)))))) yuz1425",fontsize=16,color="burlywood",shape="box"];41097[label="yuz1425/Pos yuz14250",fontsize=10,color="white",style="solid",shape="box"];37417 -> 41097[label="",style="solid", color="burlywood", weight=9]; 52.97/33.38 41097 -> 37507[label="",style="solid", color="burlywood", weight=3]; 52.97/33.38 41098[label="yuz1425/Neg yuz14250",fontsize=10,color="white",style="solid",shape="box"];37417 -> 41098[label="",style="solid", color="burlywood", weight=9]; 52.97/33.38 41098 -> 37508[label="",style="solid", color="burlywood", weight=3]; 52.97/33.38 38391[label="yuz11",fontsize=16,color="green",shape="box"];38392[label="yuz21",fontsize=16,color="green",shape="box"];37784[label="compare yuz1440 yuz1435",fontsize=16,color="black",shape="triangle"];37784 -> 37803[label="",style="solid", color="black", weight=3]; 52.97/33.38 38393[label="LT == LT",fontsize=16,color="black",shape="box"];38393 -> 38400[label="",style="solid", color="black", weight=3]; 52.97/33.38 38394[label="EQ == LT",fontsize=16,color="black",shape="box"];38394 -> 38401[label="",style="solid", color="black", weight=3]; 52.97/33.38 38395[label="GT == LT",fontsize=16,color="black",shape="box"];38395 -> 38402[label="",style="solid", color="black", weight=3]; 52.97/33.38 21598 -> 22377[label="",style="dashed", color="red", weight=0]; 52.97/33.38 21598[label="FiniteMap.sIZE_RATIO * FiniteMap.mkVBalBranch3Size_r yuz12340 yuz12341 yuz12342 yuz12343 yuz12344 yuz12380 yuz12381 yuz12382 yuz12383 yuz12384",fontsize=16,color="magenta"];21598 -> 22379[label="",style="dashed", color="magenta", weight=3]; 52.97/33.38 21599[label="FiniteMap.mkVBalBranch3MkVBalBranch1 yuz12340 yuz12341 yuz12342 yuz12343 yuz12344 yuz12380 yuz12381 yuz12382 yuz12383 yuz12384 yuz1240 yuz1241 yuz12340 yuz12341 yuz12342 yuz12343 yuz12344 yuz12380 yuz12381 yuz12382 yuz12383 yuz12384 False",fontsize=16,color="black",shape="box"];21599 -> 21619[label="",style="solid", color="black", weight=3]; 52.97/33.38 21600[label="FiniteMap.mkVBalBranch3MkVBalBranch1 yuz12340 yuz12341 yuz12342 yuz12343 yuz12344 yuz12380 yuz12381 yuz12382 yuz12383 yuz12384 yuz1240 yuz1241 yuz12340 yuz12341 yuz12342 yuz12343 yuz12344 yuz12380 yuz12381 yuz12382 yuz12383 yuz12384 True",fontsize=16,color="black",shape="box"];21600 -> 21620[label="",style="solid", color="black", weight=3]; 52.97/33.38 40186[label="FiniteMap.mkVBalBranch yuz1240 yuz1241 (FiniteMap.Branch yuz12340 yuz12341 yuz12342 yuz12343 yuz12344) FiniteMap.EmptyFM",fontsize=16,color="black",shape="box"];40186 -> 40208[label="",style="solid", color="black", weight=3]; 52.97/33.38 40187[label="FiniteMap.mkVBalBranch yuz1240 yuz1241 (FiniteMap.Branch yuz12340 yuz12341 yuz12342 yuz12343 yuz12344) (FiniteMap.Branch yuz123830 yuz123831 yuz123832 yuz123833 yuz123834)",fontsize=16,color="black",shape="box"];40187 -> 40209[label="",style="solid", color="black", weight=3]; 52.97/33.38 40188[label="FiniteMap.mkBalBranch6 yuz340 yuz341 yuz1565 yuz344",fontsize=16,color="black",shape="box"];40188 -> 40210[label="",style="solid", color="black", weight=3]; 52.97/33.38 39853[label="FiniteMap.Branch yuz80 yuz81 yuz82 yuz83 yuz84",fontsize=16,color="green",shape="box"];37455[label="FiniteMap.sizeFM yuz1298",fontsize=16,color="burlywood",shape="triangle"];41099[label="yuz1298/FiniteMap.EmptyFM",fontsize=10,color="white",style="solid",shape="box"];37455 -> 41099[label="",style="solid", color="burlywood", weight=9]; 52.97/33.38 41099 -> 37543[label="",style="solid", color="burlywood", weight=3]; 52.97/33.38 41100[label="yuz1298/FiniteMap.Branch yuz12980 yuz12981 yuz12982 yuz12983 yuz12984",fontsize=10,color="white",style="solid",shape="box"];37455 -> 41100[label="",style="solid", color="burlywood", weight=9]; 52.97/33.38 41100 -> 37544[label="",style="solid", color="burlywood", weight=3]; 52.97/33.38 38005[label="FiniteMap.sIZE_RATIO",fontsize=16,color="black",shape="triangle"];38005 -> 38028[label="",style="solid", color="black", weight=3]; 52.97/33.38 39854 -> 37455[label="",style="dashed", color="red", weight=0]; 52.97/33.38 39854[label="FiniteMap.sizeFM (FiniteMap.Branch yuz90 yuz91 yuz92 yuz93 yuz94)",fontsize=16,color="magenta"];39854 -> 39858[label="",style="dashed", color="magenta", weight=3]; 52.97/33.38 37705[label="primMulInt yuz600 yuz401",fontsize=16,color="burlywood",shape="box"];41101[label="yuz600/Pos yuz6000",fontsize=10,color="white",style="solid",shape="box"];37705 -> 41101[label="",style="solid", color="burlywood", weight=9]; 52.97/33.38 41101 -> 37733[label="",style="solid", color="burlywood", weight=3]; 52.97/33.38 41102[label="yuz600/Neg yuz6000",fontsize=10,color="white",style="solid",shape="box"];37705 -> 41102[label="",style="solid", color="burlywood", weight=9]; 52.97/33.38 41102 -> 37734[label="",style="solid", color="burlywood", weight=3]; 52.97/33.38 39856 -> 13680[label="",style="dashed", color="red", weight=0]; 52.97/33.38 39856[label="FiniteMap.sIZE_RATIO * FiniteMap.glueVBal3Size_r yuz300 yuz301 yuz302 yuz303 yuz304 yuz340 yuz341 yuz342 yuz343 yuz344 < FiniteMap.glueVBal3Size_l yuz300 yuz301 yuz302 yuz303 yuz304 yuz340 yuz341 yuz342 yuz343 yuz344",fontsize=16,color="magenta"];39856 -> 39859[label="",style="dashed", color="magenta", weight=3]; 52.97/33.38 39856 -> 39860[label="",style="dashed", color="magenta", weight=3]; 52.97/33.38 39855[label="FiniteMap.glueVBal3GlueVBal1 yuz300 yuz301 yuz302 yuz303 yuz304 yuz340 yuz341 yuz342 yuz343 yuz344 yuz300 yuz301 yuz302 yuz303 yuz304 yuz340 yuz341 yuz342 yuz343 yuz344 yuz1533",fontsize=16,color="burlywood",shape="triangle"];41103[label="yuz1533/False",fontsize=10,color="white",style="solid",shape="box"];39855 -> 41103[label="",style="solid", color="burlywood", weight=9]; 52.97/33.38 41103 -> 39861[label="",style="solid", color="burlywood", weight=3]; 52.97/33.38 41104[label="yuz1533/True",fontsize=10,color="white",style="solid",shape="box"];39855 -> 41104[label="",style="solid", color="burlywood", weight=9]; 52.97/33.38 41104 -> 39862[label="",style="solid", color="burlywood", weight=3]; 52.97/33.38 40160[label="FiniteMap.glueVBal (FiniteMap.Branch yuz300 yuz301 yuz302 yuz303 yuz304) yuz343",fontsize=16,color="burlywood",shape="box"];41105[label="yuz343/FiniteMap.EmptyFM",fontsize=10,color="white",style="solid",shape="box"];40160 -> 41105[label="",style="solid", color="burlywood", weight=9]; 52.97/33.38 41105 -> 40189[label="",style="solid", color="burlywood", weight=3]; 52.97/33.38 41106[label="yuz343/FiniteMap.Branch yuz3430 yuz3431 yuz3432 yuz3433 yuz3434",fontsize=10,color="white",style="solid",shape="box"];40160 -> 41106[label="",style="solid", color="burlywood", weight=9]; 52.97/33.38 41106 -> 40190[label="",style="solid", color="burlywood", weight=3]; 52.97/33.38 38334 -> 37783[label="",style="dashed", color="red", weight=0]; 52.97/33.38 38334[label="compare yuz40 yuz60",fontsize=16,color="magenta"];38334 -> 38396[label="",style="dashed", color="magenta", weight=3]; 52.97/33.38 38334 -> 38397[label="",style="dashed", color="magenta", weight=3]; 52.97/33.38 37505 -> 37591[label="",style="dashed", color="red", weight=0]; 52.97/33.38 37505[label="FiniteMap.addToFM_C1 FiniteMap.addToFM0 yuz1435 yuz1436 yuz1437 yuz1438 yuz1439 yuz1440 yuz1441 (yuz1440 > yuz1435)",fontsize=16,color="magenta"];37505 -> 37592[label="",style="dashed", color="magenta", weight=3]; 52.97/33.38 37505 -> 37593[label="",style="dashed", color="magenta", weight=3]; 52.97/33.38 37505 -> 37594[label="",style="dashed", color="magenta", weight=3]; 52.97/33.38 37505 -> 37595[label="",style="dashed", color="magenta", weight=3]; 52.97/33.38 37505 -> 37596[label="",style="dashed", color="magenta", weight=3]; 52.97/33.38 37505 -> 37597[label="",style="dashed", color="magenta", weight=3]; 52.97/33.38 37505 -> 37598[label="",style="dashed", color="magenta", weight=3]; 52.97/33.38 37505 -> 37599[label="",style="dashed", color="magenta", weight=3]; 52.97/33.38 37506 -> 40155[label="",style="dashed", color="red", weight=0]; 52.97/33.38 37506[label="FiniteMap.mkBalBranch yuz1435 yuz1436 (FiniteMap.addToFM_C FiniteMap.addToFM0 yuz1438 yuz1440 yuz1441) yuz1439",fontsize=16,color="magenta"];37506 -> 40161[label="",style="dashed", color="magenta", weight=3]; 52.97/33.38 37506 -> 40162[label="",style="dashed", color="magenta", weight=3]; 52.97/33.38 37506 -> 40163[label="",style="dashed", color="magenta", weight=3]; 52.97/33.38 37506 -> 40164[label="",style="dashed", color="magenta", weight=3]; 52.97/33.38 21630[label="yuz12342",fontsize=16,color="green",shape="box"];37507[label="primMulInt (Pos (Succ (Succ (Succ (Succ (Succ Zero)))))) (Pos yuz14250)",fontsize=16,color="black",shape="box"];37507 -> 37601[label="",style="solid", color="black", weight=3]; 52.97/33.38 37508[label="primMulInt (Pos (Succ (Succ (Succ (Succ (Succ Zero)))))) (Neg yuz14250)",fontsize=16,color="black",shape="box"];37508 -> 37602[label="",style="solid", color="black", weight=3]; 52.97/33.38 37803[label="primCmpInt yuz1440 yuz1435",fontsize=16,color="burlywood",shape="triangle"];41107[label="yuz1440/Pos yuz14400",fontsize=10,color="white",style="solid",shape="box"];37803 -> 41107[label="",style="solid", color="burlywood", weight=9]; 52.97/33.38 41107 -> 37924[label="",style="solid", color="burlywood", weight=3]; 52.97/33.38 41108[label="yuz1440/Neg yuz14400",fontsize=10,color="white",style="solid",shape="box"];37803 -> 41108[label="",style="solid", color="burlywood", weight=9]; 52.97/33.38 41108 -> 37925[label="",style="solid", color="burlywood", weight=3]; 52.97/33.38 38400[label="True",fontsize=16,color="green",shape="box"];38401[label="False",fontsize=16,color="green",shape="box"];38402[label="False",fontsize=16,color="green",shape="box"];22379 -> 21660[label="",style="dashed", color="red", weight=0]; 52.97/33.38 22379[label="FiniteMap.mkVBalBranch3Size_r yuz12340 yuz12341 yuz12342 yuz12343 yuz12344 yuz12380 yuz12381 yuz12382 yuz12383 yuz12384",fontsize=16,color="magenta"];21619[label="FiniteMap.mkVBalBranch3MkVBalBranch0 yuz12340 yuz12341 yuz12342 yuz12343 yuz12344 yuz12380 yuz12381 yuz12382 yuz12383 yuz12384 yuz1240 yuz1241 yuz12340 yuz12341 yuz12342 yuz12343 yuz12344 yuz12380 yuz12381 yuz12382 yuz12383 yuz12384 otherwise",fontsize=16,color="black",shape="box"];21619 -> 21632[label="",style="solid", color="black", weight=3]; 52.97/33.38 21620 -> 40155[label="",style="dashed", color="red", weight=0]; 52.97/33.38 21620[label="FiniteMap.mkBalBranch yuz12340 yuz12341 yuz12343 (FiniteMap.mkVBalBranch yuz1240 yuz1241 yuz12344 (FiniteMap.Branch yuz12380 yuz12381 yuz12382 yuz12383 yuz12384))",fontsize=16,color="magenta"];21620 -> 40165[label="",style="dashed", color="magenta", weight=3]; 52.97/33.38 21620 -> 40166[label="",style="dashed", color="magenta", weight=3]; 52.97/33.38 21620 -> 40167[label="",style="dashed", color="magenta", weight=3]; 52.97/33.38 21620 -> 40168[label="",style="dashed", color="magenta", weight=3]; 52.97/33.38 40208[label="FiniteMap.mkVBalBranch4 yuz1240 yuz1241 (FiniteMap.Branch yuz12340 yuz12341 yuz12342 yuz12343 yuz12344) FiniteMap.EmptyFM",fontsize=16,color="black",shape="box"];40208 -> 40227[label="",style="solid", color="black", weight=3]; 52.97/33.38 40209[label="FiniteMap.mkVBalBranch3 yuz1240 yuz1241 (FiniteMap.Branch yuz12340 yuz12341 yuz12342 yuz12343 yuz12344) (FiniteMap.Branch yuz123830 yuz123831 yuz123832 yuz123833 yuz123834)",fontsize=16,color="black",shape="triangle"];40209 -> 40228[label="",style="solid", color="black", weight=3]; 52.97/33.38 40210 -> 40229[label="",style="dashed", color="red", weight=0]; 52.97/33.38 40210[label="FiniteMap.mkBalBranch6MkBalBranch5 yuz340 yuz341 yuz1565 yuz344 yuz340 yuz341 yuz1565 yuz344 (FiniteMap.mkBalBranch6Size_l yuz340 yuz341 yuz1565 yuz344 + FiniteMap.mkBalBranch6Size_r yuz340 yuz341 yuz1565 yuz344 < Pos (Succ (Succ Zero)))",fontsize=16,color="magenta"];40210 -> 40230[label="",style="dashed", color="magenta", weight=3]; 52.97/33.38 37543[label="FiniteMap.sizeFM FiniteMap.EmptyFM",fontsize=16,color="black",shape="box"];37543 -> 38065[label="",style="solid", color="black", weight=3]; 52.97/33.38 37544[label="FiniteMap.sizeFM (FiniteMap.Branch yuz12980 yuz12981 yuz12982 yuz12983 yuz12984)",fontsize=16,color="black",shape="box"];37544 -> 38066[label="",style="solid", color="black", weight=3]; 52.97/33.38 38028[label="Pos (Succ (Succ (Succ (Succ (Succ Zero)))))",fontsize=16,color="green",shape="box"];39858[label="FiniteMap.Branch yuz90 yuz91 yuz92 yuz93 yuz94",fontsize=16,color="green",shape="box"];37733[label="primMulInt (Pos yuz6000) yuz401",fontsize=16,color="burlywood",shape="box"];41109[label="yuz401/Pos yuz4010",fontsize=10,color="white",style="solid",shape="box"];37733 -> 41109[label="",style="solid", color="burlywood", weight=9]; 52.97/33.38 41109 -> 37746[label="",style="solid", color="burlywood", weight=3]; 52.97/33.38 41110[label="yuz401/Neg yuz4010",fontsize=10,color="white",style="solid",shape="box"];37733 -> 41110[label="",style="solid", color="burlywood", weight=9]; 52.97/33.38 41110 -> 37747[label="",style="solid", color="burlywood", weight=3]; 52.97/33.38 37734[label="primMulInt (Neg yuz6000) yuz401",fontsize=16,color="burlywood",shape="box"];41111[label="yuz401/Pos yuz4010",fontsize=10,color="white",style="solid",shape="box"];37734 -> 41111[label="",style="solid", color="burlywood", weight=9]; 52.97/33.38 41111 -> 37748[label="",style="solid", color="burlywood", weight=3]; 52.97/33.38 41112[label="yuz401/Neg yuz4010",fontsize=10,color="white",style="solid",shape="box"];37734 -> 41112[label="",style="solid", color="burlywood", weight=9]; 52.97/33.38 41112 -> 37749[label="",style="solid", color="burlywood", weight=3]; 52.97/33.38 39859[label="FiniteMap.glueVBal3Size_l yuz300 yuz301 yuz302 yuz303 yuz304 yuz340 yuz341 yuz342 yuz343 yuz344",fontsize=16,color="black",shape="triangle"];39859 -> 39899[label="",style="solid", color="black", weight=3]; 52.97/33.38 39860 -> 37634[label="",style="dashed", color="red", weight=0]; 52.97/33.38 39860[label="FiniteMap.sIZE_RATIO * FiniteMap.glueVBal3Size_r yuz300 yuz301 yuz302 yuz303 yuz304 yuz340 yuz341 yuz342 yuz343 yuz344",fontsize=16,color="magenta"];39860 -> 39900[label="",style="dashed", color="magenta", weight=3]; 52.97/33.38 39860 -> 39901[label="",style="dashed", color="magenta", weight=3]; 52.97/33.38 39861[label="FiniteMap.glueVBal3GlueVBal1 yuz300 yuz301 yuz302 yuz303 yuz304 yuz340 yuz341 yuz342 yuz343 yuz344 yuz300 yuz301 yuz302 yuz303 yuz304 yuz340 yuz341 yuz342 yuz343 yuz344 False",fontsize=16,color="black",shape="box"];39861 -> 39902[label="",style="solid", color="black", weight=3]; 52.97/33.38 39862[label="FiniteMap.glueVBal3GlueVBal1 yuz300 yuz301 yuz302 yuz303 yuz304 yuz340 yuz341 yuz342 yuz343 yuz344 yuz300 yuz301 yuz302 yuz303 yuz304 yuz340 yuz341 yuz342 yuz343 yuz344 True",fontsize=16,color="black",shape="box"];39862 -> 39903[label="",style="solid", color="black", weight=3]; 52.97/33.38 40189[label="FiniteMap.glueVBal (FiniteMap.Branch yuz300 yuz301 yuz302 yuz303 yuz304) FiniteMap.EmptyFM",fontsize=16,color="black",shape="box"];40189 -> 40211[label="",style="solid", color="black", weight=3]; 52.97/33.38 40190[label="FiniteMap.glueVBal (FiniteMap.Branch yuz300 yuz301 yuz302 yuz303 yuz304) (FiniteMap.Branch yuz3430 yuz3431 yuz3432 yuz3433 yuz3434)",fontsize=16,color="black",shape="box"];40190 -> 40212[label="",style="solid", color="black", weight=3]; 52.97/33.38 38396[label="yuz60",fontsize=16,color="green",shape="box"];38397[label="yuz40",fontsize=16,color="green",shape="box"];37783[label="compare yuz1440 yuz1435",fontsize=16,color="burlywood",shape="triangle"];41113[label="yuz1440/yuz14400 :% yuz14401",fontsize=10,color="white",style="solid",shape="box"];37783 -> 41113[label="",style="solid", color="burlywood", weight=9]; 52.97/33.38 41113 -> 37802[label="",style="solid", color="burlywood", weight=3]; 52.97/33.38 37592[label="yuz1438",fontsize=16,color="green",shape="box"];37593[label="yuz1441",fontsize=16,color="green",shape="box"];37594[label="yuz1437",fontsize=16,color="green",shape="box"];37595[label="yuz1440 > yuz1435",fontsize=16,color="blue",shape="box"];41114[label="> :: Float -> Float -> Bool",fontsize=10,color="white",style="solid",shape="box"];37595 -> 41114[label="",style="solid", color="blue", weight=9]; 52.97/33.38 41114 -> 37604[label="",style="solid", color="blue", weight=3]; 52.97/33.38 41115[label="> :: Double -> Double -> Bool",fontsize=10,color="white",style="solid",shape="box"];37595 -> 41115[label="",style="solid", color="blue", weight=9]; 52.97/33.38 41115 -> 37605[label="",style="solid", color="blue", weight=3]; 52.97/33.38 41116[label="> :: Integer -> Integer -> Bool",fontsize=10,color="white",style="solid",shape="box"];37595 -> 41116[label="",style="solid", color="blue", weight=9]; 52.97/33.38 41116 -> 37606[label="",style="solid", color="blue", weight=3]; 52.97/33.38 41117[label="> :: (Either a b) -> (Either a b) -> Bool",fontsize=10,color="white",style="solid",shape="box"];37595 -> 41117[label="",style="solid", color="blue", weight=9]; 52.97/33.38 41117 -> 37607[label="",style="solid", color="blue", weight=3]; 52.97/33.38 41118[label="> :: ((@2) a b) -> ((@2) a b) -> Bool",fontsize=10,color="white",style="solid",shape="box"];37595 -> 41118[label="",style="solid", color="blue", weight=9]; 52.97/33.38 41118 -> 37608[label="",style="solid", color="blue", weight=3]; 52.97/33.38 41119[label="> :: () -> () -> Bool",fontsize=10,color="white",style="solid",shape="box"];37595 -> 41119[label="",style="solid", color="blue", weight=9]; 52.97/33.38 41119 -> 37609[label="",style="solid", color="blue", weight=3]; 52.97/33.38 41120[label="> :: ([] a) -> ([] a) -> Bool",fontsize=10,color="white",style="solid",shape="box"];37595 -> 41120[label="",style="solid", color="blue", weight=9]; 52.97/33.38 41120 -> 37610[label="",style="solid", color="blue", weight=3]; 52.97/33.38 41121[label="> :: Bool -> Bool -> Bool",fontsize=10,color="white",style="solid",shape="box"];37595 -> 41121[label="",style="solid", color="blue", weight=9]; 52.97/33.38 41121 -> 37611[label="",style="solid", color="blue", weight=3]; 52.97/33.38 41122[label="> :: ((@3) a b c) -> ((@3) a b c) -> Bool",fontsize=10,color="white",style="solid",shape="box"];37595 -> 41122[label="",style="solid", color="blue", weight=9]; 52.97/33.38 41122 -> 37612[label="",style="solid", color="blue", weight=3]; 52.97/33.38 41123[label="> :: Char -> Char -> Bool",fontsize=10,color="white",style="solid",shape="box"];37595 -> 41123[label="",style="solid", color="blue", weight=9]; 52.97/33.38 41123 -> 37613[label="",style="solid", color="blue", weight=3]; 52.97/33.38 41124[label="> :: (Ratio a) -> (Ratio a) -> Bool",fontsize=10,color="white",style="solid",shape="box"];37595 -> 41124[label="",style="solid", color="blue", weight=9]; 52.97/33.38 41124 -> 37614[label="",style="solid", color="blue", weight=3]; 52.97/33.38 41125[label="> :: Int -> Int -> Bool",fontsize=10,color="white",style="solid",shape="box"];37595 -> 41125[label="",style="solid", color="blue", weight=9]; 52.97/33.38 41125 -> 37615[label="",style="solid", color="blue", weight=3]; 52.97/33.38 41126[label="> :: (Maybe a) -> (Maybe a) -> Bool",fontsize=10,color="white",style="solid",shape="box"];37595 -> 41126[label="",style="solid", color="blue", weight=9]; 52.97/33.38 41126 -> 37616[label="",style="solid", color="blue", weight=3]; 52.97/33.38 41127[label="> :: Ordering -> Ordering -> Bool",fontsize=10,color="white",style="solid",shape="box"];37595 -> 41127[label="",style="solid", color="blue", weight=9]; 52.97/33.38 41127 -> 37617[label="",style="solid", color="blue", weight=3]; 52.97/33.38 37596[label="yuz1440",fontsize=16,color="green",shape="box"];37597[label="yuz1436",fontsize=16,color="green",shape="box"];37598[label="yuz1439",fontsize=16,color="green",shape="box"];37599[label="yuz1435",fontsize=16,color="green",shape="box"];37591[label="FiniteMap.addToFM_C1 FiniteMap.addToFM0 yuz1459 yuz1460 yuz1461 yuz1462 yuz1463 yuz1464 yuz1465 yuz1466",fontsize=16,color="burlywood",shape="triangle"];41128[label="yuz1466/False",fontsize=10,color="white",style="solid",shape="box"];37591 -> 41128[label="",style="solid", color="burlywood", weight=9]; 52.97/33.38 41128 -> 37618[label="",style="solid", color="burlywood", weight=3]; 52.97/33.38 41129[label="yuz1466/True",fontsize=10,color="white",style="solid",shape="box"];37591 -> 41129[label="",style="solid", color="burlywood", weight=9]; 52.97/33.38 41129 -> 37619[label="",style="solid", color="burlywood", weight=3]; 52.97/33.38 40161[label="FiniteMap.addToFM_C FiniteMap.addToFM0 yuz1438 yuz1440 yuz1441",fontsize=16,color="burlywood",shape="triangle"];41130[label="yuz1438/FiniteMap.EmptyFM",fontsize=10,color="white",style="solid",shape="box"];40161 -> 41130[label="",style="solid", color="burlywood", weight=9]; 52.97/33.38 41130 -> 40191[label="",style="solid", color="burlywood", weight=3]; 52.97/33.38 41131[label="yuz1438/FiniteMap.Branch yuz14380 yuz14381 yuz14382 yuz14383 yuz14384",fontsize=10,color="white",style="solid",shape="box"];40161 -> 41131[label="",style="solid", color="burlywood", weight=9]; 52.97/33.38 41131 -> 40192[label="",style="solid", color="burlywood", weight=3]; 52.97/33.38 40162[label="yuz1435",fontsize=16,color="green",shape="box"];40163[label="yuz1436",fontsize=16,color="green",shape="box"];40164[label="yuz1439",fontsize=16,color="green",shape="box"];37601[label="Pos (primMulNat (Succ (Succ (Succ (Succ (Succ Zero))))) yuz14250)",fontsize=16,color="green",shape="box"];37601 -> 37632[label="",style="dashed", color="green", weight=3]; 52.97/33.38 37602[label="Neg (primMulNat (Succ (Succ (Succ (Succ (Succ Zero))))) yuz14250)",fontsize=16,color="green",shape="box"];37602 -> 37633[label="",style="dashed", color="green", weight=3]; 52.97/33.38 37924[label="primCmpInt (Pos yuz14400) yuz1435",fontsize=16,color="burlywood",shape="box"];41132[label="yuz14400/Succ yuz144000",fontsize=10,color="white",style="solid",shape="box"];37924 -> 41132[label="",style="solid", color="burlywood", weight=9]; 52.97/33.38 41132 -> 38032[label="",style="solid", color="burlywood", weight=3]; 52.97/33.38 41133[label="yuz14400/Zero",fontsize=10,color="white",style="solid",shape="box"];37924 -> 41133[label="",style="solid", color="burlywood", weight=9]; 52.97/33.38 41133 -> 38033[label="",style="solid", color="burlywood", weight=3]; 52.97/33.38 37925[label="primCmpInt (Neg yuz14400) yuz1435",fontsize=16,color="burlywood",shape="box"];41134[label="yuz14400/Succ yuz144000",fontsize=10,color="white",style="solid",shape="box"];37925 -> 41134[label="",style="solid", color="burlywood", weight=9]; 52.97/33.38 41134 -> 38034[label="",style="solid", color="burlywood", weight=3]; 52.97/33.38 41135[label="yuz14400/Zero",fontsize=10,color="white",style="solid",shape="box"];37925 -> 41135[label="",style="solid", color="burlywood", weight=9]; 52.97/33.38 41135 -> 38035[label="",style="solid", color="burlywood", weight=3]; 52.97/33.38 21660[label="FiniteMap.mkVBalBranch3Size_r yuz12340 yuz12341 yuz12342 yuz12343 yuz12344 yuz12380 yuz12381 yuz12382 yuz12383 yuz12384",fontsize=16,color="black",shape="triangle"];21660 -> 21777[label="",style="solid", color="black", weight=3]; 52.97/33.38 21632[label="FiniteMap.mkVBalBranch3MkVBalBranch0 yuz12340 yuz12341 yuz12342 yuz12343 yuz12344 yuz12380 yuz12381 yuz12382 yuz12383 yuz12384 yuz1240 yuz1241 yuz12340 yuz12341 yuz12342 yuz12343 yuz12344 yuz12380 yuz12381 yuz12382 yuz12383 yuz12384 True",fontsize=16,color="black",shape="box"];21632 -> 21661[label="",style="solid", color="black", weight=3]; 52.97/33.38 40165[label="yuz12343",fontsize=16,color="green",shape="box"];40166[label="yuz12340",fontsize=16,color="green",shape="box"];40167[label="yuz12341",fontsize=16,color="green",shape="box"];40168[label="FiniteMap.mkVBalBranch yuz1240 yuz1241 yuz12344 (FiniteMap.Branch yuz12380 yuz12381 yuz12382 yuz12383 yuz12384)",fontsize=16,color="burlywood",shape="box"];41136[label="yuz12344/FiniteMap.EmptyFM",fontsize=10,color="white",style="solid",shape="box"];40168 -> 41136[label="",style="solid", color="burlywood", weight=9]; 52.97/33.38 41136 -> 40193[label="",style="solid", color="burlywood", weight=3]; 52.97/33.38 41137[label="yuz12344/FiniteMap.Branch yuz123440 yuz123441 yuz123442 yuz123443 yuz123444",fontsize=10,color="white",style="solid",shape="box"];40168 -> 41137[label="",style="solid", color="burlywood", weight=9]; 52.97/33.38 41137 -> 40194[label="",style="solid", color="burlywood", weight=3]; 52.97/33.38 40227[label="FiniteMap.addToFM (FiniteMap.Branch yuz12340 yuz12341 yuz12342 yuz12343 yuz12344) yuz1240 yuz1241",fontsize=16,color="black",shape="triangle"];40227 -> 40231[label="",style="solid", color="black", weight=3]; 52.97/33.38 40228 -> 19941[label="",style="dashed", color="red", weight=0]; 52.97/33.38 40228[label="FiniteMap.mkVBalBranch3MkVBalBranch2 yuz12340 yuz12341 yuz12342 yuz12343 yuz12344 yuz123830 yuz123831 yuz123832 yuz123833 yuz123834 yuz1240 yuz1241 yuz12340 yuz12341 yuz12342 yuz12343 yuz12344 yuz123830 yuz123831 yuz123832 yuz123833 yuz123834 (FiniteMap.sIZE_RATIO * FiniteMap.mkVBalBranch3Size_l yuz12340 yuz12341 yuz12342 yuz12343 yuz12344 yuz123830 yuz123831 yuz123832 yuz123833 yuz123834 < FiniteMap.mkVBalBranch3Size_r yuz12340 yuz12341 yuz12342 yuz12343 yuz12344 yuz123830 yuz123831 yuz123832 yuz123833 yuz123834)",fontsize=16,color="magenta"];40228 -> 40232[label="",style="dashed", color="magenta", weight=3]; 52.97/33.38 40228 -> 40233[label="",style="dashed", color="magenta", weight=3]; 52.97/33.38 40228 -> 40234[label="",style="dashed", color="magenta", weight=3]; 52.97/33.38 40228 -> 40235[label="",style="dashed", color="magenta", weight=3]; 52.97/33.38 40228 -> 40236[label="",style="dashed", color="magenta", weight=3]; 52.97/33.38 40228 -> 40237[label="",style="dashed", color="magenta", weight=3]; 52.97/33.38 40230 -> 13680[label="",style="dashed", color="red", weight=0]; 52.97/33.38 40230[label="FiniteMap.mkBalBranch6Size_l yuz340 yuz341 yuz1565 yuz344 + FiniteMap.mkBalBranch6Size_r yuz340 yuz341 yuz1565 yuz344 < Pos (Succ (Succ Zero))",fontsize=16,color="magenta"];40230 -> 40238[label="",style="dashed", color="magenta", weight=3]; 52.97/33.38 40230 -> 40239[label="",style="dashed", color="magenta", weight=3]; 52.97/33.38 40229[label="FiniteMap.mkBalBranch6MkBalBranch5 yuz340 yuz341 yuz1565 yuz344 yuz340 yuz341 yuz1565 yuz344 yuz1566",fontsize=16,color="burlywood",shape="triangle"];41138[label="yuz1566/False",fontsize=10,color="white",style="solid",shape="box"];40229 -> 41138[label="",style="solid", color="burlywood", weight=9]; 52.97/33.38 41138 -> 40240[label="",style="solid", color="burlywood", weight=3]; 52.97/33.38 41139[label="yuz1566/True",fontsize=10,color="white",style="solid",shape="box"];40229 -> 41139[label="",style="solid", color="burlywood", weight=9]; 52.97/33.38 41139 -> 40241[label="",style="solid", color="burlywood", weight=3]; 52.97/33.38 38065[label="Pos Zero",fontsize=16,color="green",shape="box"];38066[label="yuz12982",fontsize=16,color="green",shape="box"];37746[label="primMulInt (Pos yuz6000) (Pos yuz4010)",fontsize=16,color="black",shape="box"];37746 -> 37768[label="",style="solid", color="black", weight=3]; 52.97/33.38 37747[label="primMulInt (Pos yuz6000) (Neg yuz4010)",fontsize=16,color="black",shape="box"];37747 -> 37769[label="",style="solid", color="black", weight=3]; 52.97/33.38 37748[label="primMulInt (Neg yuz6000) (Pos yuz4010)",fontsize=16,color="black",shape="box"];37748 -> 37770[label="",style="solid", color="black", weight=3]; 52.97/33.38 37749[label="primMulInt (Neg yuz6000) (Neg yuz4010)",fontsize=16,color="black",shape="box"];37749 -> 37771[label="",style="solid", color="black", weight=3]; 52.97/33.38 39899 -> 37455[label="",style="dashed", color="red", weight=0]; 52.97/33.38 39899[label="FiniteMap.sizeFM (FiniteMap.Branch yuz300 yuz301 yuz302 yuz303 yuz304)",fontsize=16,color="magenta"];39899 -> 39910[label="",style="dashed", color="magenta", weight=3]; 52.97/33.38 39900 -> 38005[label="",style="dashed", color="red", weight=0]; 52.97/33.38 39900[label="FiniteMap.sIZE_RATIO",fontsize=16,color="magenta"];39901[label="FiniteMap.glueVBal3Size_r yuz300 yuz301 yuz302 yuz303 yuz304 yuz340 yuz341 yuz342 yuz343 yuz344",fontsize=16,color="black",shape="triangle"];39901 -> 39911[label="",style="solid", color="black", weight=3]; 52.97/33.38 39902[label="FiniteMap.glueVBal3GlueVBal0 yuz300 yuz301 yuz302 yuz303 yuz304 yuz340 yuz341 yuz342 yuz343 yuz344 yuz300 yuz301 yuz302 yuz303 yuz304 yuz340 yuz341 yuz342 yuz343 yuz344 otherwise",fontsize=16,color="black",shape="box"];39902 -> 39912[label="",style="solid", color="black", weight=3]; 52.97/33.38 39903 -> 40155[label="",style="dashed", color="red", weight=0]; 52.97/33.38 39903[label="FiniteMap.mkBalBranch yuz300 yuz301 yuz303 (FiniteMap.glueVBal yuz304 (FiniteMap.Branch yuz340 yuz341 yuz342 yuz343 yuz344))",fontsize=16,color="magenta"];39903 -> 40169[label="",style="dashed", color="magenta", weight=3]; 52.97/33.38 39903 -> 40170[label="",style="dashed", color="magenta", weight=3]; 52.97/33.38 39903 -> 40171[label="",style="dashed", color="magenta", weight=3]; 52.97/33.38 39903 -> 40172[label="",style="dashed", color="magenta", weight=3]; 52.97/33.38 40211[label="FiniteMap.glueVBal4 (FiniteMap.Branch yuz300 yuz301 yuz302 yuz303 yuz304) FiniteMap.EmptyFM",fontsize=16,color="black",shape="box"];40211 -> 40242[label="",style="solid", color="black", weight=3]; 52.97/33.38 40212[label="FiniteMap.glueVBal3 (FiniteMap.Branch yuz300 yuz301 yuz302 yuz303 yuz304) (FiniteMap.Branch yuz3430 yuz3431 yuz3432 yuz3433 yuz3434)",fontsize=16,color="black",shape="triangle"];40212 -> 40243[label="",style="solid", color="black", weight=3]; 52.97/33.38 37802[label="compare (yuz14400 :% yuz14401) yuz1435",fontsize=16,color="burlywood",shape="box"];41140[label="yuz1435/yuz14350 :% yuz14351",fontsize=10,color="white",style="solid",shape="box"];37802 -> 41140[label="",style="solid", color="burlywood", weight=9]; 52.97/33.38 41140 -> 37923[label="",style="solid", color="burlywood", weight=3]; 52.97/33.38 37604[label="yuz1440 > yuz1435",fontsize=16,color="black",shape="box"];37604 -> 37636[label="",style="solid", color="black", weight=3]; 52.97/33.38 37605[label="yuz1440 > yuz1435",fontsize=16,color="black",shape="box"];37605 -> 37637[label="",style="solid", color="black", weight=3]; 52.97/33.38 37606[label="yuz1440 > yuz1435",fontsize=16,color="black",shape="box"];37606 -> 37638[label="",style="solid", color="black", weight=3]; 52.97/33.38 37607[label="yuz1440 > yuz1435",fontsize=16,color="black",shape="box"];37607 -> 37639[label="",style="solid", color="black", weight=3]; 52.97/33.38 37608[label="yuz1440 > yuz1435",fontsize=16,color="black",shape="box"];37608 -> 37640[label="",style="solid", color="black", weight=3]; 52.97/33.38 37609[label="yuz1440 > yuz1435",fontsize=16,color="black",shape="box"];37609 -> 37641[label="",style="solid", color="black", weight=3]; 52.97/33.38 37610[label="yuz1440 > yuz1435",fontsize=16,color="black",shape="box"];37610 -> 37642[label="",style="solid", color="black", weight=3]; 52.97/33.38 37611[label="yuz1440 > yuz1435",fontsize=16,color="black",shape="box"];37611 -> 37643[label="",style="solid", color="black", weight=3]; 52.97/33.38 37612[label="yuz1440 > yuz1435",fontsize=16,color="black",shape="box"];37612 -> 37644[label="",style="solid", color="black", weight=3]; 52.97/33.38 37613[label="yuz1440 > yuz1435",fontsize=16,color="black",shape="box"];37613 -> 37645[label="",style="solid", color="black", weight=3]; 52.97/33.38 37614[label="yuz1440 > yuz1435",fontsize=16,color="black",shape="box"];37614 -> 37646[label="",style="solid", color="black", weight=3]; 52.97/33.38 37615[label="yuz1440 > yuz1435",fontsize=16,color="black",shape="triangle"];37615 -> 37647[label="",style="solid", color="black", weight=3]; 52.97/33.38 37616[label="yuz1440 > yuz1435",fontsize=16,color="black",shape="box"];37616 -> 37648[label="",style="solid", color="black", weight=3]; 52.97/33.38 37617[label="yuz1440 > yuz1435",fontsize=16,color="black",shape="box"];37617 -> 37649[label="",style="solid", color="black", weight=3]; 52.97/33.38 37618[label="FiniteMap.addToFM_C1 FiniteMap.addToFM0 yuz1459 yuz1460 yuz1461 yuz1462 yuz1463 yuz1464 yuz1465 False",fontsize=16,color="black",shape="box"];37618 -> 37650[label="",style="solid", color="black", weight=3]; 52.97/33.38 37619[label="FiniteMap.addToFM_C1 FiniteMap.addToFM0 yuz1459 yuz1460 yuz1461 yuz1462 yuz1463 yuz1464 yuz1465 True",fontsize=16,color="black",shape="box"];37619 -> 37651[label="",style="solid", color="black", weight=3]; 52.97/33.38 40191[label="FiniteMap.addToFM_C FiniteMap.addToFM0 FiniteMap.EmptyFM yuz1440 yuz1441",fontsize=16,color="black",shape="box"];40191 -> 40213[label="",style="solid", color="black", weight=3]; 52.97/33.38 40192[label="FiniteMap.addToFM_C FiniteMap.addToFM0 (FiniteMap.Branch yuz14380 yuz14381 yuz14382 yuz14383 yuz14384) yuz1440 yuz1441",fontsize=16,color="black",shape="box"];40192 -> 40214[label="",style="solid", color="black", weight=3]; 52.97/33.38 37632[label="primMulNat (Succ (Succ (Succ (Succ (Succ Zero))))) yuz14250",fontsize=16,color="burlywood",shape="triangle"];41141[label="yuz14250/Succ yuz142500",fontsize=10,color="white",style="solid",shape="box"];37632 -> 41141[label="",style="solid", color="burlywood", weight=9]; 52.97/33.38 41141 -> 37702[label="",style="solid", color="burlywood", weight=3]; 52.97/33.38 41142[label="yuz14250/Zero",fontsize=10,color="white",style="solid",shape="box"];37632 -> 41142[label="",style="solid", color="burlywood", weight=9]; 52.97/33.38 41142 -> 37703[label="",style="solid", color="burlywood", weight=3]; 52.97/33.38 37633 -> 37632[label="",style="dashed", color="red", weight=0]; 52.97/33.38 37633[label="primMulNat (Succ (Succ (Succ (Succ (Succ Zero))))) yuz14250",fontsize=16,color="magenta"];37633 -> 37704[label="",style="dashed", color="magenta", weight=3]; 52.97/33.38 38032[label="primCmpInt (Pos (Succ yuz144000)) yuz1435",fontsize=16,color="burlywood",shape="box"];41143[label="yuz1435/Pos yuz14350",fontsize=10,color="white",style="solid",shape="box"];38032 -> 41143[label="",style="solid", color="burlywood", weight=9]; 52.97/33.38 41143 -> 38090[label="",style="solid", color="burlywood", weight=3]; 52.97/33.38 41144[label="yuz1435/Neg yuz14350",fontsize=10,color="white",style="solid",shape="box"];38032 -> 41144[label="",style="solid", color="burlywood", weight=9]; 52.97/33.38 41144 -> 38091[label="",style="solid", color="burlywood", weight=3]; 52.97/33.38 38033[label="primCmpInt (Pos Zero) yuz1435",fontsize=16,color="burlywood",shape="box"];41145[label="yuz1435/Pos yuz14350",fontsize=10,color="white",style="solid",shape="box"];38033 -> 41145[label="",style="solid", color="burlywood", weight=9]; 52.97/33.38 41145 -> 38092[label="",style="solid", color="burlywood", weight=3]; 52.97/33.38 41146[label="yuz1435/Neg yuz14350",fontsize=10,color="white",style="solid",shape="box"];38033 -> 41146[label="",style="solid", color="burlywood", weight=9]; 52.97/33.38 41146 -> 38093[label="",style="solid", color="burlywood", weight=3]; 52.97/33.38 38034[label="primCmpInt (Neg (Succ yuz144000)) yuz1435",fontsize=16,color="burlywood",shape="box"];41147[label="yuz1435/Pos yuz14350",fontsize=10,color="white",style="solid",shape="box"];38034 -> 41147[label="",style="solid", color="burlywood", weight=9]; 52.97/33.38 41147 -> 38094[label="",style="solid", color="burlywood", weight=3]; 52.97/33.38 41148[label="yuz1435/Neg yuz14350",fontsize=10,color="white",style="solid",shape="box"];38034 -> 41148[label="",style="solid", color="burlywood", weight=9]; 52.97/33.38 41148 -> 38095[label="",style="solid", color="burlywood", weight=3]; 52.97/33.38 38035[label="primCmpInt (Neg Zero) yuz1435",fontsize=16,color="burlywood",shape="box"];41149[label="yuz1435/Pos yuz14350",fontsize=10,color="white",style="solid",shape="box"];38035 -> 41149[label="",style="solid", color="burlywood", weight=9]; 52.97/33.38 41149 -> 38096[label="",style="solid", color="burlywood", weight=3]; 52.97/33.38 41150[label="yuz1435/Neg yuz14350",fontsize=10,color="white",style="solid",shape="box"];38035 -> 41150[label="",style="solid", color="burlywood", weight=9]; 52.97/33.38 41150 -> 38097[label="",style="solid", color="burlywood", weight=3]; 52.97/33.38 21777 -> 21617[label="",style="dashed", color="red", weight=0]; 52.97/33.38 21777[label="FiniteMap.sizeFM (FiniteMap.Branch yuz12380 yuz12381 yuz12382 yuz12383 yuz12384)",fontsize=16,color="magenta"];21777 -> 21916[label="",style="dashed", color="magenta", weight=3]; 52.97/33.38 21777 -> 21917[label="",style="dashed", color="magenta", weight=3]; 52.97/33.38 21777 -> 21918[label="",style="dashed", color="magenta", weight=3]; 52.97/33.38 21777 -> 21919[label="",style="dashed", color="magenta", weight=3]; 52.97/33.38 21777 -> 21920[label="",style="dashed", color="magenta", weight=3]; 52.97/33.38 21661 -> 21778[label="",style="dashed", color="red", weight=0]; 52.97/33.38 21661[label="FiniteMap.mkBranch (Pos (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ Zero)))))))))))))) yuz1240 yuz1241 (FiniteMap.Branch yuz12340 yuz12341 yuz12342 yuz12343 yuz12344) (FiniteMap.Branch yuz12380 yuz12381 yuz12382 yuz12383 yuz12384)",fontsize=16,color="magenta"];21661 -> 21779[label="",style="dashed", color="magenta", weight=3]; 52.97/33.38 21661 -> 21780[label="",style="dashed", color="magenta", weight=3]; 52.97/33.38 21661 -> 21781[label="",style="dashed", color="magenta", weight=3]; 52.97/33.38 21661 -> 21782[label="",style="dashed", color="magenta", weight=3]; 52.97/33.38 21661 -> 21783[label="",style="dashed", color="magenta", weight=3]; 52.97/33.38 21661 -> 21784[label="",style="dashed", color="magenta", weight=3]; 52.97/33.38 21661 -> 21785[label="",style="dashed", color="magenta", weight=3]; 52.97/33.38 21661 -> 21786[label="",style="dashed", color="magenta", weight=3]; 52.97/33.38 21661 -> 21787[label="",style="dashed", color="magenta", weight=3]; 52.97/33.38 21661 -> 21788[label="",style="dashed", color="magenta", weight=3]; 52.97/33.38 21661 -> 21789[label="",style="dashed", color="magenta", weight=3]; 52.97/33.38 21661 -> 21790[label="",style="dashed", color="magenta", weight=3]; 52.97/33.38 21661 -> 21791[label="",style="dashed", color="magenta", weight=3]; 52.97/33.38 40193[label="FiniteMap.mkVBalBranch yuz1240 yuz1241 FiniteMap.EmptyFM (FiniteMap.Branch yuz12380 yuz12381 yuz12382 yuz12383 yuz12384)",fontsize=16,color="black",shape="box"];40193 -> 40215[label="",style="solid", color="black", weight=3]; 52.97/33.38 40194[label="FiniteMap.mkVBalBranch yuz1240 yuz1241 (FiniteMap.Branch yuz123440 yuz123441 yuz123442 yuz123443 yuz123444) (FiniteMap.Branch yuz12380 yuz12381 yuz12382 yuz12383 yuz12384)",fontsize=16,color="black",shape="box"];40194 -> 40216[label="",style="solid", color="black", weight=3]; 52.97/33.38 40231 -> 40161[label="",style="dashed", color="red", weight=0]; 52.97/33.38 40231[label="FiniteMap.addToFM_C FiniteMap.addToFM0 (FiniteMap.Branch yuz12340 yuz12341 yuz12342 yuz12343 yuz12344) yuz1240 yuz1241",fontsize=16,color="magenta"];40231 -> 40281[label="",style="dashed", color="magenta", weight=3]; 52.97/33.38 40231 -> 40282[label="",style="dashed", color="magenta", weight=3]; 52.97/33.38 40231 -> 40283[label="",style="dashed", color="magenta", weight=3]; 52.97/33.38 40232[label="yuz123830",fontsize=16,color="green",shape="box"];40233[label="yuz123832",fontsize=16,color="green",shape="box"];40234[label="yuz123834",fontsize=16,color="green",shape="box"];40235[label="yuz123833",fontsize=16,color="green",shape="box"];40236 -> 13680[label="",style="dashed", color="red", weight=0]; 52.97/33.38 40236[label="FiniteMap.sIZE_RATIO * FiniteMap.mkVBalBranch3Size_l yuz12340 yuz12341 yuz12342 yuz12343 yuz12344 yuz123830 yuz123831 yuz123832 yuz123833 yuz123834 < FiniteMap.mkVBalBranch3Size_r yuz12340 yuz12341 yuz12342 yuz12343 yuz12344 yuz123830 yuz123831 yuz123832 yuz123833 yuz123834",fontsize=16,color="magenta"];40236 -> 40284[label="",style="dashed", color="magenta", weight=3]; 52.97/33.38 40236 -> 40285[label="",style="dashed", color="magenta", weight=3]; 52.97/33.38 40237[label="yuz123831",fontsize=16,color="green",shape="box"];40238[label="Pos (Succ (Succ Zero))",fontsize=16,color="green",shape="box"];40239[label="FiniteMap.mkBalBranch6Size_l yuz340 yuz341 yuz1565 yuz344 + FiniteMap.mkBalBranch6Size_r yuz340 yuz341 yuz1565 yuz344",fontsize=16,color="black",shape="box"];40239 -> 40286[label="",style="solid", color="black", weight=3]; 52.97/33.38 40240[label="FiniteMap.mkBalBranch6MkBalBranch5 yuz340 yuz341 yuz1565 yuz344 yuz340 yuz341 yuz1565 yuz344 False",fontsize=16,color="black",shape="box"];40240 -> 40287[label="",style="solid", color="black", weight=3]; 52.97/33.38 40241[label="FiniteMap.mkBalBranch6MkBalBranch5 yuz340 yuz341 yuz1565 yuz344 yuz340 yuz341 yuz1565 yuz344 True",fontsize=16,color="black",shape="box"];40241 -> 40288[label="",style="solid", color="black", weight=3]; 52.97/33.38 37768[label="Pos (primMulNat yuz6000 yuz4010)",fontsize=16,color="green",shape="box"];37768 -> 37935[label="",style="dashed", color="green", weight=3]; 52.97/33.38 37769[label="Neg (primMulNat yuz6000 yuz4010)",fontsize=16,color="green",shape="box"];37769 -> 37936[label="",style="dashed", color="green", weight=3]; 52.97/33.38 37770[label="Neg (primMulNat yuz6000 yuz4010)",fontsize=16,color="green",shape="box"];37770 -> 37937[label="",style="dashed", color="green", weight=3]; 52.97/33.38 37771[label="Pos (primMulNat yuz6000 yuz4010)",fontsize=16,color="green",shape="box"];37771 -> 37938[label="",style="dashed", color="green", weight=3]; 52.97/33.38 39910[label="FiniteMap.Branch yuz300 yuz301 yuz302 yuz303 yuz304",fontsize=16,color="green",shape="box"];39911 -> 37455[label="",style="dashed", color="red", weight=0]; 52.97/33.38 39911[label="FiniteMap.sizeFM (FiniteMap.Branch yuz340 yuz341 yuz342 yuz343 yuz344)",fontsize=16,color="magenta"];39911 -> 39935[label="",style="dashed", color="magenta", weight=3]; 52.97/33.38 39912[label="FiniteMap.glueVBal3GlueVBal0 yuz300 yuz301 yuz302 yuz303 yuz304 yuz340 yuz341 yuz342 yuz343 yuz344 yuz300 yuz301 yuz302 yuz303 yuz304 yuz340 yuz341 yuz342 yuz343 yuz344 True",fontsize=16,color="black",shape="box"];39912 -> 39936[label="",style="solid", color="black", weight=3]; 52.97/33.38 40169[label="yuz303",fontsize=16,color="green",shape="box"];40170[label="yuz300",fontsize=16,color="green",shape="box"];40171[label="yuz301",fontsize=16,color="green",shape="box"];40172[label="FiniteMap.glueVBal yuz304 (FiniteMap.Branch yuz340 yuz341 yuz342 yuz343 yuz344)",fontsize=16,color="burlywood",shape="box"];41151[label="yuz304/FiniteMap.EmptyFM",fontsize=10,color="white",style="solid",shape="box"];40172 -> 41151[label="",style="solid", color="burlywood", weight=9]; 52.97/33.38 41151 -> 40195[label="",style="solid", color="burlywood", weight=3]; 52.97/33.38 41152[label="yuz304/FiniteMap.Branch yuz3040 yuz3041 yuz3042 yuz3043 yuz3044",fontsize=10,color="white",style="solid",shape="box"];40172 -> 41152[label="",style="solid", color="burlywood", weight=9]; 52.97/33.38 41152 -> 40196[label="",style="solid", color="burlywood", weight=3]; 52.97/33.38 40242[label="FiniteMap.Branch yuz300 yuz301 yuz302 yuz303 yuz304",fontsize=16,color="green",shape="box"];40243 -> 38642[label="",style="dashed", color="red", weight=0]; 52.97/33.38 40243[label="FiniteMap.glueVBal3GlueVBal2 yuz300 yuz301 yuz302 yuz303 yuz304 yuz3430 yuz3431 yuz3432 yuz3433 yuz3434 yuz300 yuz301 yuz302 yuz303 yuz304 yuz3430 yuz3431 yuz3432 yuz3433 yuz3434 (FiniteMap.sIZE_RATIO * FiniteMap.glueVBal3Size_l yuz300 yuz301 yuz302 yuz303 yuz304 yuz3430 yuz3431 yuz3432 yuz3433 yuz3434 < FiniteMap.glueVBal3Size_r yuz300 yuz301 yuz302 yuz303 yuz304 yuz3430 yuz3431 yuz3432 yuz3433 yuz3434)",fontsize=16,color="magenta"];40243 -> 40289[label="",style="dashed", color="magenta", weight=3]; 52.97/33.38 40243 -> 40290[label="",style="dashed", color="magenta", weight=3]; 52.97/33.38 40243 -> 40291[label="",style="dashed", color="magenta", weight=3]; 52.97/33.38 40243 -> 40292[label="",style="dashed", color="magenta", weight=3]; 52.97/33.38 40243 -> 40293[label="",style="dashed", color="magenta", weight=3]; 52.97/33.38 40243 -> 40294[label="",style="dashed", color="magenta", weight=3]; 52.97/33.38 37923[label="compare (yuz14400 :% yuz14401) (yuz14350 :% yuz14351)",fontsize=16,color="black",shape="box"];37923 -> 38031[label="",style="solid", color="black", weight=3]; 52.97/33.38 37636 -> 37772[label="",style="dashed", color="red", weight=0]; 52.97/33.38 37636[label="compare yuz1440 yuz1435 == GT",fontsize=16,color="magenta"];37636 -> 37773[label="",style="dashed", color="magenta", weight=3]; 52.97/33.38 37637 -> 37772[label="",style="dashed", color="red", weight=0]; 52.97/33.38 37637[label="compare yuz1440 yuz1435 == GT",fontsize=16,color="magenta"];37637 -> 37774[label="",style="dashed", color="magenta", weight=3]; 52.97/33.38 37638 -> 37772[label="",style="dashed", color="red", weight=0]; 52.97/33.38 37638[label="compare yuz1440 yuz1435 == GT",fontsize=16,color="magenta"];37638 -> 37775[label="",style="dashed", color="magenta", weight=3]; 52.97/33.38 37639 -> 37772[label="",style="dashed", color="red", weight=0]; 52.97/33.38 37639[label="compare yuz1440 yuz1435 == GT",fontsize=16,color="magenta"];37639 -> 37776[label="",style="dashed", color="magenta", weight=3]; 52.97/33.38 37640 -> 37772[label="",style="dashed", color="red", weight=0]; 52.97/33.38 37640[label="compare yuz1440 yuz1435 == GT",fontsize=16,color="magenta"];37640 -> 37777[label="",style="dashed", color="magenta", weight=3]; 52.97/33.38 37641 -> 37772[label="",style="dashed", color="red", weight=0]; 52.97/33.38 37641[label="compare yuz1440 yuz1435 == GT",fontsize=16,color="magenta"];37641 -> 37778[label="",style="dashed", color="magenta", weight=3]; 52.97/33.38 37642 -> 37772[label="",style="dashed", color="red", weight=0]; 52.97/33.38 37642[label="compare yuz1440 yuz1435 == GT",fontsize=16,color="magenta"];37642 -> 37779[label="",style="dashed", color="magenta", weight=3]; 52.97/33.38 37643 -> 37772[label="",style="dashed", color="red", weight=0]; 52.97/33.38 37643[label="compare yuz1440 yuz1435 == GT",fontsize=16,color="magenta"];37643 -> 37780[label="",style="dashed", color="magenta", weight=3]; 52.97/33.38 37644 -> 37772[label="",style="dashed", color="red", weight=0]; 52.97/33.38 37644[label="compare yuz1440 yuz1435 == GT",fontsize=16,color="magenta"];37644 -> 37781[label="",style="dashed", color="magenta", weight=3]; 52.97/33.38 37645 -> 37772[label="",style="dashed", color="red", weight=0]; 52.97/33.38 37645[label="compare yuz1440 yuz1435 == GT",fontsize=16,color="magenta"];37645 -> 37782[label="",style="dashed", color="magenta", weight=3]; 52.97/33.38 37646 -> 37772[label="",style="dashed", color="red", weight=0]; 52.97/33.38 37646[label="compare yuz1440 yuz1435 == GT",fontsize=16,color="magenta"];37646 -> 37783[label="",style="dashed", color="magenta", weight=3]; 52.97/33.38 37647 -> 37772[label="",style="dashed", color="red", weight=0]; 52.97/33.38 37647[label="compare yuz1440 yuz1435 == GT",fontsize=16,color="magenta"];37647 -> 37784[label="",style="dashed", color="magenta", weight=3]; 52.97/33.38 37648 -> 37772[label="",style="dashed", color="red", weight=0]; 52.97/33.38 37648[label="compare yuz1440 yuz1435 == GT",fontsize=16,color="magenta"];37648 -> 37785[label="",style="dashed", color="magenta", weight=3]; 52.97/33.38 37649 -> 37772[label="",style="dashed", color="red", weight=0]; 52.97/33.38 37649[label="compare yuz1440 yuz1435 == GT",fontsize=16,color="magenta"];37649 -> 37786[label="",style="dashed", color="magenta", weight=3]; 52.97/33.38 37650[label="FiniteMap.addToFM_C0 FiniteMap.addToFM0 yuz1459 yuz1460 yuz1461 yuz1462 yuz1463 yuz1464 yuz1465 otherwise",fontsize=16,color="black",shape="box"];37650 -> 37722[label="",style="solid", color="black", weight=3]; 52.97/33.38 37651 -> 40155[label="",style="dashed", color="red", weight=0]; 52.97/33.38 37651[label="FiniteMap.mkBalBranch yuz1459 yuz1460 yuz1462 (FiniteMap.addToFM_C FiniteMap.addToFM0 yuz1463 yuz1464 yuz1465)",fontsize=16,color="magenta"];37651 -> 40173[label="",style="dashed", color="magenta", weight=3]; 52.97/33.38 37651 -> 40174[label="",style="dashed", color="magenta", weight=3]; 52.97/33.38 37651 -> 40175[label="",style="dashed", color="magenta", weight=3]; 52.97/33.38 37651 -> 40176[label="",style="dashed", color="magenta", weight=3]; 52.97/33.38 40213[label="FiniteMap.addToFM_C4 FiniteMap.addToFM0 FiniteMap.EmptyFM yuz1440 yuz1441",fontsize=16,color="black",shape="box"];40213 -> 40244[label="",style="solid", color="black", weight=3]; 52.97/33.38 40214[label="FiniteMap.addToFM_C3 FiniteMap.addToFM0 (FiniteMap.Branch yuz14380 yuz14381 yuz14382 yuz14383 yuz14384) yuz1440 yuz1441",fontsize=16,color="black",shape="box"];40214 -> 40245[label="",style="solid", color="black", weight=3]; 52.97/33.38 37702[label="primMulNat (Succ (Succ (Succ (Succ (Succ Zero))))) (Succ yuz142500)",fontsize=16,color="black",shape="box"];37702 -> 37731[label="",style="solid", color="black", weight=3]; 52.97/33.38 37703[label="primMulNat (Succ (Succ (Succ (Succ (Succ Zero))))) Zero",fontsize=16,color="black",shape="box"];37703 -> 37732[label="",style="solid", color="black", weight=3]; 52.97/33.38 37704[label="yuz14250",fontsize=16,color="green",shape="box"];38090[label="primCmpInt (Pos (Succ yuz144000)) (Pos yuz14350)",fontsize=16,color="black",shape="box"];38090 -> 38195[label="",style="solid", color="black", weight=3]; 52.97/33.38 38091[label="primCmpInt (Pos (Succ yuz144000)) (Neg yuz14350)",fontsize=16,color="black",shape="box"];38091 -> 38196[label="",style="solid", color="black", weight=3]; 52.97/33.38 38092[label="primCmpInt (Pos Zero) (Pos yuz14350)",fontsize=16,color="burlywood",shape="box"];41153[label="yuz14350/Succ yuz143500",fontsize=10,color="white",style="solid",shape="box"];38092 -> 41153[label="",style="solid", color="burlywood", weight=9]; 52.97/33.38 41153 -> 38197[label="",style="solid", color="burlywood", weight=3]; 52.97/33.38 41154[label="yuz14350/Zero",fontsize=10,color="white",style="solid",shape="box"];38092 -> 41154[label="",style="solid", color="burlywood", weight=9]; 52.97/33.38 41154 -> 38198[label="",style="solid", color="burlywood", weight=3]; 52.97/33.38 38093[label="primCmpInt (Pos Zero) (Neg yuz14350)",fontsize=16,color="burlywood",shape="box"];41155[label="yuz14350/Succ yuz143500",fontsize=10,color="white",style="solid",shape="box"];38093 -> 41155[label="",style="solid", color="burlywood", weight=9]; 52.97/33.38 41155 -> 38199[label="",style="solid", color="burlywood", weight=3]; 52.97/33.38 41156[label="yuz14350/Zero",fontsize=10,color="white",style="solid",shape="box"];38093 -> 41156[label="",style="solid", color="burlywood", weight=9]; 52.97/33.38 41156 -> 38200[label="",style="solid", color="burlywood", weight=3]; 52.97/33.38 38094[label="primCmpInt (Neg (Succ yuz144000)) (Pos yuz14350)",fontsize=16,color="black",shape="box"];38094 -> 38201[label="",style="solid", color="black", weight=3]; 52.97/33.38 38095[label="primCmpInt (Neg (Succ yuz144000)) (Neg yuz14350)",fontsize=16,color="black",shape="box"];38095 -> 38202[label="",style="solid", color="black", weight=3]; 52.97/33.38 38096[label="primCmpInt (Neg Zero) (Pos yuz14350)",fontsize=16,color="burlywood",shape="box"];41157[label="yuz14350/Succ yuz143500",fontsize=10,color="white",style="solid",shape="box"];38096 -> 41157[label="",style="solid", color="burlywood", weight=9]; 52.97/33.38 41157 -> 38203[label="",style="solid", color="burlywood", weight=3]; 52.97/33.38 41158[label="yuz14350/Zero",fontsize=10,color="white",style="solid",shape="box"];38096 -> 41158[label="",style="solid", color="burlywood", weight=9]; 52.97/33.38 41158 -> 38204[label="",style="solid", color="burlywood", weight=3]; 52.97/33.38 38097[label="primCmpInt (Neg Zero) (Neg yuz14350)",fontsize=16,color="burlywood",shape="box"];41159[label="yuz14350/Succ yuz143500",fontsize=10,color="white",style="solid",shape="box"];38097 -> 41159[label="",style="solid", color="burlywood", weight=9]; 52.97/33.38 41159 -> 38205[label="",style="solid", color="burlywood", weight=3]; 52.97/33.38 41160[label="yuz14350/Zero",fontsize=10,color="white",style="solid",shape="box"];38097 -> 41160[label="",style="solid", color="burlywood", weight=9]; 52.97/33.38 41160 -> 38206[label="",style="solid", color="burlywood", weight=3]; 52.97/33.38 21916[label="yuz12383",fontsize=16,color="green",shape="box"];21917[label="yuz12380",fontsize=16,color="green",shape="box"];21918[label="yuz12381",fontsize=16,color="green",shape="box"];21919[label="yuz12382",fontsize=16,color="green",shape="box"];21920[label="yuz12384",fontsize=16,color="green",shape="box"];21779[label="yuz1241",fontsize=16,color="green",shape="box"];21780[label="yuz1240",fontsize=16,color="green",shape="box"];21781[label="yuz12341",fontsize=16,color="green",shape="box"];21782[label="Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ Zero)))))))))))",fontsize=16,color="green",shape="box"];21783[label="yuz12342",fontsize=16,color="green",shape="box"];21784[label="yuz12381",fontsize=16,color="green",shape="box"];21785[label="yuz12380",fontsize=16,color="green",shape="box"];21786[label="yuz12340",fontsize=16,color="green",shape="box"];21787[label="yuz12344",fontsize=16,color="green",shape="box"];21788[label="yuz12382",fontsize=16,color="green",shape="box"];21789[label="yuz12383",fontsize=16,color="green",shape="box"];21790[label="yuz12343",fontsize=16,color="green",shape="box"];21791[label="yuz12384",fontsize=16,color="green",shape="box"];21778[label="FiniteMap.mkBranch (Pos (Succ yuz1377)) yuz1378 yuz1379 (FiniteMap.Branch yuz1380 yuz1381 yuz1382 yuz1383 yuz1384) (FiniteMap.Branch yuz1385 yuz1386 yuz1387 yuz1388 yuz1389)",fontsize=16,color="black",shape="triangle"];21778 -> 21921[label="",style="solid", color="black", weight=3]; 52.97/33.38 40215[label="FiniteMap.mkVBalBranch5 yuz1240 yuz1241 FiniteMap.EmptyFM (FiniteMap.Branch yuz12380 yuz12381 yuz12382 yuz12383 yuz12384)",fontsize=16,color="black",shape="box"];40215 -> 40246[label="",style="solid", color="black", weight=3]; 52.97/33.38 40216 -> 40209[label="",style="dashed", color="red", weight=0]; 52.97/33.38 40216[label="FiniteMap.mkVBalBranch3 yuz1240 yuz1241 (FiniteMap.Branch yuz123440 yuz123441 yuz123442 yuz123443 yuz123444) (FiniteMap.Branch yuz12380 yuz12381 yuz12382 yuz12383 yuz12384)",fontsize=16,color="magenta"];40216 -> 40247[label="",style="dashed", color="magenta", weight=3]; 52.97/33.38 40216 -> 40248[label="",style="dashed", color="magenta", weight=3]; 52.97/33.38 40216 -> 40249[label="",style="dashed", color="magenta", weight=3]; 52.97/33.38 40216 -> 40250[label="",style="dashed", color="magenta", weight=3]; 52.97/33.38 40216 -> 40251[label="",style="dashed", color="magenta", weight=3]; 52.97/33.38 40216 -> 40252[label="",style="dashed", color="magenta", weight=3]; 52.97/33.38 40216 -> 40253[label="",style="dashed", color="magenta", weight=3]; 52.97/33.38 40216 -> 40254[label="",style="dashed", color="magenta", weight=3]; 52.97/33.38 40216 -> 40255[label="",style="dashed", color="magenta", weight=3]; 52.97/33.38 40216 -> 40256[label="",style="dashed", color="magenta", weight=3]; 52.97/33.38 40281[label="yuz1240",fontsize=16,color="green",shape="box"];40282[label="FiniteMap.Branch yuz12340 yuz12341 yuz12342 yuz12343 yuz12344",fontsize=16,color="green",shape="box"];40283[label="yuz1241",fontsize=16,color="green",shape="box"];40284 -> 21660[label="",style="dashed", color="red", weight=0]; 52.97/33.38 40284[label="FiniteMap.mkVBalBranch3Size_r yuz12340 yuz12341 yuz12342 yuz12343 yuz12344 yuz123830 yuz123831 yuz123832 yuz123833 yuz123834",fontsize=16,color="magenta"];40284 -> 40325[label="",style="dashed", color="magenta", weight=3]; 52.97/33.38 40284 -> 40326[label="",style="dashed", color="magenta", weight=3]; 52.97/33.38 40284 -> 40327[label="",style="dashed", color="magenta", weight=3]; 52.97/33.38 40284 -> 40328[label="",style="dashed", color="magenta", weight=3]; 52.97/33.38 40284 -> 40329[label="",style="dashed", color="magenta", weight=3]; 52.97/33.38 40285 -> 37634[label="",style="dashed", color="red", weight=0]; 52.97/33.38 40285[label="FiniteMap.sIZE_RATIO * FiniteMap.mkVBalBranch3Size_l yuz12340 yuz12341 yuz12342 yuz12343 yuz12344 yuz123830 yuz123831 yuz123832 yuz123833 yuz123834",fontsize=16,color="magenta"];40285 -> 40330[label="",style="dashed", color="magenta", weight=3]; 52.97/33.38 40285 -> 40331[label="",style="dashed", color="magenta", weight=3]; 52.97/33.38 40286 -> 38017[label="",style="dashed", color="red", weight=0]; 52.97/33.38 40286[label="primPlusInt (FiniteMap.mkBalBranch6Size_l yuz340 yuz341 yuz1565 yuz344) (FiniteMap.mkBalBranch6Size_r yuz340 yuz341 yuz1565 yuz344)",fontsize=16,color="magenta"];40286 -> 40332[label="",style="dashed", color="magenta", weight=3]; 52.97/33.38 40286 -> 40333[label="",style="dashed", color="magenta", weight=3]; 52.97/33.38 40287 -> 40334[label="",style="dashed", color="red", weight=0]; 52.97/33.38 40287[label="FiniteMap.mkBalBranch6MkBalBranch4 yuz340 yuz341 yuz1565 yuz344 yuz340 yuz341 yuz1565 yuz344 (FiniteMap.mkBalBranch6Size_r yuz340 yuz341 yuz1565 yuz344 > FiniteMap.sIZE_RATIO * FiniteMap.mkBalBranch6Size_l yuz340 yuz341 yuz1565 yuz344)",fontsize=16,color="magenta"];40287 -> 40335[label="",style="dashed", color="magenta", weight=3]; 52.97/33.38 40288[label="FiniteMap.mkBranch (Pos (Succ Zero)) yuz340 yuz341 yuz1565 yuz344",fontsize=16,color="black",shape="box"];40288 -> 40336[label="",style="solid", color="black", weight=3]; 52.97/33.38 37935[label="primMulNat yuz6000 yuz4010",fontsize=16,color="burlywood",shape="triangle"];41161[label="yuz6000/Succ yuz60000",fontsize=10,color="white",style="solid",shape="box"];37935 -> 41161[label="",style="solid", color="burlywood", weight=9]; 52.97/33.38 41161 -> 38043[label="",style="solid", color="burlywood", weight=3]; 52.97/33.38 41162[label="yuz6000/Zero",fontsize=10,color="white",style="solid",shape="box"];37935 -> 41162[label="",style="solid", color="burlywood", weight=9]; 52.97/33.38 41162 -> 38044[label="",style="solid", color="burlywood", weight=3]; 52.97/33.38 37936 -> 37935[label="",style="dashed", color="red", weight=0]; 52.97/33.38 37936[label="primMulNat yuz6000 yuz4010",fontsize=16,color="magenta"];37936 -> 38045[label="",style="dashed", color="magenta", weight=3]; 52.97/33.38 37937 -> 37935[label="",style="dashed", color="red", weight=0]; 52.97/33.38 37937[label="primMulNat yuz6000 yuz4010",fontsize=16,color="magenta"];37937 -> 38046[label="",style="dashed", color="magenta", weight=3]; 52.97/33.38 37938 -> 37935[label="",style="dashed", color="red", weight=0]; 52.97/33.38 37938[label="primMulNat yuz6000 yuz4010",fontsize=16,color="magenta"];37938 -> 38047[label="",style="dashed", color="magenta", weight=3]; 52.97/33.38 37938 -> 38048[label="",style="dashed", color="magenta", weight=3]; 52.97/33.38 39935[label="FiniteMap.Branch yuz340 yuz341 yuz342 yuz343 yuz344",fontsize=16,color="green",shape="box"];39936[label="FiniteMap.glueBal (FiniteMap.Branch yuz300 yuz301 yuz302 yuz303 yuz304) (FiniteMap.Branch yuz340 yuz341 yuz342 yuz343 yuz344)",fontsize=16,color="black",shape="box"];39936 -> 39951[label="",style="solid", color="black", weight=3]; 52.97/33.38 40195[label="FiniteMap.glueVBal FiniteMap.EmptyFM (FiniteMap.Branch yuz340 yuz341 yuz342 yuz343 yuz344)",fontsize=16,color="black",shape="box"];40195 -> 40217[label="",style="solid", color="black", weight=3]; 52.97/33.38 40196[label="FiniteMap.glueVBal (FiniteMap.Branch yuz3040 yuz3041 yuz3042 yuz3043 yuz3044) (FiniteMap.Branch yuz340 yuz341 yuz342 yuz343 yuz344)",fontsize=16,color="black",shape="box"];40196 -> 40218[label="",style="solid", color="black", weight=3]; 52.97/33.38 40289[label="yuz3432",fontsize=16,color="green",shape="box"];40290[label="yuz3433",fontsize=16,color="green",shape="box"];40291[label="yuz3430",fontsize=16,color="green",shape="box"];40292[label="yuz3431",fontsize=16,color="green",shape="box"];40293 -> 13680[label="",style="dashed", color="red", weight=0]; 52.97/33.38 40293[label="FiniteMap.sIZE_RATIO * FiniteMap.glueVBal3Size_l yuz300 yuz301 yuz302 yuz303 yuz304 yuz3430 yuz3431 yuz3432 yuz3433 yuz3434 < FiniteMap.glueVBal3Size_r yuz300 yuz301 yuz302 yuz303 yuz304 yuz3430 yuz3431 yuz3432 yuz3433 yuz3434",fontsize=16,color="magenta"];40293 -> 40337[label="",style="dashed", color="magenta", weight=3]; 52.97/33.38 40293 -> 40338[label="",style="dashed", color="magenta", weight=3]; 52.97/33.38 40294[label="yuz3434",fontsize=16,color="green",shape="box"];38031[label="compare (yuz14400 * yuz14351) (yuz14350 * yuz14401)",fontsize=16,color="blue",shape="box"];41163[label="compare :: Integer -> Integer -> Ordering",fontsize=10,color="white",style="solid",shape="box"];38031 -> 41163[label="",style="solid", color="blue", weight=9]; 52.97/33.38 41163 -> 38088[label="",style="solid", color="blue", weight=3]; 52.97/33.38 41164[label="compare :: Int -> Int -> Ordering",fontsize=10,color="white",style="solid",shape="box"];38031 -> 41164[label="",style="solid", color="blue", weight=9]; 52.97/33.38 41164 -> 38089[label="",style="solid", color="blue", weight=3]; 52.97/33.38 37773[label="compare yuz1440 yuz1435",fontsize=16,color="black",shape="triangle"];37773 -> 37789[label="",style="solid", color="black", weight=3]; 52.97/33.38 37772[label="yuz1481 == GT",fontsize=16,color="burlywood",shape="triangle"];41165[label="yuz1481/LT",fontsize=10,color="white",style="solid",shape="box"];37772 -> 41165[label="",style="solid", color="burlywood", weight=9]; 52.97/33.38 41165 -> 37790[label="",style="solid", color="burlywood", weight=3]; 52.97/33.38 41166[label="yuz1481/EQ",fontsize=10,color="white",style="solid",shape="box"];37772 -> 41166[label="",style="solid", color="burlywood", weight=9]; 52.97/33.38 41166 -> 37791[label="",style="solid", color="burlywood", weight=3]; 52.97/33.38 41167[label="yuz1481/GT",fontsize=10,color="white",style="solid",shape="box"];37772 -> 41167[label="",style="solid", color="burlywood", weight=9]; 52.97/33.38 41167 -> 37792[label="",style="solid", color="burlywood", weight=3]; 52.97/33.38 37774[label="compare yuz1440 yuz1435",fontsize=16,color="black",shape="triangle"];37774 -> 37793[label="",style="solid", color="black", weight=3]; 52.97/33.38 37775[label="compare yuz1440 yuz1435",fontsize=16,color="black",shape="triangle"];37775 -> 37794[label="",style="solid", color="black", weight=3]; 52.97/33.38 37776[label="compare yuz1440 yuz1435",fontsize=16,color="black",shape="triangle"];37776 -> 37795[label="",style="solid", color="black", weight=3]; 52.97/33.38 37777[label="compare yuz1440 yuz1435",fontsize=16,color="black",shape="triangle"];37777 -> 37796[label="",style="solid", color="black", weight=3]; 52.97/33.38 37778[label="compare yuz1440 yuz1435",fontsize=16,color="black",shape="triangle"];37778 -> 37797[label="",style="solid", color="black", weight=3]; 52.97/33.38 37779[label="compare yuz1440 yuz1435",fontsize=16,color="black",shape="triangle"];37779 -> 37798[label="",style="solid", color="black", weight=3]; 52.97/33.38 37780[label="compare yuz1440 yuz1435",fontsize=16,color="black",shape="triangle"];37780 -> 37799[label="",style="solid", color="black", weight=3]; 52.97/33.38 37781[label="compare yuz1440 yuz1435",fontsize=16,color="black",shape="triangle"];37781 -> 37800[label="",style="solid", color="black", weight=3]; 52.97/33.38 37782[label="compare yuz1440 yuz1435",fontsize=16,color="black",shape="triangle"];37782 -> 37801[label="",style="solid", color="black", weight=3]; 52.97/33.38 37785[label="compare yuz1440 yuz1435",fontsize=16,color="black",shape="triangle"];37785 -> 37804[label="",style="solid", color="black", weight=3]; 52.97/33.38 37786[label="compare yuz1440 yuz1435",fontsize=16,color="black",shape="triangle"];37786 -> 37805[label="",style="solid", color="black", weight=3]; 52.97/33.38 37722[label="FiniteMap.addToFM_C0 FiniteMap.addToFM0 yuz1459 yuz1460 yuz1461 yuz1462 yuz1463 yuz1464 yuz1465 True",fontsize=16,color="black",shape="box"];37722 -> 37738[label="",style="solid", color="black", weight=3]; 52.97/33.38 40173[label="yuz1462",fontsize=16,color="green",shape="box"];40174[label="yuz1459",fontsize=16,color="green",shape="box"];40175[label="yuz1460",fontsize=16,color="green",shape="box"];40176 -> 40161[label="",style="dashed", color="red", weight=0]; 52.97/33.38 40176[label="FiniteMap.addToFM_C FiniteMap.addToFM0 yuz1463 yuz1464 yuz1465",fontsize=16,color="magenta"];40176 -> 40197[label="",style="dashed", color="magenta", weight=3]; 52.97/33.38 40176 -> 40198[label="",style="dashed", color="magenta", weight=3]; 52.97/33.38 40176 -> 40199[label="",style="dashed", color="magenta", weight=3]; 52.97/33.38 40244[label="FiniteMap.unitFM yuz1440 yuz1441",fontsize=16,color="black",shape="box"];40244 -> 40295[label="",style="solid", color="black", weight=3]; 52.97/33.38 40245 -> 22405[label="",style="dashed", color="red", weight=0]; 52.97/33.38 40245[label="FiniteMap.addToFM_C2 FiniteMap.addToFM0 yuz14380 yuz14381 yuz14382 yuz14383 yuz14384 yuz1440 yuz1441 (yuz1440 < yuz14380)",fontsize=16,color="magenta"];40245 -> 40296[label="",style="dashed", color="magenta", weight=3]; 52.97/33.38 40245 -> 40297[label="",style="dashed", color="magenta", weight=3]; 52.97/33.38 40245 -> 40298[label="",style="dashed", color="magenta", weight=3]; 52.97/33.38 40245 -> 40299[label="",style="dashed", color="magenta", weight=3]; 52.97/33.38 40245 -> 40300[label="",style="dashed", color="magenta", weight=3]; 52.97/33.38 40245 -> 40301[label="",style="dashed", color="magenta", weight=3]; 52.97/33.38 37731 -> 3194[label="",style="dashed", color="red", weight=0]; 52.97/33.38 37731[label="primPlusNat (primMulNat (Succ (Succ (Succ (Succ Zero)))) (Succ yuz142500)) (Succ yuz142500)",fontsize=16,color="magenta"];37731 -> 37744[label="",style="dashed", color="magenta", weight=3]; 52.97/33.38 37731 -> 37745[label="",style="dashed", color="magenta", weight=3]; 52.97/33.38 37732[label="Zero",fontsize=16,color="green",shape="box"];38195[label="primCmpNat (Succ yuz144000) yuz14350",fontsize=16,color="burlywood",shape="triangle"];41168[label="yuz14350/Succ yuz143500",fontsize=10,color="white",style="solid",shape="box"];38195 -> 41168[label="",style="solid", color="burlywood", weight=9]; 52.97/33.38 41168 -> 38306[label="",style="solid", color="burlywood", weight=3]; 52.97/33.38 41169[label="yuz14350/Zero",fontsize=10,color="white",style="solid",shape="box"];38195 -> 41169[label="",style="solid", color="burlywood", weight=9]; 52.97/33.38 41169 -> 38307[label="",style="solid", color="burlywood", weight=3]; 52.97/33.38 38196[label="GT",fontsize=16,color="green",shape="box"];38197[label="primCmpInt (Pos Zero) (Pos (Succ yuz143500))",fontsize=16,color="black",shape="box"];38197 -> 38308[label="",style="solid", color="black", weight=3]; 52.97/33.38 38198[label="primCmpInt (Pos Zero) (Pos Zero)",fontsize=16,color="black",shape="box"];38198 -> 38309[label="",style="solid", color="black", weight=3]; 52.97/33.38 38199[label="primCmpInt (Pos Zero) (Neg (Succ yuz143500))",fontsize=16,color="black",shape="box"];38199 -> 38310[label="",style="solid", color="black", weight=3]; 52.97/33.38 38200[label="primCmpInt (Pos Zero) (Neg Zero)",fontsize=16,color="black",shape="box"];38200 -> 38311[label="",style="solid", color="black", weight=3]; 52.97/33.38 38201[label="LT",fontsize=16,color="green",shape="box"];38202[label="primCmpNat yuz14350 (Succ yuz144000)",fontsize=16,color="burlywood",shape="triangle"];41170[label="yuz14350/Succ yuz143500",fontsize=10,color="white",style="solid",shape="box"];38202 -> 41170[label="",style="solid", color="burlywood", weight=9]; 52.97/33.38 41170 -> 38312[label="",style="solid", color="burlywood", weight=3]; 52.97/33.38 41171[label="yuz14350/Zero",fontsize=10,color="white",style="solid",shape="box"];38202 -> 41171[label="",style="solid", color="burlywood", weight=9]; 52.97/33.38 41171 -> 38313[label="",style="solid", color="burlywood", weight=3]; 52.97/33.38 38203[label="primCmpInt (Neg Zero) (Pos (Succ yuz143500))",fontsize=16,color="black",shape="box"];38203 -> 38314[label="",style="solid", color="black", weight=3]; 52.97/33.38 38204[label="primCmpInt (Neg Zero) (Pos Zero)",fontsize=16,color="black",shape="box"];38204 -> 38315[label="",style="solid", color="black", weight=3]; 52.97/33.38 38205[label="primCmpInt (Neg Zero) (Neg (Succ yuz143500))",fontsize=16,color="black",shape="box"];38205 -> 38316[label="",style="solid", color="black", weight=3]; 52.97/33.38 38206[label="primCmpInt (Neg Zero) (Neg Zero)",fontsize=16,color="black",shape="box"];38206 -> 38317[label="",style="solid", color="black", weight=3]; 52.97/33.38 21921 -> 37548[label="",style="dashed", color="red", weight=0]; 52.97/33.38 21921[label="FiniteMap.mkBranchResult yuz1378 yuz1379 (FiniteMap.Branch yuz1385 yuz1386 yuz1387 yuz1388 yuz1389) (FiniteMap.Branch yuz1380 yuz1381 yuz1382 yuz1383 yuz1384)",fontsize=16,color="magenta"];21921 -> 37553[label="",style="dashed", color="magenta", weight=3]; 52.97/33.38 21921 -> 37554[label="",style="dashed", color="magenta", weight=3]; 52.97/33.38 21921 -> 37555[label="",style="dashed", color="magenta", weight=3]; 52.97/33.38 21921 -> 37556[label="",style="dashed", color="magenta", weight=3]; 52.97/33.38 40246 -> 40227[label="",style="dashed", color="red", weight=0]; 52.97/33.38 40246[label="FiniteMap.addToFM (FiniteMap.Branch yuz12380 yuz12381 yuz12382 yuz12383 yuz12384) yuz1240 yuz1241",fontsize=16,color="magenta"];40246 -> 40302[label="",style="dashed", color="magenta", weight=3]; 52.97/33.38 40246 -> 40303[label="",style="dashed", color="magenta", weight=3]; 52.97/33.38 40246 -> 40304[label="",style="dashed", color="magenta", weight=3]; 52.97/33.38 40246 -> 40305[label="",style="dashed", color="magenta", weight=3]; 52.97/33.38 40246 -> 40306[label="",style="dashed", color="magenta", weight=3]; 52.97/33.38 40247[label="yuz12383",fontsize=16,color="green",shape="box"];40248[label="yuz123443",fontsize=16,color="green",shape="box"];40249[label="yuz12381",fontsize=16,color="green",shape="box"];40250[label="yuz123440",fontsize=16,color="green",shape="box"];40251[label="yuz12382",fontsize=16,color="green",shape="box"];40252[label="yuz123441",fontsize=16,color="green",shape="box"];40253[label="yuz123442",fontsize=16,color="green",shape="box"];40254[label="yuz12384",fontsize=16,color="green",shape="box"];40255[label="yuz123444",fontsize=16,color="green",shape="box"];40256[label="yuz12380",fontsize=16,color="green",shape="box"];40325[label="yuz123834",fontsize=16,color="green",shape="box"];40326[label="yuz123833",fontsize=16,color="green",shape="box"];40327[label="yuz123830",fontsize=16,color="green",shape="box"];40328[label="yuz123832",fontsize=16,color="green",shape="box"];40329[label="yuz123831",fontsize=16,color="green",shape="box"];40330 -> 38005[label="",style="dashed", color="red", weight=0]; 52.97/33.38 40330[label="FiniteMap.sIZE_RATIO",fontsize=16,color="magenta"];40331 -> 21597[label="",style="dashed", color="red", weight=0]; 52.97/33.38 40331[label="FiniteMap.mkVBalBranch3Size_l yuz12340 yuz12341 yuz12342 yuz12343 yuz12344 yuz123830 yuz123831 yuz123832 yuz123833 yuz123834",fontsize=16,color="magenta"];40331 -> 40339[label="",style="dashed", color="magenta", weight=3]; 52.97/33.38 40331 -> 40340[label="",style="dashed", color="magenta", weight=3]; 52.97/33.38 40331 -> 40341[label="",style="dashed", color="magenta", weight=3]; 52.97/33.38 40331 -> 40342[label="",style="dashed", color="magenta", weight=3]; 52.97/33.38 40331 -> 40343[label="",style="dashed", color="magenta", weight=3]; 52.97/33.38 40332[label="FiniteMap.mkBalBranch6Size_l yuz340 yuz341 yuz1565 yuz344",fontsize=16,color="black",shape="triangle"];40332 -> 40344[label="",style="solid", color="black", weight=3]; 52.97/33.38 40333[label="FiniteMap.mkBalBranch6Size_r yuz340 yuz341 yuz1565 yuz344",fontsize=16,color="black",shape="triangle"];40333 -> 40345[label="",style="solid", color="black", weight=3]; 52.97/33.38 38017[label="primPlusInt yuz1484 yuz1489",fontsize=16,color="burlywood",shape="triangle"];41172[label="yuz1484/Pos yuz14840",fontsize=10,color="white",style="solid",shape="box"];38017 -> 41172[label="",style="solid", color="burlywood", weight=9]; 52.97/33.38 41172 -> 38024[label="",style="solid", color="burlywood", weight=3]; 52.97/33.38 41173[label="yuz1484/Neg yuz14840",fontsize=10,color="white",style="solid",shape="box"];38017 -> 41173[label="",style="solid", color="burlywood", weight=9]; 52.97/33.38 41173 -> 38025[label="",style="solid", color="burlywood", weight=3]; 52.97/33.38 40335 -> 37615[label="",style="dashed", color="red", weight=0]; 52.97/33.38 40335[label="FiniteMap.mkBalBranch6Size_r yuz340 yuz341 yuz1565 yuz344 > FiniteMap.sIZE_RATIO * FiniteMap.mkBalBranch6Size_l yuz340 yuz341 yuz1565 yuz344",fontsize=16,color="magenta"];40335 -> 40346[label="",style="dashed", color="magenta", weight=3]; 52.97/33.38 40335 -> 40347[label="",style="dashed", color="magenta", weight=3]; 52.97/33.38 40334[label="FiniteMap.mkBalBranch6MkBalBranch4 yuz340 yuz341 yuz1565 yuz344 yuz340 yuz341 yuz1565 yuz344 yuz1567",fontsize=16,color="burlywood",shape="triangle"];41174[label="yuz1567/False",fontsize=10,color="white",style="solid",shape="box"];40334 -> 41174[label="",style="solid", color="burlywood", weight=9]; 52.97/33.38 41174 -> 40348[label="",style="solid", color="burlywood", weight=3]; 52.97/33.38 41175[label="yuz1567/True",fontsize=10,color="white",style="solid",shape="box"];40334 -> 41175[label="",style="solid", color="burlywood", weight=9]; 52.97/33.38 41175 -> 40349[label="",style="solid", color="burlywood", weight=3]; 52.97/33.38 40336 -> 37548[label="",style="dashed", color="red", weight=0]; 52.97/33.38 40336[label="FiniteMap.mkBranchResult yuz340 yuz341 yuz344 yuz1565",fontsize=16,color="magenta"];40336 -> 40378[label="",style="dashed", color="magenta", weight=3]; 52.97/33.38 38043[label="primMulNat (Succ yuz60000) yuz4010",fontsize=16,color="burlywood",shape="box"];41176[label="yuz4010/Succ yuz40100",fontsize=10,color="white",style="solid",shape="box"];38043 -> 41176[label="",style="solid", color="burlywood", weight=9]; 52.97/33.38 41176 -> 38223[label="",style="solid", color="burlywood", weight=3]; 52.97/33.38 41177[label="yuz4010/Zero",fontsize=10,color="white",style="solid",shape="box"];38043 -> 41177[label="",style="solid", color="burlywood", weight=9]; 52.97/33.38 41177 -> 38224[label="",style="solid", color="burlywood", weight=3]; 52.97/33.38 38044[label="primMulNat Zero yuz4010",fontsize=16,color="burlywood",shape="box"];41178[label="yuz4010/Succ yuz40100",fontsize=10,color="white",style="solid",shape="box"];38044 -> 41178[label="",style="solid", color="burlywood", weight=9]; 52.97/33.38 41178 -> 38225[label="",style="solid", color="burlywood", weight=3]; 52.97/33.38 41179[label="yuz4010/Zero",fontsize=10,color="white",style="solid",shape="box"];38044 -> 41179[label="",style="solid", color="burlywood", weight=9]; 52.97/33.38 41179 -> 38226[label="",style="solid", color="burlywood", weight=3]; 52.97/33.38 38045[label="yuz4010",fontsize=16,color="green",shape="box"];38046[label="yuz6000",fontsize=16,color="green",shape="box"];38047[label="yuz4010",fontsize=16,color="green",shape="box"];38048[label="yuz6000",fontsize=16,color="green",shape="box"];39951[label="FiniteMap.glueBal2 (FiniteMap.Branch yuz300 yuz301 yuz302 yuz303 yuz304) (FiniteMap.Branch yuz340 yuz341 yuz342 yuz343 yuz344)",fontsize=16,color="black",shape="box"];39951 -> 39971[label="",style="solid", color="black", weight=3]; 52.97/33.38 40217[label="FiniteMap.glueVBal5 FiniteMap.EmptyFM (FiniteMap.Branch yuz340 yuz341 yuz342 yuz343 yuz344)",fontsize=16,color="black",shape="box"];40217 -> 40257[label="",style="solid", color="black", weight=3]; 52.97/33.38 40218 -> 40212[label="",style="dashed", color="red", weight=0]; 52.97/33.38 40218[label="FiniteMap.glueVBal3 (FiniteMap.Branch yuz3040 yuz3041 yuz3042 yuz3043 yuz3044) (FiniteMap.Branch yuz340 yuz341 yuz342 yuz343 yuz344)",fontsize=16,color="magenta"];40218 -> 40258[label="",style="dashed", color="magenta", weight=3]; 52.97/33.38 40218 -> 40259[label="",style="dashed", color="magenta", weight=3]; 52.97/33.38 40218 -> 40260[label="",style="dashed", color="magenta", weight=3]; 52.97/33.38 40218 -> 40261[label="",style="dashed", color="magenta", weight=3]; 52.97/33.38 40218 -> 40262[label="",style="dashed", color="magenta", weight=3]; 52.97/33.38 40218 -> 40263[label="",style="dashed", color="magenta", weight=3]; 52.97/33.38 40218 -> 40264[label="",style="dashed", color="magenta", weight=3]; 52.97/33.38 40218 -> 40265[label="",style="dashed", color="magenta", weight=3]; 52.97/33.38 40218 -> 40266[label="",style="dashed", color="magenta", weight=3]; 52.97/33.38 40218 -> 40267[label="",style="dashed", color="magenta", weight=3]; 52.97/33.38 40337 -> 39901[label="",style="dashed", color="red", weight=0]; 52.97/33.38 40337[label="FiniteMap.glueVBal3Size_r yuz300 yuz301 yuz302 yuz303 yuz304 yuz3430 yuz3431 yuz3432 yuz3433 yuz3434",fontsize=16,color="magenta"];40337 -> 40379[label="",style="dashed", color="magenta", weight=3]; 52.97/33.38 40337 -> 40380[label="",style="dashed", color="magenta", weight=3]; 52.97/33.38 40337 -> 40381[label="",style="dashed", color="magenta", weight=3]; 52.97/33.38 40337 -> 40382[label="",style="dashed", color="magenta", weight=3]; 52.97/33.38 40337 -> 40383[label="",style="dashed", color="magenta", weight=3]; 52.97/33.38 40338 -> 37634[label="",style="dashed", color="red", weight=0]; 52.97/33.38 40338[label="FiniteMap.sIZE_RATIO * FiniteMap.glueVBal3Size_l yuz300 yuz301 yuz302 yuz303 yuz304 yuz3430 yuz3431 yuz3432 yuz3433 yuz3434",fontsize=16,color="magenta"];40338 -> 40384[label="",style="dashed", color="magenta", weight=3]; 52.97/33.38 40338 -> 40385[label="",style="dashed", color="magenta", weight=3]; 52.97/33.38 38088 -> 37775[label="",style="dashed", color="red", weight=0]; 52.97/33.38 38088[label="compare (yuz14400 * yuz14351) (yuz14350 * yuz14401)",fontsize=16,color="magenta"];38088 -> 38191[label="",style="dashed", color="magenta", weight=3]; 52.97/33.38 38088 -> 38192[label="",style="dashed", color="magenta", weight=3]; 52.97/33.38 38089 -> 37784[label="",style="dashed", color="red", weight=0]; 52.97/33.38 38089[label="compare (yuz14400 * yuz14351) (yuz14350 * yuz14401)",fontsize=16,color="magenta"];38089 -> 38193[label="",style="dashed", color="magenta", weight=3]; 52.97/33.38 38089 -> 38194[label="",style="dashed", color="magenta", weight=3]; 52.97/33.38 37789[label="error []",fontsize=16,color="red",shape="box"];37790[label="LT == GT",fontsize=16,color="black",shape="box"];37790 -> 37920[label="",style="solid", color="black", weight=3]; 52.97/33.38 37791[label="EQ == GT",fontsize=16,color="black",shape="box"];37791 -> 37921[label="",style="solid", color="black", weight=3]; 52.97/33.38 37792[label="GT == GT",fontsize=16,color="black",shape="box"];37792 -> 37922[label="",style="solid", color="black", weight=3]; 52.97/33.38 37793[label="error []",fontsize=16,color="red",shape="box"];37794[label="error []",fontsize=16,color="red",shape="box"];37795[label="error []",fontsize=16,color="red",shape="box"];37796[label="error []",fontsize=16,color="red",shape="box"];37797[label="error []",fontsize=16,color="red",shape="box"];37798[label="error []",fontsize=16,color="red",shape="box"];37799[label="error []",fontsize=16,color="red",shape="box"];37800[label="error []",fontsize=16,color="red",shape="box"];37801[label="error []",fontsize=16,color="red",shape="box"];37804[label="error []",fontsize=16,color="red",shape="box"];37805[label="error []",fontsize=16,color="red",shape="box"];37738[label="FiniteMap.Branch yuz1464 (FiniteMap.addToFM0 yuz1460 yuz1465) yuz1461 yuz1462 yuz1463",fontsize=16,color="green",shape="box"];37738 -> 37755[label="",style="dashed", color="green", weight=3]; 52.97/33.38 40197[label="yuz1464",fontsize=16,color="green",shape="box"];40198[label="yuz1463",fontsize=16,color="green",shape="box"];40199[label="yuz1465",fontsize=16,color="green",shape="box"];40295[label="FiniteMap.Branch yuz1440 yuz1441 (Pos (Succ Zero)) FiniteMap.emptyFM FiniteMap.emptyFM",fontsize=16,color="green",shape="box"];40295 -> 40350[label="",style="dashed", color="green", weight=3]; 52.97/33.38 40295 -> 40351[label="",style="dashed", color="green", weight=3]; 52.97/33.38 40296[label="yuz14380",fontsize=16,color="green",shape="box"];40297[label="yuz14381",fontsize=16,color="green",shape="box"];40298[label="yuz14382",fontsize=16,color="green",shape="box"];40299[label="yuz14383",fontsize=16,color="green",shape="box"];40300[label="yuz14384",fontsize=16,color="green",shape="box"];40301[label="yuz1440 < yuz14380",fontsize=16,color="blue",shape="box"];41180[label="< :: Float -> Float -> Bool",fontsize=10,color="white",style="solid",shape="box"];40301 -> 41180[label="",style="solid", color="blue", weight=9]; 52.97/33.38 41180 -> 40352[label="",style="solid", color="blue", weight=3]; 52.97/33.38 41181[label="< :: Double -> Double -> Bool",fontsize=10,color="white",style="solid",shape="box"];40301 -> 41181[label="",style="solid", color="blue", weight=9]; 52.97/33.38 41181 -> 40353[label="",style="solid", color="blue", weight=3]; 52.97/33.38 41182[label="< :: Integer -> Integer -> Bool",fontsize=10,color="white",style="solid",shape="box"];40301 -> 41182[label="",style="solid", color="blue", weight=9]; 52.97/33.38 41182 -> 40354[label="",style="solid", color="blue", weight=3]; 52.97/33.38 41183[label="< :: (Either a b) -> (Either a b) -> Bool",fontsize=10,color="white",style="solid",shape="box"];40301 -> 41183[label="",style="solid", color="blue", weight=9]; 52.97/33.38 41183 -> 40355[label="",style="solid", color="blue", weight=3]; 52.97/33.38 41184[label="< :: ((@2) a b) -> ((@2) a b) -> Bool",fontsize=10,color="white",style="solid",shape="box"];40301 -> 41184[label="",style="solid", color="blue", weight=9]; 52.97/33.38 41184 -> 40356[label="",style="solid", color="blue", weight=3]; 52.97/33.38 41185[label="< :: () -> () -> Bool",fontsize=10,color="white",style="solid",shape="box"];40301 -> 41185[label="",style="solid", color="blue", weight=9]; 52.97/33.38 41185 -> 40357[label="",style="solid", color="blue", weight=3]; 52.97/33.38 41186[label="< :: ([] a) -> ([] a) -> Bool",fontsize=10,color="white",style="solid",shape="box"];40301 -> 41186[label="",style="solid", color="blue", weight=9]; 52.97/33.38 41186 -> 40358[label="",style="solid", color="blue", weight=3]; 52.97/33.38 41187[label="< :: Bool -> Bool -> Bool",fontsize=10,color="white",style="solid",shape="box"];40301 -> 41187[label="",style="solid", color="blue", weight=9]; 52.97/33.38 41187 -> 40359[label="",style="solid", color="blue", weight=3]; 52.97/33.38 41188[label="< :: ((@3) a b c) -> ((@3) a b c) -> Bool",fontsize=10,color="white",style="solid",shape="box"];40301 -> 41188[label="",style="solid", color="blue", weight=9]; 52.97/33.38 41188 -> 40360[label="",style="solid", color="blue", weight=3]; 52.97/33.38 41189[label="< :: Char -> Char -> Bool",fontsize=10,color="white",style="solid",shape="box"];40301 -> 41189[label="",style="solid", color="blue", weight=9]; 52.97/33.38 41189 -> 40361[label="",style="solid", color="blue", weight=3]; 52.97/33.38 41190[label="< :: (Ratio a) -> (Ratio a) -> Bool",fontsize=10,color="white",style="solid",shape="box"];40301 -> 41190[label="",style="solid", color="blue", weight=9]; 52.97/33.38 41190 -> 40362[label="",style="solid", color="blue", weight=3]; 52.97/33.38 41191[label="< :: Int -> Int -> Bool",fontsize=10,color="white",style="solid",shape="box"];40301 -> 41191[label="",style="solid", color="blue", weight=9]; 52.97/33.38 41191 -> 40363[label="",style="solid", color="blue", weight=3]; 52.97/33.38 41192[label="< :: (Maybe a) -> (Maybe a) -> Bool",fontsize=10,color="white",style="solid",shape="box"];40301 -> 41192[label="",style="solid", color="blue", weight=9]; 52.97/33.38 41192 -> 40364[label="",style="solid", color="blue", weight=3]; 52.97/33.38 41193[label="< :: Ordering -> Ordering -> Bool",fontsize=10,color="white",style="solid",shape="box"];40301 -> 41193[label="",style="solid", color="blue", weight=9]; 52.97/33.38 41193 -> 40365[label="",style="solid", color="blue", weight=3]; 52.97/33.38 37744 -> 2964[label="",style="dashed", color="red", weight=0]; 52.97/33.38 37744[label="primMulNat (Succ (Succ (Succ (Succ Zero)))) (Succ yuz142500)",fontsize=16,color="magenta"];37744 -> 37766[label="",style="dashed", color="magenta", weight=3]; 52.97/33.38 37744 -> 37767[label="",style="dashed", color="magenta", weight=3]; 52.97/33.38 37745[label="Succ yuz142500",fontsize=16,color="green",shape="box"];3194[label="primPlusNat yuz1120 yuz60100",fontsize=16,color="burlywood",shape="triangle"];41194[label="yuz1120/Succ yuz11200",fontsize=10,color="white",style="solid",shape="box"];3194 -> 41194[label="",style="solid", color="burlywood", weight=9]; 52.97/33.38 41194 -> 3205[label="",style="solid", color="burlywood", weight=3]; 52.97/33.38 41195[label="yuz1120/Zero",fontsize=10,color="white",style="solid",shape="box"];3194 -> 41195[label="",style="solid", color="burlywood", weight=9]; 52.97/33.38 41195 -> 3206[label="",style="solid", color="burlywood", weight=3]; 52.97/33.38 38306[label="primCmpNat (Succ yuz144000) (Succ yuz143500)",fontsize=16,color="black",shape="box"];38306 -> 38403[label="",style="solid", color="black", weight=3]; 52.97/33.38 38307[label="primCmpNat (Succ yuz144000) Zero",fontsize=16,color="black",shape="box"];38307 -> 38404[label="",style="solid", color="black", weight=3]; 52.97/33.38 38308 -> 38202[label="",style="dashed", color="red", weight=0]; 52.97/33.38 38308[label="primCmpNat Zero (Succ yuz143500)",fontsize=16,color="magenta"];38308 -> 38405[label="",style="dashed", color="magenta", weight=3]; 52.97/33.38 38308 -> 38406[label="",style="dashed", color="magenta", weight=3]; 52.97/33.38 38309[label="EQ",fontsize=16,color="green",shape="box"];38310[label="GT",fontsize=16,color="green",shape="box"];38311[label="EQ",fontsize=16,color="green",shape="box"];38312[label="primCmpNat (Succ yuz143500) (Succ yuz144000)",fontsize=16,color="black",shape="box"];38312 -> 38407[label="",style="solid", color="black", weight=3]; 52.97/33.38 38313[label="primCmpNat Zero (Succ yuz144000)",fontsize=16,color="black",shape="box"];38313 -> 38408[label="",style="solid", color="black", weight=3]; 52.97/33.38 38314[label="LT",fontsize=16,color="green",shape="box"];38315[label="EQ",fontsize=16,color="green",shape="box"];38316 -> 38195[label="",style="dashed", color="red", weight=0]; 52.97/33.38 38316[label="primCmpNat (Succ yuz143500) Zero",fontsize=16,color="magenta"];38316 -> 38409[label="",style="dashed", color="magenta", weight=3]; 52.97/33.38 38316 -> 38410[label="",style="dashed", color="magenta", weight=3]; 52.97/33.38 38317[label="EQ",fontsize=16,color="green",shape="box"];37553[label="yuz1378",fontsize=16,color="green",shape="box"];37554[label="yuz1379",fontsize=16,color="green",shape="box"];37555[label="FiniteMap.Branch yuz1385 yuz1386 yuz1387 yuz1388 yuz1389",fontsize=16,color="green",shape="box"];37556[label="FiniteMap.Branch yuz1380 yuz1381 yuz1382 yuz1383 yuz1384",fontsize=16,color="green",shape="box"];37548[label="FiniteMap.mkBranchResult yuz340 yuz341 yuz344 yuz1449",fontsize=16,color="black",shape="triangle"];37548 -> 37620[label="",style="solid", color="black", weight=3]; 52.97/33.38 40302[label="yuz12383",fontsize=16,color="green",shape="box"];40303[label="yuz12380",fontsize=16,color="green",shape="box"];40304[label="yuz12381",fontsize=16,color="green",shape="box"];40305[label="yuz12382",fontsize=16,color="green",shape="box"];40306[label="yuz12384",fontsize=16,color="green",shape="box"];40339[label="yuz123834",fontsize=16,color="green",shape="box"];40340[label="yuz123833",fontsize=16,color="green",shape="box"];40341[label="yuz123830",fontsize=16,color="green",shape="box"];40342[label="yuz123832",fontsize=16,color="green",shape="box"];40343[label="yuz123831",fontsize=16,color="green",shape="box"];40344 -> 37455[label="",style="dashed", color="red", weight=0]; 52.97/33.38 40344[label="FiniteMap.sizeFM yuz1565",fontsize=16,color="magenta"];40344 -> 40386[label="",style="dashed", color="magenta", weight=3]; 52.97/33.38 40345 -> 37455[label="",style="dashed", color="red", weight=0]; 52.97/33.38 40345[label="FiniteMap.sizeFM yuz344",fontsize=16,color="magenta"];40345 -> 40387[label="",style="dashed", color="magenta", weight=3]; 52.97/33.38 38024[label="primPlusInt (Pos yuz14840) yuz1489",fontsize=16,color="burlywood",shape="box"];41196[label="yuz1489/Pos yuz14890",fontsize=10,color="white",style="solid",shape="box"];38024 -> 41196[label="",style="solid", color="burlywood", weight=9]; 52.97/33.38 41196 -> 38071[label="",style="solid", color="burlywood", weight=3]; 52.97/33.38 41197[label="yuz1489/Neg yuz14890",fontsize=10,color="white",style="solid",shape="box"];38024 -> 41197[label="",style="solid", color="burlywood", weight=9]; 52.97/33.38 41197 -> 38072[label="",style="solid", color="burlywood", weight=3]; 52.97/33.38 38025[label="primPlusInt (Neg yuz14840) yuz1489",fontsize=16,color="burlywood",shape="box"];41198[label="yuz1489/Pos yuz14890",fontsize=10,color="white",style="solid",shape="box"];38025 -> 41198[label="",style="solid", color="burlywood", weight=9]; 52.97/33.38 41198 -> 38073[label="",style="solid", color="burlywood", weight=3]; 52.97/33.38 41199[label="yuz1489/Neg yuz14890",fontsize=10,color="white",style="solid",shape="box"];38025 -> 41199[label="",style="solid", color="burlywood", weight=9]; 52.97/33.38 41199 -> 38074[label="",style="solid", color="burlywood", weight=3]; 52.97/33.38 40346 -> 37634[label="",style="dashed", color="red", weight=0]; 52.97/33.38 40346[label="FiniteMap.sIZE_RATIO * FiniteMap.mkBalBranch6Size_l yuz340 yuz341 yuz1565 yuz344",fontsize=16,color="magenta"];40346 -> 40388[label="",style="dashed", color="magenta", weight=3]; 52.97/33.38 40346 -> 40389[label="",style="dashed", color="magenta", weight=3]; 52.97/33.38 40347 -> 40333[label="",style="dashed", color="red", weight=0]; 52.97/33.38 40347[label="FiniteMap.mkBalBranch6Size_r yuz340 yuz341 yuz1565 yuz344",fontsize=16,color="magenta"];40348[label="FiniteMap.mkBalBranch6MkBalBranch4 yuz340 yuz341 yuz1565 yuz344 yuz340 yuz341 yuz1565 yuz344 False",fontsize=16,color="black",shape="box"];40348 -> 40390[label="",style="solid", color="black", weight=3]; 52.97/33.38 40349[label="FiniteMap.mkBalBranch6MkBalBranch4 yuz340 yuz341 yuz1565 yuz344 yuz340 yuz341 yuz1565 yuz344 True",fontsize=16,color="black",shape="box"];40349 -> 40391[label="",style="solid", color="black", weight=3]; 52.97/33.38 40378[label="yuz1565",fontsize=16,color="green",shape="box"];38223[label="primMulNat (Succ yuz60000) (Succ yuz40100)",fontsize=16,color="black",shape="box"];38223 -> 38319[label="",style="solid", color="black", weight=3]; 52.97/33.38 38224[label="primMulNat (Succ yuz60000) Zero",fontsize=16,color="black",shape="box"];38224 -> 38320[label="",style="solid", color="black", weight=3]; 52.97/33.38 38225[label="primMulNat Zero (Succ yuz40100)",fontsize=16,color="black",shape="box"];38225 -> 38321[label="",style="solid", color="black", weight=3]; 52.97/33.38 38226[label="primMulNat Zero Zero",fontsize=16,color="black",shape="box"];38226 -> 38322[label="",style="solid", color="black", weight=3]; 52.97/33.38 39971 -> 39984[label="",style="dashed", color="red", weight=0]; 52.97/33.38 39971[label="FiniteMap.glueBal2GlueBal1 (FiniteMap.Branch yuz300 yuz301 yuz302 yuz303 yuz304) (FiniteMap.Branch yuz340 yuz341 yuz342 yuz343 yuz344) (FiniteMap.Branch yuz300 yuz301 yuz302 yuz303 yuz304) (FiniteMap.Branch yuz340 yuz341 yuz342 yuz343 yuz344) (FiniteMap.sizeFM (FiniteMap.Branch yuz340 yuz341 yuz342 yuz343 yuz344) > FiniteMap.sizeFM (FiniteMap.Branch yuz300 yuz301 yuz302 yuz303 yuz304))",fontsize=16,color="magenta"];39971 -> 39985[label="",style="dashed", color="magenta", weight=3]; 52.97/33.38 40257[label="FiniteMap.Branch yuz340 yuz341 yuz342 yuz343 yuz344",fontsize=16,color="green",shape="box"];40258[label="yuz3043",fontsize=16,color="green",shape="box"];40259[label="yuz3044",fontsize=16,color="green",shape="box"];40260[label="yuz343",fontsize=16,color="green",shape="box"];40261[label="yuz344",fontsize=16,color="green",shape="box"];40262[label="yuz342",fontsize=16,color="green",shape="box"];40263[label="yuz340",fontsize=16,color="green",shape="box"];40264[label="yuz3040",fontsize=16,color="green",shape="box"];40265[label="yuz341",fontsize=16,color="green",shape="box"];40266[label="yuz3042",fontsize=16,color="green",shape="box"];40267[label="yuz3041",fontsize=16,color="green",shape="box"];40379[label="yuz3432",fontsize=16,color="green",shape="box"];40380[label="yuz3433",fontsize=16,color="green",shape="box"];40381[label="yuz3430",fontsize=16,color="green",shape="box"];40382[label="yuz3431",fontsize=16,color="green",shape="box"];40383[label="yuz3434",fontsize=16,color="green",shape="box"];40384 -> 38005[label="",style="dashed", color="red", weight=0]; 52.97/33.38 40384[label="FiniteMap.sIZE_RATIO",fontsize=16,color="magenta"];40385 -> 39859[label="",style="dashed", color="red", weight=0]; 52.97/33.38 40385[label="FiniteMap.glueVBal3Size_l yuz300 yuz301 yuz302 yuz303 yuz304 yuz3430 yuz3431 yuz3432 yuz3433 yuz3434",fontsize=16,color="magenta"];40385 -> 40416[label="",style="dashed", color="magenta", weight=3]; 52.97/33.38 40385 -> 40417[label="",style="dashed", color="magenta", weight=3]; 52.97/33.38 40385 -> 40418[label="",style="dashed", color="magenta", weight=3]; 52.97/33.38 40385 -> 40419[label="",style="dashed", color="magenta", weight=3]; 52.97/33.38 40385 -> 40420[label="",style="dashed", color="magenta", weight=3]; 52.97/33.38 38191[label="yuz14350 * yuz14401",fontsize=16,color="black",shape="triangle"];38191 -> 38299[label="",style="solid", color="black", weight=3]; 52.97/33.38 38192 -> 38191[label="",style="dashed", color="red", weight=0]; 52.97/33.38 38192[label="yuz14400 * yuz14351",fontsize=16,color="magenta"];38192 -> 38300[label="",style="dashed", color="magenta", weight=3]; 52.97/33.38 38192 -> 38301[label="",style="dashed", color="magenta", weight=3]; 52.97/33.38 38193 -> 37634[label="",style="dashed", color="red", weight=0]; 52.97/33.38 38193[label="yuz14350 * yuz14401",fontsize=16,color="magenta"];38193 -> 38302[label="",style="dashed", color="magenta", weight=3]; 52.97/33.38 38193 -> 38303[label="",style="dashed", color="magenta", weight=3]; 52.97/33.38 38194 -> 37634[label="",style="dashed", color="red", weight=0]; 52.97/33.38 38194[label="yuz14400 * yuz14351",fontsize=16,color="magenta"];38194 -> 38304[label="",style="dashed", color="magenta", weight=3]; 52.97/33.38 38194 -> 38305[label="",style="dashed", color="magenta", weight=3]; 52.97/33.38 37920[label="False",fontsize=16,color="green",shape="box"];37921[label="False",fontsize=16,color="green",shape="box"];37922[label="True",fontsize=16,color="green",shape="box"];37755[label="FiniteMap.addToFM0 yuz1460 yuz1465",fontsize=16,color="black",shape="box"];37755 -> 37806[label="",style="solid", color="black", weight=3]; 52.97/33.38 40350[label="FiniteMap.emptyFM",fontsize=16,color="black",shape="triangle"];40350 -> 40392[label="",style="solid", color="black", weight=3]; 52.97/33.38 40351 -> 40350[label="",style="dashed", color="red", weight=0]; 52.97/33.38 40351[label="FiniteMap.emptyFM",fontsize=16,color="magenta"];40352[label="yuz1440 < yuz14380",fontsize=16,color="black",shape="box"];40352 -> 40393[label="",style="solid", color="black", weight=3]; 52.97/33.38 40353[label="yuz1440 < yuz14380",fontsize=16,color="black",shape="box"];40353 -> 40394[label="",style="solid", color="black", weight=3]; 52.97/33.38 40354[label="yuz1440 < yuz14380",fontsize=16,color="black",shape="box"];40354 -> 40395[label="",style="solid", color="black", weight=3]; 52.97/33.38 40355[label="yuz1440 < yuz14380",fontsize=16,color="black",shape="box"];40355 -> 40396[label="",style="solid", color="black", weight=3]; 52.97/33.38 40356[label="yuz1440 < yuz14380",fontsize=16,color="black",shape="box"];40356 -> 40397[label="",style="solid", color="black", weight=3]; 52.97/33.38 40357[label="yuz1440 < yuz14380",fontsize=16,color="black",shape="box"];40357 -> 40398[label="",style="solid", color="black", weight=3]; 52.97/33.38 40358[label="yuz1440 < yuz14380",fontsize=16,color="black",shape="box"];40358 -> 40399[label="",style="solid", color="black", weight=3]; 52.97/33.38 40359[label="yuz1440 < yuz14380",fontsize=16,color="black",shape="box"];40359 -> 40400[label="",style="solid", color="black", weight=3]; 52.97/33.38 40360[label="yuz1440 < yuz14380",fontsize=16,color="black",shape="box"];40360 -> 40401[label="",style="solid", color="black", weight=3]; 52.97/33.38 40361[label="yuz1440 < yuz14380",fontsize=16,color="black",shape="box"];40361 -> 40402[label="",style="solid", color="black", weight=3]; 52.97/33.38 40362[label="yuz1440 < yuz14380",fontsize=16,color="black",shape="box"];40362 -> 40403[label="",style="solid", color="black", weight=3]; 52.97/33.38 40363 -> 13680[label="",style="dashed", color="red", weight=0]; 52.97/33.38 40363[label="yuz1440 < yuz14380",fontsize=16,color="magenta"];40363 -> 40404[label="",style="dashed", color="magenta", weight=3]; 52.97/33.38 40363 -> 40405[label="",style="dashed", color="magenta", weight=3]; 52.97/33.38 40364[label="yuz1440 < yuz14380",fontsize=16,color="black",shape="box"];40364 -> 40406[label="",style="solid", color="black", weight=3]; 52.97/33.38 40365[label="yuz1440 < yuz14380",fontsize=16,color="black",shape="box"];40365 -> 40407[label="",style="solid", color="black", weight=3]; 52.97/33.38 37766[label="Succ (Succ (Succ (Succ Zero)))",fontsize=16,color="green",shape="box"];37767[label="yuz142500",fontsize=16,color="green",shape="box"];2964[label="primMulNat yuz40000 (Succ yuz60100)",fontsize=16,color="burlywood",shape="triangle"];41200[label="yuz40000/Succ yuz400000",fontsize=10,color="white",style="solid",shape="box"];2964 -> 41200[label="",style="solid", color="burlywood", weight=9]; 52.97/33.38 41200 -> 3124[label="",style="solid", color="burlywood", weight=3]; 52.97/33.38 41201[label="yuz40000/Zero",fontsize=10,color="white",style="solid",shape="box"];2964 -> 41201[label="",style="solid", color="burlywood", weight=9]; 52.97/33.38 41201 -> 3125[label="",style="solid", color="burlywood", weight=3]; 52.97/33.38 3205[label="primPlusNat (Succ yuz11200) yuz60100",fontsize=16,color="burlywood",shape="box"];41202[label="yuz60100/Succ yuz601000",fontsize=10,color="white",style="solid",shape="box"];3205 -> 41202[label="",style="solid", color="burlywood", weight=9]; 52.97/33.38 41202 -> 3221[label="",style="solid", color="burlywood", weight=3]; 52.97/33.38 41203[label="yuz60100/Zero",fontsize=10,color="white",style="solid",shape="box"];3205 -> 41203[label="",style="solid", color="burlywood", weight=9]; 52.97/33.38 41203 -> 3222[label="",style="solid", color="burlywood", weight=3]; 52.97/33.38 3206[label="primPlusNat Zero yuz60100",fontsize=16,color="burlywood",shape="box"];41204[label="yuz60100/Succ yuz601000",fontsize=10,color="white",style="solid",shape="box"];3206 -> 41204[label="",style="solid", color="burlywood", weight=9]; 52.97/33.38 41204 -> 3223[label="",style="solid", color="burlywood", weight=3]; 52.97/33.38 41205[label="yuz60100/Zero",fontsize=10,color="white",style="solid",shape="box"];3206 -> 41205[label="",style="solid", color="burlywood", weight=9]; 52.97/33.38 41205 -> 3224[label="",style="solid", color="burlywood", weight=3]; 52.97/33.38 38403 -> 38370[label="",style="dashed", color="red", weight=0]; 52.97/33.38 38403[label="primCmpNat yuz144000 yuz143500",fontsize=16,color="magenta"];38403 -> 38470[label="",style="dashed", color="magenta", weight=3]; 52.97/33.38 38403 -> 38471[label="",style="dashed", color="magenta", weight=3]; 52.97/33.38 38404[label="GT",fontsize=16,color="green",shape="box"];38405[label="Zero",fontsize=16,color="green",shape="box"];38406[label="yuz143500",fontsize=16,color="green",shape="box"];38407 -> 38370[label="",style="dashed", color="red", weight=0]; 52.97/33.38 38407[label="primCmpNat yuz143500 yuz144000",fontsize=16,color="magenta"];38407 -> 38472[label="",style="dashed", color="magenta", weight=3]; 52.97/33.38 38407 -> 38473[label="",style="dashed", color="magenta", weight=3]; 52.97/33.38 38408[label="LT",fontsize=16,color="green",shape="box"];38409[label="yuz143500",fontsize=16,color="green",shape="box"];38410[label="Zero",fontsize=16,color="green",shape="box"];37620[label="FiniteMap.Branch yuz340 yuz341 (FiniteMap.mkBranchUnbox yuz344 yuz340 yuz1449 (Pos (Succ Zero) + FiniteMap.mkBranchLeft_size yuz344 yuz340 yuz1449 + FiniteMap.mkBranchRight_size yuz344 yuz340 yuz1449)) yuz1449 yuz344",fontsize=16,color="green",shape="box"];37620 -> 37653[label="",style="dashed", color="green", weight=3]; 52.97/33.38 40386[label="yuz1565",fontsize=16,color="green",shape="box"];40387[label="yuz344",fontsize=16,color="green",shape="box"];38071[label="primPlusInt (Pos yuz14840) (Pos yuz14890)",fontsize=16,color="black",shape="box"];38071 -> 38080[label="",style="solid", color="black", weight=3]; 52.97/33.38 38072[label="primPlusInt (Pos yuz14840) (Neg yuz14890)",fontsize=16,color="black",shape="box"];38072 -> 38081[label="",style="solid", color="black", weight=3]; 52.97/33.38 38073[label="primPlusInt (Neg yuz14840) (Pos yuz14890)",fontsize=16,color="black",shape="box"];38073 -> 38082[label="",style="solid", color="black", weight=3]; 52.97/33.38 38074[label="primPlusInt (Neg yuz14840) (Neg yuz14890)",fontsize=16,color="black",shape="box"];38074 -> 38083[label="",style="solid", color="black", weight=3]; 52.97/33.38 40388 -> 38005[label="",style="dashed", color="red", weight=0]; 52.97/33.38 40388[label="FiniteMap.sIZE_RATIO",fontsize=16,color="magenta"];40389 -> 40332[label="",style="dashed", color="red", weight=0]; 52.97/33.38 40389[label="FiniteMap.mkBalBranch6Size_l yuz340 yuz341 yuz1565 yuz344",fontsize=16,color="magenta"];40390 -> 40421[label="",style="dashed", color="red", weight=0]; 52.97/33.38 40390[label="FiniteMap.mkBalBranch6MkBalBranch3 yuz340 yuz341 yuz1565 yuz344 yuz340 yuz341 yuz1565 yuz344 (FiniteMap.mkBalBranch6Size_l yuz340 yuz341 yuz1565 yuz344 > FiniteMap.sIZE_RATIO * FiniteMap.mkBalBranch6Size_r yuz340 yuz341 yuz1565 yuz344)",fontsize=16,color="magenta"];40390 -> 40422[label="",style="dashed", color="magenta", weight=3]; 52.97/33.38 40391[label="FiniteMap.mkBalBranch6MkBalBranch0 yuz340 yuz341 yuz1565 yuz344 yuz1565 yuz344 yuz344",fontsize=16,color="burlywood",shape="box"];41206[label="yuz344/FiniteMap.EmptyFM",fontsize=10,color="white",style="solid",shape="box"];40391 -> 41206[label="",style="solid", color="burlywood", weight=9]; 52.97/33.38 41206 -> 40423[label="",style="solid", color="burlywood", weight=3]; 52.97/33.38 41207[label="yuz344/FiniteMap.Branch yuz3440 yuz3441 yuz3442 yuz3443 yuz3444",fontsize=10,color="white",style="solid",shape="box"];40391 -> 41207[label="",style="solid", color="burlywood", weight=9]; 52.97/33.38 41207 -> 40424[label="",style="solid", color="burlywood", weight=3]; 52.97/33.38 38319 -> 3194[label="",style="dashed", color="red", weight=0]; 52.97/33.38 38319[label="primPlusNat (primMulNat yuz60000 (Succ yuz40100)) (Succ yuz40100)",fontsize=16,color="magenta"];38319 -> 38460[label="",style="dashed", color="magenta", weight=3]; 52.97/33.38 38319 -> 38461[label="",style="dashed", color="magenta", weight=3]; 52.97/33.38 38320[label="Zero",fontsize=16,color="green",shape="box"];38321[label="Zero",fontsize=16,color="green",shape="box"];38322[label="Zero",fontsize=16,color="green",shape="box"];39985 -> 37615[label="",style="dashed", color="red", weight=0]; 52.97/33.38 39985[label="FiniteMap.sizeFM (FiniteMap.Branch yuz340 yuz341 yuz342 yuz343 yuz344) > FiniteMap.sizeFM (FiniteMap.Branch yuz300 yuz301 yuz302 yuz303 yuz304)",fontsize=16,color="magenta"];39985 -> 40001[label="",style="dashed", color="magenta", weight=3]; 52.97/33.38 39985 -> 40002[label="",style="dashed", color="magenta", weight=3]; 52.97/33.38 39984[label="FiniteMap.glueBal2GlueBal1 (FiniteMap.Branch yuz300 yuz301 yuz302 yuz303 yuz304) (FiniteMap.Branch yuz340 yuz341 yuz342 yuz343 yuz344) (FiniteMap.Branch yuz300 yuz301 yuz302 yuz303 yuz304) (FiniteMap.Branch yuz340 yuz341 yuz342 yuz343 yuz344) yuz1554",fontsize=16,color="burlywood",shape="triangle"];41208[label="yuz1554/False",fontsize=10,color="white",style="solid",shape="box"];39984 -> 41208[label="",style="solid", color="burlywood", weight=9]; 52.97/33.38 41208 -> 40003[label="",style="solid", color="burlywood", weight=3]; 52.97/33.38 41209[label="yuz1554/True",fontsize=10,color="white",style="solid",shape="box"];39984 -> 41209[label="",style="solid", color="burlywood", weight=9]; 52.97/33.38 41209 -> 40004[label="",style="solid", color="burlywood", weight=3]; 52.97/33.38 40416[label="yuz3432",fontsize=16,color="green",shape="box"];40417[label="yuz3433",fontsize=16,color="green",shape="box"];40418[label="yuz3430",fontsize=16,color="green",shape="box"];40419[label="yuz3431",fontsize=16,color="green",shape="box"];40420[label="yuz3434",fontsize=16,color="green",shape="box"];38299[label="error []",fontsize=16,color="red",shape="box"];38300[label="yuz14400",fontsize=16,color="green",shape="box"];38301[label="yuz14351",fontsize=16,color="green",shape="box"];38302[label="yuz14350",fontsize=16,color="green",shape="box"];38303[label="yuz14401",fontsize=16,color="green",shape="box"];38304[label="yuz14400",fontsize=16,color="green",shape="box"];38305[label="yuz14351",fontsize=16,color="green",shape="box"];37806[label="yuz1465",fontsize=16,color="green",shape="box"];40392[label="FiniteMap.EmptyFM",fontsize=16,color="green",shape="box"];40393 -> 38331[label="",style="dashed", color="red", weight=0]; 52.97/33.38 40393[label="compare yuz1440 yuz14380 == LT",fontsize=16,color="magenta"];40393 -> 40425[label="",style="dashed", color="magenta", weight=3]; 52.97/33.38 40394 -> 38331[label="",style="dashed", color="red", weight=0]; 52.97/33.38 40394[label="compare yuz1440 yuz14380 == LT",fontsize=16,color="magenta"];40394 -> 40426[label="",style="dashed", color="magenta", weight=3]; 52.97/33.38 40395 -> 38331[label="",style="dashed", color="red", weight=0]; 52.97/33.38 40395[label="compare yuz1440 yuz14380 == LT",fontsize=16,color="magenta"];40395 -> 40427[label="",style="dashed", color="magenta", weight=3]; 52.97/33.38 40396 -> 38331[label="",style="dashed", color="red", weight=0]; 52.97/33.38 40396[label="compare yuz1440 yuz14380 == LT",fontsize=16,color="magenta"];40396 -> 40428[label="",style="dashed", color="magenta", weight=3]; 52.97/33.38 40397 -> 38331[label="",style="dashed", color="red", weight=0]; 52.97/33.38 40397[label="compare yuz1440 yuz14380 == LT",fontsize=16,color="magenta"];40397 -> 40429[label="",style="dashed", color="magenta", weight=3]; 52.97/33.38 40398 -> 38331[label="",style="dashed", color="red", weight=0]; 52.97/33.38 40398[label="compare yuz1440 yuz14380 == LT",fontsize=16,color="magenta"];40398 -> 40430[label="",style="dashed", color="magenta", weight=3]; 52.97/33.38 40399 -> 38331[label="",style="dashed", color="red", weight=0]; 52.97/33.38 40399[label="compare yuz1440 yuz14380 == LT",fontsize=16,color="magenta"];40399 -> 40431[label="",style="dashed", color="magenta", weight=3]; 52.97/33.38 40400 -> 38331[label="",style="dashed", color="red", weight=0]; 52.97/33.38 40400[label="compare yuz1440 yuz14380 == LT",fontsize=16,color="magenta"];40400 -> 40432[label="",style="dashed", color="magenta", weight=3]; 52.97/33.38 40401 -> 38331[label="",style="dashed", color="red", weight=0]; 52.97/33.38 40401[label="compare yuz1440 yuz14380 == LT",fontsize=16,color="magenta"];40401 -> 40433[label="",style="dashed", color="magenta", weight=3]; 52.97/33.38 40402 -> 38331[label="",style="dashed", color="red", weight=0]; 52.97/33.38 40402[label="compare yuz1440 yuz14380 == LT",fontsize=16,color="magenta"];40402 -> 40434[label="",style="dashed", color="magenta", weight=3]; 52.97/33.38 40403 -> 38331[label="",style="dashed", color="red", weight=0]; 52.97/33.38 40403[label="compare yuz1440 yuz14380 == LT",fontsize=16,color="magenta"];40403 -> 40435[label="",style="dashed", color="magenta", weight=3]; 52.97/33.38 40404[label="yuz14380",fontsize=16,color="green",shape="box"];40405[label="yuz1440",fontsize=16,color="green",shape="box"];40406 -> 38331[label="",style="dashed", color="red", weight=0]; 52.97/33.38 40406[label="compare yuz1440 yuz14380 == LT",fontsize=16,color="magenta"];40406 -> 40436[label="",style="dashed", color="magenta", weight=3]; 52.97/33.38 40407 -> 38331[label="",style="dashed", color="red", weight=0]; 52.97/33.38 40407[label="compare yuz1440 yuz14380 == LT",fontsize=16,color="magenta"];40407 -> 40437[label="",style="dashed", color="magenta", weight=3]; 52.97/33.38 3124[label="primMulNat (Succ yuz400000) (Succ yuz60100)",fontsize=16,color="black",shape="box"];3124 -> 3130[label="",style="solid", color="black", weight=3]; 52.97/33.38 3125[label="primMulNat Zero (Succ yuz60100)",fontsize=16,color="black",shape="box"];3125 -> 3131[label="",style="solid", color="black", weight=3]; 52.97/33.38 3221[label="primPlusNat (Succ yuz11200) (Succ yuz601000)",fontsize=16,color="black",shape="box"];3221 -> 3227[label="",style="solid", color="black", weight=3]; 52.97/33.38 3222[label="primPlusNat (Succ yuz11200) Zero",fontsize=16,color="black",shape="box"];3222 -> 3228[label="",style="solid", color="black", weight=3]; 52.97/33.38 3223[label="primPlusNat Zero (Succ yuz601000)",fontsize=16,color="black",shape="box"];3223 -> 3229[label="",style="solid", color="black", weight=3]; 52.97/33.38 3224[label="primPlusNat Zero Zero",fontsize=16,color="black",shape="box"];3224 -> 3230[label="",style="solid", color="black", weight=3]; 52.97/33.38 38470[label="yuz144000",fontsize=16,color="green",shape="box"];38471[label="yuz143500",fontsize=16,color="green",shape="box"];38370[label="primCmpNat yuz280 yuz33000",fontsize=16,color="burlywood",shape="triangle"];41210[label="yuz280/Succ yuz2800",fontsize=10,color="white",style="solid",shape="box"];38370 -> 41210[label="",style="solid", color="burlywood", weight=9]; 52.97/33.38 41210 -> 38462[label="",style="solid", color="burlywood", weight=3]; 52.97/33.38 41211[label="yuz280/Zero",fontsize=10,color="white",style="solid",shape="box"];38370 -> 41211[label="",style="solid", color="burlywood", weight=9]; 52.97/33.38 41211 -> 38463[label="",style="solid", color="burlywood", weight=3]; 52.97/33.38 38472[label="yuz143500",fontsize=16,color="green",shape="box"];38473[label="yuz144000",fontsize=16,color="green",shape="box"];37653[label="FiniteMap.mkBranchUnbox yuz344 yuz340 yuz1449 (Pos (Succ Zero) + FiniteMap.mkBranchLeft_size yuz344 yuz340 yuz1449 + FiniteMap.mkBranchRight_size yuz344 yuz340 yuz1449)",fontsize=16,color="black",shape="box"];37653 -> 37934[label="",style="solid", color="black", weight=3]; 52.97/33.38 38080[label="Pos (primPlusNat yuz14840 yuz14890)",fontsize=16,color="green",shape="box"];38080 -> 38177[label="",style="dashed", color="green", weight=3]; 52.97/33.38 38081[label="primMinusNat yuz14840 yuz14890",fontsize=16,color="burlywood",shape="triangle"];41212[label="yuz14840/Succ yuz148400",fontsize=10,color="white",style="solid",shape="box"];38081 -> 41212[label="",style="solid", color="burlywood", weight=9]; 52.97/33.38 41212 -> 38178[label="",style="solid", color="burlywood", weight=3]; 52.97/33.38 41213[label="yuz14840/Zero",fontsize=10,color="white",style="solid",shape="box"];38081 -> 41213[label="",style="solid", color="burlywood", weight=9]; 52.97/33.38 41213 -> 38179[label="",style="solid", color="burlywood", weight=3]; 52.97/33.38 38082 -> 38081[label="",style="dashed", color="red", weight=0]; 52.97/33.38 38082[label="primMinusNat yuz14890 yuz14840",fontsize=16,color="magenta"];38082 -> 38180[label="",style="dashed", color="magenta", weight=3]; 52.97/33.38 38082 -> 38181[label="",style="dashed", color="magenta", weight=3]; 52.97/33.38 38083[label="Neg (primPlusNat yuz14840 yuz14890)",fontsize=16,color="green",shape="box"];38083 -> 38182[label="",style="dashed", color="green", weight=3]; 52.97/33.38 40422 -> 37615[label="",style="dashed", color="red", weight=0]; 52.97/33.38 40422[label="FiniteMap.mkBalBranch6Size_l yuz340 yuz341 yuz1565 yuz344 > FiniteMap.sIZE_RATIO * FiniteMap.mkBalBranch6Size_r yuz340 yuz341 yuz1565 yuz344",fontsize=16,color="magenta"];40422 -> 40438[label="",style="dashed", color="magenta", weight=3]; 52.97/33.38 40422 -> 40439[label="",style="dashed", color="magenta", weight=3]; 52.97/33.38 40421[label="FiniteMap.mkBalBranch6MkBalBranch3 yuz340 yuz341 yuz1565 yuz344 yuz340 yuz341 yuz1565 yuz344 yuz1570",fontsize=16,color="burlywood",shape="triangle"];41214[label="yuz1570/False",fontsize=10,color="white",style="solid",shape="box"];40421 -> 41214[label="",style="solid", color="burlywood", weight=9]; 52.97/33.38 41214 -> 40440[label="",style="solid", color="burlywood", weight=3]; 52.97/33.38 41215[label="yuz1570/True",fontsize=10,color="white",style="solid",shape="box"];40421 -> 41215[label="",style="solid", color="burlywood", weight=9]; 52.97/33.38 41215 -> 40441[label="",style="solid", color="burlywood", weight=3]; 52.97/33.38 40423[label="FiniteMap.mkBalBranch6MkBalBranch0 yuz340 yuz341 yuz1565 FiniteMap.EmptyFM yuz1565 FiniteMap.EmptyFM FiniteMap.EmptyFM",fontsize=16,color="black",shape="box"];40423 -> 40454[label="",style="solid", color="black", weight=3]; 52.97/33.38 40424[label="FiniteMap.mkBalBranch6MkBalBranch0 yuz340 yuz341 yuz1565 (FiniteMap.Branch yuz3440 yuz3441 yuz3442 yuz3443 yuz3444) yuz1565 (FiniteMap.Branch yuz3440 yuz3441 yuz3442 yuz3443 yuz3444) (FiniteMap.Branch yuz3440 yuz3441 yuz3442 yuz3443 yuz3444)",fontsize=16,color="black",shape="box"];40424 -> 40455[label="",style="solid", color="black", weight=3]; 52.97/33.38 38460 -> 37935[label="",style="dashed", color="red", weight=0]; 52.97/33.38 38460[label="primMulNat yuz60000 (Succ yuz40100)",fontsize=16,color="magenta"];38460 -> 38488[label="",style="dashed", color="magenta", weight=3]; 52.97/33.38 38460 -> 38489[label="",style="dashed", color="magenta", weight=3]; 52.97/33.38 38461[label="Succ yuz40100",fontsize=16,color="green",shape="box"];40001 -> 37455[label="",style="dashed", color="red", weight=0]; 52.97/33.38 40001[label="FiniteMap.sizeFM (FiniteMap.Branch yuz300 yuz301 yuz302 yuz303 yuz304)",fontsize=16,color="magenta"];40001 -> 40032[label="",style="dashed", color="magenta", weight=3]; 52.97/33.38 40002 -> 37455[label="",style="dashed", color="red", weight=0]; 52.97/33.38 40002[label="FiniteMap.sizeFM (FiniteMap.Branch yuz340 yuz341 yuz342 yuz343 yuz344)",fontsize=16,color="magenta"];40002 -> 40033[label="",style="dashed", color="magenta", weight=3]; 52.97/33.38 40003[label="FiniteMap.glueBal2GlueBal1 (FiniteMap.Branch yuz300 yuz301 yuz302 yuz303 yuz304) (FiniteMap.Branch yuz340 yuz341 yuz342 yuz343 yuz344) (FiniteMap.Branch yuz300 yuz301 yuz302 yuz303 yuz304) (FiniteMap.Branch yuz340 yuz341 yuz342 yuz343 yuz344) False",fontsize=16,color="black",shape="box"];40003 -> 40034[label="",style="solid", color="black", weight=3]; 52.97/33.38 40004[label="FiniteMap.glueBal2GlueBal1 (FiniteMap.Branch yuz300 yuz301 yuz302 yuz303 yuz304) (FiniteMap.Branch yuz340 yuz341 yuz342 yuz343 yuz344) (FiniteMap.Branch yuz300 yuz301 yuz302 yuz303 yuz304) (FiniteMap.Branch yuz340 yuz341 yuz342 yuz343 yuz344) True",fontsize=16,color="black",shape="box"];40004 -> 40035[label="",style="solid", color="black", weight=3]; 52.97/33.38 40425 -> 37773[label="",style="dashed", color="red", weight=0]; 52.97/33.38 40425[label="compare yuz1440 yuz14380",fontsize=16,color="magenta"];40425 -> 40456[label="",style="dashed", color="magenta", weight=3]; 52.97/33.38 40426 -> 37774[label="",style="dashed", color="red", weight=0]; 52.97/33.38 40426[label="compare yuz1440 yuz14380",fontsize=16,color="magenta"];40426 -> 40457[label="",style="dashed", color="magenta", weight=3]; 52.97/33.38 40427 -> 37775[label="",style="dashed", color="red", weight=0]; 52.97/33.38 40427[label="compare yuz1440 yuz14380",fontsize=16,color="magenta"];40427 -> 40458[label="",style="dashed", color="magenta", weight=3]; 52.97/33.38 40428 -> 37776[label="",style="dashed", color="red", weight=0]; 52.97/33.38 40428[label="compare yuz1440 yuz14380",fontsize=16,color="magenta"];40428 -> 40459[label="",style="dashed", color="magenta", weight=3]; 52.97/33.38 40429 -> 37777[label="",style="dashed", color="red", weight=0]; 52.97/33.38 40429[label="compare yuz1440 yuz14380",fontsize=16,color="magenta"];40429 -> 40460[label="",style="dashed", color="magenta", weight=3]; 52.97/33.38 40430 -> 37778[label="",style="dashed", color="red", weight=0]; 52.97/33.38 40430[label="compare yuz1440 yuz14380",fontsize=16,color="magenta"];40430 -> 40461[label="",style="dashed", color="magenta", weight=3]; 52.97/33.38 40431 -> 37779[label="",style="dashed", color="red", weight=0]; 52.97/33.38 40431[label="compare yuz1440 yuz14380",fontsize=16,color="magenta"];40431 -> 40462[label="",style="dashed", color="magenta", weight=3]; 52.97/33.38 40432 -> 37780[label="",style="dashed", color="red", weight=0]; 52.97/33.38 40432[label="compare yuz1440 yuz14380",fontsize=16,color="magenta"];40432 -> 40463[label="",style="dashed", color="magenta", weight=3]; 52.97/33.38 40433 -> 37781[label="",style="dashed", color="red", weight=0]; 52.97/33.38 40433[label="compare yuz1440 yuz14380",fontsize=16,color="magenta"];40433 -> 40464[label="",style="dashed", color="magenta", weight=3]; 52.97/33.38 40434 -> 37782[label="",style="dashed", color="red", weight=0]; 52.97/33.38 40434[label="compare yuz1440 yuz14380",fontsize=16,color="magenta"];40434 -> 40465[label="",style="dashed", color="magenta", weight=3]; 52.97/33.38 40435 -> 37783[label="",style="dashed", color="red", weight=0]; 52.97/33.38 40435[label="compare yuz1440 yuz14380",fontsize=16,color="magenta"];40435 -> 40466[label="",style="dashed", color="magenta", weight=3]; 52.97/33.38 40436 -> 37785[label="",style="dashed", color="red", weight=0]; 52.97/33.38 40436[label="compare yuz1440 yuz14380",fontsize=16,color="magenta"];40436 -> 40467[label="",style="dashed", color="magenta", weight=3]; 52.97/33.38 40437 -> 37786[label="",style="dashed", color="red", weight=0]; 52.97/33.38 40437[label="compare yuz1440 yuz14380",fontsize=16,color="magenta"];40437 -> 40468[label="",style="dashed", color="magenta", weight=3]; 52.97/33.38 3130 -> 3141[label="",style="dashed", color="red", weight=0]; 52.97/33.38 3130[label="primPlusNat (primMulNat yuz400000 (Succ yuz60100)) (Succ yuz60100)",fontsize=16,color="magenta"];3130 -> 3154[label="",style="dashed", color="magenta", weight=3]; 52.97/33.38 3131[label="Zero",fontsize=16,color="green",shape="box"];3227[label="Succ (Succ (primPlusNat yuz11200 yuz601000))",fontsize=16,color="green",shape="box"];3227 -> 3233[label="",style="dashed", color="green", weight=3]; 52.97/33.38 3228[label="Succ yuz11200",fontsize=16,color="green",shape="box"];3229[label="Succ yuz601000",fontsize=16,color="green",shape="box"];3230[label="Zero",fontsize=16,color="green",shape="box"];38462[label="primCmpNat (Succ yuz2800) yuz33000",fontsize=16,color="burlywood",shape="box"];41216[label="yuz33000/Succ yuz330000",fontsize=10,color="white",style="solid",shape="box"];38462 -> 41216[label="",style="solid", color="burlywood", weight=9]; 52.97/33.38 41216 -> 38490[label="",style="solid", color="burlywood", weight=3]; 52.97/33.38 41217[label="yuz33000/Zero",fontsize=10,color="white",style="solid",shape="box"];38462 -> 41217[label="",style="solid", color="burlywood", weight=9]; 52.97/33.38 41217 -> 38491[label="",style="solid", color="burlywood", weight=3]; 52.97/33.38 38463[label="primCmpNat Zero yuz33000",fontsize=16,color="burlywood",shape="box"];41218[label="yuz33000/Succ yuz330000",fontsize=10,color="white",style="solid",shape="box"];38463 -> 41218[label="",style="solid", color="burlywood", weight=9]; 52.97/33.38 41218 -> 38492[label="",style="solid", color="burlywood", weight=3]; 52.97/33.38 41219[label="yuz33000/Zero",fontsize=10,color="white",style="solid",shape="box"];38463 -> 41219[label="",style="solid", color="burlywood", weight=9]; 52.97/33.38 41219 -> 38493[label="",style="solid", color="burlywood", weight=3]; 52.97/33.38 37934[label="Pos (Succ Zero) + FiniteMap.mkBranchLeft_size yuz344 yuz340 yuz1449 + FiniteMap.mkBranchRight_size yuz344 yuz340 yuz1449",fontsize=16,color="black",shape="box"];37934 -> 38042[label="",style="solid", color="black", weight=3]; 52.97/33.38 38177 -> 3194[label="",style="dashed", color="red", weight=0]; 52.97/33.38 38177[label="primPlusNat yuz14840 yuz14890",fontsize=16,color="magenta"];38177 -> 38284[label="",style="dashed", color="magenta", weight=3]; 52.97/33.38 38177 -> 38285[label="",style="dashed", color="magenta", weight=3]; 52.97/33.38 38178[label="primMinusNat (Succ yuz148400) yuz14890",fontsize=16,color="burlywood",shape="box"];41220[label="yuz14890/Succ yuz148900",fontsize=10,color="white",style="solid",shape="box"];38178 -> 41220[label="",style="solid", color="burlywood", weight=9]; 52.97/33.38 41220 -> 38286[label="",style="solid", color="burlywood", weight=3]; 52.97/33.38 41221[label="yuz14890/Zero",fontsize=10,color="white",style="solid",shape="box"];38178 -> 41221[label="",style="solid", color="burlywood", weight=9]; 52.97/33.38 41221 -> 38287[label="",style="solid", color="burlywood", weight=3]; 52.97/33.38 38179[label="primMinusNat Zero yuz14890",fontsize=16,color="burlywood",shape="box"];41222[label="yuz14890/Succ yuz148900",fontsize=10,color="white",style="solid",shape="box"];38179 -> 41222[label="",style="solid", color="burlywood", weight=9]; 52.97/33.38 41222 -> 38288[label="",style="solid", color="burlywood", weight=3]; 52.97/33.38 41223[label="yuz14890/Zero",fontsize=10,color="white",style="solid",shape="box"];38179 -> 41223[label="",style="solid", color="burlywood", weight=9]; 52.97/33.38 41223 -> 38289[label="",style="solid", color="burlywood", weight=3]; 52.97/33.38 38180[label="yuz14890",fontsize=16,color="green",shape="box"];38181[label="yuz14840",fontsize=16,color="green",shape="box"];38182 -> 3194[label="",style="dashed", color="red", weight=0]; 52.97/33.38 38182[label="primPlusNat yuz14840 yuz14890",fontsize=16,color="magenta"];38182 -> 38290[label="",style="dashed", color="magenta", weight=3]; 52.97/33.38 38182 -> 38291[label="",style="dashed", color="magenta", weight=3]; 52.97/33.38 40438 -> 37634[label="",style="dashed", color="red", weight=0]; 52.97/33.38 40438[label="FiniteMap.sIZE_RATIO * FiniteMap.mkBalBranch6Size_r yuz340 yuz341 yuz1565 yuz344",fontsize=16,color="magenta"];40438 -> 40469[label="",style="dashed", color="magenta", weight=3]; 52.97/33.38 40438 -> 40470[label="",style="dashed", color="magenta", weight=3]; 52.97/33.38 40439 -> 40332[label="",style="dashed", color="red", weight=0]; 52.97/33.38 40439[label="FiniteMap.mkBalBranch6Size_l yuz340 yuz341 yuz1565 yuz344",fontsize=16,color="magenta"];40440[label="FiniteMap.mkBalBranch6MkBalBranch3 yuz340 yuz341 yuz1565 yuz344 yuz340 yuz341 yuz1565 yuz344 False",fontsize=16,color="black",shape="box"];40440 -> 40471[label="",style="solid", color="black", weight=3]; 52.97/33.38 40441[label="FiniteMap.mkBalBranch6MkBalBranch3 yuz340 yuz341 yuz1565 yuz344 yuz340 yuz341 yuz1565 yuz344 True",fontsize=16,color="black",shape="box"];40441 -> 40472[label="",style="solid", color="black", weight=3]; 52.97/33.38 40454[label="error []",fontsize=16,color="red",shape="box"];40455[label="FiniteMap.mkBalBranch6MkBalBranch02 yuz340 yuz341 yuz1565 (FiniteMap.Branch yuz3440 yuz3441 yuz3442 yuz3443 yuz3444) yuz1565 (FiniteMap.Branch yuz3440 yuz3441 yuz3442 yuz3443 yuz3444) (FiniteMap.Branch yuz3440 yuz3441 yuz3442 yuz3443 yuz3444)",fontsize=16,color="black",shape="box"];40455 -> 40481[label="",style="solid", color="black", weight=3]; 52.97/33.38 38488[label="Succ yuz40100",fontsize=16,color="green",shape="box"];38489[label="yuz60000",fontsize=16,color="green",shape="box"];40032[label="FiniteMap.Branch yuz300 yuz301 yuz302 yuz303 yuz304",fontsize=16,color="green",shape="box"];40033[label="FiniteMap.Branch yuz340 yuz341 yuz342 yuz343 yuz344",fontsize=16,color="green",shape="box"];40034[label="FiniteMap.glueBal2GlueBal0 (FiniteMap.Branch yuz300 yuz301 yuz302 yuz303 yuz304) (FiniteMap.Branch yuz340 yuz341 yuz342 yuz343 yuz344) (FiniteMap.Branch yuz300 yuz301 yuz302 yuz303 yuz304) (FiniteMap.Branch yuz340 yuz341 yuz342 yuz343 yuz344) otherwise",fontsize=16,color="black",shape="box"];40034 -> 40042[label="",style="solid", color="black", weight=3]; 52.97/33.38 40035 -> 40155[label="",style="dashed", color="red", weight=0]; 52.97/33.38 40035[label="FiniteMap.mkBalBranch (FiniteMap.glueBal2Mid_key2 (FiniteMap.Branch yuz300 yuz301 yuz302 yuz303 yuz304) (FiniteMap.Branch yuz340 yuz341 yuz342 yuz343 yuz344)) (FiniteMap.glueBal2Mid_elt2 (FiniteMap.Branch yuz300 yuz301 yuz302 yuz303 yuz304) (FiniteMap.Branch yuz340 yuz341 yuz342 yuz343 yuz344)) (FiniteMap.Branch yuz300 yuz301 yuz302 yuz303 yuz304) (FiniteMap.deleteMin (FiniteMap.Branch yuz340 yuz341 yuz342 yuz343 yuz344))",fontsize=16,color="magenta"];40035 -> 40177[label="",style="dashed", color="magenta", weight=3]; 52.97/33.38 40035 -> 40178[label="",style="dashed", color="magenta", weight=3]; 52.97/33.38 40035 -> 40179[label="",style="dashed", color="magenta", weight=3]; 52.97/33.38 40035 -> 40180[label="",style="dashed", color="magenta", weight=3]; 52.97/33.38 40456[label="yuz14380",fontsize=16,color="green",shape="box"];40457[label="yuz14380",fontsize=16,color="green",shape="box"];40458[label="yuz14380",fontsize=16,color="green",shape="box"];40459[label="yuz14380",fontsize=16,color="green",shape="box"];40460[label="yuz14380",fontsize=16,color="green",shape="box"];40461[label="yuz14380",fontsize=16,color="green",shape="box"];40462[label="yuz14380",fontsize=16,color="green",shape="box"];40463[label="yuz14380",fontsize=16,color="green",shape="box"];40464[label="yuz14380",fontsize=16,color="green",shape="box"];40465[label="yuz14380",fontsize=16,color="green",shape="box"];40466[label="yuz14380",fontsize=16,color="green",shape="box"];40467[label="yuz14380",fontsize=16,color="green",shape="box"];40468[label="yuz14380",fontsize=16,color="green",shape="box"];3154 -> 2964[label="",style="dashed", color="red", weight=0]; 52.97/33.38 3154[label="primMulNat yuz400000 (Succ yuz60100)",fontsize=16,color="magenta"];3154 -> 3174[label="",style="dashed", color="magenta", weight=3]; 52.97/33.38 3141[label="primPlusNat yuz112 (Succ yuz60100)",fontsize=16,color="burlywood",shape="triangle"];41224[label="yuz112/Succ yuz1120",fontsize=10,color="white",style="solid",shape="box"];3141 -> 41224[label="",style="solid", color="burlywood", weight=9]; 52.97/33.38 41224 -> 3170[label="",style="solid", color="burlywood", weight=3]; 52.97/33.38 41225[label="yuz112/Zero",fontsize=10,color="white",style="solid",shape="box"];3141 -> 41225[label="",style="solid", color="burlywood", weight=9]; 52.97/33.38 41225 -> 3171[label="",style="solid", color="burlywood", weight=3]; 52.97/33.38 3233 -> 3194[label="",style="dashed", color="red", weight=0]; 52.97/33.38 3233[label="primPlusNat yuz11200 yuz601000",fontsize=16,color="magenta"];3233 -> 3236[label="",style="dashed", color="magenta", weight=3]; 52.97/33.38 3233 -> 3237[label="",style="dashed", color="magenta", weight=3]; 52.97/33.38 38490[label="primCmpNat (Succ yuz2800) (Succ yuz330000)",fontsize=16,color="black",shape="box"];38490 -> 38550[label="",style="solid", color="black", weight=3]; 52.97/33.38 38491[label="primCmpNat (Succ yuz2800) Zero",fontsize=16,color="black",shape="box"];38491 -> 38551[label="",style="solid", color="black", weight=3]; 52.97/33.38 38492[label="primCmpNat Zero (Succ yuz330000)",fontsize=16,color="black",shape="box"];38492 -> 38552[label="",style="solid", color="black", weight=3]; 52.97/33.38 38493[label="primCmpNat Zero Zero",fontsize=16,color="black",shape="box"];38493 -> 38553[label="",style="solid", color="black", weight=3]; 52.97/33.38 38042 -> 38017[label="",style="dashed", color="red", weight=0]; 52.97/33.38 38042[label="primPlusInt (Pos (Succ Zero) + FiniteMap.mkBranchLeft_size yuz344 yuz340 yuz1449) (FiniteMap.mkBranchRight_size yuz344 yuz340 yuz1449)",fontsize=16,color="magenta"];38042 -> 38235[label="",style="dashed", color="magenta", weight=3]; 52.97/33.38 38042 -> 38236[label="",style="dashed", color="magenta", weight=3]; 52.97/33.38 38284[label="yuz14840",fontsize=16,color="green",shape="box"];38285[label="yuz14890",fontsize=16,color="green",shape="box"];38286[label="primMinusNat (Succ yuz148400) (Succ yuz148900)",fontsize=16,color="black",shape="box"];38286 -> 38411[label="",style="solid", color="black", weight=3]; 52.97/33.38 38287[label="primMinusNat (Succ yuz148400) Zero",fontsize=16,color="black",shape="box"];38287 -> 38412[label="",style="solid", color="black", weight=3]; 52.97/33.38 38288[label="primMinusNat Zero (Succ yuz148900)",fontsize=16,color="black",shape="box"];38288 -> 38413[label="",style="solid", color="black", weight=3]; 52.97/33.38 38289[label="primMinusNat Zero Zero",fontsize=16,color="black",shape="box"];38289 -> 38414[label="",style="solid", color="black", weight=3]; 52.97/33.38 38290[label="yuz14840",fontsize=16,color="green",shape="box"];38291[label="yuz14890",fontsize=16,color="green",shape="box"];40469 -> 38005[label="",style="dashed", color="red", weight=0]; 52.97/33.38 40469[label="FiniteMap.sIZE_RATIO",fontsize=16,color="magenta"];40470 -> 40333[label="",style="dashed", color="red", weight=0]; 52.97/33.38 40470[label="FiniteMap.mkBalBranch6Size_r yuz340 yuz341 yuz1565 yuz344",fontsize=16,color="magenta"];40471[label="FiniteMap.mkBalBranch6MkBalBranch2 yuz340 yuz341 yuz1565 yuz344 yuz340 yuz341 yuz1565 yuz344 otherwise",fontsize=16,color="black",shape="box"];40471 -> 40482[label="",style="solid", color="black", weight=3]; 52.97/33.38 40472[label="FiniteMap.mkBalBranch6MkBalBranch1 yuz340 yuz341 yuz1565 yuz344 yuz1565 yuz344 yuz1565",fontsize=16,color="burlywood",shape="box"];41226[label="yuz1565/FiniteMap.EmptyFM",fontsize=10,color="white",style="solid",shape="box"];40472 -> 41226[label="",style="solid", color="burlywood", weight=9]; 52.97/33.38 41226 -> 40483[label="",style="solid", color="burlywood", weight=3]; 52.97/33.38 41227[label="yuz1565/FiniteMap.Branch yuz15650 yuz15651 yuz15652 yuz15653 yuz15654",fontsize=10,color="white",style="solid",shape="box"];40472 -> 41227[label="",style="solid", color="burlywood", weight=9]; 52.97/33.38 41227 -> 40484[label="",style="solid", color="burlywood", weight=3]; 52.97/33.38 40481 -> 40497[label="",style="dashed", color="red", weight=0]; 52.97/33.38 40481[label="FiniteMap.mkBalBranch6MkBalBranch01 yuz340 yuz341 yuz1565 (FiniteMap.Branch yuz3440 yuz3441 yuz3442 yuz3443 yuz3444) yuz1565 (FiniteMap.Branch yuz3440 yuz3441 yuz3442 yuz3443 yuz3444) yuz3440 yuz3441 yuz3442 yuz3443 yuz3444 (FiniteMap.sizeFM yuz3443 < Pos (Succ (Succ Zero)) * FiniteMap.sizeFM yuz3444)",fontsize=16,color="magenta"];40481 -> 40498[label="",style="dashed", color="magenta", weight=3]; 52.97/33.38 40042[label="FiniteMap.glueBal2GlueBal0 (FiniteMap.Branch yuz300 yuz301 yuz302 yuz303 yuz304) (FiniteMap.Branch yuz340 yuz341 yuz342 yuz343 yuz344) (FiniteMap.Branch yuz300 yuz301 yuz302 yuz303 yuz304) (FiniteMap.Branch yuz340 yuz341 yuz342 yuz343 yuz344) True",fontsize=16,color="black",shape="box"];40042 -> 40068[label="",style="solid", color="black", weight=3]; 52.97/33.38 40177[label="FiniteMap.Branch yuz300 yuz301 yuz302 yuz303 yuz304",fontsize=16,color="green",shape="box"];40178[label="FiniteMap.glueBal2Mid_key2 (FiniteMap.Branch yuz300 yuz301 yuz302 yuz303 yuz304) (FiniteMap.Branch yuz340 yuz341 yuz342 yuz343 yuz344)",fontsize=16,color="black",shape="box"];40178 -> 40200[label="",style="solid", color="black", weight=3]; 52.97/33.38 40179[label="FiniteMap.glueBal2Mid_elt2 (FiniteMap.Branch yuz300 yuz301 yuz302 yuz303 yuz304) (FiniteMap.Branch yuz340 yuz341 yuz342 yuz343 yuz344)",fontsize=16,color="black",shape="box"];40179 -> 40201[label="",style="solid", color="black", weight=3]; 52.97/33.38 40180[label="FiniteMap.deleteMin (FiniteMap.Branch yuz340 yuz341 yuz342 yuz343 yuz344)",fontsize=16,color="burlywood",shape="triangle"];41228[label="yuz343/FiniteMap.EmptyFM",fontsize=10,color="white",style="solid",shape="box"];40180 -> 41228[label="",style="solid", color="burlywood", weight=9]; 52.97/33.38 41228 -> 40202[label="",style="solid", color="burlywood", weight=3]; 52.97/33.38 41229[label="yuz343/FiniteMap.Branch yuz3430 yuz3431 yuz3432 yuz3433 yuz3434",fontsize=10,color="white",style="solid",shape="box"];40180 -> 41229[label="",style="solid", color="burlywood", weight=9]; 52.97/33.38 41229 -> 40203[label="",style="solid", color="burlywood", weight=3]; 52.97/33.38 3174[label="yuz400000",fontsize=16,color="green",shape="box"];3170[label="primPlusNat (Succ yuz1120) (Succ yuz60100)",fontsize=16,color="black",shape="box"];3170 -> 3182[label="",style="solid", color="black", weight=3]; 52.97/33.38 3171[label="primPlusNat Zero (Succ yuz60100)",fontsize=16,color="black",shape="box"];3171 -> 3183[label="",style="solid", color="black", weight=3]; 52.97/33.38 3236[label="yuz11200",fontsize=16,color="green",shape="box"];3237[label="yuz601000",fontsize=16,color="green",shape="box"];38550 -> 38370[label="",style="dashed", color="red", weight=0]; 52.97/33.38 38550[label="primCmpNat yuz2800 yuz330000",fontsize=16,color="magenta"];38550 -> 38560[label="",style="dashed", color="magenta", weight=3]; 52.97/33.38 38550 -> 38561[label="",style="dashed", color="magenta", weight=3]; 52.97/33.38 38551[label="GT",fontsize=16,color="green",shape="box"];38552[label="LT",fontsize=16,color="green",shape="box"];38553[label="EQ",fontsize=16,color="green",shape="box"];38235[label="Pos (Succ Zero) + FiniteMap.mkBranchLeft_size yuz344 yuz340 yuz1449",fontsize=16,color="black",shape="box"];38235 -> 38329[label="",style="solid", color="black", weight=3]; 52.97/33.38 38236[label="FiniteMap.mkBranchRight_size yuz344 yuz340 yuz1449",fontsize=16,color="black",shape="box"];38236 -> 38330[label="",style="solid", color="black", weight=3]; 52.97/33.38 38411 -> 38081[label="",style="dashed", color="red", weight=0]; 52.97/33.38 38411[label="primMinusNat yuz148400 yuz148900",fontsize=16,color="magenta"];38411 -> 38474[label="",style="dashed", color="magenta", weight=3]; 52.97/33.38 38411 -> 38475[label="",style="dashed", color="magenta", weight=3]; 52.97/33.38 38412[label="Pos (Succ yuz148400)",fontsize=16,color="green",shape="box"];38413[label="Neg (Succ yuz148900)",fontsize=16,color="green",shape="box"];38414[label="Pos Zero",fontsize=16,color="green",shape="box"];40482[label="FiniteMap.mkBalBranch6MkBalBranch2 yuz340 yuz341 yuz1565 yuz344 yuz340 yuz341 yuz1565 yuz344 True",fontsize=16,color="black",shape="box"];40482 -> 40499[label="",style="solid", color="black", weight=3]; 52.97/33.39 40483[label="FiniteMap.mkBalBranch6MkBalBranch1 yuz340 yuz341 FiniteMap.EmptyFM yuz344 FiniteMap.EmptyFM yuz344 FiniteMap.EmptyFM",fontsize=16,color="black",shape="box"];40483 -> 40500[label="",style="solid", color="black", weight=3]; 52.97/33.39 40484[label="FiniteMap.mkBalBranch6MkBalBranch1 yuz340 yuz341 (FiniteMap.Branch yuz15650 yuz15651 yuz15652 yuz15653 yuz15654) yuz344 (FiniteMap.Branch yuz15650 yuz15651 yuz15652 yuz15653 yuz15654) yuz344 (FiniteMap.Branch yuz15650 yuz15651 yuz15652 yuz15653 yuz15654)",fontsize=16,color="black",shape="box"];40484 -> 40501[label="",style="solid", color="black", weight=3]; 52.97/33.39 40498 -> 13680[label="",style="dashed", color="red", weight=0]; 52.97/33.39 40498[label="FiniteMap.sizeFM yuz3443 < Pos (Succ (Succ Zero)) * FiniteMap.sizeFM yuz3444",fontsize=16,color="magenta"];40498 -> 40502[label="",style="dashed", color="magenta", weight=3]; 52.97/33.39 40498 -> 40503[label="",style="dashed", color="magenta", weight=3]; 52.97/33.39 40497[label="FiniteMap.mkBalBranch6MkBalBranch01 yuz340 yuz341 yuz1565 (FiniteMap.Branch yuz3440 yuz3441 yuz3442 yuz3443 yuz3444) yuz1565 (FiniteMap.Branch yuz3440 yuz3441 yuz3442 yuz3443 yuz3444) yuz3440 yuz3441 yuz3442 yuz3443 yuz3444 yuz1575",fontsize=16,color="burlywood",shape="triangle"];41230[label="yuz1575/False",fontsize=10,color="white",style="solid",shape="box"];40497 -> 41230[label="",style="solid", color="burlywood", weight=9]; 52.97/33.39 41230 -> 40504[label="",style="solid", color="burlywood", weight=3]; 52.97/33.39 41231[label="yuz1575/True",fontsize=10,color="white",style="solid",shape="box"];40497 -> 41231[label="",style="solid", color="burlywood", weight=9]; 52.97/33.39 41231 -> 40505[label="",style="solid", color="burlywood", weight=3]; 52.97/33.39 40068 -> 40155[label="",style="dashed", color="red", weight=0]; 52.97/33.39 40068[label="FiniteMap.mkBalBranch (FiniteMap.glueBal2Mid_key1 (FiniteMap.Branch yuz300 yuz301 yuz302 yuz303 yuz304) (FiniteMap.Branch yuz340 yuz341 yuz342 yuz343 yuz344)) (FiniteMap.glueBal2Mid_elt1 (FiniteMap.Branch yuz300 yuz301 yuz302 yuz303 yuz304) (FiniteMap.Branch yuz340 yuz341 yuz342 yuz343 yuz344)) (FiniteMap.deleteMax (FiniteMap.Branch yuz300 yuz301 yuz302 yuz303 yuz304)) (FiniteMap.Branch yuz340 yuz341 yuz342 yuz343 yuz344)",fontsize=16,color="magenta"];40068 -> 40181[label="",style="dashed", color="magenta", weight=3]; 52.97/33.39 40068 -> 40182[label="",style="dashed", color="magenta", weight=3]; 52.97/33.39 40068 -> 40183[label="",style="dashed", color="magenta", weight=3]; 52.97/33.39 40068 -> 40184[label="",style="dashed", color="magenta", weight=3]; 52.97/33.39 40200[label="FiniteMap.glueBal2Mid_key20 (FiniteMap.Branch yuz300 yuz301 yuz302 yuz303 yuz304) (FiniteMap.Branch yuz340 yuz341 yuz342 yuz343 yuz344) (FiniteMap.glueBal2Vv3 (FiniteMap.Branch yuz300 yuz301 yuz302 yuz303 yuz304) (FiniteMap.Branch yuz340 yuz341 yuz342 yuz343 yuz344))",fontsize=16,color="black",shape="box"];40200 -> 40219[label="",style="solid", color="black", weight=3]; 52.97/33.39 40201[label="FiniteMap.glueBal2Mid_elt20 (FiniteMap.Branch yuz300 yuz301 yuz302 yuz303 yuz304) (FiniteMap.Branch yuz340 yuz341 yuz342 yuz343 yuz344) (FiniteMap.glueBal2Vv3 (FiniteMap.Branch yuz300 yuz301 yuz302 yuz303 yuz304) (FiniteMap.Branch yuz340 yuz341 yuz342 yuz343 yuz344))",fontsize=16,color="black",shape="box"];40201 -> 40220[label="",style="solid", color="black", weight=3]; 52.97/33.39 40202[label="FiniteMap.deleteMin (FiniteMap.Branch yuz340 yuz341 yuz342 FiniteMap.EmptyFM yuz344)",fontsize=16,color="black",shape="box"];40202 -> 40221[label="",style="solid", color="black", weight=3]; 52.97/33.39 40203[label="FiniteMap.deleteMin (FiniteMap.Branch yuz340 yuz341 yuz342 (FiniteMap.Branch yuz3430 yuz3431 yuz3432 yuz3433 yuz3434) yuz344)",fontsize=16,color="black",shape="box"];40203 -> 40222[label="",style="solid", color="black", weight=3]; 52.97/33.39 3182[label="Succ (Succ (primPlusNat yuz1120 yuz60100))",fontsize=16,color="green",shape="box"];3182 -> 3194[label="",style="dashed", color="green", weight=3]; 52.97/33.39 3183[label="Succ yuz60100",fontsize=16,color="green",shape="box"];38560[label="yuz2800",fontsize=16,color="green",shape="box"];38561[label="yuz330000",fontsize=16,color="green",shape="box"];38329 -> 38017[label="",style="dashed", color="red", weight=0]; 52.97/33.39 38329[label="primPlusInt (Pos (Succ Zero)) (FiniteMap.mkBranchLeft_size yuz344 yuz340 yuz1449)",fontsize=16,color="magenta"];38329 -> 38431[label="",style="dashed", color="magenta", weight=3]; 52.97/33.39 38329 -> 38432[label="",style="dashed", color="magenta", weight=3]; 52.97/33.39 38330 -> 37455[label="",style="dashed", color="red", weight=0]; 52.97/33.39 38330[label="FiniteMap.sizeFM yuz344",fontsize=16,color="magenta"];38330 -> 38433[label="",style="dashed", color="magenta", weight=3]; 52.97/33.39 38474[label="yuz148400",fontsize=16,color="green",shape="box"];38475[label="yuz148900",fontsize=16,color="green",shape="box"];40499[label="FiniteMap.mkBranch (Pos (Succ (Succ Zero))) yuz340 yuz341 yuz1565 yuz344",fontsize=16,color="black",shape="box"];40499 -> 40514[label="",style="solid", color="black", weight=3]; 52.97/33.39 40500[label="error []",fontsize=16,color="red",shape="box"];40501[label="FiniteMap.mkBalBranch6MkBalBranch12 yuz340 yuz341 (FiniteMap.Branch yuz15650 yuz15651 yuz15652 yuz15653 yuz15654) yuz344 (FiniteMap.Branch yuz15650 yuz15651 yuz15652 yuz15653 yuz15654) yuz344 (FiniteMap.Branch yuz15650 yuz15651 yuz15652 yuz15653 yuz15654)",fontsize=16,color="black",shape="box"];40501 -> 40515[label="",style="solid", color="black", weight=3]; 52.97/33.39 40502 -> 37634[label="",style="dashed", color="red", weight=0]; 52.97/33.39 40502[label="Pos (Succ (Succ Zero)) * FiniteMap.sizeFM yuz3444",fontsize=16,color="magenta"];40502 -> 40516[label="",style="dashed", color="magenta", weight=3]; 52.97/33.39 40502 -> 40517[label="",style="dashed", color="magenta", weight=3]; 52.97/33.39 40503 -> 37455[label="",style="dashed", color="red", weight=0]; 52.97/33.39 40503[label="FiniteMap.sizeFM yuz3443",fontsize=16,color="magenta"];40503 -> 40518[label="",style="dashed", color="magenta", weight=3]; 52.97/33.39 40504[label="FiniteMap.mkBalBranch6MkBalBranch01 yuz340 yuz341 yuz1565 (FiniteMap.Branch yuz3440 yuz3441 yuz3442 yuz3443 yuz3444) yuz1565 (FiniteMap.Branch yuz3440 yuz3441 yuz3442 yuz3443 yuz3444) yuz3440 yuz3441 yuz3442 yuz3443 yuz3444 False",fontsize=16,color="black",shape="box"];40504 -> 40519[label="",style="solid", color="black", weight=3]; 52.97/33.39 40505[label="FiniteMap.mkBalBranch6MkBalBranch01 yuz340 yuz341 yuz1565 (FiniteMap.Branch yuz3440 yuz3441 yuz3442 yuz3443 yuz3444) yuz1565 (FiniteMap.Branch yuz3440 yuz3441 yuz3442 yuz3443 yuz3444) yuz3440 yuz3441 yuz3442 yuz3443 yuz3444 True",fontsize=16,color="black",shape="box"];40505 -> 40520[label="",style="solid", color="black", weight=3]; 52.97/33.39 40181[label="FiniteMap.deleteMax (FiniteMap.Branch yuz300 yuz301 yuz302 yuz303 yuz304)",fontsize=16,color="burlywood",shape="triangle"];41232[label="yuz304/FiniteMap.EmptyFM",fontsize=10,color="white",style="solid",shape="box"];40181 -> 41232[label="",style="solid", color="burlywood", weight=9]; 52.97/33.39 41232 -> 40204[label="",style="solid", color="burlywood", weight=3]; 52.97/33.39 41233[label="yuz304/FiniteMap.Branch yuz3040 yuz3041 yuz3042 yuz3043 yuz3044",fontsize=10,color="white",style="solid",shape="box"];40181 -> 41233[label="",style="solid", color="burlywood", weight=9]; 52.97/33.39 41233 -> 40205[label="",style="solid", color="burlywood", weight=3]; 52.97/33.39 40182[label="FiniteMap.glueBal2Mid_key1 (FiniteMap.Branch yuz300 yuz301 yuz302 yuz303 yuz304) (FiniteMap.Branch yuz340 yuz341 yuz342 yuz343 yuz344)",fontsize=16,color="black",shape="box"];40182 -> 40206[label="",style="solid", color="black", weight=3]; 52.97/33.39 40183[label="FiniteMap.glueBal2Mid_elt1 (FiniteMap.Branch yuz300 yuz301 yuz302 yuz303 yuz304) (FiniteMap.Branch yuz340 yuz341 yuz342 yuz343 yuz344)",fontsize=16,color="black",shape="box"];40183 -> 40207[label="",style="solid", color="black", weight=3]; 52.97/33.39 40184[label="FiniteMap.Branch yuz340 yuz341 yuz342 yuz343 yuz344",fontsize=16,color="green",shape="box"];40219 -> 40559[label="",style="dashed", color="red", weight=0]; 52.97/33.39 40219[label="FiniteMap.glueBal2Mid_key20 (FiniteMap.Branch yuz300 yuz301 yuz302 yuz303 yuz304) (FiniteMap.Branch yuz340 yuz341 yuz342 yuz343 yuz344) (FiniteMap.findMin (FiniteMap.Branch yuz340 yuz341 yuz342 yuz343 yuz344))",fontsize=16,color="magenta"];40219 -> 40560[label="",style="dashed", color="magenta", weight=3]; 52.97/33.39 40219 -> 40561[label="",style="dashed", color="magenta", weight=3]; 52.97/33.39 40219 -> 40562[label="",style="dashed", color="magenta", weight=3]; 52.97/33.39 40219 -> 40563[label="",style="dashed", color="magenta", weight=3]; 52.97/33.39 40219 -> 40564[label="",style="dashed", color="magenta", weight=3]; 52.97/33.39 40219 -> 40565[label="",style="dashed", color="magenta", weight=3]; 52.97/33.39 40219 -> 40566[label="",style="dashed", color="magenta", weight=3]; 52.97/33.39 40219 -> 40567[label="",style="dashed", color="magenta", weight=3]; 52.97/33.39 40219 -> 40568[label="",style="dashed", color="magenta", weight=3]; 52.97/33.39 40219 -> 40569[label="",style="dashed", color="magenta", weight=3]; 52.97/33.39 40219 -> 40570[label="",style="dashed", color="magenta", weight=3]; 52.97/33.39 40219 -> 40571[label="",style="dashed", color="magenta", weight=3]; 52.97/33.39 40219 -> 40572[label="",style="dashed", color="magenta", weight=3]; 52.97/33.39 40219 -> 40573[label="",style="dashed", color="magenta", weight=3]; 52.97/33.39 40219 -> 40574[label="",style="dashed", color="magenta", weight=3]; 52.97/33.39 40220 -> 40662[label="",style="dashed", color="red", weight=0]; 52.97/33.39 40220[label="FiniteMap.glueBal2Mid_elt20 (FiniteMap.Branch yuz300 yuz301 yuz302 yuz303 yuz304) (FiniteMap.Branch yuz340 yuz341 yuz342 yuz343 yuz344) (FiniteMap.findMin (FiniteMap.Branch yuz340 yuz341 yuz342 yuz343 yuz344))",fontsize=16,color="magenta"];40220 -> 40663[label="",style="dashed", color="magenta", weight=3]; 52.97/33.39 40220 -> 40664[label="",style="dashed", color="magenta", weight=3]; 52.97/33.39 40220 -> 40665[label="",style="dashed", color="magenta", weight=3]; 52.97/33.39 40220 -> 40666[label="",style="dashed", color="magenta", weight=3]; 52.97/33.39 40220 -> 40667[label="",style="dashed", color="magenta", weight=3]; 52.97/33.39 40220 -> 40668[label="",style="dashed", color="magenta", weight=3]; 52.97/33.39 40220 -> 40669[label="",style="dashed", color="magenta", weight=3]; 52.97/33.39 40220 -> 40670[label="",style="dashed", color="magenta", weight=3]; 52.97/33.39 40220 -> 40671[label="",style="dashed", color="magenta", weight=3]; 52.97/33.39 40220 -> 40672[label="",style="dashed", color="magenta", weight=3]; 52.97/33.39 40220 -> 40673[label="",style="dashed", color="magenta", weight=3]; 52.97/33.39 40220 -> 40674[label="",style="dashed", color="magenta", weight=3]; 52.97/33.39 40220 -> 40675[label="",style="dashed", color="magenta", weight=3]; 52.97/33.39 40220 -> 40676[label="",style="dashed", color="magenta", weight=3]; 52.97/33.39 40220 -> 40677[label="",style="dashed", color="magenta", weight=3]; 52.97/33.39 40221[label="yuz344",fontsize=16,color="green",shape="box"];40222 -> 40155[label="",style="dashed", color="red", weight=0]; 52.97/33.39 40222[label="FiniteMap.mkBalBranch yuz340 yuz341 (FiniteMap.deleteMin (FiniteMap.Branch yuz3430 yuz3431 yuz3432 yuz3433 yuz3434)) yuz344",fontsize=16,color="magenta"];40222 -> 40272[label="",style="dashed", color="magenta", weight=3]; 52.97/33.39 38431[label="Pos (Succ Zero)",fontsize=16,color="green",shape="box"];38432[label="FiniteMap.mkBranchLeft_size yuz344 yuz340 yuz1449",fontsize=16,color="black",shape="box"];38432 -> 38487[label="",style="solid", color="black", weight=3]; 52.97/33.39 38433[label="yuz344",fontsize=16,color="green",shape="box"];40514 -> 37548[label="",style="dashed", color="red", weight=0]; 52.97/33.39 40514[label="FiniteMap.mkBranchResult yuz340 yuz341 yuz344 yuz1565",fontsize=16,color="magenta"];40514 -> 40533[label="",style="dashed", color="magenta", weight=3]; 52.97/33.39 40515 -> 40534[label="",style="dashed", color="red", weight=0]; 52.97/33.39 40515[label="FiniteMap.mkBalBranch6MkBalBranch11 yuz340 yuz341 (FiniteMap.Branch yuz15650 yuz15651 yuz15652 yuz15653 yuz15654) yuz344 (FiniteMap.Branch yuz15650 yuz15651 yuz15652 yuz15653 yuz15654) yuz344 yuz15650 yuz15651 yuz15652 yuz15653 yuz15654 (FiniteMap.sizeFM yuz15654 < Pos (Succ (Succ Zero)) * FiniteMap.sizeFM yuz15653)",fontsize=16,color="magenta"];40515 -> 40535[label="",style="dashed", color="magenta", weight=3]; 52.97/33.39 40516[label="Pos (Succ (Succ Zero))",fontsize=16,color="green",shape="box"];40517 -> 37455[label="",style="dashed", color="red", weight=0]; 52.97/33.39 40517[label="FiniteMap.sizeFM yuz3444",fontsize=16,color="magenta"];40517 -> 40536[label="",style="dashed", color="magenta", weight=3]; 52.97/33.39 40518[label="yuz3443",fontsize=16,color="green",shape="box"];40519[label="FiniteMap.mkBalBranch6MkBalBranch00 yuz340 yuz341 yuz1565 (FiniteMap.Branch yuz3440 yuz3441 yuz3442 yuz3443 yuz3444) yuz1565 (FiniteMap.Branch yuz3440 yuz3441 yuz3442 yuz3443 yuz3444) yuz3440 yuz3441 yuz3442 yuz3443 yuz3444 otherwise",fontsize=16,color="black",shape="box"];40519 -> 40537[label="",style="solid", color="black", weight=3]; 52.97/33.39 40520[label="FiniteMap.mkBalBranch6Single_L yuz340 yuz341 yuz1565 (FiniteMap.Branch yuz3440 yuz3441 yuz3442 yuz3443 yuz3444) yuz1565 (FiniteMap.Branch yuz3440 yuz3441 yuz3442 yuz3443 yuz3444)",fontsize=16,color="black",shape="box"];40520 -> 40538[label="",style="solid", color="black", weight=3]; 52.97/33.39 40204[label="FiniteMap.deleteMax (FiniteMap.Branch yuz300 yuz301 yuz302 yuz303 FiniteMap.EmptyFM)",fontsize=16,color="black",shape="box"];40204 -> 40223[label="",style="solid", color="black", weight=3]; 52.97/33.39 40205[label="FiniteMap.deleteMax (FiniteMap.Branch yuz300 yuz301 yuz302 yuz303 (FiniteMap.Branch yuz3040 yuz3041 yuz3042 yuz3043 yuz3044))",fontsize=16,color="black",shape="box"];40205 -> 40224[label="",style="solid", color="black", weight=3]; 52.97/33.39 40206[label="FiniteMap.glueBal2Mid_key10 (FiniteMap.Branch yuz300 yuz301 yuz302 yuz303 yuz304) (FiniteMap.Branch yuz340 yuz341 yuz342 yuz343 yuz344) (FiniteMap.glueBal2Vv2 (FiniteMap.Branch yuz300 yuz301 yuz302 yuz303 yuz304) (FiniteMap.Branch yuz340 yuz341 yuz342 yuz343 yuz344))",fontsize=16,color="black",shape="box"];40206 -> 40225[label="",style="solid", color="black", weight=3]; 52.97/33.39 40207[label="FiniteMap.glueBal2Mid_elt10 (FiniteMap.Branch yuz300 yuz301 yuz302 yuz303 yuz304) (FiniteMap.Branch yuz340 yuz341 yuz342 yuz343 yuz344) (FiniteMap.glueBal2Vv2 (FiniteMap.Branch yuz300 yuz301 yuz302 yuz303 yuz304) (FiniteMap.Branch yuz340 yuz341 yuz342 yuz343 yuz344))",fontsize=16,color="black",shape="box"];40207 -> 40226[label="",style="solid", color="black", weight=3]; 52.97/33.39 40560[label="yuz343",fontsize=16,color="green",shape="box"];40561[label="yuz303",fontsize=16,color="green",shape="box"];40562[label="yuz300",fontsize=16,color="green",shape="box"];40563[label="yuz341",fontsize=16,color="green",shape="box"];40564[label="yuz343",fontsize=16,color="green",shape="box"];40565[label="yuz301",fontsize=16,color="green",shape="box"];40566[label="yuz340",fontsize=16,color="green",shape="box"];40567[label="yuz344",fontsize=16,color="green",shape="box"];40568[label="yuz302",fontsize=16,color="green",shape="box"];40569[label="yuz344",fontsize=16,color="green",shape="box"];40570[label="yuz342",fontsize=16,color="green",shape="box"];40571[label="yuz341",fontsize=16,color="green",shape="box"];40572[label="yuz340",fontsize=16,color="green",shape="box"];40573[label="yuz304",fontsize=16,color="green",shape="box"];40574[label="yuz342",fontsize=16,color="green",shape="box"];40559[label="FiniteMap.glueBal2Mid_key20 (FiniteMap.Branch yuz1584 yuz1585 yuz1586 yuz1587 yuz1588) (FiniteMap.Branch yuz1589 yuz1590 yuz1591 yuz1592 yuz1593) (FiniteMap.findMin (FiniteMap.Branch yuz1594 yuz1595 yuz1596 yuz1597 yuz1598))",fontsize=16,color="burlywood",shape="triangle"];41234[label="yuz1597/FiniteMap.EmptyFM",fontsize=10,color="white",style="solid",shape="box"];40559 -> 41234[label="",style="solid", color="burlywood", weight=9]; 52.97/33.39 41234 -> 40650[label="",style="solid", color="burlywood", weight=3]; 52.97/33.39 41235[label="yuz1597/FiniteMap.Branch yuz15970 yuz15971 yuz15972 yuz15973 yuz15974",fontsize=10,color="white",style="solid",shape="box"];40559 -> 41235[label="",style="solid", color="burlywood", weight=9]; 52.97/33.39 41235 -> 40651[label="",style="solid", color="burlywood", weight=3]; 52.97/33.39 40663[label="yuz343",fontsize=16,color="green",shape="box"];40664[label="yuz343",fontsize=16,color="green",shape="box"];40665[label="yuz344",fontsize=16,color="green",shape="box"];40666[label="yuz340",fontsize=16,color="green",shape="box"];40667[label="yuz300",fontsize=16,color="green",shape="box"];40668[label="yuz342",fontsize=16,color="green",shape="box"];40669[label="yuz301",fontsize=16,color="green",shape="box"];40670[label="yuz302",fontsize=16,color="green",shape="box"];40671[label="yuz344",fontsize=16,color="green",shape="box"];40672[label="yuz341",fontsize=16,color="green",shape="box"];40673[label="yuz341",fontsize=16,color="green",shape="box"];40674[label="yuz340",fontsize=16,color="green",shape="box"];40675[label="yuz304",fontsize=16,color="green",shape="box"];40676[label="yuz342",fontsize=16,color="green",shape="box"];40677[label="yuz303",fontsize=16,color="green",shape="box"];40662[label="FiniteMap.glueBal2Mid_elt20 (FiniteMap.Branch yuz1600 yuz1601 yuz1602 yuz1603 yuz1604) (FiniteMap.Branch yuz1605 yuz1606 yuz1607 yuz1608 yuz1609) (FiniteMap.findMin (FiniteMap.Branch yuz1610 yuz1611 yuz1612 yuz1613 yuz1614))",fontsize=16,color="burlywood",shape="triangle"];41236[label="yuz1613/FiniteMap.EmptyFM",fontsize=10,color="white",style="solid",shape="box"];40662 -> 41236[label="",style="solid", color="burlywood", weight=9]; 52.97/33.39 41236 -> 40753[label="",style="solid", color="burlywood", weight=3]; 52.97/33.39 41237[label="yuz1613/FiniteMap.Branch yuz16130 yuz16131 yuz16132 yuz16133 yuz16134",fontsize=10,color="white",style="solid",shape="box"];40662 -> 41237[label="",style="solid", color="burlywood", weight=9]; 52.97/33.39 41237 -> 40754[label="",style="solid", color="burlywood", weight=3]; 52.97/33.39 40272 -> 40180[label="",style="dashed", color="red", weight=0]; 52.97/33.39 40272[label="FiniteMap.deleteMin (FiniteMap.Branch yuz3430 yuz3431 yuz3432 yuz3433 yuz3434)",fontsize=16,color="magenta"];40272 -> 40311[label="",style="dashed", color="magenta", weight=3]; 52.97/33.39 40272 -> 40312[label="",style="dashed", color="magenta", weight=3]; 52.97/33.39 40272 -> 40313[label="",style="dashed", color="magenta", weight=3]; 52.97/33.39 40272 -> 40314[label="",style="dashed", color="magenta", weight=3]; 52.97/33.39 40272 -> 40315[label="",style="dashed", color="magenta", weight=3]; 52.97/33.39 38487 -> 37455[label="",style="dashed", color="red", weight=0]; 52.97/33.39 38487[label="FiniteMap.sizeFM yuz1449",fontsize=16,color="magenta"];38487 -> 38569[label="",style="dashed", color="magenta", weight=3]; 52.97/33.39 40533[label="yuz1565",fontsize=16,color="green",shape="box"];40535 -> 13680[label="",style="dashed", color="red", weight=0]; 52.97/33.39 40535[label="FiniteMap.sizeFM yuz15654 < Pos (Succ (Succ Zero)) * FiniteMap.sizeFM yuz15653",fontsize=16,color="magenta"];40535 -> 40539[label="",style="dashed", color="magenta", weight=3]; 52.97/33.39 40535 -> 40540[label="",style="dashed", color="magenta", weight=3]; 52.97/33.39 40534[label="FiniteMap.mkBalBranch6MkBalBranch11 yuz340 yuz341 (FiniteMap.Branch yuz15650 yuz15651 yuz15652 yuz15653 yuz15654) yuz344 (FiniteMap.Branch yuz15650 yuz15651 yuz15652 yuz15653 yuz15654) yuz344 yuz15650 yuz15651 yuz15652 yuz15653 yuz15654 yuz1579",fontsize=16,color="burlywood",shape="triangle"];41238[label="yuz1579/False",fontsize=10,color="white",style="solid",shape="box"];40534 -> 41238[label="",style="solid", color="burlywood", weight=9]; 52.97/33.39 41238 -> 40541[label="",style="solid", color="burlywood", weight=3]; 52.97/33.39 41239[label="yuz1579/True",fontsize=10,color="white",style="solid",shape="box"];40534 -> 41239[label="",style="solid", color="burlywood", weight=9]; 52.97/33.39 41239 -> 40542[label="",style="solid", color="burlywood", weight=3]; 52.97/33.39 40536[label="yuz3444",fontsize=16,color="green",shape="box"];40537[label="FiniteMap.mkBalBranch6MkBalBranch00 yuz340 yuz341 yuz1565 (FiniteMap.Branch yuz3440 yuz3441 yuz3442 yuz3443 yuz3444) yuz1565 (FiniteMap.Branch yuz3440 yuz3441 yuz3442 yuz3443 yuz3444) yuz3440 yuz3441 yuz3442 yuz3443 yuz3444 True",fontsize=16,color="black",shape="box"];40537 -> 40551[label="",style="solid", color="black", weight=3]; 52.97/33.39 40538[label="FiniteMap.mkBranch (Pos (Succ (Succ (Succ Zero)))) yuz3440 yuz3441 (FiniteMap.mkBranch (Pos (Succ (Succ (Succ (Succ Zero))))) yuz340 yuz341 yuz1565 yuz3443) yuz3444",fontsize=16,color="black",shape="box"];40538 -> 40552[label="",style="solid", color="black", weight=3]; 52.97/33.39 40223[label="yuz303",fontsize=16,color="green",shape="box"];40224 -> 40155[label="",style="dashed", color="red", weight=0]; 52.97/33.39 40224[label="FiniteMap.mkBalBranch yuz300 yuz301 yuz303 (FiniteMap.deleteMax (FiniteMap.Branch yuz3040 yuz3041 yuz3042 yuz3043 yuz3044))",fontsize=16,color="magenta"];40224 -> 40273[label="",style="dashed", color="magenta", weight=3]; 52.97/33.39 40224 -> 40274[label="",style="dashed", color="magenta", weight=3]; 52.97/33.39 40224 -> 40275[label="",style="dashed", color="magenta", weight=3]; 52.97/33.39 40224 -> 40276[label="",style="dashed", color="magenta", weight=3]; 52.97/33.39 40225 -> 40842[label="",style="dashed", color="red", weight=0]; 52.97/33.39 40225[label="FiniteMap.glueBal2Mid_key10 (FiniteMap.Branch yuz300 yuz301 yuz302 yuz303 yuz304) (FiniteMap.Branch yuz340 yuz341 yuz342 yuz343 yuz344) (FiniteMap.findMax (FiniteMap.Branch yuz300 yuz301 yuz302 yuz303 yuz304))",fontsize=16,color="magenta"];40225 -> 40843[label="",style="dashed", color="magenta", weight=3]; 52.97/33.39 40225 -> 40844[label="",style="dashed", color="magenta", weight=3]; 52.97/33.39 40225 -> 40845[label="",style="dashed", color="magenta", weight=3]; 52.97/33.39 40225 -> 40846[label="",style="dashed", color="magenta", weight=3]; 52.97/33.39 40225 -> 40847[label="",style="dashed", color="magenta", weight=3]; 52.97/33.39 40225 -> 40848[label="",style="dashed", color="magenta", weight=3]; 52.97/33.39 40225 -> 40849[label="",style="dashed", color="magenta", weight=3]; 52.97/33.39 40225 -> 40850[label="",style="dashed", color="magenta", weight=3]; 52.97/33.39 40225 -> 40851[label="",style="dashed", color="magenta", weight=3]; 52.97/33.39 40225 -> 40852[label="",style="dashed", color="magenta", weight=3]; 52.97/33.39 40225 -> 40853[label="",style="dashed", color="magenta", weight=3]; 52.97/33.39 40225 -> 40854[label="",style="dashed", color="magenta", weight=3]; 52.97/33.39 40225 -> 40855[label="",style="dashed", color="magenta", weight=3]; 52.97/33.39 40225 -> 40856[label="",style="dashed", color="magenta", weight=3]; 52.97/33.39 40225 -> 40857[label="",style="dashed", color="magenta", weight=3]; 52.97/33.39 40226 -> 40951[label="",style="dashed", color="red", weight=0]; 52.97/33.39 40226[label="FiniteMap.glueBal2Mid_elt10 (FiniteMap.Branch yuz300 yuz301 yuz302 yuz303 yuz304) (FiniteMap.Branch yuz340 yuz341 yuz342 yuz343 yuz344) (FiniteMap.findMax (FiniteMap.Branch yuz300 yuz301 yuz302 yuz303 yuz304))",fontsize=16,color="magenta"];40226 -> 40952[label="",style="dashed", color="magenta", weight=3]; 52.97/33.39 40226 -> 40953[label="",style="dashed", color="magenta", weight=3]; 52.97/33.39 40226 -> 40954[label="",style="dashed", color="magenta", weight=3]; 52.97/33.39 40226 -> 40955[label="",style="dashed", color="magenta", weight=3]; 52.97/33.39 40226 -> 40956[label="",style="dashed", color="magenta", weight=3]; 52.97/33.39 40226 -> 40957[label="",style="dashed", color="magenta", weight=3]; 52.97/33.39 40226 -> 40958[label="",style="dashed", color="magenta", weight=3]; 52.97/33.39 40226 -> 40959[label="",style="dashed", color="magenta", weight=3]; 52.97/33.39 40226 -> 40960[label="",style="dashed", color="magenta", weight=3]; 52.97/33.39 40226 -> 40961[label="",style="dashed", color="magenta", weight=3]; 52.97/33.39 40226 -> 40962[label="",style="dashed", color="magenta", weight=3]; 52.97/33.39 40226 -> 40963[label="",style="dashed", color="magenta", weight=3]; 52.97/33.39 40226 -> 40964[label="",style="dashed", color="magenta", weight=3]; 52.97/33.39 40226 -> 40965[label="",style="dashed", color="magenta", weight=3]; 52.97/33.39 40226 -> 40966[label="",style="dashed", color="magenta", weight=3]; 52.97/33.39 40650[label="FiniteMap.glueBal2Mid_key20 (FiniteMap.Branch yuz1584 yuz1585 yuz1586 yuz1587 yuz1588) (FiniteMap.Branch yuz1589 yuz1590 yuz1591 yuz1592 yuz1593) (FiniteMap.findMin (FiniteMap.Branch yuz1594 yuz1595 yuz1596 FiniteMap.EmptyFM yuz1598))",fontsize=16,color="black",shape="box"];40650 -> 40755[label="",style="solid", color="black", weight=3]; 52.97/33.39 40651[label="FiniteMap.glueBal2Mid_key20 (FiniteMap.Branch yuz1584 yuz1585 yuz1586 yuz1587 yuz1588) (FiniteMap.Branch yuz1589 yuz1590 yuz1591 yuz1592 yuz1593) (FiniteMap.findMin (FiniteMap.Branch yuz1594 yuz1595 yuz1596 (FiniteMap.Branch yuz15970 yuz15971 yuz15972 yuz15973 yuz15974) yuz1598))",fontsize=16,color="black",shape="box"];40651 -> 40756[label="",style="solid", color="black", weight=3]; 52.97/33.39 40753[label="FiniteMap.glueBal2Mid_elt20 (FiniteMap.Branch yuz1600 yuz1601 yuz1602 yuz1603 yuz1604) (FiniteMap.Branch yuz1605 yuz1606 yuz1607 yuz1608 yuz1609) (FiniteMap.findMin (FiniteMap.Branch yuz1610 yuz1611 yuz1612 FiniteMap.EmptyFM yuz1614))",fontsize=16,color="black",shape="box"];40753 -> 40770[label="",style="solid", color="black", weight=3]; 52.97/33.39 40754[label="FiniteMap.glueBal2Mid_elt20 (FiniteMap.Branch yuz1600 yuz1601 yuz1602 yuz1603 yuz1604) (FiniteMap.Branch yuz1605 yuz1606 yuz1607 yuz1608 yuz1609) (FiniteMap.findMin (FiniteMap.Branch yuz1610 yuz1611 yuz1612 (FiniteMap.Branch yuz16130 yuz16131 yuz16132 yuz16133 yuz16134) yuz1614))",fontsize=16,color="black",shape="box"];40754 -> 40771[label="",style="solid", color="black", weight=3]; 52.97/33.39 40311[label="yuz3432",fontsize=16,color="green",shape="box"];40312[label="yuz3433",fontsize=16,color="green",shape="box"];40313[label="yuz3430",fontsize=16,color="green",shape="box"];40314[label="yuz3431",fontsize=16,color="green",shape="box"];40315[label="yuz3434",fontsize=16,color="green",shape="box"];38569[label="yuz1449",fontsize=16,color="green",shape="box"];40539 -> 37634[label="",style="dashed", color="red", weight=0]; 52.97/33.39 40539[label="Pos (Succ (Succ Zero)) * FiniteMap.sizeFM yuz15653",fontsize=16,color="magenta"];40539 -> 40553[label="",style="dashed", color="magenta", weight=3]; 52.97/33.39 40539 -> 40554[label="",style="dashed", color="magenta", weight=3]; 52.97/33.39 40540 -> 37455[label="",style="dashed", color="red", weight=0]; 52.97/33.39 40540[label="FiniteMap.sizeFM yuz15654",fontsize=16,color="magenta"];40540 -> 40555[label="",style="dashed", color="magenta", weight=3]; 52.97/33.39 40541[label="FiniteMap.mkBalBranch6MkBalBranch11 yuz340 yuz341 (FiniteMap.Branch yuz15650 yuz15651 yuz15652 yuz15653 yuz15654) yuz344 (FiniteMap.Branch yuz15650 yuz15651 yuz15652 yuz15653 yuz15654) yuz344 yuz15650 yuz15651 yuz15652 yuz15653 yuz15654 False",fontsize=16,color="black",shape="box"];40541 -> 40556[label="",style="solid", color="black", weight=3]; 52.97/33.39 40542[label="FiniteMap.mkBalBranch6MkBalBranch11 yuz340 yuz341 (FiniteMap.Branch yuz15650 yuz15651 yuz15652 yuz15653 yuz15654) yuz344 (FiniteMap.Branch yuz15650 yuz15651 yuz15652 yuz15653 yuz15654) yuz344 yuz15650 yuz15651 yuz15652 yuz15653 yuz15654 True",fontsize=16,color="black",shape="box"];40542 -> 40557[label="",style="solid", color="black", weight=3]; 52.97/33.39 40551[label="FiniteMap.mkBalBranch6Double_L yuz340 yuz341 yuz1565 (FiniteMap.Branch yuz3440 yuz3441 yuz3442 yuz3443 yuz3444) yuz1565 (FiniteMap.Branch yuz3440 yuz3441 yuz3442 yuz3443 yuz3444)",fontsize=16,color="burlywood",shape="box"];41240[label="yuz3443/FiniteMap.EmptyFM",fontsize=10,color="white",style="solid",shape="box"];40551 -> 41240[label="",style="solid", color="burlywood", weight=9]; 52.97/33.39 41240 -> 40652[label="",style="solid", color="burlywood", weight=3]; 52.97/33.39 41241[label="yuz3443/FiniteMap.Branch yuz34430 yuz34431 yuz34432 yuz34433 yuz34434",fontsize=10,color="white",style="solid",shape="box"];40551 -> 41241[label="",style="solid", color="burlywood", weight=9]; 52.97/33.39 41241 -> 40653[label="",style="solid", color="burlywood", weight=3]; 52.97/33.39 40552 -> 37548[label="",style="dashed", color="red", weight=0]; 52.97/33.39 40552[label="FiniteMap.mkBranchResult yuz3440 yuz3441 yuz3444 (FiniteMap.mkBranch (Pos (Succ (Succ (Succ (Succ Zero))))) yuz340 yuz341 yuz1565 yuz3443)",fontsize=16,color="magenta"];40552 -> 40654[label="",style="dashed", color="magenta", weight=3]; 52.97/33.39 40552 -> 40655[label="",style="dashed", color="magenta", weight=3]; 52.97/33.39 40552 -> 40656[label="",style="dashed", color="magenta", weight=3]; 52.97/33.39 40552 -> 40657[label="",style="dashed", color="magenta", weight=3]; 52.97/33.39 40273[label="yuz303",fontsize=16,color="green",shape="box"];40274[label="yuz300",fontsize=16,color="green",shape="box"];40275[label="yuz301",fontsize=16,color="green",shape="box"];40276 -> 40181[label="",style="dashed", color="red", weight=0]; 52.97/33.39 40276[label="FiniteMap.deleteMax (FiniteMap.Branch yuz3040 yuz3041 yuz3042 yuz3043 yuz3044)",fontsize=16,color="magenta"];40276 -> 40316[label="",style="dashed", color="magenta", weight=3]; 52.97/33.39 40276 -> 40317[label="",style="dashed", color="magenta", weight=3]; 52.97/33.39 40276 -> 40318[label="",style="dashed", color="magenta", weight=3]; 52.97/33.39 40276 -> 40319[label="",style="dashed", color="magenta", weight=3]; 52.97/33.39 40276 -> 40320[label="",style="dashed", color="magenta", weight=3]; 52.97/33.39 40843[label="yuz301",fontsize=16,color="green",shape="box"];40844[label="yuz300",fontsize=16,color="green",shape="box"];40845[label="yuz301",fontsize=16,color="green",shape="box"];40846[label="yuz300",fontsize=16,color="green",shape="box"];40847[label="yuz304",fontsize=16,color="green",shape="box"];40848[label="yuz303",fontsize=16,color="green",shape="box"];40849[label="yuz304",fontsize=16,color="green",shape="box"];40850[label="yuz341",fontsize=16,color="green",shape="box"];40851[label="yuz344",fontsize=16,color="green",shape="box"];40852[label="yuz302",fontsize=16,color="green",shape="box"];40853[label="yuz302",fontsize=16,color="green",shape="box"];40854[label="yuz342",fontsize=16,color="green",shape="box"];40855[label="yuz303",fontsize=16,color="green",shape="box"];40856[label="yuz340",fontsize=16,color="green",shape="box"];40857[label="yuz343",fontsize=16,color="green",shape="box"];40842[label="FiniteMap.glueBal2Mid_key10 (FiniteMap.Branch yuz1647 yuz1648 yuz1649 yuz1650 yuz1651) (FiniteMap.Branch yuz1652 yuz1653 yuz1654 yuz1655 yuz1656) (FiniteMap.findMax (FiniteMap.Branch yuz1657 yuz1658 yuz1659 yuz1660 yuz1661))",fontsize=16,color="burlywood",shape="triangle"];41242[label="yuz1661/FiniteMap.EmptyFM",fontsize=10,color="white",style="solid",shape="box"];40842 -> 41242[label="",style="solid", color="burlywood", weight=9]; 52.97/33.39 41242 -> 40933[label="",style="solid", color="burlywood", weight=3]; 52.97/33.39 41243[label="yuz1661/FiniteMap.Branch yuz16610 yuz16611 yuz16612 yuz16613 yuz16614",fontsize=10,color="white",style="solid",shape="box"];40842 -> 41243[label="",style="solid", color="burlywood", weight=9]; 52.97/33.39 41243 -> 40934[label="",style="solid", color="burlywood", weight=3]; 52.97/33.39 40952[label="yuz301",fontsize=16,color="green",shape="box"];40953[label="yuz303",fontsize=16,color="green",shape="box"];40954[label="yuz303",fontsize=16,color="green",shape="box"];40955[label="yuz343",fontsize=16,color="green",shape="box"];40956[label="yuz304",fontsize=16,color="green",shape="box"];40957[label="yuz300",fontsize=16,color="green",shape="box"];40958[label="yuz340",fontsize=16,color="green",shape="box"];40959[label="yuz301",fontsize=16,color="green",shape="box"];40960[label="yuz341",fontsize=16,color="green",shape="box"];40961[label="yuz302",fontsize=16,color="green",shape="box"];40962[label="yuz344",fontsize=16,color="green",shape="box"];40963[label="yuz304",fontsize=16,color="green",shape="box"];40964[label="yuz300",fontsize=16,color="green",shape="box"];40965[label="yuz342",fontsize=16,color="green",shape="box"];40966[label="yuz302",fontsize=16,color="green",shape="box"];40951[label="FiniteMap.glueBal2Mid_elt10 (FiniteMap.Branch yuz1663 yuz1664 yuz1665 yuz1666 yuz1667) (FiniteMap.Branch yuz1668 yuz1669 yuz1670 yuz1671 yuz1672) (FiniteMap.findMax (FiniteMap.Branch yuz1673 yuz1674 yuz1675 yuz1676 yuz1677))",fontsize=16,color="burlywood",shape="triangle"];41244[label="yuz1677/FiniteMap.EmptyFM",fontsize=10,color="white",style="solid",shape="box"];40951 -> 41244[label="",style="solid", color="burlywood", weight=9]; 52.97/33.39 41244 -> 41042[label="",style="solid", color="burlywood", weight=3]; 52.97/33.39 41245[label="yuz1677/FiniteMap.Branch yuz16770 yuz16771 yuz16772 yuz16773 yuz16774",fontsize=10,color="white",style="solid",shape="box"];40951 -> 41245[label="",style="solid", color="burlywood", weight=9]; 52.97/33.39 41245 -> 41043[label="",style="solid", color="burlywood", weight=3]; 52.97/33.39 40755[label="FiniteMap.glueBal2Mid_key20 (FiniteMap.Branch yuz1584 yuz1585 yuz1586 yuz1587 yuz1588) (FiniteMap.Branch yuz1589 yuz1590 yuz1591 yuz1592 yuz1593) (yuz1594,yuz1595)",fontsize=16,color="black",shape="box"];40755 -> 40772[label="",style="solid", color="black", weight=3]; 52.97/33.39 40756 -> 40559[label="",style="dashed", color="red", weight=0]; 52.97/33.39 40756[label="FiniteMap.glueBal2Mid_key20 (FiniteMap.Branch yuz1584 yuz1585 yuz1586 yuz1587 yuz1588) (FiniteMap.Branch yuz1589 yuz1590 yuz1591 yuz1592 yuz1593) (FiniteMap.findMin (FiniteMap.Branch yuz15970 yuz15971 yuz15972 yuz15973 yuz15974))",fontsize=16,color="magenta"];40756 -> 40773[label="",style="dashed", color="magenta", weight=3]; 52.97/33.39 40756 -> 40774[label="",style="dashed", color="magenta", weight=3]; 52.97/33.39 40756 -> 40775[label="",style="dashed", color="magenta", weight=3]; 52.97/33.39 40756 -> 40776[label="",style="dashed", color="magenta", weight=3]; 52.97/33.39 40756 -> 40777[label="",style="dashed", color="magenta", weight=3]; 52.97/33.39 40770[label="FiniteMap.glueBal2Mid_elt20 (FiniteMap.Branch yuz1600 yuz1601 yuz1602 yuz1603 yuz1604) (FiniteMap.Branch yuz1605 yuz1606 yuz1607 yuz1608 yuz1609) (yuz1610,yuz1611)",fontsize=16,color="black",shape="box"];40770 -> 40790[label="",style="solid", color="black", weight=3]; 52.97/33.39 40771 -> 40662[label="",style="dashed", color="red", weight=0]; 52.97/33.39 40771[label="FiniteMap.glueBal2Mid_elt20 (FiniteMap.Branch yuz1600 yuz1601 yuz1602 yuz1603 yuz1604) (FiniteMap.Branch yuz1605 yuz1606 yuz1607 yuz1608 yuz1609) (FiniteMap.findMin (FiniteMap.Branch yuz16130 yuz16131 yuz16132 yuz16133 yuz16134))",fontsize=16,color="magenta"];40771 -> 40791[label="",style="dashed", color="magenta", weight=3]; 52.97/33.39 40771 -> 40792[label="",style="dashed", color="magenta", weight=3]; 52.97/33.39 40771 -> 40793[label="",style="dashed", color="magenta", weight=3]; 52.97/33.39 40771 -> 40794[label="",style="dashed", color="magenta", weight=3]; 52.97/33.39 40771 -> 40795[label="",style="dashed", color="magenta", weight=3]; 52.97/33.39 40553[label="Pos (Succ (Succ Zero))",fontsize=16,color="green",shape="box"];40554 -> 37455[label="",style="dashed", color="red", weight=0]; 52.97/33.39 40554[label="FiniteMap.sizeFM yuz15653",fontsize=16,color="magenta"];40554 -> 40658[label="",style="dashed", color="magenta", weight=3]; 52.97/33.39 40555[label="yuz15654",fontsize=16,color="green",shape="box"];40556[label="FiniteMap.mkBalBranch6MkBalBranch10 yuz340 yuz341 (FiniteMap.Branch yuz15650 yuz15651 yuz15652 yuz15653 yuz15654) yuz344 (FiniteMap.Branch yuz15650 yuz15651 yuz15652 yuz15653 yuz15654) yuz344 yuz15650 yuz15651 yuz15652 yuz15653 yuz15654 otherwise",fontsize=16,color="black",shape="box"];40556 -> 40659[label="",style="solid", color="black", weight=3]; 52.97/33.39 40557[label="FiniteMap.mkBalBranch6Single_R yuz340 yuz341 (FiniteMap.Branch yuz15650 yuz15651 yuz15652 yuz15653 yuz15654) yuz344 (FiniteMap.Branch yuz15650 yuz15651 yuz15652 yuz15653 yuz15654) yuz344",fontsize=16,color="black",shape="box"];40557 -> 40660[label="",style="solid", color="black", weight=3]; 52.97/33.39 40652[label="FiniteMap.mkBalBranch6Double_L yuz340 yuz341 yuz1565 (FiniteMap.Branch yuz3440 yuz3441 yuz3442 FiniteMap.EmptyFM yuz3444) yuz1565 (FiniteMap.Branch yuz3440 yuz3441 yuz3442 FiniteMap.EmptyFM yuz3444)",fontsize=16,color="black",shape="box"];40652 -> 40757[label="",style="solid", color="black", weight=3]; 52.97/33.39 40653[label="FiniteMap.mkBalBranch6Double_L yuz340 yuz341 yuz1565 (FiniteMap.Branch yuz3440 yuz3441 yuz3442 (FiniteMap.Branch yuz34430 yuz34431 yuz34432 yuz34433 yuz34434) yuz3444) yuz1565 (FiniteMap.Branch yuz3440 yuz3441 yuz3442 (FiniteMap.Branch yuz34430 yuz34431 yuz34432 yuz34433 yuz34434) yuz3444)",fontsize=16,color="black",shape="box"];40653 -> 40758[label="",style="solid", color="black", weight=3]; 52.97/33.39 40654[label="yuz3440",fontsize=16,color="green",shape="box"];40655[label="yuz3441",fontsize=16,color="green",shape="box"];40656[label="yuz3444",fontsize=16,color="green",shape="box"];40657[label="FiniteMap.mkBranch (Pos (Succ (Succ (Succ (Succ Zero))))) yuz340 yuz341 yuz1565 yuz3443",fontsize=16,color="black",shape="box"];40657 -> 40759[label="",style="solid", color="black", weight=3]; 52.97/33.39 40316[label="yuz3043",fontsize=16,color="green",shape="box"];40317[label="yuz3044",fontsize=16,color="green",shape="box"];40318[label="yuz3040",fontsize=16,color="green",shape="box"];40319[label="yuz3042",fontsize=16,color="green",shape="box"];40320[label="yuz3041",fontsize=16,color="green",shape="box"];40933[label="FiniteMap.glueBal2Mid_key10 (FiniteMap.Branch yuz1647 yuz1648 yuz1649 yuz1650 yuz1651) (FiniteMap.Branch yuz1652 yuz1653 yuz1654 yuz1655 yuz1656) (FiniteMap.findMax (FiniteMap.Branch yuz1657 yuz1658 yuz1659 yuz1660 FiniteMap.EmptyFM))",fontsize=16,color="black",shape="box"];40933 -> 41044[label="",style="solid", color="black", weight=3]; 52.97/33.39 40934[label="FiniteMap.glueBal2Mid_key10 (FiniteMap.Branch yuz1647 yuz1648 yuz1649 yuz1650 yuz1651) (FiniteMap.Branch yuz1652 yuz1653 yuz1654 yuz1655 yuz1656) (FiniteMap.findMax (FiniteMap.Branch yuz1657 yuz1658 yuz1659 yuz1660 (FiniteMap.Branch yuz16610 yuz16611 yuz16612 yuz16613 yuz16614)))",fontsize=16,color="black",shape="box"];40934 -> 41045[label="",style="solid", color="black", weight=3]; 52.97/33.39 41042[label="FiniteMap.glueBal2Mid_elt10 (FiniteMap.Branch yuz1663 yuz1664 yuz1665 yuz1666 yuz1667) (FiniteMap.Branch yuz1668 yuz1669 yuz1670 yuz1671 yuz1672) (FiniteMap.findMax (FiniteMap.Branch yuz1673 yuz1674 yuz1675 yuz1676 FiniteMap.EmptyFM))",fontsize=16,color="black",shape="box"];41042 -> 41052[label="",style="solid", color="black", weight=3]; 52.97/33.39 41043[label="FiniteMap.glueBal2Mid_elt10 (FiniteMap.Branch yuz1663 yuz1664 yuz1665 yuz1666 yuz1667) (FiniteMap.Branch yuz1668 yuz1669 yuz1670 yuz1671 yuz1672) (FiniteMap.findMax (FiniteMap.Branch yuz1673 yuz1674 yuz1675 yuz1676 (FiniteMap.Branch yuz16770 yuz16771 yuz16772 yuz16773 yuz16774)))",fontsize=16,color="black",shape="box"];41043 -> 41053[label="",style="solid", color="black", weight=3]; 52.97/33.39 40772[label="yuz1594",fontsize=16,color="green",shape="box"];40773[label="yuz15973",fontsize=16,color="green",shape="box"];40774[label="yuz15971",fontsize=16,color="green",shape="box"];40775[label="yuz15974",fontsize=16,color="green",shape="box"];40776[label="yuz15972",fontsize=16,color="green",shape="box"];40777[label="yuz15970",fontsize=16,color="green",shape="box"];40790[label="yuz1611",fontsize=16,color="green",shape="box"];40791[label="yuz16133",fontsize=16,color="green",shape="box"];40792[label="yuz16130",fontsize=16,color="green",shape="box"];40793[label="yuz16132",fontsize=16,color="green",shape="box"];40794[label="yuz16134",fontsize=16,color="green",shape="box"];40795[label="yuz16131",fontsize=16,color="green",shape="box"];40658[label="yuz15653",fontsize=16,color="green",shape="box"];40659[label="FiniteMap.mkBalBranch6MkBalBranch10 yuz340 yuz341 (FiniteMap.Branch yuz15650 yuz15651 yuz15652 yuz15653 yuz15654) yuz344 (FiniteMap.Branch yuz15650 yuz15651 yuz15652 yuz15653 yuz15654) yuz344 yuz15650 yuz15651 yuz15652 yuz15653 yuz15654 True",fontsize=16,color="black",shape="box"];40659 -> 40760[label="",style="solid", color="black", weight=3]; 52.97/33.39 40660 -> 40800[label="",style="dashed", color="red", weight=0]; 52.97/33.39 40660[label="FiniteMap.mkBranch (Pos (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ Zero))))))))) yuz15650 yuz15651 yuz15653 (FiniteMap.mkBranch (Pos (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ Zero)))))))))) yuz340 yuz341 yuz15654 yuz344)",fontsize=16,color="magenta"];40660 -> 40801[label="",style="dashed", color="magenta", weight=3]; 52.97/33.39 40660 -> 40802[label="",style="dashed", color="magenta", weight=3]; 52.97/33.39 40660 -> 40803[label="",style="dashed", color="magenta", weight=3]; 52.97/33.39 40660 -> 40804[label="",style="dashed", color="magenta", weight=3]; 52.97/33.39 40660 -> 40805[label="",style="dashed", color="magenta", weight=3]; 52.97/33.39 40660 -> 40806[label="",style="dashed", color="magenta", weight=3]; 52.97/33.39 40660 -> 40807[label="",style="dashed", color="magenta", weight=3]; 52.97/33.39 40660 -> 40808[label="",style="dashed", color="magenta", weight=3]; 52.97/33.39 40660 -> 40809[label="",style="dashed", color="magenta", weight=3]; 52.97/33.39 40757[label="error []",fontsize=16,color="red",shape="box"];40758 -> 40800[label="",style="dashed", color="red", weight=0]; 52.97/33.39 40758[label="FiniteMap.mkBranch (Pos (Succ (Succ (Succ (Succ (Succ Zero)))))) yuz34430 yuz34431 (FiniteMap.mkBranch (Pos (Succ (Succ (Succ (Succ (Succ (Succ Zero))))))) yuz340 yuz341 yuz1565 yuz34433) (FiniteMap.mkBranch (Pos (Succ (Succ (Succ (Succ (Succ (Succ (Succ Zero)))))))) yuz3440 yuz3441 yuz34434 yuz3444)",fontsize=16,color="magenta"];40758 -> 40810[label="",style="dashed", color="magenta", weight=3]; 52.97/33.39 40758 -> 40811[label="",style="dashed", color="magenta", weight=3]; 52.97/33.39 40758 -> 40812[label="",style="dashed", color="magenta", weight=3]; 52.97/33.39 40758 -> 40813[label="",style="dashed", color="magenta", weight=3]; 52.97/33.39 40758 -> 40814[label="",style="dashed", color="magenta", weight=3]; 52.97/33.39 40758 -> 40815[label="",style="dashed", color="magenta", weight=3]; 52.97/33.39 40758 -> 40816[label="",style="dashed", color="magenta", weight=3]; 52.97/33.39 40758 -> 40817[label="",style="dashed", color="magenta", weight=3]; 52.97/33.39 40758 -> 40818[label="",style="dashed", color="magenta", weight=3]; 52.97/33.39 40759 -> 37548[label="",style="dashed", color="red", weight=0]; 52.97/33.39 40759[label="FiniteMap.mkBranchResult yuz340 yuz341 yuz3443 yuz1565",fontsize=16,color="magenta"];40759 -> 40796[label="",style="dashed", color="magenta", weight=3]; 52.97/33.39 40759 -> 40797[label="",style="dashed", color="magenta", weight=3]; 52.97/33.39 41044[label="FiniteMap.glueBal2Mid_key10 (FiniteMap.Branch yuz1647 yuz1648 yuz1649 yuz1650 yuz1651) (FiniteMap.Branch yuz1652 yuz1653 yuz1654 yuz1655 yuz1656) (yuz1657,yuz1658)",fontsize=16,color="black",shape="box"];41044 -> 41054[label="",style="solid", color="black", weight=3]; 52.97/33.39 41045 -> 40842[label="",style="dashed", color="red", weight=0]; 52.97/33.39 41045[label="FiniteMap.glueBal2Mid_key10 (FiniteMap.Branch yuz1647 yuz1648 yuz1649 yuz1650 yuz1651) (FiniteMap.Branch yuz1652 yuz1653 yuz1654 yuz1655 yuz1656) (FiniteMap.findMax (FiniteMap.Branch yuz16610 yuz16611 yuz16612 yuz16613 yuz16614))",fontsize=16,color="magenta"];41045 -> 41055[label="",style="dashed", color="magenta", weight=3]; 52.97/33.39 41045 -> 41056[label="",style="dashed", color="magenta", weight=3]; 52.97/33.39 41045 -> 41057[label="",style="dashed", color="magenta", weight=3]; 52.97/33.39 41045 -> 41058[label="",style="dashed", color="magenta", weight=3]; 52.97/33.39 41045 -> 41059[label="",style="dashed", color="magenta", weight=3]; 52.97/33.39 41052[label="FiniteMap.glueBal2Mid_elt10 (FiniteMap.Branch yuz1663 yuz1664 yuz1665 yuz1666 yuz1667) (FiniteMap.Branch yuz1668 yuz1669 yuz1670 yuz1671 yuz1672) (yuz1673,yuz1674)",fontsize=16,color="black",shape="box"];41052 -> 41064[label="",style="solid", color="black", weight=3]; 52.97/33.39 41053 -> 40951[label="",style="dashed", color="red", weight=0]; 52.97/33.39 41053[label="FiniteMap.glueBal2Mid_elt10 (FiniteMap.Branch yuz1663 yuz1664 yuz1665 yuz1666 yuz1667) (FiniteMap.Branch yuz1668 yuz1669 yuz1670 yuz1671 yuz1672) (FiniteMap.findMax (FiniteMap.Branch yuz16770 yuz16771 yuz16772 yuz16773 yuz16774))",fontsize=16,color="magenta"];41053 -> 41065[label="",style="dashed", color="magenta", weight=3]; 52.97/33.39 41053 -> 41066[label="",style="dashed", color="magenta", weight=3]; 52.97/33.39 41053 -> 41067[label="",style="dashed", color="magenta", weight=3]; 52.97/33.39 41053 -> 41068[label="",style="dashed", color="magenta", weight=3]; 52.97/33.39 41053 -> 41069[label="",style="dashed", color="magenta", weight=3]; 52.97/33.39 40760[label="FiniteMap.mkBalBranch6Double_R yuz340 yuz341 (FiniteMap.Branch yuz15650 yuz15651 yuz15652 yuz15653 yuz15654) yuz344 (FiniteMap.Branch yuz15650 yuz15651 yuz15652 yuz15653 yuz15654) yuz344",fontsize=16,color="burlywood",shape="box"];41246[label="yuz15654/FiniteMap.EmptyFM",fontsize=10,color="white",style="solid",shape="box"];40760 -> 41246[label="",style="solid", color="burlywood", weight=9]; 52.97/33.39 41246 -> 40798[label="",style="solid", color="burlywood", weight=3]; 52.97/33.39 41247[label="yuz15654/FiniteMap.Branch yuz156540 yuz156541 yuz156542 yuz156543 yuz156544",fontsize=10,color="white",style="solid",shape="box"];40760 -> 41247[label="",style="solid", color="burlywood", weight=9]; 52.97/33.39 41247 -> 40799[label="",style="solid", color="burlywood", weight=3]; 52.97/33.39 40801[label="yuz15654",fontsize=16,color="green",shape="box"];40802[label="yuz341",fontsize=16,color="green",shape="box"];40803[label="yuz344",fontsize=16,color="green",shape="box"];40804[label="yuz340",fontsize=16,color="green",shape="box"];40805[label="yuz15653",fontsize=16,color="green",shape="box"];40806[label="yuz15651",fontsize=16,color="green",shape="box"];40807[label="yuz15650",fontsize=16,color="green",shape="box"];40808[label="Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ Zero)))))))",fontsize=16,color="green",shape="box"];40809[label="Succ (Succ (Succ (Succ (Succ (Succ (Succ Zero))))))",fontsize=16,color="green",shape="box"];40800[label="FiniteMap.mkBranch (Pos (Succ yuz1637)) yuz1638 yuz1639 yuz1640 (FiniteMap.mkBranch (Pos (Succ yuz1641)) yuz1642 yuz1643 yuz1644 yuz1645)",fontsize=16,color="black",shape="triangle"];40800 -> 40837[label="",style="solid", color="black", weight=3]; 52.97/33.39 40810[label="yuz34434",fontsize=16,color="green",shape="box"];40811[label="yuz3441",fontsize=16,color="green",shape="box"];40812[label="yuz3444",fontsize=16,color="green",shape="box"];40813[label="yuz3440",fontsize=16,color="green",shape="box"];40814[label="FiniteMap.mkBranch (Pos (Succ (Succ (Succ (Succ (Succ (Succ Zero))))))) yuz340 yuz341 yuz1565 yuz34433",fontsize=16,color="black",shape="box"];40814 -> 40838[label="",style="solid", color="black", weight=3]; 52.97/33.39 40815[label="yuz34431",fontsize=16,color="green",shape="box"];40816[label="yuz34430",fontsize=16,color="green",shape="box"];40817[label="Succ (Succ (Succ (Succ (Succ (Succ Zero)))))",fontsize=16,color="green",shape="box"];40818[label="Succ (Succ (Succ (Succ Zero)))",fontsize=16,color="green",shape="box"];40796[label="yuz3443",fontsize=16,color="green",shape="box"];40797[label="yuz1565",fontsize=16,color="green",shape="box"];41054[label="yuz1657",fontsize=16,color="green",shape="box"];41055[label="yuz16611",fontsize=16,color="green",shape="box"];41056[label="yuz16610",fontsize=16,color="green",shape="box"];41057[label="yuz16614",fontsize=16,color="green",shape="box"];41058[label="yuz16612",fontsize=16,color="green",shape="box"];41059[label="yuz16613",fontsize=16,color="green",shape="box"];41064[label="yuz1674",fontsize=16,color="green",shape="box"];41065[label="yuz16773",fontsize=16,color="green",shape="box"];41066[label="yuz16770",fontsize=16,color="green",shape="box"];41067[label="yuz16771",fontsize=16,color="green",shape="box"];41068[label="yuz16774",fontsize=16,color="green",shape="box"];41069[label="yuz16772",fontsize=16,color="green",shape="box"];40798[label="FiniteMap.mkBalBranch6Double_R yuz340 yuz341 (FiniteMap.Branch yuz15650 yuz15651 yuz15652 yuz15653 FiniteMap.EmptyFM) yuz344 (FiniteMap.Branch yuz15650 yuz15651 yuz15652 yuz15653 FiniteMap.EmptyFM) yuz344",fontsize=16,color="black",shape="box"];40798 -> 40839[label="",style="solid", color="black", weight=3]; 52.97/33.39 40799[label="FiniteMap.mkBalBranch6Double_R yuz340 yuz341 (FiniteMap.Branch yuz15650 yuz15651 yuz15652 yuz15653 (FiniteMap.Branch yuz156540 yuz156541 yuz156542 yuz156543 yuz156544)) yuz344 (FiniteMap.Branch yuz15650 yuz15651 yuz15652 yuz15653 (FiniteMap.Branch yuz156540 yuz156541 yuz156542 yuz156543 yuz156544)) yuz344",fontsize=16,color="black",shape="box"];40799 -> 40840[label="",style="solid", color="black", weight=3]; 52.97/33.39 40837 -> 37548[label="",style="dashed", color="red", weight=0]; 52.97/33.39 40837[label="FiniteMap.mkBranchResult yuz1638 yuz1639 (FiniteMap.mkBranch (Pos (Succ yuz1641)) yuz1642 yuz1643 yuz1644 yuz1645) yuz1640",fontsize=16,color="magenta"];40837 -> 40935[label="",style="dashed", color="magenta", weight=3]; 52.97/33.39 40837 -> 40936[label="",style="dashed", color="magenta", weight=3]; 52.97/33.39 40837 -> 40937[label="",style="dashed", color="magenta", weight=3]; 52.97/33.39 40837 -> 40938[label="",style="dashed", color="magenta", weight=3]; 52.97/33.39 40838 -> 37548[label="",style="dashed", color="red", weight=0]; 52.97/33.39 40838[label="FiniteMap.mkBranchResult yuz340 yuz341 yuz34433 yuz1565",fontsize=16,color="magenta"];40838 -> 40939[label="",style="dashed", color="magenta", weight=3]; 52.97/33.39 40838 -> 40940[label="",style="dashed", color="magenta", weight=3]; 52.97/33.39 40839[label="error []",fontsize=16,color="red",shape="box"];40840 -> 40800[label="",style="dashed", color="red", weight=0]; 52.97/33.39 40840[label="FiniteMap.mkBranch (Pos (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ Zero))))))))))) yuz156540 yuz156541 (FiniteMap.mkBranch (Pos (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ Zero)))))))))))) yuz15650 yuz15651 yuz15653 yuz156543) (FiniteMap.mkBranch (Pos (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ Zero))))))))))))) yuz340 yuz341 yuz156544 yuz344)",fontsize=16,color="magenta"];40840 -> 40941[label="",style="dashed", color="magenta", weight=3]; 52.97/33.39 40840 -> 40942[label="",style="dashed", color="magenta", weight=3]; 52.97/33.39 40840 -> 40943[label="",style="dashed", color="magenta", weight=3]; 52.97/33.39 40840 -> 40944[label="",style="dashed", color="magenta", weight=3]; 52.97/33.39 40840 -> 40945[label="",style="dashed", color="magenta", weight=3]; 52.97/33.39 40840 -> 40946[label="",style="dashed", color="magenta", weight=3]; 52.97/33.39 40840 -> 40947[label="",style="dashed", color="magenta", weight=3]; 52.97/33.39 40840 -> 40948[label="",style="dashed", color="magenta", weight=3]; 52.97/33.39 40840 -> 40949[label="",style="dashed", color="magenta", weight=3]; 52.97/33.39 40935[label="yuz1638",fontsize=16,color="green",shape="box"];40936[label="yuz1639",fontsize=16,color="green",shape="box"];40937[label="FiniteMap.mkBranch (Pos (Succ yuz1641)) yuz1642 yuz1643 yuz1644 yuz1645",fontsize=16,color="black",shape="triangle"];40937 -> 41046[label="",style="solid", color="black", weight=3]; 52.97/33.39 40938[label="yuz1640",fontsize=16,color="green",shape="box"];40939[label="yuz34433",fontsize=16,color="green",shape="box"];40940[label="yuz1565",fontsize=16,color="green",shape="box"];40941[label="yuz156544",fontsize=16,color="green",shape="box"];40942[label="yuz341",fontsize=16,color="green",shape="box"];40943[label="yuz344",fontsize=16,color="green",shape="box"];40944[label="yuz340",fontsize=16,color="green",shape="box"];40945 -> 40937[label="",style="dashed", color="red", weight=0]; 52.97/33.39 40945[label="FiniteMap.mkBranch (Pos (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ Zero)))))))))))) yuz15650 yuz15651 yuz15653 yuz156543",fontsize=16,color="magenta"];40945 -> 41047[label="",style="dashed", color="magenta", weight=3]; 52.97/33.39 40945 -> 41048[label="",style="dashed", color="magenta", weight=3]; 52.97/33.39 40945 -> 41049[label="",style="dashed", color="magenta", weight=3]; 52.97/33.39 40945 -> 41050[label="",style="dashed", color="magenta", weight=3]; 52.97/33.39 40945 -> 41051[label="",style="dashed", color="magenta", weight=3]; 52.97/33.39 40946[label="yuz156541",fontsize=16,color="green",shape="box"];40947[label="yuz156540",fontsize=16,color="green",shape="box"];40948[label="Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ Zero))))))))))",fontsize=16,color="green",shape="box"];40949[label="Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ Zero))))))))",fontsize=16,color="green",shape="box"];41046 -> 37548[label="",style="dashed", color="red", weight=0]; 52.97/33.39 41046[label="FiniteMap.mkBranchResult yuz1642 yuz1643 yuz1645 yuz1644",fontsize=16,color="magenta"];41046 -> 41060[label="",style="dashed", color="magenta", weight=3]; 52.97/33.39 41046 -> 41061[label="",style="dashed", color="magenta", weight=3]; 52.97/33.39 41046 -> 41062[label="",style="dashed", color="magenta", weight=3]; 52.97/33.39 41046 -> 41063[label="",style="dashed", color="magenta", weight=3]; 52.97/33.39 41047[label="yuz15653",fontsize=16,color="green",shape="box"];41048[label="yuz15651",fontsize=16,color="green",shape="box"];41049[label="yuz156543",fontsize=16,color="green",shape="box"];41050[label="yuz15650",fontsize=16,color="green",shape="box"];41051[label="Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ Zero)))))))))",fontsize=16,color="green",shape="box"];41060[label="yuz1642",fontsize=16,color="green",shape="box"];41061[label="yuz1643",fontsize=16,color="green",shape="box"];41062[label="yuz1645",fontsize=16,color="green",shape="box"];41063[label="yuz1644",fontsize=16,color="green",shape="box"];} 52.97/33.39 52.97/33.39 ---------------------------------------- 52.97/33.39 52.97/33.39 (14) 52.97/33.39 Complex Obligation (AND) 52.97/33.39 52.97/33.39 ---------------------------------------- 52.97/33.39 52.97/33.39 (15) 52.97/33.39 Obligation: 52.97/33.39 Q DP problem: 52.97/33.39 The TRS P consists of the following rules: 52.97/33.39 52.97/33.39 new_primCmpNat(Succ(yuz2800), Succ(yuz330000)) -> new_primCmpNat(yuz2800, yuz330000) 52.97/33.39 52.97/33.39 R is empty. 52.97/33.39 Q is empty. 52.97/33.39 We have to consider all minimal (P,Q,R)-chains. 52.97/33.39 ---------------------------------------- 52.97/33.39 52.97/33.39 (16) QDPSizeChangeProof (EQUIVALENT) 52.97/33.39 By using the subterm criterion [SUBTERM_CRITERION] together with the size-change analysis [AAECC05] we have proven that there are no infinite chains for this DP problem. 52.97/33.39 52.97/33.39 From the DPs we obtained the following set of size-change graphs: 52.97/33.39 *new_primCmpNat(Succ(yuz2800), Succ(yuz330000)) -> new_primCmpNat(yuz2800, yuz330000) 52.97/33.39 The graph contains the following edges 1 > 1, 2 > 2 52.97/33.39 52.97/33.39 52.97/33.39 ---------------------------------------- 52.97/33.39 52.97/33.39 (17) 52.97/33.39 YES 52.97/33.39 52.97/33.39 ---------------------------------------- 52.97/33.39 52.97/33.39 (18) 52.97/33.39 Obligation: 52.97/33.39 Q DP problem: 52.97/33.39 The TRS P consists of the following rules: 52.97/33.39 52.97/33.39 new_primMulNat(Succ(yuz400000), yuz60100) -> new_primMulNat(yuz400000, yuz60100) 52.97/33.39 52.97/33.39 R is empty. 52.97/33.39 Q is empty. 52.97/33.39 We have to consider all minimal (P,Q,R)-chains. 52.97/33.39 ---------------------------------------- 52.97/33.39 52.97/33.39 (19) QDPSizeChangeProof (EQUIVALENT) 52.97/33.39 By using the subterm criterion [SUBTERM_CRITERION] together with the size-change analysis [AAECC05] we have proven that there are no infinite chains for this DP problem. 52.97/33.39 52.97/33.39 From the DPs we obtained the following set of size-change graphs: 52.97/33.39 *new_primMulNat(Succ(yuz400000), yuz60100) -> new_primMulNat(yuz400000, yuz60100) 52.97/33.39 The graph contains the following edges 1 > 1, 2 >= 2 52.97/33.39 52.97/33.39 52.97/33.39 ---------------------------------------- 52.97/33.39 52.97/33.39 (20) 52.97/33.39 YES 52.97/33.39 52.97/33.39 ---------------------------------------- 52.97/33.39 52.97/33.39 (21) 52.97/33.39 Obligation: 52.97/33.39 Q DP problem: 52.97/33.39 The TRS P consists of the following rules: 52.97/33.39 52.97/33.39 new_primMulNat0(Succ(yuz60000), Succ(yuz40100)) -> new_primMulNat0(yuz60000, Succ(yuz40100)) 52.97/33.39 52.97/33.39 R is empty. 52.97/33.39 Q is empty. 52.97/33.39 We have to consider all minimal (P,Q,R)-chains. 52.97/33.39 ---------------------------------------- 52.97/33.39 52.97/33.39 (22) QDPSizeChangeProof (EQUIVALENT) 52.97/33.39 By using the subterm criterion [SUBTERM_CRITERION] together with the size-change analysis [AAECC05] we have proven that there are no infinite chains for this DP problem. 52.97/33.39 52.97/33.39 From the DPs we obtained the following set of size-change graphs: 52.97/33.39 *new_primMulNat0(Succ(yuz60000), Succ(yuz40100)) -> new_primMulNat0(yuz60000, Succ(yuz40100)) 52.97/33.39 The graph contains the following edges 1 > 1, 2 >= 2 52.97/33.39 52.97/33.39 52.97/33.39 ---------------------------------------- 52.97/33.39 52.97/33.39 (23) 52.97/33.39 YES 52.97/33.39 52.97/33.39 ---------------------------------------- 52.97/33.39 52.97/33.39 (24) 52.97/33.39 Obligation: 52.97/33.39 Q DP problem: 52.97/33.39 The TRS P consists of the following rules: 52.97/33.39 52.97/33.39 new_filterFM1(yuz3, yuz40, yuz41, yuz42, yuz43, yuz44, h) -> new_filterFM(yuz3, yuz43, h) 52.97/33.39 new_filterFM(yuz3, Branch(yuz40, yuz41, yuz42, yuz43, yuz44), h) -> new_filterFM1(yuz3, yuz40, yuz41, yuz42, yuz43, yuz44, h) 52.97/33.39 new_filterFM1(yuz3, yuz40, yuz41, yuz42, yuz43, yuz44, h) -> new_filterFM(yuz3, yuz44, h) 52.97/33.39 52.97/33.39 R is empty. 52.97/33.39 Q is empty. 52.97/33.39 We have to consider all minimal (P,Q,R)-chains. 52.97/33.39 ---------------------------------------- 52.97/33.39 52.97/33.39 (25) QDPSizeChangeProof (EQUIVALENT) 52.97/33.39 By using the subterm criterion [SUBTERM_CRITERION] together with the size-change analysis [AAECC05] we have proven that there are no infinite chains for this DP problem. 52.97/33.39 52.97/33.39 From the DPs we obtained the following set of size-change graphs: 53.00/33.39 *new_filterFM(yuz3, Branch(yuz40, yuz41, yuz42, yuz43, yuz44), h) -> new_filterFM1(yuz3, yuz40, yuz41, yuz42, yuz43, yuz44, h) 53.00/33.39 The graph contains the following edges 1 >= 1, 2 > 2, 2 > 3, 2 > 4, 2 > 5, 2 > 6, 3 >= 7 53.00/33.39 53.00/33.39 53.00/33.39 *new_filterFM1(yuz3, yuz40, yuz41, yuz42, yuz43, yuz44, h) -> new_filterFM(yuz3, yuz43, h) 53.00/33.39 The graph contains the following edges 1 >= 1, 5 >= 2, 7 >= 3 53.00/33.39 53.00/33.39 53.00/33.39 *new_filterFM1(yuz3, yuz40, yuz41, yuz42, yuz43, yuz44, h) -> new_filterFM(yuz3, yuz44, h) 53.00/33.39 The graph contains the following edges 1 >= 1, 6 >= 2, 7 >= 3 53.00/33.39 53.00/33.39 53.00/33.39 ---------------------------------------- 53.00/33.39 53.00/33.39 (26) 53.00/33.39 YES 53.00/33.39 53.00/33.39 ---------------------------------------- 53.00/33.39 53.00/33.39 (27) 53.00/33.39 Obligation: 53.00/33.39 Q DP problem: 53.00/33.39 The TRS P consists of the following rules: 53.00/33.39 53.00/33.39 new_primMinusNat(Succ(yuz148400), Succ(yuz148900)) -> new_primMinusNat(yuz148400, yuz148900) 53.00/33.39 53.00/33.39 R is empty. 53.00/33.39 Q is empty. 53.00/33.39 We have to consider all minimal (P,Q,R)-chains. 53.00/33.39 ---------------------------------------- 53.00/33.39 53.00/33.39 (28) QDPSizeChangeProof (EQUIVALENT) 53.00/33.39 By using the subterm criterion [SUBTERM_CRITERION] together with the size-change analysis [AAECC05] we have proven that there are no infinite chains for this DP problem. 53.00/33.39 53.00/33.39 From the DPs we obtained the following set of size-change graphs: 53.00/33.39 *new_primMinusNat(Succ(yuz148400), Succ(yuz148900)) -> new_primMinusNat(yuz148400, yuz148900) 53.00/33.39 The graph contains the following edges 1 > 1, 2 > 2 53.00/33.39 53.00/33.39 53.00/33.39 ---------------------------------------- 53.00/33.39 53.00/33.39 (29) 53.00/33.39 YES 53.00/33.39 53.00/33.39 ---------------------------------------- 53.00/33.39 53.00/33.39 (30) 53.00/33.39 Obligation: 53.00/33.39 Q DP problem: 53.00/33.39 The TRS P consists of the following rules: 53.00/33.39 53.00/33.39 new_primPlusNat(Succ(yuz11200), Succ(yuz601000)) -> new_primPlusNat(yuz11200, yuz601000) 53.00/33.39 53.00/33.39 R is empty. 53.00/33.39 Q is empty. 53.00/33.39 We have to consider all minimal (P,Q,R)-chains. 53.00/33.39 ---------------------------------------- 53.00/33.39 53.00/33.39 (31) QDPSizeChangeProof (EQUIVALENT) 53.00/33.39 By using the subterm criterion [SUBTERM_CRITERION] together with the size-change analysis [AAECC05] we have proven that there are no infinite chains for this DP problem. 53.00/33.39 53.00/33.39 From the DPs we obtained the following set of size-change graphs: 53.00/33.39 *new_primPlusNat(Succ(yuz11200), Succ(yuz601000)) -> new_primPlusNat(yuz11200, yuz601000) 53.00/33.39 The graph contains the following edges 1 > 1, 2 > 2 53.00/33.39 53.00/33.39 53.00/33.39 ---------------------------------------- 53.00/33.39 53.00/33.39 (32) 53.00/33.39 YES 53.00/33.39 53.00/33.39 ---------------------------------------- 53.00/33.39 53.00/33.39 (33) 53.00/33.39 Obligation: 53.00/33.39 Q DP problem: 53.00/33.39 The TRS P consists of the following rules: 53.00/33.39 53.00/33.39 new_addToFM_C1(yuz1459, yuz1460, yuz1461, yuz1462, yuz1463, yuz1464, yuz1465, True, bb, bc) -> new_addToFM_C(yuz1463, yuz1464, yuz1465, bb, bc) 53.00/33.39 new_addToFM_C2(yuz1435, yuz1436, yuz1437, yuz1438, yuz1439, yuz1440, yuz1441, False, h, ba) -> new_addToFM_C1(yuz1435, yuz1436, yuz1437, yuz1438, yuz1439, yuz1440, yuz1441, new_gt(yuz1440, yuz1435, h), h, ba) 53.00/33.39 new_addToFM_C2(yuz1435, yuz1436, yuz1437, Branch(yuz14380, yuz14381, yuz14382, yuz14383, yuz14384), yuz1439, yuz1440, yuz1441, True, h, ba) -> new_addToFM_C2(yuz14380, yuz14381, yuz14382, yuz14383, yuz14384, yuz1440, yuz1441, new_lt(yuz1440, yuz14380, h), h, ba) 53.00/33.39 new_addToFM_C(Branch(yuz14380, yuz14381, yuz14382, yuz14383, yuz14384), yuz1440, yuz1441, h, ba) -> new_addToFM_C2(yuz14380, yuz14381, yuz14382, yuz14383, yuz14384, yuz1440, yuz1441, new_lt(yuz1440, yuz14380, h), h, ba) 53.00/33.39 53.00/33.39 The TRS R consists of the following rules: 53.00/33.39 53.00/33.39 new_lt(yuz1440, yuz14380, ty_Int) -> new_lt0(yuz1440, yuz14380) 53.00/33.39 new_gt(yuz1440, yuz1435, ty_Double) -> new_esEs(new_compare6(yuz1440, yuz1435)) 53.00/33.39 new_esEs0(EQ) -> False 53.00/33.39 new_compare4(yuz1440, yuz1435) -> error([]) 53.00/33.39 new_lt0(yuz21, yuz11) -> new_esEs0(new_compare(yuz21, yuz11)) 53.00/33.39 new_compare11(yuz1440, yuz1435) -> error([]) 53.00/33.39 new_gt(yuz1440, yuz1435, app(app(app(ty_@3, ca), cb), cc)) -> new_esEs(new_compare10(yuz1440, yuz1435, ca, cb, cc)) 53.00/33.39 new_esEs0(LT) -> True 53.00/33.39 new_primCmpInt(Neg(Succ(yuz144000)), Pos(yuz14350)) -> LT 53.00/33.39 new_primPlusNat0(Succ(yuz11200), Zero) -> Succ(yuz11200) 53.00/33.39 new_primPlusNat0(Zero, Succ(yuz601000)) -> Succ(yuz601000) 53.00/33.39 new_compare10(yuz1440, yuz1435, ca, cb, cc) -> error([]) 53.00/33.39 new_esEs0(GT) -> False 53.00/33.39 new_lt(yuz1440, yuz14380, ty_Ordering) -> new_esEs0(new_compare5(yuz1440, yuz14380)) 53.00/33.39 new_primPlusNat0(Zero, Zero) -> Zero 53.00/33.39 new_lt(yuz1440, yuz14380, app(app(ty_Either, be), bf)) -> new_esEs0(new_compare7(yuz1440, yuz14380, be, bf)) 53.00/33.39 new_primCmpInt(Pos(Zero), Pos(Succ(yuz143500))) -> new_primCmpNat2(Zero, yuz143500) 53.00/33.39 new_primCmpInt(Neg(Succ(yuz144000)), Neg(yuz14350)) -> new_primCmpNat2(yuz14350, yuz144000) 53.00/33.39 new_primCmpNat0(yuz144000, Succ(yuz143500)) -> new_primCmpNat1(yuz144000, yuz143500) 53.00/33.39 new_primCmpInt(Neg(Zero), Neg(Succ(yuz143500))) -> new_primCmpNat0(yuz143500, Zero) 53.00/33.39 new_primCmpInt(Pos(Succ(yuz144000)), Pos(yuz14350)) -> new_primCmpNat0(yuz144000, yuz14350) 53.00/33.39 new_gt(yuz1440, yuz1435, ty_Integer) -> new_esEs(new_compare3(yuz1440, yuz1435)) 53.00/33.39 new_primMulNat1(Zero, Zero) -> Zero 53.00/33.39 new_sr0(Neg(yuz6000), Neg(yuz4010)) -> Pos(new_primMulNat1(yuz6000, yuz4010)) 53.00/33.39 new_primCmpNat1(Zero, Zero) -> EQ 53.00/33.39 new_lt(yuz1440, yuz14380, app(app(ty_@2, bg), bh)) -> new_esEs0(new_compare8(yuz1440, yuz14380, bg, bh)) 53.00/33.39 new_compare2(:%(yuz14400, yuz14401), :%(yuz14350, yuz14351), ty_Int) -> new_compare(new_sr0(yuz14400, yuz14351), new_sr0(yuz14350, yuz14401)) 53.00/33.39 new_primCmpNat1(Succ(yuz2800), Zero) -> GT 53.00/33.39 new_primCmpInt(Neg(Zero), Neg(Zero)) -> EQ 53.00/33.39 new_lt(yuz1440, yuz14380, ty_Float) -> new_esEs0(new_compare0(yuz1440, yuz14380)) 53.00/33.39 new_primCmpInt(Pos(Zero), Neg(Succ(yuz143500))) -> GT 53.00/33.39 new_compare0(yuz1440, yuz1435) -> error([]) 53.00/33.39 new_gt(yuz1440, yuz1435, app(ty_Maybe, ce)) -> new_esEs(new_compare12(yuz1440, yuz1435, ce)) 53.00/33.39 new_esEs(LT) -> False 53.00/33.39 new_gt(yuz1440, yuz1435, ty_Char) -> new_esEs(new_compare11(yuz1440, yuz1435)) 53.00/33.39 new_gt(yuz1440, yuz1435, app(ty_[], bd)) -> new_esEs(new_compare1(yuz1440, yuz1435, bd)) 53.00/33.39 new_gt(yuz1440, yuz1435, ty_@0) -> new_esEs(new_compare9(yuz1440, yuz1435)) 53.00/33.39 new_gt0(yuz1440, yuz1435) -> new_esEs(new_compare(yuz1440, yuz1435)) 53.00/33.39 new_gt(yuz1440, yuz1435, app(app(ty_Either, be), bf)) -> new_esEs(new_compare7(yuz1440, yuz1435, be, bf)) 53.00/33.39 new_primCmpNat2(Succ(yuz143500), yuz144000) -> new_primCmpNat1(yuz143500, yuz144000) 53.00/33.39 new_compare3(yuz1440, yuz1435) -> error([]) 53.00/33.39 new_sr0(Pos(yuz6000), Pos(yuz4010)) -> Pos(new_primMulNat1(yuz6000, yuz4010)) 53.00/33.39 new_primCmpNat0(yuz144000, Zero) -> GT 53.00/33.39 new_lt(yuz1440, yuz14380, app(ty_Ratio, cd)) -> new_esEs0(new_compare2(yuz1440, yuz14380, cd)) 53.00/33.39 new_primPlusNat0(Succ(yuz11200), Succ(yuz601000)) -> Succ(Succ(new_primPlusNat0(yuz11200, yuz601000))) 53.00/33.39 new_lt(yuz1440, yuz14380, ty_Bool) -> new_esEs0(new_compare4(yuz1440, yuz14380)) 53.00/33.39 new_compare8(yuz1440, yuz1435, bg, bh) -> error([]) 53.00/33.39 new_sr(yuz14350, yuz14401) -> error([]) 53.00/33.39 new_compare2(:%(yuz14400, yuz14401), :%(yuz14350, yuz14351), ty_Integer) -> new_compare3(new_sr(yuz14400, yuz14351), new_sr(yuz14350, yuz14401)) 53.00/33.39 new_lt(yuz1440, yuz14380, ty_Double) -> new_esEs0(new_compare6(yuz1440, yuz14380)) 53.00/33.39 new_gt(yuz1440, yuz1435, ty_Ordering) -> new_esEs(new_compare5(yuz1440, yuz1435)) 53.00/33.39 new_esEs(GT) -> True 53.00/33.39 new_primCmpNat2(Zero, yuz144000) -> LT 53.00/33.39 new_primMulNat1(Succ(yuz60000), Zero) -> Zero 53.00/33.39 new_primMulNat1(Zero, Succ(yuz40100)) -> Zero 53.00/33.39 new_gt(yuz1440, yuz1435, app(ty_Ratio, cd)) -> new_esEs(new_compare2(yuz1440, yuz1435, cd)) 53.00/33.39 new_lt(yuz1440, yuz14380, app(app(app(ty_@3, ca), cb), cc)) -> new_esEs0(new_compare10(yuz1440, yuz14380, ca, cb, cc)) 53.00/33.39 new_primCmpNat1(Succ(yuz2800), Succ(yuz330000)) -> new_primCmpNat1(yuz2800, yuz330000) 53.00/33.39 new_compare(yuz1440, yuz1435) -> new_primCmpInt(yuz1440, yuz1435) 53.00/33.39 new_esEs(EQ) -> False 53.00/33.39 new_gt(yuz1440, yuz1435, app(app(ty_@2, bg), bh)) -> new_esEs(new_compare8(yuz1440, yuz1435, bg, bh)) 53.00/33.39 new_primCmpInt(Neg(Zero), Pos(Succ(yuz143500))) -> LT 53.00/33.39 new_primCmpInt(Pos(Succ(yuz144000)), Neg(yuz14350)) -> GT 53.00/33.39 new_lt(yuz1440, yuz14380, ty_Integer) -> new_esEs0(new_compare3(yuz1440, yuz14380)) 53.00/33.39 new_lt(yuz1440, yuz14380, app(ty_[], bd)) -> new_esEs0(new_compare1(yuz1440, yuz14380, bd)) 53.00/33.39 new_sr0(Pos(yuz6000), Neg(yuz4010)) -> Neg(new_primMulNat1(yuz6000, yuz4010)) 53.00/33.39 new_sr0(Neg(yuz6000), Pos(yuz4010)) -> Neg(new_primMulNat1(yuz6000, yuz4010)) 53.00/33.39 new_compare1(yuz1440, yuz1435, bd) -> error([]) 53.00/33.39 new_compare7(yuz1440, yuz1435, be, bf) -> error([]) 53.00/33.39 new_compare6(yuz1440, yuz1435) -> error([]) 53.00/33.39 new_primCmpNat1(Zero, Succ(yuz330000)) -> LT 53.00/33.39 new_compare5(yuz1440, yuz1435) -> error([]) 53.00/33.39 new_gt(yuz1440, yuz1435, ty_Float) -> new_esEs(new_compare0(yuz1440, yuz1435)) 53.00/33.39 new_primCmpInt(Pos(Zero), Neg(Zero)) -> EQ 53.00/33.39 new_primCmpInt(Neg(Zero), Pos(Zero)) -> EQ 53.00/33.39 new_gt(yuz1440, yuz1435, ty_Bool) -> new_esEs(new_compare4(yuz1440, yuz1435)) 53.00/33.39 new_compare12(yuz1440, yuz1435, ce) -> error([]) 53.00/33.39 new_lt(yuz1440, yuz14380, ty_@0) -> new_esEs0(new_compare9(yuz1440, yuz14380)) 53.00/33.39 new_lt(yuz1440, yuz14380, ty_Char) -> new_esEs0(new_compare11(yuz1440, yuz14380)) 53.00/33.39 new_primMulNat1(Succ(yuz60000), Succ(yuz40100)) -> new_primPlusNat0(new_primMulNat1(yuz60000, Succ(yuz40100)), Succ(yuz40100)) 53.00/33.39 new_gt(yuz1440, yuz1435, ty_Int) -> new_gt0(yuz1440, yuz1435) 53.00/33.39 new_lt(yuz1440, yuz14380, app(ty_Maybe, ce)) -> new_esEs0(new_compare12(yuz1440, yuz14380, ce)) 53.00/33.39 new_compare9(yuz1440, yuz1435) -> error([]) 53.00/33.39 new_primCmpInt(Pos(Zero), Pos(Zero)) -> EQ 53.00/33.39 53.00/33.39 The set Q consists of the following terms: 53.00/33.39 53.00/33.39 new_primCmpNat0(x0, Succ(x1)) 53.00/33.39 new_lt(x0, x1, ty_Double) 53.00/33.39 new_esEs(GT) 53.00/33.39 new_primCmpInt(Neg(Zero), Neg(Zero)) 53.00/33.39 new_compare4(x0, x1) 53.00/33.39 new_primCmpInt(Pos(Zero), Neg(Succ(x0))) 53.00/33.39 new_primCmpInt(Neg(Zero), Pos(Succ(x0))) 53.00/33.39 new_lt(x0, x1, ty_Char) 53.00/33.39 new_compare10(x0, x1, x2, x3, x4) 53.00/33.39 new_compare5(x0, x1) 53.00/33.39 new_primCmpInt(Pos(Zero), Pos(Succ(x0))) 53.00/33.39 new_lt(x0, x1, app(ty_[], x2)) 53.00/33.39 new_primMulNat1(Succ(x0), Zero) 53.00/33.39 new_gt(x0, x1, ty_Bool) 53.00/33.39 new_lt(x0, x1, app(app(ty_@2, x2), x3)) 53.00/33.39 new_gt(x0, x1, ty_@0) 53.00/33.39 new_primCmpNat1(Succ(x0), Succ(x1)) 53.00/33.39 new_compare1(x0, x1, x2) 53.00/33.39 new_sr0(Pos(x0), Pos(x1)) 53.00/33.39 new_compare3(x0, x1) 53.00/33.39 new_lt(x0, x1, ty_Bool) 53.00/33.39 new_gt(x0, x1, ty_Ordering) 53.00/33.39 new_primCmpInt(Pos(Zero), Neg(Zero)) 53.00/33.39 new_primCmpInt(Neg(Zero), Pos(Zero)) 53.00/33.39 new_lt(x0, x1, ty_Float) 53.00/33.39 new_gt(x0, x1, ty_Double) 53.00/33.39 new_primCmpInt(Neg(Succ(x0)), Neg(x1)) 53.00/33.39 new_gt(x0, x1, ty_Char) 53.00/33.39 new_esEs0(LT) 53.00/33.39 new_primCmpNat1(Succ(x0), Zero) 53.00/33.39 new_compare(x0, x1) 53.00/33.39 new_lt(x0, x1, ty_Integer) 53.00/33.39 new_lt(x0, x1, app(app(app(ty_@3, x2), x3), x4)) 53.00/33.39 new_primCmpNat1(Zero, Succ(x0)) 53.00/33.39 new_primPlusNat0(Zero, Succ(x0)) 53.00/33.39 new_compare7(x0, x1, x2, x3) 53.00/33.39 new_gt(x0, x1, app(app(app(ty_@3, x2), x3), x4)) 53.00/33.39 new_primCmpNat1(Zero, Zero) 53.00/33.39 new_primCmpInt(Neg(Succ(x0)), Pos(x1)) 53.00/33.39 new_gt(x0, x1, ty_Integer) 53.00/33.39 new_primCmpNat2(Succ(x0), x1) 53.00/33.39 new_primCmpInt(Pos(Succ(x0)), Neg(x1)) 53.00/33.39 new_gt(x0, x1, ty_Float) 53.00/33.39 new_esEs0(EQ) 53.00/33.39 new_compare11(x0, x1) 53.00/33.39 new_compare2(:%(x0, x1), :%(x2, x3), ty_Int) 53.00/33.39 new_primCmpNat0(x0, Zero) 53.00/33.39 new_gt0(x0, x1) 53.00/33.39 new_lt(x0, x1, app(ty_Maybe, x2)) 53.00/33.39 new_lt(x0, x1, app(ty_Ratio, x2)) 53.00/33.39 new_primPlusNat0(Succ(x0), Succ(x1)) 53.00/33.39 new_compare9(x0, x1) 53.00/33.39 new_lt(x0, x1, ty_Int) 53.00/33.39 new_compare0(x0, x1) 53.00/33.39 new_gt(x0, x1, app(ty_Maybe, x2)) 53.00/33.39 new_primCmpInt(Pos(Succ(x0)), Pos(x1)) 53.00/33.39 new_lt0(x0, x1) 53.00/33.39 new_gt(x0, x1, app(ty_Ratio, x2)) 53.00/33.39 new_compare2(:%(x0, x1), :%(x2, x3), ty_Integer) 53.00/33.39 new_gt(x0, x1, app(app(ty_Either, x2), x3)) 53.00/33.39 new_esEs(LT) 53.00/33.39 new_lt(x0, x1, app(app(ty_Either, x2), x3)) 53.00/33.39 new_primPlusNat0(Succ(x0), Zero) 53.00/33.39 new_esEs(EQ) 53.00/33.39 new_sr0(Pos(x0), Neg(x1)) 53.00/33.39 new_sr0(Neg(x0), Pos(x1)) 53.00/33.39 new_compare12(x0, x1, x2) 53.00/33.39 new_sr0(Neg(x0), Neg(x1)) 53.00/33.39 new_primCmpNat2(Zero, x0) 53.00/33.39 new_esEs0(GT) 53.00/33.39 new_primCmpInt(Neg(Zero), Neg(Succ(x0))) 53.00/33.39 new_primMulNat1(Succ(x0), Succ(x1)) 53.00/33.39 new_primMulNat1(Zero, Zero) 53.00/33.39 new_gt(x0, x1, app(ty_[], x2)) 53.00/33.39 new_gt(x0, x1, ty_Int) 53.00/33.39 new_primMulNat1(Zero, Succ(x0)) 53.00/33.39 new_compare6(x0, x1) 53.00/33.39 new_primCmpInt(Pos(Zero), Pos(Zero)) 53.00/33.39 new_primPlusNat0(Zero, Zero) 53.00/33.39 new_compare8(x0, x1, x2, x3) 53.00/33.39 new_gt(x0, x1, app(app(ty_@2, x2), x3)) 53.00/33.39 new_lt(x0, x1, ty_@0) 53.00/33.39 new_lt(x0, x1, ty_Ordering) 53.00/33.39 new_sr(x0, x1) 53.00/33.39 53.00/33.39 We have to consider all minimal (P,Q,R)-chains. 53.00/33.39 ---------------------------------------- 53.00/33.39 53.00/33.39 (34) QDPSizeChangeProof (EQUIVALENT) 53.00/33.39 By using the subterm criterion [SUBTERM_CRITERION] together with the size-change analysis [AAECC05] we have proven that there are no infinite chains for this DP problem. 53.00/33.39 53.00/33.39 From the DPs we obtained the following set of size-change graphs: 53.00/33.39 *new_addToFM_C(Branch(yuz14380, yuz14381, yuz14382, yuz14383, yuz14384), yuz1440, yuz1441, h, ba) -> new_addToFM_C2(yuz14380, yuz14381, yuz14382, yuz14383, yuz14384, yuz1440, yuz1441, new_lt(yuz1440, yuz14380, h), h, ba) 53.00/33.39 The graph contains the following edges 1 > 1, 1 > 2, 1 > 3, 1 > 4, 1 > 5, 2 >= 6, 3 >= 7, 4 >= 9, 5 >= 10 53.00/33.39 53.00/33.39 53.00/33.39 *new_addToFM_C2(yuz1435, yuz1436, yuz1437, yuz1438, yuz1439, yuz1440, yuz1441, False, h, ba) -> new_addToFM_C1(yuz1435, yuz1436, yuz1437, yuz1438, yuz1439, yuz1440, yuz1441, new_gt(yuz1440, yuz1435, h), h, ba) 53.00/33.39 The graph contains the following edges 1 >= 1, 2 >= 2, 3 >= 3, 4 >= 4, 5 >= 5, 6 >= 6, 7 >= 7, 9 >= 9, 10 >= 10 53.00/33.39 53.00/33.39 53.00/33.39 *new_addToFM_C1(yuz1459, yuz1460, yuz1461, yuz1462, yuz1463, yuz1464, yuz1465, True, bb, bc) -> new_addToFM_C(yuz1463, yuz1464, yuz1465, bb, bc) 53.00/33.39 The graph contains the following edges 5 >= 1, 6 >= 2, 7 >= 3, 9 >= 4, 10 >= 5 53.00/33.39 53.00/33.39 53.00/33.39 *new_addToFM_C2(yuz1435, yuz1436, yuz1437, Branch(yuz14380, yuz14381, yuz14382, yuz14383, yuz14384), yuz1439, yuz1440, yuz1441, True, h, ba) -> new_addToFM_C2(yuz14380, yuz14381, yuz14382, yuz14383, yuz14384, yuz1440, yuz1441, new_lt(yuz1440, yuz14380, h), h, ba) 53.00/33.39 The graph contains the following edges 4 > 1, 4 > 2, 4 > 3, 4 > 4, 4 > 5, 6 >= 6, 7 >= 7, 9 >= 9, 10 >= 10 53.00/33.39 53.00/33.39 53.00/33.39 ---------------------------------------- 53.00/33.39 53.00/33.39 (35) 53.00/33.39 YES 53.00/33.39 53.00/33.39 ---------------------------------------- 53.00/33.39 53.00/33.39 (36) 53.00/33.39 Obligation: 53.00/33.39 Q DP problem: 53.00/33.39 The TRS P consists of the following rules: 53.00/33.39 53.00/33.39 new_mkVBalBranch3MkVBalBranch2(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz12380, yuz12381, yuz12382, Branch(yuz123830, yuz123831, yuz123832, yuz123833, yuz123834), yuz12384, yuz1240, yuz1241, True, h, ba) -> new_mkVBalBranch3MkVBalBranch2(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz123830, yuz123831, yuz123832, yuz123833, yuz123834, yuz1240, yuz1241, new_lt0(new_sr0(new_sIZE_RATIO, new_mkVBalBranch3Size_l(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz123830, yuz123831, yuz123832, yuz123833, yuz123834, h, ba)), new_mkVBalBranch3Size_r(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz123830, yuz123831, yuz123832, yuz123833, yuz123834, h, ba)), h, ba) 53.00/33.39 new_mkVBalBranch3MkVBalBranch2(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz12380, yuz12381, yuz12382, yuz12383, yuz12384, yuz1240, yuz1241, False, h, ba) -> new_mkVBalBranch3MkVBalBranch1(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz12380, yuz12381, yuz12382, yuz12383, yuz12384, yuz1240, yuz1241, new_lt0(new_sr1(new_mkVBalBranch3Size_r(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz12380, yuz12381, yuz12382, yuz12383, yuz12384, h, ba)), new_mkVBalBranch3Size_l(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz12380, yuz12381, yuz12382, yuz12383, yuz12384, h, ba)), h, ba) 53.00/33.39 new_mkVBalBranch3(yuz1240, yuz1241, yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz123830, yuz123831, yuz123832, yuz123833, yuz123834, h, ba) -> new_mkVBalBranch3MkVBalBranch2(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz123830, yuz123831, yuz123832, yuz123833, yuz123834, yuz1240, yuz1241, new_lt0(new_sr0(new_sIZE_RATIO, new_mkVBalBranch3Size_l(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz123830, yuz123831, yuz123832, yuz123833, yuz123834, h, ba)), new_mkVBalBranch3Size_r(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz123830, yuz123831, yuz123832, yuz123833, yuz123834, h, ba)), h, ba) 53.00/33.39 new_mkVBalBranch3MkVBalBranch1(yuz12340, yuz12341, yuz12342, yuz12343, Branch(yuz123440, yuz123441, yuz123442, yuz123443, yuz123444), yuz12380, yuz12381, yuz12382, yuz12383, yuz12384, yuz1240, yuz1241, True, h, ba) -> new_mkVBalBranch3(yuz1240, yuz1241, yuz123440, yuz123441, yuz123442, yuz123443, yuz123444, yuz12380, yuz12381, yuz12382, yuz12383, yuz12384, h, ba) 53.00/33.39 53.00/33.39 The TRS R consists of the following rules: 53.00/33.39 53.00/33.39 new_sIZE_RATIO -> Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))) 53.00/33.39 new_esEs0(EQ) -> False 53.00/33.39 new_lt0(yuz21, yuz11) -> new_esEs0(new_compare(yuz21, yuz11)) 53.00/33.39 new_esEs0(LT) -> True 53.00/33.39 new_primCmpInt(Neg(Succ(yuz144000)), Pos(yuz14350)) -> LT 53.00/33.39 new_primPlusNat0(Succ(yuz11200), Zero) -> Succ(yuz11200) 53.00/33.39 new_primPlusNat0(Zero, Succ(yuz601000)) -> Succ(yuz601000) 53.00/33.39 new_esEs0(GT) -> False 53.00/33.39 new_primPlusNat0(Zero, Zero) -> Zero 53.00/33.39 new_primCmpInt(Pos(Zero), Pos(Succ(yuz143500))) -> new_primCmpNat2(Zero, yuz143500) 53.00/33.39 new_primCmpInt(Neg(Succ(yuz144000)), Neg(yuz14350)) -> new_primCmpNat2(yuz14350, yuz144000) 53.00/33.39 new_primCmpNat0(yuz144000, Succ(yuz143500)) -> new_primCmpNat1(yuz144000, yuz143500) 53.00/33.39 new_primPlusNat1(Zero, yuz60100) -> Succ(yuz60100) 53.00/33.39 new_primCmpInt(Neg(Zero), Neg(Succ(yuz143500))) -> new_primCmpNat0(yuz143500, Zero) 53.00/33.39 new_primCmpInt(Pos(Succ(yuz144000)), Pos(yuz14350)) -> new_primCmpNat0(yuz144000, yuz14350) 53.00/33.39 new_primMulNat1(Zero, Zero) -> Zero 53.00/33.39 new_sr0(Neg(yuz6000), Neg(yuz4010)) -> Pos(new_primMulNat1(yuz6000, yuz4010)) 53.00/33.39 new_primMulNat3(Succ(yuz400000), yuz60100) -> new_primPlusNat1(new_primMulNat3(yuz400000, yuz60100), yuz60100) 53.00/33.39 new_primCmpNat1(Zero, Zero) -> EQ 53.00/33.39 new_primCmpNat1(Succ(yuz2800), Zero) -> GT 53.00/33.39 new_primMulNat2(Succ(yuz142500)) -> new_primPlusNat0(new_primMulNat3(Succ(Succ(Succ(Succ(Zero)))), yuz142500), Succ(yuz142500)) 53.00/33.39 new_primCmpInt(Neg(Zero), Neg(Zero)) -> EQ 53.00/33.39 new_primCmpInt(Pos(Zero), Neg(Succ(yuz143500))) -> GT 53.00/33.39 new_sr1(Pos(yuz14250)) -> Pos(new_primMulNat2(yuz14250)) 53.00/33.39 new_primCmpNat2(Succ(yuz143500), yuz144000) -> new_primCmpNat1(yuz143500, yuz144000) 53.00/33.39 new_sr0(Pos(yuz6000), Pos(yuz4010)) -> Pos(new_primMulNat1(yuz6000, yuz4010)) 53.00/33.39 new_primCmpNat0(yuz144000, Zero) -> GT 53.00/33.39 new_primPlusNat0(Succ(yuz11200), Succ(yuz601000)) -> Succ(Succ(new_primPlusNat0(yuz11200, yuz601000))) 53.00/33.39 new_primMulNat2(Zero) -> Zero 53.00/33.39 new_primCmpNat2(Zero, yuz144000) -> LT 53.00/33.39 new_primMulNat1(Succ(yuz60000), Zero) -> Zero 53.00/33.39 new_primMulNat1(Zero, Succ(yuz40100)) -> Zero 53.00/33.39 new_primCmpNat1(Succ(yuz2800), Succ(yuz330000)) -> new_primCmpNat1(yuz2800, yuz330000) 53.00/33.39 new_compare(yuz1440, yuz1435) -> new_primCmpInt(yuz1440, yuz1435) 53.00/33.39 new_primCmpInt(Neg(Zero), Pos(Succ(yuz143500))) -> LT 53.00/33.39 new_primCmpInt(Pos(Succ(yuz144000)), Neg(yuz14350)) -> GT 53.00/33.39 new_primMulNat3(Zero, yuz60100) -> Zero 53.00/33.39 new_sr0(Pos(yuz6000), Neg(yuz4010)) -> Neg(new_primMulNat1(yuz6000, yuz4010)) 53.00/33.39 new_sr0(Neg(yuz6000), Pos(yuz4010)) -> Neg(new_primMulNat1(yuz6000, yuz4010)) 53.00/33.39 new_primCmpNat1(Zero, Succ(yuz330000)) -> LT 53.00/33.39 new_primCmpInt(Pos(Zero), Neg(Zero)) -> EQ 53.00/33.39 new_primCmpInt(Neg(Zero), Pos(Zero)) -> EQ 53.00/33.39 new_sizeFM(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, h, ba) -> yuz12342 53.00/33.39 new_mkVBalBranch3Size_l(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz12380, yuz12381, yuz12382, yuz12383, yuz12384, h, ba) -> new_sizeFM(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, h, ba) 53.00/33.39 new_primMulNat1(Succ(yuz60000), Succ(yuz40100)) -> new_primPlusNat0(new_primMulNat1(yuz60000, Succ(yuz40100)), Succ(yuz40100)) 53.00/33.39 new_mkVBalBranch3Size_r(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz12380, yuz12381, yuz12382, yuz12383, yuz12384, h, ba) -> new_sizeFM(yuz12380, yuz12381, yuz12382, yuz12383, yuz12384, h, ba) 53.00/33.39 new_sr1(Neg(yuz14250)) -> Neg(new_primMulNat2(yuz14250)) 53.00/33.39 new_primPlusNat1(Succ(yuz1120), yuz60100) -> Succ(Succ(new_primPlusNat0(yuz1120, yuz60100))) 53.00/33.39 new_primCmpInt(Pos(Zero), Pos(Zero)) -> EQ 53.00/33.39 53.00/33.39 The set Q consists of the following terms: 53.00/33.39 53.00/33.39 new_primCmpNat0(x0, Succ(x1)) 53.00/33.39 new_primCmpInt(Neg(Zero), Neg(Zero)) 53.00/33.39 new_sIZE_RATIO 53.00/33.39 new_primCmpInt(Pos(Zero), Neg(Succ(x0))) 53.00/33.39 new_primCmpInt(Neg(Zero), Pos(Succ(x0))) 53.00/33.39 new_primCmpInt(Pos(Zero), Pos(Succ(x0))) 53.00/33.39 new_primMulNat1(Succ(x0), Zero) 53.00/33.39 new_mkVBalBranch3Size_l(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11) 53.00/33.39 new_primCmpNat1(Succ(x0), Succ(x1)) 53.00/33.39 new_sr0(Pos(x0), Pos(x1)) 53.00/33.39 new_primCmpInt(Pos(Zero), Neg(Zero)) 53.00/33.39 new_primCmpInt(Neg(Zero), Pos(Zero)) 53.00/33.39 new_primCmpInt(Neg(Succ(x0)), Neg(x1)) 53.00/33.39 new_esEs0(LT) 53.00/33.39 new_primCmpNat1(Succ(x0), Zero) 53.00/33.39 new_compare(x0, x1) 53.00/33.39 new_sr1(Neg(x0)) 53.00/33.39 new_primMulNat2(Zero) 53.00/33.39 new_primCmpNat1(Zero, Succ(x0)) 53.00/33.39 new_primPlusNat0(Zero, Succ(x0)) 53.00/33.39 new_primCmpNat1(Zero, Zero) 53.00/33.39 new_primCmpInt(Neg(Succ(x0)), Pos(x1)) 53.00/33.39 new_primCmpNat2(Succ(x0), x1) 53.00/33.39 new_primCmpInt(Pos(Succ(x0)), Neg(x1)) 53.00/33.39 new_sr1(Pos(x0)) 53.00/33.39 new_esEs0(EQ) 53.00/33.39 new_primMulNat3(Zero, x0) 53.00/33.39 new_primCmpNat0(x0, Zero) 53.00/33.39 new_primPlusNat1(Succ(x0), x1) 53.00/33.39 new_primPlusNat1(Zero, x0) 53.00/33.39 new_primMulNat3(Succ(x0), x1) 53.00/33.39 new_primPlusNat0(Succ(x0), Succ(x1)) 53.00/33.39 new_primCmpInt(Pos(Succ(x0)), Pos(x1)) 53.00/33.39 new_primMulNat2(Succ(x0)) 53.00/33.39 new_lt0(x0, x1) 53.00/33.39 new_mkVBalBranch3Size_r(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11) 53.00/33.39 new_sizeFM(x0, x1, x2, x3, x4, x5, x6) 53.00/33.39 new_primPlusNat0(Succ(x0), Zero) 53.00/33.39 new_sr0(Pos(x0), Neg(x1)) 53.00/33.39 new_sr0(Neg(x0), Pos(x1)) 53.00/33.39 new_sr0(Neg(x0), Neg(x1)) 53.00/33.39 new_primCmpNat2(Zero, x0) 53.00/33.39 new_esEs0(GT) 53.00/33.39 new_primCmpInt(Neg(Zero), Neg(Succ(x0))) 53.00/33.39 new_primMulNat1(Succ(x0), Succ(x1)) 53.00/33.39 new_primMulNat1(Zero, Zero) 53.00/33.39 new_primMulNat1(Zero, Succ(x0)) 53.00/33.39 new_primCmpInt(Pos(Zero), Pos(Zero)) 53.00/33.39 new_primPlusNat0(Zero, Zero) 53.00/33.39 53.00/33.39 We have to consider all minimal (P,Q,R)-chains. 53.00/33.39 ---------------------------------------- 53.00/33.39 53.00/33.39 (37) TransformationProof (EQUIVALENT) 53.00/33.39 By rewriting [LPAR04] the rule new_mkVBalBranch3MkVBalBranch2(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz12380, yuz12381, yuz12382, Branch(yuz123830, yuz123831, yuz123832, yuz123833, yuz123834), yuz12384, yuz1240, yuz1241, True, h, ba) -> new_mkVBalBranch3MkVBalBranch2(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz123830, yuz123831, yuz123832, yuz123833, yuz123834, yuz1240, yuz1241, new_lt0(new_sr0(new_sIZE_RATIO, new_mkVBalBranch3Size_l(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz123830, yuz123831, yuz123832, yuz123833, yuz123834, h, ba)), new_mkVBalBranch3Size_r(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz123830, yuz123831, yuz123832, yuz123833, yuz123834, h, ba)), h, ba) at position [12] we obtained the following new rules [LPAR04]: 53.00/33.39 53.00/33.39 (new_mkVBalBranch3MkVBalBranch2(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz12380, yuz12381, yuz12382, Branch(yuz123830, yuz123831, yuz123832, yuz123833, yuz123834), yuz12384, yuz1240, yuz1241, True, h, ba) -> new_mkVBalBranch3MkVBalBranch2(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz123830, yuz123831, yuz123832, yuz123833, yuz123834, yuz1240, yuz1241, new_esEs0(new_compare(new_sr0(new_sIZE_RATIO, new_mkVBalBranch3Size_l(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz123830, yuz123831, yuz123832, yuz123833, yuz123834, h, ba)), new_mkVBalBranch3Size_r(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz123830, yuz123831, yuz123832, yuz123833, yuz123834, h, ba))), h, ba),new_mkVBalBranch3MkVBalBranch2(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz12380, yuz12381, yuz12382, Branch(yuz123830, yuz123831, yuz123832, yuz123833, yuz123834), yuz12384, yuz1240, yuz1241, True, h, ba) -> new_mkVBalBranch3MkVBalBranch2(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz123830, yuz123831, yuz123832, yuz123833, yuz123834, yuz1240, yuz1241, new_esEs0(new_compare(new_sr0(new_sIZE_RATIO, new_mkVBalBranch3Size_l(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz123830, yuz123831, yuz123832, yuz123833, yuz123834, h, ba)), new_mkVBalBranch3Size_r(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz123830, yuz123831, yuz123832, yuz123833, yuz123834, h, ba))), h, ba)) 53.00/33.39 53.00/33.39 53.00/33.39 ---------------------------------------- 53.00/33.39 53.00/33.39 (38) 53.00/33.39 Obligation: 53.00/33.39 Q DP problem: 53.00/33.39 The TRS P consists of the following rules: 53.00/33.39 53.00/33.39 new_mkVBalBranch3MkVBalBranch2(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz12380, yuz12381, yuz12382, yuz12383, yuz12384, yuz1240, yuz1241, False, h, ba) -> new_mkVBalBranch3MkVBalBranch1(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz12380, yuz12381, yuz12382, yuz12383, yuz12384, yuz1240, yuz1241, new_lt0(new_sr1(new_mkVBalBranch3Size_r(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz12380, yuz12381, yuz12382, yuz12383, yuz12384, h, ba)), new_mkVBalBranch3Size_l(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz12380, yuz12381, yuz12382, yuz12383, yuz12384, h, ba)), h, ba) 53.00/33.39 new_mkVBalBranch3(yuz1240, yuz1241, yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz123830, yuz123831, yuz123832, yuz123833, yuz123834, h, ba) -> new_mkVBalBranch3MkVBalBranch2(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz123830, yuz123831, yuz123832, yuz123833, yuz123834, yuz1240, yuz1241, new_lt0(new_sr0(new_sIZE_RATIO, new_mkVBalBranch3Size_l(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz123830, yuz123831, yuz123832, yuz123833, yuz123834, h, ba)), new_mkVBalBranch3Size_r(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz123830, yuz123831, yuz123832, yuz123833, yuz123834, h, ba)), h, ba) 53.00/33.39 new_mkVBalBranch3MkVBalBranch1(yuz12340, yuz12341, yuz12342, yuz12343, Branch(yuz123440, yuz123441, yuz123442, yuz123443, yuz123444), yuz12380, yuz12381, yuz12382, yuz12383, yuz12384, yuz1240, yuz1241, True, h, ba) -> new_mkVBalBranch3(yuz1240, yuz1241, yuz123440, yuz123441, yuz123442, yuz123443, yuz123444, yuz12380, yuz12381, yuz12382, yuz12383, yuz12384, h, ba) 53.00/33.39 new_mkVBalBranch3MkVBalBranch2(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz12380, yuz12381, yuz12382, Branch(yuz123830, yuz123831, yuz123832, yuz123833, yuz123834), yuz12384, yuz1240, yuz1241, True, h, ba) -> new_mkVBalBranch3MkVBalBranch2(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz123830, yuz123831, yuz123832, yuz123833, yuz123834, yuz1240, yuz1241, new_esEs0(new_compare(new_sr0(new_sIZE_RATIO, new_mkVBalBranch3Size_l(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz123830, yuz123831, yuz123832, yuz123833, yuz123834, h, ba)), new_mkVBalBranch3Size_r(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz123830, yuz123831, yuz123832, yuz123833, yuz123834, h, ba))), h, ba) 53.00/33.39 53.00/33.39 The TRS R consists of the following rules: 53.00/33.39 53.00/33.39 new_sIZE_RATIO -> Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))) 53.00/33.39 new_esEs0(EQ) -> False 53.00/33.39 new_lt0(yuz21, yuz11) -> new_esEs0(new_compare(yuz21, yuz11)) 53.00/33.39 new_esEs0(LT) -> True 53.00/33.39 new_primCmpInt(Neg(Succ(yuz144000)), Pos(yuz14350)) -> LT 53.00/33.39 new_primPlusNat0(Succ(yuz11200), Zero) -> Succ(yuz11200) 53.00/33.39 new_primPlusNat0(Zero, Succ(yuz601000)) -> Succ(yuz601000) 53.00/33.39 new_esEs0(GT) -> False 53.00/33.39 new_primPlusNat0(Zero, Zero) -> Zero 53.00/33.39 new_primCmpInt(Pos(Zero), Pos(Succ(yuz143500))) -> new_primCmpNat2(Zero, yuz143500) 53.00/33.39 new_primCmpInt(Neg(Succ(yuz144000)), Neg(yuz14350)) -> new_primCmpNat2(yuz14350, yuz144000) 53.00/33.39 new_primCmpNat0(yuz144000, Succ(yuz143500)) -> new_primCmpNat1(yuz144000, yuz143500) 53.00/33.39 new_primPlusNat1(Zero, yuz60100) -> Succ(yuz60100) 53.00/33.39 new_primCmpInt(Neg(Zero), Neg(Succ(yuz143500))) -> new_primCmpNat0(yuz143500, Zero) 53.00/33.39 new_primCmpInt(Pos(Succ(yuz144000)), Pos(yuz14350)) -> new_primCmpNat0(yuz144000, yuz14350) 53.00/33.39 new_primMulNat1(Zero, Zero) -> Zero 53.00/33.39 new_sr0(Neg(yuz6000), Neg(yuz4010)) -> Pos(new_primMulNat1(yuz6000, yuz4010)) 53.00/33.39 new_primMulNat3(Succ(yuz400000), yuz60100) -> new_primPlusNat1(new_primMulNat3(yuz400000, yuz60100), yuz60100) 53.00/33.39 new_primCmpNat1(Zero, Zero) -> EQ 53.00/33.39 new_primCmpNat1(Succ(yuz2800), Zero) -> GT 53.00/33.39 new_primMulNat2(Succ(yuz142500)) -> new_primPlusNat0(new_primMulNat3(Succ(Succ(Succ(Succ(Zero)))), yuz142500), Succ(yuz142500)) 53.00/33.39 new_primCmpInt(Neg(Zero), Neg(Zero)) -> EQ 53.00/33.39 new_primCmpInt(Pos(Zero), Neg(Succ(yuz143500))) -> GT 53.00/33.39 new_sr1(Pos(yuz14250)) -> Pos(new_primMulNat2(yuz14250)) 53.00/33.39 new_primCmpNat2(Succ(yuz143500), yuz144000) -> new_primCmpNat1(yuz143500, yuz144000) 53.00/33.39 new_sr0(Pos(yuz6000), Pos(yuz4010)) -> Pos(new_primMulNat1(yuz6000, yuz4010)) 53.00/33.39 new_primCmpNat0(yuz144000, Zero) -> GT 53.00/33.39 new_primPlusNat0(Succ(yuz11200), Succ(yuz601000)) -> Succ(Succ(new_primPlusNat0(yuz11200, yuz601000))) 53.00/33.39 new_primMulNat2(Zero) -> Zero 53.00/33.39 new_primCmpNat2(Zero, yuz144000) -> LT 53.00/33.39 new_primMulNat1(Succ(yuz60000), Zero) -> Zero 53.00/33.39 new_primMulNat1(Zero, Succ(yuz40100)) -> Zero 53.00/33.39 new_primCmpNat1(Succ(yuz2800), Succ(yuz330000)) -> new_primCmpNat1(yuz2800, yuz330000) 53.00/33.39 new_compare(yuz1440, yuz1435) -> new_primCmpInt(yuz1440, yuz1435) 53.00/33.39 new_primCmpInt(Neg(Zero), Pos(Succ(yuz143500))) -> LT 53.00/33.39 new_primCmpInt(Pos(Succ(yuz144000)), Neg(yuz14350)) -> GT 53.00/33.39 new_primMulNat3(Zero, yuz60100) -> Zero 53.00/33.39 new_sr0(Pos(yuz6000), Neg(yuz4010)) -> Neg(new_primMulNat1(yuz6000, yuz4010)) 53.00/33.39 new_sr0(Neg(yuz6000), Pos(yuz4010)) -> Neg(new_primMulNat1(yuz6000, yuz4010)) 53.00/33.39 new_primCmpNat1(Zero, Succ(yuz330000)) -> LT 53.00/33.39 new_primCmpInt(Pos(Zero), Neg(Zero)) -> EQ 53.00/33.39 new_primCmpInt(Neg(Zero), Pos(Zero)) -> EQ 53.00/33.39 new_sizeFM(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, h, ba) -> yuz12342 53.00/33.39 new_mkVBalBranch3Size_l(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz12380, yuz12381, yuz12382, yuz12383, yuz12384, h, ba) -> new_sizeFM(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, h, ba) 53.00/33.39 new_primMulNat1(Succ(yuz60000), Succ(yuz40100)) -> new_primPlusNat0(new_primMulNat1(yuz60000, Succ(yuz40100)), Succ(yuz40100)) 53.00/33.39 new_mkVBalBranch3Size_r(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz12380, yuz12381, yuz12382, yuz12383, yuz12384, h, ba) -> new_sizeFM(yuz12380, yuz12381, yuz12382, yuz12383, yuz12384, h, ba) 53.00/33.39 new_sr1(Neg(yuz14250)) -> Neg(new_primMulNat2(yuz14250)) 53.00/33.39 new_primPlusNat1(Succ(yuz1120), yuz60100) -> Succ(Succ(new_primPlusNat0(yuz1120, yuz60100))) 53.00/33.39 new_primCmpInt(Pos(Zero), Pos(Zero)) -> EQ 53.00/33.39 53.00/33.39 The set Q consists of the following terms: 53.00/33.39 53.00/33.39 new_primCmpNat0(x0, Succ(x1)) 53.00/33.39 new_primCmpInt(Neg(Zero), Neg(Zero)) 53.00/33.39 new_sIZE_RATIO 53.00/33.39 new_primCmpInt(Pos(Zero), Neg(Succ(x0))) 53.00/33.39 new_primCmpInt(Neg(Zero), Pos(Succ(x0))) 53.00/33.39 new_primCmpInt(Pos(Zero), Pos(Succ(x0))) 53.00/33.39 new_primMulNat1(Succ(x0), Zero) 53.00/33.39 new_mkVBalBranch3Size_l(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11) 53.00/33.39 new_primCmpNat1(Succ(x0), Succ(x1)) 53.00/33.39 new_sr0(Pos(x0), Pos(x1)) 53.00/33.39 new_primCmpInt(Pos(Zero), Neg(Zero)) 53.00/33.39 new_primCmpInt(Neg(Zero), Pos(Zero)) 53.00/33.39 new_primCmpInt(Neg(Succ(x0)), Neg(x1)) 53.00/33.39 new_esEs0(LT) 53.00/33.39 new_primCmpNat1(Succ(x0), Zero) 53.00/33.39 new_compare(x0, x1) 53.00/33.39 new_sr1(Neg(x0)) 53.00/33.39 new_primMulNat2(Zero) 53.00/33.39 new_primCmpNat1(Zero, Succ(x0)) 53.00/33.39 new_primPlusNat0(Zero, Succ(x0)) 53.00/33.39 new_primCmpNat1(Zero, Zero) 53.00/33.39 new_primCmpInt(Neg(Succ(x0)), Pos(x1)) 53.00/33.39 new_primCmpNat2(Succ(x0), x1) 53.00/33.39 new_primCmpInt(Pos(Succ(x0)), Neg(x1)) 53.00/33.39 new_sr1(Pos(x0)) 53.00/33.39 new_esEs0(EQ) 53.00/33.39 new_primMulNat3(Zero, x0) 53.00/33.39 new_primCmpNat0(x0, Zero) 53.00/33.39 new_primPlusNat1(Succ(x0), x1) 53.00/33.39 new_primPlusNat1(Zero, x0) 53.00/33.39 new_primMulNat3(Succ(x0), x1) 53.00/33.39 new_primPlusNat0(Succ(x0), Succ(x1)) 53.00/33.39 new_primCmpInt(Pos(Succ(x0)), Pos(x1)) 53.00/33.39 new_primMulNat2(Succ(x0)) 53.00/33.39 new_lt0(x0, x1) 53.00/33.39 new_mkVBalBranch3Size_r(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11) 53.00/33.39 new_sizeFM(x0, x1, x2, x3, x4, x5, x6) 53.00/33.39 new_primPlusNat0(Succ(x0), Zero) 53.00/33.39 new_sr0(Pos(x0), Neg(x1)) 53.00/33.39 new_sr0(Neg(x0), Pos(x1)) 53.00/33.39 new_sr0(Neg(x0), Neg(x1)) 53.00/33.39 new_primCmpNat2(Zero, x0) 53.00/33.39 new_esEs0(GT) 53.00/33.39 new_primCmpInt(Neg(Zero), Neg(Succ(x0))) 53.00/33.39 new_primMulNat1(Succ(x0), Succ(x1)) 53.00/33.39 new_primMulNat1(Zero, Zero) 53.00/33.39 new_primMulNat1(Zero, Succ(x0)) 53.00/33.39 new_primCmpInt(Pos(Zero), Pos(Zero)) 53.00/33.39 new_primPlusNat0(Zero, Zero) 53.00/33.39 53.00/33.39 We have to consider all minimal (P,Q,R)-chains. 53.00/33.39 ---------------------------------------- 53.00/33.39 53.00/33.39 (39) TransformationProof (EQUIVALENT) 53.00/33.39 By rewriting [LPAR04] the rule new_mkVBalBranch3MkVBalBranch2(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz12380, yuz12381, yuz12382, yuz12383, yuz12384, yuz1240, yuz1241, False, h, ba) -> new_mkVBalBranch3MkVBalBranch1(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz12380, yuz12381, yuz12382, yuz12383, yuz12384, yuz1240, yuz1241, new_lt0(new_sr1(new_mkVBalBranch3Size_r(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz12380, yuz12381, yuz12382, yuz12383, yuz12384, h, ba)), new_mkVBalBranch3Size_l(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz12380, yuz12381, yuz12382, yuz12383, yuz12384, h, ba)), h, ba) at position [12] we obtained the following new rules [LPAR04]: 53.00/33.39 53.00/33.39 (new_mkVBalBranch3MkVBalBranch2(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz12380, yuz12381, yuz12382, yuz12383, yuz12384, yuz1240, yuz1241, False, h, ba) -> new_mkVBalBranch3MkVBalBranch1(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz12380, yuz12381, yuz12382, yuz12383, yuz12384, yuz1240, yuz1241, new_esEs0(new_compare(new_sr1(new_mkVBalBranch3Size_r(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz12380, yuz12381, yuz12382, yuz12383, yuz12384, h, ba)), new_mkVBalBranch3Size_l(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz12380, yuz12381, yuz12382, yuz12383, yuz12384, h, ba))), h, ba),new_mkVBalBranch3MkVBalBranch2(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz12380, yuz12381, yuz12382, yuz12383, yuz12384, yuz1240, yuz1241, False, h, ba) -> new_mkVBalBranch3MkVBalBranch1(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz12380, yuz12381, yuz12382, yuz12383, yuz12384, yuz1240, yuz1241, new_esEs0(new_compare(new_sr1(new_mkVBalBranch3Size_r(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz12380, yuz12381, yuz12382, yuz12383, yuz12384, h, ba)), new_mkVBalBranch3Size_l(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz12380, yuz12381, yuz12382, yuz12383, yuz12384, h, ba))), h, ba)) 53.00/33.39 53.00/33.39 53.00/33.39 ---------------------------------------- 53.00/33.39 53.00/33.39 (40) 53.00/33.39 Obligation: 53.00/33.39 Q DP problem: 53.00/33.39 The TRS P consists of the following rules: 53.00/33.39 53.00/33.39 new_mkVBalBranch3(yuz1240, yuz1241, yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz123830, yuz123831, yuz123832, yuz123833, yuz123834, h, ba) -> new_mkVBalBranch3MkVBalBranch2(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz123830, yuz123831, yuz123832, yuz123833, yuz123834, yuz1240, yuz1241, new_lt0(new_sr0(new_sIZE_RATIO, new_mkVBalBranch3Size_l(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz123830, yuz123831, yuz123832, yuz123833, yuz123834, h, ba)), new_mkVBalBranch3Size_r(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz123830, yuz123831, yuz123832, yuz123833, yuz123834, h, ba)), h, ba) 53.00/33.39 new_mkVBalBranch3MkVBalBranch1(yuz12340, yuz12341, yuz12342, yuz12343, Branch(yuz123440, yuz123441, yuz123442, yuz123443, yuz123444), yuz12380, yuz12381, yuz12382, yuz12383, yuz12384, yuz1240, yuz1241, True, h, ba) -> new_mkVBalBranch3(yuz1240, yuz1241, yuz123440, yuz123441, yuz123442, yuz123443, yuz123444, yuz12380, yuz12381, yuz12382, yuz12383, yuz12384, h, ba) 53.00/33.39 new_mkVBalBranch3MkVBalBranch2(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz12380, yuz12381, yuz12382, Branch(yuz123830, yuz123831, yuz123832, yuz123833, yuz123834), yuz12384, yuz1240, yuz1241, True, h, ba) -> new_mkVBalBranch3MkVBalBranch2(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz123830, yuz123831, yuz123832, yuz123833, yuz123834, yuz1240, yuz1241, new_esEs0(new_compare(new_sr0(new_sIZE_RATIO, new_mkVBalBranch3Size_l(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz123830, yuz123831, yuz123832, yuz123833, yuz123834, h, ba)), new_mkVBalBranch3Size_r(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz123830, yuz123831, yuz123832, yuz123833, yuz123834, h, ba))), h, ba) 53.00/33.39 new_mkVBalBranch3MkVBalBranch2(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz12380, yuz12381, yuz12382, yuz12383, yuz12384, yuz1240, yuz1241, False, h, ba) -> new_mkVBalBranch3MkVBalBranch1(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz12380, yuz12381, yuz12382, yuz12383, yuz12384, yuz1240, yuz1241, new_esEs0(new_compare(new_sr1(new_mkVBalBranch3Size_r(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz12380, yuz12381, yuz12382, yuz12383, yuz12384, h, ba)), new_mkVBalBranch3Size_l(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz12380, yuz12381, yuz12382, yuz12383, yuz12384, h, ba))), h, ba) 53.00/33.39 53.00/33.39 The TRS R consists of the following rules: 53.00/33.39 53.00/33.39 new_sIZE_RATIO -> Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))) 53.00/33.39 new_esEs0(EQ) -> False 53.00/33.39 new_lt0(yuz21, yuz11) -> new_esEs0(new_compare(yuz21, yuz11)) 53.00/33.39 new_esEs0(LT) -> True 53.00/33.39 new_primCmpInt(Neg(Succ(yuz144000)), Pos(yuz14350)) -> LT 53.00/33.39 new_primPlusNat0(Succ(yuz11200), Zero) -> Succ(yuz11200) 53.00/33.39 new_primPlusNat0(Zero, Succ(yuz601000)) -> Succ(yuz601000) 53.00/33.39 new_esEs0(GT) -> False 53.00/33.39 new_primPlusNat0(Zero, Zero) -> Zero 53.00/33.39 new_primCmpInt(Pos(Zero), Pos(Succ(yuz143500))) -> new_primCmpNat2(Zero, yuz143500) 53.00/33.39 new_primCmpInt(Neg(Succ(yuz144000)), Neg(yuz14350)) -> new_primCmpNat2(yuz14350, yuz144000) 53.00/33.39 new_primCmpNat0(yuz144000, Succ(yuz143500)) -> new_primCmpNat1(yuz144000, yuz143500) 53.00/33.39 new_primPlusNat1(Zero, yuz60100) -> Succ(yuz60100) 53.00/33.39 new_primCmpInt(Neg(Zero), Neg(Succ(yuz143500))) -> new_primCmpNat0(yuz143500, Zero) 53.00/33.39 new_primCmpInt(Pos(Succ(yuz144000)), Pos(yuz14350)) -> new_primCmpNat0(yuz144000, yuz14350) 53.00/33.39 new_primMulNat1(Zero, Zero) -> Zero 53.00/33.39 new_sr0(Neg(yuz6000), Neg(yuz4010)) -> Pos(new_primMulNat1(yuz6000, yuz4010)) 53.00/33.39 new_primMulNat3(Succ(yuz400000), yuz60100) -> new_primPlusNat1(new_primMulNat3(yuz400000, yuz60100), yuz60100) 53.00/33.39 new_primCmpNat1(Zero, Zero) -> EQ 53.00/33.39 new_primCmpNat1(Succ(yuz2800), Zero) -> GT 53.00/33.39 new_primMulNat2(Succ(yuz142500)) -> new_primPlusNat0(new_primMulNat3(Succ(Succ(Succ(Succ(Zero)))), yuz142500), Succ(yuz142500)) 53.00/33.39 new_primCmpInt(Neg(Zero), Neg(Zero)) -> EQ 53.00/33.39 new_primCmpInt(Pos(Zero), Neg(Succ(yuz143500))) -> GT 53.00/33.39 new_sr1(Pos(yuz14250)) -> Pos(new_primMulNat2(yuz14250)) 53.00/33.39 new_primCmpNat2(Succ(yuz143500), yuz144000) -> new_primCmpNat1(yuz143500, yuz144000) 53.00/33.39 new_sr0(Pos(yuz6000), Pos(yuz4010)) -> Pos(new_primMulNat1(yuz6000, yuz4010)) 53.00/33.39 new_primCmpNat0(yuz144000, Zero) -> GT 53.00/33.39 new_primPlusNat0(Succ(yuz11200), Succ(yuz601000)) -> Succ(Succ(new_primPlusNat0(yuz11200, yuz601000))) 53.00/33.39 new_primMulNat2(Zero) -> Zero 53.00/33.39 new_primCmpNat2(Zero, yuz144000) -> LT 53.00/33.39 new_primMulNat1(Succ(yuz60000), Zero) -> Zero 53.00/33.39 new_primMulNat1(Zero, Succ(yuz40100)) -> Zero 53.00/33.39 new_primCmpNat1(Succ(yuz2800), Succ(yuz330000)) -> new_primCmpNat1(yuz2800, yuz330000) 53.00/33.39 new_compare(yuz1440, yuz1435) -> new_primCmpInt(yuz1440, yuz1435) 53.00/33.39 new_primCmpInt(Neg(Zero), Pos(Succ(yuz143500))) -> LT 53.00/33.39 new_primCmpInt(Pos(Succ(yuz144000)), Neg(yuz14350)) -> GT 53.00/33.39 new_primMulNat3(Zero, yuz60100) -> Zero 53.00/33.39 new_sr0(Pos(yuz6000), Neg(yuz4010)) -> Neg(new_primMulNat1(yuz6000, yuz4010)) 53.00/33.39 new_sr0(Neg(yuz6000), Pos(yuz4010)) -> Neg(new_primMulNat1(yuz6000, yuz4010)) 53.00/33.39 new_primCmpNat1(Zero, Succ(yuz330000)) -> LT 53.00/33.39 new_primCmpInt(Pos(Zero), Neg(Zero)) -> EQ 53.00/33.39 new_primCmpInt(Neg(Zero), Pos(Zero)) -> EQ 53.00/33.39 new_sizeFM(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, h, ba) -> yuz12342 53.00/33.39 new_mkVBalBranch3Size_l(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz12380, yuz12381, yuz12382, yuz12383, yuz12384, h, ba) -> new_sizeFM(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, h, ba) 53.00/33.39 new_primMulNat1(Succ(yuz60000), Succ(yuz40100)) -> new_primPlusNat0(new_primMulNat1(yuz60000, Succ(yuz40100)), Succ(yuz40100)) 53.00/33.39 new_mkVBalBranch3Size_r(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz12380, yuz12381, yuz12382, yuz12383, yuz12384, h, ba) -> new_sizeFM(yuz12380, yuz12381, yuz12382, yuz12383, yuz12384, h, ba) 53.00/33.39 new_sr1(Neg(yuz14250)) -> Neg(new_primMulNat2(yuz14250)) 53.00/33.39 new_primPlusNat1(Succ(yuz1120), yuz60100) -> Succ(Succ(new_primPlusNat0(yuz1120, yuz60100))) 53.00/33.39 new_primCmpInt(Pos(Zero), Pos(Zero)) -> EQ 53.00/33.39 53.00/33.39 The set Q consists of the following terms: 53.00/33.39 53.00/33.39 new_primCmpNat0(x0, Succ(x1)) 53.00/33.39 new_primCmpInt(Neg(Zero), Neg(Zero)) 53.00/33.39 new_sIZE_RATIO 53.00/33.39 new_primCmpInt(Pos(Zero), Neg(Succ(x0))) 53.00/33.39 new_primCmpInt(Neg(Zero), Pos(Succ(x0))) 53.00/33.39 new_primCmpInt(Pos(Zero), Pos(Succ(x0))) 53.00/33.39 new_primMulNat1(Succ(x0), Zero) 53.00/33.39 new_mkVBalBranch3Size_l(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11) 53.00/33.39 new_primCmpNat1(Succ(x0), Succ(x1)) 53.00/33.39 new_sr0(Pos(x0), Pos(x1)) 53.00/33.39 new_primCmpInt(Pos(Zero), Neg(Zero)) 53.00/33.39 new_primCmpInt(Neg(Zero), Pos(Zero)) 53.00/33.39 new_primCmpInt(Neg(Succ(x0)), Neg(x1)) 53.00/33.39 new_esEs0(LT) 53.00/33.39 new_primCmpNat1(Succ(x0), Zero) 53.00/33.39 new_compare(x0, x1) 53.00/33.39 new_sr1(Neg(x0)) 53.00/33.39 new_primMulNat2(Zero) 53.00/33.39 new_primCmpNat1(Zero, Succ(x0)) 53.00/33.39 new_primPlusNat0(Zero, Succ(x0)) 53.00/33.39 new_primCmpNat1(Zero, Zero) 53.00/33.39 new_primCmpInt(Neg(Succ(x0)), Pos(x1)) 53.00/33.39 new_primCmpNat2(Succ(x0), x1) 53.00/33.39 new_primCmpInt(Pos(Succ(x0)), Neg(x1)) 53.00/33.39 new_sr1(Pos(x0)) 53.00/33.39 new_esEs0(EQ) 53.00/33.39 new_primMulNat3(Zero, x0) 53.00/33.39 new_primCmpNat0(x0, Zero) 53.00/33.39 new_primPlusNat1(Succ(x0), x1) 53.00/33.39 new_primPlusNat1(Zero, x0) 53.00/33.39 new_primMulNat3(Succ(x0), x1) 53.00/33.39 new_primPlusNat0(Succ(x0), Succ(x1)) 53.00/33.39 new_primCmpInt(Pos(Succ(x0)), Pos(x1)) 53.00/33.39 new_primMulNat2(Succ(x0)) 53.00/33.39 new_lt0(x0, x1) 53.00/33.39 new_mkVBalBranch3Size_r(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11) 53.00/33.39 new_sizeFM(x0, x1, x2, x3, x4, x5, x6) 53.00/33.39 new_primPlusNat0(Succ(x0), Zero) 53.00/33.39 new_sr0(Pos(x0), Neg(x1)) 53.00/33.39 new_sr0(Neg(x0), Pos(x1)) 53.00/33.39 new_sr0(Neg(x0), Neg(x1)) 53.00/33.39 new_primCmpNat2(Zero, x0) 53.00/33.39 new_esEs0(GT) 53.00/33.39 new_primCmpInt(Neg(Zero), Neg(Succ(x0))) 53.00/33.39 new_primMulNat1(Succ(x0), Succ(x1)) 53.00/33.39 new_primMulNat1(Zero, Zero) 53.00/33.39 new_primMulNat1(Zero, Succ(x0)) 53.00/33.39 new_primCmpInt(Pos(Zero), Pos(Zero)) 53.00/33.39 new_primPlusNat0(Zero, Zero) 53.00/33.39 53.00/33.39 We have to consider all minimal (P,Q,R)-chains. 53.00/33.39 ---------------------------------------- 53.00/33.39 53.00/33.39 (41) TransformationProof (EQUIVALENT) 53.00/33.39 By rewriting [LPAR04] the rule new_mkVBalBranch3(yuz1240, yuz1241, yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz123830, yuz123831, yuz123832, yuz123833, yuz123834, h, ba) -> new_mkVBalBranch3MkVBalBranch2(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz123830, yuz123831, yuz123832, yuz123833, yuz123834, yuz1240, yuz1241, new_lt0(new_sr0(new_sIZE_RATIO, new_mkVBalBranch3Size_l(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz123830, yuz123831, yuz123832, yuz123833, yuz123834, h, ba)), new_mkVBalBranch3Size_r(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz123830, yuz123831, yuz123832, yuz123833, yuz123834, h, ba)), h, ba) at position [12] we obtained the following new rules [LPAR04]: 53.00/33.39 53.00/33.39 (new_mkVBalBranch3(yuz1240, yuz1241, yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz123830, yuz123831, yuz123832, yuz123833, yuz123834, h, ba) -> new_mkVBalBranch3MkVBalBranch2(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz123830, yuz123831, yuz123832, yuz123833, yuz123834, yuz1240, yuz1241, new_esEs0(new_compare(new_sr0(new_sIZE_RATIO, new_mkVBalBranch3Size_l(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz123830, yuz123831, yuz123832, yuz123833, yuz123834, h, ba)), new_mkVBalBranch3Size_r(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz123830, yuz123831, yuz123832, yuz123833, yuz123834, h, ba))), h, ba),new_mkVBalBranch3(yuz1240, yuz1241, yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz123830, yuz123831, yuz123832, yuz123833, yuz123834, h, ba) -> new_mkVBalBranch3MkVBalBranch2(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz123830, yuz123831, yuz123832, yuz123833, yuz123834, yuz1240, yuz1241, new_esEs0(new_compare(new_sr0(new_sIZE_RATIO, new_mkVBalBranch3Size_l(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz123830, yuz123831, yuz123832, yuz123833, yuz123834, h, ba)), new_mkVBalBranch3Size_r(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz123830, yuz123831, yuz123832, yuz123833, yuz123834, h, ba))), h, ba)) 53.00/33.39 53.00/33.39 53.00/33.39 ---------------------------------------- 53.00/33.39 53.00/33.39 (42) 53.00/33.39 Obligation: 53.00/33.39 Q DP problem: 53.00/33.39 The TRS P consists of the following rules: 53.00/33.39 53.00/33.39 new_mkVBalBranch3MkVBalBranch1(yuz12340, yuz12341, yuz12342, yuz12343, Branch(yuz123440, yuz123441, yuz123442, yuz123443, yuz123444), yuz12380, yuz12381, yuz12382, yuz12383, yuz12384, yuz1240, yuz1241, True, h, ba) -> new_mkVBalBranch3(yuz1240, yuz1241, yuz123440, yuz123441, yuz123442, yuz123443, yuz123444, yuz12380, yuz12381, yuz12382, yuz12383, yuz12384, h, ba) 53.00/33.39 new_mkVBalBranch3MkVBalBranch2(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz12380, yuz12381, yuz12382, Branch(yuz123830, yuz123831, yuz123832, yuz123833, yuz123834), yuz12384, yuz1240, yuz1241, True, h, ba) -> new_mkVBalBranch3MkVBalBranch2(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz123830, yuz123831, yuz123832, yuz123833, yuz123834, yuz1240, yuz1241, new_esEs0(new_compare(new_sr0(new_sIZE_RATIO, new_mkVBalBranch3Size_l(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz123830, yuz123831, yuz123832, yuz123833, yuz123834, h, ba)), new_mkVBalBranch3Size_r(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz123830, yuz123831, yuz123832, yuz123833, yuz123834, h, ba))), h, ba) 53.00/33.39 new_mkVBalBranch3MkVBalBranch2(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz12380, yuz12381, yuz12382, yuz12383, yuz12384, yuz1240, yuz1241, False, h, ba) -> new_mkVBalBranch3MkVBalBranch1(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz12380, yuz12381, yuz12382, yuz12383, yuz12384, yuz1240, yuz1241, new_esEs0(new_compare(new_sr1(new_mkVBalBranch3Size_r(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz12380, yuz12381, yuz12382, yuz12383, yuz12384, h, ba)), new_mkVBalBranch3Size_l(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz12380, yuz12381, yuz12382, yuz12383, yuz12384, h, ba))), h, ba) 53.00/33.39 new_mkVBalBranch3(yuz1240, yuz1241, yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz123830, yuz123831, yuz123832, yuz123833, yuz123834, h, ba) -> new_mkVBalBranch3MkVBalBranch2(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz123830, yuz123831, yuz123832, yuz123833, yuz123834, yuz1240, yuz1241, new_esEs0(new_compare(new_sr0(new_sIZE_RATIO, new_mkVBalBranch3Size_l(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz123830, yuz123831, yuz123832, yuz123833, yuz123834, h, ba)), new_mkVBalBranch3Size_r(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz123830, yuz123831, yuz123832, yuz123833, yuz123834, h, ba))), h, ba) 53.00/33.39 53.00/33.39 The TRS R consists of the following rules: 53.00/33.39 53.00/33.39 new_sIZE_RATIO -> Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))) 53.00/33.39 new_esEs0(EQ) -> False 53.00/33.39 new_lt0(yuz21, yuz11) -> new_esEs0(new_compare(yuz21, yuz11)) 53.00/33.39 new_esEs0(LT) -> True 53.00/33.39 new_primCmpInt(Neg(Succ(yuz144000)), Pos(yuz14350)) -> LT 53.00/33.39 new_primPlusNat0(Succ(yuz11200), Zero) -> Succ(yuz11200) 53.00/33.39 new_primPlusNat0(Zero, Succ(yuz601000)) -> Succ(yuz601000) 53.00/33.39 new_esEs0(GT) -> False 53.00/33.39 new_primPlusNat0(Zero, Zero) -> Zero 53.00/33.39 new_primCmpInt(Pos(Zero), Pos(Succ(yuz143500))) -> new_primCmpNat2(Zero, yuz143500) 53.00/33.39 new_primCmpInt(Neg(Succ(yuz144000)), Neg(yuz14350)) -> new_primCmpNat2(yuz14350, yuz144000) 53.00/33.39 new_primCmpNat0(yuz144000, Succ(yuz143500)) -> new_primCmpNat1(yuz144000, yuz143500) 53.00/33.39 new_primPlusNat1(Zero, yuz60100) -> Succ(yuz60100) 53.00/33.39 new_primCmpInt(Neg(Zero), Neg(Succ(yuz143500))) -> new_primCmpNat0(yuz143500, Zero) 53.00/33.39 new_primCmpInt(Pos(Succ(yuz144000)), Pos(yuz14350)) -> new_primCmpNat0(yuz144000, yuz14350) 53.00/33.39 new_primMulNat1(Zero, Zero) -> Zero 53.00/33.39 new_sr0(Neg(yuz6000), Neg(yuz4010)) -> Pos(new_primMulNat1(yuz6000, yuz4010)) 53.00/33.39 new_primMulNat3(Succ(yuz400000), yuz60100) -> new_primPlusNat1(new_primMulNat3(yuz400000, yuz60100), yuz60100) 53.00/33.39 new_primCmpNat1(Zero, Zero) -> EQ 53.00/33.39 new_primCmpNat1(Succ(yuz2800), Zero) -> GT 53.00/33.39 new_primMulNat2(Succ(yuz142500)) -> new_primPlusNat0(new_primMulNat3(Succ(Succ(Succ(Succ(Zero)))), yuz142500), Succ(yuz142500)) 53.00/33.39 new_primCmpInt(Neg(Zero), Neg(Zero)) -> EQ 53.00/33.39 new_primCmpInt(Pos(Zero), Neg(Succ(yuz143500))) -> GT 53.00/33.39 new_sr1(Pos(yuz14250)) -> Pos(new_primMulNat2(yuz14250)) 53.00/33.39 new_primCmpNat2(Succ(yuz143500), yuz144000) -> new_primCmpNat1(yuz143500, yuz144000) 53.00/33.39 new_sr0(Pos(yuz6000), Pos(yuz4010)) -> Pos(new_primMulNat1(yuz6000, yuz4010)) 53.00/33.39 new_primCmpNat0(yuz144000, Zero) -> GT 53.00/33.39 new_primPlusNat0(Succ(yuz11200), Succ(yuz601000)) -> Succ(Succ(new_primPlusNat0(yuz11200, yuz601000))) 53.00/33.39 new_primMulNat2(Zero) -> Zero 53.00/33.39 new_primCmpNat2(Zero, yuz144000) -> LT 53.00/33.39 new_primMulNat1(Succ(yuz60000), Zero) -> Zero 53.00/33.39 new_primMulNat1(Zero, Succ(yuz40100)) -> Zero 53.00/33.39 new_primCmpNat1(Succ(yuz2800), Succ(yuz330000)) -> new_primCmpNat1(yuz2800, yuz330000) 53.00/33.39 new_compare(yuz1440, yuz1435) -> new_primCmpInt(yuz1440, yuz1435) 53.00/33.39 new_primCmpInt(Neg(Zero), Pos(Succ(yuz143500))) -> LT 53.00/33.39 new_primCmpInt(Pos(Succ(yuz144000)), Neg(yuz14350)) -> GT 53.00/33.39 new_primMulNat3(Zero, yuz60100) -> Zero 53.00/33.39 new_sr0(Pos(yuz6000), Neg(yuz4010)) -> Neg(new_primMulNat1(yuz6000, yuz4010)) 53.00/33.39 new_sr0(Neg(yuz6000), Pos(yuz4010)) -> Neg(new_primMulNat1(yuz6000, yuz4010)) 53.00/33.39 new_primCmpNat1(Zero, Succ(yuz330000)) -> LT 53.00/33.39 new_primCmpInt(Pos(Zero), Neg(Zero)) -> EQ 53.00/33.39 new_primCmpInt(Neg(Zero), Pos(Zero)) -> EQ 53.00/33.39 new_sizeFM(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, h, ba) -> yuz12342 53.00/33.39 new_mkVBalBranch3Size_l(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz12380, yuz12381, yuz12382, yuz12383, yuz12384, h, ba) -> new_sizeFM(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, h, ba) 53.00/33.39 new_primMulNat1(Succ(yuz60000), Succ(yuz40100)) -> new_primPlusNat0(new_primMulNat1(yuz60000, Succ(yuz40100)), Succ(yuz40100)) 53.00/33.39 new_mkVBalBranch3Size_r(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz12380, yuz12381, yuz12382, yuz12383, yuz12384, h, ba) -> new_sizeFM(yuz12380, yuz12381, yuz12382, yuz12383, yuz12384, h, ba) 53.00/33.39 new_sr1(Neg(yuz14250)) -> Neg(new_primMulNat2(yuz14250)) 53.00/33.39 new_primPlusNat1(Succ(yuz1120), yuz60100) -> Succ(Succ(new_primPlusNat0(yuz1120, yuz60100))) 53.00/33.39 new_primCmpInt(Pos(Zero), Pos(Zero)) -> EQ 53.00/33.39 53.00/33.39 The set Q consists of the following terms: 53.00/33.39 53.00/33.39 new_primCmpNat0(x0, Succ(x1)) 53.00/33.39 new_primCmpInt(Neg(Zero), Neg(Zero)) 53.00/33.39 new_sIZE_RATIO 53.00/33.39 new_primCmpInt(Pos(Zero), Neg(Succ(x0))) 53.00/33.39 new_primCmpInt(Neg(Zero), Pos(Succ(x0))) 53.00/33.39 new_primCmpInt(Pos(Zero), Pos(Succ(x0))) 53.00/33.39 new_primMulNat1(Succ(x0), Zero) 53.00/33.39 new_mkVBalBranch3Size_l(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11) 53.00/33.39 new_primCmpNat1(Succ(x0), Succ(x1)) 53.00/33.39 new_sr0(Pos(x0), Pos(x1)) 53.00/33.39 new_primCmpInt(Pos(Zero), Neg(Zero)) 53.00/33.39 new_primCmpInt(Neg(Zero), Pos(Zero)) 53.00/33.39 new_primCmpInt(Neg(Succ(x0)), Neg(x1)) 53.00/33.39 new_esEs0(LT) 53.00/33.39 new_primCmpNat1(Succ(x0), Zero) 53.00/33.39 new_compare(x0, x1) 53.00/33.39 new_sr1(Neg(x0)) 53.00/33.39 new_primMulNat2(Zero) 53.00/33.39 new_primCmpNat1(Zero, Succ(x0)) 53.00/33.39 new_primPlusNat0(Zero, Succ(x0)) 53.00/33.39 new_primCmpNat1(Zero, Zero) 53.00/33.39 new_primCmpInt(Neg(Succ(x0)), Pos(x1)) 53.00/33.39 new_primCmpNat2(Succ(x0), x1) 53.00/33.39 new_primCmpInt(Pos(Succ(x0)), Neg(x1)) 53.00/33.39 new_sr1(Pos(x0)) 53.00/33.39 new_esEs0(EQ) 53.00/33.39 new_primMulNat3(Zero, x0) 53.00/33.39 new_primCmpNat0(x0, Zero) 53.00/33.39 new_primPlusNat1(Succ(x0), x1) 53.00/33.39 new_primPlusNat1(Zero, x0) 53.00/33.39 new_primMulNat3(Succ(x0), x1) 53.00/33.39 new_primPlusNat0(Succ(x0), Succ(x1)) 53.00/33.39 new_primCmpInt(Pos(Succ(x0)), Pos(x1)) 53.00/33.39 new_primMulNat2(Succ(x0)) 53.00/33.39 new_lt0(x0, x1) 53.00/33.39 new_mkVBalBranch3Size_r(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11) 53.00/33.39 new_sizeFM(x0, x1, x2, x3, x4, x5, x6) 53.00/33.39 new_primPlusNat0(Succ(x0), Zero) 53.00/33.39 new_sr0(Pos(x0), Neg(x1)) 53.00/33.39 new_sr0(Neg(x0), Pos(x1)) 53.00/33.39 new_sr0(Neg(x0), Neg(x1)) 53.00/33.39 new_primCmpNat2(Zero, x0) 53.00/33.39 new_esEs0(GT) 53.00/33.39 new_primCmpInt(Neg(Zero), Neg(Succ(x0))) 53.00/33.39 new_primMulNat1(Succ(x0), Succ(x1)) 53.00/33.39 new_primMulNat1(Zero, Zero) 53.00/33.39 new_primMulNat1(Zero, Succ(x0)) 53.00/33.39 new_primCmpInt(Pos(Zero), Pos(Zero)) 53.00/33.39 new_primPlusNat0(Zero, Zero) 53.00/33.39 53.00/33.39 We have to consider all minimal (P,Q,R)-chains. 53.00/33.39 ---------------------------------------- 53.00/33.39 53.00/33.39 (43) UsableRulesProof (EQUIVALENT) 53.00/33.39 As all Q-normal forms are R-normal forms we are in the innermost case. Hence, by the usable rules processor [LPAR04] we can delete all non-usable rules [FROCOS05] from R. 53.00/33.39 ---------------------------------------- 53.00/33.39 53.00/33.39 (44) 53.00/33.39 Obligation: 53.00/33.39 Q DP problem: 53.00/33.39 The TRS P consists of the following rules: 53.00/33.39 53.00/33.39 new_mkVBalBranch3MkVBalBranch1(yuz12340, yuz12341, yuz12342, yuz12343, Branch(yuz123440, yuz123441, yuz123442, yuz123443, yuz123444), yuz12380, yuz12381, yuz12382, yuz12383, yuz12384, yuz1240, yuz1241, True, h, ba) -> new_mkVBalBranch3(yuz1240, yuz1241, yuz123440, yuz123441, yuz123442, yuz123443, yuz123444, yuz12380, yuz12381, yuz12382, yuz12383, yuz12384, h, ba) 53.00/33.39 new_mkVBalBranch3MkVBalBranch2(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz12380, yuz12381, yuz12382, Branch(yuz123830, yuz123831, yuz123832, yuz123833, yuz123834), yuz12384, yuz1240, yuz1241, True, h, ba) -> new_mkVBalBranch3MkVBalBranch2(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz123830, yuz123831, yuz123832, yuz123833, yuz123834, yuz1240, yuz1241, new_esEs0(new_compare(new_sr0(new_sIZE_RATIO, new_mkVBalBranch3Size_l(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz123830, yuz123831, yuz123832, yuz123833, yuz123834, h, ba)), new_mkVBalBranch3Size_r(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz123830, yuz123831, yuz123832, yuz123833, yuz123834, h, ba))), h, ba) 53.00/33.39 new_mkVBalBranch3MkVBalBranch2(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz12380, yuz12381, yuz12382, yuz12383, yuz12384, yuz1240, yuz1241, False, h, ba) -> new_mkVBalBranch3MkVBalBranch1(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz12380, yuz12381, yuz12382, yuz12383, yuz12384, yuz1240, yuz1241, new_esEs0(new_compare(new_sr1(new_mkVBalBranch3Size_r(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz12380, yuz12381, yuz12382, yuz12383, yuz12384, h, ba)), new_mkVBalBranch3Size_l(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz12380, yuz12381, yuz12382, yuz12383, yuz12384, h, ba))), h, ba) 53.00/33.39 new_mkVBalBranch3(yuz1240, yuz1241, yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz123830, yuz123831, yuz123832, yuz123833, yuz123834, h, ba) -> new_mkVBalBranch3MkVBalBranch2(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz123830, yuz123831, yuz123832, yuz123833, yuz123834, yuz1240, yuz1241, new_esEs0(new_compare(new_sr0(new_sIZE_RATIO, new_mkVBalBranch3Size_l(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz123830, yuz123831, yuz123832, yuz123833, yuz123834, h, ba)), new_mkVBalBranch3Size_r(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz123830, yuz123831, yuz123832, yuz123833, yuz123834, h, ba))), h, ba) 53.00/33.39 53.00/33.39 The TRS R consists of the following rules: 53.00/33.39 53.00/33.39 new_sIZE_RATIO -> Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))) 53.00/33.39 new_mkVBalBranch3Size_l(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz12380, yuz12381, yuz12382, yuz12383, yuz12384, h, ba) -> new_sizeFM(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, h, ba) 53.00/33.39 new_sr0(Neg(yuz6000), Neg(yuz4010)) -> Pos(new_primMulNat1(yuz6000, yuz4010)) 53.00/33.39 new_sr0(Pos(yuz6000), Pos(yuz4010)) -> Pos(new_primMulNat1(yuz6000, yuz4010)) 53.00/33.39 new_sr0(Pos(yuz6000), Neg(yuz4010)) -> Neg(new_primMulNat1(yuz6000, yuz4010)) 53.00/33.39 new_sr0(Neg(yuz6000), Pos(yuz4010)) -> Neg(new_primMulNat1(yuz6000, yuz4010)) 53.00/33.39 new_mkVBalBranch3Size_r(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz12380, yuz12381, yuz12382, yuz12383, yuz12384, h, ba) -> new_sizeFM(yuz12380, yuz12381, yuz12382, yuz12383, yuz12384, h, ba) 53.00/33.39 new_compare(yuz1440, yuz1435) -> new_primCmpInt(yuz1440, yuz1435) 53.00/33.39 new_esEs0(EQ) -> False 53.00/33.39 new_esEs0(LT) -> True 53.00/33.39 new_esEs0(GT) -> False 53.00/33.39 new_primCmpInt(Neg(Succ(yuz144000)), Pos(yuz14350)) -> LT 53.00/33.39 new_primCmpInt(Pos(Zero), Pos(Succ(yuz143500))) -> new_primCmpNat2(Zero, yuz143500) 53.00/33.39 new_primCmpInt(Neg(Succ(yuz144000)), Neg(yuz14350)) -> new_primCmpNat2(yuz14350, yuz144000) 53.00/33.39 new_primCmpInt(Neg(Zero), Neg(Succ(yuz143500))) -> new_primCmpNat0(yuz143500, Zero) 53.00/33.39 new_primCmpInt(Pos(Succ(yuz144000)), Pos(yuz14350)) -> new_primCmpNat0(yuz144000, yuz14350) 53.00/33.39 new_primCmpInt(Neg(Zero), Neg(Zero)) -> EQ 53.00/33.39 new_primCmpInt(Pos(Zero), Neg(Succ(yuz143500))) -> GT 53.00/33.39 new_primCmpInt(Neg(Zero), Pos(Succ(yuz143500))) -> LT 53.00/33.39 new_primCmpInt(Pos(Succ(yuz144000)), Neg(yuz14350)) -> GT 53.00/33.39 new_primCmpInt(Pos(Zero), Neg(Zero)) -> EQ 53.00/33.39 new_primCmpInt(Neg(Zero), Pos(Zero)) -> EQ 53.00/33.39 new_primCmpInt(Pos(Zero), Pos(Zero)) -> EQ 53.00/33.39 new_primCmpNat0(yuz144000, Succ(yuz143500)) -> new_primCmpNat1(yuz144000, yuz143500) 53.00/33.39 new_primCmpNat0(yuz144000, Zero) -> GT 53.00/33.39 new_primCmpNat1(Zero, Zero) -> EQ 53.00/33.39 new_primCmpNat1(Succ(yuz2800), Zero) -> GT 53.00/33.39 new_primCmpNat1(Succ(yuz2800), Succ(yuz330000)) -> new_primCmpNat1(yuz2800, yuz330000) 53.00/33.39 new_primCmpNat1(Zero, Succ(yuz330000)) -> LT 53.00/33.39 new_primCmpNat2(Succ(yuz143500), yuz144000) -> new_primCmpNat1(yuz143500, yuz144000) 53.00/33.39 new_primCmpNat2(Zero, yuz144000) -> LT 53.00/33.39 new_sizeFM(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, h, ba) -> yuz12342 53.00/33.39 new_primMulNat1(Zero, Zero) -> Zero 53.00/33.39 new_primMulNat1(Succ(yuz60000), Zero) -> Zero 53.00/33.39 new_primMulNat1(Zero, Succ(yuz40100)) -> Zero 53.00/33.39 new_primMulNat1(Succ(yuz60000), Succ(yuz40100)) -> new_primPlusNat0(new_primMulNat1(yuz60000, Succ(yuz40100)), Succ(yuz40100)) 53.00/33.39 new_primPlusNat0(Zero, Succ(yuz601000)) -> Succ(yuz601000) 53.00/33.39 new_primPlusNat0(Succ(yuz11200), Succ(yuz601000)) -> Succ(Succ(new_primPlusNat0(yuz11200, yuz601000))) 53.00/33.39 new_primPlusNat0(Succ(yuz11200), Zero) -> Succ(yuz11200) 53.00/33.39 new_primPlusNat0(Zero, Zero) -> Zero 53.00/33.39 new_sr1(Pos(yuz14250)) -> Pos(new_primMulNat2(yuz14250)) 53.00/33.39 new_sr1(Neg(yuz14250)) -> Neg(new_primMulNat2(yuz14250)) 53.00/33.39 new_primMulNat2(Succ(yuz142500)) -> new_primPlusNat0(new_primMulNat3(Succ(Succ(Succ(Succ(Zero)))), yuz142500), Succ(yuz142500)) 53.00/33.39 new_primMulNat2(Zero) -> Zero 53.00/33.39 new_primMulNat3(Succ(yuz400000), yuz60100) -> new_primPlusNat1(new_primMulNat3(yuz400000, yuz60100), yuz60100) 53.00/33.39 new_primMulNat3(Zero, yuz60100) -> Zero 53.00/33.39 new_primPlusNat1(Zero, yuz60100) -> Succ(yuz60100) 53.00/33.39 new_primPlusNat1(Succ(yuz1120), yuz60100) -> Succ(Succ(new_primPlusNat0(yuz1120, yuz60100))) 53.00/33.39 53.00/33.39 The set Q consists of the following terms: 53.00/33.39 53.00/33.39 new_primCmpNat0(x0, Succ(x1)) 53.00/33.39 new_primCmpInt(Neg(Zero), Neg(Zero)) 53.00/33.39 new_sIZE_RATIO 53.00/33.39 new_primCmpInt(Pos(Zero), Neg(Succ(x0))) 53.00/33.39 new_primCmpInt(Neg(Zero), Pos(Succ(x0))) 53.00/33.39 new_primCmpInt(Pos(Zero), Pos(Succ(x0))) 53.00/33.39 new_primMulNat1(Succ(x0), Zero) 53.00/33.39 new_mkVBalBranch3Size_l(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11) 53.00/33.39 new_primCmpNat1(Succ(x0), Succ(x1)) 53.00/33.39 new_sr0(Pos(x0), Pos(x1)) 53.00/33.39 new_primCmpInt(Pos(Zero), Neg(Zero)) 53.00/33.39 new_primCmpInt(Neg(Zero), Pos(Zero)) 53.00/33.39 new_primCmpInt(Neg(Succ(x0)), Neg(x1)) 53.00/33.39 new_esEs0(LT) 53.00/33.39 new_primCmpNat1(Succ(x0), Zero) 53.00/33.39 new_compare(x0, x1) 53.00/33.39 new_sr1(Neg(x0)) 53.00/33.39 new_primMulNat2(Zero) 53.00/33.39 new_primCmpNat1(Zero, Succ(x0)) 53.00/33.39 new_primPlusNat0(Zero, Succ(x0)) 53.00/33.39 new_primCmpNat1(Zero, Zero) 53.00/33.39 new_primCmpInt(Neg(Succ(x0)), Pos(x1)) 53.00/33.39 new_primCmpNat2(Succ(x0), x1) 53.00/33.39 new_primCmpInt(Pos(Succ(x0)), Neg(x1)) 53.00/33.39 new_sr1(Pos(x0)) 53.00/33.39 new_esEs0(EQ) 53.00/33.39 new_primMulNat3(Zero, x0) 53.00/33.39 new_primCmpNat0(x0, Zero) 53.00/33.39 new_primPlusNat1(Succ(x0), x1) 53.00/33.39 new_primPlusNat1(Zero, x0) 53.00/33.39 new_primMulNat3(Succ(x0), x1) 53.00/33.39 new_primPlusNat0(Succ(x0), Succ(x1)) 53.00/33.39 new_primCmpInt(Pos(Succ(x0)), Pos(x1)) 53.00/33.39 new_primMulNat2(Succ(x0)) 53.00/33.39 new_lt0(x0, x1) 53.00/33.39 new_mkVBalBranch3Size_r(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11) 53.00/33.39 new_sizeFM(x0, x1, x2, x3, x4, x5, x6) 53.00/33.39 new_primPlusNat0(Succ(x0), Zero) 53.00/33.39 new_sr0(Pos(x0), Neg(x1)) 53.00/33.39 new_sr0(Neg(x0), Pos(x1)) 53.00/33.39 new_sr0(Neg(x0), Neg(x1)) 53.00/33.39 new_primCmpNat2(Zero, x0) 53.00/33.39 new_esEs0(GT) 53.00/33.39 new_primCmpInt(Neg(Zero), Neg(Succ(x0))) 53.00/33.39 new_primMulNat1(Succ(x0), Succ(x1)) 53.00/33.39 new_primMulNat1(Zero, Zero) 53.00/33.39 new_primMulNat1(Zero, Succ(x0)) 53.00/33.39 new_primCmpInt(Pos(Zero), Pos(Zero)) 53.00/33.39 new_primPlusNat0(Zero, Zero) 53.00/33.39 53.00/33.39 We have to consider all minimal (P,Q,R)-chains. 53.00/33.39 ---------------------------------------- 53.00/33.39 53.00/33.39 (45) QReductionProof (EQUIVALENT) 53.00/33.39 We deleted the following terms from Q as each root-symbol of these terms does neither occur in P nor in R.[THIEMANN]. 53.00/33.39 53.00/33.39 new_lt0(x0, x1) 53.00/33.39 53.00/33.39 53.00/33.39 ---------------------------------------- 53.00/33.39 53.00/33.39 (46) 53.00/33.39 Obligation: 53.00/33.39 Q DP problem: 53.00/33.39 The TRS P consists of the following rules: 53.00/33.39 53.00/33.39 new_mkVBalBranch3MkVBalBranch1(yuz12340, yuz12341, yuz12342, yuz12343, Branch(yuz123440, yuz123441, yuz123442, yuz123443, yuz123444), yuz12380, yuz12381, yuz12382, yuz12383, yuz12384, yuz1240, yuz1241, True, h, ba) -> new_mkVBalBranch3(yuz1240, yuz1241, yuz123440, yuz123441, yuz123442, yuz123443, yuz123444, yuz12380, yuz12381, yuz12382, yuz12383, yuz12384, h, ba) 53.00/33.39 new_mkVBalBranch3MkVBalBranch2(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz12380, yuz12381, yuz12382, Branch(yuz123830, yuz123831, yuz123832, yuz123833, yuz123834), yuz12384, yuz1240, yuz1241, True, h, ba) -> new_mkVBalBranch3MkVBalBranch2(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz123830, yuz123831, yuz123832, yuz123833, yuz123834, yuz1240, yuz1241, new_esEs0(new_compare(new_sr0(new_sIZE_RATIO, new_mkVBalBranch3Size_l(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz123830, yuz123831, yuz123832, yuz123833, yuz123834, h, ba)), new_mkVBalBranch3Size_r(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz123830, yuz123831, yuz123832, yuz123833, yuz123834, h, ba))), h, ba) 53.00/33.39 new_mkVBalBranch3MkVBalBranch2(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz12380, yuz12381, yuz12382, yuz12383, yuz12384, yuz1240, yuz1241, False, h, ba) -> new_mkVBalBranch3MkVBalBranch1(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz12380, yuz12381, yuz12382, yuz12383, yuz12384, yuz1240, yuz1241, new_esEs0(new_compare(new_sr1(new_mkVBalBranch3Size_r(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz12380, yuz12381, yuz12382, yuz12383, yuz12384, h, ba)), new_mkVBalBranch3Size_l(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz12380, yuz12381, yuz12382, yuz12383, yuz12384, h, ba))), h, ba) 53.00/33.39 new_mkVBalBranch3(yuz1240, yuz1241, yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz123830, yuz123831, yuz123832, yuz123833, yuz123834, h, ba) -> new_mkVBalBranch3MkVBalBranch2(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz123830, yuz123831, yuz123832, yuz123833, yuz123834, yuz1240, yuz1241, new_esEs0(new_compare(new_sr0(new_sIZE_RATIO, new_mkVBalBranch3Size_l(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz123830, yuz123831, yuz123832, yuz123833, yuz123834, h, ba)), new_mkVBalBranch3Size_r(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz123830, yuz123831, yuz123832, yuz123833, yuz123834, h, ba))), h, ba) 53.00/33.39 53.00/33.39 The TRS R consists of the following rules: 53.00/33.39 53.00/33.39 new_sIZE_RATIO -> Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))) 53.00/33.39 new_mkVBalBranch3Size_l(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz12380, yuz12381, yuz12382, yuz12383, yuz12384, h, ba) -> new_sizeFM(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, h, ba) 53.00/33.39 new_sr0(Neg(yuz6000), Neg(yuz4010)) -> Pos(new_primMulNat1(yuz6000, yuz4010)) 53.00/33.39 new_sr0(Pos(yuz6000), Pos(yuz4010)) -> Pos(new_primMulNat1(yuz6000, yuz4010)) 53.00/33.39 new_sr0(Pos(yuz6000), Neg(yuz4010)) -> Neg(new_primMulNat1(yuz6000, yuz4010)) 53.00/33.39 new_sr0(Neg(yuz6000), Pos(yuz4010)) -> Neg(new_primMulNat1(yuz6000, yuz4010)) 53.00/33.39 new_mkVBalBranch3Size_r(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz12380, yuz12381, yuz12382, yuz12383, yuz12384, h, ba) -> new_sizeFM(yuz12380, yuz12381, yuz12382, yuz12383, yuz12384, h, ba) 53.00/33.39 new_compare(yuz1440, yuz1435) -> new_primCmpInt(yuz1440, yuz1435) 53.00/33.39 new_esEs0(EQ) -> False 53.00/33.39 new_esEs0(LT) -> True 53.00/33.39 new_esEs0(GT) -> False 53.00/33.39 new_primCmpInt(Neg(Succ(yuz144000)), Pos(yuz14350)) -> LT 53.00/33.39 new_primCmpInt(Pos(Zero), Pos(Succ(yuz143500))) -> new_primCmpNat2(Zero, yuz143500) 53.00/33.39 new_primCmpInt(Neg(Succ(yuz144000)), Neg(yuz14350)) -> new_primCmpNat2(yuz14350, yuz144000) 53.00/33.39 new_primCmpInt(Neg(Zero), Neg(Succ(yuz143500))) -> new_primCmpNat0(yuz143500, Zero) 53.00/33.39 new_primCmpInt(Pos(Succ(yuz144000)), Pos(yuz14350)) -> new_primCmpNat0(yuz144000, yuz14350) 53.00/33.39 new_primCmpInt(Neg(Zero), Neg(Zero)) -> EQ 53.00/33.39 new_primCmpInt(Pos(Zero), Neg(Succ(yuz143500))) -> GT 53.00/33.39 new_primCmpInt(Neg(Zero), Pos(Succ(yuz143500))) -> LT 53.00/33.39 new_primCmpInt(Pos(Succ(yuz144000)), Neg(yuz14350)) -> GT 53.00/33.39 new_primCmpInt(Pos(Zero), Neg(Zero)) -> EQ 53.00/33.39 new_primCmpInt(Neg(Zero), Pos(Zero)) -> EQ 53.00/33.39 new_primCmpInt(Pos(Zero), Pos(Zero)) -> EQ 53.00/33.39 new_primCmpNat0(yuz144000, Succ(yuz143500)) -> new_primCmpNat1(yuz144000, yuz143500) 53.00/33.39 new_primCmpNat0(yuz144000, Zero) -> GT 53.00/33.39 new_primCmpNat1(Zero, Zero) -> EQ 53.00/33.39 new_primCmpNat1(Succ(yuz2800), Zero) -> GT 53.00/33.39 new_primCmpNat1(Succ(yuz2800), Succ(yuz330000)) -> new_primCmpNat1(yuz2800, yuz330000) 53.00/33.39 new_primCmpNat1(Zero, Succ(yuz330000)) -> LT 53.00/33.39 new_primCmpNat2(Succ(yuz143500), yuz144000) -> new_primCmpNat1(yuz143500, yuz144000) 53.00/33.39 new_primCmpNat2(Zero, yuz144000) -> LT 53.00/33.39 new_sizeFM(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, h, ba) -> yuz12342 53.00/33.39 new_primMulNat1(Zero, Zero) -> Zero 53.00/33.39 new_primMulNat1(Succ(yuz60000), Zero) -> Zero 53.00/33.39 new_primMulNat1(Zero, Succ(yuz40100)) -> Zero 53.00/33.39 new_primMulNat1(Succ(yuz60000), Succ(yuz40100)) -> new_primPlusNat0(new_primMulNat1(yuz60000, Succ(yuz40100)), Succ(yuz40100)) 53.00/33.39 new_primPlusNat0(Zero, Succ(yuz601000)) -> Succ(yuz601000) 53.00/33.39 new_primPlusNat0(Succ(yuz11200), Succ(yuz601000)) -> Succ(Succ(new_primPlusNat0(yuz11200, yuz601000))) 53.00/33.39 new_primPlusNat0(Succ(yuz11200), Zero) -> Succ(yuz11200) 53.00/33.39 new_primPlusNat0(Zero, Zero) -> Zero 53.00/33.39 new_sr1(Pos(yuz14250)) -> Pos(new_primMulNat2(yuz14250)) 53.00/33.39 new_sr1(Neg(yuz14250)) -> Neg(new_primMulNat2(yuz14250)) 53.00/33.39 new_primMulNat2(Succ(yuz142500)) -> new_primPlusNat0(new_primMulNat3(Succ(Succ(Succ(Succ(Zero)))), yuz142500), Succ(yuz142500)) 53.00/33.39 new_primMulNat2(Zero) -> Zero 53.00/33.39 new_primMulNat3(Succ(yuz400000), yuz60100) -> new_primPlusNat1(new_primMulNat3(yuz400000, yuz60100), yuz60100) 53.00/33.39 new_primMulNat3(Zero, yuz60100) -> Zero 53.00/33.39 new_primPlusNat1(Zero, yuz60100) -> Succ(yuz60100) 53.00/33.39 new_primPlusNat1(Succ(yuz1120), yuz60100) -> Succ(Succ(new_primPlusNat0(yuz1120, yuz60100))) 53.00/33.39 53.00/33.39 The set Q consists of the following terms: 53.00/33.39 53.00/33.39 new_primCmpNat0(x0, Succ(x1)) 53.00/33.39 new_primCmpInt(Neg(Zero), Neg(Zero)) 53.00/33.39 new_sIZE_RATIO 53.00/33.39 new_primCmpInt(Pos(Zero), Neg(Succ(x0))) 53.00/33.39 new_primCmpInt(Neg(Zero), Pos(Succ(x0))) 53.00/33.39 new_primCmpInt(Pos(Zero), Pos(Succ(x0))) 53.00/33.39 new_primMulNat1(Succ(x0), Zero) 53.00/33.39 new_mkVBalBranch3Size_l(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11) 53.00/33.39 new_primCmpNat1(Succ(x0), Succ(x1)) 53.00/33.39 new_sr0(Pos(x0), Pos(x1)) 53.00/33.39 new_primCmpInt(Pos(Zero), Neg(Zero)) 53.00/33.39 new_primCmpInt(Neg(Zero), Pos(Zero)) 53.00/33.39 new_primCmpInt(Neg(Succ(x0)), Neg(x1)) 53.00/33.39 new_esEs0(LT) 53.00/33.39 new_primCmpNat1(Succ(x0), Zero) 53.00/33.39 new_compare(x0, x1) 53.00/33.39 new_sr1(Neg(x0)) 53.00/33.39 new_primMulNat2(Zero) 53.00/33.39 new_primCmpNat1(Zero, Succ(x0)) 53.00/33.39 new_primPlusNat0(Zero, Succ(x0)) 53.00/33.39 new_primCmpNat1(Zero, Zero) 53.00/33.39 new_primCmpInt(Neg(Succ(x0)), Pos(x1)) 53.00/33.39 new_primCmpNat2(Succ(x0), x1) 53.00/33.39 new_primCmpInt(Pos(Succ(x0)), Neg(x1)) 53.00/33.39 new_sr1(Pos(x0)) 53.00/33.39 new_esEs0(EQ) 53.00/33.39 new_primMulNat3(Zero, x0) 53.00/33.39 new_primCmpNat0(x0, Zero) 53.00/33.39 new_primPlusNat1(Succ(x0), x1) 53.00/33.39 new_primPlusNat1(Zero, x0) 53.00/33.39 new_primMulNat3(Succ(x0), x1) 53.00/33.39 new_primPlusNat0(Succ(x0), Succ(x1)) 53.00/33.39 new_primCmpInt(Pos(Succ(x0)), Pos(x1)) 53.00/33.39 new_primMulNat2(Succ(x0)) 53.00/33.39 new_mkVBalBranch3Size_r(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11) 53.00/33.39 new_sizeFM(x0, x1, x2, x3, x4, x5, x6) 53.00/33.39 new_primPlusNat0(Succ(x0), Zero) 53.00/33.39 new_sr0(Pos(x0), Neg(x1)) 53.00/33.39 new_sr0(Neg(x0), Pos(x1)) 53.00/33.39 new_sr0(Neg(x0), Neg(x1)) 53.00/33.39 new_primCmpNat2(Zero, x0) 53.00/33.39 new_esEs0(GT) 53.00/33.39 new_primCmpInt(Neg(Zero), Neg(Succ(x0))) 53.00/33.39 new_primMulNat1(Succ(x0), Succ(x1)) 53.00/33.39 new_primMulNat1(Zero, Zero) 53.00/33.39 new_primMulNat1(Zero, Succ(x0)) 53.00/33.39 new_primCmpInt(Pos(Zero), Pos(Zero)) 53.00/33.39 new_primPlusNat0(Zero, Zero) 53.00/33.39 53.00/33.39 We have to consider all minimal (P,Q,R)-chains. 53.00/33.39 ---------------------------------------- 53.00/33.39 53.00/33.39 (47) TransformationProof (EQUIVALENT) 53.00/33.39 By rewriting [LPAR04] the rule new_mkVBalBranch3MkVBalBranch2(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz12380, yuz12381, yuz12382, Branch(yuz123830, yuz123831, yuz123832, yuz123833, yuz123834), yuz12384, yuz1240, yuz1241, True, h, ba) -> new_mkVBalBranch3MkVBalBranch2(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz123830, yuz123831, yuz123832, yuz123833, yuz123834, yuz1240, yuz1241, new_esEs0(new_compare(new_sr0(new_sIZE_RATIO, new_mkVBalBranch3Size_l(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz123830, yuz123831, yuz123832, yuz123833, yuz123834, h, ba)), new_mkVBalBranch3Size_r(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz123830, yuz123831, yuz123832, yuz123833, yuz123834, h, ba))), h, ba) at position [12,0] we obtained the following new rules [LPAR04]: 53.00/33.39 53.00/33.39 (new_mkVBalBranch3MkVBalBranch2(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz12380, yuz12381, yuz12382, Branch(yuz123830, yuz123831, yuz123832, yuz123833, yuz123834), yuz12384, yuz1240, yuz1241, True, h, ba) -> new_mkVBalBranch3MkVBalBranch2(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz123830, yuz123831, yuz123832, yuz123833, yuz123834, yuz1240, yuz1241, new_esEs0(new_primCmpInt(new_sr0(new_sIZE_RATIO, new_mkVBalBranch3Size_l(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz123830, yuz123831, yuz123832, yuz123833, yuz123834, h, ba)), new_mkVBalBranch3Size_r(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz123830, yuz123831, yuz123832, yuz123833, yuz123834, h, ba))), h, ba),new_mkVBalBranch3MkVBalBranch2(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz12380, yuz12381, yuz12382, Branch(yuz123830, yuz123831, yuz123832, yuz123833, yuz123834), yuz12384, yuz1240, yuz1241, True, h, ba) -> new_mkVBalBranch3MkVBalBranch2(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz123830, yuz123831, yuz123832, yuz123833, yuz123834, yuz1240, yuz1241, new_esEs0(new_primCmpInt(new_sr0(new_sIZE_RATIO, new_mkVBalBranch3Size_l(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz123830, yuz123831, yuz123832, yuz123833, yuz123834, h, ba)), new_mkVBalBranch3Size_r(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz123830, yuz123831, yuz123832, yuz123833, yuz123834, h, ba))), h, ba)) 53.00/33.39 53.00/33.39 53.00/33.39 ---------------------------------------- 53.00/33.39 53.00/33.39 (48) 53.00/33.39 Obligation: 53.00/33.39 Q DP problem: 53.00/33.39 The TRS P consists of the following rules: 53.00/33.39 53.00/33.39 new_mkVBalBranch3MkVBalBranch1(yuz12340, yuz12341, yuz12342, yuz12343, Branch(yuz123440, yuz123441, yuz123442, yuz123443, yuz123444), yuz12380, yuz12381, yuz12382, yuz12383, yuz12384, yuz1240, yuz1241, True, h, ba) -> new_mkVBalBranch3(yuz1240, yuz1241, yuz123440, yuz123441, yuz123442, yuz123443, yuz123444, yuz12380, yuz12381, yuz12382, yuz12383, yuz12384, h, ba) 53.00/33.39 new_mkVBalBranch3MkVBalBranch2(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz12380, yuz12381, yuz12382, yuz12383, yuz12384, yuz1240, yuz1241, False, h, ba) -> new_mkVBalBranch3MkVBalBranch1(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz12380, yuz12381, yuz12382, yuz12383, yuz12384, yuz1240, yuz1241, new_esEs0(new_compare(new_sr1(new_mkVBalBranch3Size_r(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz12380, yuz12381, yuz12382, yuz12383, yuz12384, h, ba)), new_mkVBalBranch3Size_l(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz12380, yuz12381, yuz12382, yuz12383, yuz12384, h, ba))), h, ba) 53.00/33.39 new_mkVBalBranch3(yuz1240, yuz1241, yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz123830, yuz123831, yuz123832, yuz123833, yuz123834, h, ba) -> new_mkVBalBranch3MkVBalBranch2(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz123830, yuz123831, yuz123832, yuz123833, yuz123834, yuz1240, yuz1241, new_esEs0(new_compare(new_sr0(new_sIZE_RATIO, new_mkVBalBranch3Size_l(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz123830, yuz123831, yuz123832, yuz123833, yuz123834, h, ba)), new_mkVBalBranch3Size_r(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz123830, yuz123831, yuz123832, yuz123833, yuz123834, h, ba))), h, ba) 53.00/33.39 new_mkVBalBranch3MkVBalBranch2(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz12380, yuz12381, yuz12382, Branch(yuz123830, yuz123831, yuz123832, yuz123833, yuz123834), yuz12384, yuz1240, yuz1241, True, h, ba) -> new_mkVBalBranch3MkVBalBranch2(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz123830, yuz123831, yuz123832, yuz123833, yuz123834, yuz1240, yuz1241, new_esEs0(new_primCmpInt(new_sr0(new_sIZE_RATIO, new_mkVBalBranch3Size_l(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz123830, yuz123831, yuz123832, yuz123833, yuz123834, h, ba)), new_mkVBalBranch3Size_r(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz123830, yuz123831, yuz123832, yuz123833, yuz123834, h, ba))), h, ba) 53.00/33.39 53.00/33.39 The TRS R consists of the following rules: 53.00/33.39 53.00/33.39 new_sIZE_RATIO -> Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))) 53.00/33.39 new_mkVBalBranch3Size_l(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz12380, yuz12381, yuz12382, yuz12383, yuz12384, h, ba) -> new_sizeFM(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, h, ba) 53.00/33.39 new_sr0(Neg(yuz6000), Neg(yuz4010)) -> Pos(new_primMulNat1(yuz6000, yuz4010)) 53.00/33.39 new_sr0(Pos(yuz6000), Pos(yuz4010)) -> Pos(new_primMulNat1(yuz6000, yuz4010)) 53.00/33.39 new_sr0(Pos(yuz6000), Neg(yuz4010)) -> Neg(new_primMulNat1(yuz6000, yuz4010)) 53.00/33.39 new_sr0(Neg(yuz6000), Pos(yuz4010)) -> Neg(new_primMulNat1(yuz6000, yuz4010)) 53.00/33.39 new_mkVBalBranch3Size_r(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz12380, yuz12381, yuz12382, yuz12383, yuz12384, h, ba) -> new_sizeFM(yuz12380, yuz12381, yuz12382, yuz12383, yuz12384, h, ba) 53.00/33.39 new_compare(yuz1440, yuz1435) -> new_primCmpInt(yuz1440, yuz1435) 53.00/33.39 new_esEs0(EQ) -> False 53.00/33.39 new_esEs0(LT) -> True 53.00/33.39 new_esEs0(GT) -> False 53.00/33.39 new_primCmpInt(Neg(Succ(yuz144000)), Pos(yuz14350)) -> LT 53.00/33.39 new_primCmpInt(Pos(Zero), Pos(Succ(yuz143500))) -> new_primCmpNat2(Zero, yuz143500) 53.00/33.39 new_primCmpInt(Neg(Succ(yuz144000)), Neg(yuz14350)) -> new_primCmpNat2(yuz14350, yuz144000) 53.00/33.39 new_primCmpInt(Neg(Zero), Neg(Succ(yuz143500))) -> new_primCmpNat0(yuz143500, Zero) 53.00/33.39 new_primCmpInt(Pos(Succ(yuz144000)), Pos(yuz14350)) -> new_primCmpNat0(yuz144000, yuz14350) 53.00/33.39 new_primCmpInt(Neg(Zero), Neg(Zero)) -> EQ 53.00/33.39 new_primCmpInt(Pos(Zero), Neg(Succ(yuz143500))) -> GT 53.00/33.39 new_primCmpInt(Neg(Zero), Pos(Succ(yuz143500))) -> LT 53.00/33.39 new_primCmpInt(Pos(Succ(yuz144000)), Neg(yuz14350)) -> GT 53.00/33.39 new_primCmpInt(Pos(Zero), Neg(Zero)) -> EQ 53.00/33.39 new_primCmpInt(Neg(Zero), Pos(Zero)) -> EQ 53.00/33.39 new_primCmpInt(Pos(Zero), Pos(Zero)) -> EQ 53.00/33.39 new_primCmpNat0(yuz144000, Succ(yuz143500)) -> new_primCmpNat1(yuz144000, yuz143500) 53.00/33.39 new_primCmpNat0(yuz144000, Zero) -> GT 53.00/33.39 new_primCmpNat1(Zero, Zero) -> EQ 53.00/33.39 new_primCmpNat1(Succ(yuz2800), Zero) -> GT 53.00/33.39 new_primCmpNat1(Succ(yuz2800), Succ(yuz330000)) -> new_primCmpNat1(yuz2800, yuz330000) 53.00/33.39 new_primCmpNat1(Zero, Succ(yuz330000)) -> LT 53.00/33.39 new_primCmpNat2(Succ(yuz143500), yuz144000) -> new_primCmpNat1(yuz143500, yuz144000) 53.00/33.39 new_primCmpNat2(Zero, yuz144000) -> LT 53.00/33.39 new_sizeFM(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, h, ba) -> yuz12342 53.00/33.39 new_primMulNat1(Zero, Zero) -> Zero 53.00/33.39 new_primMulNat1(Succ(yuz60000), Zero) -> Zero 53.00/33.39 new_primMulNat1(Zero, Succ(yuz40100)) -> Zero 53.00/33.39 new_primMulNat1(Succ(yuz60000), Succ(yuz40100)) -> new_primPlusNat0(new_primMulNat1(yuz60000, Succ(yuz40100)), Succ(yuz40100)) 53.00/33.39 new_primPlusNat0(Zero, Succ(yuz601000)) -> Succ(yuz601000) 53.00/33.39 new_primPlusNat0(Succ(yuz11200), Succ(yuz601000)) -> Succ(Succ(new_primPlusNat0(yuz11200, yuz601000))) 53.00/33.39 new_primPlusNat0(Succ(yuz11200), Zero) -> Succ(yuz11200) 53.00/33.39 new_primPlusNat0(Zero, Zero) -> Zero 53.00/33.39 new_sr1(Pos(yuz14250)) -> Pos(new_primMulNat2(yuz14250)) 53.00/33.39 new_sr1(Neg(yuz14250)) -> Neg(new_primMulNat2(yuz14250)) 53.00/33.39 new_primMulNat2(Succ(yuz142500)) -> new_primPlusNat0(new_primMulNat3(Succ(Succ(Succ(Succ(Zero)))), yuz142500), Succ(yuz142500)) 53.00/33.39 new_primMulNat2(Zero) -> Zero 53.00/33.39 new_primMulNat3(Succ(yuz400000), yuz60100) -> new_primPlusNat1(new_primMulNat3(yuz400000, yuz60100), yuz60100) 53.00/33.39 new_primMulNat3(Zero, yuz60100) -> Zero 53.00/33.39 new_primPlusNat1(Zero, yuz60100) -> Succ(yuz60100) 53.00/33.39 new_primPlusNat1(Succ(yuz1120), yuz60100) -> Succ(Succ(new_primPlusNat0(yuz1120, yuz60100))) 53.00/33.39 53.00/33.39 The set Q consists of the following terms: 53.00/33.39 53.00/33.39 new_primCmpNat0(x0, Succ(x1)) 53.00/33.39 new_primCmpInt(Neg(Zero), Neg(Zero)) 53.00/33.39 new_sIZE_RATIO 53.00/33.39 new_primCmpInt(Pos(Zero), Neg(Succ(x0))) 53.00/33.39 new_primCmpInt(Neg(Zero), Pos(Succ(x0))) 53.00/33.39 new_primCmpInt(Pos(Zero), Pos(Succ(x0))) 53.00/33.39 new_primMulNat1(Succ(x0), Zero) 53.00/33.39 new_mkVBalBranch3Size_l(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11) 53.00/33.39 new_primCmpNat1(Succ(x0), Succ(x1)) 53.00/33.39 new_sr0(Pos(x0), Pos(x1)) 53.00/33.39 new_primCmpInt(Pos(Zero), Neg(Zero)) 53.00/33.39 new_primCmpInt(Neg(Zero), Pos(Zero)) 53.00/33.39 new_primCmpInt(Neg(Succ(x0)), Neg(x1)) 53.00/33.39 new_esEs0(LT) 53.00/33.39 new_primCmpNat1(Succ(x0), Zero) 53.00/33.39 new_compare(x0, x1) 53.00/33.39 new_sr1(Neg(x0)) 53.00/33.39 new_primMulNat2(Zero) 53.00/33.39 new_primCmpNat1(Zero, Succ(x0)) 53.00/33.39 new_primPlusNat0(Zero, Succ(x0)) 53.00/33.39 new_primCmpNat1(Zero, Zero) 53.00/33.39 new_primCmpInt(Neg(Succ(x0)), Pos(x1)) 53.00/33.39 new_primCmpNat2(Succ(x0), x1) 53.00/33.39 new_primCmpInt(Pos(Succ(x0)), Neg(x1)) 53.00/33.39 new_sr1(Pos(x0)) 53.00/33.39 new_esEs0(EQ) 53.00/33.39 new_primMulNat3(Zero, x0) 53.00/33.39 new_primCmpNat0(x0, Zero) 53.00/33.39 new_primPlusNat1(Succ(x0), x1) 53.00/33.39 new_primPlusNat1(Zero, x0) 53.00/33.39 new_primMulNat3(Succ(x0), x1) 53.00/33.39 new_primPlusNat0(Succ(x0), Succ(x1)) 53.00/33.39 new_primCmpInt(Pos(Succ(x0)), Pos(x1)) 53.00/33.39 new_primMulNat2(Succ(x0)) 53.00/33.39 new_mkVBalBranch3Size_r(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11) 53.00/33.39 new_sizeFM(x0, x1, x2, x3, x4, x5, x6) 53.00/33.39 new_primPlusNat0(Succ(x0), Zero) 53.00/33.39 new_sr0(Pos(x0), Neg(x1)) 53.00/33.39 new_sr0(Neg(x0), Pos(x1)) 53.00/33.39 new_sr0(Neg(x0), Neg(x1)) 53.00/33.39 new_primCmpNat2(Zero, x0) 53.00/33.39 new_esEs0(GT) 53.00/33.39 new_primCmpInt(Neg(Zero), Neg(Succ(x0))) 53.00/33.39 new_primMulNat1(Succ(x0), Succ(x1)) 53.00/33.39 new_primMulNat1(Zero, Zero) 53.00/33.39 new_primMulNat1(Zero, Succ(x0)) 53.00/33.39 new_primCmpInt(Pos(Zero), Pos(Zero)) 53.00/33.39 new_primPlusNat0(Zero, Zero) 53.00/33.39 53.00/33.39 We have to consider all minimal (P,Q,R)-chains. 53.00/33.39 ---------------------------------------- 53.00/33.39 53.00/33.39 (49) TransformationProof (EQUIVALENT) 53.00/33.39 By rewriting [LPAR04] the rule new_mkVBalBranch3MkVBalBranch2(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz12380, yuz12381, yuz12382, yuz12383, yuz12384, yuz1240, yuz1241, False, h, ba) -> new_mkVBalBranch3MkVBalBranch1(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz12380, yuz12381, yuz12382, yuz12383, yuz12384, yuz1240, yuz1241, new_esEs0(new_compare(new_sr1(new_mkVBalBranch3Size_r(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz12380, yuz12381, yuz12382, yuz12383, yuz12384, h, ba)), new_mkVBalBranch3Size_l(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz12380, yuz12381, yuz12382, yuz12383, yuz12384, h, ba))), h, ba) at position [12,0] we obtained the following new rules [LPAR04]: 53.00/33.39 53.00/33.39 (new_mkVBalBranch3MkVBalBranch2(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz12380, yuz12381, yuz12382, yuz12383, yuz12384, yuz1240, yuz1241, False, h, ba) -> new_mkVBalBranch3MkVBalBranch1(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz12380, yuz12381, yuz12382, yuz12383, yuz12384, yuz1240, yuz1241, new_esEs0(new_primCmpInt(new_sr1(new_mkVBalBranch3Size_r(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz12380, yuz12381, yuz12382, yuz12383, yuz12384, h, ba)), new_mkVBalBranch3Size_l(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz12380, yuz12381, yuz12382, yuz12383, yuz12384, h, ba))), h, ba),new_mkVBalBranch3MkVBalBranch2(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz12380, yuz12381, yuz12382, yuz12383, yuz12384, yuz1240, yuz1241, False, h, ba) -> new_mkVBalBranch3MkVBalBranch1(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz12380, yuz12381, yuz12382, yuz12383, yuz12384, yuz1240, yuz1241, new_esEs0(new_primCmpInt(new_sr1(new_mkVBalBranch3Size_r(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz12380, yuz12381, yuz12382, yuz12383, yuz12384, h, ba)), new_mkVBalBranch3Size_l(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz12380, yuz12381, yuz12382, yuz12383, yuz12384, h, ba))), h, ba)) 53.00/33.39 53.00/33.39 53.00/33.39 ---------------------------------------- 53.00/33.39 53.00/33.39 (50) 53.00/33.39 Obligation: 53.00/33.39 Q DP problem: 53.00/33.39 The TRS P consists of the following rules: 53.00/33.39 53.00/33.39 new_mkVBalBranch3MkVBalBranch1(yuz12340, yuz12341, yuz12342, yuz12343, Branch(yuz123440, yuz123441, yuz123442, yuz123443, yuz123444), yuz12380, yuz12381, yuz12382, yuz12383, yuz12384, yuz1240, yuz1241, True, h, ba) -> new_mkVBalBranch3(yuz1240, yuz1241, yuz123440, yuz123441, yuz123442, yuz123443, yuz123444, yuz12380, yuz12381, yuz12382, yuz12383, yuz12384, h, ba) 53.00/33.39 new_mkVBalBranch3(yuz1240, yuz1241, yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz123830, yuz123831, yuz123832, yuz123833, yuz123834, h, ba) -> new_mkVBalBranch3MkVBalBranch2(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz123830, yuz123831, yuz123832, yuz123833, yuz123834, yuz1240, yuz1241, new_esEs0(new_compare(new_sr0(new_sIZE_RATIO, new_mkVBalBranch3Size_l(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz123830, yuz123831, yuz123832, yuz123833, yuz123834, h, ba)), new_mkVBalBranch3Size_r(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz123830, yuz123831, yuz123832, yuz123833, yuz123834, h, ba))), h, ba) 53.00/33.39 new_mkVBalBranch3MkVBalBranch2(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz12380, yuz12381, yuz12382, Branch(yuz123830, yuz123831, yuz123832, yuz123833, yuz123834), yuz12384, yuz1240, yuz1241, True, h, ba) -> new_mkVBalBranch3MkVBalBranch2(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz123830, yuz123831, yuz123832, yuz123833, yuz123834, yuz1240, yuz1241, new_esEs0(new_primCmpInt(new_sr0(new_sIZE_RATIO, new_mkVBalBranch3Size_l(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz123830, yuz123831, yuz123832, yuz123833, yuz123834, h, ba)), new_mkVBalBranch3Size_r(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz123830, yuz123831, yuz123832, yuz123833, yuz123834, h, ba))), h, ba) 53.00/33.39 new_mkVBalBranch3MkVBalBranch2(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz12380, yuz12381, yuz12382, yuz12383, yuz12384, yuz1240, yuz1241, False, h, ba) -> new_mkVBalBranch3MkVBalBranch1(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz12380, yuz12381, yuz12382, yuz12383, yuz12384, yuz1240, yuz1241, new_esEs0(new_primCmpInt(new_sr1(new_mkVBalBranch3Size_r(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz12380, yuz12381, yuz12382, yuz12383, yuz12384, h, ba)), new_mkVBalBranch3Size_l(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz12380, yuz12381, yuz12382, yuz12383, yuz12384, h, ba))), h, ba) 53.00/33.39 53.00/33.39 The TRS R consists of the following rules: 53.00/33.39 53.00/33.39 new_sIZE_RATIO -> Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))) 53.00/33.39 new_mkVBalBranch3Size_l(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz12380, yuz12381, yuz12382, yuz12383, yuz12384, h, ba) -> new_sizeFM(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, h, ba) 53.00/33.39 new_sr0(Neg(yuz6000), Neg(yuz4010)) -> Pos(new_primMulNat1(yuz6000, yuz4010)) 53.00/33.39 new_sr0(Pos(yuz6000), Pos(yuz4010)) -> Pos(new_primMulNat1(yuz6000, yuz4010)) 53.00/33.39 new_sr0(Pos(yuz6000), Neg(yuz4010)) -> Neg(new_primMulNat1(yuz6000, yuz4010)) 53.00/33.39 new_sr0(Neg(yuz6000), Pos(yuz4010)) -> Neg(new_primMulNat1(yuz6000, yuz4010)) 53.00/33.39 new_mkVBalBranch3Size_r(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz12380, yuz12381, yuz12382, yuz12383, yuz12384, h, ba) -> new_sizeFM(yuz12380, yuz12381, yuz12382, yuz12383, yuz12384, h, ba) 53.00/33.39 new_compare(yuz1440, yuz1435) -> new_primCmpInt(yuz1440, yuz1435) 53.00/33.39 new_esEs0(EQ) -> False 53.00/33.39 new_esEs0(LT) -> True 53.00/33.39 new_esEs0(GT) -> False 53.00/33.39 new_primCmpInt(Neg(Succ(yuz144000)), Pos(yuz14350)) -> LT 53.00/33.39 new_primCmpInt(Pos(Zero), Pos(Succ(yuz143500))) -> new_primCmpNat2(Zero, yuz143500) 53.00/33.39 new_primCmpInt(Neg(Succ(yuz144000)), Neg(yuz14350)) -> new_primCmpNat2(yuz14350, yuz144000) 53.00/33.39 new_primCmpInt(Neg(Zero), Neg(Succ(yuz143500))) -> new_primCmpNat0(yuz143500, Zero) 53.00/33.39 new_primCmpInt(Pos(Succ(yuz144000)), Pos(yuz14350)) -> new_primCmpNat0(yuz144000, yuz14350) 53.00/33.39 new_primCmpInt(Neg(Zero), Neg(Zero)) -> EQ 53.00/33.39 new_primCmpInt(Pos(Zero), Neg(Succ(yuz143500))) -> GT 53.00/33.39 new_primCmpInt(Neg(Zero), Pos(Succ(yuz143500))) -> LT 53.00/33.39 new_primCmpInt(Pos(Succ(yuz144000)), Neg(yuz14350)) -> GT 53.00/33.39 new_primCmpInt(Pos(Zero), Neg(Zero)) -> EQ 53.00/33.39 new_primCmpInt(Neg(Zero), Pos(Zero)) -> EQ 53.00/33.39 new_primCmpInt(Pos(Zero), Pos(Zero)) -> EQ 53.00/33.39 new_primCmpNat0(yuz144000, Succ(yuz143500)) -> new_primCmpNat1(yuz144000, yuz143500) 53.00/33.39 new_primCmpNat0(yuz144000, Zero) -> GT 53.00/33.39 new_primCmpNat1(Zero, Zero) -> EQ 53.00/33.39 new_primCmpNat1(Succ(yuz2800), Zero) -> GT 53.00/33.39 new_primCmpNat1(Succ(yuz2800), Succ(yuz330000)) -> new_primCmpNat1(yuz2800, yuz330000) 53.00/33.39 new_primCmpNat1(Zero, Succ(yuz330000)) -> LT 53.00/33.39 new_primCmpNat2(Succ(yuz143500), yuz144000) -> new_primCmpNat1(yuz143500, yuz144000) 53.00/33.39 new_primCmpNat2(Zero, yuz144000) -> LT 53.00/33.39 new_sizeFM(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, h, ba) -> yuz12342 53.00/33.39 new_primMulNat1(Zero, Zero) -> Zero 53.00/33.39 new_primMulNat1(Succ(yuz60000), Zero) -> Zero 53.00/33.39 new_primMulNat1(Zero, Succ(yuz40100)) -> Zero 53.00/33.39 new_primMulNat1(Succ(yuz60000), Succ(yuz40100)) -> new_primPlusNat0(new_primMulNat1(yuz60000, Succ(yuz40100)), Succ(yuz40100)) 53.00/33.39 new_primPlusNat0(Zero, Succ(yuz601000)) -> Succ(yuz601000) 53.00/33.39 new_primPlusNat0(Succ(yuz11200), Succ(yuz601000)) -> Succ(Succ(new_primPlusNat0(yuz11200, yuz601000))) 53.00/33.39 new_primPlusNat0(Succ(yuz11200), Zero) -> Succ(yuz11200) 53.00/33.39 new_primPlusNat0(Zero, Zero) -> Zero 53.00/33.39 new_sr1(Pos(yuz14250)) -> Pos(new_primMulNat2(yuz14250)) 53.00/33.39 new_sr1(Neg(yuz14250)) -> Neg(new_primMulNat2(yuz14250)) 53.00/33.39 new_primMulNat2(Succ(yuz142500)) -> new_primPlusNat0(new_primMulNat3(Succ(Succ(Succ(Succ(Zero)))), yuz142500), Succ(yuz142500)) 53.00/33.39 new_primMulNat2(Zero) -> Zero 53.00/33.39 new_primMulNat3(Succ(yuz400000), yuz60100) -> new_primPlusNat1(new_primMulNat3(yuz400000, yuz60100), yuz60100) 53.00/33.39 new_primMulNat3(Zero, yuz60100) -> Zero 53.00/33.39 new_primPlusNat1(Zero, yuz60100) -> Succ(yuz60100) 53.00/33.39 new_primPlusNat1(Succ(yuz1120), yuz60100) -> Succ(Succ(new_primPlusNat0(yuz1120, yuz60100))) 53.00/33.39 53.00/33.39 The set Q consists of the following terms: 53.00/33.39 53.00/33.39 new_primCmpNat0(x0, Succ(x1)) 53.00/33.39 new_primCmpInt(Neg(Zero), Neg(Zero)) 53.00/33.39 new_sIZE_RATIO 53.00/33.39 new_primCmpInt(Pos(Zero), Neg(Succ(x0))) 53.00/33.39 new_primCmpInt(Neg(Zero), Pos(Succ(x0))) 53.00/33.39 new_primCmpInt(Pos(Zero), Pos(Succ(x0))) 53.00/33.39 new_primMulNat1(Succ(x0), Zero) 53.00/33.39 new_mkVBalBranch3Size_l(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11) 53.00/33.39 new_primCmpNat1(Succ(x0), Succ(x1)) 53.00/33.39 new_sr0(Pos(x0), Pos(x1)) 53.00/33.39 new_primCmpInt(Pos(Zero), Neg(Zero)) 53.00/33.39 new_primCmpInt(Neg(Zero), Pos(Zero)) 53.00/33.39 new_primCmpInt(Neg(Succ(x0)), Neg(x1)) 53.00/33.39 new_esEs0(LT) 53.00/33.39 new_primCmpNat1(Succ(x0), Zero) 53.00/33.39 new_compare(x0, x1) 53.00/33.39 new_sr1(Neg(x0)) 53.00/33.39 new_primMulNat2(Zero) 53.00/33.39 new_primCmpNat1(Zero, Succ(x0)) 53.00/33.39 new_primPlusNat0(Zero, Succ(x0)) 53.00/33.39 new_primCmpNat1(Zero, Zero) 53.00/33.39 new_primCmpInt(Neg(Succ(x0)), Pos(x1)) 53.00/33.39 new_primCmpNat2(Succ(x0), x1) 53.00/33.39 new_primCmpInt(Pos(Succ(x0)), Neg(x1)) 53.00/33.39 new_sr1(Pos(x0)) 53.00/33.39 new_esEs0(EQ) 53.00/33.39 new_primMulNat3(Zero, x0) 53.00/33.39 new_primCmpNat0(x0, Zero) 53.00/33.39 new_primPlusNat1(Succ(x0), x1) 53.00/33.39 new_primPlusNat1(Zero, x0) 53.00/33.39 new_primMulNat3(Succ(x0), x1) 53.00/33.39 new_primPlusNat0(Succ(x0), Succ(x1)) 53.00/33.39 new_primCmpInt(Pos(Succ(x0)), Pos(x1)) 53.00/33.39 new_primMulNat2(Succ(x0)) 53.00/33.39 new_mkVBalBranch3Size_r(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11) 53.00/33.39 new_sizeFM(x0, x1, x2, x3, x4, x5, x6) 53.00/33.39 new_primPlusNat0(Succ(x0), Zero) 53.00/33.39 new_sr0(Pos(x0), Neg(x1)) 53.00/33.39 new_sr0(Neg(x0), Pos(x1)) 53.00/33.39 new_sr0(Neg(x0), Neg(x1)) 53.00/33.39 new_primCmpNat2(Zero, x0) 53.00/33.39 new_esEs0(GT) 53.00/33.39 new_primCmpInt(Neg(Zero), Neg(Succ(x0))) 53.00/33.39 new_primMulNat1(Succ(x0), Succ(x1)) 53.00/33.39 new_primMulNat1(Zero, Zero) 53.00/33.39 new_primMulNat1(Zero, Succ(x0)) 53.00/33.39 new_primCmpInt(Pos(Zero), Pos(Zero)) 53.00/33.39 new_primPlusNat0(Zero, Zero) 53.00/33.39 53.00/33.39 We have to consider all minimal (P,Q,R)-chains. 53.00/33.39 ---------------------------------------- 53.00/33.39 53.00/33.39 (51) TransformationProof (EQUIVALENT) 53.00/33.39 By rewriting [LPAR04] the rule new_mkVBalBranch3(yuz1240, yuz1241, yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz123830, yuz123831, yuz123832, yuz123833, yuz123834, h, ba) -> new_mkVBalBranch3MkVBalBranch2(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz123830, yuz123831, yuz123832, yuz123833, yuz123834, yuz1240, yuz1241, new_esEs0(new_compare(new_sr0(new_sIZE_RATIO, new_mkVBalBranch3Size_l(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz123830, yuz123831, yuz123832, yuz123833, yuz123834, h, ba)), new_mkVBalBranch3Size_r(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz123830, yuz123831, yuz123832, yuz123833, yuz123834, h, ba))), h, ba) at position [12,0] we obtained the following new rules [LPAR04]: 53.00/33.39 53.00/33.39 (new_mkVBalBranch3(yuz1240, yuz1241, yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz123830, yuz123831, yuz123832, yuz123833, yuz123834, h, ba) -> new_mkVBalBranch3MkVBalBranch2(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz123830, yuz123831, yuz123832, yuz123833, yuz123834, yuz1240, yuz1241, new_esEs0(new_primCmpInt(new_sr0(new_sIZE_RATIO, new_mkVBalBranch3Size_l(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz123830, yuz123831, yuz123832, yuz123833, yuz123834, h, ba)), new_mkVBalBranch3Size_r(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz123830, yuz123831, yuz123832, yuz123833, yuz123834, h, ba))), h, ba),new_mkVBalBranch3(yuz1240, yuz1241, yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz123830, yuz123831, yuz123832, yuz123833, yuz123834, h, ba) -> new_mkVBalBranch3MkVBalBranch2(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz123830, yuz123831, yuz123832, yuz123833, yuz123834, yuz1240, yuz1241, new_esEs0(new_primCmpInt(new_sr0(new_sIZE_RATIO, new_mkVBalBranch3Size_l(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz123830, yuz123831, yuz123832, yuz123833, yuz123834, h, ba)), new_mkVBalBranch3Size_r(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz123830, yuz123831, yuz123832, yuz123833, yuz123834, h, ba))), h, ba)) 53.00/33.39 53.00/33.39 53.00/33.39 ---------------------------------------- 53.00/33.39 53.00/33.39 (52) 53.00/33.39 Obligation: 53.00/33.39 Q DP problem: 53.00/33.39 The TRS P consists of the following rules: 53.00/33.39 53.00/33.39 new_mkVBalBranch3MkVBalBranch1(yuz12340, yuz12341, yuz12342, yuz12343, Branch(yuz123440, yuz123441, yuz123442, yuz123443, yuz123444), yuz12380, yuz12381, yuz12382, yuz12383, yuz12384, yuz1240, yuz1241, True, h, ba) -> new_mkVBalBranch3(yuz1240, yuz1241, yuz123440, yuz123441, yuz123442, yuz123443, yuz123444, yuz12380, yuz12381, yuz12382, yuz12383, yuz12384, h, ba) 53.00/33.39 new_mkVBalBranch3MkVBalBranch2(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz12380, yuz12381, yuz12382, Branch(yuz123830, yuz123831, yuz123832, yuz123833, yuz123834), yuz12384, yuz1240, yuz1241, True, h, ba) -> new_mkVBalBranch3MkVBalBranch2(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz123830, yuz123831, yuz123832, yuz123833, yuz123834, yuz1240, yuz1241, new_esEs0(new_primCmpInt(new_sr0(new_sIZE_RATIO, new_mkVBalBranch3Size_l(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz123830, yuz123831, yuz123832, yuz123833, yuz123834, h, ba)), new_mkVBalBranch3Size_r(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz123830, yuz123831, yuz123832, yuz123833, yuz123834, h, ba))), h, ba) 53.00/33.39 new_mkVBalBranch3MkVBalBranch2(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz12380, yuz12381, yuz12382, yuz12383, yuz12384, yuz1240, yuz1241, False, h, ba) -> new_mkVBalBranch3MkVBalBranch1(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz12380, yuz12381, yuz12382, yuz12383, yuz12384, yuz1240, yuz1241, new_esEs0(new_primCmpInt(new_sr1(new_mkVBalBranch3Size_r(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz12380, yuz12381, yuz12382, yuz12383, yuz12384, h, ba)), new_mkVBalBranch3Size_l(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz12380, yuz12381, yuz12382, yuz12383, yuz12384, h, ba))), h, ba) 53.00/33.39 new_mkVBalBranch3(yuz1240, yuz1241, yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz123830, yuz123831, yuz123832, yuz123833, yuz123834, h, ba) -> new_mkVBalBranch3MkVBalBranch2(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz123830, yuz123831, yuz123832, yuz123833, yuz123834, yuz1240, yuz1241, new_esEs0(new_primCmpInt(new_sr0(new_sIZE_RATIO, new_mkVBalBranch3Size_l(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz123830, yuz123831, yuz123832, yuz123833, yuz123834, h, ba)), new_mkVBalBranch3Size_r(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz123830, yuz123831, yuz123832, yuz123833, yuz123834, h, ba))), h, ba) 53.00/33.39 53.00/33.39 The TRS R consists of the following rules: 53.00/33.39 53.00/33.39 new_sIZE_RATIO -> Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))) 53.00/33.39 new_mkVBalBranch3Size_l(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz12380, yuz12381, yuz12382, yuz12383, yuz12384, h, ba) -> new_sizeFM(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, h, ba) 53.00/33.39 new_sr0(Neg(yuz6000), Neg(yuz4010)) -> Pos(new_primMulNat1(yuz6000, yuz4010)) 53.00/33.39 new_sr0(Pos(yuz6000), Pos(yuz4010)) -> Pos(new_primMulNat1(yuz6000, yuz4010)) 53.00/33.39 new_sr0(Pos(yuz6000), Neg(yuz4010)) -> Neg(new_primMulNat1(yuz6000, yuz4010)) 53.00/33.39 new_sr0(Neg(yuz6000), Pos(yuz4010)) -> Neg(new_primMulNat1(yuz6000, yuz4010)) 53.00/33.39 new_mkVBalBranch3Size_r(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz12380, yuz12381, yuz12382, yuz12383, yuz12384, h, ba) -> new_sizeFM(yuz12380, yuz12381, yuz12382, yuz12383, yuz12384, h, ba) 53.00/33.39 new_compare(yuz1440, yuz1435) -> new_primCmpInt(yuz1440, yuz1435) 53.00/33.39 new_esEs0(EQ) -> False 53.00/33.39 new_esEs0(LT) -> True 53.00/33.39 new_esEs0(GT) -> False 53.00/33.39 new_primCmpInt(Neg(Succ(yuz144000)), Pos(yuz14350)) -> LT 53.00/33.39 new_primCmpInt(Pos(Zero), Pos(Succ(yuz143500))) -> new_primCmpNat2(Zero, yuz143500) 53.00/33.39 new_primCmpInt(Neg(Succ(yuz144000)), Neg(yuz14350)) -> new_primCmpNat2(yuz14350, yuz144000) 53.00/33.39 new_primCmpInt(Neg(Zero), Neg(Succ(yuz143500))) -> new_primCmpNat0(yuz143500, Zero) 53.00/33.39 new_primCmpInt(Pos(Succ(yuz144000)), Pos(yuz14350)) -> new_primCmpNat0(yuz144000, yuz14350) 53.00/33.39 new_primCmpInt(Neg(Zero), Neg(Zero)) -> EQ 53.00/33.39 new_primCmpInt(Pos(Zero), Neg(Succ(yuz143500))) -> GT 53.00/33.39 new_primCmpInt(Neg(Zero), Pos(Succ(yuz143500))) -> LT 53.00/33.39 new_primCmpInt(Pos(Succ(yuz144000)), Neg(yuz14350)) -> GT 53.00/33.39 new_primCmpInt(Pos(Zero), Neg(Zero)) -> EQ 53.00/33.39 new_primCmpInt(Neg(Zero), Pos(Zero)) -> EQ 53.00/33.39 new_primCmpInt(Pos(Zero), Pos(Zero)) -> EQ 53.00/33.39 new_primCmpNat0(yuz144000, Succ(yuz143500)) -> new_primCmpNat1(yuz144000, yuz143500) 53.00/33.39 new_primCmpNat0(yuz144000, Zero) -> GT 53.00/33.39 new_primCmpNat1(Zero, Zero) -> EQ 53.00/33.39 new_primCmpNat1(Succ(yuz2800), Zero) -> GT 53.00/33.39 new_primCmpNat1(Succ(yuz2800), Succ(yuz330000)) -> new_primCmpNat1(yuz2800, yuz330000) 53.00/33.39 new_primCmpNat1(Zero, Succ(yuz330000)) -> LT 53.00/33.39 new_primCmpNat2(Succ(yuz143500), yuz144000) -> new_primCmpNat1(yuz143500, yuz144000) 53.00/33.39 new_primCmpNat2(Zero, yuz144000) -> LT 53.00/33.39 new_sizeFM(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, h, ba) -> yuz12342 53.00/33.39 new_primMulNat1(Zero, Zero) -> Zero 53.00/33.39 new_primMulNat1(Succ(yuz60000), Zero) -> Zero 53.00/33.39 new_primMulNat1(Zero, Succ(yuz40100)) -> Zero 53.00/33.39 new_primMulNat1(Succ(yuz60000), Succ(yuz40100)) -> new_primPlusNat0(new_primMulNat1(yuz60000, Succ(yuz40100)), Succ(yuz40100)) 53.00/33.39 new_primPlusNat0(Zero, Succ(yuz601000)) -> Succ(yuz601000) 53.00/33.39 new_primPlusNat0(Succ(yuz11200), Succ(yuz601000)) -> Succ(Succ(new_primPlusNat0(yuz11200, yuz601000))) 53.00/33.39 new_primPlusNat0(Succ(yuz11200), Zero) -> Succ(yuz11200) 53.00/33.39 new_primPlusNat0(Zero, Zero) -> Zero 53.00/33.39 new_sr1(Pos(yuz14250)) -> Pos(new_primMulNat2(yuz14250)) 53.00/33.39 new_sr1(Neg(yuz14250)) -> Neg(new_primMulNat2(yuz14250)) 53.00/33.39 new_primMulNat2(Succ(yuz142500)) -> new_primPlusNat0(new_primMulNat3(Succ(Succ(Succ(Succ(Zero)))), yuz142500), Succ(yuz142500)) 53.00/33.39 new_primMulNat2(Zero) -> Zero 53.00/33.39 new_primMulNat3(Succ(yuz400000), yuz60100) -> new_primPlusNat1(new_primMulNat3(yuz400000, yuz60100), yuz60100) 53.00/33.39 new_primMulNat3(Zero, yuz60100) -> Zero 53.00/33.39 new_primPlusNat1(Zero, yuz60100) -> Succ(yuz60100) 53.00/33.39 new_primPlusNat1(Succ(yuz1120), yuz60100) -> Succ(Succ(new_primPlusNat0(yuz1120, yuz60100))) 53.00/33.39 53.00/33.39 The set Q consists of the following terms: 53.00/33.39 53.00/33.39 new_primCmpNat0(x0, Succ(x1)) 53.00/33.39 new_primCmpInt(Neg(Zero), Neg(Zero)) 53.00/33.39 new_sIZE_RATIO 53.00/33.39 new_primCmpInt(Pos(Zero), Neg(Succ(x0))) 53.00/33.39 new_primCmpInt(Neg(Zero), Pos(Succ(x0))) 53.00/33.39 new_primCmpInt(Pos(Zero), Pos(Succ(x0))) 53.00/33.39 new_primMulNat1(Succ(x0), Zero) 53.00/33.39 new_mkVBalBranch3Size_l(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11) 53.00/33.39 new_primCmpNat1(Succ(x0), Succ(x1)) 53.00/33.39 new_sr0(Pos(x0), Pos(x1)) 53.00/33.39 new_primCmpInt(Pos(Zero), Neg(Zero)) 53.00/33.39 new_primCmpInt(Neg(Zero), Pos(Zero)) 53.00/33.39 new_primCmpInt(Neg(Succ(x0)), Neg(x1)) 53.00/33.39 new_esEs0(LT) 53.00/33.39 new_primCmpNat1(Succ(x0), Zero) 53.00/33.39 new_compare(x0, x1) 53.00/33.39 new_sr1(Neg(x0)) 53.00/33.39 new_primMulNat2(Zero) 53.00/33.39 new_primCmpNat1(Zero, Succ(x0)) 53.00/33.39 new_primPlusNat0(Zero, Succ(x0)) 53.00/33.39 new_primCmpNat1(Zero, Zero) 53.00/33.39 new_primCmpInt(Neg(Succ(x0)), Pos(x1)) 53.00/33.39 new_primCmpNat2(Succ(x0), x1) 53.00/33.39 new_primCmpInt(Pos(Succ(x0)), Neg(x1)) 53.00/33.39 new_sr1(Pos(x0)) 53.00/33.39 new_esEs0(EQ) 53.00/33.39 new_primMulNat3(Zero, x0) 53.00/33.39 new_primCmpNat0(x0, Zero) 53.00/33.39 new_primPlusNat1(Succ(x0), x1) 53.00/33.39 new_primPlusNat1(Zero, x0) 53.00/33.39 new_primMulNat3(Succ(x0), x1) 53.00/33.39 new_primPlusNat0(Succ(x0), Succ(x1)) 53.00/33.39 new_primCmpInt(Pos(Succ(x0)), Pos(x1)) 53.00/33.39 new_primMulNat2(Succ(x0)) 53.00/33.39 new_mkVBalBranch3Size_r(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11) 53.00/33.39 new_sizeFM(x0, x1, x2, x3, x4, x5, x6) 53.00/33.39 new_primPlusNat0(Succ(x0), Zero) 53.00/33.39 new_sr0(Pos(x0), Neg(x1)) 53.00/33.39 new_sr0(Neg(x0), Pos(x1)) 53.00/33.39 new_sr0(Neg(x0), Neg(x1)) 53.00/33.39 new_primCmpNat2(Zero, x0) 53.00/33.39 new_esEs0(GT) 53.00/33.39 new_primCmpInt(Neg(Zero), Neg(Succ(x0))) 53.00/33.39 new_primMulNat1(Succ(x0), Succ(x1)) 53.00/33.39 new_primMulNat1(Zero, Zero) 53.00/33.39 new_primMulNat1(Zero, Succ(x0)) 53.00/33.39 new_primCmpInt(Pos(Zero), Pos(Zero)) 53.00/33.39 new_primPlusNat0(Zero, Zero) 53.00/33.40 53.00/33.40 We have to consider all minimal (P,Q,R)-chains. 53.00/33.40 ---------------------------------------- 53.00/33.40 53.00/33.40 (53) UsableRulesProof (EQUIVALENT) 53.00/33.40 As all Q-normal forms are R-normal forms we are in the innermost case. Hence, by the usable rules processor [LPAR04] we can delete all non-usable rules [FROCOS05] from R. 53.00/33.40 ---------------------------------------- 53.00/33.40 53.00/33.40 (54) 53.00/33.40 Obligation: 53.00/33.40 Q DP problem: 53.00/33.40 The TRS P consists of the following rules: 53.00/33.40 53.00/33.40 new_mkVBalBranch3MkVBalBranch1(yuz12340, yuz12341, yuz12342, yuz12343, Branch(yuz123440, yuz123441, yuz123442, yuz123443, yuz123444), yuz12380, yuz12381, yuz12382, yuz12383, yuz12384, yuz1240, yuz1241, True, h, ba) -> new_mkVBalBranch3(yuz1240, yuz1241, yuz123440, yuz123441, yuz123442, yuz123443, yuz123444, yuz12380, yuz12381, yuz12382, yuz12383, yuz12384, h, ba) 53.00/33.40 new_mkVBalBranch3MkVBalBranch2(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz12380, yuz12381, yuz12382, Branch(yuz123830, yuz123831, yuz123832, yuz123833, yuz123834), yuz12384, yuz1240, yuz1241, True, h, ba) -> new_mkVBalBranch3MkVBalBranch2(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz123830, yuz123831, yuz123832, yuz123833, yuz123834, yuz1240, yuz1241, new_esEs0(new_primCmpInt(new_sr0(new_sIZE_RATIO, new_mkVBalBranch3Size_l(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz123830, yuz123831, yuz123832, yuz123833, yuz123834, h, ba)), new_mkVBalBranch3Size_r(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz123830, yuz123831, yuz123832, yuz123833, yuz123834, h, ba))), h, ba) 53.00/33.40 new_mkVBalBranch3MkVBalBranch2(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz12380, yuz12381, yuz12382, yuz12383, yuz12384, yuz1240, yuz1241, False, h, ba) -> new_mkVBalBranch3MkVBalBranch1(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz12380, yuz12381, yuz12382, yuz12383, yuz12384, yuz1240, yuz1241, new_esEs0(new_primCmpInt(new_sr1(new_mkVBalBranch3Size_r(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz12380, yuz12381, yuz12382, yuz12383, yuz12384, h, ba)), new_mkVBalBranch3Size_l(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz12380, yuz12381, yuz12382, yuz12383, yuz12384, h, ba))), h, ba) 53.00/33.40 new_mkVBalBranch3(yuz1240, yuz1241, yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz123830, yuz123831, yuz123832, yuz123833, yuz123834, h, ba) -> new_mkVBalBranch3MkVBalBranch2(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz123830, yuz123831, yuz123832, yuz123833, yuz123834, yuz1240, yuz1241, new_esEs0(new_primCmpInt(new_sr0(new_sIZE_RATIO, new_mkVBalBranch3Size_l(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz123830, yuz123831, yuz123832, yuz123833, yuz123834, h, ba)), new_mkVBalBranch3Size_r(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz123830, yuz123831, yuz123832, yuz123833, yuz123834, h, ba))), h, ba) 53.00/33.40 53.00/33.40 The TRS R consists of the following rules: 53.00/33.40 53.00/33.40 new_sIZE_RATIO -> Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))) 53.00/33.40 new_mkVBalBranch3Size_l(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz12380, yuz12381, yuz12382, yuz12383, yuz12384, h, ba) -> new_sizeFM(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, h, ba) 53.00/33.40 new_sr0(Neg(yuz6000), Neg(yuz4010)) -> Pos(new_primMulNat1(yuz6000, yuz4010)) 53.00/33.40 new_sr0(Pos(yuz6000), Pos(yuz4010)) -> Pos(new_primMulNat1(yuz6000, yuz4010)) 53.00/33.40 new_sr0(Pos(yuz6000), Neg(yuz4010)) -> Neg(new_primMulNat1(yuz6000, yuz4010)) 53.00/33.40 new_sr0(Neg(yuz6000), Pos(yuz4010)) -> Neg(new_primMulNat1(yuz6000, yuz4010)) 53.00/33.40 new_mkVBalBranch3Size_r(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz12380, yuz12381, yuz12382, yuz12383, yuz12384, h, ba) -> new_sizeFM(yuz12380, yuz12381, yuz12382, yuz12383, yuz12384, h, ba) 53.00/33.40 new_primCmpInt(Neg(Succ(yuz144000)), Pos(yuz14350)) -> LT 53.00/33.40 new_primCmpInt(Pos(Zero), Pos(Succ(yuz143500))) -> new_primCmpNat2(Zero, yuz143500) 53.00/33.40 new_primCmpInt(Neg(Succ(yuz144000)), Neg(yuz14350)) -> new_primCmpNat2(yuz14350, yuz144000) 53.00/33.40 new_primCmpInt(Neg(Zero), Neg(Succ(yuz143500))) -> new_primCmpNat0(yuz143500, Zero) 53.00/33.40 new_primCmpInt(Pos(Succ(yuz144000)), Pos(yuz14350)) -> new_primCmpNat0(yuz144000, yuz14350) 53.00/33.40 new_primCmpInt(Neg(Zero), Neg(Zero)) -> EQ 53.00/33.40 new_primCmpInt(Pos(Zero), Neg(Succ(yuz143500))) -> GT 53.00/33.40 new_primCmpInt(Neg(Zero), Pos(Succ(yuz143500))) -> LT 53.00/33.40 new_primCmpInt(Pos(Succ(yuz144000)), Neg(yuz14350)) -> GT 53.00/33.40 new_primCmpInt(Pos(Zero), Neg(Zero)) -> EQ 53.00/33.40 new_primCmpInt(Neg(Zero), Pos(Zero)) -> EQ 53.00/33.40 new_primCmpInt(Pos(Zero), Pos(Zero)) -> EQ 53.00/33.40 new_esEs0(EQ) -> False 53.00/33.40 new_esEs0(LT) -> True 53.00/33.40 new_esEs0(GT) -> False 53.00/33.40 new_primCmpNat0(yuz144000, Succ(yuz143500)) -> new_primCmpNat1(yuz144000, yuz143500) 53.00/33.40 new_primCmpNat0(yuz144000, Zero) -> GT 53.00/33.40 new_primCmpNat1(Zero, Zero) -> EQ 53.00/33.40 new_primCmpNat1(Succ(yuz2800), Zero) -> GT 53.00/33.40 new_primCmpNat1(Succ(yuz2800), Succ(yuz330000)) -> new_primCmpNat1(yuz2800, yuz330000) 53.00/33.40 new_primCmpNat1(Zero, Succ(yuz330000)) -> LT 53.00/33.40 new_primCmpNat2(Succ(yuz143500), yuz144000) -> new_primCmpNat1(yuz143500, yuz144000) 53.00/33.40 new_primCmpNat2(Zero, yuz144000) -> LT 53.00/33.40 new_sizeFM(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, h, ba) -> yuz12342 53.00/33.40 new_primMulNat1(Zero, Zero) -> Zero 53.00/33.40 new_primMulNat1(Succ(yuz60000), Zero) -> Zero 53.00/33.40 new_primMulNat1(Zero, Succ(yuz40100)) -> Zero 53.00/33.40 new_primMulNat1(Succ(yuz60000), Succ(yuz40100)) -> new_primPlusNat0(new_primMulNat1(yuz60000, Succ(yuz40100)), Succ(yuz40100)) 53.00/33.40 new_primPlusNat0(Zero, Succ(yuz601000)) -> Succ(yuz601000) 53.00/33.40 new_primPlusNat0(Succ(yuz11200), Succ(yuz601000)) -> Succ(Succ(new_primPlusNat0(yuz11200, yuz601000))) 53.00/33.40 new_primPlusNat0(Succ(yuz11200), Zero) -> Succ(yuz11200) 53.00/33.40 new_primPlusNat0(Zero, Zero) -> Zero 53.00/33.40 new_sr1(Pos(yuz14250)) -> Pos(new_primMulNat2(yuz14250)) 53.00/33.40 new_sr1(Neg(yuz14250)) -> Neg(new_primMulNat2(yuz14250)) 53.00/33.40 new_primMulNat2(Succ(yuz142500)) -> new_primPlusNat0(new_primMulNat3(Succ(Succ(Succ(Succ(Zero)))), yuz142500), Succ(yuz142500)) 53.00/33.40 new_primMulNat2(Zero) -> Zero 53.00/33.40 new_primMulNat3(Succ(yuz400000), yuz60100) -> new_primPlusNat1(new_primMulNat3(yuz400000, yuz60100), yuz60100) 53.00/33.40 new_primMulNat3(Zero, yuz60100) -> Zero 53.00/33.40 new_primPlusNat1(Zero, yuz60100) -> Succ(yuz60100) 53.00/33.40 new_primPlusNat1(Succ(yuz1120), yuz60100) -> Succ(Succ(new_primPlusNat0(yuz1120, yuz60100))) 53.00/33.40 53.00/33.40 The set Q consists of the following terms: 53.00/33.40 53.00/33.40 new_primCmpNat0(x0, Succ(x1)) 53.00/33.40 new_primCmpInt(Neg(Zero), Neg(Zero)) 53.00/33.40 new_sIZE_RATIO 53.00/33.40 new_primCmpInt(Pos(Zero), Neg(Succ(x0))) 53.00/33.40 new_primCmpInt(Neg(Zero), Pos(Succ(x0))) 53.00/33.40 new_primCmpInt(Pos(Zero), Pos(Succ(x0))) 53.00/33.40 new_primMulNat1(Succ(x0), Zero) 53.00/33.40 new_mkVBalBranch3Size_l(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11) 53.00/33.40 new_primCmpNat1(Succ(x0), Succ(x1)) 53.00/33.40 new_sr0(Pos(x0), Pos(x1)) 53.00/33.40 new_primCmpInt(Pos(Zero), Neg(Zero)) 53.00/33.40 new_primCmpInt(Neg(Zero), Pos(Zero)) 53.00/33.40 new_primCmpInt(Neg(Succ(x0)), Neg(x1)) 53.00/33.40 new_esEs0(LT) 53.00/33.40 new_primCmpNat1(Succ(x0), Zero) 53.00/33.40 new_compare(x0, x1) 53.00/33.40 new_sr1(Neg(x0)) 53.00/33.40 new_primMulNat2(Zero) 53.00/33.40 new_primCmpNat1(Zero, Succ(x0)) 53.00/33.40 new_primPlusNat0(Zero, Succ(x0)) 53.00/33.40 new_primCmpNat1(Zero, Zero) 53.00/33.40 new_primCmpInt(Neg(Succ(x0)), Pos(x1)) 53.00/33.40 new_primCmpNat2(Succ(x0), x1) 53.00/33.40 new_primCmpInt(Pos(Succ(x0)), Neg(x1)) 53.00/33.40 new_sr1(Pos(x0)) 53.00/33.40 new_esEs0(EQ) 53.00/33.40 new_primMulNat3(Zero, x0) 53.00/33.40 new_primCmpNat0(x0, Zero) 53.00/33.40 new_primPlusNat1(Succ(x0), x1) 53.00/33.40 new_primPlusNat1(Zero, x0) 53.00/33.40 new_primMulNat3(Succ(x0), x1) 53.00/33.40 new_primPlusNat0(Succ(x0), Succ(x1)) 53.00/33.40 new_primCmpInt(Pos(Succ(x0)), Pos(x1)) 53.00/33.40 new_primMulNat2(Succ(x0)) 53.00/33.40 new_mkVBalBranch3Size_r(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11) 53.00/33.40 new_sizeFM(x0, x1, x2, x3, x4, x5, x6) 53.00/33.40 new_primPlusNat0(Succ(x0), Zero) 53.00/33.40 new_sr0(Pos(x0), Neg(x1)) 53.00/33.40 new_sr0(Neg(x0), Pos(x1)) 53.00/33.40 new_sr0(Neg(x0), Neg(x1)) 53.00/33.40 new_primCmpNat2(Zero, x0) 53.00/33.40 new_esEs0(GT) 53.00/33.40 new_primCmpInt(Neg(Zero), Neg(Succ(x0))) 53.00/33.40 new_primMulNat1(Succ(x0), Succ(x1)) 53.00/33.40 new_primMulNat1(Zero, Zero) 53.00/33.40 new_primMulNat1(Zero, Succ(x0)) 53.00/33.40 new_primCmpInt(Pos(Zero), Pos(Zero)) 53.00/33.40 new_primPlusNat0(Zero, Zero) 53.00/33.40 53.00/33.40 We have to consider all minimal (P,Q,R)-chains. 53.00/33.40 ---------------------------------------- 53.00/33.40 53.00/33.40 (55) QReductionProof (EQUIVALENT) 53.00/33.40 We deleted the following terms from Q as each root-symbol of these terms does neither occur in P nor in R.[THIEMANN]. 53.00/33.40 53.00/33.40 new_compare(x0, x1) 53.00/33.40 53.00/33.40 53.00/33.40 ---------------------------------------- 53.00/33.40 53.00/33.40 (56) 53.00/33.40 Obligation: 53.00/33.40 Q DP problem: 53.00/33.40 The TRS P consists of the following rules: 53.00/33.40 53.00/33.40 new_mkVBalBranch3MkVBalBranch1(yuz12340, yuz12341, yuz12342, yuz12343, Branch(yuz123440, yuz123441, yuz123442, yuz123443, yuz123444), yuz12380, yuz12381, yuz12382, yuz12383, yuz12384, yuz1240, yuz1241, True, h, ba) -> new_mkVBalBranch3(yuz1240, yuz1241, yuz123440, yuz123441, yuz123442, yuz123443, yuz123444, yuz12380, yuz12381, yuz12382, yuz12383, yuz12384, h, ba) 53.00/33.40 new_mkVBalBranch3MkVBalBranch2(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz12380, yuz12381, yuz12382, Branch(yuz123830, yuz123831, yuz123832, yuz123833, yuz123834), yuz12384, yuz1240, yuz1241, True, h, ba) -> new_mkVBalBranch3MkVBalBranch2(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz123830, yuz123831, yuz123832, yuz123833, yuz123834, yuz1240, yuz1241, new_esEs0(new_primCmpInt(new_sr0(new_sIZE_RATIO, new_mkVBalBranch3Size_l(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz123830, yuz123831, yuz123832, yuz123833, yuz123834, h, ba)), new_mkVBalBranch3Size_r(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz123830, yuz123831, yuz123832, yuz123833, yuz123834, h, ba))), h, ba) 53.00/33.40 new_mkVBalBranch3MkVBalBranch2(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz12380, yuz12381, yuz12382, yuz12383, yuz12384, yuz1240, yuz1241, False, h, ba) -> new_mkVBalBranch3MkVBalBranch1(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz12380, yuz12381, yuz12382, yuz12383, yuz12384, yuz1240, yuz1241, new_esEs0(new_primCmpInt(new_sr1(new_mkVBalBranch3Size_r(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz12380, yuz12381, yuz12382, yuz12383, yuz12384, h, ba)), new_mkVBalBranch3Size_l(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz12380, yuz12381, yuz12382, yuz12383, yuz12384, h, ba))), h, ba) 53.00/33.40 new_mkVBalBranch3(yuz1240, yuz1241, yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz123830, yuz123831, yuz123832, yuz123833, yuz123834, h, ba) -> new_mkVBalBranch3MkVBalBranch2(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz123830, yuz123831, yuz123832, yuz123833, yuz123834, yuz1240, yuz1241, new_esEs0(new_primCmpInt(new_sr0(new_sIZE_RATIO, new_mkVBalBranch3Size_l(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz123830, yuz123831, yuz123832, yuz123833, yuz123834, h, ba)), new_mkVBalBranch3Size_r(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz123830, yuz123831, yuz123832, yuz123833, yuz123834, h, ba))), h, ba) 53.00/33.40 53.00/33.40 The TRS R consists of the following rules: 53.00/33.40 53.00/33.40 new_sIZE_RATIO -> Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))) 53.00/33.40 new_mkVBalBranch3Size_l(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz12380, yuz12381, yuz12382, yuz12383, yuz12384, h, ba) -> new_sizeFM(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, h, ba) 53.00/33.40 new_sr0(Neg(yuz6000), Neg(yuz4010)) -> Pos(new_primMulNat1(yuz6000, yuz4010)) 53.00/33.40 new_sr0(Pos(yuz6000), Pos(yuz4010)) -> Pos(new_primMulNat1(yuz6000, yuz4010)) 53.00/33.40 new_sr0(Pos(yuz6000), Neg(yuz4010)) -> Neg(new_primMulNat1(yuz6000, yuz4010)) 53.00/33.40 new_sr0(Neg(yuz6000), Pos(yuz4010)) -> Neg(new_primMulNat1(yuz6000, yuz4010)) 53.00/33.40 new_mkVBalBranch3Size_r(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz12380, yuz12381, yuz12382, yuz12383, yuz12384, h, ba) -> new_sizeFM(yuz12380, yuz12381, yuz12382, yuz12383, yuz12384, h, ba) 53.00/33.40 new_primCmpInt(Neg(Succ(yuz144000)), Pos(yuz14350)) -> LT 53.00/33.40 new_primCmpInt(Pos(Zero), Pos(Succ(yuz143500))) -> new_primCmpNat2(Zero, yuz143500) 53.00/33.40 new_primCmpInt(Neg(Succ(yuz144000)), Neg(yuz14350)) -> new_primCmpNat2(yuz14350, yuz144000) 53.00/33.40 new_primCmpInt(Neg(Zero), Neg(Succ(yuz143500))) -> new_primCmpNat0(yuz143500, Zero) 53.00/33.40 new_primCmpInt(Pos(Succ(yuz144000)), Pos(yuz14350)) -> new_primCmpNat0(yuz144000, yuz14350) 53.00/33.40 new_primCmpInt(Neg(Zero), Neg(Zero)) -> EQ 53.00/33.40 new_primCmpInt(Pos(Zero), Neg(Succ(yuz143500))) -> GT 53.00/33.40 new_primCmpInt(Neg(Zero), Pos(Succ(yuz143500))) -> LT 53.00/33.40 new_primCmpInt(Pos(Succ(yuz144000)), Neg(yuz14350)) -> GT 53.00/33.40 new_primCmpInt(Pos(Zero), Neg(Zero)) -> EQ 53.00/33.40 new_primCmpInt(Neg(Zero), Pos(Zero)) -> EQ 53.00/33.40 new_primCmpInt(Pos(Zero), Pos(Zero)) -> EQ 53.00/33.40 new_esEs0(EQ) -> False 53.00/33.40 new_esEs0(LT) -> True 53.00/33.40 new_esEs0(GT) -> False 53.00/33.40 new_primCmpNat0(yuz144000, Succ(yuz143500)) -> new_primCmpNat1(yuz144000, yuz143500) 53.00/33.40 new_primCmpNat0(yuz144000, Zero) -> GT 53.00/33.40 new_primCmpNat1(Zero, Zero) -> EQ 53.00/33.40 new_primCmpNat1(Succ(yuz2800), Zero) -> GT 53.00/33.40 new_primCmpNat1(Succ(yuz2800), Succ(yuz330000)) -> new_primCmpNat1(yuz2800, yuz330000) 53.00/33.40 new_primCmpNat1(Zero, Succ(yuz330000)) -> LT 53.00/33.40 new_primCmpNat2(Succ(yuz143500), yuz144000) -> new_primCmpNat1(yuz143500, yuz144000) 53.00/33.40 new_primCmpNat2(Zero, yuz144000) -> LT 53.00/33.40 new_sizeFM(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, h, ba) -> yuz12342 53.00/33.40 new_primMulNat1(Zero, Zero) -> Zero 53.00/33.40 new_primMulNat1(Succ(yuz60000), Zero) -> Zero 53.00/33.40 new_primMulNat1(Zero, Succ(yuz40100)) -> Zero 53.00/33.40 new_primMulNat1(Succ(yuz60000), Succ(yuz40100)) -> new_primPlusNat0(new_primMulNat1(yuz60000, Succ(yuz40100)), Succ(yuz40100)) 53.00/33.40 new_primPlusNat0(Zero, Succ(yuz601000)) -> Succ(yuz601000) 53.00/33.40 new_primPlusNat0(Succ(yuz11200), Succ(yuz601000)) -> Succ(Succ(new_primPlusNat0(yuz11200, yuz601000))) 53.00/33.40 new_primPlusNat0(Succ(yuz11200), Zero) -> Succ(yuz11200) 53.00/33.40 new_primPlusNat0(Zero, Zero) -> Zero 53.00/33.40 new_sr1(Pos(yuz14250)) -> Pos(new_primMulNat2(yuz14250)) 53.00/33.40 new_sr1(Neg(yuz14250)) -> Neg(new_primMulNat2(yuz14250)) 53.00/33.40 new_primMulNat2(Succ(yuz142500)) -> new_primPlusNat0(new_primMulNat3(Succ(Succ(Succ(Succ(Zero)))), yuz142500), Succ(yuz142500)) 53.00/33.40 new_primMulNat2(Zero) -> Zero 53.00/33.40 new_primMulNat3(Succ(yuz400000), yuz60100) -> new_primPlusNat1(new_primMulNat3(yuz400000, yuz60100), yuz60100) 53.00/33.40 new_primMulNat3(Zero, yuz60100) -> Zero 53.00/33.40 new_primPlusNat1(Zero, yuz60100) -> Succ(yuz60100) 53.00/33.40 new_primPlusNat1(Succ(yuz1120), yuz60100) -> Succ(Succ(new_primPlusNat0(yuz1120, yuz60100))) 53.00/33.40 53.00/33.40 The set Q consists of the following terms: 53.00/33.40 53.00/33.40 new_primCmpNat0(x0, Succ(x1)) 53.00/33.40 new_primCmpInt(Neg(Zero), Neg(Zero)) 53.00/33.40 new_sIZE_RATIO 53.00/33.40 new_primCmpInt(Pos(Zero), Neg(Succ(x0))) 53.00/33.40 new_primCmpInt(Neg(Zero), Pos(Succ(x0))) 53.00/33.40 new_primCmpInt(Pos(Zero), Pos(Succ(x0))) 53.00/33.40 new_primMulNat1(Succ(x0), Zero) 53.00/33.40 new_mkVBalBranch3Size_l(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11) 53.00/33.40 new_primCmpNat1(Succ(x0), Succ(x1)) 53.00/33.40 new_sr0(Pos(x0), Pos(x1)) 53.00/33.40 new_primCmpInt(Pos(Zero), Neg(Zero)) 53.00/33.40 new_primCmpInt(Neg(Zero), Pos(Zero)) 53.00/33.40 new_primCmpInt(Neg(Succ(x0)), Neg(x1)) 53.00/33.40 new_esEs0(LT) 53.00/33.40 new_primCmpNat1(Succ(x0), Zero) 53.00/33.40 new_sr1(Neg(x0)) 53.00/33.40 new_primMulNat2(Zero) 53.00/33.40 new_primCmpNat1(Zero, Succ(x0)) 53.00/33.40 new_primPlusNat0(Zero, Succ(x0)) 53.00/33.40 new_primCmpNat1(Zero, Zero) 53.00/33.40 new_primCmpInt(Neg(Succ(x0)), Pos(x1)) 53.00/33.40 new_primCmpNat2(Succ(x0), x1) 53.00/33.40 new_primCmpInt(Pos(Succ(x0)), Neg(x1)) 53.00/33.40 new_sr1(Pos(x0)) 53.00/33.40 new_esEs0(EQ) 53.00/33.40 new_primMulNat3(Zero, x0) 53.00/33.40 new_primCmpNat0(x0, Zero) 53.00/33.40 new_primPlusNat1(Succ(x0), x1) 53.00/33.40 new_primPlusNat1(Zero, x0) 53.00/33.40 new_primMulNat3(Succ(x0), x1) 53.00/33.40 new_primPlusNat0(Succ(x0), Succ(x1)) 53.00/33.40 new_primCmpInt(Pos(Succ(x0)), Pos(x1)) 53.00/33.40 new_primMulNat2(Succ(x0)) 53.00/33.40 new_mkVBalBranch3Size_r(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11) 53.00/33.40 new_sizeFM(x0, x1, x2, x3, x4, x5, x6) 53.00/33.40 new_primPlusNat0(Succ(x0), Zero) 53.00/33.40 new_sr0(Pos(x0), Neg(x1)) 53.00/33.40 new_sr0(Neg(x0), Pos(x1)) 53.00/33.40 new_sr0(Neg(x0), Neg(x1)) 53.00/33.40 new_primCmpNat2(Zero, x0) 53.00/33.40 new_esEs0(GT) 53.00/33.40 new_primCmpInt(Neg(Zero), Neg(Succ(x0))) 53.00/33.40 new_primMulNat1(Succ(x0), Succ(x1)) 53.00/33.40 new_primMulNat1(Zero, Zero) 53.00/33.40 new_primMulNat1(Zero, Succ(x0)) 53.00/33.40 new_primCmpInt(Pos(Zero), Pos(Zero)) 53.00/33.40 new_primPlusNat0(Zero, Zero) 53.00/33.40 53.00/33.40 We have to consider all minimal (P,Q,R)-chains. 53.00/33.40 ---------------------------------------- 53.00/33.40 53.00/33.40 (57) TransformationProof (EQUIVALENT) 53.00/33.40 By rewriting [LPAR04] the rule new_mkVBalBranch3MkVBalBranch2(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz12380, yuz12381, yuz12382, Branch(yuz123830, yuz123831, yuz123832, yuz123833, yuz123834), yuz12384, yuz1240, yuz1241, True, h, ba) -> new_mkVBalBranch3MkVBalBranch2(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz123830, yuz123831, yuz123832, yuz123833, yuz123834, yuz1240, yuz1241, new_esEs0(new_primCmpInt(new_sr0(new_sIZE_RATIO, new_mkVBalBranch3Size_l(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz123830, yuz123831, yuz123832, yuz123833, yuz123834, h, ba)), new_mkVBalBranch3Size_r(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz123830, yuz123831, yuz123832, yuz123833, yuz123834, h, ba))), h, ba) at position [12,0,0,0] we obtained the following new rules [LPAR04]: 53.00/33.40 53.00/33.40 (new_mkVBalBranch3MkVBalBranch2(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz12380, yuz12381, yuz12382, Branch(yuz123830, yuz123831, yuz123832, yuz123833, yuz123834), yuz12384, yuz1240, yuz1241, True, h, ba) -> new_mkVBalBranch3MkVBalBranch2(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz123830, yuz123831, yuz123832, yuz123833, yuz123834, yuz1240, yuz1241, new_esEs0(new_primCmpInt(new_sr0(Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), new_mkVBalBranch3Size_l(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz123830, yuz123831, yuz123832, yuz123833, yuz123834, h, ba)), new_mkVBalBranch3Size_r(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz123830, yuz123831, yuz123832, yuz123833, yuz123834, h, ba))), h, ba),new_mkVBalBranch3MkVBalBranch2(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz12380, yuz12381, yuz12382, Branch(yuz123830, yuz123831, yuz123832, yuz123833, yuz123834), yuz12384, yuz1240, yuz1241, True, h, ba) -> new_mkVBalBranch3MkVBalBranch2(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz123830, yuz123831, yuz123832, yuz123833, yuz123834, yuz1240, yuz1241, new_esEs0(new_primCmpInt(new_sr0(Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), new_mkVBalBranch3Size_l(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz123830, yuz123831, yuz123832, yuz123833, yuz123834, h, ba)), new_mkVBalBranch3Size_r(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz123830, yuz123831, yuz123832, yuz123833, yuz123834, h, ba))), h, ba)) 53.00/33.40 53.00/33.40 53.00/33.40 ---------------------------------------- 53.00/33.40 53.00/33.40 (58) 53.00/33.40 Obligation: 53.00/33.40 Q DP problem: 53.00/33.40 The TRS P consists of the following rules: 53.00/33.40 53.00/33.40 new_mkVBalBranch3MkVBalBranch1(yuz12340, yuz12341, yuz12342, yuz12343, Branch(yuz123440, yuz123441, yuz123442, yuz123443, yuz123444), yuz12380, yuz12381, yuz12382, yuz12383, yuz12384, yuz1240, yuz1241, True, h, ba) -> new_mkVBalBranch3(yuz1240, yuz1241, yuz123440, yuz123441, yuz123442, yuz123443, yuz123444, yuz12380, yuz12381, yuz12382, yuz12383, yuz12384, h, ba) 53.00/33.40 new_mkVBalBranch3MkVBalBranch2(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz12380, yuz12381, yuz12382, yuz12383, yuz12384, yuz1240, yuz1241, False, h, ba) -> new_mkVBalBranch3MkVBalBranch1(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz12380, yuz12381, yuz12382, yuz12383, yuz12384, yuz1240, yuz1241, new_esEs0(new_primCmpInt(new_sr1(new_mkVBalBranch3Size_r(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz12380, yuz12381, yuz12382, yuz12383, yuz12384, h, ba)), new_mkVBalBranch3Size_l(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz12380, yuz12381, yuz12382, yuz12383, yuz12384, h, ba))), h, ba) 53.00/33.40 new_mkVBalBranch3(yuz1240, yuz1241, yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz123830, yuz123831, yuz123832, yuz123833, yuz123834, h, ba) -> new_mkVBalBranch3MkVBalBranch2(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz123830, yuz123831, yuz123832, yuz123833, yuz123834, yuz1240, yuz1241, new_esEs0(new_primCmpInt(new_sr0(new_sIZE_RATIO, new_mkVBalBranch3Size_l(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz123830, yuz123831, yuz123832, yuz123833, yuz123834, h, ba)), new_mkVBalBranch3Size_r(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz123830, yuz123831, yuz123832, yuz123833, yuz123834, h, ba))), h, ba) 53.00/33.40 new_mkVBalBranch3MkVBalBranch2(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz12380, yuz12381, yuz12382, Branch(yuz123830, yuz123831, yuz123832, yuz123833, yuz123834), yuz12384, yuz1240, yuz1241, True, h, ba) -> new_mkVBalBranch3MkVBalBranch2(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz123830, yuz123831, yuz123832, yuz123833, yuz123834, yuz1240, yuz1241, new_esEs0(new_primCmpInt(new_sr0(Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), new_mkVBalBranch3Size_l(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz123830, yuz123831, yuz123832, yuz123833, yuz123834, h, ba)), new_mkVBalBranch3Size_r(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz123830, yuz123831, yuz123832, yuz123833, yuz123834, h, ba))), h, ba) 53.00/33.40 53.00/33.40 The TRS R consists of the following rules: 53.00/33.40 53.00/33.40 new_sIZE_RATIO -> Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))) 53.00/33.40 new_mkVBalBranch3Size_l(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz12380, yuz12381, yuz12382, yuz12383, yuz12384, h, ba) -> new_sizeFM(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, h, ba) 53.00/33.40 new_sr0(Neg(yuz6000), Neg(yuz4010)) -> Pos(new_primMulNat1(yuz6000, yuz4010)) 53.00/33.40 new_sr0(Pos(yuz6000), Pos(yuz4010)) -> Pos(new_primMulNat1(yuz6000, yuz4010)) 53.00/33.40 new_sr0(Pos(yuz6000), Neg(yuz4010)) -> Neg(new_primMulNat1(yuz6000, yuz4010)) 53.00/33.40 new_sr0(Neg(yuz6000), Pos(yuz4010)) -> Neg(new_primMulNat1(yuz6000, yuz4010)) 53.00/33.40 new_mkVBalBranch3Size_r(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz12380, yuz12381, yuz12382, yuz12383, yuz12384, h, ba) -> new_sizeFM(yuz12380, yuz12381, yuz12382, yuz12383, yuz12384, h, ba) 53.00/33.40 new_primCmpInt(Neg(Succ(yuz144000)), Pos(yuz14350)) -> LT 53.00/33.40 new_primCmpInt(Pos(Zero), Pos(Succ(yuz143500))) -> new_primCmpNat2(Zero, yuz143500) 53.00/33.40 new_primCmpInt(Neg(Succ(yuz144000)), Neg(yuz14350)) -> new_primCmpNat2(yuz14350, yuz144000) 53.00/33.40 new_primCmpInt(Neg(Zero), Neg(Succ(yuz143500))) -> new_primCmpNat0(yuz143500, Zero) 53.00/33.40 new_primCmpInt(Pos(Succ(yuz144000)), Pos(yuz14350)) -> new_primCmpNat0(yuz144000, yuz14350) 53.00/33.40 new_primCmpInt(Neg(Zero), Neg(Zero)) -> EQ 53.00/33.40 new_primCmpInt(Pos(Zero), Neg(Succ(yuz143500))) -> GT 53.00/33.40 new_primCmpInt(Neg(Zero), Pos(Succ(yuz143500))) -> LT 53.00/33.40 new_primCmpInt(Pos(Succ(yuz144000)), Neg(yuz14350)) -> GT 53.00/33.40 new_primCmpInt(Pos(Zero), Neg(Zero)) -> EQ 53.00/33.40 new_primCmpInt(Neg(Zero), Pos(Zero)) -> EQ 53.00/33.40 new_primCmpInt(Pos(Zero), Pos(Zero)) -> EQ 53.00/33.40 new_esEs0(EQ) -> False 53.00/33.40 new_esEs0(LT) -> True 53.00/33.40 new_esEs0(GT) -> False 53.00/33.40 new_primCmpNat0(yuz144000, Succ(yuz143500)) -> new_primCmpNat1(yuz144000, yuz143500) 53.00/33.40 new_primCmpNat0(yuz144000, Zero) -> GT 53.00/33.40 new_primCmpNat1(Zero, Zero) -> EQ 53.00/33.40 new_primCmpNat1(Succ(yuz2800), Zero) -> GT 53.00/33.40 new_primCmpNat1(Succ(yuz2800), Succ(yuz330000)) -> new_primCmpNat1(yuz2800, yuz330000) 53.00/33.40 new_primCmpNat1(Zero, Succ(yuz330000)) -> LT 53.00/33.40 new_primCmpNat2(Succ(yuz143500), yuz144000) -> new_primCmpNat1(yuz143500, yuz144000) 53.00/33.40 new_primCmpNat2(Zero, yuz144000) -> LT 53.00/33.40 new_sizeFM(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, h, ba) -> yuz12342 53.00/33.40 new_primMulNat1(Zero, Zero) -> Zero 53.00/33.40 new_primMulNat1(Succ(yuz60000), Zero) -> Zero 53.00/33.40 new_primMulNat1(Zero, Succ(yuz40100)) -> Zero 53.00/33.40 new_primMulNat1(Succ(yuz60000), Succ(yuz40100)) -> new_primPlusNat0(new_primMulNat1(yuz60000, Succ(yuz40100)), Succ(yuz40100)) 53.00/33.40 new_primPlusNat0(Zero, Succ(yuz601000)) -> Succ(yuz601000) 53.00/33.40 new_primPlusNat0(Succ(yuz11200), Succ(yuz601000)) -> Succ(Succ(new_primPlusNat0(yuz11200, yuz601000))) 53.00/33.40 new_primPlusNat0(Succ(yuz11200), Zero) -> Succ(yuz11200) 53.00/33.40 new_primPlusNat0(Zero, Zero) -> Zero 53.00/33.40 new_sr1(Pos(yuz14250)) -> Pos(new_primMulNat2(yuz14250)) 53.00/33.40 new_sr1(Neg(yuz14250)) -> Neg(new_primMulNat2(yuz14250)) 53.00/33.40 new_primMulNat2(Succ(yuz142500)) -> new_primPlusNat0(new_primMulNat3(Succ(Succ(Succ(Succ(Zero)))), yuz142500), Succ(yuz142500)) 53.00/33.40 new_primMulNat2(Zero) -> Zero 53.00/33.40 new_primMulNat3(Succ(yuz400000), yuz60100) -> new_primPlusNat1(new_primMulNat3(yuz400000, yuz60100), yuz60100) 53.00/33.40 new_primMulNat3(Zero, yuz60100) -> Zero 53.00/33.40 new_primPlusNat1(Zero, yuz60100) -> Succ(yuz60100) 53.00/33.40 new_primPlusNat1(Succ(yuz1120), yuz60100) -> Succ(Succ(new_primPlusNat0(yuz1120, yuz60100))) 53.00/33.40 53.00/33.40 The set Q consists of the following terms: 53.00/33.40 53.00/33.40 new_primCmpNat0(x0, Succ(x1)) 53.00/33.40 new_primCmpInt(Neg(Zero), Neg(Zero)) 53.00/33.40 new_sIZE_RATIO 53.00/33.40 new_primCmpInt(Pos(Zero), Neg(Succ(x0))) 53.00/33.40 new_primCmpInt(Neg(Zero), Pos(Succ(x0))) 53.00/33.40 new_primCmpInt(Pos(Zero), Pos(Succ(x0))) 53.00/33.40 new_primMulNat1(Succ(x0), Zero) 53.00/33.40 new_mkVBalBranch3Size_l(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11) 53.00/33.40 new_primCmpNat1(Succ(x0), Succ(x1)) 53.00/33.40 new_sr0(Pos(x0), Pos(x1)) 53.00/33.40 new_primCmpInt(Pos(Zero), Neg(Zero)) 53.00/33.40 new_primCmpInt(Neg(Zero), Pos(Zero)) 53.00/33.40 new_primCmpInt(Neg(Succ(x0)), Neg(x1)) 53.00/33.40 new_esEs0(LT) 53.00/33.40 new_primCmpNat1(Succ(x0), Zero) 53.00/33.40 new_sr1(Neg(x0)) 53.00/33.40 new_primMulNat2(Zero) 53.00/33.40 new_primCmpNat1(Zero, Succ(x0)) 53.00/33.40 new_primPlusNat0(Zero, Succ(x0)) 53.00/33.40 new_primCmpNat1(Zero, Zero) 53.00/33.40 new_primCmpInt(Neg(Succ(x0)), Pos(x1)) 53.00/33.40 new_primCmpNat2(Succ(x0), x1) 53.00/33.40 new_primCmpInt(Pos(Succ(x0)), Neg(x1)) 53.00/33.40 new_sr1(Pos(x0)) 53.00/33.40 new_esEs0(EQ) 53.00/33.40 new_primMulNat3(Zero, x0) 53.00/33.40 new_primCmpNat0(x0, Zero) 53.00/33.40 new_primPlusNat1(Succ(x0), x1) 53.00/33.40 new_primPlusNat1(Zero, x0) 53.00/33.40 new_primMulNat3(Succ(x0), x1) 53.00/33.40 new_primPlusNat0(Succ(x0), Succ(x1)) 53.00/33.40 new_primCmpInt(Pos(Succ(x0)), Pos(x1)) 53.00/33.40 new_primMulNat2(Succ(x0)) 53.00/33.40 new_mkVBalBranch3Size_r(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11) 53.00/33.40 new_sizeFM(x0, x1, x2, x3, x4, x5, x6) 53.00/33.40 new_primPlusNat0(Succ(x0), Zero) 53.00/33.40 new_sr0(Pos(x0), Neg(x1)) 53.00/33.40 new_sr0(Neg(x0), Pos(x1)) 53.00/33.40 new_sr0(Neg(x0), Neg(x1)) 53.00/33.40 new_primCmpNat2(Zero, x0) 53.00/33.40 new_esEs0(GT) 53.00/33.40 new_primCmpInt(Neg(Zero), Neg(Succ(x0))) 53.00/33.40 new_primMulNat1(Succ(x0), Succ(x1)) 53.00/33.40 new_primMulNat1(Zero, Zero) 53.00/33.40 new_primMulNat1(Zero, Succ(x0)) 53.00/33.40 new_primCmpInt(Pos(Zero), Pos(Zero)) 53.00/33.40 new_primPlusNat0(Zero, Zero) 53.00/33.40 53.00/33.40 We have to consider all minimal (P,Q,R)-chains. 53.00/33.40 ---------------------------------------- 53.00/33.40 53.00/33.40 (59) TransformationProof (EQUIVALENT) 53.00/33.40 By rewriting [LPAR04] the rule new_mkVBalBranch3MkVBalBranch2(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz12380, yuz12381, yuz12382, yuz12383, yuz12384, yuz1240, yuz1241, False, h, ba) -> new_mkVBalBranch3MkVBalBranch1(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz12380, yuz12381, yuz12382, yuz12383, yuz12384, yuz1240, yuz1241, new_esEs0(new_primCmpInt(new_sr1(new_mkVBalBranch3Size_r(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz12380, yuz12381, yuz12382, yuz12383, yuz12384, h, ba)), new_mkVBalBranch3Size_l(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz12380, yuz12381, yuz12382, yuz12383, yuz12384, h, ba))), h, ba) at position [12,0,0,0] we obtained the following new rules [LPAR04]: 53.00/33.40 53.00/33.40 (new_mkVBalBranch3MkVBalBranch2(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz12380, yuz12381, yuz12382, yuz12383, yuz12384, yuz1240, yuz1241, False, h, ba) -> new_mkVBalBranch3MkVBalBranch1(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz12380, yuz12381, yuz12382, yuz12383, yuz12384, yuz1240, yuz1241, new_esEs0(new_primCmpInt(new_sr1(new_sizeFM(yuz12380, yuz12381, yuz12382, yuz12383, yuz12384, h, ba)), new_mkVBalBranch3Size_l(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz12380, yuz12381, yuz12382, yuz12383, yuz12384, h, ba))), h, ba),new_mkVBalBranch3MkVBalBranch2(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz12380, yuz12381, yuz12382, yuz12383, yuz12384, yuz1240, yuz1241, False, h, ba) -> new_mkVBalBranch3MkVBalBranch1(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz12380, yuz12381, yuz12382, yuz12383, yuz12384, yuz1240, yuz1241, new_esEs0(new_primCmpInt(new_sr1(new_sizeFM(yuz12380, yuz12381, yuz12382, yuz12383, yuz12384, h, ba)), new_mkVBalBranch3Size_l(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz12380, yuz12381, yuz12382, yuz12383, yuz12384, h, ba))), h, ba)) 53.00/33.40 53.00/33.40 53.00/33.40 ---------------------------------------- 53.00/33.40 53.00/33.40 (60) 53.00/33.40 Obligation: 53.00/33.40 Q DP problem: 53.00/33.40 The TRS P consists of the following rules: 53.00/33.40 53.00/33.40 new_mkVBalBranch3MkVBalBranch1(yuz12340, yuz12341, yuz12342, yuz12343, Branch(yuz123440, yuz123441, yuz123442, yuz123443, yuz123444), yuz12380, yuz12381, yuz12382, yuz12383, yuz12384, yuz1240, yuz1241, True, h, ba) -> new_mkVBalBranch3(yuz1240, yuz1241, yuz123440, yuz123441, yuz123442, yuz123443, yuz123444, yuz12380, yuz12381, yuz12382, yuz12383, yuz12384, h, ba) 53.00/33.40 new_mkVBalBranch3(yuz1240, yuz1241, yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz123830, yuz123831, yuz123832, yuz123833, yuz123834, h, ba) -> new_mkVBalBranch3MkVBalBranch2(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz123830, yuz123831, yuz123832, yuz123833, yuz123834, yuz1240, yuz1241, new_esEs0(new_primCmpInt(new_sr0(new_sIZE_RATIO, new_mkVBalBranch3Size_l(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz123830, yuz123831, yuz123832, yuz123833, yuz123834, h, ba)), new_mkVBalBranch3Size_r(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz123830, yuz123831, yuz123832, yuz123833, yuz123834, h, ba))), h, ba) 53.00/33.40 new_mkVBalBranch3MkVBalBranch2(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz12380, yuz12381, yuz12382, Branch(yuz123830, yuz123831, yuz123832, yuz123833, yuz123834), yuz12384, yuz1240, yuz1241, True, h, ba) -> new_mkVBalBranch3MkVBalBranch2(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz123830, yuz123831, yuz123832, yuz123833, yuz123834, yuz1240, yuz1241, new_esEs0(new_primCmpInt(new_sr0(Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), new_mkVBalBranch3Size_l(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz123830, yuz123831, yuz123832, yuz123833, yuz123834, h, ba)), new_mkVBalBranch3Size_r(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz123830, yuz123831, yuz123832, yuz123833, yuz123834, h, ba))), h, ba) 53.00/33.40 new_mkVBalBranch3MkVBalBranch2(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz12380, yuz12381, yuz12382, yuz12383, yuz12384, yuz1240, yuz1241, False, h, ba) -> new_mkVBalBranch3MkVBalBranch1(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz12380, yuz12381, yuz12382, yuz12383, yuz12384, yuz1240, yuz1241, new_esEs0(new_primCmpInt(new_sr1(new_sizeFM(yuz12380, yuz12381, yuz12382, yuz12383, yuz12384, h, ba)), new_mkVBalBranch3Size_l(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz12380, yuz12381, yuz12382, yuz12383, yuz12384, h, ba))), h, ba) 53.00/33.40 53.00/33.40 The TRS R consists of the following rules: 53.00/33.40 53.00/33.40 new_sIZE_RATIO -> Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))) 53.00/33.40 new_mkVBalBranch3Size_l(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz12380, yuz12381, yuz12382, yuz12383, yuz12384, h, ba) -> new_sizeFM(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, h, ba) 53.00/33.40 new_sr0(Neg(yuz6000), Neg(yuz4010)) -> Pos(new_primMulNat1(yuz6000, yuz4010)) 53.00/33.40 new_sr0(Pos(yuz6000), Pos(yuz4010)) -> Pos(new_primMulNat1(yuz6000, yuz4010)) 53.00/33.40 new_sr0(Pos(yuz6000), Neg(yuz4010)) -> Neg(new_primMulNat1(yuz6000, yuz4010)) 53.00/33.40 new_sr0(Neg(yuz6000), Pos(yuz4010)) -> Neg(new_primMulNat1(yuz6000, yuz4010)) 53.00/33.40 new_mkVBalBranch3Size_r(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz12380, yuz12381, yuz12382, yuz12383, yuz12384, h, ba) -> new_sizeFM(yuz12380, yuz12381, yuz12382, yuz12383, yuz12384, h, ba) 53.00/33.40 new_primCmpInt(Neg(Succ(yuz144000)), Pos(yuz14350)) -> LT 53.00/33.40 new_primCmpInt(Pos(Zero), Pos(Succ(yuz143500))) -> new_primCmpNat2(Zero, yuz143500) 53.00/33.40 new_primCmpInt(Neg(Succ(yuz144000)), Neg(yuz14350)) -> new_primCmpNat2(yuz14350, yuz144000) 53.00/33.40 new_primCmpInt(Neg(Zero), Neg(Succ(yuz143500))) -> new_primCmpNat0(yuz143500, Zero) 53.00/33.40 new_primCmpInt(Pos(Succ(yuz144000)), Pos(yuz14350)) -> new_primCmpNat0(yuz144000, yuz14350) 53.00/33.40 new_primCmpInt(Neg(Zero), Neg(Zero)) -> EQ 53.00/33.40 new_primCmpInt(Pos(Zero), Neg(Succ(yuz143500))) -> GT 53.00/33.40 new_primCmpInt(Neg(Zero), Pos(Succ(yuz143500))) -> LT 53.00/33.40 new_primCmpInt(Pos(Succ(yuz144000)), Neg(yuz14350)) -> GT 53.00/33.40 new_primCmpInt(Pos(Zero), Neg(Zero)) -> EQ 53.00/33.40 new_primCmpInt(Neg(Zero), Pos(Zero)) -> EQ 53.00/33.40 new_primCmpInt(Pos(Zero), Pos(Zero)) -> EQ 53.00/33.40 new_esEs0(EQ) -> False 53.00/33.40 new_esEs0(LT) -> True 53.00/33.40 new_esEs0(GT) -> False 53.00/33.40 new_primCmpNat0(yuz144000, Succ(yuz143500)) -> new_primCmpNat1(yuz144000, yuz143500) 53.00/33.40 new_primCmpNat0(yuz144000, Zero) -> GT 53.00/33.40 new_primCmpNat1(Zero, Zero) -> EQ 53.00/33.40 new_primCmpNat1(Succ(yuz2800), Zero) -> GT 53.00/33.40 new_primCmpNat1(Succ(yuz2800), Succ(yuz330000)) -> new_primCmpNat1(yuz2800, yuz330000) 53.00/33.40 new_primCmpNat1(Zero, Succ(yuz330000)) -> LT 53.00/33.40 new_primCmpNat2(Succ(yuz143500), yuz144000) -> new_primCmpNat1(yuz143500, yuz144000) 53.00/33.40 new_primCmpNat2(Zero, yuz144000) -> LT 53.00/33.40 new_sizeFM(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, h, ba) -> yuz12342 53.00/33.40 new_primMulNat1(Zero, Zero) -> Zero 53.00/33.40 new_primMulNat1(Succ(yuz60000), Zero) -> Zero 53.00/33.40 new_primMulNat1(Zero, Succ(yuz40100)) -> Zero 53.00/33.40 new_primMulNat1(Succ(yuz60000), Succ(yuz40100)) -> new_primPlusNat0(new_primMulNat1(yuz60000, Succ(yuz40100)), Succ(yuz40100)) 53.00/33.40 new_primPlusNat0(Zero, Succ(yuz601000)) -> Succ(yuz601000) 53.00/33.40 new_primPlusNat0(Succ(yuz11200), Succ(yuz601000)) -> Succ(Succ(new_primPlusNat0(yuz11200, yuz601000))) 53.00/33.40 new_primPlusNat0(Succ(yuz11200), Zero) -> Succ(yuz11200) 53.00/33.40 new_primPlusNat0(Zero, Zero) -> Zero 53.00/33.40 new_sr1(Pos(yuz14250)) -> Pos(new_primMulNat2(yuz14250)) 53.00/33.40 new_sr1(Neg(yuz14250)) -> Neg(new_primMulNat2(yuz14250)) 53.00/33.40 new_primMulNat2(Succ(yuz142500)) -> new_primPlusNat0(new_primMulNat3(Succ(Succ(Succ(Succ(Zero)))), yuz142500), Succ(yuz142500)) 53.00/33.40 new_primMulNat2(Zero) -> Zero 53.00/33.40 new_primMulNat3(Succ(yuz400000), yuz60100) -> new_primPlusNat1(new_primMulNat3(yuz400000, yuz60100), yuz60100) 53.00/33.40 new_primMulNat3(Zero, yuz60100) -> Zero 53.00/33.40 new_primPlusNat1(Zero, yuz60100) -> Succ(yuz60100) 53.00/33.40 new_primPlusNat1(Succ(yuz1120), yuz60100) -> Succ(Succ(new_primPlusNat0(yuz1120, yuz60100))) 53.00/33.40 53.00/33.40 The set Q consists of the following terms: 53.00/33.40 53.00/33.40 new_primCmpNat0(x0, Succ(x1)) 53.00/33.40 new_primCmpInt(Neg(Zero), Neg(Zero)) 53.00/33.40 new_sIZE_RATIO 53.00/33.40 new_primCmpInt(Pos(Zero), Neg(Succ(x0))) 53.00/33.40 new_primCmpInt(Neg(Zero), Pos(Succ(x0))) 53.00/33.40 new_primCmpInt(Pos(Zero), Pos(Succ(x0))) 53.00/33.40 new_primMulNat1(Succ(x0), Zero) 53.00/33.40 new_mkVBalBranch3Size_l(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11) 53.00/33.40 new_primCmpNat1(Succ(x0), Succ(x1)) 53.00/33.40 new_sr0(Pos(x0), Pos(x1)) 53.00/33.40 new_primCmpInt(Pos(Zero), Neg(Zero)) 53.00/33.40 new_primCmpInt(Neg(Zero), Pos(Zero)) 53.00/33.40 new_primCmpInt(Neg(Succ(x0)), Neg(x1)) 53.00/33.40 new_esEs0(LT) 53.00/33.40 new_primCmpNat1(Succ(x0), Zero) 53.00/33.40 new_sr1(Neg(x0)) 53.00/33.40 new_primMulNat2(Zero) 53.00/33.40 new_primCmpNat1(Zero, Succ(x0)) 53.00/33.40 new_primPlusNat0(Zero, Succ(x0)) 53.00/33.40 new_primCmpNat1(Zero, Zero) 53.00/33.40 new_primCmpInt(Neg(Succ(x0)), Pos(x1)) 53.00/33.40 new_primCmpNat2(Succ(x0), x1) 53.00/33.40 new_primCmpInt(Pos(Succ(x0)), Neg(x1)) 53.00/33.40 new_sr1(Pos(x0)) 53.00/33.40 new_esEs0(EQ) 53.00/33.40 new_primMulNat3(Zero, x0) 53.00/33.40 new_primCmpNat0(x0, Zero) 53.00/33.40 new_primPlusNat1(Succ(x0), x1) 53.00/33.40 new_primPlusNat1(Zero, x0) 53.00/33.40 new_primMulNat3(Succ(x0), x1) 53.00/33.40 new_primPlusNat0(Succ(x0), Succ(x1)) 53.00/33.40 new_primCmpInt(Pos(Succ(x0)), Pos(x1)) 53.00/33.40 new_primMulNat2(Succ(x0)) 53.00/33.40 new_mkVBalBranch3Size_r(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11) 53.00/33.40 new_sizeFM(x0, x1, x2, x3, x4, x5, x6) 53.00/33.40 new_primPlusNat0(Succ(x0), Zero) 53.00/33.40 new_sr0(Pos(x0), Neg(x1)) 53.00/33.40 new_sr0(Neg(x0), Pos(x1)) 53.00/33.40 new_sr0(Neg(x0), Neg(x1)) 53.00/33.40 new_primCmpNat2(Zero, x0) 53.00/33.40 new_esEs0(GT) 53.00/33.40 new_primCmpInt(Neg(Zero), Neg(Succ(x0))) 53.00/33.40 new_primMulNat1(Succ(x0), Succ(x1)) 53.00/33.40 new_primMulNat1(Zero, Zero) 53.00/33.40 new_primMulNat1(Zero, Succ(x0)) 53.00/33.40 new_primCmpInt(Pos(Zero), Pos(Zero)) 53.00/33.40 new_primPlusNat0(Zero, Zero) 53.00/33.40 53.00/33.40 We have to consider all minimal (P,Q,R)-chains. 53.00/33.40 ---------------------------------------- 53.00/33.40 53.00/33.40 (61) TransformationProof (EQUIVALENT) 53.00/33.40 By rewriting [LPAR04] the rule new_mkVBalBranch3(yuz1240, yuz1241, yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz123830, yuz123831, yuz123832, yuz123833, yuz123834, h, ba) -> new_mkVBalBranch3MkVBalBranch2(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz123830, yuz123831, yuz123832, yuz123833, yuz123834, yuz1240, yuz1241, new_esEs0(new_primCmpInt(new_sr0(new_sIZE_RATIO, new_mkVBalBranch3Size_l(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz123830, yuz123831, yuz123832, yuz123833, yuz123834, h, ba)), new_mkVBalBranch3Size_r(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz123830, yuz123831, yuz123832, yuz123833, yuz123834, h, ba))), h, ba) at position [12,0,0,0] we obtained the following new rules [LPAR04]: 53.00/33.40 53.00/33.40 (new_mkVBalBranch3(yuz1240, yuz1241, yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz123830, yuz123831, yuz123832, yuz123833, yuz123834, h, ba) -> new_mkVBalBranch3MkVBalBranch2(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz123830, yuz123831, yuz123832, yuz123833, yuz123834, yuz1240, yuz1241, new_esEs0(new_primCmpInt(new_sr0(Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), new_mkVBalBranch3Size_l(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz123830, yuz123831, yuz123832, yuz123833, yuz123834, h, ba)), new_mkVBalBranch3Size_r(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz123830, yuz123831, yuz123832, yuz123833, yuz123834, h, ba))), h, ba),new_mkVBalBranch3(yuz1240, yuz1241, yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz123830, yuz123831, yuz123832, yuz123833, yuz123834, h, ba) -> new_mkVBalBranch3MkVBalBranch2(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz123830, yuz123831, yuz123832, yuz123833, yuz123834, yuz1240, yuz1241, new_esEs0(new_primCmpInt(new_sr0(Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), new_mkVBalBranch3Size_l(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz123830, yuz123831, yuz123832, yuz123833, yuz123834, h, ba)), new_mkVBalBranch3Size_r(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz123830, yuz123831, yuz123832, yuz123833, yuz123834, h, ba))), h, ba)) 53.00/33.40 53.00/33.40 53.00/33.40 ---------------------------------------- 53.00/33.40 53.00/33.40 (62) 53.00/33.40 Obligation: 53.00/33.40 Q DP problem: 53.00/33.40 The TRS P consists of the following rules: 53.00/33.40 53.00/33.40 new_mkVBalBranch3MkVBalBranch1(yuz12340, yuz12341, yuz12342, yuz12343, Branch(yuz123440, yuz123441, yuz123442, yuz123443, yuz123444), yuz12380, yuz12381, yuz12382, yuz12383, yuz12384, yuz1240, yuz1241, True, h, ba) -> new_mkVBalBranch3(yuz1240, yuz1241, yuz123440, yuz123441, yuz123442, yuz123443, yuz123444, yuz12380, yuz12381, yuz12382, yuz12383, yuz12384, h, ba) 53.00/33.40 new_mkVBalBranch3MkVBalBranch2(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz12380, yuz12381, yuz12382, Branch(yuz123830, yuz123831, yuz123832, yuz123833, yuz123834), yuz12384, yuz1240, yuz1241, True, h, ba) -> new_mkVBalBranch3MkVBalBranch2(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz123830, yuz123831, yuz123832, yuz123833, yuz123834, yuz1240, yuz1241, new_esEs0(new_primCmpInt(new_sr0(Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), new_mkVBalBranch3Size_l(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz123830, yuz123831, yuz123832, yuz123833, yuz123834, h, ba)), new_mkVBalBranch3Size_r(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz123830, yuz123831, yuz123832, yuz123833, yuz123834, h, ba))), h, ba) 53.00/33.40 new_mkVBalBranch3MkVBalBranch2(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz12380, yuz12381, yuz12382, yuz12383, yuz12384, yuz1240, yuz1241, False, h, ba) -> new_mkVBalBranch3MkVBalBranch1(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz12380, yuz12381, yuz12382, yuz12383, yuz12384, yuz1240, yuz1241, new_esEs0(new_primCmpInt(new_sr1(new_sizeFM(yuz12380, yuz12381, yuz12382, yuz12383, yuz12384, h, ba)), new_mkVBalBranch3Size_l(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz12380, yuz12381, yuz12382, yuz12383, yuz12384, h, ba))), h, ba) 53.00/33.40 new_mkVBalBranch3(yuz1240, yuz1241, yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz123830, yuz123831, yuz123832, yuz123833, yuz123834, h, ba) -> new_mkVBalBranch3MkVBalBranch2(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz123830, yuz123831, yuz123832, yuz123833, yuz123834, yuz1240, yuz1241, new_esEs0(new_primCmpInt(new_sr0(Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), new_mkVBalBranch3Size_l(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz123830, yuz123831, yuz123832, yuz123833, yuz123834, h, ba)), new_mkVBalBranch3Size_r(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz123830, yuz123831, yuz123832, yuz123833, yuz123834, h, ba))), h, ba) 53.00/33.40 53.00/33.40 The TRS R consists of the following rules: 53.00/33.40 53.00/33.40 new_sIZE_RATIO -> Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))) 53.00/33.40 new_mkVBalBranch3Size_l(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz12380, yuz12381, yuz12382, yuz12383, yuz12384, h, ba) -> new_sizeFM(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, h, ba) 53.00/33.40 new_sr0(Neg(yuz6000), Neg(yuz4010)) -> Pos(new_primMulNat1(yuz6000, yuz4010)) 53.00/33.40 new_sr0(Pos(yuz6000), Pos(yuz4010)) -> Pos(new_primMulNat1(yuz6000, yuz4010)) 53.00/33.40 new_sr0(Pos(yuz6000), Neg(yuz4010)) -> Neg(new_primMulNat1(yuz6000, yuz4010)) 53.00/33.40 new_sr0(Neg(yuz6000), Pos(yuz4010)) -> Neg(new_primMulNat1(yuz6000, yuz4010)) 53.00/33.40 new_mkVBalBranch3Size_r(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz12380, yuz12381, yuz12382, yuz12383, yuz12384, h, ba) -> new_sizeFM(yuz12380, yuz12381, yuz12382, yuz12383, yuz12384, h, ba) 53.00/33.40 new_primCmpInt(Neg(Succ(yuz144000)), Pos(yuz14350)) -> LT 53.00/33.40 new_primCmpInt(Pos(Zero), Pos(Succ(yuz143500))) -> new_primCmpNat2(Zero, yuz143500) 53.00/33.40 new_primCmpInt(Neg(Succ(yuz144000)), Neg(yuz14350)) -> new_primCmpNat2(yuz14350, yuz144000) 53.00/33.40 new_primCmpInt(Neg(Zero), Neg(Succ(yuz143500))) -> new_primCmpNat0(yuz143500, Zero) 53.00/33.40 new_primCmpInt(Pos(Succ(yuz144000)), Pos(yuz14350)) -> new_primCmpNat0(yuz144000, yuz14350) 53.00/33.40 new_primCmpInt(Neg(Zero), Neg(Zero)) -> EQ 53.00/33.40 new_primCmpInt(Pos(Zero), Neg(Succ(yuz143500))) -> GT 53.00/33.40 new_primCmpInt(Neg(Zero), Pos(Succ(yuz143500))) -> LT 53.00/33.40 new_primCmpInt(Pos(Succ(yuz144000)), Neg(yuz14350)) -> GT 53.00/33.40 new_primCmpInt(Pos(Zero), Neg(Zero)) -> EQ 53.00/33.40 new_primCmpInt(Neg(Zero), Pos(Zero)) -> EQ 53.00/33.40 new_primCmpInt(Pos(Zero), Pos(Zero)) -> EQ 53.00/33.40 new_esEs0(EQ) -> False 53.00/33.40 new_esEs0(LT) -> True 53.00/33.40 new_esEs0(GT) -> False 53.00/33.40 new_primCmpNat0(yuz144000, Succ(yuz143500)) -> new_primCmpNat1(yuz144000, yuz143500) 53.00/33.40 new_primCmpNat0(yuz144000, Zero) -> GT 53.00/33.40 new_primCmpNat1(Zero, Zero) -> EQ 53.00/33.40 new_primCmpNat1(Succ(yuz2800), Zero) -> GT 53.00/33.40 new_primCmpNat1(Succ(yuz2800), Succ(yuz330000)) -> new_primCmpNat1(yuz2800, yuz330000) 53.00/33.40 new_primCmpNat1(Zero, Succ(yuz330000)) -> LT 53.00/33.40 new_primCmpNat2(Succ(yuz143500), yuz144000) -> new_primCmpNat1(yuz143500, yuz144000) 53.00/33.40 new_primCmpNat2(Zero, yuz144000) -> LT 53.00/33.40 new_sizeFM(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, h, ba) -> yuz12342 53.00/33.40 new_primMulNat1(Zero, Zero) -> Zero 53.00/33.40 new_primMulNat1(Succ(yuz60000), Zero) -> Zero 53.00/33.40 new_primMulNat1(Zero, Succ(yuz40100)) -> Zero 53.00/33.40 new_primMulNat1(Succ(yuz60000), Succ(yuz40100)) -> new_primPlusNat0(new_primMulNat1(yuz60000, Succ(yuz40100)), Succ(yuz40100)) 53.00/33.40 new_primPlusNat0(Zero, Succ(yuz601000)) -> Succ(yuz601000) 53.00/33.40 new_primPlusNat0(Succ(yuz11200), Succ(yuz601000)) -> Succ(Succ(new_primPlusNat0(yuz11200, yuz601000))) 53.00/33.40 new_primPlusNat0(Succ(yuz11200), Zero) -> Succ(yuz11200) 53.00/33.40 new_primPlusNat0(Zero, Zero) -> Zero 53.00/33.40 new_sr1(Pos(yuz14250)) -> Pos(new_primMulNat2(yuz14250)) 53.00/33.40 new_sr1(Neg(yuz14250)) -> Neg(new_primMulNat2(yuz14250)) 53.00/33.40 new_primMulNat2(Succ(yuz142500)) -> new_primPlusNat0(new_primMulNat3(Succ(Succ(Succ(Succ(Zero)))), yuz142500), Succ(yuz142500)) 53.00/33.40 new_primMulNat2(Zero) -> Zero 53.00/33.40 new_primMulNat3(Succ(yuz400000), yuz60100) -> new_primPlusNat1(new_primMulNat3(yuz400000, yuz60100), yuz60100) 53.00/33.40 new_primMulNat3(Zero, yuz60100) -> Zero 53.00/33.40 new_primPlusNat1(Zero, yuz60100) -> Succ(yuz60100) 53.00/33.40 new_primPlusNat1(Succ(yuz1120), yuz60100) -> Succ(Succ(new_primPlusNat0(yuz1120, yuz60100))) 53.00/33.40 53.00/33.40 The set Q consists of the following terms: 53.00/33.40 53.00/33.40 new_primCmpNat0(x0, Succ(x1)) 53.00/33.40 new_primCmpInt(Neg(Zero), Neg(Zero)) 53.00/33.40 new_sIZE_RATIO 53.00/33.40 new_primCmpInt(Pos(Zero), Neg(Succ(x0))) 53.00/33.40 new_primCmpInt(Neg(Zero), Pos(Succ(x0))) 53.00/33.40 new_primCmpInt(Pos(Zero), Pos(Succ(x0))) 53.00/33.40 new_primMulNat1(Succ(x0), Zero) 53.00/33.40 new_mkVBalBranch3Size_l(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11) 53.00/33.40 new_primCmpNat1(Succ(x0), Succ(x1)) 53.00/33.40 new_sr0(Pos(x0), Pos(x1)) 53.00/33.40 new_primCmpInt(Pos(Zero), Neg(Zero)) 53.00/33.40 new_primCmpInt(Neg(Zero), Pos(Zero)) 53.00/33.40 new_primCmpInt(Neg(Succ(x0)), Neg(x1)) 53.00/33.40 new_esEs0(LT) 53.00/33.40 new_primCmpNat1(Succ(x0), Zero) 53.00/33.40 new_sr1(Neg(x0)) 53.00/33.40 new_primMulNat2(Zero) 53.00/33.40 new_primCmpNat1(Zero, Succ(x0)) 53.00/33.40 new_primPlusNat0(Zero, Succ(x0)) 53.00/33.40 new_primCmpNat1(Zero, Zero) 53.00/33.40 new_primCmpInt(Neg(Succ(x0)), Pos(x1)) 53.00/33.40 new_primCmpNat2(Succ(x0), x1) 53.00/33.40 new_primCmpInt(Pos(Succ(x0)), Neg(x1)) 53.00/33.40 new_sr1(Pos(x0)) 53.00/33.40 new_esEs0(EQ) 53.00/33.40 new_primMulNat3(Zero, x0) 53.00/33.40 new_primCmpNat0(x0, Zero) 53.00/33.40 new_primPlusNat1(Succ(x0), x1) 53.00/33.40 new_primPlusNat1(Zero, x0) 53.00/33.40 new_primMulNat3(Succ(x0), x1) 53.00/33.40 new_primPlusNat0(Succ(x0), Succ(x1)) 53.00/33.40 new_primCmpInt(Pos(Succ(x0)), Pos(x1)) 53.00/33.40 new_primMulNat2(Succ(x0)) 53.00/33.40 new_mkVBalBranch3Size_r(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11) 53.00/33.40 new_sizeFM(x0, x1, x2, x3, x4, x5, x6) 53.00/33.40 new_primPlusNat0(Succ(x0), Zero) 53.00/33.40 new_sr0(Pos(x0), Neg(x1)) 53.00/33.40 new_sr0(Neg(x0), Pos(x1)) 53.00/33.40 new_sr0(Neg(x0), Neg(x1)) 53.00/33.40 new_primCmpNat2(Zero, x0) 53.00/33.40 new_esEs0(GT) 53.00/33.40 new_primCmpInt(Neg(Zero), Neg(Succ(x0))) 53.00/33.40 new_primMulNat1(Succ(x0), Succ(x1)) 53.00/33.40 new_primMulNat1(Zero, Zero) 53.00/33.40 new_primMulNat1(Zero, Succ(x0)) 53.00/33.40 new_primCmpInt(Pos(Zero), Pos(Zero)) 53.00/33.40 new_primPlusNat0(Zero, Zero) 53.00/33.40 53.00/33.40 We have to consider all minimal (P,Q,R)-chains. 53.00/33.40 ---------------------------------------- 53.00/33.40 53.00/33.40 (63) UsableRulesProof (EQUIVALENT) 53.00/33.40 As all Q-normal forms are R-normal forms we are in the innermost case. Hence, by the usable rules processor [LPAR04] we can delete all non-usable rules [FROCOS05] from R. 53.00/33.40 ---------------------------------------- 53.00/33.40 53.00/33.40 (64) 53.00/33.40 Obligation: 53.00/33.40 Q DP problem: 53.00/33.40 The TRS P consists of the following rules: 53.00/33.40 53.00/33.40 new_mkVBalBranch3MkVBalBranch1(yuz12340, yuz12341, yuz12342, yuz12343, Branch(yuz123440, yuz123441, yuz123442, yuz123443, yuz123444), yuz12380, yuz12381, yuz12382, yuz12383, yuz12384, yuz1240, yuz1241, True, h, ba) -> new_mkVBalBranch3(yuz1240, yuz1241, yuz123440, yuz123441, yuz123442, yuz123443, yuz123444, yuz12380, yuz12381, yuz12382, yuz12383, yuz12384, h, ba) 53.00/33.40 new_mkVBalBranch3MkVBalBranch2(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz12380, yuz12381, yuz12382, Branch(yuz123830, yuz123831, yuz123832, yuz123833, yuz123834), yuz12384, yuz1240, yuz1241, True, h, ba) -> new_mkVBalBranch3MkVBalBranch2(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz123830, yuz123831, yuz123832, yuz123833, yuz123834, yuz1240, yuz1241, new_esEs0(new_primCmpInt(new_sr0(Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), new_mkVBalBranch3Size_l(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz123830, yuz123831, yuz123832, yuz123833, yuz123834, h, ba)), new_mkVBalBranch3Size_r(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz123830, yuz123831, yuz123832, yuz123833, yuz123834, h, ba))), h, ba) 53.00/33.40 new_mkVBalBranch3MkVBalBranch2(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz12380, yuz12381, yuz12382, yuz12383, yuz12384, yuz1240, yuz1241, False, h, ba) -> new_mkVBalBranch3MkVBalBranch1(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz12380, yuz12381, yuz12382, yuz12383, yuz12384, yuz1240, yuz1241, new_esEs0(new_primCmpInt(new_sr1(new_sizeFM(yuz12380, yuz12381, yuz12382, yuz12383, yuz12384, h, ba)), new_mkVBalBranch3Size_l(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz12380, yuz12381, yuz12382, yuz12383, yuz12384, h, ba))), h, ba) 53.00/33.40 new_mkVBalBranch3(yuz1240, yuz1241, yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz123830, yuz123831, yuz123832, yuz123833, yuz123834, h, ba) -> new_mkVBalBranch3MkVBalBranch2(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz123830, yuz123831, yuz123832, yuz123833, yuz123834, yuz1240, yuz1241, new_esEs0(new_primCmpInt(new_sr0(Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), new_mkVBalBranch3Size_l(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz123830, yuz123831, yuz123832, yuz123833, yuz123834, h, ba)), new_mkVBalBranch3Size_r(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz123830, yuz123831, yuz123832, yuz123833, yuz123834, h, ba))), h, ba) 53.00/33.40 53.00/33.40 The TRS R consists of the following rules: 53.00/33.40 53.00/33.40 new_mkVBalBranch3Size_l(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz12380, yuz12381, yuz12382, yuz12383, yuz12384, h, ba) -> new_sizeFM(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, h, ba) 53.00/33.40 new_sr0(Pos(yuz6000), Pos(yuz4010)) -> Pos(new_primMulNat1(yuz6000, yuz4010)) 53.00/33.40 new_sr0(Pos(yuz6000), Neg(yuz4010)) -> Neg(new_primMulNat1(yuz6000, yuz4010)) 53.00/33.40 new_mkVBalBranch3Size_r(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz12380, yuz12381, yuz12382, yuz12383, yuz12384, h, ba) -> new_sizeFM(yuz12380, yuz12381, yuz12382, yuz12383, yuz12384, h, ba) 53.00/33.40 new_primCmpInt(Neg(Succ(yuz144000)), Pos(yuz14350)) -> LT 53.00/33.40 new_primCmpInt(Pos(Zero), Pos(Succ(yuz143500))) -> new_primCmpNat2(Zero, yuz143500) 53.00/33.40 new_primCmpInt(Neg(Succ(yuz144000)), Neg(yuz14350)) -> new_primCmpNat2(yuz14350, yuz144000) 53.00/33.40 new_primCmpInt(Neg(Zero), Neg(Succ(yuz143500))) -> new_primCmpNat0(yuz143500, Zero) 53.00/33.40 new_primCmpInt(Pos(Succ(yuz144000)), Pos(yuz14350)) -> new_primCmpNat0(yuz144000, yuz14350) 53.00/33.40 new_primCmpInt(Neg(Zero), Neg(Zero)) -> EQ 53.00/33.40 new_primCmpInt(Pos(Zero), Neg(Succ(yuz143500))) -> GT 53.00/33.40 new_primCmpInt(Neg(Zero), Pos(Succ(yuz143500))) -> LT 53.00/33.40 new_primCmpInt(Pos(Succ(yuz144000)), Neg(yuz14350)) -> GT 53.00/33.40 new_primCmpInt(Pos(Zero), Neg(Zero)) -> EQ 53.00/33.40 new_primCmpInt(Neg(Zero), Pos(Zero)) -> EQ 53.00/33.40 new_primCmpInt(Pos(Zero), Pos(Zero)) -> EQ 53.00/33.40 new_esEs0(EQ) -> False 53.00/33.40 new_esEs0(LT) -> True 53.00/33.40 new_esEs0(GT) -> False 53.00/33.40 new_primCmpNat0(yuz144000, Succ(yuz143500)) -> new_primCmpNat1(yuz144000, yuz143500) 53.00/33.40 new_primCmpNat0(yuz144000, Zero) -> GT 53.00/33.40 new_primCmpNat1(Zero, Zero) -> EQ 53.00/33.40 new_primCmpNat1(Succ(yuz2800), Zero) -> GT 53.00/33.40 new_primCmpNat1(Succ(yuz2800), Succ(yuz330000)) -> new_primCmpNat1(yuz2800, yuz330000) 53.00/33.40 new_primCmpNat1(Zero, Succ(yuz330000)) -> LT 53.00/33.40 new_primCmpNat2(Succ(yuz143500), yuz144000) -> new_primCmpNat1(yuz143500, yuz144000) 53.00/33.40 new_primCmpNat2(Zero, yuz144000) -> LT 53.00/33.40 new_sizeFM(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, h, ba) -> yuz12342 53.00/33.40 new_primMulNat1(Zero, Zero) -> Zero 53.00/33.40 new_primMulNat1(Succ(yuz60000), Zero) -> Zero 53.00/33.40 new_primMulNat1(Zero, Succ(yuz40100)) -> Zero 53.00/33.40 new_primMulNat1(Succ(yuz60000), Succ(yuz40100)) -> new_primPlusNat0(new_primMulNat1(yuz60000, Succ(yuz40100)), Succ(yuz40100)) 53.00/33.40 new_primPlusNat0(Zero, Succ(yuz601000)) -> Succ(yuz601000) 53.00/33.40 new_primPlusNat0(Succ(yuz11200), Succ(yuz601000)) -> Succ(Succ(new_primPlusNat0(yuz11200, yuz601000))) 53.00/33.40 new_primPlusNat0(Succ(yuz11200), Zero) -> Succ(yuz11200) 53.00/33.40 new_primPlusNat0(Zero, Zero) -> Zero 53.00/33.40 new_sr1(Pos(yuz14250)) -> Pos(new_primMulNat2(yuz14250)) 53.00/33.40 new_sr1(Neg(yuz14250)) -> Neg(new_primMulNat2(yuz14250)) 53.00/33.40 new_primMulNat2(Succ(yuz142500)) -> new_primPlusNat0(new_primMulNat3(Succ(Succ(Succ(Succ(Zero)))), yuz142500), Succ(yuz142500)) 53.00/33.40 new_primMulNat2(Zero) -> Zero 53.00/33.40 new_primMulNat3(Succ(yuz400000), yuz60100) -> new_primPlusNat1(new_primMulNat3(yuz400000, yuz60100), yuz60100) 53.00/33.40 new_primMulNat3(Zero, yuz60100) -> Zero 53.00/33.40 new_primPlusNat1(Zero, yuz60100) -> Succ(yuz60100) 53.00/33.40 new_primPlusNat1(Succ(yuz1120), yuz60100) -> Succ(Succ(new_primPlusNat0(yuz1120, yuz60100))) 53.00/33.40 53.00/33.40 The set Q consists of the following terms: 53.00/33.40 53.00/33.40 new_primCmpNat0(x0, Succ(x1)) 53.00/33.40 new_primCmpInt(Neg(Zero), Neg(Zero)) 53.00/33.40 new_sIZE_RATIO 53.00/33.40 new_primCmpInt(Pos(Zero), Neg(Succ(x0))) 53.00/33.40 new_primCmpInt(Neg(Zero), Pos(Succ(x0))) 53.00/33.40 new_primCmpInt(Pos(Zero), Pos(Succ(x0))) 53.00/33.40 new_primMulNat1(Succ(x0), Zero) 53.00/33.40 new_mkVBalBranch3Size_l(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11) 53.00/33.40 new_primCmpNat1(Succ(x0), Succ(x1)) 53.00/33.40 new_sr0(Pos(x0), Pos(x1)) 53.00/33.40 new_primCmpInt(Pos(Zero), Neg(Zero)) 53.00/33.40 new_primCmpInt(Neg(Zero), Pos(Zero)) 53.00/33.40 new_primCmpInt(Neg(Succ(x0)), Neg(x1)) 53.00/33.40 new_esEs0(LT) 53.00/33.40 new_primCmpNat1(Succ(x0), Zero) 53.00/33.40 new_sr1(Neg(x0)) 53.00/33.40 new_primMulNat2(Zero) 53.00/33.40 new_primCmpNat1(Zero, Succ(x0)) 53.00/33.40 new_primPlusNat0(Zero, Succ(x0)) 53.00/33.40 new_primCmpNat1(Zero, Zero) 53.00/33.40 new_primCmpInt(Neg(Succ(x0)), Pos(x1)) 53.00/33.40 new_primCmpNat2(Succ(x0), x1) 53.00/33.40 new_primCmpInt(Pos(Succ(x0)), Neg(x1)) 53.00/33.40 new_sr1(Pos(x0)) 53.00/33.40 new_esEs0(EQ) 53.00/33.40 new_primMulNat3(Zero, x0) 53.00/33.40 new_primCmpNat0(x0, Zero) 53.00/33.40 new_primPlusNat1(Succ(x0), x1) 53.00/33.40 new_primPlusNat1(Zero, x0) 53.00/33.40 new_primMulNat3(Succ(x0), x1) 53.00/33.40 new_primPlusNat0(Succ(x0), Succ(x1)) 53.00/33.40 new_primCmpInt(Pos(Succ(x0)), Pos(x1)) 53.00/33.40 new_primMulNat2(Succ(x0)) 53.00/33.40 new_mkVBalBranch3Size_r(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11) 53.00/33.40 new_sizeFM(x0, x1, x2, x3, x4, x5, x6) 53.00/33.40 new_primPlusNat0(Succ(x0), Zero) 53.00/33.40 new_sr0(Pos(x0), Neg(x1)) 53.00/33.40 new_sr0(Neg(x0), Pos(x1)) 53.00/33.40 new_sr0(Neg(x0), Neg(x1)) 53.00/33.40 new_primCmpNat2(Zero, x0) 53.00/33.40 new_esEs0(GT) 53.00/33.40 new_primCmpInt(Neg(Zero), Neg(Succ(x0))) 53.00/33.40 new_primMulNat1(Succ(x0), Succ(x1)) 53.00/33.40 new_primMulNat1(Zero, Zero) 53.00/33.40 new_primMulNat1(Zero, Succ(x0)) 53.00/33.40 new_primCmpInt(Pos(Zero), Pos(Zero)) 53.00/33.40 new_primPlusNat0(Zero, Zero) 53.00/33.40 53.00/33.40 We have to consider all minimal (P,Q,R)-chains. 53.00/33.40 ---------------------------------------- 53.00/33.40 53.00/33.40 (65) QReductionProof (EQUIVALENT) 53.00/33.40 We deleted the following terms from Q as each root-symbol of these terms does neither occur in P nor in R.[THIEMANN]. 53.00/33.40 53.00/33.40 new_sIZE_RATIO 53.00/33.40 53.00/33.40 53.00/33.40 ---------------------------------------- 53.00/33.40 53.00/33.40 (66) 53.00/33.40 Obligation: 53.00/33.40 Q DP problem: 53.00/33.40 The TRS P consists of the following rules: 53.00/33.40 53.00/33.40 new_mkVBalBranch3MkVBalBranch1(yuz12340, yuz12341, yuz12342, yuz12343, Branch(yuz123440, yuz123441, yuz123442, yuz123443, yuz123444), yuz12380, yuz12381, yuz12382, yuz12383, yuz12384, yuz1240, yuz1241, True, h, ba) -> new_mkVBalBranch3(yuz1240, yuz1241, yuz123440, yuz123441, yuz123442, yuz123443, yuz123444, yuz12380, yuz12381, yuz12382, yuz12383, yuz12384, h, ba) 53.00/33.40 new_mkVBalBranch3MkVBalBranch2(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz12380, yuz12381, yuz12382, Branch(yuz123830, yuz123831, yuz123832, yuz123833, yuz123834), yuz12384, yuz1240, yuz1241, True, h, ba) -> new_mkVBalBranch3MkVBalBranch2(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz123830, yuz123831, yuz123832, yuz123833, yuz123834, yuz1240, yuz1241, new_esEs0(new_primCmpInt(new_sr0(Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), new_mkVBalBranch3Size_l(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz123830, yuz123831, yuz123832, yuz123833, yuz123834, h, ba)), new_mkVBalBranch3Size_r(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz123830, yuz123831, yuz123832, yuz123833, yuz123834, h, ba))), h, ba) 53.00/33.40 new_mkVBalBranch3MkVBalBranch2(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz12380, yuz12381, yuz12382, yuz12383, yuz12384, yuz1240, yuz1241, False, h, ba) -> new_mkVBalBranch3MkVBalBranch1(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz12380, yuz12381, yuz12382, yuz12383, yuz12384, yuz1240, yuz1241, new_esEs0(new_primCmpInt(new_sr1(new_sizeFM(yuz12380, yuz12381, yuz12382, yuz12383, yuz12384, h, ba)), new_mkVBalBranch3Size_l(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz12380, yuz12381, yuz12382, yuz12383, yuz12384, h, ba))), h, ba) 53.00/33.40 new_mkVBalBranch3(yuz1240, yuz1241, yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz123830, yuz123831, yuz123832, yuz123833, yuz123834, h, ba) -> new_mkVBalBranch3MkVBalBranch2(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz123830, yuz123831, yuz123832, yuz123833, yuz123834, yuz1240, yuz1241, new_esEs0(new_primCmpInt(new_sr0(Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), new_mkVBalBranch3Size_l(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz123830, yuz123831, yuz123832, yuz123833, yuz123834, h, ba)), new_mkVBalBranch3Size_r(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz123830, yuz123831, yuz123832, yuz123833, yuz123834, h, ba))), h, ba) 53.00/33.40 53.00/33.40 The TRS R consists of the following rules: 53.00/33.40 53.00/33.40 new_mkVBalBranch3Size_l(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz12380, yuz12381, yuz12382, yuz12383, yuz12384, h, ba) -> new_sizeFM(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, h, ba) 53.00/33.40 new_sr0(Pos(yuz6000), Pos(yuz4010)) -> Pos(new_primMulNat1(yuz6000, yuz4010)) 53.00/33.40 new_sr0(Pos(yuz6000), Neg(yuz4010)) -> Neg(new_primMulNat1(yuz6000, yuz4010)) 53.00/33.40 new_mkVBalBranch3Size_r(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz12380, yuz12381, yuz12382, yuz12383, yuz12384, h, ba) -> new_sizeFM(yuz12380, yuz12381, yuz12382, yuz12383, yuz12384, h, ba) 53.00/33.40 new_primCmpInt(Neg(Succ(yuz144000)), Pos(yuz14350)) -> LT 53.00/33.40 new_primCmpInt(Pos(Zero), Pos(Succ(yuz143500))) -> new_primCmpNat2(Zero, yuz143500) 53.00/33.40 new_primCmpInt(Neg(Succ(yuz144000)), Neg(yuz14350)) -> new_primCmpNat2(yuz14350, yuz144000) 53.00/33.40 new_primCmpInt(Neg(Zero), Neg(Succ(yuz143500))) -> new_primCmpNat0(yuz143500, Zero) 53.00/33.40 new_primCmpInt(Pos(Succ(yuz144000)), Pos(yuz14350)) -> new_primCmpNat0(yuz144000, yuz14350) 53.00/33.40 new_primCmpInt(Neg(Zero), Neg(Zero)) -> EQ 53.00/33.40 new_primCmpInt(Pos(Zero), Neg(Succ(yuz143500))) -> GT 53.00/33.40 new_primCmpInt(Neg(Zero), Pos(Succ(yuz143500))) -> LT 53.00/33.40 new_primCmpInt(Pos(Succ(yuz144000)), Neg(yuz14350)) -> GT 53.00/33.40 new_primCmpInt(Pos(Zero), Neg(Zero)) -> EQ 53.00/33.40 new_primCmpInt(Neg(Zero), Pos(Zero)) -> EQ 53.00/33.40 new_primCmpInt(Pos(Zero), Pos(Zero)) -> EQ 53.00/33.40 new_esEs0(EQ) -> False 53.00/33.40 new_esEs0(LT) -> True 53.00/33.40 new_esEs0(GT) -> False 53.00/33.40 new_primCmpNat0(yuz144000, Succ(yuz143500)) -> new_primCmpNat1(yuz144000, yuz143500) 53.00/33.40 new_primCmpNat0(yuz144000, Zero) -> GT 53.00/33.40 new_primCmpNat1(Zero, Zero) -> EQ 53.00/33.40 new_primCmpNat1(Succ(yuz2800), Zero) -> GT 53.00/33.40 new_primCmpNat1(Succ(yuz2800), Succ(yuz330000)) -> new_primCmpNat1(yuz2800, yuz330000) 53.00/33.40 new_primCmpNat1(Zero, Succ(yuz330000)) -> LT 53.00/33.40 new_primCmpNat2(Succ(yuz143500), yuz144000) -> new_primCmpNat1(yuz143500, yuz144000) 53.00/33.40 new_primCmpNat2(Zero, yuz144000) -> LT 53.00/33.40 new_sizeFM(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, h, ba) -> yuz12342 53.00/33.40 new_primMulNat1(Zero, Zero) -> Zero 53.00/33.40 new_primMulNat1(Succ(yuz60000), Zero) -> Zero 53.00/33.40 new_primMulNat1(Zero, Succ(yuz40100)) -> Zero 53.00/33.40 new_primMulNat1(Succ(yuz60000), Succ(yuz40100)) -> new_primPlusNat0(new_primMulNat1(yuz60000, Succ(yuz40100)), Succ(yuz40100)) 53.00/33.40 new_primPlusNat0(Zero, Succ(yuz601000)) -> Succ(yuz601000) 53.00/33.40 new_primPlusNat0(Succ(yuz11200), Succ(yuz601000)) -> Succ(Succ(new_primPlusNat0(yuz11200, yuz601000))) 53.00/33.40 new_primPlusNat0(Succ(yuz11200), Zero) -> Succ(yuz11200) 53.00/33.40 new_primPlusNat0(Zero, Zero) -> Zero 53.00/33.40 new_sr1(Pos(yuz14250)) -> Pos(new_primMulNat2(yuz14250)) 53.00/33.40 new_sr1(Neg(yuz14250)) -> Neg(new_primMulNat2(yuz14250)) 53.00/33.40 new_primMulNat2(Succ(yuz142500)) -> new_primPlusNat0(new_primMulNat3(Succ(Succ(Succ(Succ(Zero)))), yuz142500), Succ(yuz142500)) 53.00/33.40 new_primMulNat2(Zero) -> Zero 53.00/33.40 new_primMulNat3(Succ(yuz400000), yuz60100) -> new_primPlusNat1(new_primMulNat3(yuz400000, yuz60100), yuz60100) 53.00/33.40 new_primMulNat3(Zero, yuz60100) -> Zero 53.00/33.40 new_primPlusNat1(Zero, yuz60100) -> Succ(yuz60100) 53.00/33.40 new_primPlusNat1(Succ(yuz1120), yuz60100) -> Succ(Succ(new_primPlusNat0(yuz1120, yuz60100))) 53.00/33.40 53.00/33.40 The set Q consists of the following terms: 53.00/33.40 53.00/33.40 new_primCmpNat0(x0, Succ(x1)) 53.00/33.40 new_primCmpInt(Neg(Zero), Neg(Zero)) 53.00/33.40 new_primCmpInt(Pos(Zero), Neg(Succ(x0))) 53.00/33.40 new_primCmpInt(Neg(Zero), Pos(Succ(x0))) 53.00/33.40 new_primCmpInt(Pos(Zero), Pos(Succ(x0))) 53.00/33.40 new_primMulNat1(Succ(x0), Zero) 53.00/33.40 new_mkVBalBranch3Size_l(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11) 53.00/33.40 new_primCmpNat1(Succ(x0), Succ(x1)) 53.00/33.40 new_sr0(Pos(x0), Pos(x1)) 53.00/33.40 new_primCmpInt(Pos(Zero), Neg(Zero)) 53.00/33.40 new_primCmpInt(Neg(Zero), Pos(Zero)) 53.00/33.40 new_primCmpInt(Neg(Succ(x0)), Neg(x1)) 53.00/33.40 new_esEs0(LT) 53.00/33.40 new_primCmpNat1(Succ(x0), Zero) 53.00/33.40 new_sr1(Neg(x0)) 53.00/33.40 new_primMulNat2(Zero) 53.00/33.40 new_primCmpNat1(Zero, Succ(x0)) 53.00/33.40 new_primPlusNat0(Zero, Succ(x0)) 53.00/33.40 new_primCmpNat1(Zero, Zero) 53.00/33.40 new_primCmpInt(Neg(Succ(x0)), Pos(x1)) 53.00/33.40 new_primCmpNat2(Succ(x0), x1) 53.00/33.40 new_primCmpInt(Pos(Succ(x0)), Neg(x1)) 53.00/33.40 new_sr1(Pos(x0)) 53.00/33.40 new_esEs0(EQ) 53.00/33.40 new_primMulNat3(Zero, x0) 53.00/33.40 new_primCmpNat0(x0, Zero) 53.00/33.40 new_primPlusNat1(Succ(x0), x1) 53.00/33.40 new_primPlusNat1(Zero, x0) 53.00/33.40 new_primMulNat3(Succ(x0), x1) 53.00/33.40 new_primPlusNat0(Succ(x0), Succ(x1)) 53.00/33.40 new_primCmpInt(Pos(Succ(x0)), Pos(x1)) 53.00/33.40 new_primMulNat2(Succ(x0)) 53.00/33.40 new_mkVBalBranch3Size_r(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11) 53.00/33.40 new_sizeFM(x0, x1, x2, x3, x4, x5, x6) 53.00/33.40 new_primPlusNat0(Succ(x0), Zero) 53.00/33.40 new_sr0(Pos(x0), Neg(x1)) 53.00/33.40 new_sr0(Neg(x0), Pos(x1)) 53.00/33.40 new_sr0(Neg(x0), Neg(x1)) 53.00/33.40 new_primCmpNat2(Zero, x0) 53.00/33.40 new_esEs0(GT) 53.00/33.40 new_primCmpInt(Neg(Zero), Neg(Succ(x0))) 53.00/33.40 new_primMulNat1(Succ(x0), Succ(x1)) 53.00/33.40 new_primMulNat1(Zero, Zero) 53.00/33.40 new_primMulNat1(Zero, Succ(x0)) 53.00/33.40 new_primCmpInt(Pos(Zero), Pos(Zero)) 53.00/33.40 new_primPlusNat0(Zero, Zero) 53.00/33.40 53.00/33.40 We have to consider all minimal (P,Q,R)-chains. 53.00/33.40 ---------------------------------------- 53.00/33.40 53.00/33.40 (67) TransformationProof (EQUIVALENT) 53.00/33.40 By rewriting [LPAR04] the rule new_mkVBalBranch3MkVBalBranch2(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz12380, yuz12381, yuz12382, Branch(yuz123830, yuz123831, yuz123832, yuz123833, yuz123834), yuz12384, yuz1240, yuz1241, True, h, ba) -> new_mkVBalBranch3MkVBalBranch2(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz123830, yuz123831, yuz123832, yuz123833, yuz123834, yuz1240, yuz1241, new_esEs0(new_primCmpInt(new_sr0(Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), new_mkVBalBranch3Size_l(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz123830, yuz123831, yuz123832, yuz123833, yuz123834, h, ba)), new_mkVBalBranch3Size_r(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz123830, yuz123831, yuz123832, yuz123833, yuz123834, h, ba))), h, ba) at position [12,0,0,1] we obtained the following new rules [LPAR04]: 53.00/33.40 53.00/33.40 (new_mkVBalBranch3MkVBalBranch2(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz12380, yuz12381, yuz12382, Branch(yuz123830, yuz123831, yuz123832, yuz123833, yuz123834), yuz12384, yuz1240, yuz1241, True, h, ba) -> new_mkVBalBranch3MkVBalBranch2(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz123830, yuz123831, yuz123832, yuz123833, yuz123834, yuz1240, yuz1241, new_esEs0(new_primCmpInt(new_sr0(Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), new_sizeFM(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, h, ba)), new_mkVBalBranch3Size_r(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz123830, yuz123831, yuz123832, yuz123833, yuz123834, h, ba))), h, ba),new_mkVBalBranch3MkVBalBranch2(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz12380, yuz12381, yuz12382, Branch(yuz123830, yuz123831, yuz123832, yuz123833, yuz123834), yuz12384, yuz1240, yuz1241, True, h, ba) -> new_mkVBalBranch3MkVBalBranch2(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz123830, yuz123831, yuz123832, yuz123833, yuz123834, yuz1240, yuz1241, new_esEs0(new_primCmpInt(new_sr0(Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), new_sizeFM(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, h, ba)), new_mkVBalBranch3Size_r(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz123830, yuz123831, yuz123832, yuz123833, yuz123834, h, ba))), h, ba)) 53.00/33.40 53.00/33.40 53.00/33.40 ---------------------------------------- 53.00/33.40 53.00/33.40 (68) 53.00/33.40 Obligation: 53.00/33.40 Q DP problem: 53.00/33.40 The TRS P consists of the following rules: 53.00/33.40 53.00/33.40 new_mkVBalBranch3MkVBalBranch1(yuz12340, yuz12341, yuz12342, yuz12343, Branch(yuz123440, yuz123441, yuz123442, yuz123443, yuz123444), yuz12380, yuz12381, yuz12382, yuz12383, yuz12384, yuz1240, yuz1241, True, h, ba) -> new_mkVBalBranch3(yuz1240, yuz1241, yuz123440, yuz123441, yuz123442, yuz123443, yuz123444, yuz12380, yuz12381, yuz12382, yuz12383, yuz12384, h, ba) 53.00/33.40 new_mkVBalBranch3MkVBalBranch2(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz12380, yuz12381, yuz12382, yuz12383, yuz12384, yuz1240, yuz1241, False, h, ba) -> new_mkVBalBranch3MkVBalBranch1(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz12380, yuz12381, yuz12382, yuz12383, yuz12384, yuz1240, yuz1241, new_esEs0(new_primCmpInt(new_sr1(new_sizeFM(yuz12380, yuz12381, yuz12382, yuz12383, yuz12384, h, ba)), new_mkVBalBranch3Size_l(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz12380, yuz12381, yuz12382, yuz12383, yuz12384, h, ba))), h, ba) 53.00/33.40 new_mkVBalBranch3(yuz1240, yuz1241, yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz123830, yuz123831, yuz123832, yuz123833, yuz123834, h, ba) -> new_mkVBalBranch3MkVBalBranch2(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz123830, yuz123831, yuz123832, yuz123833, yuz123834, yuz1240, yuz1241, new_esEs0(new_primCmpInt(new_sr0(Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), new_mkVBalBranch3Size_l(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz123830, yuz123831, yuz123832, yuz123833, yuz123834, h, ba)), new_mkVBalBranch3Size_r(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz123830, yuz123831, yuz123832, yuz123833, yuz123834, h, ba))), h, ba) 53.00/33.40 new_mkVBalBranch3MkVBalBranch2(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz12380, yuz12381, yuz12382, Branch(yuz123830, yuz123831, yuz123832, yuz123833, yuz123834), yuz12384, yuz1240, yuz1241, True, h, ba) -> new_mkVBalBranch3MkVBalBranch2(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz123830, yuz123831, yuz123832, yuz123833, yuz123834, yuz1240, yuz1241, new_esEs0(new_primCmpInt(new_sr0(Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), new_sizeFM(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, h, ba)), new_mkVBalBranch3Size_r(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz123830, yuz123831, yuz123832, yuz123833, yuz123834, h, ba))), h, ba) 53.00/33.40 53.00/33.40 The TRS R consists of the following rules: 53.00/33.40 53.00/33.40 new_mkVBalBranch3Size_l(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz12380, yuz12381, yuz12382, yuz12383, yuz12384, h, ba) -> new_sizeFM(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, h, ba) 53.00/33.40 new_sr0(Pos(yuz6000), Pos(yuz4010)) -> Pos(new_primMulNat1(yuz6000, yuz4010)) 53.00/33.40 new_sr0(Pos(yuz6000), Neg(yuz4010)) -> Neg(new_primMulNat1(yuz6000, yuz4010)) 53.00/33.40 new_mkVBalBranch3Size_r(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz12380, yuz12381, yuz12382, yuz12383, yuz12384, h, ba) -> new_sizeFM(yuz12380, yuz12381, yuz12382, yuz12383, yuz12384, h, ba) 53.00/33.40 new_primCmpInt(Neg(Succ(yuz144000)), Pos(yuz14350)) -> LT 53.00/33.40 new_primCmpInt(Pos(Zero), Pos(Succ(yuz143500))) -> new_primCmpNat2(Zero, yuz143500) 53.00/33.40 new_primCmpInt(Neg(Succ(yuz144000)), Neg(yuz14350)) -> new_primCmpNat2(yuz14350, yuz144000) 53.00/33.40 new_primCmpInt(Neg(Zero), Neg(Succ(yuz143500))) -> new_primCmpNat0(yuz143500, Zero) 53.00/33.40 new_primCmpInt(Pos(Succ(yuz144000)), Pos(yuz14350)) -> new_primCmpNat0(yuz144000, yuz14350) 53.00/33.40 new_primCmpInt(Neg(Zero), Neg(Zero)) -> EQ 53.00/33.40 new_primCmpInt(Pos(Zero), Neg(Succ(yuz143500))) -> GT 53.00/33.40 new_primCmpInt(Neg(Zero), Pos(Succ(yuz143500))) -> LT 53.00/33.40 new_primCmpInt(Pos(Succ(yuz144000)), Neg(yuz14350)) -> GT 53.00/33.40 new_primCmpInt(Pos(Zero), Neg(Zero)) -> EQ 53.00/33.40 new_primCmpInt(Neg(Zero), Pos(Zero)) -> EQ 53.00/33.40 new_primCmpInt(Pos(Zero), Pos(Zero)) -> EQ 53.00/33.40 new_esEs0(EQ) -> False 53.00/33.40 new_esEs0(LT) -> True 53.00/33.40 new_esEs0(GT) -> False 53.00/33.40 new_primCmpNat0(yuz144000, Succ(yuz143500)) -> new_primCmpNat1(yuz144000, yuz143500) 53.00/33.40 new_primCmpNat0(yuz144000, Zero) -> GT 53.00/33.40 new_primCmpNat1(Zero, Zero) -> EQ 53.00/33.40 new_primCmpNat1(Succ(yuz2800), Zero) -> GT 53.00/33.40 new_primCmpNat1(Succ(yuz2800), Succ(yuz330000)) -> new_primCmpNat1(yuz2800, yuz330000) 53.00/33.40 new_primCmpNat1(Zero, Succ(yuz330000)) -> LT 53.00/33.40 new_primCmpNat2(Succ(yuz143500), yuz144000) -> new_primCmpNat1(yuz143500, yuz144000) 53.00/33.40 new_primCmpNat2(Zero, yuz144000) -> LT 53.00/33.40 new_sizeFM(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, h, ba) -> yuz12342 53.00/33.40 new_primMulNat1(Zero, Zero) -> Zero 53.00/33.40 new_primMulNat1(Succ(yuz60000), Zero) -> Zero 53.00/33.40 new_primMulNat1(Zero, Succ(yuz40100)) -> Zero 53.00/33.40 new_primMulNat1(Succ(yuz60000), Succ(yuz40100)) -> new_primPlusNat0(new_primMulNat1(yuz60000, Succ(yuz40100)), Succ(yuz40100)) 53.00/33.40 new_primPlusNat0(Zero, Succ(yuz601000)) -> Succ(yuz601000) 53.00/33.40 new_primPlusNat0(Succ(yuz11200), Succ(yuz601000)) -> Succ(Succ(new_primPlusNat0(yuz11200, yuz601000))) 53.00/33.40 new_primPlusNat0(Succ(yuz11200), Zero) -> Succ(yuz11200) 53.00/33.40 new_primPlusNat0(Zero, Zero) -> Zero 53.00/33.40 new_sr1(Pos(yuz14250)) -> Pos(new_primMulNat2(yuz14250)) 53.00/33.40 new_sr1(Neg(yuz14250)) -> Neg(new_primMulNat2(yuz14250)) 53.00/33.40 new_primMulNat2(Succ(yuz142500)) -> new_primPlusNat0(new_primMulNat3(Succ(Succ(Succ(Succ(Zero)))), yuz142500), Succ(yuz142500)) 53.00/33.40 new_primMulNat2(Zero) -> Zero 53.00/33.40 new_primMulNat3(Succ(yuz400000), yuz60100) -> new_primPlusNat1(new_primMulNat3(yuz400000, yuz60100), yuz60100) 53.00/33.40 new_primMulNat3(Zero, yuz60100) -> Zero 53.00/33.40 new_primPlusNat1(Zero, yuz60100) -> Succ(yuz60100) 53.00/33.40 new_primPlusNat1(Succ(yuz1120), yuz60100) -> Succ(Succ(new_primPlusNat0(yuz1120, yuz60100))) 53.00/33.40 53.00/33.40 The set Q consists of the following terms: 53.00/33.40 53.00/33.40 new_primCmpNat0(x0, Succ(x1)) 53.00/33.40 new_primCmpInt(Neg(Zero), Neg(Zero)) 53.00/33.40 new_primCmpInt(Pos(Zero), Neg(Succ(x0))) 53.00/33.40 new_primCmpInt(Neg(Zero), Pos(Succ(x0))) 53.00/33.40 new_primCmpInt(Pos(Zero), Pos(Succ(x0))) 53.00/33.40 new_primMulNat1(Succ(x0), Zero) 53.00/33.40 new_mkVBalBranch3Size_l(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11) 53.00/33.40 new_primCmpNat1(Succ(x0), Succ(x1)) 53.00/33.40 new_sr0(Pos(x0), Pos(x1)) 53.00/33.40 new_primCmpInt(Pos(Zero), Neg(Zero)) 53.00/33.40 new_primCmpInt(Neg(Zero), Pos(Zero)) 53.00/33.40 new_primCmpInt(Neg(Succ(x0)), Neg(x1)) 53.00/33.40 new_esEs0(LT) 53.00/33.40 new_primCmpNat1(Succ(x0), Zero) 53.00/33.40 new_sr1(Neg(x0)) 53.00/33.40 new_primMulNat2(Zero) 53.00/33.40 new_primCmpNat1(Zero, Succ(x0)) 53.00/33.40 new_primPlusNat0(Zero, Succ(x0)) 53.00/33.40 new_primCmpNat1(Zero, Zero) 53.00/33.40 new_primCmpInt(Neg(Succ(x0)), Pos(x1)) 53.00/33.40 new_primCmpNat2(Succ(x0), x1) 53.00/33.40 new_primCmpInt(Pos(Succ(x0)), Neg(x1)) 53.00/33.40 new_sr1(Pos(x0)) 53.00/33.40 new_esEs0(EQ) 53.00/33.40 new_primMulNat3(Zero, x0) 53.00/33.40 new_primCmpNat0(x0, Zero) 53.00/33.40 new_primPlusNat1(Succ(x0), x1) 53.00/33.40 new_primPlusNat1(Zero, x0) 53.00/33.40 new_primMulNat3(Succ(x0), x1) 53.00/33.40 new_primPlusNat0(Succ(x0), Succ(x1)) 53.00/33.40 new_primCmpInt(Pos(Succ(x0)), Pos(x1)) 53.00/33.40 new_primMulNat2(Succ(x0)) 53.00/33.40 new_mkVBalBranch3Size_r(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11) 53.00/33.40 new_sizeFM(x0, x1, x2, x3, x4, x5, x6) 53.00/33.40 new_primPlusNat0(Succ(x0), Zero) 53.00/33.40 new_sr0(Pos(x0), Neg(x1)) 53.00/33.40 new_sr0(Neg(x0), Pos(x1)) 53.00/33.40 new_sr0(Neg(x0), Neg(x1)) 53.00/33.40 new_primCmpNat2(Zero, x0) 53.00/33.40 new_esEs0(GT) 53.00/33.40 new_primCmpInt(Neg(Zero), Neg(Succ(x0))) 53.00/33.40 new_primMulNat1(Succ(x0), Succ(x1)) 53.00/33.40 new_primMulNat1(Zero, Zero) 53.00/33.40 new_primMulNat1(Zero, Succ(x0)) 53.00/33.40 new_primCmpInt(Pos(Zero), Pos(Zero)) 53.00/33.40 new_primPlusNat0(Zero, Zero) 53.00/33.40 53.00/33.40 We have to consider all minimal (P,Q,R)-chains. 53.00/33.40 ---------------------------------------- 53.00/33.40 53.00/33.40 (69) TransformationProof (EQUIVALENT) 53.00/33.40 By rewriting [LPAR04] the rule new_mkVBalBranch3MkVBalBranch2(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz12380, yuz12381, yuz12382, yuz12383, yuz12384, yuz1240, yuz1241, False, h, ba) -> new_mkVBalBranch3MkVBalBranch1(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz12380, yuz12381, yuz12382, yuz12383, yuz12384, yuz1240, yuz1241, new_esEs0(new_primCmpInt(new_sr1(new_sizeFM(yuz12380, yuz12381, yuz12382, yuz12383, yuz12384, h, ba)), new_mkVBalBranch3Size_l(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz12380, yuz12381, yuz12382, yuz12383, yuz12384, h, ba))), h, ba) at position [12,0,0,0] we obtained the following new rules [LPAR04]: 53.00/33.40 53.00/33.40 (new_mkVBalBranch3MkVBalBranch2(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz12380, yuz12381, yuz12382, yuz12383, yuz12384, yuz1240, yuz1241, False, h, ba) -> new_mkVBalBranch3MkVBalBranch1(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz12380, yuz12381, yuz12382, yuz12383, yuz12384, yuz1240, yuz1241, new_esEs0(new_primCmpInt(new_sr1(yuz12382), new_mkVBalBranch3Size_l(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz12380, yuz12381, yuz12382, yuz12383, yuz12384, h, ba))), h, ba),new_mkVBalBranch3MkVBalBranch2(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz12380, yuz12381, yuz12382, yuz12383, yuz12384, yuz1240, yuz1241, False, h, ba) -> new_mkVBalBranch3MkVBalBranch1(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz12380, yuz12381, yuz12382, yuz12383, yuz12384, yuz1240, yuz1241, new_esEs0(new_primCmpInt(new_sr1(yuz12382), new_mkVBalBranch3Size_l(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz12380, yuz12381, yuz12382, yuz12383, yuz12384, h, ba))), h, ba)) 53.00/33.40 53.00/33.40 53.00/33.40 ---------------------------------------- 53.00/33.40 53.00/33.40 (70) 53.00/33.40 Obligation: 53.00/33.40 Q DP problem: 53.00/33.40 The TRS P consists of the following rules: 53.00/33.40 53.00/33.40 new_mkVBalBranch3MkVBalBranch1(yuz12340, yuz12341, yuz12342, yuz12343, Branch(yuz123440, yuz123441, yuz123442, yuz123443, yuz123444), yuz12380, yuz12381, yuz12382, yuz12383, yuz12384, yuz1240, yuz1241, True, h, ba) -> new_mkVBalBranch3(yuz1240, yuz1241, yuz123440, yuz123441, yuz123442, yuz123443, yuz123444, yuz12380, yuz12381, yuz12382, yuz12383, yuz12384, h, ba) 53.00/33.40 new_mkVBalBranch3(yuz1240, yuz1241, yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz123830, yuz123831, yuz123832, yuz123833, yuz123834, h, ba) -> new_mkVBalBranch3MkVBalBranch2(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz123830, yuz123831, yuz123832, yuz123833, yuz123834, yuz1240, yuz1241, new_esEs0(new_primCmpInt(new_sr0(Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), new_mkVBalBranch3Size_l(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz123830, yuz123831, yuz123832, yuz123833, yuz123834, h, ba)), new_mkVBalBranch3Size_r(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz123830, yuz123831, yuz123832, yuz123833, yuz123834, h, ba))), h, ba) 53.00/33.40 new_mkVBalBranch3MkVBalBranch2(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz12380, yuz12381, yuz12382, Branch(yuz123830, yuz123831, yuz123832, yuz123833, yuz123834), yuz12384, yuz1240, yuz1241, True, h, ba) -> new_mkVBalBranch3MkVBalBranch2(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz123830, yuz123831, yuz123832, yuz123833, yuz123834, yuz1240, yuz1241, new_esEs0(new_primCmpInt(new_sr0(Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), new_sizeFM(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, h, ba)), new_mkVBalBranch3Size_r(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz123830, yuz123831, yuz123832, yuz123833, yuz123834, h, ba))), h, ba) 53.00/33.40 new_mkVBalBranch3MkVBalBranch2(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz12380, yuz12381, yuz12382, yuz12383, yuz12384, yuz1240, yuz1241, False, h, ba) -> new_mkVBalBranch3MkVBalBranch1(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz12380, yuz12381, yuz12382, yuz12383, yuz12384, yuz1240, yuz1241, new_esEs0(new_primCmpInt(new_sr1(yuz12382), new_mkVBalBranch3Size_l(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz12380, yuz12381, yuz12382, yuz12383, yuz12384, h, ba))), h, ba) 53.00/33.40 53.00/33.40 The TRS R consists of the following rules: 53.00/33.40 53.00/33.40 new_mkVBalBranch3Size_l(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz12380, yuz12381, yuz12382, yuz12383, yuz12384, h, ba) -> new_sizeFM(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, h, ba) 53.00/33.40 new_sr0(Pos(yuz6000), Pos(yuz4010)) -> Pos(new_primMulNat1(yuz6000, yuz4010)) 53.00/33.40 new_sr0(Pos(yuz6000), Neg(yuz4010)) -> Neg(new_primMulNat1(yuz6000, yuz4010)) 53.00/33.40 new_mkVBalBranch3Size_r(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz12380, yuz12381, yuz12382, yuz12383, yuz12384, h, ba) -> new_sizeFM(yuz12380, yuz12381, yuz12382, yuz12383, yuz12384, h, ba) 53.00/33.40 new_primCmpInt(Neg(Succ(yuz144000)), Pos(yuz14350)) -> LT 53.00/33.40 new_primCmpInt(Pos(Zero), Pos(Succ(yuz143500))) -> new_primCmpNat2(Zero, yuz143500) 53.00/33.40 new_primCmpInt(Neg(Succ(yuz144000)), Neg(yuz14350)) -> new_primCmpNat2(yuz14350, yuz144000) 53.00/33.40 new_primCmpInt(Neg(Zero), Neg(Succ(yuz143500))) -> new_primCmpNat0(yuz143500, Zero) 53.00/33.40 new_primCmpInt(Pos(Succ(yuz144000)), Pos(yuz14350)) -> new_primCmpNat0(yuz144000, yuz14350) 53.00/33.40 new_primCmpInt(Neg(Zero), Neg(Zero)) -> EQ 53.00/33.40 new_primCmpInt(Pos(Zero), Neg(Succ(yuz143500))) -> GT 53.00/33.40 new_primCmpInt(Neg(Zero), Pos(Succ(yuz143500))) -> LT 53.00/33.40 new_primCmpInt(Pos(Succ(yuz144000)), Neg(yuz14350)) -> GT 53.00/33.40 new_primCmpInt(Pos(Zero), Neg(Zero)) -> EQ 53.00/33.40 new_primCmpInt(Neg(Zero), Pos(Zero)) -> EQ 53.00/33.40 new_primCmpInt(Pos(Zero), Pos(Zero)) -> EQ 53.00/33.40 new_esEs0(EQ) -> False 53.00/33.40 new_esEs0(LT) -> True 53.00/33.40 new_esEs0(GT) -> False 53.00/33.40 new_primCmpNat0(yuz144000, Succ(yuz143500)) -> new_primCmpNat1(yuz144000, yuz143500) 53.00/33.40 new_primCmpNat0(yuz144000, Zero) -> GT 53.00/33.40 new_primCmpNat1(Zero, Zero) -> EQ 53.00/33.40 new_primCmpNat1(Succ(yuz2800), Zero) -> GT 53.00/33.40 new_primCmpNat1(Succ(yuz2800), Succ(yuz330000)) -> new_primCmpNat1(yuz2800, yuz330000) 53.00/33.40 new_primCmpNat1(Zero, Succ(yuz330000)) -> LT 53.00/33.40 new_primCmpNat2(Succ(yuz143500), yuz144000) -> new_primCmpNat1(yuz143500, yuz144000) 53.00/33.40 new_primCmpNat2(Zero, yuz144000) -> LT 53.00/33.40 new_sizeFM(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, h, ba) -> yuz12342 53.00/33.40 new_primMulNat1(Zero, Zero) -> Zero 53.00/33.40 new_primMulNat1(Succ(yuz60000), Zero) -> Zero 53.00/33.40 new_primMulNat1(Zero, Succ(yuz40100)) -> Zero 53.00/33.40 new_primMulNat1(Succ(yuz60000), Succ(yuz40100)) -> new_primPlusNat0(new_primMulNat1(yuz60000, Succ(yuz40100)), Succ(yuz40100)) 53.00/33.40 new_primPlusNat0(Zero, Succ(yuz601000)) -> Succ(yuz601000) 53.00/33.40 new_primPlusNat0(Succ(yuz11200), Succ(yuz601000)) -> Succ(Succ(new_primPlusNat0(yuz11200, yuz601000))) 53.00/33.40 new_primPlusNat0(Succ(yuz11200), Zero) -> Succ(yuz11200) 53.00/33.40 new_primPlusNat0(Zero, Zero) -> Zero 53.00/33.40 new_sr1(Pos(yuz14250)) -> Pos(new_primMulNat2(yuz14250)) 53.00/33.40 new_sr1(Neg(yuz14250)) -> Neg(new_primMulNat2(yuz14250)) 53.00/33.40 new_primMulNat2(Succ(yuz142500)) -> new_primPlusNat0(new_primMulNat3(Succ(Succ(Succ(Succ(Zero)))), yuz142500), Succ(yuz142500)) 53.00/33.40 new_primMulNat2(Zero) -> Zero 53.00/33.40 new_primMulNat3(Succ(yuz400000), yuz60100) -> new_primPlusNat1(new_primMulNat3(yuz400000, yuz60100), yuz60100) 53.00/33.40 new_primMulNat3(Zero, yuz60100) -> Zero 53.00/33.40 new_primPlusNat1(Zero, yuz60100) -> Succ(yuz60100) 53.00/33.40 new_primPlusNat1(Succ(yuz1120), yuz60100) -> Succ(Succ(new_primPlusNat0(yuz1120, yuz60100))) 53.00/33.40 53.00/33.40 The set Q consists of the following terms: 53.00/33.40 53.00/33.40 new_primCmpNat0(x0, Succ(x1)) 53.00/33.40 new_primCmpInt(Neg(Zero), Neg(Zero)) 53.00/33.40 new_primCmpInt(Pos(Zero), Neg(Succ(x0))) 53.00/33.40 new_primCmpInt(Neg(Zero), Pos(Succ(x0))) 53.00/33.40 new_primCmpInt(Pos(Zero), Pos(Succ(x0))) 53.00/33.40 new_primMulNat1(Succ(x0), Zero) 53.00/33.40 new_mkVBalBranch3Size_l(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11) 53.00/33.40 new_primCmpNat1(Succ(x0), Succ(x1)) 53.00/33.40 new_sr0(Pos(x0), Pos(x1)) 53.00/33.40 new_primCmpInt(Pos(Zero), Neg(Zero)) 53.00/33.40 new_primCmpInt(Neg(Zero), Pos(Zero)) 53.00/33.40 new_primCmpInt(Neg(Succ(x0)), Neg(x1)) 53.00/33.40 new_esEs0(LT) 53.00/33.40 new_primCmpNat1(Succ(x0), Zero) 53.00/33.40 new_sr1(Neg(x0)) 53.00/33.40 new_primMulNat2(Zero) 53.00/33.40 new_primCmpNat1(Zero, Succ(x0)) 53.00/33.40 new_primPlusNat0(Zero, Succ(x0)) 53.00/33.40 new_primCmpNat1(Zero, Zero) 53.00/33.40 new_primCmpInt(Neg(Succ(x0)), Pos(x1)) 53.00/33.40 new_primCmpNat2(Succ(x0), x1) 53.00/33.40 new_primCmpInt(Pos(Succ(x0)), Neg(x1)) 53.00/33.40 new_sr1(Pos(x0)) 53.00/33.40 new_esEs0(EQ) 53.00/33.40 new_primMulNat3(Zero, x0) 53.00/33.40 new_primCmpNat0(x0, Zero) 53.00/33.40 new_primPlusNat1(Succ(x0), x1) 53.00/33.40 new_primPlusNat1(Zero, x0) 53.00/33.40 new_primMulNat3(Succ(x0), x1) 53.00/33.40 new_primPlusNat0(Succ(x0), Succ(x1)) 53.00/33.40 new_primCmpInt(Pos(Succ(x0)), Pos(x1)) 53.00/33.40 new_primMulNat2(Succ(x0)) 53.00/33.40 new_mkVBalBranch3Size_r(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11) 53.00/33.40 new_sizeFM(x0, x1, x2, x3, x4, x5, x6) 53.00/33.40 new_primPlusNat0(Succ(x0), Zero) 53.00/33.40 new_sr0(Pos(x0), Neg(x1)) 53.00/33.40 new_sr0(Neg(x0), Pos(x1)) 53.00/33.40 new_sr0(Neg(x0), Neg(x1)) 53.00/33.40 new_primCmpNat2(Zero, x0) 53.00/33.40 new_esEs0(GT) 53.00/33.40 new_primCmpInt(Neg(Zero), Neg(Succ(x0))) 53.00/33.40 new_primMulNat1(Succ(x0), Succ(x1)) 53.00/33.40 new_primMulNat1(Zero, Zero) 53.00/33.40 new_primMulNat1(Zero, Succ(x0)) 53.00/33.40 new_primCmpInt(Pos(Zero), Pos(Zero)) 53.00/33.40 new_primPlusNat0(Zero, Zero) 53.00/33.40 53.00/33.40 We have to consider all minimal (P,Q,R)-chains. 53.00/33.40 ---------------------------------------- 53.00/33.40 53.00/33.40 (71) TransformationProof (EQUIVALENT) 53.00/33.40 By rewriting [LPAR04] the rule new_mkVBalBranch3(yuz1240, yuz1241, yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz123830, yuz123831, yuz123832, yuz123833, yuz123834, h, ba) -> new_mkVBalBranch3MkVBalBranch2(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz123830, yuz123831, yuz123832, yuz123833, yuz123834, yuz1240, yuz1241, new_esEs0(new_primCmpInt(new_sr0(Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), new_mkVBalBranch3Size_l(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz123830, yuz123831, yuz123832, yuz123833, yuz123834, h, ba)), new_mkVBalBranch3Size_r(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz123830, yuz123831, yuz123832, yuz123833, yuz123834, h, ba))), h, ba) at position [12,0,0,1] we obtained the following new rules [LPAR04]: 53.00/33.40 53.00/33.40 (new_mkVBalBranch3(yuz1240, yuz1241, yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz123830, yuz123831, yuz123832, yuz123833, yuz123834, h, ba) -> new_mkVBalBranch3MkVBalBranch2(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz123830, yuz123831, yuz123832, yuz123833, yuz123834, yuz1240, yuz1241, new_esEs0(new_primCmpInt(new_sr0(Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), new_sizeFM(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, h, ba)), new_mkVBalBranch3Size_r(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz123830, yuz123831, yuz123832, yuz123833, yuz123834, h, ba))), h, ba),new_mkVBalBranch3(yuz1240, yuz1241, yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz123830, yuz123831, yuz123832, yuz123833, yuz123834, h, ba) -> new_mkVBalBranch3MkVBalBranch2(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz123830, yuz123831, yuz123832, yuz123833, yuz123834, yuz1240, yuz1241, new_esEs0(new_primCmpInt(new_sr0(Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), new_sizeFM(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, h, ba)), new_mkVBalBranch3Size_r(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz123830, yuz123831, yuz123832, yuz123833, yuz123834, h, ba))), h, ba)) 53.00/33.40 53.00/33.40 53.00/33.40 ---------------------------------------- 53.00/33.40 53.00/33.40 (72) 53.00/33.40 Obligation: 53.00/33.40 Q DP problem: 53.00/33.40 The TRS P consists of the following rules: 53.00/33.40 53.00/33.40 new_mkVBalBranch3MkVBalBranch1(yuz12340, yuz12341, yuz12342, yuz12343, Branch(yuz123440, yuz123441, yuz123442, yuz123443, yuz123444), yuz12380, yuz12381, yuz12382, yuz12383, yuz12384, yuz1240, yuz1241, True, h, ba) -> new_mkVBalBranch3(yuz1240, yuz1241, yuz123440, yuz123441, yuz123442, yuz123443, yuz123444, yuz12380, yuz12381, yuz12382, yuz12383, yuz12384, h, ba) 53.00/33.40 new_mkVBalBranch3MkVBalBranch2(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz12380, yuz12381, yuz12382, Branch(yuz123830, yuz123831, yuz123832, yuz123833, yuz123834), yuz12384, yuz1240, yuz1241, True, h, ba) -> new_mkVBalBranch3MkVBalBranch2(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz123830, yuz123831, yuz123832, yuz123833, yuz123834, yuz1240, yuz1241, new_esEs0(new_primCmpInt(new_sr0(Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), new_sizeFM(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, h, ba)), new_mkVBalBranch3Size_r(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz123830, yuz123831, yuz123832, yuz123833, yuz123834, h, ba))), h, ba) 53.00/33.40 new_mkVBalBranch3MkVBalBranch2(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz12380, yuz12381, yuz12382, yuz12383, yuz12384, yuz1240, yuz1241, False, h, ba) -> new_mkVBalBranch3MkVBalBranch1(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz12380, yuz12381, yuz12382, yuz12383, yuz12384, yuz1240, yuz1241, new_esEs0(new_primCmpInt(new_sr1(yuz12382), new_mkVBalBranch3Size_l(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz12380, yuz12381, yuz12382, yuz12383, yuz12384, h, ba))), h, ba) 53.00/33.40 new_mkVBalBranch3(yuz1240, yuz1241, yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz123830, yuz123831, yuz123832, yuz123833, yuz123834, h, ba) -> new_mkVBalBranch3MkVBalBranch2(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz123830, yuz123831, yuz123832, yuz123833, yuz123834, yuz1240, yuz1241, new_esEs0(new_primCmpInt(new_sr0(Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), new_sizeFM(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, h, ba)), new_mkVBalBranch3Size_r(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz123830, yuz123831, yuz123832, yuz123833, yuz123834, h, ba))), h, ba) 53.00/33.40 53.00/33.40 The TRS R consists of the following rules: 53.00/33.40 53.00/33.40 new_mkVBalBranch3Size_l(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz12380, yuz12381, yuz12382, yuz12383, yuz12384, h, ba) -> new_sizeFM(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, h, ba) 53.00/33.40 new_sr0(Pos(yuz6000), Pos(yuz4010)) -> Pos(new_primMulNat1(yuz6000, yuz4010)) 53.00/33.40 new_sr0(Pos(yuz6000), Neg(yuz4010)) -> Neg(new_primMulNat1(yuz6000, yuz4010)) 53.00/33.40 new_mkVBalBranch3Size_r(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz12380, yuz12381, yuz12382, yuz12383, yuz12384, h, ba) -> new_sizeFM(yuz12380, yuz12381, yuz12382, yuz12383, yuz12384, h, ba) 53.00/33.40 new_primCmpInt(Neg(Succ(yuz144000)), Pos(yuz14350)) -> LT 53.00/33.40 new_primCmpInt(Pos(Zero), Pos(Succ(yuz143500))) -> new_primCmpNat2(Zero, yuz143500) 53.00/33.40 new_primCmpInt(Neg(Succ(yuz144000)), Neg(yuz14350)) -> new_primCmpNat2(yuz14350, yuz144000) 53.00/33.40 new_primCmpInt(Neg(Zero), Neg(Succ(yuz143500))) -> new_primCmpNat0(yuz143500, Zero) 53.00/33.40 new_primCmpInt(Pos(Succ(yuz144000)), Pos(yuz14350)) -> new_primCmpNat0(yuz144000, yuz14350) 53.00/33.40 new_primCmpInt(Neg(Zero), Neg(Zero)) -> EQ 53.00/33.40 new_primCmpInt(Pos(Zero), Neg(Succ(yuz143500))) -> GT 53.00/33.40 new_primCmpInt(Neg(Zero), Pos(Succ(yuz143500))) -> LT 53.00/33.40 new_primCmpInt(Pos(Succ(yuz144000)), Neg(yuz14350)) -> GT 53.00/33.40 new_primCmpInt(Pos(Zero), Neg(Zero)) -> EQ 53.00/33.40 new_primCmpInt(Neg(Zero), Pos(Zero)) -> EQ 53.00/33.40 new_primCmpInt(Pos(Zero), Pos(Zero)) -> EQ 53.00/33.40 new_esEs0(EQ) -> False 53.00/33.40 new_esEs0(LT) -> True 53.00/33.40 new_esEs0(GT) -> False 53.00/33.40 new_primCmpNat0(yuz144000, Succ(yuz143500)) -> new_primCmpNat1(yuz144000, yuz143500) 53.00/33.40 new_primCmpNat0(yuz144000, Zero) -> GT 53.00/33.40 new_primCmpNat1(Zero, Zero) -> EQ 53.00/33.40 new_primCmpNat1(Succ(yuz2800), Zero) -> GT 53.00/33.40 new_primCmpNat1(Succ(yuz2800), Succ(yuz330000)) -> new_primCmpNat1(yuz2800, yuz330000) 53.00/33.40 new_primCmpNat1(Zero, Succ(yuz330000)) -> LT 53.00/33.40 new_primCmpNat2(Succ(yuz143500), yuz144000) -> new_primCmpNat1(yuz143500, yuz144000) 53.00/33.40 new_primCmpNat2(Zero, yuz144000) -> LT 53.00/33.40 new_sizeFM(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, h, ba) -> yuz12342 53.00/33.40 new_primMulNat1(Zero, Zero) -> Zero 53.00/33.40 new_primMulNat1(Succ(yuz60000), Zero) -> Zero 53.00/33.40 new_primMulNat1(Zero, Succ(yuz40100)) -> Zero 53.00/33.40 new_primMulNat1(Succ(yuz60000), Succ(yuz40100)) -> new_primPlusNat0(new_primMulNat1(yuz60000, Succ(yuz40100)), Succ(yuz40100)) 53.00/33.40 new_primPlusNat0(Zero, Succ(yuz601000)) -> Succ(yuz601000) 53.00/33.40 new_primPlusNat0(Succ(yuz11200), Succ(yuz601000)) -> Succ(Succ(new_primPlusNat0(yuz11200, yuz601000))) 53.00/33.40 new_primPlusNat0(Succ(yuz11200), Zero) -> Succ(yuz11200) 53.00/33.40 new_primPlusNat0(Zero, Zero) -> Zero 53.00/33.40 new_sr1(Pos(yuz14250)) -> Pos(new_primMulNat2(yuz14250)) 53.00/33.40 new_sr1(Neg(yuz14250)) -> Neg(new_primMulNat2(yuz14250)) 53.00/33.40 new_primMulNat2(Succ(yuz142500)) -> new_primPlusNat0(new_primMulNat3(Succ(Succ(Succ(Succ(Zero)))), yuz142500), Succ(yuz142500)) 53.00/33.40 new_primMulNat2(Zero) -> Zero 53.00/33.40 new_primMulNat3(Succ(yuz400000), yuz60100) -> new_primPlusNat1(new_primMulNat3(yuz400000, yuz60100), yuz60100) 53.00/33.40 new_primMulNat3(Zero, yuz60100) -> Zero 53.00/33.40 new_primPlusNat1(Zero, yuz60100) -> Succ(yuz60100) 53.00/33.40 new_primPlusNat1(Succ(yuz1120), yuz60100) -> Succ(Succ(new_primPlusNat0(yuz1120, yuz60100))) 53.00/33.40 53.00/33.40 The set Q consists of the following terms: 53.00/33.40 53.00/33.40 new_primCmpNat0(x0, Succ(x1)) 53.00/33.40 new_primCmpInt(Neg(Zero), Neg(Zero)) 53.00/33.40 new_primCmpInt(Pos(Zero), Neg(Succ(x0))) 53.00/33.40 new_primCmpInt(Neg(Zero), Pos(Succ(x0))) 53.00/33.40 new_primCmpInt(Pos(Zero), Pos(Succ(x0))) 53.00/33.40 new_primMulNat1(Succ(x0), Zero) 53.00/33.40 new_mkVBalBranch3Size_l(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11) 53.00/33.40 new_primCmpNat1(Succ(x0), Succ(x1)) 53.00/33.40 new_sr0(Pos(x0), Pos(x1)) 53.00/33.40 new_primCmpInt(Pos(Zero), Neg(Zero)) 53.00/33.40 new_primCmpInt(Neg(Zero), Pos(Zero)) 53.00/33.40 new_primCmpInt(Neg(Succ(x0)), Neg(x1)) 53.00/33.40 new_esEs0(LT) 53.00/33.40 new_primCmpNat1(Succ(x0), Zero) 53.00/33.40 new_sr1(Neg(x0)) 53.00/33.40 new_primMulNat2(Zero) 53.00/33.40 new_primCmpNat1(Zero, Succ(x0)) 53.00/33.40 new_primPlusNat0(Zero, Succ(x0)) 53.00/33.40 new_primCmpNat1(Zero, Zero) 53.00/33.40 new_primCmpInt(Neg(Succ(x0)), Pos(x1)) 53.00/33.40 new_primCmpNat2(Succ(x0), x1) 53.00/33.40 new_primCmpInt(Pos(Succ(x0)), Neg(x1)) 53.00/33.40 new_sr1(Pos(x0)) 53.00/33.40 new_esEs0(EQ) 53.00/33.40 new_primMulNat3(Zero, x0) 53.00/33.40 new_primCmpNat0(x0, Zero) 53.00/33.40 new_primPlusNat1(Succ(x0), x1) 53.00/33.40 new_primPlusNat1(Zero, x0) 53.00/33.40 new_primMulNat3(Succ(x0), x1) 53.00/33.40 new_primPlusNat0(Succ(x0), Succ(x1)) 53.00/33.40 new_primCmpInt(Pos(Succ(x0)), Pos(x1)) 53.00/33.40 new_primMulNat2(Succ(x0)) 53.00/33.40 new_mkVBalBranch3Size_r(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11) 53.00/33.40 new_sizeFM(x0, x1, x2, x3, x4, x5, x6) 53.00/33.40 new_primPlusNat0(Succ(x0), Zero) 53.00/33.40 new_sr0(Pos(x0), Neg(x1)) 53.00/33.40 new_sr0(Neg(x0), Pos(x1)) 53.00/33.40 new_sr0(Neg(x0), Neg(x1)) 53.00/33.40 new_primCmpNat2(Zero, x0) 53.00/33.40 new_esEs0(GT) 53.00/33.40 new_primCmpInt(Neg(Zero), Neg(Succ(x0))) 53.00/33.40 new_primMulNat1(Succ(x0), Succ(x1)) 53.00/33.40 new_primMulNat1(Zero, Zero) 53.00/33.40 new_primMulNat1(Zero, Succ(x0)) 53.00/33.40 new_primCmpInt(Pos(Zero), Pos(Zero)) 53.00/33.40 new_primPlusNat0(Zero, Zero) 53.00/33.40 53.00/33.40 We have to consider all minimal (P,Q,R)-chains. 53.00/33.40 ---------------------------------------- 53.00/33.40 53.00/33.40 (73) TransformationProof (EQUIVALENT) 53.00/33.40 By rewriting [LPAR04] the rule new_mkVBalBranch3MkVBalBranch2(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz12380, yuz12381, yuz12382, Branch(yuz123830, yuz123831, yuz123832, yuz123833, yuz123834), yuz12384, yuz1240, yuz1241, True, h, ba) -> new_mkVBalBranch3MkVBalBranch2(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz123830, yuz123831, yuz123832, yuz123833, yuz123834, yuz1240, yuz1241, new_esEs0(new_primCmpInt(new_sr0(Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), new_sizeFM(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, h, ba)), new_mkVBalBranch3Size_r(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz123830, yuz123831, yuz123832, yuz123833, yuz123834, h, ba))), h, ba) at position [12,0,0,1] we obtained the following new rules [LPAR04]: 53.00/33.40 53.00/33.40 (new_mkVBalBranch3MkVBalBranch2(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz12380, yuz12381, yuz12382, Branch(yuz123830, yuz123831, yuz123832, yuz123833, yuz123834), yuz12384, yuz1240, yuz1241, True, h, ba) -> new_mkVBalBranch3MkVBalBranch2(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz123830, yuz123831, yuz123832, yuz123833, yuz123834, yuz1240, yuz1241, new_esEs0(new_primCmpInt(new_sr0(Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), yuz12342), new_mkVBalBranch3Size_r(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz123830, yuz123831, yuz123832, yuz123833, yuz123834, h, ba))), h, ba),new_mkVBalBranch3MkVBalBranch2(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz12380, yuz12381, yuz12382, Branch(yuz123830, yuz123831, yuz123832, yuz123833, yuz123834), yuz12384, yuz1240, yuz1241, True, h, ba) -> new_mkVBalBranch3MkVBalBranch2(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz123830, yuz123831, yuz123832, yuz123833, yuz123834, yuz1240, yuz1241, new_esEs0(new_primCmpInt(new_sr0(Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), yuz12342), new_mkVBalBranch3Size_r(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz123830, yuz123831, yuz123832, yuz123833, yuz123834, h, ba))), h, ba)) 53.00/33.40 53.00/33.40 53.00/33.40 ---------------------------------------- 53.00/33.40 53.00/33.40 (74) 53.00/33.40 Obligation: 53.00/33.40 Q DP problem: 53.00/33.40 The TRS P consists of the following rules: 53.00/33.40 53.00/33.40 new_mkVBalBranch3MkVBalBranch1(yuz12340, yuz12341, yuz12342, yuz12343, Branch(yuz123440, yuz123441, yuz123442, yuz123443, yuz123444), yuz12380, yuz12381, yuz12382, yuz12383, yuz12384, yuz1240, yuz1241, True, h, ba) -> new_mkVBalBranch3(yuz1240, yuz1241, yuz123440, yuz123441, yuz123442, yuz123443, yuz123444, yuz12380, yuz12381, yuz12382, yuz12383, yuz12384, h, ba) 53.00/33.40 new_mkVBalBranch3MkVBalBranch2(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz12380, yuz12381, yuz12382, yuz12383, yuz12384, yuz1240, yuz1241, False, h, ba) -> new_mkVBalBranch3MkVBalBranch1(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz12380, yuz12381, yuz12382, yuz12383, yuz12384, yuz1240, yuz1241, new_esEs0(new_primCmpInt(new_sr1(yuz12382), new_mkVBalBranch3Size_l(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz12380, yuz12381, yuz12382, yuz12383, yuz12384, h, ba))), h, ba) 53.00/33.40 new_mkVBalBranch3(yuz1240, yuz1241, yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz123830, yuz123831, yuz123832, yuz123833, yuz123834, h, ba) -> new_mkVBalBranch3MkVBalBranch2(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz123830, yuz123831, yuz123832, yuz123833, yuz123834, yuz1240, yuz1241, new_esEs0(new_primCmpInt(new_sr0(Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), new_sizeFM(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, h, ba)), new_mkVBalBranch3Size_r(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz123830, yuz123831, yuz123832, yuz123833, yuz123834, h, ba))), h, ba) 53.00/33.40 new_mkVBalBranch3MkVBalBranch2(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz12380, yuz12381, yuz12382, Branch(yuz123830, yuz123831, yuz123832, yuz123833, yuz123834), yuz12384, yuz1240, yuz1241, True, h, ba) -> new_mkVBalBranch3MkVBalBranch2(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz123830, yuz123831, yuz123832, yuz123833, yuz123834, yuz1240, yuz1241, new_esEs0(new_primCmpInt(new_sr0(Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), yuz12342), new_mkVBalBranch3Size_r(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz123830, yuz123831, yuz123832, yuz123833, yuz123834, h, ba))), h, ba) 53.00/33.40 53.00/33.40 The TRS R consists of the following rules: 53.00/33.40 53.00/33.40 new_mkVBalBranch3Size_l(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz12380, yuz12381, yuz12382, yuz12383, yuz12384, h, ba) -> new_sizeFM(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, h, ba) 53.00/33.40 new_sr0(Pos(yuz6000), Pos(yuz4010)) -> Pos(new_primMulNat1(yuz6000, yuz4010)) 53.00/33.40 new_sr0(Pos(yuz6000), Neg(yuz4010)) -> Neg(new_primMulNat1(yuz6000, yuz4010)) 53.00/33.40 new_mkVBalBranch3Size_r(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz12380, yuz12381, yuz12382, yuz12383, yuz12384, h, ba) -> new_sizeFM(yuz12380, yuz12381, yuz12382, yuz12383, yuz12384, h, ba) 53.00/33.40 new_primCmpInt(Neg(Succ(yuz144000)), Pos(yuz14350)) -> LT 53.00/33.40 new_primCmpInt(Pos(Zero), Pos(Succ(yuz143500))) -> new_primCmpNat2(Zero, yuz143500) 53.00/33.40 new_primCmpInt(Neg(Succ(yuz144000)), Neg(yuz14350)) -> new_primCmpNat2(yuz14350, yuz144000) 53.00/33.40 new_primCmpInt(Neg(Zero), Neg(Succ(yuz143500))) -> new_primCmpNat0(yuz143500, Zero) 53.00/33.40 new_primCmpInt(Pos(Succ(yuz144000)), Pos(yuz14350)) -> new_primCmpNat0(yuz144000, yuz14350) 53.00/33.40 new_primCmpInt(Neg(Zero), Neg(Zero)) -> EQ 53.00/33.40 new_primCmpInt(Pos(Zero), Neg(Succ(yuz143500))) -> GT 53.00/33.40 new_primCmpInt(Neg(Zero), Pos(Succ(yuz143500))) -> LT 53.00/33.40 new_primCmpInt(Pos(Succ(yuz144000)), Neg(yuz14350)) -> GT 53.00/33.40 new_primCmpInt(Pos(Zero), Neg(Zero)) -> EQ 53.00/33.40 new_primCmpInt(Neg(Zero), Pos(Zero)) -> EQ 53.00/33.40 new_primCmpInt(Pos(Zero), Pos(Zero)) -> EQ 53.00/33.40 new_esEs0(EQ) -> False 53.00/33.40 new_esEs0(LT) -> True 53.00/33.40 new_esEs0(GT) -> False 53.00/33.40 new_primCmpNat0(yuz144000, Succ(yuz143500)) -> new_primCmpNat1(yuz144000, yuz143500) 53.00/33.40 new_primCmpNat0(yuz144000, Zero) -> GT 53.00/33.40 new_primCmpNat1(Zero, Zero) -> EQ 53.00/33.40 new_primCmpNat1(Succ(yuz2800), Zero) -> GT 53.00/33.40 new_primCmpNat1(Succ(yuz2800), Succ(yuz330000)) -> new_primCmpNat1(yuz2800, yuz330000) 53.00/33.40 new_primCmpNat1(Zero, Succ(yuz330000)) -> LT 53.00/33.40 new_primCmpNat2(Succ(yuz143500), yuz144000) -> new_primCmpNat1(yuz143500, yuz144000) 53.00/33.40 new_primCmpNat2(Zero, yuz144000) -> LT 53.00/33.40 new_sizeFM(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, h, ba) -> yuz12342 53.00/33.40 new_primMulNat1(Zero, Zero) -> Zero 53.00/33.40 new_primMulNat1(Succ(yuz60000), Zero) -> Zero 53.00/33.40 new_primMulNat1(Zero, Succ(yuz40100)) -> Zero 53.00/33.40 new_primMulNat1(Succ(yuz60000), Succ(yuz40100)) -> new_primPlusNat0(new_primMulNat1(yuz60000, Succ(yuz40100)), Succ(yuz40100)) 53.00/33.40 new_primPlusNat0(Zero, Succ(yuz601000)) -> Succ(yuz601000) 53.00/33.40 new_primPlusNat0(Succ(yuz11200), Succ(yuz601000)) -> Succ(Succ(new_primPlusNat0(yuz11200, yuz601000))) 53.00/33.40 new_primPlusNat0(Succ(yuz11200), Zero) -> Succ(yuz11200) 53.00/33.40 new_primPlusNat0(Zero, Zero) -> Zero 53.00/33.40 new_sr1(Pos(yuz14250)) -> Pos(new_primMulNat2(yuz14250)) 53.00/33.40 new_sr1(Neg(yuz14250)) -> Neg(new_primMulNat2(yuz14250)) 53.00/33.40 new_primMulNat2(Succ(yuz142500)) -> new_primPlusNat0(new_primMulNat3(Succ(Succ(Succ(Succ(Zero)))), yuz142500), Succ(yuz142500)) 53.00/33.40 new_primMulNat2(Zero) -> Zero 53.00/33.40 new_primMulNat3(Succ(yuz400000), yuz60100) -> new_primPlusNat1(new_primMulNat3(yuz400000, yuz60100), yuz60100) 53.00/33.40 new_primMulNat3(Zero, yuz60100) -> Zero 53.00/33.40 new_primPlusNat1(Zero, yuz60100) -> Succ(yuz60100) 53.00/33.40 new_primPlusNat1(Succ(yuz1120), yuz60100) -> Succ(Succ(new_primPlusNat0(yuz1120, yuz60100))) 53.00/33.40 53.00/33.40 The set Q consists of the following terms: 53.00/33.40 53.00/33.40 new_primCmpNat0(x0, Succ(x1)) 53.00/33.40 new_primCmpInt(Neg(Zero), Neg(Zero)) 53.00/33.40 new_primCmpInt(Pos(Zero), Neg(Succ(x0))) 53.00/33.40 new_primCmpInt(Neg(Zero), Pos(Succ(x0))) 53.00/33.40 new_primCmpInt(Pos(Zero), Pos(Succ(x0))) 53.00/33.40 new_primMulNat1(Succ(x0), Zero) 53.00/33.40 new_mkVBalBranch3Size_l(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11) 53.00/33.40 new_primCmpNat1(Succ(x0), Succ(x1)) 53.00/33.40 new_sr0(Pos(x0), Pos(x1)) 53.00/33.40 new_primCmpInt(Pos(Zero), Neg(Zero)) 53.00/33.40 new_primCmpInt(Neg(Zero), Pos(Zero)) 53.00/33.40 new_primCmpInt(Neg(Succ(x0)), Neg(x1)) 53.00/33.40 new_esEs0(LT) 53.00/33.40 new_primCmpNat1(Succ(x0), Zero) 53.00/33.40 new_sr1(Neg(x0)) 53.00/33.40 new_primMulNat2(Zero) 53.00/33.40 new_primCmpNat1(Zero, Succ(x0)) 53.00/33.40 new_primPlusNat0(Zero, Succ(x0)) 53.00/33.40 new_primCmpNat1(Zero, Zero) 53.00/33.40 new_primCmpInt(Neg(Succ(x0)), Pos(x1)) 53.00/33.40 new_primCmpNat2(Succ(x0), x1) 53.00/33.40 new_primCmpInt(Pos(Succ(x0)), Neg(x1)) 53.00/33.40 new_sr1(Pos(x0)) 53.00/33.40 new_esEs0(EQ) 53.00/33.40 new_primMulNat3(Zero, x0) 53.00/33.40 new_primCmpNat0(x0, Zero) 53.00/33.40 new_primPlusNat1(Succ(x0), x1) 53.00/33.40 new_primPlusNat1(Zero, x0) 53.00/33.40 new_primMulNat3(Succ(x0), x1) 53.00/33.40 new_primPlusNat0(Succ(x0), Succ(x1)) 53.00/33.40 new_primCmpInt(Pos(Succ(x0)), Pos(x1)) 53.00/33.40 new_primMulNat2(Succ(x0)) 53.00/33.40 new_mkVBalBranch3Size_r(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11) 53.00/33.40 new_sizeFM(x0, x1, x2, x3, x4, x5, x6) 53.00/33.40 new_primPlusNat0(Succ(x0), Zero) 53.00/33.40 new_sr0(Pos(x0), Neg(x1)) 53.00/33.40 new_sr0(Neg(x0), Pos(x1)) 53.00/33.40 new_sr0(Neg(x0), Neg(x1)) 53.00/33.40 new_primCmpNat2(Zero, x0) 53.00/33.40 new_esEs0(GT) 53.00/33.40 new_primCmpInt(Neg(Zero), Neg(Succ(x0))) 53.00/33.40 new_primMulNat1(Succ(x0), Succ(x1)) 53.00/33.40 new_primMulNat1(Zero, Zero) 53.00/33.40 new_primMulNat1(Zero, Succ(x0)) 53.00/33.40 new_primCmpInt(Pos(Zero), Pos(Zero)) 53.00/33.40 new_primPlusNat0(Zero, Zero) 53.00/33.40 53.00/33.40 We have to consider all minimal (P,Q,R)-chains. 53.00/33.40 ---------------------------------------- 53.00/33.40 53.00/33.40 (75) TransformationProof (EQUIVALENT) 53.00/33.40 By rewriting [LPAR04] the rule new_mkVBalBranch3MkVBalBranch2(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz12380, yuz12381, yuz12382, yuz12383, yuz12384, yuz1240, yuz1241, False, h, ba) -> new_mkVBalBranch3MkVBalBranch1(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz12380, yuz12381, yuz12382, yuz12383, yuz12384, yuz1240, yuz1241, new_esEs0(new_primCmpInt(new_sr1(yuz12382), new_mkVBalBranch3Size_l(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz12380, yuz12381, yuz12382, yuz12383, yuz12384, h, ba))), h, ba) at position [12,0,1] we obtained the following new rules [LPAR04]: 53.00/33.40 53.00/33.40 (new_mkVBalBranch3MkVBalBranch2(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz12380, yuz12381, yuz12382, yuz12383, yuz12384, yuz1240, yuz1241, False, h, ba) -> new_mkVBalBranch3MkVBalBranch1(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz12380, yuz12381, yuz12382, yuz12383, yuz12384, yuz1240, yuz1241, new_esEs0(new_primCmpInt(new_sr1(yuz12382), new_sizeFM(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, h, ba))), h, ba),new_mkVBalBranch3MkVBalBranch2(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz12380, yuz12381, yuz12382, yuz12383, yuz12384, yuz1240, yuz1241, False, h, ba) -> new_mkVBalBranch3MkVBalBranch1(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz12380, yuz12381, yuz12382, yuz12383, yuz12384, yuz1240, yuz1241, new_esEs0(new_primCmpInt(new_sr1(yuz12382), new_sizeFM(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, h, ba))), h, ba)) 53.00/33.40 53.00/33.40 53.00/33.40 ---------------------------------------- 53.00/33.40 53.00/33.40 (76) 53.00/33.40 Obligation: 53.00/33.40 Q DP problem: 53.00/33.40 The TRS P consists of the following rules: 53.00/33.40 53.00/33.40 new_mkVBalBranch3MkVBalBranch1(yuz12340, yuz12341, yuz12342, yuz12343, Branch(yuz123440, yuz123441, yuz123442, yuz123443, yuz123444), yuz12380, yuz12381, yuz12382, yuz12383, yuz12384, yuz1240, yuz1241, True, h, ba) -> new_mkVBalBranch3(yuz1240, yuz1241, yuz123440, yuz123441, yuz123442, yuz123443, yuz123444, yuz12380, yuz12381, yuz12382, yuz12383, yuz12384, h, ba) 53.00/33.40 new_mkVBalBranch3(yuz1240, yuz1241, yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz123830, yuz123831, yuz123832, yuz123833, yuz123834, h, ba) -> new_mkVBalBranch3MkVBalBranch2(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz123830, yuz123831, yuz123832, yuz123833, yuz123834, yuz1240, yuz1241, new_esEs0(new_primCmpInt(new_sr0(Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), new_sizeFM(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, h, ba)), new_mkVBalBranch3Size_r(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz123830, yuz123831, yuz123832, yuz123833, yuz123834, h, ba))), h, ba) 53.00/33.40 new_mkVBalBranch3MkVBalBranch2(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz12380, yuz12381, yuz12382, Branch(yuz123830, yuz123831, yuz123832, yuz123833, yuz123834), yuz12384, yuz1240, yuz1241, True, h, ba) -> new_mkVBalBranch3MkVBalBranch2(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz123830, yuz123831, yuz123832, yuz123833, yuz123834, yuz1240, yuz1241, new_esEs0(new_primCmpInt(new_sr0(Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), yuz12342), new_mkVBalBranch3Size_r(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz123830, yuz123831, yuz123832, yuz123833, yuz123834, h, ba))), h, ba) 53.00/33.40 new_mkVBalBranch3MkVBalBranch2(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz12380, yuz12381, yuz12382, yuz12383, yuz12384, yuz1240, yuz1241, False, h, ba) -> new_mkVBalBranch3MkVBalBranch1(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz12380, yuz12381, yuz12382, yuz12383, yuz12384, yuz1240, yuz1241, new_esEs0(new_primCmpInt(new_sr1(yuz12382), new_sizeFM(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, h, ba))), h, ba) 53.00/33.40 53.00/33.40 The TRS R consists of the following rules: 53.00/33.40 53.00/33.40 new_mkVBalBranch3Size_l(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz12380, yuz12381, yuz12382, yuz12383, yuz12384, h, ba) -> new_sizeFM(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, h, ba) 53.00/33.40 new_sr0(Pos(yuz6000), Pos(yuz4010)) -> Pos(new_primMulNat1(yuz6000, yuz4010)) 53.00/33.40 new_sr0(Pos(yuz6000), Neg(yuz4010)) -> Neg(new_primMulNat1(yuz6000, yuz4010)) 53.00/33.40 new_mkVBalBranch3Size_r(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz12380, yuz12381, yuz12382, yuz12383, yuz12384, h, ba) -> new_sizeFM(yuz12380, yuz12381, yuz12382, yuz12383, yuz12384, h, ba) 53.00/33.40 new_primCmpInt(Neg(Succ(yuz144000)), Pos(yuz14350)) -> LT 53.00/33.40 new_primCmpInt(Pos(Zero), Pos(Succ(yuz143500))) -> new_primCmpNat2(Zero, yuz143500) 53.00/33.40 new_primCmpInt(Neg(Succ(yuz144000)), Neg(yuz14350)) -> new_primCmpNat2(yuz14350, yuz144000) 53.00/33.40 new_primCmpInt(Neg(Zero), Neg(Succ(yuz143500))) -> new_primCmpNat0(yuz143500, Zero) 53.00/33.40 new_primCmpInt(Pos(Succ(yuz144000)), Pos(yuz14350)) -> new_primCmpNat0(yuz144000, yuz14350) 53.00/33.40 new_primCmpInt(Neg(Zero), Neg(Zero)) -> EQ 53.00/33.40 new_primCmpInt(Pos(Zero), Neg(Succ(yuz143500))) -> GT 53.00/33.40 new_primCmpInt(Neg(Zero), Pos(Succ(yuz143500))) -> LT 53.00/33.40 new_primCmpInt(Pos(Succ(yuz144000)), Neg(yuz14350)) -> GT 53.00/33.40 new_primCmpInt(Pos(Zero), Neg(Zero)) -> EQ 53.00/33.40 new_primCmpInt(Neg(Zero), Pos(Zero)) -> EQ 53.00/33.40 new_primCmpInt(Pos(Zero), Pos(Zero)) -> EQ 53.00/33.40 new_esEs0(EQ) -> False 53.00/33.40 new_esEs0(LT) -> True 53.00/33.40 new_esEs0(GT) -> False 53.00/33.40 new_primCmpNat0(yuz144000, Succ(yuz143500)) -> new_primCmpNat1(yuz144000, yuz143500) 53.00/33.40 new_primCmpNat0(yuz144000, Zero) -> GT 53.00/33.40 new_primCmpNat1(Zero, Zero) -> EQ 53.00/33.40 new_primCmpNat1(Succ(yuz2800), Zero) -> GT 53.00/33.40 new_primCmpNat1(Succ(yuz2800), Succ(yuz330000)) -> new_primCmpNat1(yuz2800, yuz330000) 53.00/33.40 new_primCmpNat1(Zero, Succ(yuz330000)) -> LT 53.00/33.40 new_primCmpNat2(Succ(yuz143500), yuz144000) -> new_primCmpNat1(yuz143500, yuz144000) 53.00/33.40 new_primCmpNat2(Zero, yuz144000) -> LT 53.00/33.40 new_sizeFM(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, h, ba) -> yuz12342 53.00/33.40 new_primMulNat1(Zero, Zero) -> Zero 53.00/33.40 new_primMulNat1(Succ(yuz60000), Zero) -> Zero 53.00/33.40 new_primMulNat1(Zero, Succ(yuz40100)) -> Zero 53.00/33.40 new_primMulNat1(Succ(yuz60000), Succ(yuz40100)) -> new_primPlusNat0(new_primMulNat1(yuz60000, Succ(yuz40100)), Succ(yuz40100)) 53.00/33.40 new_primPlusNat0(Zero, Succ(yuz601000)) -> Succ(yuz601000) 53.00/33.40 new_primPlusNat0(Succ(yuz11200), Succ(yuz601000)) -> Succ(Succ(new_primPlusNat0(yuz11200, yuz601000))) 53.00/33.40 new_primPlusNat0(Succ(yuz11200), Zero) -> Succ(yuz11200) 53.00/33.40 new_primPlusNat0(Zero, Zero) -> Zero 53.00/33.40 new_sr1(Pos(yuz14250)) -> Pos(new_primMulNat2(yuz14250)) 53.00/33.40 new_sr1(Neg(yuz14250)) -> Neg(new_primMulNat2(yuz14250)) 53.00/33.40 new_primMulNat2(Succ(yuz142500)) -> new_primPlusNat0(new_primMulNat3(Succ(Succ(Succ(Succ(Zero)))), yuz142500), Succ(yuz142500)) 53.00/33.40 new_primMulNat2(Zero) -> Zero 53.00/33.40 new_primMulNat3(Succ(yuz400000), yuz60100) -> new_primPlusNat1(new_primMulNat3(yuz400000, yuz60100), yuz60100) 53.00/33.40 new_primMulNat3(Zero, yuz60100) -> Zero 53.00/33.40 new_primPlusNat1(Zero, yuz60100) -> Succ(yuz60100) 53.00/33.40 new_primPlusNat1(Succ(yuz1120), yuz60100) -> Succ(Succ(new_primPlusNat0(yuz1120, yuz60100))) 53.00/33.40 53.00/33.40 The set Q consists of the following terms: 53.00/33.40 53.00/33.40 new_primCmpNat0(x0, Succ(x1)) 53.00/33.40 new_primCmpInt(Neg(Zero), Neg(Zero)) 53.00/33.40 new_primCmpInt(Pos(Zero), Neg(Succ(x0))) 53.00/33.40 new_primCmpInt(Neg(Zero), Pos(Succ(x0))) 53.00/33.40 new_primCmpInt(Pos(Zero), Pos(Succ(x0))) 53.00/33.40 new_primMulNat1(Succ(x0), Zero) 53.00/33.40 new_mkVBalBranch3Size_l(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11) 53.00/33.40 new_primCmpNat1(Succ(x0), Succ(x1)) 53.00/33.40 new_sr0(Pos(x0), Pos(x1)) 53.00/33.40 new_primCmpInt(Pos(Zero), Neg(Zero)) 53.00/33.40 new_primCmpInt(Neg(Zero), Pos(Zero)) 53.00/33.40 new_primCmpInt(Neg(Succ(x0)), Neg(x1)) 53.00/33.40 new_esEs0(LT) 53.00/33.40 new_primCmpNat1(Succ(x0), Zero) 53.00/33.40 new_sr1(Neg(x0)) 53.00/33.40 new_primMulNat2(Zero) 53.00/33.40 new_primCmpNat1(Zero, Succ(x0)) 53.00/33.40 new_primPlusNat0(Zero, Succ(x0)) 53.00/33.40 new_primCmpNat1(Zero, Zero) 53.00/33.40 new_primCmpInt(Neg(Succ(x0)), Pos(x1)) 53.00/33.40 new_primCmpNat2(Succ(x0), x1) 53.00/33.40 new_primCmpInt(Pos(Succ(x0)), Neg(x1)) 53.00/33.40 new_sr1(Pos(x0)) 53.00/33.40 new_esEs0(EQ) 53.00/33.40 new_primMulNat3(Zero, x0) 53.00/33.40 new_primCmpNat0(x0, Zero) 53.00/33.40 new_primPlusNat1(Succ(x0), x1) 53.00/33.40 new_primPlusNat1(Zero, x0) 53.00/33.40 new_primMulNat3(Succ(x0), x1) 53.00/33.40 new_primPlusNat0(Succ(x0), Succ(x1)) 53.00/33.40 new_primCmpInt(Pos(Succ(x0)), Pos(x1)) 53.00/33.40 new_primMulNat2(Succ(x0)) 53.00/33.40 new_mkVBalBranch3Size_r(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11) 53.00/33.40 new_sizeFM(x0, x1, x2, x3, x4, x5, x6) 53.00/33.40 new_primPlusNat0(Succ(x0), Zero) 53.00/33.40 new_sr0(Pos(x0), Neg(x1)) 53.00/33.40 new_sr0(Neg(x0), Pos(x1)) 53.00/33.40 new_sr0(Neg(x0), Neg(x1)) 53.00/33.40 new_primCmpNat2(Zero, x0) 53.00/33.40 new_esEs0(GT) 53.00/33.40 new_primCmpInt(Neg(Zero), Neg(Succ(x0))) 53.00/33.40 new_primMulNat1(Succ(x0), Succ(x1)) 53.00/33.40 new_primMulNat1(Zero, Zero) 53.00/33.40 new_primMulNat1(Zero, Succ(x0)) 53.00/33.40 new_primCmpInt(Pos(Zero), Pos(Zero)) 53.00/33.40 new_primPlusNat0(Zero, Zero) 53.00/33.40 53.00/33.40 We have to consider all minimal (P,Q,R)-chains. 53.00/33.40 ---------------------------------------- 53.00/33.40 53.00/33.40 (77) UsableRulesProof (EQUIVALENT) 53.00/33.40 As all Q-normal forms are R-normal forms we are in the innermost case. Hence, by the usable rules processor [LPAR04] we can delete all non-usable rules [FROCOS05] from R. 53.00/33.40 ---------------------------------------- 53.00/33.40 53.00/33.40 (78) 53.00/33.40 Obligation: 53.00/33.40 Q DP problem: 53.00/33.40 The TRS P consists of the following rules: 53.00/33.40 53.00/33.40 new_mkVBalBranch3MkVBalBranch1(yuz12340, yuz12341, yuz12342, yuz12343, Branch(yuz123440, yuz123441, yuz123442, yuz123443, yuz123444), yuz12380, yuz12381, yuz12382, yuz12383, yuz12384, yuz1240, yuz1241, True, h, ba) -> new_mkVBalBranch3(yuz1240, yuz1241, yuz123440, yuz123441, yuz123442, yuz123443, yuz123444, yuz12380, yuz12381, yuz12382, yuz12383, yuz12384, h, ba) 53.00/33.40 new_mkVBalBranch3(yuz1240, yuz1241, yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz123830, yuz123831, yuz123832, yuz123833, yuz123834, h, ba) -> new_mkVBalBranch3MkVBalBranch2(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz123830, yuz123831, yuz123832, yuz123833, yuz123834, yuz1240, yuz1241, new_esEs0(new_primCmpInt(new_sr0(Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), new_sizeFM(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, h, ba)), new_mkVBalBranch3Size_r(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz123830, yuz123831, yuz123832, yuz123833, yuz123834, h, ba))), h, ba) 53.00/33.40 new_mkVBalBranch3MkVBalBranch2(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz12380, yuz12381, yuz12382, Branch(yuz123830, yuz123831, yuz123832, yuz123833, yuz123834), yuz12384, yuz1240, yuz1241, True, h, ba) -> new_mkVBalBranch3MkVBalBranch2(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz123830, yuz123831, yuz123832, yuz123833, yuz123834, yuz1240, yuz1241, new_esEs0(new_primCmpInt(new_sr0(Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), yuz12342), new_mkVBalBranch3Size_r(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz123830, yuz123831, yuz123832, yuz123833, yuz123834, h, ba))), h, ba) 53.00/33.40 new_mkVBalBranch3MkVBalBranch2(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz12380, yuz12381, yuz12382, yuz12383, yuz12384, yuz1240, yuz1241, False, h, ba) -> new_mkVBalBranch3MkVBalBranch1(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz12380, yuz12381, yuz12382, yuz12383, yuz12384, yuz1240, yuz1241, new_esEs0(new_primCmpInt(new_sr1(yuz12382), new_sizeFM(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, h, ba))), h, ba) 53.00/33.40 53.00/33.40 The TRS R consists of the following rules: 53.00/33.40 53.00/33.40 new_sr1(Pos(yuz14250)) -> Pos(new_primMulNat2(yuz14250)) 53.00/33.40 new_sr1(Neg(yuz14250)) -> Neg(new_primMulNat2(yuz14250)) 53.00/33.40 new_sizeFM(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, h, ba) -> yuz12342 53.00/33.40 new_primCmpInt(Neg(Succ(yuz144000)), Pos(yuz14350)) -> LT 53.00/33.40 new_primCmpInt(Pos(Zero), Pos(Succ(yuz143500))) -> new_primCmpNat2(Zero, yuz143500) 53.00/33.40 new_primCmpInt(Neg(Succ(yuz144000)), Neg(yuz14350)) -> new_primCmpNat2(yuz14350, yuz144000) 53.00/33.40 new_primCmpInt(Neg(Zero), Neg(Succ(yuz143500))) -> new_primCmpNat0(yuz143500, Zero) 53.00/33.40 new_primCmpInt(Pos(Succ(yuz144000)), Pos(yuz14350)) -> new_primCmpNat0(yuz144000, yuz14350) 53.00/33.40 new_primCmpInt(Neg(Zero), Neg(Zero)) -> EQ 53.00/33.40 new_primCmpInt(Pos(Zero), Neg(Succ(yuz143500))) -> GT 53.00/33.40 new_primCmpInt(Neg(Zero), Pos(Succ(yuz143500))) -> LT 53.00/33.40 new_primCmpInt(Pos(Succ(yuz144000)), Neg(yuz14350)) -> GT 53.00/33.40 new_primCmpInt(Pos(Zero), Neg(Zero)) -> EQ 53.00/33.40 new_primCmpInt(Neg(Zero), Pos(Zero)) -> EQ 53.00/33.40 new_primCmpInt(Pos(Zero), Pos(Zero)) -> EQ 53.00/33.40 new_esEs0(EQ) -> False 53.00/33.40 new_esEs0(LT) -> True 53.00/33.40 new_esEs0(GT) -> False 53.00/33.40 new_primCmpNat0(yuz144000, Succ(yuz143500)) -> new_primCmpNat1(yuz144000, yuz143500) 53.00/33.40 new_primCmpNat0(yuz144000, Zero) -> GT 53.00/33.40 new_primCmpNat1(Zero, Zero) -> EQ 53.00/33.40 new_primCmpNat1(Succ(yuz2800), Zero) -> GT 53.00/33.40 new_primCmpNat1(Succ(yuz2800), Succ(yuz330000)) -> new_primCmpNat1(yuz2800, yuz330000) 53.00/33.40 new_primCmpNat1(Zero, Succ(yuz330000)) -> LT 53.00/33.40 new_primCmpNat2(Succ(yuz143500), yuz144000) -> new_primCmpNat1(yuz143500, yuz144000) 53.00/33.40 new_primCmpNat2(Zero, yuz144000) -> LT 53.00/33.40 new_primMulNat2(Succ(yuz142500)) -> new_primPlusNat0(new_primMulNat3(Succ(Succ(Succ(Succ(Zero)))), yuz142500), Succ(yuz142500)) 53.00/33.40 new_primMulNat2(Zero) -> Zero 53.00/33.40 new_primMulNat3(Succ(yuz400000), yuz60100) -> new_primPlusNat1(new_primMulNat3(yuz400000, yuz60100), yuz60100) 53.00/33.40 new_primPlusNat0(Zero, Succ(yuz601000)) -> Succ(yuz601000) 53.00/33.40 new_primPlusNat0(Succ(yuz11200), Succ(yuz601000)) -> Succ(Succ(new_primPlusNat0(yuz11200, yuz601000))) 53.00/33.40 new_primPlusNat0(Succ(yuz11200), Zero) -> Succ(yuz11200) 53.00/33.40 new_primPlusNat0(Zero, Zero) -> Zero 53.00/33.40 new_primMulNat3(Zero, yuz60100) -> Zero 53.00/33.40 new_primPlusNat1(Zero, yuz60100) -> Succ(yuz60100) 53.00/33.40 new_primPlusNat1(Succ(yuz1120), yuz60100) -> Succ(Succ(new_primPlusNat0(yuz1120, yuz60100))) 53.00/33.40 new_sr0(Pos(yuz6000), Pos(yuz4010)) -> Pos(new_primMulNat1(yuz6000, yuz4010)) 53.00/33.40 new_sr0(Pos(yuz6000), Neg(yuz4010)) -> Neg(new_primMulNat1(yuz6000, yuz4010)) 53.00/33.40 new_mkVBalBranch3Size_r(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz12380, yuz12381, yuz12382, yuz12383, yuz12384, h, ba) -> new_sizeFM(yuz12380, yuz12381, yuz12382, yuz12383, yuz12384, h, ba) 53.00/33.40 new_primMulNat1(Zero, Zero) -> Zero 53.00/33.40 new_primMulNat1(Succ(yuz60000), Zero) -> Zero 53.00/33.40 new_primMulNat1(Zero, Succ(yuz40100)) -> Zero 53.00/33.40 new_primMulNat1(Succ(yuz60000), Succ(yuz40100)) -> new_primPlusNat0(new_primMulNat1(yuz60000, Succ(yuz40100)), Succ(yuz40100)) 53.00/33.40 53.00/33.40 The set Q consists of the following terms: 53.00/33.40 53.00/33.40 new_primCmpNat0(x0, Succ(x1)) 53.00/33.40 new_primCmpInt(Neg(Zero), Neg(Zero)) 53.00/33.40 new_primCmpInt(Pos(Zero), Neg(Succ(x0))) 53.00/33.40 new_primCmpInt(Neg(Zero), Pos(Succ(x0))) 53.00/33.40 new_primCmpInt(Pos(Zero), Pos(Succ(x0))) 53.00/33.40 new_primMulNat1(Succ(x0), Zero) 53.00/33.40 new_mkVBalBranch3Size_l(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11) 53.00/33.40 new_primCmpNat1(Succ(x0), Succ(x1)) 53.00/33.40 new_sr0(Pos(x0), Pos(x1)) 53.00/33.40 new_primCmpInt(Pos(Zero), Neg(Zero)) 53.00/33.40 new_primCmpInt(Neg(Zero), Pos(Zero)) 53.00/33.40 new_primCmpInt(Neg(Succ(x0)), Neg(x1)) 53.00/33.40 new_esEs0(LT) 53.00/33.40 new_primCmpNat1(Succ(x0), Zero) 53.00/33.40 new_sr1(Neg(x0)) 53.00/33.40 new_primMulNat2(Zero) 53.00/33.40 new_primCmpNat1(Zero, Succ(x0)) 53.00/33.40 new_primPlusNat0(Zero, Succ(x0)) 53.00/33.40 new_primCmpNat1(Zero, Zero) 53.00/33.40 new_primCmpInt(Neg(Succ(x0)), Pos(x1)) 53.00/33.40 new_primCmpNat2(Succ(x0), x1) 53.00/33.40 new_primCmpInt(Pos(Succ(x0)), Neg(x1)) 53.00/33.40 new_sr1(Pos(x0)) 53.00/33.40 new_esEs0(EQ) 53.00/33.40 new_primMulNat3(Zero, x0) 53.00/33.40 new_primCmpNat0(x0, Zero) 53.00/33.40 new_primPlusNat1(Succ(x0), x1) 53.00/33.40 new_primPlusNat1(Zero, x0) 53.00/33.40 new_primMulNat3(Succ(x0), x1) 53.00/33.40 new_primPlusNat0(Succ(x0), Succ(x1)) 53.00/33.40 new_primCmpInt(Pos(Succ(x0)), Pos(x1)) 53.00/33.40 new_primMulNat2(Succ(x0)) 53.00/33.40 new_mkVBalBranch3Size_r(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11) 53.00/33.40 new_sizeFM(x0, x1, x2, x3, x4, x5, x6) 53.00/33.40 new_primPlusNat0(Succ(x0), Zero) 53.00/33.40 new_sr0(Pos(x0), Neg(x1)) 53.00/33.40 new_sr0(Neg(x0), Pos(x1)) 53.00/33.40 new_sr0(Neg(x0), Neg(x1)) 53.00/33.40 new_primCmpNat2(Zero, x0) 53.00/33.40 new_esEs0(GT) 53.00/33.40 new_primCmpInt(Neg(Zero), Neg(Succ(x0))) 53.00/33.40 new_primMulNat1(Succ(x0), Succ(x1)) 53.00/33.40 new_primMulNat1(Zero, Zero) 53.00/33.40 new_primMulNat1(Zero, Succ(x0)) 53.00/33.40 new_primCmpInt(Pos(Zero), Pos(Zero)) 53.00/33.40 new_primPlusNat0(Zero, Zero) 53.00/33.40 53.00/33.40 We have to consider all minimal (P,Q,R)-chains. 53.00/33.40 ---------------------------------------- 53.00/33.40 53.00/33.40 (79) QReductionProof (EQUIVALENT) 53.00/33.40 We deleted the following terms from Q as each root-symbol of these terms does neither occur in P nor in R.[THIEMANN]. 53.00/33.40 53.00/33.40 new_mkVBalBranch3Size_l(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11) 53.00/33.40 53.00/33.40 53.00/33.40 ---------------------------------------- 53.00/33.40 53.00/33.40 (80) 53.00/33.40 Obligation: 53.00/33.40 Q DP problem: 53.00/33.40 The TRS P consists of the following rules: 53.00/33.40 53.00/33.40 new_mkVBalBranch3MkVBalBranch1(yuz12340, yuz12341, yuz12342, yuz12343, Branch(yuz123440, yuz123441, yuz123442, yuz123443, yuz123444), yuz12380, yuz12381, yuz12382, yuz12383, yuz12384, yuz1240, yuz1241, True, h, ba) -> new_mkVBalBranch3(yuz1240, yuz1241, yuz123440, yuz123441, yuz123442, yuz123443, yuz123444, yuz12380, yuz12381, yuz12382, yuz12383, yuz12384, h, ba) 53.00/33.40 new_mkVBalBranch3(yuz1240, yuz1241, yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz123830, yuz123831, yuz123832, yuz123833, yuz123834, h, ba) -> new_mkVBalBranch3MkVBalBranch2(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz123830, yuz123831, yuz123832, yuz123833, yuz123834, yuz1240, yuz1241, new_esEs0(new_primCmpInt(new_sr0(Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), new_sizeFM(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, h, ba)), new_mkVBalBranch3Size_r(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz123830, yuz123831, yuz123832, yuz123833, yuz123834, h, ba))), h, ba) 53.00/33.40 new_mkVBalBranch3MkVBalBranch2(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz12380, yuz12381, yuz12382, Branch(yuz123830, yuz123831, yuz123832, yuz123833, yuz123834), yuz12384, yuz1240, yuz1241, True, h, ba) -> new_mkVBalBranch3MkVBalBranch2(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz123830, yuz123831, yuz123832, yuz123833, yuz123834, yuz1240, yuz1241, new_esEs0(new_primCmpInt(new_sr0(Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), yuz12342), new_mkVBalBranch3Size_r(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz123830, yuz123831, yuz123832, yuz123833, yuz123834, h, ba))), h, ba) 53.00/33.40 new_mkVBalBranch3MkVBalBranch2(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz12380, yuz12381, yuz12382, yuz12383, yuz12384, yuz1240, yuz1241, False, h, ba) -> new_mkVBalBranch3MkVBalBranch1(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz12380, yuz12381, yuz12382, yuz12383, yuz12384, yuz1240, yuz1241, new_esEs0(new_primCmpInt(new_sr1(yuz12382), new_sizeFM(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, h, ba))), h, ba) 53.00/33.40 53.00/33.40 The TRS R consists of the following rules: 53.00/33.40 53.00/33.40 new_sr1(Pos(yuz14250)) -> Pos(new_primMulNat2(yuz14250)) 53.00/33.40 new_sr1(Neg(yuz14250)) -> Neg(new_primMulNat2(yuz14250)) 53.00/33.40 new_sizeFM(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, h, ba) -> yuz12342 53.00/33.40 new_primCmpInt(Neg(Succ(yuz144000)), Pos(yuz14350)) -> LT 53.00/33.40 new_primCmpInt(Pos(Zero), Pos(Succ(yuz143500))) -> new_primCmpNat2(Zero, yuz143500) 53.00/33.40 new_primCmpInt(Neg(Succ(yuz144000)), Neg(yuz14350)) -> new_primCmpNat2(yuz14350, yuz144000) 53.00/33.40 new_primCmpInt(Neg(Zero), Neg(Succ(yuz143500))) -> new_primCmpNat0(yuz143500, Zero) 53.00/33.40 new_primCmpInt(Pos(Succ(yuz144000)), Pos(yuz14350)) -> new_primCmpNat0(yuz144000, yuz14350) 53.00/33.40 new_primCmpInt(Neg(Zero), Neg(Zero)) -> EQ 53.00/33.40 new_primCmpInt(Pos(Zero), Neg(Succ(yuz143500))) -> GT 53.00/33.40 new_primCmpInt(Neg(Zero), Pos(Succ(yuz143500))) -> LT 53.00/33.40 new_primCmpInt(Pos(Succ(yuz144000)), Neg(yuz14350)) -> GT 53.00/33.40 new_primCmpInt(Pos(Zero), Neg(Zero)) -> EQ 53.00/33.40 new_primCmpInt(Neg(Zero), Pos(Zero)) -> EQ 53.00/33.40 new_primCmpInt(Pos(Zero), Pos(Zero)) -> EQ 53.00/33.40 new_esEs0(EQ) -> False 53.00/33.40 new_esEs0(LT) -> True 53.00/33.40 new_esEs0(GT) -> False 53.00/33.40 new_primCmpNat0(yuz144000, Succ(yuz143500)) -> new_primCmpNat1(yuz144000, yuz143500) 53.00/33.40 new_primCmpNat0(yuz144000, Zero) -> GT 53.00/33.40 new_primCmpNat1(Zero, Zero) -> EQ 53.00/33.40 new_primCmpNat1(Succ(yuz2800), Zero) -> GT 53.00/33.40 new_primCmpNat1(Succ(yuz2800), Succ(yuz330000)) -> new_primCmpNat1(yuz2800, yuz330000) 53.00/33.40 new_primCmpNat1(Zero, Succ(yuz330000)) -> LT 53.00/33.40 new_primCmpNat2(Succ(yuz143500), yuz144000) -> new_primCmpNat1(yuz143500, yuz144000) 53.00/33.40 new_primCmpNat2(Zero, yuz144000) -> LT 53.00/33.40 new_primMulNat2(Succ(yuz142500)) -> new_primPlusNat0(new_primMulNat3(Succ(Succ(Succ(Succ(Zero)))), yuz142500), Succ(yuz142500)) 53.00/33.40 new_primMulNat2(Zero) -> Zero 53.00/33.40 new_primMulNat3(Succ(yuz400000), yuz60100) -> new_primPlusNat1(new_primMulNat3(yuz400000, yuz60100), yuz60100) 53.00/33.40 new_primPlusNat0(Zero, Succ(yuz601000)) -> Succ(yuz601000) 53.00/33.40 new_primPlusNat0(Succ(yuz11200), Succ(yuz601000)) -> Succ(Succ(new_primPlusNat0(yuz11200, yuz601000))) 53.00/33.40 new_primPlusNat0(Succ(yuz11200), Zero) -> Succ(yuz11200) 53.00/33.40 new_primPlusNat0(Zero, Zero) -> Zero 53.00/33.40 new_primMulNat3(Zero, yuz60100) -> Zero 53.00/33.40 new_primPlusNat1(Zero, yuz60100) -> Succ(yuz60100) 53.00/33.40 new_primPlusNat1(Succ(yuz1120), yuz60100) -> Succ(Succ(new_primPlusNat0(yuz1120, yuz60100))) 53.00/33.40 new_sr0(Pos(yuz6000), Pos(yuz4010)) -> Pos(new_primMulNat1(yuz6000, yuz4010)) 53.00/33.40 new_sr0(Pos(yuz6000), Neg(yuz4010)) -> Neg(new_primMulNat1(yuz6000, yuz4010)) 53.00/33.40 new_mkVBalBranch3Size_r(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz12380, yuz12381, yuz12382, yuz12383, yuz12384, h, ba) -> new_sizeFM(yuz12380, yuz12381, yuz12382, yuz12383, yuz12384, h, ba) 53.00/33.40 new_primMulNat1(Zero, Zero) -> Zero 53.00/33.40 new_primMulNat1(Succ(yuz60000), Zero) -> Zero 53.00/33.40 new_primMulNat1(Zero, Succ(yuz40100)) -> Zero 53.00/33.40 new_primMulNat1(Succ(yuz60000), Succ(yuz40100)) -> new_primPlusNat0(new_primMulNat1(yuz60000, Succ(yuz40100)), Succ(yuz40100)) 53.00/33.40 53.00/33.40 The set Q consists of the following terms: 53.00/33.40 53.00/33.40 new_primCmpNat0(x0, Succ(x1)) 53.00/33.40 new_primCmpInt(Neg(Zero), Neg(Zero)) 53.00/33.40 new_primCmpInt(Pos(Zero), Neg(Succ(x0))) 53.00/33.40 new_primCmpInt(Neg(Zero), Pos(Succ(x0))) 53.00/33.40 new_primCmpInt(Pos(Zero), Pos(Succ(x0))) 53.00/33.40 new_primMulNat1(Succ(x0), Zero) 53.00/33.40 new_primCmpNat1(Succ(x0), Succ(x1)) 53.00/33.40 new_sr0(Pos(x0), Pos(x1)) 53.00/33.40 new_primCmpInt(Pos(Zero), Neg(Zero)) 53.00/33.40 new_primCmpInt(Neg(Zero), Pos(Zero)) 53.00/33.40 new_primCmpInt(Neg(Succ(x0)), Neg(x1)) 53.00/33.40 new_esEs0(LT) 53.00/33.40 new_primCmpNat1(Succ(x0), Zero) 53.00/33.40 new_sr1(Neg(x0)) 53.00/33.40 new_primMulNat2(Zero) 53.00/33.40 new_primCmpNat1(Zero, Succ(x0)) 53.00/33.40 new_primPlusNat0(Zero, Succ(x0)) 53.00/33.40 new_primCmpNat1(Zero, Zero) 53.00/33.40 new_primCmpInt(Neg(Succ(x0)), Pos(x1)) 53.00/33.40 new_primCmpNat2(Succ(x0), x1) 53.00/33.40 new_primCmpInt(Pos(Succ(x0)), Neg(x1)) 53.00/33.40 new_sr1(Pos(x0)) 53.00/33.40 new_esEs0(EQ) 53.00/33.40 new_primMulNat3(Zero, x0) 53.00/33.40 new_primCmpNat0(x0, Zero) 53.00/33.40 new_primPlusNat1(Succ(x0), x1) 53.00/33.40 new_primPlusNat1(Zero, x0) 53.00/33.40 new_primMulNat3(Succ(x0), x1) 53.00/33.40 new_primPlusNat0(Succ(x0), Succ(x1)) 53.00/33.40 new_primCmpInt(Pos(Succ(x0)), Pos(x1)) 53.00/33.40 new_primMulNat2(Succ(x0)) 53.00/33.40 new_mkVBalBranch3Size_r(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11) 53.00/33.40 new_sizeFM(x0, x1, x2, x3, x4, x5, x6) 53.00/33.40 new_primPlusNat0(Succ(x0), Zero) 53.00/33.40 new_sr0(Pos(x0), Neg(x1)) 53.00/33.40 new_sr0(Neg(x0), Pos(x1)) 53.00/33.40 new_sr0(Neg(x0), Neg(x1)) 53.00/33.40 new_primCmpNat2(Zero, x0) 53.00/33.40 new_esEs0(GT) 53.00/33.40 new_primCmpInt(Neg(Zero), Neg(Succ(x0))) 53.00/33.40 new_primMulNat1(Succ(x0), Succ(x1)) 53.00/33.40 new_primMulNat1(Zero, Zero) 53.00/33.40 new_primMulNat1(Zero, Succ(x0)) 53.00/33.40 new_primCmpInt(Pos(Zero), Pos(Zero)) 53.00/33.40 new_primPlusNat0(Zero, Zero) 53.00/33.40 53.00/33.40 We have to consider all minimal (P,Q,R)-chains. 53.00/33.40 ---------------------------------------- 53.00/33.40 53.00/33.40 (81) TransformationProof (EQUIVALENT) 53.00/33.40 By rewriting [LPAR04] the rule new_mkVBalBranch3(yuz1240, yuz1241, yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz123830, yuz123831, yuz123832, yuz123833, yuz123834, h, ba) -> new_mkVBalBranch3MkVBalBranch2(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz123830, yuz123831, yuz123832, yuz123833, yuz123834, yuz1240, yuz1241, new_esEs0(new_primCmpInt(new_sr0(Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), new_sizeFM(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, h, ba)), new_mkVBalBranch3Size_r(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz123830, yuz123831, yuz123832, yuz123833, yuz123834, h, ba))), h, ba) at position [12,0,0,1] we obtained the following new rules [LPAR04]: 53.00/33.40 53.00/33.40 (new_mkVBalBranch3(yuz1240, yuz1241, yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz123830, yuz123831, yuz123832, yuz123833, yuz123834, h, ba) -> new_mkVBalBranch3MkVBalBranch2(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz123830, yuz123831, yuz123832, yuz123833, yuz123834, yuz1240, yuz1241, new_esEs0(new_primCmpInt(new_sr0(Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), yuz12342), new_mkVBalBranch3Size_r(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz123830, yuz123831, yuz123832, yuz123833, yuz123834, h, ba))), h, ba),new_mkVBalBranch3(yuz1240, yuz1241, yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz123830, yuz123831, yuz123832, yuz123833, yuz123834, h, ba) -> new_mkVBalBranch3MkVBalBranch2(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz123830, yuz123831, yuz123832, yuz123833, yuz123834, yuz1240, yuz1241, new_esEs0(new_primCmpInt(new_sr0(Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), yuz12342), new_mkVBalBranch3Size_r(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz123830, yuz123831, yuz123832, yuz123833, yuz123834, h, ba))), h, ba)) 53.00/33.40 53.00/33.40 53.00/33.40 ---------------------------------------- 53.00/33.40 53.00/33.40 (82) 53.00/33.40 Obligation: 53.00/33.40 Q DP problem: 53.00/33.40 The TRS P consists of the following rules: 53.00/33.40 53.00/33.40 new_mkVBalBranch3MkVBalBranch1(yuz12340, yuz12341, yuz12342, yuz12343, Branch(yuz123440, yuz123441, yuz123442, yuz123443, yuz123444), yuz12380, yuz12381, yuz12382, yuz12383, yuz12384, yuz1240, yuz1241, True, h, ba) -> new_mkVBalBranch3(yuz1240, yuz1241, yuz123440, yuz123441, yuz123442, yuz123443, yuz123444, yuz12380, yuz12381, yuz12382, yuz12383, yuz12384, h, ba) 53.00/33.40 new_mkVBalBranch3MkVBalBranch2(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz12380, yuz12381, yuz12382, Branch(yuz123830, yuz123831, yuz123832, yuz123833, yuz123834), yuz12384, yuz1240, yuz1241, True, h, ba) -> new_mkVBalBranch3MkVBalBranch2(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz123830, yuz123831, yuz123832, yuz123833, yuz123834, yuz1240, yuz1241, new_esEs0(new_primCmpInt(new_sr0(Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), yuz12342), new_mkVBalBranch3Size_r(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz123830, yuz123831, yuz123832, yuz123833, yuz123834, h, ba))), h, ba) 53.00/33.40 new_mkVBalBranch3MkVBalBranch2(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz12380, yuz12381, yuz12382, yuz12383, yuz12384, yuz1240, yuz1241, False, h, ba) -> new_mkVBalBranch3MkVBalBranch1(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz12380, yuz12381, yuz12382, yuz12383, yuz12384, yuz1240, yuz1241, new_esEs0(new_primCmpInt(new_sr1(yuz12382), new_sizeFM(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, h, ba))), h, ba) 53.00/33.40 new_mkVBalBranch3(yuz1240, yuz1241, yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz123830, yuz123831, yuz123832, yuz123833, yuz123834, h, ba) -> new_mkVBalBranch3MkVBalBranch2(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz123830, yuz123831, yuz123832, yuz123833, yuz123834, yuz1240, yuz1241, new_esEs0(new_primCmpInt(new_sr0(Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), yuz12342), new_mkVBalBranch3Size_r(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz123830, yuz123831, yuz123832, yuz123833, yuz123834, h, ba))), h, ba) 53.00/33.40 53.00/33.40 The TRS R consists of the following rules: 53.00/33.40 53.00/33.40 new_sr1(Pos(yuz14250)) -> Pos(new_primMulNat2(yuz14250)) 53.00/33.40 new_sr1(Neg(yuz14250)) -> Neg(new_primMulNat2(yuz14250)) 53.00/33.40 new_sizeFM(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, h, ba) -> yuz12342 53.00/33.40 new_primCmpInt(Neg(Succ(yuz144000)), Pos(yuz14350)) -> LT 53.00/33.40 new_primCmpInt(Pos(Zero), Pos(Succ(yuz143500))) -> new_primCmpNat2(Zero, yuz143500) 53.00/33.40 new_primCmpInt(Neg(Succ(yuz144000)), Neg(yuz14350)) -> new_primCmpNat2(yuz14350, yuz144000) 53.00/33.40 new_primCmpInt(Neg(Zero), Neg(Succ(yuz143500))) -> new_primCmpNat0(yuz143500, Zero) 53.00/33.40 new_primCmpInt(Pos(Succ(yuz144000)), Pos(yuz14350)) -> new_primCmpNat0(yuz144000, yuz14350) 53.00/33.40 new_primCmpInt(Neg(Zero), Neg(Zero)) -> EQ 53.00/33.40 new_primCmpInt(Pos(Zero), Neg(Succ(yuz143500))) -> GT 53.00/33.40 new_primCmpInt(Neg(Zero), Pos(Succ(yuz143500))) -> LT 53.00/33.40 new_primCmpInt(Pos(Succ(yuz144000)), Neg(yuz14350)) -> GT 53.00/33.40 new_primCmpInt(Pos(Zero), Neg(Zero)) -> EQ 53.00/33.40 new_primCmpInt(Neg(Zero), Pos(Zero)) -> EQ 53.00/33.40 new_primCmpInt(Pos(Zero), Pos(Zero)) -> EQ 53.00/33.40 new_esEs0(EQ) -> False 53.00/33.40 new_esEs0(LT) -> True 53.00/33.40 new_esEs0(GT) -> False 53.00/33.40 new_primCmpNat0(yuz144000, Succ(yuz143500)) -> new_primCmpNat1(yuz144000, yuz143500) 53.00/33.40 new_primCmpNat0(yuz144000, Zero) -> GT 53.00/33.40 new_primCmpNat1(Zero, Zero) -> EQ 53.00/33.40 new_primCmpNat1(Succ(yuz2800), Zero) -> GT 53.00/33.40 new_primCmpNat1(Succ(yuz2800), Succ(yuz330000)) -> new_primCmpNat1(yuz2800, yuz330000) 53.00/33.40 new_primCmpNat1(Zero, Succ(yuz330000)) -> LT 53.00/33.40 new_primCmpNat2(Succ(yuz143500), yuz144000) -> new_primCmpNat1(yuz143500, yuz144000) 53.00/33.40 new_primCmpNat2(Zero, yuz144000) -> LT 53.00/33.40 new_primMulNat2(Succ(yuz142500)) -> new_primPlusNat0(new_primMulNat3(Succ(Succ(Succ(Succ(Zero)))), yuz142500), Succ(yuz142500)) 53.00/33.40 new_primMulNat2(Zero) -> Zero 53.00/33.40 new_primMulNat3(Succ(yuz400000), yuz60100) -> new_primPlusNat1(new_primMulNat3(yuz400000, yuz60100), yuz60100) 53.00/33.40 new_primPlusNat0(Zero, Succ(yuz601000)) -> Succ(yuz601000) 53.00/33.40 new_primPlusNat0(Succ(yuz11200), Succ(yuz601000)) -> Succ(Succ(new_primPlusNat0(yuz11200, yuz601000))) 53.00/33.40 new_primPlusNat0(Succ(yuz11200), Zero) -> Succ(yuz11200) 53.00/33.40 new_primPlusNat0(Zero, Zero) -> Zero 53.00/33.40 new_primMulNat3(Zero, yuz60100) -> Zero 53.00/33.40 new_primPlusNat1(Zero, yuz60100) -> Succ(yuz60100) 53.00/33.40 new_primPlusNat1(Succ(yuz1120), yuz60100) -> Succ(Succ(new_primPlusNat0(yuz1120, yuz60100))) 53.00/33.40 new_sr0(Pos(yuz6000), Pos(yuz4010)) -> Pos(new_primMulNat1(yuz6000, yuz4010)) 53.00/33.40 new_sr0(Pos(yuz6000), Neg(yuz4010)) -> Neg(new_primMulNat1(yuz6000, yuz4010)) 53.00/33.40 new_mkVBalBranch3Size_r(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz12380, yuz12381, yuz12382, yuz12383, yuz12384, h, ba) -> new_sizeFM(yuz12380, yuz12381, yuz12382, yuz12383, yuz12384, h, ba) 53.00/33.40 new_primMulNat1(Zero, Zero) -> Zero 53.00/33.40 new_primMulNat1(Succ(yuz60000), Zero) -> Zero 53.00/33.40 new_primMulNat1(Zero, Succ(yuz40100)) -> Zero 53.00/33.40 new_primMulNat1(Succ(yuz60000), Succ(yuz40100)) -> new_primPlusNat0(new_primMulNat1(yuz60000, Succ(yuz40100)), Succ(yuz40100)) 53.00/33.40 53.00/33.40 The set Q consists of the following terms: 53.00/33.40 53.00/33.40 new_primCmpNat0(x0, Succ(x1)) 53.00/33.40 new_primCmpInt(Neg(Zero), Neg(Zero)) 53.00/33.40 new_primCmpInt(Pos(Zero), Neg(Succ(x0))) 53.00/33.40 new_primCmpInt(Neg(Zero), Pos(Succ(x0))) 53.00/33.40 new_primCmpInt(Pos(Zero), Pos(Succ(x0))) 53.00/33.40 new_primMulNat1(Succ(x0), Zero) 53.00/33.40 new_primCmpNat1(Succ(x0), Succ(x1)) 53.00/33.40 new_sr0(Pos(x0), Pos(x1)) 53.00/33.40 new_primCmpInt(Pos(Zero), Neg(Zero)) 53.00/33.40 new_primCmpInt(Neg(Zero), Pos(Zero)) 53.00/33.40 new_primCmpInt(Neg(Succ(x0)), Neg(x1)) 53.00/33.40 new_esEs0(LT) 53.00/33.40 new_primCmpNat1(Succ(x0), Zero) 53.00/33.40 new_sr1(Neg(x0)) 53.00/33.40 new_primMulNat2(Zero) 53.00/33.40 new_primCmpNat1(Zero, Succ(x0)) 53.00/33.40 new_primPlusNat0(Zero, Succ(x0)) 53.00/33.40 new_primCmpNat1(Zero, Zero) 53.00/33.40 new_primCmpInt(Neg(Succ(x0)), Pos(x1)) 53.00/33.40 new_primCmpNat2(Succ(x0), x1) 53.00/33.40 new_primCmpInt(Pos(Succ(x0)), Neg(x1)) 53.00/33.40 new_sr1(Pos(x0)) 53.00/33.40 new_esEs0(EQ) 53.00/33.40 new_primMulNat3(Zero, x0) 53.00/33.40 new_primCmpNat0(x0, Zero) 53.00/33.40 new_primPlusNat1(Succ(x0), x1) 53.00/33.40 new_primPlusNat1(Zero, x0) 53.00/33.40 new_primMulNat3(Succ(x0), x1) 53.00/33.40 new_primPlusNat0(Succ(x0), Succ(x1)) 53.00/33.40 new_primCmpInt(Pos(Succ(x0)), Pos(x1)) 53.00/33.40 new_primMulNat2(Succ(x0)) 53.00/33.40 new_mkVBalBranch3Size_r(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11) 53.00/33.40 new_sizeFM(x0, x1, x2, x3, x4, x5, x6) 53.00/33.40 new_primPlusNat0(Succ(x0), Zero) 53.00/33.40 new_sr0(Pos(x0), Neg(x1)) 53.00/33.40 new_sr0(Neg(x0), Pos(x1)) 53.00/33.40 new_sr0(Neg(x0), Neg(x1)) 53.00/33.40 new_primCmpNat2(Zero, x0) 53.00/33.40 new_esEs0(GT) 53.00/33.40 new_primCmpInt(Neg(Zero), Neg(Succ(x0))) 53.00/33.40 new_primMulNat1(Succ(x0), Succ(x1)) 53.00/33.40 new_primMulNat1(Zero, Zero) 53.00/33.40 new_primMulNat1(Zero, Succ(x0)) 53.00/33.40 new_primCmpInt(Pos(Zero), Pos(Zero)) 53.00/33.40 new_primPlusNat0(Zero, Zero) 53.00/33.40 53.00/33.40 We have to consider all minimal (P,Q,R)-chains. 53.00/33.40 ---------------------------------------- 53.00/33.40 53.00/33.40 (83) TransformationProof (EQUIVALENT) 53.00/33.40 By rewriting [LPAR04] the rule new_mkVBalBranch3MkVBalBranch2(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz12380, yuz12381, yuz12382, Branch(yuz123830, yuz123831, yuz123832, yuz123833, yuz123834), yuz12384, yuz1240, yuz1241, True, h, ba) -> new_mkVBalBranch3MkVBalBranch2(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz123830, yuz123831, yuz123832, yuz123833, yuz123834, yuz1240, yuz1241, new_esEs0(new_primCmpInt(new_sr0(Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), yuz12342), new_mkVBalBranch3Size_r(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz123830, yuz123831, yuz123832, yuz123833, yuz123834, h, ba))), h, ba) at position [12,0,1] we obtained the following new rules [LPAR04]: 53.00/33.40 53.00/33.40 (new_mkVBalBranch3MkVBalBranch2(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz12380, yuz12381, yuz12382, Branch(yuz123830, yuz123831, yuz123832, yuz123833, yuz123834), yuz12384, yuz1240, yuz1241, True, h, ba) -> new_mkVBalBranch3MkVBalBranch2(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz123830, yuz123831, yuz123832, yuz123833, yuz123834, yuz1240, yuz1241, new_esEs0(new_primCmpInt(new_sr0(Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), yuz12342), new_sizeFM(yuz123830, yuz123831, yuz123832, yuz123833, yuz123834, h, ba))), h, ba),new_mkVBalBranch3MkVBalBranch2(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz12380, yuz12381, yuz12382, Branch(yuz123830, yuz123831, yuz123832, yuz123833, yuz123834), yuz12384, yuz1240, yuz1241, True, h, ba) -> new_mkVBalBranch3MkVBalBranch2(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz123830, yuz123831, yuz123832, yuz123833, yuz123834, yuz1240, yuz1241, new_esEs0(new_primCmpInt(new_sr0(Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), yuz12342), new_sizeFM(yuz123830, yuz123831, yuz123832, yuz123833, yuz123834, h, ba))), h, ba)) 53.00/33.40 53.00/33.40 53.00/33.40 ---------------------------------------- 53.00/33.40 53.00/33.40 (84) 53.00/33.40 Obligation: 53.00/33.40 Q DP problem: 53.00/33.40 The TRS P consists of the following rules: 53.00/33.40 53.00/33.40 new_mkVBalBranch3MkVBalBranch1(yuz12340, yuz12341, yuz12342, yuz12343, Branch(yuz123440, yuz123441, yuz123442, yuz123443, yuz123444), yuz12380, yuz12381, yuz12382, yuz12383, yuz12384, yuz1240, yuz1241, True, h, ba) -> new_mkVBalBranch3(yuz1240, yuz1241, yuz123440, yuz123441, yuz123442, yuz123443, yuz123444, yuz12380, yuz12381, yuz12382, yuz12383, yuz12384, h, ba) 53.00/33.40 new_mkVBalBranch3MkVBalBranch2(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz12380, yuz12381, yuz12382, yuz12383, yuz12384, yuz1240, yuz1241, False, h, ba) -> new_mkVBalBranch3MkVBalBranch1(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz12380, yuz12381, yuz12382, yuz12383, yuz12384, yuz1240, yuz1241, new_esEs0(new_primCmpInt(new_sr1(yuz12382), new_sizeFM(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, h, ba))), h, ba) 53.00/33.40 new_mkVBalBranch3(yuz1240, yuz1241, yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz123830, yuz123831, yuz123832, yuz123833, yuz123834, h, ba) -> new_mkVBalBranch3MkVBalBranch2(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz123830, yuz123831, yuz123832, yuz123833, yuz123834, yuz1240, yuz1241, new_esEs0(new_primCmpInt(new_sr0(Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), yuz12342), new_mkVBalBranch3Size_r(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz123830, yuz123831, yuz123832, yuz123833, yuz123834, h, ba))), h, ba) 53.00/33.40 new_mkVBalBranch3MkVBalBranch2(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz12380, yuz12381, yuz12382, Branch(yuz123830, yuz123831, yuz123832, yuz123833, yuz123834), yuz12384, yuz1240, yuz1241, True, h, ba) -> new_mkVBalBranch3MkVBalBranch2(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz123830, yuz123831, yuz123832, yuz123833, yuz123834, yuz1240, yuz1241, new_esEs0(new_primCmpInt(new_sr0(Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), yuz12342), new_sizeFM(yuz123830, yuz123831, yuz123832, yuz123833, yuz123834, h, ba))), h, ba) 53.00/33.40 53.00/33.40 The TRS R consists of the following rules: 53.00/33.40 53.00/33.40 new_sr1(Pos(yuz14250)) -> Pos(new_primMulNat2(yuz14250)) 53.00/33.40 new_sr1(Neg(yuz14250)) -> Neg(new_primMulNat2(yuz14250)) 53.00/33.40 new_sizeFM(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, h, ba) -> yuz12342 53.00/33.40 new_primCmpInt(Neg(Succ(yuz144000)), Pos(yuz14350)) -> LT 53.00/33.40 new_primCmpInt(Pos(Zero), Pos(Succ(yuz143500))) -> new_primCmpNat2(Zero, yuz143500) 53.00/33.40 new_primCmpInt(Neg(Succ(yuz144000)), Neg(yuz14350)) -> new_primCmpNat2(yuz14350, yuz144000) 53.00/33.40 new_primCmpInt(Neg(Zero), Neg(Succ(yuz143500))) -> new_primCmpNat0(yuz143500, Zero) 53.00/33.40 new_primCmpInt(Pos(Succ(yuz144000)), Pos(yuz14350)) -> new_primCmpNat0(yuz144000, yuz14350) 53.00/33.40 new_primCmpInt(Neg(Zero), Neg(Zero)) -> EQ 53.00/33.40 new_primCmpInt(Pos(Zero), Neg(Succ(yuz143500))) -> GT 53.00/33.40 new_primCmpInt(Neg(Zero), Pos(Succ(yuz143500))) -> LT 53.00/33.40 new_primCmpInt(Pos(Succ(yuz144000)), Neg(yuz14350)) -> GT 53.00/33.40 new_primCmpInt(Pos(Zero), Neg(Zero)) -> EQ 53.00/33.40 new_primCmpInt(Neg(Zero), Pos(Zero)) -> EQ 53.00/33.40 new_primCmpInt(Pos(Zero), Pos(Zero)) -> EQ 53.00/33.40 new_esEs0(EQ) -> False 53.00/33.40 new_esEs0(LT) -> True 53.00/33.40 new_esEs0(GT) -> False 53.00/33.40 new_primCmpNat0(yuz144000, Succ(yuz143500)) -> new_primCmpNat1(yuz144000, yuz143500) 53.00/33.40 new_primCmpNat0(yuz144000, Zero) -> GT 53.00/33.40 new_primCmpNat1(Zero, Zero) -> EQ 53.00/33.40 new_primCmpNat1(Succ(yuz2800), Zero) -> GT 53.00/33.40 new_primCmpNat1(Succ(yuz2800), Succ(yuz330000)) -> new_primCmpNat1(yuz2800, yuz330000) 53.00/33.40 new_primCmpNat1(Zero, Succ(yuz330000)) -> LT 53.00/33.40 new_primCmpNat2(Succ(yuz143500), yuz144000) -> new_primCmpNat1(yuz143500, yuz144000) 53.00/33.40 new_primCmpNat2(Zero, yuz144000) -> LT 53.00/33.40 new_primMulNat2(Succ(yuz142500)) -> new_primPlusNat0(new_primMulNat3(Succ(Succ(Succ(Succ(Zero)))), yuz142500), Succ(yuz142500)) 53.00/33.40 new_primMulNat2(Zero) -> Zero 53.00/33.40 new_primMulNat3(Succ(yuz400000), yuz60100) -> new_primPlusNat1(new_primMulNat3(yuz400000, yuz60100), yuz60100) 53.00/33.40 new_primPlusNat0(Zero, Succ(yuz601000)) -> Succ(yuz601000) 53.00/33.40 new_primPlusNat0(Succ(yuz11200), Succ(yuz601000)) -> Succ(Succ(new_primPlusNat0(yuz11200, yuz601000))) 53.00/33.40 new_primPlusNat0(Succ(yuz11200), Zero) -> Succ(yuz11200) 53.00/33.40 new_primPlusNat0(Zero, Zero) -> Zero 53.00/33.40 new_primMulNat3(Zero, yuz60100) -> Zero 53.00/33.40 new_primPlusNat1(Zero, yuz60100) -> Succ(yuz60100) 53.00/33.40 new_primPlusNat1(Succ(yuz1120), yuz60100) -> Succ(Succ(new_primPlusNat0(yuz1120, yuz60100))) 53.00/33.40 new_sr0(Pos(yuz6000), Pos(yuz4010)) -> Pos(new_primMulNat1(yuz6000, yuz4010)) 53.00/33.40 new_sr0(Pos(yuz6000), Neg(yuz4010)) -> Neg(new_primMulNat1(yuz6000, yuz4010)) 53.00/33.40 new_mkVBalBranch3Size_r(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz12380, yuz12381, yuz12382, yuz12383, yuz12384, h, ba) -> new_sizeFM(yuz12380, yuz12381, yuz12382, yuz12383, yuz12384, h, ba) 53.00/33.40 new_primMulNat1(Zero, Zero) -> Zero 53.00/33.40 new_primMulNat1(Succ(yuz60000), Zero) -> Zero 53.00/33.40 new_primMulNat1(Zero, Succ(yuz40100)) -> Zero 53.00/33.40 new_primMulNat1(Succ(yuz60000), Succ(yuz40100)) -> new_primPlusNat0(new_primMulNat1(yuz60000, Succ(yuz40100)), Succ(yuz40100)) 53.00/33.40 53.00/33.40 The set Q consists of the following terms: 53.00/33.40 53.00/33.40 new_primCmpNat0(x0, Succ(x1)) 53.00/33.40 new_primCmpInt(Neg(Zero), Neg(Zero)) 53.00/33.40 new_primCmpInt(Pos(Zero), Neg(Succ(x0))) 53.00/33.40 new_primCmpInt(Neg(Zero), Pos(Succ(x0))) 53.00/33.40 new_primCmpInt(Pos(Zero), Pos(Succ(x0))) 53.00/33.40 new_primMulNat1(Succ(x0), Zero) 53.00/33.40 new_primCmpNat1(Succ(x0), Succ(x1)) 53.00/33.40 new_sr0(Pos(x0), Pos(x1)) 53.00/33.40 new_primCmpInt(Pos(Zero), Neg(Zero)) 53.00/33.40 new_primCmpInt(Neg(Zero), Pos(Zero)) 53.00/33.40 new_primCmpInt(Neg(Succ(x0)), Neg(x1)) 53.00/33.40 new_esEs0(LT) 53.00/33.40 new_primCmpNat1(Succ(x0), Zero) 53.00/33.40 new_sr1(Neg(x0)) 53.00/33.40 new_primMulNat2(Zero) 53.00/33.40 new_primCmpNat1(Zero, Succ(x0)) 53.00/33.40 new_primPlusNat0(Zero, Succ(x0)) 53.00/33.40 new_primCmpNat1(Zero, Zero) 53.00/33.40 new_primCmpInt(Neg(Succ(x0)), Pos(x1)) 53.00/33.40 new_primCmpNat2(Succ(x0), x1) 53.00/33.40 new_primCmpInt(Pos(Succ(x0)), Neg(x1)) 53.00/33.40 new_sr1(Pos(x0)) 53.00/33.40 new_esEs0(EQ) 53.00/33.40 new_primMulNat3(Zero, x0) 53.00/33.40 new_primCmpNat0(x0, Zero) 53.00/33.40 new_primPlusNat1(Succ(x0), x1) 53.00/33.40 new_primPlusNat1(Zero, x0) 53.00/33.40 new_primMulNat3(Succ(x0), x1) 53.00/33.40 new_primPlusNat0(Succ(x0), Succ(x1)) 53.00/33.40 new_primCmpInt(Pos(Succ(x0)), Pos(x1)) 53.00/33.40 new_primMulNat2(Succ(x0)) 53.00/33.40 new_mkVBalBranch3Size_r(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11) 53.00/33.40 new_sizeFM(x0, x1, x2, x3, x4, x5, x6) 53.00/33.40 new_primPlusNat0(Succ(x0), Zero) 53.00/33.40 new_sr0(Pos(x0), Neg(x1)) 53.00/33.40 new_sr0(Neg(x0), Pos(x1)) 53.00/33.40 new_sr0(Neg(x0), Neg(x1)) 53.00/33.40 new_primCmpNat2(Zero, x0) 53.00/33.40 new_esEs0(GT) 53.00/33.40 new_primCmpInt(Neg(Zero), Neg(Succ(x0))) 53.00/33.40 new_primMulNat1(Succ(x0), Succ(x1)) 53.00/33.40 new_primMulNat1(Zero, Zero) 53.00/33.40 new_primMulNat1(Zero, Succ(x0)) 53.00/33.40 new_primCmpInt(Pos(Zero), Pos(Zero)) 53.00/33.40 new_primPlusNat0(Zero, Zero) 53.00/33.40 53.00/33.40 We have to consider all minimal (P,Q,R)-chains. 53.00/33.40 ---------------------------------------- 53.00/33.40 53.00/33.40 (85) TransformationProof (EQUIVALENT) 53.00/33.40 By rewriting [LPAR04] the rule new_mkVBalBranch3MkVBalBranch2(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz12380, yuz12381, yuz12382, yuz12383, yuz12384, yuz1240, yuz1241, False, h, ba) -> new_mkVBalBranch3MkVBalBranch1(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz12380, yuz12381, yuz12382, yuz12383, yuz12384, yuz1240, yuz1241, new_esEs0(new_primCmpInt(new_sr1(yuz12382), new_sizeFM(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, h, ba))), h, ba) at position [12,0,1] we obtained the following new rules [LPAR04]: 53.00/33.40 53.00/33.40 (new_mkVBalBranch3MkVBalBranch2(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz12380, yuz12381, yuz12382, yuz12383, yuz12384, yuz1240, yuz1241, False, h, ba) -> new_mkVBalBranch3MkVBalBranch1(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz12380, yuz12381, yuz12382, yuz12383, yuz12384, yuz1240, yuz1241, new_esEs0(new_primCmpInt(new_sr1(yuz12382), yuz12342)), h, ba),new_mkVBalBranch3MkVBalBranch2(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz12380, yuz12381, yuz12382, yuz12383, yuz12384, yuz1240, yuz1241, False, h, ba) -> new_mkVBalBranch3MkVBalBranch1(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz12380, yuz12381, yuz12382, yuz12383, yuz12384, yuz1240, yuz1241, new_esEs0(new_primCmpInt(new_sr1(yuz12382), yuz12342)), h, ba)) 53.00/33.40 53.00/33.40 53.00/33.40 ---------------------------------------- 53.00/33.40 53.00/33.40 (86) 53.00/33.40 Obligation: 53.00/33.40 Q DP problem: 53.00/33.40 The TRS P consists of the following rules: 53.00/33.40 53.00/33.40 new_mkVBalBranch3MkVBalBranch1(yuz12340, yuz12341, yuz12342, yuz12343, Branch(yuz123440, yuz123441, yuz123442, yuz123443, yuz123444), yuz12380, yuz12381, yuz12382, yuz12383, yuz12384, yuz1240, yuz1241, True, h, ba) -> new_mkVBalBranch3(yuz1240, yuz1241, yuz123440, yuz123441, yuz123442, yuz123443, yuz123444, yuz12380, yuz12381, yuz12382, yuz12383, yuz12384, h, ba) 53.00/33.41 new_mkVBalBranch3(yuz1240, yuz1241, yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz123830, yuz123831, yuz123832, yuz123833, yuz123834, h, ba) -> new_mkVBalBranch3MkVBalBranch2(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz123830, yuz123831, yuz123832, yuz123833, yuz123834, yuz1240, yuz1241, new_esEs0(new_primCmpInt(new_sr0(Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), yuz12342), new_mkVBalBranch3Size_r(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz123830, yuz123831, yuz123832, yuz123833, yuz123834, h, ba))), h, ba) 53.00/33.41 new_mkVBalBranch3MkVBalBranch2(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz12380, yuz12381, yuz12382, Branch(yuz123830, yuz123831, yuz123832, yuz123833, yuz123834), yuz12384, yuz1240, yuz1241, True, h, ba) -> new_mkVBalBranch3MkVBalBranch2(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz123830, yuz123831, yuz123832, yuz123833, yuz123834, yuz1240, yuz1241, new_esEs0(new_primCmpInt(new_sr0(Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), yuz12342), new_sizeFM(yuz123830, yuz123831, yuz123832, yuz123833, yuz123834, h, ba))), h, ba) 53.00/33.41 new_mkVBalBranch3MkVBalBranch2(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz12380, yuz12381, yuz12382, yuz12383, yuz12384, yuz1240, yuz1241, False, h, ba) -> new_mkVBalBranch3MkVBalBranch1(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz12380, yuz12381, yuz12382, yuz12383, yuz12384, yuz1240, yuz1241, new_esEs0(new_primCmpInt(new_sr1(yuz12382), yuz12342)), h, ba) 53.00/33.41 53.00/33.41 The TRS R consists of the following rules: 53.00/33.41 53.00/33.41 new_sr1(Pos(yuz14250)) -> Pos(new_primMulNat2(yuz14250)) 53.00/33.41 new_sr1(Neg(yuz14250)) -> Neg(new_primMulNat2(yuz14250)) 53.00/33.41 new_sizeFM(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, h, ba) -> yuz12342 53.00/33.41 new_primCmpInt(Neg(Succ(yuz144000)), Pos(yuz14350)) -> LT 53.00/33.41 new_primCmpInt(Pos(Zero), Pos(Succ(yuz143500))) -> new_primCmpNat2(Zero, yuz143500) 53.00/33.41 new_primCmpInt(Neg(Succ(yuz144000)), Neg(yuz14350)) -> new_primCmpNat2(yuz14350, yuz144000) 53.00/33.41 new_primCmpInt(Neg(Zero), Neg(Succ(yuz143500))) -> new_primCmpNat0(yuz143500, Zero) 53.00/33.41 new_primCmpInt(Pos(Succ(yuz144000)), Pos(yuz14350)) -> new_primCmpNat0(yuz144000, yuz14350) 53.00/33.41 new_primCmpInt(Neg(Zero), Neg(Zero)) -> EQ 53.00/33.41 new_primCmpInt(Pos(Zero), Neg(Succ(yuz143500))) -> GT 53.00/33.41 new_primCmpInt(Neg(Zero), Pos(Succ(yuz143500))) -> LT 53.00/33.41 new_primCmpInt(Pos(Succ(yuz144000)), Neg(yuz14350)) -> GT 53.00/33.41 new_primCmpInt(Pos(Zero), Neg(Zero)) -> EQ 53.00/33.41 new_primCmpInt(Neg(Zero), Pos(Zero)) -> EQ 53.00/33.41 new_primCmpInt(Pos(Zero), Pos(Zero)) -> EQ 53.00/33.41 new_esEs0(EQ) -> False 53.00/33.41 new_esEs0(LT) -> True 53.00/33.41 new_esEs0(GT) -> False 53.00/33.41 new_primCmpNat0(yuz144000, Succ(yuz143500)) -> new_primCmpNat1(yuz144000, yuz143500) 53.00/33.41 new_primCmpNat0(yuz144000, Zero) -> GT 53.00/33.41 new_primCmpNat1(Zero, Zero) -> EQ 53.00/33.41 new_primCmpNat1(Succ(yuz2800), Zero) -> GT 53.00/33.41 new_primCmpNat1(Succ(yuz2800), Succ(yuz330000)) -> new_primCmpNat1(yuz2800, yuz330000) 53.00/33.41 new_primCmpNat1(Zero, Succ(yuz330000)) -> LT 53.00/33.41 new_primCmpNat2(Succ(yuz143500), yuz144000) -> new_primCmpNat1(yuz143500, yuz144000) 53.00/33.41 new_primCmpNat2(Zero, yuz144000) -> LT 53.00/33.41 new_primMulNat2(Succ(yuz142500)) -> new_primPlusNat0(new_primMulNat3(Succ(Succ(Succ(Succ(Zero)))), yuz142500), Succ(yuz142500)) 53.00/33.41 new_primMulNat2(Zero) -> Zero 53.00/33.41 new_primMulNat3(Succ(yuz400000), yuz60100) -> new_primPlusNat1(new_primMulNat3(yuz400000, yuz60100), yuz60100) 53.00/33.41 new_primPlusNat0(Zero, Succ(yuz601000)) -> Succ(yuz601000) 53.00/33.41 new_primPlusNat0(Succ(yuz11200), Succ(yuz601000)) -> Succ(Succ(new_primPlusNat0(yuz11200, yuz601000))) 53.00/33.41 new_primPlusNat0(Succ(yuz11200), Zero) -> Succ(yuz11200) 53.00/33.41 new_primPlusNat0(Zero, Zero) -> Zero 53.00/33.41 new_primMulNat3(Zero, yuz60100) -> Zero 53.00/33.41 new_primPlusNat1(Zero, yuz60100) -> Succ(yuz60100) 53.00/33.41 new_primPlusNat1(Succ(yuz1120), yuz60100) -> Succ(Succ(new_primPlusNat0(yuz1120, yuz60100))) 53.00/33.41 new_sr0(Pos(yuz6000), Pos(yuz4010)) -> Pos(new_primMulNat1(yuz6000, yuz4010)) 53.00/33.41 new_sr0(Pos(yuz6000), Neg(yuz4010)) -> Neg(new_primMulNat1(yuz6000, yuz4010)) 53.00/33.41 new_mkVBalBranch3Size_r(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz12380, yuz12381, yuz12382, yuz12383, yuz12384, h, ba) -> new_sizeFM(yuz12380, yuz12381, yuz12382, yuz12383, yuz12384, h, ba) 53.00/33.41 new_primMulNat1(Zero, Zero) -> Zero 53.00/33.41 new_primMulNat1(Succ(yuz60000), Zero) -> Zero 53.00/33.41 new_primMulNat1(Zero, Succ(yuz40100)) -> Zero 53.00/33.41 new_primMulNat1(Succ(yuz60000), Succ(yuz40100)) -> new_primPlusNat0(new_primMulNat1(yuz60000, Succ(yuz40100)), Succ(yuz40100)) 53.00/33.41 53.00/33.41 The set Q consists of the following terms: 53.00/33.41 53.00/33.41 new_primCmpNat0(x0, Succ(x1)) 53.00/33.41 new_primCmpInt(Neg(Zero), Neg(Zero)) 53.00/33.41 new_primCmpInt(Pos(Zero), Neg(Succ(x0))) 53.00/33.41 new_primCmpInt(Neg(Zero), Pos(Succ(x0))) 53.00/33.41 new_primCmpInt(Pos(Zero), Pos(Succ(x0))) 53.00/33.41 new_primMulNat1(Succ(x0), Zero) 53.00/33.41 new_primCmpNat1(Succ(x0), Succ(x1)) 53.00/33.41 new_sr0(Pos(x0), Pos(x1)) 53.00/33.41 new_primCmpInt(Pos(Zero), Neg(Zero)) 53.00/33.41 new_primCmpInt(Neg(Zero), Pos(Zero)) 53.00/33.41 new_primCmpInt(Neg(Succ(x0)), Neg(x1)) 53.00/33.41 new_esEs0(LT) 53.00/33.41 new_primCmpNat1(Succ(x0), Zero) 53.00/33.41 new_sr1(Neg(x0)) 53.00/33.41 new_primMulNat2(Zero) 53.00/33.41 new_primCmpNat1(Zero, Succ(x0)) 53.00/33.41 new_primPlusNat0(Zero, Succ(x0)) 53.00/33.41 new_primCmpNat1(Zero, Zero) 53.00/33.41 new_primCmpInt(Neg(Succ(x0)), Pos(x1)) 53.00/33.41 new_primCmpNat2(Succ(x0), x1) 53.00/33.41 new_primCmpInt(Pos(Succ(x0)), Neg(x1)) 53.00/33.41 new_sr1(Pos(x0)) 53.00/33.41 new_esEs0(EQ) 53.00/33.41 new_primMulNat3(Zero, x0) 53.00/33.41 new_primCmpNat0(x0, Zero) 53.00/33.41 new_primPlusNat1(Succ(x0), x1) 53.00/33.41 new_primPlusNat1(Zero, x0) 53.00/33.41 new_primMulNat3(Succ(x0), x1) 53.00/33.41 new_primPlusNat0(Succ(x0), Succ(x1)) 53.00/33.41 new_primCmpInt(Pos(Succ(x0)), Pos(x1)) 53.00/33.41 new_primMulNat2(Succ(x0)) 53.00/33.41 new_mkVBalBranch3Size_r(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11) 53.00/33.41 new_sizeFM(x0, x1, x2, x3, x4, x5, x6) 53.00/33.41 new_primPlusNat0(Succ(x0), Zero) 53.00/33.41 new_sr0(Pos(x0), Neg(x1)) 53.00/33.41 new_sr0(Neg(x0), Pos(x1)) 53.00/33.41 new_sr0(Neg(x0), Neg(x1)) 53.00/33.41 new_primCmpNat2(Zero, x0) 53.00/33.41 new_esEs0(GT) 53.00/33.41 new_primCmpInt(Neg(Zero), Neg(Succ(x0))) 53.00/33.41 new_primMulNat1(Succ(x0), Succ(x1)) 53.00/33.41 new_primMulNat1(Zero, Zero) 53.00/33.41 new_primMulNat1(Zero, Succ(x0)) 53.00/33.41 new_primCmpInt(Pos(Zero), Pos(Zero)) 53.00/33.41 new_primPlusNat0(Zero, Zero) 53.00/33.41 53.00/33.41 We have to consider all minimal (P,Q,R)-chains. 53.00/33.41 ---------------------------------------- 53.00/33.41 53.00/33.41 (87) TransformationProof (EQUIVALENT) 53.00/33.41 By rewriting [LPAR04] the rule new_mkVBalBranch3(yuz1240, yuz1241, yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz123830, yuz123831, yuz123832, yuz123833, yuz123834, h, ba) -> new_mkVBalBranch3MkVBalBranch2(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz123830, yuz123831, yuz123832, yuz123833, yuz123834, yuz1240, yuz1241, new_esEs0(new_primCmpInt(new_sr0(Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), yuz12342), new_mkVBalBranch3Size_r(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz123830, yuz123831, yuz123832, yuz123833, yuz123834, h, ba))), h, ba) at position [12,0,1] we obtained the following new rules [LPAR04]: 53.00/33.41 53.00/33.41 (new_mkVBalBranch3(yuz1240, yuz1241, yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz123830, yuz123831, yuz123832, yuz123833, yuz123834, h, ba) -> new_mkVBalBranch3MkVBalBranch2(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz123830, yuz123831, yuz123832, yuz123833, yuz123834, yuz1240, yuz1241, new_esEs0(new_primCmpInt(new_sr0(Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), yuz12342), new_sizeFM(yuz123830, yuz123831, yuz123832, yuz123833, yuz123834, h, ba))), h, ba),new_mkVBalBranch3(yuz1240, yuz1241, yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz123830, yuz123831, yuz123832, yuz123833, yuz123834, h, ba) -> new_mkVBalBranch3MkVBalBranch2(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz123830, yuz123831, yuz123832, yuz123833, yuz123834, yuz1240, yuz1241, new_esEs0(new_primCmpInt(new_sr0(Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), yuz12342), new_sizeFM(yuz123830, yuz123831, yuz123832, yuz123833, yuz123834, h, ba))), h, ba)) 53.00/33.41 53.00/33.41 53.00/33.41 ---------------------------------------- 53.00/33.41 53.00/33.41 (88) 53.00/33.41 Obligation: 53.00/33.41 Q DP problem: 53.00/33.41 The TRS P consists of the following rules: 53.00/33.41 53.00/33.41 new_mkVBalBranch3MkVBalBranch1(yuz12340, yuz12341, yuz12342, yuz12343, Branch(yuz123440, yuz123441, yuz123442, yuz123443, yuz123444), yuz12380, yuz12381, yuz12382, yuz12383, yuz12384, yuz1240, yuz1241, True, h, ba) -> new_mkVBalBranch3(yuz1240, yuz1241, yuz123440, yuz123441, yuz123442, yuz123443, yuz123444, yuz12380, yuz12381, yuz12382, yuz12383, yuz12384, h, ba) 53.00/33.41 new_mkVBalBranch3MkVBalBranch2(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz12380, yuz12381, yuz12382, Branch(yuz123830, yuz123831, yuz123832, yuz123833, yuz123834), yuz12384, yuz1240, yuz1241, True, h, ba) -> new_mkVBalBranch3MkVBalBranch2(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz123830, yuz123831, yuz123832, yuz123833, yuz123834, yuz1240, yuz1241, new_esEs0(new_primCmpInt(new_sr0(Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), yuz12342), new_sizeFM(yuz123830, yuz123831, yuz123832, yuz123833, yuz123834, h, ba))), h, ba) 53.00/33.41 new_mkVBalBranch3MkVBalBranch2(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz12380, yuz12381, yuz12382, yuz12383, yuz12384, yuz1240, yuz1241, False, h, ba) -> new_mkVBalBranch3MkVBalBranch1(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz12380, yuz12381, yuz12382, yuz12383, yuz12384, yuz1240, yuz1241, new_esEs0(new_primCmpInt(new_sr1(yuz12382), yuz12342)), h, ba) 53.00/33.41 new_mkVBalBranch3(yuz1240, yuz1241, yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz123830, yuz123831, yuz123832, yuz123833, yuz123834, h, ba) -> new_mkVBalBranch3MkVBalBranch2(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz123830, yuz123831, yuz123832, yuz123833, yuz123834, yuz1240, yuz1241, new_esEs0(new_primCmpInt(new_sr0(Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), yuz12342), new_sizeFM(yuz123830, yuz123831, yuz123832, yuz123833, yuz123834, h, ba))), h, ba) 53.00/33.41 53.00/33.41 The TRS R consists of the following rules: 53.00/33.41 53.00/33.41 new_sr1(Pos(yuz14250)) -> Pos(new_primMulNat2(yuz14250)) 53.00/33.41 new_sr1(Neg(yuz14250)) -> Neg(new_primMulNat2(yuz14250)) 53.00/33.41 new_sizeFM(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, h, ba) -> yuz12342 53.00/33.41 new_primCmpInt(Neg(Succ(yuz144000)), Pos(yuz14350)) -> LT 53.00/33.41 new_primCmpInt(Pos(Zero), Pos(Succ(yuz143500))) -> new_primCmpNat2(Zero, yuz143500) 53.00/33.41 new_primCmpInt(Neg(Succ(yuz144000)), Neg(yuz14350)) -> new_primCmpNat2(yuz14350, yuz144000) 53.00/33.41 new_primCmpInt(Neg(Zero), Neg(Succ(yuz143500))) -> new_primCmpNat0(yuz143500, Zero) 53.00/33.41 new_primCmpInt(Pos(Succ(yuz144000)), Pos(yuz14350)) -> new_primCmpNat0(yuz144000, yuz14350) 53.00/33.41 new_primCmpInt(Neg(Zero), Neg(Zero)) -> EQ 53.00/33.41 new_primCmpInt(Pos(Zero), Neg(Succ(yuz143500))) -> GT 53.00/33.41 new_primCmpInt(Neg(Zero), Pos(Succ(yuz143500))) -> LT 53.00/33.41 new_primCmpInt(Pos(Succ(yuz144000)), Neg(yuz14350)) -> GT 53.00/33.41 new_primCmpInt(Pos(Zero), Neg(Zero)) -> EQ 53.00/33.41 new_primCmpInt(Neg(Zero), Pos(Zero)) -> EQ 53.00/33.41 new_primCmpInt(Pos(Zero), Pos(Zero)) -> EQ 53.00/33.41 new_esEs0(EQ) -> False 53.00/33.41 new_esEs0(LT) -> True 53.00/33.41 new_esEs0(GT) -> False 53.00/33.41 new_primCmpNat0(yuz144000, Succ(yuz143500)) -> new_primCmpNat1(yuz144000, yuz143500) 53.00/33.41 new_primCmpNat0(yuz144000, Zero) -> GT 53.00/33.41 new_primCmpNat1(Zero, Zero) -> EQ 53.00/33.41 new_primCmpNat1(Succ(yuz2800), Zero) -> GT 53.00/33.41 new_primCmpNat1(Succ(yuz2800), Succ(yuz330000)) -> new_primCmpNat1(yuz2800, yuz330000) 53.00/33.41 new_primCmpNat1(Zero, Succ(yuz330000)) -> LT 53.00/33.41 new_primCmpNat2(Succ(yuz143500), yuz144000) -> new_primCmpNat1(yuz143500, yuz144000) 53.00/33.41 new_primCmpNat2(Zero, yuz144000) -> LT 53.00/33.41 new_primMulNat2(Succ(yuz142500)) -> new_primPlusNat0(new_primMulNat3(Succ(Succ(Succ(Succ(Zero)))), yuz142500), Succ(yuz142500)) 53.00/33.41 new_primMulNat2(Zero) -> Zero 53.00/33.41 new_primMulNat3(Succ(yuz400000), yuz60100) -> new_primPlusNat1(new_primMulNat3(yuz400000, yuz60100), yuz60100) 53.00/33.41 new_primPlusNat0(Zero, Succ(yuz601000)) -> Succ(yuz601000) 53.00/33.41 new_primPlusNat0(Succ(yuz11200), Succ(yuz601000)) -> Succ(Succ(new_primPlusNat0(yuz11200, yuz601000))) 53.00/33.41 new_primPlusNat0(Succ(yuz11200), Zero) -> Succ(yuz11200) 53.00/33.41 new_primPlusNat0(Zero, Zero) -> Zero 53.00/33.41 new_primMulNat3(Zero, yuz60100) -> Zero 53.00/33.41 new_primPlusNat1(Zero, yuz60100) -> Succ(yuz60100) 53.00/33.41 new_primPlusNat1(Succ(yuz1120), yuz60100) -> Succ(Succ(new_primPlusNat0(yuz1120, yuz60100))) 53.00/33.41 new_sr0(Pos(yuz6000), Pos(yuz4010)) -> Pos(new_primMulNat1(yuz6000, yuz4010)) 53.00/33.41 new_sr0(Pos(yuz6000), Neg(yuz4010)) -> Neg(new_primMulNat1(yuz6000, yuz4010)) 53.00/33.41 new_mkVBalBranch3Size_r(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz12380, yuz12381, yuz12382, yuz12383, yuz12384, h, ba) -> new_sizeFM(yuz12380, yuz12381, yuz12382, yuz12383, yuz12384, h, ba) 53.00/33.41 new_primMulNat1(Zero, Zero) -> Zero 53.00/33.41 new_primMulNat1(Succ(yuz60000), Zero) -> Zero 53.00/33.41 new_primMulNat1(Zero, Succ(yuz40100)) -> Zero 53.00/33.41 new_primMulNat1(Succ(yuz60000), Succ(yuz40100)) -> new_primPlusNat0(new_primMulNat1(yuz60000, Succ(yuz40100)), Succ(yuz40100)) 53.00/33.41 53.00/33.41 The set Q consists of the following terms: 53.00/33.41 53.00/33.41 new_primCmpNat0(x0, Succ(x1)) 53.00/33.41 new_primCmpInt(Neg(Zero), Neg(Zero)) 53.00/33.41 new_primCmpInt(Pos(Zero), Neg(Succ(x0))) 53.00/33.41 new_primCmpInt(Neg(Zero), Pos(Succ(x0))) 53.00/33.41 new_primCmpInt(Pos(Zero), Pos(Succ(x0))) 53.00/33.41 new_primMulNat1(Succ(x0), Zero) 53.00/33.41 new_primCmpNat1(Succ(x0), Succ(x1)) 53.00/33.41 new_sr0(Pos(x0), Pos(x1)) 53.00/33.41 new_primCmpInt(Pos(Zero), Neg(Zero)) 53.00/33.41 new_primCmpInt(Neg(Zero), Pos(Zero)) 53.00/33.41 new_primCmpInt(Neg(Succ(x0)), Neg(x1)) 53.00/33.41 new_esEs0(LT) 53.00/33.41 new_primCmpNat1(Succ(x0), Zero) 53.00/33.41 new_sr1(Neg(x0)) 53.00/33.41 new_primMulNat2(Zero) 53.00/33.41 new_primCmpNat1(Zero, Succ(x0)) 53.00/33.41 new_primPlusNat0(Zero, Succ(x0)) 53.00/33.41 new_primCmpNat1(Zero, Zero) 53.00/33.41 new_primCmpInt(Neg(Succ(x0)), Pos(x1)) 53.00/33.41 new_primCmpNat2(Succ(x0), x1) 53.00/33.41 new_primCmpInt(Pos(Succ(x0)), Neg(x1)) 53.00/33.41 new_sr1(Pos(x0)) 53.00/33.41 new_esEs0(EQ) 53.00/33.41 new_primMulNat3(Zero, x0) 53.00/33.41 new_primCmpNat0(x0, Zero) 53.00/33.41 new_primPlusNat1(Succ(x0), x1) 53.00/33.41 new_primPlusNat1(Zero, x0) 53.00/33.41 new_primMulNat3(Succ(x0), x1) 53.00/33.41 new_primPlusNat0(Succ(x0), Succ(x1)) 53.00/33.41 new_primCmpInt(Pos(Succ(x0)), Pos(x1)) 53.00/33.41 new_primMulNat2(Succ(x0)) 53.00/33.41 new_mkVBalBranch3Size_r(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11) 53.00/33.41 new_sizeFM(x0, x1, x2, x3, x4, x5, x6) 53.00/33.41 new_primPlusNat0(Succ(x0), Zero) 53.00/33.41 new_sr0(Pos(x0), Neg(x1)) 53.00/33.41 new_sr0(Neg(x0), Pos(x1)) 53.00/33.41 new_sr0(Neg(x0), Neg(x1)) 53.00/33.41 new_primCmpNat2(Zero, x0) 53.00/33.41 new_esEs0(GT) 53.00/33.41 new_primCmpInt(Neg(Zero), Neg(Succ(x0))) 53.00/33.41 new_primMulNat1(Succ(x0), Succ(x1)) 53.00/33.41 new_primMulNat1(Zero, Zero) 53.00/33.41 new_primMulNat1(Zero, Succ(x0)) 53.00/33.41 new_primCmpInt(Pos(Zero), Pos(Zero)) 53.00/33.41 new_primPlusNat0(Zero, Zero) 53.00/33.41 53.00/33.41 We have to consider all minimal (P,Q,R)-chains. 53.00/33.41 ---------------------------------------- 53.00/33.41 53.00/33.41 (89) UsableRulesProof (EQUIVALENT) 53.00/33.41 As all Q-normal forms are R-normal forms we are in the innermost case. Hence, by the usable rules processor [LPAR04] we can delete all non-usable rules [FROCOS05] from R. 53.00/33.41 ---------------------------------------- 53.00/33.41 53.00/33.41 (90) 53.00/33.41 Obligation: 53.00/33.41 Q DP problem: 53.00/33.41 The TRS P consists of the following rules: 53.00/33.41 53.00/33.41 new_mkVBalBranch3MkVBalBranch1(yuz12340, yuz12341, yuz12342, yuz12343, Branch(yuz123440, yuz123441, yuz123442, yuz123443, yuz123444), yuz12380, yuz12381, yuz12382, yuz12383, yuz12384, yuz1240, yuz1241, True, h, ba) -> new_mkVBalBranch3(yuz1240, yuz1241, yuz123440, yuz123441, yuz123442, yuz123443, yuz123444, yuz12380, yuz12381, yuz12382, yuz12383, yuz12384, h, ba) 53.00/33.41 new_mkVBalBranch3MkVBalBranch2(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz12380, yuz12381, yuz12382, Branch(yuz123830, yuz123831, yuz123832, yuz123833, yuz123834), yuz12384, yuz1240, yuz1241, True, h, ba) -> new_mkVBalBranch3MkVBalBranch2(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz123830, yuz123831, yuz123832, yuz123833, yuz123834, yuz1240, yuz1241, new_esEs0(new_primCmpInt(new_sr0(Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), yuz12342), new_sizeFM(yuz123830, yuz123831, yuz123832, yuz123833, yuz123834, h, ba))), h, ba) 53.00/33.41 new_mkVBalBranch3MkVBalBranch2(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz12380, yuz12381, yuz12382, yuz12383, yuz12384, yuz1240, yuz1241, False, h, ba) -> new_mkVBalBranch3MkVBalBranch1(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz12380, yuz12381, yuz12382, yuz12383, yuz12384, yuz1240, yuz1241, new_esEs0(new_primCmpInt(new_sr1(yuz12382), yuz12342)), h, ba) 53.00/33.41 new_mkVBalBranch3(yuz1240, yuz1241, yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz123830, yuz123831, yuz123832, yuz123833, yuz123834, h, ba) -> new_mkVBalBranch3MkVBalBranch2(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz123830, yuz123831, yuz123832, yuz123833, yuz123834, yuz1240, yuz1241, new_esEs0(new_primCmpInt(new_sr0(Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), yuz12342), new_sizeFM(yuz123830, yuz123831, yuz123832, yuz123833, yuz123834, h, ba))), h, ba) 53.00/33.41 53.00/33.41 The TRS R consists of the following rules: 53.00/33.41 53.00/33.41 new_sr0(Pos(yuz6000), Pos(yuz4010)) -> Pos(new_primMulNat1(yuz6000, yuz4010)) 53.00/33.41 new_sr0(Pos(yuz6000), Neg(yuz4010)) -> Neg(new_primMulNat1(yuz6000, yuz4010)) 53.00/33.41 new_sizeFM(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, h, ba) -> yuz12342 53.00/33.41 new_primCmpInt(Neg(Succ(yuz144000)), Pos(yuz14350)) -> LT 53.00/33.41 new_primCmpInt(Pos(Zero), Pos(Succ(yuz143500))) -> new_primCmpNat2(Zero, yuz143500) 53.00/33.41 new_primCmpInt(Neg(Succ(yuz144000)), Neg(yuz14350)) -> new_primCmpNat2(yuz14350, yuz144000) 53.00/33.41 new_primCmpInt(Neg(Zero), Neg(Succ(yuz143500))) -> new_primCmpNat0(yuz143500, Zero) 53.00/33.41 new_primCmpInt(Pos(Succ(yuz144000)), Pos(yuz14350)) -> new_primCmpNat0(yuz144000, yuz14350) 53.00/33.41 new_primCmpInt(Neg(Zero), Neg(Zero)) -> EQ 53.00/33.41 new_primCmpInt(Pos(Zero), Neg(Succ(yuz143500))) -> GT 53.00/33.41 new_primCmpInt(Neg(Zero), Pos(Succ(yuz143500))) -> LT 53.00/33.41 new_primCmpInt(Pos(Succ(yuz144000)), Neg(yuz14350)) -> GT 53.00/33.41 new_primCmpInt(Pos(Zero), Neg(Zero)) -> EQ 53.00/33.41 new_primCmpInt(Neg(Zero), Pos(Zero)) -> EQ 53.00/33.41 new_primCmpInt(Pos(Zero), Pos(Zero)) -> EQ 53.00/33.41 new_esEs0(EQ) -> False 53.00/33.41 new_esEs0(LT) -> True 53.00/33.41 new_esEs0(GT) -> False 53.00/33.41 new_primCmpNat0(yuz144000, Succ(yuz143500)) -> new_primCmpNat1(yuz144000, yuz143500) 53.00/33.41 new_primCmpNat0(yuz144000, Zero) -> GT 53.00/33.41 new_primCmpNat1(Zero, Zero) -> EQ 53.00/33.41 new_primCmpNat1(Succ(yuz2800), Zero) -> GT 53.00/33.41 new_primCmpNat1(Succ(yuz2800), Succ(yuz330000)) -> new_primCmpNat1(yuz2800, yuz330000) 53.00/33.41 new_primCmpNat1(Zero, Succ(yuz330000)) -> LT 53.00/33.41 new_primCmpNat2(Succ(yuz143500), yuz144000) -> new_primCmpNat1(yuz143500, yuz144000) 53.00/33.41 new_primCmpNat2(Zero, yuz144000) -> LT 53.00/33.41 new_primMulNat1(Zero, Zero) -> Zero 53.00/33.41 new_primMulNat1(Succ(yuz60000), Zero) -> Zero 53.00/33.41 new_primMulNat1(Zero, Succ(yuz40100)) -> Zero 53.00/33.41 new_primMulNat1(Succ(yuz60000), Succ(yuz40100)) -> new_primPlusNat0(new_primMulNat1(yuz60000, Succ(yuz40100)), Succ(yuz40100)) 53.00/33.41 new_primPlusNat0(Zero, Succ(yuz601000)) -> Succ(yuz601000) 53.00/33.41 new_primPlusNat0(Succ(yuz11200), Succ(yuz601000)) -> Succ(Succ(new_primPlusNat0(yuz11200, yuz601000))) 53.00/33.41 new_primPlusNat0(Succ(yuz11200), Zero) -> Succ(yuz11200) 53.00/33.41 new_primPlusNat0(Zero, Zero) -> Zero 53.00/33.41 new_sr1(Pos(yuz14250)) -> Pos(new_primMulNat2(yuz14250)) 53.00/33.41 new_sr1(Neg(yuz14250)) -> Neg(new_primMulNat2(yuz14250)) 53.00/33.41 new_primMulNat2(Succ(yuz142500)) -> new_primPlusNat0(new_primMulNat3(Succ(Succ(Succ(Succ(Zero)))), yuz142500), Succ(yuz142500)) 53.00/33.41 new_primMulNat2(Zero) -> Zero 53.00/33.41 new_primMulNat3(Succ(yuz400000), yuz60100) -> new_primPlusNat1(new_primMulNat3(yuz400000, yuz60100), yuz60100) 53.00/33.41 new_primMulNat3(Zero, yuz60100) -> Zero 53.00/33.41 new_primPlusNat1(Zero, yuz60100) -> Succ(yuz60100) 53.00/33.41 new_primPlusNat1(Succ(yuz1120), yuz60100) -> Succ(Succ(new_primPlusNat0(yuz1120, yuz60100))) 53.00/33.41 53.00/33.41 The set Q consists of the following terms: 53.00/33.41 53.00/33.41 new_primCmpNat0(x0, Succ(x1)) 53.00/33.41 new_primCmpInt(Neg(Zero), Neg(Zero)) 53.00/33.41 new_primCmpInt(Pos(Zero), Neg(Succ(x0))) 53.00/33.41 new_primCmpInt(Neg(Zero), Pos(Succ(x0))) 53.00/33.41 new_primCmpInt(Pos(Zero), Pos(Succ(x0))) 53.00/33.41 new_primMulNat1(Succ(x0), Zero) 53.00/33.41 new_primCmpNat1(Succ(x0), Succ(x1)) 53.00/33.41 new_sr0(Pos(x0), Pos(x1)) 53.00/33.41 new_primCmpInt(Pos(Zero), Neg(Zero)) 53.00/33.41 new_primCmpInt(Neg(Zero), Pos(Zero)) 53.00/33.41 new_primCmpInt(Neg(Succ(x0)), Neg(x1)) 53.00/33.41 new_esEs0(LT) 53.00/33.41 new_primCmpNat1(Succ(x0), Zero) 53.00/33.41 new_sr1(Neg(x0)) 53.00/33.41 new_primMulNat2(Zero) 53.00/33.41 new_primCmpNat1(Zero, Succ(x0)) 53.00/33.41 new_primPlusNat0(Zero, Succ(x0)) 53.00/33.41 new_primCmpNat1(Zero, Zero) 53.00/33.41 new_primCmpInt(Neg(Succ(x0)), Pos(x1)) 53.00/33.41 new_primCmpNat2(Succ(x0), x1) 53.00/33.41 new_primCmpInt(Pos(Succ(x0)), Neg(x1)) 53.00/33.41 new_sr1(Pos(x0)) 53.00/33.41 new_esEs0(EQ) 53.00/33.41 new_primMulNat3(Zero, x0) 53.00/33.41 new_primCmpNat0(x0, Zero) 53.00/33.41 new_primPlusNat1(Succ(x0), x1) 53.00/33.41 new_primPlusNat1(Zero, x0) 53.00/33.41 new_primMulNat3(Succ(x0), x1) 53.00/33.41 new_primPlusNat0(Succ(x0), Succ(x1)) 53.00/33.41 new_primCmpInt(Pos(Succ(x0)), Pos(x1)) 53.00/33.41 new_primMulNat2(Succ(x0)) 53.00/33.41 new_mkVBalBranch3Size_r(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11) 53.00/33.41 new_sizeFM(x0, x1, x2, x3, x4, x5, x6) 53.00/33.41 new_primPlusNat0(Succ(x0), Zero) 53.00/33.41 new_sr0(Pos(x0), Neg(x1)) 53.00/33.41 new_sr0(Neg(x0), Pos(x1)) 53.00/33.41 new_sr0(Neg(x0), Neg(x1)) 53.00/33.41 new_primCmpNat2(Zero, x0) 53.00/33.41 new_esEs0(GT) 53.00/33.41 new_primCmpInt(Neg(Zero), Neg(Succ(x0))) 53.00/33.41 new_primMulNat1(Succ(x0), Succ(x1)) 53.00/33.41 new_primMulNat1(Zero, Zero) 53.00/33.41 new_primMulNat1(Zero, Succ(x0)) 53.00/33.41 new_primCmpInt(Pos(Zero), Pos(Zero)) 53.00/33.41 new_primPlusNat0(Zero, Zero) 53.00/33.41 53.00/33.41 We have to consider all minimal (P,Q,R)-chains. 53.00/33.41 ---------------------------------------- 53.00/33.41 53.00/33.41 (91) QReductionProof (EQUIVALENT) 53.00/33.41 We deleted the following terms from Q as each root-symbol of these terms does neither occur in P nor in R.[THIEMANN]. 53.00/33.41 53.00/33.41 new_mkVBalBranch3Size_r(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11) 53.00/33.41 53.00/33.41 53.00/33.41 ---------------------------------------- 53.00/33.41 53.00/33.41 (92) 53.00/33.41 Obligation: 53.00/33.41 Q DP problem: 53.00/33.41 The TRS P consists of the following rules: 53.00/33.41 53.00/33.41 new_mkVBalBranch3MkVBalBranch1(yuz12340, yuz12341, yuz12342, yuz12343, Branch(yuz123440, yuz123441, yuz123442, yuz123443, yuz123444), yuz12380, yuz12381, yuz12382, yuz12383, yuz12384, yuz1240, yuz1241, True, h, ba) -> new_mkVBalBranch3(yuz1240, yuz1241, yuz123440, yuz123441, yuz123442, yuz123443, yuz123444, yuz12380, yuz12381, yuz12382, yuz12383, yuz12384, h, ba) 53.00/33.41 new_mkVBalBranch3MkVBalBranch2(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz12380, yuz12381, yuz12382, Branch(yuz123830, yuz123831, yuz123832, yuz123833, yuz123834), yuz12384, yuz1240, yuz1241, True, h, ba) -> new_mkVBalBranch3MkVBalBranch2(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz123830, yuz123831, yuz123832, yuz123833, yuz123834, yuz1240, yuz1241, new_esEs0(new_primCmpInt(new_sr0(Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), yuz12342), new_sizeFM(yuz123830, yuz123831, yuz123832, yuz123833, yuz123834, h, ba))), h, ba) 53.00/33.41 new_mkVBalBranch3MkVBalBranch2(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz12380, yuz12381, yuz12382, yuz12383, yuz12384, yuz1240, yuz1241, False, h, ba) -> new_mkVBalBranch3MkVBalBranch1(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz12380, yuz12381, yuz12382, yuz12383, yuz12384, yuz1240, yuz1241, new_esEs0(new_primCmpInt(new_sr1(yuz12382), yuz12342)), h, ba) 53.00/33.41 new_mkVBalBranch3(yuz1240, yuz1241, yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz123830, yuz123831, yuz123832, yuz123833, yuz123834, h, ba) -> new_mkVBalBranch3MkVBalBranch2(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz123830, yuz123831, yuz123832, yuz123833, yuz123834, yuz1240, yuz1241, new_esEs0(new_primCmpInt(new_sr0(Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), yuz12342), new_sizeFM(yuz123830, yuz123831, yuz123832, yuz123833, yuz123834, h, ba))), h, ba) 53.00/33.41 53.00/33.41 The TRS R consists of the following rules: 53.00/33.41 53.00/33.41 new_sr0(Pos(yuz6000), Pos(yuz4010)) -> Pos(new_primMulNat1(yuz6000, yuz4010)) 53.00/33.41 new_sr0(Pos(yuz6000), Neg(yuz4010)) -> Neg(new_primMulNat1(yuz6000, yuz4010)) 53.00/33.41 new_sizeFM(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, h, ba) -> yuz12342 53.00/33.41 new_primCmpInt(Neg(Succ(yuz144000)), Pos(yuz14350)) -> LT 53.00/33.41 new_primCmpInt(Pos(Zero), Pos(Succ(yuz143500))) -> new_primCmpNat2(Zero, yuz143500) 53.00/33.41 new_primCmpInt(Neg(Succ(yuz144000)), Neg(yuz14350)) -> new_primCmpNat2(yuz14350, yuz144000) 53.00/33.41 new_primCmpInt(Neg(Zero), Neg(Succ(yuz143500))) -> new_primCmpNat0(yuz143500, Zero) 53.00/33.41 new_primCmpInt(Pos(Succ(yuz144000)), Pos(yuz14350)) -> new_primCmpNat0(yuz144000, yuz14350) 53.00/33.41 new_primCmpInt(Neg(Zero), Neg(Zero)) -> EQ 53.00/33.41 new_primCmpInt(Pos(Zero), Neg(Succ(yuz143500))) -> GT 53.00/33.41 new_primCmpInt(Neg(Zero), Pos(Succ(yuz143500))) -> LT 53.00/33.41 new_primCmpInt(Pos(Succ(yuz144000)), Neg(yuz14350)) -> GT 53.00/33.41 new_primCmpInt(Pos(Zero), Neg(Zero)) -> EQ 53.00/33.41 new_primCmpInt(Neg(Zero), Pos(Zero)) -> EQ 53.00/33.41 new_primCmpInt(Pos(Zero), Pos(Zero)) -> EQ 53.00/33.41 new_esEs0(EQ) -> False 53.00/33.41 new_esEs0(LT) -> True 53.00/33.41 new_esEs0(GT) -> False 53.00/33.41 new_primCmpNat0(yuz144000, Succ(yuz143500)) -> new_primCmpNat1(yuz144000, yuz143500) 53.00/33.41 new_primCmpNat0(yuz144000, Zero) -> GT 53.00/33.41 new_primCmpNat1(Zero, Zero) -> EQ 53.00/33.41 new_primCmpNat1(Succ(yuz2800), Zero) -> GT 53.00/33.41 new_primCmpNat1(Succ(yuz2800), Succ(yuz330000)) -> new_primCmpNat1(yuz2800, yuz330000) 53.00/33.41 new_primCmpNat1(Zero, Succ(yuz330000)) -> LT 53.00/33.41 new_primCmpNat2(Succ(yuz143500), yuz144000) -> new_primCmpNat1(yuz143500, yuz144000) 53.00/33.41 new_primCmpNat2(Zero, yuz144000) -> LT 53.00/33.41 new_primMulNat1(Zero, Zero) -> Zero 53.00/33.41 new_primMulNat1(Succ(yuz60000), Zero) -> Zero 53.00/33.41 new_primMulNat1(Zero, Succ(yuz40100)) -> Zero 53.00/33.41 new_primMulNat1(Succ(yuz60000), Succ(yuz40100)) -> new_primPlusNat0(new_primMulNat1(yuz60000, Succ(yuz40100)), Succ(yuz40100)) 53.00/33.41 new_primPlusNat0(Zero, Succ(yuz601000)) -> Succ(yuz601000) 53.00/33.41 new_primPlusNat0(Succ(yuz11200), Succ(yuz601000)) -> Succ(Succ(new_primPlusNat0(yuz11200, yuz601000))) 53.00/33.41 new_primPlusNat0(Succ(yuz11200), Zero) -> Succ(yuz11200) 53.00/33.41 new_primPlusNat0(Zero, Zero) -> Zero 53.00/33.41 new_sr1(Pos(yuz14250)) -> Pos(new_primMulNat2(yuz14250)) 53.00/33.41 new_sr1(Neg(yuz14250)) -> Neg(new_primMulNat2(yuz14250)) 53.00/33.41 new_primMulNat2(Succ(yuz142500)) -> new_primPlusNat0(new_primMulNat3(Succ(Succ(Succ(Succ(Zero)))), yuz142500), Succ(yuz142500)) 53.00/33.41 new_primMulNat2(Zero) -> Zero 53.00/33.41 new_primMulNat3(Succ(yuz400000), yuz60100) -> new_primPlusNat1(new_primMulNat3(yuz400000, yuz60100), yuz60100) 53.00/33.41 new_primMulNat3(Zero, yuz60100) -> Zero 53.00/33.41 new_primPlusNat1(Zero, yuz60100) -> Succ(yuz60100) 53.00/33.41 new_primPlusNat1(Succ(yuz1120), yuz60100) -> Succ(Succ(new_primPlusNat0(yuz1120, yuz60100))) 53.00/33.41 53.00/33.41 The set Q consists of the following terms: 53.00/33.41 53.00/33.41 new_primCmpNat0(x0, Succ(x1)) 53.00/33.41 new_primCmpInt(Neg(Zero), Neg(Zero)) 53.00/33.41 new_primCmpInt(Pos(Zero), Neg(Succ(x0))) 53.00/33.41 new_primCmpInt(Neg(Zero), Pos(Succ(x0))) 53.00/33.41 new_primCmpInt(Pos(Zero), Pos(Succ(x0))) 53.00/33.41 new_primMulNat1(Succ(x0), Zero) 53.00/33.41 new_primCmpNat1(Succ(x0), Succ(x1)) 53.00/33.41 new_sr0(Pos(x0), Pos(x1)) 53.00/33.41 new_primCmpInt(Pos(Zero), Neg(Zero)) 53.00/33.41 new_primCmpInt(Neg(Zero), Pos(Zero)) 53.00/33.41 new_primCmpInt(Neg(Succ(x0)), Neg(x1)) 53.00/33.41 new_esEs0(LT) 53.00/33.41 new_primCmpNat1(Succ(x0), Zero) 53.00/33.41 new_sr1(Neg(x0)) 53.00/33.41 new_primMulNat2(Zero) 53.00/33.41 new_primCmpNat1(Zero, Succ(x0)) 53.00/33.41 new_primPlusNat0(Zero, Succ(x0)) 53.00/33.41 new_primCmpNat1(Zero, Zero) 53.00/33.41 new_primCmpInt(Neg(Succ(x0)), Pos(x1)) 53.00/33.41 new_primCmpNat2(Succ(x0), x1) 53.00/33.41 new_primCmpInt(Pos(Succ(x0)), Neg(x1)) 53.00/33.41 new_sr1(Pos(x0)) 53.00/33.41 new_esEs0(EQ) 53.00/33.41 new_primMulNat3(Zero, x0) 53.00/33.41 new_primCmpNat0(x0, Zero) 53.00/33.41 new_primPlusNat1(Succ(x0), x1) 53.00/33.41 new_primPlusNat1(Zero, x0) 53.00/33.41 new_primMulNat3(Succ(x0), x1) 53.00/33.41 new_primPlusNat0(Succ(x0), Succ(x1)) 53.00/33.41 new_primCmpInt(Pos(Succ(x0)), Pos(x1)) 53.00/33.41 new_primMulNat2(Succ(x0)) 53.00/33.41 new_sizeFM(x0, x1, x2, x3, x4, x5, x6) 53.00/33.41 new_primPlusNat0(Succ(x0), Zero) 53.00/33.41 new_sr0(Pos(x0), Neg(x1)) 53.00/33.41 new_sr0(Neg(x0), Pos(x1)) 53.00/33.41 new_sr0(Neg(x0), Neg(x1)) 53.00/33.41 new_primCmpNat2(Zero, x0) 53.00/33.41 new_esEs0(GT) 53.00/33.41 new_primCmpInt(Neg(Zero), Neg(Succ(x0))) 53.00/33.41 new_primMulNat1(Succ(x0), Succ(x1)) 53.00/33.41 new_primMulNat1(Zero, Zero) 53.00/33.41 new_primMulNat1(Zero, Succ(x0)) 53.00/33.41 new_primCmpInt(Pos(Zero), Pos(Zero)) 53.00/33.41 new_primPlusNat0(Zero, Zero) 53.00/33.41 53.00/33.41 We have to consider all minimal (P,Q,R)-chains. 53.00/33.41 ---------------------------------------- 53.00/33.41 53.00/33.41 (93) TransformationProof (EQUIVALENT) 53.00/33.41 By rewriting [LPAR04] the rule new_mkVBalBranch3MkVBalBranch2(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz12380, yuz12381, yuz12382, Branch(yuz123830, yuz123831, yuz123832, yuz123833, yuz123834), yuz12384, yuz1240, yuz1241, True, h, ba) -> new_mkVBalBranch3MkVBalBranch2(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz123830, yuz123831, yuz123832, yuz123833, yuz123834, yuz1240, yuz1241, new_esEs0(new_primCmpInt(new_sr0(Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), yuz12342), new_sizeFM(yuz123830, yuz123831, yuz123832, yuz123833, yuz123834, h, ba))), h, ba) at position [12,0,1] we obtained the following new rules [LPAR04]: 53.00/33.41 53.00/33.41 (new_mkVBalBranch3MkVBalBranch2(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz12380, yuz12381, yuz12382, Branch(yuz123830, yuz123831, yuz123832, yuz123833, yuz123834), yuz12384, yuz1240, yuz1241, True, h, ba) -> new_mkVBalBranch3MkVBalBranch2(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz123830, yuz123831, yuz123832, yuz123833, yuz123834, yuz1240, yuz1241, new_esEs0(new_primCmpInt(new_sr0(Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), yuz12342), yuz123832)), h, ba),new_mkVBalBranch3MkVBalBranch2(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz12380, yuz12381, yuz12382, Branch(yuz123830, yuz123831, yuz123832, yuz123833, yuz123834), yuz12384, yuz1240, yuz1241, True, h, ba) -> new_mkVBalBranch3MkVBalBranch2(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz123830, yuz123831, yuz123832, yuz123833, yuz123834, yuz1240, yuz1241, new_esEs0(new_primCmpInt(new_sr0(Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), yuz12342), yuz123832)), h, ba)) 53.00/33.41 53.00/33.41 53.00/33.41 ---------------------------------------- 53.00/33.41 53.00/33.41 (94) 53.00/33.41 Obligation: 53.00/33.41 Q DP problem: 53.00/33.41 The TRS P consists of the following rules: 53.00/33.41 53.00/33.41 new_mkVBalBranch3MkVBalBranch1(yuz12340, yuz12341, yuz12342, yuz12343, Branch(yuz123440, yuz123441, yuz123442, yuz123443, yuz123444), yuz12380, yuz12381, yuz12382, yuz12383, yuz12384, yuz1240, yuz1241, True, h, ba) -> new_mkVBalBranch3(yuz1240, yuz1241, yuz123440, yuz123441, yuz123442, yuz123443, yuz123444, yuz12380, yuz12381, yuz12382, yuz12383, yuz12384, h, ba) 53.00/33.41 new_mkVBalBranch3MkVBalBranch2(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz12380, yuz12381, yuz12382, yuz12383, yuz12384, yuz1240, yuz1241, False, h, ba) -> new_mkVBalBranch3MkVBalBranch1(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz12380, yuz12381, yuz12382, yuz12383, yuz12384, yuz1240, yuz1241, new_esEs0(new_primCmpInt(new_sr1(yuz12382), yuz12342)), h, ba) 53.00/33.41 new_mkVBalBranch3(yuz1240, yuz1241, yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz123830, yuz123831, yuz123832, yuz123833, yuz123834, h, ba) -> new_mkVBalBranch3MkVBalBranch2(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz123830, yuz123831, yuz123832, yuz123833, yuz123834, yuz1240, yuz1241, new_esEs0(new_primCmpInt(new_sr0(Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), yuz12342), new_sizeFM(yuz123830, yuz123831, yuz123832, yuz123833, yuz123834, h, ba))), h, ba) 53.00/33.41 new_mkVBalBranch3MkVBalBranch2(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz12380, yuz12381, yuz12382, Branch(yuz123830, yuz123831, yuz123832, yuz123833, yuz123834), yuz12384, yuz1240, yuz1241, True, h, ba) -> new_mkVBalBranch3MkVBalBranch2(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz123830, yuz123831, yuz123832, yuz123833, yuz123834, yuz1240, yuz1241, new_esEs0(new_primCmpInt(new_sr0(Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), yuz12342), yuz123832)), h, ba) 53.00/33.41 53.00/33.41 The TRS R consists of the following rules: 53.00/33.41 53.00/33.41 new_sr0(Pos(yuz6000), Pos(yuz4010)) -> Pos(new_primMulNat1(yuz6000, yuz4010)) 53.00/33.41 new_sr0(Pos(yuz6000), Neg(yuz4010)) -> Neg(new_primMulNat1(yuz6000, yuz4010)) 53.00/33.41 new_sizeFM(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, h, ba) -> yuz12342 53.00/33.41 new_primCmpInt(Neg(Succ(yuz144000)), Pos(yuz14350)) -> LT 53.00/33.41 new_primCmpInt(Pos(Zero), Pos(Succ(yuz143500))) -> new_primCmpNat2(Zero, yuz143500) 53.00/33.41 new_primCmpInt(Neg(Succ(yuz144000)), Neg(yuz14350)) -> new_primCmpNat2(yuz14350, yuz144000) 53.00/33.41 new_primCmpInt(Neg(Zero), Neg(Succ(yuz143500))) -> new_primCmpNat0(yuz143500, Zero) 53.00/33.41 new_primCmpInt(Pos(Succ(yuz144000)), Pos(yuz14350)) -> new_primCmpNat0(yuz144000, yuz14350) 53.00/33.41 new_primCmpInt(Neg(Zero), Neg(Zero)) -> EQ 53.00/33.41 new_primCmpInt(Pos(Zero), Neg(Succ(yuz143500))) -> GT 53.00/33.41 new_primCmpInt(Neg(Zero), Pos(Succ(yuz143500))) -> LT 53.00/33.41 new_primCmpInt(Pos(Succ(yuz144000)), Neg(yuz14350)) -> GT 53.00/33.41 new_primCmpInt(Pos(Zero), Neg(Zero)) -> EQ 53.00/33.41 new_primCmpInt(Neg(Zero), Pos(Zero)) -> EQ 53.00/33.41 new_primCmpInt(Pos(Zero), Pos(Zero)) -> EQ 53.00/33.41 new_esEs0(EQ) -> False 53.00/33.41 new_esEs0(LT) -> True 53.00/33.41 new_esEs0(GT) -> False 53.00/33.41 new_primCmpNat0(yuz144000, Succ(yuz143500)) -> new_primCmpNat1(yuz144000, yuz143500) 53.00/33.41 new_primCmpNat0(yuz144000, Zero) -> GT 53.00/33.41 new_primCmpNat1(Zero, Zero) -> EQ 53.00/33.41 new_primCmpNat1(Succ(yuz2800), Zero) -> GT 53.00/33.41 new_primCmpNat1(Succ(yuz2800), Succ(yuz330000)) -> new_primCmpNat1(yuz2800, yuz330000) 53.00/33.41 new_primCmpNat1(Zero, Succ(yuz330000)) -> LT 53.00/33.41 new_primCmpNat2(Succ(yuz143500), yuz144000) -> new_primCmpNat1(yuz143500, yuz144000) 53.00/33.41 new_primCmpNat2(Zero, yuz144000) -> LT 53.00/33.41 new_primMulNat1(Zero, Zero) -> Zero 53.00/33.41 new_primMulNat1(Succ(yuz60000), Zero) -> Zero 53.00/33.41 new_primMulNat1(Zero, Succ(yuz40100)) -> Zero 53.00/33.41 new_primMulNat1(Succ(yuz60000), Succ(yuz40100)) -> new_primPlusNat0(new_primMulNat1(yuz60000, Succ(yuz40100)), Succ(yuz40100)) 53.00/33.41 new_primPlusNat0(Zero, Succ(yuz601000)) -> Succ(yuz601000) 53.00/33.41 new_primPlusNat0(Succ(yuz11200), Succ(yuz601000)) -> Succ(Succ(new_primPlusNat0(yuz11200, yuz601000))) 53.00/33.41 new_primPlusNat0(Succ(yuz11200), Zero) -> Succ(yuz11200) 53.00/33.41 new_primPlusNat0(Zero, Zero) -> Zero 53.00/33.41 new_sr1(Pos(yuz14250)) -> Pos(new_primMulNat2(yuz14250)) 53.00/33.41 new_sr1(Neg(yuz14250)) -> Neg(new_primMulNat2(yuz14250)) 53.00/33.41 new_primMulNat2(Succ(yuz142500)) -> new_primPlusNat0(new_primMulNat3(Succ(Succ(Succ(Succ(Zero)))), yuz142500), Succ(yuz142500)) 53.00/33.41 new_primMulNat2(Zero) -> Zero 53.00/33.41 new_primMulNat3(Succ(yuz400000), yuz60100) -> new_primPlusNat1(new_primMulNat3(yuz400000, yuz60100), yuz60100) 53.00/33.41 new_primMulNat3(Zero, yuz60100) -> Zero 53.00/33.41 new_primPlusNat1(Zero, yuz60100) -> Succ(yuz60100) 53.00/33.41 new_primPlusNat1(Succ(yuz1120), yuz60100) -> Succ(Succ(new_primPlusNat0(yuz1120, yuz60100))) 53.00/33.41 53.00/33.41 The set Q consists of the following terms: 53.00/33.41 53.00/33.41 new_primCmpNat0(x0, Succ(x1)) 53.00/33.41 new_primCmpInt(Neg(Zero), Neg(Zero)) 53.00/33.41 new_primCmpInt(Pos(Zero), Neg(Succ(x0))) 53.00/33.41 new_primCmpInt(Neg(Zero), Pos(Succ(x0))) 53.00/33.41 new_primCmpInt(Pos(Zero), Pos(Succ(x0))) 53.00/33.41 new_primMulNat1(Succ(x0), Zero) 53.00/33.41 new_primCmpNat1(Succ(x0), Succ(x1)) 53.00/33.41 new_sr0(Pos(x0), Pos(x1)) 53.00/33.41 new_primCmpInt(Pos(Zero), Neg(Zero)) 53.00/33.41 new_primCmpInt(Neg(Zero), Pos(Zero)) 53.00/33.41 new_primCmpInt(Neg(Succ(x0)), Neg(x1)) 53.00/33.41 new_esEs0(LT) 53.00/33.41 new_primCmpNat1(Succ(x0), Zero) 53.00/33.41 new_sr1(Neg(x0)) 53.00/33.41 new_primMulNat2(Zero) 53.00/33.41 new_primCmpNat1(Zero, Succ(x0)) 53.00/33.41 new_primPlusNat0(Zero, Succ(x0)) 53.00/33.41 new_primCmpNat1(Zero, Zero) 53.00/33.41 new_primCmpInt(Neg(Succ(x0)), Pos(x1)) 53.00/33.41 new_primCmpNat2(Succ(x0), x1) 53.00/33.41 new_primCmpInt(Pos(Succ(x0)), Neg(x1)) 53.00/33.41 new_sr1(Pos(x0)) 53.00/33.41 new_esEs0(EQ) 53.00/33.41 new_primMulNat3(Zero, x0) 53.00/33.41 new_primCmpNat0(x0, Zero) 53.00/33.41 new_primPlusNat1(Succ(x0), x1) 53.00/33.41 new_primPlusNat1(Zero, x0) 53.00/33.41 new_primMulNat3(Succ(x0), x1) 53.00/33.41 new_primPlusNat0(Succ(x0), Succ(x1)) 53.00/33.41 new_primCmpInt(Pos(Succ(x0)), Pos(x1)) 53.00/33.41 new_primMulNat2(Succ(x0)) 53.00/33.41 new_sizeFM(x0, x1, x2, x3, x4, x5, x6) 53.00/33.41 new_primPlusNat0(Succ(x0), Zero) 53.00/33.41 new_sr0(Pos(x0), Neg(x1)) 53.00/33.41 new_sr0(Neg(x0), Pos(x1)) 53.00/33.41 new_sr0(Neg(x0), Neg(x1)) 53.00/33.41 new_primCmpNat2(Zero, x0) 53.00/33.41 new_esEs0(GT) 53.00/33.41 new_primCmpInt(Neg(Zero), Neg(Succ(x0))) 53.00/33.41 new_primMulNat1(Succ(x0), Succ(x1)) 53.00/33.41 new_primMulNat1(Zero, Zero) 53.00/33.41 new_primMulNat1(Zero, Succ(x0)) 53.00/33.41 new_primCmpInt(Pos(Zero), Pos(Zero)) 53.00/33.41 new_primPlusNat0(Zero, Zero) 53.00/33.41 53.00/33.41 We have to consider all minimal (P,Q,R)-chains. 53.00/33.41 ---------------------------------------- 53.00/33.41 53.00/33.41 (95) TransformationProof (EQUIVALENT) 53.00/33.41 By rewriting [LPAR04] the rule new_mkVBalBranch3(yuz1240, yuz1241, yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz123830, yuz123831, yuz123832, yuz123833, yuz123834, h, ba) -> new_mkVBalBranch3MkVBalBranch2(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz123830, yuz123831, yuz123832, yuz123833, yuz123834, yuz1240, yuz1241, new_esEs0(new_primCmpInt(new_sr0(Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), yuz12342), new_sizeFM(yuz123830, yuz123831, yuz123832, yuz123833, yuz123834, h, ba))), h, ba) at position [12,0,1] we obtained the following new rules [LPAR04]: 53.00/33.41 53.00/33.41 (new_mkVBalBranch3(yuz1240, yuz1241, yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz123830, yuz123831, yuz123832, yuz123833, yuz123834, h, ba) -> new_mkVBalBranch3MkVBalBranch2(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz123830, yuz123831, yuz123832, yuz123833, yuz123834, yuz1240, yuz1241, new_esEs0(new_primCmpInt(new_sr0(Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), yuz12342), yuz123832)), h, ba),new_mkVBalBranch3(yuz1240, yuz1241, yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz123830, yuz123831, yuz123832, yuz123833, yuz123834, h, ba) -> new_mkVBalBranch3MkVBalBranch2(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz123830, yuz123831, yuz123832, yuz123833, yuz123834, yuz1240, yuz1241, new_esEs0(new_primCmpInt(new_sr0(Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), yuz12342), yuz123832)), h, ba)) 53.00/33.41 53.00/33.41 53.00/33.41 ---------------------------------------- 53.00/33.41 53.00/33.41 (96) 53.00/33.41 Obligation: 53.00/33.41 Q DP problem: 53.00/33.41 The TRS P consists of the following rules: 53.00/33.41 53.00/33.41 new_mkVBalBranch3MkVBalBranch1(yuz12340, yuz12341, yuz12342, yuz12343, Branch(yuz123440, yuz123441, yuz123442, yuz123443, yuz123444), yuz12380, yuz12381, yuz12382, yuz12383, yuz12384, yuz1240, yuz1241, True, h, ba) -> new_mkVBalBranch3(yuz1240, yuz1241, yuz123440, yuz123441, yuz123442, yuz123443, yuz123444, yuz12380, yuz12381, yuz12382, yuz12383, yuz12384, h, ba) 53.00/33.41 new_mkVBalBranch3MkVBalBranch2(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz12380, yuz12381, yuz12382, yuz12383, yuz12384, yuz1240, yuz1241, False, h, ba) -> new_mkVBalBranch3MkVBalBranch1(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz12380, yuz12381, yuz12382, yuz12383, yuz12384, yuz1240, yuz1241, new_esEs0(new_primCmpInt(new_sr1(yuz12382), yuz12342)), h, ba) 53.00/33.41 new_mkVBalBranch3MkVBalBranch2(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz12380, yuz12381, yuz12382, Branch(yuz123830, yuz123831, yuz123832, yuz123833, yuz123834), yuz12384, yuz1240, yuz1241, True, h, ba) -> new_mkVBalBranch3MkVBalBranch2(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz123830, yuz123831, yuz123832, yuz123833, yuz123834, yuz1240, yuz1241, new_esEs0(new_primCmpInt(new_sr0(Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), yuz12342), yuz123832)), h, ba) 53.00/33.41 new_mkVBalBranch3(yuz1240, yuz1241, yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz123830, yuz123831, yuz123832, yuz123833, yuz123834, h, ba) -> new_mkVBalBranch3MkVBalBranch2(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz123830, yuz123831, yuz123832, yuz123833, yuz123834, yuz1240, yuz1241, new_esEs0(new_primCmpInt(new_sr0(Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), yuz12342), yuz123832)), h, ba) 53.00/33.41 53.00/33.41 The TRS R consists of the following rules: 53.00/33.41 53.00/33.41 new_sr0(Pos(yuz6000), Pos(yuz4010)) -> Pos(new_primMulNat1(yuz6000, yuz4010)) 53.00/33.41 new_sr0(Pos(yuz6000), Neg(yuz4010)) -> Neg(new_primMulNat1(yuz6000, yuz4010)) 53.00/33.41 new_sizeFM(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, h, ba) -> yuz12342 53.00/33.41 new_primCmpInt(Neg(Succ(yuz144000)), Pos(yuz14350)) -> LT 53.00/33.41 new_primCmpInt(Pos(Zero), Pos(Succ(yuz143500))) -> new_primCmpNat2(Zero, yuz143500) 53.00/33.41 new_primCmpInt(Neg(Succ(yuz144000)), Neg(yuz14350)) -> new_primCmpNat2(yuz14350, yuz144000) 53.00/33.41 new_primCmpInt(Neg(Zero), Neg(Succ(yuz143500))) -> new_primCmpNat0(yuz143500, Zero) 53.00/33.41 new_primCmpInt(Pos(Succ(yuz144000)), Pos(yuz14350)) -> new_primCmpNat0(yuz144000, yuz14350) 53.00/33.41 new_primCmpInt(Neg(Zero), Neg(Zero)) -> EQ 53.00/33.41 new_primCmpInt(Pos(Zero), Neg(Succ(yuz143500))) -> GT 53.00/33.41 new_primCmpInt(Neg(Zero), Pos(Succ(yuz143500))) -> LT 53.00/33.41 new_primCmpInt(Pos(Succ(yuz144000)), Neg(yuz14350)) -> GT 53.00/33.41 new_primCmpInt(Pos(Zero), Neg(Zero)) -> EQ 53.00/33.41 new_primCmpInt(Neg(Zero), Pos(Zero)) -> EQ 53.00/33.41 new_primCmpInt(Pos(Zero), Pos(Zero)) -> EQ 53.00/33.41 new_esEs0(EQ) -> False 53.00/33.41 new_esEs0(LT) -> True 53.00/33.41 new_esEs0(GT) -> False 53.00/33.41 new_primCmpNat0(yuz144000, Succ(yuz143500)) -> new_primCmpNat1(yuz144000, yuz143500) 53.00/33.41 new_primCmpNat0(yuz144000, Zero) -> GT 53.00/33.41 new_primCmpNat1(Zero, Zero) -> EQ 53.00/33.41 new_primCmpNat1(Succ(yuz2800), Zero) -> GT 53.00/33.41 new_primCmpNat1(Succ(yuz2800), Succ(yuz330000)) -> new_primCmpNat1(yuz2800, yuz330000) 53.00/33.41 new_primCmpNat1(Zero, Succ(yuz330000)) -> LT 53.00/33.41 new_primCmpNat2(Succ(yuz143500), yuz144000) -> new_primCmpNat1(yuz143500, yuz144000) 53.00/33.41 new_primCmpNat2(Zero, yuz144000) -> LT 53.00/33.41 new_primMulNat1(Zero, Zero) -> Zero 53.00/33.41 new_primMulNat1(Succ(yuz60000), Zero) -> Zero 53.00/33.41 new_primMulNat1(Zero, Succ(yuz40100)) -> Zero 53.00/33.41 new_primMulNat1(Succ(yuz60000), Succ(yuz40100)) -> new_primPlusNat0(new_primMulNat1(yuz60000, Succ(yuz40100)), Succ(yuz40100)) 53.00/33.41 new_primPlusNat0(Zero, Succ(yuz601000)) -> Succ(yuz601000) 53.00/33.41 new_primPlusNat0(Succ(yuz11200), Succ(yuz601000)) -> Succ(Succ(new_primPlusNat0(yuz11200, yuz601000))) 53.00/33.41 new_primPlusNat0(Succ(yuz11200), Zero) -> Succ(yuz11200) 53.00/33.41 new_primPlusNat0(Zero, Zero) -> Zero 53.00/33.41 new_sr1(Pos(yuz14250)) -> Pos(new_primMulNat2(yuz14250)) 53.00/33.41 new_sr1(Neg(yuz14250)) -> Neg(new_primMulNat2(yuz14250)) 53.00/33.41 new_primMulNat2(Succ(yuz142500)) -> new_primPlusNat0(new_primMulNat3(Succ(Succ(Succ(Succ(Zero)))), yuz142500), Succ(yuz142500)) 53.00/33.41 new_primMulNat2(Zero) -> Zero 53.00/33.41 new_primMulNat3(Succ(yuz400000), yuz60100) -> new_primPlusNat1(new_primMulNat3(yuz400000, yuz60100), yuz60100) 53.00/33.41 new_primMulNat3(Zero, yuz60100) -> Zero 53.00/33.41 new_primPlusNat1(Zero, yuz60100) -> Succ(yuz60100) 53.00/33.41 new_primPlusNat1(Succ(yuz1120), yuz60100) -> Succ(Succ(new_primPlusNat0(yuz1120, yuz60100))) 53.00/33.41 53.00/33.41 The set Q consists of the following terms: 53.00/33.41 53.00/33.41 new_primCmpNat0(x0, Succ(x1)) 53.00/33.41 new_primCmpInt(Neg(Zero), Neg(Zero)) 53.00/33.41 new_primCmpInt(Pos(Zero), Neg(Succ(x0))) 53.00/33.41 new_primCmpInt(Neg(Zero), Pos(Succ(x0))) 53.00/33.41 new_primCmpInt(Pos(Zero), Pos(Succ(x0))) 53.00/33.41 new_primMulNat1(Succ(x0), Zero) 53.00/33.41 new_primCmpNat1(Succ(x0), Succ(x1)) 53.00/33.41 new_sr0(Pos(x0), Pos(x1)) 53.00/33.41 new_primCmpInt(Pos(Zero), Neg(Zero)) 53.00/33.41 new_primCmpInt(Neg(Zero), Pos(Zero)) 53.00/33.41 new_primCmpInt(Neg(Succ(x0)), Neg(x1)) 53.00/33.41 new_esEs0(LT) 53.00/33.41 new_primCmpNat1(Succ(x0), Zero) 53.00/33.41 new_sr1(Neg(x0)) 53.00/33.41 new_primMulNat2(Zero) 53.00/33.41 new_primCmpNat1(Zero, Succ(x0)) 53.00/33.41 new_primPlusNat0(Zero, Succ(x0)) 53.00/33.41 new_primCmpNat1(Zero, Zero) 53.00/33.41 new_primCmpInt(Neg(Succ(x0)), Pos(x1)) 53.00/33.41 new_primCmpNat2(Succ(x0), x1) 53.00/33.41 new_primCmpInt(Pos(Succ(x0)), Neg(x1)) 53.00/33.41 new_sr1(Pos(x0)) 53.00/33.41 new_esEs0(EQ) 53.00/33.41 new_primMulNat3(Zero, x0) 53.00/33.41 new_primCmpNat0(x0, Zero) 53.00/33.41 new_primPlusNat1(Succ(x0), x1) 53.00/33.41 new_primPlusNat1(Zero, x0) 53.00/33.41 new_primMulNat3(Succ(x0), x1) 53.00/33.41 new_primPlusNat0(Succ(x0), Succ(x1)) 53.00/33.41 new_primCmpInt(Pos(Succ(x0)), Pos(x1)) 53.00/33.41 new_primMulNat2(Succ(x0)) 53.00/33.41 new_sizeFM(x0, x1, x2, x3, x4, x5, x6) 53.00/33.41 new_primPlusNat0(Succ(x0), Zero) 53.00/33.41 new_sr0(Pos(x0), Neg(x1)) 53.00/33.41 new_sr0(Neg(x0), Pos(x1)) 53.00/33.41 new_sr0(Neg(x0), Neg(x1)) 53.00/33.41 new_primCmpNat2(Zero, x0) 53.00/33.41 new_esEs0(GT) 53.00/33.41 new_primCmpInt(Neg(Zero), Neg(Succ(x0))) 53.00/33.41 new_primMulNat1(Succ(x0), Succ(x1)) 53.00/33.41 new_primMulNat1(Zero, Zero) 53.00/33.41 new_primMulNat1(Zero, Succ(x0)) 53.00/33.41 new_primCmpInt(Pos(Zero), Pos(Zero)) 53.00/33.41 new_primPlusNat0(Zero, Zero) 53.00/33.41 53.00/33.41 We have to consider all minimal (P,Q,R)-chains. 53.00/33.41 ---------------------------------------- 53.00/33.41 53.00/33.41 (97) UsableRulesProof (EQUIVALENT) 53.00/33.41 As all Q-normal forms are R-normal forms we are in the innermost case. Hence, by the usable rules processor [LPAR04] we can delete all non-usable rules [FROCOS05] from R. 53.00/33.41 ---------------------------------------- 53.00/33.41 53.00/33.41 (98) 53.00/33.41 Obligation: 53.00/33.41 Q DP problem: 53.00/33.41 The TRS P consists of the following rules: 53.00/33.41 53.00/33.41 new_mkVBalBranch3MkVBalBranch1(yuz12340, yuz12341, yuz12342, yuz12343, Branch(yuz123440, yuz123441, yuz123442, yuz123443, yuz123444), yuz12380, yuz12381, yuz12382, yuz12383, yuz12384, yuz1240, yuz1241, True, h, ba) -> new_mkVBalBranch3(yuz1240, yuz1241, yuz123440, yuz123441, yuz123442, yuz123443, yuz123444, yuz12380, yuz12381, yuz12382, yuz12383, yuz12384, h, ba) 53.00/33.41 new_mkVBalBranch3MkVBalBranch2(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz12380, yuz12381, yuz12382, yuz12383, yuz12384, yuz1240, yuz1241, False, h, ba) -> new_mkVBalBranch3MkVBalBranch1(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz12380, yuz12381, yuz12382, yuz12383, yuz12384, yuz1240, yuz1241, new_esEs0(new_primCmpInt(new_sr1(yuz12382), yuz12342)), h, ba) 53.00/33.41 new_mkVBalBranch3MkVBalBranch2(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz12380, yuz12381, yuz12382, Branch(yuz123830, yuz123831, yuz123832, yuz123833, yuz123834), yuz12384, yuz1240, yuz1241, True, h, ba) -> new_mkVBalBranch3MkVBalBranch2(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz123830, yuz123831, yuz123832, yuz123833, yuz123834, yuz1240, yuz1241, new_esEs0(new_primCmpInt(new_sr0(Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), yuz12342), yuz123832)), h, ba) 53.00/33.41 new_mkVBalBranch3(yuz1240, yuz1241, yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz123830, yuz123831, yuz123832, yuz123833, yuz123834, h, ba) -> new_mkVBalBranch3MkVBalBranch2(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz123830, yuz123831, yuz123832, yuz123833, yuz123834, yuz1240, yuz1241, new_esEs0(new_primCmpInt(new_sr0(Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), yuz12342), yuz123832)), h, ba) 53.00/33.41 53.00/33.41 The TRS R consists of the following rules: 53.00/33.41 53.00/33.41 new_sr0(Pos(yuz6000), Pos(yuz4010)) -> Pos(new_primMulNat1(yuz6000, yuz4010)) 53.00/33.41 new_sr0(Pos(yuz6000), Neg(yuz4010)) -> Neg(new_primMulNat1(yuz6000, yuz4010)) 53.00/33.41 new_primCmpInt(Neg(Succ(yuz144000)), Pos(yuz14350)) -> LT 53.00/33.41 new_primCmpInt(Pos(Zero), Pos(Succ(yuz143500))) -> new_primCmpNat2(Zero, yuz143500) 53.00/33.41 new_primCmpInt(Neg(Succ(yuz144000)), Neg(yuz14350)) -> new_primCmpNat2(yuz14350, yuz144000) 53.00/33.41 new_primCmpInt(Neg(Zero), Neg(Succ(yuz143500))) -> new_primCmpNat0(yuz143500, Zero) 53.00/33.41 new_primCmpInt(Pos(Succ(yuz144000)), Pos(yuz14350)) -> new_primCmpNat0(yuz144000, yuz14350) 53.00/33.41 new_primCmpInt(Neg(Zero), Neg(Zero)) -> EQ 53.00/33.41 new_primCmpInt(Pos(Zero), Neg(Succ(yuz143500))) -> GT 53.00/33.41 new_primCmpInt(Neg(Zero), Pos(Succ(yuz143500))) -> LT 53.00/33.41 new_primCmpInt(Pos(Succ(yuz144000)), Neg(yuz14350)) -> GT 53.00/33.41 new_primCmpInt(Pos(Zero), Neg(Zero)) -> EQ 53.00/33.41 new_primCmpInt(Neg(Zero), Pos(Zero)) -> EQ 53.00/33.41 new_primCmpInt(Pos(Zero), Pos(Zero)) -> EQ 53.00/33.41 new_esEs0(EQ) -> False 53.00/33.41 new_esEs0(LT) -> True 53.00/33.41 new_esEs0(GT) -> False 53.00/33.41 new_primCmpNat0(yuz144000, Succ(yuz143500)) -> new_primCmpNat1(yuz144000, yuz143500) 53.00/33.41 new_primCmpNat0(yuz144000, Zero) -> GT 53.00/33.41 new_primCmpNat1(Zero, Zero) -> EQ 53.00/33.41 new_primCmpNat1(Succ(yuz2800), Zero) -> GT 53.00/33.41 new_primCmpNat1(Succ(yuz2800), Succ(yuz330000)) -> new_primCmpNat1(yuz2800, yuz330000) 53.00/33.41 new_primCmpNat1(Zero, Succ(yuz330000)) -> LT 53.00/33.41 new_primCmpNat2(Succ(yuz143500), yuz144000) -> new_primCmpNat1(yuz143500, yuz144000) 53.00/33.41 new_primCmpNat2(Zero, yuz144000) -> LT 53.00/33.41 new_primMulNat1(Zero, Zero) -> Zero 53.00/33.41 new_primMulNat1(Succ(yuz60000), Zero) -> Zero 53.00/33.41 new_primMulNat1(Zero, Succ(yuz40100)) -> Zero 53.00/33.41 new_primMulNat1(Succ(yuz60000), Succ(yuz40100)) -> new_primPlusNat0(new_primMulNat1(yuz60000, Succ(yuz40100)), Succ(yuz40100)) 53.00/33.41 new_primPlusNat0(Zero, Succ(yuz601000)) -> Succ(yuz601000) 53.00/33.41 new_primPlusNat0(Succ(yuz11200), Succ(yuz601000)) -> Succ(Succ(new_primPlusNat0(yuz11200, yuz601000))) 53.00/33.41 new_primPlusNat0(Succ(yuz11200), Zero) -> Succ(yuz11200) 53.00/33.41 new_primPlusNat0(Zero, Zero) -> Zero 53.00/33.41 new_sr1(Pos(yuz14250)) -> Pos(new_primMulNat2(yuz14250)) 53.00/33.41 new_sr1(Neg(yuz14250)) -> Neg(new_primMulNat2(yuz14250)) 53.00/33.41 new_primMulNat2(Succ(yuz142500)) -> new_primPlusNat0(new_primMulNat3(Succ(Succ(Succ(Succ(Zero)))), yuz142500), Succ(yuz142500)) 53.00/33.41 new_primMulNat2(Zero) -> Zero 53.00/33.41 new_primMulNat3(Succ(yuz400000), yuz60100) -> new_primPlusNat1(new_primMulNat3(yuz400000, yuz60100), yuz60100) 53.00/33.41 new_primMulNat3(Zero, yuz60100) -> Zero 53.00/33.41 new_primPlusNat1(Zero, yuz60100) -> Succ(yuz60100) 53.00/33.41 new_primPlusNat1(Succ(yuz1120), yuz60100) -> Succ(Succ(new_primPlusNat0(yuz1120, yuz60100))) 53.00/33.41 53.00/33.41 The set Q consists of the following terms: 53.00/33.41 53.00/33.41 new_primCmpNat0(x0, Succ(x1)) 53.00/33.41 new_primCmpInt(Neg(Zero), Neg(Zero)) 53.00/33.41 new_primCmpInt(Pos(Zero), Neg(Succ(x0))) 53.00/33.41 new_primCmpInt(Neg(Zero), Pos(Succ(x0))) 53.00/33.41 new_primCmpInt(Pos(Zero), Pos(Succ(x0))) 53.00/33.41 new_primMulNat1(Succ(x0), Zero) 53.00/33.41 new_primCmpNat1(Succ(x0), Succ(x1)) 53.00/33.41 new_sr0(Pos(x0), Pos(x1)) 53.00/33.41 new_primCmpInt(Pos(Zero), Neg(Zero)) 53.00/33.41 new_primCmpInt(Neg(Zero), Pos(Zero)) 53.00/33.41 new_primCmpInt(Neg(Succ(x0)), Neg(x1)) 53.00/33.41 new_esEs0(LT) 53.00/33.41 new_primCmpNat1(Succ(x0), Zero) 53.00/33.41 new_sr1(Neg(x0)) 53.00/33.41 new_primMulNat2(Zero) 53.00/33.41 new_primCmpNat1(Zero, Succ(x0)) 53.00/33.41 new_primPlusNat0(Zero, Succ(x0)) 53.00/33.41 new_primCmpNat1(Zero, Zero) 53.00/33.41 new_primCmpInt(Neg(Succ(x0)), Pos(x1)) 53.00/33.41 new_primCmpNat2(Succ(x0), x1) 53.00/33.41 new_primCmpInt(Pos(Succ(x0)), Neg(x1)) 53.00/33.41 new_sr1(Pos(x0)) 53.00/33.41 new_esEs0(EQ) 53.00/33.41 new_primMulNat3(Zero, x0) 53.00/33.41 new_primCmpNat0(x0, Zero) 53.00/33.41 new_primPlusNat1(Succ(x0), x1) 53.00/33.41 new_primPlusNat1(Zero, x0) 53.00/33.41 new_primMulNat3(Succ(x0), x1) 53.00/33.41 new_primPlusNat0(Succ(x0), Succ(x1)) 53.00/33.41 new_primCmpInt(Pos(Succ(x0)), Pos(x1)) 53.00/33.41 new_primMulNat2(Succ(x0)) 53.00/33.41 new_sizeFM(x0, x1, x2, x3, x4, x5, x6) 53.00/33.41 new_primPlusNat0(Succ(x0), Zero) 53.00/33.41 new_sr0(Pos(x0), Neg(x1)) 53.00/33.41 new_sr0(Neg(x0), Pos(x1)) 53.00/33.41 new_sr0(Neg(x0), Neg(x1)) 53.00/33.41 new_primCmpNat2(Zero, x0) 53.00/33.41 new_esEs0(GT) 53.00/33.41 new_primCmpInt(Neg(Zero), Neg(Succ(x0))) 53.00/33.41 new_primMulNat1(Succ(x0), Succ(x1)) 53.00/33.41 new_primMulNat1(Zero, Zero) 53.00/33.41 new_primMulNat1(Zero, Succ(x0)) 53.00/33.41 new_primCmpInt(Pos(Zero), Pos(Zero)) 53.00/33.41 new_primPlusNat0(Zero, Zero) 53.00/33.41 53.00/33.41 We have to consider all minimal (P,Q,R)-chains. 53.00/33.41 ---------------------------------------- 53.00/33.41 53.00/33.41 (99) QReductionProof (EQUIVALENT) 53.00/33.41 We deleted the following terms from Q as each root-symbol of these terms does neither occur in P nor in R.[THIEMANN]. 53.00/33.41 53.00/33.41 new_sizeFM(x0, x1, x2, x3, x4, x5, x6) 53.00/33.41 53.00/33.41 53.00/33.41 ---------------------------------------- 53.00/33.41 53.00/33.41 (100) 53.00/33.41 Obligation: 53.00/33.41 Q DP problem: 53.00/33.41 The TRS P consists of the following rules: 53.00/33.41 53.00/33.41 new_mkVBalBranch3MkVBalBranch1(yuz12340, yuz12341, yuz12342, yuz12343, Branch(yuz123440, yuz123441, yuz123442, yuz123443, yuz123444), yuz12380, yuz12381, yuz12382, yuz12383, yuz12384, yuz1240, yuz1241, True, h, ba) -> new_mkVBalBranch3(yuz1240, yuz1241, yuz123440, yuz123441, yuz123442, yuz123443, yuz123444, yuz12380, yuz12381, yuz12382, yuz12383, yuz12384, h, ba) 53.00/33.41 new_mkVBalBranch3MkVBalBranch2(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz12380, yuz12381, yuz12382, yuz12383, yuz12384, yuz1240, yuz1241, False, h, ba) -> new_mkVBalBranch3MkVBalBranch1(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz12380, yuz12381, yuz12382, yuz12383, yuz12384, yuz1240, yuz1241, new_esEs0(new_primCmpInt(new_sr1(yuz12382), yuz12342)), h, ba) 53.00/33.41 new_mkVBalBranch3MkVBalBranch2(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz12380, yuz12381, yuz12382, Branch(yuz123830, yuz123831, yuz123832, yuz123833, yuz123834), yuz12384, yuz1240, yuz1241, True, h, ba) -> new_mkVBalBranch3MkVBalBranch2(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz123830, yuz123831, yuz123832, yuz123833, yuz123834, yuz1240, yuz1241, new_esEs0(new_primCmpInt(new_sr0(Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), yuz12342), yuz123832)), h, ba) 53.00/33.41 new_mkVBalBranch3(yuz1240, yuz1241, yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz123830, yuz123831, yuz123832, yuz123833, yuz123834, h, ba) -> new_mkVBalBranch3MkVBalBranch2(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz123830, yuz123831, yuz123832, yuz123833, yuz123834, yuz1240, yuz1241, new_esEs0(new_primCmpInt(new_sr0(Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), yuz12342), yuz123832)), h, ba) 53.00/33.41 53.00/33.41 The TRS R consists of the following rules: 53.00/33.41 53.00/33.41 new_sr0(Pos(yuz6000), Pos(yuz4010)) -> Pos(new_primMulNat1(yuz6000, yuz4010)) 53.00/33.41 new_sr0(Pos(yuz6000), Neg(yuz4010)) -> Neg(new_primMulNat1(yuz6000, yuz4010)) 53.00/33.41 new_primCmpInt(Neg(Succ(yuz144000)), Pos(yuz14350)) -> LT 53.00/33.41 new_primCmpInt(Pos(Zero), Pos(Succ(yuz143500))) -> new_primCmpNat2(Zero, yuz143500) 53.00/33.41 new_primCmpInt(Neg(Succ(yuz144000)), Neg(yuz14350)) -> new_primCmpNat2(yuz14350, yuz144000) 53.00/33.41 new_primCmpInt(Neg(Zero), Neg(Succ(yuz143500))) -> new_primCmpNat0(yuz143500, Zero) 53.00/33.41 new_primCmpInt(Pos(Succ(yuz144000)), Pos(yuz14350)) -> new_primCmpNat0(yuz144000, yuz14350) 53.00/33.41 new_primCmpInt(Neg(Zero), Neg(Zero)) -> EQ 53.00/33.41 new_primCmpInt(Pos(Zero), Neg(Succ(yuz143500))) -> GT 53.00/33.41 new_primCmpInt(Neg(Zero), Pos(Succ(yuz143500))) -> LT 53.00/33.41 new_primCmpInt(Pos(Succ(yuz144000)), Neg(yuz14350)) -> GT 53.00/33.41 new_primCmpInt(Pos(Zero), Neg(Zero)) -> EQ 53.00/33.41 new_primCmpInt(Neg(Zero), Pos(Zero)) -> EQ 53.00/33.41 new_primCmpInt(Pos(Zero), Pos(Zero)) -> EQ 53.00/33.41 new_esEs0(EQ) -> False 53.00/33.41 new_esEs0(LT) -> True 53.00/33.41 new_esEs0(GT) -> False 53.00/33.41 new_primCmpNat0(yuz144000, Succ(yuz143500)) -> new_primCmpNat1(yuz144000, yuz143500) 53.00/33.41 new_primCmpNat0(yuz144000, Zero) -> GT 53.00/33.41 new_primCmpNat1(Zero, Zero) -> EQ 53.00/33.41 new_primCmpNat1(Succ(yuz2800), Zero) -> GT 53.00/33.41 new_primCmpNat1(Succ(yuz2800), Succ(yuz330000)) -> new_primCmpNat1(yuz2800, yuz330000) 53.00/33.41 new_primCmpNat1(Zero, Succ(yuz330000)) -> LT 53.00/33.41 new_primCmpNat2(Succ(yuz143500), yuz144000) -> new_primCmpNat1(yuz143500, yuz144000) 53.00/33.41 new_primCmpNat2(Zero, yuz144000) -> LT 53.00/33.41 new_primMulNat1(Zero, Zero) -> Zero 53.00/33.41 new_primMulNat1(Succ(yuz60000), Zero) -> Zero 53.00/33.41 new_primMulNat1(Zero, Succ(yuz40100)) -> Zero 53.00/33.41 new_primMulNat1(Succ(yuz60000), Succ(yuz40100)) -> new_primPlusNat0(new_primMulNat1(yuz60000, Succ(yuz40100)), Succ(yuz40100)) 53.00/33.41 new_primPlusNat0(Zero, Succ(yuz601000)) -> Succ(yuz601000) 53.00/33.41 new_primPlusNat0(Succ(yuz11200), Succ(yuz601000)) -> Succ(Succ(new_primPlusNat0(yuz11200, yuz601000))) 53.00/33.41 new_primPlusNat0(Succ(yuz11200), Zero) -> Succ(yuz11200) 53.00/33.41 new_primPlusNat0(Zero, Zero) -> Zero 53.00/33.41 new_sr1(Pos(yuz14250)) -> Pos(new_primMulNat2(yuz14250)) 53.00/33.41 new_sr1(Neg(yuz14250)) -> Neg(new_primMulNat2(yuz14250)) 53.00/33.41 new_primMulNat2(Succ(yuz142500)) -> new_primPlusNat0(new_primMulNat3(Succ(Succ(Succ(Succ(Zero)))), yuz142500), Succ(yuz142500)) 53.00/33.41 new_primMulNat2(Zero) -> Zero 53.00/33.41 new_primMulNat3(Succ(yuz400000), yuz60100) -> new_primPlusNat1(new_primMulNat3(yuz400000, yuz60100), yuz60100) 53.00/33.41 new_primMulNat3(Zero, yuz60100) -> Zero 53.00/33.41 new_primPlusNat1(Zero, yuz60100) -> Succ(yuz60100) 53.00/33.41 new_primPlusNat1(Succ(yuz1120), yuz60100) -> Succ(Succ(new_primPlusNat0(yuz1120, yuz60100))) 53.00/33.41 53.00/33.41 The set Q consists of the following terms: 53.00/33.41 53.00/33.41 new_primCmpNat0(x0, Succ(x1)) 53.00/33.41 new_primCmpInt(Neg(Zero), Neg(Zero)) 53.00/33.41 new_primCmpInt(Pos(Zero), Neg(Succ(x0))) 53.00/33.41 new_primCmpInt(Neg(Zero), Pos(Succ(x0))) 53.00/33.41 new_primCmpInt(Pos(Zero), Pos(Succ(x0))) 53.00/33.41 new_primMulNat1(Succ(x0), Zero) 53.00/33.41 new_primCmpNat1(Succ(x0), Succ(x1)) 53.00/33.41 new_sr0(Pos(x0), Pos(x1)) 53.00/33.41 new_primCmpInt(Pos(Zero), Neg(Zero)) 53.00/33.41 new_primCmpInt(Neg(Zero), Pos(Zero)) 53.00/33.41 new_primCmpInt(Neg(Succ(x0)), Neg(x1)) 53.00/33.41 new_esEs0(LT) 53.00/33.41 new_primCmpNat1(Succ(x0), Zero) 53.00/33.41 new_sr1(Neg(x0)) 53.00/33.41 new_primMulNat2(Zero) 53.00/33.41 new_primCmpNat1(Zero, Succ(x0)) 53.00/33.41 new_primPlusNat0(Zero, Succ(x0)) 53.00/33.41 new_primCmpNat1(Zero, Zero) 53.00/33.41 new_primCmpInt(Neg(Succ(x0)), Pos(x1)) 53.00/33.41 new_primCmpNat2(Succ(x0), x1) 53.00/33.41 new_primCmpInt(Pos(Succ(x0)), Neg(x1)) 53.00/33.41 new_sr1(Pos(x0)) 53.00/33.41 new_esEs0(EQ) 53.00/33.41 new_primMulNat3(Zero, x0) 53.00/33.41 new_primCmpNat0(x0, Zero) 53.00/33.41 new_primPlusNat1(Succ(x0), x1) 53.00/33.41 new_primPlusNat1(Zero, x0) 53.00/33.41 new_primMulNat3(Succ(x0), x1) 53.00/33.41 new_primPlusNat0(Succ(x0), Succ(x1)) 53.00/33.41 new_primCmpInt(Pos(Succ(x0)), Pos(x1)) 53.00/33.41 new_primMulNat2(Succ(x0)) 53.00/33.41 new_primPlusNat0(Succ(x0), Zero) 53.00/33.41 new_sr0(Pos(x0), Neg(x1)) 53.00/33.41 new_sr0(Neg(x0), Pos(x1)) 53.00/33.41 new_sr0(Neg(x0), Neg(x1)) 53.00/33.41 new_primCmpNat2(Zero, x0) 53.00/33.41 new_esEs0(GT) 53.00/33.41 new_primCmpInt(Neg(Zero), Neg(Succ(x0))) 53.00/33.41 new_primMulNat1(Succ(x0), Succ(x1)) 53.00/33.41 new_primMulNat1(Zero, Zero) 53.00/33.41 new_primMulNat1(Zero, Succ(x0)) 53.00/33.41 new_primCmpInt(Pos(Zero), Pos(Zero)) 53.00/33.41 new_primPlusNat0(Zero, Zero) 53.00/33.41 53.00/33.41 We have to consider all minimal (P,Q,R)-chains. 53.00/33.41 ---------------------------------------- 53.00/33.41 53.00/33.41 (101) QDPSizeChangeProof (EQUIVALENT) 53.00/33.41 By using the subterm criterion [SUBTERM_CRITERION] together with the size-change analysis [AAECC05] we have proven that there are no infinite chains for this DP problem. 53.00/33.41 53.00/33.41 From the DPs we obtained the following set of size-change graphs: 53.00/33.41 *new_mkVBalBranch3(yuz1240, yuz1241, yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz123830, yuz123831, yuz123832, yuz123833, yuz123834, h, ba) -> new_mkVBalBranch3MkVBalBranch2(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz123830, yuz123831, yuz123832, yuz123833, yuz123834, yuz1240, yuz1241, new_esEs0(new_primCmpInt(new_sr0(Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), yuz12342), yuz123832)), h, ba) 53.00/33.41 The graph contains the following edges 3 >= 1, 4 >= 2, 5 >= 3, 6 >= 4, 7 >= 5, 8 >= 6, 9 >= 7, 10 >= 8, 11 >= 9, 12 >= 10, 1 >= 11, 2 >= 12, 13 >= 14, 14 >= 15 53.00/33.41 53.00/33.41 53.00/33.41 *new_mkVBalBranch3MkVBalBranch2(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz12380, yuz12381, yuz12382, yuz12383, yuz12384, yuz1240, yuz1241, False, h, ba) -> new_mkVBalBranch3MkVBalBranch1(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz12380, yuz12381, yuz12382, yuz12383, yuz12384, yuz1240, yuz1241, new_esEs0(new_primCmpInt(new_sr1(yuz12382), yuz12342)), h, ba) 53.00/33.41 The graph contains the following edges 1 >= 1, 2 >= 2, 3 >= 3, 4 >= 4, 5 >= 5, 6 >= 6, 7 >= 7, 8 >= 8, 9 >= 9, 10 >= 10, 11 >= 11, 12 >= 12, 14 >= 14, 15 >= 15 53.00/33.41 53.00/33.41 53.00/33.41 *new_mkVBalBranch3MkVBalBranch1(yuz12340, yuz12341, yuz12342, yuz12343, Branch(yuz123440, yuz123441, yuz123442, yuz123443, yuz123444), yuz12380, yuz12381, yuz12382, yuz12383, yuz12384, yuz1240, yuz1241, True, h, ba) -> new_mkVBalBranch3(yuz1240, yuz1241, yuz123440, yuz123441, yuz123442, yuz123443, yuz123444, yuz12380, yuz12381, yuz12382, yuz12383, yuz12384, h, ba) 53.00/33.41 The graph contains the following edges 11 >= 1, 12 >= 2, 5 > 3, 5 > 4, 5 > 5, 5 > 6, 5 > 7, 6 >= 8, 7 >= 9, 8 >= 10, 9 >= 11, 10 >= 12, 14 >= 13, 15 >= 14 53.00/33.41 53.00/33.41 53.00/33.41 *new_mkVBalBranch3MkVBalBranch2(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz12380, yuz12381, yuz12382, Branch(yuz123830, yuz123831, yuz123832, yuz123833, yuz123834), yuz12384, yuz1240, yuz1241, True, h, ba) -> new_mkVBalBranch3MkVBalBranch2(yuz12340, yuz12341, yuz12342, yuz12343, yuz12344, yuz123830, yuz123831, yuz123832, yuz123833, yuz123834, yuz1240, yuz1241, new_esEs0(new_primCmpInt(new_sr0(Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), yuz12342), yuz123832)), h, ba) 53.00/33.41 The graph contains the following edges 1 >= 1, 2 >= 2, 3 >= 3, 4 >= 4, 5 >= 5, 9 > 6, 9 > 7, 9 > 8, 9 > 9, 9 > 10, 11 >= 11, 12 >= 12, 14 >= 14, 15 >= 15 53.00/33.41 53.00/33.41 53.00/33.41 ---------------------------------------- 53.00/33.41 53.00/33.41 (102) 53.00/33.41 YES 53.00/33.41 53.00/33.41 ---------------------------------------- 53.00/33.41 53.00/33.41 (103) 53.00/33.41 Obligation: 53.00/33.41 Q DP problem: 53.00/33.41 The TRS P consists of the following rules: 53.00/33.41 53.00/33.41 new_glueBal2Mid_key10(yuz1647, yuz1648, yuz1649, yuz1650, yuz1651, yuz1652, yuz1653, yuz1654, yuz1655, yuz1656, yuz1657, yuz1658, yuz1659, yuz1660, Branch(yuz16610, yuz16611, yuz16612, yuz16613, yuz16614), h, ba) -> new_glueBal2Mid_key10(yuz1647, yuz1648, yuz1649, yuz1650, yuz1651, yuz1652, yuz1653, yuz1654, yuz1655, yuz1656, yuz16610, yuz16611, yuz16612, yuz16613, yuz16614, h, ba) 53.00/33.41 53.00/33.41 R is empty. 53.00/33.41 Q is empty. 53.00/33.41 We have to consider all minimal (P,Q,R)-chains. 53.00/33.41 ---------------------------------------- 53.00/33.41 53.00/33.41 (104) QDPSizeChangeProof (EQUIVALENT) 53.00/33.41 By using the subterm criterion [SUBTERM_CRITERION] together with the size-change analysis [AAECC05] we have proven that there are no infinite chains for this DP problem. 53.00/33.41 53.00/33.41 From the DPs we obtained the following set of size-change graphs: 53.00/33.41 *new_glueBal2Mid_key10(yuz1647, yuz1648, yuz1649, yuz1650, yuz1651, yuz1652, yuz1653, yuz1654, yuz1655, yuz1656, yuz1657, yuz1658, yuz1659, yuz1660, Branch(yuz16610, yuz16611, yuz16612, yuz16613, yuz16614), h, ba) -> new_glueBal2Mid_key10(yuz1647, yuz1648, yuz1649, yuz1650, yuz1651, yuz1652, yuz1653, yuz1654, yuz1655, yuz1656, yuz16610, yuz16611, yuz16612, yuz16613, yuz16614, h, ba) 53.00/33.41 The graph contains the following edges 1 >= 1, 2 >= 2, 3 >= 3, 4 >= 4, 5 >= 5, 6 >= 6, 7 >= 7, 8 >= 8, 9 >= 9, 10 >= 10, 15 > 11, 15 > 12, 15 > 13, 15 > 14, 15 > 15, 16 >= 16, 17 >= 17 53.00/33.41 53.00/33.41 53.00/33.41 ---------------------------------------- 53.00/33.41 53.00/33.41 (105) 53.00/33.41 YES 53.00/33.41 53.00/33.41 ---------------------------------------- 53.00/33.41 53.00/33.41 (106) 53.00/33.41 Obligation: 53.00/33.41 Q DP problem: 53.00/33.41 The TRS P consists of the following rules: 53.00/33.41 53.00/33.41 new_deleteMin(yuz340, yuz341, yuz342, Branch(yuz3430, yuz3431, yuz3432, yuz3433, yuz3434), yuz344, h, ba) -> new_deleteMin(yuz3430, yuz3431, yuz3432, yuz3433, yuz3434, h, ba) 53.00/33.41 53.00/33.41 R is empty. 53.00/33.41 Q is empty. 53.00/33.41 We have to consider all minimal (P,Q,R)-chains. 53.00/33.41 ---------------------------------------- 53.00/33.41 53.00/33.41 (107) QDPSizeChangeProof (EQUIVALENT) 53.00/33.41 By using the subterm criterion [SUBTERM_CRITERION] together with the size-change analysis [AAECC05] we have proven that there are no infinite chains for this DP problem. 53.00/33.41 53.00/33.41 From the DPs we obtained the following set of size-change graphs: 53.00/33.41 *new_deleteMin(yuz340, yuz341, yuz342, Branch(yuz3430, yuz3431, yuz3432, yuz3433, yuz3434), yuz344, h, ba) -> new_deleteMin(yuz3430, yuz3431, yuz3432, yuz3433, yuz3434, h, ba) 53.00/33.41 The graph contains the following edges 4 > 1, 4 > 2, 4 > 3, 4 > 4, 4 > 5, 6 >= 6, 7 >= 7 53.00/33.41 53.00/33.41 53.00/33.41 ---------------------------------------- 53.00/33.41 53.00/33.41 (108) 53.00/33.41 YES 53.00/33.41 53.00/33.41 ---------------------------------------- 53.00/33.41 53.00/33.41 (109) 53.00/33.41 Obligation: 53.00/33.41 Q DP problem: 53.00/33.41 The TRS P consists of the following rules: 53.00/33.41 53.00/33.41 new_glueBal2Mid_elt20(yuz1600, yuz1601, yuz1602, yuz1603, yuz1604, yuz1605, yuz1606, yuz1607, yuz1608, yuz1609, yuz1610, yuz1611, yuz1612, Branch(yuz16130, yuz16131, yuz16132, yuz16133, yuz16134), yuz1614, h, ba) -> new_glueBal2Mid_elt20(yuz1600, yuz1601, yuz1602, yuz1603, yuz1604, yuz1605, yuz1606, yuz1607, yuz1608, yuz1609, yuz16130, yuz16131, yuz16132, yuz16133, yuz16134, h, ba) 53.00/33.41 53.00/33.41 R is empty. 53.00/33.41 Q is empty. 53.00/33.41 We have to consider all minimal (P,Q,R)-chains. 53.00/33.41 ---------------------------------------- 53.00/33.41 53.00/33.41 (110) QDPSizeChangeProof (EQUIVALENT) 53.00/33.41 By using the subterm criterion [SUBTERM_CRITERION] together with the size-change analysis [AAECC05] we have proven that there are no infinite chains for this DP problem. 53.00/33.41 53.00/33.41 From the DPs we obtained the following set of size-change graphs: 53.00/33.41 *new_glueBal2Mid_elt20(yuz1600, yuz1601, yuz1602, yuz1603, yuz1604, yuz1605, yuz1606, yuz1607, yuz1608, yuz1609, yuz1610, yuz1611, yuz1612, Branch(yuz16130, yuz16131, yuz16132, yuz16133, yuz16134), yuz1614, h, ba) -> new_glueBal2Mid_elt20(yuz1600, yuz1601, yuz1602, yuz1603, yuz1604, yuz1605, yuz1606, yuz1607, yuz1608, yuz1609, yuz16130, yuz16131, yuz16132, yuz16133, yuz16134, h, ba) 53.00/33.41 The graph contains the following edges 1 >= 1, 2 >= 2, 3 >= 3, 4 >= 4, 5 >= 5, 6 >= 6, 7 >= 7, 8 >= 8, 9 >= 9, 10 >= 10, 14 > 11, 14 > 12, 14 > 13, 14 > 14, 14 > 15, 16 >= 16, 17 >= 17 53.00/33.41 53.00/33.41 53.00/33.41 ---------------------------------------- 53.00/33.41 53.00/33.41 (111) 53.00/33.41 YES 53.00/33.41 53.00/33.41 ---------------------------------------- 53.00/33.41 53.00/33.41 (112) 53.00/33.41 Obligation: 53.00/33.41 Q DP problem: 53.00/33.41 The TRS P consists of the following rules: 53.00/33.41 53.00/33.41 new_glueBal2Mid_key20(yuz1584, yuz1585, yuz1586, yuz1587, yuz1588, yuz1589, yuz1590, yuz1591, yuz1592, yuz1593, yuz1594, yuz1595, yuz1596, Branch(yuz15970, yuz15971, yuz15972, yuz15973, yuz15974), yuz1598, h, ba) -> new_glueBal2Mid_key20(yuz1584, yuz1585, yuz1586, yuz1587, yuz1588, yuz1589, yuz1590, yuz1591, yuz1592, yuz1593, yuz15970, yuz15971, yuz15972, yuz15973, yuz15974, h, ba) 53.00/33.41 53.00/33.41 R is empty. 53.00/33.41 Q is empty. 53.00/33.41 We have to consider all minimal (P,Q,R)-chains. 53.00/33.41 ---------------------------------------- 53.00/33.41 53.00/33.41 (113) QDPSizeChangeProof (EQUIVALENT) 53.00/33.41 By using the subterm criterion [SUBTERM_CRITERION] together with the size-change analysis [AAECC05] we have proven that there are no infinite chains for this DP problem. 53.00/33.41 53.00/33.41 From the DPs we obtained the following set of size-change graphs: 53.00/33.41 *new_glueBal2Mid_key20(yuz1584, yuz1585, yuz1586, yuz1587, yuz1588, yuz1589, yuz1590, yuz1591, yuz1592, yuz1593, yuz1594, yuz1595, yuz1596, Branch(yuz15970, yuz15971, yuz15972, yuz15973, yuz15974), yuz1598, h, ba) -> new_glueBal2Mid_key20(yuz1584, yuz1585, yuz1586, yuz1587, yuz1588, yuz1589, yuz1590, yuz1591, yuz1592, yuz1593, yuz15970, yuz15971, yuz15972, yuz15973, yuz15974, h, ba) 53.00/33.41 The graph contains the following edges 1 >= 1, 2 >= 2, 3 >= 3, 4 >= 4, 5 >= 5, 6 >= 6, 7 >= 7, 8 >= 8, 9 >= 9, 10 >= 10, 14 > 11, 14 > 12, 14 > 13, 14 > 14, 14 > 15, 16 >= 16, 17 >= 17 53.00/33.41 53.00/33.41 53.00/33.41 ---------------------------------------- 53.00/33.41 53.00/33.41 (114) 53.00/33.41 YES 53.00/33.41 53.00/33.41 ---------------------------------------- 53.00/33.41 53.00/33.41 (115) 53.00/33.41 Obligation: 53.00/33.41 Q DP problem: 53.00/33.41 The TRS P consists of the following rules: 53.00/33.41 53.00/33.41 new_deleteMax(yuz300, yuz301, yuz302, yuz303, Branch(yuz3040, yuz3041, yuz3042, yuz3043, yuz3044), h, ba) -> new_deleteMax(yuz3040, yuz3041, yuz3042, yuz3043, yuz3044, h, ba) 53.00/33.41 53.00/33.41 R is empty. 53.00/33.41 Q is empty. 53.00/33.41 We have to consider all minimal (P,Q,R)-chains. 53.00/33.41 ---------------------------------------- 53.00/33.41 53.00/33.41 (116) QDPSizeChangeProof (EQUIVALENT) 53.00/33.41 By using the subterm criterion [SUBTERM_CRITERION] together with the size-change analysis [AAECC05] we have proven that there are no infinite chains for this DP problem. 53.00/33.41 53.00/33.41 From the DPs we obtained the following set of size-change graphs: 53.00/33.41 *new_deleteMax(yuz300, yuz301, yuz302, yuz303, Branch(yuz3040, yuz3041, yuz3042, yuz3043, yuz3044), h, ba) -> new_deleteMax(yuz3040, yuz3041, yuz3042, yuz3043, yuz3044, h, ba) 53.00/33.41 The graph contains the following edges 5 > 1, 5 > 2, 5 > 3, 5 > 4, 5 > 5, 6 >= 6, 7 >= 7 53.00/33.41 53.00/33.41 53.00/33.41 ---------------------------------------- 53.00/33.41 53.00/33.41 (117) 53.00/33.41 YES 53.00/33.41 53.00/33.41 ---------------------------------------- 53.00/33.41 53.00/33.41 (118) 53.00/33.41 Obligation: 53.00/33.41 Q DP problem: 53.00/33.41 The TRS P consists of the following rules: 53.00/33.41 53.00/33.41 new_glueVBal3GlueVBal1(yuz300, yuz301, yuz302, yuz303, Branch(yuz3040, yuz3041, yuz3042, yuz3043, yuz3044), yuz340, yuz341, yuz342, yuz343, yuz344, True, h, ba) -> new_glueVBal3(yuz3040, yuz3041, yuz3042, yuz3043, yuz3044, yuz340, yuz341, yuz342, yuz343, yuz344, h, ba) 53.00/33.41 new_glueVBal3(yuz300, yuz301, yuz302, yuz303, yuz304, yuz3430, yuz3431, yuz3432, yuz3433, yuz3434, h, ba) -> new_glueVBal3GlueVBal2(yuz300, yuz301, yuz302, yuz303, yuz304, yuz3430, yuz3431, yuz3432, yuz3433, yuz3434, new_lt0(new_sr0(new_sIZE_RATIO, new_glueVBal3Size_l(yuz300, yuz301, yuz302, yuz303, yuz304, yuz3430, yuz3431, yuz3432, yuz3433, yuz3434, h, ba)), new_glueVBal3Size_r(yuz300, yuz301, yuz302, yuz303, yuz304, yuz3430, yuz3431, yuz3432, yuz3433, yuz3434, h, ba)), h, ba) 53.00/33.41 new_glueVBal3GlueVBal2(yuz300, yuz301, yuz302, yuz303, yuz304, yuz340, yuz341, yuz342, yuz343, yuz344, False, h, ba) -> new_glueVBal3GlueVBal1(yuz300, yuz301, yuz302, yuz303, yuz304, yuz340, yuz341, yuz342, yuz343, yuz344, new_lt0(new_sr0(new_sIZE_RATIO, new_glueVBal3Size_r(yuz300, yuz301, yuz302, yuz303, yuz304, yuz340, yuz341, yuz342, yuz343, yuz344, h, ba)), new_glueVBal3Size_l(yuz300, yuz301, yuz302, yuz303, yuz304, yuz340, yuz341, yuz342, yuz343, yuz344, h, ba)), h, ba) 53.00/33.41 new_glueVBal3GlueVBal2(yuz300, yuz301, yuz302, yuz303, yuz304, yuz340, yuz341, yuz342, Branch(yuz3430, yuz3431, yuz3432, yuz3433, yuz3434), yuz344, True, h, ba) -> new_glueVBal3GlueVBal2(yuz300, yuz301, yuz302, yuz303, yuz304, yuz3430, yuz3431, yuz3432, yuz3433, yuz3434, new_lt0(new_sr0(new_sIZE_RATIO, new_glueVBal3Size_l(yuz300, yuz301, yuz302, yuz303, yuz304, yuz3430, yuz3431, yuz3432, yuz3433, yuz3434, h, ba)), new_glueVBal3Size_r(yuz300, yuz301, yuz302, yuz303, yuz304, yuz3430, yuz3431, yuz3432, yuz3433, yuz3434, h, ba)), h, ba) 53.00/33.41 53.00/33.41 The TRS R consists of the following rules: 53.00/33.41 53.00/33.41 new_sIZE_RATIO -> Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))) 53.00/33.41 new_esEs0(EQ) -> False 53.00/33.41 new_primCmpNat2(Zero, yuz144000) -> LT 53.00/33.41 new_lt0(yuz21, yuz11) -> new_esEs0(new_compare(yuz21, yuz11)) 53.00/33.41 new_esEs0(LT) -> True 53.00/33.41 new_primCmpInt(Neg(Succ(yuz144000)), Pos(yuz14350)) -> LT 53.00/33.41 new_primPlusNat0(Succ(yuz11200), Zero) -> Succ(yuz11200) 53.00/33.41 new_primPlusNat0(Zero, Succ(yuz601000)) -> Succ(yuz601000) 53.00/33.41 new_esEs0(GT) -> False 53.00/33.41 new_primMulNat1(Succ(yuz60000), Zero) -> Zero 53.00/33.41 new_primMulNat1(Zero, Succ(yuz40100)) -> Zero 53.00/33.41 new_primPlusNat0(Zero, Zero) -> Zero 53.00/33.41 new_primCmpNat1(Succ(yuz2800), Succ(yuz330000)) -> new_primCmpNat1(yuz2800, yuz330000) 53.00/33.41 new_primCmpInt(Pos(Zero), Pos(Succ(yuz143500))) -> new_primCmpNat2(Zero, yuz143500) 53.00/33.41 new_primCmpInt(Neg(Succ(yuz144000)), Neg(yuz14350)) -> new_primCmpNat2(yuz14350, yuz144000) 53.00/33.41 new_sizeFM0(Branch(yuz12980, yuz12981, yuz12982, yuz12983, yuz12984), bb, bc) -> yuz12982 53.00/33.41 new_primCmpNat0(yuz144000, Succ(yuz143500)) -> new_primCmpNat1(yuz144000, yuz143500) 53.00/33.41 new_compare(yuz1440, yuz1435) -> new_primCmpInt(yuz1440, yuz1435) 53.00/33.41 new_primCmpInt(Neg(Zero), Pos(Succ(yuz143500))) -> LT 53.00/33.41 new_primCmpInt(Pos(Succ(yuz144000)), Neg(yuz14350)) -> GT 53.00/33.41 new_primCmpInt(Neg(Zero), Neg(Succ(yuz143500))) -> new_primCmpNat0(yuz143500, Zero) 53.00/33.41 new_primCmpInt(Pos(Succ(yuz144000)), Pos(yuz14350)) -> new_primCmpNat0(yuz144000, yuz14350) 53.00/33.41 new_primMulNat1(Zero, Zero) -> Zero 53.00/33.41 new_sr0(Neg(yuz6000), Neg(yuz4010)) -> Pos(new_primMulNat1(yuz6000, yuz4010)) 53.00/33.41 new_primCmpNat1(Zero, Zero) -> EQ 53.00/33.41 new_sr0(Pos(yuz6000), Neg(yuz4010)) -> Neg(new_primMulNat1(yuz6000, yuz4010)) 53.00/33.41 new_sr0(Neg(yuz6000), Pos(yuz4010)) -> Neg(new_primMulNat1(yuz6000, yuz4010)) 53.00/33.41 new_primCmpNat1(Zero, Succ(yuz330000)) -> LT 53.00/33.41 new_primCmpNat1(Succ(yuz2800), Zero) -> GT 53.00/33.41 new_primCmpInt(Neg(Zero), Neg(Zero)) -> EQ 53.00/33.41 new_glueVBal3Size_r(yuz300, yuz301, yuz302, yuz303, yuz304, yuz340, yuz341, yuz342, yuz343, yuz344, h, ba) -> new_sizeFM0(Branch(yuz340, yuz341, yuz342, yuz343, yuz344), h, ba) 53.00/33.41 new_primCmpInt(Pos(Zero), Neg(Succ(yuz143500))) -> GT 53.00/33.41 new_primCmpInt(Pos(Zero), Neg(Zero)) -> EQ 53.00/33.41 new_primCmpInt(Neg(Zero), Pos(Zero)) -> EQ 53.00/33.41 new_glueVBal3Size_l(yuz300, yuz301, yuz302, yuz303, yuz304, yuz340, yuz341, yuz342, yuz343, yuz344, h, ba) -> new_sizeFM0(Branch(yuz300, yuz301, yuz302, yuz303, yuz304), h, ba) 53.00/33.41 new_sizeFM0(EmptyFM, bb, bc) -> Pos(Zero) 53.00/33.41 new_primMulNat1(Succ(yuz60000), Succ(yuz40100)) -> new_primPlusNat0(new_primMulNat1(yuz60000, Succ(yuz40100)), Succ(yuz40100)) 53.00/33.41 new_primCmpNat2(Succ(yuz143500), yuz144000) -> new_primCmpNat1(yuz143500, yuz144000) 53.00/33.41 new_sr0(Pos(yuz6000), Pos(yuz4010)) -> Pos(new_primMulNat1(yuz6000, yuz4010)) 53.00/33.41 new_primCmpNat0(yuz144000, Zero) -> GT 53.00/33.41 new_primPlusNat0(Succ(yuz11200), Succ(yuz601000)) -> Succ(Succ(new_primPlusNat0(yuz11200, yuz601000))) 53.00/33.41 new_primCmpInt(Pos(Zero), Pos(Zero)) -> EQ 53.00/33.41 53.00/33.41 The set Q consists of the following terms: 53.00/33.41 53.00/33.41 new_primCmpNat0(x0, Succ(x1)) 53.00/33.41 new_primCmpInt(Neg(Zero), Neg(Zero)) 53.00/33.41 new_primCmpNat0(x0, Zero) 53.00/33.41 new_sIZE_RATIO 53.00/33.41 new_primCmpInt(Neg(Zero), Pos(Succ(x0))) 53.00/33.41 new_glueVBal3Size_r(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11) 53.00/33.41 new_primCmpInt(Pos(Zero), Neg(Succ(x0))) 53.00/33.41 new_primPlusNat0(Succ(x0), Succ(x1)) 53.00/33.41 new_primCmpInt(Pos(Zero), Pos(Succ(x0))) 53.00/33.41 new_primMulNat1(Succ(x0), Zero) 53.00/33.41 new_sizeFM0(EmptyFM, x0, x1) 53.00/33.41 new_primCmpNat1(Succ(x0), Succ(x1)) 53.00/33.41 new_primCmpInt(Pos(Succ(x0)), Pos(x1)) 53.00/33.41 new_sr0(Pos(x0), Pos(x1)) 53.00/33.41 new_primCmpInt(Pos(Zero), Neg(Zero)) 53.00/33.41 new_primCmpInt(Neg(Zero), Pos(Zero)) 53.00/33.41 new_lt0(x0, x1) 53.00/33.41 new_primCmpInt(Neg(Succ(x0)), Neg(x1)) 53.00/33.41 new_esEs0(LT) 53.00/33.41 new_primCmpNat1(Succ(x0), Zero) 53.00/33.41 new_sizeFM0(Branch(x0, x1, x2, x3, x4), x5, x6) 53.00/33.41 new_compare(x0, x1) 53.00/33.41 new_primPlusNat0(Succ(x0), Zero) 53.00/33.41 new_sr0(Pos(x0), Neg(x1)) 53.00/33.41 new_sr0(Neg(x0), Pos(x1)) 53.00/33.41 new_primCmpNat1(Zero, Succ(x0)) 53.00/33.41 new_sr0(Neg(x0), Neg(x1)) 53.00/33.41 new_primPlusNat0(Zero, Succ(x0)) 53.00/33.41 new_primCmpNat2(Zero, x0) 53.00/33.41 new_glueVBal3Size_l(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11) 53.00/33.41 new_esEs0(GT) 53.00/33.41 new_primCmpInt(Neg(Zero), Neg(Succ(x0))) 53.00/33.41 new_primCmpNat1(Zero, Zero) 53.00/33.41 new_primMulNat1(Succ(x0), Succ(x1)) 53.00/33.41 new_primMulNat1(Zero, Zero) 53.00/33.41 new_primCmpInt(Neg(Succ(x0)), Pos(x1)) 53.00/33.41 new_primCmpInt(Pos(Succ(x0)), Neg(x1)) 53.00/33.41 new_primCmpNat2(Succ(x0), x1) 53.00/33.41 new_primMulNat1(Zero, Succ(x0)) 53.00/33.41 new_primCmpInt(Pos(Zero), Pos(Zero)) 53.00/33.41 new_primPlusNat0(Zero, Zero) 53.00/33.41 new_esEs0(EQ) 53.00/33.41 53.00/33.41 We have to consider all minimal (P,Q,R)-chains. 53.00/33.41 ---------------------------------------- 53.00/33.41 53.00/33.41 (119) QDPSizeChangeProof (EQUIVALENT) 53.00/33.41 By using the subterm criterion [SUBTERM_CRITERION] together with the size-change analysis [AAECC05] we have proven that there are no infinite chains for this DP problem. 53.00/33.41 53.00/33.41 From the DPs we obtained the following set of size-change graphs: 53.00/33.41 *new_glueVBal3(yuz300, yuz301, yuz302, yuz303, yuz304, yuz3430, yuz3431, yuz3432, yuz3433, yuz3434, h, ba) -> new_glueVBal3GlueVBal2(yuz300, yuz301, yuz302, yuz303, yuz304, yuz3430, yuz3431, yuz3432, yuz3433, yuz3434, new_lt0(new_sr0(new_sIZE_RATIO, new_glueVBal3Size_l(yuz300, yuz301, yuz302, yuz303, yuz304, yuz3430, yuz3431, yuz3432, yuz3433, yuz3434, h, ba)), new_glueVBal3Size_r(yuz300, yuz301, yuz302, yuz303, yuz304, yuz3430, yuz3431, yuz3432, yuz3433, yuz3434, h, ba)), h, ba) 53.00/33.41 The graph contains the following edges 1 >= 1, 2 >= 2, 3 >= 3, 4 >= 4, 5 >= 5, 6 >= 6, 7 >= 7, 8 >= 8, 9 >= 9, 10 >= 10, 11 >= 12, 12 >= 13 53.00/33.41 53.00/33.41 53.00/33.41 *new_glueVBal3GlueVBal2(yuz300, yuz301, yuz302, yuz303, yuz304, yuz340, yuz341, yuz342, yuz343, yuz344, False, h, ba) -> new_glueVBal3GlueVBal1(yuz300, yuz301, yuz302, yuz303, yuz304, yuz340, yuz341, yuz342, yuz343, yuz344, new_lt0(new_sr0(new_sIZE_RATIO, new_glueVBal3Size_r(yuz300, yuz301, yuz302, yuz303, yuz304, yuz340, yuz341, yuz342, yuz343, yuz344, h, ba)), new_glueVBal3Size_l(yuz300, yuz301, yuz302, yuz303, yuz304, yuz340, yuz341, yuz342, yuz343, yuz344, h, ba)), h, ba) 53.00/33.41 The graph contains the following edges 1 >= 1, 2 >= 2, 3 >= 3, 4 >= 4, 5 >= 5, 6 >= 6, 7 >= 7, 8 >= 8, 9 >= 9, 10 >= 10, 12 >= 12, 13 >= 13 53.00/33.41 53.00/33.41 53.00/33.41 *new_glueVBal3GlueVBal2(yuz300, yuz301, yuz302, yuz303, yuz304, yuz340, yuz341, yuz342, Branch(yuz3430, yuz3431, yuz3432, yuz3433, yuz3434), yuz344, True, h, ba) -> new_glueVBal3GlueVBal2(yuz300, yuz301, yuz302, yuz303, yuz304, yuz3430, yuz3431, yuz3432, yuz3433, yuz3434, new_lt0(new_sr0(new_sIZE_RATIO, new_glueVBal3Size_l(yuz300, yuz301, yuz302, yuz303, yuz304, yuz3430, yuz3431, yuz3432, yuz3433, yuz3434, h, ba)), new_glueVBal3Size_r(yuz300, yuz301, yuz302, yuz303, yuz304, yuz3430, yuz3431, yuz3432, yuz3433, yuz3434, h, ba)), h, ba) 53.00/33.41 The graph contains the following edges 1 >= 1, 2 >= 2, 3 >= 3, 4 >= 4, 5 >= 5, 9 > 6, 9 > 7, 9 > 8, 9 > 9, 9 > 10, 12 >= 12, 13 >= 13 53.00/33.41 53.00/33.41 53.00/33.41 *new_glueVBal3GlueVBal1(yuz300, yuz301, yuz302, yuz303, Branch(yuz3040, yuz3041, yuz3042, yuz3043, yuz3044), yuz340, yuz341, yuz342, yuz343, yuz344, True, h, ba) -> new_glueVBal3(yuz3040, yuz3041, yuz3042, yuz3043, yuz3044, yuz340, yuz341, yuz342, yuz343, yuz344, h, ba) 53.00/33.41 The graph contains the following edges 5 > 1, 5 > 2, 5 > 3, 5 > 4, 5 > 5, 6 >= 6, 7 >= 7, 8 >= 8, 9 >= 9, 10 >= 10, 12 >= 11, 13 >= 12 53.00/33.41 53.00/33.41 53.00/33.41 ---------------------------------------- 53.00/33.41 53.00/33.41 (120) 53.00/33.41 YES 53.00/33.41 53.00/33.41 ---------------------------------------- 53.00/33.41 53.00/33.41 (121) 53.00/33.41 Obligation: 53.00/33.41 Q DP problem: 53.00/33.41 The TRS P consists of the following rules: 53.00/33.41 53.00/33.41 new_glueBal2Mid_elt10(yuz1663, yuz1664, yuz1665, yuz1666, yuz1667, yuz1668, yuz1669, yuz1670, yuz1671, yuz1672, yuz1673, yuz1674, yuz1675, yuz1676, Branch(yuz16770, yuz16771, yuz16772, yuz16773, yuz16774), h, ba) -> new_glueBal2Mid_elt10(yuz1663, yuz1664, yuz1665, yuz1666, yuz1667, yuz1668, yuz1669, yuz1670, yuz1671, yuz1672, yuz16770, yuz16771, yuz16772, yuz16773, yuz16774, h, ba) 53.00/33.41 53.00/33.41 R is empty. 53.00/33.41 Q is empty. 53.00/33.41 We have to consider all minimal (P,Q,R)-chains. 53.00/33.41 ---------------------------------------- 53.00/33.41 53.00/33.41 (122) QDPSizeChangeProof (EQUIVALENT) 53.00/33.41 By using the subterm criterion [SUBTERM_CRITERION] together with the size-change analysis [AAECC05] we have proven that there are no infinite chains for this DP problem. 53.00/33.41 53.00/33.41 From the DPs we obtained the following set of size-change graphs: 53.00/33.41 *new_glueBal2Mid_elt10(yuz1663, yuz1664, yuz1665, yuz1666, yuz1667, yuz1668, yuz1669, yuz1670, yuz1671, yuz1672, yuz1673, yuz1674, yuz1675, yuz1676, Branch(yuz16770, yuz16771, yuz16772, yuz16773, yuz16774), h, ba) -> new_glueBal2Mid_elt10(yuz1663, yuz1664, yuz1665, yuz1666, yuz1667, yuz1668, yuz1669, yuz1670, yuz1671, yuz1672, yuz16770, yuz16771, yuz16772, yuz16773, yuz16774, h, ba) 53.00/33.41 The graph contains the following edges 1 >= 1, 2 >= 2, 3 >= 3, 4 >= 4, 5 >= 5, 6 >= 6, 7 >= 7, 8 >= 8, 9 >= 9, 10 >= 10, 15 > 11, 15 > 12, 15 > 13, 15 > 14, 15 > 15, 16 >= 16, 17 >= 17 53.00/33.41 53.00/33.41 53.00/33.41 ---------------------------------------- 53.00/33.41 53.00/33.41 (123) 53.00/33.41 YES 53.07/35.52 EOF