/*  This is a proof plan for theorem:
    prod_times: []==>u:pnat=>v:pnat list=>w:pnat=>prod(v)=w in pnat=>prod(u::v)=times(u,w)in pnat
    planner = dplan, clam_version(2.7.0), oyster_version(1.20)

    Time taken to find plan: 190ms
    Environment:
    []
 */

/* This is the pretty-printed form
base_case(...) then 
  generalise(prod(v),v0:pnat) then 
    normalize(...) then 
      base_case(...)

*/

proof_plan([]==>u:pnat=>v:pnat list=>w:pnat=>prod(v)=w in pnat=>prod(u::v)=times(u,w)in pnat,prod_times,190,base_case(sym_eval(normalize_term([reduction([1,1,2],[prod2,equ(pnat,left)])])))then[generalise(prod(v),v0:pnat)then[normalize([normal(univ_intro),normal(univ_intro),normal(univ_intro),normal(univ_intro),normal(imply_intro)])then[base_case(sym_eval(equal(v1,left))then[elementary(identity)])]]],dplan).
