problem([]==>l:int list=>m:int list=>qrev(qrev(l,m),nil)=app(rev(m),rev(rev(l)))in int list,
sym_eval(normalize_term([reduction([1,1],[qrev_correct,equ(int list,left)])])),lambda(v0,lambda(v1,su(su(lambda(v2,su(su(v4,[v3 of v1],[v4]),[v2 of v0],[v3]))of _109716,[qrev_correct of qrev(v0,v1)],[v2]),[term_of(qrev_correct)],[qrev_correct]))),
[problem([]==>l:int list=>m:int list=>rev(qrev(l,m))=app(rev(m),rev(rev(l)))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],[qrev1,equ(int list,left)]),reduction([1,2,2,1],[rev1,equ(int list,left)]),reduction([2,2,1],[rev1,equ(int list,left)])]))),step_case(ripple(direction_out,wave(direction_out,[1,2,2,1],[rev2,equ(int list,left)],[])then[wave(direction_out,[2,2,1],[dist_rev_app,equ(int list,left)],[])then[wave(direction_out,[1,1,1],[qrev2,equ(int list,left)],[])]])then[ripple(direction_in_or_out,wave(direction_in_or_out,[2,1],[assapp,equ(int list,left)],[])then[wave(direction_in_or_out,[1,2,1],[dist_rev_app,equ(int list,right)],[])])then[unblock_then_fertilize(strong,unblock_fertilize_lazy([unblock(sink,[1,1,2,1],[app2,equ(int list,left)]),unblock(sink,[2,1,1,2,1],[app1,equ(int list,left)]),idtac])then fertilize(strong,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(lambda(v1,su(v2,[v1 of v0],[v2]))of _109264,[term_of(rev1)],[rev1])),[term_of(rev1)],[rev1])),[qrev1 of v0],[v1]),[term_of(qrev1)],[qrev1])),[v1,v0,v2,lambda(v3,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(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(su(su(su(lambda(v4,su(v5,[v4 of v3],[v5]))of lambda(v3,su(su(lambda(v4,su(v5,[v4 of v3],[v5]))of lambda(m,su(v3,[v2 of(v1::m)],[v3])),[app1 of v3],[v4]),[term_of(app1)],[app1])),[v5 of v3],[v6]),[v4 of nil],[v5]),[app2 of v1],[v4]),[term_of(app2)],[app2])),[v4 of v3],[v5]),[dist_rev_app of(v1::nil)],[v4]),[term_of(dist_rev_app)],[dist_rev_app])),[v5 of rev(rev(v0))],[v6]),[v4 of rev(v1::nil)],[v5]),[assapp of rev(v3)],[v4]),[term_of(assapp)],[assapp])),[v5 of v3],[v6]),[v4 of v0],[v5]),[qrev2 of v1],[v4]),[term_of(qrev2)],[qrev2])),[v4 of(v1::nil)],[v5]),[dist_rev_app of rev(v0)],[v4]),[term_of(dist_rev_app)],[dist_rev_app])),[v4 of v0],[v5]),[rev2 of v1],[v4]),[term_of(rev2)],[rev2]))])),
 [problem([l:int list]==>m:int list=>rev(m)=app(rev(m),nil)in int list,
  ind_strat(induction(lemma(list_primitive)-[(m:int list)-v1::v0])then[base_case(sym_eval(normalize_term([reduction([1,1],[rev1,equ(int list,left)]),reduction([1,2,1],[rev1,equ(int list,left)]),reduction([2,1],[app1,equ(int list,left)])]))then[elementary(identity)]),step_case(ripple(direction_out,wave(direction_out,[1,1],[rev2,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,[1],v2)]))))])]),lambda(m,list_ind(m,su(su(su(su(axiom,[app1 of nil],[v0]),[term_of(app1)],[app1]),[term_of(rev1)],[rev1]),[term_of(rev1)],[rev1]),[v1,v0,v2,su(su(su(su(su(su(_108493,[v3 of v0],[v4]),[rev2 of v1],[v3]),[term_of(rev2)],[rev2]),[v3 of v0],[v4]),[rev2 of v1],[v3]),[term_of(rev2)],[rev2])])),
  [problem([l:int list,m:int list,v1:int,v0:int list,v2:rev(v0)=app(rev(v0),nil)in int list]==>app(app(rev(v0),nil),v1::nil)=app(app(rev(v0),v1::nil),nil)in int list,
   generalise(rev(v0),v3:int list),lambda(v3,su(v4,[v3 of rev(v0)],[v4]))of _108352,
   [problem([l:int list,m:int list,v1:int,v0:int list,v2:rev(v0)=app(rev(v0),nil)in int list]==>v3:int list=>app(app(v3,nil),v1::nil)=app(app(v3,v1::nil),nil)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],[app1,equ(int list,left)]),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(identity)]),step_case(ripple(direction_out,wave(direction_out,[1,2,1],[app2,equ(int list,left)],[])then[wave(direction_out,[2,1],[app2,equ(int list,left)],[])then[wave(direction_out,[1,1,1],[app2,equ(int list,left)],[])then[wave(direction_out,[1,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(identity)))])]),lambda(v3,list_ind(v3,su(su(su(su(su(su(su(su(su(su(su(su(axiom,[app1 of nil],[v4]),[term_of(app1)],[app1]),[v5 of nil],[v6]),[v4 of nil],[v5]),[app2 of v1],[v4]),[term_of(app2)],[app2]),[app1 of(v1::nil)],[v4]),[term_of(app1)],[app1]),[app1 of(v1::nil)],[v4]),[term_of(app1)],[app1]),[app1 of nil],[v4]),[term_of(app1)],[app1]),[v5,v4,v6,su(su(su(su(su(su(su(su(su(su(su(su(su(su(su(su(axiom,[v8 of(v1::nil)],[v9]),[v7 of app(v4,nil)],[v8]),[app2 of v5],[v7]),[term_of(app2)],[app2]),[v8 of nil],[v9]),[v7 of v4],[v8]),[app2 of v5],[v7]),[term_of(app2)],[app2]),[v8 of nil],[v9]),[v7 of app(v4,v1::nil)],[v8]),[app2 of v5],[v7]),[term_of(app2)],[app2]),[v8 of(v1::nil)],[v9]),[v7 of v4],[v8]),[app2 of v5],[v7]),[term_of(app2)],[app2])])),
    [
    ]) ext _108352
   ]) ext _108493
  ]) ext _109264
 ]) ext _109716
]).
