src/HOL/Tools/Predicate_Compile/code_prolog.ML
changeset 42489 db9b9e46131c
parent 42361 23f352990944
child 43324 2b47822868e4
equal deleted inserted replaced
42488:4638622bcaa1 42489:db9b9e46131c
   954     val _ = tracing "Restoring terms..."
   954     val _ = tracing "Restoring terms..."
   955     val empty = Const("Orderings.bot_class.bot", fastype_of t_compr)
   955     val empty = Const("Orderings.bot_class.bot", fastype_of t_compr)
   956     fun mk_insert x S =
   956     fun mk_insert x S =
   957       Const (@{const_name "Set.insert"}, fastype_of x --> fastype_of S --> fastype_of S) $ x $ S 
   957       Const (@{const_name "Set.insert"}, fastype_of x --> fastype_of S --> fastype_of S) $ x $ S 
   958     fun mk_set_compr in_insert [] xs =
   958     fun mk_set_compr in_insert [] xs =
   959        rev ((Free ("...", fastype_of t_compr)) ::
   959        rev ((Free ("dots", fastype_of t_compr)) ::  (* FIXME proper name!? *)
   960         (if null in_insert then xs else (fold mk_insert in_insert empty) :: xs))
   960         (if null in_insert then xs else (fold mk_insert in_insert empty) :: xs))
   961       | mk_set_compr in_insert (t :: ts) xs =
   961       | mk_set_compr in_insert (t :: ts) xs =
   962         let
   962         let
   963           val frees = Term.add_frees t []
   963           val frees = Term.add_frees t []
   964         in
   964         in