33.36/16.60 YES 35.89/17.31 proof of /export/starexec/sandbox2/benchmark/theBenchmark.hs 35.89/17.31 # AProVE Commit ID: 48fb2092695e11cc9f56e44b17a92a5f88ffb256 marcel 20180622 unpublished dirty 35.89/17.31 35.89/17.31 35.89/17.31 H-Termination with start terms of the given HASKELL could be proven: 35.89/17.31 35.89/17.31 (0) HASKELL 35.89/17.31 (1) LR [EQUIVALENT, 0 ms] 35.89/17.31 (2) HASKELL 35.89/17.31 (3) CR [EQUIVALENT, 0 ms] 35.89/17.31 (4) HASKELL 35.89/17.31 (5) BR [EQUIVALENT, 0 ms] 35.89/17.31 (6) HASKELL 35.89/17.31 (7) COR [EQUIVALENT, 14 ms] 35.89/17.31 (8) HASKELL 35.89/17.31 (9) LetRed [EQUIVALENT, 0 ms] 35.89/17.31 (10) HASKELL 35.89/17.31 (11) NumRed [SOUND, 3 ms] 35.89/17.31 (12) HASKELL 35.89/17.31 (13) Narrow [SOUND, 0 ms] 35.89/17.31 (14) AND 35.89/17.31 (15) QDP 35.89/17.31 (16) QDPSizeChangeProof [EQUIVALENT, 0 ms] 35.89/17.31 (17) YES 35.89/17.31 (18) QDP 35.89/17.31 (19) QDPSizeChangeProof [EQUIVALENT, 0 ms] 35.89/17.31 (20) YES 35.89/17.31 (21) QDP 35.89/17.31 (22) QDPSizeChangeProof [EQUIVALENT, 0 ms] 35.89/17.31 (23) YES 35.89/17.31 (24) QDP 35.89/17.31 (25) QDPSizeChangeProof [EQUIVALENT, 0 ms] 35.89/17.31 (26) YES 35.89/17.31 (27) QDP 35.89/17.31 (28) QDPSizeChangeProof [EQUIVALENT, 0 ms] 35.89/17.31 (29) YES 35.89/17.31 (30) QDP 35.89/17.31 (31) QDPSizeChangeProof [EQUIVALENT, 0 ms] 35.89/17.31 (32) YES 35.89/17.31 (33) QDP 35.89/17.31 (34) QDPSizeChangeProof [EQUIVALENT, 0 ms] 35.89/17.31 (35) YES 35.89/17.31 (36) QDP 35.89/17.31 (37) QDPSizeChangeProof [EQUIVALENT, 0 ms] 35.89/17.31 (38) YES 35.89/17.31 (39) QDP 35.89/17.31 (40) QDPSizeChangeProof [EQUIVALENT, 0 ms] 35.89/17.31 (41) YES 35.89/17.31 (42) QDP 35.89/17.31 (43) QDPSizeChangeProof [EQUIVALENT, 0 ms] 35.89/17.31 (44) YES 35.89/17.31 (45) QDP 35.89/17.31 (46) QDPSizeChangeProof [EQUIVALENT, 0 ms] 35.89/17.31 (47) YES 35.89/17.31 (48) QDP 35.89/17.31 (49) QDPSizeChangeProof [EQUIVALENT, 0 ms] 35.89/17.31 (50) YES 35.89/17.31 (51) QDP 35.89/17.31 (52) QDPSizeChangeProof [EQUIVALENT, 0 ms] 35.89/17.31 (53) YES 35.89/17.31 (54) QDP 35.89/17.31 (55) QDPSizeChangeProof [EQUIVALENT, 0 ms] 35.89/17.31 (56) YES 35.89/17.31 (57) QDP 35.89/17.31 (58) QDPSizeChangeProof [EQUIVALENT, 0 ms] 35.89/17.31 (59) YES 35.89/17.31 (60) QDP 35.89/17.31 (61) QDPSizeChangeProof [EQUIVALENT, 0 ms] 35.89/17.31 (62) YES 35.89/17.31 (63) QDP 35.89/17.31 (64) QDPSizeChangeProof [EQUIVALENT, 0 ms] 35.89/17.31 (65) YES 35.89/17.31 35.89/17.31 35.89/17.31 ---------------------------------------- 35.89/17.31 35.89/17.31 (0) 35.89/17.31 Obligation: 35.89/17.31 mainModule Main 35.89/17.31 module FiniteMap where { 35.89/17.31 import qualified Main; 35.89/17.31 import qualified Maybe; 35.89/17.31 import qualified Prelude; 35.89/17.31 data FiniteMap a b = EmptyFM | Branch a b Int (FiniteMap a b) (FiniteMap a b) ; 35.89/17.31 35.89/17.31 instance (Eq a, Eq b) => Eq FiniteMap b a where { 35.89/17.31 } 35.89/17.31 addToFM :: Ord b => FiniteMap b a -> b -> a -> FiniteMap b a; 35.89/17.31 addToFM fm key elt = addToFM_C (\old new ->new) fm key elt; 35.89/17.31 35.89/17.31 addToFM_C :: Ord b => (a -> a -> a) -> FiniteMap b a -> b -> a -> FiniteMap b a; 35.89/17.31 addToFM_C combiner EmptyFM key elt = unitFM key elt; 35.89/17.31 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 35.89/17.31 | new_key > key = mkBalBranch key elt fm_l (addToFM_C combiner fm_r new_key new_elt) 35.89/17.31 | otherwise = Branch new_key (combiner elt new_elt) size fm_l fm_r; 35.89/17.31 35.89/17.31 deleteMax :: Ord a => FiniteMap a b -> FiniteMap a b; 35.89/17.31 deleteMax (Branch key elt _ fm_l EmptyFM) = fm_l; 35.89/17.31 deleteMax (Branch key elt _ fm_l fm_r) = mkBalBranch key elt fm_l (deleteMax fm_r); 35.89/17.31 35.89/17.31 deleteMin :: Ord b => FiniteMap b a -> FiniteMap b a; 35.89/17.31 deleteMin (Branch key elt _ EmptyFM fm_r) = fm_r; 35.89/17.31 deleteMin (Branch key elt _ fm_l fm_r) = mkBalBranch key elt (deleteMin fm_l) fm_r; 35.89/17.31 35.89/17.31 emptyFM :: FiniteMap b a; 35.89/17.31 emptyFM = EmptyFM; 35.89/17.31 35.89/17.31 filterFM :: Ord a => (a -> b -> Bool) -> FiniteMap a b -> FiniteMap a b; 35.89/17.31 filterFM p EmptyFM = emptyFM; 35.89/17.31 filterFM p (Branch key elt _ fm_l fm_r) | p key elt = mkVBalBranch key elt (filterFM p fm_l) (filterFM p fm_r) 35.89/17.31 | otherwise = glueVBal (filterFM p fm_l) (filterFM p fm_r); 35.89/17.31 35.89/17.31 findMax :: FiniteMap a b -> (a,b); 35.89/17.31 findMax (Branch key elt _ _ EmptyFM) = (key,elt); 35.89/17.31 findMax (Branch key elt _ _ fm_r) = findMax fm_r; 35.89/17.31 35.89/17.31 findMin :: FiniteMap b a -> (b,a); 35.89/17.31 findMin (Branch key elt _ EmptyFM _) = (key,elt); 35.89/17.31 findMin (Branch key elt _ fm_l _) = findMin fm_l; 35.89/17.31 35.89/17.31 glueBal :: Ord a => FiniteMap a b -> FiniteMap a b -> FiniteMap a b; 35.89/17.31 glueBal EmptyFM fm2 = fm2; 35.89/17.31 glueBal fm1 EmptyFM = fm1; 35.89/17.31 glueBal fm1 fm2 | sizeFM fm2 > sizeFM fm1 = mkBalBranch mid_key2 mid_elt2 fm1 (deleteMin fm2) 35.89/17.31 | otherwise = mkBalBranch mid_key1 mid_elt1 (deleteMax fm1) fm2 where { 35.89/17.31 mid_elt1 = (\(_,mid_elt1) ->mid_elt1) vv2; 35.89/17.31 mid_elt2 = (\(_,mid_elt2) ->mid_elt2) vv3; 35.89/17.31 mid_key1 = (\(mid_key1,_) ->mid_key1) vv2; 35.89/17.31 mid_key2 = (\(mid_key2,_) ->mid_key2) vv3; 35.89/17.31 vv2 = findMax fm1; 35.89/17.31 vv3 = findMin fm2; 35.89/17.31 }; 35.89/17.31 35.89/17.31 glueVBal :: Ord a => FiniteMap a b -> FiniteMap a b -> FiniteMap a b; 35.89/17.31 glueVBal EmptyFM fm2 = fm2; 35.89/17.31 glueVBal fm1 EmptyFM = fm1; 35.89/17.31 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 35.89/17.31 | sIZE_RATIO * size_r < size_l = mkBalBranch key_l elt_l fm_ll (glueVBal fm_lr fm_r) 35.89/17.31 | otherwise = glueBal fm_l fm_r where { 35.89/17.31 size_l = sizeFM fm_l; 35.89/17.31 size_r = sizeFM fm_r; 35.89/17.31 }; 35.89/17.31 35.89/17.31 mkBalBranch :: Ord a => a -> b -> FiniteMap a b -> FiniteMap a b -> FiniteMap a b; 35.89/17.31 mkBalBranch key elt fm_L fm_R | size_l + size_r < 2 = mkBranch 1 key elt fm_L fm_R 35.89/17.31 | size_r > sIZE_RATIO * size_l = case fm_R of { 35.89/17.31 Branch _ _ _ fm_rl fm_rr | sizeFM fm_rl < 2 * sizeFM fm_rr -> single_L fm_L fm_R 35.89/17.31 | otherwise -> double_L fm_L fm_R; 35.89/17.31 } 35.89/17.31 | size_l > sIZE_RATIO * size_r = case fm_L of { 35.89/17.31 Branch _ _ _ fm_ll fm_lr | sizeFM fm_lr < 2 * sizeFM fm_ll -> single_R fm_L fm_R 35.89/17.31 | otherwise -> double_R fm_L fm_R; 35.89/17.31 } 35.89/17.31 | otherwise = mkBranch 2 key elt fm_L fm_R where { 35.89/17.31 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); 35.89/17.31 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); 35.89/17.31 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; 35.89/17.31 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); 35.89/17.31 size_l = sizeFM fm_L; 35.89/17.31 size_r = sizeFM fm_R; 35.89/17.31 }; 35.89/17.31 35.89/17.31 mkBranch :: Ord b => Int -> b -> a -> FiniteMap b a -> FiniteMap b a -> FiniteMap b a; 35.89/17.31 mkBranch which key elt fm_l fm_r = let { 35.89/17.31 result = Branch key elt (unbox (1 + left_size + right_size)) fm_l fm_r; 35.89/17.31 } in result where { 35.89/17.31 balance_ok = True; 35.89/17.31 left_ok = case fm_l of { 35.89/17.31 EmptyFM-> True; 35.89/17.31 Branch left_key _ _ _ _-> let { 35.89/17.31 biggest_left_key = fst (findMax fm_l); 35.89/17.31 } in biggest_left_key < key; 35.89/17.31 } ; 35.89/17.31 left_size = sizeFM fm_l; 35.89/17.31 right_ok = case fm_r of { 35.89/17.31 EmptyFM-> True; 35.89/17.31 Branch right_key _ _ _ _-> let { 35.89/17.31 smallest_right_key = fst (findMin fm_r); 35.89/17.31 } in key < smallest_right_key; 35.89/17.31 } ; 35.89/17.31 right_size = sizeFM fm_r; 35.89/17.31 unbox :: Int -> Int; 35.89/17.31 unbox x = x; 35.89/17.31 }; 35.89/17.31 35.89/17.31 mkVBalBranch :: Ord b => b -> a -> FiniteMap b a -> FiniteMap b a -> FiniteMap b a; 35.89/17.31 mkVBalBranch key elt EmptyFM fm_r = addToFM fm_r key elt; 35.89/17.31 mkVBalBranch key elt fm_l EmptyFM = addToFM fm_l key elt; 35.89/17.31 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 35.89/17.31 | sIZE_RATIO * size_r < size_l = mkBalBranch key_l elt_l fm_ll (mkVBalBranch key elt fm_lr fm_r) 35.89/17.31 | otherwise = mkBranch 13 key elt fm_l fm_r where { 35.89/17.31 size_l = sizeFM fm_l; 35.89/17.31 size_r = sizeFM fm_r; 35.89/17.31 }; 35.89/17.31 35.89/17.31 sIZE_RATIO :: Int; 35.89/17.31 sIZE_RATIO = 5; 35.89/17.31 35.89/17.31 sizeFM :: FiniteMap a b -> Int; 35.89/17.31 sizeFM EmptyFM = 0; 35.89/17.31 sizeFM (Branch _ _ size _ _) = size; 35.89/17.31 35.89/17.31 unitFM :: b -> a -> FiniteMap b a; 35.89/17.31 unitFM key elt = Branch key elt 1 emptyFM emptyFM; 35.89/17.31 35.89/17.31 } 35.89/17.31 module Maybe where { 35.89/17.31 import qualified FiniteMap; 35.89/17.31 import qualified Main; 35.89/17.31 import qualified Prelude; 35.89/17.31 } 35.89/17.31 module Main where { 35.89/17.31 import qualified FiniteMap; 35.89/17.31 import qualified Maybe; 35.89/17.31 import qualified Prelude; 35.89/17.31 } 35.89/17.31 35.89/17.31 ---------------------------------------- 35.89/17.31 35.89/17.31 (1) LR (EQUIVALENT) 35.89/17.31 Lambda Reductions: 35.89/17.31 The following Lambda expression 35.89/17.31 "\oldnew->new" 35.89/17.31 is transformed to 35.89/17.31 "addToFM0 old new = new; 35.89/17.31 " 35.89/17.31 The following Lambda expression 35.89/17.31 "\(_,mid_elt2)->mid_elt2" 35.89/17.31 is transformed to 35.89/17.31 "mid_elt20 (_,mid_elt2) = mid_elt2; 35.89/17.31 " 35.89/17.31 The following Lambda expression 35.89/17.31 "\(mid_key2,_)->mid_key2" 35.89/17.31 is transformed to 35.89/17.31 "mid_key20 (mid_key2,_) = mid_key2; 35.89/17.31 " 35.89/17.31 The following Lambda expression 35.89/17.31 "\(mid_key1,_)->mid_key1" 35.89/17.31 is transformed to 35.89/17.31 "mid_key10 (mid_key1,_) = mid_key1; 35.89/17.31 " 35.89/17.31 The following Lambda expression 35.89/17.31 "\(_,mid_elt1)->mid_elt1" 35.89/17.31 is transformed to 35.89/17.31 "mid_elt10 (_,mid_elt1) = mid_elt1; 35.89/17.31 " 35.89/17.31 35.89/17.31 ---------------------------------------- 35.89/17.31 35.89/17.31 (2) 35.89/17.31 Obligation: 35.89/17.31 mainModule Main 35.89/17.31 module FiniteMap where { 35.89/17.31 import qualified Main; 35.89/17.31 import qualified Maybe; 35.89/17.31 import qualified Prelude; 35.89/17.31 data FiniteMap b a = EmptyFM | Branch b a Int (FiniteMap b a) (FiniteMap b a) ; 35.89/17.31 35.89/17.31 instance (Eq a, Eq b) => Eq FiniteMap b a where { 35.89/17.31 } 35.89/17.31 addToFM :: Ord a => FiniteMap a b -> a -> b -> FiniteMap a b; 35.89/17.31 addToFM fm key elt = addToFM_C addToFM0 fm key elt; 35.89/17.31 35.89/17.31 addToFM0 old new = new; 35.89/17.31 35.89/17.31 addToFM_C :: Ord a => (b -> b -> b) -> FiniteMap a b -> a -> b -> FiniteMap a b; 35.89/17.31 addToFM_C combiner EmptyFM key elt = unitFM key elt; 35.89/17.31 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 35.89/17.31 | new_key > key = mkBalBranch key elt fm_l (addToFM_C combiner fm_r new_key new_elt) 35.89/17.31 | otherwise = Branch new_key (combiner elt new_elt) size fm_l fm_r; 35.89/17.31 35.89/17.31 deleteMax :: Ord a => FiniteMap a b -> FiniteMap a b; 35.89/17.31 deleteMax (Branch key elt _ fm_l EmptyFM) = fm_l; 35.89/17.31 deleteMax (Branch key elt _ fm_l fm_r) = mkBalBranch key elt fm_l (deleteMax fm_r); 35.89/17.31 35.89/17.31 deleteMin :: Ord b => FiniteMap b a -> FiniteMap b a; 35.89/17.31 deleteMin (Branch key elt _ EmptyFM fm_r) = fm_r; 35.89/17.31 deleteMin (Branch key elt _ fm_l fm_r) = mkBalBranch key elt (deleteMin fm_l) fm_r; 35.89/17.31 35.89/17.31 emptyFM :: FiniteMap b a; 35.89/17.31 emptyFM = EmptyFM; 35.89/17.31 35.89/17.31 filterFM :: Ord a => (a -> b -> Bool) -> FiniteMap a b -> FiniteMap a b; 35.89/17.31 filterFM p EmptyFM = emptyFM; 35.89/17.31 filterFM p (Branch key elt _ fm_l fm_r) | p key elt = mkVBalBranch key elt (filterFM p fm_l) (filterFM p fm_r) 35.89/17.31 | otherwise = glueVBal (filterFM p fm_l) (filterFM p fm_r); 35.89/17.31 35.89/17.31 findMax :: FiniteMap a b -> (a,b); 35.89/17.31 findMax (Branch key elt _ _ EmptyFM) = (key,elt); 35.89/17.31 findMax (Branch key elt _ _ fm_r) = findMax fm_r; 35.89/17.31 35.89/17.31 findMin :: FiniteMap a b -> (a,b); 35.89/17.31 findMin (Branch key elt _ EmptyFM _) = (key,elt); 35.89/17.31 findMin (Branch key elt _ fm_l _) = findMin fm_l; 35.89/17.31 35.89/17.31 glueBal :: Ord b => FiniteMap b a -> FiniteMap b a -> FiniteMap b a; 35.89/17.31 glueBal EmptyFM fm2 = fm2; 35.89/17.31 glueBal fm1 EmptyFM = fm1; 35.89/17.31 glueBal fm1 fm2 | sizeFM fm2 > sizeFM fm1 = mkBalBranch mid_key2 mid_elt2 fm1 (deleteMin fm2) 35.89/17.31 | otherwise = mkBalBranch mid_key1 mid_elt1 (deleteMax fm1) fm2 where { 35.89/17.31 mid_elt1 = mid_elt10 vv2; 35.89/17.31 mid_elt10 (_,mid_elt1) = mid_elt1; 35.89/17.31 mid_elt2 = mid_elt20 vv3; 35.89/17.31 mid_elt20 (_,mid_elt2) = mid_elt2; 35.89/17.31 mid_key1 = mid_key10 vv2; 35.89/17.31 mid_key10 (mid_key1,_) = mid_key1; 35.89/17.31 mid_key2 = mid_key20 vv3; 35.89/17.31 mid_key20 (mid_key2,_) = mid_key2; 35.89/17.31 vv2 = findMax fm1; 35.89/17.31 vv3 = findMin fm2; 35.89/17.31 }; 35.89/17.31 35.89/17.31 glueVBal :: Ord b => FiniteMap b a -> FiniteMap b a -> FiniteMap b a; 35.89/17.31 glueVBal EmptyFM fm2 = fm2; 35.89/17.31 glueVBal fm1 EmptyFM = fm1; 35.89/17.31 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 35.89/17.31 | sIZE_RATIO * size_r < size_l = mkBalBranch key_l elt_l fm_ll (glueVBal fm_lr fm_r) 35.89/17.31 | otherwise = glueBal fm_l fm_r where { 35.89/17.31 size_l = sizeFM fm_l; 35.89/17.31 size_r = sizeFM fm_r; 35.89/17.31 }; 35.89/17.31 35.89/17.31 mkBalBranch :: Ord a => a -> b -> FiniteMap a b -> FiniteMap a b -> FiniteMap a b; 35.89/17.31 mkBalBranch key elt fm_L fm_R | size_l + size_r < 2 = mkBranch 1 key elt fm_L fm_R 35.89/17.31 | size_r > sIZE_RATIO * size_l = case fm_R of { 35.89/17.31 Branch _ _ _ fm_rl fm_rr | sizeFM fm_rl < 2 * sizeFM fm_rr -> single_L fm_L fm_R 35.89/17.31 | otherwise -> double_L fm_L fm_R; 35.89/17.31 } 35.89/17.31 | size_l > sIZE_RATIO * size_r = case fm_L of { 35.89/17.31 Branch _ _ _ fm_ll fm_lr | sizeFM fm_lr < 2 * sizeFM fm_ll -> single_R fm_L fm_R 35.89/17.31 | otherwise -> double_R fm_L fm_R; 35.89/17.31 } 35.89/17.31 | otherwise = mkBranch 2 key elt fm_L fm_R where { 35.89/17.31 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); 35.89/17.31 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); 35.89/17.31 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; 35.89/17.31 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); 35.89/17.31 size_l = sizeFM fm_L; 35.89/17.31 size_r = sizeFM fm_R; 35.89/17.31 }; 35.89/17.31 35.89/17.31 mkBranch :: Ord a => Int -> a -> b -> FiniteMap a b -> FiniteMap a b -> FiniteMap a b; 35.89/17.31 mkBranch which key elt fm_l fm_r = let { 35.89/17.31 result = Branch key elt (unbox (1 + left_size + right_size)) fm_l fm_r; 35.89/17.31 } in result where { 35.89/17.31 balance_ok = True; 35.89/17.31 left_ok = case fm_l of { 35.89/17.31 EmptyFM-> True; 35.89/17.31 Branch left_key _ _ _ _-> let { 35.89/17.31 biggest_left_key = fst (findMax fm_l); 35.89/17.31 } in biggest_left_key < key; 35.89/17.31 } ; 35.89/17.31 left_size = sizeFM fm_l; 35.89/17.31 right_ok = case fm_r of { 35.89/17.31 EmptyFM-> True; 35.89/17.31 Branch right_key _ _ _ _-> let { 35.89/17.31 smallest_right_key = fst (findMin fm_r); 35.89/17.31 } in key < smallest_right_key; 35.89/17.31 } ; 35.89/17.31 right_size = sizeFM fm_r; 35.89/17.31 unbox :: Int -> Int; 35.89/17.31 unbox x = x; 35.89/17.31 }; 35.89/17.31 35.89/17.31 mkVBalBranch :: Ord b => b -> a -> FiniteMap b a -> FiniteMap b a -> FiniteMap b a; 35.89/17.31 mkVBalBranch key elt EmptyFM fm_r = addToFM fm_r key elt; 35.89/17.31 mkVBalBranch key elt fm_l EmptyFM = addToFM fm_l key elt; 35.89/17.31 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 35.89/17.31 | sIZE_RATIO * size_r < size_l = mkBalBranch key_l elt_l fm_ll (mkVBalBranch key elt fm_lr fm_r) 35.89/17.31 | otherwise = mkBranch 13 key elt fm_l fm_r where { 35.89/17.31 size_l = sizeFM fm_l; 35.89/17.31 size_r = sizeFM fm_r; 35.89/17.31 }; 35.89/17.31 35.89/17.31 sIZE_RATIO :: Int; 35.89/17.31 sIZE_RATIO = 5; 35.89/17.31 35.89/17.31 sizeFM :: FiniteMap a b -> Int; 35.89/17.31 sizeFM EmptyFM = 0; 35.89/17.31 sizeFM (Branch _ _ size _ _) = size; 35.89/17.31 35.89/17.31 unitFM :: a -> b -> FiniteMap a b; 35.89/17.31 unitFM key elt = Branch key elt 1 emptyFM emptyFM; 35.89/17.31 35.89/17.31 } 35.89/17.31 module Maybe where { 35.89/17.31 import qualified FiniteMap; 35.89/17.31 import qualified Main; 35.89/17.31 import qualified Prelude; 35.89/17.31 } 35.89/17.31 module Main where { 35.89/17.31 import qualified FiniteMap; 35.89/17.31 import qualified Maybe; 35.89/17.31 import qualified Prelude; 35.89/17.31 } 35.89/17.31 35.89/17.31 ---------------------------------------- 35.89/17.31 35.89/17.31 (3) CR (EQUIVALENT) 35.89/17.31 Case Reductions: 35.89/17.31 The following Case expression 35.89/17.31 "case fm_r of { 35.89/17.31 EmptyFM -> True; 35.89/17.31 Branch right_key _ _ _ _ -> let { 35.89/17.31 smallest_right_key = fst (findMin fm_r); 35.89/17.31 } in key < smallest_right_key} 35.89/17.31 " 35.89/17.31 is transformed to 35.89/17.31 "right_ok0 fm_r key EmptyFM = True; 35.89/17.31 right_ok0 fm_r key (Branch right_key _ _ _ _) = let { 35.89/17.31 smallest_right_key = fst (findMin fm_r); 35.89/17.31 } in key < smallest_right_key; 35.89/17.31 " 35.89/17.31 The following Case expression 35.89/17.31 "case fm_l of { 35.89/17.31 EmptyFM -> True; 35.89/17.31 Branch left_key _ _ _ _ -> let { 35.89/17.31 biggest_left_key = fst (findMax fm_l); 35.89/17.31 } in biggest_left_key < key} 35.89/17.31 " 35.89/17.31 is transformed to 35.89/17.31 "left_ok0 fm_l key EmptyFM = True; 35.89/17.31 left_ok0 fm_l key (Branch left_key _ _ _ _) = let { 35.89/17.31 biggest_left_key = fst (findMax fm_l); 35.89/17.31 } in biggest_left_key < key; 35.89/17.31 " 35.89/17.31 The following Case expression 35.89/17.31 "case fm_R of { 35.89/17.31 Branch _ _ _ fm_rl fm_rr |sizeFM fm_rl < 2 * sizeFM fm_rrsingle_L fm_L fm_R|otherwisedouble_L fm_L fm_R} 35.89/17.31 " 35.89/17.31 is transformed to 35.89/17.31 "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; 35.89/17.31 " 35.89/17.31 The following Case expression 35.89/17.31 "case fm_L of { 35.89/17.31 Branch _ _ _ fm_ll fm_lr |sizeFM fm_lr < 2 * sizeFM fm_llsingle_R fm_L fm_R|otherwisedouble_R fm_L fm_R} 35.89/17.31 " 35.89/17.31 is transformed to 35.89/17.31 "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; 35.89/17.31 " 35.89/17.31 35.89/17.31 ---------------------------------------- 35.89/17.31 35.89/17.31 (4) 35.89/17.31 Obligation: 35.89/17.31 mainModule Main 35.89/17.31 module FiniteMap where { 35.89/17.31 import qualified Main; 35.89/17.31 import qualified Maybe; 35.89/17.31 import qualified Prelude; 35.89/17.31 data FiniteMap b a = EmptyFM | Branch b a Int (FiniteMap b a) (FiniteMap b a) ; 35.89/17.31 35.89/17.31 instance (Eq a, Eq b) => Eq FiniteMap a b where { 35.89/17.31 } 35.89/17.31 addToFM :: Ord a => FiniteMap a b -> a -> b -> FiniteMap a b; 35.89/17.31 addToFM fm key elt = addToFM_C addToFM0 fm key elt; 35.89/17.31 35.89/17.31 addToFM0 old new = new; 35.89/17.31 35.89/17.31 addToFM_C :: Ord a => (b -> b -> b) -> FiniteMap a b -> a -> b -> FiniteMap a b; 35.89/17.31 addToFM_C combiner EmptyFM key elt = unitFM key elt; 35.89/17.31 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 35.89/17.31 | new_key > key = mkBalBranch key elt fm_l (addToFM_C combiner fm_r new_key new_elt) 35.89/17.31 | otherwise = Branch new_key (combiner elt new_elt) size fm_l fm_r; 35.89/17.31 35.89/17.31 deleteMax :: Ord b => FiniteMap b a -> FiniteMap b a; 35.89/17.31 deleteMax (Branch key elt _ fm_l EmptyFM) = fm_l; 35.89/17.31 deleteMax (Branch key elt _ fm_l fm_r) = mkBalBranch key elt fm_l (deleteMax fm_r); 35.89/17.31 35.89/17.31 deleteMin :: Ord a => FiniteMap a b -> FiniteMap a b; 35.89/17.31 deleteMin (Branch key elt _ EmptyFM fm_r) = fm_r; 35.89/17.31 deleteMin (Branch key elt _ fm_l fm_r) = mkBalBranch key elt (deleteMin fm_l) fm_r; 35.89/17.31 35.89/17.31 emptyFM :: FiniteMap a b; 35.89/17.31 emptyFM = EmptyFM; 35.89/17.31 35.89/17.31 filterFM :: Ord b => (b -> a -> Bool) -> FiniteMap b a -> FiniteMap b a; 35.89/17.31 filterFM p EmptyFM = emptyFM; 35.89/17.31 filterFM p (Branch key elt _ fm_l fm_r) | p key elt = mkVBalBranch key elt (filterFM p fm_l) (filterFM p fm_r) 35.89/17.31 | otherwise = glueVBal (filterFM p fm_l) (filterFM p fm_r); 35.89/17.31 35.89/17.31 findMax :: FiniteMap a b -> (a,b); 35.89/17.31 findMax (Branch key elt _ _ EmptyFM) = (key,elt); 35.89/17.31 findMax (Branch key elt _ _ fm_r) = findMax fm_r; 35.89/17.31 35.89/17.31 findMin :: FiniteMap a b -> (a,b); 35.89/17.31 findMin (Branch key elt _ EmptyFM _) = (key,elt); 35.89/17.31 findMin (Branch key elt _ fm_l _) = findMin fm_l; 35.89/17.31 35.89/17.31 glueBal :: Ord b => FiniteMap b a -> FiniteMap b a -> FiniteMap b a; 35.89/17.31 glueBal EmptyFM fm2 = fm2; 35.89/17.31 glueBal fm1 EmptyFM = fm1; 35.89/17.31 glueBal fm1 fm2 | sizeFM fm2 > sizeFM fm1 = mkBalBranch mid_key2 mid_elt2 fm1 (deleteMin fm2) 35.89/17.31 | otherwise = mkBalBranch mid_key1 mid_elt1 (deleteMax fm1) fm2 where { 35.89/17.31 mid_elt1 = mid_elt10 vv2; 35.89/17.31 mid_elt10 (_,mid_elt1) = mid_elt1; 35.89/17.31 mid_elt2 = mid_elt20 vv3; 35.89/17.31 mid_elt20 (_,mid_elt2) = mid_elt2; 35.89/17.31 mid_key1 = mid_key10 vv2; 35.89/17.31 mid_key10 (mid_key1,_) = mid_key1; 35.89/17.31 mid_key2 = mid_key20 vv3; 35.89/17.31 mid_key20 (mid_key2,_) = mid_key2; 35.89/17.31 vv2 = findMax fm1; 35.89/17.31 vv3 = findMin fm2; 35.89/17.31 }; 35.89/17.31 35.89/17.31 glueVBal :: Ord a => FiniteMap a b -> FiniteMap a b -> FiniteMap a b; 35.89/17.31 glueVBal EmptyFM fm2 = fm2; 35.89/17.31 glueVBal fm1 EmptyFM = fm1; 35.89/17.31 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 35.89/17.31 | sIZE_RATIO * size_r < size_l = mkBalBranch key_l elt_l fm_ll (glueVBal fm_lr fm_r) 35.89/17.31 | otherwise = glueBal fm_l fm_r where { 35.89/17.31 size_l = sizeFM fm_l; 35.89/17.31 size_r = sizeFM fm_r; 35.89/17.31 }; 35.89/17.31 35.89/17.31 mkBalBranch :: Ord a => a -> b -> FiniteMap a b -> FiniteMap a b -> FiniteMap a b; 35.89/17.31 mkBalBranch key elt fm_L fm_R | size_l + size_r < 2 = mkBranch 1 key elt fm_L fm_R 35.89/17.31 | size_r > sIZE_RATIO * size_l = mkBalBranch0 fm_L fm_R fm_R 35.89/17.31 | size_l > sIZE_RATIO * size_r = mkBalBranch1 fm_L fm_R fm_L 35.89/17.31 | otherwise = mkBranch 2 key elt fm_L fm_R where { 35.89/17.31 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); 35.89/17.31 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); 35.89/17.31 mkBalBranch0 fm_L fm_R (Branch _ _ _ fm_rl fm_rr) | sizeFM fm_rl < 2 * sizeFM fm_rr = single_L fm_L fm_R 35.89/17.31 | otherwise = double_L fm_L fm_R; 35.89/17.31 mkBalBranch1 fm_L fm_R (Branch _ _ _ fm_ll fm_lr) | sizeFM fm_lr < 2 * sizeFM fm_ll = single_R fm_L fm_R 35.89/17.31 | otherwise = double_R fm_L fm_R; 35.89/17.31 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; 35.89/17.31 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); 35.89/17.31 size_l = sizeFM fm_L; 35.89/17.31 size_r = sizeFM fm_R; 35.89/17.31 }; 35.89/17.31 35.89/17.31 mkBranch :: Ord b => Int -> b -> a -> FiniteMap b a -> FiniteMap b a -> FiniteMap b a; 35.89/17.31 mkBranch which key elt fm_l fm_r = let { 35.89/17.31 result = Branch key elt (unbox (1 + left_size + right_size)) fm_l fm_r; 35.89/17.31 } in result where { 35.89/17.31 balance_ok = True; 35.89/17.31 left_ok = left_ok0 fm_l key fm_l; 35.89/17.31 left_ok0 fm_l key EmptyFM = True; 35.89/17.31 left_ok0 fm_l key (Branch left_key _ _ _ _) = let { 35.89/17.31 biggest_left_key = fst (findMax fm_l); 35.89/17.31 } in biggest_left_key < key; 35.89/17.31 left_size = sizeFM fm_l; 35.89/17.31 right_ok = right_ok0 fm_r key fm_r; 35.89/17.31 right_ok0 fm_r key EmptyFM = True; 35.89/17.31 right_ok0 fm_r key (Branch right_key _ _ _ _) = let { 35.89/17.31 smallest_right_key = fst (findMin fm_r); 35.89/17.31 } in key < smallest_right_key; 35.89/17.31 right_size = sizeFM fm_r; 35.89/17.31 unbox :: Int -> Int; 35.89/17.31 unbox x = x; 35.89/17.31 }; 35.89/17.31 35.89/17.31 mkVBalBranch :: Ord b => b -> a -> FiniteMap b a -> FiniteMap b a -> FiniteMap b a; 35.89/17.31 mkVBalBranch key elt EmptyFM fm_r = addToFM fm_r key elt; 35.89/17.31 mkVBalBranch key elt fm_l EmptyFM = addToFM fm_l key elt; 35.89/17.31 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 35.89/17.31 | sIZE_RATIO * size_r < size_l = mkBalBranch key_l elt_l fm_ll (mkVBalBranch key elt fm_lr fm_r) 35.89/17.31 | otherwise = mkBranch 13 key elt fm_l fm_r where { 35.89/17.31 size_l = sizeFM fm_l; 35.89/17.31 size_r = sizeFM fm_r; 35.89/17.31 }; 35.89/17.31 35.89/17.31 sIZE_RATIO :: Int; 35.89/17.31 sIZE_RATIO = 5; 35.89/17.31 35.89/17.31 sizeFM :: FiniteMap a b -> Int; 35.89/17.31 sizeFM EmptyFM = 0; 35.89/17.31 sizeFM (Branch _ _ size _ _) = size; 35.89/17.31 35.89/17.31 unitFM :: b -> a -> FiniteMap b a; 35.89/17.31 unitFM key elt = Branch key elt 1 emptyFM emptyFM; 35.89/17.31 35.89/17.31 } 35.89/17.31 module Maybe where { 35.89/17.31 import qualified FiniteMap; 35.89/17.31 import qualified Main; 35.89/17.31 import qualified Prelude; 35.89/17.31 } 35.89/17.31 module Main where { 35.89/17.31 import qualified FiniteMap; 35.89/17.31 import qualified Maybe; 35.89/17.31 import qualified Prelude; 35.89/17.31 } 35.89/17.31 35.89/17.31 ---------------------------------------- 35.89/17.31 35.89/17.31 (5) BR (EQUIVALENT) 35.89/17.31 Replaced joker patterns by fresh variables and removed binding patterns. 35.89/17.31 35.89/17.31 Binding Reductions: 35.89/17.31 The bind variable of the following binding Pattern 35.89/17.31 "fm_l@(Branch wu wv ww wx wy)" 35.89/17.31 is replaced by the following term 35.89/17.31 "Branch wu wv ww wx wy" 35.89/17.31 The bind variable of the following binding Pattern 35.89/17.31 "fm_r@(Branch xu xv xw xx xy)" 35.89/17.31 is replaced by the following term 35.89/17.31 "Branch xu xv xw xx xy" 35.89/17.31 The bind variable of the following binding Pattern 35.89/17.31 "fm_l@(Branch vxu vxv vxw vxx vxy)" 35.89/17.31 is replaced by the following term 35.89/17.31 "Branch vxu vxv vxw vxx vxy" 35.89/17.31 The bind variable of the following binding Pattern 35.89/17.31 "fm_r@(Branch vyu vyv vyw vyx vyy)" 35.89/17.31 is replaced by the following term 35.89/17.31 "Branch vyu vyv vyw vyx vyy" 35.89/17.31 35.89/17.31 ---------------------------------------- 35.89/17.31 35.89/17.31 (6) 35.89/17.31 Obligation: 35.89/17.31 mainModule Main 35.89/17.31 module FiniteMap where { 35.89/17.31 import qualified Main; 35.89/17.31 import qualified Maybe; 35.89/17.31 import qualified Prelude; 35.89/17.31 data FiniteMap b a = EmptyFM | Branch b a Int (FiniteMap b a) (FiniteMap b a) ; 35.89/17.31 35.89/17.31 instance (Eq a, Eq b) => Eq FiniteMap b a where { 35.89/17.31 } 35.89/17.31 addToFM :: Ord b => FiniteMap b a -> b -> a -> FiniteMap b a; 35.89/17.31 addToFM fm key elt = addToFM_C addToFM0 fm key elt; 35.89/17.31 35.89/17.31 addToFM0 old new = new; 35.89/17.31 35.89/17.31 addToFM_C :: Ord a => (b -> b -> b) -> FiniteMap a b -> a -> b -> FiniteMap a b; 35.89/17.31 addToFM_C combiner EmptyFM key elt = unitFM key elt; 35.89/17.31 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 35.89/17.31 | new_key > key = mkBalBranch key elt fm_l (addToFM_C combiner fm_r new_key new_elt) 35.89/17.31 | otherwise = Branch new_key (combiner elt new_elt) size fm_l fm_r; 35.89/17.31 35.89/17.31 deleteMax :: Ord a => FiniteMap a b -> FiniteMap a b; 35.89/17.31 deleteMax (Branch key elt xz fm_l EmptyFM) = fm_l; 35.89/17.31 deleteMax (Branch key elt yu fm_l fm_r) = mkBalBranch key elt fm_l (deleteMax fm_r); 35.89/17.31 35.89/17.31 deleteMin :: Ord b => FiniteMap b a -> FiniteMap b a; 35.89/17.31 deleteMin (Branch key elt vzx EmptyFM fm_r) = fm_r; 35.89/17.31 deleteMin (Branch key elt vzy fm_l fm_r) = mkBalBranch key elt (deleteMin fm_l) fm_r; 35.89/17.31 35.89/17.31 emptyFM :: FiniteMap b a; 35.89/17.31 emptyFM = EmptyFM; 35.89/17.31 35.89/17.31 filterFM :: Ord a => (a -> b -> Bool) -> FiniteMap a b -> FiniteMap a b; 35.89/17.31 filterFM p EmptyFM = emptyFM; 35.89/17.31 filterFM p (Branch key elt vzz fm_l fm_r) | p key elt = mkVBalBranch key elt (filterFM p fm_l) (filterFM p fm_r) 35.89/17.31 | otherwise = glueVBal (filterFM p fm_l) (filterFM p fm_r); 35.89/17.31 35.89/17.31 findMax :: FiniteMap b a -> (b,a); 35.89/17.31 findMax (Branch key elt zx zy EmptyFM) = (key,elt); 35.89/17.31 findMax (Branch key elt zz vuu fm_r) = findMax fm_r; 35.89/17.31 35.89/17.31 findMin :: FiniteMap b a -> (b,a); 35.89/17.31 findMin (Branch key elt wuu EmptyFM wuv) = (key,elt); 35.89/17.31 findMin (Branch key elt wuw fm_l wux) = findMin fm_l; 35.89/17.31 35.89/17.31 glueBal :: Ord a => FiniteMap a b -> FiniteMap a b -> FiniteMap a b; 35.89/17.31 glueBal EmptyFM fm2 = fm2; 35.89/17.31 glueBal fm1 EmptyFM = fm1; 35.89/17.31 glueBal fm1 fm2 | sizeFM fm2 > sizeFM fm1 = mkBalBranch mid_key2 mid_elt2 fm1 (deleteMin fm2) 35.89/17.31 | otherwise = mkBalBranch mid_key1 mid_elt1 (deleteMax fm1) fm2 where { 35.89/17.31 mid_elt1 = mid_elt10 vv2; 35.89/17.31 mid_elt10 (vww,mid_elt1) = mid_elt1; 35.89/17.31 mid_elt2 = mid_elt20 vv3; 35.89/17.31 mid_elt20 (vwv,mid_elt2) = mid_elt2; 35.89/17.31 mid_key1 = mid_key10 vv2; 35.89/17.31 mid_key10 (mid_key1,vwx) = mid_key1; 35.89/17.31 mid_key2 = mid_key20 vv3; 35.89/17.31 mid_key20 (mid_key2,vwy) = mid_key2; 35.89/17.31 vv2 = findMax fm1; 35.89/17.31 vv3 = findMin fm2; 35.89/17.31 }; 35.89/17.31 35.89/17.31 glueVBal :: Ord a => FiniteMap a b -> FiniteMap a b -> FiniteMap a b; 35.89/17.31 glueVBal EmptyFM fm2 = fm2; 35.89/17.31 glueVBal fm1 EmptyFM = fm1; 35.89/17.31 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 35.89/17.31 | sIZE_RATIO * size_r < size_l = mkBalBranch vxu vxv vxx (glueVBal vxy (Branch vyu vyv vyw vyx vyy)) 35.89/17.31 | otherwise = glueBal (Branch vxu vxv vxw vxx vxy) (Branch vyu vyv vyw vyx vyy) where { 35.89/17.31 size_l = sizeFM (Branch vxu vxv vxw vxx vxy); 35.89/17.31 size_r = sizeFM (Branch vyu vyv vyw vyx vyy); 35.89/17.31 }; 35.89/17.31 35.89/17.31 mkBalBranch :: Ord b => b -> a -> FiniteMap b a -> FiniteMap b a -> FiniteMap b a; 35.89/17.31 mkBalBranch key elt fm_L fm_R | size_l + size_r < 2 = mkBranch 1 key elt fm_L fm_R 35.89/17.31 | size_r > sIZE_RATIO * size_l = mkBalBranch0 fm_L fm_R fm_R 35.89/17.31 | size_l > sIZE_RATIO * size_r = mkBalBranch1 fm_L fm_R fm_L 35.89/17.31 | otherwise = mkBranch 2 key elt fm_L fm_R where { 35.89/17.31 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); 35.89/17.31 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); 35.89/17.31 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 35.89/17.31 | otherwise = double_L fm_L fm_R; 35.89/17.31 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 35.89/17.31 | otherwise = double_R fm_L fm_R; 35.89/17.31 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; 35.89/17.31 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); 35.89/17.31 size_l = sizeFM fm_L; 35.89/17.31 size_r = sizeFM fm_R; 35.89/17.31 }; 35.89/17.31 35.89/17.31 mkBranch :: Ord b => Int -> b -> a -> FiniteMap b a -> FiniteMap b a -> FiniteMap b a; 35.89/17.31 mkBranch which key elt fm_l fm_r = let { 35.89/17.31 result = Branch key elt (unbox (1 + left_size + right_size)) fm_l fm_r; 35.89/17.31 } in result where { 35.89/17.31 balance_ok = True; 35.89/17.31 left_ok = left_ok0 fm_l key fm_l; 35.89/17.31 left_ok0 fm_l key EmptyFM = True; 35.89/17.31 left_ok0 fm_l key (Branch left_key yv yw yx yy) = let { 35.89/17.31 biggest_left_key = fst (findMax fm_l); 35.89/17.31 } in biggest_left_key < key; 35.89/17.31 left_size = sizeFM fm_l; 35.89/17.31 right_ok = right_ok0 fm_r key fm_r; 35.89/17.31 right_ok0 fm_r key EmptyFM = True; 35.89/17.31 right_ok0 fm_r key (Branch right_key yz zu zv zw) = let { 35.89/17.31 smallest_right_key = fst (findMin fm_r); 35.89/17.31 } in key < smallest_right_key; 35.89/17.31 right_size = sizeFM fm_r; 35.89/17.31 unbox :: Int -> Int; 35.89/17.31 unbox x = x; 35.89/17.31 }; 35.89/17.31 35.89/17.31 mkVBalBranch :: Ord b => b -> a -> FiniteMap b a -> FiniteMap b a -> FiniteMap b a; 35.89/17.31 mkVBalBranch key elt EmptyFM fm_r = addToFM fm_r key elt; 35.89/17.31 mkVBalBranch key elt fm_l EmptyFM = addToFM fm_l key elt; 35.89/17.31 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 35.89/17.31 | sIZE_RATIO * size_r < size_l = mkBalBranch wu wv wx (mkVBalBranch key elt wy (Branch xu xv xw xx xy)) 35.89/17.31 | otherwise = mkBranch 13 key elt (Branch wu wv ww wx wy) (Branch xu xv xw xx xy) where { 35.89/17.31 size_l = sizeFM (Branch wu wv ww wx wy); 35.89/17.31 size_r = sizeFM (Branch xu xv xw xx xy); 35.89/17.31 }; 35.89/17.31 35.89/17.31 sIZE_RATIO :: Int; 35.89/17.31 sIZE_RATIO = 5; 35.89/17.31 35.89/17.31 sizeFM :: FiniteMap a b -> Int; 35.89/17.31 sizeFM EmptyFM = 0; 35.89/17.31 sizeFM (Branch vyz vzu size vzv vzw) = size; 35.89/17.31 35.89/17.31 unitFM :: a -> b -> FiniteMap a b; 35.89/17.31 unitFM key elt = Branch key elt 1 emptyFM emptyFM; 35.89/17.31 35.89/17.31 } 35.89/17.31 module Maybe where { 35.89/17.31 import qualified FiniteMap; 35.89/17.31 import qualified Main; 35.89/17.31 import qualified Prelude; 35.89/17.31 } 35.89/17.31 module Main where { 35.89/17.31 import qualified FiniteMap; 35.89/17.31 import qualified Maybe; 35.89/17.31 import qualified Prelude; 35.89/17.31 } 35.89/17.31 35.89/17.31 ---------------------------------------- 35.89/17.31 35.89/17.31 (7) COR (EQUIVALENT) 35.89/17.31 Cond Reductions: 35.89/17.31 The following Function with conditions 35.89/17.31 "undefined |Falseundefined; 35.89/17.31 " 35.89/17.31 is transformed to 35.89/17.31 "undefined = undefined1; 35.89/17.31 " 35.89/17.31 "undefined0 True = undefined; 35.89/17.31 " 35.89/17.31 "undefined1 = undefined0 False; 35.89/17.31 " 35.89/17.31 The following Function with conditions 35.89/17.31 "addToFM_C combiner EmptyFM key elt = unitFM key elt; 35.89/17.31 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; 35.89/17.31 " 35.89/17.31 is transformed to 35.89/17.31 "addToFM_C combiner EmptyFM key elt = addToFM_C4 combiner EmptyFM key elt; 35.89/17.31 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; 35.89/17.31 " 35.89/17.31 "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); 35.89/17.31 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; 35.89/17.31 " 35.89/17.31 "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; 35.89/17.31 " 35.89/17.31 "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; 35.89/17.31 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); 35.89/17.31 " 35.89/17.31 "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); 35.89/17.31 " 35.89/17.31 "addToFM_C4 combiner EmptyFM key elt = unitFM key elt; 35.89/17.31 addToFM_C4 wvu wvv wvw wvx = addToFM_C3 wvu wvv wvw wvx; 35.89/17.31 " 35.89/17.31 The following Function with conditions 35.89/17.31 "mkVBalBranch key elt EmptyFM fm_r = addToFM fm_r key elt; 35.89/17.31 mkVBalBranch key elt fm_l EmptyFM = addToFM fm_l key elt; 35.89/17.31 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 { 35.89/17.31 size_l = sizeFM (Branch wu wv ww wx wy); 35.89/17.31 ; 35.89/17.31 size_r = sizeFM (Branch xu xv xw xx xy); 35.89/17.31 } 35.89/17.31 ; 35.89/17.31 " 35.89/17.31 is transformed to 35.89/17.31 "mkVBalBranch key elt EmptyFM fm_r = mkVBalBranch5 key elt EmptyFM fm_r; 35.89/17.31 mkVBalBranch key elt fm_l EmptyFM = mkVBalBranch4 key elt fm_l EmptyFM; 35.89/17.31 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); 35.89/17.31 " 35.89/17.31 "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 { 35.89/17.31 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); 35.89/17.31 ; 35.89/17.31 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)); 35.89/17.31 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; 35.89/17.31 ; 35.89/17.31 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; 35.89/17.31 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); 35.89/17.31 ; 35.89/17.31 size_l = sizeFM (Branch wu wv ww wx wy); 35.89/17.31 ; 35.89/17.31 size_r = sizeFM (Branch xu xv xw xx xy); 35.89/17.31 } 35.89/17.31 ; 35.89/17.31 " 35.89/17.31 "mkVBalBranch4 key elt fm_l EmptyFM = addToFM fm_l key elt; 35.89/17.31 mkVBalBranch4 wwv www wwx wwy = mkVBalBranch3 wwv www wwx wwy; 35.89/17.31 " 35.89/17.31 "mkVBalBranch5 key elt EmptyFM fm_r = addToFM fm_r key elt; 35.89/17.31 mkVBalBranch5 wxu wxv wxw wxx = mkVBalBranch4 wxu wxv wxw wxx; 35.89/17.31 " 35.89/17.31 The following Function with conditions 35.89/17.31 "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; 35.89/17.31 " 35.89/17.31 is transformed to 35.89/17.31 "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); 35.89/17.31 " 35.89/17.31 "mkBalBranch10 fm_L fm_R vuy vuz vvu fm_ll fm_lr True = double_R fm_L fm_R; 36.44/17.46 " 36.44/17.46 "mkBalBranch11 fm_L fm_R vuy vuz vvu fm_ll fm_lr True = single_R fm_L fm_R; 36.44/17.46 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; 36.44/17.46 " 36.44/17.46 "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); 36.44/17.46 " 36.44/17.46 The following Function with conditions 36.44/17.46 "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; 36.44/17.46 " 36.44/17.46 is transformed to 36.44/17.46 "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); 36.44/17.46 " 36.44/17.46 "mkBalBranch00 fm_L fm_R vvx vvy vvz fm_rl fm_rr True = double_L fm_L fm_R; 36.44/17.46 " 36.44/17.46 "mkBalBranch01 fm_L fm_R vvx vvy vvz fm_rl fm_rr True = single_L fm_L fm_R; 36.44/17.46 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; 36.44/17.46 " 36.44/17.46 "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); 36.44/17.46 " 36.44/17.46 The following Function with conditions 36.44/17.46 "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 { 36.44/17.46 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); 36.44/17.46 ; 36.44/17.46 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); 36.44/17.46 ; 36.44/17.46 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; 36.44/17.46 ; 36.44/17.46 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; 36.44/17.46 ; 36.44/17.46 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; 36.44/17.46 ; 36.44/17.46 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); 36.44/17.46 ; 36.44/17.46 size_l = sizeFM fm_L; 36.44/17.46 ; 36.44/17.46 size_r = sizeFM fm_R; 36.44/17.46 } 36.44/17.46 ; 36.44/17.46 " 36.44/17.46 is transformed to 36.44/17.46 "mkBalBranch key elt fm_L fm_R = mkBalBranch6 key elt fm_L fm_R; 36.44/17.46 " 36.44/17.46 "mkBalBranch6 key elt fm_L fm_R = mkBalBranch5 key elt fm_L fm_R (size_l + size_r < 2) where { 36.44/17.46 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); 36.44/17.46 ; 36.44/17.46 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); 36.44/17.46 ; 36.44/17.46 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); 36.44/17.46 ; 36.44/17.46 mkBalBranch00 fm_L fm_R vvx vvy vvz fm_rl fm_rr True = double_L fm_L fm_R; 36.44/17.46 ; 36.44/17.46 mkBalBranch01 fm_L fm_R vvx vvy vvz fm_rl fm_rr True = single_L fm_L fm_R; 36.44/17.46 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; 36.44/17.46 ; 36.44/17.46 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); 36.44/17.46 ; 36.44/17.46 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); 36.44/17.46 ; 36.44/17.46 mkBalBranch10 fm_L fm_R vuy vuz vvu fm_ll fm_lr True = double_R fm_L fm_R; 36.44/17.46 ; 36.44/17.46 mkBalBranch11 fm_L fm_R vuy vuz vvu fm_ll fm_lr True = single_R fm_L fm_R; 36.44/17.46 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; 36.44/17.46 ; 36.44/17.46 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); 36.44/17.46 ; 36.44/17.46 mkBalBranch2 key elt fm_L fm_R True = mkBranch 2 key elt fm_L fm_R; 36.44/17.46 ; 36.44/17.46 mkBalBranch3 key elt fm_L fm_R True = mkBalBranch1 fm_L fm_R fm_L; 36.44/17.46 mkBalBranch3 key elt fm_L fm_R False = mkBalBranch2 key elt fm_L fm_R otherwise; 36.44/17.46 ; 36.44/17.46 mkBalBranch4 key elt fm_L fm_R True = mkBalBranch0 fm_L fm_R fm_R; 36.44/17.46 mkBalBranch4 key elt fm_L fm_R False = mkBalBranch3 key elt fm_L fm_R (size_l > sIZE_RATIO * size_r); 36.44/17.46 ; 36.44/17.46 mkBalBranch5 key elt fm_L fm_R True = mkBranch 1 key elt fm_L fm_R; 36.44/17.46 mkBalBranch5 key elt fm_L fm_R False = mkBalBranch4 key elt fm_L fm_R (size_r > sIZE_RATIO * size_l); 36.44/17.46 ; 36.44/17.46 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; 36.44/17.46 ; 36.44/17.46 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); 36.44/17.46 ; 36.44/17.46 size_l = sizeFM fm_L; 36.44/17.46 ; 36.44/17.46 size_r = sizeFM fm_R; 36.44/17.46 } 36.44/17.46 ; 36.44/17.46 " 36.44/17.46 The following Function with conditions 36.44/17.46 "glueBal EmptyFM fm2 = fm2; 36.44/17.46 glueBal fm1 EmptyFM = fm1; 36.44/17.46 glueBal fm1 fm2|sizeFM fm2 > sizeFM fm1mkBalBranch mid_key2 mid_elt2 fm1 (deleteMin fm2)|otherwisemkBalBranch mid_key1 mid_elt1 (deleteMax fm1) fm2 where { 36.44/17.46 mid_elt1 = mid_elt10 vv2; 36.44/17.46 ; 36.44/17.46 mid_elt10 (vww,mid_elt1) = mid_elt1; 36.44/17.46 ; 36.44/17.46 mid_elt2 = mid_elt20 vv3; 36.44/17.46 ; 36.44/17.46 mid_elt20 (vwv,mid_elt2) = mid_elt2; 36.44/17.46 ; 36.44/17.46 mid_key1 = mid_key10 vv2; 36.44/17.46 ; 36.44/17.46 mid_key10 (mid_key1,vwx) = mid_key1; 36.44/17.46 ; 36.44/17.46 mid_key2 = mid_key20 vv3; 36.44/17.46 ; 36.44/17.46 mid_key20 (mid_key2,vwy) = mid_key2; 36.44/17.46 ; 36.44/17.46 vv2 = findMax fm1; 36.44/17.46 ; 36.44/17.46 vv3 = findMin fm2; 36.44/17.46 } 36.44/17.46 ; 36.44/17.46 " 36.44/17.46 is transformed to 36.44/17.46 "glueBal EmptyFM fm2 = glueBal4 EmptyFM fm2; 36.44/17.46 glueBal fm1 EmptyFM = glueBal3 fm1 EmptyFM; 36.44/17.46 glueBal fm1 fm2 = glueBal2 fm1 fm2; 36.44/17.46 " 36.44/17.46 "glueBal2 fm1 fm2 = glueBal1 fm1 fm2 (sizeFM fm2 > sizeFM fm1) where { 36.44/17.46 glueBal0 fm1 fm2 True = mkBalBranch mid_key1 mid_elt1 (deleteMax fm1) fm2; 36.44/17.46 ; 36.44/17.46 glueBal1 fm1 fm2 True = mkBalBranch mid_key2 mid_elt2 fm1 (deleteMin fm2); 36.44/17.46 glueBal1 fm1 fm2 False = glueBal0 fm1 fm2 otherwise; 36.44/17.46 ; 36.44/17.46 mid_elt1 = mid_elt10 vv2; 36.44/17.46 ; 36.44/17.46 mid_elt10 (vww,mid_elt1) = mid_elt1; 36.44/17.46 ; 36.44/17.46 mid_elt2 = mid_elt20 vv3; 36.44/17.46 ; 36.44/17.46 mid_elt20 (vwv,mid_elt2) = mid_elt2; 36.44/17.46 ; 36.44/17.46 mid_key1 = mid_key10 vv2; 36.44/17.46 ; 36.44/17.46 mid_key10 (mid_key1,vwx) = mid_key1; 36.44/17.46 ; 36.44/17.46 mid_key2 = mid_key20 vv3; 36.44/17.46 ; 36.44/17.46 mid_key20 (mid_key2,vwy) = mid_key2; 36.44/17.46 ; 36.44/17.46 vv2 = findMax fm1; 36.44/17.46 ; 36.44/17.46 vv3 = findMin fm2; 36.44/17.46 } 36.44/17.46 ; 36.44/17.46 " 36.44/17.46 "glueBal3 fm1 EmptyFM = fm1; 36.44/17.46 glueBal3 wyv wyw = glueBal2 wyv wyw; 36.44/17.46 " 36.44/17.46 "glueBal4 EmptyFM fm2 = fm2; 36.44/17.46 glueBal4 wyy wyz = glueBal3 wyy wyz; 36.44/17.46 " 36.44/17.46 The following Function with conditions 36.44/17.46 "glueVBal EmptyFM fm2 = fm2; 36.44/17.46 glueVBal fm1 EmptyFM = fm1; 36.44/17.46 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 { 36.44/17.46 size_l = sizeFM (Branch vxu vxv vxw vxx vxy); 36.44/17.46 ; 36.44/17.46 size_r = sizeFM (Branch vyu vyv vyw vyx vyy); 36.44/17.46 } 36.44/17.46 ; 36.44/17.46 " 36.44/17.46 is transformed to 36.44/17.46 "glueVBal EmptyFM fm2 = glueVBal5 EmptyFM fm2; 36.44/17.46 glueVBal fm1 EmptyFM = glueVBal4 fm1 EmptyFM; 36.44/17.46 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); 36.44/17.46 " 36.44/17.46 "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 { 36.44/17.46 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); 36.44/17.46 ; 36.44/17.46 glueVBal1 vxu vxv vxw vxx vxy vyu vyv vyw vyx vyy True = mkBalBranch vxu vxv vxx (glueVBal vxy (Branch vyu vyv vyw vyx vyy)); 36.44/17.46 glueVBal1 vxu vxv vxw vxx vxy vyu vyv vyw vyx vyy False = glueVBal0 vxu vxv vxw vxx vxy vyu vyv vyw vyx vyy otherwise; 36.44/17.46 ; 36.44/17.46 glueVBal2 vxu vxv vxw vxx vxy vyu vyv vyw vyx vyy True = mkBalBranch vyu vyv (glueVBal (Branch vxu vxv vxw vxx vxy) vyx) vyy; 36.44/17.46 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); 36.44/17.46 ; 36.44/17.46 size_l = sizeFM (Branch vxu vxv vxw vxx vxy); 36.44/17.46 ; 36.44/17.46 size_r = sizeFM (Branch vyu vyv vyw vyx vyy); 36.44/17.46 } 36.44/17.46 ; 36.44/17.46 " 36.44/17.46 "glueVBal4 fm1 EmptyFM = fm1; 36.44/17.46 glueVBal4 wzx wzy = glueVBal3 wzx wzy; 36.44/17.46 " 36.44/17.46 "glueVBal5 EmptyFM fm2 = fm2; 36.44/17.46 glueVBal5 xuu xuv = glueVBal4 xuu xuv; 36.44/17.46 " 36.44/17.46 The following Function with conditions 36.44/17.46 "filterFM p EmptyFM = emptyFM; 36.44/17.46 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); 36.44/17.46 " 36.44/17.46 is transformed to 36.44/17.46 "filterFM p EmptyFM = filterFM3 p EmptyFM; 36.44/17.46 filterFM p (Branch key elt vzz fm_l fm_r) = filterFM2 p (Branch key elt vzz fm_l fm_r); 36.44/17.46 " 36.44/17.46 "filterFM0 p key elt vzz fm_l fm_r True = glueVBal (filterFM p fm_l) (filterFM p fm_r); 36.44/17.46 " 36.44/17.46 "filterFM1 p key elt vzz fm_l fm_r True = mkVBalBranch key elt (filterFM p fm_l) (filterFM p fm_r); 36.44/17.46 filterFM1 p key elt vzz fm_l fm_r False = filterFM0 p key elt vzz fm_l fm_r otherwise; 36.44/17.46 " 36.44/17.46 "filterFM2 p (Branch key elt vzz fm_l fm_r) = filterFM1 p key elt vzz fm_l fm_r (p key elt); 36.44/17.46 " 36.44/17.46 "filterFM3 p EmptyFM = emptyFM; 36.44/17.46 filterFM3 xuy xuz = filterFM2 xuy xuz; 36.44/17.46 " 36.44/17.46 36.44/17.46 ---------------------------------------- 36.44/17.46 36.44/17.46 (8) 36.44/17.46 Obligation: 36.44/17.46 mainModule Main 36.44/17.46 module FiniteMap where { 36.44/17.46 import qualified Main; 36.44/17.46 import qualified Maybe; 36.44/17.46 import qualified Prelude; 36.44/17.46 data FiniteMap a b = EmptyFM | Branch a b Int (FiniteMap a b) (FiniteMap a b) ; 36.44/17.46 36.44/17.46 instance (Eq a, Eq b) => Eq FiniteMap b a where { 36.44/17.46 } 36.44/17.46 addToFM :: Ord a => FiniteMap a b -> a -> b -> FiniteMap a b; 36.44/17.46 addToFM fm key elt = addToFM_C addToFM0 fm key elt; 36.44/17.46 36.44/17.46 addToFM0 old new = new; 36.44/17.46 36.44/17.46 addToFM_C :: Ord a => (b -> b -> b) -> FiniteMap a b -> a -> b -> FiniteMap a b; 36.44/17.46 addToFM_C combiner EmptyFM key elt = addToFM_C4 combiner EmptyFM key elt; 36.44/17.46 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; 36.44/17.46 36.44/17.46 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; 36.44/17.46 36.44/17.46 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); 36.44/17.46 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; 36.44/17.46 36.44/17.46 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; 36.44/17.46 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); 36.44/17.46 36.44/17.46 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); 36.44/17.46 36.44/17.46 addToFM_C4 combiner EmptyFM key elt = unitFM key elt; 36.44/17.46 addToFM_C4 wvu wvv wvw wvx = addToFM_C3 wvu wvv wvw wvx; 36.44/17.46 36.44/17.46 deleteMax :: Ord a => FiniteMap a b -> FiniteMap a b; 36.44/17.46 deleteMax (Branch key elt xz fm_l EmptyFM) = fm_l; 36.44/17.46 deleteMax (Branch key elt yu fm_l fm_r) = mkBalBranch key elt fm_l (deleteMax fm_r); 36.44/17.46 36.44/17.46 deleteMin :: Ord b => FiniteMap b a -> FiniteMap b a; 36.44/17.46 deleteMin (Branch key elt vzx EmptyFM fm_r) = fm_r; 36.44/17.46 deleteMin (Branch key elt vzy fm_l fm_r) = mkBalBranch key elt (deleteMin fm_l) fm_r; 36.44/17.46 36.44/17.46 emptyFM :: FiniteMap b a; 36.44/17.46 emptyFM = EmptyFM; 36.44/17.46 36.44/17.46 filterFM :: Ord a => (a -> b -> Bool) -> FiniteMap a b -> FiniteMap a b; 36.44/17.46 filterFM p EmptyFM = filterFM3 p EmptyFM; 36.44/17.46 filterFM p (Branch key elt vzz fm_l fm_r) = filterFM2 p (Branch key elt vzz fm_l fm_r); 36.44/17.46 36.44/17.46 filterFM0 p key elt vzz fm_l fm_r True = glueVBal (filterFM p fm_l) (filterFM p fm_r); 36.44/17.46 36.44/17.46 filterFM1 p key elt vzz fm_l fm_r True = mkVBalBranch key elt (filterFM p fm_l) (filterFM p fm_r); 36.44/17.46 filterFM1 p key elt vzz fm_l fm_r False = filterFM0 p key elt vzz fm_l fm_r otherwise; 36.44/17.46 36.44/17.46 filterFM2 p (Branch key elt vzz fm_l fm_r) = filterFM1 p key elt vzz fm_l fm_r (p key elt); 36.44/17.46 36.44/17.46 filterFM3 p EmptyFM = emptyFM; 36.44/17.46 filterFM3 xuy xuz = filterFM2 xuy xuz; 36.44/17.46 36.44/17.46 findMax :: FiniteMap b a -> (b,a); 36.44/17.46 findMax (Branch key elt zx zy EmptyFM) = (key,elt); 36.44/17.46 findMax (Branch key elt zz vuu fm_r) = findMax fm_r; 36.44/17.46 36.44/17.46 findMin :: FiniteMap b a -> (b,a); 36.44/17.46 findMin (Branch key elt wuu EmptyFM wuv) = (key,elt); 36.44/17.46 findMin (Branch key elt wuw fm_l wux) = findMin fm_l; 36.44/17.46 36.44/17.46 glueBal :: Ord b => FiniteMap b a -> FiniteMap b a -> FiniteMap b a; 36.44/17.46 glueBal EmptyFM fm2 = glueBal4 EmptyFM fm2; 36.44/17.46 glueBal fm1 EmptyFM = glueBal3 fm1 EmptyFM; 36.44/17.46 glueBal fm1 fm2 = glueBal2 fm1 fm2; 36.44/17.46 36.44/17.46 glueBal2 fm1 fm2 = glueBal1 fm1 fm2 (sizeFM fm2 > sizeFM fm1) where { 36.44/17.46 glueBal0 fm1 fm2 True = mkBalBranch mid_key1 mid_elt1 (deleteMax fm1) fm2; 36.44/17.46 glueBal1 fm1 fm2 True = mkBalBranch mid_key2 mid_elt2 fm1 (deleteMin fm2); 36.44/17.46 glueBal1 fm1 fm2 False = glueBal0 fm1 fm2 otherwise; 36.44/17.46 mid_elt1 = mid_elt10 vv2; 36.44/17.46 mid_elt10 (vww,mid_elt1) = mid_elt1; 36.44/17.46 mid_elt2 = mid_elt20 vv3; 36.44/17.46 mid_elt20 (vwv,mid_elt2) = mid_elt2; 36.44/17.46 mid_key1 = mid_key10 vv2; 36.44/17.46 mid_key10 (mid_key1,vwx) = mid_key1; 36.44/17.46 mid_key2 = mid_key20 vv3; 36.44/17.46 mid_key20 (mid_key2,vwy) = mid_key2; 36.44/17.46 vv2 = findMax fm1; 36.44/17.46 vv3 = findMin fm2; 36.44/17.46 }; 36.44/17.46 36.44/17.46 glueBal3 fm1 EmptyFM = fm1; 36.44/17.46 glueBal3 wyv wyw = glueBal2 wyv wyw; 36.44/17.46 36.44/17.46 glueBal4 EmptyFM fm2 = fm2; 36.44/17.46 glueBal4 wyy wyz = glueBal3 wyy wyz; 36.44/17.46 36.44/17.46 glueVBal :: Ord a => FiniteMap a b -> FiniteMap a b -> FiniteMap a b; 36.44/17.46 glueVBal EmptyFM fm2 = glueVBal5 EmptyFM fm2; 36.44/17.46 glueVBal fm1 EmptyFM = glueVBal4 fm1 EmptyFM; 36.44/17.46 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); 36.44/17.46 36.44/17.46 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 { 36.44/17.46 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); 36.44/17.46 glueVBal1 vxu vxv vxw vxx vxy vyu vyv vyw vyx vyy True = mkBalBranch vxu vxv vxx (glueVBal vxy (Branch vyu vyv vyw vyx vyy)); 36.44/17.46 glueVBal1 vxu vxv vxw vxx vxy vyu vyv vyw vyx vyy False = glueVBal0 vxu vxv vxw vxx vxy vyu vyv vyw vyx vyy otherwise; 36.44/17.46 glueVBal2 vxu vxv vxw vxx vxy vyu vyv vyw vyx vyy True = mkBalBranch vyu vyv (glueVBal (Branch vxu vxv vxw vxx vxy) vyx) vyy; 36.44/17.46 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); 36.44/17.46 size_l = sizeFM (Branch vxu vxv vxw vxx vxy); 36.44/17.46 size_r = sizeFM (Branch vyu vyv vyw vyx vyy); 36.44/17.46 }; 36.44/17.46 36.44/17.46 glueVBal4 fm1 EmptyFM = fm1; 36.44/17.46 glueVBal4 wzx wzy = glueVBal3 wzx wzy; 36.44/17.46 36.44/17.46 glueVBal5 EmptyFM fm2 = fm2; 36.44/17.46 glueVBal5 xuu xuv = glueVBal4 xuu xuv; 36.44/17.46 36.44/17.46 mkBalBranch :: Ord b => b -> a -> FiniteMap b a -> FiniteMap b a -> FiniteMap b a; 36.44/17.46 mkBalBranch key elt fm_L fm_R = mkBalBranch6 key elt fm_L fm_R; 36.44/17.46 36.44/17.46 mkBalBranch6 key elt fm_L fm_R = mkBalBranch5 key elt fm_L fm_R (size_l + size_r < 2) where { 36.44/17.46 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); 36.44/17.46 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); 36.44/17.46 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); 36.44/17.46 mkBalBranch00 fm_L fm_R vvx vvy vvz fm_rl fm_rr True = double_L fm_L fm_R; 36.44/17.46 mkBalBranch01 fm_L fm_R vvx vvy vvz fm_rl fm_rr True = single_L fm_L fm_R; 36.44/17.46 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; 36.44/17.46 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); 36.44/17.46 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); 36.44/17.46 mkBalBranch10 fm_L fm_R vuy vuz vvu fm_ll fm_lr True = double_R fm_L fm_R; 36.44/17.46 mkBalBranch11 fm_L fm_R vuy vuz vvu fm_ll fm_lr True = single_R fm_L fm_R; 36.44/17.46 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; 36.44/17.46 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); 36.44/17.46 mkBalBranch2 key elt fm_L fm_R True = mkBranch 2 key elt fm_L fm_R; 36.44/17.46 mkBalBranch3 key elt fm_L fm_R True = mkBalBranch1 fm_L fm_R fm_L; 36.44/17.46 mkBalBranch3 key elt fm_L fm_R False = mkBalBranch2 key elt fm_L fm_R otherwise; 36.44/17.46 mkBalBranch4 key elt fm_L fm_R True = mkBalBranch0 fm_L fm_R fm_R; 36.44/17.46 mkBalBranch4 key elt fm_L fm_R False = mkBalBranch3 key elt fm_L fm_R (size_l > sIZE_RATIO * size_r); 36.44/17.46 mkBalBranch5 key elt fm_L fm_R True = mkBranch 1 key elt fm_L fm_R; 36.44/17.46 mkBalBranch5 key elt fm_L fm_R False = mkBalBranch4 key elt fm_L fm_R (size_r > sIZE_RATIO * size_l); 36.44/17.46 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; 36.44/17.46 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); 36.44/17.46 size_l = sizeFM fm_L; 36.44/17.46 size_r = sizeFM fm_R; 36.44/17.46 }; 36.44/17.46 36.44/17.46 mkBranch :: Ord b => Int -> b -> a -> FiniteMap b a -> FiniteMap b a -> FiniteMap b a; 36.44/17.46 mkBranch which key elt fm_l fm_r = let { 36.44/17.46 result = Branch key elt (unbox (1 + left_size + right_size)) fm_l fm_r; 36.44/17.46 } in result where { 36.44/17.46 balance_ok = True; 36.44/17.46 left_ok = left_ok0 fm_l key fm_l; 36.44/17.46 left_ok0 fm_l key EmptyFM = True; 36.44/17.46 left_ok0 fm_l key (Branch left_key yv yw yx yy) = let { 36.44/17.46 biggest_left_key = fst (findMax fm_l); 36.44/17.46 } in biggest_left_key < key; 36.44/17.46 left_size = sizeFM fm_l; 36.44/17.46 right_ok = right_ok0 fm_r key fm_r; 36.44/17.46 right_ok0 fm_r key EmptyFM = True; 36.44/17.46 right_ok0 fm_r key (Branch right_key yz zu zv zw) = let { 36.44/17.46 smallest_right_key = fst (findMin fm_r); 36.44/17.46 } in key < smallest_right_key; 36.44/17.46 right_size = sizeFM fm_r; 36.44/17.46 unbox :: Int -> Int; 36.44/17.46 unbox x = x; 36.44/17.46 }; 36.44/17.46 36.44/17.46 mkVBalBranch :: Ord a => a -> b -> FiniteMap a b -> FiniteMap a b -> FiniteMap a b; 36.44/17.46 mkVBalBranch key elt EmptyFM fm_r = mkVBalBranch5 key elt EmptyFM fm_r; 36.44/17.46 mkVBalBranch key elt fm_l EmptyFM = mkVBalBranch4 key elt fm_l EmptyFM; 36.44/17.46 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); 36.44/17.46 36.44/17.46 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 { 36.44/17.46 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); 36.44/17.46 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)); 36.44/17.46 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; 36.44/17.46 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; 36.44/17.46 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); 36.44/17.46 size_l = sizeFM (Branch wu wv ww wx wy); 36.44/17.46 size_r = sizeFM (Branch xu xv xw xx xy); 36.44/17.46 }; 36.44/17.46 36.44/17.46 mkVBalBranch4 key elt fm_l EmptyFM = addToFM fm_l key elt; 36.44/17.46 mkVBalBranch4 wwv www wwx wwy = mkVBalBranch3 wwv www wwx wwy; 36.44/17.46 36.44/17.46 mkVBalBranch5 key elt EmptyFM fm_r = addToFM fm_r key elt; 36.44/17.46 mkVBalBranch5 wxu wxv wxw wxx = mkVBalBranch4 wxu wxv wxw wxx; 36.44/17.46 36.44/17.46 sIZE_RATIO :: Int; 36.44/17.46 sIZE_RATIO = 5; 36.44/17.46 36.44/17.46 sizeFM :: FiniteMap a b -> Int; 36.44/17.46 sizeFM EmptyFM = 0; 36.44/17.46 sizeFM (Branch vyz vzu size vzv vzw) = size; 36.44/17.46 36.44/17.46 unitFM :: a -> b -> FiniteMap a b; 36.44/17.46 unitFM key elt = Branch key elt 1 emptyFM emptyFM; 36.44/17.46 36.44/17.46 } 36.44/17.46 module Maybe where { 36.44/17.46 import qualified FiniteMap; 36.44/17.46 import qualified Main; 36.44/17.46 import qualified Prelude; 36.44/17.46 } 36.44/17.46 module Main where { 36.44/17.46 import qualified FiniteMap; 36.44/17.46 import qualified Maybe; 36.44/17.46 import qualified Prelude; 36.44/17.46 } 36.44/17.46 36.44/17.46 ---------------------------------------- 36.44/17.46 36.44/17.46 (9) LetRed (EQUIVALENT) 36.44/17.46 Let/Where Reductions: 36.44/17.46 The bindings of the following Let/Where expression 36.44/17.46 "mkBalBranch5 key elt fm_L fm_R (size_l + size_r < 2) where { 36.44/17.46 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); 36.44/17.46 ; 36.44/17.46 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); 36.44/17.46 ; 36.44/17.46 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); 36.44/17.46 ; 36.44/17.46 mkBalBranch00 fm_L fm_R vvx vvy vvz fm_rl fm_rr True = double_L fm_L fm_R; 36.44/17.46 ; 36.44/17.46 mkBalBranch01 fm_L fm_R vvx vvy vvz fm_rl fm_rr True = single_L fm_L fm_R; 36.44/17.46 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; 36.44/17.46 ; 36.44/17.46 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); 36.44/17.46 ; 36.44/17.46 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); 36.44/17.46 ; 36.44/17.46 mkBalBranch10 fm_L fm_R vuy vuz vvu fm_ll fm_lr True = double_R fm_L fm_R; 36.44/17.46 ; 36.44/17.46 mkBalBranch11 fm_L fm_R vuy vuz vvu fm_ll fm_lr True = single_R fm_L fm_R; 36.44/17.46 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; 36.44/17.46 ; 36.44/17.46 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); 36.44/17.46 ; 36.44/17.46 mkBalBranch2 key elt fm_L fm_R True = mkBranch 2 key elt fm_L fm_R; 36.44/17.46 ; 36.44/17.46 mkBalBranch3 key elt fm_L fm_R True = mkBalBranch1 fm_L fm_R fm_L; 36.44/17.46 mkBalBranch3 key elt fm_L fm_R False = mkBalBranch2 key elt fm_L fm_R otherwise; 36.44/17.46 ; 36.44/17.46 mkBalBranch4 key elt fm_L fm_R True = mkBalBranch0 fm_L fm_R fm_R; 36.44/17.46 mkBalBranch4 key elt fm_L fm_R False = mkBalBranch3 key elt fm_L fm_R (size_l > sIZE_RATIO * size_r); 36.44/17.46 ; 36.44/17.46 mkBalBranch5 key elt fm_L fm_R True = mkBranch 1 key elt fm_L fm_R; 36.44/17.46 mkBalBranch5 key elt fm_L fm_R False = mkBalBranch4 key elt fm_L fm_R (size_r > sIZE_RATIO * size_l); 36.44/17.46 ; 36.44/17.46 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; 36.44/17.46 ; 36.44/17.46 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); 36.44/17.46 ; 36.44/17.46 size_l = sizeFM fm_L; 36.44/17.46 ; 36.44/17.46 size_r = sizeFM fm_R; 36.44/17.46 } 36.44/17.46 " 36.44/17.46 are unpacked to the following functions on top level 36.44/17.46 "mkBalBranch6Size_r xvu xvv xvw xvx = sizeFM xvu; 36.44/17.46 " 36.44/17.46 "mkBalBranch6MkBalBranch5 xvu xvv xvw xvx key elt fm_L fm_R True = mkBranch 1 key elt fm_L fm_R; 36.44/17.46 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); 36.44/17.46 " 36.44/17.46 "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; 36.44/17.46 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; 36.44/17.46 " 36.44/17.46 "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 xvv xvw fm_lrr fm_r); 36.44/17.46 " 36.44/17.46 "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 xvv xvw fm_lr fm_r); 36.44/17.46 " 36.44/17.46 "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; 36.44/17.46 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; 36.44/17.46 " 36.44/17.46 "mkBalBranch6Size_l xvu xvv xvw xvx = sizeFM xvx; 36.44/17.46 " 36.44/17.46 "mkBalBranch6MkBalBranch3 xvu xvv xvw xvx key elt fm_L fm_R True = mkBalBranch6MkBalBranch1 xvu xvv xvw xvx fm_L fm_R fm_L; 36.44/17.46 mkBalBranch6MkBalBranch3 xvu xvv xvw xvx key elt fm_L fm_R False = mkBalBranch6MkBalBranch2 xvu xvv xvw xvx key elt fm_L fm_R otherwise; 36.44/17.46 " 36.44/17.46 "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; 36.44/17.46 " 36.44/17.46 "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 xvv xvw fm_l fm_rl) fm_rr; 36.44/17.46 " 36.44/17.46 "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); 36.44/17.46 " 36.44/17.46 "mkBalBranch6MkBalBranch4 xvu xvv xvw xvx key elt fm_L fm_R True = mkBalBranch6MkBalBranch0 xvu xvv xvw xvx fm_L fm_R fm_R; 36.44/17.46 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); 36.44/17.46 " 36.44/17.46 "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; 36.44/17.46 " 36.44/17.46 "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); 36.98/17.57 " 36.98/17.57 "mkBalBranch6MkBalBranch2 xvu xvv xvw xvx key elt fm_L fm_R True = mkBranch 2 key elt fm_L fm_R; 36.98/17.57 " 36.98/17.57 "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); 36.98/17.57 " 36.98/17.57 "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 xvv xvw fm_l fm_rll) (mkBranch 7 key_r elt_r fm_rlr fm_rr); 36.98/17.57 " 36.98/17.57 "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); 36.98/17.57 " 36.98/17.57 The bindings of the following Let/Where expression 36.98/17.57 "let { 36.98/17.57 result = Branch key elt (unbox (1 + left_size + right_size)) fm_l fm_r; 36.98/17.57 } in result where { 36.98/17.57 balance_ok = True; 36.98/17.57 ; 36.98/17.57 left_ok = left_ok0 fm_l key fm_l; 36.98/17.57 ; 36.98/17.57 left_ok0 fm_l key EmptyFM = True; 36.98/17.57 left_ok0 fm_l key (Branch left_key yv yw yx yy) = let { 36.98/17.57 biggest_left_key = fst (findMax fm_l); 36.98/17.57 } in biggest_left_key < key; 36.98/17.57 ; 36.98/17.57 left_size = sizeFM fm_l; 36.98/17.57 ; 36.98/17.57 right_ok = right_ok0 fm_r key fm_r; 36.98/17.57 ; 36.98/17.57 right_ok0 fm_r key EmptyFM = True; 36.98/17.57 right_ok0 fm_r key (Branch right_key yz zu zv zw) = let { 36.98/17.57 smallest_right_key = fst (findMin fm_r); 36.98/17.57 } in key < smallest_right_key; 36.98/17.57 ; 36.98/17.57 right_size = sizeFM fm_r; 36.98/17.57 ; 36.98/17.57 unbox x = x; 36.98/17.57 } 36.98/17.57 " 36.98/17.57 are unpacked to the following functions on top level 36.98/17.57 "mkBranchLeft_ok0 xvy xvz xwu fm_l key EmptyFM = True; 36.98/17.57 mkBranchLeft_ok0 xvy xvz xwu fm_l key (Branch left_key yv yw yx yy) = mkBranchLeft_ok0Biggest_left_key fm_l < key; 36.98/17.57 " 36.98/17.57 "mkBranchLeft_size xvy xvz xwu = sizeFM xvy; 36.98/17.57 " 36.98/17.57 "mkBranchBalance_ok xvy xvz xwu = True; 36.98/17.57 " 36.98/17.57 "mkBranchUnbox xvy xvz xwu x = x; 36.98/17.57 " 36.98/17.57 "mkBranchLeft_ok xvy xvz xwu = mkBranchLeft_ok0 xvy xvz xwu xvy xvz xvy; 36.98/17.57 " 36.98/17.57 "mkBranchRight_ok xvy xvz xwu = mkBranchRight_ok0 xvy xvz xwu xwu xvz xwu; 36.98/17.57 " 36.98/17.57 "mkBranchRight_ok0 xvy xvz xwu fm_r key EmptyFM = True; 36.98/17.57 mkBranchRight_ok0 xvy xvz xwu fm_r key (Branch right_key yz zu zv zw) = key < mkBranchRight_ok0Smallest_right_key fm_r; 36.98/17.57 " 36.98/17.57 "mkBranchRight_size xvy xvz xwu = sizeFM xwu; 36.98/17.57 " 36.98/17.57 The bindings of the following Let/Where expression 36.98/17.57 "let { 36.98/17.57 result = Branch key elt (unbox (1 + left_size + right_size)) fm_l fm_r; 36.98/17.57 } in result" 36.98/17.57 are unpacked to the following functions on top level 36.98/17.57 "mkBranchResult xwv xww xwx xwy = Branch xwv xww (mkBranchUnbox xwx xwv xwy (1 + mkBranchLeft_size xwx xwv xwy + mkBranchRight_size xwx xwv xwy)) xwx xwy; 36.98/17.57 " 36.98/17.57 The bindings of the following Let/Where expression 36.98/17.57 "glueVBal2 vxu vxv vxw vxx vxy vyu vyv vyw vyx vyy (sIZE_RATIO * size_l < size_r) where { 36.98/17.57 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); 36.98/17.57 ; 36.98/17.57 glueVBal1 vxu vxv vxw vxx vxy vyu vyv vyw vyx vyy True = mkBalBranch vxu vxv vxx (glueVBal vxy (Branch vyu vyv vyw vyx vyy)); 36.98/17.57 glueVBal1 vxu vxv vxw vxx vxy vyu vyv vyw vyx vyy False = glueVBal0 vxu vxv vxw vxx vxy vyu vyv vyw vyx vyy otherwise; 36.98/17.57 ; 36.98/17.57 glueVBal2 vxu vxv vxw vxx vxy vyu vyv vyw vyx vyy True = mkBalBranch vyu vyv (glueVBal (Branch vxu vxv vxw vxx vxy) vyx) vyy; 36.98/17.57 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); 36.98/17.57 ; 36.98/17.57 size_l = sizeFM (Branch vxu vxv vxw vxx vxy); 36.98/17.57 ; 36.98/17.57 size_r = sizeFM (Branch vyu vyv vyw vyx vyy); 36.98/17.57 } 36.98/17.57 " 36.98/17.57 are unpacked to the following functions on top level 36.98/17.57 "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)); 36.98/17.57 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; 36.98/17.57 " 36.98/17.57 "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); 36.98/17.57 " 36.98/17.57 "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; 36.98/17.57 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); 36.98/17.57 " 36.98/17.57 "glueVBal3Size_r xwz xxu xxv xxw xxx xxy xxz xyu xyv xyw = sizeFM (Branch xwz xxu xxv xxw xxx); 36.98/17.57 " 36.98/17.57 "glueVBal3Size_l xwz xxu xxv xxw xxx xxy xxz xyu xyv xyw = sizeFM (Branch xxy xxz xyu xyv xyw); 36.98/17.57 " 36.98/17.57 The bindings of the following Let/Where expression 36.98/17.57 "glueBal1 fm1 fm2 (sizeFM fm2 > sizeFM fm1) where { 36.98/17.57 glueBal0 fm1 fm2 True = mkBalBranch mid_key1 mid_elt1 (deleteMax fm1) fm2; 36.98/17.57 ; 36.98/17.57 glueBal1 fm1 fm2 True = mkBalBranch mid_key2 mid_elt2 fm1 (deleteMin fm2); 36.98/17.57 glueBal1 fm1 fm2 False = glueBal0 fm1 fm2 otherwise; 36.98/17.57 ; 36.98/17.57 mid_elt1 = mid_elt10 vv2; 36.98/17.57 ; 36.98/17.57 mid_elt10 (vww,mid_elt1) = mid_elt1; 36.98/17.57 ; 36.98/17.57 mid_elt2 = mid_elt20 vv3; 36.98/17.57 ; 36.98/17.57 mid_elt20 (vwv,mid_elt2) = mid_elt2; 36.98/17.57 ; 36.98/17.57 mid_key1 = mid_key10 vv2; 36.98/17.57 ; 36.98/17.57 mid_key10 (mid_key1,vwx) = mid_key1; 36.98/17.57 ; 36.98/17.57 mid_key2 = mid_key20 vv3; 36.98/17.57 ; 36.98/17.57 mid_key20 (mid_key2,vwy) = mid_key2; 36.98/17.57 ; 36.98/17.57 vv2 = findMax fm1; 36.98/17.57 ; 36.98/17.57 vv3 = findMin fm2; 36.98/17.57 } 36.98/17.57 " 36.98/17.57 are unpacked to the following functions on top level 36.98/17.57 "glueBal2Mid_key2 xyx xyy = glueBal2Mid_key20 xyx xyy (glueBal2Vv3 xyx xyy); 36.98/17.57 " 36.98/17.57 "glueBal2Mid_key1 xyx xyy = glueBal2Mid_key10 xyx xyy (glueBal2Vv2 xyx xyy); 36.98/17.57 " 36.98/17.57 "glueBal2GlueBal0 xyx xyy fm1 fm2 True = mkBalBranch (glueBal2Mid_key1 xyx xyy) (glueBal2Mid_elt1 xyx xyy) (deleteMax fm1) fm2; 36.98/17.57 " 36.98/17.57 "glueBal2Mid_elt20 xyx xyy (vwv,mid_elt2) = mid_elt2; 36.98/17.57 " 36.98/17.57 "glueBal2Mid_key10 xyx xyy (mid_key1,vwx) = mid_key1; 36.98/17.57 " 36.98/17.57 "glueBal2Vv2 xyx xyy = findMax xyx; 36.98/17.57 " 36.98/17.57 "glueBal2Mid_key20 xyx xyy (mid_key2,vwy) = mid_key2; 36.98/17.57 " 36.98/17.57 "glueBal2Mid_elt2 xyx xyy = glueBal2Mid_elt20 xyx xyy (glueBal2Vv3 xyx xyy); 36.98/17.57 " 36.98/17.57 "glueBal2GlueBal1 xyx xyy fm1 fm2 True = mkBalBranch (glueBal2Mid_key2 xyx xyy) (glueBal2Mid_elt2 xyx xyy) fm1 (deleteMin fm2); 36.98/17.57 glueBal2GlueBal1 xyx xyy fm1 fm2 False = glueBal2GlueBal0 xyx xyy fm1 fm2 otherwise; 36.98/17.57 " 36.98/17.57 "glueBal2Mid_elt1 xyx xyy = glueBal2Mid_elt10 xyx xyy (glueBal2Vv2 xyx xyy); 36.98/17.57 " 36.98/17.57 "glueBal2Mid_elt10 xyx xyy (vww,mid_elt1) = mid_elt1; 36.98/17.57 " 36.98/17.57 "glueBal2Vv3 xyx xyy = findMin xyy; 36.98/17.57 " 36.98/17.57 The bindings of the following Let/Where expression 36.98/17.57 "mkVBalBranch2 key elt wu wv ww wx wy xu xv xw xx xy (sIZE_RATIO * size_l < size_r) where { 36.98/17.57 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); 36.98/17.57 ; 36.98/17.57 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)); 36.98/17.57 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; 36.98/17.57 ; 36.98/17.57 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; 36.98/17.57 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); 36.98/17.57 ; 36.98/17.57 size_l = sizeFM (Branch wu wv ww wx wy); 36.98/17.57 ; 36.98/17.57 size_r = sizeFM (Branch xu xv xw xx xy); 36.98/17.57 } 36.98/17.57 " 36.98/17.57 are unpacked to the following functions on top level 36.98/17.57 "mkVBalBranch3Size_r xyz xzu xzv xzw xzx xzy xzz yuu yuv yuw = sizeFM (Branch xyz xzu xzv xzw xzx); 36.98/17.57 " 36.98/17.57 "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)); 36.98/17.57 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; 36.98/17.57 " 36.98/17.57 "mkVBalBranch3Size_l xyz xzu xzv xzw xzx xzy xzz yuu yuv yuw = sizeFM (Branch xzy xzz yuu yuv yuw); 36.98/17.57 " 36.98/17.57 "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); 36.98/17.57 " 36.98/17.57 "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; 36.98/17.57 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); 36.98/17.57 " 36.98/17.57 The bindings of the following Let/Where expression 36.98/17.57 "let { 36.98/17.57 biggest_left_key = fst (findMax fm_l); 36.98/17.57 } in biggest_left_key < key" 36.98/17.57 are unpacked to the following functions on top level 36.98/17.57 "mkBranchLeft_ok0Biggest_left_key yux = fst (findMax yux); 36.98/17.57 " 36.98/17.57 The bindings of the following Let/Where expression 36.98/17.57 "let { 36.98/17.57 smallest_right_key = fst (findMin fm_r); 36.98/17.57 } in key < smallest_right_key" 36.98/17.57 are unpacked to the following functions on top level 36.98/17.57 "mkBranchRight_ok0Smallest_right_key yuy = fst (findMin yuy); 36.98/17.57 " 36.98/17.57 36.98/17.57 ---------------------------------------- 36.98/17.57 36.98/17.57 (10) 36.98/17.57 Obligation: 36.98/17.57 mainModule Main 36.98/17.57 module FiniteMap where { 36.98/17.57 import qualified Main; 36.98/17.57 import qualified Maybe; 36.98/17.57 import qualified Prelude; 36.98/17.57 data FiniteMap b a = EmptyFM | Branch b a Int (FiniteMap b a) (FiniteMap b a) ; 36.98/17.57 36.98/17.57 instance (Eq a, Eq b) => Eq FiniteMap b a where { 36.98/17.57 } 36.98/17.57 addToFM :: Ord b => FiniteMap b a -> b -> a -> FiniteMap b a; 36.98/17.57 addToFM fm key elt = addToFM_C addToFM0 fm key elt; 36.98/17.57 36.98/17.57 addToFM0 old new = new; 36.98/17.57 36.98/17.57 addToFM_C :: Ord a => (b -> b -> b) -> FiniteMap a b -> a -> b -> FiniteMap a b; 36.98/17.57 addToFM_C combiner EmptyFM key elt = addToFM_C4 combiner EmptyFM key elt; 36.98/17.57 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; 36.98/17.57 36.98/17.57 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; 36.98/17.57 36.98/17.57 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); 36.98/17.57 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; 36.98/17.57 36.98/17.57 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; 36.98/17.57 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); 36.98/17.57 36.98/17.57 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); 36.98/17.57 36.98/17.57 addToFM_C4 combiner EmptyFM key elt = unitFM key elt; 36.98/17.57 addToFM_C4 wvu wvv wvw wvx = addToFM_C3 wvu wvv wvw wvx; 36.98/17.57 36.98/17.57 deleteMax :: Ord a => FiniteMap a b -> FiniteMap a b; 36.98/17.57 deleteMax (Branch key elt xz fm_l EmptyFM) = fm_l; 36.98/17.57 deleteMax (Branch key elt yu fm_l fm_r) = mkBalBranch key elt fm_l (deleteMax fm_r); 36.98/17.57 36.98/17.57 deleteMin :: Ord a => FiniteMap a b -> FiniteMap a b; 36.98/17.57 deleteMin (Branch key elt vzx EmptyFM fm_r) = fm_r; 36.98/17.57 deleteMin (Branch key elt vzy fm_l fm_r) = mkBalBranch key elt (deleteMin fm_l) fm_r; 36.98/17.57 36.98/17.57 emptyFM :: FiniteMap a b; 36.98/17.57 emptyFM = EmptyFM; 36.98/17.57 36.98/17.57 filterFM :: Ord a => (a -> b -> Bool) -> FiniteMap a b -> FiniteMap a b; 36.98/17.57 filterFM p EmptyFM = filterFM3 p EmptyFM; 36.98/17.57 filterFM p (Branch key elt vzz fm_l fm_r) = filterFM2 p (Branch key elt vzz fm_l fm_r); 36.98/17.57 36.98/17.57 filterFM0 p key elt vzz fm_l fm_r True = glueVBal (filterFM p fm_l) (filterFM p fm_r); 36.98/17.57 36.98/17.57 filterFM1 p key elt vzz fm_l fm_r True = mkVBalBranch key elt (filterFM p fm_l) (filterFM p fm_r); 36.98/17.57 filterFM1 p key elt vzz fm_l fm_r False = filterFM0 p key elt vzz fm_l fm_r otherwise; 36.98/17.57 36.98/17.57 filterFM2 p (Branch key elt vzz fm_l fm_r) = filterFM1 p key elt vzz fm_l fm_r (p key elt); 36.98/17.57 36.98/17.57 filterFM3 p EmptyFM = emptyFM; 36.98/17.57 filterFM3 xuy xuz = filterFM2 xuy xuz; 36.98/17.57 36.98/17.57 findMax :: FiniteMap a b -> (a,b); 36.98/17.57 findMax (Branch key elt zx zy EmptyFM) = (key,elt); 36.98/17.57 findMax (Branch key elt zz vuu fm_r) = findMax fm_r; 36.98/17.57 36.98/17.57 findMin :: FiniteMap a b -> (a,b); 36.98/17.57 findMin (Branch key elt wuu EmptyFM wuv) = (key,elt); 36.98/17.57 findMin (Branch key elt wuw fm_l wux) = findMin fm_l; 36.98/17.57 36.98/17.57 glueBal :: Ord b => FiniteMap b a -> FiniteMap b a -> FiniteMap b a; 36.98/17.57 glueBal EmptyFM fm2 = glueBal4 EmptyFM fm2; 36.98/17.57 glueBal fm1 EmptyFM = glueBal3 fm1 EmptyFM; 36.98/17.57 glueBal fm1 fm2 = glueBal2 fm1 fm2; 36.98/17.57 36.98/17.57 glueBal2 fm1 fm2 = glueBal2GlueBal1 fm1 fm2 fm1 fm2 (sizeFM fm2 > sizeFM fm1); 36.98/17.57 36.98/17.57 glueBal2GlueBal0 xyx xyy fm1 fm2 True = mkBalBranch (glueBal2Mid_key1 xyx xyy) (glueBal2Mid_elt1 xyx xyy) (deleteMax fm1) fm2; 36.98/17.57 36.98/17.57 glueBal2GlueBal1 xyx xyy fm1 fm2 True = mkBalBranch (glueBal2Mid_key2 xyx xyy) (glueBal2Mid_elt2 xyx xyy) fm1 (deleteMin fm2); 36.98/17.57 glueBal2GlueBal1 xyx xyy fm1 fm2 False = glueBal2GlueBal0 xyx xyy fm1 fm2 otherwise; 36.98/17.57 36.98/17.57 glueBal2Mid_elt1 xyx xyy = glueBal2Mid_elt10 xyx xyy (glueBal2Vv2 xyx xyy); 36.98/17.57 36.98/17.57 glueBal2Mid_elt10 xyx xyy (vww,mid_elt1) = mid_elt1; 36.98/17.57 36.98/17.57 glueBal2Mid_elt2 xyx xyy = glueBal2Mid_elt20 xyx xyy (glueBal2Vv3 xyx xyy); 36.98/17.57 36.98/17.57 glueBal2Mid_elt20 xyx xyy (vwv,mid_elt2) = mid_elt2; 36.98/17.57 36.98/17.57 glueBal2Mid_key1 xyx xyy = glueBal2Mid_key10 xyx xyy (glueBal2Vv2 xyx xyy); 36.98/17.57 36.98/17.57 glueBal2Mid_key10 xyx xyy (mid_key1,vwx) = mid_key1; 36.98/17.57 36.98/17.57 glueBal2Mid_key2 xyx xyy = glueBal2Mid_key20 xyx xyy (glueBal2Vv3 xyx xyy); 36.98/17.57 36.98/17.57 glueBal2Mid_key20 xyx xyy (mid_key2,vwy) = mid_key2; 36.98/17.57 36.98/17.57 glueBal2Vv2 xyx xyy = findMax xyx; 36.98/17.57 36.98/17.57 glueBal2Vv3 xyx xyy = findMin xyy; 36.98/17.57 36.98/17.57 glueBal3 fm1 EmptyFM = fm1; 36.98/17.57 glueBal3 wyv wyw = glueBal2 wyv wyw; 36.98/17.57 36.98/17.57 glueBal4 EmptyFM fm2 = fm2; 36.98/17.57 glueBal4 wyy wyz = glueBal3 wyy wyz; 36.98/17.57 36.98/17.57 glueVBal :: Ord b => FiniteMap b a -> FiniteMap b a -> FiniteMap b a; 36.98/17.57 glueVBal EmptyFM fm2 = glueVBal5 EmptyFM fm2; 36.98/17.57 glueVBal fm1 EmptyFM = glueVBal4 fm1 EmptyFM; 36.98/17.57 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); 36.98/17.57 36.98/17.57 glueVBal3 (Branch vxu vxv vxw vxx vxy) (Branch vyu vyv vyw vyx vyy) = glueVBal3GlueVBal2 vyu vyv vyw vyx vyy vxu vxv vxw vxx vxy vxu vxv vxw vxx vxy vyu vyv vyw vyx vyy (sIZE_RATIO * glueVBal3Size_l vyu vyv vyw vyx vyy vxu vxv vxw vxx vxy < glueVBal3Size_r vyu vyv vyw vyx vyy vxu vxv vxw vxx vxy); 36.98/17.57 36.98/17.57 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); 36.98/17.57 36.98/17.57 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)); 36.98/17.57 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; 36.98/17.57 36.98/17.57 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; 36.98/17.57 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); 36.98/17.57 36.98/17.57 glueVBal3Size_l xwz xxu xxv xxw xxx xxy xxz xyu xyv xyw = sizeFM (Branch xxy xxz xyu xyv xyw); 36.98/17.57 36.98/17.57 glueVBal3Size_r xwz xxu xxv xxw xxx xxy xxz xyu xyv xyw = sizeFM (Branch xwz xxu xxv xxw xxx); 36.98/17.57 36.98/17.57 glueVBal4 fm1 EmptyFM = fm1; 36.98/17.57 glueVBal4 wzx wzy = glueVBal3 wzx wzy; 36.98/17.57 36.98/17.57 glueVBal5 EmptyFM fm2 = fm2; 36.98/17.57 glueVBal5 xuu xuv = glueVBal4 xuu xuv; 36.98/17.57 36.98/17.57 mkBalBranch :: Ord a => a -> b -> FiniteMap a b -> FiniteMap a b -> FiniteMap a b; 36.98/17.57 mkBalBranch key elt fm_L fm_R = mkBalBranch6 key elt fm_L fm_R; 36.98/17.57 36.98/17.57 mkBalBranch6 key elt fm_L fm_R = mkBalBranch6MkBalBranch5 fm_R key elt fm_L key elt fm_L fm_R (mkBalBranch6Size_l fm_R key elt fm_L + mkBalBranch6Size_r fm_R key elt fm_L < 2); 36.98/17.57 36.98/17.57 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 xvv xvw fm_l fm_rll) (mkBranch 7 key_r elt_r fm_rlr fm_rr); 36.98/17.57 36.98/17.57 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 xvv xvw fm_lrr fm_r); 36.98/17.57 36.98/17.57 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); 36.98/17.57 36.98/17.57 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; 36.98/17.57 36.98/17.57 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; 36.98/17.57 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; 36.98/17.57 36.98/17.57 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); 36.98/17.57 36.98/17.57 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); 36.98/17.57 36.98/17.57 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; 36.98/17.57 36.98/17.57 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; 36.98/17.57 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; 36.98/17.57 36.98/17.57 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); 36.98/17.57 36.98/17.57 mkBalBranch6MkBalBranch2 xvu xvv xvw xvx key elt fm_L fm_R True = mkBranch 2 key elt fm_L fm_R; 36.98/17.57 36.98/17.57 mkBalBranch6MkBalBranch3 xvu xvv xvw xvx key elt fm_L fm_R True = mkBalBranch6MkBalBranch1 xvu xvv xvw xvx fm_L fm_R fm_L; 36.98/17.57 mkBalBranch6MkBalBranch3 xvu xvv xvw xvx key elt fm_L fm_R False = mkBalBranch6MkBalBranch2 xvu xvv xvw xvx key elt fm_L fm_R otherwise; 36.98/17.57 36.98/17.57 mkBalBranch6MkBalBranch4 xvu xvv xvw xvx key elt fm_L fm_R True = mkBalBranch6MkBalBranch0 xvu xvv xvw xvx fm_L fm_R fm_R; 36.98/17.57 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); 36.98/17.57 36.98/17.57 mkBalBranch6MkBalBranch5 xvu xvv xvw xvx key elt fm_L fm_R True = mkBranch 1 key elt fm_L fm_R; 36.98/17.57 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); 36.98/17.57 36.98/17.57 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 xvv xvw fm_l fm_rl) fm_rr; 36.98/17.57 36.98/17.57 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 xvv xvw fm_lr fm_r); 36.98/17.57 36.98/17.57 mkBalBranch6Size_l xvu xvv xvw xvx = sizeFM xvx; 36.98/17.57 36.98/17.57 mkBalBranch6Size_r xvu xvv xvw xvx = sizeFM xvu; 36.98/17.57 36.98/17.57 mkBranch :: Ord b => Int -> b -> a -> FiniteMap b a -> FiniteMap b a -> FiniteMap b a; 36.98/17.57 mkBranch which key elt fm_l fm_r = mkBranchResult key elt fm_l fm_r; 36.98/17.57 36.98/17.57 mkBranchBalance_ok xvy xvz xwu = True; 36.98/17.57 36.98/17.57 mkBranchLeft_ok xvy xvz xwu = mkBranchLeft_ok0 xvy xvz xwu xvy xvz xvy; 36.98/17.57 36.98/17.57 mkBranchLeft_ok0 xvy xvz xwu fm_l key EmptyFM = True; 36.98/17.57 mkBranchLeft_ok0 xvy xvz xwu fm_l key (Branch left_key yv yw yx yy) = mkBranchLeft_ok0Biggest_left_key fm_l < key; 36.98/17.57 36.98/17.57 mkBranchLeft_ok0Biggest_left_key yux = fst (findMax yux); 36.98/17.57 36.98/17.57 mkBranchLeft_size xvy xvz xwu = sizeFM xvy; 36.98/17.57 36.98/17.57 mkBranchResult xwv xww xwx xwy = Branch xwv xww (mkBranchUnbox xwx xwv xwy (1 + mkBranchLeft_size xwx xwv xwy + mkBranchRight_size xwx xwv xwy)) xwx xwy; 36.98/17.57 36.98/17.57 mkBranchRight_ok xvy xvz xwu = mkBranchRight_ok0 xvy xvz xwu xwu xvz xwu; 36.98/17.57 36.98/17.57 mkBranchRight_ok0 xvy xvz xwu fm_r key EmptyFM = True; 36.98/17.57 mkBranchRight_ok0 xvy xvz xwu fm_r key (Branch right_key yz zu zv zw) = key < mkBranchRight_ok0Smallest_right_key fm_r; 36.98/17.57 36.98/17.57 mkBranchRight_ok0Smallest_right_key yuy = fst (findMin yuy); 36.98/17.57 36.98/17.57 mkBranchRight_size xvy xvz xwu = sizeFM xwu; 36.98/17.57 36.98/17.57 mkBranchUnbox :: Ord a => -> (FiniteMap a b) ( -> a ( -> (FiniteMap a b) (Int -> Int))); 36.98/17.57 mkBranchUnbox xvy xvz xwu x = x; 36.98/17.57 36.98/17.57 mkVBalBranch :: Ord b => b -> a -> FiniteMap b a -> FiniteMap b a -> FiniteMap b a; 36.98/17.57 mkVBalBranch key elt EmptyFM fm_r = mkVBalBranch5 key elt EmptyFM fm_r; 36.98/17.57 mkVBalBranch key elt fm_l EmptyFM = mkVBalBranch4 key elt fm_l EmptyFM; 36.98/17.57 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); 36.98/17.57 36.98/17.57 mkVBalBranch3 key elt (Branch wu wv ww wx wy) (Branch xu xv xw xx xy) = mkVBalBranch3MkVBalBranch2 xu xv xw xx xy wu wv ww wx wy key elt wu wv ww wx wy xu xv xw xx xy (sIZE_RATIO * mkVBalBranch3Size_l xu xv xw xx xy wu wv ww wx wy < mkVBalBranch3Size_r xu xv xw xx xy wu wv ww wx wy); 36.98/17.57 36.98/17.57 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); 36.98/17.57 36.98/17.57 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)); 36.98/17.57 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; 36.98/17.57 36.98/17.57 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; 36.98/17.57 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); 36.98/17.57 36.98/17.57 mkVBalBranch3Size_l xyz xzu xzv xzw xzx xzy xzz yuu yuv yuw = sizeFM (Branch xzy xzz yuu yuv yuw); 36.98/17.57 36.98/17.57 mkVBalBranch3Size_r xyz xzu xzv xzw xzx xzy xzz yuu yuv yuw = sizeFM (Branch xyz xzu xzv xzw xzx); 36.98/17.57 36.98/17.57 mkVBalBranch4 key elt fm_l EmptyFM = addToFM fm_l key elt; 36.98/17.57 mkVBalBranch4 wwv www wwx wwy = mkVBalBranch3 wwv www wwx wwy; 36.98/17.57 36.98/17.57 mkVBalBranch5 key elt EmptyFM fm_r = addToFM fm_r key elt; 36.98/17.57 mkVBalBranch5 wxu wxv wxw wxx = mkVBalBranch4 wxu wxv wxw wxx; 36.98/17.57 36.98/17.57 sIZE_RATIO :: Int; 36.98/17.57 sIZE_RATIO = 5; 36.98/17.57 36.98/17.57 sizeFM :: FiniteMap a b -> Int; 36.98/17.57 sizeFM EmptyFM = 0; 36.98/17.57 sizeFM (Branch vyz vzu size vzv vzw) = size; 36.98/17.57 36.98/17.57 unitFM :: a -> b -> FiniteMap a b; 36.98/17.57 unitFM key elt = Branch key elt 1 emptyFM emptyFM; 36.98/17.57 36.98/17.57 } 36.98/17.57 module Maybe where { 36.98/17.57 import qualified FiniteMap; 36.98/17.57 import qualified Main; 36.98/17.57 import qualified Prelude; 36.98/17.57 } 36.98/17.57 module Main where { 36.98/17.57 import qualified FiniteMap; 36.98/17.57 import qualified Maybe; 36.98/17.57 import qualified Prelude; 36.98/17.57 } 36.98/17.57 36.98/17.57 ---------------------------------------- 36.98/17.57 36.98/17.57 (11) NumRed (SOUND) 36.98/17.57 Num Reduction:All numbers are transformed to their corresponding representation with Succ, Pred and Zero. 36.98/17.57 ---------------------------------------- 36.98/17.57 36.98/17.57 (12) 36.98/17.57 Obligation: 36.98/17.57 mainModule Main 36.98/17.57 module FiniteMap where { 36.98/17.57 import qualified Main; 36.98/17.57 import qualified Maybe; 36.98/17.57 import qualified Prelude; 36.98/17.57 data FiniteMap a b = EmptyFM | Branch a b Int (FiniteMap a b) (FiniteMap a b) ; 36.98/17.57 36.98/17.57 instance (Eq a, Eq b) => Eq FiniteMap b a where { 36.98/17.57 } 36.98/17.57 addToFM :: Ord b => FiniteMap b a -> b -> a -> FiniteMap b a; 36.98/17.57 addToFM fm key elt = addToFM_C addToFM0 fm key elt; 36.98/17.57 36.98/17.57 addToFM0 old new = new; 36.98/17.57 36.98/17.57 addToFM_C :: Ord b => (a -> a -> a) -> FiniteMap b a -> b -> a -> FiniteMap b a; 36.98/17.57 addToFM_C combiner EmptyFM key elt = addToFM_C4 combiner EmptyFM key elt; 36.98/17.57 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; 36.98/17.57 36.98/17.57 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; 36.98/17.57 36.98/17.57 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); 36.98/17.57 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; 36.98/17.57 36.98/17.57 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; 36.98/17.57 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); 36.98/17.57 36.98/17.57 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); 36.98/17.57 36.98/17.57 addToFM_C4 combiner EmptyFM key elt = unitFM key elt; 36.98/17.57 addToFM_C4 wvu wvv wvw wvx = addToFM_C3 wvu wvv wvw wvx; 36.98/17.57 36.98/17.57 deleteMax :: Ord a => FiniteMap a b -> FiniteMap a b; 36.98/17.57 deleteMax (Branch key elt xz fm_l EmptyFM) = fm_l; 36.98/17.57 deleteMax (Branch key elt yu fm_l fm_r) = mkBalBranch key elt fm_l (deleteMax fm_r); 36.98/17.57 36.98/17.57 deleteMin :: Ord b => FiniteMap b a -> FiniteMap b a; 36.98/17.57 deleteMin (Branch key elt vzx EmptyFM fm_r) = fm_r; 36.98/17.57 deleteMin (Branch key elt vzy fm_l fm_r) = mkBalBranch key elt (deleteMin fm_l) fm_r; 36.98/17.57 36.98/17.57 emptyFM :: FiniteMap b a; 36.98/17.57 emptyFM = EmptyFM; 36.98/17.57 36.98/17.57 filterFM :: Ord b => (b -> a -> Bool) -> FiniteMap b a -> FiniteMap b a; 36.98/17.57 filterFM p EmptyFM = filterFM3 p EmptyFM; 36.98/17.57 filterFM p (Branch key elt vzz fm_l fm_r) = filterFM2 p (Branch key elt vzz fm_l fm_r); 36.98/17.57 36.98/17.57 filterFM0 p key elt vzz fm_l fm_r True = glueVBal (filterFM p fm_l) (filterFM p fm_r); 36.98/17.57 36.98/17.57 filterFM1 p key elt vzz fm_l fm_r True = mkVBalBranch key elt (filterFM p fm_l) (filterFM p fm_r); 36.98/17.57 filterFM1 p key elt vzz fm_l fm_r False = filterFM0 p key elt vzz fm_l fm_r otherwise; 36.98/17.57 36.98/17.57 filterFM2 p (Branch key elt vzz fm_l fm_r) = filterFM1 p key elt vzz fm_l fm_r (p key elt); 36.98/17.57 36.98/17.57 filterFM3 p EmptyFM = emptyFM; 36.98/17.57 filterFM3 xuy xuz = filterFM2 xuy xuz; 36.98/17.57 36.98/17.57 findMax :: FiniteMap b a -> (b,a); 36.98/17.57 findMax (Branch key elt zx zy EmptyFM) = (key,elt); 36.98/17.57 findMax (Branch key elt zz vuu fm_r) = findMax fm_r; 36.98/17.57 36.98/17.57 findMin :: FiniteMap a b -> (a,b); 36.98/17.57 findMin (Branch key elt wuu EmptyFM wuv) = (key,elt); 36.98/17.57 findMin (Branch key elt wuw fm_l wux) = findMin fm_l; 36.98/17.57 36.98/17.57 glueBal :: Ord a => FiniteMap a b -> FiniteMap a b -> FiniteMap a b; 36.98/17.57 glueBal EmptyFM fm2 = glueBal4 EmptyFM fm2; 36.98/17.57 glueBal fm1 EmptyFM = glueBal3 fm1 EmptyFM; 36.98/17.57 glueBal fm1 fm2 = glueBal2 fm1 fm2; 36.98/17.57 36.98/17.57 glueBal2 fm1 fm2 = glueBal2GlueBal1 fm1 fm2 fm1 fm2 (sizeFM fm2 > sizeFM fm1); 36.98/17.57 36.98/17.57 glueBal2GlueBal0 xyx xyy fm1 fm2 True = mkBalBranch (glueBal2Mid_key1 xyx xyy) (glueBal2Mid_elt1 xyx xyy) (deleteMax fm1) fm2; 36.98/17.57 36.98/17.57 glueBal2GlueBal1 xyx xyy fm1 fm2 True = mkBalBranch (glueBal2Mid_key2 xyx xyy) (glueBal2Mid_elt2 xyx xyy) fm1 (deleteMin fm2); 36.98/17.57 glueBal2GlueBal1 xyx xyy fm1 fm2 False = glueBal2GlueBal0 xyx xyy fm1 fm2 otherwise; 36.98/17.57 36.98/17.57 glueBal2Mid_elt1 xyx xyy = glueBal2Mid_elt10 xyx xyy (glueBal2Vv2 xyx xyy); 36.98/17.57 36.98/17.57 glueBal2Mid_elt10 xyx xyy (vww,mid_elt1) = mid_elt1; 36.98/17.57 36.98/17.57 glueBal2Mid_elt2 xyx xyy = glueBal2Mid_elt20 xyx xyy (glueBal2Vv3 xyx xyy); 36.98/17.57 36.98/17.57 glueBal2Mid_elt20 xyx xyy (vwv,mid_elt2) = mid_elt2; 36.98/17.57 36.98/17.57 glueBal2Mid_key1 xyx xyy = glueBal2Mid_key10 xyx xyy (glueBal2Vv2 xyx xyy); 36.98/17.57 36.98/17.57 glueBal2Mid_key10 xyx xyy (mid_key1,vwx) = mid_key1; 36.98/17.57 36.98/17.57 glueBal2Mid_key2 xyx xyy = glueBal2Mid_key20 xyx xyy (glueBal2Vv3 xyx xyy); 36.98/17.57 36.98/17.57 glueBal2Mid_key20 xyx xyy (mid_key2,vwy) = mid_key2; 36.98/17.57 36.98/17.57 glueBal2Vv2 xyx xyy = findMax xyx; 36.98/17.57 36.98/17.57 glueBal2Vv3 xyx xyy = findMin xyy; 36.98/17.57 36.98/17.57 glueBal3 fm1 EmptyFM = fm1; 36.98/17.57 glueBal3 wyv wyw = glueBal2 wyv wyw; 36.98/17.57 36.98/17.57 glueBal4 EmptyFM fm2 = fm2; 36.98/17.57 glueBal4 wyy wyz = glueBal3 wyy wyz; 36.98/17.57 36.98/17.57 glueVBal :: Ord a => FiniteMap a b -> FiniteMap a b -> FiniteMap a b; 36.98/17.57 glueVBal EmptyFM fm2 = glueVBal5 EmptyFM fm2; 36.98/17.57 glueVBal fm1 EmptyFM = glueVBal4 fm1 EmptyFM; 36.98/17.57 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); 36.98/17.57 36.98/17.57 glueVBal3 (Branch vxu vxv vxw vxx vxy) (Branch vyu vyv vyw vyx vyy) = glueVBal3GlueVBal2 vyu vyv vyw vyx vyy vxu vxv vxw vxx vxy vxu vxv vxw vxx vxy vyu vyv vyw vyx vyy (sIZE_RATIO * glueVBal3Size_l vyu vyv vyw vyx vyy vxu vxv vxw vxx vxy < glueVBal3Size_r vyu vyv vyw vyx vyy vxu vxv vxw vxx vxy); 36.98/17.57 36.98/17.57 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); 36.98/17.57 36.98/17.57 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)); 36.98/17.57 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; 36.98/17.57 36.98/17.57 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; 36.98/17.57 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); 36.98/17.57 36.98/17.57 glueVBal3Size_l xwz xxu xxv xxw xxx xxy xxz xyu xyv xyw = sizeFM (Branch xxy xxz xyu xyv xyw); 36.98/17.57 36.98/17.57 glueVBal3Size_r xwz xxu xxv xxw xxx xxy xxz xyu xyv xyw = sizeFM (Branch xwz xxu xxv xxw xxx); 36.98/17.57 36.98/17.57 glueVBal4 fm1 EmptyFM = fm1; 36.98/17.57 glueVBal4 wzx wzy = glueVBal3 wzx wzy; 36.98/17.57 36.98/17.57 glueVBal5 EmptyFM fm2 = fm2; 36.98/17.57 glueVBal5 xuu xuv = glueVBal4 xuu xuv; 36.98/17.57 36.98/17.57 mkBalBranch :: Ord a => a -> b -> FiniteMap a b -> FiniteMap a b -> FiniteMap a b; 36.98/17.57 mkBalBranch key elt fm_L fm_R = mkBalBranch6 key elt fm_L fm_R; 36.98/17.57 36.98/17.57 mkBalBranch6 key elt fm_L fm_R = mkBalBranch6MkBalBranch5 fm_R key elt fm_L key elt fm_L fm_R (mkBalBranch6Size_l fm_R key elt fm_L + mkBalBranch6Size_r fm_R key elt fm_L < Pos (Succ (Succ Zero))); 36.98/17.57 36.98/17.57 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))))))) xvv xvw fm_l fm_rll) (mkBranch (Pos (Succ (Succ (Succ (Succ (Succ (Succ (Succ Zero)))))))) key_r elt_r fm_rlr fm_rr); 36.98/17.57 36.98/17.57 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))))))))))))) xvv xvw fm_lrr fm_r); 36.98/17.57 36.98/17.57 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); 36.98/17.57 36.98/17.57 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; 36.98/17.57 36.98/17.57 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; 36.98/17.57 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; 36.98/17.57 36.98/17.57 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); 36.98/17.57 36.98/17.57 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); 36.98/17.57 36.98/17.57 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; 36.98/17.57 36.98/17.57 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; 36.98/17.57 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; 36.98/17.57 36.98/17.57 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); 36.98/17.57 36.98/17.57 mkBalBranch6MkBalBranch2 xvu xvv xvw xvx key elt fm_L fm_R True = mkBranch (Pos (Succ (Succ Zero))) key elt fm_L fm_R; 36.98/17.57 36.98/17.57 mkBalBranch6MkBalBranch3 xvu xvv xvw xvx key elt fm_L fm_R True = mkBalBranch6MkBalBranch1 xvu xvv xvw xvx fm_L fm_R fm_L; 36.98/17.57 mkBalBranch6MkBalBranch3 xvu xvv xvw xvx key elt fm_L fm_R False = mkBalBranch6MkBalBranch2 xvu xvv xvw xvx key elt fm_L fm_R otherwise; 36.98/17.57 36.98/17.57 mkBalBranch6MkBalBranch4 xvu xvv xvw xvx key elt fm_L fm_R True = mkBalBranch6MkBalBranch0 xvu xvv xvw xvx fm_L fm_R fm_R; 36.98/17.57 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); 36.98/17.57 36.98/17.57 mkBalBranch6MkBalBranch5 xvu xvv xvw xvx key elt fm_L fm_R True = mkBranch (Pos (Succ Zero)) key elt fm_L fm_R; 36.98/17.57 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); 36.98/17.57 36.98/17.57 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))))) xvv xvw fm_l fm_rl) fm_rr; 36.98/17.57 36.98/17.57 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)))))))))) xvv xvw fm_lr fm_r); 36.98/17.57 36.98/17.57 mkBalBranch6Size_l xvu xvv xvw xvx = sizeFM xvx; 36.98/17.57 36.98/17.57 mkBalBranch6Size_r xvu xvv xvw xvx = sizeFM xvu; 36.98/17.57 36.98/17.57 mkBranch :: Ord a => Int -> a -> b -> FiniteMap a b -> FiniteMap a b -> FiniteMap a b; 36.98/17.57 mkBranch which key elt fm_l fm_r = mkBranchResult key elt fm_l fm_r; 36.98/17.57 36.98/17.57 mkBranchBalance_ok xvy xvz xwu = True; 36.98/17.57 36.98/17.57 mkBranchLeft_ok xvy xvz xwu = mkBranchLeft_ok0 xvy xvz xwu xvy xvz xvy; 36.98/17.57 36.98/17.57 mkBranchLeft_ok0 xvy xvz xwu fm_l key EmptyFM = True; 36.98/17.57 mkBranchLeft_ok0 xvy xvz xwu fm_l key (Branch left_key yv yw yx yy) = mkBranchLeft_ok0Biggest_left_key fm_l < key; 36.98/17.57 36.98/17.57 mkBranchLeft_ok0Biggest_left_key yux = fst (findMax yux); 36.98/17.57 36.98/17.57 mkBranchLeft_size xvy xvz xwu = sizeFM xvy; 36.98/17.57 36.98/17.57 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)) xwx xwy; 36.98/17.57 36.98/17.57 mkBranchRight_ok xvy xvz xwu = mkBranchRight_ok0 xvy xvz xwu xwu xvz xwu; 36.98/17.57 36.98/17.57 mkBranchRight_ok0 xvy xvz xwu fm_r key EmptyFM = True; 36.98/17.57 mkBranchRight_ok0 xvy xvz xwu fm_r key (Branch right_key yz zu zv zw) = key < mkBranchRight_ok0Smallest_right_key fm_r; 36.98/17.57 36.98/17.57 mkBranchRight_ok0Smallest_right_key yuy = fst (findMin yuy); 36.98/17.57 36.98/17.57 mkBranchRight_size xvy xvz xwu = sizeFM xwu; 36.98/17.57 36.98/17.57 mkBranchUnbox :: Ord a => -> (FiniteMap a b) ( -> a ( -> (FiniteMap a b) (Int -> Int))); 36.98/17.57 mkBranchUnbox xvy xvz xwu x = x; 36.98/17.57 36.98/17.57 mkVBalBranch :: Ord b => b -> a -> FiniteMap b a -> FiniteMap b a -> FiniteMap b a; 36.98/17.57 mkVBalBranch key elt EmptyFM fm_r = mkVBalBranch5 key elt EmptyFM fm_r; 36.98/17.57 mkVBalBranch key elt fm_l EmptyFM = mkVBalBranch4 key elt fm_l EmptyFM; 36.98/17.57 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); 36.98/17.57 36.98/17.57 mkVBalBranch3 key elt (Branch wu wv ww wx wy) (Branch xu xv xw xx xy) = mkVBalBranch3MkVBalBranch2 xu xv xw xx xy wu wv ww wx wy key elt wu wv ww wx wy xu xv xw xx xy (sIZE_RATIO * mkVBalBranch3Size_l xu xv xw xx xy wu wv ww wx wy < mkVBalBranch3Size_r xu xv xw xx xy wu wv ww wx wy); 36.98/17.57 36.98/17.57 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); 36.98/17.57 36.98/17.57 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)); 36.98/17.57 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; 36.98/17.57 36.98/17.57 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; 36.98/17.57 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); 36.98/17.57 36.98/17.57 mkVBalBranch3Size_l xyz xzu xzv xzw xzx xzy xzz yuu yuv yuw = sizeFM (Branch xzy xzz yuu yuv yuw); 36.98/17.57 36.98/17.57 mkVBalBranch3Size_r xyz xzu xzv xzw xzx xzy xzz yuu yuv yuw = sizeFM (Branch xyz xzu xzv xzw xzx); 36.98/17.57 36.98/17.57 mkVBalBranch4 key elt fm_l EmptyFM = addToFM fm_l key elt; 36.98/17.57 mkVBalBranch4 wwv www wwx wwy = mkVBalBranch3 wwv www wwx wwy; 36.98/17.57 36.98/17.57 mkVBalBranch5 key elt EmptyFM fm_r = addToFM fm_r key elt; 36.98/17.57 mkVBalBranch5 wxu wxv wxw wxx = mkVBalBranch4 wxu wxv wxw wxx; 36.98/17.57 36.98/17.57 sIZE_RATIO :: Int; 36.98/17.57 sIZE_RATIO = Pos (Succ (Succ (Succ (Succ (Succ Zero))))); 36.98/17.57 36.98/17.57 sizeFM :: FiniteMap a b -> Int; 36.98/17.57 sizeFM EmptyFM = Pos Zero; 36.98/17.57 sizeFM (Branch vyz vzu size vzv vzw) = size; 36.98/17.57 36.98/17.57 unitFM :: a -> b -> FiniteMap a b; 36.98/17.57 unitFM key elt = Branch key elt (Pos (Succ Zero)) emptyFM emptyFM; 36.98/17.57 36.98/17.57 } 36.98/17.57 module Maybe where { 36.98/17.57 import qualified FiniteMap; 36.98/17.57 import qualified Main; 36.98/17.57 import qualified Prelude; 36.98/17.57 } 36.98/17.57 module Main where { 36.98/17.57 import qualified FiniteMap; 36.98/17.57 import qualified Maybe; 36.98/17.57 import qualified Prelude; 36.98/17.57 } 36.98/17.57 36.98/17.57 ---------------------------------------- 36.98/17.57 36.98/17.57 (13) Narrow (SOUND) 36.98/17.57 Haskell To QDPs 36.98/17.57 36.98/17.57 digraph dp_graph { 36.98/17.57 node [outthreshold=100, inthreshold=100];1[label="FiniteMap.filterFM",fontsize=16,color="grey",shape="box"];1 -> 3[label="",style="dashed", color="grey", weight=3]; 36.98/17.57 3[label="FiniteMap.filterFM yuz3",fontsize=16,color="grey",shape="box"];3 -> 4[label="",style="dashed", color="grey", weight=3]; 36.98/17.57 4[label="FiniteMap.filterFM yuz3 yuz4",fontsize=16,color="burlywood",shape="triangle"];20716[label="yuz4/FiniteMap.EmptyFM",fontsize=10,color="white",style="solid",shape="box"];4 -> 20716[label="",style="solid", color="burlywood", weight=9]; 36.98/17.57 20716 -> 5[label="",style="solid", color="burlywood", weight=3]; 36.98/17.57 20717[label="yuz4/FiniteMap.Branch yuz40 yuz41 yuz42 yuz43 yuz44",fontsize=10,color="white",style="solid",shape="box"];4 -> 20717[label="",style="solid", color="burlywood", weight=9]; 36.98/17.57 20717 -> 6[label="",style="solid", color="burlywood", weight=3]; 36.98/17.57 5[label="FiniteMap.filterFM yuz3 FiniteMap.EmptyFM",fontsize=16,color="black",shape="box"];5 -> 7[label="",style="solid", color="black", weight=3]; 36.98/17.57 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]; 36.98/17.57 7[label="FiniteMap.filterFM3 yuz3 FiniteMap.EmptyFM",fontsize=16,color="black",shape="box"];7 -> 9[label="",style="solid", color="black", weight=3]; 36.98/17.57 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]; 36.98/17.57 9[label="FiniteMap.emptyFM",fontsize=16,color="black",shape="triangle"];9 -> 11[label="",style="solid", color="black", weight=3]; 36.98/17.57 10 -> 12[label="",style="dashed", color="red", weight=0]; 36.98/17.57 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]; 36.98/17.57 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]; 36.98/17.57 13 -> 19[label="",style="dashed", color="green", weight=3]; 36.98/17.57 12[label="FiniteMap.filterFM1 yuz3 yuz40 yuz41 yuz42 yuz43 yuz44 yuz5",fontsize=16,color="burlywood",shape="triangle"];20718[label="yuz5/False",fontsize=10,color="white",style="solid",shape="box"];12 -> 20718[label="",style="solid", color="burlywood", weight=9]; 36.98/17.57 20718 -> 16[label="",style="solid", color="burlywood", weight=3]; 36.98/17.57 20719[label="yuz5/True",fontsize=10,color="white",style="solid",shape="box"];12 -> 20719[label="",style="solid", color="burlywood", weight=9]; 36.98/17.57 20719 -> 17[label="",style="solid", color="burlywood", weight=3]; 36.98/17.57 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]; 36.98/17.57 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]; 36.98/17.57 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]; 36.98/17.57 21 -> 23[label="",style="dashed", color="red", weight=0]; 36.98/17.57 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]; 36.98/17.57 21 -> 25[label="",style="dashed", color="magenta", weight=3]; 36.98/17.57 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]; 36.98/17.57 24 -> 4[label="",style="dashed", color="red", weight=0]; 36.98/17.57 24[label="FiniteMap.filterFM yuz3 yuz43",fontsize=16,color="magenta"];24 -> 27[label="",style="dashed", color="magenta", weight=3]; 36.98/17.57 25 -> 4[label="",style="dashed", color="red", weight=0]; 36.98/17.57 25[label="FiniteMap.filterFM yuz3 yuz44",fontsize=16,color="magenta"];25 -> 28[label="",style="dashed", color="magenta", weight=3]; 36.98/17.57 23[label="FiniteMap.mkVBalBranch yuz40 yuz41 yuz7 yuz6",fontsize=16,color="burlywood",shape="triangle"];20720[label="yuz7/FiniteMap.EmptyFM",fontsize=10,color="white",style="solid",shape="box"];23 -> 20720[label="",style="solid", color="burlywood", weight=9]; 36.98/17.57 20720 -> 29[label="",style="solid", color="burlywood", weight=3]; 36.98/17.57 20721[label="yuz7/FiniteMap.Branch yuz70 yuz71 yuz72 yuz73 yuz74",fontsize=10,color="white",style="solid",shape="box"];23 -> 20721[label="",style="solid", color="burlywood", weight=9]; 36.98/17.57 20721 -> 30[label="",style="solid", color="burlywood", weight=3]; 36.98/17.57 26 -> 31[label="",style="dashed", color="red", weight=0]; 36.98/17.57 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]; 36.98/17.57 26 -> 33[label="",style="dashed", color="magenta", weight=3]; 36.98/17.57 27[label="yuz43",fontsize=16,color="green",shape="box"];28[label="yuz44",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]; 36.98/17.57 30[label="FiniteMap.mkVBalBranch yuz40 yuz41 (FiniteMap.Branch yuz70 yuz71 yuz72 yuz73 yuz74) yuz6",fontsize=16,color="burlywood",shape="box"];20722[label="yuz6/FiniteMap.EmptyFM",fontsize=10,color="white",style="solid",shape="box"];30 -> 20722[label="",style="solid", color="burlywood", weight=9]; 36.98/17.57 20722 -> 35[label="",style="solid", color="burlywood", weight=3]; 36.98/17.57 20723[label="yuz6/FiniteMap.Branch yuz60 yuz61 yuz62 yuz63 yuz64",fontsize=10,color="white",style="solid",shape="box"];30 -> 20723[label="",style="solid", color="burlywood", weight=9]; 36.98/17.57 20723 -> 36[label="",style="solid", color="burlywood", weight=3]; 36.98/17.57 32 -> 4[label="",style="dashed", color="red", weight=0]; 36.98/17.57 32[label="FiniteMap.filterFM yuz3 yuz43",fontsize=16,color="magenta"];32 -> 37[label="",style="dashed", color="magenta", weight=3]; 36.98/17.57 33 -> 4[label="",style="dashed", color="red", weight=0]; 36.98/17.57 33[label="FiniteMap.filterFM yuz3 yuz44",fontsize=16,color="magenta"];33 -> 38[label="",style="dashed", color="magenta", weight=3]; 36.98/17.57 31[label="FiniteMap.glueVBal yuz9 yuz8",fontsize=16,color="burlywood",shape="triangle"];20724[label="yuz9/FiniteMap.EmptyFM",fontsize=10,color="white",style="solid",shape="box"];31 -> 20724[label="",style="solid", color="burlywood", weight=9]; 36.98/17.57 20724 -> 39[label="",style="solid", color="burlywood", weight=3]; 36.98/17.57 20725[label="yuz9/FiniteMap.Branch yuz90 yuz91 yuz92 yuz93 yuz94",fontsize=10,color="white",style="solid",shape="box"];31 -> 20725[label="",style="solid", color="burlywood", weight=9]; 36.98/17.57 20725 -> 40[label="",style="solid", color="burlywood", weight=3]; 36.98/17.57 34[label="FiniteMap.mkVBalBranch5 yuz40 yuz41 FiniteMap.EmptyFM yuz6",fontsize=16,color="black",shape="box"];34 -> 41[label="",style="solid", color="black", weight=3]; 36.98/17.57 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]; 36.98/17.57 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]; 36.98/17.57 37[label="yuz43",fontsize=16,color="green",shape="box"];38[label="yuz44",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]; 36.98/17.57 40[label="FiniteMap.glueVBal (FiniteMap.Branch yuz90 yuz91 yuz92 yuz93 yuz94) yuz8",fontsize=16,color="burlywood",shape="box"];20726[label="yuz8/FiniteMap.EmptyFM",fontsize=10,color="white",style="solid",shape="box"];40 -> 20726[label="",style="solid", color="burlywood", weight=9]; 36.98/17.57 20726 -> 45[label="",style="solid", color="burlywood", weight=3]; 36.98/17.57 20727[label="yuz8/FiniteMap.Branch yuz80 yuz81 yuz82 yuz83 yuz84",fontsize=10,color="white",style="solid",shape="box"];40 -> 20727[label="",style="solid", color="burlywood", weight=9]; 36.98/17.57 20727 -> 46[label="",style="solid", color="burlywood", weight=3]; 36.98/17.57 41[label="FiniteMap.addToFM yuz6 yuz40 yuz41",fontsize=16,color="black",shape="triangle"];41 -> 47[label="",style="solid", color="black", weight=3]; 36.98/17.57 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]; 36.98/17.57 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]; 36.98/17.57 44[label="FiniteMap.glueVBal5 FiniteMap.EmptyFM yuz8",fontsize=16,color="black",shape="box"];44 -> 50[label="",style="solid", color="black", weight=3]; 36.98/17.57 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]; 36.98/17.57 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]; 36.98/17.57 47[label="FiniteMap.addToFM_C FiniteMap.addToFM0 yuz6 yuz40 yuz41",fontsize=16,color="burlywood",shape="triangle"];20728[label="yuz6/FiniteMap.EmptyFM",fontsize=10,color="white",style="solid",shape="box"];47 -> 20728[label="",style="solid", color="burlywood", weight=9]; 36.98/17.57 20728 -> 53[label="",style="solid", color="burlywood", weight=3]; 36.98/17.57 20729[label="yuz6/FiniteMap.Branch yuz60 yuz61 yuz62 yuz63 yuz64",fontsize=10,color="white",style="solid",shape="box"];47 -> 20729[label="",style="solid", color="burlywood", weight=9]; 36.98/17.57 20729 -> 54[label="",style="solid", color="burlywood", weight=3]; 36.98/17.57 48 -> 41[label="",style="dashed", color="red", weight=0]; 36.98/17.57 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]; 36.98/17.57 49 -> 16970[label="",style="dashed", color="red", weight=0]; 36.98/17.57 49[label="FiniteMap.mkVBalBranch3MkVBalBranch2 yuz60 yuz61 yuz62 yuz63 yuz64 yuz70 yuz71 yuz72 yuz73 yuz74 yuz40 yuz41 yuz70 yuz71 yuz72 yuz73 yuz74 yuz60 yuz61 yuz62 yuz63 yuz64 (FiniteMap.sIZE_RATIO * FiniteMap.mkVBalBranch3Size_l yuz60 yuz61 yuz62 yuz63 yuz64 yuz70 yuz71 yuz72 yuz73 yuz74 < FiniteMap.mkVBalBranch3Size_r yuz60 yuz61 yuz62 yuz63 yuz64 yuz70 yuz71 yuz72 yuz73 yuz74)",fontsize=16,color="magenta"];49 -> 16971[label="",style="dashed", color="magenta", weight=3]; 36.98/17.57 49 -> 16972[label="",style="dashed", color="magenta", weight=3]; 36.98/17.57 49 -> 16973[label="",style="dashed", color="magenta", weight=3]; 36.98/17.57 49 -> 16974[label="",style="dashed", color="magenta", weight=3]; 36.98/17.57 49 -> 16975[label="",style="dashed", color="magenta", weight=3]; 36.98/17.57 49 -> 16976[label="",style="dashed", color="magenta", weight=3]; 36.98/17.57 49 -> 16977[label="",style="dashed", color="magenta", weight=3]; 36.98/17.57 49 -> 16978[label="",style="dashed", color="magenta", weight=3]; 36.98/17.57 49 -> 16979[label="",style="dashed", color="magenta", weight=3]; 36.98/17.57 49 -> 16980[label="",style="dashed", color="magenta", weight=3]; 36.98/17.57 49 -> 16981[label="",style="dashed", color="magenta", weight=3]; 36.98/17.57 49 -> 16982[label="",style="dashed", color="magenta", weight=3]; 36.98/17.57 49 -> 16983[label="",style="dashed", color="magenta", weight=3]; 36.98/17.57 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]; 36.98/17.57 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]; 36.98/17.57 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]; 36.98/17.57 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]; 36.98/17.57 55[label="FiniteMap.Branch yuz70 yuz71 yuz72 yuz73 yuz74",fontsize=16,color="green",shape="box"];16971[label="yuz74",fontsize=16,color="green",shape="box"];16972[label="yuz70",fontsize=16,color="green",shape="box"];16973[label="yuz60",fontsize=16,color="green",shape="box"];16974[label="yuz73",fontsize=16,color="green",shape="box"];16975[label="yuz41",fontsize=16,color="green",shape="box"];16976[label="yuz40",fontsize=16,color="green",shape="box"];16977 -> 12432[label="",style="dashed", color="red", weight=0]; 36.98/17.57 16977[label="FiniteMap.sIZE_RATIO * FiniteMap.mkVBalBranch3Size_l yuz60 yuz61 yuz62 yuz63 yuz64 yuz70 yuz71 yuz72 yuz73 yuz74 < FiniteMap.mkVBalBranch3Size_r yuz60 yuz61 yuz62 yuz63 yuz64 yuz70 yuz71 yuz72 yuz73 yuz74",fontsize=16,color="magenta"];16977 -> 18848[label="",style="dashed", color="magenta", weight=3]; 36.98/17.57 16977 -> 18849[label="",style="dashed", color="magenta", weight=3]; 36.98/17.57 16978[label="yuz62",fontsize=16,color="green",shape="box"];16979[label="yuz61",fontsize=16,color="green",shape="box"];16980[label="yuz64",fontsize=16,color="green",shape="box"];16981[label="yuz72",fontsize=16,color="green",shape="box"];16982[label="yuz63",fontsize=16,color="green",shape="box"];16983[label="yuz71",fontsize=16,color="green",shape="box"];16970[label="FiniteMap.mkVBalBranch3MkVBalBranch2 yuz10590 yuz10591 yuz10592 yuz10593 yuz10594 yuz10640 yuz10641 yuz10642 yuz10643 yuz10644 yuz1065 yuz1066 yuz10640 yuz10641 yuz10642 yuz10643 yuz10644 yuz10590 yuz10591 yuz10592 yuz10593 yuz10594 yuz1310",fontsize=16,color="burlywood",shape="triangle"];20730[label="yuz1310/False",fontsize=10,color="white",style="solid",shape="box"];16970 -> 20730[label="",style="solid", color="burlywood", weight=9]; 36.98/17.57 20730 -> 18850[label="",style="solid", color="burlywood", weight=3]; 36.98/17.57 20731[label="yuz1310/True",fontsize=10,color="white",style="solid",shape="box"];16970 -> 20731[label="",style="solid", color="burlywood", weight=9]; 36.98/17.57 20731 -> 18851[label="",style="solid", color="burlywood", weight=3]; 36.98/17.57 57[label="FiniteMap.Branch yuz90 yuz91 yuz92 yuz93 yuz94",fontsize=16,color="green",shape="box"];58 -> 14320[label="",style="dashed", color="red", weight=0]; 36.98/17.57 58[label="FiniteMap.glueVBal3GlueVBal2 yuz80 yuz81 yuz82 yuz83 yuz84 yuz90 yuz91 yuz92 yuz93 yuz94 yuz90 yuz91 yuz92 yuz93 yuz94 yuz80 yuz81 yuz82 yuz83 yuz84 (FiniteMap.sIZE_RATIO * FiniteMap.glueVBal3Size_l yuz80 yuz81 yuz82 yuz83 yuz84 yuz90 yuz91 yuz92 yuz93 yuz94 < FiniteMap.glueVBal3Size_r yuz80 yuz81 yuz82 yuz83 yuz84 yuz90 yuz91 yuz92 yuz93 yuz94)",fontsize=16,color="magenta"];58 -> 14321[label="",style="dashed", color="magenta", weight=3]; 36.98/17.57 58 -> 14322[label="",style="dashed", color="magenta", weight=3]; 36.98/17.57 58 -> 14323[label="",style="dashed", color="magenta", weight=3]; 36.98/17.57 58 -> 14324[label="",style="dashed", color="magenta", weight=3]; 36.98/17.57 58 -> 14325[label="",style="dashed", color="magenta", weight=3]; 36.98/17.57 58 -> 14326[label="",style="dashed", color="magenta", weight=3]; 36.98/17.57 58 -> 14327[label="",style="dashed", color="magenta", weight=3]; 36.98/17.57 58 -> 14328[label="",style="dashed", color="magenta", weight=3]; 36.98/17.57 58 -> 14329[label="",style="dashed", color="magenta", weight=3]; 36.98/17.57 58 -> 14330[label="",style="dashed", color="magenta", weight=3]; 36.98/17.57 58 -> 14331[label="",style="dashed", color="magenta", weight=3]; 36.98/17.57 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]; 36.98/17.57 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]; 36.98/17.57 18848 -> 16633[label="",style="dashed", color="red", weight=0]; 36.98/17.57 18848[label="FiniteMap.sIZE_RATIO * FiniteMap.mkVBalBranch3Size_l yuz60 yuz61 yuz62 yuz63 yuz64 yuz70 yuz71 yuz72 yuz73 yuz74",fontsize=16,color="magenta"];18848 -> 18872[label="",style="dashed", color="magenta", weight=3]; 36.98/17.57 18849[label="FiniteMap.mkVBalBranch3Size_r yuz60 yuz61 yuz62 yuz63 yuz64 yuz70 yuz71 yuz72 yuz73 yuz74",fontsize=16,color="black",shape="box"];18849 -> 18873[label="",style="solid", color="black", weight=3]; 36.98/17.57 12432[label="yuz1011 < yuz1007",fontsize=16,color="black",shape="triangle"];12432 -> 12795[label="",style="solid", color="black", weight=3]; 36.98/17.57 18850[label="FiniteMap.mkVBalBranch3MkVBalBranch2 yuz10590 yuz10591 yuz10592 yuz10593 yuz10594 yuz10640 yuz10641 yuz10642 yuz10643 yuz10644 yuz1065 yuz1066 yuz10640 yuz10641 yuz10642 yuz10643 yuz10644 yuz10590 yuz10591 yuz10592 yuz10593 yuz10594 False",fontsize=16,color="black",shape="box"];18850 -> 18874[label="",style="solid", color="black", weight=3]; 36.98/17.57 18851[label="FiniteMap.mkVBalBranch3MkVBalBranch2 yuz10590 yuz10591 yuz10592 yuz10593 yuz10594 yuz10640 yuz10641 yuz10642 yuz10643 yuz10644 yuz1065 yuz1066 yuz10640 yuz10641 yuz10642 yuz10643 yuz10644 yuz10590 yuz10591 yuz10592 yuz10593 yuz10594 True",fontsize=16,color="black",shape="box"];18851 -> 18875[label="",style="solid", color="black", weight=3]; 36.98/17.57 14321[label="yuz81",fontsize=16,color="green",shape="box"];14322[label="yuz82",fontsize=16,color="green",shape="box"];14323[label="yuz83",fontsize=16,color="green",shape="box"];14324[label="yuz84",fontsize=16,color="green",shape="box"];14325 -> 12432[label="",style="dashed", color="red", weight=0]; 36.98/17.57 14325[label="FiniteMap.sIZE_RATIO * FiniteMap.glueVBal3Size_l yuz80 yuz81 yuz82 yuz83 yuz84 yuz90 yuz91 yuz92 yuz93 yuz94 < FiniteMap.glueVBal3Size_r yuz80 yuz81 yuz82 yuz83 yuz84 yuz90 yuz91 yuz92 yuz93 yuz94",fontsize=16,color="magenta"];14325 -> 15802[label="",style="dashed", color="magenta", weight=3]; 36.98/17.57 14325 -> 15803[label="",style="dashed", color="magenta", weight=3]; 36.98/17.57 14326[label="yuz94",fontsize=16,color="green",shape="box"];14327[label="yuz91",fontsize=16,color="green",shape="box"];14328[label="yuz92",fontsize=16,color="green",shape="box"];14329[label="yuz93",fontsize=16,color="green",shape="box"];14330[label="yuz90",fontsize=16,color="green",shape="box"];14331[label="yuz80",fontsize=16,color="green",shape="box"];14320[label="FiniteMap.glueVBal3GlueVBal2 yuz2830 yuz2831 yuz2832 yuz2833 yuz2834 yuz2890 yuz2891 yuz2892 yuz2893 yuz2894 yuz2890 yuz2891 yuz2892 yuz2893 yuz2894 yuz2830 yuz2831 yuz2832 yuz2833 yuz2834 yuz1265",fontsize=16,color="burlywood",shape="triangle"];20732[label="yuz1265/False",fontsize=10,color="white",style="solid",shape="box"];14320 -> 20732[label="",style="solid", color="burlywood", weight=9]; 36.98/17.57 20732 -> 15804[label="",style="solid", color="burlywood", weight=3]; 36.98/17.57 20733[label="yuz1265/True",fontsize=10,color="white",style="solid",shape="box"];14320 -> 20733[label="",style="solid", color="burlywood", weight=9]; 36.98/17.57 20733 -> 15805[label="",style="solid", color="burlywood", weight=3]; 36.98/17.57 63[label="FiniteMap.unitFM yuz40 yuz41",fontsize=16,color="black",shape="box"];63 -> 67[label="",style="solid", color="black", weight=3]; 36.98/17.57 64 -> 19388[label="",style="dashed", color="red", weight=0]; 36.98/17.57 64[label="FiniteMap.addToFM_C2 FiniteMap.addToFM0 yuz60 yuz61 yuz62 yuz63 yuz64 yuz40 yuz41 (yuz40 < yuz60)",fontsize=16,color="magenta"];64 -> 19389[label="",style="dashed", color="magenta", weight=3]; 36.98/17.57 64 -> 19390[label="",style="dashed", color="magenta", weight=3]; 36.98/17.57 64 -> 19391[label="",style="dashed", color="magenta", weight=3]; 36.98/17.57 64 -> 19392[label="",style="dashed", color="magenta", weight=3]; 36.98/17.57 64 -> 19393[label="",style="dashed", color="magenta", weight=3]; 36.98/17.57 64 -> 19394[label="",style="dashed", color="magenta", weight=3]; 36.98/17.57 64 -> 19395[label="",style="dashed", color="magenta", weight=3]; 36.98/17.57 64 -> 19396[label="",style="dashed", color="magenta", weight=3]; 36.98/17.57 18872[label="FiniteMap.mkVBalBranch3Size_l yuz60 yuz61 yuz62 yuz63 yuz64 yuz70 yuz71 yuz72 yuz73 yuz74",fontsize=16,color="black",shape="box"];18872 -> 18882[label="",style="solid", color="black", weight=3]; 36.98/17.57 16633[label="FiniteMap.sIZE_RATIO * yuz1296",fontsize=16,color="black",shape="triangle"];16633 -> 16650[label="",style="solid", color="black", weight=3]; 36.98/17.57 18873 -> 10975[label="",style="dashed", color="red", weight=0]; 36.98/17.57 18873[label="FiniteMap.sizeFM (FiniteMap.Branch yuz60 yuz61 yuz62 yuz63 yuz64)",fontsize=16,color="magenta"];18873 -> 18883[label="",style="dashed", color="magenta", weight=3]; 36.98/17.57 12795[label="compare yuz1011 yuz1007 == LT",fontsize=16,color="black",shape="box"];12795 -> 12890[label="",style="solid", color="black", weight=3]; 36.98/17.57 18874 -> 18884[label="",style="dashed", color="red", weight=0]; 36.98/17.57 18874[label="FiniteMap.mkVBalBranch3MkVBalBranch1 yuz10590 yuz10591 yuz10592 yuz10593 yuz10594 yuz10640 yuz10641 yuz10642 yuz10643 yuz10644 yuz1065 yuz1066 yuz10640 yuz10641 yuz10642 yuz10643 yuz10644 yuz10590 yuz10591 yuz10592 yuz10593 yuz10594 (FiniteMap.sIZE_RATIO * FiniteMap.mkVBalBranch3Size_r yuz10590 yuz10591 yuz10592 yuz10593 yuz10594 yuz10640 yuz10641 yuz10642 yuz10643 yuz10644 < FiniteMap.mkVBalBranch3Size_l yuz10590 yuz10591 yuz10592 yuz10593 yuz10594 yuz10640 yuz10641 yuz10642 yuz10643 yuz10644)",fontsize=16,color="magenta"];18874 -> 18885[label="",style="dashed", color="magenta", weight=3]; 36.98/17.57 18875 -> 19148[label="",style="dashed", color="red", weight=0]; 36.98/17.57 18875[label="FiniteMap.mkBalBranch yuz10590 yuz10591 (FiniteMap.mkVBalBranch yuz1065 yuz1066 (FiniteMap.Branch yuz10640 yuz10641 yuz10642 yuz10643 yuz10644) yuz10593) yuz10594",fontsize=16,color="magenta"];18875 -> 19149[label="",style="dashed", color="magenta", weight=3]; 36.98/17.57 18875 -> 19150[label="",style="dashed", color="magenta", weight=3]; 36.98/17.57 18875 -> 19151[label="",style="dashed", color="magenta", weight=3]; 36.98/17.57 18875 -> 19152[label="",style="dashed", color="magenta", weight=3]; 36.98/17.57 15802 -> 16633[label="",style="dashed", color="red", weight=0]; 36.98/17.57 15802[label="FiniteMap.sIZE_RATIO * FiniteMap.glueVBal3Size_l yuz80 yuz81 yuz82 yuz83 yuz84 yuz90 yuz91 yuz92 yuz93 yuz94",fontsize=16,color="magenta"];15802 -> 16634[label="",style="dashed", color="magenta", weight=3]; 36.98/17.57 15803[label="FiniteMap.glueVBal3Size_r yuz80 yuz81 yuz82 yuz83 yuz84 yuz90 yuz91 yuz92 yuz93 yuz94",fontsize=16,color="black",shape="box"];15803 -> 15842[label="",style="solid", color="black", weight=3]; 36.98/17.57 15804[label="FiniteMap.glueVBal3GlueVBal2 yuz2830 yuz2831 yuz2832 yuz2833 yuz2834 yuz2890 yuz2891 yuz2892 yuz2893 yuz2894 yuz2890 yuz2891 yuz2892 yuz2893 yuz2894 yuz2830 yuz2831 yuz2832 yuz2833 yuz2834 False",fontsize=16,color="black",shape="box"];15804 -> 15843[label="",style="solid", color="black", weight=3]; 36.98/17.57 15805[label="FiniteMap.glueVBal3GlueVBal2 yuz2830 yuz2831 yuz2832 yuz2833 yuz2834 yuz2890 yuz2891 yuz2892 yuz2893 yuz2894 yuz2890 yuz2891 yuz2892 yuz2893 yuz2894 yuz2830 yuz2831 yuz2832 yuz2833 yuz2834 True",fontsize=16,color="black",shape="box"];15805 -> 15844[label="",style="solid", color="black", weight=3]; 36.98/17.57 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]; 36.98/17.57 67 -> 72[label="",style="dashed", color="green", weight=3]; 36.98/17.57 19389[label="yuz60",fontsize=16,color="green",shape="box"];19390[label="yuz61",fontsize=16,color="green",shape="box"];19391[label="yuz40",fontsize=16,color="green",shape="box"];19392[label="yuz41",fontsize=16,color="green",shape="box"];19393[label="yuz63",fontsize=16,color="green",shape="box"];19394[label="yuz62",fontsize=16,color="green",shape="box"];19395[label="yuz64",fontsize=16,color="green",shape="box"];19396 -> 12432[label="",style="dashed", color="red", weight=0]; 36.98/17.57 19396[label="yuz40 < yuz60",fontsize=16,color="magenta"];19396 -> 19789[label="",style="dashed", color="magenta", weight=3]; 36.98/17.57 19396 -> 19790[label="",style="dashed", color="magenta", weight=3]; 36.98/17.57 19388[label="FiniteMap.addToFM_C2 FiniteMap.addToFM0 yuz1366 yuz1367 yuz1368 yuz1369 yuz1370 yuz1371 yuz1372 yuz1373",fontsize=16,color="burlywood",shape="triangle"];20734[label="yuz1373/False",fontsize=10,color="white",style="solid",shape="box"];19388 -> 20734[label="",style="solid", color="burlywood", weight=9]; 36.98/17.57 20734 -> 19791[label="",style="solid", color="burlywood", weight=3]; 36.98/17.57 20735[label="yuz1373/True",fontsize=10,color="white",style="solid",shape="box"];19388 -> 20735[label="",style="solid", color="burlywood", weight=9]; 36.98/17.57 20735 -> 19792[label="",style="solid", color="burlywood", weight=3]; 36.98/17.57 18882 -> 10975[label="",style="dashed", color="red", weight=0]; 36.98/17.57 18882[label="FiniteMap.sizeFM (FiniteMap.Branch yuz70 yuz71 yuz72 yuz73 yuz74)",fontsize=16,color="magenta"];18882 -> 18887[label="",style="dashed", color="magenta", weight=3]; 36.98/17.57 16650[label="primMulInt FiniteMap.sIZE_RATIO yuz1296",fontsize=16,color="black",shape="box"];16650 -> 16710[label="",style="solid", color="black", weight=3]; 36.98/17.57 18883[label="FiniteMap.Branch yuz60 yuz61 yuz62 yuz63 yuz64",fontsize=16,color="green",shape="box"];10975[label="FiniteMap.sizeFM yuz1000",fontsize=16,color="burlywood",shape="triangle"];20736[label="yuz1000/FiniteMap.EmptyFM",fontsize=10,color="white",style="solid",shape="box"];10975 -> 20736[label="",style="solid", color="burlywood", weight=9]; 36.98/17.57 20736 -> 11287[label="",style="solid", color="burlywood", weight=3]; 36.98/17.57 20737[label="yuz1000/FiniteMap.Branch yuz10000 yuz10001 yuz10002 yuz10003 yuz10004",fontsize=10,color="white",style="solid",shape="box"];10975 -> 20737[label="",style="solid", color="burlywood", weight=9]; 36.98/17.57 20737 -> 11288[label="",style="solid", color="burlywood", weight=3]; 36.98/17.57 12890[label="primCmpInt yuz1011 yuz1007 == LT",fontsize=16,color="burlywood",shape="box"];20738[label="yuz1011/Pos yuz10110",fontsize=10,color="white",style="solid",shape="box"];12890 -> 20738[label="",style="solid", color="burlywood", weight=9]; 36.98/17.57 20738 -> 12914[label="",style="solid", color="burlywood", weight=3]; 36.98/17.57 20739[label="yuz1011/Neg yuz10110",fontsize=10,color="white",style="solid",shape="box"];12890 -> 20739[label="",style="solid", color="burlywood", weight=9]; 36.98/17.57 20739 -> 12915[label="",style="solid", color="burlywood", weight=3]; 36.98/17.57 18885 -> 12432[label="",style="dashed", color="red", weight=0]; 36.98/17.57 18885[label="FiniteMap.sIZE_RATIO * FiniteMap.mkVBalBranch3Size_r yuz10590 yuz10591 yuz10592 yuz10593 yuz10594 yuz10640 yuz10641 yuz10642 yuz10643 yuz10644 < FiniteMap.mkVBalBranch3Size_l yuz10590 yuz10591 yuz10592 yuz10593 yuz10594 yuz10640 yuz10641 yuz10642 yuz10643 yuz10644",fontsize=16,color="magenta"];18885 -> 18888[label="",style="dashed", color="magenta", weight=3]; 36.98/17.57 18885 -> 18889[label="",style="dashed", color="magenta", weight=3]; 36.98/17.57 18884[label="FiniteMap.mkVBalBranch3MkVBalBranch1 yuz10590 yuz10591 yuz10592 yuz10593 yuz10594 yuz10640 yuz10641 yuz10642 yuz10643 yuz10644 yuz1065 yuz1066 yuz10640 yuz10641 yuz10642 yuz10643 yuz10644 yuz10590 yuz10591 yuz10592 yuz10593 yuz10594 yuz1316",fontsize=16,color="burlywood",shape="triangle"];20740[label="yuz1316/False",fontsize=10,color="white",style="solid",shape="box"];18884 -> 20740[label="",style="solid", color="burlywood", weight=9]; 36.98/17.57 20740 -> 18890[label="",style="solid", color="burlywood", weight=3]; 36.98/17.57 20741[label="yuz1316/True",fontsize=10,color="white",style="solid",shape="box"];18884 -> 20741[label="",style="solid", color="burlywood", weight=9]; 36.98/17.57 20741 -> 18891[label="",style="solid", color="burlywood", weight=3]; 36.98/17.57 19149[label="yuz10591",fontsize=16,color="green",shape="box"];19150[label="yuz10594",fontsize=16,color="green",shape="box"];19151[label="FiniteMap.mkVBalBranch yuz1065 yuz1066 (FiniteMap.Branch yuz10640 yuz10641 yuz10642 yuz10643 yuz10644) yuz10593",fontsize=16,color="burlywood",shape="box"];20742[label="yuz10593/FiniteMap.EmptyFM",fontsize=10,color="white",style="solid",shape="box"];19151 -> 20742[label="",style="solid", color="burlywood", weight=9]; 36.98/17.57 20742 -> 19223[label="",style="solid", color="burlywood", weight=3]; 36.98/17.57 20743[label="yuz10593/FiniteMap.Branch yuz105930 yuz105931 yuz105932 yuz105933 yuz105934",fontsize=10,color="white",style="solid",shape="box"];19151 -> 20743[label="",style="solid", color="burlywood", weight=9]; 36.98/17.57 20743 -> 19224[label="",style="solid", color="burlywood", weight=3]; 36.98/17.57 19152[label="yuz10590",fontsize=16,color="green",shape="box"];19148[label="FiniteMap.mkBalBranch yuz2830 yuz2831 yuz1351 yuz2834",fontsize=16,color="black",shape="triangle"];19148 -> 19225[label="",style="solid", color="black", weight=3]; 36.98/17.57 16634 -> 15855[label="",style="dashed", color="red", weight=0]; 36.98/17.57 16634[label="FiniteMap.glueVBal3Size_l yuz80 yuz81 yuz82 yuz83 yuz84 yuz90 yuz91 yuz92 yuz93 yuz94",fontsize=16,color="magenta"];16634 -> 16640[label="",style="dashed", color="magenta", weight=3]; 36.98/17.57 16634 -> 16641[label="",style="dashed", color="magenta", weight=3]; 36.98/17.57 16634 -> 16642[label="",style="dashed", color="magenta", weight=3]; 36.98/17.57 16634 -> 16643[label="",style="dashed", color="magenta", weight=3]; 36.98/17.57 16634 -> 16644[label="",style="dashed", color="magenta", weight=3]; 36.98/17.57 16634 -> 16645[label="",style="dashed", color="magenta", weight=3]; 36.98/17.57 16634 -> 16646[label="",style="dashed", color="magenta", weight=3]; 36.98/17.57 16634 -> 16647[label="",style="dashed", color="magenta", weight=3]; 36.98/17.57 16634 -> 16648[label="",style="dashed", color="magenta", weight=3]; 36.98/17.57 16634 -> 16649[label="",style="dashed", color="magenta", weight=3]; 36.98/17.57 15842 -> 10975[label="",style="dashed", color="red", weight=0]; 36.98/17.57 15842[label="FiniteMap.sizeFM (FiniteMap.Branch yuz80 yuz81 yuz82 yuz83 yuz84)",fontsize=16,color="magenta"];15842 -> 15849[label="",style="dashed", color="magenta", weight=3]; 36.98/17.57 15843 -> 15850[label="",style="dashed", color="red", weight=0]; 36.98/17.57 15843[label="FiniteMap.glueVBal3GlueVBal1 yuz2830 yuz2831 yuz2832 yuz2833 yuz2834 yuz2890 yuz2891 yuz2892 yuz2893 yuz2894 yuz2890 yuz2891 yuz2892 yuz2893 yuz2894 yuz2830 yuz2831 yuz2832 yuz2833 yuz2834 (FiniteMap.sIZE_RATIO * FiniteMap.glueVBal3Size_r yuz2830 yuz2831 yuz2832 yuz2833 yuz2834 yuz2890 yuz2891 yuz2892 yuz2893 yuz2894 < FiniteMap.glueVBal3Size_l yuz2830 yuz2831 yuz2832 yuz2833 yuz2834 yuz2890 yuz2891 yuz2892 yuz2893 yuz2894)",fontsize=16,color="magenta"];15843 -> 15851[label="",style="dashed", color="magenta", weight=3]; 36.98/17.57 15844 -> 19148[label="",style="dashed", color="red", weight=0]; 36.98/17.57 15844[label="FiniteMap.mkBalBranch yuz2830 yuz2831 (FiniteMap.glueVBal (FiniteMap.Branch yuz2890 yuz2891 yuz2892 yuz2893 yuz2894) yuz2833) yuz2834",fontsize=16,color="magenta"];15844 -> 19153[label="",style="dashed", color="magenta", weight=3]; 36.98/17.57 71 -> 9[label="",style="dashed", color="red", weight=0]; 36.98/17.57 71[label="FiniteMap.emptyFM",fontsize=16,color="magenta"];72 -> 9[label="",style="dashed", color="red", weight=0]; 36.98/17.57 72[label="FiniteMap.emptyFM",fontsize=16,color="magenta"];19789[label="yuz40",fontsize=16,color="green",shape="box"];19790[label="yuz60",fontsize=16,color="green",shape="box"];19791[label="FiniteMap.addToFM_C2 FiniteMap.addToFM0 yuz1366 yuz1367 yuz1368 yuz1369 yuz1370 yuz1371 yuz1372 False",fontsize=16,color="black",shape="box"];19791 -> 19835[label="",style="solid", color="black", weight=3]; 36.98/17.57 19792[label="FiniteMap.addToFM_C2 FiniteMap.addToFM0 yuz1366 yuz1367 yuz1368 yuz1369 yuz1370 yuz1371 yuz1372 True",fontsize=16,color="black",shape="box"];19792 -> 19836[label="",style="solid", color="black", weight=3]; 36.98/17.57 18887[label="FiniteMap.Branch yuz70 yuz71 yuz72 yuz73 yuz74",fontsize=16,color="green",shape="box"];16710[label="primMulInt (Pos (Succ (Succ (Succ (Succ (Succ Zero)))))) yuz1296",fontsize=16,color="burlywood",shape="box"];20744[label="yuz1296/Pos yuz12960",fontsize=10,color="white",style="solid",shape="box"];16710 -> 20744[label="",style="solid", color="burlywood", weight=9]; 36.98/17.57 20744 -> 16800[label="",style="solid", color="burlywood", weight=3]; 36.98/17.57 20745[label="yuz1296/Neg yuz12960",fontsize=10,color="white",style="solid",shape="box"];16710 -> 20745[label="",style="solid", color="burlywood", weight=9]; 36.98/17.57 20745 -> 16801[label="",style="solid", color="burlywood", weight=3]; 36.98/17.57 11287[label="FiniteMap.sizeFM FiniteMap.EmptyFM",fontsize=16,color="black",shape="box"];11287 -> 11621[label="",style="solid", color="black", weight=3]; 36.98/17.57 11288[label="FiniteMap.sizeFM (FiniteMap.Branch yuz10000 yuz10001 yuz10002 yuz10003 yuz10004)",fontsize=16,color="black",shape="box"];11288 -> 11622[label="",style="solid", color="black", weight=3]; 36.98/17.57 12914[label="primCmpInt (Pos yuz10110) yuz1007 == LT",fontsize=16,color="burlywood",shape="box"];20746[label="yuz10110/Succ yuz101100",fontsize=10,color="white",style="solid",shape="box"];12914 -> 20746[label="",style="solid", color="burlywood", weight=9]; 36.98/17.57 20746 -> 12947[label="",style="solid", color="burlywood", weight=3]; 36.98/17.57 20747[label="yuz10110/Zero",fontsize=10,color="white",style="solid",shape="box"];12914 -> 20747[label="",style="solid", color="burlywood", weight=9]; 36.98/17.57 20747 -> 12948[label="",style="solid", color="burlywood", weight=3]; 36.98/17.57 12915[label="primCmpInt (Neg yuz10110) yuz1007 == LT",fontsize=16,color="burlywood",shape="box"];20748[label="yuz10110/Succ yuz101100",fontsize=10,color="white",style="solid",shape="box"];12915 -> 20748[label="",style="solid", color="burlywood", weight=9]; 36.98/17.57 20748 -> 12949[label="",style="solid", color="burlywood", weight=3]; 36.98/17.57 20749[label="yuz10110/Zero",fontsize=10,color="white",style="solid",shape="box"];12915 -> 20749[label="",style="solid", color="burlywood", weight=9]; 36.98/17.57 20749 -> 12950[label="",style="solid", color="burlywood", weight=3]; 36.98/17.57 18888 -> 16633[label="",style="dashed", color="red", weight=0]; 36.98/17.57 18888[label="FiniteMap.sIZE_RATIO * FiniteMap.mkVBalBranch3Size_r yuz10590 yuz10591 yuz10592 yuz10593 yuz10594 yuz10640 yuz10641 yuz10642 yuz10643 yuz10644",fontsize=16,color="magenta"];18888 -> 18911[label="",style="dashed", color="magenta", weight=3]; 36.98/17.57 18889[label="FiniteMap.mkVBalBranch3Size_l yuz10590 yuz10591 yuz10592 yuz10593 yuz10594 yuz10640 yuz10641 yuz10642 yuz10643 yuz10644",fontsize=16,color="black",shape="triangle"];18889 -> 18912[label="",style="solid", color="black", weight=3]; 36.98/17.57 18890[label="FiniteMap.mkVBalBranch3MkVBalBranch1 yuz10590 yuz10591 yuz10592 yuz10593 yuz10594 yuz10640 yuz10641 yuz10642 yuz10643 yuz10644 yuz1065 yuz1066 yuz10640 yuz10641 yuz10642 yuz10643 yuz10644 yuz10590 yuz10591 yuz10592 yuz10593 yuz10594 False",fontsize=16,color="black",shape="box"];18890 -> 18913[label="",style="solid", color="black", weight=3]; 36.98/17.57 18891[label="FiniteMap.mkVBalBranch3MkVBalBranch1 yuz10590 yuz10591 yuz10592 yuz10593 yuz10594 yuz10640 yuz10641 yuz10642 yuz10643 yuz10644 yuz1065 yuz1066 yuz10640 yuz10641 yuz10642 yuz10643 yuz10644 yuz10590 yuz10591 yuz10592 yuz10593 yuz10594 True",fontsize=16,color="black",shape="box"];18891 -> 18914[label="",style="solid", color="black", weight=3]; 36.98/17.57 19223[label="FiniteMap.mkVBalBranch yuz1065 yuz1066 (FiniteMap.Branch yuz10640 yuz10641 yuz10642 yuz10643 yuz10644) FiniteMap.EmptyFM",fontsize=16,color="black",shape="box"];19223 -> 19268[label="",style="solid", color="black", weight=3]; 36.98/17.57 19224[label="FiniteMap.mkVBalBranch yuz1065 yuz1066 (FiniteMap.Branch yuz10640 yuz10641 yuz10642 yuz10643 yuz10644) (FiniteMap.Branch yuz105930 yuz105931 yuz105932 yuz105933 yuz105934)",fontsize=16,color="black",shape="box"];19224 -> 19269[label="",style="solid", color="black", weight=3]; 36.98/17.57 19225[label="FiniteMap.mkBalBranch6 yuz2830 yuz2831 yuz1351 yuz2834",fontsize=16,color="black",shape="box"];19225 -> 19270[label="",style="solid", color="black", weight=3]; 36.98/17.57 16640[label="yuz81",fontsize=16,color="green",shape="box"];16641[label="yuz82",fontsize=16,color="green",shape="box"];16642[label="yuz83",fontsize=16,color="green",shape="box"];16643[label="yuz84",fontsize=16,color="green",shape="box"];16644[label="yuz94",fontsize=16,color="green",shape="box"];16645[label="yuz91",fontsize=16,color="green",shape="box"];16646[label="yuz92",fontsize=16,color="green",shape="box"];16647[label="yuz93",fontsize=16,color="green",shape="box"];16648[label="yuz90",fontsize=16,color="green",shape="box"];16649[label="yuz80",fontsize=16,color="green",shape="box"];15855[label="FiniteMap.glueVBal3Size_l yuz2830 yuz2831 yuz2832 yuz2833 yuz2834 yuz2890 yuz2891 yuz2892 yuz2893 yuz2894",fontsize=16,color="black",shape="triangle"];15855 -> 15872[label="",style="solid", color="black", weight=3]; 36.98/17.57 15849[label="FiniteMap.Branch yuz80 yuz81 yuz82 yuz83 yuz84",fontsize=16,color="green",shape="box"];15851 -> 12432[label="",style="dashed", color="red", weight=0]; 36.98/17.57 15851[label="FiniteMap.sIZE_RATIO * FiniteMap.glueVBal3Size_r yuz2830 yuz2831 yuz2832 yuz2833 yuz2834 yuz2890 yuz2891 yuz2892 yuz2893 yuz2894 < FiniteMap.glueVBal3Size_l yuz2830 yuz2831 yuz2832 yuz2833 yuz2834 yuz2890 yuz2891 yuz2892 yuz2893 yuz2894",fontsize=16,color="magenta"];15851 -> 15854[label="",style="dashed", color="magenta", weight=3]; 36.98/17.57 15851 -> 15855[label="",style="dashed", color="magenta", weight=3]; 36.98/17.57 15850[label="FiniteMap.glueVBal3GlueVBal1 yuz2830 yuz2831 yuz2832 yuz2833 yuz2834 yuz2890 yuz2891 yuz2892 yuz2893 yuz2894 yuz2890 yuz2891 yuz2892 yuz2893 yuz2894 yuz2830 yuz2831 yuz2832 yuz2833 yuz2834 yuz1269",fontsize=16,color="burlywood",shape="triangle"];20750[label="yuz1269/False",fontsize=10,color="white",style="solid",shape="box"];15850 -> 20750[label="",style="solid", color="burlywood", weight=9]; 36.98/17.57 20750 -> 15856[label="",style="solid", color="burlywood", weight=3]; 36.98/17.57 20751[label="yuz1269/True",fontsize=10,color="white",style="solid",shape="box"];15850 -> 20751[label="",style="solid", color="burlywood", weight=9]; 36.98/17.57 20751 -> 15857[label="",style="solid", color="burlywood", weight=3]; 36.98/17.57 19153[label="FiniteMap.glueVBal (FiniteMap.Branch yuz2890 yuz2891 yuz2892 yuz2893 yuz2894) yuz2833",fontsize=16,color="burlywood",shape="box"];20752[label="yuz2833/FiniteMap.EmptyFM",fontsize=10,color="white",style="solid",shape="box"];19153 -> 20752[label="",style="solid", color="burlywood", weight=9]; 36.98/17.57 20752 -> 19226[label="",style="solid", color="burlywood", weight=3]; 36.98/17.57 20753[label="yuz2833/FiniteMap.Branch yuz28330 yuz28331 yuz28332 yuz28333 yuz28334",fontsize=10,color="white",style="solid",shape="box"];19153 -> 20753[label="",style="solid", color="burlywood", weight=9]; 36.98/17.57 20753 -> 19227[label="",style="solid", color="burlywood", weight=3]; 36.98/17.57 19835 -> 19866[label="",style="dashed", color="red", weight=0]; 36.98/17.57 19835[label="FiniteMap.addToFM_C1 FiniteMap.addToFM0 yuz1366 yuz1367 yuz1368 yuz1369 yuz1370 yuz1371 yuz1372 (yuz1371 > yuz1366)",fontsize=16,color="magenta"];19835 -> 19867[label="",style="dashed", color="magenta", weight=3]; 36.98/17.57 19835 -> 19868[label="",style="dashed", color="magenta", weight=3]; 36.98/17.57 19835 -> 19869[label="",style="dashed", color="magenta", weight=3]; 36.98/17.57 19835 -> 19870[label="",style="dashed", color="magenta", weight=3]; 36.98/17.57 19835 -> 19871[label="",style="dashed", color="magenta", weight=3]; 36.98/17.57 19835 -> 19872[label="",style="dashed", color="magenta", weight=3]; 36.98/17.57 19835 -> 19873[label="",style="dashed", color="magenta", weight=3]; 36.98/17.57 19835 -> 19874[label="",style="dashed", color="magenta", weight=3]; 36.98/17.57 19836 -> 19148[label="",style="dashed", color="red", weight=0]; 36.98/17.57 19836[label="FiniteMap.mkBalBranch yuz1366 yuz1367 (FiniteMap.addToFM_C FiniteMap.addToFM0 yuz1369 yuz1371 yuz1372) yuz1370",fontsize=16,color="magenta"];19836 -> 19875[label="",style="dashed", color="magenta", weight=3]; 36.98/17.57 19836 -> 19876[label="",style="dashed", color="magenta", weight=3]; 36.98/17.57 19836 -> 19877[label="",style="dashed", color="magenta", weight=3]; 36.98/17.57 19836 -> 19878[label="",style="dashed", color="magenta", weight=3]; 36.98/17.57 16800[label="primMulInt (Pos (Succ (Succ (Succ (Succ (Succ Zero)))))) (Pos yuz12960)",fontsize=16,color="black",shape="box"];16800 -> 16908[label="",style="solid", color="black", weight=3]; 36.98/17.57 16801[label="primMulInt (Pos (Succ (Succ (Succ (Succ (Succ Zero)))))) (Neg yuz12960)",fontsize=16,color="black",shape="box"];16801 -> 16909[label="",style="solid", color="black", weight=3]; 36.98/17.57 11621[label="Pos Zero",fontsize=16,color="green",shape="box"];11622[label="yuz10002",fontsize=16,color="green",shape="box"];12947[label="primCmpInt (Pos (Succ yuz101100)) yuz1007 == LT",fontsize=16,color="burlywood",shape="box"];20754[label="yuz1007/Pos yuz10070",fontsize=10,color="white",style="solid",shape="box"];12947 -> 20754[label="",style="solid", color="burlywood", weight=9]; 36.98/17.57 20754 -> 13098[label="",style="solid", color="burlywood", weight=3]; 36.98/17.57 20755[label="yuz1007/Neg yuz10070",fontsize=10,color="white",style="solid",shape="box"];12947 -> 20755[label="",style="solid", color="burlywood", weight=9]; 36.98/17.57 20755 -> 13099[label="",style="solid", color="burlywood", weight=3]; 36.98/17.57 12948[label="primCmpInt (Pos Zero) yuz1007 == LT",fontsize=16,color="burlywood",shape="box"];20756[label="yuz1007/Pos yuz10070",fontsize=10,color="white",style="solid",shape="box"];12948 -> 20756[label="",style="solid", color="burlywood", weight=9]; 36.98/17.57 20756 -> 13100[label="",style="solid", color="burlywood", weight=3]; 36.98/17.57 20757[label="yuz1007/Neg yuz10070",fontsize=10,color="white",style="solid",shape="box"];12948 -> 20757[label="",style="solid", color="burlywood", weight=9]; 36.98/17.57 20757 -> 13101[label="",style="solid", color="burlywood", weight=3]; 36.98/17.57 12949[label="primCmpInt (Neg (Succ yuz101100)) yuz1007 == LT",fontsize=16,color="burlywood",shape="box"];20758[label="yuz1007/Pos yuz10070",fontsize=10,color="white",style="solid",shape="box"];12949 -> 20758[label="",style="solid", color="burlywood", weight=9]; 36.98/17.57 20758 -> 13102[label="",style="solid", color="burlywood", weight=3]; 36.98/17.57 20759[label="yuz1007/Neg yuz10070",fontsize=10,color="white",style="solid",shape="box"];12949 -> 20759[label="",style="solid", color="burlywood", weight=9]; 36.98/17.57 20759 -> 13103[label="",style="solid", color="burlywood", weight=3]; 36.98/17.57 12950[label="primCmpInt (Neg Zero) yuz1007 == LT",fontsize=16,color="burlywood",shape="box"];20760[label="yuz1007/Pos yuz10070",fontsize=10,color="white",style="solid",shape="box"];12950 -> 20760[label="",style="solid", color="burlywood", weight=9]; 36.98/17.57 20760 -> 13104[label="",style="solid", color="burlywood", weight=3]; 36.98/17.57 20761[label="yuz1007/Neg yuz10070",fontsize=10,color="white",style="solid",shape="box"];12950 -> 20761[label="",style="solid", color="burlywood", weight=9]; 36.98/17.57 20761 -> 13105[label="",style="solid", color="burlywood", weight=3]; 36.98/17.57 18911[label="FiniteMap.mkVBalBranch3Size_r yuz10590 yuz10591 yuz10592 yuz10593 yuz10594 yuz10640 yuz10641 yuz10642 yuz10643 yuz10644",fontsize=16,color="black",shape="triangle"];18911 -> 18925[label="",style="solid", color="black", weight=3]; 36.98/17.57 18912 -> 10975[label="",style="dashed", color="red", weight=0]; 36.98/17.57 18912[label="FiniteMap.sizeFM (FiniteMap.Branch yuz10640 yuz10641 yuz10642 yuz10643 yuz10644)",fontsize=16,color="magenta"];18912 -> 18926[label="",style="dashed", color="magenta", weight=3]; 36.98/17.57 18913[label="FiniteMap.mkVBalBranch3MkVBalBranch0 yuz10590 yuz10591 yuz10592 yuz10593 yuz10594 yuz10640 yuz10641 yuz10642 yuz10643 yuz10644 yuz1065 yuz1066 yuz10640 yuz10641 yuz10642 yuz10643 yuz10644 yuz10590 yuz10591 yuz10592 yuz10593 yuz10594 otherwise",fontsize=16,color="black",shape="box"];18913 -> 18927[label="",style="solid", color="black", weight=3]; 36.98/17.57 18914 -> 19148[label="",style="dashed", color="red", weight=0]; 36.98/17.57 18914[label="FiniteMap.mkBalBranch yuz10640 yuz10641 yuz10643 (FiniteMap.mkVBalBranch yuz1065 yuz1066 yuz10644 (FiniteMap.Branch yuz10590 yuz10591 yuz10592 yuz10593 yuz10594))",fontsize=16,color="magenta"];18914 -> 19154[label="",style="dashed", color="magenta", weight=3]; 36.98/17.57 18914 -> 19155[label="",style="dashed", color="magenta", weight=3]; 36.98/17.57 18914 -> 19156[label="",style="dashed", color="magenta", weight=3]; 36.98/17.57 18914 -> 19157[label="",style="dashed", color="magenta", weight=3]; 36.98/17.57 19268[label="FiniteMap.mkVBalBranch4 yuz1065 yuz1066 (FiniteMap.Branch yuz10640 yuz10641 yuz10642 yuz10643 yuz10644) FiniteMap.EmptyFM",fontsize=16,color="black",shape="box"];19268 -> 19285[label="",style="solid", color="black", weight=3]; 36.98/17.57 19269[label="FiniteMap.mkVBalBranch3 yuz1065 yuz1066 (FiniteMap.Branch yuz10640 yuz10641 yuz10642 yuz10643 yuz10644) (FiniteMap.Branch yuz105930 yuz105931 yuz105932 yuz105933 yuz105934)",fontsize=16,color="black",shape="triangle"];19269 -> 19286[label="",style="solid", color="black", weight=3]; 36.98/17.57 19270 -> 19287[label="",style="dashed", color="red", weight=0]; 36.98/17.57 19270[label="FiniteMap.mkBalBranch6MkBalBranch5 yuz2834 yuz2830 yuz2831 yuz1351 yuz2830 yuz2831 yuz1351 yuz2834 (FiniteMap.mkBalBranch6Size_l yuz2834 yuz2830 yuz2831 yuz1351 + FiniteMap.mkBalBranch6Size_r yuz2834 yuz2830 yuz2831 yuz1351 < Pos (Succ (Succ Zero)))",fontsize=16,color="magenta"];19270 -> 19288[label="",style="dashed", color="magenta", weight=3]; 36.98/17.57 15872 -> 10975[label="",style="dashed", color="red", weight=0]; 36.98/17.57 15872[label="FiniteMap.sizeFM (FiniteMap.Branch yuz2890 yuz2891 yuz2892 yuz2893 yuz2894)",fontsize=16,color="magenta"];15872 -> 15885[label="",style="dashed", color="magenta", weight=3]; 36.98/17.57 15854 -> 16633[label="",style="dashed", color="red", weight=0]; 36.98/17.57 15854[label="FiniteMap.sIZE_RATIO * FiniteMap.glueVBal3Size_r yuz2830 yuz2831 yuz2832 yuz2833 yuz2834 yuz2890 yuz2891 yuz2892 yuz2893 yuz2894",fontsize=16,color="magenta"];15854 -> 16635[label="",style="dashed", color="magenta", weight=3]; 36.98/17.57 15856[label="FiniteMap.glueVBal3GlueVBal1 yuz2830 yuz2831 yuz2832 yuz2833 yuz2834 yuz2890 yuz2891 yuz2892 yuz2893 yuz2894 yuz2890 yuz2891 yuz2892 yuz2893 yuz2894 yuz2830 yuz2831 yuz2832 yuz2833 yuz2834 False",fontsize=16,color="black",shape="box"];15856 -> 15873[label="",style="solid", color="black", weight=3]; 36.98/17.57 15857[label="FiniteMap.glueVBal3GlueVBal1 yuz2830 yuz2831 yuz2832 yuz2833 yuz2834 yuz2890 yuz2891 yuz2892 yuz2893 yuz2894 yuz2890 yuz2891 yuz2892 yuz2893 yuz2894 yuz2830 yuz2831 yuz2832 yuz2833 yuz2834 True",fontsize=16,color="black",shape="box"];15857 -> 15874[label="",style="solid", color="black", weight=3]; 36.98/17.57 19226[label="FiniteMap.glueVBal (FiniteMap.Branch yuz2890 yuz2891 yuz2892 yuz2893 yuz2894) FiniteMap.EmptyFM",fontsize=16,color="black",shape="box"];19226 -> 19271[label="",style="solid", color="black", weight=3]; 36.98/17.57 19227[label="FiniteMap.glueVBal (FiniteMap.Branch yuz2890 yuz2891 yuz2892 yuz2893 yuz2894) (FiniteMap.Branch yuz28330 yuz28331 yuz28332 yuz28333 yuz28334)",fontsize=16,color="black",shape="box"];19227 -> 19272[label="",style="solid", color="black", weight=3]; 36.98/17.57 19867[label="yuz1366",fontsize=16,color="green",shape="box"];19868[label="yuz1371",fontsize=16,color="green",shape="box"];19869[label="yuz1367",fontsize=16,color="green",shape="box"];19870[label="yuz1370",fontsize=16,color="green",shape="box"];19871[label="yuz1371 > yuz1366",fontsize=16,color="blue",shape="box"];20762[label="> :: Integer -> Integer -> Bool",fontsize=10,color="white",style="solid",shape="box"];19871 -> 20762[label="",style="solid", color="blue", weight=9]; 36.98/17.57 20762 -> 19879[label="",style="solid", color="blue", weight=3]; 36.98/17.57 20763[label="> :: Bool -> Bool -> Bool",fontsize=10,color="white",style="solid",shape="box"];19871 -> 20763[label="",style="solid", color="blue", weight=9]; 36.98/17.57 20763 -> 19880[label="",style="solid", color="blue", weight=3]; 36.98/17.57 20764[label="> :: (Either a b) -> (Either a b) -> Bool",fontsize=10,color="white",style="solid",shape="box"];19871 -> 20764[label="",style="solid", color="blue", weight=9]; 36.98/17.57 20764 -> 19881[label="",style="solid", color="blue", weight=3]; 36.98/17.57 20765[label="> :: Int -> Int -> Bool",fontsize=10,color="white",style="solid",shape="box"];19871 -> 20765[label="",style="solid", color="blue", weight=9]; 36.98/17.57 20765 -> 19882[label="",style="solid", color="blue", weight=3]; 36.98/17.57 20766[label="> :: () -> () -> Bool",fontsize=10,color="white",style="solid",shape="box"];19871 -> 20766[label="",style="solid", color="blue", weight=9]; 36.98/17.57 20766 -> 19883[label="",style="solid", color="blue", weight=3]; 36.98/17.57 20767[label="> :: ((@2) a b) -> ((@2) a b) -> Bool",fontsize=10,color="white",style="solid",shape="box"];19871 -> 20767[label="",style="solid", color="blue", weight=9]; 36.98/17.57 20767 -> 19884[label="",style="solid", color="blue", weight=3]; 36.98/17.57 20768[label="> :: Char -> Char -> Bool",fontsize=10,color="white",style="solid",shape="box"];19871 -> 20768[label="",style="solid", color="blue", weight=9]; 36.98/17.57 20768 -> 19885[label="",style="solid", color="blue", weight=3]; 36.98/17.57 20769[label="> :: Float -> Float -> Bool",fontsize=10,color="white",style="solid",shape="box"];19871 -> 20769[label="",style="solid", color="blue", weight=9]; 36.98/17.57 20769 -> 19886[label="",style="solid", color="blue", weight=3]; 36.98/17.57 20770[label="> :: Ordering -> Ordering -> Bool",fontsize=10,color="white",style="solid",shape="box"];19871 -> 20770[label="",style="solid", color="blue", weight=9]; 36.98/17.57 20770 -> 19887[label="",style="solid", color="blue", weight=3]; 36.98/17.57 20771[label="> :: ([] a) -> ([] a) -> Bool",fontsize=10,color="white",style="solid",shape="box"];19871 -> 20771[label="",style="solid", color="blue", weight=9]; 36.98/17.57 20771 -> 19888[label="",style="solid", color="blue", weight=3]; 36.98/17.57 20772[label="> :: (Ratio a) -> (Ratio a) -> Bool",fontsize=10,color="white",style="solid",shape="box"];19871 -> 20772[label="",style="solid", color="blue", weight=9]; 36.98/17.57 20772 -> 19889[label="",style="solid", color="blue", weight=3]; 36.98/17.57 20773[label="> :: ((@3) a b c) -> ((@3) a b c) -> Bool",fontsize=10,color="white",style="solid",shape="box"];19871 -> 20773[label="",style="solid", color="blue", weight=9]; 36.98/17.57 20773 -> 19890[label="",style="solid", color="blue", weight=3]; 36.98/17.57 20774[label="> :: (Maybe a) -> (Maybe a) -> Bool",fontsize=10,color="white",style="solid",shape="box"];19871 -> 20774[label="",style="solid", color="blue", weight=9]; 36.98/17.57 20774 -> 19891[label="",style="solid", color="blue", weight=3]; 36.98/17.57 20775[label="> :: Double -> Double -> Bool",fontsize=10,color="white",style="solid",shape="box"];19871 -> 20775[label="",style="solid", color="blue", weight=9]; 36.98/17.57 20775 -> 19892[label="",style="solid", color="blue", weight=3]; 36.98/17.57 19872[label="yuz1368",fontsize=16,color="green",shape="box"];19873[label="yuz1369",fontsize=16,color="green",shape="box"];19874[label="yuz1372",fontsize=16,color="green",shape="box"];19866[label="FiniteMap.addToFM_C1 FiniteMap.addToFM0 yuz1383 yuz1384 yuz1385 yuz1386 yuz1387 yuz1388 yuz1389 yuz1390",fontsize=16,color="burlywood",shape="triangle"];20776[label="yuz1390/False",fontsize=10,color="white",style="solid",shape="box"];19866 -> 20776[label="",style="solid", color="burlywood", weight=9]; 36.98/17.57 20776 -> 19893[label="",style="solid", color="burlywood", weight=3]; 36.98/17.57 20777[label="yuz1390/True",fontsize=10,color="white",style="solid",shape="box"];19866 -> 20777[label="",style="solid", color="burlywood", weight=9]; 36.98/17.57 20777 -> 19894[label="",style="solid", color="burlywood", weight=3]; 36.98/17.57 19875[label="yuz1367",fontsize=16,color="green",shape="box"];19876[label="yuz1370",fontsize=16,color="green",shape="box"];19877[label="FiniteMap.addToFM_C FiniteMap.addToFM0 yuz1369 yuz1371 yuz1372",fontsize=16,color="burlywood",shape="triangle"];20778[label="yuz1369/FiniteMap.EmptyFM",fontsize=10,color="white",style="solid",shape="box"];19877 -> 20778[label="",style="solid", color="burlywood", weight=9]; 36.98/17.57 20778 -> 19922[label="",style="solid", color="burlywood", weight=3]; 36.98/17.57 20779[label="yuz1369/FiniteMap.Branch yuz13690 yuz13691 yuz13692 yuz13693 yuz13694",fontsize=10,color="white",style="solid",shape="box"];19877 -> 20779[label="",style="solid", color="burlywood", weight=9]; 36.98/17.57 20779 -> 19923[label="",style="solid", color="burlywood", weight=3]; 36.98/17.57 19878[label="yuz1366",fontsize=16,color="green",shape="box"];16908[label="Pos (primMulNat (Succ (Succ (Succ (Succ (Succ Zero))))) yuz12960)",fontsize=16,color="green",shape="box"];16908 -> 16912[label="",style="dashed", color="green", weight=3]; 36.98/17.57 16909[label="Neg (primMulNat (Succ (Succ (Succ (Succ (Succ Zero))))) yuz12960)",fontsize=16,color="green",shape="box"];16909 -> 16913[label="",style="dashed", color="green", weight=3]; 36.98/17.57 13098[label="primCmpInt (Pos (Succ yuz101100)) (Pos yuz10070) == LT",fontsize=16,color="black",shape="box"];13098 -> 13849[label="",style="solid", color="black", weight=3]; 36.98/17.57 13099[label="primCmpInt (Pos (Succ yuz101100)) (Neg yuz10070) == LT",fontsize=16,color="black",shape="box"];13099 -> 13850[label="",style="solid", color="black", weight=3]; 36.98/17.57 13100[label="primCmpInt (Pos Zero) (Pos yuz10070) == LT",fontsize=16,color="burlywood",shape="box"];20780[label="yuz10070/Succ yuz100700",fontsize=10,color="white",style="solid",shape="box"];13100 -> 20780[label="",style="solid", color="burlywood", weight=9]; 36.98/17.57 20780 -> 13851[label="",style="solid", color="burlywood", weight=3]; 36.98/17.57 20781[label="yuz10070/Zero",fontsize=10,color="white",style="solid",shape="box"];13100 -> 20781[label="",style="solid", color="burlywood", weight=9]; 36.98/17.57 20781 -> 13852[label="",style="solid", color="burlywood", weight=3]; 36.98/17.57 13101[label="primCmpInt (Pos Zero) (Neg yuz10070) == LT",fontsize=16,color="burlywood",shape="box"];20782[label="yuz10070/Succ yuz100700",fontsize=10,color="white",style="solid",shape="box"];13101 -> 20782[label="",style="solid", color="burlywood", weight=9]; 36.98/17.57 20782 -> 13853[label="",style="solid", color="burlywood", weight=3]; 36.98/17.57 20783[label="yuz10070/Zero",fontsize=10,color="white",style="solid",shape="box"];13101 -> 20783[label="",style="solid", color="burlywood", weight=9]; 36.98/17.57 20783 -> 13854[label="",style="solid", color="burlywood", weight=3]; 36.98/17.57 13102[label="primCmpInt (Neg (Succ yuz101100)) (Pos yuz10070) == LT",fontsize=16,color="black",shape="box"];13102 -> 13855[label="",style="solid", color="black", weight=3]; 36.98/17.57 13103[label="primCmpInt (Neg (Succ yuz101100)) (Neg yuz10070) == LT",fontsize=16,color="black",shape="box"];13103 -> 13856[label="",style="solid", color="black", weight=3]; 36.98/17.57 13104[label="primCmpInt (Neg Zero) (Pos yuz10070) == LT",fontsize=16,color="burlywood",shape="box"];20784[label="yuz10070/Succ yuz100700",fontsize=10,color="white",style="solid",shape="box"];13104 -> 20784[label="",style="solid", color="burlywood", weight=9]; 36.98/17.57 20784 -> 13857[label="",style="solid", color="burlywood", weight=3]; 36.98/17.57 20785[label="yuz10070/Zero",fontsize=10,color="white",style="solid",shape="box"];13104 -> 20785[label="",style="solid", color="burlywood", weight=9]; 36.98/17.57 20785 -> 13858[label="",style="solid", color="burlywood", weight=3]; 36.98/17.57 13105[label="primCmpInt (Neg Zero) (Neg yuz10070) == LT",fontsize=16,color="burlywood",shape="box"];20786[label="yuz10070/Succ yuz100700",fontsize=10,color="white",style="solid",shape="box"];13105 -> 20786[label="",style="solid", color="burlywood", weight=9]; 36.98/17.57 20786 -> 13859[label="",style="solid", color="burlywood", weight=3]; 36.98/17.57 20787[label="yuz10070/Zero",fontsize=10,color="white",style="solid",shape="box"];13105 -> 20787[label="",style="solid", color="burlywood", weight=9]; 36.98/17.57 20787 -> 13860[label="",style="solid", color="burlywood", weight=3]; 36.98/17.57 18925 -> 10975[label="",style="dashed", color="red", weight=0]; 36.98/17.57 18925[label="FiniteMap.sizeFM (FiniteMap.Branch yuz10590 yuz10591 yuz10592 yuz10593 yuz10594)",fontsize=16,color="magenta"];18925 -> 18941[label="",style="dashed", color="magenta", weight=3]; 36.98/17.57 18926[label="FiniteMap.Branch yuz10640 yuz10641 yuz10642 yuz10643 yuz10644",fontsize=16,color="green",shape="box"];18927[label="FiniteMap.mkVBalBranch3MkVBalBranch0 yuz10590 yuz10591 yuz10592 yuz10593 yuz10594 yuz10640 yuz10641 yuz10642 yuz10643 yuz10644 yuz1065 yuz1066 yuz10640 yuz10641 yuz10642 yuz10643 yuz10644 yuz10590 yuz10591 yuz10592 yuz10593 yuz10594 True",fontsize=16,color="black",shape="box"];18927 -> 18942[label="",style="solid", color="black", weight=3]; 36.98/17.57 19154[label="yuz10641",fontsize=16,color="green",shape="box"];19155[label="FiniteMap.mkVBalBranch yuz1065 yuz1066 yuz10644 (FiniteMap.Branch yuz10590 yuz10591 yuz10592 yuz10593 yuz10594)",fontsize=16,color="burlywood",shape="box"];20788[label="yuz10644/FiniteMap.EmptyFM",fontsize=10,color="white",style="solid",shape="box"];19155 -> 20788[label="",style="solid", color="burlywood", weight=9]; 36.98/17.57 20788 -> 19228[label="",style="solid", color="burlywood", weight=3]; 36.98/17.57 20789[label="yuz10644/FiniteMap.Branch yuz106440 yuz106441 yuz106442 yuz106443 yuz106444",fontsize=10,color="white",style="solid",shape="box"];19155 -> 20789[label="",style="solid", color="burlywood", weight=9]; 36.98/17.57 20789 -> 19229[label="",style="solid", color="burlywood", weight=3]; 36.98/17.57 19156[label="yuz10643",fontsize=16,color="green",shape="box"];19157[label="yuz10640",fontsize=16,color="green",shape="box"];19285[label="FiniteMap.addToFM (FiniteMap.Branch yuz10640 yuz10641 yuz10642 yuz10643 yuz10644) yuz1065 yuz1066",fontsize=16,color="black",shape="triangle"];19285 -> 19289[label="",style="solid", color="black", weight=3]; 36.98/17.57 19286 -> 16970[label="",style="dashed", color="red", weight=0]; 36.98/17.57 19286[label="FiniteMap.mkVBalBranch3MkVBalBranch2 yuz105930 yuz105931 yuz105932 yuz105933 yuz105934 yuz10640 yuz10641 yuz10642 yuz10643 yuz10644 yuz1065 yuz1066 yuz10640 yuz10641 yuz10642 yuz10643 yuz10644 yuz105930 yuz105931 yuz105932 yuz105933 yuz105934 (FiniteMap.sIZE_RATIO * FiniteMap.mkVBalBranch3Size_l yuz105930 yuz105931 yuz105932 yuz105933 yuz105934 yuz10640 yuz10641 yuz10642 yuz10643 yuz10644 < FiniteMap.mkVBalBranch3Size_r yuz105930 yuz105931 yuz105932 yuz105933 yuz105934 yuz10640 yuz10641 yuz10642 yuz10643 yuz10644)",fontsize=16,color="magenta"];19286 -> 19290[label="",style="dashed", color="magenta", weight=3]; 36.98/17.57 19286 -> 19291[label="",style="dashed", color="magenta", weight=3]; 36.98/17.57 19286 -> 19292[label="",style="dashed", color="magenta", weight=3]; 36.98/17.57 19286 -> 19293[label="",style="dashed", color="magenta", weight=3]; 36.98/17.57 19286 -> 19294[label="",style="dashed", color="magenta", weight=3]; 36.98/17.57 19286 -> 19295[label="",style="dashed", color="magenta", weight=3]; 36.98/17.57 19288 -> 12432[label="",style="dashed", color="red", weight=0]; 36.98/17.57 19288[label="FiniteMap.mkBalBranch6Size_l yuz2834 yuz2830 yuz2831 yuz1351 + FiniteMap.mkBalBranch6Size_r yuz2834 yuz2830 yuz2831 yuz1351 < Pos (Succ (Succ Zero))",fontsize=16,color="magenta"];19288 -> 19296[label="",style="dashed", color="magenta", weight=3]; 36.98/17.57 19288 -> 19297[label="",style="dashed", color="magenta", weight=3]; 36.98/17.57 19287[label="FiniteMap.mkBalBranch6MkBalBranch5 yuz2834 yuz2830 yuz2831 yuz1351 yuz2830 yuz2831 yuz1351 yuz2834 yuz1352",fontsize=16,color="burlywood",shape="triangle"];20790[label="yuz1352/False",fontsize=10,color="white",style="solid",shape="box"];19287 -> 20790[label="",style="solid", color="burlywood", weight=9]; 36.98/17.57 20790 -> 19298[label="",style="solid", color="burlywood", weight=3]; 36.98/17.57 20791[label="yuz1352/True",fontsize=10,color="white",style="solid",shape="box"];19287 -> 20791[label="",style="solid", color="burlywood", weight=9]; 36.98/17.57 20791 -> 19299[label="",style="solid", color="burlywood", weight=3]; 36.98/17.57 15885[label="FiniteMap.Branch yuz2890 yuz2891 yuz2892 yuz2893 yuz2894",fontsize=16,color="green",shape="box"];16635[label="FiniteMap.glueVBal3Size_r yuz2830 yuz2831 yuz2832 yuz2833 yuz2834 yuz2890 yuz2891 yuz2892 yuz2893 yuz2894",fontsize=16,color="black",shape="triangle"];16635 -> 16651[label="",style="solid", color="black", weight=3]; 36.98/17.57 15873[label="FiniteMap.glueVBal3GlueVBal0 yuz2830 yuz2831 yuz2832 yuz2833 yuz2834 yuz2890 yuz2891 yuz2892 yuz2893 yuz2894 yuz2890 yuz2891 yuz2892 yuz2893 yuz2894 yuz2830 yuz2831 yuz2832 yuz2833 yuz2834 otherwise",fontsize=16,color="black",shape="box"];15873 -> 15886[label="",style="solid", color="black", weight=3]; 36.98/17.57 15874 -> 19148[label="",style="dashed", color="red", weight=0]; 36.98/17.57 15874[label="FiniteMap.mkBalBranch yuz2890 yuz2891 yuz2893 (FiniteMap.glueVBal yuz2894 (FiniteMap.Branch yuz2830 yuz2831 yuz2832 yuz2833 yuz2834))",fontsize=16,color="magenta"];15874 -> 19158[label="",style="dashed", color="magenta", weight=3]; 36.98/17.57 15874 -> 19159[label="",style="dashed", color="magenta", weight=3]; 36.98/17.57 15874 -> 19160[label="",style="dashed", color="magenta", weight=3]; 36.98/17.57 15874 -> 19161[label="",style="dashed", color="magenta", weight=3]; 36.98/17.57 19271[label="FiniteMap.glueVBal4 (FiniteMap.Branch yuz2890 yuz2891 yuz2892 yuz2893 yuz2894) FiniteMap.EmptyFM",fontsize=16,color="black",shape="box"];19271 -> 19300[label="",style="solid", color="black", weight=3]; 36.98/17.57 19272[label="FiniteMap.glueVBal3 (FiniteMap.Branch yuz2890 yuz2891 yuz2892 yuz2893 yuz2894) (FiniteMap.Branch yuz28330 yuz28331 yuz28332 yuz28333 yuz28334)",fontsize=16,color="black",shape="triangle"];19272 -> 19301[label="",style="solid", color="black", weight=3]; 36.98/17.57 19879[label="yuz1371 > yuz1366",fontsize=16,color="black",shape="box"];19879 -> 19924[label="",style="solid", color="black", weight=3]; 36.98/17.57 19880[label="yuz1371 > yuz1366",fontsize=16,color="black",shape="box"];19880 -> 19925[label="",style="solid", color="black", weight=3]; 36.98/17.57 19881[label="yuz1371 > yuz1366",fontsize=16,color="black",shape="box"];19881 -> 19926[label="",style="solid", color="black", weight=3]; 36.98/17.57 19882[label="yuz1371 > yuz1366",fontsize=16,color="black",shape="triangle"];19882 -> 19927[label="",style="solid", color="black", weight=3]; 36.98/17.57 19883[label="yuz1371 > yuz1366",fontsize=16,color="black",shape="box"];19883 -> 19928[label="",style="solid", color="black", weight=3]; 36.98/17.57 19884[label="yuz1371 > yuz1366",fontsize=16,color="black",shape="box"];19884 -> 19929[label="",style="solid", color="black", weight=3]; 36.98/17.57 19885[label="yuz1371 > yuz1366",fontsize=16,color="black",shape="box"];19885 -> 19930[label="",style="solid", color="black", weight=3]; 36.98/17.57 19886[label="yuz1371 > yuz1366",fontsize=16,color="black",shape="box"];19886 -> 19931[label="",style="solid", color="black", weight=3]; 36.98/17.57 19887[label="yuz1371 > yuz1366",fontsize=16,color="black",shape="box"];19887 -> 19932[label="",style="solid", color="black", weight=3]; 36.98/17.57 19888[label="yuz1371 > yuz1366",fontsize=16,color="black",shape="box"];19888 -> 19933[label="",style="solid", color="black", weight=3]; 36.98/17.57 19889[label="yuz1371 > yuz1366",fontsize=16,color="black",shape="box"];19889 -> 19934[label="",style="solid", color="black", weight=3]; 36.98/17.57 19890[label="yuz1371 > yuz1366",fontsize=16,color="black",shape="box"];19890 -> 19935[label="",style="solid", color="black", weight=3]; 36.98/17.57 19891[label="yuz1371 > yuz1366",fontsize=16,color="black",shape="box"];19891 -> 19936[label="",style="solid", color="black", weight=3]; 36.98/17.57 19892[label="yuz1371 > yuz1366",fontsize=16,color="black",shape="box"];19892 -> 19937[label="",style="solid", color="black", weight=3]; 36.98/17.57 19893[label="FiniteMap.addToFM_C1 FiniteMap.addToFM0 yuz1383 yuz1384 yuz1385 yuz1386 yuz1387 yuz1388 yuz1389 False",fontsize=16,color="black",shape="box"];19893 -> 19938[label="",style="solid", color="black", weight=3]; 36.98/17.57 19894[label="FiniteMap.addToFM_C1 FiniteMap.addToFM0 yuz1383 yuz1384 yuz1385 yuz1386 yuz1387 yuz1388 yuz1389 True",fontsize=16,color="black",shape="box"];19894 -> 19939[label="",style="solid", color="black", weight=3]; 36.98/17.57 19922[label="FiniteMap.addToFM_C FiniteMap.addToFM0 FiniteMap.EmptyFM yuz1371 yuz1372",fontsize=16,color="black",shape="box"];19922 -> 19952[label="",style="solid", color="black", weight=3]; 36.98/17.57 19923[label="FiniteMap.addToFM_C FiniteMap.addToFM0 (FiniteMap.Branch yuz13690 yuz13691 yuz13692 yuz13693 yuz13694) yuz1371 yuz1372",fontsize=16,color="black",shape="box"];19923 -> 19953[label="",style="solid", color="black", weight=3]; 36.98/17.57 16912 -> 12076[label="",style="dashed", color="red", weight=0]; 36.98/17.57 16912[label="primMulNat (Succ (Succ (Succ (Succ (Succ Zero))))) yuz12960",fontsize=16,color="magenta"];16912 -> 16916[label="",style="dashed", color="magenta", weight=3]; 36.98/17.57 16913 -> 12076[label="",style="dashed", color="red", weight=0]; 36.98/17.57 16913[label="primMulNat (Succ (Succ (Succ (Succ (Succ Zero))))) yuz12960",fontsize=16,color="magenta"];16913 -> 16917[label="",style="dashed", color="magenta", weight=3]; 36.98/17.57 13849 -> 13186[label="",style="dashed", color="red", weight=0]; 36.98/17.57 13849[label="primCmpNat (Succ yuz101100) yuz10070 == LT",fontsize=16,color="magenta"];13849 -> 13997[label="",style="dashed", color="magenta", weight=3]; 36.98/17.57 13849 -> 13998[label="",style="dashed", color="magenta", weight=3]; 36.98/17.57 13850 -> 13846[label="",style="dashed", color="red", weight=0]; 36.98/17.57 13850[label="GT == LT",fontsize=16,color="magenta"];13851[label="primCmpInt (Pos Zero) (Pos (Succ yuz100700)) == LT",fontsize=16,color="black",shape="box"];13851 -> 13999[label="",style="solid", color="black", weight=3]; 36.98/17.57 13852[label="primCmpInt (Pos Zero) (Pos Zero) == LT",fontsize=16,color="black",shape="box"];13852 -> 14000[label="",style="solid", color="black", weight=3]; 36.98/17.57 13853[label="primCmpInt (Pos Zero) (Neg (Succ yuz100700)) == LT",fontsize=16,color="black",shape="box"];13853 -> 14001[label="",style="solid", color="black", weight=3]; 36.98/17.57 13854[label="primCmpInt (Pos Zero) (Neg Zero) == LT",fontsize=16,color="black",shape="box"];13854 -> 14002[label="",style="solid", color="black", weight=3]; 36.98/17.57 13855 -> 13131[label="",style="dashed", color="red", weight=0]; 36.98/17.57 13855[label="LT == LT",fontsize=16,color="magenta"];13856 -> 13186[label="",style="dashed", color="red", weight=0]; 36.98/17.57 13856[label="primCmpNat yuz10070 (Succ yuz101100) == LT",fontsize=16,color="magenta"];13856 -> 14003[label="",style="dashed", color="magenta", weight=3]; 36.98/17.57 13856 -> 14004[label="",style="dashed", color="magenta", weight=3]; 36.98/17.57 13857[label="primCmpInt (Neg Zero) (Pos (Succ yuz100700)) == LT",fontsize=16,color="black",shape="box"];13857 -> 14005[label="",style="solid", color="black", weight=3]; 36.98/17.57 13858[label="primCmpInt (Neg Zero) (Pos Zero) == LT",fontsize=16,color="black",shape="box"];13858 -> 14006[label="",style="solid", color="black", weight=3]; 36.98/17.57 13859[label="primCmpInt (Neg Zero) (Neg (Succ yuz100700)) == LT",fontsize=16,color="black",shape="box"];13859 -> 14007[label="",style="solid", color="black", weight=3]; 36.98/17.57 13860[label="primCmpInt (Neg Zero) (Neg Zero) == LT",fontsize=16,color="black",shape="box"];13860 -> 14008[label="",style="solid", color="black", weight=3]; 36.98/17.57 18941[label="FiniteMap.Branch yuz10590 yuz10591 yuz10592 yuz10593 yuz10594",fontsize=16,color="green",shape="box"];18942 -> 18977[label="",style="dashed", color="red", weight=0]; 36.98/17.57 18942[label="FiniteMap.mkBranch (Pos (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ Zero)))))))))))))) yuz1065 yuz1066 (FiniteMap.Branch yuz10640 yuz10641 yuz10642 yuz10643 yuz10644) (FiniteMap.Branch yuz10590 yuz10591 yuz10592 yuz10593 yuz10594)",fontsize=16,color="magenta"];18942 -> 18978[label="",style="dashed", color="magenta", weight=3]; 36.98/17.57 18942 -> 18979[label="",style="dashed", color="magenta", weight=3]; 36.98/17.57 18942 -> 18980[label="",style="dashed", color="magenta", weight=3]; 36.98/17.57 18942 -> 18981[label="",style="dashed", color="magenta", weight=3]; 36.98/17.57 18942 -> 18982[label="",style="dashed", color="magenta", weight=3]; 36.98/17.57 18942 -> 18983[label="",style="dashed", color="magenta", weight=3]; 36.98/17.57 18942 -> 18984[label="",style="dashed", color="magenta", weight=3]; 36.98/17.57 18942 -> 18985[label="",style="dashed", color="magenta", weight=3]; 36.98/17.57 18942 -> 18986[label="",style="dashed", color="magenta", weight=3]; 36.98/17.57 18942 -> 18987[label="",style="dashed", color="magenta", weight=3]; 36.98/17.57 18942 -> 18988[label="",style="dashed", color="magenta", weight=3]; 36.98/17.57 18942 -> 18989[label="",style="dashed", color="magenta", weight=3]; 36.98/17.57 18942 -> 18990[label="",style="dashed", color="magenta", weight=3]; 36.98/17.57 19228[label="FiniteMap.mkVBalBranch yuz1065 yuz1066 FiniteMap.EmptyFM (FiniteMap.Branch yuz10590 yuz10591 yuz10592 yuz10593 yuz10594)",fontsize=16,color="black",shape="box"];19228 -> 19273[label="",style="solid", color="black", weight=3]; 36.98/17.57 19229[label="FiniteMap.mkVBalBranch yuz1065 yuz1066 (FiniteMap.Branch yuz106440 yuz106441 yuz106442 yuz106443 yuz106444) (FiniteMap.Branch yuz10590 yuz10591 yuz10592 yuz10593 yuz10594)",fontsize=16,color="black",shape="box"];19229 -> 19274[label="",style="solid", color="black", weight=3]; 36.98/17.57 19289[label="FiniteMap.addToFM_C FiniteMap.addToFM0 (FiniteMap.Branch yuz10640 yuz10641 yuz10642 yuz10643 yuz10644) yuz1065 yuz1066",fontsize=16,color="black",shape="box"];19289 -> 19337[label="",style="solid", color="black", weight=3]; 36.98/17.57 19290[label="yuz105930",fontsize=16,color="green",shape="box"];19291 -> 12432[label="",style="dashed", color="red", weight=0]; 36.98/17.57 19291[label="FiniteMap.sIZE_RATIO * FiniteMap.mkVBalBranch3Size_l yuz105930 yuz105931 yuz105932 yuz105933 yuz105934 yuz10640 yuz10641 yuz10642 yuz10643 yuz10644 < FiniteMap.mkVBalBranch3Size_r yuz105930 yuz105931 yuz105932 yuz105933 yuz105934 yuz10640 yuz10641 yuz10642 yuz10643 yuz10644",fontsize=16,color="magenta"];19291 -> 19338[label="",style="dashed", color="magenta", weight=3]; 36.98/17.57 19291 -> 19339[label="",style="dashed", color="magenta", weight=3]; 36.98/17.57 19292[label="yuz105932",fontsize=16,color="green",shape="box"];19293[label="yuz105931",fontsize=16,color="green",shape="box"];19294[label="yuz105934",fontsize=16,color="green",shape="box"];19295[label="yuz105933",fontsize=16,color="green",shape="box"];19296 -> 16137[label="",style="dashed", color="red", weight=0]; 36.98/17.57 19296[label="FiniteMap.mkBalBranch6Size_l yuz2834 yuz2830 yuz2831 yuz1351 + FiniteMap.mkBalBranch6Size_r yuz2834 yuz2830 yuz2831 yuz1351",fontsize=16,color="magenta"];19296 -> 19340[label="",style="dashed", color="magenta", weight=3]; 36.98/17.57 19296 -> 19341[label="",style="dashed", color="magenta", weight=3]; 36.98/17.57 19297[label="Pos (Succ (Succ Zero))",fontsize=16,color="green",shape="box"];19298[label="FiniteMap.mkBalBranch6MkBalBranch5 yuz2834 yuz2830 yuz2831 yuz1351 yuz2830 yuz2831 yuz1351 yuz2834 False",fontsize=16,color="black",shape="box"];19298 -> 19342[label="",style="solid", color="black", weight=3]; 36.98/17.57 19299[label="FiniteMap.mkBalBranch6MkBalBranch5 yuz2834 yuz2830 yuz2831 yuz1351 yuz2830 yuz2831 yuz1351 yuz2834 True",fontsize=16,color="black",shape="box"];19299 -> 19343[label="",style="solid", color="black", weight=3]; 36.98/17.57 16651 -> 10975[label="",style="dashed", color="red", weight=0]; 36.98/17.57 16651[label="FiniteMap.sizeFM (FiniteMap.Branch yuz2830 yuz2831 yuz2832 yuz2833 yuz2834)",fontsize=16,color="magenta"];16651 -> 16711[label="",style="dashed", color="magenta", weight=3]; 36.98/17.57 15886[label="FiniteMap.glueVBal3GlueVBal0 yuz2830 yuz2831 yuz2832 yuz2833 yuz2834 yuz2890 yuz2891 yuz2892 yuz2893 yuz2894 yuz2890 yuz2891 yuz2892 yuz2893 yuz2894 yuz2830 yuz2831 yuz2832 yuz2833 yuz2834 True",fontsize=16,color="black",shape="box"];15886 -> 15953[label="",style="solid", color="black", weight=3]; 36.98/17.57 19158[label="yuz2891",fontsize=16,color="green",shape="box"];19159[label="FiniteMap.glueVBal yuz2894 (FiniteMap.Branch yuz2830 yuz2831 yuz2832 yuz2833 yuz2834)",fontsize=16,color="burlywood",shape="box"];20792[label="yuz2894/FiniteMap.EmptyFM",fontsize=10,color="white",style="solid",shape="box"];19159 -> 20792[label="",style="solid", color="burlywood", weight=9]; 36.98/17.57 20792 -> 19230[label="",style="solid", color="burlywood", weight=3]; 36.98/17.57 20793[label="yuz2894/FiniteMap.Branch yuz28940 yuz28941 yuz28942 yuz28943 yuz28944",fontsize=10,color="white",style="solid",shape="box"];19159 -> 20793[label="",style="solid", color="burlywood", weight=9]; 36.98/17.57 20793 -> 19231[label="",style="solid", color="burlywood", weight=3]; 36.98/17.57 19160[label="yuz2893",fontsize=16,color="green",shape="box"];19161[label="yuz2890",fontsize=16,color="green",shape="box"];19300[label="FiniteMap.Branch yuz2890 yuz2891 yuz2892 yuz2893 yuz2894",fontsize=16,color="green",shape="box"];19301 -> 14320[label="",style="dashed", color="red", weight=0]; 36.98/17.57 19301[label="FiniteMap.glueVBal3GlueVBal2 yuz28330 yuz28331 yuz28332 yuz28333 yuz28334 yuz2890 yuz2891 yuz2892 yuz2893 yuz2894 yuz2890 yuz2891 yuz2892 yuz2893 yuz2894 yuz28330 yuz28331 yuz28332 yuz28333 yuz28334 (FiniteMap.sIZE_RATIO * FiniteMap.glueVBal3Size_l yuz28330 yuz28331 yuz28332 yuz28333 yuz28334 yuz2890 yuz2891 yuz2892 yuz2893 yuz2894 < FiniteMap.glueVBal3Size_r yuz28330 yuz28331 yuz28332 yuz28333 yuz28334 yuz2890 yuz2891 yuz2892 yuz2893 yuz2894)",fontsize=16,color="magenta"];19301 -> 19344[label="",style="dashed", color="magenta", weight=3]; 36.98/17.57 19301 -> 19345[label="",style="dashed", color="magenta", weight=3]; 36.98/17.57 19301 -> 19346[label="",style="dashed", color="magenta", weight=3]; 36.98/17.57 19301 -> 19347[label="",style="dashed", color="magenta", weight=3]; 36.98/17.57 19301 -> 19348[label="",style="dashed", color="magenta", weight=3]; 36.98/17.57 19301 -> 19349[label="",style="dashed", color="magenta", weight=3]; 36.98/17.57 19924[label="compare yuz1371 yuz1366 == GT",fontsize=16,color="black",shape="box"];19924 -> 19954[label="",style="solid", color="black", weight=3]; 36.98/17.57 19925[label="compare yuz1371 yuz1366 == GT",fontsize=16,color="black",shape="box"];19925 -> 19955[label="",style="solid", color="black", weight=3]; 36.98/17.57 19926[label="compare yuz1371 yuz1366 == GT",fontsize=16,color="black",shape="box"];19926 -> 19956[label="",style="solid", color="black", weight=3]; 36.98/17.57 19927[label="compare yuz1371 yuz1366 == GT",fontsize=16,color="black",shape="box"];19927 -> 19957[label="",style="solid", color="black", weight=3]; 36.98/17.57 19928[label="compare yuz1371 yuz1366 == GT",fontsize=16,color="black",shape="box"];19928 -> 19958[label="",style="solid", color="black", weight=3]; 36.98/17.57 19929[label="compare yuz1371 yuz1366 == GT",fontsize=16,color="black",shape="box"];19929 -> 19959[label="",style="solid", color="black", weight=3]; 36.98/17.57 19930[label="compare yuz1371 yuz1366 == GT",fontsize=16,color="black",shape="box"];19930 -> 19960[label="",style="solid", color="black", weight=3]; 36.98/17.57 19931[label="compare yuz1371 yuz1366 == GT",fontsize=16,color="black",shape="box"];19931 -> 19961[label="",style="solid", color="black", weight=3]; 36.98/17.57 19932[label="compare yuz1371 yuz1366 == GT",fontsize=16,color="black",shape="box"];19932 -> 19962[label="",style="solid", color="black", weight=3]; 36.98/17.57 19933[label="compare yuz1371 yuz1366 == GT",fontsize=16,color="black",shape="box"];19933 -> 19963[label="",style="solid", color="black", weight=3]; 36.98/17.57 19934[label="compare yuz1371 yuz1366 == GT",fontsize=16,color="black",shape="box"];19934 -> 19964[label="",style="solid", color="black", weight=3]; 36.98/17.57 19935[label="compare yuz1371 yuz1366 == GT",fontsize=16,color="black",shape="box"];19935 -> 19965[label="",style="solid", color="black", weight=3]; 36.98/17.57 19936[label="compare yuz1371 yuz1366 == GT",fontsize=16,color="black",shape="box"];19936 -> 19966[label="",style="solid", color="black", weight=3]; 36.98/17.57 19937[label="compare yuz1371 yuz1366 == GT",fontsize=16,color="black",shape="box"];19937 -> 19967[label="",style="solid", color="black", weight=3]; 36.98/17.57 19938[label="FiniteMap.addToFM_C0 FiniteMap.addToFM0 yuz1383 yuz1384 yuz1385 yuz1386 yuz1387 yuz1388 yuz1389 otherwise",fontsize=16,color="black",shape="box"];19938 -> 19968[label="",style="solid", color="black", weight=3]; 36.98/17.57 19939 -> 19148[label="",style="dashed", color="red", weight=0]; 36.98/17.57 19939[label="FiniteMap.mkBalBranch yuz1383 yuz1384 yuz1386 (FiniteMap.addToFM_C FiniteMap.addToFM0 yuz1387 yuz1388 yuz1389)",fontsize=16,color="magenta"];19939 -> 19969[label="",style="dashed", color="magenta", weight=3]; 36.98/17.57 19939 -> 19970[label="",style="dashed", color="magenta", weight=3]; 36.98/17.57 19939 -> 19971[label="",style="dashed", color="magenta", weight=3]; 36.98/17.57 19939 -> 19972[label="",style="dashed", color="magenta", weight=3]; 36.98/17.57 19952[label="FiniteMap.addToFM_C4 FiniteMap.addToFM0 FiniteMap.EmptyFM yuz1371 yuz1372",fontsize=16,color="black",shape="box"];19952 -> 19993[label="",style="solid", color="black", weight=3]; 36.98/17.57 19953 -> 19337[label="",style="dashed", color="red", weight=0]; 36.98/17.57 19953[label="FiniteMap.addToFM_C3 FiniteMap.addToFM0 (FiniteMap.Branch yuz13690 yuz13691 yuz13692 yuz13693 yuz13694) yuz1371 yuz1372",fontsize=16,color="magenta"];19953 -> 19994[label="",style="dashed", color="magenta", weight=3]; 36.98/17.57 19953 -> 19995[label="",style="dashed", color="magenta", weight=3]; 36.98/17.57 19953 -> 19996[label="",style="dashed", color="magenta", weight=3]; 36.98/17.57 19953 -> 19997[label="",style="dashed", color="magenta", weight=3]; 36.98/17.57 19953 -> 19998[label="",style="dashed", color="magenta", weight=3]; 36.98/17.57 19953 -> 19999[label="",style="dashed", color="magenta", weight=3]; 36.98/17.57 19953 -> 20000[label="",style="dashed", color="magenta", weight=3]; 36.98/17.57 16916[label="yuz12960",fontsize=16,color="green",shape="box"];12076[label="primMulNat (Succ (Succ (Succ (Succ (Succ Zero))))) yuz10500",fontsize=16,color="burlywood",shape="triangle"];20794[label="yuz10500/Succ yuz105000",fontsize=10,color="white",style="solid",shape="box"];12076 -> 20794[label="",style="solid", color="burlywood", weight=9]; 36.98/17.57 20794 -> 12085[label="",style="solid", color="burlywood", weight=3]; 36.98/17.57 20795[label="yuz10500/Zero",fontsize=10,color="white",style="solid",shape="box"];12076 -> 20795[label="",style="solid", color="burlywood", weight=9]; 36.98/17.57 20795 -> 12086[label="",style="solid", color="burlywood", weight=3]; 36.98/17.57 16917[label="yuz12960",fontsize=16,color="green",shape="box"];13997[label="Succ yuz101100",fontsize=16,color="green",shape="box"];13998[label="yuz10070",fontsize=16,color="green",shape="box"];13186[label="primCmpNat yuz22 yuz1700 == LT",fontsize=16,color="burlywood",shape="triangle"];20796[label="yuz22/Succ yuz220",fontsize=10,color="white",style="solid",shape="box"];13186 -> 20796[label="",style="solid", color="burlywood", weight=9]; 36.98/17.57 20796 -> 13813[label="",style="solid", color="burlywood", weight=3]; 36.98/17.57 20797[label="yuz22/Zero",fontsize=10,color="white",style="solid",shape="box"];13186 -> 20797[label="",style="solid", color="burlywood", weight=9]; 36.98/17.57 20797 -> 13814[label="",style="solid", color="burlywood", weight=3]; 36.98/17.57 13846[label="GT == LT",fontsize=16,color="black",shape="triangle"];13846 -> 13995[label="",style="solid", color="black", weight=3]; 36.98/17.57 13999 -> 13186[label="",style="dashed", color="red", weight=0]; 36.98/17.57 13999[label="primCmpNat Zero (Succ yuz100700) == LT",fontsize=16,color="magenta"];13999 -> 14026[label="",style="dashed", color="magenta", weight=3]; 36.98/17.57 13999 -> 14027[label="",style="dashed", color="magenta", weight=3]; 36.98/17.57 14000 -> 13848[label="",style="dashed", color="red", weight=0]; 36.98/17.57 14000[label="EQ == LT",fontsize=16,color="magenta"];14001 -> 13846[label="",style="dashed", color="red", weight=0]; 36.98/17.57 14001[label="GT == LT",fontsize=16,color="magenta"];14002 -> 13848[label="",style="dashed", color="red", weight=0]; 36.98/17.57 14002[label="EQ == LT",fontsize=16,color="magenta"];13131[label="LT == LT",fontsize=16,color="black",shape="triangle"];13131 -> 13806[label="",style="solid", color="black", weight=3]; 36.98/17.57 14003[label="yuz10070",fontsize=16,color="green",shape="box"];14004[label="Succ yuz101100",fontsize=16,color="green",shape="box"];14005 -> 13131[label="",style="dashed", color="red", weight=0]; 36.98/17.57 14005[label="LT == LT",fontsize=16,color="magenta"];14006 -> 13848[label="",style="dashed", color="red", weight=0]; 36.98/17.57 14006[label="EQ == LT",fontsize=16,color="magenta"];14007 -> 13186[label="",style="dashed", color="red", weight=0]; 36.98/17.57 14007[label="primCmpNat (Succ yuz100700) Zero == LT",fontsize=16,color="magenta"];14007 -> 14028[label="",style="dashed", color="magenta", weight=3]; 36.98/17.57 14007 -> 14029[label="",style="dashed", color="magenta", weight=3]; 36.98/17.57 14008 -> 13848[label="",style="dashed", color="red", weight=0]; 36.98/17.57 14008[label="EQ == LT",fontsize=16,color="magenta"];18978[label="yuz10591",fontsize=16,color="green",shape="box"];18979[label="yuz10594",fontsize=16,color="green",shape="box"];18980[label="yuz10590",fontsize=16,color="green",shape="box"];18981[label="yuz10642",fontsize=16,color="green",shape="box"];18982[label="yuz10641",fontsize=16,color="green",shape="box"];18983[label="yuz1066",fontsize=16,color="green",shape="box"];18984[label="yuz10640",fontsize=16,color="green",shape="box"];18985[label="yuz10592",fontsize=16,color="green",shape="box"];18986[label="yuz10644",fontsize=16,color="green",shape="box"];18987[label="yuz1065",fontsize=16,color="green",shape="box"];18988[label="yuz10643",fontsize=16,color="green",shape="box"];18989[label="yuz10593",fontsize=16,color="green",shape="box"];18990[label="Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ Zero)))))))))))",fontsize=16,color="green",shape="box"];18977[label="FiniteMap.mkBranch (Pos (Succ yuz1330)) yuz1331 yuz1332 (FiniteMap.Branch yuz1333 yuz1334 yuz1335 yuz1336 yuz1337) (FiniteMap.Branch yuz1338 yuz1339 yuz1340 yuz1341 yuz1342)",fontsize=16,color="black",shape="triangle"];18977 -> 19009[label="",style="solid", color="black", weight=3]; 36.98/17.57 19273[label="FiniteMap.mkVBalBranch5 yuz1065 yuz1066 FiniteMap.EmptyFM (FiniteMap.Branch yuz10590 yuz10591 yuz10592 yuz10593 yuz10594)",fontsize=16,color="black",shape="box"];19273 -> 19302[label="",style="solid", color="black", weight=3]; 36.98/17.57 19274 -> 19269[label="",style="dashed", color="red", weight=0]; 36.98/17.57 19274[label="FiniteMap.mkVBalBranch3 yuz1065 yuz1066 (FiniteMap.Branch yuz106440 yuz106441 yuz106442 yuz106443 yuz106444) (FiniteMap.Branch yuz10590 yuz10591 yuz10592 yuz10593 yuz10594)",fontsize=16,color="magenta"];19274 -> 19303[label="",style="dashed", color="magenta", weight=3]; 36.98/17.58 19274 -> 19304[label="",style="dashed", color="magenta", weight=3]; 36.98/17.58 19274 -> 19305[label="",style="dashed", color="magenta", weight=3]; 36.98/17.58 19274 -> 19306[label="",style="dashed", color="magenta", weight=3]; 36.98/17.58 19274 -> 19307[label="",style="dashed", color="magenta", weight=3]; 36.98/17.58 19274 -> 19308[label="",style="dashed", color="magenta", weight=3]; 36.98/17.58 19274 -> 19309[label="",style="dashed", color="magenta", weight=3]; 36.98/17.58 19274 -> 19310[label="",style="dashed", color="magenta", weight=3]; 36.98/17.58 19274 -> 19311[label="",style="dashed", color="magenta", weight=3]; 36.98/17.58 19274 -> 19312[label="",style="dashed", color="magenta", weight=3]; 36.98/17.58 19337[label="FiniteMap.addToFM_C3 FiniteMap.addToFM0 (FiniteMap.Branch yuz10640 yuz10641 yuz10642 yuz10643 yuz10644) yuz1065 yuz1066",fontsize=16,color="black",shape="triangle"];19337 -> 19373[label="",style="solid", color="black", weight=3]; 36.98/17.58 19338 -> 16633[label="",style="dashed", color="red", weight=0]; 36.98/17.58 19338[label="FiniteMap.sIZE_RATIO * FiniteMap.mkVBalBranch3Size_l yuz105930 yuz105931 yuz105932 yuz105933 yuz105934 yuz10640 yuz10641 yuz10642 yuz10643 yuz10644",fontsize=16,color="magenta"];19338 -> 19374[label="",style="dashed", color="magenta", weight=3]; 36.98/17.58 19339 -> 18911[label="",style="dashed", color="red", weight=0]; 36.98/17.58 19339[label="FiniteMap.mkVBalBranch3Size_r yuz105930 yuz105931 yuz105932 yuz105933 yuz105934 yuz10640 yuz10641 yuz10642 yuz10643 yuz10644",fontsize=16,color="magenta"];19339 -> 19375[label="",style="dashed", color="magenta", weight=3]; 36.98/17.58 19339 -> 19376[label="",style="dashed", color="magenta", weight=3]; 36.98/17.58 19339 -> 19377[label="",style="dashed", color="magenta", weight=3]; 36.98/17.58 19339 -> 19378[label="",style="dashed", color="magenta", weight=3]; 36.98/17.58 19339 -> 19379[label="",style="dashed", color="magenta", weight=3]; 36.98/17.58 19340[label="FiniteMap.mkBalBranch6Size_l yuz2834 yuz2830 yuz2831 yuz1351",fontsize=16,color="black",shape="triangle"];19340 -> 19380[label="",style="solid", color="black", weight=3]; 36.98/17.58 19341[label="FiniteMap.mkBalBranch6Size_r yuz2834 yuz2830 yuz2831 yuz1351",fontsize=16,color="black",shape="triangle"];19341 -> 19381[label="",style="solid", color="black", weight=3]; 36.98/17.58 16137[label="yuz1288 + yuz1285",fontsize=16,color="black",shape="triangle"];16137 -> 16158[label="",style="solid", color="black", weight=3]; 36.98/17.58 19342 -> 19382[label="",style="dashed", color="red", weight=0]; 36.98/17.58 19342[label="FiniteMap.mkBalBranch6MkBalBranch4 yuz2834 yuz2830 yuz2831 yuz1351 yuz2830 yuz2831 yuz1351 yuz2834 (FiniteMap.mkBalBranch6Size_r yuz2834 yuz2830 yuz2831 yuz1351 > FiniteMap.sIZE_RATIO * FiniteMap.mkBalBranch6Size_l yuz2834 yuz2830 yuz2831 yuz1351)",fontsize=16,color="magenta"];19342 -> 19383[label="",style="dashed", color="magenta", weight=3]; 36.98/17.58 19342 -> 19384[label="",style="dashed", color="magenta", weight=3]; 36.98/17.58 19343[label="FiniteMap.mkBranch (Pos (Succ Zero)) yuz2830 yuz2831 yuz1351 yuz2834",fontsize=16,color="black",shape="box"];19343 -> 19385[label="",style="solid", color="black", weight=3]; 36.98/17.58 16711[label="FiniteMap.Branch yuz2830 yuz2831 yuz2832 yuz2833 yuz2834",fontsize=16,color="green",shape="box"];15953[label="FiniteMap.glueBal (FiniteMap.Branch yuz2890 yuz2891 yuz2892 yuz2893 yuz2894) (FiniteMap.Branch yuz2830 yuz2831 yuz2832 yuz2833 yuz2834)",fontsize=16,color="black",shape="box"];15953 -> 15960[label="",style="solid", color="black", weight=3]; 36.98/17.58 19230[label="FiniteMap.glueVBal FiniteMap.EmptyFM (FiniteMap.Branch yuz2830 yuz2831 yuz2832 yuz2833 yuz2834)",fontsize=16,color="black",shape="box"];19230 -> 19275[label="",style="solid", color="black", weight=3]; 36.98/17.58 19231[label="FiniteMap.glueVBal (FiniteMap.Branch yuz28940 yuz28941 yuz28942 yuz28943 yuz28944) (FiniteMap.Branch yuz2830 yuz2831 yuz2832 yuz2833 yuz2834)",fontsize=16,color="black",shape="box"];19231 -> 19276[label="",style="solid", color="black", weight=3]; 36.98/17.58 19344[label="yuz28331",fontsize=16,color="green",shape="box"];19345[label="yuz28332",fontsize=16,color="green",shape="box"];19346[label="yuz28333",fontsize=16,color="green",shape="box"];19347[label="yuz28334",fontsize=16,color="green",shape="box"];19348 -> 12432[label="",style="dashed", color="red", weight=0]; 36.98/17.58 19348[label="FiniteMap.sIZE_RATIO * FiniteMap.glueVBal3Size_l yuz28330 yuz28331 yuz28332 yuz28333 yuz28334 yuz2890 yuz2891 yuz2892 yuz2893 yuz2894 < FiniteMap.glueVBal3Size_r yuz28330 yuz28331 yuz28332 yuz28333 yuz28334 yuz2890 yuz2891 yuz2892 yuz2893 yuz2894",fontsize=16,color="magenta"];19348 -> 19386[label="",style="dashed", color="magenta", weight=3]; 36.98/17.58 19348 -> 19387[label="",style="dashed", color="magenta", weight=3]; 36.98/17.58 19349[label="yuz28330",fontsize=16,color="green",shape="box"];19954[label="error []",fontsize=16,color="red",shape="box"];19955[label="error []",fontsize=16,color="red",shape="box"];19956[label="error []",fontsize=16,color="red",shape="box"];19957[label="primCmpInt yuz1371 yuz1366 == GT",fontsize=16,color="burlywood",shape="box"];20798[label="yuz1371/Pos yuz13710",fontsize=10,color="white",style="solid",shape="box"];19957 -> 20798[label="",style="solid", color="burlywood", weight=9]; 36.98/17.58 20798 -> 20001[label="",style="solid", color="burlywood", weight=3]; 36.98/17.58 20799[label="yuz1371/Neg yuz13710",fontsize=10,color="white",style="solid",shape="box"];19957 -> 20799[label="",style="solid", color="burlywood", weight=9]; 36.98/17.58 20799 -> 20002[label="",style="solid", color="burlywood", weight=3]; 36.98/17.58 19958[label="error []",fontsize=16,color="red",shape="box"];19959[label="error []",fontsize=16,color="red",shape="box"];19960[label="error []",fontsize=16,color="red",shape="box"];19961[label="error []",fontsize=16,color="red",shape="box"];19962[label="error []",fontsize=16,color="red",shape="box"];19963[label="error []",fontsize=16,color="red",shape="box"];19964[label="error []",fontsize=16,color="red",shape="box"];19965[label="error []",fontsize=16,color="red",shape="box"];19966[label="error []",fontsize=16,color="red",shape="box"];19967[label="error []",fontsize=16,color="red",shape="box"];19968[label="FiniteMap.addToFM_C0 FiniteMap.addToFM0 yuz1383 yuz1384 yuz1385 yuz1386 yuz1387 yuz1388 yuz1389 True",fontsize=16,color="black",shape="box"];19968 -> 20003[label="",style="solid", color="black", weight=3]; 36.98/17.58 19969[label="yuz1384",fontsize=16,color="green",shape="box"];19970 -> 19877[label="",style="dashed", color="red", weight=0]; 36.98/17.58 19970[label="FiniteMap.addToFM_C FiniteMap.addToFM0 yuz1387 yuz1388 yuz1389",fontsize=16,color="magenta"];19970 -> 20004[label="",style="dashed", color="magenta", weight=3]; 36.98/17.58 19970 -> 20005[label="",style="dashed", color="magenta", weight=3]; 36.98/17.58 19970 -> 20006[label="",style="dashed", color="magenta", weight=3]; 36.98/17.58 19971[label="yuz1386",fontsize=16,color="green",shape="box"];19972[label="yuz1383",fontsize=16,color="green",shape="box"];19993[label="FiniteMap.unitFM yuz1371 yuz1372",fontsize=16,color="black",shape="box"];19993 -> 20027[label="",style="solid", color="black", weight=3]; 36.98/17.58 19994[label="yuz1371",fontsize=16,color="green",shape="box"];19995[label="yuz13694",fontsize=16,color="green",shape="box"];19996[label="yuz13690",fontsize=16,color="green",shape="box"];19997[label="yuz13693",fontsize=16,color="green",shape="box"];19998[label="yuz1372",fontsize=16,color="green",shape="box"];19999[label="yuz13692",fontsize=16,color="green",shape="box"];20000[label="yuz13691",fontsize=16,color="green",shape="box"];12085[label="primMulNat (Succ (Succ (Succ (Succ (Succ Zero))))) (Succ yuz105000)",fontsize=16,color="black",shape="box"];12085 -> 12103[label="",style="solid", color="black", weight=3]; 36.98/17.58 12086[label="primMulNat (Succ (Succ (Succ (Succ (Succ Zero))))) Zero",fontsize=16,color="black",shape="box"];12086 -> 12104[label="",style="solid", color="black", weight=3]; 36.98/17.58 13813[label="primCmpNat (Succ yuz220) yuz1700 == LT",fontsize=16,color="burlywood",shape="box"];20800[label="yuz1700/Succ yuz17000",fontsize=10,color="white",style="solid",shape="box"];13813 -> 20800[label="",style="solid", color="burlywood", weight=9]; 36.98/17.58 20800 -> 13834[label="",style="solid", color="burlywood", weight=3]; 36.98/17.58 20801[label="yuz1700/Zero",fontsize=10,color="white",style="solid",shape="box"];13813 -> 20801[label="",style="solid", color="burlywood", weight=9]; 36.98/17.58 20801 -> 13835[label="",style="solid", color="burlywood", weight=3]; 36.98/17.58 13814[label="primCmpNat Zero yuz1700 == LT",fontsize=16,color="burlywood",shape="box"];20802[label="yuz1700/Succ yuz17000",fontsize=10,color="white",style="solid",shape="box"];13814 -> 20802[label="",style="solid", color="burlywood", weight=9]; 36.98/17.58 20802 -> 13836[label="",style="solid", color="burlywood", weight=3]; 36.98/17.58 20803[label="yuz1700/Zero",fontsize=10,color="white",style="solid",shape="box"];13814 -> 20803[label="",style="solid", color="burlywood", weight=9]; 36.98/17.58 20803 -> 13837[label="",style="solid", color="burlywood", weight=3]; 36.98/17.58 13995[label="False",fontsize=16,color="green",shape="box"];14026[label="Zero",fontsize=16,color="green",shape="box"];14027[label="Succ yuz100700",fontsize=16,color="green",shape="box"];13848[label="EQ == LT",fontsize=16,color="black",shape="triangle"];13848 -> 13996[label="",style="solid", color="black", weight=3]; 36.98/17.58 13806[label="True",fontsize=16,color="green",shape="box"];14028[label="Succ yuz100700",fontsize=16,color="green",shape="box"];14029[label="Zero",fontsize=16,color="green",shape="box"];19009 -> 16040[label="",style="dashed", color="red", weight=0]; 36.98/17.58 19009[label="FiniteMap.mkBranchResult yuz1331 yuz1332 (FiniteMap.Branch yuz1333 yuz1334 yuz1335 yuz1336 yuz1337) (FiniteMap.Branch yuz1338 yuz1339 yuz1340 yuz1341 yuz1342)",fontsize=16,color="magenta"];19009 -> 19050[label="",style="dashed", color="magenta", weight=3]; 36.98/17.58 19009 -> 19051[label="",style="dashed", color="magenta", weight=3]; 36.98/17.58 19009 -> 19052[label="",style="dashed", color="magenta", weight=3]; 36.98/17.58 19009 -> 19053[label="",style="dashed", color="magenta", weight=3]; 36.98/17.58 19302 -> 19285[label="",style="dashed", color="red", weight=0]; 36.98/17.58 19302[label="FiniteMap.addToFM (FiniteMap.Branch yuz10590 yuz10591 yuz10592 yuz10593 yuz10594) yuz1065 yuz1066",fontsize=16,color="magenta"];19302 -> 19350[label="",style="dashed", color="magenta", weight=3]; 36.98/17.58 19302 -> 19351[label="",style="dashed", color="magenta", weight=3]; 36.98/17.58 19302 -> 19352[label="",style="dashed", color="magenta", weight=3]; 36.98/17.58 19302 -> 19353[label="",style="dashed", color="magenta", weight=3]; 36.98/17.58 19302 -> 19354[label="",style="dashed", color="magenta", weight=3]; 36.98/17.58 19303[label="yuz106444",fontsize=16,color="green",shape="box"];19304[label="yuz10593",fontsize=16,color="green",shape="box"];19305[label="yuz106440",fontsize=16,color="green",shape="box"];19306[label="yuz10594",fontsize=16,color="green",shape="box"];19307[label="yuz106443",fontsize=16,color="green",shape="box"];19308[label="yuz10590",fontsize=16,color="green",shape="box"];19309[label="yuz10592",fontsize=16,color="green",shape="box"];19310[label="yuz106442",fontsize=16,color="green",shape="box"];19311[label="yuz10591",fontsize=16,color="green",shape="box"];19312[label="yuz106441",fontsize=16,color="green",shape="box"];19373 -> 19388[label="",style="dashed", color="red", weight=0]; 36.98/17.58 19373[label="FiniteMap.addToFM_C2 FiniteMap.addToFM0 yuz10640 yuz10641 yuz10642 yuz10643 yuz10644 yuz1065 yuz1066 (yuz1065 < yuz10640)",fontsize=16,color="magenta"];19373 -> 19525[label="",style="dashed", color="magenta", weight=3]; 36.98/17.58 19373 -> 19526[label="",style="dashed", color="magenta", weight=3]; 36.98/17.58 19373 -> 19527[label="",style="dashed", color="magenta", weight=3]; 36.98/17.58 19373 -> 19528[label="",style="dashed", color="magenta", weight=3]; 36.98/17.58 19373 -> 19529[label="",style="dashed", color="magenta", weight=3]; 36.98/17.58 19373 -> 19530[label="",style="dashed", color="magenta", weight=3]; 36.98/17.58 19373 -> 19531[label="",style="dashed", color="magenta", weight=3]; 36.98/17.58 19373 -> 19532[label="",style="dashed", color="magenta", weight=3]; 36.98/17.58 19374 -> 18889[label="",style="dashed", color="red", weight=0]; 36.98/17.58 19374[label="FiniteMap.mkVBalBranch3Size_l yuz105930 yuz105931 yuz105932 yuz105933 yuz105934 yuz10640 yuz10641 yuz10642 yuz10643 yuz10644",fontsize=16,color="magenta"];19374 -> 19793[label="",style="dashed", color="magenta", weight=3]; 36.98/17.58 19374 -> 19794[label="",style="dashed", color="magenta", weight=3]; 36.98/17.58 19374 -> 19795[label="",style="dashed", color="magenta", weight=3]; 36.98/17.58 19374 -> 19796[label="",style="dashed", color="magenta", weight=3]; 36.98/17.58 19374 -> 19797[label="",style="dashed", color="magenta", weight=3]; 36.98/17.58 19375[label="yuz105930",fontsize=16,color="green",shape="box"];19376[label="yuz105932",fontsize=16,color="green",shape="box"];19377[label="yuz105931",fontsize=16,color="green",shape="box"];19378[label="yuz105934",fontsize=16,color="green",shape="box"];19379[label="yuz105933",fontsize=16,color="green",shape="box"];19380 -> 10975[label="",style="dashed", color="red", weight=0]; 36.98/17.58 19380[label="FiniteMap.sizeFM yuz1351",fontsize=16,color="magenta"];19380 -> 19798[label="",style="dashed", color="magenta", weight=3]; 36.98/17.58 19381 -> 10975[label="",style="dashed", color="red", weight=0]; 36.98/17.58 19381[label="FiniteMap.sizeFM yuz2834",fontsize=16,color="magenta"];19381 -> 19799[label="",style="dashed", color="magenta", weight=3]; 36.98/17.58 16158 -> 15922[label="",style="dashed", color="red", weight=0]; 36.98/17.58 16158[label="primPlusInt yuz1288 yuz1285",fontsize=16,color="magenta"];16158 -> 16355[label="",style="dashed", color="magenta", weight=3]; 36.98/17.58 16158 -> 16356[label="",style="dashed", color="magenta", weight=3]; 36.98/17.58 19383 -> 19341[label="",style="dashed", color="red", weight=0]; 36.98/17.58 19383[label="FiniteMap.mkBalBranch6Size_r yuz2834 yuz2830 yuz2831 yuz1351",fontsize=16,color="magenta"];19384 -> 16633[label="",style="dashed", color="red", weight=0]; 36.98/17.58 19384[label="FiniteMap.sIZE_RATIO * FiniteMap.mkBalBranch6Size_l yuz2834 yuz2830 yuz2831 yuz1351",fontsize=16,color="magenta"];19384 -> 19800[label="",style="dashed", color="magenta", weight=3]; 36.98/17.58 19382[label="FiniteMap.mkBalBranch6MkBalBranch4 yuz2834 yuz2830 yuz2831 yuz1351 yuz2830 yuz2831 yuz1351 yuz2834 (yuz1355 > yuz1354)",fontsize=16,color="black",shape="triangle"];19382 -> 19801[label="",style="solid", color="black", weight=3]; 36.98/17.58 19385 -> 16040[label="",style="dashed", color="red", weight=0]; 36.98/17.58 19385[label="FiniteMap.mkBranchResult yuz2830 yuz2831 yuz1351 yuz2834",fontsize=16,color="magenta"];19385 -> 19802[label="",style="dashed", color="magenta", weight=3]; 36.98/17.58 15960[label="FiniteMap.glueBal2 (FiniteMap.Branch yuz2890 yuz2891 yuz2892 yuz2893 yuz2894) (FiniteMap.Branch yuz2830 yuz2831 yuz2832 yuz2833 yuz2834)",fontsize=16,color="black",shape="box"];15960 -> 15972[label="",style="solid", color="black", weight=3]; 36.98/17.58 19275[label="FiniteMap.glueVBal5 FiniteMap.EmptyFM (FiniteMap.Branch yuz2830 yuz2831 yuz2832 yuz2833 yuz2834)",fontsize=16,color="black",shape="box"];19275 -> 19313[label="",style="solid", color="black", weight=3]; 36.98/17.58 19276 -> 19272[label="",style="dashed", color="red", weight=0]; 36.98/17.58 19276[label="FiniteMap.glueVBal3 (FiniteMap.Branch yuz28940 yuz28941 yuz28942 yuz28943 yuz28944) (FiniteMap.Branch yuz2830 yuz2831 yuz2832 yuz2833 yuz2834)",fontsize=16,color="magenta"];19276 -> 19314[label="",style="dashed", color="magenta", weight=3]; 36.98/17.58 19276 -> 19315[label="",style="dashed", color="magenta", weight=3]; 36.98/17.58 19276 -> 19316[label="",style="dashed", color="magenta", weight=3]; 36.98/17.58 19276 -> 19317[label="",style="dashed", color="magenta", weight=3]; 36.98/17.58 19276 -> 19318[label="",style="dashed", color="magenta", weight=3]; 36.98/17.58 19276 -> 19319[label="",style="dashed", color="magenta", weight=3]; 36.98/17.58 19276 -> 19320[label="",style="dashed", color="magenta", weight=3]; 36.98/17.58 19276 -> 19321[label="",style="dashed", color="magenta", weight=3]; 36.98/17.58 19276 -> 19322[label="",style="dashed", color="magenta", weight=3]; 36.98/17.58 19276 -> 19323[label="",style="dashed", color="magenta", weight=3]; 36.98/17.58 19386 -> 16633[label="",style="dashed", color="red", weight=0]; 36.98/17.58 19386[label="FiniteMap.sIZE_RATIO * FiniteMap.glueVBal3Size_l yuz28330 yuz28331 yuz28332 yuz28333 yuz28334 yuz2890 yuz2891 yuz2892 yuz2893 yuz2894",fontsize=16,color="magenta"];19386 -> 19803[label="",style="dashed", color="magenta", weight=3]; 36.98/17.58 19387 -> 16635[label="",style="dashed", color="red", weight=0]; 36.98/17.58 19387[label="FiniteMap.glueVBal3Size_r yuz28330 yuz28331 yuz28332 yuz28333 yuz28334 yuz2890 yuz2891 yuz2892 yuz2893 yuz2894",fontsize=16,color="magenta"];19387 -> 19804[label="",style="dashed", color="magenta", weight=3]; 36.98/17.58 19387 -> 19805[label="",style="dashed", color="magenta", weight=3]; 36.98/17.58 19387 -> 19806[label="",style="dashed", color="magenta", weight=3]; 36.98/17.58 19387 -> 19807[label="",style="dashed", color="magenta", weight=3]; 36.98/17.58 19387 -> 19808[label="",style="dashed", color="magenta", weight=3]; 36.98/17.58 20001[label="primCmpInt (Pos yuz13710) yuz1366 == GT",fontsize=16,color="burlywood",shape="box"];20804[label="yuz13710/Succ yuz137100",fontsize=10,color="white",style="solid",shape="box"];20001 -> 20804[label="",style="solid", color="burlywood", weight=9]; 36.98/17.58 20804 -> 20028[label="",style="solid", color="burlywood", weight=3]; 36.98/17.58 20805[label="yuz13710/Zero",fontsize=10,color="white",style="solid",shape="box"];20001 -> 20805[label="",style="solid", color="burlywood", weight=9]; 36.98/17.58 20805 -> 20029[label="",style="solid", color="burlywood", weight=3]; 36.98/17.58 20002[label="primCmpInt (Neg yuz13710) yuz1366 == GT",fontsize=16,color="burlywood",shape="box"];20806[label="yuz13710/Succ yuz137100",fontsize=10,color="white",style="solid",shape="box"];20002 -> 20806[label="",style="solid", color="burlywood", weight=9]; 36.98/17.58 20806 -> 20030[label="",style="solid", color="burlywood", weight=3]; 36.98/17.58 20807[label="yuz13710/Zero",fontsize=10,color="white",style="solid",shape="box"];20002 -> 20807[label="",style="solid", color="burlywood", weight=9]; 36.98/17.58 20807 -> 20031[label="",style="solid", color="burlywood", weight=3]; 36.98/17.58 20003[label="FiniteMap.Branch yuz1388 (FiniteMap.addToFM0 yuz1384 yuz1389) yuz1385 yuz1386 yuz1387",fontsize=16,color="green",shape="box"];20003 -> 20032[label="",style="dashed", color="green", weight=3]; 36.98/17.58 20004[label="yuz1388",fontsize=16,color="green",shape="box"];20005[label="yuz1389",fontsize=16,color="green",shape="box"];20006[label="yuz1387",fontsize=16,color="green",shape="box"];20027[label="FiniteMap.Branch yuz1371 yuz1372 (Pos (Succ Zero)) FiniteMap.emptyFM FiniteMap.emptyFM",fontsize=16,color="green",shape="box"];20027 -> 20059[label="",style="dashed", color="green", weight=3]; 36.98/17.58 20027 -> 20060[label="",style="dashed", color="green", weight=3]; 36.98/17.58 12103 -> 3069[label="",style="dashed", color="red", weight=0]; 36.98/17.58 12103[label="primPlusNat (primMulNat (Succ (Succ (Succ (Succ Zero)))) (Succ yuz105000)) (Succ yuz105000)",fontsize=16,color="magenta"];12103 -> 12191[label="",style="dashed", color="magenta", weight=3]; 36.98/17.58 12103 -> 12192[label="",style="dashed", color="magenta", weight=3]; 36.98/17.58 12104[label="Zero",fontsize=16,color="green",shape="box"];13834[label="primCmpNat (Succ yuz220) (Succ yuz17000) == LT",fontsize=16,color="black",shape="box"];13834 -> 13845[label="",style="solid", color="black", weight=3]; 36.98/17.58 13835[label="primCmpNat (Succ yuz220) Zero == LT",fontsize=16,color="black",shape="box"];13835 -> 13846[label="",style="solid", color="black", weight=3]; 36.98/17.58 13836[label="primCmpNat Zero (Succ yuz17000) == LT",fontsize=16,color="black",shape="box"];13836 -> 13847[label="",style="solid", color="black", weight=3]; 36.98/17.58 13837[label="primCmpNat Zero Zero == LT",fontsize=16,color="black",shape="box"];13837 -> 13848[label="",style="solid", color="black", weight=3]; 36.98/17.58 13996[label="False",fontsize=16,color="green",shape="box"];19050[label="yuz1332",fontsize=16,color="green",shape="box"];19051[label="FiniteMap.Branch yuz1338 yuz1339 yuz1340 yuz1341 yuz1342",fontsize=16,color="green",shape="box"];19052[label="FiniteMap.Branch yuz1333 yuz1334 yuz1335 yuz1336 yuz1337",fontsize=16,color="green",shape="box"];19053[label="yuz1331",fontsize=16,color="green",shape="box"];16040[label="FiniteMap.mkBranchResult yuz2830 yuz2831 yuz1282 yuz2834",fontsize=16,color="black",shape="triangle"];16040 -> 16129[label="",style="solid", color="black", weight=3]; 36.98/17.58 19350[label="yuz10594",fontsize=16,color="green",shape="box"];19351[label="yuz10590",fontsize=16,color="green",shape="box"];19352[label="yuz10593",fontsize=16,color="green",shape="box"];19353[label="yuz10592",fontsize=16,color="green",shape="box"];19354[label="yuz10591",fontsize=16,color="green",shape="box"];19525[label="yuz10640",fontsize=16,color="green",shape="box"];19526[label="yuz10641",fontsize=16,color="green",shape="box"];19527[label="yuz1065",fontsize=16,color="green",shape="box"];19528[label="yuz1066",fontsize=16,color="green",shape="box"];19529[label="yuz10643",fontsize=16,color="green",shape="box"];19530[label="yuz10642",fontsize=16,color="green",shape="box"];19531[label="yuz10644",fontsize=16,color="green",shape="box"];19532[label="yuz1065 < yuz10640",fontsize=16,color="blue",shape="box"];20808[label="< :: Integer -> Integer -> Bool",fontsize=10,color="white",style="solid",shape="box"];19532 -> 20808[label="",style="solid", color="blue", weight=9]; 36.98/17.58 20808 -> 19809[label="",style="solid", color="blue", weight=3]; 36.98/17.58 20809[label="< :: Bool -> Bool -> Bool",fontsize=10,color="white",style="solid",shape="box"];19532 -> 20809[label="",style="solid", color="blue", weight=9]; 36.98/17.58 20809 -> 19810[label="",style="solid", color="blue", weight=3]; 36.98/17.58 20810[label="< :: (Either a b) -> (Either a b) -> Bool",fontsize=10,color="white",style="solid",shape="box"];19532 -> 20810[label="",style="solid", color="blue", weight=9]; 36.98/17.58 20810 -> 19811[label="",style="solid", color="blue", weight=3]; 36.98/17.58 20811[label="< :: Int -> Int -> Bool",fontsize=10,color="white",style="solid",shape="box"];19532 -> 20811[label="",style="solid", color="blue", weight=9]; 36.98/17.58 20811 -> 19812[label="",style="solid", color="blue", weight=3]; 36.98/17.58 20812[label="< :: () -> () -> Bool",fontsize=10,color="white",style="solid",shape="box"];19532 -> 20812[label="",style="solid", color="blue", weight=9]; 36.98/17.58 20812 -> 19813[label="",style="solid", color="blue", weight=3]; 36.98/17.58 20813[label="< :: ((@2) a b) -> ((@2) a b) -> Bool",fontsize=10,color="white",style="solid",shape="box"];19532 -> 20813[label="",style="solid", color="blue", weight=9]; 36.98/17.58 20813 -> 19814[label="",style="solid", color="blue", weight=3]; 36.98/17.58 20814[label="< :: Char -> Char -> Bool",fontsize=10,color="white",style="solid",shape="box"];19532 -> 20814[label="",style="solid", color="blue", weight=9]; 36.98/17.58 20814 -> 19815[label="",style="solid", color="blue", weight=3]; 36.98/17.58 20815[label="< :: Float -> Float -> Bool",fontsize=10,color="white",style="solid",shape="box"];19532 -> 20815[label="",style="solid", color="blue", weight=9]; 36.98/17.58 20815 -> 19816[label="",style="solid", color="blue", weight=3]; 36.98/17.58 20816[label="< :: Ordering -> Ordering -> Bool",fontsize=10,color="white",style="solid",shape="box"];19532 -> 20816[label="",style="solid", color="blue", weight=9]; 36.98/17.58 20816 -> 19817[label="",style="solid", color="blue", weight=3]; 36.98/17.58 20817[label="< :: ([] a) -> ([] a) -> Bool",fontsize=10,color="white",style="solid",shape="box"];19532 -> 20817[label="",style="solid", color="blue", weight=9]; 36.98/17.58 20817 -> 19818[label="",style="solid", color="blue", weight=3]; 36.98/17.58 20818[label="< :: (Ratio a) -> (Ratio a) -> Bool",fontsize=10,color="white",style="solid",shape="box"];19532 -> 20818[label="",style="solid", color="blue", weight=9]; 36.98/17.58 20818 -> 19819[label="",style="solid", color="blue", weight=3]; 36.98/17.58 20819[label="< :: ((@3) a b c) -> ((@3) a b c) -> Bool",fontsize=10,color="white",style="solid",shape="box"];19532 -> 20819[label="",style="solid", color="blue", weight=9]; 36.98/17.58 20819 -> 19820[label="",style="solid", color="blue", weight=3]; 36.98/17.58 20820[label="< :: (Maybe a) -> (Maybe a) -> Bool",fontsize=10,color="white",style="solid",shape="box"];19532 -> 20820[label="",style="solid", color="blue", weight=9]; 36.98/17.58 20820 -> 19821[label="",style="solid", color="blue", weight=3]; 36.98/17.58 20821[label="< :: Double -> Double -> Bool",fontsize=10,color="white",style="solid",shape="box"];19532 -> 20821[label="",style="solid", color="blue", weight=9]; 36.98/17.58 20821 -> 19822[label="",style="solid", color="blue", weight=3]; 36.98/17.58 19793[label="yuz105930",fontsize=16,color="green",shape="box"];19794[label="yuz105932",fontsize=16,color="green",shape="box"];19795[label="yuz105931",fontsize=16,color="green",shape="box"];19796[label="yuz105934",fontsize=16,color="green",shape="box"];19797[label="yuz105933",fontsize=16,color="green",shape="box"];19798[label="yuz1351",fontsize=16,color="green",shape="box"];19799[label="yuz2834",fontsize=16,color="green",shape="box"];16355[label="yuz1285",fontsize=16,color="green",shape="box"];16356[label="yuz1288",fontsize=16,color="green",shape="box"];15922[label="primPlusInt yuz1241 yuz1274",fontsize=16,color="burlywood",shape="triangle"];20822[label="yuz1241/Pos yuz12410",fontsize=10,color="white",style="solid",shape="box"];15922 -> 20822[label="",style="solid", color="burlywood", weight=9]; 36.98/17.58 20822 -> 16125[label="",style="solid", color="burlywood", weight=3]; 36.98/17.58 20823[label="yuz1241/Neg yuz12410",fontsize=10,color="white",style="solid",shape="box"];15922 -> 20823[label="",style="solid", color="burlywood", weight=9]; 36.98/17.58 20823 -> 16126[label="",style="solid", color="burlywood", weight=3]; 36.98/17.58 19800 -> 19340[label="",style="dashed", color="red", weight=0]; 36.98/17.58 19800[label="FiniteMap.mkBalBranch6Size_l yuz2834 yuz2830 yuz2831 yuz1351",fontsize=16,color="magenta"];19801[label="FiniteMap.mkBalBranch6MkBalBranch4 yuz2834 yuz2830 yuz2831 yuz1351 yuz2830 yuz2831 yuz1351 yuz2834 (compare yuz1355 yuz1354 == GT)",fontsize=16,color="black",shape="box"];19801 -> 19837[label="",style="solid", color="black", weight=3]; 36.98/17.58 19802[label="yuz1351",fontsize=16,color="green",shape="box"];15972 -> 16090[label="",style="dashed", color="red", weight=0]; 36.98/17.58 15972[label="FiniteMap.glueBal2GlueBal1 (FiniteMap.Branch yuz2890 yuz2891 yuz2892 yuz2893 yuz2894) (FiniteMap.Branch yuz2830 yuz2831 yuz2832 yuz2833 yuz2834) (FiniteMap.Branch yuz2890 yuz2891 yuz2892 yuz2893 yuz2894) (FiniteMap.Branch yuz2830 yuz2831 yuz2832 yuz2833 yuz2834) (FiniteMap.sizeFM (FiniteMap.Branch yuz2830 yuz2831 yuz2832 yuz2833 yuz2834) > FiniteMap.sizeFM (FiniteMap.Branch yuz2890 yuz2891 yuz2892 yuz2893 yuz2894))",fontsize=16,color="magenta"];15972 -> 16091[label="",style="dashed", color="magenta", weight=3]; 36.98/17.58 15972 -> 16092[label="",style="dashed", color="magenta", weight=3]; 36.98/17.58 19313[label="FiniteMap.Branch yuz2830 yuz2831 yuz2832 yuz2833 yuz2834",fontsize=16,color="green",shape="box"];19314[label="yuz2830",fontsize=16,color="green",shape="box"];19315[label="yuz28944",fontsize=16,color="green",shape="box"];19316[label="yuz28941",fontsize=16,color="green",shape="box"];19317[label="yuz28942",fontsize=16,color="green",shape="box"];19318[label="yuz28943",fontsize=16,color="green",shape="box"];19319[label="yuz2831",fontsize=16,color="green",shape="box"];19320[label="yuz28940",fontsize=16,color="green",shape="box"];19321[label="yuz2832",fontsize=16,color="green",shape="box"];19322[label="yuz2833",fontsize=16,color="green",shape="box"];19323[label="yuz2834",fontsize=16,color="green",shape="box"];19803 -> 15855[label="",style="dashed", color="red", weight=0]; 36.98/17.58 19803[label="FiniteMap.glueVBal3Size_l yuz28330 yuz28331 yuz28332 yuz28333 yuz28334 yuz2890 yuz2891 yuz2892 yuz2893 yuz2894",fontsize=16,color="magenta"];19803 -> 19838[label="",style="dashed", color="magenta", weight=3]; 36.98/17.58 19803 -> 19839[label="",style="dashed", color="magenta", weight=3]; 36.98/17.58 19803 -> 19840[label="",style="dashed", color="magenta", weight=3]; 36.98/17.58 19803 -> 19841[label="",style="dashed", color="magenta", weight=3]; 36.98/17.58 19803 -> 19842[label="",style="dashed", color="magenta", weight=3]; 36.98/17.58 19804[label="yuz28331",fontsize=16,color="green",shape="box"];19805[label="yuz28332",fontsize=16,color="green",shape="box"];19806[label="yuz28333",fontsize=16,color="green",shape="box"];19807[label="yuz28334",fontsize=16,color="green",shape="box"];19808[label="yuz28330",fontsize=16,color="green",shape="box"];20028[label="primCmpInt (Pos (Succ yuz137100)) yuz1366 == GT",fontsize=16,color="burlywood",shape="box"];20824[label="yuz1366/Pos yuz13660",fontsize=10,color="white",style="solid",shape="box"];20028 -> 20824[label="",style="solid", color="burlywood", weight=9]; 36.98/17.58 20824 -> 20061[label="",style="solid", color="burlywood", weight=3]; 36.98/17.58 20825[label="yuz1366/Neg yuz13660",fontsize=10,color="white",style="solid",shape="box"];20028 -> 20825[label="",style="solid", color="burlywood", weight=9]; 36.98/17.58 20825 -> 20062[label="",style="solid", color="burlywood", weight=3]; 36.98/17.58 20029[label="primCmpInt (Pos Zero) yuz1366 == GT",fontsize=16,color="burlywood",shape="box"];20826[label="yuz1366/Pos yuz13660",fontsize=10,color="white",style="solid",shape="box"];20029 -> 20826[label="",style="solid", color="burlywood", weight=9]; 36.98/17.58 20826 -> 20063[label="",style="solid", color="burlywood", weight=3]; 36.98/17.58 20827[label="yuz1366/Neg yuz13660",fontsize=10,color="white",style="solid",shape="box"];20029 -> 20827[label="",style="solid", color="burlywood", weight=9]; 36.98/17.58 20827 -> 20064[label="",style="solid", color="burlywood", weight=3]; 36.98/17.58 20030[label="primCmpInt (Neg (Succ yuz137100)) yuz1366 == GT",fontsize=16,color="burlywood",shape="box"];20828[label="yuz1366/Pos yuz13660",fontsize=10,color="white",style="solid",shape="box"];20030 -> 20828[label="",style="solid", color="burlywood", weight=9]; 36.98/17.58 20828 -> 20065[label="",style="solid", color="burlywood", weight=3]; 36.98/17.58 20829[label="yuz1366/Neg yuz13660",fontsize=10,color="white",style="solid",shape="box"];20030 -> 20829[label="",style="solid", color="burlywood", weight=9]; 36.98/17.58 20829 -> 20066[label="",style="solid", color="burlywood", weight=3]; 36.98/17.58 20031[label="primCmpInt (Neg Zero) yuz1366 == GT",fontsize=16,color="burlywood",shape="box"];20830[label="yuz1366/Pos yuz13660",fontsize=10,color="white",style="solid",shape="box"];20031 -> 20830[label="",style="solid", color="burlywood", weight=9]; 36.98/17.58 20830 -> 20067[label="",style="solid", color="burlywood", weight=3]; 36.98/17.58 20831[label="yuz1366/Neg yuz13660",fontsize=10,color="white",style="solid",shape="box"];20031 -> 20831[label="",style="solid", color="burlywood", weight=9]; 36.98/17.58 20831 -> 20068[label="",style="solid", color="burlywood", weight=3]; 36.98/17.58 20032[label="FiniteMap.addToFM0 yuz1384 yuz1389",fontsize=16,color="black",shape="box"];20032 -> 20069[label="",style="solid", color="black", weight=3]; 36.98/17.58 20059[label="FiniteMap.emptyFM",fontsize=16,color="black",shape="triangle"];20059 -> 20089[label="",style="solid", color="black", weight=3]; 36.98/17.58 20060 -> 20059[label="",style="dashed", color="red", weight=0]; 36.98/17.58 20060[label="FiniteMap.emptyFM",fontsize=16,color="magenta"];12191 -> 592[label="",style="dashed", color="red", weight=0]; 36.98/17.58 12191[label="primMulNat (Succ (Succ (Succ (Succ Zero)))) (Succ yuz105000)",fontsize=16,color="magenta"];12191 -> 12299[label="",style="dashed", color="magenta", weight=3]; 36.98/17.58 12192[label="Succ yuz105000",fontsize=16,color="green",shape="box"];3069[label="primPlusNat yuz209 yuz2100",fontsize=16,color="burlywood",shape="triangle"];20832[label="yuz209/Succ yuz2090",fontsize=10,color="white",style="solid",shape="box"];3069 -> 20832[label="",style="solid", color="burlywood", weight=9]; 36.98/17.58 20832 -> 3117[label="",style="solid", color="burlywood", weight=3]; 36.98/17.58 20833[label="yuz209/Zero",fontsize=10,color="white",style="solid",shape="box"];3069 -> 20833[label="",style="solid", color="burlywood", weight=9]; 36.98/17.58 20833 -> 3118[label="",style="solid", color="burlywood", weight=3]; 36.98/17.58 13845 -> 13186[label="",style="dashed", color="red", weight=0]; 36.98/17.58 13845[label="primCmpNat yuz220 yuz17000 == LT",fontsize=16,color="magenta"];13845 -> 13993[label="",style="dashed", color="magenta", weight=3]; 36.98/17.58 13845 -> 13994[label="",style="dashed", color="magenta", weight=3]; 36.98/17.58 13847 -> 13131[label="",style="dashed", color="red", weight=0]; 36.98/17.58 13847[label="LT == LT",fontsize=16,color="magenta"];16129[label="FiniteMap.Branch yuz2830 yuz2831 (FiniteMap.mkBranchUnbox yuz1282 yuz2830 yuz2834 (Pos (Succ Zero) + FiniteMap.mkBranchLeft_size yuz1282 yuz2830 yuz2834 + FiniteMap.mkBranchRight_size yuz1282 yuz2830 yuz2834)) yuz1282 yuz2834",fontsize=16,color="green",shape="box"];16129 -> 16177[label="",style="dashed", color="green", weight=3]; 36.98/17.58 19809[label="yuz1065 < yuz10640",fontsize=16,color="black",shape="box"];19809 -> 19843[label="",style="solid", color="black", weight=3]; 36.98/17.58 19810[label="yuz1065 < yuz10640",fontsize=16,color="black",shape="box"];19810 -> 19844[label="",style="solid", color="black", weight=3]; 36.98/17.58 19811[label="yuz1065 < yuz10640",fontsize=16,color="black",shape="box"];19811 -> 19845[label="",style="solid", color="black", weight=3]; 36.98/17.58 19812 -> 12432[label="",style="dashed", color="red", weight=0]; 36.98/17.58 19812[label="yuz1065 < yuz10640",fontsize=16,color="magenta"];19812 -> 19846[label="",style="dashed", color="magenta", weight=3]; 36.98/17.58 19812 -> 19847[label="",style="dashed", color="magenta", weight=3]; 36.98/17.58 19813[label="yuz1065 < yuz10640",fontsize=16,color="black",shape="box"];19813 -> 19848[label="",style="solid", color="black", weight=3]; 36.98/17.58 19814[label="yuz1065 < yuz10640",fontsize=16,color="black",shape="box"];19814 -> 19849[label="",style="solid", color="black", weight=3]; 36.98/17.58 19815[label="yuz1065 < yuz10640",fontsize=16,color="black",shape="box"];19815 -> 19850[label="",style="solid", color="black", weight=3]; 36.98/17.58 19816[label="yuz1065 < yuz10640",fontsize=16,color="black",shape="box"];19816 -> 19851[label="",style="solid", color="black", weight=3]; 36.98/17.58 19817[label="yuz1065 < yuz10640",fontsize=16,color="black",shape="box"];19817 -> 19852[label="",style="solid", color="black", weight=3]; 36.98/17.58 19818[label="yuz1065 < yuz10640",fontsize=16,color="black",shape="box"];19818 -> 19853[label="",style="solid", color="black", weight=3]; 36.98/17.58 19819[label="yuz1065 < yuz10640",fontsize=16,color="black",shape="box"];19819 -> 19854[label="",style="solid", color="black", weight=3]; 36.98/17.58 19820[label="yuz1065 < yuz10640",fontsize=16,color="black",shape="box"];19820 -> 19855[label="",style="solid", color="black", weight=3]; 36.98/17.58 19821[label="yuz1065 < yuz10640",fontsize=16,color="black",shape="box"];19821 -> 19856[label="",style="solid", color="black", weight=3]; 36.98/17.58 19822[label="yuz1065 < yuz10640",fontsize=16,color="black",shape="box"];19822 -> 19857[label="",style="solid", color="black", weight=3]; 36.98/17.58 16125[label="primPlusInt (Pos yuz12410) yuz1274",fontsize=16,color="burlywood",shape="box"];20834[label="yuz1274/Pos yuz12740",fontsize=10,color="white",style="solid",shape="box"];16125 -> 20834[label="",style="solid", color="burlywood", weight=9]; 36.98/17.58 20834 -> 16181[label="",style="solid", color="burlywood", weight=3]; 36.98/17.58 20835[label="yuz1274/Neg yuz12740",fontsize=10,color="white",style="solid",shape="box"];16125 -> 20835[label="",style="solid", color="burlywood", weight=9]; 36.98/17.58 20835 -> 16182[label="",style="solid", color="burlywood", weight=3]; 36.98/17.58 16126[label="primPlusInt (Neg yuz12410) yuz1274",fontsize=16,color="burlywood",shape="box"];20836[label="yuz1274/Pos yuz12740",fontsize=10,color="white",style="solid",shape="box"];16126 -> 20836[label="",style="solid", color="burlywood", weight=9]; 36.98/17.58 20836 -> 16183[label="",style="solid", color="burlywood", weight=3]; 36.98/17.58 20837[label="yuz1274/Neg yuz12740",fontsize=10,color="white",style="solid",shape="box"];16126 -> 20837[label="",style="solid", color="burlywood", weight=9]; 36.98/17.58 20837 -> 16184[label="",style="solid", color="burlywood", weight=3]; 36.98/17.58 19837[label="FiniteMap.mkBalBranch6MkBalBranch4 yuz2834 yuz2830 yuz2831 yuz1351 yuz2830 yuz2831 yuz1351 yuz2834 (primCmpInt yuz1355 yuz1354 == GT)",fontsize=16,color="burlywood",shape="box"];20838[label="yuz1355/Pos yuz13550",fontsize=10,color="white",style="solid",shape="box"];19837 -> 20838[label="",style="solid", color="burlywood", weight=9]; 36.98/17.58 20838 -> 19895[label="",style="solid", color="burlywood", weight=3]; 36.98/17.58 20839[label="yuz1355/Neg yuz13550",fontsize=10,color="white",style="solid",shape="box"];19837 -> 20839[label="",style="solid", color="burlywood", weight=9]; 36.98/17.58 20839 -> 19896[label="",style="solid", color="burlywood", weight=3]; 36.98/17.58 16091 -> 10975[label="",style="dashed", color="red", weight=0]; 36.98/17.58 16091[label="FiniteMap.sizeFM (FiniteMap.Branch yuz2890 yuz2891 yuz2892 yuz2893 yuz2894)",fontsize=16,color="magenta"];16091 -> 16130[label="",style="dashed", color="magenta", weight=3]; 36.98/17.58 16092 -> 10975[label="",style="dashed", color="red", weight=0]; 36.98/17.58 16092[label="FiniteMap.sizeFM (FiniteMap.Branch yuz2830 yuz2831 yuz2832 yuz2833 yuz2834)",fontsize=16,color="magenta"];16092 -> 16131[label="",style="dashed", color="magenta", weight=3]; 36.98/17.58 16090[label="FiniteMap.glueBal2GlueBal1 (FiniteMap.Branch yuz2890 yuz2891 yuz2892 yuz2893 yuz2894) (FiniteMap.Branch yuz2830 yuz2831 yuz2832 yuz2833 yuz2834) (FiniteMap.Branch yuz2890 yuz2891 yuz2892 yuz2893 yuz2894) (FiniteMap.Branch yuz2830 yuz2831 yuz2832 yuz2833 yuz2834) (yuz1284 > yuz1283)",fontsize=16,color="black",shape="triangle"];16090 -> 16132[label="",style="solid", color="black", weight=3]; 36.98/17.58 19838[label="yuz28331",fontsize=16,color="green",shape="box"];19839[label="yuz28332",fontsize=16,color="green",shape="box"];19840[label="yuz28333",fontsize=16,color="green",shape="box"];19841[label="yuz28334",fontsize=16,color="green",shape="box"];19842[label="yuz28330",fontsize=16,color="green",shape="box"];20061[label="primCmpInt (Pos (Succ yuz137100)) (Pos yuz13660) == GT",fontsize=16,color="black",shape="box"];20061 -> 20090[label="",style="solid", color="black", weight=3]; 36.98/17.58 20062[label="primCmpInt (Pos (Succ yuz137100)) (Neg yuz13660) == GT",fontsize=16,color="black",shape="box"];20062 -> 20091[label="",style="solid", color="black", weight=3]; 36.98/17.58 20063[label="primCmpInt (Pos Zero) (Pos yuz13660) == GT",fontsize=16,color="burlywood",shape="box"];20840[label="yuz13660/Succ yuz136600",fontsize=10,color="white",style="solid",shape="box"];20063 -> 20840[label="",style="solid", color="burlywood", weight=9]; 36.98/17.58 20840 -> 20092[label="",style="solid", color="burlywood", weight=3]; 36.98/17.58 20841[label="yuz13660/Zero",fontsize=10,color="white",style="solid",shape="box"];20063 -> 20841[label="",style="solid", color="burlywood", weight=9]; 36.98/17.58 20841 -> 20093[label="",style="solid", color="burlywood", weight=3]; 36.98/17.58 20064[label="primCmpInt (Pos Zero) (Neg yuz13660) == GT",fontsize=16,color="burlywood",shape="box"];20842[label="yuz13660/Succ yuz136600",fontsize=10,color="white",style="solid",shape="box"];20064 -> 20842[label="",style="solid", color="burlywood", weight=9]; 36.98/17.58 20842 -> 20094[label="",style="solid", color="burlywood", weight=3]; 36.98/17.58 20843[label="yuz13660/Zero",fontsize=10,color="white",style="solid",shape="box"];20064 -> 20843[label="",style="solid", color="burlywood", weight=9]; 36.98/17.58 20843 -> 20095[label="",style="solid", color="burlywood", weight=3]; 36.98/17.58 20065[label="primCmpInt (Neg (Succ yuz137100)) (Pos yuz13660) == GT",fontsize=16,color="black",shape="box"];20065 -> 20096[label="",style="solid", color="black", weight=3]; 36.98/17.58 20066[label="primCmpInt (Neg (Succ yuz137100)) (Neg yuz13660) == GT",fontsize=16,color="black",shape="box"];20066 -> 20097[label="",style="solid", color="black", weight=3]; 36.98/17.58 20067[label="primCmpInt (Neg Zero) (Pos yuz13660) == GT",fontsize=16,color="burlywood",shape="box"];20844[label="yuz13660/Succ yuz136600",fontsize=10,color="white",style="solid",shape="box"];20067 -> 20844[label="",style="solid", color="burlywood", weight=9]; 36.98/17.58 20844 -> 20098[label="",style="solid", color="burlywood", weight=3]; 36.98/17.58 20845[label="yuz13660/Zero",fontsize=10,color="white",style="solid",shape="box"];20067 -> 20845[label="",style="solid", color="burlywood", weight=9]; 36.98/17.58 20845 -> 20099[label="",style="solid", color="burlywood", weight=3]; 36.98/17.58 20068[label="primCmpInt (Neg Zero) (Neg yuz13660) == GT",fontsize=16,color="burlywood",shape="box"];20846[label="yuz13660/Succ yuz136600",fontsize=10,color="white",style="solid",shape="box"];20068 -> 20846[label="",style="solid", color="burlywood", weight=9]; 36.98/17.58 20846 -> 20100[label="",style="solid", color="burlywood", weight=3]; 36.98/17.58 20847[label="yuz13660/Zero",fontsize=10,color="white",style="solid",shape="box"];20068 -> 20847[label="",style="solid", color="burlywood", weight=9]; 36.98/17.58 20847 -> 20101[label="",style="solid", color="burlywood", weight=3]; 36.98/17.58 20069[label="yuz1389",fontsize=16,color="green",shape="box"];20089[label="FiniteMap.EmptyFM",fontsize=16,color="green",shape="box"];12299[label="yuz105000",fontsize=16,color="green",shape="box"];592[label="primMulNat (Succ (Succ (Succ (Succ Zero)))) (Succ yuz9200)",fontsize=16,color="black",shape="triangle"];592 -> 683[label="",style="solid", color="black", weight=3]; 36.98/17.58 3117[label="primPlusNat (Succ yuz2090) yuz2100",fontsize=16,color="burlywood",shape="box"];20848[label="yuz2100/Succ yuz21000",fontsize=10,color="white",style="solid",shape="box"];3117 -> 20848[label="",style="solid", color="burlywood", weight=9]; 36.98/17.58 20848 -> 3140[label="",style="solid", color="burlywood", weight=3]; 36.98/17.58 20849[label="yuz2100/Zero",fontsize=10,color="white",style="solid",shape="box"];3117 -> 20849[label="",style="solid", color="burlywood", weight=9]; 36.98/17.58 20849 -> 3141[label="",style="solid", color="burlywood", weight=3]; 36.98/17.58 3118[label="primPlusNat Zero yuz2100",fontsize=16,color="burlywood",shape="box"];20850[label="yuz2100/Succ yuz21000",fontsize=10,color="white",style="solid",shape="box"];3118 -> 20850[label="",style="solid", color="burlywood", weight=9]; 36.98/17.58 20850 -> 3142[label="",style="solid", color="burlywood", weight=3]; 36.98/17.58 20851[label="yuz2100/Zero",fontsize=10,color="white",style="solid",shape="box"];3118 -> 20851[label="",style="solid", color="burlywood", weight=9]; 36.98/17.58 20851 -> 3143[label="",style="solid", color="burlywood", weight=3]; 36.98/17.58 13993[label="yuz220",fontsize=16,color="green",shape="box"];13994[label="yuz17000",fontsize=16,color="green",shape="box"];16177 -> 16370[label="",style="dashed", color="red", weight=0]; 36.98/17.58 16177[label="FiniteMap.mkBranchUnbox yuz1282 yuz2830 yuz2834 (Pos (Succ Zero) + FiniteMap.mkBranchLeft_size yuz1282 yuz2830 yuz2834 + FiniteMap.mkBranchRight_size yuz1282 yuz2830 yuz2834)",fontsize=16,color="magenta"];16177 -> 16371[label="",style="dashed", color="magenta", weight=3]; 36.98/17.58 19843[label="compare yuz1065 yuz10640 == LT",fontsize=16,color="black",shape="box"];19843 -> 19897[label="",style="solid", color="black", weight=3]; 36.98/17.58 19844[label="compare yuz1065 yuz10640 == LT",fontsize=16,color="black",shape="box"];19844 -> 19898[label="",style="solid", color="black", weight=3]; 36.98/17.58 19845[label="compare yuz1065 yuz10640 == LT",fontsize=16,color="black",shape="box"];19845 -> 19899[label="",style="solid", color="black", weight=3]; 36.98/17.58 19846[label="yuz1065",fontsize=16,color="green",shape="box"];19847[label="yuz10640",fontsize=16,color="green",shape="box"];19848[label="compare yuz1065 yuz10640 == LT",fontsize=16,color="black",shape="box"];19848 -> 19900[label="",style="solid", color="black", weight=3]; 36.98/17.58 19849[label="compare yuz1065 yuz10640 == LT",fontsize=16,color="black",shape="box"];19849 -> 19901[label="",style="solid", color="black", weight=3]; 36.98/17.58 19850[label="compare yuz1065 yuz10640 == LT",fontsize=16,color="black",shape="box"];19850 -> 19902[label="",style="solid", color="black", weight=3]; 36.98/17.58 19851[label="compare yuz1065 yuz10640 == LT",fontsize=16,color="black",shape="box"];19851 -> 19903[label="",style="solid", color="black", weight=3]; 36.98/17.58 19852[label="compare yuz1065 yuz10640 == LT",fontsize=16,color="black",shape="box"];19852 -> 19904[label="",style="solid", color="black", weight=3]; 36.98/17.58 19853[label="compare yuz1065 yuz10640 == LT",fontsize=16,color="black",shape="box"];19853 -> 19905[label="",style="solid", color="black", weight=3]; 36.98/17.58 19854[label="compare yuz1065 yuz10640 == LT",fontsize=16,color="black",shape="box"];19854 -> 19906[label="",style="solid", color="black", weight=3]; 36.98/17.58 19855[label="compare yuz1065 yuz10640 == LT",fontsize=16,color="black",shape="box"];19855 -> 19907[label="",style="solid", color="black", weight=3]; 36.98/17.58 19856[label="compare yuz1065 yuz10640 == LT",fontsize=16,color="black",shape="box"];19856 -> 19908[label="",style="solid", color="black", weight=3]; 36.98/17.58 19857[label="compare yuz1065 yuz10640 == LT",fontsize=16,color="black",shape="box"];19857 -> 19909[label="",style="solid", color="black", weight=3]; 36.98/17.58 16181[label="primPlusInt (Pos yuz12410) (Pos yuz12740)",fontsize=16,color="black",shape="box"];16181 -> 16372[label="",style="solid", color="black", weight=3]; 36.98/17.58 16182[label="primPlusInt (Pos yuz12410) (Neg yuz12740)",fontsize=16,color="black",shape="box"];16182 -> 16373[label="",style="solid", color="black", weight=3]; 36.98/17.58 16183[label="primPlusInt (Neg yuz12410) (Pos yuz12740)",fontsize=16,color="black",shape="box"];16183 -> 16374[label="",style="solid", color="black", weight=3]; 36.98/17.58 16184[label="primPlusInt (Neg yuz12410) (Neg yuz12740)",fontsize=16,color="black",shape="box"];16184 -> 16375[label="",style="solid", color="black", weight=3]; 36.98/17.58 19895[label="FiniteMap.mkBalBranch6MkBalBranch4 yuz2834 yuz2830 yuz2831 yuz1351 yuz2830 yuz2831 yuz1351 yuz2834 (primCmpInt (Pos yuz13550) yuz1354 == GT)",fontsize=16,color="burlywood",shape="box"];20852[label="yuz13550/Succ yuz135500",fontsize=10,color="white",style="solid",shape="box"];19895 -> 20852[label="",style="solid", color="burlywood", weight=9]; 36.98/17.58 20852 -> 19940[label="",style="solid", color="burlywood", weight=3]; 36.98/17.58 20853[label="yuz13550/Zero",fontsize=10,color="white",style="solid",shape="box"];19895 -> 20853[label="",style="solid", color="burlywood", weight=9]; 36.98/17.58 20853 -> 19941[label="",style="solid", color="burlywood", weight=3]; 36.98/17.58 19896[label="FiniteMap.mkBalBranch6MkBalBranch4 yuz2834 yuz2830 yuz2831 yuz1351 yuz2830 yuz2831 yuz1351 yuz2834 (primCmpInt (Neg yuz13550) yuz1354 == GT)",fontsize=16,color="burlywood",shape="box"];20854[label="yuz13550/Succ yuz135500",fontsize=10,color="white",style="solid",shape="box"];19896 -> 20854[label="",style="solid", color="burlywood", weight=9]; 36.98/17.58 20854 -> 19942[label="",style="solid", color="burlywood", weight=3]; 36.98/17.58 20855[label="yuz13550/Zero",fontsize=10,color="white",style="solid",shape="box"];19896 -> 20855[label="",style="solid", color="burlywood", weight=9]; 36.98/17.58 20855 -> 19943[label="",style="solid", color="burlywood", weight=3]; 36.98/17.58 16130[label="FiniteMap.Branch yuz2890 yuz2891 yuz2892 yuz2893 yuz2894",fontsize=16,color="green",shape="box"];16131[label="FiniteMap.Branch yuz2830 yuz2831 yuz2832 yuz2833 yuz2834",fontsize=16,color="green",shape="box"];16132[label="FiniteMap.glueBal2GlueBal1 (FiniteMap.Branch yuz2890 yuz2891 yuz2892 yuz2893 yuz2894) (FiniteMap.Branch yuz2830 yuz2831 yuz2832 yuz2833 yuz2834) (FiniteMap.Branch yuz2890 yuz2891 yuz2892 yuz2893 yuz2894) (FiniteMap.Branch yuz2830 yuz2831 yuz2832 yuz2833 yuz2834) (compare yuz1284 yuz1283 == GT)",fontsize=16,color="black",shape="box"];16132 -> 16178[label="",style="solid", color="black", weight=3]; 36.98/17.58 20090[label="primCmpNat (Succ yuz137100) yuz13660 == GT",fontsize=16,color="burlywood",shape="triangle"];20856[label="yuz13660/Succ yuz136600",fontsize=10,color="white",style="solid",shape="box"];20090 -> 20856[label="",style="solid", color="burlywood", weight=9]; 36.98/17.58 20856 -> 20108[label="",style="solid", color="burlywood", weight=3]; 36.98/17.58 20857[label="yuz13660/Zero",fontsize=10,color="white",style="solid",shape="box"];20090 -> 20857[label="",style="solid", color="burlywood", weight=9]; 36.98/17.58 20857 -> 20109[label="",style="solid", color="burlywood", weight=3]; 36.98/17.58 20091[label="GT == GT",fontsize=16,color="black",shape="triangle"];20091 -> 20110[label="",style="solid", color="black", weight=3]; 36.98/17.58 20092[label="primCmpInt (Pos Zero) (Pos (Succ yuz136600)) == GT",fontsize=16,color="black",shape="box"];20092 -> 20111[label="",style="solid", color="black", weight=3]; 36.98/17.58 20093[label="primCmpInt (Pos Zero) (Pos Zero) == GT",fontsize=16,color="black",shape="box"];20093 -> 20112[label="",style="solid", color="black", weight=3]; 36.98/17.58 20094[label="primCmpInt (Pos Zero) (Neg (Succ yuz136600)) == GT",fontsize=16,color="black",shape="box"];20094 -> 20113[label="",style="solid", color="black", weight=3]; 36.98/17.58 20095[label="primCmpInt (Pos Zero) (Neg Zero) == GT",fontsize=16,color="black",shape="box"];20095 -> 20114[label="",style="solid", color="black", weight=3]; 36.98/17.58 20096[label="LT == GT",fontsize=16,color="black",shape="triangle"];20096 -> 20115[label="",style="solid", color="black", weight=3]; 36.98/17.58 20097[label="primCmpNat yuz13660 (Succ yuz137100) == GT",fontsize=16,color="burlywood",shape="triangle"];20858[label="yuz13660/Succ yuz136600",fontsize=10,color="white",style="solid",shape="box"];20097 -> 20858[label="",style="solid", color="burlywood", weight=9]; 36.98/17.58 20858 -> 20116[label="",style="solid", color="burlywood", weight=3]; 36.98/17.58 20859[label="yuz13660/Zero",fontsize=10,color="white",style="solid",shape="box"];20097 -> 20859[label="",style="solid", color="burlywood", weight=9]; 36.98/17.58 20859 -> 20117[label="",style="solid", color="burlywood", weight=3]; 36.98/17.58 20098[label="primCmpInt (Neg Zero) (Pos (Succ yuz136600)) == GT",fontsize=16,color="black",shape="box"];20098 -> 20118[label="",style="solid", color="black", weight=3]; 36.98/17.58 20099[label="primCmpInt (Neg Zero) (Pos Zero) == GT",fontsize=16,color="black",shape="box"];20099 -> 20119[label="",style="solid", color="black", weight=3]; 36.98/17.58 20100[label="primCmpInt (Neg Zero) (Neg (Succ yuz136600)) == GT",fontsize=16,color="black",shape="box"];20100 -> 20120[label="",style="solid", color="black", weight=3]; 36.98/17.58 20101[label="primCmpInt (Neg Zero) (Neg Zero) == GT",fontsize=16,color="black",shape="box"];20101 -> 20121[label="",style="solid", color="black", weight=3]; 36.98/17.58 683[label="primPlusNat (primMulNat (Succ (Succ (Succ Zero))) (Succ yuz9200)) (Succ yuz9200)",fontsize=16,color="black",shape="box"];683 -> 735[label="",style="solid", color="black", weight=3]; 36.98/17.58 3140[label="primPlusNat (Succ yuz2090) (Succ yuz21000)",fontsize=16,color="black",shape="box"];3140 -> 3276[label="",style="solid", color="black", weight=3]; 36.98/17.58 3141[label="primPlusNat (Succ yuz2090) Zero",fontsize=16,color="black",shape="box"];3141 -> 3277[label="",style="solid", color="black", weight=3]; 36.98/17.58 3142[label="primPlusNat Zero (Succ yuz21000)",fontsize=16,color="black",shape="box"];3142 -> 3278[label="",style="solid", color="black", weight=3]; 36.98/17.58 3143[label="primPlusNat Zero Zero",fontsize=16,color="black",shape="box"];3143 -> 3279[label="",style="solid", color="black", weight=3]; 36.98/17.58 16371 -> 16137[label="",style="dashed", color="red", weight=0]; 36.98/17.58 16371[label="Pos (Succ Zero) + FiniteMap.mkBranchLeft_size yuz1282 yuz2830 yuz2834 + FiniteMap.mkBranchRight_size yuz1282 yuz2830 yuz2834",fontsize=16,color="magenta"];16371 -> 16390[label="",style="dashed", color="magenta", weight=3]; 36.98/17.58 16371 -> 16391[label="",style="dashed", color="magenta", weight=3]; 36.98/17.58 16370[label="FiniteMap.mkBranchUnbox yuz1282 yuz2830 yuz2834 yuz1292",fontsize=16,color="black",shape="triangle"];16370 -> 16392[label="",style="solid", color="black", weight=3]; 36.98/17.58 19897[label="error []",fontsize=16,color="red",shape="box"];19898[label="error []",fontsize=16,color="red",shape="box"];19899[label="error []",fontsize=16,color="red",shape="box"];19900[label="error []",fontsize=16,color="red",shape="box"];19901[label="error []",fontsize=16,color="red",shape="box"];19902[label="error []",fontsize=16,color="red",shape="box"];19903[label="error []",fontsize=16,color="red",shape="box"];19904[label="error []",fontsize=16,color="red",shape="box"];19905[label="error []",fontsize=16,color="red",shape="box"];19906[label="error []",fontsize=16,color="red",shape="box"];19907[label="error []",fontsize=16,color="red",shape="box"];19908[label="error []",fontsize=16,color="red",shape="box"];19909[label="error []",fontsize=16,color="red",shape="box"];16372[label="Pos (primPlusNat yuz12410 yuz12740)",fontsize=16,color="green",shape="box"];16372 -> 16494[label="",style="dashed", color="green", weight=3]; 36.98/17.58 16373 -> 10954[label="",style="dashed", color="red", weight=0]; 36.98/17.58 16373[label="primMinusNat yuz12410 yuz12740",fontsize=16,color="magenta"];16373 -> 16495[label="",style="dashed", color="magenta", weight=3]; 36.98/17.58 16373 -> 16496[label="",style="dashed", color="magenta", weight=3]; 36.98/17.58 16374 -> 10954[label="",style="dashed", color="red", weight=0]; 36.98/17.58 16374[label="primMinusNat yuz12740 yuz12410",fontsize=16,color="magenta"];16374 -> 16497[label="",style="dashed", color="magenta", weight=3]; 36.98/17.58 16374 -> 16498[label="",style="dashed", color="magenta", weight=3]; 36.98/17.58 16375[label="Neg (primPlusNat yuz12410 yuz12740)",fontsize=16,color="green",shape="box"];16375 -> 16499[label="",style="dashed", color="green", weight=3]; 36.98/17.58 19940[label="FiniteMap.mkBalBranch6MkBalBranch4 yuz2834 yuz2830 yuz2831 yuz1351 yuz2830 yuz2831 yuz1351 yuz2834 (primCmpInt (Pos (Succ yuz135500)) yuz1354 == GT)",fontsize=16,color="burlywood",shape="box"];20860[label="yuz1354/Pos yuz13540",fontsize=10,color="white",style="solid",shape="box"];19940 -> 20860[label="",style="solid", color="burlywood", weight=9]; 36.98/17.58 20860 -> 19973[label="",style="solid", color="burlywood", weight=3]; 36.98/17.58 20861[label="yuz1354/Neg yuz13540",fontsize=10,color="white",style="solid",shape="box"];19940 -> 20861[label="",style="solid", color="burlywood", weight=9]; 36.98/17.58 20861 -> 19974[label="",style="solid", color="burlywood", weight=3]; 36.98/17.58 19941[label="FiniteMap.mkBalBranch6MkBalBranch4 yuz2834 yuz2830 yuz2831 yuz1351 yuz2830 yuz2831 yuz1351 yuz2834 (primCmpInt (Pos Zero) yuz1354 == GT)",fontsize=16,color="burlywood",shape="box"];20862[label="yuz1354/Pos yuz13540",fontsize=10,color="white",style="solid",shape="box"];19941 -> 20862[label="",style="solid", color="burlywood", weight=9]; 36.98/17.58 20862 -> 19975[label="",style="solid", color="burlywood", weight=3]; 36.98/17.58 20863[label="yuz1354/Neg yuz13540",fontsize=10,color="white",style="solid",shape="box"];19941 -> 20863[label="",style="solid", color="burlywood", weight=9]; 36.98/17.58 20863 -> 19976[label="",style="solid", color="burlywood", weight=3]; 36.98/17.58 19942[label="FiniteMap.mkBalBranch6MkBalBranch4 yuz2834 yuz2830 yuz2831 yuz1351 yuz2830 yuz2831 yuz1351 yuz2834 (primCmpInt (Neg (Succ yuz135500)) yuz1354 == GT)",fontsize=16,color="burlywood",shape="box"];20864[label="yuz1354/Pos yuz13540",fontsize=10,color="white",style="solid",shape="box"];19942 -> 20864[label="",style="solid", color="burlywood", weight=9]; 36.98/17.58 20864 -> 19977[label="",style="solid", color="burlywood", weight=3]; 36.98/17.58 20865[label="yuz1354/Neg yuz13540",fontsize=10,color="white",style="solid",shape="box"];19942 -> 20865[label="",style="solid", color="burlywood", weight=9]; 36.98/17.58 20865 -> 19978[label="",style="solid", color="burlywood", weight=3]; 36.98/17.58 19943[label="FiniteMap.mkBalBranch6MkBalBranch4 yuz2834 yuz2830 yuz2831 yuz1351 yuz2830 yuz2831 yuz1351 yuz2834 (primCmpInt (Neg Zero) yuz1354 == GT)",fontsize=16,color="burlywood",shape="box"];20866[label="yuz1354/Pos yuz13540",fontsize=10,color="white",style="solid",shape="box"];19943 -> 20866[label="",style="solid", color="burlywood", weight=9]; 36.98/17.58 20866 -> 19979[label="",style="solid", color="burlywood", weight=3]; 36.98/17.58 20867[label="yuz1354/Neg yuz13540",fontsize=10,color="white",style="solid",shape="box"];19943 -> 20867[label="",style="solid", color="burlywood", weight=9]; 36.98/17.58 20867 -> 19980[label="",style="solid", color="burlywood", weight=3]; 36.98/17.58 16178[label="FiniteMap.glueBal2GlueBal1 (FiniteMap.Branch yuz2890 yuz2891 yuz2892 yuz2893 yuz2894) (FiniteMap.Branch yuz2830 yuz2831 yuz2832 yuz2833 yuz2834) (FiniteMap.Branch yuz2890 yuz2891 yuz2892 yuz2893 yuz2894) (FiniteMap.Branch yuz2830 yuz2831 yuz2832 yuz2833 yuz2834) (primCmpInt yuz1284 yuz1283 == GT)",fontsize=16,color="burlywood",shape="box"];20868[label="yuz1284/Pos yuz12840",fontsize=10,color="white",style="solid",shape="box"];16178 -> 20868[label="",style="solid", color="burlywood", weight=9]; 36.98/17.58 20868 -> 16376[label="",style="solid", color="burlywood", weight=3]; 36.98/17.58 20869[label="yuz1284/Neg yuz12840",fontsize=10,color="white",style="solid",shape="box"];16178 -> 20869[label="",style="solid", color="burlywood", weight=9]; 36.98/17.58 20869 -> 16377[label="",style="solid", color="burlywood", weight=3]; 36.98/17.58 20108[label="primCmpNat (Succ yuz137100) (Succ yuz136600) == GT",fontsize=16,color="black",shape="box"];20108 -> 20226[label="",style="solid", color="black", weight=3]; 36.98/17.58 20109[label="primCmpNat (Succ yuz137100) Zero == GT",fontsize=16,color="black",shape="box"];20109 -> 20227[label="",style="solid", color="black", weight=3]; 36.98/17.58 20110[label="True",fontsize=16,color="green",shape="box"];20111 -> 20097[label="",style="dashed", color="red", weight=0]; 36.98/17.58 20111[label="primCmpNat Zero (Succ yuz136600) == GT",fontsize=16,color="magenta"];20111 -> 20228[label="",style="dashed", color="magenta", weight=3]; 36.98/17.58 20111 -> 20229[label="",style="dashed", color="magenta", weight=3]; 36.98/17.58 20112[label="EQ == GT",fontsize=16,color="black",shape="triangle"];20112 -> 20230[label="",style="solid", color="black", weight=3]; 36.98/17.58 20113 -> 20091[label="",style="dashed", color="red", weight=0]; 36.98/17.58 20113[label="GT == GT",fontsize=16,color="magenta"];20114 -> 20112[label="",style="dashed", color="red", weight=0]; 36.98/17.58 20114[label="EQ == GT",fontsize=16,color="magenta"];20115[label="False",fontsize=16,color="green",shape="box"];20116[label="primCmpNat (Succ yuz136600) (Succ yuz137100) == GT",fontsize=16,color="black",shape="box"];20116 -> 20231[label="",style="solid", color="black", weight=3]; 36.98/17.58 20117[label="primCmpNat Zero (Succ yuz137100) == GT",fontsize=16,color="black",shape="box"];20117 -> 20232[label="",style="solid", color="black", weight=3]; 36.98/17.58 20118 -> 20096[label="",style="dashed", color="red", weight=0]; 36.98/17.58 20118[label="LT == GT",fontsize=16,color="magenta"];20119 -> 20112[label="",style="dashed", color="red", weight=0]; 36.98/17.58 20119[label="EQ == GT",fontsize=16,color="magenta"];20120 -> 20090[label="",style="dashed", color="red", weight=0]; 36.98/17.58 20120[label="primCmpNat (Succ yuz136600) Zero == GT",fontsize=16,color="magenta"];20120 -> 20233[label="",style="dashed", color="magenta", weight=3]; 36.98/17.58 20120 -> 20234[label="",style="dashed", color="magenta", weight=3]; 36.98/17.58 20121 -> 20112[label="",style="dashed", color="red", weight=0]; 36.98/17.58 20121[label="EQ == GT",fontsize=16,color="magenta"];735[label="primPlusNat (primPlusNat (primMulNat (Succ (Succ Zero)) (Succ yuz9200)) (Succ yuz9200)) (Succ yuz9200)",fontsize=16,color="black",shape="box"];735 -> 778[label="",style="solid", color="black", weight=3]; 36.98/17.58 3276[label="Succ (Succ (primPlusNat yuz2090 yuz21000))",fontsize=16,color="green",shape="box"];3276 -> 3444[label="",style="dashed", color="green", weight=3]; 36.98/17.58 3277[label="Succ yuz2090",fontsize=16,color="green",shape="box"];3278[label="Succ yuz21000",fontsize=16,color="green",shape="box"];3279[label="Zero",fontsize=16,color="green",shape="box"];16390 -> 16137[label="",style="dashed", color="red", weight=0]; 36.98/17.58 16390[label="Pos (Succ Zero) + FiniteMap.mkBranchLeft_size yuz1282 yuz2830 yuz2834",fontsize=16,color="magenta"];16390 -> 16521[label="",style="dashed", color="magenta", weight=3]; 36.98/17.58 16390 -> 16522[label="",style="dashed", color="magenta", weight=3]; 36.98/17.58 16391[label="FiniteMap.mkBranchRight_size yuz1282 yuz2830 yuz2834",fontsize=16,color="black",shape="box"];16391 -> 16523[label="",style="solid", color="black", weight=3]; 36.98/17.58 16392[label="yuz1292",fontsize=16,color="green",shape="box"];16494 -> 3069[label="",style="dashed", color="red", weight=0]; 36.98/17.58 16494[label="primPlusNat yuz12410 yuz12740",fontsize=16,color="magenta"];16494 -> 16621[label="",style="dashed", color="magenta", weight=3]; 36.98/17.58 16494 -> 16622[label="",style="dashed", color="magenta", weight=3]; 36.98/17.58 16495[label="yuz12740",fontsize=16,color="green",shape="box"];16496[label="yuz12410",fontsize=16,color="green",shape="box"];10954[label="primMinusNat yuz95020 yuz1920",fontsize=16,color="burlywood",shape="triangle"];20870[label="yuz95020/Succ yuz950200",fontsize=10,color="white",style="solid",shape="box"];10954 -> 20870[label="",style="solid", color="burlywood", weight=9]; 36.98/17.58 20870 -> 10980[label="",style="solid", color="burlywood", weight=3]; 36.98/17.58 20871[label="yuz95020/Zero",fontsize=10,color="white",style="solid",shape="box"];10954 -> 20871[label="",style="solid", color="burlywood", weight=9]; 36.98/17.58 20871 -> 10981[label="",style="solid", color="burlywood", weight=3]; 36.98/17.58 16497[label="yuz12410",fontsize=16,color="green",shape="box"];16498[label="yuz12740",fontsize=16,color="green",shape="box"];16499 -> 3069[label="",style="dashed", color="red", weight=0]; 36.98/17.58 16499[label="primPlusNat yuz12410 yuz12740",fontsize=16,color="magenta"];16499 -> 16623[label="",style="dashed", color="magenta", weight=3]; 36.98/17.58 16499 -> 16624[label="",style="dashed", color="magenta", weight=3]; 36.98/17.58 19973[label="FiniteMap.mkBalBranch6MkBalBranch4 yuz2834 yuz2830 yuz2831 yuz1351 yuz2830 yuz2831 yuz1351 yuz2834 (primCmpInt (Pos (Succ yuz135500)) (Pos yuz13540) == GT)",fontsize=16,color="black",shape="box"];19973 -> 20007[label="",style="solid", color="black", weight=3]; 36.98/17.58 19974[label="FiniteMap.mkBalBranch6MkBalBranch4 yuz2834 yuz2830 yuz2831 yuz1351 yuz2830 yuz2831 yuz1351 yuz2834 (primCmpInt (Pos (Succ yuz135500)) (Neg yuz13540) == GT)",fontsize=16,color="black",shape="box"];19974 -> 20008[label="",style="solid", color="black", weight=3]; 36.98/17.58 19975[label="FiniteMap.mkBalBranch6MkBalBranch4 yuz2834 yuz2830 yuz2831 yuz1351 yuz2830 yuz2831 yuz1351 yuz2834 (primCmpInt (Pos Zero) (Pos yuz13540) == GT)",fontsize=16,color="burlywood",shape="box"];20872[label="yuz13540/Succ yuz135400",fontsize=10,color="white",style="solid",shape="box"];19975 -> 20872[label="",style="solid", color="burlywood", weight=9]; 36.98/17.58 20872 -> 20009[label="",style="solid", color="burlywood", weight=3]; 36.98/17.58 20873[label="yuz13540/Zero",fontsize=10,color="white",style="solid",shape="box"];19975 -> 20873[label="",style="solid", color="burlywood", weight=9]; 36.98/17.58 20873 -> 20010[label="",style="solid", color="burlywood", weight=3]; 36.98/17.58 19976[label="FiniteMap.mkBalBranch6MkBalBranch4 yuz2834 yuz2830 yuz2831 yuz1351 yuz2830 yuz2831 yuz1351 yuz2834 (primCmpInt (Pos Zero) (Neg yuz13540) == GT)",fontsize=16,color="burlywood",shape="box"];20874[label="yuz13540/Succ yuz135400",fontsize=10,color="white",style="solid",shape="box"];19976 -> 20874[label="",style="solid", color="burlywood", weight=9]; 36.98/17.58 20874 -> 20011[label="",style="solid", color="burlywood", weight=3]; 36.98/17.58 20875[label="yuz13540/Zero",fontsize=10,color="white",style="solid",shape="box"];19976 -> 20875[label="",style="solid", color="burlywood", weight=9]; 36.98/17.58 20875 -> 20012[label="",style="solid", color="burlywood", weight=3]; 36.98/17.58 19977[label="FiniteMap.mkBalBranch6MkBalBranch4 yuz2834 yuz2830 yuz2831 yuz1351 yuz2830 yuz2831 yuz1351 yuz2834 (primCmpInt (Neg (Succ yuz135500)) (Pos yuz13540) == GT)",fontsize=16,color="black",shape="box"];19977 -> 20013[label="",style="solid", color="black", weight=3]; 36.98/17.58 19978[label="FiniteMap.mkBalBranch6MkBalBranch4 yuz2834 yuz2830 yuz2831 yuz1351 yuz2830 yuz2831 yuz1351 yuz2834 (primCmpInt (Neg (Succ yuz135500)) (Neg yuz13540) == GT)",fontsize=16,color="black",shape="box"];19978 -> 20014[label="",style="solid", color="black", weight=3]; 36.98/17.58 19979[label="FiniteMap.mkBalBranch6MkBalBranch4 yuz2834 yuz2830 yuz2831 yuz1351 yuz2830 yuz2831 yuz1351 yuz2834 (primCmpInt (Neg Zero) (Pos yuz13540) == GT)",fontsize=16,color="burlywood",shape="box"];20876[label="yuz13540/Succ yuz135400",fontsize=10,color="white",style="solid",shape="box"];19979 -> 20876[label="",style="solid", color="burlywood", weight=9]; 36.98/17.58 20876 -> 20015[label="",style="solid", color="burlywood", weight=3]; 36.98/17.58 20877[label="yuz13540/Zero",fontsize=10,color="white",style="solid",shape="box"];19979 -> 20877[label="",style="solid", color="burlywood", weight=9]; 36.98/17.58 20877 -> 20016[label="",style="solid", color="burlywood", weight=3]; 36.98/17.58 19980[label="FiniteMap.mkBalBranch6MkBalBranch4 yuz2834 yuz2830 yuz2831 yuz1351 yuz2830 yuz2831 yuz1351 yuz2834 (primCmpInt (Neg Zero) (Neg yuz13540) == GT)",fontsize=16,color="burlywood",shape="box"];20878[label="yuz13540/Succ yuz135400",fontsize=10,color="white",style="solid",shape="box"];19980 -> 20878[label="",style="solid", color="burlywood", weight=9]; 36.98/17.58 20878 -> 20017[label="",style="solid", color="burlywood", weight=3]; 36.98/17.58 20879[label="yuz13540/Zero",fontsize=10,color="white",style="solid",shape="box"];19980 -> 20879[label="",style="solid", color="burlywood", weight=9]; 36.98/17.58 20879 -> 20018[label="",style="solid", color="burlywood", weight=3]; 36.98/17.58 16376[label="FiniteMap.glueBal2GlueBal1 (FiniteMap.Branch yuz2890 yuz2891 yuz2892 yuz2893 yuz2894) (FiniteMap.Branch yuz2830 yuz2831 yuz2832 yuz2833 yuz2834) (FiniteMap.Branch yuz2890 yuz2891 yuz2892 yuz2893 yuz2894) (FiniteMap.Branch yuz2830 yuz2831 yuz2832 yuz2833 yuz2834) (primCmpInt (Pos yuz12840) yuz1283 == GT)",fontsize=16,color="burlywood",shape="box"];20880[label="yuz12840/Succ yuz128400",fontsize=10,color="white",style="solid",shape="box"];16376 -> 20880[label="",style="solid", color="burlywood", weight=9]; 36.98/17.58 20880 -> 16500[label="",style="solid", color="burlywood", weight=3]; 36.98/17.58 20881[label="yuz12840/Zero",fontsize=10,color="white",style="solid",shape="box"];16376 -> 20881[label="",style="solid", color="burlywood", weight=9]; 36.98/17.58 20881 -> 16501[label="",style="solid", color="burlywood", weight=3]; 36.98/17.58 16377[label="FiniteMap.glueBal2GlueBal1 (FiniteMap.Branch yuz2890 yuz2891 yuz2892 yuz2893 yuz2894) (FiniteMap.Branch yuz2830 yuz2831 yuz2832 yuz2833 yuz2834) (FiniteMap.Branch yuz2890 yuz2891 yuz2892 yuz2893 yuz2894) (FiniteMap.Branch yuz2830 yuz2831 yuz2832 yuz2833 yuz2834) (primCmpInt (Neg yuz12840) yuz1283 == GT)",fontsize=16,color="burlywood",shape="box"];20882[label="yuz12840/Succ yuz128400",fontsize=10,color="white",style="solid",shape="box"];16377 -> 20882[label="",style="solid", color="burlywood", weight=9]; 36.98/17.58 20882 -> 16502[label="",style="solid", color="burlywood", weight=3]; 36.98/17.58 20883[label="yuz12840/Zero",fontsize=10,color="white",style="solid",shape="box"];16377 -> 20883[label="",style="solid", color="burlywood", weight=9]; 36.98/17.58 20883 -> 16503[label="",style="solid", color="burlywood", weight=3]; 36.98/17.58 20226[label="primCmpNat yuz137100 yuz136600 == GT",fontsize=16,color="burlywood",shape="triangle"];20884[label="yuz137100/Succ yuz1371000",fontsize=10,color="white",style="solid",shape="box"];20226 -> 20884[label="",style="solid", color="burlywood", weight=9]; 36.98/17.58 20884 -> 20337[label="",style="solid", color="burlywood", weight=3]; 36.98/17.58 20885[label="yuz137100/Zero",fontsize=10,color="white",style="solid",shape="box"];20226 -> 20885[label="",style="solid", color="burlywood", weight=9]; 36.98/17.58 20885 -> 20338[label="",style="solid", color="burlywood", weight=3]; 36.98/17.58 20227 -> 20091[label="",style="dashed", color="red", weight=0]; 36.98/17.58 20227[label="GT == GT",fontsize=16,color="magenta"];20228[label="yuz136600",fontsize=16,color="green",shape="box"];20229[label="Zero",fontsize=16,color="green",shape="box"];20230[label="False",fontsize=16,color="green",shape="box"];20231 -> 20226[label="",style="dashed", color="red", weight=0]; 36.98/17.58 20231[label="primCmpNat yuz136600 yuz137100 == GT",fontsize=16,color="magenta"];20231 -> 20339[label="",style="dashed", color="magenta", weight=3]; 36.98/17.58 20231 -> 20340[label="",style="dashed", color="magenta", weight=3]; 36.98/17.58 20232 -> 20096[label="",style="dashed", color="red", weight=0]; 36.98/17.58 20232[label="LT == GT",fontsize=16,color="magenta"];20233[label="yuz136600",fontsize=16,color="green",shape="box"];20234[label="Zero",fontsize=16,color="green",shape="box"];778[label="primPlusNat (primPlusNat (primPlusNat (primMulNat (Succ Zero) (Succ yuz9200)) (Succ yuz9200)) (Succ yuz9200)) (Succ yuz9200)",fontsize=16,color="black",shape="box"];778 -> 823[label="",style="solid", color="black", weight=3]; 36.98/17.58 3444 -> 3069[label="",style="dashed", color="red", weight=0]; 36.98/17.58 3444[label="primPlusNat yuz2090 yuz21000",fontsize=16,color="magenta"];3444 -> 3471[label="",style="dashed", color="magenta", weight=3]; 36.98/17.58 3444 -> 3472[label="",style="dashed", color="magenta", weight=3]; 36.98/17.58 16521[label="Pos (Succ Zero)",fontsize=16,color="green",shape="box"];16522[label="FiniteMap.mkBranchLeft_size yuz1282 yuz2830 yuz2834",fontsize=16,color="black",shape="box"];16522 -> 16661[label="",style="solid", color="black", weight=3]; 36.98/17.58 16523 -> 10975[label="",style="dashed", color="red", weight=0]; 36.98/17.58 16523[label="FiniteMap.sizeFM yuz2834",fontsize=16,color="magenta"];16523 -> 16662[label="",style="dashed", color="magenta", weight=3]; 36.98/17.58 16621[label="yuz12410",fontsize=16,color="green",shape="box"];16622[label="yuz12740",fontsize=16,color="green",shape="box"];10980[label="primMinusNat (Succ yuz950200) yuz1920",fontsize=16,color="burlywood",shape="box"];20886[label="yuz1920/Succ yuz19200",fontsize=10,color="white",style="solid",shape="box"];10980 -> 20886[label="",style="solid", color="burlywood", weight=9]; 36.98/17.58 20886 -> 11119[label="",style="solid", color="burlywood", weight=3]; 36.98/17.58 20887[label="yuz1920/Zero",fontsize=10,color="white",style="solid",shape="box"];10980 -> 20887[label="",style="solid", color="burlywood", weight=9]; 36.98/17.58 20887 -> 11120[label="",style="solid", color="burlywood", weight=3]; 36.98/17.58 10981[label="primMinusNat Zero yuz1920",fontsize=16,color="burlywood",shape="box"];20888[label="yuz1920/Succ yuz19200",fontsize=10,color="white",style="solid",shape="box"];10981 -> 20888[label="",style="solid", color="burlywood", weight=9]; 36.98/17.58 20888 -> 11121[label="",style="solid", color="burlywood", weight=3]; 36.98/17.58 20889[label="yuz1920/Zero",fontsize=10,color="white",style="solid",shape="box"];10981 -> 20889[label="",style="solid", color="burlywood", weight=9]; 36.98/17.58 20889 -> 11122[label="",style="solid", color="burlywood", weight=3]; 36.98/17.58 16623[label="yuz12410",fontsize=16,color="green",shape="box"];16624[label="yuz12740",fontsize=16,color="green",shape="box"];20007[label="FiniteMap.mkBalBranch6MkBalBranch4 yuz2834 yuz2830 yuz2831 yuz1351 yuz2830 yuz2831 yuz1351 yuz2834 (primCmpNat (Succ yuz135500) yuz13540 == GT)",fontsize=16,color="burlywood",shape="triangle"];20890[label="yuz13540/Succ yuz135400",fontsize=10,color="white",style="solid",shape="box"];20007 -> 20890[label="",style="solid", color="burlywood", weight=9]; 36.98/17.58 20890 -> 20033[label="",style="solid", color="burlywood", weight=3]; 36.98/17.58 20891[label="yuz13540/Zero",fontsize=10,color="white",style="solid",shape="box"];20007 -> 20891[label="",style="solid", color="burlywood", weight=9]; 36.98/17.58 20891 -> 20034[label="",style="solid", color="burlywood", weight=3]; 36.98/17.58 20008[label="FiniteMap.mkBalBranch6MkBalBranch4 yuz2834 yuz2830 yuz2831 yuz1351 yuz2830 yuz2831 yuz1351 yuz2834 (GT == GT)",fontsize=16,color="black",shape="triangle"];20008 -> 20035[label="",style="solid", color="black", weight=3]; 36.98/17.58 20009[label="FiniteMap.mkBalBranch6MkBalBranch4 yuz2834 yuz2830 yuz2831 yuz1351 yuz2830 yuz2831 yuz1351 yuz2834 (primCmpInt (Pos Zero) (Pos (Succ yuz135400)) == GT)",fontsize=16,color="black",shape="box"];20009 -> 20036[label="",style="solid", color="black", weight=3]; 36.98/17.58 20010[label="FiniteMap.mkBalBranch6MkBalBranch4 yuz2834 yuz2830 yuz2831 yuz1351 yuz2830 yuz2831 yuz1351 yuz2834 (primCmpInt (Pos Zero) (Pos Zero) == GT)",fontsize=16,color="black",shape="box"];20010 -> 20037[label="",style="solid", color="black", weight=3]; 36.98/17.58 20011[label="FiniteMap.mkBalBranch6MkBalBranch4 yuz2834 yuz2830 yuz2831 yuz1351 yuz2830 yuz2831 yuz1351 yuz2834 (primCmpInt (Pos Zero) (Neg (Succ yuz135400)) == GT)",fontsize=16,color="black",shape="box"];20011 -> 20038[label="",style="solid", color="black", weight=3]; 36.98/17.58 20012[label="FiniteMap.mkBalBranch6MkBalBranch4 yuz2834 yuz2830 yuz2831 yuz1351 yuz2830 yuz2831 yuz1351 yuz2834 (primCmpInt (Pos Zero) (Neg Zero) == GT)",fontsize=16,color="black",shape="box"];20012 -> 20039[label="",style="solid", color="black", weight=3]; 36.98/17.58 20013[label="FiniteMap.mkBalBranch6MkBalBranch4 yuz2834 yuz2830 yuz2831 yuz1351 yuz2830 yuz2831 yuz1351 yuz2834 (LT == GT)",fontsize=16,color="black",shape="triangle"];20013 -> 20040[label="",style="solid", color="black", weight=3]; 36.98/17.58 20014[label="FiniteMap.mkBalBranch6MkBalBranch4 yuz2834 yuz2830 yuz2831 yuz1351 yuz2830 yuz2831 yuz1351 yuz2834 (primCmpNat yuz13540 (Succ yuz135500) == GT)",fontsize=16,color="burlywood",shape="triangle"];20892[label="yuz13540/Succ yuz135400",fontsize=10,color="white",style="solid",shape="box"];20014 -> 20892[label="",style="solid", color="burlywood", weight=9]; 36.98/17.58 20892 -> 20041[label="",style="solid", color="burlywood", weight=3]; 36.98/17.58 20893[label="yuz13540/Zero",fontsize=10,color="white",style="solid",shape="box"];20014 -> 20893[label="",style="solid", color="burlywood", weight=9]; 36.98/17.58 20893 -> 20042[label="",style="solid", color="burlywood", weight=3]; 36.98/17.58 20015[label="FiniteMap.mkBalBranch6MkBalBranch4 yuz2834 yuz2830 yuz2831 yuz1351 yuz2830 yuz2831 yuz1351 yuz2834 (primCmpInt (Neg Zero) (Pos (Succ yuz135400)) == GT)",fontsize=16,color="black",shape="box"];20015 -> 20043[label="",style="solid", color="black", weight=3]; 36.98/17.58 20016[label="FiniteMap.mkBalBranch6MkBalBranch4 yuz2834 yuz2830 yuz2831 yuz1351 yuz2830 yuz2831 yuz1351 yuz2834 (primCmpInt (Neg Zero) (Pos Zero) == GT)",fontsize=16,color="black",shape="box"];20016 -> 20044[label="",style="solid", color="black", weight=3]; 36.98/17.58 20017[label="FiniteMap.mkBalBranch6MkBalBranch4 yuz2834 yuz2830 yuz2831 yuz1351 yuz2830 yuz2831 yuz1351 yuz2834 (primCmpInt (Neg Zero) (Neg (Succ yuz135400)) == GT)",fontsize=16,color="black",shape="box"];20017 -> 20045[label="",style="solid", color="black", weight=3]; 36.98/17.58 20018[label="FiniteMap.mkBalBranch6MkBalBranch4 yuz2834 yuz2830 yuz2831 yuz1351 yuz2830 yuz2831 yuz1351 yuz2834 (primCmpInt (Neg Zero) (Neg Zero) == GT)",fontsize=16,color="black",shape="box"];20018 -> 20046[label="",style="solid", color="black", weight=3]; 36.98/17.58 16500[label="FiniteMap.glueBal2GlueBal1 (FiniteMap.Branch yuz2890 yuz2891 yuz2892 yuz2893 yuz2894) (FiniteMap.Branch yuz2830 yuz2831 yuz2832 yuz2833 yuz2834) (FiniteMap.Branch yuz2890 yuz2891 yuz2892 yuz2893 yuz2894) (FiniteMap.Branch yuz2830 yuz2831 yuz2832 yuz2833 yuz2834) (primCmpInt (Pos (Succ yuz128400)) yuz1283 == GT)",fontsize=16,color="burlywood",shape="box"];20894[label="yuz1283/Pos yuz12830",fontsize=10,color="white",style="solid",shape="box"];16500 -> 20894[label="",style="solid", color="burlywood", weight=9]; 36.98/17.58 20894 -> 16625[label="",style="solid", color="burlywood", weight=3]; 36.98/17.58 20895[label="yuz1283/Neg yuz12830",fontsize=10,color="white",style="solid",shape="box"];16500 -> 20895[label="",style="solid", color="burlywood", weight=9]; 36.98/17.58 20895 -> 16626[label="",style="solid", color="burlywood", weight=3]; 36.98/17.58 16501[label="FiniteMap.glueBal2GlueBal1 (FiniteMap.Branch yuz2890 yuz2891 yuz2892 yuz2893 yuz2894) (FiniteMap.Branch yuz2830 yuz2831 yuz2832 yuz2833 yuz2834) (FiniteMap.Branch yuz2890 yuz2891 yuz2892 yuz2893 yuz2894) (FiniteMap.Branch yuz2830 yuz2831 yuz2832 yuz2833 yuz2834) (primCmpInt (Pos Zero) yuz1283 == GT)",fontsize=16,color="burlywood",shape="box"];20896[label="yuz1283/Pos yuz12830",fontsize=10,color="white",style="solid",shape="box"];16501 -> 20896[label="",style="solid", color="burlywood", weight=9]; 36.98/17.58 20896 -> 16627[label="",style="solid", color="burlywood", weight=3]; 36.98/17.58 20897[label="yuz1283/Neg yuz12830",fontsize=10,color="white",style="solid",shape="box"];16501 -> 20897[label="",style="solid", color="burlywood", weight=9]; 36.98/17.58 20897 -> 16628[label="",style="solid", color="burlywood", weight=3]; 36.98/17.58 16502[label="FiniteMap.glueBal2GlueBal1 (FiniteMap.Branch yuz2890 yuz2891 yuz2892 yuz2893 yuz2894) (FiniteMap.Branch yuz2830 yuz2831 yuz2832 yuz2833 yuz2834) (FiniteMap.Branch yuz2890 yuz2891 yuz2892 yuz2893 yuz2894) (FiniteMap.Branch yuz2830 yuz2831 yuz2832 yuz2833 yuz2834) (primCmpInt (Neg (Succ yuz128400)) yuz1283 == GT)",fontsize=16,color="burlywood",shape="box"];20898[label="yuz1283/Pos yuz12830",fontsize=10,color="white",style="solid",shape="box"];16502 -> 20898[label="",style="solid", color="burlywood", weight=9]; 36.98/17.58 20898 -> 16629[label="",style="solid", color="burlywood", weight=3]; 36.98/17.58 20899[label="yuz1283/Neg yuz12830",fontsize=10,color="white",style="solid",shape="box"];16502 -> 20899[label="",style="solid", color="burlywood", weight=9]; 36.98/17.58 20899 -> 16630[label="",style="solid", color="burlywood", weight=3]; 36.98/17.58 16503[label="FiniteMap.glueBal2GlueBal1 (FiniteMap.Branch yuz2890 yuz2891 yuz2892 yuz2893 yuz2894) (FiniteMap.Branch yuz2830 yuz2831 yuz2832 yuz2833 yuz2834) (FiniteMap.Branch yuz2890 yuz2891 yuz2892 yuz2893 yuz2894) (FiniteMap.Branch yuz2830 yuz2831 yuz2832 yuz2833 yuz2834) (primCmpInt (Neg Zero) yuz1283 == GT)",fontsize=16,color="burlywood",shape="box"];20900[label="yuz1283/Pos yuz12830",fontsize=10,color="white",style="solid",shape="box"];16503 -> 20900[label="",style="solid", color="burlywood", weight=9]; 36.98/17.58 20900 -> 16631[label="",style="solid", color="burlywood", weight=3]; 36.98/17.58 20901[label="yuz1283/Neg yuz12830",fontsize=10,color="white",style="solid",shape="box"];16503 -> 20901[label="",style="solid", color="burlywood", weight=9]; 36.98/17.58 20901 -> 16632[label="",style="solid", color="burlywood", weight=3]; 36.98/17.58 20337[label="primCmpNat (Succ yuz1371000) yuz136600 == GT",fontsize=16,color="burlywood",shape="box"];20902[label="yuz136600/Succ yuz1366000",fontsize=10,color="white",style="solid",shape="box"];20337 -> 20902[label="",style="solid", color="burlywood", weight=9]; 36.98/17.58 20902 -> 20345[label="",style="solid", color="burlywood", weight=3]; 36.98/17.58 20903[label="yuz136600/Zero",fontsize=10,color="white",style="solid",shape="box"];20337 -> 20903[label="",style="solid", color="burlywood", weight=9]; 36.98/17.58 20903 -> 20346[label="",style="solid", color="burlywood", weight=3]; 36.98/17.58 20338[label="primCmpNat Zero yuz136600 == GT",fontsize=16,color="burlywood",shape="box"];20904[label="yuz136600/Succ yuz1366000",fontsize=10,color="white",style="solid",shape="box"];20338 -> 20904[label="",style="solid", color="burlywood", weight=9]; 36.98/17.58 20904 -> 20347[label="",style="solid", color="burlywood", weight=3]; 36.98/17.58 20905[label="yuz136600/Zero",fontsize=10,color="white",style="solid",shape="box"];20338 -> 20905[label="",style="solid", color="burlywood", weight=9]; 36.98/17.58 20905 -> 20348[label="",style="solid", color="burlywood", weight=3]; 36.98/17.58 20339[label="yuz136600",fontsize=16,color="green",shape="box"];20340[label="yuz137100",fontsize=16,color="green",shape="box"];823[label="primPlusNat (primPlusNat (primPlusNat (primPlusNat (primMulNat Zero (Succ yuz9200)) (Succ yuz9200)) (Succ yuz9200)) (Succ yuz9200)) (Succ yuz9200)",fontsize=16,color="black",shape="box"];823 -> 875[label="",style="solid", color="black", weight=3]; 36.98/17.58 3471[label="yuz2090",fontsize=16,color="green",shape="box"];3472[label="yuz21000",fontsize=16,color="green",shape="box"];16661 -> 10975[label="",style="dashed", color="red", weight=0]; 36.98/17.58 16661[label="FiniteMap.sizeFM yuz1282",fontsize=16,color="magenta"];16661 -> 16720[label="",style="dashed", color="magenta", weight=3]; 36.98/17.58 16662[label="yuz2834",fontsize=16,color="green",shape="box"];11119[label="primMinusNat (Succ yuz950200) (Succ yuz19200)",fontsize=16,color="black",shape="box"];11119 -> 11142[label="",style="solid", color="black", weight=3]; 36.98/17.58 11120[label="primMinusNat (Succ yuz950200) Zero",fontsize=16,color="black",shape="box"];11120 -> 11143[label="",style="solid", color="black", weight=3]; 36.98/17.58 11121[label="primMinusNat Zero (Succ yuz19200)",fontsize=16,color="black",shape="box"];11121 -> 11144[label="",style="solid", color="black", weight=3]; 36.98/17.58 11122[label="primMinusNat Zero Zero",fontsize=16,color="black",shape="box"];11122 -> 11145[label="",style="solid", color="black", weight=3]; 36.98/17.58 20033[label="FiniteMap.mkBalBranch6MkBalBranch4 yuz2834 yuz2830 yuz2831 yuz1351 yuz2830 yuz2831 yuz1351 yuz2834 (primCmpNat (Succ yuz135500) (Succ yuz135400) == GT)",fontsize=16,color="black",shape="box"];20033 -> 20070[label="",style="solid", color="black", weight=3]; 36.98/17.58 20034[label="FiniteMap.mkBalBranch6MkBalBranch4 yuz2834 yuz2830 yuz2831 yuz1351 yuz2830 yuz2831 yuz1351 yuz2834 (primCmpNat (Succ yuz135500) Zero == GT)",fontsize=16,color="black",shape="box"];20034 -> 20071[label="",style="solid", color="black", weight=3]; 36.98/17.58 20035[label="FiniteMap.mkBalBranch6MkBalBranch4 yuz2834 yuz2830 yuz2831 yuz1351 yuz2830 yuz2831 yuz1351 yuz2834 True",fontsize=16,color="black",shape="box"];20035 -> 20072[label="",style="solid", color="black", weight=3]; 36.98/17.58 20036 -> 20014[label="",style="dashed", color="red", weight=0]; 36.98/17.58 20036[label="FiniteMap.mkBalBranch6MkBalBranch4 yuz2834 yuz2830 yuz2831 yuz1351 yuz2830 yuz2831 yuz1351 yuz2834 (primCmpNat Zero (Succ yuz135400) == GT)",fontsize=16,color="magenta"];20036 -> 20073[label="",style="dashed", color="magenta", weight=3]; 36.98/17.58 20036 -> 20074[label="",style="dashed", color="magenta", weight=3]; 36.98/17.58 20037[label="FiniteMap.mkBalBranch6MkBalBranch4 yuz2834 yuz2830 yuz2831 yuz1351 yuz2830 yuz2831 yuz1351 yuz2834 (EQ == GT)",fontsize=16,color="black",shape="triangle"];20037 -> 20075[label="",style="solid", color="black", weight=3]; 36.98/17.58 20038 -> 20008[label="",style="dashed", color="red", weight=0]; 36.98/17.58 20038[label="FiniteMap.mkBalBranch6MkBalBranch4 yuz2834 yuz2830 yuz2831 yuz1351 yuz2830 yuz2831 yuz1351 yuz2834 (GT == GT)",fontsize=16,color="magenta"];20039 -> 20037[label="",style="dashed", color="red", weight=0]; 36.98/17.58 20039[label="FiniteMap.mkBalBranch6MkBalBranch4 yuz2834 yuz2830 yuz2831 yuz1351 yuz2830 yuz2831 yuz1351 yuz2834 (EQ == GT)",fontsize=16,color="magenta"];20040[label="FiniteMap.mkBalBranch6MkBalBranch4 yuz2834 yuz2830 yuz2831 yuz1351 yuz2830 yuz2831 yuz1351 yuz2834 False",fontsize=16,color="black",shape="triangle"];20040 -> 20076[label="",style="solid", color="black", weight=3]; 36.98/17.58 20041[label="FiniteMap.mkBalBranch6MkBalBranch4 yuz2834 yuz2830 yuz2831 yuz1351 yuz2830 yuz2831 yuz1351 yuz2834 (primCmpNat (Succ yuz135400) (Succ yuz135500) == GT)",fontsize=16,color="black",shape="box"];20041 -> 20077[label="",style="solid", color="black", weight=3]; 36.98/17.58 20042[label="FiniteMap.mkBalBranch6MkBalBranch4 yuz2834 yuz2830 yuz2831 yuz1351 yuz2830 yuz2831 yuz1351 yuz2834 (primCmpNat Zero (Succ yuz135500) == GT)",fontsize=16,color="black",shape="box"];20042 -> 20078[label="",style="solid", color="black", weight=3]; 36.98/17.58 20043 -> 20013[label="",style="dashed", color="red", weight=0]; 36.98/17.58 20043[label="FiniteMap.mkBalBranch6MkBalBranch4 yuz2834 yuz2830 yuz2831 yuz1351 yuz2830 yuz2831 yuz1351 yuz2834 (LT == GT)",fontsize=16,color="magenta"];20044 -> 20037[label="",style="dashed", color="red", weight=0]; 36.98/17.58 20044[label="FiniteMap.mkBalBranch6MkBalBranch4 yuz2834 yuz2830 yuz2831 yuz1351 yuz2830 yuz2831 yuz1351 yuz2834 (EQ == GT)",fontsize=16,color="magenta"];20045 -> 20007[label="",style="dashed", color="red", weight=0]; 36.98/17.58 20045[label="FiniteMap.mkBalBranch6MkBalBranch4 yuz2834 yuz2830 yuz2831 yuz1351 yuz2830 yuz2831 yuz1351 yuz2834 (primCmpNat (Succ yuz135400) Zero == GT)",fontsize=16,color="magenta"];20045 -> 20079[label="",style="dashed", color="magenta", weight=3]; 36.98/17.58 20045 -> 20080[label="",style="dashed", color="magenta", weight=3]; 36.98/17.58 20046 -> 20037[label="",style="dashed", color="red", weight=0]; 36.98/17.58 20046[label="FiniteMap.mkBalBranch6MkBalBranch4 yuz2834 yuz2830 yuz2831 yuz1351 yuz2830 yuz2831 yuz1351 yuz2834 (EQ == GT)",fontsize=16,color="magenta"];16625[label="FiniteMap.glueBal2GlueBal1 (FiniteMap.Branch yuz2890 yuz2891 yuz2892 yuz2893 yuz2894) (FiniteMap.Branch yuz2830 yuz2831 yuz2832 yuz2833 yuz2834) (FiniteMap.Branch yuz2890 yuz2891 yuz2892 yuz2893 yuz2894) (FiniteMap.Branch yuz2830 yuz2831 yuz2832 yuz2833 yuz2834) (primCmpInt (Pos (Succ yuz128400)) (Pos yuz12830) == GT)",fontsize=16,color="black",shape="box"];16625 -> 16663[label="",style="solid", color="black", weight=3]; 36.98/17.58 16626[label="FiniteMap.glueBal2GlueBal1 (FiniteMap.Branch yuz2890 yuz2891 yuz2892 yuz2893 yuz2894) (FiniteMap.Branch yuz2830 yuz2831 yuz2832 yuz2833 yuz2834) (FiniteMap.Branch yuz2890 yuz2891 yuz2892 yuz2893 yuz2894) (FiniteMap.Branch yuz2830 yuz2831 yuz2832 yuz2833 yuz2834) (primCmpInt (Pos (Succ yuz128400)) (Neg yuz12830) == GT)",fontsize=16,color="black",shape="box"];16626 -> 16664[label="",style="solid", color="black", weight=3]; 36.98/17.58 16627[label="FiniteMap.glueBal2GlueBal1 (FiniteMap.Branch yuz2890 yuz2891 yuz2892 yuz2893 yuz2894) (FiniteMap.Branch yuz2830 yuz2831 yuz2832 yuz2833 yuz2834) (FiniteMap.Branch yuz2890 yuz2891 yuz2892 yuz2893 yuz2894) (FiniteMap.Branch yuz2830 yuz2831 yuz2832 yuz2833 yuz2834) (primCmpInt (Pos Zero) (Pos yuz12830) == GT)",fontsize=16,color="burlywood",shape="box"];20906[label="yuz12830/Succ yuz128300",fontsize=10,color="white",style="solid",shape="box"];16627 -> 20906[label="",style="solid", color="burlywood", weight=9]; 36.98/17.58 20906 -> 16665[label="",style="solid", color="burlywood", weight=3]; 36.98/17.58 20907[label="yuz12830/Zero",fontsize=10,color="white",style="solid",shape="box"];16627 -> 20907[label="",style="solid", color="burlywood", weight=9]; 36.98/17.58 20907 -> 16666[label="",style="solid", color="burlywood", weight=3]; 36.98/17.58 16628[label="FiniteMap.glueBal2GlueBal1 (FiniteMap.Branch yuz2890 yuz2891 yuz2892 yuz2893 yuz2894) (FiniteMap.Branch yuz2830 yuz2831 yuz2832 yuz2833 yuz2834) (FiniteMap.Branch yuz2890 yuz2891 yuz2892 yuz2893 yuz2894) (FiniteMap.Branch yuz2830 yuz2831 yuz2832 yuz2833 yuz2834) (primCmpInt (Pos Zero) (Neg yuz12830) == GT)",fontsize=16,color="burlywood",shape="box"];20908[label="yuz12830/Succ yuz128300",fontsize=10,color="white",style="solid",shape="box"];16628 -> 20908[label="",style="solid", color="burlywood", weight=9]; 36.98/17.58 20908 -> 16667[label="",style="solid", color="burlywood", weight=3]; 36.98/17.58 20909[label="yuz12830/Zero",fontsize=10,color="white",style="solid",shape="box"];16628 -> 20909[label="",style="solid", color="burlywood", weight=9]; 36.98/17.58 20909 -> 16668[label="",style="solid", color="burlywood", weight=3]; 36.98/17.58 16629[label="FiniteMap.glueBal2GlueBal1 (FiniteMap.Branch yuz2890 yuz2891 yuz2892 yuz2893 yuz2894) (FiniteMap.Branch yuz2830 yuz2831 yuz2832 yuz2833 yuz2834) (FiniteMap.Branch yuz2890 yuz2891 yuz2892 yuz2893 yuz2894) (FiniteMap.Branch yuz2830 yuz2831 yuz2832 yuz2833 yuz2834) (primCmpInt (Neg (Succ yuz128400)) (Pos yuz12830) == GT)",fontsize=16,color="black",shape="box"];16629 -> 16669[label="",style="solid", color="black", weight=3]; 36.98/17.58 16630[label="FiniteMap.glueBal2GlueBal1 (FiniteMap.Branch yuz2890 yuz2891 yuz2892 yuz2893 yuz2894) (FiniteMap.Branch yuz2830 yuz2831 yuz2832 yuz2833 yuz2834) (FiniteMap.Branch yuz2890 yuz2891 yuz2892 yuz2893 yuz2894) (FiniteMap.Branch yuz2830 yuz2831 yuz2832 yuz2833 yuz2834) (primCmpInt (Neg (Succ yuz128400)) (Neg yuz12830) == GT)",fontsize=16,color="black",shape="box"];16630 -> 16670[label="",style="solid", color="black", weight=3]; 36.98/17.58 16631[label="FiniteMap.glueBal2GlueBal1 (FiniteMap.Branch yuz2890 yuz2891 yuz2892 yuz2893 yuz2894) (FiniteMap.Branch yuz2830 yuz2831 yuz2832 yuz2833 yuz2834) (FiniteMap.Branch yuz2890 yuz2891 yuz2892 yuz2893 yuz2894) (FiniteMap.Branch yuz2830 yuz2831 yuz2832 yuz2833 yuz2834) (primCmpInt (Neg Zero) (Pos yuz12830) == GT)",fontsize=16,color="burlywood",shape="box"];20910[label="yuz12830/Succ yuz128300",fontsize=10,color="white",style="solid",shape="box"];16631 -> 20910[label="",style="solid", color="burlywood", weight=9]; 36.98/17.58 20910 -> 16671[label="",style="solid", color="burlywood", weight=3]; 36.98/17.58 20911[label="yuz12830/Zero",fontsize=10,color="white",style="solid",shape="box"];16631 -> 20911[label="",style="solid", color="burlywood", weight=9]; 36.98/17.58 20911 -> 16672[label="",style="solid", color="burlywood", weight=3]; 36.98/17.58 16632[label="FiniteMap.glueBal2GlueBal1 (FiniteMap.Branch yuz2890 yuz2891 yuz2892 yuz2893 yuz2894) (FiniteMap.Branch yuz2830 yuz2831 yuz2832 yuz2833 yuz2834) (FiniteMap.Branch yuz2890 yuz2891 yuz2892 yuz2893 yuz2894) (FiniteMap.Branch yuz2830 yuz2831 yuz2832 yuz2833 yuz2834) (primCmpInt (Neg Zero) (Neg yuz12830) == GT)",fontsize=16,color="burlywood",shape="box"];20912[label="yuz12830/Succ yuz128300",fontsize=10,color="white",style="solid",shape="box"];16632 -> 20912[label="",style="solid", color="burlywood", weight=9]; 36.98/17.58 20912 -> 16673[label="",style="solid", color="burlywood", weight=3]; 36.98/17.58 20913[label="yuz12830/Zero",fontsize=10,color="white",style="solid",shape="box"];16632 -> 20913[label="",style="solid", color="burlywood", weight=9]; 36.98/17.58 20913 -> 16674[label="",style="solid", color="burlywood", weight=3]; 36.98/17.58 20345[label="primCmpNat (Succ yuz1371000) (Succ yuz1366000) == GT",fontsize=16,color="black",shape="box"];20345 -> 20452[label="",style="solid", color="black", weight=3]; 36.98/17.58 20346[label="primCmpNat (Succ yuz1371000) Zero == GT",fontsize=16,color="black",shape="box"];20346 -> 20453[label="",style="solid", color="black", weight=3]; 36.98/17.58 20347[label="primCmpNat Zero (Succ yuz1366000) == GT",fontsize=16,color="black",shape="box"];20347 -> 20454[label="",style="solid", color="black", weight=3]; 36.98/17.58 20348[label="primCmpNat Zero Zero == GT",fontsize=16,color="black",shape="box"];20348 -> 20455[label="",style="solid", color="black", weight=3]; 36.98/17.58 875[label="primPlusNat (primPlusNat (primPlusNat (primPlusNat Zero (Succ yuz9200)) (Succ yuz9200)) (Succ yuz9200)) (Succ yuz9200)",fontsize=16,color="black",shape="box"];875 -> 930[label="",style="solid", color="black", weight=3]; 36.98/17.58 16720[label="yuz1282",fontsize=16,color="green",shape="box"];11142 -> 10954[label="",style="dashed", color="red", weight=0]; 36.98/17.58 11142[label="primMinusNat yuz950200 yuz19200",fontsize=16,color="magenta"];11142 -> 11161[label="",style="dashed", color="magenta", weight=3]; 36.98/17.58 11142 -> 11162[label="",style="dashed", color="magenta", weight=3]; 36.98/17.58 11143[label="Pos (Succ yuz950200)",fontsize=16,color="green",shape="box"];11144[label="Neg (Succ yuz19200)",fontsize=16,color="green",shape="box"];11145[label="Pos Zero",fontsize=16,color="green",shape="box"];20070[label="FiniteMap.mkBalBranch6MkBalBranch4 yuz2834 yuz2830 yuz2831 yuz1351 yuz2830 yuz2831 yuz1351 yuz2834 (primCmpNat yuz135500 yuz135400 == GT)",fontsize=16,color="burlywood",shape="triangle"];20914[label="yuz135500/Succ yuz1355000",fontsize=10,color="white",style="solid",shape="box"];20070 -> 20914[label="",style="solid", color="burlywood", weight=9]; 36.98/17.58 20914 -> 20102[label="",style="solid", color="burlywood", weight=3]; 36.98/17.58 20915[label="yuz135500/Zero",fontsize=10,color="white",style="solid",shape="box"];20070 -> 20915[label="",style="solid", color="burlywood", weight=9]; 36.98/17.58 20915 -> 20103[label="",style="solid", color="burlywood", weight=3]; 36.98/17.58 20071 -> 20008[label="",style="dashed", color="red", weight=0]; 36.98/17.58 20071[label="FiniteMap.mkBalBranch6MkBalBranch4 yuz2834 yuz2830 yuz2831 yuz1351 yuz2830 yuz2831 yuz1351 yuz2834 (GT == GT)",fontsize=16,color="magenta"];20072[label="FiniteMap.mkBalBranch6MkBalBranch0 yuz2834 yuz2830 yuz2831 yuz1351 yuz1351 yuz2834 yuz2834",fontsize=16,color="burlywood",shape="box"];20916[label="yuz2834/FiniteMap.EmptyFM",fontsize=10,color="white",style="solid",shape="box"];20072 -> 20916[label="",style="solid", color="burlywood", weight=9]; 36.98/17.58 20916 -> 20104[label="",style="solid", color="burlywood", weight=3]; 36.98/17.58 20917[label="yuz2834/FiniteMap.Branch yuz28340 yuz28341 yuz28342 yuz28343 yuz28344",fontsize=10,color="white",style="solid",shape="box"];20072 -> 20917[label="",style="solid", color="burlywood", weight=9]; 36.98/17.58 20917 -> 20105[label="",style="solid", color="burlywood", weight=3]; 36.98/17.58 20073[label="Zero",fontsize=16,color="green",shape="box"];20074[label="yuz135400",fontsize=16,color="green",shape="box"];20075 -> 20040[label="",style="dashed", color="red", weight=0]; 36.98/17.58 20075[label="FiniteMap.mkBalBranch6MkBalBranch4 yuz2834 yuz2830 yuz2831 yuz1351 yuz2830 yuz2831 yuz1351 yuz2834 False",fontsize=16,color="magenta"];20076 -> 20106[label="",style="dashed", color="red", weight=0]; 36.98/17.58 20076[label="FiniteMap.mkBalBranch6MkBalBranch3 yuz2834 yuz2830 yuz2831 yuz1351 yuz2830 yuz2831 yuz1351 yuz2834 (FiniteMap.mkBalBranch6Size_l yuz2834 yuz2830 yuz2831 yuz1351 > FiniteMap.sIZE_RATIO * FiniteMap.mkBalBranch6Size_r yuz2834 yuz2830 yuz2831 yuz1351)",fontsize=16,color="magenta"];20076 -> 20107[label="",style="dashed", color="magenta", weight=3]; 36.98/17.58 20077 -> 20070[label="",style="dashed", color="red", weight=0]; 36.98/17.58 20077[label="FiniteMap.mkBalBranch6MkBalBranch4 yuz2834 yuz2830 yuz2831 yuz1351 yuz2830 yuz2831 yuz1351 yuz2834 (primCmpNat yuz135400 yuz135500 == GT)",fontsize=16,color="magenta"];20077 -> 20122[label="",style="dashed", color="magenta", weight=3]; 36.98/17.58 20077 -> 20123[label="",style="dashed", color="magenta", weight=3]; 36.98/17.58 20078 -> 20013[label="",style="dashed", color="red", weight=0]; 36.98/17.58 20078[label="FiniteMap.mkBalBranch6MkBalBranch4 yuz2834 yuz2830 yuz2831 yuz1351 yuz2830 yuz2831 yuz1351 yuz2834 (LT == GT)",fontsize=16,color="magenta"];20079[label="Zero",fontsize=16,color="green",shape="box"];20080[label="yuz135400",fontsize=16,color="green",shape="box"];16663[label="FiniteMap.glueBal2GlueBal1 (FiniteMap.Branch yuz2890 yuz2891 yuz2892 yuz2893 yuz2894) (FiniteMap.Branch yuz2830 yuz2831 yuz2832 yuz2833 yuz2834) (FiniteMap.Branch yuz2890 yuz2891 yuz2892 yuz2893 yuz2894) (FiniteMap.Branch yuz2830 yuz2831 yuz2832 yuz2833 yuz2834) (primCmpNat (Succ yuz128400) yuz12830 == GT)",fontsize=16,color="burlywood",shape="triangle"];20918[label="yuz12830/Succ yuz128300",fontsize=10,color="white",style="solid",shape="box"];16663 -> 20918[label="",style="solid", color="burlywood", weight=9]; 36.98/17.58 20918 -> 16721[label="",style="solid", color="burlywood", weight=3]; 36.98/17.58 20919[label="yuz12830/Zero",fontsize=10,color="white",style="solid",shape="box"];16663 -> 20919[label="",style="solid", color="burlywood", weight=9]; 36.98/17.58 20919 -> 16722[label="",style="solid", color="burlywood", weight=3]; 36.98/17.58 16664[label="FiniteMap.glueBal2GlueBal1 (FiniteMap.Branch yuz2890 yuz2891 yuz2892 yuz2893 yuz2894) (FiniteMap.Branch yuz2830 yuz2831 yuz2832 yuz2833 yuz2834) (FiniteMap.Branch yuz2890 yuz2891 yuz2892 yuz2893 yuz2894) (FiniteMap.Branch yuz2830 yuz2831 yuz2832 yuz2833 yuz2834) (GT == GT)",fontsize=16,color="black",shape="triangle"];16664 -> 16723[label="",style="solid", color="black", weight=3]; 36.98/17.58 16665[label="FiniteMap.glueBal2GlueBal1 (FiniteMap.Branch yuz2890 yuz2891 yuz2892 yuz2893 yuz2894) (FiniteMap.Branch yuz2830 yuz2831 yuz2832 yuz2833 yuz2834) (FiniteMap.Branch yuz2890 yuz2891 yuz2892 yuz2893 yuz2894) (FiniteMap.Branch yuz2830 yuz2831 yuz2832 yuz2833 yuz2834) (primCmpInt (Pos Zero) (Pos (Succ yuz128300)) == GT)",fontsize=16,color="black",shape="box"];16665 -> 16724[label="",style="solid", color="black", weight=3]; 36.98/17.58 16666[label="FiniteMap.glueBal2GlueBal1 (FiniteMap.Branch yuz2890 yuz2891 yuz2892 yuz2893 yuz2894) (FiniteMap.Branch yuz2830 yuz2831 yuz2832 yuz2833 yuz2834) (FiniteMap.Branch yuz2890 yuz2891 yuz2892 yuz2893 yuz2894) (FiniteMap.Branch yuz2830 yuz2831 yuz2832 yuz2833 yuz2834) (primCmpInt (Pos Zero) (Pos Zero) == GT)",fontsize=16,color="black",shape="box"];16666 -> 16725[label="",style="solid", color="black", weight=3]; 36.98/17.58 16667[label="FiniteMap.glueBal2GlueBal1 (FiniteMap.Branch yuz2890 yuz2891 yuz2892 yuz2893 yuz2894) (FiniteMap.Branch yuz2830 yuz2831 yuz2832 yuz2833 yuz2834) (FiniteMap.Branch yuz2890 yuz2891 yuz2892 yuz2893 yuz2894) (FiniteMap.Branch yuz2830 yuz2831 yuz2832 yuz2833 yuz2834) (primCmpInt (Pos Zero) (Neg (Succ yuz128300)) == GT)",fontsize=16,color="black",shape="box"];16667 -> 16726[label="",style="solid", color="black", weight=3]; 36.98/17.58 16668[label="FiniteMap.glueBal2GlueBal1 (FiniteMap.Branch yuz2890 yuz2891 yuz2892 yuz2893 yuz2894) (FiniteMap.Branch yuz2830 yuz2831 yuz2832 yuz2833 yuz2834) (FiniteMap.Branch yuz2890 yuz2891 yuz2892 yuz2893 yuz2894) (FiniteMap.Branch yuz2830 yuz2831 yuz2832 yuz2833 yuz2834) (primCmpInt (Pos Zero) (Neg Zero) == GT)",fontsize=16,color="black",shape="box"];16668 -> 16727[label="",style="solid", color="black", weight=3]; 36.98/17.58 16669[label="FiniteMap.glueBal2GlueBal1 (FiniteMap.Branch yuz2890 yuz2891 yuz2892 yuz2893 yuz2894) (FiniteMap.Branch yuz2830 yuz2831 yuz2832 yuz2833 yuz2834) (FiniteMap.Branch yuz2890 yuz2891 yuz2892 yuz2893 yuz2894) (FiniteMap.Branch yuz2830 yuz2831 yuz2832 yuz2833 yuz2834) (LT == GT)",fontsize=16,color="black",shape="triangle"];16669 -> 16728[label="",style="solid", color="black", weight=3]; 36.98/17.58 16670[label="FiniteMap.glueBal2GlueBal1 (FiniteMap.Branch yuz2890 yuz2891 yuz2892 yuz2893 yuz2894) (FiniteMap.Branch yuz2830 yuz2831 yuz2832 yuz2833 yuz2834) (FiniteMap.Branch yuz2890 yuz2891 yuz2892 yuz2893 yuz2894) (FiniteMap.Branch yuz2830 yuz2831 yuz2832 yuz2833 yuz2834) (primCmpNat yuz12830 (Succ yuz128400) == GT)",fontsize=16,color="burlywood",shape="triangle"];20920[label="yuz12830/Succ yuz128300",fontsize=10,color="white",style="solid",shape="box"];16670 -> 20920[label="",style="solid", color="burlywood", weight=9]; 36.98/17.58 20920 -> 16729[label="",style="solid", color="burlywood", weight=3]; 36.98/17.58 20921[label="yuz12830/Zero",fontsize=10,color="white",style="solid",shape="box"];16670 -> 20921[label="",style="solid", color="burlywood", weight=9]; 36.98/17.58 20921 -> 16730[label="",style="solid", color="burlywood", weight=3]; 36.98/17.58 16671[label="FiniteMap.glueBal2GlueBal1 (FiniteMap.Branch yuz2890 yuz2891 yuz2892 yuz2893 yuz2894) (FiniteMap.Branch yuz2830 yuz2831 yuz2832 yuz2833 yuz2834) (FiniteMap.Branch yuz2890 yuz2891 yuz2892 yuz2893 yuz2894) (FiniteMap.Branch yuz2830 yuz2831 yuz2832 yuz2833 yuz2834) (primCmpInt (Neg Zero) (Pos (Succ yuz128300)) == GT)",fontsize=16,color="black",shape="box"];16671 -> 16731[label="",style="solid", color="black", weight=3]; 36.98/17.58 16672[label="FiniteMap.glueBal2GlueBal1 (FiniteMap.Branch yuz2890 yuz2891 yuz2892 yuz2893 yuz2894) (FiniteMap.Branch yuz2830 yuz2831 yuz2832 yuz2833 yuz2834) (FiniteMap.Branch yuz2890 yuz2891 yuz2892 yuz2893 yuz2894) (FiniteMap.Branch yuz2830 yuz2831 yuz2832 yuz2833 yuz2834) (primCmpInt (Neg Zero) (Pos Zero) == GT)",fontsize=16,color="black",shape="box"];16672 -> 16732[label="",style="solid", color="black", weight=3]; 36.98/17.58 16673[label="FiniteMap.glueBal2GlueBal1 (FiniteMap.Branch yuz2890 yuz2891 yuz2892 yuz2893 yuz2894) (FiniteMap.Branch yuz2830 yuz2831 yuz2832 yuz2833 yuz2834) (FiniteMap.Branch yuz2890 yuz2891 yuz2892 yuz2893 yuz2894) (FiniteMap.Branch yuz2830 yuz2831 yuz2832 yuz2833 yuz2834) (primCmpInt (Neg Zero) (Neg (Succ yuz128300)) == GT)",fontsize=16,color="black",shape="box"];16673 -> 16733[label="",style="solid", color="black", weight=3]; 36.98/17.58 16674[label="FiniteMap.glueBal2GlueBal1 (FiniteMap.Branch yuz2890 yuz2891 yuz2892 yuz2893 yuz2894) (FiniteMap.Branch yuz2830 yuz2831 yuz2832 yuz2833 yuz2834) (FiniteMap.Branch yuz2890 yuz2891 yuz2892 yuz2893 yuz2894) (FiniteMap.Branch yuz2830 yuz2831 yuz2832 yuz2833 yuz2834) (primCmpInt (Neg Zero) (Neg Zero) == GT)",fontsize=16,color="black",shape="box"];16674 -> 16734[label="",style="solid", color="black", weight=3]; 36.98/17.58 20452 -> 20226[label="",style="dashed", color="red", weight=0]; 36.98/17.58 20452[label="primCmpNat yuz1371000 yuz1366000 == GT",fontsize=16,color="magenta"];20452 -> 20462[label="",style="dashed", color="magenta", weight=3]; 36.98/17.58 20452 -> 20463[label="",style="dashed", color="magenta", weight=3]; 36.98/17.58 20453 -> 20091[label="",style="dashed", color="red", weight=0]; 36.98/17.58 20453[label="GT == GT",fontsize=16,color="magenta"];20454 -> 20096[label="",style="dashed", color="red", weight=0]; 36.98/17.58 20454[label="LT == GT",fontsize=16,color="magenta"];20455 -> 20112[label="",style="dashed", color="red", weight=0]; 36.98/17.58 20455[label="EQ == GT",fontsize=16,color="magenta"];930[label="primPlusNat (primPlusNat (primPlusNat (Succ yuz9200) (Succ yuz9200)) (Succ yuz9200)) (Succ yuz9200)",fontsize=16,color="black",shape="box"];930 -> 978[label="",style="solid", color="black", weight=3]; 36.98/17.58 11161[label="yuz19200",fontsize=16,color="green",shape="box"];11162[label="yuz950200",fontsize=16,color="green",shape="box"];20102[label="FiniteMap.mkBalBranch6MkBalBranch4 yuz2834 yuz2830 yuz2831 yuz1351 yuz2830 yuz2831 yuz1351 yuz2834 (primCmpNat (Succ yuz1355000) yuz135400 == GT)",fontsize=16,color="burlywood",shape="box"];20922[label="yuz135400/Succ yuz1354000",fontsize=10,color="white",style="solid",shape="box"];20102 -> 20922[label="",style="solid", color="burlywood", weight=9]; 36.98/17.58 20922 -> 20124[label="",style="solid", color="burlywood", weight=3]; 36.98/17.58 20923[label="yuz135400/Zero",fontsize=10,color="white",style="solid",shape="box"];20102 -> 20923[label="",style="solid", color="burlywood", weight=9]; 36.98/17.58 20923 -> 20125[label="",style="solid", color="burlywood", weight=3]; 36.98/17.58 20103[label="FiniteMap.mkBalBranch6MkBalBranch4 yuz2834 yuz2830 yuz2831 yuz1351 yuz2830 yuz2831 yuz1351 yuz2834 (primCmpNat Zero yuz135400 == GT)",fontsize=16,color="burlywood",shape="box"];20924[label="yuz135400/Succ yuz1354000",fontsize=10,color="white",style="solid",shape="box"];20103 -> 20924[label="",style="solid", color="burlywood", weight=9]; 36.98/17.58 20924 -> 20126[label="",style="solid", color="burlywood", weight=3]; 36.98/17.58 20925[label="yuz135400/Zero",fontsize=10,color="white",style="solid",shape="box"];20103 -> 20925[label="",style="solid", color="burlywood", weight=9]; 36.98/17.58 20925 -> 20127[label="",style="solid", color="burlywood", weight=3]; 36.98/17.58 20104[label="FiniteMap.mkBalBranch6MkBalBranch0 FiniteMap.EmptyFM yuz2830 yuz2831 yuz1351 yuz1351 FiniteMap.EmptyFM FiniteMap.EmptyFM",fontsize=16,color="black",shape="box"];20104 -> 20128[label="",style="solid", color="black", weight=3]; 36.98/17.58 20105[label="FiniteMap.mkBalBranch6MkBalBranch0 (FiniteMap.Branch yuz28340 yuz28341 yuz28342 yuz28343 yuz28344) yuz2830 yuz2831 yuz1351 yuz1351 (FiniteMap.Branch yuz28340 yuz28341 yuz28342 yuz28343 yuz28344) (FiniteMap.Branch yuz28340 yuz28341 yuz28342 yuz28343 yuz28344)",fontsize=16,color="black",shape="box"];20105 -> 20129[label="",style="solid", color="black", weight=3]; 36.98/17.58 20107 -> 19882[label="",style="dashed", color="red", weight=0]; 36.98/17.58 20107[label="FiniteMap.mkBalBranch6Size_l yuz2834 yuz2830 yuz2831 yuz1351 > FiniteMap.sIZE_RATIO * FiniteMap.mkBalBranch6Size_r yuz2834 yuz2830 yuz2831 yuz1351",fontsize=16,color="magenta"];20107 -> 20130[label="",style="dashed", color="magenta", weight=3]; 36.98/17.58 20107 -> 20131[label="",style="dashed", color="magenta", weight=3]; 36.98/17.58 20106[label="FiniteMap.mkBalBranch6MkBalBranch3 yuz2834 yuz2830 yuz2831 yuz1351 yuz2830 yuz2831 yuz1351 yuz2834 yuz1391",fontsize=16,color="burlywood",shape="triangle"];20926[label="yuz1391/False",fontsize=10,color="white",style="solid",shape="box"];20106 -> 20926[label="",style="solid", color="burlywood", weight=9]; 36.98/17.58 20926 -> 20132[label="",style="solid", color="burlywood", weight=3]; 36.98/17.58 20927[label="yuz1391/True",fontsize=10,color="white",style="solid",shape="box"];20106 -> 20927[label="",style="solid", color="burlywood", weight=9]; 36.98/17.58 20927 -> 20133[label="",style="solid", color="burlywood", weight=3]; 36.98/17.58 20122[label="yuz135500",fontsize=16,color="green",shape="box"];20123[label="yuz135400",fontsize=16,color="green",shape="box"];16721[label="FiniteMap.glueBal2GlueBal1 (FiniteMap.Branch yuz2890 yuz2891 yuz2892 yuz2893 yuz2894) (FiniteMap.Branch yuz2830 yuz2831 yuz2832 yuz2833 yuz2834) (FiniteMap.Branch yuz2890 yuz2891 yuz2892 yuz2893 yuz2894) (FiniteMap.Branch yuz2830 yuz2831 yuz2832 yuz2833 yuz2834) (primCmpNat (Succ yuz128400) (Succ yuz128300) == GT)",fontsize=16,color="black",shape="box"];16721 -> 16810[label="",style="solid", color="black", weight=3]; 36.98/17.58 16722[label="FiniteMap.glueBal2GlueBal1 (FiniteMap.Branch yuz2890 yuz2891 yuz2892 yuz2893 yuz2894) (FiniteMap.Branch yuz2830 yuz2831 yuz2832 yuz2833 yuz2834) (FiniteMap.Branch yuz2890 yuz2891 yuz2892 yuz2893 yuz2894) (FiniteMap.Branch yuz2830 yuz2831 yuz2832 yuz2833 yuz2834) (primCmpNat (Succ yuz128400) Zero == GT)",fontsize=16,color="black",shape="box"];16722 -> 16811[label="",style="solid", color="black", weight=3]; 36.98/17.58 16723[label="FiniteMap.glueBal2GlueBal1 (FiniteMap.Branch yuz2890 yuz2891 yuz2892 yuz2893 yuz2894) (FiniteMap.Branch yuz2830 yuz2831 yuz2832 yuz2833 yuz2834) (FiniteMap.Branch yuz2890 yuz2891 yuz2892 yuz2893 yuz2894) (FiniteMap.Branch yuz2830 yuz2831 yuz2832 yuz2833 yuz2834) True",fontsize=16,color="black",shape="box"];16723 -> 16812[label="",style="solid", color="black", weight=3]; 36.98/17.58 16724 -> 16670[label="",style="dashed", color="red", weight=0]; 36.98/17.58 16724[label="FiniteMap.glueBal2GlueBal1 (FiniteMap.Branch yuz2890 yuz2891 yuz2892 yuz2893 yuz2894) (FiniteMap.Branch yuz2830 yuz2831 yuz2832 yuz2833 yuz2834) (FiniteMap.Branch yuz2890 yuz2891 yuz2892 yuz2893 yuz2894) (FiniteMap.Branch yuz2830 yuz2831 yuz2832 yuz2833 yuz2834) (primCmpNat Zero (Succ yuz128300) == GT)",fontsize=16,color="magenta"];16724 -> 16813[label="",style="dashed", color="magenta", weight=3]; 36.98/17.58 16724 -> 16814[label="",style="dashed", color="magenta", weight=3]; 36.98/17.58 16725[label="FiniteMap.glueBal2GlueBal1 (FiniteMap.Branch yuz2890 yuz2891 yuz2892 yuz2893 yuz2894) (FiniteMap.Branch yuz2830 yuz2831 yuz2832 yuz2833 yuz2834) (FiniteMap.Branch yuz2890 yuz2891 yuz2892 yuz2893 yuz2894) (FiniteMap.Branch yuz2830 yuz2831 yuz2832 yuz2833 yuz2834) (EQ == GT)",fontsize=16,color="black",shape="triangle"];16725 -> 16815[label="",style="solid", color="black", weight=3]; 36.98/17.58 16726 -> 16664[label="",style="dashed", color="red", weight=0]; 36.98/17.58 16726[label="FiniteMap.glueBal2GlueBal1 (FiniteMap.Branch yuz2890 yuz2891 yuz2892 yuz2893 yuz2894) (FiniteMap.Branch yuz2830 yuz2831 yuz2832 yuz2833 yuz2834) (FiniteMap.Branch yuz2890 yuz2891 yuz2892 yuz2893 yuz2894) (FiniteMap.Branch yuz2830 yuz2831 yuz2832 yuz2833 yuz2834) (GT == GT)",fontsize=16,color="magenta"];16727 -> 16725[label="",style="dashed", color="red", weight=0]; 36.98/17.58 16727[label="FiniteMap.glueBal2GlueBal1 (FiniteMap.Branch yuz2890 yuz2891 yuz2892 yuz2893 yuz2894) (FiniteMap.Branch yuz2830 yuz2831 yuz2832 yuz2833 yuz2834) (FiniteMap.Branch yuz2890 yuz2891 yuz2892 yuz2893 yuz2894) (FiniteMap.Branch yuz2830 yuz2831 yuz2832 yuz2833 yuz2834) (EQ == GT)",fontsize=16,color="magenta"];16728[label="FiniteMap.glueBal2GlueBal1 (FiniteMap.Branch yuz2890 yuz2891 yuz2892 yuz2893 yuz2894) (FiniteMap.Branch yuz2830 yuz2831 yuz2832 yuz2833 yuz2834) (FiniteMap.Branch yuz2890 yuz2891 yuz2892 yuz2893 yuz2894) (FiniteMap.Branch yuz2830 yuz2831 yuz2832 yuz2833 yuz2834) False",fontsize=16,color="black",shape="triangle"];16728 -> 16816[label="",style="solid", color="black", weight=3]; 36.98/17.58 16729[label="FiniteMap.glueBal2GlueBal1 (FiniteMap.Branch yuz2890 yuz2891 yuz2892 yuz2893 yuz2894) (FiniteMap.Branch yuz2830 yuz2831 yuz2832 yuz2833 yuz2834) (FiniteMap.Branch yuz2890 yuz2891 yuz2892 yuz2893 yuz2894) (FiniteMap.Branch yuz2830 yuz2831 yuz2832 yuz2833 yuz2834) (primCmpNat (Succ yuz128300) (Succ yuz128400) == GT)",fontsize=16,color="black",shape="box"];16729 -> 16817[label="",style="solid", color="black", weight=3]; 36.98/17.58 16730[label="FiniteMap.glueBal2GlueBal1 (FiniteMap.Branch yuz2890 yuz2891 yuz2892 yuz2893 yuz2894) (FiniteMap.Branch yuz2830 yuz2831 yuz2832 yuz2833 yuz2834) (FiniteMap.Branch yuz2890 yuz2891 yuz2892 yuz2893 yuz2894) (FiniteMap.Branch yuz2830 yuz2831 yuz2832 yuz2833 yuz2834) (primCmpNat Zero (Succ yuz128400) == GT)",fontsize=16,color="black",shape="box"];16730 -> 16818[label="",style="solid", color="black", weight=3]; 36.98/17.58 16731 -> 16669[label="",style="dashed", color="red", weight=0]; 36.98/17.58 16731[label="FiniteMap.glueBal2GlueBal1 (FiniteMap.Branch yuz2890 yuz2891 yuz2892 yuz2893 yuz2894) (FiniteMap.Branch yuz2830 yuz2831 yuz2832 yuz2833 yuz2834) (FiniteMap.Branch yuz2890 yuz2891 yuz2892 yuz2893 yuz2894) (FiniteMap.Branch yuz2830 yuz2831 yuz2832 yuz2833 yuz2834) (LT == GT)",fontsize=16,color="magenta"];16732 -> 16725[label="",style="dashed", color="red", weight=0]; 36.98/17.58 16732[label="FiniteMap.glueBal2GlueBal1 (FiniteMap.Branch yuz2890 yuz2891 yuz2892 yuz2893 yuz2894) (FiniteMap.Branch yuz2830 yuz2831 yuz2832 yuz2833 yuz2834) (FiniteMap.Branch yuz2890 yuz2891 yuz2892 yuz2893 yuz2894) (FiniteMap.Branch yuz2830 yuz2831 yuz2832 yuz2833 yuz2834) (EQ == GT)",fontsize=16,color="magenta"];16733 -> 16663[label="",style="dashed", color="red", weight=0]; 36.98/17.58 16733[label="FiniteMap.glueBal2GlueBal1 (FiniteMap.Branch yuz2890 yuz2891 yuz2892 yuz2893 yuz2894) (FiniteMap.Branch yuz2830 yuz2831 yuz2832 yuz2833 yuz2834) (FiniteMap.Branch yuz2890 yuz2891 yuz2892 yuz2893 yuz2894) (FiniteMap.Branch yuz2830 yuz2831 yuz2832 yuz2833 yuz2834) (primCmpNat (Succ yuz128300) Zero == GT)",fontsize=16,color="magenta"];16733 -> 16819[label="",style="dashed", color="magenta", weight=3]; 36.98/17.58 16733 -> 16820[label="",style="dashed", color="magenta", weight=3]; 36.98/17.58 16734 -> 16725[label="",style="dashed", color="red", weight=0]; 36.98/17.58 16734[label="FiniteMap.glueBal2GlueBal1 (FiniteMap.Branch yuz2890 yuz2891 yuz2892 yuz2893 yuz2894) (FiniteMap.Branch yuz2830 yuz2831 yuz2832 yuz2833 yuz2834) (FiniteMap.Branch yuz2890 yuz2891 yuz2892 yuz2893 yuz2894) (FiniteMap.Branch yuz2830 yuz2831 yuz2832 yuz2833 yuz2834) (EQ == GT)",fontsize=16,color="magenta"];20462[label="yuz1371000",fontsize=16,color="green",shape="box"];20463[label="yuz1366000",fontsize=16,color="green",shape="box"];978[label="primPlusNat (primPlusNat (Succ (Succ (primPlusNat yuz9200 yuz9200))) (Succ yuz9200)) (Succ yuz9200)",fontsize=16,color="black",shape="box"];978 -> 1014[label="",style="solid", color="black", weight=3]; 36.98/17.58 20124[label="FiniteMap.mkBalBranch6MkBalBranch4 yuz2834 yuz2830 yuz2831 yuz1351 yuz2830 yuz2831 yuz1351 yuz2834 (primCmpNat (Succ yuz1355000) (Succ yuz1354000) == GT)",fontsize=16,color="black",shape="box"];20124 -> 20235[label="",style="solid", color="black", weight=3]; 36.98/17.58 20125[label="FiniteMap.mkBalBranch6MkBalBranch4 yuz2834 yuz2830 yuz2831 yuz1351 yuz2830 yuz2831 yuz1351 yuz2834 (primCmpNat (Succ yuz1355000) Zero == GT)",fontsize=16,color="black",shape="box"];20125 -> 20236[label="",style="solid", color="black", weight=3]; 36.98/17.58 20126[label="FiniteMap.mkBalBranch6MkBalBranch4 yuz2834 yuz2830 yuz2831 yuz1351 yuz2830 yuz2831 yuz1351 yuz2834 (primCmpNat Zero (Succ yuz1354000) == GT)",fontsize=16,color="black",shape="box"];20126 -> 20237[label="",style="solid", color="black", weight=3]; 36.98/17.58 20127[label="FiniteMap.mkBalBranch6MkBalBranch4 yuz2834 yuz2830 yuz2831 yuz1351 yuz2830 yuz2831 yuz1351 yuz2834 (primCmpNat Zero Zero == GT)",fontsize=16,color="black",shape="box"];20127 -> 20238[label="",style="solid", color="black", weight=3]; 36.98/17.58 20128[label="error []",fontsize=16,color="red",shape="box"];20129[label="FiniteMap.mkBalBranch6MkBalBranch02 (FiniteMap.Branch yuz28340 yuz28341 yuz28342 yuz28343 yuz28344) yuz2830 yuz2831 yuz1351 yuz1351 (FiniteMap.Branch yuz28340 yuz28341 yuz28342 yuz28343 yuz28344) (FiniteMap.Branch yuz28340 yuz28341 yuz28342 yuz28343 yuz28344)",fontsize=16,color="black",shape="box"];20129 -> 20239[label="",style="solid", color="black", weight=3]; 36.98/17.58 20130 -> 16633[label="",style="dashed", color="red", weight=0]; 36.98/17.58 20130[label="FiniteMap.sIZE_RATIO * FiniteMap.mkBalBranch6Size_r yuz2834 yuz2830 yuz2831 yuz1351",fontsize=16,color="magenta"];20130 -> 20240[label="",style="dashed", color="magenta", weight=3]; 36.98/17.58 20131 -> 19340[label="",style="dashed", color="red", weight=0]; 36.98/17.58 20131[label="FiniteMap.mkBalBranch6Size_l yuz2834 yuz2830 yuz2831 yuz1351",fontsize=16,color="magenta"];20132[label="FiniteMap.mkBalBranch6MkBalBranch3 yuz2834 yuz2830 yuz2831 yuz1351 yuz2830 yuz2831 yuz1351 yuz2834 False",fontsize=16,color="black",shape="box"];20132 -> 20241[label="",style="solid", color="black", weight=3]; 36.98/17.58 20133[label="FiniteMap.mkBalBranch6MkBalBranch3 yuz2834 yuz2830 yuz2831 yuz1351 yuz2830 yuz2831 yuz1351 yuz2834 True",fontsize=16,color="black",shape="box"];20133 -> 20242[label="",style="solid", color="black", weight=3]; 36.98/17.58 16810[label="FiniteMap.glueBal2GlueBal1 (FiniteMap.Branch yuz2890 yuz2891 yuz2892 yuz2893 yuz2894) (FiniteMap.Branch yuz2830 yuz2831 yuz2832 yuz2833 yuz2834) (FiniteMap.Branch yuz2890 yuz2891 yuz2892 yuz2893 yuz2894) (FiniteMap.Branch yuz2830 yuz2831 yuz2832 yuz2833 yuz2834) (primCmpNat yuz128400 yuz128300 == GT)",fontsize=16,color="burlywood",shape="triangle"];20928[label="yuz128400/Succ yuz1284000",fontsize=10,color="white",style="solid",shape="box"];16810 -> 20928[label="",style="solid", color="burlywood", weight=9]; 36.98/17.58 20928 -> 16930[label="",style="solid", color="burlywood", weight=3]; 36.98/17.58 20929[label="yuz128400/Zero",fontsize=10,color="white",style="solid",shape="box"];16810 -> 20929[label="",style="solid", color="burlywood", weight=9]; 36.98/17.58 20929 -> 16931[label="",style="solid", color="burlywood", weight=3]; 36.98/17.58 16811 -> 16664[label="",style="dashed", color="red", weight=0]; 36.98/17.58 16811[label="FiniteMap.glueBal2GlueBal1 (FiniteMap.Branch yuz2890 yuz2891 yuz2892 yuz2893 yuz2894) (FiniteMap.Branch yuz2830 yuz2831 yuz2832 yuz2833 yuz2834) (FiniteMap.Branch yuz2890 yuz2891 yuz2892 yuz2893 yuz2894) (FiniteMap.Branch yuz2830 yuz2831 yuz2832 yuz2833 yuz2834) (GT == GT)",fontsize=16,color="magenta"];16812 -> 19148[label="",style="dashed", color="red", weight=0]; 36.98/17.58 16812[label="FiniteMap.mkBalBranch (FiniteMap.glueBal2Mid_key2 (FiniteMap.Branch yuz2890 yuz2891 yuz2892 yuz2893 yuz2894) (FiniteMap.Branch yuz2830 yuz2831 yuz2832 yuz2833 yuz2834)) (FiniteMap.glueBal2Mid_elt2 (FiniteMap.Branch yuz2890 yuz2891 yuz2892 yuz2893 yuz2894) (FiniteMap.Branch yuz2830 yuz2831 yuz2832 yuz2833 yuz2834)) (FiniteMap.Branch yuz2890 yuz2891 yuz2892 yuz2893 yuz2894) (FiniteMap.deleteMin (FiniteMap.Branch yuz2830 yuz2831 yuz2832 yuz2833 yuz2834))",fontsize=16,color="magenta"];16812 -> 19206[label="",style="dashed", color="magenta", weight=3]; 36.98/17.58 16812 -> 19207[label="",style="dashed", color="magenta", weight=3]; 36.98/17.58 16812 -> 19208[label="",style="dashed", color="magenta", weight=3]; 36.98/17.58 16812 -> 19209[label="",style="dashed", color="magenta", weight=3]; 36.98/17.58 16813[label="yuz128300",fontsize=16,color="green",shape="box"];16814[label="Zero",fontsize=16,color="green",shape="box"];16815 -> 16728[label="",style="dashed", color="red", weight=0]; 36.98/17.58 16815[label="FiniteMap.glueBal2GlueBal1 (FiniteMap.Branch yuz2890 yuz2891 yuz2892 yuz2893 yuz2894) (FiniteMap.Branch yuz2830 yuz2831 yuz2832 yuz2833 yuz2834) (FiniteMap.Branch yuz2890 yuz2891 yuz2892 yuz2893 yuz2894) (FiniteMap.Branch yuz2830 yuz2831 yuz2832 yuz2833 yuz2834) False",fontsize=16,color="magenta"];16816[label="FiniteMap.glueBal2GlueBal0 (FiniteMap.Branch yuz2890 yuz2891 yuz2892 yuz2893 yuz2894) (FiniteMap.Branch yuz2830 yuz2831 yuz2832 yuz2833 yuz2834) (FiniteMap.Branch yuz2890 yuz2891 yuz2892 yuz2893 yuz2894) (FiniteMap.Branch yuz2830 yuz2831 yuz2832 yuz2833 yuz2834) otherwise",fontsize=16,color="black",shape="box"];16816 -> 16933[label="",style="solid", color="black", weight=3]; 36.98/17.58 16817 -> 16810[label="",style="dashed", color="red", weight=0]; 36.98/17.58 16817[label="FiniteMap.glueBal2GlueBal1 (FiniteMap.Branch yuz2890 yuz2891 yuz2892 yuz2893 yuz2894) (FiniteMap.Branch yuz2830 yuz2831 yuz2832 yuz2833 yuz2834) (FiniteMap.Branch yuz2890 yuz2891 yuz2892 yuz2893 yuz2894) (FiniteMap.Branch yuz2830 yuz2831 yuz2832 yuz2833 yuz2834) (primCmpNat yuz128300 yuz128400 == GT)",fontsize=16,color="magenta"];16817 -> 16934[label="",style="dashed", color="magenta", weight=3]; 36.98/17.58 16817 -> 16935[label="",style="dashed", color="magenta", weight=3]; 36.98/17.58 16818 -> 16669[label="",style="dashed", color="red", weight=0]; 36.98/17.58 16818[label="FiniteMap.glueBal2GlueBal1 (FiniteMap.Branch yuz2890 yuz2891 yuz2892 yuz2893 yuz2894) (FiniteMap.Branch yuz2830 yuz2831 yuz2832 yuz2833 yuz2834) (FiniteMap.Branch yuz2890 yuz2891 yuz2892 yuz2893 yuz2894) (FiniteMap.Branch yuz2830 yuz2831 yuz2832 yuz2833 yuz2834) (LT == GT)",fontsize=16,color="magenta"];16819[label="Zero",fontsize=16,color="green",shape="box"];16820[label="yuz128300",fontsize=16,color="green",shape="box"];1014 -> 2783[label="",style="dashed", color="red", weight=0]; 36.98/17.58 1014[label="primPlusNat (Succ (Succ (primPlusNat (Succ (primPlusNat yuz9200 yuz9200)) yuz9200))) (Succ yuz9200)",fontsize=16,color="magenta"];1014 -> 2784[label="",style="dashed", color="magenta", weight=3]; 36.98/17.58 1014 -> 2785[label="",style="dashed", color="magenta", weight=3]; 36.98/17.58 20235 -> 20070[label="",style="dashed", color="red", weight=0]; 36.98/17.58 20235[label="FiniteMap.mkBalBranch6MkBalBranch4 yuz2834 yuz2830 yuz2831 yuz1351 yuz2830 yuz2831 yuz1351 yuz2834 (primCmpNat yuz1355000 yuz1354000 == GT)",fontsize=16,color="magenta"];20235 -> 20341[label="",style="dashed", color="magenta", weight=3]; 36.98/17.58 20235 -> 20342[label="",style="dashed", color="magenta", weight=3]; 36.98/17.58 20236 -> 20008[label="",style="dashed", color="red", weight=0]; 36.98/17.58 20236[label="FiniteMap.mkBalBranch6MkBalBranch4 yuz2834 yuz2830 yuz2831 yuz1351 yuz2830 yuz2831 yuz1351 yuz2834 (GT == GT)",fontsize=16,color="magenta"];20237 -> 20013[label="",style="dashed", color="red", weight=0]; 36.98/17.58 20237[label="FiniteMap.mkBalBranch6MkBalBranch4 yuz2834 yuz2830 yuz2831 yuz1351 yuz2830 yuz2831 yuz1351 yuz2834 (LT == GT)",fontsize=16,color="magenta"];20238 -> 20037[label="",style="dashed", color="red", weight=0]; 36.98/17.58 20238[label="FiniteMap.mkBalBranch6MkBalBranch4 yuz2834 yuz2830 yuz2831 yuz1351 yuz2830 yuz2831 yuz1351 yuz2834 (EQ == GT)",fontsize=16,color="magenta"];20239 -> 20343[label="",style="dashed", color="red", weight=0]; 36.98/17.58 20239[label="FiniteMap.mkBalBranch6MkBalBranch01 (FiniteMap.Branch yuz28340 yuz28341 yuz28342 yuz28343 yuz28344) yuz2830 yuz2831 yuz1351 yuz1351 (FiniteMap.Branch yuz28340 yuz28341 yuz28342 yuz28343 yuz28344) yuz28340 yuz28341 yuz28342 yuz28343 yuz28344 (FiniteMap.sizeFM yuz28343 < Pos (Succ (Succ Zero)) * FiniteMap.sizeFM yuz28344)",fontsize=16,color="magenta"];20239 -> 20344[label="",style="dashed", color="magenta", weight=3]; 36.98/17.58 20240 -> 19341[label="",style="dashed", color="red", weight=0]; 36.98/17.58 20240[label="FiniteMap.mkBalBranch6Size_r yuz2834 yuz2830 yuz2831 yuz1351",fontsize=16,color="magenta"];20241[label="FiniteMap.mkBalBranch6MkBalBranch2 yuz2834 yuz2830 yuz2831 yuz1351 yuz2830 yuz2831 yuz1351 yuz2834 otherwise",fontsize=16,color="black",shape="box"];20241 -> 20349[label="",style="solid", color="black", weight=3]; 36.98/17.58 20242[label="FiniteMap.mkBalBranch6MkBalBranch1 yuz2834 yuz2830 yuz2831 yuz1351 yuz1351 yuz2834 yuz1351",fontsize=16,color="burlywood",shape="box"];20930[label="yuz1351/FiniteMap.EmptyFM",fontsize=10,color="white",style="solid",shape="box"];20242 -> 20930[label="",style="solid", color="burlywood", weight=9]; 36.98/17.58 20930 -> 20350[label="",style="solid", color="burlywood", weight=3]; 36.98/17.58 20931[label="yuz1351/FiniteMap.Branch yuz13510 yuz13511 yuz13512 yuz13513 yuz13514",fontsize=10,color="white",style="solid",shape="box"];20242 -> 20931[label="",style="solid", color="burlywood", weight=9]; 36.98/17.58 20931 -> 20351[label="",style="solid", color="burlywood", weight=3]; 36.98/17.58 16930[label="FiniteMap.glueBal2GlueBal1 (FiniteMap.Branch yuz2890 yuz2891 yuz2892 yuz2893 yuz2894) (FiniteMap.Branch yuz2830 yuz2831 yuz2832 yuz2833 yuz2834) (FiniteMap.Branch yuz2890 yuz2891 yuz2892 yuz2893 yuz2894) (FiniteMap.Branch yuz2830 yuz2831 yuz2832 yuz2833 yuz2834) (primCmpNat (Succ yuz1284000) yuz128300 == GT)",fontsize=16,color="burlywood",shape="box"];20932[label="yuz128300/Succ yuz1283000",fontsize=10,color="white",style="solid",shape="box"];16930 -> 20932[label="",style="solid", color="burlywood", weight=9]; 36.98/17.58 20932 -> 18852[label="",style="solid", color="burlywood", weight=3]; 36.98/17.58 20933[label="yuz128300/Zero",fontsize=10,color="white",style="solid",shape="box"];16930 -> 20933[label="",style="solid", color="burlywood", weight=9]; 36.98/17.58 20933 -> 18853[label="",style="solid", color="burlywood", weight=3]; 36.98/17.58 16931[label="FiniteMap.glueBal2GlueBal1 (FiniteMap.Branch yuz2890 yuz2891 yuz2892 yuz2893 yuz2894) (FiniteMap.Branch yuz2830 yuz2831 yuz2832 yuz2833 yuz2834) (FiniteMap.Branch yuz2890 yuz2891 yuz2892 yuz2893 yuz2894) (FiniteMap.Branch yuz2830 yuz2831 yuz2832 yuz2833 yuz2834) (primCmpNat Zero yuz128300 == GT)",fontsize=16,color="burlywood",shape="box"];20934[label="yuz128300/Succ yuz1283000",fontsize=10,color="white",style="solid",shape="box"];16931 -> 20934[label="",style="solid", color="burlywood", weight=9]; 36.98/17.58 20934 -> 18854[label="",style="solid", color="burlywood", weight=3]; 36.98/17.58 20935[label="yuz128300/Zero",fontsize=10,color="white",style="solid",shape="box"];16931 -> 20935[label="",style="solid", color="burlywood", weight=9]; 36.98/17.58 20935 -> 18855[label="",style="solid", color="burlywood", weight=3]; 36.98/17.58 19206[label="FiniteMap.glueBal2Mid_elt2 (FiniteMap.Branch yuz2890 yuz2891 yuz2892 yuz2893 yuz2894) (FiniteMap.Branch yuz2830 yuz2831 yuz2832 yuz2833 yuz2834)",fontsize=16,color="black",shape="box"];19206 -> 19254[label="",style="solid", color="black", weight=3]; 36.98/17.58 19207[label="FiniteMap.deleteMin (FiniteMap.Branch yuz2830 yuz2831 yuz2832 yuz2833 yuz2834)",fontsize=16,color="burlywood",shape="triangle"];20936[label="yuz2833/FiniteMap.EmptyFM",fontsize=10,color="white",style="solid",shape="box"];19207 -> 20936[label="",style="solid", color="burlywood", weight=9]; 36.98/17.58 20936 -> 19255[label="",style="solid", color="burlywood", weight=3]; 36.98/17.58 20937[label="yuz2833/FiniteMap.Branch yuz28330 yuz28331 yuz28332 yuz28333 yuz28334",fontsize=10,color="white",style="solid",shape="box"];19207 -> 20937[label="",style="solid", color="burlywood", weight=9]; 36.98/17.58 20937 -> 19256[label="",style="solid", color="burlywood", weight=3]; 36.98/17.58 19208[label="FiniteMap.Branch yuz2890 yuz2891 yuz2892 yuz2893 yuz2894",fontsize=16,color="green",shape="box"];19209[label="FiniteMap.glueBal2Mid_key2 (FiniteMap.Branch yuz2890 yuz2891 yuz2892 yuz2893 yuz2894) (FiniteMap.Branch yuz2830 yuz2831 yuz2832 yuz2833 yuz2834)",fontsize=16,color="black",shape="box"];19209 -> 19257[label="",style="solid", color="black", weight=3]; 36.98/17.58 16933[label="FiniteMap.glueBal2GlueBal0 (FiniteMap.Branch yuz2890 yuz2891 yuz2892 yuz2893 yuz2894) (FiniteMap.Branch yuz2830 yuz2831 yuz2832 yuz2833 yuz2834) (FiniteMap.Branch yuz2890 yuz2891 yuz2892 yuz2893 yuz2894) (FiniteMap.Branch yuz2830 yuz2831 yuz2832 yuz2833 yuz2834) True",fontsize=16,color="black",shape="box"];16933 -> 18857[label="",style="solid", color="black", weight=3]; 36.98/17.58 16934[label="yuz128300",fontsize=16,color="green",shape="box"];16935[label="yuz128400",fontsize=16,color="green",shape="box"];2784[label="Succ (primPlusNat (Succ (primPlusNat yuz9200 yuz9200)) yuz9200)",fontsize=16,color="green",shape="box"];2784 -> 2815[label="",style="dashed", color="green", weight=3]; 36.98/17.58 2785[label="Succ yuz9200",fontsize=16,color="green",shape="box"];2783[label="primPlusNat (Succ yuz209) yuz210",fontsize=16,color="burlywood",shape="triangle"];20938[label="yuz210/Succ yuz2100",fontsize=10,color="white",style="solid",shape="box"];2783 -> 20938[label="",style="solid", color="burlywood", weight=9]; 36.98/17.58 20938 -> 2816[label="",style="solid", color="burlywood", weight=3]; 36.98/17.58 20939[label="yuz210/Zero",fontsize=10,color="white",style="solid",shape="box"];2783 -> 20939[label="",style="solid", color="burlywood", weight=9]; 36.98/17.58 20939 -> 2817[label="",style="solid", color="burlywood", weight=3]; 36.98/17.58 20341[label="yuz1354000",fontsize=16,color="green",shape="box"];20342[label="yuz1355000",fontsize=16,color="green",shape="box"];20344 -> 12432[label="",style="dashed", color="red", weight=0]; 36.98/17.58 20344[label="FiniteMap.sizeFM yuz28343 < Pos (Succ (Succ Zero)) * FiniteMap.sizeFM yuz28344",fontsize=16,color="magenta"];20344 -> 20352[label="",style="dashed", color="magenta", weight=3]; 36.98/17.58 20344 -> 20353[label="",style="dashed", color="magenta", weight=3]; 36.98/17.58 20343[label="FiniteMap.mkBalBranch6MkBalBranch01 (FiniteMap.Branch yuz28340 yuz28341 yuz28342 yuz28343 yuz28344) yuz2830 yuz2831 yuz1351 yuz1351 (FiniteMap.Branch yuz28340 yuz28341 yuz28342 yuz28343 yuz28344) yuz28340 yuz28341 yuz28342 yuz28343 yuz28344 yuz1427",fontsize=16,color="burlywood",shape="triangle"];20940[label="yuz1427/False",fontsize=10,color="white",style="solid",shape="box"];20343 -> 20940[label="",style="solid", color="burlywood", weight=9]; 36.98/17.58 20940 -> 20354[label="",style="solid", color="burlywood", weight=3]; 36.98/17.58 20941[label="yuz1427/True",fontsize=10,color="white",style="solid",shape="box"];20343 -> 20941[label="",style="solid", color="burlywood", weight=9]; 36.98/17.58 20941 -> 20355[label="",style="solid", color="burlywood", weight=3]; 36.98/17.58 20349[label="FiniteMap.mkBalBranch6MkBalBranch2 yuz2834 yuz2830 yuz2831 yuz1351 yuz2830 yuz2831 yuz1351 yuz2834 True",fontsize=16,color="black",shape="box"];20349 -> 20456[label="",style="solid", color="black", weight=3]; 36.98/17.58 20350[label="FiniteMap.mkBalBranch6MkBalBranch1 yuz2834 yuz2830 yuz2831 FiniteMap.EmptyFM FiniteMap.EmptyFM yuz2834 FiniteMap.EmptyFM",fontsize=16,color="black",shape="box"];20350 -> 20457[label="",style="solid", color="black", weight=3]; 36.98/17.58 20351[label="FiniteMap.mkBalBranch6MkBalBranch1 yuz2834 yuz2830 yuz2831 (FiniteMap.Branch yuz13510 yuz13511 yuz13512 yuz13513 yuz13514) (FiniteMap.Branch yuz13510 yuz13511 yuz13512 yuz13513 yuz13514) yuz2834 (FiniteMap.Branch yuz13510 yuz13511 yuz13512 yuz13513 yuz13514)",fontsize=16,color="black",shape="box"];20351 -> 20458[label="",style="solid", color="black", weight=3]; 36.98/17.58 18852[label="FiniteMap.glueBal2GlueBal1 (FiniteMap.Branch yuz2890 yuz2891 yuz2892 yuz2893 yuz2894) (FiniteMap.Branch yuz2830 yuz2831 yuz2832 yuz2833 yuz2834) (FiniteMap.Branch yuz2890 yuz2891 yuz2892 yuz2893 yuz2894) (FiniteMap.Branch yuz2830 yuz2831 yuz2832 yuz2833 yuz2834) (primCmpNat (Succ yuz1284000) (Succ yuz1283000) == GT)",fontsize=16,color="black",shape="box"];18852 -> 18876[label="",style="solid", color="black", weight=3]; 36.98/17.58 18853[label="FiniteMap.glueBal2GlueBal1 (FiniteMap.Branch yuz2890 yuz2891 yuz2892 yuz2893 yuz2894) (FiniteMap.Branch yuz2830 yuz2831 yuz2832 yuz2833 yuz2834) (FiniteMap.Branch yuz2890 yuz2891 yuz2892 yuz2893 yuz2894) (FiniteMap.Branch yuz2830 yuz2831 yuz2832 yuz2833 yuz2834) (primCmpNat (Succ yuz1284000) Zero == GT)",fontsize=16,color="black",shape="box"];18853 -> 18877[label="",style="solid", color="black", weight=3]; 36.98/17.58 18854[label="FiniteMap.glueBal2GlueBal1 (FiniteMap.Branch yuz2890 yuz2891 yuz2892 yuz2893 yuz2894) (FiniteMap.Branch yuz2830 yuz2831 yuz2832 yuz2833 yuz2834) (FiniteMap.Branch yuz2890 yuz2891 yuz2892 yuz2893 yuz2894) (FiniteMap.Branch yuz2830 yuz2831 yuz2832 yuz2833 yuz2834) (primCmpNat Zero (Succ yuz1283000) == GT)",fontsize=16,color="black",shape="box"];18854 -> 18878[label="",style="solid", color="black", weight=3]; 36.98/17.58 18855[label="FiniteMap.glueBal2GlueBal1 (FiniteMap.Branch yuz2890 yuz2891 yuz2892 yuz2893 yuz2894) (FiniteMap.Branch yuz2830 yuz2831 yuz2832 yuz2833 yuz2834) (FiniteMap.Branch yuz2890 yuz2891 yuz2892 yuz2893 yuz2894) (FiniteMap.Branch yuz2830 yuz2831 yuz2832 yuz2833 yuz2834) (primCmpNat Zero Zero == GT)",fontsize=16,color="black",shape="box"];18855 -> 18879[label="",style="solid", color="black", weight=3]; 36.98/17.58 19254[label="FiniteMap.glueBal2Mid_elt20 (FiniteMap.Branch yuz2890 yuz2891 yuz2892 yuz2893 yuz2894) (FiniteMap.Branch yuz2830 yuz2831 yuz2832 yuz2833 yuz2834) (FiniteMap.glueBal2Vv3 (FiniteMap.Branch yuz2890 yuz2891 yuz2892 yuz2893 yuz2894) (FiniteMap.Branch yuz2830 yuz2831 yuz2832 yuz2833 yuz2834))",fontsize=16,color="black",shape="box"];19254 -> 19277[label="",style="solid", color="black", weight=3]; 36.98/17.58 19255[label="FiniteMap.deleteMin (FiniteMap.Branch yuz2830 yuz2831 yuz2832 FiniteMap.EmptyFM yuz2834)",fontsize=16,color="black",shape="box"];19255 -> 19278[label="",style="solid", color="black", weight=3]; 36.98/17.58 19256[label="FiniteMap.deleteMin (FiniteMap.Branch yuz2830 yuz2831 yuz2832 (FiniteMap.Branch yuz28330 yuz28331 yuz28332 yuz28333 yuz28334) yuz2834)",fontsize=16,color="black",shape="box"];19256 -> 19279[label="",style="solid", color="black", weight=3]; 36.98/17.58 19257[label="FiniteMap.glueBal2Mid_key20 (FiniteMap.Branch yuz2890 yuz2891 yuz2892 yuz2893 yuz2894) (FiniteMap.Branch yuz2830 yuz2831 yuz2832 yuz2833 yuz2834) (FiniteMap.glueBal2Vv3 (FiniteMap.Branch yuz2890 yuz2891 yuz2892 yuz2893 yuz2894) (FiniteMap.Branch yuz2830 yuz2831 yuz2832 yuz2833 yuz2834))",fontsize=16,color="black",shape="box"];19257 -> 19280[label="",style="solid", color="black", weight=3]; 36.98/17.58 18857 -> 19148[label="",style="dashed", color="red", weight=0]; 36.98/17.58 18857[label="FiniteMap.mkBalBranch (FiniteMap.glueBal2Mid_key1 (FiniteMap.Branch yuz2890 yuz2891 yuz2892 yuz2893 yuz2894) (FiniteMap.Branch yuz2830 yuz2831 yuz2832 yuz2833 yuz2834)) (FiniteMap.glueBal2Mid_elt1 (FiniteMap.Branch yuz2890 yuz2891 yuz2892 yuz2893 yuz2894) (FiniteMap.Branch yuz2830 yuz2831 yuz2832 yuz2833 yuz2834)) (FiniteMap.deleteMax (FiniteMap.Branch yuz2890 yuz2891 yuz2892 yuz2893 yuz2894)) (FiniteMap.Branch yuz2830 yuz2831 yuz2832 yuz2833 yuz2834)",fontsize=16,color="magenta"];18857 -> 19210[label="",style="dashed", color="magenta", weight=3]; 36.98/17.58 18857 -> 19211[label="",style="dashed", color="magenta", weight=3]; 36.98/17.58 18857 -> 19212[label="",style="dashed", color="magenta", weight=3]; 36.98/17.58 18857 -> 19213[label="",style="dashed", color="magenta", weight=3]; 36.98/17.58 2815 -> 2783[label="",style="dashed", color="red", weight=0]; 36.98/17.58 2815[label="primPlusNat (Succ (primPlusNat yuz9200 yuz9200)) yuz9200",fontsize=16,color="magenta"];2815 -> 2987[label="",style="dashed", color="magenta", weight=3]; 36.98/17.58 2815 -> 2988[label="",style="dashed", color="magenta", weight=3]; 36.98/17.58 2816[label="primPlusNat (Succ yuz209) (Succ yuz2100)",fontsize=16,color="black",shape="box"];2816 -> 2989[label="",style="solid", color="black", weight=3]; 36.98/17.58 2817[label="primPlusNat (Succ yuz209) Zero",fontsize=16,color="black",shape="box"];2817 -> 2990[label="",style="solid", color="black", weight=3]; 36.98/17.58 20352 -> 10975[label="",style="dashed", color="red", weight=0]; 36.98/17.58 20352[label="FiniteMap.sizeFM yuz28343",fontsize=16,color="magenta"];20352 -> 20459[label="",style="dashed", color="magenta", weight=3]; 36.98/17.58 20353 -> 20460[label="",style="dashed", color="red", weight=0]; 36.98/17.58 20353[label="Pos (Succ (Succ Zero)) * FiniteMap.sizeFM yuz28344",fontsize=16,color="magenta"];20353 -> 20461[label="",style="dashed", color="magenta", weight=3]; 36.98/17.58 20354[label="FiniteMap.mkBalBranch6MkBalBranch01 (FiniteMap.Branch yuz28340 yuz28341 yuz28342 yuz28343 yuz28344) yuz2830 yuz2831 yuz1351 yuz1351 (FiniteMap.Branch yuz28340 yuz28341 yuz28342 yuz28343 yuz28344) yuz28340 yuz28341 yuz28342 yuz28343 yuz28344 False",fontsize=16,color="black",shape="box"];20354 -> 20464[label="",style="solid", color="black", weight=3]; 36.98/17.58 20355[label="FiniteMap.mkBalBranch6MkBalBranch01 (FiniteMap.Branch yuz28340 yuz28341 yuz28342 yuz28343 yuz28344) yuz2830 yuz2831 yuz1351 yuz1351 (FiniteMap.Branch yuz28340 yuz28341 yuz28342 yuz28343 yuz28344) yuz28340 yuz28341 yuz28342 yuz28343 yuz28344 True",fontsize=16,color="black",shape="box"];20355 -> 20465[label="",style="solid", color="black", weight=3]; 36.98/17.58 20456[label="FiniteMap.mkBranch (Pos (Succ (Succ Zero))) yuz2830 yuz2831 yuz1351 yuz2834",fontsize=16,color="black",shape="box"];20456 -> 20466[label="",style="solid", color="black", weight=3]; 36.98/17.58 20457[label="error []",fontsize=16,color="red",shape="box"];20458[label="FiniteMap.mkBalBranch6MkBalBranch12 yuz2834 yuz2830 yuz2831 (FiniteMap.Branch yuz13510 yuz13511 yuz13512 yuz13513 yuz13514) (FiniteMap.Branch yuz13510 yuz13511 yuz13512 yuz13513 yuz13514) yuz2834 (FiniteMap.Branch yuz13510 yuz13511 yuz13512 yuz13513 yuz13514)",fontsize=16,color="black",shape="box"];20458 -> 20467[label="",style="solid", color="black", weight=3]; 36.98/17.58 18876 -> 16810[label="",style="dashed", color="red", weight=0]; 36.98/17.58 18876[label="FiniteMap.glueBal2GlueBal1 (FiniteMap.Branch yuz2890 yuz2891 yuz2892 yuz2893 yuz2894) (FiniteMap.Branch yuz2830 yuz2831 yuz2832 yuz2833 yuz2834) (FiniteMap.Branch yuz2890 yuz2891 yuz2892 yuz2893 yuz2894) (FiniteMap.Branch yuz2830 yuz2831 yuz2832 yuz2833 yuz2834) (primCmpNat yuz1284000 yuz1283000 == GT)",fontsize=16,color="magenta"];18876 -> 18904[label="",style="dashed", color="magenta", weight=3]; 36.98/17.58 18876 -> 18905[label="",style="dashed", color="magenta", weight=3]; 36.98/17.58 18877 -> 16664[label="",style="dashed", color="red", weight=0]; 36.98/17.58 18877[label="FiniteMap.glueBal2GlueBal1 (FiniteMap.Branch yuz2890 yuz2891 yuz2892 yuz2893 yuz2894) (FiniteMap.Branch yuz2830 yuz2831 yuz2832 yuz2833 yuz2834) (FiniteMap.Branch yuz2890 yuz2891 yuz2892 yuz2893 yuz2894) (FiniteMap.Branch yuz2830 yuz2831 yuz2832 yuz2833 yuz2834) (GT == GT)",fontsize=16,color="magenta"];18878 -> 16669[label="",style="dashed", color="red", weight=0]; 36.98/17.58 18878[label="FiniteMap.glueBal2GlueBal1 (FiniteMap.Branch yuz2890 yuz2891 yuz2892 yuz2893 yuz2894) (FiniteMap.Branch yuz2830 yuz2831 yuz2832 yuz2833 yuz2834) (FiniteMap.Branch yuz2890 yuz2891 yuz2892 yuz2893 yuz2894) (FiniteMap.Branch yuz2830 yuz2831 yuz2832 yuz2833 yuz2834) (LT == GT)",fontsize=16,color="magenta"];18879 -> 16725[label="",style="dashed", color="red", weight=0]; 36.98/17.58 18879[label="FiniteMap.glueBal2GlueBal1 (FiniteMap.Branch yuz2890 yuz2891 yuz2892 yuz2893 yuz2894) (FiniteMap.Branch yuz2830 yuz2831 yuz2832 yuz2833 yuz2834) (FiniteMap.Branch yuz2890 yuz2891 yuz2892 yuz2893 yuz2894) (FiniteMap.Branch yuz2830 yuz2831 yuz2832 yuz2833 yuz2834) (EQ == GT)",fontsize=16,color="magenta"];19277 -> 20135[label="",style="dashed", color="red", weight=0]; 36.98/17.58 19277[label="FiniteMap.glueBal2Mid_elt20 (FiniteMap.Branch yuz2890 yuz2891 yuz2892 yuz2893 yuz2894) (FiniteMap.Branch yuz2830 yuz2831 yuz2832 yuz2833 yuz2834) (FiniteMap.findMin (FiniteMap.Branch yuz2830 yuz2831 yuz2832 yuz2833 yuz2834))",fontsize=16,color="magenta"];19277 -> 20136[label="",style="dashed", color="magenta", weight=3]; 36.98/17.58 19277 -> 20137[label="",style="dashed", color="magenta", weight=3]; 36.98/17.58 19277 -> 20138[label="",style="dashed", color="magenta", weight=3]; 36.98/17.58 19277 -> 20139[label="",style="dashed", color="magenta", weight=3]; 36.98/17.58 19277 -> 20140[label="",style="dashed", color="magenta", weight=3]; 36.98/17.58 19277 -> 20141[label="",style="dashed", color="magenta", weight=3]; 36.98/17.58 19277 -> 20142[label="",style="dashed", color="magenta", weight=3]; 36.98/17.58 19277 -> 20143[label="",style="dashed", color="magenta", weight=3]; 36.98/17.58 19277 -> 20144[label="",style="dashed", color="magenta", weight=3]; 36.98/17.58 19277 -> 20145[label="",style="dashed", color="magenta", weight=3]; 36.98/17.58 19277 -> 20146[label="",style="dashed", color="magenta", weight=3]; 36.98/17.58 19277 -> 20147[label="",style="dashed", color="magenta", weight=3]; 36.98/17.58 19277 -> 20148[label="",style="dashed", color="magenta", weight=3]; 36.98/17.58 19277 -> 20149[label="",style="dashed", color="magenta", weight=3]; 36.98/17.58 19277 -> 20150[label="",style="dashed", color="magenta", weight=3]; 36.98/17.58 19278[label="yuz2834",fontsize=16,color="green",shape="box"];19279 -> 19148[label="",style="dashed", color="red", weight=0]; 36.98/17.58 19279[label="FiniteMap.mkBalBranch yuz2830 yuz2831 (FiniteMap.deleteMin (FiniteMap.Branch yuz28330 yuz28331 yuz28332 yuz28333 yuz28334)) yuz2834",fontsize=16,color="magenta"];19279 -> 19326[label="",style="dashed", color="magenta", weight=3]; 36.98/17.58 19280 -> 20246[label="",style="dashed", color="red", weight=0]; 36.98/17.58 19280[label="FiniteMap.glueBal2Mid_key20 (FiniteMap.Branch yuz2890 yuz2891 yuz2892 yuz2893 yuz2894) (FiniteMap.Branch yuz2830 yuz2831 yuz2832 yuz2833 yuz2834) (FiniteMap.findMin (FiniteMap.Branch yuz2830 yuz2831 yuz2832 yuz2833 yuz2834))",fontsize=16,color="magenta"];19280 -> 20247[label="",style="dashed", color="magenta", weight=3]; 36.98/17.58 19280 -> 20248[label="",style="dashed", color="magenta", weight=3]; 36.98/17.58 19280 -> 20249[label="",style="dashed", color="magenta", weight=3]; 36.98/17.58 19280 -> 20250[label="",style="dashed", color="magenta", weight=3]; 36.98/17.58 19280 -> 20251[label="",style="dashed", color="magenta", weight=3]; 36.98/17.58 19280 -> 20252[label="",style="dashed", color="magenta", weight=3]; 36.98/17.58 19280 -> 20253[label="",style="dashed", color="magenta", weight=3]; 36.98/17.58 19280 -> 20254[label="",style="dashed", color="magenta", weight=3]; 36.98/17.58 19280 -> 20255[label="",style="dashed", color="magenta", weight=3]; 36.98/17.58 19280 -> 20256[label="",style="dashed", color="magenta", weight=3]; 36.98/17.58 19280 -> 20257[label="",style="dashed", color="magenta", weight=3]; 36.98/17.58 19280 -> 20258[label="",style="dashed", color="magenta", weight=3]; 36.98/17.58 19280 -> 20259[label="",style="dashed", color="magenta", weight=3]; 36.98/17.58 19280 -> 20260[label="",style="dashed", color="magenta", weight=3]; 36.98/17.58 19280 -> 20261[label="",style="dashed", color="magenta", weight=3]; 36.98/17.58 19210[label="FiniteMap.glueBal2Mid_elt1 (FiniteMap.Branch yuz2890 yuz2891 yuz2892 yuz2893 yuz2894) (FiniteMap.Branch yuz2830 yuz2831 yuz2832 yuz2833 yuz2834)",fontsize=16,color="black",shape="box"];19210 -> 19258[label="",style="solid", color="black", weight=3]; 36.98/17.58 19211[label="FiniteMap.Branch yuz2830 yuz2831 yuz2832 yuz2833 yuz2834",fontsize=16,color="green",shape="box"];19212[label="FiniteMap.deleteMax (FiniteMap.Branch yuz2890 yuz2891 yuz2892 yuz2893 yuz2894)",fontsize=16,color="burlywood",shape="triangle"];20942[label="yuz2894/FiniteMap.EmptyFM",fontsize=10,color="white",style="solid",shape="box"];19212 -> 20942[label="",style="solid", color="burlywood", weight=9]; 36.98/17.58 20942 -> 19259[label="",style="solid", color="burlywood", weight=3]; 36.98/17.58 20943[label="yuz2894/FiniteMap.Branch yuz28940 yuz28941 yuz28942 yuz28943 yuz28944",fontsize=10,color="white",style="solid",shape="box"];19212 -> 20943[label="",style="solid", color="burlywood", weight=9]; 36.98/17.58 20943 -> 19260[label="",style="solid", color="burlywood", weight=3]; 36.98/17.58 19213[label="FiniteMap.glueBal2Mid_key1 (FiniteMap.Branch yuz2890 yuz2891 yuz2892 yuz2893 yuz2894) (FiniteMap.Branch yuz2830 yuz2831 yuz2832 yuz2833 yuz2834)",fontsize=16,color="black",shape="box"];19213 -> 19261[label="",style="solid", color="black", weight=3]; 36.98/17.58 2987 -> 2818[label="",style="dashed", color="red", weight=0]; 36.98/17.58 2987[label="primPlusNat yuz9200 yuz9200",fontsize=16,color="magenta"];2987 -> 3068[label="",style="dashed", color="magenta", weight=3]; 36.98/17.58 2988[label="yuz9200",fontsize=16,color="green",shape="box"];2989[label="Succ (Succ (primPlusNat yuz209 yuz2100))",fontsize=16,color="green",shape="box"];2989 -> 3069[label="",style="dashed", color="green", weight=3]; 36.98/17.58 2990[label="Succ yuz209",fontsize=16,color="green",shape="box"];20459[label="yuz28343",fontsize=16,color="green",shape="box"];20461 -> 10975[label="",style="dashed", color="red", weight=0]; 36.98/17.58 20461[label="FiniteMap.sizeFM yuz28344",fontsize=16,color="magenta"];20461 -> 20468[label="",style="dashed", color="magenta", weight=3]; 36.98/17.58 20460[label="Pos (Succ (Succ Zero)) * yuz1446",fontsize=16,color="black",shape="triangle"];20460 -> 20469[label="",style="solid", color="black", weight=3]; 36.98/17.58 20464[label="FiniteMap.mkBalBranch6MkBalBranch00 (FiniteMap.Branch yuz28340 yuz28341 yuz28342 yuz28343 yuz28344) yuz2830 yuz2831 yuz1351 yuz1351 (FiniteMap.Branch yuz28340 yuz28341 yuz28342 yuz28343 yuz28344) yuz28340 yuz28341 yuz28342 yuz28343 yuz28344 otherwise",fontsize=16,color="black",shape="box"];20464 -> 20572[label="",style="solid", color="black", weight=3]; 36.98/17.58 20465[label="FiniteMap.mkBalBranch6Single_L (FiniteMap.Branch yuz28340 yuz28341 yuz28342 yuz28343 yuz28344) yuz2830 yuz2831 yuz1351 yuz1351 (FiniteMap.Branch yuz28340 yuz28341 yuz28342 yuz28343 yuz28344)",fontsize=16,color="black",shape="box"];20465 -> 20573[label="",style="solid", color="black", weight=3]; 36.98/17.58 20466 -> 16040[label="",style="dashed", color="red", weight=0]; 36.98/17.58 20466[label="FiniteMap.mkBranchResult yuz2830 yuz2831 yuz1351 yuz2834",fontsize=16,color="magenta"];20466 -> 20574[label="",style="dashed", color="magenta", weight=3]; 36.98/17.58 20467 -> 20575[label="",style="dashed", color="red", weight=0]; 36.98/17.58 20467[label="FiniteMap.mkBalBranch6MkBalBranch11 yuz2834 yuz2830 yuz2831 (FiniteMap.Branch yuz13510 yuz13511 yuz13512 yuz13513 yuz13514) (FiniteMap.Branch yuz13510 yuz13511 yuz13512 yuz13513 yuz13514) yuz2834 yuz13510 yuz13511 yuz13512 yuz13513 yuz13514 (FiniteMap.sizeFM yuz13514 < Pos (Succ (Succ Zero)) * FiniteMap.sizeFM yuz13513)",fontsize=16,color="magenta"];20467 -> 20576[label="",style="dashed", color="magenta", weight=3]; 36.98/17.58 18904[label="yuz1284000",fontsize=16,color="green",shape="box"];18905[label="yuz1283000",fontsize=16,color="green",shape="box"];20136[label="yuz2834",fontsize=16,color="green",shape="box"];20137[label="yuz2830",fontsize=16,color="green",shape="box"];20138[label="yuz2893",fontsize=16,color="green",shape="box"];20139[label="yuz2892",fontsize=16,color="green",shape="box"];20140[label="yuz2830",fontsize=16,color="green",shape="box"];20141[label="yuz2833",fontsize=16,color="green",shape="box"];20142[label="yuz2831",fontsize=16,color="green",shape="box"];20143[label="yuz2894",fontsize=16,color="green",shape="box"];20144[label="yuz2831",fontsize=16,color="green",shape="box"];20145[label="yuz2891",fontsize=16,color="green",shape="box"];20146[label="yuz2833",fontsize=16,color="green",shape="box"];20147[label="yuz2832",fontsize=16,color="green",shape="box"];20148[label="yuz2832",fontsize=16,color="green",shape="box"];20149[label="yuz2890",fontsize=16,color="green",shape="box"];20150[label="yuz2834",fontsize=16,color="green",shape="box"];20135[label="FiniteMap.glueBal2Mid_elt20 (FiniteMap.Branch yuz1396 yuz1397 yuz1398 yuz1399 yuz1400) (FiniteMap.Branch yuz1401 yuz1402 yuz1403 yuz1404 yuz1405) (FiniteMap.findMin (FiniteMap.Branch yuz1406 yuz1407 yuz1408 yuz1409 yuz1410))",fontsize=16,color="burlywood",shape="triangle"];20944[label="yuz1409/FiniteMap.EmptyFM",fontsize=10,color="white",style="solid",shape="box"];20135 -> 20944[label="",style="solid", color="burlywood", weight=9]; 36.98/17.58 20944 -> 20243[label="",style="solid", color="burlywood", weight=3]; 36.98/17.58 20945[label="yuz1409/FiniteMap.Branch yuz14090 yuz14091 yuz14092 yuz14093 yuz14094",fontsize=10,color="white",style="solid",shape="box"];20135 -> 20945[label="",style="solid", color="burlywood", weight=9]; 36.98/17.58 20945 -> 20244[label="",style="solid", color="burlywood", weight=3]; 36.98/17.58 19326 -> 19207[label="",style="dashed", color="red", weight=0]; 36.98/17.58 19326[label="FiniteMap.deleteMin (FiniteMap.Branch yuz28330 yuz28331 yuz28332 yuz28333 yuz28334)",fontsize=16,color="magenta"];19326 -> 19357[label="",style="dashed", color="magenta", weight=3]; 36.98/17.58 19326 -> 19358[label="",style="dashed", color="magenta", weight=3]; 36.98/17.58 19326 -> 19359[label="",style="dashed", color="magenta", weight=3]; 36.98/17.58 19326 -> 19360[label="",style="dashed", color="magenta", weight=3]; 36.98/17.58 19326 -> 19361[label="",style="dashed", color="magenta", weight=3]; 36.98/17.58 20247[label="yuz2890",fontsize=16,color="green",shape="box"];20248[label="yuz2893",fontsize=16,color="green",shape="box"];20249[label="yuz2832",fontsize=16,color="green",shape="box"];20250[label="yuz2832",fontsize=16,color="green",shape="box"];20251[label="yuz2830",fontsize=16,color="green",shape="box"];20252[label="yuz2834",fontsize=16,color="green",shape="box"];20253[label="yuz2894",fontsize=16,color="green",shape="box"];20254[label="yuz2830",fontsize=16,color="green",shape="box"];20255[label="yuz2833",fontsize=16,color="green",shape="box"];20256[label="yuz2892",fontsize=16,color="green",shape="box"];20257[label="yuz2831",fontsize=16,color="green",shape="box"];20258[label="yuz2833",fontsize=16,color="green",shape="box"];20259[label="yuz2831",fontsize=16,color="green",shape="box"];20260[label="yuz2834",fontsize=16,color="green",shape="box"];20261[label="yuz2891",fontsize=16,color="green",shape="box"];20246[label="FiniteMap.glueBal2Mid_key20 (FiniteMap.Branch yuz1412 yuz1413 yuz1414 yuz1415 yuz1416) (FiniteMap.Branch yuz1417 yuz1418 yuz1419 yuz1420 yuz1421) (FiniteMap.findMin (FiniteMap.Branch yuz1422 yuz1423 yuz1424 yuz1425 yuz1426))",fontsize=16,color="burlywood",shape="triangle"];20946[label="yuz1425/FiniteMap.EmptyFM",fontsize=10,color="white",style="solid",shape="box"];20246 -> 20946[label="",style="solid", color="burlywood", weight=9]; 36.98/17.58 20946 -> 20356[label="",style="solid", color="burlywood", weight=3]; 36.98/17.58 20947[label="yuz1425/FiniteMap.Branch yuz14250 yuz14251 yuz14252 yuz14253 yuz14254",fontsize=10,color="white",style="solid",shape="box"];20246 -> 20947[label="",style="solid", color="burlywood", weight=9]; 36.98/17.58 20947 -> 20357[label="",style="solid", color="burlywood", weight=3]; 36.98/17.58 19258[label="FiniteMap.glueBal2Mid_elt10 (FiniteMap.Branch yuz2890 yuz2891 yuz2892 yuz2893 yuz2894) (FiniteMap.Branch yuz2830 yuz2831 yuz2832 yuz2833 yuz2834) (FiniteMap.glueBal2Vv2 (FiniteMap.Branch yuz2890 yuz2891 yuz2892 yuz2893 yuz2894) (FiniteMap.Branch yuz2830 yuz2831 yuz2832 yuz2833 yuz2834))",fontsize=16,color="black",shape="box"];19258 -> 19281[label="",style="solid", color="black", weight=3]; 36.98/17.58 19259[label="FiniteMap.deleteMax (FiniteMap.Branch yuz2890 yuz2891 yuz2892 yuz2893 FiniteMap.EmptyFM)",fontsize=16,color="black",shape="box"];19259 -> 19282[label="",style="solid", color="black", weight=3]; 36.98/17.58 19260[label="FiniteMap.deleteMax (FiniteMap.Branch yuz2890 yuz2891 yuz2892 yuz2893 (FiniteMap.Branch yuz28940 yuz28941 yuz28942 yuz28943 yuz28944))",fontsize=16,color="black",shape="box"];19260 -> 19283[label="",style="solid", color="black", weight=3]; 36.98/17.58 19261[label="FiniteMap.glueBal2Mid_key10 (FiniteMap.Branch yuz2890 yuz2891 yuz2892 yuz2893 yuz2894) (FiniteMap.Branch yuz2830 yuz2831 yuz2832 yuz2833 yuz2834) (FiniteMap.glueBal2Vv2 (FiniteMap.Branch yuz2890 yuz2891 yuz2892 yuz2893 yuz2894) (FiniteMap.Branch yuz2830 yuz2831 yuz2832 yuz2833 yuz2834))",fontsize=16,color="black",shape="box"];19261 -> 19284[label="",style="solid", color="black", weight=3]; 36.98/17.58 3068[label="yuz9200",fontsize=16,color="green",shape="box"];2818[label="primPlusNat yuz7200 yuz7200",fontsize=16,color="burlywood",shape="triangle"];20948[label="yuz7200/Succ yuz72000",fontsize=10,color="white",style="solid",shape="box"];2818 -> 20948[label="",style="solid", color="burlywood", weight=9]; 36.98/17.58 20948 -> 2991[label="",style="solid", color="burlywood", weight=3]; 36.98/17.58 20949[label="yuz7200/Zero",fontsize=10,color="white",style="solid",shape="box"];2818 -> 20949[label="",style="solid", color="burlywood", weight=9]; 36.98/17.58 20949 -> 2992[label="",style="solid", color="burlywood", weight=3]; 36.98/17.58 20468[label="yuz28344",fontsize=16,color="green",shape="box"];20469[label="primMulInt (Pos (Succ (Succ Zero))) yuz1446",fontsize=16,color="burlywood",shape="box"];20950[label="yuz1446/Pos yuz14460",fontsize=10,color="white",style="solid",shape="box"];20469 -> 20950[label="",style="solid", color="burlywood", weight=9]; 36.98/17.58 20950 -> 20577[label="",style="solid", color="burlywood", weight=3]; 36.98/17.58 20951[label="yuz1446/Neg yuz14460",fontsize=10,color="white",style="solid",shape="box"];20469 -> 20951[label="",style="solid", color="burlywood", weight=9]; 36.98/17.58 20951 -> 20578[label="",style="solid", color="burlywood", weight=3]; 36.98/17.58 20572[label="FiniteMap.mkBalBranch6MkBalBranch00 (FiniteMap.Branch yuz28340 yuz28341 yuz28342 yuz28343 yuz28344) yuz2830 yuz2831 yuz1351 yuz1351 (FiniteMap.Branch yuz28340 yuz28341 yuz28342 yuz28343 yuz28344) yuz28340 yuz28341 yuz28342 yuz28343 yuz28344 True",fontsize=16,color="black",shape="box"];20572 -> 20579[label="",style="solid", color="black", weight=3]; 36.98/17.58 20573[label="FiniteMap.mkBranch (Pos (Succ (Succ (Succ Zero)))) yuz28340 yuz28341 (FiniteMap.mkBranch (Pos (Succ (Succ (Succ (Succ Zero))))) yuz2830 yuz2831 yuz1351 yuz28343) yuz28344",fontsize=16,color="black",shape="box"];20573 -> 20580[label="",style="solid", color="black", weight=3]; 36.98/17.58 20574[label="yuz1351",fontsize=16,color="green",shape="box"];20576 -> 12432[label="",style="dashed", color="red", weight=0]; 36.98/17.58 20576[label="FiniteMap.sizeFM yuz13514 < Pos (Succ (Succ Zero)) * FiniteMap.sizeFM yuz13513",fontsize=16,color="magenta"];20576 -> 20581[label="",style="dashed", color="magenta", weight=3]; 36.98/17.58 20576 -> 20582[label="",style="dashed", color="magenta", weight=3]; 36.98/17.58 20575[label="FiniteMap.mkBalBranch6MkBalBranch11 yuz2834 yuz2830 yuz2831 (FiniteMap.Branch yuz13510 yuz13511 yuz13512 yuz13513 yuz13514) (FiniteMap.Branch yuz13510 yuz13511 yuz13512 yuz13513 yuz13514) yuz2834 yuz13510 yuz13511 yuz13512 yuz13513 yuz13514 yuz1463",fontsize=16,color="burlywood",shape="triangle"];20952[label="yuz1463/False",fontsize=10,color="white",style="solid",shape="box"];20575 -> 20952[label="",style="solid", color="burlywood", weight=9]; 36.98/17.58 20952 -> 20583[label="",style="solid", color="burlywood", weight=3]; 36.98/17.58 20953[label="yuz1463/True",fontsize=10,color="white",style="solid",shape="box"];20575 -> 20953[label="",style="solid", color="burlywood", weight=9]; 36.98/17.58 20953 -> 20584[label="",style="solid", color="burlywood", weight=3]; 36.98/17.58 20243[label="FiniteMap.glueBal2Mid_elt20 (FiniteMap.Branch yuz1396 yuz1397 yuz1398 yuz1399 yuz1400) (FiniteMap.Branch yuz1401 yuz1402 yuz1403 yuz1404 yuz1405) (FiniteMap.findMin (FiniteMap.Branch yuz1406 yuz1407 yuz1408 FiniteMap.EmptyFM yuz1410))",fontsize=16,color="black",shape="box"];20243 -> 20358[label="",style="solid", color="black", weight=3]; 36.98/17.58 20244[label="FiniteMap.glueBal2Mid_elt20 (FiniteMap.Branch yuz1396 yuz1397 yuz1398 yuz1399 yuz1400) (FiniteMap.Branch yuz1401 yuz1402 yuz1403 yuz1404 yuz1405) (FiniteMap.findMin (FiniteMap.Branch yuz1406 yuz1407 yuz1408 (FiniteMap.Branch yuz14090 yuz14091 yuz14092 yuz14093 yuz14094) yuz1410))",fontsize=16,color="black",shape="box"];20244 -> 20359[label="",style="solid", color="black", weight=3]; 36.98/17.58 19357[label="yuz28331",fontsize=16,color="green",shape="box"];19358[label="yuz28332",fontsize=16,color="green",shape="box"];19359[label="yuz28333",fontsize=16,color="green",shape="box"];19360[label="yuz28334",fontsize=16,color="green",shape="box"];19361[label="yuz28330",fontsize=16,color="green",shape="box"];20356[label="FiniteMap.glueBal2Mid_key20 (FiniteMap.Branch yuz1412 yuz1413 yuz1414 yuz1415 yuz1416) (FiniteMap.Branch yuz1417 yuz1418 yuz1419 yuz1420 yuz1421) (FiniteMap.findMin (FiniteMap.Branch yuz1422 yuz1423 yuz1424 FiniteMap.EmptyFM yuz1426))",fontsize=16,color="black",shape="box"];20356 -> 20470[label="",style="solid", color="black", weight=3]; 36.98/17.58 20357[label="FiniteMap.glueBal2Mid_key20 (FiniteMap.Branch yuz1412 yuz1413 yuz1414 yuz1415 yuz1416) (FiniteMap.Branch yuz1417 yuz1418 yuz1419 yuz1420 yuz1421) (FiniteMap.findMin (FiniteMap.Branch yuz1422 yuz1423 yuz1424 (FiniteMap.Branch yuz14250 yuz14251 yuz14252 yuz14253 yuz14254) yuz1426))",fontsize=16,color="black",shape="box"];20357 -> 20471[label="",style="solid", color="black", weight=3]; 36.98/17.58 19281 -> 20361[label="",style="dashed", color="red", weight=0]; 36.98/17.58 19281[label="FiniteMap.glueBal2Mid_elt10 (FiniteMap.Branch yuz2890 yuz2891 yuz2892 yuz2893 yuz2894) (FiniteMap.Branch yuz2830 yuz2831 yuz2832 yuz2833 yuz2834) (FiniteMap.findMax (FiniteMap.Branch yuz2890 yuz2891 yuz2892 yuz2893 yuz2894))",fontsize=16,color="magenta"];19281 -> 20362[label="",style="dashed", color="magenta", weight=3]; 36.98/17.58 19281 -> 20363[label="",style="dashed", color="magenta", weight=3]; 36.98/17.58 19281 -> 20364[label="",style="dashed", color="magenta", weight=3]; 36.98/17.58 19281 -> 20365[label="",style="dashed", color="magenta", weight=3]; 36.98/17.58 19281 -> 20366[label="",style="dashed", color="magenta", weight=3]; 36.98/17.58 19281 -> 20367[label="",style="dashed", color="magenta", weight=3]; 36.98/17.58 19281 -> 20368[label="",style="dashed", color="magenta", weight=3]; 36.98/17.58 19281 -> 20369[label="",style="dashed", color="magenta", weight=3]; 36.98/17.58 19281 -> 20370[label="",style="dashed", color="magenta", weight=3]; 36.98/17.58 19281 -> 20371[label="",style="dashed", color="magenta", weight=3]; 36.98/17.58 19281 -> 20372[label="",style="dashed", color="magenta", weight=3]; 36.98/17.58 19281 -> 20373[label="",style="dashed", color="magenta", weight=3]; 36.98/17.58 19281 -> 20374[label="",style="dashed", color="magenta", weight=3]; 36.98/17.58 19281 -> 20375[label="",style="dashed", color="magenta", weight=3]; 36.98/17.58 19281 -> 20376[label="",style="dashed", color="magenta", weight=3]; 36.98/17.58 19282[label="yuz2893",fontsize=16,color="green",shape="box"];19283 -> 19148[label="",style="dashed", color="red", weight=0]; 36.98/17.58 19283[label="FiniteMap.mkBalBranch yuz2890 yuz2891 yuz2893 (FiniteMap.deleteMax (FiniteMap.Branch yuz28940 yuz28941 yuz28942 yuz28943 yuz28944))",fontsize=16,color="magenta"];19283 -> 19331[label="",style="dashed", color="magenta", weight=3]; 36.98/17.58 19283 -> 19332[label="",style="dashed", color="magenta", weight=3]; 36.98/17.58 19283 -> 19333[label="",style="dashed", color="magenta", weight=3]; 36.98/17.58 19283 -> 19334[label="",style="dashed", color="magenta", weight=3]; 36.98/17.58 19284 -> 20481[label="",style="dashed", color="red", weight=0]; 36.98/17.58 19284[label="FiniteMap.glueBal2Mid_key10 (FiniteMap.Branch yuz2890 yuz2891 yuz2892 yuz2893 yuz2894) (FiniteMap.Branch yuz2830 yuz2831 yuz2832 yuz2833 yuz2834) (FiniteMap.findMax (FiniteMap.Branch yuz2890 yuz2891 yuz2892 yuz2893 yuz2894))",fontsize=16,color="magenta"];19284 -> 20482[label="",style="dashed", color="magenta", weight=3]; 36.98/17.58 19284 -> 20483[label="",style="dashed", color="magenta", weight=3]; 36.98/17.58 19284 -> 20484[label="",style="dashed", color="magenta", weight=3]; 36.98/17.58 19284 -> 20485[label="",style="dashed", color="magenta", weight=3]; 36.98/17.58 19284 -> 20486[label="",style="dashed", color="magenta", weight=3]; 36.98/17.58 19284 -> 20487[label="",style="dashed", color="magenta", weight=3]; 36.98/17.58 19284 -> 20488[label="",style="dashed", color="magenta", weight=3]; 36.98/17.58 19284 -> 20489[label="",style="dashed", color="magenta", weight=3]; 36.98/17.58 19284 -> 20490[label="",style="dashed", color="magenta", weight=3]; 36.98/17.58 19284 -> 20491[label="",style="dashed", color="magenta", weight=3]; 36.98/17.58 19284 -> 20492[label="",style="dashed", color="magenta", weight=3]; 36.98/17.58 19284 -> 20493[label="",style="dashed", color="magenta", weight=3]; 36.98/17.58 19284 -> 20494[label="",style="dashed", color="magenta", weight=3]; 36.98/17.58 19284 -> 20495[label="",style="dashed", color="magenta", weight=3]; 36.98/17.58 19284 -> 20496[label="",style="dashed", color="magenta", weight=3]; 36.98/17.58 2991[label="primPlusNat (Succ yuz72000) (Succ yuz72000)",fontsize=16,color="black",shape="box"];2991 -> 3070[label="",style="solid", color="black", weight=3]; 36.98/17.58 2992[label="primPlusNat Zero Zero",fontsize=16,color="black",shape="box"];2992 -> 3071[label="",style="solid", color="black", weight=3]; 36.98/17.58 20577[label="primMulInt (Pos (Succ (Succ Zero))) (Pos yuz14460)",fontsize=16,color="black",shape="box"];20577 -> 20595[label="",style="solid", color="black", weight=3]; 36.98/17.58 20578[label="primMulInt (Pos (Succ (Succ Zero))) (Neg yuz14460)",fontsize=16,color="black",shape="box"];20578 -> 20596[label="",style="solid", color="black", weight=3]; 36.98/17.58 20579[label="FiniteMap.mkBalBranch6Double_L (FiniteMap.Branch yuz28340 yuz28341 yuz28342 yuz28343 yuz28344) yuz2830 yuz2831 yuz1351 yuz1351 (FiniteMap.Branch yuz28340 yuz28341 yuz28342 yuz28343 yuz28344)",fontsize=16,color="burlywood",shape="box"];20954[label="yuz28343/FiniteMap.EmptyFM",fontsize=10,color="white",style="solid",shape="box"];20579 -> 20954[label="",style="solid", color="burlywood", weight=9]; 36.98/17.58 20954 -> 20597[label="",style="solid", color="burlywood", weight=3]; 36.98/17.58 20955[label="yuz28343/FiniteMap.Branch yuz283430 yuz283431 yuz283432 yuz283433 yuz283434",fontsize=10,color="white",style="solid",shape="box"];20579 -> 20955[label="",style="solid", color="burlywood", weight=9]; 36.98/17.58 20955 -> 20598[label="",style="solid", color="burlywood", weight=3]; 36.98/17.58 20580 -> 16040[label="",style="dashed", color="red", weight=0]; 36.98/17.58 20580[label="FiniteMap.mkBranchResult yuz28340 yuz28341 (FiniteMap.mkBranch (Pos (Succ (Succ (Succ (Succ Zero))))) yuz2830 yuz2831 yuz1351 yuz28343) yuz28344",fontsize=16,color="magenta"];20580 -> 20599[label="",style="dashed", color="magenta", weight=3]; 36.98/17.58 20580 -> 20600[label="",style="dashed", color="magenta", weight=3]; 36.98/17.58 20580 -> 20601[label="",style="dashed", color="magenta", weight=3]; 36.98/17.58 20580 -> 20602[label="",style="dashed", color="magenta", weight=3]; 36.98/17.58 20581 -> 10975[label="",style="dashed", color="red", weight=0]; 36.98/17.58 20581[label="FiniteMap.sizeFM yuz13514",fontsize=16,color="magenta"];20581 -> 20603[label="",style="dashed", color="magenta", weight=3]; 36.98/17.58 20582 -> 20460[label="",style="dashed", color="red", weight=0]; 36.98/17.58 20582[label="Pos (Succ (Succ Zero)) * FiniteMap.sizeFM yuz13513",fontsize=16,color="magenta"];20582 -> 20604[label="",style="dashed", color="magenta", weight=3]; 36.98/17.58 20583[label="FiniteMap.mkBalBranch6MkBalBranch11 yuz2834 yuz2830 yuz2831 (FiniteMap.Branch yuz13510 yuz13511 yuz13512 yuz13513 yuz13514) (FiniteMap.Branch yuz13510 yuz13511 yuz13512 yuz13513 yuz13514) yuz2834 yuz13510 yuz13511 yuz13512 yuz13513 yuz13514 False",fontsize=16,color="black",shape="box"];20583 -> 20605[label="",style="solid", color="black", weight=3]; 36.98/17.58 20584[label="FiniteMap.mkBalBranch6MkBalBranch11 yuz2834 yuz2830 yuz2831 (FiniteMap.Branch yuz13510 yuz13511 yuz13512 yuz13513 yuz13514) (FiniteMap.Branch yuz13510 yuz13511 yuz13512 yuz13513 yuz13514) yuz2834 yuz13510 yuz13511 yuz13512 yuz13513 yuz13514 True",fontsize=16,color="black",shape="box"];20584 -> 20606[label="",style="solid", color="black", weight=3]; 36.98/17.58 20358[label="FiniteMap.glueBal2Mid_elt20 (FiniteMap.Branch yuz1396 yuz1397 yuz1398 yuz1399 yuz1400) (FiniteMap.Branch yuz1401 yuz1402 yuz1403 yuz1404 yuz1405) (yuz1406,yuz1407)",fontsize=16,color="black",shape="box"];20358 -> 20472[label="",style="solid", color="black", weight=3]; 36.98/17.58 20359 -> 20135[label="",style="dashed", color="red", weight=0]; 36.98/17.58 20359[label="FiniteMap.glueBal2Mid_elt20 (FiniteMap.Branch yuz1396 yuz1397 yuz1398 yuz1399 yuz1400) (FiniteMap.Branch yuz1401 yuz1402 yuz1403 yuz1404 yuz1405) (FiniteMap.findMin (FiniteMap.Branch yuz14090 yuz14091 yuz14092 yuz14093 yuz14094))",fontsize=16,color="magenta"];20359 -> 20473[label="",style="dashed", color="magenta", weight=3]; 36.98/17.58 20359 -> 20474[label="",style="dashed", color="magenta", weight=3]; 36.98/17.58 20359 -> 20475[label="",style="dashed", color="magenta", weight=3]; 36.98/17.58 20359 -> 20476[label="",style="dashed", color="magenta", weight=3]; 36.98/17.58 20359 -> 20477[label="",style="dashed", color="magenta", weight=3]; 36.98/17.58 20470[label="FiniteMap.glueBal2Mid_key20 (FiniteMap.Branch yuz1412 yuz1413 yuz1414 yuz1415 yuz1416) (FiniteMap.Branch yuz1417 yuz1418 yuz1419 yuz1420 yuz1421) (yuz1422,yuz1423)",fontsize=16,color="black",shape="box"];20470 -> 20585[label="",style="solid", color="black", weight=3]; 36.98/17.58 20471 -> 20246[label="",style="dashed", color="red", weight=0]; 36.98/17.58 20471[label="FiniteMap.glueBal2Mid_key20 (FiniteMap.Branch yuz1412 yuz1413 yuz1414 yuz1415 yuz1416) (FiniteMap.Branch yuz1417 yuz1418 yuz1419 yuz1420 yuz1421) (FiniteMap.findMin (FiniteMap.Branch yuz14250 yuz14251 yuz14252 yuz14253 yuz14254))",fontsize=16,color="magenta"];20471 -> 20586[label="",style="dashed", color="magenta", weight=3]; 36.98/17.58 20471 -> 20587[label="",style="dashed", color="magenta", weight=3]; 36.98/17.58 20471 -> 20588[label="",style="dashed", color="magenta", weight=3]; 36.98/17.58 20471 -> 20589[label="",style="dashed", color="magenta", weight=3]; 36.98/17.58 20471 -> 20590[label="",style="dashed", color="magenta", weight=3]; 36.98/17.58 20362[label="yuz2891",fontsize=16,color="green",shape="box"];20363[label="yuz2893",fontsize=16,color="green",shape="box"];20364[label="yuz2830",fontsize=16,color="green",shape="box"];20365[label="yuz2831",fontsize=16,color="green",shape="box"];20366[label="yuz2891",fontsize=16,color="green",shape="box"];20367[label="yuz2893",fontsize=16,color="green",shape="box"];20368[label="yuz2834",fontsize=16,color="green",shape="box"];20369[label="yuz2894",fontsize=16,color="green",shape="box"];20370[label="yuz2892",fontsize=16,color="green",shape="box"];20371[label="yuz2890",fontsize=16,color="green",shape="box"];20372[label="yuz2892",fontsize=16,color="green",shape="box"];20373[label="yuz2890",fontsize=16,color="green",shape="box"];20374[label="yuz2832",fontsize=16,color="green",shape="box"];20375[label="yuz2894",fontsize=16,color="green",shape="box"];20376[label="yuz2833",fontsize=16,color="green",shape="box"];20361[label="FiniteMap.glueBal2Mid_elt10 (FiniteMap.Branch yuz1431 yuz1432 yuz1433 yuz1434 yuz1435) (FiniteMap.Branch yuz1436 yuz1437 yuz1438 yuz1439 yuz1440) (FiniteMap.findMax (FiniteMap.Branch yuz1441 yuz1442 yuz1443 yuz1444 yuz1445))",fontsize=16,color="burlywood",shape="triangle"];20956[label="yuz1445/FiniteMap.EmptyFM",fontsize=10,color="white",style="solid",shape="box"];20361 -> 20956[label="",style="solid", color="burlywood", weight=9]; 36.98/17.58 20956 -> 20478[label="",style="solid", color="burlywood", weight=3]; 36.98/17.58 20957[label="yuz1445/FiniteMap.Branch yuz14450 yuz14451 yuz14452 yuz14453 yuz14454",fontsize=10,color="white",style="solid",shape="box"];20361 -> 20957[label="",style="solid", color="burlywood", weight=9]; 36.98/17.58 20957 -> 20479[label="",style="solid", color="burlywood", weight=3]; 36.98/17.58 19331[label="yuz2891",fontsize=16,color="green",shape="box"];19332 -> 19212[label="",style="dashed", color="red", weight=0]; 36.98/17.58 19332[label="FiniteMap.deleteMax (FiniteMap.Branch yuz28940 yuz28941 yuz28942 yuz28943 yuz28944)",fontsize=16,color="magenta"];19332 -> 19366[label="",style="dashed", color="magenta", weight=3]; 36.98/17.58 19332 -> 19367[label="",style="dashed", color="magenta", weight=3]; 36.98/17.58 19332 -> 19368[label="",style="dashed", color="magenta", weight=3]; 36.98/17.58 19332 -> 19369[label="",style="dashed", color="magenta", weight=3]; 36.98/17.58 19332 -> 19370[label="",style="dashed", color="magenta", weight=3]; 36.98/17.58 19333[label="yuz2893",fontsize=16,color="green",shape="box"];19334[label="yuz2890",fontsize=16,color="green",shape="box"];20482[label="yuz2833",fontsize=16,color="green",shape="box"];20483[label="yuz2892",fontsize=16,color="green",shape="box"];20484[label="yuz2890",fontsize=16,color="green",shape="box"];20485[label="yuz2894",fontsize=16,color="green",shape="box"];20486[label="yuz2893",fontsize=16,color="green",shape="box"];20487[label="yuz2892",fontsize=16,color="green",shape="box"];20488[label="yuz2894",fontsize=16,color="green",shape="box"];20489[label="yuz2834",fontsize=16,color="green",shape="box"];20490[label="yuz2830",fontsize=16,color="green",shape="box"];20491[label="yuz2893",fontsize=16,color="green",shape="box"];20492[label="yuz2891",fontsize=16,color="green",shape="box"];20493[label="yuz2832",fontsize=16,color="green",shape="box"];20494[label="yuz2890",fontsize=16,color="green",shape="box"];20495[label="yuz2891",fontsize=16,color="green",shape="box"];20496[label="yuz2831",fontsize=16,color="green",shape="box"];20481[label="FiniteMap.glueBal2Mid_key10 (FiniteMap.Branch yuz1448 yuz1449 yuz1450 yuz1451 yuz1452) (FiniteMap.Branch yuz1453 yuz1454 yuz1455 yuz1456 yuz1457) (FiniteMap.findMax (FiniteMap.Branch yuz1458 yuz1459 yuz1460 yuz1461 yuz1462))",fontsize=16,color="burlywood",shape="triangle"];20958[label="yuz1462/FiniteMap.EmptyFM",fontsize=10,color="white",style="solid",shape="box"];20481 -> 20958[label="",style="solid", color="burlywood", weight=9]; 36.98/17.58 20958 -> 20591[label="",style="solid", color="burlywood", weight=3]; 36.98/17.58 20959[label="yuz1462/FiniteMap.Branch yuz14620 yuz14621 yuz14622 yuz14623 yuz14624",fontsize=10,color="white",style="solid",shape="box"];20481 -> 20959[label="",style="solid", color="burlywood", weight=9]; 36.98/17.58 20959 -> 20592[label="",style="solid", color="burlywood", weight=3]; 36.98/17.58 3070[label="Succ (Succ (primPlusNat yuz72000 yuz72000))",fontsize=16,color="green",shape="box"];3070 -> 3119[label="",style="dashed", color="green", weight=3]; 36.98/17.58 3071[label="Zero",fontsize=16,color="green",shape="box"];20595[label="Pos (primMulNat (Succ (Succ Zero)) yuz14460)",fontsize=16,color="green",shape="box"];20595 -> 20615[label="",style="dashed", color="green", weight=3]; 36.98/17.58 20596[label="Neg (primMulNat (Succ (Succ Zero)) yuz14460)",fontsize=16,color="green",shape="box"];20596 -> 20616[label="",style="dashed", color="green", weight=3]; 36.98/17.58 20597[label="FiniteMap.mkBalBranch6Double_L (FiniteMap.Branch yuz28340 yuz28341 yuz28342 FiniteMap.EmptyFM yuz28344) yuz2830 yuz2831 yuz1351 yuz1351 (FiniteMap.Branch yuz28340 yuz28341 yuz28342 FiniteMap.EmptyFM yuz28344)",fontsize=16,color="black",shape="box"];20597 -> 20617[label="",style="solid", color="black", weight=3]; 36.98/17.58 20598[label="FiniteMap.mkBalBranch6Double_L (FiniteMap.Branch yuz28340 yuz28341 yuz28342 (FiniteMap.Branch yuz283430 yuz283431 yuz283432 yuz283433 yuz283434) yuz28344) yuz2830 yuz2831 yuz1351 yuz1351 (FiniteMap.Branch yuz28340 yuz28341 yuz28342 (FiniteMap.Branch yuz283430 yuz283431 yuz283432 yuz283433 yuz283434) yuz28344)",fontsize=16,color="black",shape="box"];20598 -> 20618[label="",style="solid", color="black", weight=3]; 36.98/17.58 20599[label="yuz28341",fontsize=16,color="green",shape="box"];20600[label="yuz28344",fontsize=16,color="green",shape="box"];20601[label="FiniteMap.mkBranch (Pos (Succ (Succ (Succ (Succ Zero))))) yuz2830 yuz2831 yuz1351 yuz28343",fontsize=16,color="black",shape="box"];20601 -> 20619[label="",style="solid", color="black", weight=3]; 36.98/17.58 20602[label="yuz28340",fontsize=16,color="green",shape="box"];20603[label="yuz13514",fontsize=16,color="green",shape="box"];20604 -> 10975[label="",style="dashed", color="red", weight=0]; 36.98/17.58 20604[label="FiniteMap.sizeFM yuz13513",fontsize=16,color="magenta"];20604 -> 20620[label="",style="dashed", color="magenta", weight=3]; 36.98/17.58 20605[label="FiniteMap.mkBalBranch6MkBalBranch10 yuz2834 yuz2830 yuz2831 (FiniteMap.Branch yuz13510 yuz13511 yuz13512 yuz13513 yuz13514) (FiniteMap.Branch yuz13510 yuz13511 yuz13512 yuz13513 yuz13514) yuz2834 yuz13510 yuz13511 yuz13512 yuz13513 yuz13514 otherwise",fontsize=16,color="black",shape="box"];20605 -> 20621[label="",style="solid", color="black", weight=3]; 36.98/17.58 20606[label="FiniteMap.mkBalBranch6Single_R yuz2834 yuz2830 yuz2831 (FiniteMap.Branch yuz13510 yuz13511 yuz13512 yuz13513 yuz13514) (FiniteMap.Branch yuz13510 yuz13511 yuz13512 yuz13513 yuz13514) yuz2834",fontsize=16,color="black",shape="box"];20606 -> 20622[label="",style="solid", color="black", weight=3]; 36.98/17.58 20472[label="yuz1407",fontsize=16,color="green",shape="box"];20473[label="yuz14090",fontsize=16,color="green",shape="box"];20474[label="yuz14093",fontsize=16,color="green",shape="box"];20475[label="yuz14091",fontsize=16,color="green",shape="box"];20476[label="yuz14092",fontsize=16,color="green",shape="box"];20477[label="yuz14094",fontsize=16,color="green",shape="box"];20585[label="yuz1422",fontsize=16,color="green",shape="box"];20586[label="yuz14252",fontsize=16,color="green",shape="box"];20587[label="yuz14250",fontsize=16,color="green",shape="box"];20588[label="yuz14251",fontsize=16,color="green",shape="box"];20589[label="yuz14253",fontsize=16,color="green",shape="box"];20590[label="yuz14254",fontsize=16,color="green",shape="box"];20478[label="FiniteMap.glueBal2Mid_elt10 (FiniteMap.Branch yuz1431 yuz1432 yuz1433 yuz1434 yuz1435) (FiniteMap.Branch yuz1436 yuz1437 yuz1438 yuz1439 yuz1440) (FiniteMap.findMax (FiniteMap.Branch yuz1441 yuz1442 yuz1443 yuz1444 FiniteMap.EmptyFM))",fontsize=16,color="black",shape="box"];20478 -> 20593[label="",style="solid", color="black", weight=3]; 36.98/17.58 20479[label="FiniteMap.glueBal2Mid_elt10 (FiniteMap.Branch yuz1431 yuz1432 yuz1433 yuz1434 yuz1435) (FiniteMap.Branch yuz1436 yuz1437 yuz1438 yuz1439 yuz1440) (FiniteMap.findMax (FiniteMap.Branch yuz1441 yuz1442 yuz1443 yuz1444 (FiniteMap.Branch yuz14450 yuz14451 yuz14452 yuz14453 yuz14454)))",fontsize=16,color="black",shape="box"];20479 -> 20594[label="",style="solid", color="black", weight=3]; 36.98/17.58 19366[label="yuz28944",fontsize=16,color="green",shape="box"];19367[label="yuz28941",fontsize=16,color="green",shape="box"];19368[label="yuz28942",fontsize=16,color="green",shape="box"];19369[label="yuz28943",fontsize=16,color="green",shape="box"];19370[label="yuz28940",fontsize=16,color="green",shape="box"];20591[label="FiniteMap.glueBal2Mid_key10 (FiniteMap.Branch yuz1448 yuz1449 yuz1450 yuz1451 yuz1452) (FiniteMap.Branch yuz1453 yuz1454 yuz1455 yuz1456 yuz1457) (FiniteMap.findMax (FiniteMap.Branch yuz1458 yuz1459 yuz1460 yuz1461 FiniteMap.EmptyFM))",fontsize=16,color="black",shape="box"];20591 -> 20607[label="",style="solid", color="black", weight=3]; 36.98/17.58 20592[label="FiniteMap.glueBal2Mid_key10 (FiniteMap.Branch yuz1448 yuz1449 yuz1450 yuz1451 yuz1452) (FiniteMap.Branch yuz1453 yuz1454 yuz1455 yuz1456 yuz1457) (FiniteMap.findMax (FiniteMap.Branch yuz1458 yuz1459 yuz1460 yuz1461 (FiniteMap.Branch yuz14620 yuz14621 yuz14622 yuz14623 yuz14624)))",fontsize=16,color="black",shape="box"];20592 -> 20608[label="",style="solid", color="black", weight=3]; 36.98/17.58 3119 -> 2818[label="",style="dashed", color="red", weight=0]; 36.98/17.58 3119[label="primPlusNat yuz72000 yuz72000",fontsize=16,color="magenta"];3119 -> 3144[label="",style="dashed", color="magenta", weight=3]; 36.98/17.58 20615[label="primMulNat (Succ (Succ Zero)) yuz14460",fontsize=16,color="burlywood",shape="triangle"];20960[label="yuz14460/Succ yuz144600",fontsize=10,color="white",style="solid",shape="box"];20615 -> 20960[label="",style="solid", color="burlywood", weight=9]; 36.98/17.58 20960 -> 20629[label="",style="solid", color="burlywood", weight=3]; 36.98/17.58 20961[label="yuz14460/Zero",fontsize=10,color="white",style="solid",shape="box"];20615 -> 20961[label="",style="solid", color="burlywood", weight=9]; 36.98/17.58 20961 -> 20630[label="",style="solid", color="burlywood", weight=3]; 36.98/17.58 20616 -> 20615[label="",style="dashed", color="red", weight=0]; 36.98/17.58 20616[label="primMulNat (Succ (Succ Zero)) yuz14460",fontsize=16,color="magenta"];20616 -> 20631[label="",style="dashed", color="magenta", weight=3]; 36.98/17.58 20617[label="error []",fontsize=16,color="red",shape="box"];20618 -> 20653[label="",style="dashed", color="red", weight=0]; 36.98/17.58 20618[label="FiniteMap.mkBranch (Pos (Succ (Succ (Succ (Succ (Succ Zero)))))) yuz283430 yuz283431 (FiniteMap.mkBranch (Pos (Succ (Succ (Succ (Succ (Succ (Succ Zero))))))) yuz2830 yuz2831 yuz1351 yuz283433) (FiniteMap.mkBranch (Pos (Succ (Succ (Succ (Succ (Succ (Succ (Succ Zero)))))))) yuz28340 yuz28341 yuz283434 yuz28344)",fontsize=16,color="magenta"];20618 -> 20654[label="",style="dashed", color="magenta", weight=3]; 36.98/17.58 20618 -> 20655[label="",style="dashed", color="magenta", weight=3]; 36.98/17.58 20618 -> 20656[label="",style="dashed", color="magenta", weight=3]; 36.98/17.58 20618 -> 20657[label="",style="dashed", color="magenta", weight=3]; 36.98/17.58 20618 -> 20658[label="",style="dashed", color="magenta", weight=3]; 36.98/17.58 20618 -> 20659[label="",style="dashed", color="magenta", weight=3]; 36.98/17.58 20618 -> 20660[label="",style="dashed", color="magenta", weight=3]; 36.98/17.58 20618 -> 20661[label="",style="dashed", color="magenta", weight=3]; 36.98/17.58 20618 -> 20662[label="",style="dashed", color="magenta", weight=3]; 36.98/17.58 20619 -> 16040[label="",style="dashed", color="red", weight=0]; 36.98/17.58 20619[label="FiniteMap.mkBranchResult yuz2830 yuz2831 yuz1351 yuz28343",fontsize=16,color="magenta"];20619 -> 20633[label="",style="dashed", color="magenta", weight=3]; 36.98/17.58 20619 -> 20634[label="",style="dashed", color="magenta", weight=3]; 36.98/17.58 20620[label="yuz13513",fontsize=16,color="green",shape="box"];20621[label="FiniteMap.mkBalBranch6MkBalBranch10 yuz2834 yuz2830 yuz2831 (FiniteMap.Branch yuz13510 yuz13511 yuz13512 yuz13513 yuz13514) (FiniteMap.Branch yuz13510 yuz13511 yuz13512 yuz13513 yuz13514) yuz2834 yuz13510 yuz13511 yuz13512 yuz13513 yuz13514 True",fontsize=16,color="black",shape="box"];20621 -> 20635[label="",style="solid", color="black", weight=3]; 36.98/17.58 20622 -> 20653[label="",style="dashed", color="red", weight=0]; 36.98/17.58 20622[label="FiniteMap.mkBranch (Pos (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ Zero))))))))) yuz13510 yuz13511 yuz13513 (FiniteMap.mkBranch (Pos (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ Zero)))))))))) yuz2830 yuz2831 yuz13514 yuz2834)",fontsize=16,color="magenta"];20622 -> 20663[label="",style="dashed", color="magenta", weight=3]; 36.98/17.58 20622 -> 20664[label="",style="dashed", color="magenta", weight=3]; 36.98/17.58 20622 -> 20665[label="",style="dashed", color="magenta", weight=3]; 36.98/17.58 20622 -> 20666[label="",style="dashed", color="magenta", weight=3]; 36.98/17.58 20622 -> 20667[label="",style="dashed", color="magenta", weight=3]; 36.98/17.58 20622 -> 20668[label="",style="dashed", color="magenta", weight=3]; 36.98/17.58 20622 -> 20669[label="",style="dashed", color="magenta", weight=3]; 36.98/17.58 20622 -> 20670[label="",style="dashed", color="magenta", weight=3]; 36.98/17.58 20622 -> 20671[label="",style="dashed", color="magenta", weight=3]; 36.98/17.58 20593[label="FiniteMap.glueBal2Mid_elt10 (FiniteMap.Branch yuz1431 yuz1432 yuz1433 yuz1434 yuz1435) (FiniteMap.Branch yuz1436 yuz1437 yuz1438 yuz1439 yuz1440) (yuz1441,yuz1442)",fontsize=16,color="black",shape="box"];20593 -> 20609[label="",style="solid", color="black", weight=3]; 36.98/17.58 20594 -> 20361[label="",style="dashed", color="red", weight=0]; 36.98/17.58 20594[label="FiniteMap.glueBal2Mid_elt10 (FiniteMap.Branch yuz1431 yuz1432 yuz1433 yuz1434 yuz1435) (FiniteMap.Branch yuz1436 yuz1437 yuz1438 yuz1439 yuz1440) (FiniteMap.findMax (FiniteMap.Branch yuz14450 yuz14451 yuz14452 yuz14453 yuz14454))",fontsize=16,color="magenta"];20594 -> 20610[label="",style="dashed", color="magenta", weight=3]; 36.98/17.58 20594 -> 20611[label="",style="dashed", color="magenta", weight=3]; 36.98/17.58 20594 -> 20612[label="",style="dashed", color="magenta", weight=3]; 36.98/17.58 20594 -> 20613[label="",style="dashed", color="magenta", weight=3]; 36.98/17.58 20594 -> 20614[label="",style="dashed", color="magenta", weight=3]; 36.98/17.58 20607[label="FiniteMap.glueBal2Mid_key10 (FiniteMap.Branch yuz1448 yuz1449 yuz1450 yuz1451 yuz1452) (FiniteMap.Branch yuz1453 yuz1454 yuz1455 yuz1456 yuz1457) (yuz1458,yuz1459)",fontsize=16,color="black",shape="box"];20607 -> 20623[label="",style="solid", color="black", weight=3]; 36.98/17.58 20608 -> 20481[label="",style="dashed", color="red", weight=0]; 36.98/17.58 20608[label="FiniteMap.glueBal2Mid_key10 (FiniteMap.Branch yuz1448 yuz1449 yuz1450 yuz1451 yuz1452) (FiniteMap.Branch yuz1453 yuz1454 yuz1455 yuz1456 yuz1457) (FiniteMap.findMax (FiniteMap.Branch yuz14620 yuz14621 yuz14622 yuz14623 yuz14624))",fontsize=16,color="magenta"];20608 -> 20624[label="",style="dashed", color="magenta", weight=3]; 36.98/17.58 20608 -> 20625[label="",style="dashed", color="magenta", weight=3]; 36.98/17.58 20608 -> 20626[label="",style="dashed", color="magenta", weight=3]; 36.98/17.58 20608 -> 20627[label="",style="dashed", color="magenta", weight=3]; 36.98/17.58 20608 -> 20628[label="",style="dashed", color="magenta", weight=3]; 36.98/17.58 3144[label="yuz72000",fontsize=16,color="green",shape="box"];20629[label="primMulNat (Succ (Succ Zero)) (Succ yuz144600)",fontsize=16,color="black",shape="box"];20629 -> 20645[label="",style="solid", color="black", weight=3]; 36.98/17.58 20630[label="primMulNat (Succ (Succ Zero)) Zero",fontsize=16,color="black",shape="box"];20630 -> 20646[label="",style="solid", color="black", weight=3]; 36.98/17.58 20631[label="yuz14460",fontsize=16,color="green",shape="box"];20654[label="yuz283434",fontsize=16,color="green",shape="box"];20655[label="yuz28341",fontsize=16,color="green",shape="box"];20656[label="Succ (Succ (Succ (Succ Zero)))",fontsize=16,color="green",shape="box"];20657[label="yuz283430",fontsize=16,color="green",shape="box"];20658[label="yuz283431",fontsize=16,color="green",shape="box"];20659[label="yuz28344",fontsize=16,color="green",shape="box"];20660[label="Succ (Succ (Succ (Succ (Succ (Succ Zero)))))",fontsize=16,color="green",shape="box"];20661[label="yuz28340",fontsize=16,color="green",shape="box"];20662[label="FiniteMap.mkBranch (Pos (Succ (Succ (Succ (Succ (Succ (Succ Zero))))))) yuz2830 yuz2831 yuz1351 yuz283433",fontsize=16,color="black",shape="box"];20662 -> 20681[label="",style="solid", color="black", weight=3]; 36.98/17.58 20653[label="FiniteMap.mkBranch (Pos (Succ yuz1477)) yuz1478 yuz1479 yuz1480 (FiniteMap.mkBranch (Pos (Succ yuz1481)) yuz1482 yuz1483 yuz1484 yuz1485)",fontsize=16,color="black",shape="triangle"];20653 -> 20682[label="",style="solid", color="black", weight=3]; 36.98/17.58 20633[label="yuz28343",fontsize=16,color="green",shape="box"];20634[label="yuz1351",fontsize=16,color="green",shape="box"];20635[label="FiniteMap.mkBalBranch6Double_R yuz2834 yuz2830 yuz2831 (FiniteMap.Branch yuz13510 yuz13511 yuz13512 yuz13513 yuz13514) (FiniteMap.Branch yuz13510 yuz13511 yuz13512 yuz13513 yuz13514) yuz2834",fontsize=16,color="burlywood",shape="box"];20962[label="yuz13514/FiniteMap.EmptyFM",fontsize=10,color="white",style="solid",shape="box"];20635 -> 20962[label="",style="solid", color="burlywood", weight=9]; 36.98/17.58 20962 -> 20651[label="",style="solid", color="burlywood", weight=3]; 36.98/17.58 20963[label="yuz13514/FiniteMap.Branch yuz135140 yuz135141 yuz135142 yuz135143 yuz135144",fontsize=10,color="white",style="solid",shape="box"];20635 -> 20963[label="",style="solid", color="burlywood", weight=9]; 36.98/17.58 20963 -> 20652[label="",style="solid", color="burlywood", weight=3]; 36.98/17.58 20663[label="yuz13514",fontsize=16,color="green",shape="box"];20664[label="yuz2831",fontsize=16,color="green",shape="box"];20665[label="Succ (Succ (Succ (Succ (Succ (Succ (Succ Zero))))))",fontsize=16,color="green",shape="box"];20666[label="yuz13510",fontsize=16,color="green",shape="box"];20667[label="yuz13511",fontsize=16,color="green",shape="box"];20668[label="yuz2834",fontsize=16,color="green",shape="box"];20669[label="Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ Zero)))))))",fontsize=16,color="green",shape="box"];20670[label="yuz2830",fontsize=16,color="green",shape="box"];20671[label="yuz13513",fontsize=16,color="green",shape="box"];20609[label="yuz1442",fontsize=16,color="green",shape="box"];20610[label="yuz14451",fontsize=16,color="green",shape="box"];20611[label="yuz14453",fontsize=16,color="green",shape="box"];20612[label="yuz14452",fontsize=16,color="green",shape="box"];20613[label="yuz14450",fontsize=16,color="green",shape="box"];20614[label="yuz14454",fontsize=16,color="green",shape="box"];20623[label="yuz1458",fontsize=16,color="green",shape="box"];20624[label="yuz14622",fontsize=16,color="green",shape="box"];20625[label="yuz14624",fontsize=16,color="green",shape="box"];20626[label="yuz14623",fontsize=16,color="green",shape="box"];20627[label="yuz14621",fontsize=16,color="green",shape="box"];20628[label="yuz14620",fontsize=16,color="green",shape="box"];20645 -> 3069[label="",style="dashed", color="red", weight=0]; 36.98/17.58 20645[label="primPlusNat (primMulNat (Succ Zero) (Succ yuz144600)) (Succ yuz144600)",fontsize=16,color="magenta"];20645 -> 20683[label="",style="dashed", color="magenta", weight=3]; 36.98/17.58 20645 -> 20684[label="",style="dashed", color="magenta", weight=3]; 36.98/17.58 20646[label="Zero",fontsize=16,color="green",shape="box"];20681 -> 16040[label="",style="dashed", color="red", weight=0]; 36.98/17.58 20681[label="FiniteMap.mkBranchResult yuz2830 yuz2831 yuz1351 yuz283433",fontsize=16,color="magenta"];20681 -> 20687[label="",style="dashed", color="magenta", weight=3]; 36.98/17.58 20681 -> 20688[label="",style="dashed", color="magenta", weight=3]; 36.98/17.58 20682 -> 16040[label="",style="dashed", color="red", weight=0]; 36.98/17.58 20682[label="FiniteMap.mkBranchResult yuz1478 yuz1479 yuz1480 (FiniteMap.mkBranch (Pos (Succ yuz1481)) yuz1482 yuz1483 yuz1484 yuz1485)",fontsize=16,color="magenta"];20682 -> 20689[label="",style="dashed", color="magenta", weight=3]; 36.98/17.58 20682 -> 20690[label="",style="dashed", color="magenta", weight=3]; 36.98/17.58 20682 -> 20691[label="",style="dashed", color="magenta", weight=3]; 36.98/17.58 20682 -> 20692[label="",style="dashed", color="magenta", weight=3]; 36.98/17.58 20651[label="FiniteMap.mkBalBranch6Double_R yuz2834 yuz2830 yuz2831 (FiniteMap.Branch yuz13510 yuz13511 yuz13512 yuz13513 FiniteMap.EmptyFM) (FiniteMap.Branch yuz13510 yuz13511 yuz13512 yuz13513 FiniteMap.EmptyFM) yuz2834",fontsize=16,color="black",shape="box"];20651 -> 20685[label="",style="solid", color="black", weight=3]; 36.98/17.58 20652[label="FiniteMap.mkBalBranch6Double_R yuz2834 yuz2830 yuz2831 (FiniteMap.Branch yuz13510 yuz13511 yuz13512 yuz13513 (FiniteMap.Branch yuz135140 yuz135141 yuz135142 yuz135143 yuz135144)) (FiniteMap.Branch yuz13510 yuz13511 yuz13512 yuz13513 (FiniteMap.Branch yuz135140 yuz135141 yuz135142 yuz135143 yuz135144)) yuz2834",fontsize=16,color="black",shape="box"];20652 -> 20686[label="",style="solid", color="black", weight=3]; 36.98/17.58 20683[label="primMulNat (Succ Zero) (Succ yuz144600)",fontsize=16,color="black",shape="box"];20683 -> 20693[label="",style="solid", color="black", weight=3]; 36.98/17.58 20684[label="Succ yuz144600",fontsize=16,color="green",shape="box"];20687[label="yuz283433",fontsize=16,color="green",shape="box"];20688[label="yuz1351",fontsize=16,color="green",shape="box"];20689[label="yuz1479",fontsize=16,color="green",shape="box"];20690[label="FiniteMap.mkBranch (Pos (Succ yuz1481)) yuz1482 yuz1483 yuz1484 yuz1485",fontsize=16,color="black",shape="triangle"];20690 -> 20703[label="",style="solid", color="black", weight=3]; 36.98/17.58 20691[label="yuz1480",fontsize=16,color="green",shape="box"];20692[label="yuz1478",fontsize=16,color="green",shape="box"];20685[label="error []",fontsize=16,color="red",shape="box"];20686 -> 20653[label="",style="dashed", color="red", weight=0]; 36.98/17.58 20686[label="FiniteMap.mkBranch (Pos (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ Zero))))))))))) yuz135140 yuz135141 (FiniteMap.mkBranch (Pos (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ Zero)))))))))))) yuz13510 yuz13511 yuz13513 yuz135143) (FiniteMap.mkBranch (Pos (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ Zero))))))))))))) yuz2830 yuz2831 yuz135144 yuz2834)",fontsize=16,color="magenta"];20686 -> 20694[label="",style="dashed", color="magenta", weight=3]; 36.98/17.58 20686 -> 20695[label="",style="dashed", color="magenta", weight=3]; 36.98/17.58 20686 -> 20696[label="",style="dashed", color="magenta", weight=3]; 36.98/17.58 20686 -> 20697[label="",style="dashed", color="magenta", weight=3]; 36.98/17.58 20686 -> 20698[label="",style="dashed", color="magenta", weight=3]; 36.98/17.58 20686 -> 20699[label="",style="dashed", color="magenta", weight=3]; 36.98/17.58 20686 -> 20700[label="",style="dashed", color="magenta", weight=3]; 36.98/17.58 20686 -> 20701[label="",style="dashed", color="magenta", weight=3]; 36.98/17.58 20686 -> 20702[label="",style="dashed", color="magenta", weight=3]; 36.98/17.58 20693 -> 3069[label="",style="dashed", color="red", weight=0]; 36.98/17.58 20693[label="primPlusNat (primMulNat Zero (Succ yuz144600)) (Succ yuz144600)",fontsize=16,color="magenta"];20693 -> 20704[label="",style="dashed", color="magenta", weight=3]; 36.98/17.58 20693 -> 20705[label="",style="dashed", color="magenta", weight=3]; 36.98/17.58 20703 -> 16040[label="",style="dashed", color="red", weight=0]; 36.98/17.58 20703[label="FiniteMap.mkBranchResult yuz1482 yuz1483 yuz1484 yuz1485",fontsize=16,color="magenta"];20703 -> 20711[label="",style="dashed", color="magenta", weight=3]; 36.98/17.58 20703 -> 20712[label="",style="dashed", color="magenta", weight=3]; 36.98/17.58 20703 -> 20713[label="",style="dashed", color="magenta", weight=3]; 36.98/17.58 20703 -> 20714[label="",style="dashed", color="magenta", weight=3]; 36.98/17.58 20694[label="yuz135144",fontsize=16,color="green",shape="box"];20695[label="yuz2831",fontsize=16,color="green",shape="box"];20696[label="Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ Zero))))))))",fontsize=16,color="green",shape="box"];20697[label="yuz135140",fontsize=16,color="green",shape="box"];20698[label="yuz135141",fontsize=16,color="green",shape="box"];20699[label="yuz2834",fontsize=16,color="green",shape="box"];20700[label="Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ Zero))))))))))",fontsize=16,color="green",shape="box"];20701[label="yuz2830",fontsize=16,color="green",shape="box"];20702 -> 20690[label="",style="dashed", color="red", weight=0]; 36.98/17.58 20702[label="FiniteMap.mkBranch (Pos (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ Zero)))))))))))) yuz13510 yuz13511 yuz13513 yuz135143",fontsize=16,color="magenta"];20702 -> 20706[label="",style="dashed", color="magenta", weight=3]; 36.98/17.58 20702 -> 20707[label="",style="dashed", color="magenta", weight=3]; 36.98/17.58 20702 -> 20708[label="",style="dashed", color="magenta", weight=3]; 36.98/17.58 20702 -> 20709[label="",style="dashed", color="magenta", weight=3]; 36.98/17.58 20702 -> 20710[label="",style="dashed", color="magenta", weight=3]; 36.98/17.58 20704[label="primMulNat Zero (Succ yuz144600)",fontsize=16,color="black",shape="box"];20704 -> 20715[label="",style="solid", color="black", weight=3]; 36.98/17.58 20705[label="Succ yuz144600",fontsize=16,color="green",shape="box"];20711[label="yuz1483",fontsize=16,color="green",shape="box"];20712[label="yuz1485",fontsize=16,color="green",shape="box"];20713[label="yuz1484",fontsize=16,color="green",shape="box"];20714[label="yuz1482",fontsize=16,color="green",shape="box"];20706[label="yuz13513",fontsize=16,color="green",shape="box"];20707[label="yuz13511",fontsize=16,color="green",shape="box"];20708[label="yuz135143",fontsize=16,color="green",shape="box"];20709[label="Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ Zero)))))))))",fontsize=16,color="green",shape="box"];20710[label="yuz13510",fontsize=16,color="green",shape="box"];20715[label="Zero",fontsize=16,color="green",shape="box"];} 36.98/17.58 36.98/17.58 ---------------------------------------- 36.98/17.58 36.98/17.58 (14) 36.98/17.58 Complex Obligation (AND) 36.98/17.58 36.98/17.58 ---------------------------------------- 36.98/17.58 36.98/17.58 (15) 36.98/17.58 Obligation: 36.98/17.58 Q DP problem: 36.98/17.58 The TRS P consists of the following rules: 36.98/17.58 36.98/17.58 new_addToFM_C1(yuz1383, yuz1384, yuz1385, yuz1386, yuz1387, yuz1388, yuz1389, True, bd, be) -> new_addToFM_C(yuz1387, yuz1388, yuz1389, bd, be) 36.98/17.58 new_addToFM_C3(yuz10640, yuz10641, yuz10642, yuz10643, yuz10644, yuz1065, yuz1066, bb, bc) -> new_addToFM_C2(yuz10640, yuz10641, yuz10642, yuz10643, yuz10644, yuz1065, yuz1066, new_lt(yuz1065, yuz10640, bb), bb, bc) 36.98/17.58 new_addToFM_C2(yuz1366, yuz1367, yuz1368, yuz1369, yuz1370, yuz1371, yuz1372, False, h, ba) -> new_addToFM_C1(yuz1366, yuz1367, yuz1368, yuz1369, yuz1370, yuz1371, yuz1372, new_gt(yuz1371, yuz1366, h), h, ba) 36.98/17.58 new_addToFM_C2(yuz1366, yuz1367, yuz1368, Branch(yuz13690, yuz13691, yuz13692, yuz13693, yuz13694), yuz1370, yuz1371, yuz1372, True, h, ba) -> new_addToFM_C3(yuz13690, yuz13691, yuz13692, yuz13693, yuz13694, yuz1371, yuz1372, h, ba) 36.98/17.58 new_addToFM_C(Branch(yuz13690, yuz13691, yuz13692, yuz13693, yuz13694), yuz1371, yuz1372, h, ba) -> new_addToFM_C3(yuz13690, yuz13691, yuz13692, yuz13693, yuz13694, yuz1371, yuz1372, h, ba) 36.98/17.58 36.98/17.58 The TRS R consists of the following rules: 36.98/17.58 36.98/17.58 new_lt(yuz1065, yuz10640, ty_Int) -> new_lt0(yuz1065, yuz10640) 36.98/17.58 new_lt0(Neg(Succ(yuz101100)), Neg(yuz10070)) -> new_esEs4(yuz10070, Succ(yuz101100)) 36.98/17.58 new_esEs6(Zero, yuz137100) -> new_esEs8 36.98/17.58 new_gt(yuz1371, yuz1366, ty_Ordering) -> error([]) 36.98/17.58 new_lt0(Pos(Succ(yuz101100)), Pos(yuz10070)) -> new_esEs4(Succ(yuz101100), yuz10070) 36.98/17.58 new_lt(yuz1065, yuz10640, ty_Ordering) -> error([]) 36.98/17.58 new_lt(yuz1065, yuz10640, app(ty_Ratio, cc)) -> error([]) 36.98/17.58 new_esEs10(yuz137100, Succ(yuz136600)) -> new_esEs7(yuz137100, yuz136600) 36.98/17.58 new_lt0(Pos(Zero), Neg(Zero)) -> new_esEs5 36.98/17.58 new_lt0(Neg(Zero), Pos(Zero)) -> new_esEs5 36.98/17.58 new_lt0(Neg(Zero), Neg(Succ(yuz100700))) -> new_esEs4(Succ(yuz100700), Zero) 36.98/17.58 new_esEs2 -> False 36.98/17.58 new_lt(yuz1065, yuz10640, app(app(app(ty_@3, cd), ce), cf)) -> error([]) 36.98/17.58 new_gt0(Neg(Zero), Neg(Zero)) -> new_esEs2 36.98/17.58 new_esEs3 -> False 36.98/17.58 new_lt0(Pos(Zero), Pos(Succ(yuz100700))) -> new_esEs4(Zero, Succ(yuz100700)) 36.98/17.58 new_gt(yuz1371, yuz1366, app(app(app(ty_@3, dg), dh), ea)) -> error([]) 36.98/17.58 new_gt0(Pos(Zero), Neg(Succ(yuz136600))) -> new_esEs9 36.98/17.58 new_lt0(Pos(Succ(yuz101100)), Neg(yuz10070)) -> new_esEs3 36.98/17.58 new_lt(yuz1065, yuz10640, ty_Char) -> error([]) 36.98/17.58 new_esEs10(yuz137100, Zero) -> new_esEs9 36.98/17.58 new_esEs8 -> False 36.98/17.58 new_gt0(Pos(Succ(yuz137100)), Pos(yuz13660)) -> new_esEs10(yuz137100, yuz13660) 36.98/17.58 new_lt(yuz1065, yuz10640, ty_Float) -> error([]) 36.98/17.58 new_gt(yuz1371, yuz1366, app(app(ty_Either, da), db)) -> error([]) 36.98/17.58 new_gt0(Neg(Zero), Neg(Succ(yuz136600))) -> new_esEs10(yuz136600, Zero) 36.98/17.58 new_gt(yuz1371, yuz1366, ty_Integer) -> error([]) 36.98/17.58 new_lt(yuz1065, yuz10640, app(ty_Maybe, cg)) -> error([]) 36.98/17.58 new_lt(yuz1065, yuz10640, ty_Bool) -> error([]) 36.98/17.58 new_gt(yuz1371, yuz1366, app(ty_[], de)) -> error([]) 36.98/17.58 new_lt(yuz1065, yuz10640, ty_Double) -> error([]) 36.98/17.58 new_lt(yuz1065, yuz10640, app(app(ty_@2, bh), ca)) -> error([]) 36.98/17.58 new_esEs5 -> False 36.98/17.58 new_esEs6(Succ(yuz136600), yuz137100) -> new_esEs7(yuz136600, yuz137100) 36.98/17.58 new_lt0(Pos(Zero), Pos(Zero)) -> new_esEs5 36.98/17.58 new_esEs4(Succ(yuz220), Succ(yuz17000)) -> new_esEs4(yuz220, yuz17000) 36.98/17.58 new_gt0(Pos(Zero), Pos(Succ(yuz136600))) -> new_esEs6(Zero, yuz136600) 36.98/17.58 new_gt0(Neg(Succ(yuz137100)), Pos(yuz13660)) -> new_esEs8 36.98/17.58 new_lt0(Neg(Succ(yuz101100)), Pos(yuz10070)) -> new_esEs1 36.98/17.58 new_esEs7(Succ(yuz1371000), Zero) -> new_esEs9 36.98/17.58 new_lt(yuz1065, yuz10640, ty_@0) -> error([]) 36.98/17.58 new_gt(yuz1371, yuz1366, app(app(ty_@2, dc), dd)) -> error([]) 36.98/17.58 new_gt(yuz1371, yuz1366, ty_Double) -> error([]) 36.98/17.58 new_esEs7(Succ(yuz1371000), Succ(yuz1366000)) -> new_esEs7(yuz1371000, yuz1366000) 36.98/17.58 new_gt(yuz1371, yuz1366, ty_Bool) -> error([]) 36.98/17.58 new_lt(yuz1065, yuz10640, app(ty_[], cb)) -> error([]) 36.98/17.58 new_esEs4(Succ(yuz220), Zero) -> new_esEs3 36.98/17.58 new_gt0(Neg(Succ(yuz137100)), Neg(yuz13660)) -> new_esEs6(yuz13660, yuz137100) 36.98/17.58 new_gt(yuz1371, yuz1366, ty_@0) -> error([]) 36.98/17.58 new_gt0(Pos(Succ(yuz137100)), Neg(yuz13660)) -> new_esEs9 36.98/17.58 new_lt(yuz1065, yuz10640, app(app(ty_Either, bf), bg)) -> error([]) 36.98/17.58 new_gt0(Neg(Zero), Pos(Succ(yuz136600))) -> new_esEs8 36.98/17.58 new_lt0(Pos(Zero), Neg(Succ(yuz100700))) -> new_esEs3 36.98/17.58 new_gt(yuz1371, yuz1366, ty_Char) -> error([]) 36.98/17.58 new_gt(yuz1371, yuz1366, ty_Float) -> error([]) 36.98/17.58 new_gt(yuz1371, yuz1366, app(ty_Maybe, eb)) -> error([]) 36.98/17.58 new_esEs4(Zero, Zero) -> new_esEs5 36.98/17.58 new_esEs1 -> True 36.98/17.58 new_lt(yuz1065, yuz10640, ty_Integer) -> error([]) 36.98/17.58 new_esEs4(Zero, Succ(yuz17000)) -> new_esEs1 36.98/17.58 new_gt(yuz1371, yuz1366, ty_Int) -> new_gt0(yuz1371, yuz1366) 36.98/17.58 new_esEs7(Zero, Zero) -> new_esEs2 36.98/17.58 new_gt0(Pos(Zero), Neg(Zero)) -> new_esEs2 36.98/17.58 new_gt0(Neg(Zero), Pos(Zero)) -> new_esEs2 36.98/17.58 new_gt0(Pos(Zero), Pos(Zero)) -> new_esEs2 36.98/17.58 new_lt0(Neg(Zero), Neg(Zero)) -> new_esEs5 36.98/17.58 new_esEs9 -> True 36.98/17.58 new_lt0(Neg(Zero), Pos(Succ(yuz100700))) -> new_esEs1 36.98/17.58 new_esEs7(Zero, Succ(yuz1366000)) -> new_esEs8 36.98/17.58 new_gt(yuz1371, yuz1366, app(ty_Ratio, df)) -> error([]) 36.98/17.58 36.98/17.58 The set Q consists of the following terms: 36.98/17.58 36.98/17.58 new_esEs7(Succ(x0), Succ(x1)) 36.98/17.58 new_esEs9 36.98/17.58 new_gt(x0, x1, ty_@0) 36.98/17.58 new_lt(x0, x1, app(app(ty_Either, x2), x3)) 36.98/17.58 new_lt0(Pos(Succ(x0)), Pos(x1)) 36.98/17.58 new_gt(x0, x1, app(app(ty_@2, x2), x3)) 36.98/17.58 new_gt(x0, x1, ty_Double) 36.98/17.58 new_esEs4(Zero, Succ(x0)) 36.98/17.58 new_lt0(Pos(Succ(x0)), Neg(x1)) 36.98/17.58 new_lt0(Neg(Succ(x0)), Pos(x1)) 36.98/17.58 new_esEs7(Zero, Zero) 36.98/17.58 new_lt(x0, x1, app(ty_[], x2)) 36.98/17.58 new_gt(x0, x1, ty_Char) 36.98/17.58 new_lt0(Pos(Zero), Neg(Zero)) 36.98/17.58 new_lt0(Neg(Zero), Pos(Zero)) 36.98/17.58 new_lt(x0, x1, ty_Ordering) 36.98/17.58 new_lt(x0, x1, ty_Int) 36.98/17.58 new_lt0(Pos(Zero), Pos(Zero)) 36.98/17.58 new_gt0(Neg(Succ(x0)), Neg(x1)) 36.98/17.58 new_gt0(Pos(Zero), Pos(Zero)) 36.98/17.58 new_gt(x0, x1, app(app(app(ty_@3, x2), x3), x4)) 36.98/17.58 new_esEs4(Succ(x0), Zero) 36.98/17.58 new_esEs6(Succ(x0), x1) 36.98/17.58 new_gt(x0, x1, ty_Int) 36.98/17.58 new_lt0(Neg(Zero), Neg(Succ(x0))) 36.98/17.58 new_esEs8 36.98/17.58 new_gt0(Neg(Zero), Neg(Succ(x0))) 36.98/17.58 new_lt0(Pos(Zero), Neg(Succ(x0))) 36.98/17.58 new_lt0(Neg(Zero), Pos(Succ(x0))) 36.98/17.58 new_lt(x0, x1, app(ty_Ratio, x2)) 36.98/17.58 new_gt0(Pos(Zero), Pos(Succ(x0))) 36.98/17.58 new_esEs3 36.98/17.58 new_lt(x0, x1, app(app(ty_@2, x2), x3)) 36.98/17.58 new_lt(x0, x1, app(app(app(ty_@3, x2), x3), x4)) 36.98/17.58 new_esEs5 36.98/17.58 new_lt(x0, x1, app(ty_Maybe, x2)) 36.98/17.58 new_lt(x0, x1, ty_Double) 36.98/17.58 new_esEs6(Zero, x0) 36.98/17.58 new_gt(x0, x1, app(ty_Ratio, x2)) 36.98/17.58 new_gt(x0, x1, ty_Ordering) 36.98/17.58 new_esEs2 36.98/17.58 new_lt(x0, x1, ty_Char) 36.98/17.58 new_gt0(Pos(Zero), Neg(Succ(x0))) 36.98/17.58 new_lt(x0, x1, ty_@0) 36.98/17.58 new_gt0(Neg(Zero), Pos(Succ(x0))) 36.98/17.58 new_esEs10(x0, Zero) 36.98/17.58 new_esEs1 36.98/17.58 new_gt0(Pos(Zero), Neg(Zero)) 36.98/17.58 new_gt0(Neg(Zero), Pos(Zero)) 36.98/17.58 new_lt(x0, x1, ty_Float) 36.98/17.58 new_gt(x0, x1, app(app(ty_Either, x2), x3)) 36.98/17.58 new_lt0(Neg(Succ(x0)), Neg(x1)) 36.98/17.58 new_lt(x0, x1, ty_Bool) 36.98/17.58 new_esEs4(Succ(x0), Succ(x1)) 36.98/17.58 new_gt0(Neg(Succ(x0)), Pos(x1)) 36.98/17.58 new_gt0(Pos(Succ(x0)), Neg(x1)) 36.98/17.58 new_esEs7(Succ(x0), Zero) 36.98/17.58 new_gt(x0, x1, ty_Bool) 36.98/17.58 new_gt(x0, x1, app(ty_[], x2)) 36.98/17.58 new_lt(x0, x1, ty_Integer) 36.98/17.58 new_esEs4(Zero, Zero) 36.98/17.58 new_lt0(Pos(Zero), Pos(Succ(x0))) 36.98/17.58 new_gt0(Pos(Succ(x0)), Pos(x1)) 36.98/17.58 new_gt0(Neg(Zero), Neg(Zero)) 36.98/17.58 new_gt(x0, x1, app(ty_Maybe, x2)) 36.98/17.58 new_esEs7(Zero, Succ(x0)) 36.98/17.58 new_gt(x0, x1, ty_Float) 36.98/17.58 new_gt(x0, x1, ty_Integer) 36.98/17.58 new_esEs10(x0, Succ(x1)) 36.98/17.58 new_lt0(Neg(Zero), Neg(Zero)) 36.98/17.58 36.98/17.58 We have to consider all minimal (P,Q,R)-chains. 36.98/17.58 ---------------------------------------- 36.98/17.58 36.98/17.58 (16) QDPSizeChangeProof (EQUIVALENT) 36.98/17.58 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. 36.98/17.58 36.98/17.58 From the DPs we obtained the following set of size-change graphs: 36.98/17.58 *new_addToFM_C(Branch(yuz13690, yuz13691, yuz13692, yuz13693, yuz13694), yuz1371, yuz1372, h, ba) -> new_addToFM_C3(yuz13690, yuz13691, yuz13692, yuz13693, yuz13694, yuz1371, yuz1372, h, ba) 36.98/17.58 The graph contains the following edges 1 > 1, 1 > 2, 1 > 3, 1 > 4, 1 > 5, 2 >= 6, 3 >= 7, 4 >= 8, 5 >= 9 36.98/17.58 36.98/17.58 36.98/17.58 *new_addToFM_C2(yuz1366, yuz1367, yuz1368, yuz1369, yuz1370, yuz1371, yuz1372, False, h, ba) -> new_addToFM_C1(yuz1366, yuz1367, yuz1368, yuz1369, yuz1370, yuz1371, yuz1372, new_gt(yuz1371, yuz1366, h), h, ba) 36.98/17.58 The graph contains the following edges 1 >= 1, 2 >= 2, 3 >= 3, 4 >= 4, 5 >= 5, 6 >= 6, 7 >= 7, 9 >= 9, 10 >= 10 36.98/17.58 36.98/17.58 36.98/17.58 *new_addToFM_C2(yuz1366, yuz1367, yuz1368, Branch(yuz13690, yuz13691, yuz13692, yuz13693, yuz13694), yuz1370, yuz1371, yuz1372, True, h, ba) -> new_addToFM_C3(yuz13690, yuz13691, yuz13692, yuz13693, yuz13694, yuz1371, yuz1372, h, ba) 36.98/17.58 The graph contains the following edges 4 > 1, 4 > 2, 4 > 3, 4 > 4, 4 > 5, 6 >= 6, 7 >= 7, 9 >= 8, 10 >= 9 36.98/17.58 36.98/17.58 36.98/17.58 *new_addToFM_C1(yuz1383, yuz1384, yuz1385, yuz1386, yuz1387, yuz1388, yuz1389, True, bd, be) -> new_addToFM_C(yuz1387, yuz1388, yuz1389, bd, be) 36.98/17.58 The graph contains the following edges 5 >= 1, 6 >= 2, 7 >= 3, 9 >= 4, 10 >= 5 36.98/17.58 36.98/17.58 36.98/17.58 *new_addToFM_C3(yuz10640, yuz10641, yuz10642, yuz10643, yuz10644, yuz1065, yuz1066, bb, bc) -> new_addToFM_C2(yuz10640, yuz10641, yuz10642, yuz10643, yuz10644, yuz1065, yuz1066, new_lt(yuz1065, yuz10640, bb), bb, bc) 36.98/17.58 The graph contains the following edges 1 >= 1, 2 >= 2, 3 >= 3, 4 >= 4, 5 >= 5, 6 >= 6, 7 >= 7, 8 >= 9, 9 >= 10 36.98/17.58 36.98/17.58 36.98/17.58 ---------------------------------------- 36.98/17.58 36.98/17.58 (17) 36.98/17.58 YES 36.98/17.58 36.98/17.58 ---------------------------------------- 36.98/17.58 36.98/17.58 (18) 36.98/17.58 Obligation: 36.98/17.58 Q DP problem: 36.98/17.58 The TRS P consists of the following rules: 36.98/17.58 36.98/17.58 new_mkVBalBranch3(yuz1065, yuz1066, yuz10640, yuz10641, yuz10642, yuz10643, yuz10644, yuz105930, yuz105931, yuz105932, yuz105933, yuz105934, h, ba) -> new_mkVBalBranch3MkVBalBranch2(yuz105930, yuz105931, yuz105932, yuz105933, yuz105934, yuz10640, yuz10641, yuz10642, yuz10643, yuz10644, yuz1065, yuz1066, new_lt0(new_sr(new_mkVBalBranch3Size_l(yuz105930, yuz105931, yuz105932, yuz105933, yuz105934, yuz10640, yuz10641, yuz10642, yuz10643, yuz10644, h, ba)), new_mkVBalBranch3Size_r(yuz105930, yuz105931, yuz105932, yuz105933, yuz105934, yuz10640, yuz10641, yuz10642, yuz10643, yuz10644, h, ba)), h, ba) 36.98/17.58 new_mkVBalBranch3MkVBalBranch2(yuz10590, yuz10591, yuz10592, Branch(yuz105930, yuz105931, yuz105932, yuz105933, yuz105934), yuz10594, yuz10640, yuz10641, yuz10642, yuz10643, yuz10644, yuz1065, yuz1066, True, h, ba) -> new_mkVBalBranch3MkVBalBranch2(yuz105930, yuz105931, yuz105932, yuz105933, yuz105934, yuz10640, yuz10641, yuz10642, yuz10643, yuz10644, yuz1065, yuz1066, new_lt0(new_sr(new_mkVBalBranch3Size_l(yuz105930, yuz105931, yuz105932, yuz105933, yuz105934, yuz10640, yuz10641, yuz10642, yuz10643, yuz10644, h, ba)), new_mkVBalBranch3Size_r(yuz105930, yuz105931, yuz105932, yuz105933, yuz105934, yuz10640, yuz10641, yuz10642, yuz10643, yuz10644, h, ba)), h, ba) 36.98/17.58 new_mkVBalBranch3MkVBalBranch1(yuz10590, yuz10591, yuz10592, yuz10593, yuz10594, yuz10640, yuz10641, yuz10642, yuz10643, Branch(yuz106440, yuz106441, yuz106442, yuz106443, yuz106444), yuz1065, yuz1066, True, h, ba) -> new_mkVBalBranch3(yuz1065, yuz1066, yuz106440, yuz106441, yuz106442, yuz106443, yuz106444, yuz10590, yuz10591, yuz10592, yuz10593, yuz10594, h, ba) 36.98/17.58 new_mkVBalBranch3MkVBalBranch2(yuz10590, yuz10591, yuz10592, yuz10593, yuz10594, yuz10640, yuz10641, yuz10642, yuz10643, yuz10644, yuz1065, yuz1066, False, h, ba) -> new_mkVBalBranch3MkVBalBranch1(yuz10590, yuz10591, yuz10592, yuz10593, yuz10594, yuz10640, yuz10641, yuz10642, yuz10643, yuz10644, yuz1065, yuz1066, new_lt0(new_sr(new_mkVBalBranch3Size_r(yuz10590, yuz10591, yuz10592, yuz10593, yuz10594, yuz10640, yuz10641, yuz10642, yuz10643, yuz10644, h, ba)), new_mkVBalBranch3Size_l(yuz10590, yuz10591, yuz10592, yuz10593, yuz10594, yuz10640, yuz10641, yuz10642, yuz10643, yuz10644, h, ba)), h, ba) 36.98/17.58 36.98/17.58 The TRS R consists of the following rules: 36.98/17.58 36.98/17.58 new_sr(Pos(yuz12960)) -> Pos(new_primMulNat(yuz12960)) 36.98/17.58 new_lt0(Neg(Succ(yuz101100)), Neg(yuz10070)) -> new_esEs4(yuz10070, Succ(yuz101100)) 36.98/17.58 new_esEs5 -> False 36.98/17.58 new_lt0(Pos(Succ(yuz101100)), Pos(yuz10070)) -> new_esEs4(Succ(yuz101100), yuz10070) 36.98/17.58 new_lt0(Pos(Zero), Pos(Zero)) -> new_esEs5 36.98/17.58 new_esEs4(Succ(yuz220), Succ(yuz17000)) -> new_esEs4(yuz220, yuz17000) 36.98/17.58 new_primPlusNat2(yuz209, Succ(yuz2100)) -> Succ(Succ(new_primPlusNat1(yuz209, yuz2100))) 36.98/17.58 new_lt0(Pos(Zero), Neg(Zero)) -> new_esEs5 36.98/17.58 new_lt0(Neg(Zero), Pos(Zero)) -> new_esEs5 36.98/17.58 new_lt0(Neg(Zero), Neg(Succ(yuz100700))) -> new_esEs4(Succ(yuz100700), Zero) 36.98/17.58 new_lt0(Neg(Succ(yuz101100)), Pos(yuz10070)) -> new_esEs1 36.98/17.58 new_primPlusNat3(Succ(yuz72000)) -> Succ(Succ(new_primPlusNat3(yuz72000))) 36.98/17.58 new_primPlusNat2(yuz209, Zero) -> Succ(yuz209) 36.98/17.58 new_esEs3 -> False 36.98/17.58 new_primMulNat(Zero) -> Zero 36.98/17.58 new_primPlusNat3(Zero) -> Zero 36.98/17.58 new_sizeFM(Branch(yuz10000, yuz10001, yuz10002, yuz10003, yuz10004), bb, bc) -> yuz10002 36.98/17.58 new_lt0(Pos(Zero), Pos(Succ(yuz100700))) -> new_esEs4(Zero, Succ(yuz100700)) 36.98/17.58 new_esEs4(Succ(yuz220), Zero) -> new_esEs3 36.98/17.58 new_mkVBalBranch3Size_l(yuz10590, yuz10591, yuz10592, yuz10593, yuz10594, yuz10640, yuz10641, yuz10642, yuz10643, yuz10644, h, ba) -> new_sizeFM(Branch(yuz10640, yuz10641, yuz10642, yuz10643, yuz10644), h, ba) 36.98/17.58 new_lt0(Pos(Zero), Neg(Succ(yuz100700))) -> new_esEs3 36.98/17.58 new_primPlusNat1(Succ(yuz2090), Zero) -> Succ(yuz2090) 36.98/17.58 new_primPlusNat1(Zero, Succ(yuz21000)) -> Succ(yuz21000) 36.98/17.58 new_mkVBalBranch3Size_r(yuz10590, yuz10591, yuz10592, yuz10593, yuz10594, yuz10640, yuz10641, yuz10642, yuz10643, yuz10644, h, ba) -> new_sizeFM(Branch(yuz10590, yuz10591, yuz10592, yuz10593, yuz10594), h, ba) 36.98/17.58 new_primMulNat(Succ(yuz105000)) -> new_primPlusNat1(new_primMulNat0(yuz105000), Succ(yuz105000)) 36.98/17.58 new_primPlusNat1(Succ(yuz2090), Succ(yuz21000)) -> Succ(Succ(new_primPlusNat1(yuz2090, yuz21000))) 36.98/17.58 new_primPlusNat1(Zero, Zero) -> Zero 36.98/17.58 new_esEs4(Zero, Zero) -> new_esEs5 36.98/17.58 new_esEs1 -> True 36.98/17.58 new_sr(Neg(yuz12960)) -> Neg(new_primMulNat(yuz12960)) 36.98/17.58 new_esEs4(Zero, Succ(yuz17000)) -> new_esEs1 36.98/17.58 new_lt0(Pos(Succ(yuz101100)), Neg(yuz10070)) -> new_esEs3 36.98/17.58 new_sizeFM(EmptyFM, bb, bc) -> Pos(Zero) 36.98/17.58 new_lt0(Neg(Zero), Neg(Zero)) -> new_esEs5 36.98/17.58 new_lt0(Neg(Zero), Pos(Succ(yuz100700))) -> new_esEs1 36.98/17.58 new_primMulNat0(yuz9200) -> new_primPlusNat2(Succ(new_primPlusNat2(new_primPlusNat3(yuz9200), yuz9200)), Succ(yuz9200)) 36.98/17.58 36.98/17.58 The set Q consists of the following terms: 36.98/17.58 36.98/17.58 new_lt0(Pos(Zero), Neg(Succ(x0))) 36.98/17.58 new_lt0(Neg(Zero), Pos(Succ(x0))) 36.98/17.58 new_mkVBalBranch3Size_l(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11) 36.98/17.58 new_primPlusNat1(Succ(x0), Zero) 36.98/17.58 new_primPlusNat2(x0, Succ(x1)) 36.98/17.58 new_esEs3 36.98/17.58 new_lt0(Pos(Succ(x0)), Pos(x1)) 36.98/17.58 new_mkVBalBranch3Size_r(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11) 36.98/17.58 new_esEs4(Zero, Succ(x0)) 36.98/17.58 new_esEs5 36.98/17.58 new_lt0(Neg(Succ(x0)), Pos(x1)) 36.98/17.58 new_lt0(Pos(Succ(x0)), Neg(x1)) 36.98/17.58 new_primMulNat(Zero) 36.98/17.58 new_sizeFM(EmptyFM, x0, x1) 36.98/17.58 new_sr(Neg(x0)) 36.98/17.58 new_lt0(Pos(Zero), Neg(Zero)) 36.98/17.58 new_lt0(Neg(Zero), Pos(Zero)) 36.98/17.58 new_primPlusNat1(Zero, Succ(x0)) 36.98/17.58 new_primPlusNat1(Succ(x0), Succ(x1)) 36.98/17.58 new_esEs1 36.98/17.58 new_sizeFM(Branch(x0, x1, x2, x3, x4), x5, x6) 36.98/17.58 new_lt0(Neg(Succ(x0)), Neg(x1)) 36.98/17.58 new_lt0(Pos(Zero), Pos(Zero)) 36.98/17.58 new_esEs4(Succ(x0), Succ(x1)) 36.98/17.58 new_primPlusNat1(Zero, Zero) 36.98/17.58 new_primMulNat0(x0) 36.98/17.58 new_primPlusNat3(Zero) 36.98/17.58 new_esEs4(Zero, Zero) 36.98/17.58 new_lt0(Pos(Zero), Pos(Succ(x0))) 36.98/17.58 new_primPlusNat2(x0, Zero) 36.98/17.58 new_esEs4(Succ(x0), Zero) 36.98/17.58 new_primPlusNat3(Succ(x0)) 36.98/17.58 new_sr(Pos(x0)) 36.98/17.58 new_lt0(Neg(Zero), Neg(Succ(x0))) 36.98/17.58 new_primMulNat(Succ(x0)) 36.98/17.58 new_lt0(Neg(Zero), Neg(Zero)) 36.98/17.58 36.98/17.58 We have to consider all minimal (P,Q,R)-chains. 36.98/17.58 ---------------------------------------- 36.98/17.58 36.98/17.58 (19) QDPSizeChangeProof (EQUIVALENT) 36.98/17.58 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. 36.98/17.58 36.98/17.58 From the DPs we obtained the following set of size-change graphs: 36.98/17.58 *new_mkVBalBranch3MkVBalBranch1(yuz10590, yuz10591, yuz10592, yuz10593, yuz10594, yuz10640, yuz10641, yuz10642, yuz10643, Branch(yuz106440, yuz106441, yuz106442, yuz106443, yuz106444), yuz1065, yuz1066, True, h, ba) -> new_mkVBalBranch3(yuz1065, yuz1066, yuz106440, yuz106441, yuz106442, yuz106443, yuz106444, yuz10590, yuz10591, yuz10592, yuz10593, yuz10594, h, ba) 36.98/17.58 The graph contains the following edges 11 >= 1, 12 >= 2, 10 > 3, 10 > 4, 10 > 5, 10 > 6, 10 > 7, 1 >= 8, 2 >= 9, 3 >= 10, 4 >= 11, 5 >= 12, 14 >= 13, 15 >= 14 36.98/17.58 36.98/17.58 36.98/17.58 *new_mkVBalBranch3(yuz1065, yuz1066, yuz10640, yuz10641, yuz10642, yuz10643, yuz10644, yuz105930, yuz105931, yuz105932, yuz105933, yuz105934, h, ba) -> new_mkVBalBranch3MkVBalBranch2(yuz105930, yuz105931, yuz105932, yuz105933, yuz105934, yuz10640, yuz10641, yuz10642, yuz10643, yuz10644, yuz1065, yuz1066, new_lt0(new_sr(new_mkVBalBranch3Size_l(yuz105930, yuz105931, yuz105932, yuz105933, yuz105934, yuz10640, yuz10641, yuz10642, yuz10643, yuz10644, h, ba)), new_mkVBalBranch3Size_r(yuz105930, yuz105931, yuz105932, yuz105933, yuz105934, yuz10640, yuz10641, yuz10642, yuz10643, yuz10644, h, ba)), h, ba) 36.98/17.58 The graph contains the following edges 8 >= 1, 9 >= 2, 10 >= 3, 11 >= 4, 12 >= 5, 3 >= 6, 4 >= 7, 5 >= 8, 6 >= 9, 7 >= 10, 1 >= 11, 2 >= 12, 13 >= 14, 14 >= 15 36.98/17.58 36.98/17.58 36.98/17.58 *new_mkVBalBranch3MkVBalBranch2(yuz10590, yuz10591, yuz10592, Branch(yuz105930, yuz105931, yuz105932, yuz105933, yuz105934), yuz10594, yuz10640, yuz10641, yuz10642, yuz10643, yuz10644, yuz1065, yuz1066, True, h, ba) -> new_mkVBalBranch3MkVBalBranch2(yuz105930, yuz105931, yuz105932, yuz105933, yuz105934, yuz10640, yuz10641, yuz10642, yuz10643, yuz10644, yuz1065, yuz1066, new_lt0(new_sr(new_mkVBalBranch3Size_l(yuz105930, yuz105931, yuz105932, yuz105933, yuz105934, yuz10640, yuz10641, yuz10642, yuz10643, yuz10644, h, ba)), new_mkVBalBranch3Size_r(yuz105930, yuz105931, yuz105932, yuz105933, yuz105934, yuz10640, yuz10641, yuz10642, yuz10643, yuz10644, h, ba)), h, ba) 36.98/17.58 The graph contains the following edges 4 > 1, 4 > 2, 4 > 3, 4 > 4, 4 > 5, 6 >= 6, 7 >= 7, 8 >= 8, 9 >= 9, 10 >= 10, 11 >= 11, 12 >= 12, 14 >= 14, 15 >= 15 36.98/17.58 36.98/17.58 36.98/17.58 *new_mkVBalBranch3MkVBalBranch2(yuz10590, yuz10591, yuz10592, yuz10593, yuz10594, yuz10640, yuz10641, yuz10642, yuz10643, yuz10644, yuz1065, yuz1066, False, h, ba) -> new_mkVBalBranch3MkVBalBranch1(yuz10590, yuz10591, yuz10592, yuz10593, yuz10594, yuz10640, yuz10641, yuz10642, yuz10643, yuz10644, yuz1065, yuz1066, new_lt0(new_sr(new_mkVBalBranch3Size_r(yuz10590, yuz10591, yuz10592, yuz10593, yuz10594, yuz10640, yuz10641, yuz10642, yuz10643, yuz10644, h, ba)), new_mkVBalBranch3Size_l(yuz10590, yuz10591, yuz10592, yuz10593, yuz10594, yuz10640, yuz10641, yuz10642, yuz10643, yuz10644, h, ba)), h, ba) 36.98/17.58 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 36.98/17.58 36.98/17.58 36.98/17.58 ---------------------------------------- 36.98/17.58 36.98/17.58 (20) 36.98/17.58 YES 36.98/17.58 36.98/17.58 ---------------------------------------- 36.98/17.58 36.98/17.58 (21) 36.98/17.58 Obligation: 36.98/17.58 Q DP problem: 36.98/17.58 The TRS P consists of the following rules: 36.98/17.58 36.98/17.58 new_primPlusNat(Succ(yuz72000)) -> new_primPlusNat(yuz72000) 36.98/17.58 36.98/17.58 R is empty. 36.98/17.58 Q is empty. 36.98/17.58 We have to consider all minimal (P,Q,R)-chains. 36.98/17.58 ---------------------------------------- 36.98/17.58 36.98/17.58 (22) QDPSizeChangeProof (EQUIVALENT) 36.98/17.58 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. 36.98/17.58 36.98/17.58 From the DPs we obtained the following set of size-change graphs: 36.98/17.58 *new_primPlusNat(Succ(yuz72000)) -> new_primPlusNat(yuz72000) 36.98/17.58 The graph contains the following edges 1 > 1 36.98/17.58 36.98/17.58 36.98/17.58 ---------------------------------------- 36.98/17.58 36.98/17.58 (23) 36.98/17.58 YES 36.98/17.58 36.98/17.58 ---------------------------------------- 36.98/17.58 36.98/17.58 (24) 36.98/17.58 Obligation: 36.98/17.58 Q DP problem: 36.98/17.58 The TRS P consists of the following rules: 36.98/17.58 36.98/17.58 new_primPlusNat0(Succ(yuz2090), Succ(yuz21000)) -> new_primPlusNat0(yuz2090, yuz21000) 36.98/17.58 36.98/17.58 R is empty. 36.98/17.58 Q is empty. 36.98/17.58 We have to consider all minimal (P,Q,R)-chains. 36.98/17.58 ---------------------------------------- 36.98/17.58 36.98/17.58 (25) QDPSizeChangeProof (EQUIVALENT) 36.98/17.58 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. 36.98/17.58 36.98/17.58 From the DPs we obtained the following set of size-change graphs: 36.98/17.58 *new_primPlusNat0(Succ(yuz2090), Succ(yuz21000)) -> new_primPlusNat0(yuz2090, yuz21000) 36.98/17.58 The graph contains the following edges 1 > 1, 2 > 2 36.98/17.58 36.98/17.58 36.98/17.58 ---------------------------------------- 36.98/17.58 36.98/17.58 (26) 36.98/17.58 YES 36.98/17.58 36.98/17.58 ---------------------------------------- 36.98/17.58 36.98/17.58 (27) 36.98/17.58 Obligation: 36.98/17.58 Q DP problem: 36.98/17.58 The TRS P consists of the following rules: 36.98/17.58 36.98/17.58 new_glueVBal3(yuz2890, yuz2891, yuz2892, yuz2893, yuz2894, yuz28330, yuz28331, yuz28332, yuz28333, yuz28334, h, ba) -> new_glueVBal3GlueVBal2(yuz28330, yuz28331, yuz28332, yuz28333, yuz28334, yuz2890, yuz2891, yuz2892, yuz2893, yuz2894, new_lt0(new_sr(new_glueVBal3Size_l(yuz28330, yuz28331, yuz28332, yuz28333, yuz28334, yuz2890, yuz2891, yuz2892, yuz2893, yuz2894, h, ba)), new_glueVBal3Size_r(yuz28330, yuz28331, yuz28332, yuz28333, yuz28334, yuz2890, yuz2891, yuz2892, yuz2893, yuz2894, h, ba)), h, ba) 36.98/17.58 new_glueVBal3GlueVBal2(yuz2830, yuz2831, yuz2832, yuz2833, yuz2834, yuz2890, yuz2891, yuz2892, yuz2893, yuz2894, False, h, ba) -> new_glueVBal3GlueVBal1(yuz2830, yuz2831, yuz2832, yuz2833, yuz2834, yuz2890, yuz2891, yuz2892, yuz2893, yuz2894, new_lt0(new_sr(new_glueVBal3Size_r(yuz2830, yuz2831, yuz2832, yuz2833, yuz2834, yuz2890, yuz2891, yuz2892, yuz2893, yuz2894, h, ba)), new_glueVBal3Size_l(yuz2830, yuz2831, yuz2832, yuz2833, yuz2834, yuz2890, yuz2891, yuz2892, yuz2893, yuz2894, h, ba)), h, ba) 36.98/17.58 new_glueVBal3GlueVBal1(yuz2830, yuz2831, yuz2832, yuz2833, yuz2834, yuz2890, yuz2891, yuz2892, yuz2893, Branch(yuz28940, yuz28941, yuz28942, yuz28943, yuz28944), True, h, ba) -> new_glueVBal3(yuz28940, yuz28941, yuz28942, yuz28943, yuz28944, yuz2830, yuz2831, yuz2832, yuz2833, yuz2834, h, ba) 36.98/17.58 new_glueVBal3GlueVBal2(yuz2830, yuz2831, yuz2832, Branch(yuz28330, yuz28331, yuz28332, yuz28333, yuz28334), yuz2834, yuz2890, yuz2891, yuz2892, yuz2893, yuz2894, True, h, ba) -> new_glueVBal3GlueVBal2(yuz28330, yuz28331, yuz28332, yuz28333, yuz28334, yuz2890, yuz2891, yuz2892, yuz2893, yuz2894, new_lt0(new_sr(new_glueVBal3Size_l(yuz28330, yuz28331, yuz28332, yuz28333, yuz28334, yuz2890, yuz2891, yuz2892, yuz2893, yuz2894, h, ba)), new_glueVBal3Size_r(yuz28330, yuz28331, yuz28332, yuz28333, yuz28334, yuz2890, yuz2891, yuz2892, yuz2893, yuz2894, h, ba)), h, ba) 36.98/17.58 36.98/17.58 The TRS R consists of the following rules: 36.98/17.58 36.98/17.58 new_sr(Pos(yuz12960)) -> Pos(new_primMulNat(yuz12960)) 36.98/17.58 new_lt0(Neg(Succ(yuz101100)), Neg(yuz10070)) -> new_esEs4(yuz10070, Succ(yuz101100)) 36.98/17.58 new_esEs5 -> False 36.98/17.58 new_lt0(Pos(Succ(yuz101100)), Pos(yuz10070)) -> new_esEs4(Succ(yuz101100), yuz10070) 36.98/17.58 new_lt0(Pos(Zero), Pos(Zero)) -> new_esEs5 36.98/17.58 new_esEs4(Succ(yuz220), Succ(yuz17000)) -> new_esEs4(yuz220, yuz17000) 36.98/17.58 new_primPlusNat2(yuz209, Succ(yuz2100)) -> Succ(Succ(new_primPlusNat1(yuz209, yuz2100))) 36.98/17.58 new_lt0(Pos(Zero), Neg(Zero)) -> new_esEs5 36.98/17.58 new_lt0(Neg(Zero), Pos(Zero)) -> new_esEs5 36.98/17.58 new_lt0(Neg(Zero), Neg(Succ(yuz100700))) -> new_esEs4(Succ(yuz100700), Zero) 36.98/17.58 new_lt0(Neg(Succ(yuz101100)), Pos(yuz10070)) -> new_esEs1 36.98/17.58 new_primPlusNat3(Succ(yuz72000)) -> Succ(Succ(new_primPlusNat3(yuz72000))) 36.98/17.58 new_primPlusNat2(yuz209, Zero) -> Succ(yuz209) 36.98/17.58 new_esEs3 -> False 36.98/17.58 new_primMulNat(Zero) -> Zero 36.98/17.58 new_primPlusNat3(Zero) -> Zero 36.98/17.58 new_sizeFM(Branch(yuz10000, yuz10001, yuz10002, yuz10003, yuz10004), bb, bc) -> yuz10002 36.98/17.58 new_lt0(Pos(Zero), Pos(Succ(yuz100700))) -> new_esEs4(Zero, Succ(yuz100700)) 36.98/17.58 new_esEs4(Succ(yuz220), Zero) -> new_esEs3 36.98/17.58 new_lt0(Pos(Zero), Neg(Succ(yuz100700))) -> new_esEs3 36.98/17.58 new_primPlusNat1(Succ(yuz2090), Zero) -> Succ(yuz2090) 36.98/17.58 new_primPlusNat1(Zero, Succ(yuz21000)) -> Succ(yuz21000) 36.98/17.58 new_primMulNat(Succ(yuz105000)) -> new_primPlusNat1(new_primMulNat0(yuz105000), Succ(yuz105000)) 36.98/17.58 new_primPlusNat1(Succ(yuz2090), Succ(yuz21000)) -> Succ(Succ(new_primPlusNat1(yuz2090, yuz21000))) 36.98/17.58 new_primPlusNat1(Zero, Zero) -> Zero 36.98/17.58 new_esEs4(Zero, Zero) -> new_esEs5 36.98/17.58 new_esEs1 -> True 36.98/17.58 new_sr(Neg(yuz12960)) -> Neg(new_primMulNat(yuz12960)) 36.98/17.58 new_esEs4(Zero, Succ(yuz17000)) -> new_esEs1 36.98/17.58 new_glueVBal3Size_l(yuz2830, yuz2831, yuz2832, yuz2833, yuz2834, yuz2890, yuz2891, yuz2892, yuz2893, yuz2894, h, ba) -> new_sizeFM(Branch(yuz2890, yuz2891, yuz2892, yuz2893, yuz2894), h, ba) 36.98/17.58 new_lt0(Pos(Succ(yuz101100)), Neg(yuz10070)) -> new_esEs3 36.98/17.58 new_sizeFM(EmptyFM, bb, bc) -> Pos(Zero) 36.98/17.58 new_lt0(Neg(Zero), Neg(Zero)) -> new_esEs5 36.98/17.58 new_lt0(Neg(Zero), Pos(Succ(yuz100700))) -> new_esEs1 36.98/17.58 new_glueVBal3Size_r(yuz2830, yuz2831, yuz2832, yuz2833, yuz2834, yuz2890, yuz2891, yuz2892, yuz2893, yuz2894, h, ba) -> new_sizeFM(Branch(yuz2830, yuz2831, yuz2832, yuz2833, yuz2834), h, ba) 36.98/17.58 new_primMulNat0(yuz9200) -> new_primPlusNat2(Succ(new_primPlusNat2(new_primPlusNat3(yuz9200), yuz9200)), Succ(yuz9200)) 36.98/17.58 36.98/17.58 The set Q consists of the following terms: 36.98/17.58 36.98/17.58 new_lt0(Pos(Zero), Neg(Succ(x0))) 36.98/17.58 new_lt0(Neg(Zero), Pos(Succ(x0))) 36.98/17.58 new_primPlusNat1(Succ(x0), Zero) 36.98/17.58 new_primPlusNat2(x0, Succ(x1)) 36.98/17.58 new_esEs3 36.98/17.58 new_lt0(Pos(Succ(x0)), Pos(x1)) 36.98/17.58 new_esEs4(Zero, Succ(x0)) 36.98/17.58 new_esEs5 36.98/17.58 new_lt0(Neg(Succ(x0)), Pos(x1)) 36.98/17.58 new_lt0(Pos(Succ(x0)), Neg(x1)) 36.98/17.58 new_primMulNat(Zero) 36.98/17.58 new_sizeFM(EmptyFM, x0, x1) 36.98/17.58 new_sr(Neg(x0)) 36.98/17.58 new_lt0(Pos(Zero), Neg(Zero)) 36.98/17.58 new_lt0(Neg(Zero), Pos(Zero)) 36.98/17.58 new_primPlusNat1(Zero, Succ(x0)) 36.98/17.58 new_primPlusNat1(Succ(x0), Succ(x1)) 36.98/17.58 new_esEs1 36.98/17.58 new_glueVBal3Size_r(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11) 36.98/17.58 new_sizeFM(Branch(x0, x1, x2, x3, x4), x5, x6) 36.98/17.58 new_lt0(Neg(Succ(x0)), Neg(x1)) 36.98/17.58 new_lt0(Pos(Zero), Pos(Zero)) 36.98/17.58 new_esEs4(Succ(x0), Succ(x1)) 36.98/17.58 new_primPlusNat1(Zero, Zero) 36.98/17.58 new_primMulNat0(x0) 36.98/17.58 new_primPlusNat3(Zero) 36.98/17.58 new_glueVBal3Size_l(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11) 36.98/17.58 new_esEs4(Zero, Zero) 36.98/17.58 new_lt0(Pos(Zero), Pos(Succ(x0))) 36.98/17.58 new_primPlusNat2(x0, Zero) 36.98/17.58 new_esEs4(Succ(x0), Zero) 36.98/17.58 new_primPlusNat3(Succ(x0)) 36.98/17.58 new_sr(Pos(x0)) 36.98/17.58 new_lt0(Neg(Zero), Neg(Succ(x0))) 36.98/17.58 new_primMulNat(Succ(x0)) 36.98/17.58 new_lt0(Neg(Zero), Neg(Zero)) 36.98/17.58 36.98/17.58 We have to consider all minimal (P,Q,R)-chains. 36.98/17.58 ---------------------------------------- 36.98/17.58 36.98/17.58 (28) QDPSizeChangeProof (EQUIVALENT) 36.98/17.58 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. 36.98/17.58 36.98/17.58 From the DPs we obtained the following set of size-change graphs: 36.98/17.58 *new_glueVBal3GlueVBal1(yuz2830, yuz2831, yuz2832, yuz2833, yuz2834, yuz2890, yuz2891, yuz2892, yuz2893, Branch(yuz28940, yuz28941, yuz28942, yuz28943, yuz28944), True, h, ba) -> new_glueVBal3(yuz28940, yuz28941, yuz28942, yuz28943, yuz28944, yuz2830, yuz2831, yuz2832, yuz2833, yuz2834, h, ba) 36.98/17.58 The graph contains the following edges 10 > 1, 10 > 2, 10 > 3, 10 > 4, 10 > 5, 1 >= 6, 2 >= 7, 3 >= 8, 4 >= 9, 5 >= 10, 12 >= 11, 13 >= 12 36.98/17.58 36.98/17.58 36.98/17.58 *new_glueVBal3(yuz2890, yuz2891, yuz2892, yuz2893, yuz2894, yuz28330, yuz28331, yuz28332, yuz28333, yuz28334, h, ba) -> new_glueVBal3GlueVBal2(yuz28330, yuz28331, yuz28332, yuz28333, yuz28334, yuz2890, yuz2891, yuz2892, yuz2893, yuz2894, new_lt0(new_sr(new_glueVBal3Size_l(yuz28330, yuz28331, yuz28332, yuz28333, yuz28334, yuz2890, yuz2891, yuz2892, yuz2893, yuz2894, h, ba)), new_glueVBal3Size_r(yuz28330, yuz28331, yuz28332, yuz28333, yuz28334, yuz2890, yuz2891, yuz2892, yuz2893, yuz2894, h, ba)), h, ba) 36.98/17.58 The graph contains the following edges 6 >= 1, 7 >= 2, 8 >= 3, 9 >= 4, 10 >= 5, 1 >= 6, 2 >= 7, 3 >= 8, 4 >= 9, 5 >= 10, 11 >= 12, 12 >= 13 36.98/17.58 36.98/17.58 36.98/17.58 *new_glueVBal3GlueVBal2(yuz2830, yuz2831, yuz2832, Branch(yuz28330, yuz28331, yuz28332, yuz28333, yuz28334), yuz2834, yuz2890, yuz2891, yuz2892, yuz2893, yuz2894, True, h, ba) -> new_glueVBal3GlueVBal2(yuz28330, yuz28331, yuz28332, yuz28333, yuz28334, yuz2890, yuz2891, yuz2892, yuz2893, yuz2894, new_lt0(new_sr(new_glueVBal3Size_l(yuz28330, yuz28331, yuz28332, yuz28333, yuz28334, yuz2890, yuz2891, yuz2892, yuz2893, yuz2894, h, ba)), new_glueVBal3Size_r(yuz28330, yuz28331, yuz28332, yuz28333, yuz28334, yuz2890, yuz2891, yuz2892, yuz2893, yuz2894, h, ba)), h, ba) 36.98/17.58 The graph contains the following edges 4 > 1, 4 > 2, 4 > 3, 4 > 4, 4 > 5, 6 >= 6, 7 >= 7, 8 >= 8, 9 >= 9, 10 >= 10, 12 >= 12, 13 >= 13 36.98/17.58 36.98/17.58 36.98/17.58 *new_glueVBal3GlueVBal2(yuz2830, yuz2831, yuz2832, yuz2833, yuz2834, yuz2890, yuz2891, yuz2892, yuz2893, yuz2894, False, h, ba) -> new_glueVBal3GlueVBal1(yuz2830, yuz2831, yuz2832, yuz2833, yuz2834, yuz2890, yuz2891, yuz2892, yuz2893, yuz2894, new_lt0(new_sr(new_glueVBal3Size_r(yuz2830, yuz2831, yuz2832, yuz2833, yuz2834, yuz2890, yuz2891, yuz2892, yuz2893, yuz2894, h, ba)), new_glueVBal3Size_l(yuz2830, yuz2831, yuz2832, yuz2833, yuz2834, yuz2890, yuz2891, yuz2892, yuz2893, yuz2894, h, ba)), h, ba) 36.98/17.58 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 36.98/17.58 36.98/17.58 36.98/17.58 ---------------------------------------- 36.98/17.58 36.98/17.58 (29) 36.98/17.58 YES 36.98/17.58 36.98/17.58 ---------------------------------------- 36.98/17.58 36.98/17.58 (30) 36.98/17.58 Obligation: 36.98/17.58 Q DP problem: 36.98/17.58 The TRS P consists of the following rules: 36.98/17.58 36.98/17.58 new_glueBal2GlueBal1(yuz2890, yuz2891, yuz2892, yuz2893, yuz2894, yuz2830, yuz2831, yuz2832, yuz2833, yuz2834, Succ(yuz1284000), Succ(yuz1283000), h, ba) -> new_glueBal2GlueBal1(yuz2890, yuz2891, yuz2892, yuz2893, yuz2894, yuz2830, yuz2831, yuz2832, yuz2833, yuz2834, yuz1284000, yuz1283000, h, ba) 36.98/17.58 36.98/17.58 R is empty. 36.98/17.58 Q is empty. 36.98/17.58 We have to consider all minimal (P,Q,R)-chains. 36.98/17.58 ---------------------------------------- 36.98/17.58 36.98/17.58 (31) QDPSizeChangeProof (EQUIVALENT) 36.98/17.58 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. 36.98/17.58 36.98/17.58 From the DPs we obtained the following set of size-change graphs: 36.98/17.58 *new_glueBal2GlueBal1(yuz2890, yuz2891, yuz2892, yuz2893, yuz2894, yuz2830, yuz2831, yuz2832, yuz2833, yuz2834, Succ(yuz1284000), Succ(yuz1283000), h, ba) -> new_glueBal2GlueBal1(yuz2890, yuz2891, yuz2892, yuz2893, yuz2894, yuz2830, yuz2831, yuz2832, yuz2833, yuz2834, yuz1284000, yuz1283000, h, ba) 36.98/17.58 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, 13 >= 13, 14 >= 14 36.98/17.58 36.98/17.58 36.98/17.58 ---------------------------------------- 36.98/17.58 36.98/17.58 (32) 36.98/17.58 YES 36.98/17.58 36.98/17.58 ---------------------------------------- 36.98/17.58 36.98/17.58 (33) 36.98/17.58 Obligation: 36.98/17.58 Q DP problem: 36.98/17.58 The TRS P consists of the following rules: 36.98/17.58 36.98/17.58 new_filterFM1(yuz3, yuz40, yuz41, yuz42, yuz43, yuz44, h) -> new_filterFM(yuz3, yuz43, h) 36.98/17.58 new_filterFM(yuz3, Branch(yuz40, yuz41, yuz42, yuz43, yuz44), h) -> new_filterFM1(yuz3, yuz40, yuz41, yuz42, yuz43, yuz44, h) 36.98/17.58 new_filterFM1(yuz3, yuz40, yuz41, yuz42, yuz43, yuz44, h) -> new_filterFM(yuz3, yuz44, h) 36.98/17.58 36.98/17.58 R is empty. 36.98/17.58 Q is empty. 36.98/17.58 We have to consider all minimal (P,Q,R)-chains. 36.98/17.58 ---------------------------------------- 36.98/17.58 36.98/17.58 (34) QDPSizeChangeProof (EQUIVALENT) 36.98/17.58 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. 36.98/17.58 36.98/17.58 From the DPs we obtained the following set of size-change graphs: 36.98/17.58 *new_filterFM(yuz3, Branch(yuz40, yuz41, yuz42, yuz43, yuz44), h) -> new_filterFM1(yuz3, yuz40, yuz41, yuz42, yuz43, yuz44, h) 36.98/17.58 The graph contains the following edges 1 >= 1, 2 > 2, 2 > 3, 2 > 4, 2 > 5, 2 > 6, 3 >= 7 36.98/17.58 36.98/17.58 36.98/17.58 *new_filterFM1(yuz3, yuz40, yuz41, yuz42, yuz43, yuz44, h) -> new_filterFM(yuz3, yuz43, h) 36.98/17.58 The graph contains the following edges 1 >= 1, 5 >= 2, 7 >= 3 36.98/17.58 36.98/17.58 36.98/17.58 *new_filterFM1(yuz3, yuz40, yuz41, yuz42, yuz43, yuz44, h) -> new_filterFM(yuz3, yuz44, h) 36.98/17.58 The graph contains the following edges 1 >= 1, 6 >= 2, 7 >= 3 36.98/17.58 36.98/17.58 36.98/17.58 ---------------------------------------- 36.98/17.58 36.98/17.58 (35) 36.98/17.58 YES 36.98/17.58 36.98/17.58 ---------------------------------------- 36.98/17.58 36.98/17.58 (36) 36.98/17.58 Obligation: 36.98/17.58 Q DP problem: 36.98/17.58 The TRS P consists of the following rules: 36.98/17.58 36.98/17.58 new_primMinusNat(Succ(yuz950200), Succ(yuz19200)) -> new_primMinusNat(yuz950200, yuz19200) 36.98/17.58 36.98/17.58 R is empty. 36.98/17.58 Q is empty. 36.98/17.58 We have to consider all minimal (P,Q,R)-chains. 36.98/17.58 ---------------------------------------- 36.98/17.58 36.98/17.58 (37) QDPSizeChangeProof (EQUIVALENT) 36.98/17.58 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. 36.98/17.58 36.98/17.58 From the DPs we obtained the following set of size-change graphs: 36.98/17.58 *new_primMinusNat(Succ(yuz950200), Succ(yuz19200)) -> new_primMinusNat(yuz950200, yuz19200) 36.98/17.58 The graph contains the following edges 1 > 1, 2 > 2 36.98/17.58 36.98/17.58 36.98/17.58 ---------------------------------------- 36.98/17.58 36.98/17.58 (38) 36.98/17.58 YES 36.98/17.58 36.98/17.58 ---------------------------------------- 36.98/17.58 36.98/17.58 (39) 36.98/17.58 Obligation: 36.98/17.58 Q DP problem: 36.98/17.58 The TRS P consists of the following rules: 36.98/17.58 36.98/17.58 new_glueBal2Mid_key10(yuz1448, yuz1449, yuz1450, yuz1451, yuz1452, yuz1453, yuz1454, yuz1455, yuz1456, yuz1457, yuz1458, yuz1459, yuz1460, yuz1461, Branch(yuz14620, yuz14621, yuz14622, yuz14623, yuz14624), h, ba) -> new_glueBal2Mid_key10(yuz1448, yuz1449, yuz1450, yuz1451, yuz1452, yuz1453, yuz1454, yuz1455, yuz1456, yuz1457, yuz14620, yuz14621, yuz14622, yuz14623, yuz14624, h, ba) 36.98/17.58 36.98/17.58 R is empty. 36.98/17.58 Q is empty. 36.98/17.58 We have to consider all minimal (P,Q,R)-chains. 36.98/17.58 ---------------------------------------- 36.98/17.58 36.98/17.58 (40) QDPSizeChangeProof (EQUIVALENT) 36.98/17.58 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. 36.98/17.58 36.98/17.58 From the DPs we obtained the following set of size-change graphs: 36.98/17.58 *new_glueBal2Mid_key10(yuz1448, yuz1449, yuz1450, yuz1451, yuz1452, yuz1453, yuz1454, yuz1455, yuz1456, yuz1457, yuz1458, yuz1459, yuz1460, yuz1461, Branch(yuz14620, yuz14621, yuz14622, yuz14623, yuz14624), h, ba) -> new_glueBal2Mid_key10(yuz1448, yuz1449, yuz1450, yuz1451, yuz1452, yuz1453, yuz1454, yuz1455, yuz1456, yuz1457, yuz14620, yuz14621, yuz14622, yuz14623, yuz14624, h, ba) 36.98/17.58 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 36.98/17.58 36.98/17.58 36.98/17.58 ---------------------------------------- 36.98/17.58 36.98/17.58 (41) 36.98/17.58 YES 36.98/17.58 36.98/17.58 ---------------------------------------- 36.98/17.58 36.98/17.58 (42) 36.98/17.58 Obligation: 36.98/17.58 Q DP problem: 36.98/17.58 The TRS P consists of the following rules: 36.98/17.58 36.98/17.58 new_deleteMin(yuz2830, yuz2831, yuz2832, Branch(yuz28330, yuz28331, yuz28332, yuz28333, yuz28334), yuz2834, h, ba) -> new_deleteMin(yuz28330, yuz28331, yuz28332, yuz28333, yuz28334, h, ba) 36.98/17.58 36.98/17.58 R is empty. 36.98/17.58 Q is empty. 36.98/17.58 We have to consider all minimal (P,Q,R)-chains. 36.98/17.58 ---------------------------------------- 36.98/17.58 36.98/17.58 (43) QDPSizeChangeProof (EQUIVALENT) 36.98/17.58 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. 36.98/17.58 36.98/17.58 From the DPs we obtained the following set of size-change graphs: 36.98/17.58 *new_deleteMin(yuz2830, yuz2831, yuz2832, Branch(yuz28330, yuz28331, yuz28332, yuz28333, yuz28334), yuz2834, h, ba) -> new_deleteMin(yuz28330, yuz28331, yuz28332, yuz28333, yuz28334, h, ba) 36.98/17.58 The graph contains the following edges 4 > 1, 4 > 2, 4 > 3, 4 > 4, 4 > 5, 6 >= 6, 7 >= 7 36.98/17.58 36.98/17.58 36.98/17.58 ---------------------------------------- 36.98/17.58 36.98/17.58 (44) 36.98/17.58 YES 36.98/17.58 36.98/17.58 ---------------------------------------- 36.98/17.58 36.98/17.58 (45) 36.98/17.58 Obligation: 36.98/17.58 Q DP problem: 36.98/17.58 The TRS P consists of the following rules: 36.98/17.58 36.98/17.58 new_glueBal2Mid_elt20(yuz1396, yuz1397, yuz1398, yuz1399, yuz1400, yuz1401, yuz1402, yuz1403, yuz1404, yuz1405, yuz1406, yuz1407, yuz1408, Branch(yuz14090, yuz14091, yuz14092, yuz14093, yuz14094), yuz1410, h, ba) -> new_glueBal2Mid_elt20(yuz1396, yuz1397, yuz1398, yuz1399, yuz1400, yuz1401, yuz1402, yuz1403, yuz1404, yuz1405, yuz14090, yuz14091, yuz14092, yuz14093, yuz14094, h, ba) 36.98/17.58 36.98/17.58 R is empty. 36.98/17.58 Q is empty. 36.98/17.58 We have to consider all minimal (P,Q,R)-chains. 36.98/17.58 ---------------------------------------- 36.98/17.58 36.98/17.58 (46) QDPSizeChangeProof (EQUIVALENT) 36.98/17.58 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. 36.98/17.58 36.98/17.58 From the DPs we obtained the following set of size-change graphs: 36.98/17.58 *new_glueBal2Mid_elt20(yuz1396, yuz1397, yuz1398, yuz1399, yuz1400, yuz1401, yuz1402, yuz1403, yuz1404, yuz1405, yuz1406, yuz1407, yuz1408, Branch(yuz14090, yuz14091, yuz14092, yuz14093, yuz14094), yuz1410, h, ba) -> new_glueBal2Mid_elt20(yuz1396, yuz1397, yuz1398, yuz1399, yuz1400, yuz1401, yuz1402, yuz1403, yuz1404, yuz1405, yuz14090, yuz14091, yuz14092, yuz14093, yuz14094, h, ba) 36.98/17.58 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 36.98/17.58 36.98/17.58 36.98/17.58 ---------------------------------------- 36.98/17.58 36.98/17.58 (47) 36.98/17.58 YES 36.98/17.58 36.98/17.58 ---------------------------------------- 36.98/17.58 36.98/17.58 (48) 36.98/17.58 Obligation: 36.98/17.58 Q DP problem: 36.98/17.58 The TRS P consists of the following rules: 36.98/17.58 36.98/17.58 new_glueBal2Mid_key20(yuz1412, yuz1413, yuz1414, yuz1415, yuz1416, yuz1417, yuz1418, yuz1419, yuz1420, yuz1421, yuz1422, yuz1423, yuz1424, Branch(yuz14250, yuz14251, yuz14252, yuz14253, yuz14254), yuz1426, h, ba) -> new_glueBal2Mid_key20(yuz1412, yuz1413, yuz1414, yuz1415, yuz1416, yuz1417, yuz1418, yuz1419, yuz1420, yuz1421, yuz14250, yuz14251, yuz14252, yuz14253, yuz14254, h, ba) 36.98/17.58 36.98/17.58 R is empty. 36.98/17.58 Q is empty. 36.98/17.58 We have to consider all minimal (P,Q,R)-chains. 36.98/17.58 ---------------------------------------- 36.98/17.58 36.98/17.58 (49) QDPSizeChangeProof (EQUIVALENT) 36.98/17.58 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. 36.98/17.58 36.98/17.58 From the DPs we obtained the following set of size-change graphs: 36.98/17.58 *new_glueBal2Mid_key20(yuz1412, yuz1413, yuz1414, yuz1415, yuz1416, yuz1417, yuz1418, yuz1419, yuz1420, yuz1421, yuz1422, yuz1423, yuz1424, Branch(yuz14250, yuz14251, yuz14252, yuz14253, yuz14254), yuz1426, h, ba) -> new_glueBal2Mid_key20(yuz1412, yuz1413, yuz1414, yuz1415, yuz1416, yuz1417, yuz1418, yuz1419, yuz1420, yuz1421, yuz14250, yuz14251, yuz14252, yuz14253, yuz14254, h, ba) 36.98/17.58 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 36.98/17.58 36.98/17.58 36.98/17.58 ---------------------------------------- 36.98/17.59 36.98/17.59 (50) 36.98/17.59 YES 36.98/17.59 36.98/17.59 ---------------------------------------- 36.98/17.59 36.98/17.59 (51) 36.98/17.59 Obligation: 36.98/17.59 Q DP problem: 36.98/17.59 The TRS P consists of the following rules: 36.98/17.59 36.98/17.59 new_deleteMax(yuz2890, yuz2891, yuz2892, yuz2893, Branch(yuz28940, yuz28941, yuz28942, yuz28943, yuz28944), h, ba) -> new_deleteMax(yuz28940, yuz28941, yuz28942, yuz28943, yuz28944, h, ba) 36.98/17.59 36.98/17.59 R is empty. 36.98/17.59 Q is empty. 36.98/17.59 We have to consider all minimal (P,Q,R)-chains. 36.98/17.59 ---------------------------------------- 36.98/17.59 36.98/17.59 (52) QDPSizeChangeProof (EQUIVALENT) 36.98/17.59 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. 36.98/17.59 36.98/17.59 From the DPs we obtained the following set of size-change graphs: 36.98/17.59 *new_deleteMax(yuz2890, yuz2891, yuz2892, yuz2893, Branch(yuz28940, yuz28941, yuz28942, yuz28943, yuz28944), h, ba) -> new_deleteMax(yuz28940, yuz28941, yuz28942, yuz28943, yuz28944, h, ba) 36.98/17.59 The graph contains the following edges 5 > 1, 5 > 2, 5 > 3, 5 > 4, 5 > 5, 6 >= 6, 7 >= 7 36.98/17.59 36.98/17.59 36.98/17.59 ---------------------------------------- 36.98/17.59 36.98/17.59 (53) 36.98/17.59 YES 36.98/17.59 36.98/17.59 ---------------------------------------- 36.98/17.59 36.98/17.59 (54) 36.98/17.59 Obligation: 36.98/17.59 Q DP problem: 36.98/17.59 The TRS P consists of the following rules: 36.98/17.59 36.98/17.59 new_glueBal2Mid_elt10(yuz1431, yuz1432, yuz1433, yuz1434, yuz1435, yuz1436, yuz1437, yuz1438, yuz1439, yuz1440, yuz1441, yuz1442, yuz1443, yuz1444, Branch(yuz14450, yuz14451, yuz14452, yuz14453, yuz14454), h, ba) -> new_glueBal2Mid_elt10(yuz1431, yuz1432, yuz1433, yuz1434, yuz1435, yuz1436, yuz1437, yuz1438, yuz1439, yuz1440, yuz14450, yuz14451, yuz14452, yuz14453, yuz14454, h, ba) 36.98/17.59 36.98/17.59 R is empty. 36.98/17.59 Q is empty. 36.98/17.59 We have to consider all minimal (P,Q,R)-chains. 36.98/17.59 ---------------------------------------- 36.98/17.59 36.98/17.59 (55) QDPSizeChangeProof (EQUIVALENT) 36.98/17.59 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. 36.98/17.59 36.98/17.59 From the DPs we obtained the following set of size-change graphs: 36.98/17.59 *new_glueBal2Mid_elt10(yuz1431, yuz1432, yuz1433, yuz1434, yuz1435, yuz1436, yuz1437, yuz1438, yuz1439, yuz1440, yuz1441, yuz1442, yuz1443, yuz1444, Branch(yuz14450, yuz14451, yuz14452, yuz14453, yuz14454), h, ba) -> new_glueBal2Mid_elt10(yuz1431, yuz1432, yuz1433, yuz1434, yuz1435, yuz1436, yuz1437, yuz1438, yuz1439, yuz1440, yuz14450, yuz14451, yuz14452, yuz14453, yuz14454, h, ba) 36.98/17.59 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 36.98/17.59 36.98/17.59 36.98/17.59 ---------------------------------------- 36.98/17.59 36.98/17.59 (56) 36.98/17.59 YES 36.98/17.59 36.98/17.59 ---------------------------------------- 36.98/17.59 36.98/17.59 (57) 36.98/17.59 Obligation: 36.98/17.59 Q DP problem: 36.98/17.59 The TRS P consists of the following rules: 36.98/17.59 36.98/17.59 new_esEs0(Succ(yuz220), Succ(yuz17000)) -> new_esEs0(yuz220, yuz17000) 36.98/17.59 36.98/17.59 R is empty. 36.98/17.59 Q is empty. 36.98/17.59 We have to consider all minimal (P,Q,R)-chains. 36.98/17.59 ---------------------------------------- 36.98/17.59 36.98/17.59 (58) QDPSizeChangeProof (EQUIVALENT) 36.98/17.59 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. 36.98/17.59 36.98/17.59 From the DPs we obtained the following set of size-change graphs: 36.98/17.59 *new_esEs0(Succ(yuz220), Succ(yuz17000)) -> new_esEs0(yuz220, yuz17000) 36.98/17.59 The graph contains the following edges 1 > 1, 2 > 2 36.98/17.59 36.98/17.59 36.98/17.59 ---------------------------------------- 36.98/17.59 36.98/17.59 (59) 36.98/17.59 YES 36.98/17.59 36.98/17.59 ---------------------------------------- 36.98/17.59 36.98/17.59 (60) 36.98/17.59 Obligation: 36.98/17.59 Q DP problem: 36.98/17.59 The TRS P consists of the following rules: 36.98/17.59 36.98/17.59 new_mkBalBranch6MkBalBranch4(yuz2834, yuz2830, yuz2831, yuz1351, Succ(yuz1355000), Succ(yuz1354000), h, ba) -> new_mkBalBranch6MkBalBranch4(yuz2834, yuz2830, yuz2831, yuz1351, yuz1355000, yuz1354000, h, ba) 36.98/17.59 36.98/17.59 R is empty. 36.98/17.59 Q is empty. 36.98/17.59 We have to consider all minimal (P,Q,R)-chains. 36.98/17.59 ---------------------------------------- 36.98/17.59 36.98/17.59 (61) QDPSizeChangeProof (EQUIVALENT) 36.98/17.59 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. 36.98/17.59 36.98/17.59 From the DPs we obtained the following set of size-change graphs: 36.98/17.59 *new_mkBalBranch6MkBalBranch4(yuz2834, yuz2830, yuz2831, yuz1351, Succ(yuz1355000), Succ(yuz1354000), h, ba) -> new_mkBalBranch6MkBalBranch4(yuz2834, yuz2830, yuz2831, yuz1351, yuz1355000, yuz1354000, h, ba) 36.98/17.59 The graph contains the following edges 1 >= 1, 2 >= 2, 3 >= 3, 4 >= 4, 5 > 5, 6 > 6, 7 >= 7, 8 >= 8 36.98/17.59 36.98/17.59 36.98/17.59 ---------------------------------------- 36.98/17.59 36.98/17.59 (62) 36.98/17.59 YES 36.98/17.59 36.98/17.59 ---------------------------------------- 36.98/17.59 36.98/17.59 (63) 36.98/17.59 Obligation: 36.98/17.59 Q DP problem: 36.98/17.59 The TRS P consists of the following rules: 36.98/17.59 36.98/17.59 new_esEs(Succ(yuz1371000), Succ(yuz1366000)) -> new_esEs(yuz1371000, yuz1366000) 36.98/17.59 36.98/17.59 R is empty. 36.98/17.59 Q is empty. 36.98/17.59 We have to consider all minimal (P,Q,R)-chains. 36.98/17.59 ---------------------------------------- 36.98/17.59 36.98/17.59 (64) QDPSizeChangeProof (EQUIVALENT) 36.98/17.59 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. 36.98/17.59 36.98/17.59 From the DPs we obtained the following set of size-change graphs: 36.98/17.59 *new_esEs(Succ(yuz1371000), Succ(yuz1366000)) -> new_esEs(yuz1371000, yuz1366000) 36.98/17.59 The graph contains the following edges 1 > 1, 2 > 2 36.98/17.59 36.98/17.59 36.98/17.59 ---------------------------------------- 36.98/17.59 36.98/17.59 (65) 36.98/17.59 YES 37.07/17.63 EOF