src/HOL/Tools/SMT/smtlib_interface.ML
changeset 41426 09615ed31f04
parent 41328 6792a5c92a58
child 41473 3717fc42ebe9
equal deleted inserted replaced
41424:7ee22760436c 41426:09615ed31f04
   128 fun ssort sorts = sort fast_string_ord sorts
   128 fun ssort sorts = sort fast_string_ord sorts
   129 fun fsort funcs = sort (prod_ord fast_string_ord (K EQUAL)) funcs
   129 fun fsort funcs = sort (prod_ord fast_string_ord (K EQUAL)) funcs
   130 
   130 
   131 fun sdatatypes decls =
   131 fun sdatatypes decls =
   132   let
   132   let
   133     fun con (n, []) = add n
   133     fun con (n, []) = sep (add n)
   134       | con (n, sels) = par (add n #>
   134       | con (n, sels) = par (add n #>
   135           fold (fn (n, s) => sep (par (add n #> sep (add s)))) sels)
   135           fold (fn (n, s) => par (add n #> sep (add s))) sels)
   136     fun dtyp (n, decl) = add n #> fold (sep o con) decl
   136     fun dtyp (n, decl) = add n #> fold con decl
   137   in line (add ":datatypes " #> par (fold (par o dtyp) decls)) end
   137   in line (add ":datatypes " #> par (fold (par o dtyp) decls)) end
   138 
   138 
   139 fun serialize comments {header, sorts, dtyps, funcs} ts =
   139 fun serialize comments {header, sorts, dtyps, funcs} ts =
   140   Buffer.empty
   140   Buffer.empty
   141   |> line (add "(benchmark Isabelle")
   141   |> line (add "(benchmark Isabelle")