Theory FpSem
chapter ‹Generated by Lem from ‹semantics/fpSem.lem›.›
theory "FpSem"
imports
Main
"HOL-Library.Datatype_Records"
"LEM.Lem_pervasives"
"Lib"
"IEEE_Floating_Point.FP64"
begin
datatype fp_cmp_op = FP_Less | FP_LessEqual | FP_Greater | FP_GreaterEqual | FP_Equal
datatype fp_uop_op = FP_Abs | FP_Neg | FP_Sqrt
datatype fp_bop_op = FP_Add | FP_Sub | FP_Mul | FP_Div
fun fp_cmp :: " fp_cmp_op ⇒ 64 word ⇒ 64 word ⇒ bool " where
" fp_cmp FP_Less = ( fp64_lessThan )"
|" fp_cmp FP_LessEqual = ( fp64_lessEqual )"
|" fp_cmp FP_Greater = ( fp64_greaterThan )"
|" fp_cmp FP_GreaterEqual = ( fp64_greaterEqual )"
|" fp_cmp FP_Equal = ( fp64_equal )"
fun fp_uop :: " fp_uop_op ⇒ 64 word ⇒ 64 word " where
" fp_uop FP_Abs = ( fp64_abs )"
|" fp_uop FP_Neg = ( fp64_negate )"
|" fp_uop FP_Sqrt = ( fp64_sqrt To_nearest )"
fun fp_bop :: " fp_bop_op ⇒ 64 word ⇒ 64 word ⇒ 64 word " where
" fp_bop FP_Add = ( fp64_add To_nearest )"
|" fp_bop FP_Sub = ( fp64_sub To_nearest )"
|" fp_bop FP_Mul = ( fp64_mul To_nearest )"
|" fp_bop FP_Div = ( fp64_div To_nearest )"
end