我特林与this one定义类推以下功能:如何查找数据类型的构造函数?
fun int_divide :: "int option ⇒ int option ⇒ real option" where
"int_divide _ (Some (int 0)) = None"
| "int_divide (Some a) (Some b) = Some (a/b)"
| "int_divide _ _ = None"
fun real_divide :: "real option ⇒ real option ⇒ real option" where
"real_divide _ (Some (real 0)) = None"
| "real_divide (Some a) (Some b) = Some (a/b)"
| "real_divide _ _ = None"
但这些类型没有int
或real
构造。 int
和real
类型被定义为quotient_type
。我找不到在理论上看起来像构造函数的东西。
下面的定义不工作:
definition int0 :: "int" where
"int0 = Abs_Integ (0,0)"
fun int_divide :: "int option ⇒ int option ⇒ real option" where
"int_divide _ (Some int0) = None"
| "int_divide (Some a) (Some b) = Some (a/b)"
| "int_divide _ _ = None"
如何找到一个类型的所有构造函数?或者至少对于quotient_type
?或者如何定义所需的构造函数?