problem([]==>l:int list=>m:int list=>qrev(l,m)=app(rev(l),m)in int list,
ind_strat(induction(lemma(list_primitive)-[(l:int list)-v1::v0])then[base_case(sym_eval(normalize_term([reduction([1,1],[qrev1,equ(int list,left)]),reduction([1,2,1],[rev1,equ(int list,left)]),reduction([2,1],[app1,equ(int list,left)])]))then[elementary(intro(new[m])then[identity,wfftacs])]),step_case(ripple(direction_out,wave(direction_out,[1,1],[qrev2,equ(int list,left)],[])then[wave(direction_out,[1,2,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(left,[weak_fertilize(left,in,[],v2)]))))])]),lambda(l,list_ind(l,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(v0,su(su(lambda(v1,su(v2,[v1 of v0],[v2]))of lambda(m,axiom),[app1 of v0],[v1]),[term_of(app1)],[app1])),[term_of(rev1)],[rev1])),[qrev1 of v0],[v1]),[term_of(qrev1)],[qrev1])),[v1,v0,v2,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 _62628,[v2 of(v1::v3)],[v4])),[v4 of v0],[v5]),[rev2 of v1],[v4]),[term_of(rev2)],[rev2])),[v5 of v3],[v6]),[v4 of v0],[v5]),[qrev2 of v1],[v4]),[term_of(qrev2)],[qrev2]))])),
[problem([l:int list,v1:int,v0:int list,v2:m:int list=>qrev(v0,m)=app(rev(v0),m)in int list]==>m:int list=>app(rev(v0),v1::m)=app(app(rev(v0),v1::nil),m)in int list,
 generalise(rev(v0),v3:int list),lambda(v3,lambda(v4,su(su(v6,[v5 of v4],[v6]),[v3 of rev(v0)],[v5])))of _62448,
 [problem([l:int list,v1:int,v0:int list,v2:m:int list=>qrev(v0,m)=app(rev(v0),m)in int list]==>v3:int list=>m:int list=>app(v3,v1::m)=app(app(v3,v1::nil),m)in int list,
  ind_strat(induction(lemma(list_primitive)-[(v3:int list)-v5::v4])then[base_case(sym_eval(normalize_term([reduction([1,1],[app1,equ(int list,left)]),reduction([1,2,1],[app1,equ(int list,left)]),reduction([2,1],[app2,equ(int list,left)]),reduction([2,2,1],[app1,equ(int list,left)])]))then[elementary(intro(new[m])then[identity,wfftacs])]),step_case(ripple(direction_out,wave(direction_out,[1,1],[app2,equ(int list,left)],[])then[wave(direction_out,[1,2,1],[app2,equ(int list,left)],[])then[wave(direction_out,[2,1],[app2,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,[2],v6)]))then elementary(intro(new[m])then[identity,wfftacs])))])]),lambda(v3,list_ind(v3,lambda(v4,su(su(lambda(v5,su(v6,[v5 of v4],[v6]))of lambda(v4,su(su(lambda(v5,su(v6,[v5 of v4],[v6]))of lambda(v4,su(su(su(su(lambda(v5,su(v6,[v5 of v4],[v6]))of lambda(v4,su(su(lambda(v5,su(v6,[v5 of v4],[v6]))of lambda(m,axiom),[app1 of v4],[v5]),[term_of(app1)],[app1])),[v6 of v4],[v7]),[v5 of nil],[v6]),[app2 of v1],[v5]),[term_of(app2)],[app2])),[app1 of(v1::nil)],[v5]),[term_of(app1)],[app1])),[app1 of(v1::v4)],[v5]),[term_of(app1)],[app1])),[v5,v4,v6,lambda(v7,su(su(su(su(lambda(v8,su(v9,[v8 of v7],[v9]))of lambda(v7,su(su(su(su(lambda(v8,su(v9,[v8 of v7],[v9]))of lambda(v7,su(su(su(su(lambda(v8,su(v9,[v8 of v7],[v9]))of lambda(v7,su(lambda(v8,su(v9,[v8 of v7],[v9]))of lambda(m,axiom),[v6 of v7],[v8])),[v9 of v7],[v10]),[v8 of app(v4,v1::nil)],[v9]),[app2 of v5],[v8]),[term_of(app2)],[app2])),[v9 of(v1::nil)],[v10]),[v8 of v4],[v9]),[app2 of v5],[v8]),[term_of(app2)],[app2])),[v9 of(v1::v7)],[v10]),[v8 of v4],[v9]),[app2 of v5],[v8]),[term_of(app2)],[app2]))])),
  [
  ]) ext _62448
 ]) ext _62628
]).
