src/HOL/Tools/Predicate_Compile/code_prolog.ML
changeset 51126 df86080de4cb
parent 46961 5c6955f487e5
child 51314 eac4bb5adbf9
equal deleted inserted replaced
51125:f90874d3a246 51126:df86080de4cb
   954     val _ = tracing "Running prolog program..."
   954     val _ = tracing "Running prolog program..."
   955     val system_config = System_Config.get (Context.Proof ctxt)
   955     val system_config = System_Config.get (Context.Proof ctxt)
   956     val tss = run (#timeout system_config, #prolog_system system_config)
   956     val tss = run (#timeout system_config, #prolog_system system_config)
   957       p (translate_const constant_table' name, args') output_names soln
   957       p (translate_const constant_table' name, args') output_names soln
   958     val _ = tracing "Restoring terms..."
   958     val _ = tracing "Restoring terms..."
   959     val empty = Const("Orderings.bot_class.bot", fastype_of t_compr)
   959     val empty = Const(@{const_name bot}, fastype_of t_compr)
   960     fun mk_insert x S =
   960     fun mk_insert x S =
   961       Const (@{const_name "Set.insert"}, fastype_of x --> fastype_of S --> fastype_of S) $ x $ S 
   961       Const (@{const_name "Set.insert"}, fastype_of x --> fastype_of S --> fastype_of S) $ x $ S 
   962     fun mk_set_compr in_insert [] xs =
   962     fun mk_set_compr in_insert [] xs =
   963        rev ((Free ("dots", fastype_of t_compr)) ::  (* FIXME proper name!? *)
   963        rev ((Free ("dots", fastype_of t_compr)) ::  (* FIXME proper name!? *)
   964         (if null in_insert then xs else (fold mk_insert in_insert empty) :: xs))
   964         (if null in_insert then xs else (fold mk_insert in_insert empty) :: xs))