(* Author: Florian Haftmann, TU Muenchen *)
header {* Pervasive test of code generator *}
theory Generate_Binary_Nat
imports
Candidates
"~~/src/HOL/Library/AList_Mapping"
"~~/src/HOL/Library/Finite_Lattice"
"~~/src/HOL/Library/Code_Binary_Nat"
begin
text {*
If any of the checks fails, inspect the code generated
by a corresponding @{text export_code} command.
*}
text {* Formal joining of hierarchy of implicit definitions in Scala *}
class semiring_numeral_even_odd = semiring_numeral_div + even_odd
instance nat :: semiring_numeral_even_odd ..
definition semiring_numeral_even_odd :: "'a itself \<Rightarrow> 'a::semiring_numeral_even_odd"
where
"semiring_numeral_even_odd TYPE('a) = undefined"
definition semiring_numeral_even_odd_nat :: "nat itself \<Rightarrow> nat"
where
"semiring_numeral_even_odd_nat = semiring_numeral_even_odd"
export_code _ checking SML OCaml? Haskell? Scala
end