8.27/3.62 NO 10.03/4.11 proof of /export/starexec/sandbox/benchmark/theBenchmark.hs 10.03/4.11 # AProVE Commit ID: 48fb2092695e11cc9f56e44b17a92a5f88ffb256 marcel 20180622 unpublished dirty 10.03/4.11 10.03/4.11 10.03/4.11 H-Termination with start terms of the given HASKELL could be disproven: 10.03/4.11 10.03/4.11 (0) HASKELL 10.03/4.11 (1) BR [EQUIVALENT, 0 ms] 10.03/4.11 (2) HASKELL 10.03/4.11 (3) COR [EQUIVALENT, 0 ms] 10.03/4.11 (4) HASKELL 10.03/4.11 (5) Narrow [COMPLETE, 0 ms] 10.03/4.11 (6) QDP 10.03/4.11 (7) NonTerminationLoopProof [COMPLETE, 0 ms] 10.03/4.11 (8) NO 10.03/4.11 10.03/4.11 10.03/4.11 ---------------------------------------- 10.03/4.11 10.03/4.11 (0) 10.03/4.11 Obligation: 10.03/4.11 mainModule Main 10.03/4.11 module Main where { 10.03/4.11 import qualified Prelude; 10.03/4.11 data MyInt = Pos Main.Nat | Neg Main.Nat ; 10.03/4.11 10.03/4.11 data Main.Nat = Succ Main.Nat | Zero ; 10.03/4.11 10.03/4.11 maxBoundMyInt :: MyInt; 10.03/4.11 maxBoundMyInt = primMaxInt; 10.03/4.11 10.03/4.11 primMaxInt :: MyInt; 10.03/4.11 primMaxInt = primMaxInt; 10.03/4.11 10.03/4.11 } 10.03/4.11 10.03/4.11 ---------------------------------------- 10.03/4.11 10.03/4.11 (1) BR (EQUIVALENT) 10.03/4.11 Replaced joker patterns by fresh variables and removed binding patterns. 10.03/4.11 ---------------------------------------- 10.03/4.11 10.03/4.11 (2) 10.03/4.11 Obligation: 10.03/4.11 mainModule Main 10.03/4.11 module Main where { 10.03/4.11 import qualified Prelude; 10.03/4.11 data MyInt = Pos Main.Nat | Neg Main.Nat ; 10.03/4.11 10.03/4.11 data Main.Nat = Succ Main.Nat | Zero ; 10.03/4.11 10.03/4.11 maxBoundMyInt :: MyInt; 10.03/4.11 maxBoundMyInt = primMaxInt; 10.03/4.11 10.03/4.11 primMaxInt :: MyInt; 10.03/4.11 primMaxInt = primMaxInt; 10.03/4.11 10.03/4.11 } 10.03/4.11 10.03/4.11 ---------------------------------------- 10.03/4.11 10.03/4.11 (3) COR (EQUIVALENT) 10.03/4.11 Cond Reductions: 10.03/4.11 The following Function with conditions 10.03/4.11 "undefined |Falseundefined; 10.03/4.11 " 10.03/4.11 is transformed to 10.03/4.11 "undefined = undefined1; 10.03/4.11 " 10.03/4.11 "undefined0 True = undefined; 10.03/4.11 " 10.03/4.11 "undefined1 = undefined0 False; 10.03/4.11 " 10.03/4.11 10.03/4.11 ---------------------------------------- 10.03/4.11 10.03/4.11 (4) 10.03/4.11 Obligation: 10.03/4.11 mainModule Main 10.03/4.11 module Main where { 10.03/4.11 import qualified Prelude; 10.03/4.11 data MyInt = Pos Main.Nat | Neg Main.Nat ; 10.03/4.11 10.03/4.11 data Main.Nat = Succ Main.Nat | Zero ; 10.03/4.11 10.03/4.11 maxBoundMyInt :: MyInt; 10.03/4.11 maxBoundMyInt = primMaxInt; 10.03/4.11 10.03/4.11 primMaxInt :: MyInt; 10.03/4.11 primMaxInt = primMaxInt; 10.03/4.11 10.03/4.11 } 10.03/4.11 10.03/4.11 ---------------------------------------- 10.03/4.11 10.03/4.11 (5) Narrow (COMPLETE) 10.03/4.11 Haskell To QDPs 10.03/4.11 10.03/4.11 digraph dp_graph { 10.03/4.11 node [outthreshold=100, inthreshold=100];1[label="maxBoundMyInt",fontsize=16,color="black",shape="box"];1 -> 3[label="",style="solid", color="black", weight=3]; 10.03/4.11 3[label="primMaxInt",fontsize=16,color="black",shape="triangle"];3 -> 4[label="",style="solid", color="black", weight=3]; 10.03/4.11 4 -> 3[label="",style="dashed", color="red", weight=0]; 10.03/4.11 4[label="primMaxInt",fontsize=16,color="magenta"];} 10.03/4.11 10.03/4.11 ---------------------------------------- 10.03/4.11 10.03/4.11 (6) 10.03/4.11 Obligation: 10.03/4.11 Q DP problem: 10.03/4.11 The TRS P consists of the following rules: 10.03/4.11 10.03/4.11 new_primMaxInt([]) -> new_primMaxInt([]) 10.03/4.11 10.03/4.11 R is empty. 10.03/4.11 Q is empty. 10.03/4.11 We have to consider all (P,Q,R)-chains. 10.03/4.11 ---------------------------------------- 10.03/4.11 10.03/4.11 (7) NonTerminationLoopProof (COMPLETE) 10.03/4.11 We used the non-termination processor [FROCOS05] to show that the DP problem is infinite. 10.03/4.11 Found a loop by semiunifying a rule from P directly. 10.03/4.11 10.03/4.11 s = new_primMaxInt([]) evaluates to t =new_primMaxInt([]) 10.03/4.11 10.03/4.11 Thus s starts an infinite chain as s semiunifies with t with the following substitutions: 10.03/4.11 * Matcher: [ ] 10.03/4.11 * Semiunifier: [ ] 10.03/4.11 10.03/4.11 -------------------------------------------------------------------------------- 10.03/4.11 Rewriting sequence 10.03/4.11 10.03/4.11 The DP semiunifies directly so there is only one rewrite step from new_primMaxInt([]) to new_primMaxInt([]). 10.03/4.11 10.03/4.11 10.03/4.11 10.03/4.11 10.03/4.11 ---------------------------------------- 10.03/4.11 10.03/4.11 (8) 10.03/4.11 NO 10.17/4.20 EOF