theory Code_String
imports
"~~/src/HOL/Library/Code_Char"
"../../Collections/Refine_Dflt"
begin
instantiation String.literal :: hashable
begin
definition hashcode_literal :: "String.literal => uint32"
where "hashcode_literal s = hashcode (String.explode s)"
definition def_hashmap_size_literal
:: "String.literal itself => nat" where
"def_hashmap_size_literal _ = 10"
instance proof
qed (simp_all only: def_hashmap_size_literal_def)
end
context
includes literal.lifting
begin
lift_definition literal_append
:: "String.literal => String.literal => String.literal" (infixr "@@" 65)
is "op @" .
end
lifting_update literal.lifting
lifting_forget literal.lifting
code_printing
constant literal_append \<rightharpoonup>
(SML) infixr 5 "^"
and (Haskell) infixr 5 "++"
and (OCaml) infixr 5 "^"
end