MAYBE Problem: active(f(f(a()))) -> mark(c(f(g(f(a()))))) active(f(X)) -> f(active(X)) active(g(X)) -> g(active(X)) f(mark(X)) -> mark(f(X)) g(mark(X)) -> mark(g(X)) proper(f(X)) -> f(proper(X)) proper(a()) -> ok(a()) proper(c(X)) -> c(proper(X)) proper(g(X)) -> g(proper(X)) f(ok(X)) -> ok(f(X)) c(ok(X)) -> ok(c(X)) g(ok(X)) -> ok(g(X)) top(mark(X)) -> top(proper(X)) top(ok(X)) -> top(active(X)) Proof: DP Processor: DPs: active#(f(f(a()))) -> g#(f(a())) active#(f(f(a()))) -> f#(g(f(a()))) active#(f(f(a()))) -> c#(f(g(f(a())))) active#(f(X)) -> active#(X) active#(f(X)) -> f#(active(X)) active#(g(X)) -> active#(X) active#(g(X)) -> g#(active(X)) f#(mark(X)) -> f#(X) g#(mark(X)) -> g#(X) proper#(f(X)) -> proper#(X) proper#(f(X)) -> f#(proper(X)) proper#(c(X)) -> proper#(X) proper#(c(X)) -> c#(proper(X)) proper#(g(X)) -> proper#(X) proper#(g(X)) -> g#(proper(X)) f#(ok(X)) -> f#(X) c#(ok(X)) -> c#(X) g#(ok(X)) -> g#(X) top#(mark(X)) -> proper#(X) top#(mark(X)) -> top#(proper(X)) top#(ok(X)) -> active#(X) top#(ok(X)) -> top#(active(X)) TRS: active(f(f(a()))) -> mark(c(f(g(f(a()))))) active(f(X)) -> f(active(X)) active(g(X)) -> g(active(X)) f(mark(X)) -> mark(f(X)) g(mark(X)) -> mark(g(X)) proper(f(X)) -> f(proper(X)) proper(a()) -> ok(a()) proper(c(X)) -> c(proper(X)) proper(g(X)) -> g(proper(X)) f(ok(X)) -> ok(f(X)) c(ok(X)) -> ok(c(X)) g(ok(X)) -> ok(g(X)) top(mark(X)) -> top(proper(X)) top(ok(X)) -> top(active(X)) Usable Rule Processor: DPs: active#(f(f(a()))) -> g#(f(a())) active#(f(f(a()))) -> f#(g(f(a()))) active#(f(f(a()))) -> c#(f(g(f(a())))) active#(f(X)) -> active#(X) active#(f(X)) -> f#(active(X)) active#(g(X)) -> active#(X) active#(g(X)) -> g#(active(X)) f#(mark(X)) -> f#(X) g#(mark(X)) -> g#(X) proper#(f(X)) -> proper#(X) proper#(f(X)) -> f#(proper(X)) proper#(c(X)) -> proper#(X) proper#(c(X)) -> c#(proper(X)) proper#(g(X)) -> proper#(X) proper#(g(X)) -> g#(proper(X)) f#(ok(X)) -> f#(X) c#(ok(X)) -> c#(X) g#(ok(X)) -> g#(X) top#(mark(X)) -> proper#(X) top#(mark(X)) -> top#(proper(X)) top#(ok(X)) -> active#(X) top#(ok(X)) -> top#(active(X)) TRS: active(f(f(a()))) -> mark(c(f(g(f(a()))))) active(f(X)) -> f(active(X)) active(g(X)) -> g(active(X)) f(mark(X)) -> mark(f(X)) f(ok(X)) -> ok(f(X)) g(mark(X)) -> mark(g(X)) g(ok(X)) -> ok(g(X)) proper(f(X)) -> f(proper(X)) proper(a()) -> ok(a()) proper(c(X)) -> c(proper(X)) proper(g(X)) -> g(proper(X)) c(ok(X)) -> ok(c(X)) TDG Processor: DPs: active#(f(f(a()))) -> g#(f(a())) active#(f(f(a()))) -> f#(g(f(a()))) active#(f(f(a()))) -> c#(f(g(f(a())))) active#(f(X)) -> active#(X) active#(f(X)) -> f#(active(X)) active#(g(X)) -> active#(X) active#(g(X)) -> g#(active(X)) f#(mark(X)) -> f#(X) g#(mark(X)) -> g#(X) proper#(f(X)) -> proper#(X) proper#(f(X)) -> f#(proper(X)) proper#(c(X)) -> proper#(X) proper#(c(X)) -> c#(proper(X)) proper#(g(X)) -> proper#(X) proper#(g(X)) -> g#(proper(X)) f#(ok(X)) -> f#(X) c#(ok(X)) -> c#(X) g#(ok(X)) -> g#(X) top#(mark(X)) -> proper#(X) top#(mark(X)) -> top#(proper(X)) top#(ok(X)) -> active#(X) top#(ok(X)) -> top#(active(X)) TRS: active(f(f(a()))) -> mark(c(f(g(f(a()))))) active(f(X)) -> f(active(X)) active(g(X)) -> g(active(X)) f(mark(X)) -> mark(f(X)) f(ok(X)) -> ok(f(X)) g(mark(X)) -> mark(g(X)) g(ok(X)) -> ok(g(X)) proper(f(X)) -> f(proper(X)) proper(a()) -> ok(a()) proper(c(X)) -> c(proper(X)) proper(g(X)) -> g(proper(X)) c(ok(X)) -> ok(c(X)) graph: top#(ok(X)) -> top#(active(X)) -> top#(ok(X)) -> top#(active(X)) top#(ok(X)) -> top#(active(X)) -> top#(ok(X)) -> active#(X) top#(ok(X)) -> top#(active(X)) -> top#(mark(X)) -> top#(proper(X)) top#(ok(X)) -> top#(active(X)) -> top#(mark(X)) -> proper#(X) top#(ok(X)) -> active#(X) -> active#(g(X)) -> g#(active(X)) top#(ok(X)) -> active#(X) -> active#(g(X)) -> active#(X) top#(ok(X)) -> active#(X) -> active#(f(X)) -> f#(active(X)) top#(ok(X)) -> active#(X) -> active#(f(X)) -> active#(X) top#(ok(X)) -> active#(X) -> active#(f(f(a()))) -> c#(f(g(f(a())))) top#(ok(X)) -> active#(X) -> active#(f(f(a()))) -> f#(g(f(a()))) top#(ok(X)) -> active#(X) -> active#(f(f(a()))) -> g#(f(a())) top#(mark(X)) -> top#(proper(X)) -> top#(ok(X)) -> top#(active(X)) top#(mark(X)) -> top#(proper(X)) -> top#(ok(X)) -> active#(X) top#(mark(X)) -> top#(proper(X)) -> top#(mark(X)) -> top#(proper(X)) top#(mark(X)) -> top#(proper(X)) -> top#(mark(X)) -> proper#(X) top#(mark(X)) -> proper#(X) -> proper#(g(X)) -> g#(proper(X)) top#(mark(X)) -> proper#(X) -> proper#(g(X)) -> proper#(X) top#(mark(X)) -> proper#(X) -> proper#(c(X)) -> c#(proper(X)) top#(mark(X)) -> proper#(X) -> proper#(c(X)) -> proper#(X) top#(mark(X)) -> proper#(X) -> proper#(f(X)) -> f#(proper(X)) top#(mark(X)) -> proper#(X) -> proper#(f(X)) -> proper#(X) proper#(c(X)) -> proper#(X) -> proper#(g(X)) -> g#(proper(X)) proper#(c(X)) -> proper#(X) -> proper#(g(X)) -> proper#(X) proper#(c(X)) -> proper#(X) -> proper#(c(X)) -> c#(proper(X)) proper#(c(X)) -> proper#(X) -> proper#(c(X)) -> proper#(X) proper#(c(X)) -> proper#(X) -> proper#(f(X)) -> f#(proper(X)) proper#(c(X)) -> proper#(X) -> proper#(f(X)) -> proper#(X) proper#(c(X)) -> c#(proper(X)) -> c#(ok(X)) -> c#(X) proper#(g(X)) -> proper#(X) -> proper#(g(X)) -> g#(proper(X)) proper#(g(X)) -> proper#(X) -> proper#(g(X)) -> proper#(X) proper#(g(X)) -> proper#(X) -> proper#(c(X)) -> c#(proper(X)) proper#(g(X)) -> proper#(X) -> proper#(c(X)) -> proper#(X) proper#(g(X)) -> proper#(X) -> proper#(f(X)) -> f#(proper(X)) proper#(g(X)) -> proper#(X) -> proper#(f(X)) -> proper#(X) proper#(g(X)) -> g#(proper(X)) -> g#(ok(X)) -> g#(X) proper#(g(X)) -> g#(proper(X)) -> g#(mark(X)) -> g#(X) proper#(f(X)) -> proper#(X) -> proper#(g(X)) -> g#(proper(X)) proper#(f(X)) -> proper#(X) -> proper#(g(X)) -> proper#(X) proper#(f(X)) -> proper#(X) -> proper#(c(X)) -> c#(proper(X)) proper#(f(X)) -> proper#(X) -> proper#(c(X)) -> proper#(X) proper#(f(X)) -> proper#(X) -> proper#(f(X)) -> f#(proper(X)) proper#(f(X)) -> proper#(X) -> proper#(f(X)) -> proper#(X) proper#(f(X)) -> f#(proper(X)) -> f#(ok(X)) -> f#(X) proper#(f(X)) -> f#(proper(X)) -> f#(mark(X)) -> f#(X) c#(ok(X)) -> c#(X) -> c#(ok(X)) -> c#(X) f#(ok(X)) -> f#(X) -> f#(ok(X)) -> f#(X) f#(ok(X)) -> f#(X) -> f#(mark(X)) -> f#(X) f#(mark(X)) -> f#(X) -> f#(ok(X)) -> f#(X) f#(mark(X)) -> f#(X) -> f#(mark(X)) -> f#(X) g#(ok(X)) -> g#(X) -> g#(ok(X)) -> g#(X) g#(ok(X)) -> g#(X) -> g#(mark(X)) -> g#(X) g#(mark(X)) -> g#(X) -> g#(ok(X)) -> g#(X) g#(mark(X)) -> g#(X) -> g#(mark(X)) -> g#(X) active#(g(X)) -> g#(active(X)) -> g#(ok(X)) -> g#(X) active#(g(X)) -> g#(active(X)) -> g#(mark(X)) -> g#(X) active#(g(X)) -> active#(X) -> active#(g(X)) -> g#(active(X)) active#(g(X)) -> active#(X) -> active#(g(X)) -> active#(X) active#(g(X)) -> active#(X) -> active#(f(X)) -> f#(active(X)) active#(g(X)) -> active#(X) -> active#(f(X)) -> active#(X) active#(g(X)) -> active#(X) -> active#(f(f(a()))) -> c#(f(g(f(a())))) active#(g(X)) -> active#(X) -> active#(f(f(a()))) -> f#(g(f(a()))) active#(g(X)) -> active#(X) -> active#(f(f(a()))) -> g#(f(a())) active#(f(f(a()))) -> c#(f(g(f(a())))) -> c#(ok(X)) -> c#(X) active#(f(f(a()))) -> f#(g(f(a()))) -> f#(ok(X)) -> f#(X) active#(f(f(a()))) -> f#(g(f(a()))) -> f#(mark(X)) -> f#(X) active#(f(f(a()))) -> g#(f(a())) -> g#(ok(X)) -> g#(X) active#(f(f(a()))) -> g#(f(a())) -> g#(mark(X)) -> g#(X) active#(f(X)) -> f#(active(X)) -> f#(ok(X)) -> f#(X) active#(f(X)) -> f#(active(X)) -> f#(mark(X)) -> f#(X) active#(f(X)) -> active#(X) -> active#(g(X)) -> g#(active(X)) active#(f(X)) -> active#(X) -> active#(g(X)) -> active#(X) active#(f(X)) -> active#(X) -> active#(f(X)) -> f#(active(X)) active#(f(X)) -> active#(X) -> active#(f(X)) -> active#(X) active#(f(X)) -> active#(X) -> active#(f(f(a()))) -> c#(f(g(f(a())))) active#(f(X)) -> active#(X) -> active#(f(f(a()))) -> f#(g(f(a()))) active#(f(X)) -> active#(X) -> active#(f(f(a()))) -> g#(f(a())) EDG Processor: DPs: active#(f(f(a()))) -> g#(f(a())) active#(f(f(a()))) -> f#(g(f(a()))) active#(f(f(a()))) -> c#(f(g(f(a())))) active#(f(X)) -> active#(X) active#(f(X)) -> f#(active(X)) active#(g(X)) -> active#(X) active#(g(X)) -> g#(active(X)) f#(mark(X)) -> f#(X) g#(mark(X)) -> g#(X) proper#(f(X)) -> proper#(X) proper#(f(X)) -> f#(proper(X)) proper#(c(X)) -> proper#(X) proper#(c(X)) -> c#(proper(X)) proper#(g(X)) -> proper#(X) proper#(g(X)) -> g#(proper(X)) f#(ok(X)) -> f#(X) c#(ok(X)) -> c#(X) g#(ok(X)) -> g#(X) top#(mark(X)) -> proper#(X) top#(mark(X)) -> top#(proper(X)) top#(ok(X)) -> active#(X) top#(ok(X)) -> top#(active(X)) TRS: active(f(f(a()))) -> mark(c(f(g(f(a()))))) active(f(X)) -> f(active(X)) active(g(X)) -> g(active(X)) f(mark(X)) -> mark(f(X)) f(ok(X)) -> ok(f(X)) g(mark(X)) -> mark(g(X)) g(ok(X)) -> ok(g(X)) proper(f(X)) -> f(proper(X)) proper(a()) -> ok(a()) proper(c(X)) -> c(proper(X)) proper(g(X)) -> g(proper(X)) c(ok(X)) -> ok(c(X)) graph: top#(ok(X)) -> top#(active(X)) -> top#(mark(X)) -> proper#(X) top#(ok(X)) -> top#(active(X)) -> top#(mark(X)) -> top#(proper(X)) top#(ok(X)) -> top#(active(X)) -> top#(ok(X)) -> active#(X) top#(ok(X)) -> top#(active(X)) -> top#(ok(X)) -> top#(active(X)) top#(ok(X)) -> active#(X) -> active#(f(f(a()))) -> g#(f(a())) top#(ok(X)) -> active#(X) -> active#(f(f(a()))) -> f#(g(f(a()))) top#(ok(X)) -> active#(X) -> active#(f(f(a()))) -> c#(f(g(f(a())))) top#(ok(X)) -> active#(X) -> active#(f(X)) -> active#(X) top#(ok(X)) -> active#(X) -> active#(f(X)) -> f#(active(X)) top#(ok(X)) -> active#(X) -> active#(g(X)) -> active#(X) top#(ok(X)) -> active#(X) -> active#(g(X)) -> g#(active(X)) top#(mark(X)) -> top#(proper(X)) -> top#(mark(X)) -> proper#(X) top#(mark(X)) -> top#(proper(X)) -> top#(mark(X)) -> top#(proper(X)) top#(mark(X)) -> top#(proper(X)) -> top#(ok(X)) -> active#(X) top#(mark(X)) -> top#(proper(X)) -> top#(ok(X)) -> top#(active(X)) top#(mark(X)) -> proper#(X) -> proper#(f(X)) -> proper#(X) top#(mark(X)) -> proper#(X) -> proper#(f(X)) -> f#(proper(X)) top#(mark(X)) -> proper#(X) -> proper#(c(X)) -> proper#(X) top#(mark(X)) -> proper#(X) -> proper#(c(X)) -> c#(proper(X)) top#(mark(X)) -> proper#(X) -> proper#(g(X)) -> proper#(X) top#(mark(X)) -> proper#(X) -> proper#(g(X)) -> g#(proper(X)) proper#(c(X)) -> proper#(X) -> proper#(f(X)) -> proper#(X) proper#(c(X)) -> proper#(X) -> proper#(f(X)) -> f#(proper(X)) proper#(c(X)) -> proper#(X) -> proper#(c(X)) -> proper#(X) proper#(c(X)) -> proper#(X) -> proper#(c(X)) -> c#(proper(X)) proper#(c(X)) -> proper#(X) -> proper#(g(X)) -> proper#(X) proper#(c(X)) -> proper#(X) -> proper#(g(X)) -> g#(proper(X)) proper#(c(X)) -> c#(proper(X)) -> c#(ok(X)) -> c#(X) proper#(g(X)) -> proper#(X) -> proper#(f(X)) -> proper#(X) proper#(g(X)) -> proper#(X) -> proper#(f(X)) -> f#(proper(X)) proper#(g(X)) -> proper#(X) -> proper#(c(X)) -> proper#(X) proper#(g(X)) -> proper#(X) -> proper#(c(X)) -> c#(proper(X)) proper#(g(X)) -> proper#(X) -> proper#(g(X)) -> proper#(X) proper#(g(X)) -> proper#(X) -> proper#(g(X)) -> g#(proper(X)) proper#(g(X)) -> g#(proper(X)) -> g#(mark(X)) -> g#(X) proper#(g(X)) -> g#(proper(X)) -> g#(ok(X)) -> g#(X) proper#(f(X)) -> proper#(X) -> proper#(f(X)) -> proper#(X) proper#(f(X)) -> proper#(X) -> proper#(f(X)) -> f#(proper(X)) proper#(f(X)) -> proper#(X) -> proper#(c(X)) -> proper#(X) proper#(f(X)) -> proper#(X) -> proper#(c(X)) -> c#(proper(X)) proper#(f(X)) -> proper#(X) -> proper#(g(X)) -> proper#(X) proper#(f(X)) -> proper#(X) -> proper#(g(X)) -> g#(proper(X)) proper#(f(X)) -> f#(proper(X)) -> f#(mark(X)) -> f#(X) proper#(f(X)) -> f#(proper(X)) -> f#(ok(X)) -> f#(X) c#(ok(X)) -> c#(X) -> c#(ok(X)) -> c#(X) f#(ok(X)) -> f#(X) -> f#(mark(X)) -> f#(X) f#(ok(X)) -> f#(X) -> f#(ok(X)) -> f#(X) f#(mark(X)) -> f#(X) -> f#(mark(X)) -> f#(X) f#(mark(X)) -> f#(X) -> f#(ok(X)) -> f#(X) g#(ok(X)) -> g#(X) -> g#(mark(X)) -> g#(X) g#(ok(X)) -> g#(X) -> g#(ok(X)) -> g#(X) g#(mark(X)) -> g#(X) -> g#(mark(X)) -> g#(X) g#(mark(X)) -> g#(X) -> g#(ok(X)) -> g#(X) active#(g(X)) -> g#(active(X)) -> g#(mark(X)) -> g#(X) active#(g(X)) -> g#(active(X)) -> g#(ok(X)) -> g#(X) active#(g(X)) -> active#(X) -> active#(f(f(a()))) -> g#(f(a())) active#(g(X)) -> active#(X) -> active#(f(f(a()))) -> f#(g(f(a()))) active#(g(X)) -> active#(X) -> active#(f(f(a()))) -> c#(f(g(f(a())))) active#(g(X)) -> active#(X) -> active#(f(X)) -> active#(X) active#(g(X)) -> active#(X) -> active#(f(X)) -> f#(active(X)) active#(g(X)) -> active#(X) -> active#(g(X)) -> active#(X) active#(g(X)) -> active#(X) -> active#(g(X)) -> g#(active(X)) active#(f(X)) -> f#(active(X)) -> f#(mark(X)) -> f#(X) active#(f(X)) -> f#(active(X)) -> f#(ok(X)) -> f#(X) active#(f(X)) -> active#(X) -> active#(f(f(a()))) -> g#(f(a())) active#(f(X)) -> active#(X) -> active#(f(f(a()))) -> f#(g(f(a()))) active#(f(X)) -> active#(X) -> active#(f(f(a()))) -> c#(f(g(f(a())))) active#(f(X)) -> active#(X) -> active#(f(X)) -> active#(X) active#(f(X)) -> active#(X) -> active#(f(X)) -> f#(active(X)) active#(f(X)) -> active#(X) -> active#(g(X)) -> active#(X) active#(f(X)) -> active#(X) -> active#(g(X)) -> g#(active(X)) CDG Processor: DPs: active#(f(f(a()))) -> g#(f(a())) active#(f(f(a()))) -> f#(g(f(a()))) active#(f(f(a()))) -> c#(f(g(f(a())))) active#(f(X)) -> active#(X) active#(f(X)) -> f#(active(X)) active#(g(X)) -> active#(X) active#(g(X)) -> g#(active(X)) f#(mark(X)) -> f#(X) g#(mark(X)) -> g#(X) proper#(f(X)) -> proper#(X) proper#(f(X)) -> f#(proper(X)) proper#(c(X)) -> proper#(X) proper#(c(X)) -> c#(proper(X)) proper#(g(X)) -> proper#(X) proper#(g(X)) -> g#(proper(X)) f#(ok(X)) -> f#(X) c#(ok(X)) -> c#(X) g#(ok(X)) -> g#(X) top#(mark(X)) -> proper#(X) top#(mark(X)) -> top#(proper(X)) top#(ok(X)) -> active#(X) top#(ok(X)) -> top#(active(X)) TRS: active(f(f(a()))) -> mark(c(f(g(f(a()))))) active(f(X)) -> f(active(X)) active(g(X)) -> g(active(X)) f(mark(X)) -> mark(f(X)) f(ok(X)) -> ok(f(X)) g(mark(X)) -> mark(g(X)) g(ok(X)) -> ok(g(X)) proper(f(X)) -> f(proper(X)) proper(a()) -> ok(a()) proper(c(X)) -> c(proper(X)) proper(g(X)) -> g(proper(X)) c(ok(X)) -> ok(c(X)) graph: top#(ok(X)) -> top#(active(X)) -> top#(ok(X)) -> top#(active(X)) top#(ok(X)) -> top#(active(X)) -> top#(ok(X)) -> active#(X) top#(ok(X)) -> top#(active(X)) -> top#(mark(X)) -> top#(proper(X)) top#(ok(X)) -> top#(active(X)) -> top#(mark(X)) -> proper#(X) top#(mark(X)) -> top#(proper(X)) -> top#(ok(X)) -> top#(active(X)) top#(mark(X)) -> top#(proper(X)) -> top#(ok(X)) -> active#(X) top#(mark(X)) -> top#(proper(X)) -> top#(mark(X)) -> top#(proper(X)) top#(mark(X)) -> top#(proper(X)) -> top#(mark(X)) -> proper#(X) proper#(c(X)) -> c#(proper(X)) -> c#(ok(X)) -> c#(X) proper#(g(X)) -> g#(proper(X)) -> g#(ok(X)) -> g#(X) proper#(f(X)) -> f#(proper(X)) -> f#(ok(X)) -> f#(X) active#(g(X)) -> g#(active(X)) -> g#(mark(X)) -> g#(X) active#(f(X)) -> f#(active(X)) -> f#(mark(X)) -> f#(X) Restore Modifier: DPs: active#(f(f(a()))) -> g#(f(a())) active#(f(f(a()))) -> f#(g(f(a()))) active#(f(f(a()))) -> c#(f(g(f(a())))) active#(f(X)) -> active#(X) active#(f(X)) -> f#(active(X)) active#(g(X)) -> active#(X) active#(g(X)) -> g#(active(X)) f#(mark(X)) -> f#(X) g#(mark(X)) -> g#(X) proper#(f(X)) -> proper#(X) proper#(f(X)) -> f#(proper(X)) proper#(c(X)) -> proper#(X) proper#(c(X)) -> c#(proper(X)) proper#(g(X)) -> proper#(X) proper#(g(X)) -> g#(proper(X)) f#(ok(X)) -> f#(X) c#(ok(X)) -> c#(X) g#(ok(X)) -> g#(X) top#(mark(X)) -> proper#(X) top#(mark(X)) -> top#(proper(X)) top#(ok(X)) -> active#(X) top#(ok(X)) -> top#(active(X)) TRS: active(f(f(a()))) -> mark(c(f(g(f(a()))))) active(f(X)) -> f(active(X)) active(g(X)) -> g(active(X)) f(mark(X)) -> mark(f(X)) g(mark(X)) -> mark(g(X)) proper(f(X)) -> f(proper(X)) proper(a()) -> ok(a()) proper(c(X)) -> c(proper(X)) proper(g(X)) -> g(proper(X)) f(ok(X)) -> ok(f(X)) c(ok(X)) -> ok(c(X)) g(ok(X)) -> ok(g(X)) top(mark(X)) -> top(proper(X)) top(ok(X)) -> top(active(X)) SCC Processor: #sccs: 1 #rules: 2 #arcs: 13/484 DPs: top#(ok(X)) -> top#(active(X)) top#(mark(X)) -> top#(proper(X)) TRS: active(f(f(a()))) -> mark(c(f(g(f(a()))))) active(f(X)) -> f(active(X)) active(g(X)) -> g(active(X)) f(mark(X)) -> mark(f(X)) g(mark(X)) -> mark(g(X)) proper(f(X)) -> f(proper(X)) proper(a()) -> ok(a()) proper(c(X)) -> c(proper(X)) proper(g(X)) -> g(proper(X)) f(ok(X)) -> ok(f(X)) c(ok(X)) -> ok(c(X)) g(ok(X)) -> ok(g(X)) top(mark(X)) -> top(proper(X)) top(ok(X)) -> top(active(X)) Open