problem([]==>a:int list=>n:int=>rev(app(a,n::nil))=n::rev(a)in int list,
ind_strat(induction(lemma(list_primitive)-[(a:int list)-v1::v0])then[base_case(sym_eval(normalize_term([reduction([1,1,1],[app1,equ(int list,left)]),reduction([1,1],[rev2,equ(int list,left)]),reduction([1,1,1],[rev1,equ(int list,left)]),reduction([1,1],[app1,equ(int list,left)]),reduction([2,2,1],[rev1,equ(int list,left)])]))then[elementary(intro(new[n])then[identity,wfftacs])]),step_case(ripple(direction_out,wave(direction_out,[2,2,1],[rev2,equ(int list,left)],[])then[wave(direction_out,[2,1],[app2,equ(int list,right)],[])then[wave(direction_out,[1,1,1],[app2,equ(int list,left)],[])then[wave(direction_out,[1,1],[rev2,equ(int list,left)],[])]]])then[unblock_then_fertilize(weak,unblock_fertilize_lazy([idtac])then fertilize(weak,fertilize_then_ripple(fertilize_left_or_right(right,[weak_fertilize(right,in,[1],v2)]))then elementary(intro(new[n])then[identity,wfftacs])))])]),lambda(a,list_ind(a,lambda(v0,su(su(lambda(v1,su(v2,[v1 of v0],[v2]))of lambda(v0,su(su(su(lambda(v1,su(v2,[v1 of v0],[v2]))of lambda(v0,su(lambda(v1,su(v2,[v1 of v0],[v2]))of lambda(v0,su(su(lambda(v1,su(v2,[v1 of v0],[v2]))of lambda(v0,su(lambda(v1,su(v2,[v1 of v0],[v2]))of lambda(n,axiom),[term_of(rev1)],[rev1])),[app1 of(v0::nil)],[v1]),[term_of(app1)],[app1])),[term_of(rev1)],[rev1])),[v1 of nil],[v2]),[rev2 of v0],[v1]),[term_of(rev2)],[rev2])),[app1 of(v0::nil)],[v1]),[term_of(app1)],[app1])),[v1,v0,v2,lambda(v3,su(su(su(lambda(v4,su(v5,[v4 of v3],[v5]))of lambda(v3,su(su(su(su(lambda(v4,su(v5,[v4 of v3],[v5]))of lambda(v3,su(su(su(su(lambda(v4,su(v5,[v4 of v3],[v5]))of lambda(v3,su(su(su(lambda(v4,su(v5,[v4 of v3],[v5]))of lambda(v3,su(lambda(v4,su(v5,[v4 of v3],[v5]))of lambda(n,axiom),[v2 of v3],[v4])),[v4 of app(v0,v3::nil)],[v5]),[rev2 of v1],[v4]),[term_of(rev2)],[rev2])),[v5 of(v3::nil)],[v6]),[v4 of v0],[v5]),[app2 of v1],[v4]),[term_of(app2)],[app2])),[v5 of(v1::nil)],[v6]),[v4 of rev(v0)],[v5]),[app2 of v3],[v4]),[term_of(app2)],[app2])),[v4 of v0],[v5]),[rev2 of v1],[v4]),[term_of(rev2)],[rev2]))])),
[
]).
