problem([]==>f:(int=>int)=>l:int list=>rev(mapcar(l,f))=mapcar(rev(l),f)in int list,
ind_strat(induction(lemma(list_primitive)-[(l:int list)-v1::v0])then[base_case(sym_eval(normalize_term([reduction([1,1,1],[mapcar1,equ(int list,left)]),reduction([1,1],[rev1,equ(int list,left)]),reduction([1,2,1],[rev1,equ(int list,left)]),reduction([2,1],[mapcar1,equ(int list,left)])]))then[elementary(intro(new[f])then[identity,wfftacs])]),step_case(ripple(direction_out,wave(direction_out,[1,2,1],[rev2,equ(int list,left)],[])then[wave(direction_out,[1,1,1],[mapcar2,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(left,[weak_fertilize(left,in,[1],v2)]))))])]),lambda(v0,lambda(v1,lambda(v2,su(su(v4,[v3 of v0],[v4]),[v2 of v1],[v3]))of 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(lambda(v1,su(v2,[v1 of v0],[v2]))of lambda(v0,su(su(lambda(v1,su(v2,[v1 of v0],[v2]))of lambda(f,axiom),[mapcar1 of v0],[v1]),[term_of(mapcar1)],[mapcar1])),[term_of(rev1)],[rev1])),[term_of(rev1)],[rev1])),[mapcar1 of v0],[v1]),[term_of(mapcar1)],[mapcar1])),[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(lambda(v4,su(v5,[v4 of v3],[v5]))of lambda(v3,su(lambda(v4,su(v5,[v4 of v3],[v5]))of _146673,[v2 of v3],[v4])),[v4 of mapcar(v0,v3)],[v5]),[rev2 of(v3 of v1)],[v4]),[term_of(rev2)],[rev2])),[v5 of v0],[v6]),[v4 of v1],[v5]),[mapcar2 of v3],[v4]),[term_of(mapcar2)],[mapcar2])),[v4 of v0],[v5]),[rev2 of v1],[v4]),[term_of(rev2)],[rev2]))])))),
[problem([l:int list,v1:int,v0:int list,v2:f:(int=>int)=>rev(mapcar(v0,f))=mapcar(rev(v0),f)in int list]==>f:(int=>int)=>app(mapcar(rev(v0),f),f of v1::nil)=mapcar(app(rev(v0),v1::nil),f)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 _146460,
 [problem([l:int list,v1:int,v0:int list,v2:f:(int=>int)=>rev(mapcar(v0,f))=mapcar(rev(v0),f)in int list]==>v3:int list=>f:(int=>int)=>app(mapcar(v3,f),f of v1::nil)=mapcar(app(v3,v1::nil),f)in int list,
  ind_strat(induction(lemma(list_primitive)-[(v3:int list)-v5::v4])then[base_case(sym_eval(normalize_term([reduction([1,1,1],[mapcar1,equ(int list,left)]),reduction([1,1],[app1,equ(int list,left)]),reduction([1,2,1],[app1,equ(int list,left)]),reduction([2,1],[mapcar2,equ(int list,left)]),reduction([2,2,1],[mapcar1,equ(int list,left)])]))then[elementary(intro(new[f])then[identity,wfftacs])]),step_case(ripple(direction_out,wave(direction_out,[1,2,1],[app2,equ(int list,left)],[])then[wave(direction_out,[2,1],[mapcar2,equ(int list,left)],[])then[wave(direction_out,[1,1,1],[mapcar2,equ(int list,left)],[])then[wave(direction_out,[1,1],[app2,equ(int list,left)],[])then[wave(direction_out,[],[cnc_cons1,imp(right)],[])]]]])then[unblock_then_fertilize(strong,unblock_fertilize_lazy([idtac])then fertilize(strong,v6))])]),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(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(f,axiom),[mapcar1 of v4],[v5]),[term_of(mapcar1)],[mapcar1])),[v6 of nil],[v7]),[v5 of v1],[v6]),[mapcar2 of v4],[v5]),[term_of(mapcar2)],[mapcar2])),[app1 of(v1::nil)],[v5]),[term_of(app1)],[app1])),[app1 of(v4 of v1::nil)],[v5]),[term_of(app1)],[app1])),[mapcar1 of v4],[v5]),[term_of(mapcar1)],[mapcar1])),[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(su(su(su(lambda(v8,su(v9,[v8 of v7],[v9]))of lambda(v7,su(su(su(su(su(v8,[v10 of(lambda(v8,su(v9,[v8 of v7],[v9]))of v6)],[v8]),[v9 of mapcar(app(v4,v1::nil),v7)],[v10]),[v8 of app(mapcar(v4,v7),v7 of v1::nil)],[v9]),[cnc_cons1 of(v7 of v5)],[v8]),[term_of(cnc_cons1)],[cnc_cons1])),[v9 of(v7 of v1::nil)],[v10]),[v8 of mapcar(v4,v7)],[v9]),[app2 of(v7 of v5)],[v8]),[term_of(app2)],[app2])),[v9 of v4],[v10]),[v8 of v5],[v9]),[mapcar2 of v7],[v8]),[term_of(mapcar2)],[mapcar2])),[v9 of app(v4,v1::nil)],[v10]),[v8 of v5],[v9]),[mapcar2 of v7],[v8]),[term_of(mapcar2)],[mapcar2])),[v9 of(v1::nil)],[v10]),[v8 of v4],[v9]),[app2 of v5],[v8]),[term_of(app2)],[app2]))])),
  [
  ]) ext _146460
 ]) ext _146673
]).
