Problem: app(app(app(if(),true()),x),y) -> x app(app(app(if(),false()),x),y) -> y app(app(app(until(),p),f),x) -> app(app(app(if(),app(p,x)),x),app(app(app(until(),p),f),app(f,x))) Proof: Containment Processor: loop length: 1 terms: app(app(app(until(),p),f),x) context: app(app(app(if(),app(p,x)),x),[]) substitution: x -> app(f,x) p -> p f -> f Qed