/*
 * @(#)$Id: sexp_cnt_cdr_ilem,v 1.1 1994/09/16 09:39:18 dream Exp $
 *
 * $Log: sexp_cnt_cdr_ilem,v $
 * Revision 1.1  1994/09/16 09:39:18  dream
 * Initial revision
 *
 */

problem([]==>cons:{sexp}=>w:j(consp(cons))=>sexp_cnt(cdr(cons,w))<*sexp_cnt(cons),
intro_type_hyps_upto(cons),lambda(cons,_105542),
[problem([cons:{sexp}]==>w:j(consp(cons))=>sexp_cnt(cdr(cons,w))<*sexp_cnt(cons),
 str_case_anal(cons),lambda(v0,v0)of su(su(su(su(v1,[v0 of(lambda(w,_105617)&lambda(sym,lambda(w,_105626))&lambda(num,lambda(w,_105635))&lambda(car,lambda(cdr,lambda(w,_105644))))],[v1]),[v1 of cons],[v0]),[v0 of lambda(cons,w:j(consp(cons))=>sexp_cnt(cdr(cons,w))<*sexp_cnt(cons))],[v1]),[term_of(sexp_strcaselem)],[v0]),
 [problem([cons:{sexp},w:j(consp({nul}))]==>sexp_cnt(cdr({nul},w))<*sexp_cnt({nul}),
  normalize_hyp([[unroll,_105742]],w),_105698,
  [problem([cons:{sexp},w:void]==>sexp_cnt(cdr({nul},w))<*sexp_cnt({nul}),
   elim(w),any(w),
   [
   ]) ext _105698
  ]) ext _105617,
  problem([cons:{sexp},sym:atom,w:j(consp(symbol(sym)))]==>sexp_cnt(cdr(symbol(sym),w))<*sexp_cnt(symbol(sym)),
  normalize_hyp([[unroll,_105844]],w),_105795,
  [problem([cons:{sexp},sym:atom,w:void]==>sexp_cnt(cdr(symbol(sym),w))<*sexp_cnt(symbol(sym)),
   elim(w),any(w),
   [
   ]) ext _105795
  ]) ext _105626,
  problem([cons:{sexp},num:pnat,w:j(consp(number(num)))]==>sexp_cnt(cdr(number(num),w))<*sexp_cnt(number(num)),
  normalize_hyp([[unroll,_105951]],w),_105902,
  [problem([cons:{sexp},num:pnat,w:void]==>sexp_cnt(cdr(number(num),w))<*sexp_cnt(number(num)),
   elim(w),any(w),
   [
   ]) ext _105902
  ]) ext _105635,
  problem([cons:{sexp},car:{sexp},cdr:{sexp},w:j(consp(cons(car,cdr)))]==>sexp_cnt(cdr(cons(car,cdr),w))<*sexp_cnt(cons(car,cdr)),
  normalize_hyp([[unroll,_106070]],w),_106009,
  [problem([cons:{sexp},car:{sexp},cdr:{sexp},w:unary]==>sexp_cnt(cdr(cons(car,cdr),w))<*sexp_cnt(cons(car,cdr)),
   normalize_goal([[unroll,_106133]]),_106080,
   [problem([cons:{sexp},car:{sexp},cdr:{sexp},w:unary]==>rec_ind(cdr,[v2,v3,decide(v3,[~,0],[v5,decide(v5,[~,0],[v6,decide(v6,[~,0],[v8,spread(v8,[v4,v10,s(p_ind(v2 of v4,v2 of v10,[~,'v$',s('v$')]))])])])])])<*s(p_ind(rec_ind(car,[v2,v3,decide(v3,[~,0],[v5,decide(v5,[~,0],[v6,decide(v6,[~,0],[v8,spread(v8,[v4_,v10,s(p_ind(v2 of v4_,v2 of v10,[~,'v$',s('v$')]))])])])])]),rec_ind(cdr,[v2,v3,decide(v3,[~,0],[v5,decide(v5,[~,0],[v6,decide(v6,[~,0],[v8,spread(v8,[v4,v10_,s(p_ind(v2 of v4,v2 of v10_,[~,'v$',s('v$')]))])])])])]),[~,'v$',s('v$')])),
    arith,axiom,
    [problem([cons:{sexp},car:{sexp},cdr:{sexp},w:unary]==>rec_ind(cdr,[v2,v3,decide(v3,[~,0],[v5,decide(v5,[~,0],[v6,decide(v6,[~,0],[v8,spread(v8,[v4,v10,s(p_ind(v2 of v4,v2 of v10,[~,'v$',s('v$')]))])])])])])in pnat,
     try (repeat normalize_mem)then repeat prove_mem_step,axiom,
     [
     ]),
     problem([cons:{sexp},car:{sexp},cdr:{sexp},w:unary]==>s(p_ind(rec_ind(car,[v2,v3,decide(v3,[~,0],[v5,decide(v5,[~,0],[v6,decide(v6,[~,0],[v8,spread(v8,[v4_,v10,s(p_ind(v2 of v4_,v2 of v10,[~,'v$',s('v$')]))])])])])]),rec_ind(cdr,[v2,v3,decide(v3,[~,0],[v5,decide(v5,[~,0],[v6,decide(v6,[~,0],[v8,spread(v8,[v4,v10_,s(p_ind(v2 of v4,v2 of v10_,[~,'v$',s('v$')]))])])])])]),[~,'v$',s('v$')]))in pnat,
     try (repeat normalize_mem)then repeat prove_mem_step,axiom,
     [
     ])
    ]) ext _106080
   ]) ext _106009
  ]) ext _105644
 ]) ext _105542
]).
