11.46/4.77 YES 14.28/5.53 proof of /export/starexec/sandbox2/benchmark/theBenchmark.hs 14.28/5.53 # AProVE Commit ID: 48fb2092695e11cc9f56e44b17a92a5f88ffb256 marcel 20180622 unpublished dirty 14.28/5.53 14.28/5.53 14.28/5.53 H-Termination with start terms of the given HASKELL could be proven: 14.28/5.53 14.28/5.53 (0) HASKELL 14.28/5.53 (1) LR [EQUIVALENT, 0 ms] 14.28/5.53 (2) HASKELL 14.28/5.53 (3) CR [EQUIVALENT, 0 ms] 14.28/5.53 (4) HASKELL 14.28/5.53 (5) IFR [EQUIVALENT, 0 ms] 14.28/5.53 (6) HASKELL 14.28/5.53 (7) BR [EQUIVALENT, 0 ms] 14.28/5.53 (8) HASKELL 14.28/5.53 (9) COR [EQUIVALENT, 13 ms] 14.28/5.53 (10) HASKELL 14.28/5.53 (11) NumRed [SOUND, 0 ms] 14.28/5.53 (12) HASKELL 14.28/5.53 (13) Narrow [SOUND, 0 ms] 14.28/5.53 (14) AND 14.28/5.53 (15) QDP 14.28/5.53 (16) TransformationProof [EQUIVALENT, 0 ms] 14.28/5.53 (17) QDP 14.28/5.53 (18) QDPSizeChangeProof [EQUIVALENT, 0 ms] 14.28/5.53 (19) YES 14.28/5.53 (20) QDP 14.28/5.53 (21) QDPSizeChangeProof [EQUIVALENT, 0 ms] 14.28/5.53 (22) YES 14.28/5.53 14.28/5.53 14.28/5.53 ---------------------------------------- 14.28/5.53 14.28/5.53 (0) 14.28/5.53 Obligation: 14.28/5.53 mainModule Main 14.28/5.53 module Maybe where { 14.28/5.53 import qualified List; 14.28/5.53 import qualified Main; 14.28/5.53 import qualified Prelude; 14.28/5.53 listToMaybe :: [a] -> Maybe a; 14.28/5.53 listToMaybe [] = Nothing; 14.28/5.53 listToMaybe (a : _) = Just a; 14.28/5.53 14.28/5.53 } 14.28/5.53 module List where { 14.28/5.53 import qualified Main; 14.28/5.53 import qualified Maybe; 14.28/5.53 import qualified Prelude; 14.28/5.53 elemIndex :: Eq a => a -> [a] -> Maybe Int; 14.28/5.53 elemIndex x = findIndex (== x); 14.28/5.53 14.28/5.53 findIndex :: (a -> Bool) -> [a] -> Maybe Int; 14.28/5.53 findIndex p = Maybe.listToMaybe . findIndices p; 14.28/5.53 14.28/5.53 findIndices :: (a -> Bool) -> [a] -> [Int]; 14.28/5.53 findIndices p xs = concatMap (\vv1 ->case vv1 of { 14.28/5.53 (x,i)-> if p x then i : [] else []; 14.28/5.53 _-> []; 14.28/5.53 } ) (zip xs (enumFrom 0)); 14.28/5.53 14.28/5.53 } 14.28/5.53 module Main where { 14.28/5.53 import qualified List; 14.28/5.53 import qualified Maybe; 14.28/5.53 import qualified Prelude; 14.28/5.53 } 14.28/5.53 14.28/5.53 ---------------------------------------- 14.28/5.53 14.28/5.53 (1) LR (EQUIVALENT) 14.28/5.53 Lambda Reductions: 14.28/5.53 The following Lambda expression 14.28/5.53 "\ab->(a,b)" 14.28/5.53 is transformed to 14.28/5.53 "zip0 a b = (a,b); 14.28/5.53 " 14.28/5.53 The following Lambda expression 14.28/5.53 "\vv1->case vv1 of { 14.28/5.53 (x,i) -> if p x then i : [] else []; 14.28/5.53 _ -> []} 14.28/5.53 " 14.28/5.53 is transformed to 14.28/5.53 "findIndices0 p vv1 = case vv1 of { 14.28/5.53 (x,i) -> if p x then i : [] else []; 14.28/5.53 _ -> []} 14.28/5.53 ; 14.28/5.53 " 14.28/5.53 14.28/5.53 ---------------------------------------- 14.28/5.53 14.28/5.53 (2) 14.28/5.53 Obligation: 14.28/5.53 mainModule Main 14.28/5.53 module Maybe where { 14.28/5.53 import qualified List; 14.28/5.53 import qualified Main; 14.28/5.53 import qualified Prelude; 14.28/5.53 listToMaybe :: [a] -> Maybe a; 14.28/5.53 listToMaybe [] = Nothing; 14.28/5.53 listToMaybe (a : _) = Just a; 14.28/5.53 14.28/5.53 } 14.28/5.53 module List where { 14.28/5.53 import qualified Main; 14.28/5.53 import qualified Maybe; 14.28/5.53 import qualified Prelude; 14.28/5.53 elemIndex :: Eq a => a -> [a] -> Maybe Int; 14.28/5.53 elemIndex x = findIndex (== x); 14.28/5.53 14.28/5.53 findIndex :: (a -> Bool) -> [a] -> Maybe Int; 14.28/5.53 findIndex p = Maybe.listToMaybe . findIndices p; 14.28/5.53 14.28/5.53 findIndices :: (a -> Bool) -> [a] -> [Int]; 14.28/5.53 findIndices p xs = concatMap (findIndices0 p) (zip xs (enumFrom 0)); 14.28/5.53 14.28/5.53 findIndices0 p vv1 = case vv1 of { 14.28/5.53 (x,i)-> if p x then i : [] else []; 14.28/5.53 _-> []; 14.28/5.53 } ; 14.28/5.53 14.28/5.53 } 14.28/5.53 module Main where { 14.28/5.53 import qualified List; 14.28/5.53 import qualified Maybe; 14.28/5.53 import qualified Prelude; 14.28/5.53 } 14.28/5.53 14.28/5.53 ---------------------------------------- 14.28/5.53 14.28/5.53 (3) CR (EQUIVALENT) 14.28/5.53 Case Reductions: 14.28/5.53 The following Case expression 14.28/5.53 "case vv1 of { 14.28/5.53 (x,i) -> if p x then i : [] else []; 14.28/5.53 _ -> []} 14.28/5.53 " 14.28/5.53 is transformed to 14.28/5.53 "findIndices00 p (x,i) = if p x then i : [] else []; 14.28/5.53 findIndices00 p _ = []; 14.28/5.53 " 14.28/5.53 14.28/5.53 ---------------------------------------- 14.28/5.53 14.28/5.53 (4) 14.28/5.53 Obligation: 14.28/5.53 mainModule Main 14.28/5.53 module Maybe where { 14.28/5.53 import qualified List; 14.28/5.53 import qualified Main; 14.28/5.53 import qualified Prelude; 14.28/5.53 listToMaybe :: [a] -> Maybe a; 14.28/5.53 listToMaybe [] = Nothing; 14.28/5.53 listToMaybe (a : _) = Just a; 14.28/5.53 14.28/5.53 } 14.28/5.53 module List where { 14.28/5.53 import qualified Main; 14.28/5.53 import qualified Maybe; 14.28/5.53 import qualified Prelude; 14.28/5.53 elemIndex :: Eq a => a -> [a] -> Maybe Int; 14.28/5.53 elemIndex x = findIndex (== x); 14.28/5.53 14.28/5.53 findIndex :: (a -> Bool) -> [a] -> Maybe Int; 14.28/5.53 findIndex p = Maybe.listToMaybe . findIndices p; 14.28/5.53 14.28/5.53 findIndices :: (a -> Bool) -> [a] -> [Int]; 14.28/5.53 findIndices p xs = concatMap (findIndices0 p) (zip xs (enumFrom 0)); 14.28/5.53 14.28/5.53 findIndices0 p vv1 = findIndices00 p vv1; 14.28/5.53 14.28/5.53 findIndices00 p (x,i) = if p x then i : [] else []; 14.28/5.53 findIndices00 p _ = []; 14.28/5.53 14.28/5.53 } 14.28/5.53 module Main where { 14.28/5.53 import qualified List; 14.28/5.53 import qualified Maybe; 14.28/5.53 import qualified Prelude; 14.28/5.53 } 14.28/5.53 14.28/5.53 ---------------------------------------- 14.28/5.53 14.28/5.53 (5) IFR (EQUIVALENT) 14.28/5.53 If Reductions: 14.28/5.53 The following If expression 14.28/5.53 "if p x then i : [] else []" 14.28/5.53 is transformed to 14.28/5.53 "findIndices000 i True = i : []; 14.28/5.53 findIndices000 i False = []; 14.28/5.53 " 14.28/5.53 14.28/5.53 ---------------------------------------- 14.28/5.53 14.28/5.53 (6) 14.28/5.53 Obligation: 14.28/5.53 mainModule Main 14.28/5.53 module Maybe where { 14.28/5.53 import qualified List; 14.28/5.53 import qualified Main; 14.28/5.53 import qualified Prelude; 14.28/5.53 listToMaybe :: [a] -> Maybe a; 14.28/5.53 listToMaybe [] = Nothing; 14.28/5.53 listToMaybe (a : _) = Just a; 14.28/5.53 14.28/5.53 } 14.28/5.53 module List where { 14.28/5.53 import qualified Main; 14.28/5.53 import qualified Maybe; 14.28/5.53 import qualified Prelude; 14.28/5.53 elemIndex :: Eq a => a -> [a] -> Maybe Int; 14.28/5.53 elemIndex x = findIndex (== x); 14.28/5.53 14.28/5.53 findIndex :: (a -> Bool) -> [a] -> Maybe Int; 14.28/5.53 findIndex p = Maybe.listToMaybe . findIndices p; 14.28/5.53 14.28/5.53 findIndices :: (a -> Bool) -> [a] -> [Int]; 14.28/5.53 findIndices p xs = concatMap (findIndices0 p) (zip xs (enumFrom 0)); 14.28/5.53 14.28/5.53 findIndices0 p vv1 = findIndices00 p vv1; 14.28/5.53 14.28/5.53 findIndices00 p (x,i) = findIndices000 i (p x); 14.28/5.53 findIndices00 p _ = []; 14.28/5.53 14.28/5.53 findIndices000 i True = i : []; 14.28/5.53 findIndices000 i False = []; 14.28/5.53 14.28/5.53 } 14.28/5.53 module Main where { 14.28/5.53 import qualified List; 14.28/5.53 import qualified Maybe; 14.28/5.53 import qualified Prelude; 14.28/5.53 } 14.28/5.53 14.28/5.53 ---------------------------------------- 14.28/5.53 14.28/5.53 (7) BR (EQUIVALENT) 14.28/5.53 Replaced joker patterns by fresh variables and removed binding patterns. 14.28/5.53 ---------------------------------------- 14.28/5.53 14.28/5.53 (8) 14.28/5.53 Obligation: 14.28/5.53 mainModule Main 14.28/5.53 module Maybe where { 14.28/5.53 import qualified List; 14.28/5.53 import qualified Main; 14.28/5.53 import qualified Prelude; 14.28/5.53 listToMaybe :: [a] -> Maybe a; 14.28/5.53 listToMaybe [] = Nothing; 14.28/5.53 listToMaybe (a : wv) = Just a; 14.28/5.53 14.28/5.53 } 14.28/5.53 module List where { 14.28/5.53 import qualified Main; 14.28/5.53 import qualified Maybe; 14.28/5.53 import qualified Prelude; 14.28/5.53 elemIndex :: Eq a => a -> [a] -> Maybe Int; 14.28/5.53 elemIndex x = findIndex (== x); 14.28/5.53 14.28/5.53 findIndex :: (a -> Bool) -> [a] -> Maybe Int; 14.28/5.53 findIndex p = Maybe.listToMaybe . findIndices p; 14.28/5.53 14.28/5.53 findIndices :: (a -> Bool) -> [a] -> [Int]; 14.28/5.53 findIndices p xs = concatMap (findIndices0 p) (zip xs (enumFrom 0)); 14.28/5.53 14.28/5.53 findIndices0 p vv1 = findIndices00 p vv1; 14.28/5.53 14.28/5.53 findIndices00 p (x,i) = findIndices000 i (p x); 14.28/5.53 findIndices00 p ww = []; 14.28/5.53 14.28/5.53 findIndices000 i True = i : []; 14.28/5.53 findIndices000 i False = []; 14.28/5.53 14.28/5.53 } 14.28/5.53 module Main where { 14.28/5.53 import qualified List; 14.28/5.53 import qualified Maybe; 14.28/5.53 import qualified Prelude; 14.28/5.53 } 14.28/5.53 14.28/5.53 ---------------------------------------- 14.28/5.53 14.28/5.53 (9) COR (EQUIVALENT) 14.28/5.53 Cond Reductions: 14.28/5.53 The following Function with conditions 14.28/5.53 "undefined |Falseundefined; 14.28/5.53 " 14.28/5.53 is transformed to 14.28/5.53 "undefined = undefined1; 14.28/5.53 " 14.28/5.53 "undefined0 True = undefined; 14.28/5.53 " 14.28/5.53 "undefined1 = undefined0 False; 14.28/5.53 " 14.28/5.53 14.28/5.53 ---------------------------------------- 14.28/5.53 14.28/5.53 (10) 14.28/5.53 Obligation: 14.28/5.53 mainModule Main 14.28/5.53 module Maybe where { 14.28/5.53 import qualified List; 14.28/5.53 import qualified Main; 14.28/5.53 import qualified Prelude; 14.28/5.53 listToMaybe :: [a] -> Maybe a; 14.28/5.53 listToMaybe [] = Nothing; 14.28/5.53 listToMaybe (a : wv) = Just a; 14.28/5.53 14.28/5.53 } 14.28/5.53 module List where { 14.28/5.53 import qualified Main; 14.28/5.53 import qualified Maybe; 14.28/5.53 import qualified Prelude; 14.28/5.53 elemIndex :: Eq a => a -> [a] -> Maybe Int; 14.28/5.53 elemIndex x = findIndex (== x); 14.28/5.53 14.28/5.53 findIndex :: (a -> Bool) -> [a] -> Maybe Int; 14.28/5.53 findIndex p = Maybe.listToMaybe . findIndices p; 14.28/5.53 14.28/5.53 findIndices :: (a -> Bool) -> [a] -> [Int]; 14.28/5.53 findIndices p xs = concatMap (findIndices0 p) (zip xs (enumFrom 0)); 14.28/5.53 14.28/5.53 findIndices0 p vv1 = findIndices00 p vv1; 14.28/5.53 14.28/5.53 findIndices00 p (x,i) = findIndices000 i (p x); 14.28/5.53 findIndices00 p ww = []; 14.28/5.53 14.28/5.53 findIndices000 i True = i : []; 14.28/5.53 findIndices000 i False = []; 14.28/5.53 14.28/5.53 } 14.28/5.53 module Main where { 14.28/5.53 import qualified List; 14.28/5.53 import qualified Maybe; 14.28/5.53 import qualified Prelude; 14.28/5.53 } 14.28/5.53 14.28/5.53 ---------------------------------------- 14.28/5.53 14.28/5.53 (11) NumRed (SOUND) 14.28/5.53 Num Reduction:All numbers are transformed to their corresponding representation with Succ, Pred and Zero. 14.28/5.53 ---------------------------------------- 14.28/5.53 14.28/5.53 (12) 14.28/5.53 Obligation: 14.28/5.53 mainModule Main 14.28/5.53 module Maybe where { 14.28/5.53 import qualified List; 14.28/5.53 import qualified Main; 14.28/5.53 import qualified Prelude; 14.28/5.53 listToMaybe :: [a] -> Maybe a; 14.28/5.53 listToMaybe [] = Nothing; 14.28/5.53 listToMaybe (a : wv) = Just a; 14.28/5.53 14.28/5.53 } 14.28/5.53 module List where { 14.28/5.53 import qualified Main; 14.28/5.53 import qualified Maybe; 14.28/5.53 import qualified Prelude; 14.28/5.53 elemIndex :: Eq a => a -> [a] -> Maybe Int; 14.28/5.53 elemIndex x = findIndex (== x); 14.28/5.53 14.28/5.53 findIndex :: (a -> Bool) -> [a] -> Maybe Int; 14.28/5.53 findIndex p = Maybe.listToMaybe . findIndices p; 14.28/5.53 14.28/5.53 findIndices :: (a -> Bool) -> [a] -> [Int]; 14.28/5.53 findIndices p xs = concatMap (findIndices0 p) (zip xs (enumFrom (Pos Zero))); 14.28/5.53 14.28/5.53 findIndices0 p vv1 = findIndices00 p vv1; 14.28/5.53 14.28/5.53 findIndices00 p (x,i) = findIndices000 i (p x); 14.28/5.53 findIndices00 p ww = []; 14.28/5.53 14.28/5.53 findIndices000 i True = i : []; 14.28/5.53 findIndices000 i False = []; 14.28/5.53 14.28/5.53 } 14.28/5.53 module Main where { 14.28/5.53 import qualified List; 14.28/5.53 import qualified Maybe; 14.28/5.53 import qualified Prelude; 14.28/5.53 } 14.28/5.53 14.28/5.53 ---------------------------------------- 14.28/5.53 14.28/5.53 (13) Narrow (SOUND) 14.28/5.53 Haskell To QDPs 14.28/5.53 14.28/5.53 digraph dp_graph { 14.28/5.53 node [outthreshold=100, inthreshold=100];1[label="List.elemIndex",fontsize=16,color="grey",shape="box"];1 -> 3[label="",style="dashed", color="grey", weight=3]; 14.28/5.53 3[label="List.elemIndex wx3",fontsize=16,color="grey",shape="box"];3 -> 4[label="",style="dashed", color="grey", weight=3]; 14.28/5.53 4[label="List.elemIndex wx3 wx4",fontsize=16,color="black",shape="triangle"];4 -> 5[label="",style="solid", color="black", weight=3]; 14.28/5.53 5[label="List.findIndex (wx3 ==) wx4",fontsize=16,color="black",shape="box"];5 -> 6[label="",style="solid", color="black", weight=3]; 14.28/5.53 6[label="Maybe.listToMaybe . List.findIndices (wx3 ==)",fontsize=16,color="black",shape="box"];6 -> 7[label="",style="solid", color="black", weight=3]; 14.28/5.53 7[label="Maybe.listToMaybe (List.findIndices (wx3 ==) wx4)",fontsize=16,color="black",shape="box"];7 -> 8[label="",style="solid", color="black", weight=3]; 14.28/5.53 8[label="Maybe.listToMaybe (concatMap (List.findIndices0 (wx3 ==)) (zip wx4 (enumFrom (Pos Zero))))",fontsize=16,color="black",shape="box"];8 -> 9[label="",style="solid", color="black", weight=3]; 14.28/5.53 9[label="Maybe.listToMaybe (concat . map (List.findIndices0 (wx3 ==)))",fontsize=16,color="black",shape="box"];9 -> 10[label="",style="solid", color="black", weight=3]; 14.28/5.53 10[label="Maybe.listToMaybe (concat (map (List.findIndices0 (wx3 ==)) (zip wx4 (enumFrom (Pos Zero)))))",fontsize=16,color="black",shape="box"];10 -> 11[label="",style="solid", color="black", weight=3]; 14.28/5.53 11[label="Maybe.listToMaybe (foldr (++) [] (map (List.findIndices0 (wx3 ==)) (zip wx4 (enumFrom (Pos Zero)))))",fontsize=16,color="black",shape="box"];11 -> 12[label="",style="solid", color="black", weight=3]; 14.28/5.53 12[label="Maybe.listToMaybe (foldr (++) [] (map (List.findIndices0 (wx3 ==)) (zipWith zip0 wx4 (enumFrom (Pos Zero)))))",fontsize=16,color="burlywood",shape="box"];234[label="wx4/wx40 : wx41",fontsize=10,color="white",style="solid",shape="box"];12 -> 234[label="",style="solid", color="burlywood", weight=9]; 14.28/5.53 234 -> 13[label="",style="solid", color="burlywood", weight=3]; 14.28/5.53 235[label="wx4/[]",fontsize=10,color="white",style="solid",shape="box"];12 -> 235[label="",style="solid", color="burlywood", weight=9]; 14.28/5.53 235 -> 14[label="",style="solid", color="burlywood", weight=3]; 14.28/5.53 13[label="Maybe.listToMaybe (foldr (++) [] (map (List.findIndices0 (wx3 ==)) (zipWith zip0 (wx40 : wx41) (enumFrom (Pos Zero)))))",fontsize=16,color="black",shape="box"];13 -> 15[label="",style="solid", color="black", weight=3]; 14.28/5.53 14[label="Maybe.listToMaybe (foldr (++) [] (map (List.findIndices0 (wx3 ==)) (zipWith zip0 [] (enumFrom (Pos Zero)))))",fontsize=16,color="black",shape="box"];14 -> 16[label="",style="solid", color="black", weight=3]; 14.28/5.53 15[label="Maybe.listToMaybe (foldr (++) [] (map (List.findIndices0 (wx3 ==)) (zipWith zip0 (wx40 : wx41) (numericEnumFrom (Pos Zero)))))",fontsize=16,color="black",shape="box"];15 -> 17[label="",style="solid", color="black", weight=3]; 14.28/5.53 16[label="Maybe.listToMaybe (foldr (++) [] (map (List.findIndices0 (wx3 ==)) []))",fontsize=16,color="black",shape="triangle"];16 -> 18[label="",style="solid", color="black", weight=3]; 14.28/5.53 17[label="Maybe.listToMaybe (foldr (++) [] (map (List.findIndices0 (wx3 ==)) (zipWith zip0 (wx40 : wx41) (Pos Zero : (numericEnumFrom $! Pos Zero + fromInt (Pos (Succ Zero)))))))",fontsize=16,color="black",shape="box"];17 -> 19[label="",style="solid", color="black", weight=3]; 14.28/5.53 18[label="Maybe.listToMaybe (foldr (++) [] [])",fontsize=16,color="black",shape="box"];18 -> 20[label="",style="solid", color="black", weight=3]; 14.28/5.53 19[label="Maybe.listToMaybe (foldr (++) [] (map (List.findIndices0 (wx3 ==)) (zip0 wx40 (Pos Zero) : zipWith zip0 wx41 (numericEnumFrom $! Pos Zero + fromInt (Pos (Succ Zero))))))",fontsize=16,color="black",shape="box"];19 -> 21[label="",style="solid", color="black", weight=3]; 14.28/5.53 20[label="Maybe.listToMaybe []",fontsize=16,color="black",shape="box"];20 -> 22[label="",style="solid", color="black", weight=3]; 14.28/5.53 21[label="Maybe.listToMaybe (foldr (++) [] (List.findIndices0 (wx3 ==) (zip0 wx40 (Pos Zero)) : map (List.findIndices0 (wx3 ==)) (zipWith zip0 wx41 (numericEnumFrom $! Pos Zero + fromInt (Pos (Succ Zero))))))",fontsize=16,color="black",shape="box"];21 -> 23[label="",style="solid", color="black", weight=3]; 14.28/5.53 22[label="Nothing",fontsize=16,color="green",shape="box"];23[label="Maybe.listToMaybe ((++) List.findIndices0 (wx3 ==) (zip0 wx40 (Pos Zero)) foldr (++) [] (map (List.findIndices0 (wx3 ==)) (zipWith zip0 wx41 (numericEnumFrom $! Pos Zero + fromInt (Pos (Succ Zero))))))",fontsize=16,color="black",shape="box"];23 -> 24[label="",style="solid", color="black", weight=3]; 14.28/5.53 24[label="Maybe.listToMaybe ((++) List.findIndices00 (wx3 ==) (zip0 wx40 (Pos Zero)) foldr (++) [] (map (List.findIndices0 (wx3 ==)) (zipWith zip0 wx41 (numericEnumFrom $! Pos Zero + fromInt (Pos (Succ Zero))))))",fontsize=16,color="black",shape="box"];24 -> 25[label="",style="solid", color="black", weight=3]; 14.28/5.53 25[label="Maybe.listToMaybe ((++) List.findIndices00 (wx3 ==) (wx40,Pos Zero) foldr (++) [] (map (List.findIndices0 (wx3 ==)) (zipWith zip0 wx41 (numericEnumFrom $! Pos Zero + fromInt (Pos (Succ Zero))))))",fontsize=16,color="black",shape="box"];25 -> 26[label="",style="solid", color="black", weight=3]; 14.28/5.53 26[label="Maybe.listToMaybe ((++) List.findIndices000 (Pos Zero) (wx3 == wx40) foldr (++) [] (map (List.findIndices0 (wx3 ==)) (zipWith zip0 wx41 (numericEnumFrom $! Pos Zero + fromInt (Pos (Succ Zero))))))",fontsize=16,color="burlywood",shape="box"];236[label="wx3/False",fontsize=10,color="white",style="solid",shape="box"];26 -> 236[label="",style="solid", color="burlywood", weight=9]; 14.28/5.53 236 -> 27[label="",style="solid", color="burlywood", weight=3]; 14.28/5.53 237[label="wx3/True",fontsize=10,color="white",style="solid",shape="box"];26 -> 237[label="",style="solid", color="burlywood", weight=9]; 14.28/5.53 237 -> 28[label="",style="solid", color="burlywood", weight=3]; 14.28/5.53 27[label="Maybe.listToMaybe ((++) List.findIndices000 (Pos Zero) (False == wx40) foldr (++) [] (map (List.findIndices0 (False ==)) (zipWith zip0 wx41 (numericEnumFrom $! Pos Zero + fromInt (Pos (Succ Zero))))))",fontsize=16,color="burlywood",shape="box"];238[label="wx40/False",fontsize=10,color="white",style="solid",shape="box"];27 -> 238[label="",style="solid", color="burlywood", weight=9]; 14.28/5.53 238 -> 29[label="",style="solid", color="burlywood", weight=3]; 14.28/5.53 239[label="wx40/True",fontsize=10,color="white",style="solid",shape="box"];27 -> 239[label="",style="solid", color="burlywood", weight=9]; 14.28/5.53 239 -> 30[label="",style="solid", color="burlywood", weight=3]; 14.28/5.53 28[label="Maybe.listToMaybe ((++) List.findIndices000 (Pos Zero) (True == wx40) foldr (++) [] (map (List.findIndices0 (True ==)) (zipWith zip0 wx41 (numericEnumFrom $! Pos Zero + fromInt (Pos (Succ Zero))))))",fontsize=16,color="burlywood",shape="box"];240[label="wx40/False",fontsize=10,color="white",style="solid",shape="box"];28 -> 240[label="",style="solid", color="burlywood", weight=9]; 14.28/5.53 240 -> 31[label="",style="solid", color="burlywood", weight=3]; 14.28/5.53 241[label="wx40/True",fontsize=10,color="white",style="solid",shape="box"];28 -> 241[label="",style="solid", color="burlywood", weight=9]; 14.28/5.53 241 -> 32[label="",style="solid", color="burlywood", weight=3]; 14.28/5.53 29[label="Maybe.listToMaybe ((++) List.findIndices000 (Pos Zero) (False == False) foldr (++) [] (map (List.findIndices0 (False ==)) (zipWith zip0 wx41 (numericEnumFrom $! Pos Zero + fromInt (Pos (Succ Zero))))))",fontsize=16,color="black",shape="box"];29 -> 33[label="",style="solid", color="black", weight=3]; 14.28/5.53 30[label="Maybe.listToMaybe ((++) List.findIndices000 (Pos Zero) (False == True) foldr (++) [] (map (List.findIndices0 (False ==)) (zipWith zip0 wx41 (numericEnumFrom $! Pos Zero + fromInt (Pos (Succ Zero))))))",fontsize=16,color="black",shape="box"];30 -> 34[label="",style="solid", color="black", weight=3]; 14.28/5.53 31[label="Maybe.listToMaybe ((++) List.findIndices000 (Pos Zero) (True == False) foldr (++) [] (map (List.findIndices0 (True ==)) (zipWith zip0 wx41 (numericEnumFrom $! Pos Zero + fromInt (Pos (Succ Zero))))))",fontsize=16,color="black",shape="box"];31 -> 35[label="",style="solid", color="black", weight=3]; 14.28/5.53 32[label="Maybe.listToMaybe ((++) List.findIndices000 (Pos Zero) (True == True) foldr (++) [] (map (List.findIndices0 (True ==)) (zipWith zip0 wx41 (numericEnumFrom $! Pos Zero + fromInt (Pos (Succ Zero))))))",fontsize=16,color="black",shape="box"];32 -> 36[label="",style="solid", color="black", weight=3]; 14.28/5.53 33[label="Maybe.listToMaybe ((++) List.findIndices000 (Pos Zero) True foldr (++) [] (map (List.findIndices0 (False ==)) (zipWith zip0 wx41 (numericEnumFrom $! Pos Zero + fromInt (Pos (Succ Zero))))))",fontsize=16,color="black",shape="box"];33 -> 37[label="",style="solid", color="black", weight=3]; 14.28/5.53 34[label="Maybe.listToMaybe ((++) List.findIndices000 (Pos Zero) False foldr (++) [] (map (List.findIndices0 (False ==)) (zipWith zip0 wx41 (numericEnumFrom $! Pos Zero + fromInt (Pos (Succ Zero))))))",fontsize=16,color="black",shape="box"];34 -> 38[label="",style="solid", color="black", weight=3]; 14.28/5.53 35[label="Maybe.listToMaybe ((++) List.findIndices000 (Pos Zero) False foldr (++) [] (map (List.findIndices0 (True ==)) (zipWith zip0 wx41 (numericEnumFrom $! Pos Zero + fromInt (Pos (Succ Zero))))))",fontsize=16,color="black",shape="box"];35 -> 39[label="",style="solid", color="black", weight=3]; 14.28/5.53 36[label="Maybe.listToMaybe ((++) List.findIndices000 (Pos Zero) True foldr (++) [] (map (List.findIndices0 (True ==)) (zipWith zip0 wx41 (numericEnumFrom $! Pos Zero + fromInt (Pos (Succ Zero))))))",fontsize=16,color="black",shape="box"];36 -> 40[label="",style="solid", color="black", weight=3]; 14.28/5.53 37[label="Maybe.listToMaybe ((++) (Pos Zero : []) foldr (++) [] (map (List.findIndices0 (False ==)) (zipWith zip0 wx41 (numericEnumFrom $! Pos Zero + fromInt (Pos (Succ Zero))))))",fontsize=16,color="black",shape="box"];37 -> 41[label="",style="solid", color="black", weight=3]; 14.28/5.53 38[label="Maybe.listToMaybe ((++) [] foldr (++) [] (map (List.findIndices0 (False ==)) (zipWith zip0 wx41 (numericEnumFrom $! Pos Zero + fromInt (Pos (Succ Zero))))))",fontsize=16,color="black",shape="box"];38 -> 42[label="",style="solid", color="black", weight=3]; 14.28/5.53 39[label="Maybe.listToMaybe ((++) [] foldr (++) [] (map (List.findIndices0 (True ==)) (zipWith zip0 wx41 (numericEnumFrom $! Pos Zero + fromInt (Pos (Succ Zero))))))",fontsize=16,color="black",shape="box"];39 -> 43[label="",style="solid", color="black", weight=3]; 14.28/5.53 40[label="Maybe.listToMaybe ((++) (Pos Zero : []) foldr (++) [] (map (List.findIndices0 (True ==)) (zipWith zip0 wx41 (numericEnumFrom $! Pos Zero + fromInt (Pos (Succ Zero))))))",fontsize=16,color="black",shape="box"];40 -> 44[label="",style="solid", color="black", weight=3]; 14.28/5.53 41[label="Maybe.listToMaybe (Pos Zero : [] ++ foldr (++) [] (map (List.findIndices0 (False ==)) (zipWith zip0 wx41 (numericEnumFrom $! Pos Zero + fromInt (Pos (Succ Zero))))))",fontsize=16,color="black",shape="box"];41 -> 45[label="",style="solid", color="black", weight=3]; 14.28/5.53 42[label="Maybe.listToMaybe (foldr (++) [] (map (List.findIndices0 (False ==)) (zipWith zip0 wx41 (numericEnumFrom $! Pos Zero + fromInt (Pos (Succ Zero))))))",fontsize=16,color="burlywood",shape="box"];242[label="wx41/wx410 : wx411",fontsize=10,color="white",style="solid",shape="box"];42 -> 242[label="",style="solid", color="burlywood", weight=9]; 14.28/5.53 242 -> 46[label="",style="solid", color="burlywood", weight=3]; 14.28/5.53 243[label="wx41/[]",fontsize=10,color="white",style="solid",shape="box"];42 -> 243[label="",style="solid", color="burlywood", weight=9]; 14.28/5.53 243 -> 47[label="",style="solid", color="burlywood", weight=3]; 14.28/5.53 43[label="Maybe.listToMaybe (foldr (++) [] (map (List.findIndices0 (True ==)) (zipWith zip0 wx41 (numericEnumFrom $! Pos Zero + fromInt (Pos (Succ Zero))))))",fontsize=16,color="burlywood",shape="box"];244[label="wx41/wx410 : wx411",fontsize=10,color="white",style="solid",shape="box"];43 -> 244[label="",style="solid", color="burlywood", weight=9]; 14.28/5.53 244 -> 48[label="",style="solid", color="burlywood", weight=3]; 14.28/5.53 245[label="wx41/[]",fontsize=10,color="white",style="solid",shape="box"];43 -> 245[label="",style="solid", color="burlywood", weight=9]; 14.28/5.53 245 -> 49[label="",style="solid", color="burlywood", weight=3]; 14.28/5.53 44[label="Maybe.listToMaybe (Pos Zero : [] ++ foldr (++) [] (map (List.findIndices0 (True ==)) (zipWith zip0 wx41 (numericEnumFrom $! Pos Zero + fromInt (Pos (Succ Zero))))))",fontsize=16,color="black",shape="box"];44 -> 50[label="",style="solid", color="black", weight=3]; 14.28/5.53 45[label="Just (Pos Zero)",fontsize=16,color="green",shape="box"];46[label="Maybe.listToMaybe (foldr (++) [] (map (List.findIndices0 (False ==)) (zipWith zip0 (wx410 : wx411) (numericEnumFrom $! Pos Zero + fromInt (Pos (Succ Zero))))))",fontsize=16,color="black",shape="box"];46 -> 51[label="",style="solid", color="black", weight=3]; 14.28/5.53 47[label="Maybe.listToMaybe (foldr (++) [] (map (List.findIndices0 (False ==)) (zipWith zip0 [] (numericEnumFrom $! Pos Zero + fromInt (Pos (Succ Zero))))))",fontsize=16,color="black",shape="box"];47 -> 52[label="",style="solid", color="black", weight=3]; 14.28/5.53 48[label="Maybe.listToMaybe (foldr (++) [] (map (List.findIndices0 (True ==)) (zipWith zip0 (wx410 : wx411) (numericEnumFrom $! Pos Zero + fromInt (Pos (Succ Zero))))))",fontsize=16,color="black",shape="box"];48 -> 53[label="",style="solid", color="black", weight=3]; 14.28/5.53 49[label="Maybe.listToMaybe (foldr (++) [] (map (List.findIndices0 (True ==)) (zipWith zip0 [] (numericEnumFrom $! Pos Zero + fromInt (Pos (Succ Zero))))))",fontsize=16,color="black",shape="box"];49 -> 54[label="",style="solid", color="black", weight=3]; 14.28/5.53 50[label="Just (Pos Zero)",fontsize=16,color="green",shape="box"];51 -> 110[label="",style="dashed", color="red", weight=0]; 14.28/5.53 51[label="Maybe.listToMaybe (foldr (++) [] (map (List.findIndices0 (False ==)) (zipWith zip0 (wx410 : wx411) (Pos Zero + fromInt (Pos (Succ Zero)) `seq` numericEnumFrom (Pos Zero + fromInt (Pos (Succ Zero)))))))",fontsize=16,color="magenta"];51 -> 111[label="",style="dashed", color="magenta", weight=3]; 14.28/5.53 51 -> 112[label="",style="dashed", color="magenta", weight=3]; 14.28/5.53 51 -> 113[label="",style="dashed", color="magenta", weight=3]; 14.28/5.53 51 -> 114[label="",style="dashed", color="magenta", weight=3]; 14.28/5.53 52 -> 16[label="",style="dashed", color="red", weight=0]; 14.28/5.53 52[label="Maybe.listToMaybe (foldr (++) [] (map (List.findIndices0 (False ==)) []))",fontsize=16,color="magenta"];52 -> 56[label="",style="dashed", color="magenta", weight=3]; 14.28/5.53 53 -> 185[label="",style="dashed", color="red", weight=0]; 14.28/5.53 53[label="Maybe.listToMaybe (foldr (++) [] (map (List.findIndices0 (True ==)) (zipWith zip0 (wx410 : wx411) (Pos Zero + fromInt (Pos (Succ Zero)) `seq` numericEnumFrom (Pos Zero + fromInt (Pos (Succ Zero)))))))",fontsize=16,color="magenta"];53 -> 186[label="",style="dashed", color="magenta", weight=3]; 14.28/5.53 53 -> 187[label="",style="dashed", color="magenta", weight=3]; 14.28/5.53 53 -> 188[label="",style="dashed", color="magenta", weight=3]; 14.28/5.53 53 -> 189[label="",style="dashed", color="magenta", weight=3]; 14.28/5.53 54 -> 16[label="",style="dashed", color="red", weight=0]; 14.28/5.53 54[label="Maybe.listToMaybe (foldr (++) [] (map (List.findIndices0 (True ==)) []))",fontsize=16,color="magenta"];54 -> 58[label="",style="dashed", color="magenta", weight=3]; 14.28/5.53 111[label="wx410",fontsize=16,color="green",shape="box"];112[label="Zero",fontsize=16,color="green",shape="box"];113[label="wx411",fontsize=16,color="green",shape="box"];114[label="Zero",fontsize=16,color="green",shape="box"];110[label="Maybe.listToMaybe (foldr (++) [] (map (List.findIndices0 (False ==)) (zipWith zip0 (wx4110 : wx4111) (Pos wx5 + fromInt (Pos (Succ Zero)) `seq` numericEnumFrom (Pos wx6 + fromInt (Pos (Succ Zero)))))))",fontsize=16,color="black",shape="triangle"];110 -> 117[label="",style="solid", color="black", weight=3]; 14.28/5.53 56[label="False",fontsize=16,color="green",shape="box"];186[label="Zero",fontsize=16,color="green",shape="box"];187[label="Zero",fontsize=16,color="green",shape="box"];188[label="wx410",fontsize=16,color="green",shape="box"];189[label="wx411",fontsize=16,color="green",shape="box"];185[label="Maybe.listToMaybe (foldr (++) [] (map (List.findIndices0 (True ==)) (zipWith zip0 (wx41110 : wx41111) (Pos wx9 + fromInt (Pos (Succ Zero)) `seq` numericEnumFrom (Pos wx10 + fromInt (Pos (Succ Zero)))))))",fontsize=16,color="black",shape="triangle"];185 -> 192[label="",style="solid", color="black", weight=3]; 14.28/5.53 58[label="True",fontsize=16,color="green",shape="box"];117[label="Maybe.listToMaybe (foldr (++) [] (map (List.findIndices0 (False ==)) (zipWith zip0 (wx4110 : wx4111) (enforceWHNF (WHNF (Pos wx5 + fromInt (Pos (Succ Zero)))) (numericEnumFrom (Pos wx6 + fromInt (Pos (Succ Zero))))))))",fontsize=16,color="black",shape="box"];117 -> 121[label="",style="solid", color="black", weight=3]; 14.28/5.53 192[label="Maybe.listToMaybe (foldr (++) [] (map (List.findIndices0 (True ==)) (zipWith zip0 (wx41110 : wx41111) (enforceWHNF (WHNF (Pos wx9 + fromInt (Pos (Succ Zero)))) (numericEnumFrom (Pos wx10 + fromInt (Pos (Succ Zero))))))))",fontsize=16,color="black",shape="box"];192 -> 195[label="",style="solid", color="black", weight=3]; 14.28/5.53 121[label="Maybe.listToMaybe (foldr (++) [] (map (List.findIndices0 (False ==)) (zipWith zip0 (wx4110 : wx4111) (enforceWHNF (WHNF (primPlusInt (Pos wx5) (fromInt (Pos (Succ Zero))))) (numericEnumFrom (primPlusInt (Pos wx6) (fromInt (Pos (Succ Zero)))))))))",fontsize=16,color="black",shape="box"];121 -> 130[label="",style="solid", color="black", weight=3]; 14.28/5.53 195[label="Maybe.listToMaybe (foldr (++) [] (map (List.findIndices0 (True ==)) (zipWith zip0 (wx41110 : wx41111) (enforceWHNF (WHNF (primPlusInt (Pos wx9) (fromInt (Pos (Succ Zero))))) (numericEnumFrom (primPlusInt (Pos wx10) (fromInt (Pos (Succ Zero)))))))))",fontsize=16,color="black",shape="box"];195 -> 197[label="",style="solid", color="black", weight=3]; 14.28/5.53 130[label="Maybe.listToMaybe (foldr (++) [] (map (List.findIndices0 (False ==)) (zipWith zip0 (wx4110 : wx4111) (enforceWHNF (WHNF (primPlusInt (Pos wx5) (Pos (Succ Zero)))) (numericEnumFrom (primPlusInt (Pos wx6) (Pos (Succ Zero))))))))",fontsize=16,color="black",shape="box"];130 -> 132[label="",style="solid", color="black", weight=3]; 14.28/5.53 197[label="Maybe.listToMaybe (foldr (++) [] (map (List.findIndices0 (True ==)) (zipWith zip0 (wx41110 : wx41111) (enforceWHNF (WHNF (primPlusInt (Pos wx9) (Pos (Succ Zero)))) (numericEnumFrom (primPlusInt (Pos wx10) (Pos (Succ Zero))))))))",fontsize=16,color="black",shape="box"];197 -> 200[label="",style="solid", color="black", weight=3]; 14.28/5.53 132[label="Maybe.listToMaybe (foldr (++) [] (map (List.findIndices0 (False ==)) (zipWith zip0 (wx4110 : wx4111) (enforceWHNF (WHNF (Pos (primPlusNat wx5 (Succ Zero)))) (numericEnumFrom (Pos (primPlusNat wx5 (Succ Zero))))))))",fontsize=16,color="black",shape="box"];132 -> 134[label="",style="solid", color="black", weight=3]; 14.28/5.53 200 -> 203[label="",style="dashed", color="red", weight=0]; 14.28/5.53 200[label="Maybe.listToMaybe (foldr (++) [] (map (List.findIndices0 (True ==)) (zipWith zip0 (wx41110 : wx41111) (enforceWHNF (WHNF (Pos (primPlusNat wx9 (Succ Zero)))) (numericEnumFrom (Pos (primPlusNat wx9 (Succ Zero))))))))",fontsize=16,color="magenta"];200 -> 204[label="",style="dashed", color="magenta", weight=3]; 14.28/5.53 200 -> 205[label="",style="dashed", color="magenta", weight=3]; 14.28/5.53 134[label="Maybe.listToMaybe (foldr (++) [] (map (List.findIndices0 (False ==)) (zipWith zip0 (wx4110 : wx4111) (numericEnumFrom (Pos (primPlusNat wx5 (Succ Zero)))))))",fontsize=16,color="black",shape="box"];134 -> 136[label="",style="solid", color="black", weight=3]; 14.28/5.53 204 -> 172[label="",style="dashed", color="red", weight=0]; 14.28/5.53 204[label="primPlusNat wx9 (Succ Zero)",fontsize=16,color="magenta"];204 -> 206[label="",style="dashed", color="magenta", weight=3]; 14.28/5.53 205 -> 172[label="",style="dashed", color="red", weight=0]; 14.28/5.53 205[label="primPlusNat wx9 (Succ Zero)",fontsize=16,color="magenta"];205 -> 207[label="",style="dashed", color="magenta", weight=3]; 14.28/5.53 203[label="Maybe.listToMaybe (foldr (++) [] (map (List.findIndices0 (True ==)) (zipWith zip0 (wx41110 : wx41111) (enforceWHNF (WHNF (Pos wx12)) (numericEnumFrom (Pos wx11))))))",fontsize=16,color="black",shape="triangle"];203 -> 208[label="",style="solid", color="black", weight=3]; 14.28/5.53 136[label="Maybe.listToMaybe (foldr (++) [] (map (List.findIndices0 (False ==)) (zipWith zip0 (wx4110 : wx4111) (Pos (primPlusNat wx5 (Succ Zero)) : (numericEnumFrom $! Pos (primPlusNat wx5 (Succ Zero)) + fromInt (Pos (Succ Zero)))))))",fontsize=16,color="black",shape="box"];136 -> 138[label="",style="solid", color="black", weight=3]; 14.28/5.53 206[label="wx9",fontsize=16,color="green",shape="box"];172[label="primPlusNat wx5 (Succ Zero)",fontsize=16,color="burlywood",shape="triangle"];246[label="wx5/Succ wx50",fontsize=10,color="white",style="solid",shape="box"];172 -> 246[label="",style="solid", color="burlywood", weight=9]; 14.28/5.53 246 -> 178[label="",style="solid", color="burlywood", weight=3]; 14.28/5.53 247[label="wx5/Zero",fontsize=10,color="white",style="solid",shape="box"];172 -> 247[label="",style="solid", color="burlywood", weight=9]; 14.28/5.53 247 -> 179[label="",style="solid", color="burlywood", weight=3]; 14.28/5.53 207[label="wx9",fontsize=16,color="green",shape="box"];208[label="Maybe.listToMaybe (foldr (++) [] (map (List.findIndices0 (True ==)) (zipWith zip0 (wx41110 : wx41111) (numericEnumFrom (Pos wx11)))))",fontsize=16,color="black",shape="box"];208 -> 209[label="",style="solid", color="black", weight=3]; 14.28/5.53 138[label="Maybe.listToMaybe (foldr (++) [] (map (List.findIndices0 (False ==)) (zip0 wx4110 (Pos (primPlusNat wx5 (Succ Zero))) : zipWith zip0 wx4111 (numericEnumFrom $! Pos (primPlusNat wx5 (Succ Zero)) + fromInt (Pos (Succ Zero))))))",fontsize=16,color="black",shape="box"];138 -> 140[label="",style="solid", color="black", weight=3]; 14.28/5.53 178[label="primPlusNat (Succ wx50) (Succ Zero)",fontsize=16,color="black",shape="box"];178 -> 193[label="",style="solid", color="black", weight=3]; 14.28/5.53 179[label="primPlusNat Zero (Succ Zero)",fontsize=16,color="black",shape="box"];179 -> 194[label="",style="solid", color="black", weight=3]; 14.28/5.53 209[label="Maybe.listToMaybe (foldr (++) [] (map (List.findIndices0 (True ==)) (zipWith zip0 (wx41110 : wx41111) (Pos wx11 : (numericEnumFrom $! Pos wx11 + fromInt (Pos (Succ Zero)))))))",fontsize=16,color="black",shape="box"];209 -> 210[label="",style="solid", color="black", weight=3]; 14.28/5.53 140[label="Maybe.listToMaybe (foldr (++) [] (List.findIndices0 (False ==) (zip0 wx4110 (Pos (primPlusNat wx5 (Succ Zero)))) : map (List.findIndices0 (False ==)) (zipWith zip0 wx4111 (numericEnumFrom $! Pos (primPlusNat wx5 (Succ Zero)) + fromInt (Pos (Succ Zero))))))",fontsize=16,color="black",shape="box"];140 -> 142[label="",style="solid", color="black", weight=3]; 14.28/5.53 193[label="Succ (Succ (primPlusNat wx50 Zero))",fontsize=16,color="green",shape="box"];193 -> 196[label="",style="dashed", color="green", weight=3]; 14.28/5.53 194[label="Succ Zero",fontsize=16,color="green",shape="box"];210[label="Maybe.listToMaybe (foldr (++) [] (map (List.findIndices0 (True ==)) (zip0 wx41110 (Pos wx11) : zipWith zip0 wx41111 (numericEnumFrom $! Pos wx11 + fromInt (Pos (Succ Zero))))))",fontsize=16,color="black",shape="box"];210 -> 211[label="",style="solid", color="black", weight=3]; 14.28/5.53 142[label="Maybe.listToMaybe ((++) List.findIndices0 (False ==) (zip0 wx4110 (Pos (primPlusNat wx5 (Succ Zero)))) foldr (++) [] (map (List.findIndices0 (False ==)) (zipWith zip0 wx4111 (numericEnumFrom $! Pos (primPlusNat wx5 (Succ Zero)) + fromInt (Pos (Succ Zero))))))",fontsize=16,color="black",shape="box"];142 -> 144[label="",style="solid", color="black", weight=3]; 14.28/5.53 196[label="primPlusNat wx50 Zero",fontsize=16,color="burlywood",shape="box"];248[label="wx50/Succ wx500",fontsize=10,color="white",style="solid",shape="box"];196 -> 248[label="",style="solid", color="burlywood", weight=9]; 14.28/5.53 248 -> 198[label="",style="solid", color="burlywood", weight=3]; 14.28/5.53 249[label="wx50/Zero",fontsize=10,color="white",style="solid",shape="box"];196 -> 249[label="",style="solid", color="burlywood", weight=9]; 14.28/5.53 249 -> 199[label="",style="solid", color="burlywood", weight=3]; 14.28/5.53 211[label="Maybe.listToMaybe (foldr (++) [] (List.findIndices0 (True ==) (zip0 wx41110 (Pos wx11)) : map (List.findIndices0 (True ==)) (zipWith zip0 wx41111 (numericEnumFrom $! Pos wx11 + fromInt (Pos (Succ Zero))))))",fontsize=16,color="black",shape="box"];211 -> 212[label="",style="solid", color="black", weight=3]; 14.28/5.53 144[label="Maybe.listToMaybe ((++) List.findIndices00 (False ==) (zip0 wx4110 (Pos (primPlusNat wx5 (Succ Zero)))) foldr (++) [] (map (List.findIndices0 (False ==)) (zipWith zip0 wx4111 (numericEnumFrom $! Pos (primPlusNat wx5 (Succ Zero)) + fromInt (Pos (Succ Zero))))))",fontsize=16,color="black",shape="box"];144 -> 146[label="",style="solid", color="black", weight=3]; 14.28/5.53 198[label="primPlusNat (Succ wx500) Zero",fontsize=16,color="black",shape="box"];198 -> 201[label="",style="solid", color="black", weight=3]; 14.28/5.53 199[label="primPlusNat Zero Zero",fontsize=16,color="black",shape="box"];199 -> 202[label="",style="solid", color="black", weight=3]; 14.28/5.53 212[label="Maybe.listToMaybe ((++) List.findIndices0 (True ==) (zip0 wx41110 (Pos wx11)) foldr (++) [] (map (List.findIndices0 (True ==)) (zipWith zip0 wx41111 (numericEnumFrom $! Pos wx11 + fromInt (Pos (Succ Zero))))))",fontsize=16,color="black",shape="box"];212 -> 213[label="",style="solid", color="black", weight=3]; 14.28/5.53 146[label="Maybe.listToMaybe ((++) List.findIndices00 (False ==) (wx4110,Pos (primPlusNat wx5 (Succ Zero))) foldr (++) [] (map (List.findIndices0 (False ==)) (zipWith zip0 wx4111 (numericEnumFrom $! Pos (primPlusNat wx5 (Succ Zero)) + fromInt (Pos (Succ Zero))))))",fontsize=16,color="black",shape="box"];146 -> 148[label="",style="solid", color="black", weight=3]; 14.28/5.53 201[label="Succ wx500",fontsize=16,color="green",shape="box"];202[label="Zero",fontsize=16,color="green",shape="box"];213[label="Maybe.listToMaybe ((++) List.findIndices00 (True ==) (zip0 wx41110 (Pos wx11)) foldr (++) [] (map (List.findIndices0 (True ==)) (zipWith zip0 wx41111 (numericEnumFrom $! Pos wx11 + fromInt (Pos (Succ Zero))))))",fontsize=16,color="black",shape="box"];213 -> 214[label="",style="solid", color="black", weight=3]; 14.28/5.53 148[label="Maybe.listToMaybe ((++) List.findIndices000 (Pos (primPlusNat wx5 (Succ Zero))) (False == wx4110) foldr (++) [] (map (List.findIndices0 (False ==)) (zipWith zip0 wx4111 (numericEnumFrom $! Pos (primPlusNat wx5 (Succ Zero)) + fromInt (Pos (Succ Zero))))))",fontsize=16,color="burlywood",shape="box"];250[label="wx4110/False",fontsize=10,color="white",style="solid",shape="box"];148 -> 250[label="",style="solid", color="burlywood", weight=9]; 14.28/5.53 250 -> 150[label="",style="solid", color="burlywood", weight=3]; 14.28/5.53 251[label="wx4110/True",fontsize=10,color="white",style="solid",shape="box"];148 -> 251[label="",style="solid", color="burlywood", weight=9]; 14.28/5.53 251 -> 151[label="",style="solid", color="burlywood", weight=3]; 14.28/5.53 214[label="Maybe.listToMaybe ((++) List.findIndices00 (True ==) (wx41110,Pos wx11) foldr (++) [] (map (List.findIndices0 (True ==)) (zipWith zip0 wx41111 (numericEnumFrom $! Pos wx11 + fromInt (Pos (Succ Zero))))))",fontsize=16,color="black",shape="box"];214 -> 215[label="",style="solid", color="black", weight=3]; 14.28/5.53 150[label="Maybe.listToMaybe ((++) List.findIndices000 (Pos (primPlusNat wx5 (Succ Zero))) (False == False) foldr (++) [] (map (List.findIndices0 (False ==)) (zipWith zip0 wx4111 (numericEnumFrom $! Pos (primPlusNat wx5 (Succ Zero)) + fromInt (Pos (Succ Zero))))))",fontsize=16,color="black",shape="box"];150 -> 154[label="",style="solid", color="black", weight=3]; 14.28/5.53 151[label="Maybe.listToMaybe ((++) List.findIndices000 (Pos (primPlusNat wx5 (Succ Zero))) (False == True) foldr (++) [] (map (List.findIndices0 (False ==)) (zipWith zip0 wx4111 (numericEnumFrom $! Pos (primPlusNat wx5 (Succ Zero)) + fromInt (Pos (Succ Zero))))))",fontsize=16,color="black",shape="box"];151 -> 155[label="",style="solid", color="black", weight=3]; 14.28/5.53 215[label="Maybe.listToMaybe ((++) List.findIndices000 (Pos wx11) (True == wx41110) foldr (++) [] (map (List.findIndices0 (True ==)) (zipWith zip0 wx41111 (numericEnumFrom $! Pos wx11 + fromInt (Pos (Succ Zero))))))",fontsize=16,color="burlywood",shape="box"];252[label="wx41110/False",fontsize=10,color="white",style="solid",shape="box"];215 -> 252[label="",style="solid", color="burlywood", weight=9]; 14.28/5.53 252 -> 216[label="",style="solid", color="burlywood", weight=3]; 14.28/5.53 253[label="wx41110/True",fontsize=10,color="white",style="solid",shape="box"];215 -> 253[label="",style="solid", color="burlywood", weight=9]; 14.28/5.53 253 -> 217[label="",style="solid", color="burlywood", weight=3]; 14.28/5.53 154[label="Maybe.listToMaybe ((++) List.findIndices000 (Pos (primPlusNat wx5 (Succ Zero))) True foldr (++) [] (map (List.findIndices0 (False ==)) (zipWith zip0 wx4111 (numericEnumFrom $! Pos (primPlusNat wx5 (Succ Zero)) + fromInt (Pos (Succ Zero))))))",fontsize=16,color="black",shape="box"];154 -> 158[label="",style="solid", color="black", weight=3]; 14.28/5.53 155[label="Maybe.listToMaybe ((++) List.findIndices000 (Pos (primPlusNat wx5 (Succ Zero))) False foldr (++) [] (map (List.findIndices0 (False ==)) (zipWith zip0 wx4111 (numericEnumFrom $! Pos (primPlusNat wx5 (Succ Zero)) + fromInt (Pos (Succ Zero))))))",fontsize=16,color="black",shape="box"];155 -> 159[label="",style="solid", color="black", weight=3]; 14.28/5.53 216[label="Maybe.listToMaybe ((++) List.findIndices000 (Pos wx11) (True == False) foldr (++) [] (map (List.findIndices0 (True ==)) (zipWith zip0 wx41111 (numericEnumFrom $! Pos wx11 + fromInt (Pos (Succ Zero))))))",fontsize=16,color="black",shape="box"];216 -> 218[label="",style="solid", color="black", weight=3]; 14.28/5.53 217[label="Maybe.listToMaybe ((++) List.findIndices000 (Pos wx11) (True == True) foldr (++) [] (map (List.findIndices0 (True ==)) (zipWith zip0 wx41111 (numericEnumFrom $! Pos wx11 + fromInt (Pos (Succ Zero))))))",fontsize=16,color="black",shape="box"];217 -> 219[label="",style="solid", color="black", weight=3]; 14.28/5.53 158[label="Maybe.listToMaybe ((++) (Pos (primPlusNat wx5 (Succ Zero)) : []) foldr (++) [] (map (List.findIndices0 (False ==)) (zipWith zip0 wx4111 (numericEnumFrom $! Pos (primPlusNat wx5 (Succ Zero)) + fromInt (Pos (Succ Zero))))))",fontsize=16,color="black",shape="box"];158 -> 162[label="",style="solid", color="black", weight=3]; 14.28/5.53 159[label="Maybe.listToMaybe ((++) [] foldr (++) [] (map (List.findIndices0 (False ==)) (zipWith zip0 wx4111 (numericEnumFrom $! Pos (primPlusNat wx5 (Succ Zero)) + fromInt (Pos (Succ Zero))))))",fontsize=16,color="black",shape="box"];159 -> 163[label="",style="solid", color="black", weight=3]; 14.28/5.53 218[label="Maybe.listToMaybe ((++) List.findIndices000 (Pos wx11) False foldr (++) [] (map (List.findIndices0 (True ==)) (zipWith zip0 wx41111 (numericEnumFrom $! Pos wx11 + fromInt (Pos (Succ Zero))))))",fontsize=16,color="black",shape="box"];218 -> 220[label="",style="solid", color="black", weight=3]; 14.28/5.53 219[label="Maybe.listToMaybe ((++) List.findIndices000 (Pos wx11) True foldr (++) [] (map (List.findIndices0 (True ==)) (zipWith zip0 wx41111 (numericEnumFrom $! Pos wx11 + fromInt (Pos (Succ Zero))))))",fontsize=16,color="black",shape="box"];219 -> 221[label="",style="solid", color="black", weight=3]; 14.28/5.53 162[label="Maybe.listToMaybe (Pos (primPlusNat wx5 (Succ Zero)) : [] ++ foldr (++) [] (map (List.findIndices0 (False ==)) (zipWith zip0 wx4111 (numericEnumFrom $! Pos (primPlusNat wx5 (Succ Zero)) + fromInt (Pos (Succ Zero))))))",fontsize=16,color="black",shape="box"];162 -> 166[label="",style="solid", color="black", weight=3]; 14.28/5.53 163[label="Maybe.listToMaybe (foldr (++) [] (map (List.findIndices0 (False ==)) (zipWith zip0 wx4111 (numericEnumFrom $! Pos (primPlusNat wx5 (Succ Zero)) + fromInt (Pos (Succ Zero))))))",fontsize=16,color="burlywood",shape="box"];254[label="wx4111/wx41110 : wx41111",fontsize=10,color="white",style="solid",shape="box"];163 -> 254[label="",style="solid", color="burlywood", weight=9]; 14.28/5.53 254 -> 167[label="",style="solid", color="burlywood", weight=3]; 14.28/5.53 255[label="wx4111/[]",fontsize=10,color="white",style="solid",shape="box"];163 -> 255[label="",style="solid", color="burlywood", weight=9]; 14.28/5.53 255 -> 168[label="",style="solid", color="burlywood", weight=3]; 14.28/5.53 220[label="Maybe.listToMaybe ((++) [] foldr (++) [] (map (List.findIndices0 (True ==)) (zipWith zip0 wx41111 (numericEnumFrom $! Pos wx11 + fromInt (Pos (Succ Zero))))))",fontsize=16,color="black",shape="box"];220 -> 222[label="",style="solid", color="black", weight=3]; 14.28/5.53 221[label="Maybe.listToMaybe ((++) (Pos wx11 : []) foldr (++) [] (map (List.findIndices0 (True ==)) (zipWith zip0 wx41111 (numericEnumFrom $! Pos wx11 + fromInt (Pos (Succ Zero))))))",fontsize=16,color="black",shape="box"];221 -> 223[label="",style="solid", color="black", weight=3]; 14.28/5.53 166[label="Just (Pos (primPlusNat wx5 (Succ Zero)))",fontsize=16,color="green",shape="box"];166 -> 172[label="",style="dashed", color="green", weight=3]; 14.28/5.53 167[label="Maybe.listToMaybe (foldr (++) [] (map (List.findIndices0 (False ==)) (zipWith zip0 (wx41110 : wx41111) (numericEnumFrom $! Pos (primPlusNat wx5 (Succ Zero)) + fromInt (Pos (Succ Zero))))))",fontsize=16,color="black",shape="box"];167 -> 173[label="",style="solid", color="black", weight=3]; 14.28/5.53 168[label="Maybe.listToMaybe (foldr (++) [] (map (List.findIndices0 (False ==)) (zipWith zip0 [] (numericEnumFrom $! Pos (primPlusNat wx5 (Succ Zero)) + fromInt (Pos (Succ Zero))))))",fontsize=16,color="black",shape="box"];168 -> 174[label="",style="solid", color="black", weight=3]; 14.28/5.53 222[label="Maybe.listToMaybe (foldr (++) [] (map (List.findIndices0 (True ==)) (zipWith zip0 wx41111 (numericEnumFrom $! Pos wx11 + fromInt (Pos (Succ Zero))))))",fontsize=16,color="burlywood",shape="box"];256[label="wx41111/wx411110 : wx411111",fontsize=10,color="white",style="solid",shape="box"];222 -> 256[label="",style="solid", color="burlywood", weight=9]; 14.28/5.53 256 -> 224[label="",style="solid", color="burlywood", weight=3]; 14.28/5.53 257[label="wx41111/[]",fontsize=10,color="white",style="solid",shape="box"];222 -> 257[label="",style="solid", color="burlywood", weight=9]; 14.28/5.53 257 -> 225[label="",style="solid", color="burlywood", weight=3]; 14.28/5.53 223[label="Maybe.listToMaybe (Pos wx11 : [] ++ foldr (++) [] (map (List.findIndices0 (True ==)) (zipWith zip0 wx41111 (numericEnumFrom $! Pos wx11 + fromInt (Pos (Succ Zero))))))",fontsize=16,color="black",shape="box"];223 -> 226[label="",style="solid", color="black", weight=3]; 14.28/5.53 173 -> 110[label="",style="dashed", color="red", weight=0]; 14.28/5.53 173[label="Maybe.listToMaybe (foldr (++) [] (map (List.findIndices0 (False ==)) (zipWith zip0 (wx41110 : wx41111) (Pos (primPlusNat wx5 (Succ Zero)) + fromInt (Pos (Succ Zero)) `seq` numericEnumFrom (Pos (primPlusNat wx5 (Succ Zero)) + fromInt (Pos (Succ Zero)))))))",fontsize=16,color="magenta"];173 -> 180[label="",style="dashed", color="magenta", weight=3]; 14.28/5.53 173 -> 181[label="",style="dashed", color="magenta", weight=3]; 14.28/5.53 173 -> 182[label="",style="dashed", color="magenta", weight=3]; 14.28/5.53 173 -> 183[label="",style="dashed", color="magenta", weight=3]; 14.28/5.53 174 -> 16[label="",style="dashed", color="red", weight=0]; 14.28/5.53 174[label="Maybe.listToMaybe (foldr (++) [] (map (List.findIndices0 (False ==)) []))",fontsize=16,color="magenta"];174 -> 184[label="",style="dashed", color="magenta", weight=3]; 14.28/5.53 224[label="Maybe.listToMaybe (foldr (++) [] (map (List.findIndices0 (True ==)) (zipWith zip0 (wx411110 : wx411111) (numericEnumFrom $! Pos wx11 + fromInt (Pos (Succ Zero))))))",fontsize=16,color="black",shape="box"];224 -> 227[label="",style="solid", color="black", weight=3]; 14.28/5.53 225[label="Maybe.listToMaybe (foldr (++) [] (map (List.findIndices0 (True ==)) (zipWith zip0 [] (numericEnumFrom $! Pos wx11 + fromInt (Pos (Succ Zero))))))",fontsize=16,color="black",shape="box"];225 -> 228[label="",style="solid", color="black", weight=3]; 14.28/5.53 226[label="Just (Pos wx11)",fontsize=16,color="green",shape="box"];180[label="wx41110",fontsize=16,color="green",shape="box"];181 -> 172[label="",style="dashed", color="red", weight=0]; 14.28/5.53 181[label="primPlusNat wx5 (Succ Zero)",fontsize=16,color="magenta"];182[label="wx41111",fontsize=16,color="green",shape="box"];183 -> 172[label="",style="dashed", color="red", weight=0]; 14.28/5.53 183[label="primPlusNat wx5 (Succ Zero)",fontsize=16,color="magenta"];184[label="False",fontsize=16,color="green",shape="box"];227 -> 185[label="",style="dashed", color="red", weight=0]; 14.28/5.53 227[label="Maybe.listToMaybe (foldr (++) [] (map (List.findIndices0 (True ==)) (zipWith zip0 (wx411110 : wx411111) (Pos wx11 + fromInt (Pos (Succ Zero)) `seq` numericEnumFrom (Pos wx11 + fromInt (Pos (Succ Zero)))))))",fontsize=16,color="magenta"];227 -> 229[label="",style="dashed", color="magenta", weight=3]; 14.28/5.53 227 -> 230[label="",style="dashed", color="magenta", weight=3]; 14.28/5.53 227 -> 231[label="",style="dashed", color="magenta", weight=3]; 14.28/5.53 227 -> 232[label="",style="dashed", color="magenta", weight=3]; 14.28/5.53 228 -> 16[label="",style="dashed", color="red", weight=0]; 14.28/5.53 228[label="Maybe.listToMaybe (foldr (++) [] (map (List.findIndices0 (True ==)) []))",fontsize=16,color="magenta"];228 -> 233[label="",style="dashed", color="magenta", weight=3]; 14.28/5.53 229[label="wx11",fontsize=16,color="green",shape="box"];230[label="wx11",fontsize=16,color="green",shape="box"];231[label="wx411110",fontsize=16,color="green",shape="box"];232[label="wx411111",fontsize=16,color="green",shape="box"];233[label="True",fontsize=16,color="green",shape="box"];} 14.28/5.53 14.28/5.53 ---------------------------------------- 14.28/5.53 14.28/5.53 (14) 14.28/5.53 Complex Obligation (AND) 14.28/5.53 14.28/5.53 ---------------------------------------- 14.28/5.53 14.28/5.53 (15) 14.28/5.53 Obligation: 14.28/5.53 Q DP problem: 14.28/5.53 The TRS P consists of the following rules: 14.28/5.53 14.28/5.53 new_listToMaybe(False, :(wx411110, wx411111), wx12, wx11) -> new_listToMaybe0(wx411110, wx411111, wx11, wx11) 14.28/5.53 new_listToMaybe0(wx41110, wx41111, wx9, wx10) -> new_listToMaybe(wx41110, wx41111, new_primPlusNat(wx9), new_primPlusNat(wx9)) 14.28/5.53 14.28/5.53 The TRS R consists of the following rules: 14.28/5.53 14.28/5.53 new_primPlusNat(Succ(wx50)) -> Succ(Succ(new_primPlusNat0(wx50))) 14.28/5.53 new_primPlusNat(Zero) -> Succ(Zero) 14.28/5.53 new_primPlusNat0(Succ(wx500)) -> Succ(wx500) 14.28/5.53 new_primPlusNat0(Zero) -> Zero 14.28/5.53 14.28/5.53 The set Q consists of the following terms: 14.28/5.53 14.28/5.53 new_primPlusNat0(Succ(x0)) 14.28/5.53 new_primPlusNat0(Zero) 14.28/5.53 new_primPlusNat(Succ(x0)) 14.28/5.53 new_primPlusNat(Zero) 14.28/5.53 14.28/5.53 We have to consider all minimal (P,Q,R)-chains. 14.28/5.53 ---------------------------------------- 14.28/5.53 14.28/5.53 (16) TransformationProof (EQUIVALENT) 14.28/5.53 By instantiating [LPAR04] the rule new_listToMaybe0(wx41110, wx41111, wx9, wx10) -> new_listToMaybe(wx41110, wx41111, new_primPlusNat(wx9), new_primPlusNat(wx9)) we obtained the following new rules [LPAR04]: 14.28/5.53 14.28/5.53 (new_listToMaybe0(z0, z1, z3, z3) -> new_listToMaybe(z0, z1, new_primPlusNat(z3), new_primPlusNat(z3)),new_listToMaybe0(z0, z1, z3, z3) -> new_listToMaybe(z0, z1, new_primPlusNat(z3), new_primPlusNat(z3))) 14.28/5.53 14.28/5.53 14.28/5.53 ---------------------------------------- 14.28/5.53 14.28/5.53 (17) 14.28/5.53 Obligation: 14.28/5.53 Q DP problem: 14.28/5.53 The TRS P consists of the following rules: 14.28/5.53 14.28/5.53 new_listToMaybe(False, :(wx411110, wx411111), wx12, wx11) -> new_listToMaybe0(wx411110, wx411111, wx11, wx11) 14.28/5.53 new_listToMaybe0(z0, z1, z3, z3) -> new_listToMaybe(z0, z1, new_primPlusNat(z3), new_primPlusNat(z3)) 14.28/5.53 14.28/5.53 The TRS R consists of the following rules: 14.28/5.53 14.28/5.53 new_primPlusNat(Succ(wx50)) -> Succ(Succ(new_primPlusNat0(wx50))) 14.28/5.53 new_primPlusNat(Zero) -> Succ(Zero) 14.28/5.53 new_primPlusNat0(Succ(wx500)) -> Succ(wx500) 14.28/5.53 new_primPlusNat0(Zero) -> Zero 14.28/5.53 14.28/5.53 The set Q consists of the following terms: 14.28/5.53 14.28/5.53 new_primPlusNat0(Succ(x0)) 14.28/5.53 new_primPlusNat0(Zero) 14.28/5.53 new_primPlusNat(Succ(x0)) 14.28/5.53 new_primPlusNat(Zero) 14.28/5.53 14.28/5.53 We have to consider all minimal (P,Q,R)-chains. 14.28/5.53 ---------------------------------------- 14.28/5.53 14.28/5.53 (18) QDPSizeChangeProof (EQUIVALENT) 14.28/5.53 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. 14.28/5.53 14.28/5.53 From the DPs we obtained the following set of size-change graphs: 14.28/5.53 *new_listToMaybe0(z0, z1, z3, z3) -> new_listToMaybe(z0, z1, new_primPlusNat(z3), new_primPlusNat(z3)) 14.28/5.53 The graph contains the following edges 1 >= 1, 2 >= 2 14.28/5.53 14.28/5.53 14.28/5.53 *new_listToMaybe(False, :(wx411110, wx411111), wx12, wx11) -> new_listToMaybe0(wx411110, wx411111, wx11, wx11) 14.28/5.53 The graph contains the following edges 2 > 1, 2 > 2, 4 >= 3, 4 >= 4 14.28/5.53 14.28/5.53 14.28/5.53 ---------------------------------------- 14.28/5.53 14.28/5.53 (19) 14.28/5.53 YES 14.28/5.53 14.28/5.53 ---------------------------------------- 14.28/5.53 14.28/5.53 (20) 14.28/5.53 Obligation: 14.28/5.53 Q DP problem: 14.28/5.53 The TRS P consists of the following rules: 14.28/5.53 14.28/5.53 new_listToMaybe1(True, :(wx41110, wx41111), wx5, wx6) -> new_listToMaybe1(wx41110, wx41111, new_primPlusNat(wx5), new_primPlusNat(wx5)) 14.28/5.53 14.28/5.53 The TRS R consists of the following rules: 14.28/5.53 14.28/5.53 new_primPlusNat(Succ(wx50)) -> Succ(Succ(new_primPlusNat0(wx50))) 14.28/5.53 new_primPlusNat(Zero) -> Succ(Zero) 14.28/5.53 new_primPlusNat0(Succ(wx500)) -> Succ(wx500) 14.28/5.53 new_primPlusNat0(Zero) -> Zero 14.28/5.53 14.28/5.53 The set Q consists of the following terms: 14.28/5.53 14.28/5.53 new_primPlusNat0(Succ(x0)) 14.28/5.53 new_primPlusNat0(Zero) 14.28/5.53 new_primPlusNat(Succ(x0)) 14.28/5.53 new_primPlusNat(Zero) 14.28/5.53 14.28/5.53 We have to consider all minimal (P,Q,R)-chains. 14.28/5.53 ---------------------------------------- 14.28/5.53 14.28/5.53 (21) QDPSizeChangeProof (EQUIVALENT) 14.28/5.53 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. 14.28/5.53 14.28/5.53 From the DPs we obtained the following set of size-change graphs: 14.28/5.53 *new_listToMaybe1(True, :(wx41110, wx41111), wx5, wx6) -> new_listToMaybe1(wx41110, wx41111, new_primPlusNat(wx5), new_primPlusNat(wx5)) 14.28/5.53 The graph contains the following edges 2 > 1, 2 > 2 14.28/5.53 14.28/5.53 14.28/5.53 ---------------------------------------- 14.28/5.53 14.28/5.53 (22) 14.28/5.53 YES 14.41/5.61 EOF