/export/starexec/sandbox2/solver/bin/starexec_run_standard /export/starexec/sandbox2/benchmark/theBenchmark.hs /export/starexec/sandbox2/output/output_files -------------------------------------------------------------------------------- YES proof of /export/starexec/sandbox2/benchmark/theBenchmark.hs # AProVE Commit ID: 794c25de1cacf0d048858bcd21c9a779e1221865 marcel 20200619 unpublished dirty H-Termination with start terms of the given HASKELL could be proven: (0) HASKELL (1) LR [EQUIVALENT, 0 ms] (2) HASKELL (3) CR [EQUIVALENT, 0 ms] (4) HASKELL (5) IFR [EQUIVALENT, 0 ms] (6) HASKELL (7) BR [EQUIVALENT, 0 ms] (8) HASKELL (9) COR [EQUIVALENT, 13 ms] (10) HASKELL (11) NumRed [SOUND, 0 ms] (12) HASKELL (13) Narrow [SOUND, 0 ms] (14) AND (15) QDP (16) TransformationProof [EQUIVALENT, 0 ms] (17) QDP (18) QDPSizeChangeProof [EQUIVALENT, 0 ms] (19) YES (20) QDP (21) QDPSizeChangeProof [EQUIVALENT, 0 ms] (22) YES ---------------------------------------- (0) Obligation: mainModule Main module Maybe where { import qualified List; import qualified Main; import qualified Prelude; listToMaybe :: [a] -> Maybe a; listToMaybe [] = Nothing; listToMaybe (a : _) = Just a; } module List where { import qualified Main; import qualified Maybe; import qualified Prelude; elemIndex :: Eq a => a -> [a] -> Maybe Int; elemIndex x = findIndex (== x); findIndex :: (a -> Bool) -> [a] -> Maybe Int; findIndex p = Maybe.listToMaybe . findIndices p; findIndices :: (a -> Bool) -> [a] -> [Int]; findIndices p xs = concatMap (\vv1 ->case vv1 of { (x,i)-> if p x then i : [] else []; _-> []; } ) (zip xs (enumFrom 0)); } module Main where { import qualified List; import qualified Maybe; import qualified Prelude; } ---------------------------------------- (1) LR (EQUIVALENT) Lambda Reductions: The following Lambda expression "\ab->(a,b)" is transformed to "zip0 a b = (a,b); " The following Lambda expression "\vv1->case vv1 of { (x,i) -> if p x then i : [] else []; _ -> []} " is transformed to "findIndices0 p vv1 = case vv1 of { (x,i) -> if p x then i : [] else []; _ -> []} ; " ---------------------------------------- (2) Obligation: mainModule Main module Maybe where { import qualified List; import qualified Main; import qualified Prelude; listToMaybe :: [a] -> Maybe a; listToMaybe [] = Nothing; listToMaybe (a : _) = Just a; } module List where { import qualified Main; import qualified Maybe; import qualified Prelude; elemIndex :: Eq a => a -> [a] -> Maybe Int; elemIndex x = findIndex (== x); findIndex :: (a -> Bool) -> [a] -> Maybe Int; findIndex p = Maybe.listToMaybe . findIndices p; findIndices :: (a -> Bool) -> [a] -> [Int]; findIndices p xs = concatMap (findIndices0 p) (zip xs (enumFrom 0)); findIndices0 p vv1 = case vv1 of { (x,i)-> if p x then i : [] else []; _-> []; } ; } module Main where { import qualified List; import qualified Maybe; import qualified Prelude; } ---------------------------------------- (3) CR (EQUIVALENT) Case Reductions: The following Case expression "case vv1 of { (x,i) -> if p x then i : [] else []; _ -> []} " is transformed to "findIndices00 p (x,i) = if p x then i : [] else []; findIndices00 p _ = []; " ---------------------------------------- (4) Obligation: mainModule Main module Maybe where { import qualified List; import qualified Main; import qualified Prelude; listToMaybe :: [a] -> Maybe a; listToMaybe [] = Nothing; listToMaybe (a : _) = Just a; } module List where { import qualified Main; import qualified Maybe; import qualified Prelude; elemIndex :: Eq a => a -> [a] -> Maybe Int; elemIndex x = findIndex (== x); findIndex :: (a -> Bool) -> [a] -> Maybe Int; findIndex p = Maybe.listToMaybe . findIndices p; findIndices :: (a -> Bool) -> [a] -> [Int]; findIndices p xs = concatMap (findIndices0 p) (zip xs (enumFrom 0)); findIndices0 p vv1 = findIndices00 p vv1; findIndices00 p (x,i) = if p x then i : [] else []; findIndices00 p _ = []; } module Main where { import qualified List; import qualified Maybe; import qualified Prelude; } ---------------------------------------- (5) IFR (EQUIVALENT) If Reductions: The following If expression "if p x then i : [] else []" is transformed to "findIndices000 i True = i : []; findIndices000 i False = []; " ---------------------------------------- (6) Obligation: mainModule Main module Maybe where { import qualified List; import qualified Main; import qualified Prelude; listToMaybe :: [a] -> Maybe a; listToMaybe [] = Nothing; listToMaybe (a : _) = Just a; } module List where { import qualified Main; import qualified Maybe; import qualified Prelude; elemIndex :: Eq a => a -> [a] -> Maybe Int; elemIndex x = findIndex (== x); findIndex :: (a -> Bool) -> [a] -> Maybe Int; findIndex p = Maybe.listToMaybe . findIndices p; findIndices :: (a -> Bool) -> [a] -> [Int]; findIndices p xs = concatMap (findIndices0 p) (zip xs (enumFrom 0)); findIndices0 p vv1 = findIndices00 p vv1; findIndices00 p (x,i) = findIndices000 i (p x); findIndices00 p _ = []; findIndices000 i True = i : []; findIndices000 i False = []; } module Main where { import qualified List; import qualified Maybe; import qualified Prelude; } ---------------------------------------- (7) BR (EQUIVALENT) Replaced joker patterns by fresh variables and removed binding patterns. ---------------------------------------- (8) Obligation: mainModule Main module Maybe where { import qualified List; import qualified Main; import qualified Prelude; listToMaybe :: [a] -> Maybe a; listToMaybe [] = Nothing; listToMaybe (a : wv) = Just a; } module List where { import qualified Main; import qualified Maybe; import qualified Prelude; elemIndex :: Eq a => a -> [a] -> Maybe Int; elemIndex x = findIndex (== x); findIndex :: (a -> Bool) -> [a] -> Maybe Int; findIndex p = Maybe.listToMaybe . findIndices p; findIndices :: (a -> Bool) -> [a] -> [Int]; findIndices p xs = concatMap (findIndices0 p) (zip xs (enumFrom 0)); findIndices0 p vv1 = findIndices00 p vv1; findIndices00 p (x,i) = findIndices000 i (p x); findIndices00 p ww = []; findIndices000 i True = i : []; findIndices000 i False = []; } module Main where { import qualified List; import qualified Maybe; import qualified Prelude; } ---------------------------------------- (9) COR (EQUIVALENT) Cond Reductions: The following Function with conditions "undefined |Falseundefined; " is transformed to "undefined = undefined1; " "undefined0 True = undefined; " "undefined1 = undefined0 False; " ---------------------------------------- (10) Obligation: mainModule Main module Maybe where { import qualified List; import qualified Main; import qualified Prelude; listToMaybe :: [a] -> Maybe a; listToMaybe [] = Nothing; listToMaybe (a : wv) = Just a; } module List where { import qualified Main; import qualified Maybe; import qualified Prelude; elemIndex :: Eq a => a -> [a] -> Maybe Int; elemIndex x = findIndex (== x); findIndex :: (a -> Bool) -> [a] -> Maybe Int; findIndex p = Maybe.listToMaybe . findIndices p; findIndices :: (a -> Bool) -> [a] -> [Int]; findIndices p xs = concatMap (findIndices0 p) (zip xs (enumFrom 0)); findIndices0 p vv1 = findIndices00 p vv1; findIndices00 p (x,i) = findIndices000 i (p x); findIndices00 p ww = []; findIndices000 i True = i : []; findIndices000 i False = []; } module Main where { import qualified List; import qualified Maybe; import qualified Prelude; } ---------------------------------------- (11) NumRed (SOUND) Num Reduction:All numbers are transformed to their corresponding representation with Succ, Pred and Zero. ---------------------------------------- (12) Obligation: mainModule Main module Maybe where { import qualified List; import qualified Main; import qualified Prelude; listToMaybe :: [a] -> Maybe a; listToMaybe [] = Nothing; listToMaybe (a : wv) = Just a; } module List where { import qualified Main; import qualified Maybe; import qualified Prelude; elemIndex :: Eq a => a -> [a] -> Maybe Int; elemIndex x = findIndex (== x); findIndex :: (a -> Bool) -> [a] -> Maybe Int; findIndex p = Maybe.listToMaybe . findIndices p; findIndices :: (a -> Bool) -> [a] -> [Int]; findIndices p xs = concatMap (findIndices0 p) (zip xs (enumFrom (Pos Zero))); findIndices0 p vv1 = findIndices00 p vv1; findIndices00 p (x,i) = findIndices000 i (p x); findIndices00 p ww = []; findIndices000 i True = i : []; findIndices000 i False = []; } module Main where { import qualified List; import qualified Maybe; import qualified Prelude; } ---------------------------------------- (13) Narrow (SOUND) Haskell To QDPs digraph dp_graph { node [outthreshold=100, inthreshold=100];1[label="List.elemIndex",fontsize=16,color="grey",shape="box"];1 -> 3[label="",style="dashed", color="grey", weight=3]; 3[label="List.elemIndex wx3",fontsize=16,color="grey",shape="box"];3 -> 4[label="",style="dashed", color="grey", weight=3]; 4[label="List.elemIndex wx3 wx4",fontsize=16,color="black",shape="triangle"];4 -> 5[label="",style="solid", color="black", weight=3]; 5[label="List.findIndex (wx3 ==) wx4",fontsize=16,color="black",shape="box"];5 -> 6[label="",style="solid", color="black", weight=3]; 6[label="Maybe.listToMaybe . List.findIndices (wx3 ==)",fontsize=16,color="black",shape="box"];6 -> 7[label="",style="solid", color="black", weight=3]; 7[label="Maybe.listToMaybe (List.findIndices (wx3 ==) wx4)",fontsize=16,color="black",shape="box"];7 -> 8[label="",style="solid", color="black", weight=3]; 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]; 9[label="Maybe.listToMaybe (concat . map (List.findIndices0 (wx3 ==)))",fontsize=16,color="black",shape="box"];9 -> 10[label="",style="solid", color="black", weight=3]; 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]; 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]; 12[label="Maybe.listToMaybe (foldr (++) [] (map (List.findIndices0 (wx3 ==)) (zipWith zip0 wx4 (enumFrom (Pos Zero)))))",fontsize=16,color="burlywood",shape="box"];709[label="wx4/wx40 : wx41",fontsize=10,color="white",style="solid",shape="box"];12 -> 709[label="",style="solid", color="burlywood", weight=9]; 709 -> 13[label="",style="solid", color="burlywood", weight=3]; 710[label="wx4/[]",fontsize=10,color="white",style="solid",shape="box"];12 -> 710[label="",style="solid", color="burlywood", weight=9]; 710 -> 14[label="",style="solid", color="burlywood", weight=3]; 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[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]; 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]; 16[label="Maybe.listToMaybe (foldr (++) [] (map (List.findIndices0 (wx3 ==)) []))",fontsize=16,color="black",shape="box"];16 -> 18[label="",style="solid", color="black", weight=3]; 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]; 18[label="Maybe.listToMaybe (foldr (++) [] [])",fontsize=16,color="black",shape="triangle"];18 -> 20[label="",style="solid", color="black", weight=3]; 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]; 20[label="Maybe.listToMaybe []",fontsize=16,color="black",shape="box"];20 -> 22[label="",style="solid", color="black", weight=3]; 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]; 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]; 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]; 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]; 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="black",shape="box"];26 -> 27[label="",style="solid", color="black", weight=3]; 27[label="Maybe.listToMaybe ((++) List.findIndices000 (Pos Zero) (primEqChar wx3 wx40) foldr (++) [] (map (List.findIndices0 (primEqChar wx3)) (zipWith zip0 wx41 (numericEnumFrom $! Pos Zero + fromInt (Pos (Succ Zero))))))",fontsize=16,color="burlywood",shape="box"];711[label="wx3/Char wx30",fontsize=10,color="white",style="solid",shape="box"];27 -> 711[label="",style="solid", color="burlywood", weight=9]; 711 -> 28[label="",style="solid", color="burlywood", weight=3]; 28[label="Maybe.listToMaybe ((++) List.findIndices000 (Pos Zero) (primEqChar (Char wx30) wx40) foldr (++) [] (map (List.findIndices0 (primEqChar (Char wx30))) (zipWith zip0 wx41 (numericEnumFrom $! Pos Zero + fromInt (Pos (Succ Zero))))))",fontsize=16,color="burlywood",shape="box"];712[label="wx40/Char wx400",fontsize=10,color="white",style="solid",shape="box"];28 -> 712[label="",style="solid", color="burlywood", weight=9]; 712 -> 29[label="",style="solid", color="burlywood", weight=3]; 29[label="Maybe.listToMaybe ((++) List.findIndices000 (Pos Zero) (primEqChar (Char wx30) (Char wx400)) foldr (++) [] (map (List.findIndices0 (primEqChar (Char wx30))) (zipWith zip0 wx41 (numericEnumFrom $! Pos Zero + fromInt (Pos (Succ Zero))))))",fontsize=16,color="black",shape="box"];29 -> 30[label="",style="solid", color="black", weight=3]; 30[label="Maybe.listToMaybe ((++) List.findIndices000 (Pos Zero) (primEqNat wx30 wx400) foldr (++) [] (map (List.findIndices0 (primEqChar (Char wx30))) (zipWith zip0 wx41 (numericEnumFrom $! Pos Zero + fromInt (Pos (Succ Zero))))))",fontsize=16,color="burlywood",shape="box"];713[label="wx30/Succ wx300",fontsize=10,color="white",style="solid",shape="box"];30 -> 713[label="",style="solid", color="burlywood", weight=9]; 713 -> 31[label="",style="solid", color="burlywood", weight=3]; 714[label="wx30/Zero",fontsize=10,color="white",style="solid",shape="box"];30 -> 714[label="",style="solid", color="burlywood", weight=9]; 714 -> 32[label="",style="solid", color="burlywood", weight=3]; 31[label="Maybe.listToMaybe ((++) List.findIndices000 (Pos Zero) (primEqNat (Succ wx300) wx400) foldr (++) [] (map (List.findIndices0 (primEqChar (Char (Succ wx300)))) (zipWith zip0 wx41 (numericEnumFrom $! Pos Zero + fromInt (Pos (Succ Zero))))))",fontsize=16,color="burlywood",shape="box"];715[label="wx400/Succ wx4000",fontsize=10,color="white",style="solid",shape="box"];31 -> 715[label="",style="solid", color="burlywood", weight=9]; 715 -> 33[label="",style="solid", color="burlywood", weight=3]; 716[label="wx400/Zero",fontsize=10,color="white",style="solid",shape="box"];31 -> 716[label="",style="solid", color="burlywood", weight=9]; 716 -> 34[label="",style="solid", color="burlywood", weight=3]; 32[label="Maybe.listToMaybe ((++) List.findIndices000 (Pos Zero) (primEqNat Zero wx400) foldr (++) [] (map (List.findIndices0 (primEqChar (Char Zero))) (zipWith zip0 wx41 (numericEnumFrom $! Pos Zero + fromInt (Pos (Succ Zero))))))",fontsize=16,color="burlywood",shape="box"];717[label="wx400/Succ wx4000",fontsize=10,color="white",style="solid",shape="box"];32 -> 717[label="",style="solid", color="burlywood", weight=9]; 717 -> 35[label="",style="solid", color="burlywood", weight=3]; 718[label="wx400/Zero",fontsize=10,color="white",style="solid",shape="box"];32 -> 718[label="",style="solid", color="burlywood", weight=9]; 718 -> 36[label="",style="solid", color="burlywood", weight=3]; 33[label="Maybe.listToMaybe ((++) List.findIndices000 (Pos Zero) (primEqNat (Succ wx300) (Succ wx4000)) foldr (++) [] (map (List.findIndices0 (primEqChar (Char (Succ wx300)))) (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]; 34[label="Maybe.listToMaybe ((++) List.findIndices000 (Pos Zero) (primEqNat (Succ wx300) Zero) foldr (++) [] (map (List.findIndices0 (primEqChar (Char (Succ wx300)))) (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]; 35[label="Maybe.listToMaybe ((++) List.findIndices000 (Pos Zero) (primEqNat Zero (Succ wx4000)) foldr (++) [] (map (List.findIndices0 (primEqChar (Char Zero))) (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]; 36[label="Maybe.listToMaybe ((++) List.findIndices000 (Pos Zero) (primEqNat Zero Zero) foldr (++) [] (map (List.findIndices0 (primEqChar (Char Zero))) (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]; 37 -> 594[label="",style="dashed", color="red", weight=0]; 37[label="Maybe.listToMaybe ((++) List.findIndices000 (Pos Zero) (primEqNat wx300 wx4000) foldr (++) [] (map (List.findIndices0 (primEqChar (Char (Succ wx300)))) (zipWith zip0 wx41 (numericEnumFrom $! Pos Zero + fromInt (Pos (Succ Zero))))))",fontsize=16,color="magenta"];37 -> 595[label="",style="dashed", color="magenta", weight=3]; 37 -> 596[label="",style="dashed", color="magenta", weight=3]; 37 -> 597[label="",style="dashed", color="magenta", weight=3]; 37 -> 598[label="",style="dashed", color="magenta", weight=3]; 37 -> 599[label="",style="dashed", color="magenta", weight=3]; 37 -> 600[label="",style="dashed", color="magenta", weight=3]; 38[label="Maybe.listToMaybe ((++) List.findIndices000 (Pos Zero) False foldr (++) [] (map (List.findIndices0 (primEqChar (Char (Succ wx300)))) (zipWith zip0 wx41 (numericEnumFrom $! Pos Zero + fromInt (Pos (Succ Zero))))))",fontsize=16,color="black",shape="triangle"];38 -> 43[label="",style="solid", color="black", weight=3]; 39[label="Maybe.listToMaybe ((++) List.findIndices000 (Pos Zero) False foldr (++) [] (map (List.findIndices0 (primEqChar (Char Zero))) (zipWith zip0 wx41 (numericEnumFrom $! Pos Zero + fromInt (Pos (Succ Zero))))))",fontsize=16,color="black",shape="box"];39 -> 44[label="",style="solid", color="black", weight=3]; 40[label="Maybe.listToMaybe ((++) List.findIndices000 (Pos Zero) True foldr (++) [] (map (List.findIndices0 (primEqChar (Char Zero))) (zipWith zip0 wx41 (numericEnumFrom $! Pos Zero + fromInt (Pos (Succ Zero))))))",fontsize=16,color="black",shape="box"];40 -> 45[label="",style="solid", color="black", weight=3]; 595[label="wx300",fontsize=16,color="green",shape="box"];596[label="Zero",fontsize=16,color="green",shape="box"];597[label="Zero",fontsize=16,color="green",shape="box"];598[label="wx4000",fontsize=16,color="green",shape="box"];599[label="wx300",fontsize=16,color="green",shape="box"];600[label="wx41",fontsize=16,color="green",shape="box"];594[label="Maybe.listToMaybe ((++) List.findIndices000 (Pos wx31) (primEqNat wx32 wx33) foldr (++) [] (map (List.findIndices0 (primEqChar (Char (Succ wx34)))) (zipWith zip0 wx35 (numericEnumFrom $! Pos wx36 + fromInt (Pos (Succ Zero))))))",fontsize=16,color="burlywood",shape="triangle"];719[label="wx32/Succ wx320",fontsize=10,color="white",style="solid",shape="box"];594 -> 719[label="",style="solid", color="burlywood", weight=9]; 719 -> 679[label="",style="solid", color="burlywood", weight=3]; 720[label="wx32/Zero",fontsize=10,color="white",style="solid",shape="box"];594 -> 720[label="",style="solid", color="burlywood", weight=9]; 720 -> 680[label="",style="solid", color="burlywood", weight=3]; 43[label="Maybe.listToMaybe ((++) [] foldr (++) [] (map (List.findIndices0 (primEqChar (Char (Succ wx300)))) (zipWith zip0 wx41 (numericEnumFrom $! Pos Zero + fromInt (Pos (Succ Zero))))))",fontsize=16,color="black",shape="box"];43 -> 50[label="",style="solid", color="black", weight=3]; 44[label="Maybe.listToMaybe ((++) [] foldr (++) [] (map (List.findIndices0 (primEqChar (Char Zero))) (zipWith zip0 wx41 (numericEnumFrom $! Pos Zero + fromInt (Pos (Succ Zero))))))",fontsize=16,color="black",shape="box"];44 -> 51[label="",style="solid", color="black", weight=3]; 45[label="Maybe.listToMaybe ((++) (Pos Zero : []) foldr (++) [] (map (List.findIndices0 (primEqChar (Char Zero))) (zipWith zip0 wx41 (numericEnumFrom $! Pos Zero + fromInt (Pos (Succ Zero))))))",fontsize=16,color="black",shape="box"];45 -> 52[label="",style="solid", color="black", weight=3]; 679[label="Maybe.listToMaybe ((++) List.findIndices000 (Pos wx31) (primEqNat (Succ wx320) wx33) foldr (++) [] (map (List.findIndices0 (primEqChar (Char (Succ wx34)))) (zipWith zip0 wx35 (numericEnumFrom $! Pos wx36 + fromInt (Pos (Succ Zero))))))",fontsize=16,color="burlywood",shape="box"];721[label="wx33/Succ wx330",fontsize=10,color="white",style="solid",shape="box"];679 -> 721[label="",style="solid", color="burlywood", weight=9]; 721 -> 683[label="",style="solid", color="burlywood", weight=3]; 722[label="wx33/Zero",fontsize=10,color="white",style="solid",shape="box"];679 -> 722[label="",style="solid", color="burlywood", weight=9]; 722 -> 684[label="",style="solid", color="burlywood", weight=3]; 680[label="Maybe.listToMaybe ((++) List.findIndices000 (Pos wx31) (primEqNat Zero wx33) foldr (++) [] (map (List.findIndices0 (primEqChar (Char (Succ wx34)))) (zipWith zip0 wx35 (numericEnumFrom $! Pos wx36 + fromInt (Pos (Succ Zero))))))",fontsize=16,color="burlywood",shape="box"];723[label="wx33/Succ wx330",fontsize=10,color="white",style="solid",shape="box"];680 -> 723[label="",style="solid", color="burlywood", weight=9]; 723 -> 685[label="",style="solid", color="burlywood", weight=3]; 724[label="wx33/Zero",fontsize=10,color="white",style="solid",shape="box"];680 -> 724[label="",style="solid", color="burlywood", weight=9]; 724 -> 686[label="",style="solid", color="burlywood", weight=3]; 50[label="Maybe.listToMaybe (foldr (++) [] (map (List.findIndices0 (primEqChar (Char (Succ wx300)))) (zipWith zip0 wx41 (numericEnumFrom $! Pos Zero + fromInt (Pos (Succ Zero))))))",fontsize=16,color="burlywood",shape="box"];725[label="wx41/wx410 : wx411",fontsize=10,color="white",style="solid",shape="box"];50 -> 725[label="",style="solid", color="burlywood", weight=9]; 725 -> 57[label="",style="solid", color="burlywood", weight=3]; 726[label="wx41/[]",fontsize=10,color="white",style="solid",shape="box"];50 -> 726[label="",style="solid", color="burlywood", weight=9]; 726 -> 58[label="",style="solid", color="burlywood", weight=3]; 51[label="Maybe.listToMaybe (foldr (++) [] (map (List.findIndices0 (primEqChar (Char Zero))) (zipWith zip0 wx41 (numericEnumFrom $! Pos Zero + fromInt (Pos (Succ Zero))))))",fontsize=16,color="burlywood",shape="box"];727[label="wx41/wx410 : wx411",fontsize=10,color="white",style="solid",shape="box"];51 -> 727[label="",style="solid", color="burlywood", weight=9]; 727 -> 59[label="",style="solid", color="burlywood", weight=3]; 728[label="wx41/[]",fontsize=10,color="white",style="solid",shape="box"];51 -> 728[label="",style="solid", color="burlywood", weight=9]; 728 -> 60[label="",style="solid", color="burlywood", weight=3]; 52[label="Maybe.listToMaybe (Pos Zero : [] ++ foldr (++) [] (map (List.findIndices0 (primEqChar (Char Zero))) (zipWith zip0 wx41 (numericEnumFrom $! Pos Zero + fromInt (Pos (Succ Zero))))))",fontsize=16,color="black",shape="box"];52 -> 61[label="",style="solid", color="black", weight=3]; 683[label="Maybe.listToMaybe ((++) List.findIndices000 (Pos wx31) (primEqNat (Succ wx320) (Succ wx330)) foldr (++) [] (map (List.findIndices0 (primEqChar (Char (Succ wx34)))) (zipWith zip0 wx35 (numericEnumFrom $! Pos wx36 + fromInt (Pos (Succ Zero))))))",fontsize=16,color="black",shape="box"];683 -> 687[label="",style="solid", color="black", weight=3]; 684[label="Maybe.listToMaybe ((++) List.findIndices000 (Pos wx31) (primEqNat (Succ wx320) Zero) foldr (++) [] (map (List.findIndices0 (primEqChar (Char (Succ wx34)))) (zipWith zip0 wx35 (numericEnumFrom $! Pos wx36 + fromInt (Pos (Succ Zero))))))",fontsize=16,color="black",shape="box"];684 -> 688[label="",style="solid", color="black", weight=3]; 685[label="Maybe.listToMaybe ((++) List.findIndices000 (Pos wx31) (primEqNat Zero (Succ wx330)) foldr (++) [] (map (List.findIndices0 (primEqChar (Char (Succ wx34)))) (zipWith zip0 wx35 (numericEnumFrom $! Pos wx36 + fromInt (Pos (Succ Zero))))))",fontsize=16,color="black",shape="box"];685 -> 689[label="",style="solid", color="black", weight=3]; 686[label="Maybe.listToMaybe ((++) List.findIndices000 (Pos wx31) (primEqNat Zero Zero) foldr (++) [] (map (List.findIndices0 (primEqChar (Char (Succ wx34)))) (zipWith zip0 wx35 (numericEnumFrom $! Pos wx36 + fromInt (Pos (Succ Zero))))))",fontsize=16,color="black",shape="box"];686 -> 690[label="",style="solid", color="black", weight=3]; 57[label="Maybe.listToMaybe (foldr (++) [] (map (List.findIndices0 (primEqChar (Char (Succ wx300)))) (zipWith zip0 (wx410 : wx411) (numericEnumFrom $! Pos Zero + fromInt (Pos (Succ Zero))))))",fontsize=16,color="black",shape="box"];57 -> 67[label="",style="solid", color="black", weight=3]; 58[label="Maybe.listToMaybe (foldr (++) [] (map (List.findIndices0 (primEqChar (Char (Succ wx300)))) (zipWith zip0 [] (numericEnumFrom $! Pos Zero + fromInt (Pos (Succ Zero))))))",fontsize=16,color="black",shape="box"];58 -> 68[label="",style="solid", color="black", weight=3]; 59[label="Maybe.listToMaybe (foldr (++) [] (map (List.findIndices0 (primEqChar (Char Zero))) (zipWith zip0 (wx410 : wx411) (numericEnumFrom $! Pos Zero + fromInt (Pos (Succ Zero))))))",fontsize=16,color="black",shape="box"];59 -> 69[label="",style="solid", color="black", weight=3]; 60[label="Maybe.listToMaybe (foldr (++) [] (map (List.findIndices0 (primEqChar (Char Zero))) (zipWith zip0 [] (numericEnumFrom $! Pos Zero + fromInt (Pos (Succ Zero))))))",fontsize=16,color="black",shape="box"];60 -> 70[label="",style="solid", color="black", weight=3]; 61[label="Just (Pos Zero)",fontsize=16,color="green",shape="box"];687 -> 594[label="",style="dashed", color="red", weight=0]; 687[label="Maybe.listToMaybe ((++) List.findIndices000 (Pos wx31) (primEqNat wx320 wx330) foldr (++) [] (map (List.findIndices0 (primEqChar (Char (Succ wx34)))) (zipWith zip0 wx35 (numericEnumFrom $! Pos wx36 + fromInt (Pos (Succ Zero))))))",fontsize=16,color="magenta"];687 -> 691[label="",style="dashed", color="magenta", weight=3]; 687 -> 692[label="",style="dashed", color="magenta", weight=3]; 688[label="Maybe.listToMaybe ((++) List.findIndices000 (Pos wx31) False foldr (++) [] (map (List.findIndices0 (primEqChar (Char (Succ wx34)))) (zipWith zip0 wx35 (numericEnumFrom $! Pos wx36 + fromInt (Pos (Succ Zero))))))",fontsize=16,color="black",shape="triangle"];688 -> 693[label="",style="solid", color="black", weight=3]; 689 -> 688[label="",style="dashed", color="red", weight=0]; 689[label="Maybe.listToMaybe ((++) List.findIndices000 (Pos wx31) False foldr (++) [] (map (List.findIndices0 (primEqChar (Char (Succ wx34)))) (zipWith zip0 wx35 (numericEnumFrom $! Pos wx36 + fromInt (Pos (Succ Zero))))))",fontsize=16,color="magenta"];690[label="Maybe.listToMaybe ((++) List.findIndices000 (Pos wx31) True foldr (++) [] (map (List.findIndices0 (primEqChar (Char (Succ wx34)))) (zipWith zip0 wx35 (numericEnumFrom $! Pos wx36 + fromInt (Pos (Succ Zero))))))",fontsize=16,color="black",shape="box"];690 -> 694[label="",style="solid", color="black", weight=3]; 67[label="Maybe.listToMaybe (foldr (++) [] (map (List.findIndices0 (primEqChar (Char (Succ wx300)))) (zipWith zip0 (wx410 : wx411) (Pos Zero + fromInt (Pos (Succ Zero)) `seq` numericEnumFrom (Pos Zero + fromInt (Pos (Succ Zero)))))))",fontsize=16,color="black",shape="box"];67 -> 76[label="",style="solid", color="black", weight=3]; 68[label="Maybe.listToMaybe (foldr (++) [] (map (List.findIndices0 (primEqChar (Char (Succ wx300)))) []))",fontsize=16,color="black",shape="triangle"];68 -> 77[label="",style="solid", color="black", weight=3]; 69[label="Maybe.listToMaybe (foldr (++) [] (map (List.findIndices0 (primEqChar (Char Zero))) (zipWith zip0 (wx410 : wx411) (Pos Zero + fromInt (Pos (Succ Zero)) `seq` numericEnumFrom (Pos Zero + fromInt (Pos (Succ Zero)))))))",fontsize=16,color="black",shape="box"];69 -> 78[label="",style="solid", color="black", weight=3]; 70[label="Maybe.listToMaybe (foldr (++) [] (map (List.findIndices0 (primEqChar (Char Zero))) []))",fontsize=16,color="black",shape="triangle"];70 -> 79[label="",style="solid", color="black", weight=3]; 691[label="wx320",fontsize=16,color="green",shape="box"];692[label="wx330",fontsize=16,color="green",shape="box"];693[label="Maybe.listToMaybe ((++) [] foldr (++) [] (map (List.findIndices0 (primEqChar (Char (Succ wx34)))) (zipWith zip0 wx35 (numericEnumFrom $! Pos wx36 + fromInt (Pos (Succ Zero))))))",fontsize=16,color="black",shape="box"];693 -> 695[label="",style="solid", color="black", weight=3]; 694[label="Maybe.listToMaybe ((++) (Pos wx31 : []) foldr (++) [] (map (List.findIndices0 (primEqChar (Char (Succ wx34)))) (zipWith zip0 wx35 (numericEnumFrom $! Pos wx36 + fromInt (Pos (Succ Zero))))))",fontsize=16,color="black",shape="box"];694 -> 696[label="",style="solid", color="black", weight=3]; 76 -> 311[label="",style="dashed", color="red", weight=0]; 76[label="Maybe.listToMaybe (foldr (++) [] (map (List.findIndices0 (primEqChar (Char (Succ wx300)))) (zipWith zip0 (wx410 : wx411) (enforceWHNF (WHNF (Pos Zero + fromInt (Pos (Succ Zero)))) (numericEnumFrom (Pos Zero + fromInt (Pos (Succ Zero))))))))",fontsize=16,color="magenta"];76 -> 312[label="",style="dashed", color="magenta", weight=3]; 76 -> 313[label="",style="dashed", color="magenta", weight=3]; 76 -> 314[label="",style="dashed", color="magenta", weight=3]; 76 -> 315[label="",style="dashed", color="magenta", weight=3]; 77 -> 18[label="",style="dashed", color="red", weight=0]; 77[label="Maybe.listToMaybe (foldr (++) [] [])",fontsize=16,color="magenta"];78 -> 326[label="",style="dashed", color="red", weight=0]; 78[label="Maybe.listToMaybe (foldr (++) [] (map (List.findIndices0 (primEqChar (Char Zero))) (zipWith zip0 (wx410 : wx411) (enforceWHNF (WHNF (Pos Zero + fromInt (Pos (Succ Zero)))) (numericEnumFrom (Pos Zero + fromInt (Pos (Succ Zero))))))))",fontsize=16,color="magenta"];78 -> 327[label="",style="dashed", color="magenta", weight=3]; 78 -> 328[label="",style="dashed", color="magenta", weight=3]; 78 -> 329[label="",style="dashed", color="magenta", weight=3]; 78 -> 330[label="",style="dashed", color="magenta", weight=3]; 79 -> 18[label="",style="dashed", color="red", weight=0]; 79[label="Maybe.listToMaybe (foldr (++) [] [])",fontsize=16,color="magenta"];695[label="Maybe.listToMaybe (foldr (++) [] (map (List.findIndices0 (primEqChar (Char (Succ wx34)))) (zipWith zip0 wx35 (numericEnumFrom $! Pos wx36 + fromInt (Pos (Succ Zero))))))",fontsize=16,color="burlywood",shape="box"];729[label="wx35/wx350 : wx351",fontsize=10,color="white",style="solid",shape="box"];695 -> 729[label="",style="solid", color="burlywood", weight=9]; 729 -> 697[label="",style="solid", color="burlywood", weight=3]; 730[label="wx35/[]",fontsize=10,color="white",style="solid",shape="box"];695 -> 730[label="",style="solid", color="burlywood", weight=9]; 730 -> 698[label="",style="solid", color="burlywood", weight=3]; 696[label="Maybe.listToMaybe (Pos wx31 : [] ++ foldr (++) [] (map (List.findIndices0 (primEqChar (Char (Succ wx34)))) (zipWith zip0 wx35 (numericEnumFrom $! Pos wx36 + fromInt (Pos (Succ Zero))))))",fontsize=16,color="black",shape="box"];696 -> 699[label="",style="solid", color="black", weight=3]; 312[label="wx411",fontsize=16,color="green",shape="box"];313[label="wx410",fontsize=16,color="green",shape="box"];314[label="Zero",fontsize=16,color="green",shape="box"];315[label="Zero",fontsize=16,color="green",shape="box"];311[label="Maybe.listToMaybe (foldr (++) [] (map (List.findIndices0 (primEqChar (Char (Succ wx300)))) (zipWith zip0 (wx4110 : wx4111) (enforceWHNF (WHNF (Pos wx16 + fromInt (Pos (Succ Zero)))) (numericEnumFrom (Pos wx15 + fromInt (Pos (Succ Zero))))))))",fontsize=16,color="black",shape="triangle"];311 -> 325[label="",style="solid", color="black", weight=3]; 327[label="wx411",fontsize=16,color="green",shape="box"];328[label="Zero",fontsize=16,color="green",shape="box"];329[label="wx410",fontsize=16,color="green",shape="box"];330[label="Zero",fontsize=16,color="green",shape="box"];326[label="Maybe.listToMaybe (foldr (++) [] (map (List.findIndices0 (primEqChar (Char Zero))) (zipWith zip0 (wx4110 : wx4111) (enforceWHNF (WHNF (Pos wx18 + fromInt (Pos (Succ Zero)))) (numericEnumFrom (Pos wx17 + fromInt (Pos (Succ Zero))))))))",fontsize=16,color="black",shape="triangle"];326 -> 334[label="",style="solid", color="black", weight=3]; 697[label="Maybe.listToMaybe (foldr (++) [] (map (List.findIndices0 (primEqChar (Char (Succ wx34)))) (zipWith zip0 (wx350 : wx351) (numericEnumFrom $! Pos wx36 + fromInt (Pos (Succ Zero))))))",fontsize=16,color="black",shape="box"];697 -> 700[label="",style="solid", color="black", weight=3]; 698[label="Maybe.listToMaybe (foldr (++) [] (map (List.findIndices0 (primEqChar (Char (Succ wx34)))) (zipWith zip0 [] (numericEnumFrom $! Pos wx36 + fromInt (Pos (Succ Zero))))))",fontsize=16,color="black",shape="box"];698 -> 701[label="",style="solid", color="black", weight=3]; 699[label="Just (Pos wx31)",fontsize=16,color="green",shape="box"];325[label="Maybe.listToMaybe (foldr (++) [] (map (List.findIndices0 (primEqChar (Char (Succ wx300)))) (zipWith zip0 (wx4110 : wx4111) (enforceWHNF (WHNF (primPlusInt (Pos wx16) (fromInt (Pos (Succ Zero))))) (numericEnumFrom (primPlusInt (Pos wx15) (fromInt (Pos (Succ Zero)))))))))",fontsize=16,color="black",shape="box"];325 -> 335[label="",style="solid", color="black", weight=3]; 334[label="Maybe.listToMaybe (foldr (++) [] (map (List.findIndices0 (primEqChar (Char Zero))) (zipWith zip0 (wx4110 : wx4111) (enforceWHNF (WHNF (primPlusInt (Pos wx18) (fromInt (Pos (Succ Zero))))) (numericEnumFrom (primPlusInt (Pos wx17) (fromInt (Pos (Succ Zero)))))))))",fontsize=16,color="black",shape="box"];334 -> 337[label="",style="solid", color="black", weight=3]; 700[label="Maybe.listToMaybe (foldr (++) [] (map (List.findIndices0 (primEqChar (Char (Succ wx34)))) (zipWith zip0 (wx350 : wx351) (Pos wx36 + fromInt (Pos (Succ Zero)) `seq` numericEnumFrom (Pos wx36 + fromInt (Pos (Succ Zero)))))))",fontsize=16,color="black",shape="box"];700 -> 702[label="",style="solid", color="black", weight=3]; 701 -> 68[label="",style="dashed", color="red", weight=0]; 701[label="Maybe.listToMaybe (foldr (++) [] (map (List.findIndices0 (primEqChar (Char (Succ wx34)))) []))",fontsize=16,color="magenta"];701 -> 703[label="",style="dashed", color="magenta", weight=3]; 335[label="Maybe.listToMaybe (foldr (++) [] (map (List.findIndices0 (primEqChar (Char (Succ wx300)))) (zipWith zip0 (wx4110 : wx4111) (enforceWHNF (WHNF (primPlusInt (Pos wx16) (Pos (Succ Zero)))) (numericEnumFrom (primPlusInt (Pos wx15) (Pos (Succ Zero))))))))",fontsize=16,color="black",shape="box"];335 -> 338[label="",style="solid", color="black", weight=3]; 337[label="Maybe.listToMaybe (foldr (++) [] (map (List.findIndices0 (primEqChar (Char Zero))) (zipWith zip0 (wx4110 : wx4111) (enforceWHNF (WHNF (primPlusInt (Pos wx18) (Pos (Succ Zero)))) (numericEnumFrom (primPlusInt (Pos wx17) (Pos (Succ Zero))))))))",fontsize=16,color="black",shape="box"];337 -> 339[label="",style="solid", color="black", weight=3]; 702 -> 311[label="",style="dashed", color="red", weight=0]; 702[label="Maybe.listToMaybe (foldr (++) [] (map (List.findIndices0 (primEqChar (Char (Succ wx34)))) (zipWith zip0 (wx350 : wx351) (enforceWHNF (WHNF (Pos wx36 + fromInt (Pos (Succ Zero)))) (numericEnumFrom (Pos wx36 + fromInt (Pos (Succ Zero))))))))",fontsize=16,color="magenta"];702 -> 704[label="",style="dashed", color="magenta", weight=3]; 702 -> 705[label="",style="dashed", color="magenta", weight=3]; 702 -> 706[label="",style="dashed", color="magenta", weight=3]; 702 -> 707[label="",style="dashed", color="magenta", weight=3]; 702 -> 708[label="",style="dashed", color="magenta", weight=3]; 703[label="wx34",fontsize=16,color="green",shape="box"];338[label="Maybe.listToMaybe (foldr (++) [] (map (List.findIndices0 (primEqChar (Char (Succ wx300)))) (zipWith zip0 (wx4110 : wx4111) (enforceWHNF (WHNF (Pos (primPlusNat wx16 (Succ Zero)))) (numericEnumFrom (Pos (primPlusNat wx16 (Succ Zero))))))))",fontsize=16,color="black",shape="box"];338 -> 340[label="",style="solid", color="black", weight=3]; 339[label="Maybe.listToMaybe (foldr (++) [] (map (List.findIndices0 (primEqChar (Char Zero))) (zipWith zip0 (wx4110 : wx4111) (enforceWHNF (WHNF (Pos (primPlusNat wx18 (Succ Zero)))) (numericEnumFrom (Pos (primPlusNat wx18 (Succ Zero))))))))",fontsize=16,color="black",shape="box"];339 -> 341[label="",style="solid", color="black", weight=3]; 704[label="wx351",fontsize=16,color="green",shape="box"];705[label="wx350",fontsize=16,color="green",shape="box"];706[label="wx34",fontsize=16,color="green",shape="box"];707[label="wx36",fontsize=16,color="green",shape="box"];708[label="wx36",fontsize=16,color="green",shape="box"];340[label="Maybe.listToMaybe (foldr (++) [] (map (List.findIndices0 (primEqChar (Char (Succ wx300)))) (zipWith zip0 (wx4110 : wx4111) (numericEnumFrom (Pos (primPlusNat wx16 (Succ Zero)))))))",fontsize=16,color="black",shape="box"];340 -> 342[label="",style="solid", color="black", weight=3]; 341[label="Maybe.listToMaybe (foldr (++) [] (map (List.findIndices0 (primEqChar (Char Zero))) (zipWith zip0 (wx4110 : wx4111) (numericEnumFrom (Pos (primPlusNat wx18 (Succ Zero)))))))",fontsize=16,color="black",shape="box"];341 -> 343[label="",style="solid", color="black", weight=3]; 342[label="Maybe.listToMaybe (foldr (++) [] (map (List.findIndices0 (primEqChar (Char (Succ wx300)))) (zipWith zip0 (wx4110 : wx4111) (Pos (primPlusNat wx16 (Succ Zero)) : (numericEnumFrom $! Pos (primPlusNat wx16 (Succ Zero)) + fromInt (Pos (Succ Zero)))))))",fontsize=16,color="black",shape="box"];342 -> 344[label="",style="solid", color="black", weight=3]; 343[label="Maybe.listToMaybe (foldr (++) [] (map (List.findIndices0 (primEqChar (Char Zero))) (zipWith zip0 (wx4110 : wx4111) (Pos (primPlusNat wx18 (Succ Zero)) : (numericEnumFrom $! Pos (primPlusNat wx18 (Succ Zero)) + fromInt (Pos (Succ Zero)))))))",fontsize=16,color="black",shape="box"];343 -> 345[label="",style="solid", color="black", weight=3]; 344[label="Maybe.listToMaybe (foldr (++) [] (map (List.findIndices0 (primEqChar (Char (Succ wx300)))) (zip0 wx4110 (Pos (primPlusNat wx16 (Succ Zero))) : zipWith zip0 wx4111 (numericEnumFrom $! Pos (primPlusNat wx16 (Succ Zero)) + fromInt (Pos (Succ Zero))))))",fontsize=16,color="black",shape="box"];344 -> 346[label="",style="solid", color="black", weight=3]; 345[label="Maybe.listToMaybe (foldr (++) [] (map (List.findIndices0 (primEqChar (Char Zero))) (zip0 wx4110 (Pos (primPlusNat wx18 (Succ Zero))) : zipWith zip0 wx4111 (numericEnumFrom $! Pos (primPlusNat wx18 (Succ Zero)) + fromInt (Pos (Succ Zero))))))",fontsize=16,color="black",shape="box"];345 -> 347[label="",style="solid", color="black", weight=3]; 346[label="Maybe.listToMaybe (foldr (++) [] (List.findIndices0 (primEqChar (Char (Succ wx300))) (zip0 wx4110 (Pos (primPlusNat wx16 (Succ Zero)))) : map (List.findIndices0 (primEqChar (Char (Succ wx300)))) (zipWith zip0 wx4111 (numericEnumFrom $! Pos (primPlusNat wx16 (Succ Zero)) + fromInt (Pos (Succ Zero))))))",fontsize=16,color="black",shape="box"];346 -> 348[label="",style="solid", color="black", weight=3]; 347[label="Maybe.listToMaybe (foldr (++) [] (List.findIndices0 (primEqChar (Char Zero)) (zip0 wx4110 (Pos (primPlusNat wx18 (Succ Zero)))) : map (List.findIndices0 (primEqChar (Char Zero))) (zipWith zip0 wx4111 (numericEnumFrom $! Pos (primPlusNat wx18 (Succ Zero)) + fromInt (Pos (Succ Zero))))))",fontsize=16,color="black",shape="box"];347 -> 349[label="",style="solid", color="black", weight=3]; 348[label="Maybe.listToMaybe ((++) List.findIndices0 (primEqChar (Char (Succ wx300))) (zip0 wx4110 (Pos (primPlusNat wx16 (Succ Zero)))) foldr (++) [] (map (List.findIndices0 (primEqChar (Char (Succ wx300)))) (zipWith zip0 wx4111 (numericEnumFrom $! Pos (primPlusNat wx16 (Succ Zero)) + fromInt (Pos (Succ Zero))))))",fontsize=16,color="black",shape="box"];348 -> 350[label="",style="solid", color="black", weight=3]; 349[label="Maybe.listToMaybe ((++) List.findIndices0 (primEqChar (Char Zero)) (zip0 wx4110 (Pos (primPlusNat wx18 (Succ Zero)))) foldr (++) [] (map (List.findIndices0 (primEqChar (Char Zero))) (zipWith zip0 wx4111 (numericEnumFrom $! Pos (primPlusNat wx18 (Succ Zero)) + fromInt (Pos (Succ Zero))))))",fontsize=16,color="black",shape="box"];349 -> 351[label="",style="solid", color="black", weight=3]; 350[label="Maybe.listToMaybe ((++) List.findIndices00 (primEqChar (Char (Succ wx300))) (zip0 wx4110 (Pos (primPlusNat wx16 (Succ Zero)))) foldr (++) [] (map (List.findIndices0 (primEqChar (Char (Succ wx300)))) (zipWith zip0 wx4111 (numericEnumFrom $! Pos (primPlusNat wx16 (Succ Zero)) + fromInt (Pos (Succ Zero))))))",fontsize=16,color="black",shape="box"];350 -> 352[label="",style="solid", color="black", weight=3]; 351[label="Maybe.listToMaybe ((++) List.findIndices00 (primEqChar (Char Zero)) (zip0 wx4110 (Pos (primPlusNat wx18 (Succ Zero)))) foldr (++) [] (map (List.findIndices0 (primEqChar (Char Zero))) (zipWith zip0 wx4111 (numericEnumFrom $! Pos (primPlusNat wx18 (Succ Zero)) + fromInt (Pos (Succ Zero))))))",fontsize=16,color="black",shape="box"];351 -> 353[label="",style="solid", color="black", weight=3]; 352[label="Maybe.listToMaybe ((++) List.findIndices00 (primEqChar (Char (Succ wx300))) (wx4110,Pos (primPlusNat wx16 (Succ Zero))) foldr (++) [] (map (List.findIndices0 (primEqChar (Char (Succ wx300)))) (zipWith zip0 wx4111 (numericEnumFrom $! Pos (primPlusNat wx16 (Succ Zero)) + fromInt (Pos (Succ Zero))))))",fontsize=16,color="black",shape="box"];352 -> 354[label="",style="solid", color="black", weight=3]; 353[label="Maybe.listToMaybe ((++) List.findIndices00 (primEqChar (Char Zero)) (wx4110,Pos (primPlusNat wx18 (Succ Zero))) foldr (++) [] (map (List.findIndices0 (primEqChar (Char Zero))) (zipWith zip0 wx4111 (numericEnumFrom $! Pos (primPlusNat wx18 (Succ Zero)) + fromInt (Pos (Succ Zero))))))",fontsize=16,color="black",shape="box"];353 -> 355[label="",style="solid", color="black", weight=3]; 354[label="Maybe.listToMaybe ((++) List.findIndices000 (Pos (primPlusNat wx16 (Succ Zero))) (primEqChar (Char (Succ wx300)) wx4110) foldr (++) [] (map (List.findIndices0 (primEqChar (Char (Succ wx300)))) (zipWith zip0 wx4111 (numericEnumFrom $! Pos (primPlusNat wx16 (Succ Zero)) + fromInt (Pos (Succ Zero))))))",fontsize=16,color="burlywood",shape="box"];731[label="wx4110/Char wx41100",fontsize=10,color="white",style="solid",shape="box"];354 -> 731[label="",style="solid", color="burlywood", weight=9]; 731 -> 356[label="",style="solid", color="burlywood", weight=3]; 355[label="Maybe.listToMaybe ((++) List.findIndices000 (Pos (primPlusNat wx18 (Succ Zero))) (primEqChar (Char Zero) wx4110) foldr (++) [] (map (List.findIndices0 (primEqChar (Char Zero))) (zipWith zip0 wx4111 (numericEnumFrom $! Pos (primPlusNat wx18 (Succ Zero)) + fromInt (Pos (Succ Zero))))))",fontsize=16,color="burlywood",shape="box"];732[label="wx4110/Char wx41100",fontsize=10,color="white",style="solid",shape="box"];355 -> 732[label="",style="solid", color="burlywood", weight=9]; 732 -> 357[label="",style="solid", color="burlywood", weight=3]; 356[label="Maybe.listToMaybe ((++) List.findIndices000 (Pos (primPlusNat wx16 (Succ Zero))) (primEqChar (Char (Succ wx300)) (Char wx41100)) foldr (++) [] (map (List.findIndices0 (primEqChar (Char (Succ wx300)))) (zipWith zip0 wx4111 (numericEnumFrom $! Pos (primPlusNat wx16 (Succ Zero)) + fromInt (Pos (Succ Zero))))))",fontsize=16,color="black",shape="box"];356 -> 358[label="",style="solid", color="black", weight=3]; 357[label="Maybe.listToMaybe ((++) List.findIndices000 (Pos (primPlusNat wx18 (Succ Zero))) (primEqChar (Char Zero) (Char wx41100)) foldr (++) [] (map (List.findIndices0 (primEqChar (Char Zero))) (zipWith zip0 wx4111 (numericEnumFrom $! Pos (primPlusNat wx18 (Succ Zero)) + fromInt (Pos (Succ Zero))))))",fontsize=16,color="black",shape="box"];357 -> 359[label="",style="solid", color="black", weight=3]; 358 -> 594[label="",style="dashed", color="red", weight=0]; 358[label="Maybe.listToMaybe ((++) List.findIndices000 (Pos (primPlusNat wx16 (Succ Zero))) (primEqNat (Succ wx300) wx41100) foldr (++) [] (map (List.findIndices0 (primEqChar (Char (Succ wx300)))) (zipWith zip0 wx4111 (numericEnumFrom $! Pos (primPlusNat wx16 (Succ Zero)) + fromInt (Pos (Succ Zero))))))",fontsize=16,color="magenta"];358 -> 613[label="",style="dashed", color="magenta", weight=3]; 358 -> 614[label="",style="dashed", color="magenta", weight=3]; 358 -> 615[label="",style="dashed", color="magenta", weight=3]; 358 -> 616[label="",style="dashed", color="magenta", weight=3]; 358 -> 617[label="",style="dashed", color="magenta", weight=3]; 358 -> 618[label="",style="dashed", color="magenta", weight=3]; 359[label="Maybe.listToMaybe ((++) List.findIndices000 (Pos (primPlusNat wx18 (Succ Zero))) (primEqNat Zero wx41100) foldr (++) [] (map (List.findIndices0 (primEqChar (Char Zero))) (zipWith zip0 wx4111 (numericEnumFrom $! Pos (primPlusNat wx18 (Succ Zero)) + fromInt (Pos (Succ Zero))))))",fontsize=16,color="burlywood",shape="box"];733[label="wx41100/Succ wx411000",fontsize=10,color="white",style="solid",shape="box"];359 -> 733[label="",style="solid", color="burlywood", weight=9]; 733 -> 362[label="",style="solid", color="burlywood", weight=3]; 734[label="wx41100/Zero",fontsize=10,color="white",style="solid",shape="box"];359 -> 734[label="",style="solid", color="burlywood", weight=9]; 734 -> 363[label="",style="solid", color="burlywood", weight=3]; 613[label="Succ wx300",fontsize=16,color="green",shape="box"];614 -> 398[label="",style="dashed", color="red", weight=0]; 614[label="primPlusNat wx16 (Succ Zero)",fontsize=16,color="magenta"];614 -> 681[label="",style="dashed", color="magenta", weight=3]; 615 -> 398[label="",style="dashed", color="red", weight=0]; 615[label="primPlusNat wx16 (Succ Zero)",fontsize=16,color="magenta"];615 -> 682[label="",style="dashed", color="magenta", weight=3]; 616[label="wx41100",fontsize=16,color="green",shape="box"];617[label="wx300",fontsize=16,color="green",shape="box"];618[label="wx4111",fontsize=16,color="green",shape="box"];362[label="Maybe.listToMaybe ((++) List.findIndices000 (Pos (primPlusNat wx18 (Succ Zero))) (primEqNat Zero (Succ wx411000)) foldr (++) [] (map (List.findIndices0 (primEqChar (Char Zero))) (zipWith zip0 wx4111 (numericEnumFrom $! Pos (primPlusNat wx18 (Succ Zero)) + fromInt (Pos (Succ Zero))))))",fontsize=16,color="black",shape="box"];362 -> 366[label="",style="solid", color="black", weight=3]; 363[label="Maybe.listToMaybe ((++) List.findIndices000 (Pos (primPlusNat wx18 (Succ Zero))) (primEqNat Zero Zero) foldr (++) [] (map (List.findIndices0 (primEqChar (Char Zero))) (zipWith zip0 wx4111 (numericEnumFrom $! Pos (primPlusNat wx18 (Succ Zero)) + fromInt (Pos (Succ Zero))))))",fontsize=16,color="black",shape="box"];363 -> 367[label="",style="solid", color="black", weight=3]; 681[label="wx16",fontsize=16,color="green",shape="box"];398[label="primPlusNat wx18 (Succ Zero)",fontsize=16,color="burlywood",shape="triangle"];735[label="wx18/Succ wx180",fontsize=10,color="white",style="solid",shape="box"];398 -> 735[label="",style="solid", color="burlywood", weight=9]; 735 -> 406[label="",style="solid", color="burlywood", weight=3]; 736[label="wx18/Zero",fontsize=10,color="white",style="solid",shape="box"];398 -> 736[label="",style="solid", color="burlywood", weight=9]; 736 -> 407[label="",style="solid", color="burlywood", weight=3]; 682[label="wx16",fontsize=16,color="green",shape="box"];366[label="Maybe.listToMaybe ((++) List.findIndices000 (Pos (primPlusNat wx18 (Succ Zero))) False foldr (++) [] (map (List.findIndices0 (primEqChar (Char Zero))) (zipWith zip0 wx4111 (numericEnumFrom $! Pos (primPlusNat wx18 (Succ Zero)) + fromInt (Pos (Succ Zero))))))",fontsize=16,color="black",shape="box"];366 -> 371[label="",style="solid", color="black", weight=3]; 367[label="Maybe.listToMaybe ((++) List.findIndices000 (Pos (primPlusNat wx18 (Succ Zero))) True foldr (++) [] (map (List.findIndices0 (primEqChar (Char Zero))) (zipWith zip0 wx4111 (numericEnumFrom $! Pos (primPlusNat wx18 (Succ Zero)) + fromInt (Pos (Succ Zero))))))",fontsize=16,color="black",shape="box"];367 -> 372[label="",style="solid", color="black", weight=3]; 406[label="primPlusNat (Succ wx180) (Succ Zero)",fontsize=16,color="black",shape="box"];406 -> 423[label="",style="solid", color="black", weight=3]; 407[label="primPlusNat Zero (Succ Zero)",fontsize=16,color="black",shape="box"];407 -> 424[label="",style="solid", color="black", weight=3]; 371[label="Maybe.listToMaybe ((++) [] foldr (++) [] (map (List.findIndices0 (primEqChar (Char Zero))) (zipWith zip0 wx4111 (numericEnumFrom $! Pos (primPlusNat wx18 (Succ Zero)) + fromInt (Pos (Succ Zero))))))",fontsize=16,color="black",shape="box"];371 -> 378[label="",style="solid", color="black", weight=3]; 372[label="Maybe.listToMaybe ((++) (Pos (primPlusNat wx18 (Succ Zero)) : []) foldr (++) [] (map (List.findIndices0 (primEqChar (Char Zero))) (zipWith zip0 wx4111 (numericEnumFrom $! Pos (primPlusNat wx18 (Succ Zero)) + fromInt (Pos (Succ Zero))))))",fontsize=16,color="black",shape="box"];372 -> 379[label="",style="solid", color="black", weight=3]; 423[label="Succ (Succ (primPlusNat wx180 Zero))",fontsize=16,color="green",shape="box"];423 -> 438[label="",style="dashed", color="green", weight=3]; 424[label="Succ Zero",fontsize=16,color="green",shape="box"];378[label="Maybe.listToMaybe (foldr (++) [] (map (List.findIndices0 (primEqChar (Char Zero))) (zipWith zip0 wx4111 (numericEnumFrom $! Pos (primPlusNat wx18 (Succ Zero)) + fromInt (Pos (Succ Zero))))))",fontsize=16,color="burlywood",shape="box"];737[label="wx4111/wx41110 : wx41111",fontsize=10,color="white",style="solid",shape="box"];378 -> 737[label="",style="solid", color="burlywood", weight=9]; 737 -> 386[label="",style="solid", color="burlywood", weight=3]; 738[label="wx4111/[]",fontsize=10,color="white",style="solid",shape="box"];378 -> 738[label="",style="solid", color="burlywood", weight=9]; 738 -> 387[label="",style="solid", color="burlywood", weight=3]; 379[label="Maybe.listToMaybe (Pos (primPlusNat wx18 (Succ Zero)) : [] ++ foldr (++) [] (map (List.findIndices0 (primEqChar (Char Zero))) (zipWith zip0 wx4111 (numericEnumFrom $! Pos (primPlusNat wx18 (Succ Zero)) + fromInt (Pos (Succ Zero))))))",fontsize=16,color="black",shape="box"];379 -> 388[label="",style="solid", color="black", weight=3]; 438[label="primPlusNat wx180 Zero",fontsize=16,color="burlywood",shape="box"];739[label="wx180/Succ wx1800",fontsize=10,color="white",style="solid",shape="box"];438 -> 739[label="",style="solid", color="burlywood", weight=9]; 739 -> 446[label="",style="solid", color="burlywood", weight=3]; 740[label="wx180/Zero",fontsize=10,color="white",style="solid",shape="box"];438 -> 740[label="",style="solid", color="burlywood", weight=9]; 740 -> 447[label="",style="solid", color="burlywood", weight=3]; 386[label="Maybe.listToMaybe (foldr (++) [] (map (List.findIndices0 (primEqChar (Char Zero))) (zipWith zip0 (wx41110 : wx41111) (numericEnumFrom $! Pos (primPlusNat wx18 (Succ Zero)) + fromInt (Pos (Succ Zero))))))",fontsize=16,color="black",shape="box"];386 -> 396[label="",style="solid", color="black", weight=3]; 387[label="Maybe.listToMaybe (foldr (++) [] (map (List.findIndices0 (primEqChar (Char Zero))) (zipWith zip0 [] (numericEnumFrom $! Pos (primPlusNat wx18 (Succ Zero)) + fromInt (Pos (Succ Zero))))))",fontsize=16,color="black",shape="box"];387 -> 397[label="",style="solid", color="black", weight=3]; 388[label="Just (Pos (primPlusNat wx18 (Succ Zero)))",fontsize=16,color="green",shape="box"];388 -> 398[label="",style="dashed", color="green", weight=3]; 446[label="primPlusNat (Succ wx1800) Zero",fontsize=16,color="black",shape="box"];446 -> 453[label="",style="solid", color="black", weight=3]; 447[label="primPlusNat Zero Zero",fontsize=16,color="black",shape="box"];447 -> 454[label="",style="solid", color="black", weight=3]; 396[label="Maybe.listToMaybe (foldr (++) [] (map (List.findIndices0 (primEqChar (Char Zero))) (zipWith zip0 (wx41110 : wx41111) (Pos (primPlusNat wx18 (Succ Zero)) + fromInt (Pos (Succ Zero)) `seq` numericEnumFrom (Pos (primPlusNat wx18 (Succ Zero)) + fromInt (Pos (Succ Zero)))))))",fontsize=16,color="black",shape="box"];396 -> 405[label="",style="solid", color="black", weight=3]; 397 -> 70[label="",style="dashed", color="red", weight=0]; 397[label="Maybe.listToMaybe (foldr (++) [] (map (List.findIndices0 (primEqChar (Char Zero))) []))",fontsize=16,color="magenta"];453[label="Succ wx1800",fontsize=16,color="green",shape="box"];454[label="Zero",fontsize=16,color="green",shape="box"];405 -> 326[label="",style="dashed", color="red", weight=0]; 405[label="Maybe.listToMaybe (foldr (++) [] (map (List.findIndices0 (primEqChar (Char Zero))) (zipWith zip0 (wx41110 : wx41111) (enforceWHNF (WHNF (Pos (primPlusNat wx18 (Succ Zero)) + fromInt (Pos (Succ Zero)))) (numericEnumFrom (Pos (primPlusNat wx18 (Succ Zero)) + fromInt (Pos (Succ Zero))))))))",fontsize=16,color="magenta"];405 -> 419[label="",style="dashed", color="magenta", weight=3]; 405 -> 420[label="",style="dashed", color="magenta", weight=3]; 405 -> 421[label="",style="dashed", color="magenta", weight=3]; 405 -> 422[label="",style="dashed", color="magenta", weight=3]; 419[label="wx41111",fontsize=16,color="green",shape="box"];420 -> 398[label="",style="dashed", color="red", weight=0]; 420[label="primPlusNat wx18 (Succ Zero)",fontsize=16,color="magenta"];421[label="wx41110",fontsize=16,color="green",shape="box"];422 -> 398[label="",style="dashed", color="red", weight=0]; 422[label="primPlusNat wx18 (Succ Zero)",fontsize=16,color="magenta"];} ---------------------------------------- (14) Complex Obligation (AND) ---------------------------------------- (15) Obligation: Q DP problem: The TRS P consists of the following rules: new_listToMaybe0(wx31, Succ(wx320), Zero, wx34, :(wx350, wx351), wx36) -> new_listToMaybe1(wx34, wx350, wx351, wx36, wx36) new_listToMaybe0(wx31, Zero, Succ(wx330), wx34, wx35, wx36) -> new_listToMaybe2(wx31, wx34, wx35, wx36) new_listToMaybe1(wx300, Char(wx41100), wx4111, wx16, wx15) -> new_listToMaybe0(new_primPlusNat(wx16), Succ(wx300), wx41100, wx300, wx4111, new_primPlusNat(wx16)) new_listToMaybe2(wx31, wx34, :(wx350, wx351), wx36) -> new_listToMaybe1(wx34, wx350, wx351, wx36, wx36) new_listToMaybe0(wx31, Succ(wx320), Succ(wx330), wx34, wx35, wx36) -> new_listToMaybe0(wx31, wx320, wx330, wx34, wx35, wx36) The TRS R consists of the following rules: new_primPlusNat(Succ(wx180)) -> Succ(Succ(new_primPlusNat0(wx180))) new_primPlusNat(Zero) -> Succ(Zero) new_primPlusNat0(Succ(wx1800)) -> Succ(wx1800) new_primPlusNat0(Zero) -> Zero The set Q consists of the following terms: new_primPlusNat(Succ(x0)) new_primPlusNat0(Zero) new_primPlusNat0(Succ(x0)) new_primPlusNat(Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (16) TransformationProof (EQUIVALENT) By instantiating [LPAR04] the rule new_listToMaybe1(wx300, Char(wx41100), wx4111, wx16, wx15) -> new_listToMaybe0(new_primPlusNat(wx16), Succ(wx300), wx41100, wx300, wx4111, new_primPlusNat(wx16)) we obtained the following new rules [LPAR04]: (new_listToMaybe1(z2, Char(x1), z4, z5, z5) -> new_listToMaybe0(new_primPlusNat(z5), Succ(z2), x1, z2, z4, new_primPlusNat(z5)),new_listToMaybe1(z2, Char(x1), z4, z5, z5) -> new_listToMaybe0(new_primPlusNat(z5), Succ(z2), x1, z2, z4, new_primPlusNat(z5))) ---------------------------------------- (17) Obligation: Q DP problem: The TRS P consists of the following rules: new_listToMaybe0(wx31, Succ(wx320), Zero, wx34, :(wx350, wx351), wx36) -> new_listToMaybe1(wx34, wx350, wx351, wx36, wx36) new_listToMaybe0(wx31, Zero, Succ(wx330), wx34, wx35, wx36) -> new_listToMaybe2(wx31, wx34, wx35, wx36) new_listToMaybe2(wx31, wx34, :(wx350, wx351), wx36) -> new_listToMaybe1(wx34, wx350, wx351, wx36, wx36) new_listToMaybe0(wx31, Succ(wx320), Succ(wx330), wx34, wx35, wx36) -> new_listToMaybe0(wx31, wx320, wx330, wx34, wx35, wx36) new_listToMaybe1(z2, Char(x1), z4, z5, z5) -> new_listToMaybe0(new_primPlusNat(z5), Succ(z2), x1, z2, z4, new_primPlusNat(z5)) The TRS R consists of the following rules: new_primPlusNat(Succ(wx180)) -> Succ(Succ(new_primPlusNat0(wx180))) new_primPlusNat(Zero) -> Succ(Zero) new_primPlusNat0(Succ(wx1800)) -> Succ(wx1800) new_primPlusNat0(Zero) -> Zero The set Q consists of the following terms: new_primPlusNat(Succ(x0)) new_primPlusNat0(Zero) new_primPlusNat0(Succ(x0)) new_primPlusNat(Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (18) QDPSizeChangeProof (EQUIVALENT) 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. From the DPs we obtained the following set of size-change graphs: *new_listToMaybe1(z2, Char(x1), z4, z5, z5) -> new_listToMaybe0(new_primPlusNat(z5), Succ(z2), x1, z2, z4, new_primPlusNat(z5)) The graph contains the following edges 2 > 3, 1 >= 4, 3 >= 5 *new_listToMaybe0(wx31, Succ(wx320), Succ(wx330), wx34, wx35, wx36) -> new_listToMaybe0(wx31, wx320, wx330, wx34, wx35, wx36) The graph contains the following edges 1 >= 1, 2 > 2, 3 > 3, 4 >= 4, 5 >= 5, 6 >= 6 *new_listToMaybe2(wx31, wx34, :(wx350, wx351), wx36) -> new_listToMaybe1(wx34, wx350, wx351, wx36, wx36) The graph contains the following edges 2 >= 1, 3 > 2, 3 > 3, 4 >= 4, 4 >= 5 *new_listToMaybe0(wx31, Zero, Succ(wx330), wx34, wx35, wx36) -> new_listToMaybe2(wx31, wx34, wx35, wx36) The graph contains the following edges 1 >= 1, 4 >= 2, 5 >= 3, 6 >= 4 *new_listToMaybe0(wx31, Succ(wx320), Zero, wx34, :(wx350, wx351), wx36) -> new_listToMaybe1(wx34, wx350, wx351, wx36, wx36) The graph contains the following edges 4 >= 1, 5 > 2, 5 > 3, 6 >= 4, 6 >= 5 ---------------------------------------- (19) YES ---------------------------------------- (20) Obligation: Q DP problem: The TRS P consists of the following rules: new_listToMaybe(Char(Succ(wx411000)), :(wx41110, wx41111), wx18, wx17) -> new_listToMaybe(wx41110, wx41111, new_primPlusNat(wx18), new_primPlusNat(wx18)) The TRS R consists of the following rules: new_primPlusNat(Succ(wx180)) -> Succ(Succ(new_primPlusNat0(wx180))) new_primPlusNat(Zero) -> Succ(Zero) new_primPlusNat0(Succ(wx1800)) -> Succ(wx1800) new_primPlusNat0(Zero) -> Zero The set Q consists of the following terms: new_primPlusNat(Succ(x0)) new_primPlusNat0(Zero) new_primPlusNat0(Succ(x0)) new_primPlusNat(Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (21) QDPSizeChangeProof (EQUIVALENT) 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. From the DPs we obtained the following set of size-change graphs: *new_listToMaybe(Char(Succ(wx411000)), :(wx41110, wx41111), wx18, wx17) -> new_listToMaybe(wx41110, wx41111, new_primPlusNat(wx18), new_primPlusNat(wx18)) The graph contains the following edges 2 > 1, 2 > 2 ---------------------------------------- (22) YES