10.30/4.27 YES 12.52/4.87 proof of /export/starexec/sandbox2/benchmark/theBenchmark.hs 12.52/4.87 # AProVE Commit ID: 48fb2092695e11cc9f56e44b17a92a5f88ffb256 marcel 20180622 unpublished dirty 12.52/4.87 12.52/4.87 12.52/4.87 H-Termination with start terms of the given HASKELL could be proven: 12.52/4.87 12.52/4.87 (0) HASKELL 12.52/4.87 (1) IFR [EQUIVALENT, 0 ms] 12.52/4.87 (2) HASKELL 12.52/4.87 (3) BR [EQUIVALENT, 0 ms] 12.52/4.87 (4) HASKELL 12.52/4.87 (5) COR [EQUIVALENT, 0 ms] 12.52/4.87 (6) HASKELL 12.52/4.87 (7) NumRed [SOUND, 8 ms] 12.52/4.87 (8) HASKELL 12.52/4.87 (9) Narrow [SOUND, 0 ms] 12.52/4.87 (10) QDP 12.52/4.87 (11) QDPSizeChangeProof [EQUIVALENT, 0 ms] 12.52/4.87 (12) YES 12.52/4.87 12.52/4.87 12.52/4.87 ---------------------------------------- 12.52/4.87 12.52/4.87 (0) 12.52/4.87 Obligation: 12.52/4.87 mainModule Main 12.52/4.87 module Main where { 12.52/4.87 import qualified Prelude; 12.52/4.87 } 12.52/4.87 12.52/4.87 ---------------------------------------- 12.52/4.87 12.52/4.87 (1) IFR (EQUIVALENT) 12.52/4.87 If Reductions: 12.52/4.87 The following If expression 12.52/4.87 "if b then (showChar '(') . p . showChar ')' else p" 12.52/4.87 is transformed to 12.52/4.87 "showParen0 p True = (showChar '(') . p . showChar ')'; 12.52/4.87 showParen0 p False = p; 12.52/4.87 " 12.52/4.87 12.52/4.87 ---------------------------------------- 12.52/4.87 12.52/4.87 (2) 12.52/4.87 Obligation: 12.52/4.87 mainModule Main 12.52/4.87 module Main where { 12.52/4.87 import qualified Prelude; 12.52/4.87 } 12.52/4.87 12.52/4.87 ---------------------------------------- 12.52/4.87 12.52/4.87 (3) BR (EQUIVALENT) 12.52/4.87 Replaced joker patterns by fresh variables and removed binding patterns. 12.52/4.87 ---------------------------------------- 12.52/4.87 12.52/4.87 (4) 12.52/4.87 Obligation: 12.52/4.87 mainModule Main 12.52/4.87 module Main where { 12.52/4.87 import qualified Prelude; 12.52/4.87 } 12.52/4.87 12.52/4.87 ---------------------------------------- 12.52/4.87 12.52/4.87 (5) COR (EQUIVALENT) 12.52/4.87 Cond Reductions: 12.52/4.87 The following Function with conditions 12.52/4.87 "undefined |Falseundefined; 12.52/4.87 " 12.52/4.87 is transformed to 12.52/4.87 "undefined = undefined1; 12.52/4.87 " 12.52/4.87 "undefined0 True = undefined; 12.52/4.87 " 12.52/4.87 "undefined1 = undefined0 False; 12.52/4.87 " 12.52/4.87 12.52/4.87 ---------------------------------------- 12.52/4.87 12.52/4.87 (6) 12.52/4.87 Obligation: 12.52/4.87 mainModule Main 12.52/4.87 module Main where { 12.52/4.87 import qualified Prelude; 12.52/4.87 } 12.52/4.87 12.52/4.87 ---------------------------------------- 12.52/4.87 12.52/4.87 (7) NumRed (SOUND) 12.52/4.87 Num Reduction:All numbers are transformed to their corresponding representation with Succ, Pred and Zero. 12.52/4.87 ---------------------------------------- 12.52/4.87 12.52/4.87 (8) 12.52/4.87 Obligation: 12.52/4.87 mainModule Main 12.52/4.87 module Main where { 12.52/4.87 import qualified Prelude; 12.52/4.87 } 12.52/4.87 12.52/4.87 ---------------------------------------- 12.52/4.87 12.52/4.87 (9) Narrow (SOUND) 12.52/4.87 Haskell To QDPs 12.52/4.87 12.52/4.87 digraph dp_graph { 12.52/4.87 node [outthreshold=100, inthreshold=100];1[label="showsPrec",fontsize=16,color="grey",shape="box"];1 -> 3[label="",style="dashed", color="grey", weight=3]; 12.52/4.87 3[label="showsPrec vx3",fontsize=16,color="grey",shape="box"];3 -> 4[label="",style="dashed", color="grey", weight=3]; 12.52/4.87 4[label="showsPrec vx3 vx4",fontsize=16,color="grey",shape="box"];4 -> 5[label="",style="dashed", color="grey", weight=3]; 12.52/4.87 5[label="showsPrec vx3 vx4 vx5",fontsize=16,color="burlywood",shape="triangle"];160[label="vx4/LT",fontsize=10,color="white",style="solid",shape="box"];5 -> 160[label="",style="solid", color="burlywood", weight=9]; 12.52/4.87 160 -> 6[label="",style="solid", color="burlywood", weight=3]; 12.52/4.87 161[label="vx4/EQ",fontsize=10,color="white",style="solid",shape="box"];5 -> 161[label="",style="solid", color="burlywood", weight=9]; 12.52/4.87 161 -> 7[label="",style="solid", color="burlywood", weight=3]; 12.52/4.87 162[label="vx4/GT",fontsize=10,color="white",style="solid",shape="box"];5 -> 162[label="",style="solid", color="burlywood", weight=9]; 12.52/4.87 162 -> 8[label="",style="solid", color="burlywood", weight=3]; 12.52/4.87 6[label="showsPrec vx3 LT vx5",fontsize=16,color="black",shape="box"];6 -> 9[label="",style="solid", color="black", weight=3]; 12.52/4.87 7[label="showsPrec vx3 EQ vx5",fontsize=16,color="black",shape="box"];7 -> 10[label="",style="solid", color="black", weight=3]; 12.52/4.87 8[label="showsPrec vx3 GT vx5",fontsize=16,color="black",shape="box"];8 -> 11[label="",style="solid", color="black", weight=3]; 12.52/4.87 9 -> 67[label="",style="dashed", color="red", weight=0]; 12.52/4.87 9[label="showParen (vx3 > Pos (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ Zero))))))))))) (showString (Char (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ Zero)))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) : Char (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ Zero)))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) : Char (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ Zero)))))))))))))))))))))))))))))))) : [])) vx5",fontsize=16,color="magenta"];9 -> 68[label="",style="dashed", color="magenta", weight=3]; 12.52/4.87 9 -> 69[label="",style="dashed", color="magenta", weight=3]; 12.52/4.87 9 -> 70[label="",style="dashed", color="magenta", weight=3]; 12.52/4.87 9 -> 71[label="",style="dashed", color="magenta", weight=3]; 12.52/4.87 9 -> 72[label="",style="dashed", color="magenta", weight=3]; 12.52/4.87 9 -> 73[label="",style="dashed", color="magenta", weight=3]; 12.52/4.87 10 -> 67[label="",style="dashed", color="red", weight=0]; 12.52/4.87 10[label="showParen (vx3 > Pos (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ Zero))))))))))) (showString (Char (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ Zero))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) : Char (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ Zero))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) : Char (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ Zero)))))))))))))))))))))))))))))))) : [])) vx5",fontsize=16,color="magenta"];10 -> 74[label="",style="dashed", color="magenta", weight=3]; 12.52/4.87 10 -> 75[label="",style="dashed", color="magenta", weight=3]; 12.52/4.87 10 -> 76[label="",style="dashed", color="magenta", weight=3]; 12.52/4.87 10 -> 77[label="",style="dashed", color="magenta", weight=3]; 12.52/4.87 10 -> 78[label="",style="dashed", color="magenta", weight=3]; 12.52/4.87 10 -> 79[label="",style="dashed", color="magenta", weight=3]; 12.52/4.87 11 -> 67[label="",style="dashed", color="red", weight=0]; 12.52/4.87 11[label="showParen (vx3 > Pos (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ Zero))))))))))) (showString (Char (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ Zero))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) : Char (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ Zero)))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) : Char (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ Zero)))))))))))))))))))))))))))))))) : [])) vx5",fontsize=16,color="magenta"];11 -> 80[label="",style="dashed", color="magenta", weight=3]; 12.52/4.87 11 -> 81[label="",style="dashed", color="magenta", weight=3]; 12.52/4.87 11 -> 82[label="",style="dashed", color="magenta", weight=3]; 12.52/4.87 11 -> 83[label="",style="dashed", color="magenta", weight=3]; 12.52/4.87 11 -> 84[label="",style="dashed", color="magenta", weight=3]; 12.52/4.87 11 -> 85[label="",style="dashed", color="magenta", weight=3]; 12.52/4.87 68[label="vx3",fontsize=16,color="green",shape="box"];69[label="Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ Zero))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))",fontsize=16,color="green",shape="box"];70[label="Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ Zero))))))))",fontsize=16,color="green",shape="box"];71[label="vx5",fontsize=16,color="green",shape="box"];72[label="Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ Zero))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))",fontsize=16,color="green",shape="box"];73[label="Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ Zero))))))))))))))))))))))))))))))",fontsize=16,color="green",shape="box"];67[label="showParen (vx30 > Pos (Succ vx31)) (showString (Char (Succ vx32) : Char (Succ vx33) : Char (Succ vx34) : [])) vx35",fontsize=16,color="black",shape="triangle"];67 -> 92[label="",style="solid", color="black", weight=3]; 12.52/4.87 74[label="vx3",fontsize=16,color="green",shape="box"];75[label="Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ Zero)))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))",fontsize=16,color="green",shape="box"];76[label="Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ Zero))))))))",fontsize=16,color="green",shape="box"];77[label="vx5",fontsize=16,color="green",shape="box"];78[label="Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ Zero)))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))",fontsize=16,color="green",shape="box"];79[label="Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ Zero))))))))))))))))))))))))))))))",fontsize=16,color="green",shape="box"];80[label="vx3",fontsize=16,color="green",shape="box"];81[label="Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ Zero)))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))",fontsize=16,color="green",shape="box"];82[label="Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ Zero))))))))",fontsize=16,color="green",shape="box"];83[label="vx5",fontsize=16,color="green",shape="box"];84[label="Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ Zero))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))",fontsize=16,color="green",shape="box"];85[label="Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ Zero))))))))))))))))))))))))))))))",fontsize=16,color="green",shape="box"];92[label="showParen0 (showString (Char (Succ vx32) : Char (Succ vx33) : Char (Succ vx34) : [])) (vx30 > Pos (Succ vx31)) vx35",fontsize=16,color="black",shape="box"];92 -> 93[label="",style="solid", color="black", weight=3]; 12.52/4.87 93[label="showParen0 (showString (Char (Succ vx32) : Char (Succ vx33) : Char (Succ vx34) : [])) (compare vx30 (Pos (Succ vx31)) == GT) vx35",fontsize=16,color="black",shape="box"];93 -> 94[label="",style="solid", color="black", weight=3]; 12.52/4.87 94[label="showParen0 (showString (Char (Succ vx32) : Char (Succ vx33) : Char (Succ vx34) : [])) (primCmpInt vx30 (Pos (Succ vx31)) == GT) vx35",fontsize=16,color="burlywood",shape="box"];163[label="vx30/Pos vx300",fontsize=10,color="white",style="solid",shape="box"];94 -> 163[label="",style="solid", color="burlywood", weight=9]; 12.52/4.87 163 -> 95[label="",style="solid", color="burlywood", weight=3]; 12.52/4.87 164[label="vx30/Neg vx300",fontsize=10,color="white",style="solid",shape="box"];94 -> 164[label="",style="solid", color="burlywood", weight=9]; 12.52/4.87 164 -> 96[label="",style="solid", color="burlywood", weight=3]; 12.52/4.87 95[label="showParen0 (showString (Char (Succ vx32) : Char (Succ vx33) : Char (Succ vx34) : [])) (primCmpInt (Pos vx300) (Pos (Succ vx31)) == GT) vx35",fontsize=16,color="burlywood",shape="box"];165[label="vx300/Succ vx3000",fontsize=10,color="white",style="solid",shape="box"];95 -> 165[label="",style="solid", color="burlywood", weight=9]; 12.52/4.87 165 -> 97[label="",style="solid", color="burlywood", weight=3]; 12.52/4.87 166[label="vx300/Zero",fontsize=10,color="white",style="solid",shape="box"];95 -> 166[label="",style="solid", color="burlywood", weight=9]; 12.52/4.87 166 -> 98[label="",style="solid", color="burlywood", weight=3]; 12.52/4.87 96[label="showParen0 (showString (Char (Succ vx32) : Char (Succ vx33) : Char (Succ vx34) : [])) (primCmpInt (Neg vx300) (Pos (Succ vx31)) == GT) vx35",fontsize=16,color="burlywood",shape="box"];167[label="vx300/Succ vx3000",fontsize=10,color="white",style="solid",shape="box"];96 -> 167[label="",style="solid", color="burlywood", weight=9]; 12.52/4.87 167 -> 99[label="",style="solid", color="burlywood", weight=3]; 12.52/4.87 168[label="vx300/Zero",fontsize=10,color="white",style="solid",shape="box"];96 -> 168[label="",style="solid", color="burlywood", weight=9]; 12.52/4.87 168 -> 100[label="",style="solid", color="burlywood", weight=3]; 12.52/4.87 97[label="showParen0 (showString (Char (Succ vx32) : Char (Succ vx33) : Char (Succ vx34) : [])) (primCmpInt (Pos (Succ vx3000)) (Pos (Succ vx31)) == GT) vx35",fontsize=16,color="black",shape="box"];97 -> 101[label="",style="solid", color="black", weight=3]; 12.52/4.87 98[label="showParen0 (showString (Char (Succ vx32) : Char (Succ vx33) : Char (Succ vx34) : [])) (primCmpInt (Pos Zero) (Pos (Succ vx31)) == GT) vx35",fontsize=16,color="black",shape="box"];98 -> 102[label="",style="solid", color="black", weight=3]; 12.52/4.87 99[label="showParen0 (showString (Char (Succ vx32) : Char (Succ vx33) : Char (Succ vx34) : [])) (primCmpInt (Neg (Succ vx3000)) (Pos (Succ vx31)) == GT) vx35",fontsize=16,color="black",shape="box"];99 -> 103[label="",style="solid", color="black", weight=3]; 12.52/4.87 100[label="showParen0 (showString (Char (Succ vx32) : Char (Succ vx33) : Char (Succ vx34) : [])) (primCmpInt (Neg Zero) (Pos (Succ vx31)) == GT) vx35",fontsize=16,color="black",shape="box"];100 -> 104[label="",style="solid", color="black", weight=3]; 12.52/4.87 101[label="showParen0 (showString (Char (Succ vx32) : Char (Succ vx33) : Char (Succ vx34) : [])) (primCmpNat (Succ vx3000) (Succ vx31) == GT) vx35",fontsize=16,color="black",shape="box"];101 -> 105[label="",style="solid", color="black", weight=3]; 12.52/4.87 102[label="showParen0 (showString (Char (Succ vx32) : Char (Succ vx33) : Char (Succ vx34) : [])) (primCmpNat Zero (Succ vx31) == GT) vx35",fontsize=16,color="black",shape="box"];102 -> 106[label="",style="solid", color="black", weight=3]; 12.52/4.87 103[label="showParen0 (showString (Char (Succ vx32) : Char (Succ vx33) : Char (Succ vx34) : [])) (LT == GT) vx35",fontsize=16,color="black",shape="triangle"];103 -> 107[label="",style="solid", color="black", weight=3]; 12.52/4.87 104 -> 103[label="",style="dashed", color="red", weight=0]; 12.52/4.87 104[label="showParen0 (showString (Char (Succ vx32) : Char (Succ vx33) : Char (Succ vx34) : [])) (LT == GT) vx35",fontsize=16,color="magenta"];105[label="showParen0 (showString (Char (Succ vx32) : Char (Succ vx33) : Char (Succ vx34) : [])) (primCmpNat vx3000 vx31 == GT) vx35",fontsize=16,color="burlywood",shape="triangle"];169[label="vx3000/Succ vx30000",fontsize=10,color="white",style="solid",shape="box"];105 -> 169[label="",style="solid", color="burlywood", weight=9]; 12.52/4.87 169 -> 108[label="",style="solid", color="burlywood", weight=3]; 12.52/4.87 170[label="vx3000/Zero",fontsize=10,color="white",style="solid",shape="box"];105 -> 170[label="",style="solid", color="burlywood", weight=9]; 12.52/4.87 170 -> 109[label="",style="solid", color="burlywood", weight=3]; 12.52/4.87 106 -> 103[label="",style="dashed", color="red", weight=0]; 12.52/4.87 106[label="showParen0 (showString (Char (Succ vx32) : Char (Succ vx33) : Char (Succ vx34) : [])) (LT == GT) vx35",fontsize=16,color="magenta"];107[label="showParen0 (showString (Char (Succ vx32) : Char (Succ vx33) : Char (Succ vx34) : [])) False vx35",fontsize=16,color="black",shape="triangle"];107 -> 110[label="",style="solid", color="black", weight=3]; 12.52/4.87 108[label="showParen0 (showString (Char (Succ vx32) : Char (Succ vx33) : Char (Succ vx34) : [])) (primCmpNat (Succ vx30000) vx31 == GT) vx35",fontsize=16,color="burlywood",shape="box"];171[label="vx31/Succ vx310",fontsize=10,color="white",style="solid",shape="box"];108 -> 171[label="",style="solid", color="burlywood", weight=9]; 12.52/4.87 171 -> 111[label="",style="solid", color="burlywood", weight=3]; 12.52/4.87 172[label="vx31/Zero",fontsize=10,color="white",style="solid",shape="box"];108 -> 172[label="",style="solid", color="burlywood", weight=9]; 12.52/4.87 172 -> 112[label="",style="solid", color="burlywood", weight=3]; 12.52/4.87 109[label="showParen0 (showString (Char (Succ vx32) : Char (Succ vx33) : Char (Succ vx34) : [])) (primCmpNat Zero vx31 == GT) vx35",fontsize=16,color="burlywood",shape="box"];173[label="vx31/Succ vx310",fontsize=10,color="white",style="solid",shape="box"];109 -> 173[label="",style="solid", color="burlywood", weight=9]; 12.52/4.87 173 -> 113[label="",style="solid", color="burlywood", weight=3]; 12.52/4.87 174[label="vx31/Zero",fontsize=10,color="white",style="solid",shape="box"];109 -> 174[label="",style="solid", color="burlywood", weight=9]; 12.52/4.87 174 -> 114[label="",style="solid", color="burlywood", weight=3]; 12.52/4.87 110[label="showString (Char (Succ vx32) : Char (Succ vx33) : Char (Succ vx34) : []) vx35",fontsize=16,color="black",shape="triangle"];110 -> 115[label="",style="solid", color="black", weight=3]; 12.52/4.87 111[label="showParen0 (showString (Char (Succ vx32) : Char (Succ vx33) : Char (Succ vx34) : [])) (primCmpNat (Succ vx30000) (Succ vx310) == GT) vx35",fontsize=16,color="black",shape="box"];111 -> 116[label="",style="solid", color="black", weight=3]; 12.52/4.87 112[label="showParen0 (showString (Char (Succ vx32) : Char (Succ vx33) : Char (Succ vx34) : [])) (primCmpNat (Succ vx30000) Zero == GT) vx35",fontsize=16,color="black",shape="box"];112 -> 117[label="",style="solid", color="black", weight=3]; 12.52/4.87 113[label="showParen0 (showString (Char (Succ vx32) : Char (Succ vx33) : Char (Succ vx34) : [])) (primCmpNat Zero (Succ vx310) == GT) vx35",fontsize=16,color="black",shape="box"];113 -> 118[label="",style="solid", color="black", weight=3]; 12.52/4.87 114[label="showParen0 (showString (Char (Succ vx32) : Char (Succ vx33) : Char (Succ vx34) : [])) (primCmpNat Zero Zero == GT) vx35",fontsize=16,color="black",shape="box"];114 -> 119[label="",style="solid", color="black", weight=3]; 12.52/4.87 115[label="(++) (Char (Succ vx32) : Char (Succ vx33) : Char (Succ vx34) : []) vx35",fontsize=16,color="black",shape="box"];115 -> 120[label="",style="solid", color="black", weight=3]; 12.52/4.87 116 -> 105[label="",style="dashed", color="red", weight=0]; 12.52/4.87 116[label="showParen0 (showString (Char (Succ vx32) : Char (Succ vx33) : Char (Succ vx34) : [])) (primCmpNat vx30000 vx310 == GT) vx35",fontsize=16,color="magenta"];116 -> 121[label="",style="dashed", color="magenta", weight=3]; 12.52/4.87 116 -> 122[label="",style="dashed", color="magenta", weight=3]; 12.52/4.87 117[label="showParen0 (showString (Char (Succ vx32) : Char (Succ vx33) : Char (Succ vx34) : [])) (GT == GT) vx35",fontsize=16,color="black",shape="box"];117 -> 123[label="",style="solid", color="black", weight=3]; 12.52/4.87 118 -> 103[label="",style="dashed", color="red", weight=0]; 12.52/4.87 118[label="showParen0 (showString (Char (Succ vx32) : Char (Succ vx33) : Char (Succ vx34) : [])) (LT == GT) vx35",fontsize=16,color="magenta"];119[label="showParen0 (showString (Char (Succ vx32) : Char (Succ vx33) : Char (Succ vx34) : [])) (EQ == GT) vx35",fontsize=16,color="black",shape="box"];119 -> 124[label="",style="solid", color="black", weight=3]; 12.52/4.87 120[label="Char (Succ vx32) : (Char (Succ vx33) : Char (Succ vx34) : []) ++ vx35",fontsize=16,color="green",shape="box"];120 -> 125[label="",style="dashed", color="green", weight=3]; 12.52/4.87 121[label="vx30000",fontsize=16,color="green",shape="box"];122[label="vx310",fontsize=16,color="green",shape="box"];123[label="showParen0 (showString (Char (Succ vx32) : Char (Succ vx33) : Char (Succ vx34) : [])) True vx35",fontsize=16,color="black",shape="box"];123 -> 126[label="",style="solid", color="black", weight=3]; 12.52/4.87 124 -> 107[label="",style="dashed", color="red", weight=0]; 12.52/4.87 124[label="showParen0 (showString (Char (Succ vx32) : Char (Succ vx33) : Char (Succ vx34) : [])) False vx35",fontsize=16,color="magenta"];125[label="(Char (Succ vx33) : Char (Succ vx34) : []) ++ vx35",fontsize=16,color="black",shape="box"];125 -> 127[label="",style="solid", color="black", weight=3]; 12.52/4.87 126 -> 135[label="",style="dashed", color="red", weight=0]; 12.52/4.87 126[label="(showChar (Char (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ Zero)))))))))))))))))))))))))))))))))))))))))) . (showString (Char (Succ vx32) : Char (Succ vx33) : Char (Succ vx34) : [])) . showChar (Char (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ Zero))))))))))))))))))))))))))))))))))))))))))",fontsize=16,color="magenta"];126 -> 136[label="",style="dashed", color="magenta", weight=3]; 12.52/4.87 126 -> 137[label="",style="dashed", color="magenta", weight=3]; 12.52/4.87 126 -> 138[label="",style="dashed", color="magenta", weight=3]; 12.52/4.87 126 -> 139[label="",style="dashed", color="magenta", weight=3]; 12.52/4.87 126 -> 140[label="",style="dashed", color="magenta", weight=3]; 12.52/4.87 126 -> 141[label="",style="dashed", color="magenta", weight=3]; 12.52/4.87 127[label="Char (Succ vx33) : (Char (Succ vx34) : []) ++ vx35",fontsize=16,color="green",shape="box"];127 -> 134[label="",style="dashed", color="green", weight=3]; 12.52/4.87 136[label="vx34",fontsize=16,color="green",shape="box"];137[label="vx33",fontsize=16,color="green",shape="box"];138[label="Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ Zero)))))))))))))))))))))))))))))))))))))))",fontsize=16,color="green",shape="box"];139[label="Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ Zero))))))))))))))))))))))))))))))))))))))",fontsize=16,color="green",shape="box"];140[label="vx35",fontsize=16,color="green",shape="box"];141[label="vx32",fontsize=16,color="green",shape="box"];135[label="(showChar (Char (Succ vx43))) . (showString (Char (Succ vx44) : Char (Succ vx45) : Char (Succ vx46) : [])) . showChar (Char (Succ vx47))",fontsize=16,color="black",shape="triangle"];135 -> 148[label="",style="solid", color="black", weight=3]; 12.52/4.87 134[label="(Char (Succ vx34) : []) ++ vx35",fontsize=16,color="black",shape="box"];134 -> 149[label="",style="solid", color="black", weight=3]; 12.52/4.87 148[label="showChar (Char (Succ vx43)) ((showString (Char (Succ vx44) : Char (Succ vx45) : Char (Succ vx46) : [])) . showChar (Char (Succ vx47)))",fontsize=16,color="black",shape="box"];148 -> 150[label="",style="solid", color="black", weight=3]; 12.52/4.87 149[label="Char (Succ vx34) : [] ++ vx35",fontsize=16,color="green",shape="box"];149 -> 151[label="",style="dashed", color="green", weight=3]; 12.52/4.87 150[label="(:) Char (Succ vx43) (showString (Char (Succ vx44) : Char (Succ vx45) : Char (Succ vx46) : [])) . showChar (Char (Succ vx47))",fontsize=16,color="green",shape="box"];150 -> 152[label="",style="dashed", color="green", weight=3]; 12.52/4.87 151[label="[] ++ vx35",fontsize=16,color="black",shape="box"];151 -> 153[label="",style="solid", color="black", weight=3]; 12.52/4.87 152[label="(showString (Char (Succ vx44) : Char (Succ vx45) : Char (Succ vx46) : [])) . showChar (Char (Succ vx47))",fontsize=16,color="black",shape="box"];152 -> 154[label="",style="solid", color="black", weight=3]; 12.52/4.87 153[label="vx35",fontsize=16,color="green",shape="box"];154 -> 110[label="",style="dashed", color="red", weight=0]; 12.52/4.87 154[label="showString (Char (Succ vx44) : Char (Succ vx45) : Char (Succ vx46) : []) (showChar (Char (Succ vx47)) vx48)",fontsize=16,color="magenta"];154 -> 155[label="",style="dashed", color="magenta", weight=3]; 12.52/4.87 154 -> 156[label="",style="dashed", color="magenta", weight=3]; 12.52/4.87 154 -> 157[label="",style="dashed", color="magenta", weight=3]; 12.52/4.87 154 -> 158[label="",style="dashed", color="magenta", weight=3]; 12.52/4.87 155[label="vx44",fontsize=16,color="green",shape="box"];156[label="showChar (Char (Succ vx47)) vx48",fontsize=16,color="black",shape="box"];156 -> 159[label="",style="solid", color="black", weight=3]; 12.52/4.87 157[label="vx45",fontsize=16,color="green",shape="box"];158[label="vx46",fontsize=16,color="green",shape="box"];159[label="(:) Char (Succ vx47) vx48",fontsize=16,color="green",shape="box"];} 12.52/4.87 12.52/4.87 ---------------------------------------- 12.52/4.87 12.52/4.87 (10) 12.52/4.87 Obligation: 12.52/4.87 Q DP problem: 12.52/4.87 The TRS P consists of the following rules: 12.52/4.87 12.52/4.87 new_showParen0(vx32, vx33, vx34, Succ(vx30000), Succ(vx310), vx35) -> new_showParen0(vx32, vx33, vx34, vx30000, vx310, vx35) 12.52/4.87 12.52/4.87 R is empty. 12.52/4.87 Q is empty. 12.52/4.87 We have to consider all minimal (P,Q,R)-chains. 12.52/4.87 ---------------------------------------- 12.52/4.87 12.52/4.87 (11) QDPSizeChangeProof (EQUIVALENT) 12.52/4.87 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. 12.52/4.87 12.52/4.87 From the DPs we obtained the following set of size-change graphs: 12.52/4.87 *new_showParen0(vx32, vx33, vx34, Succ(vx30000), Succ(vx310), vx35) -> new_showParen0(vx32, vx33, vx34, vx30000, vx310, vx35) 12.52/4.87 The graph contains the following edges 1 >= 1, 2 >= 2, 3 >= 3, 4 > 4, 5 > 5, 6 >= 6 12.52/4.87 12.52/4.87 12.52/4.87 ---------------------------------------- 12.52/4.87 12.52/4.87 (12) 12.52/4.87 YES 12.52/4.90 EOF