YES proof of SK90_2.43.trs # AProVE Commit ID: c69e44bd14796315568835c1ffa2502984884775 jera 20211004 unpublished Termination w.r.t. Q of the given QTRS could be proven: (0) QTRS (1) QTRSRRRProof [EQUIVALENT, 72 ms] (2) QTRS (3) RisEmptyProof [EQUIVALENT, 0 ms] (4) YES ---------------------------------------- (0) Obligation: Q restricted rewrite system: The TRS R consists of the following rules: merge(nil, y) -> y merge(x, nil) -> x merge(.(x, y), .(u, v)) -> if(<(x, u), .(x, merge(y, .(u, v))), .(u, merge(.(x, y), v))) ++(nil, y) -> y ++(.(x, y), z) -> .(x, ++(y, z)) if(true, x, y) -> x if(false, x, y) -> x Q is empty. ---------------------------------------- (1) QTRSRRRProof (EQUIVALENT) Used ordering: Quasi precedence: [merge_2, <_2] > [._2, if_3] nil > [._2, if_3] ++_2 > [._2, if_3] true > [._2, if_3] false > [._2, if_3] Status: merge_2: [1,2] nil: multiset status ._2: [1,2] if_3: [2,1,3] <_2: [1,2] ++_2: multiset status true: multiset status false: multiset status With this ordering the following rules can be removed by the rule removal processor [LPAR04] because they are oriented strictly: merge(nil, y) -> y merge(x, nil) -> x merge(.(x, y), .(u, v)) -> if(<(x, u), .(x, merge(y, .(u, v))), .(u, merge(.(x, y), v))) ++(nil, y) -> y ++(.(x, y), z) -> .(x, ++(y, z)) if(true, x, y) -> x if(false, x, y) -> x ---------------------------------------- (2) Obligation: Q restricted rewrite system: R is empty. Q is empty. ---------------------------------------- (3) RisEmptyProof (EQUIVALENT) The TRS R is empty. Hence, termination is trivially proven. ---------------------------------------- (4) YES