method compute =
      begin

        exported <- None ;
        Wp_error.set_model Descr.name ;
        D.clear () ;
        let env = Wpo.new_env ~context:Descr.context in
        let export = { env=env ; goals=[] } in

        (* Generates Wpos and accumulate exported goals *)
        List.iter
          (fun (cfg,strategies) ->
             let kf = Cil2cfg.cfg_kf cfg in
             let names = WpAnnot.missing_rte kf in
             if names <> [] then 
               Wp_parameters.warning ~current:false ~once:true
                 "Missing RTE guards" ;
             List.iter
               (fun strategy ->
                  !Db.progress ();
                  let bhv = strategy.WpAnnot.behavior_name in
                  let goals,annotations = WP.compute cfg strategy in
                  if Wp_parameters.Dot.get () then
                    ignore (Cil2cfg.dot_wp_res cfg Descr.shared annotations) ;
                  List.iter
                    (List.iter
                       (add_goal export kf bhv))
                    goals
               ) strategies
          ) wptasks ;

        if export.goals <> [] then
          begin
            
            (* --- Env Description --- *)
            Command.pp_to_file (Wpo.file_for_ctxt ~env)
              (fun fmt -> D.iter_all (fun d -> F.pp_decl fmt d)) ;
            
            (* --- WHY Others --- *)
            Command.pp_to_file (Wpo.file_for_env ~env Wpo.why)
              (fun fmt -> D.iter_all (fun d -> Why.export_decl fmt d)) ;
            
            (* --- COQ --- *)
            Command.pp_to_file (Wpo.file_for_env ~env Wpo.Coq)
              (fun fmt -> 
                 Format.fprintf fmt 
                   "Require Import Reals.@\nRequire Import wp.@\nRequire Import %s.@\n"
                   (Wpo.coq_for_model Descr.shared) ;
                 D.iter_all (fun d -> Coq.export_decl fmt d)) ;
            
            (* --- Alt-Ergo 91 --- *)
            Command.pp_to_file (Wpo.file_for_env ~env Wpo.AltErgo91)
              (fun fmt -> D.iter_all (fun d -> Ergo91.export_decl fmt d)) ;
            
            (* --- Alt-Ergo 92 --- *)
            Command.pp_to_file (Wpo.file_for_env ~env Wpo.AltErgo92)
              (fun fmt -> D.iter_all (fun d -> Ergo92.export_decl fmt d)) ;
            
          end
        else
          Wpo.release_env env ;
            
        (* --- Generated Goals --- *)
        export.goals

      end