src/HOL/Tools/Predicate_Compile/code_prolog.ML
changeset 41307 bb8468ae414e
parent 41067 c78a2d402736
child 41472 f6ab14e61604
equal deleted inserted replaced
41306:95449e4b4bf6 41307:bb8468ae414e
   855     val renaming = fold mk_renaming (fold add_vars args vnames) [] 
   855     val renaming = fold mk_renaming (fold add_vars args vnames) [] 
   856     val vnames' = map (fn v => the (AList.lookup (op =) renaming v)) vnames
   856     val vnames' = map (fn v => the (AList.lookup (op =) renaming v)) vnames
   857     val args' = map (rename_vars_term renaming) args
   857     val args' = map (rename_vars_term renaming) args
   858     val prog = prelude system ^ query system nsols (query_rel, args') vnames' ^ write_program p
   858     val prog = prelude system ^ query system nsols (query_rel, args') vnames' ^ write_program p
   859     val _ = tracing ("Generated prolog program:\n" ^ prog)
   859     val _ = tracing ("Generated prolog program:\n" ^ prog)
   860     val solution = TimeLimit.timeLimit timeout (fn prog => Cache_IO.with_tmp_file "prolog_file" (fn prolog_file =>
   860     val solution = TimeLimit.timeLimit timeout (fn prog =>
   861       (File.write prolog_file prog; invoke system (Path.implode prolog_file)))) prog
   861       Isabelle_System.with_tmp_file "prolog_file" (fn prolog_file =>
       
   862         (File.write prolog_file prog; invoke system (Path.implode prolog_file)))) prog
   862     val _ = tracing ("Prolog returned solution(s):\n" ^ solution)
   863     val _ = tracing ("Prolog returned solution(s):\n" ^ solution)
   863     val tss = parse_solutions solution
   864     val tss = parse_solutions solution
   864   in
   865   in
   865     tss
   866     tss
   866   end
   867   end