【发布时间】:2021-07-14 02:08:48
【问题描述】:
我正在尝试定义一个函数,它接受一个集合和一个关系并返回一个布尔值,告诉该关系是否在集合上是自反的。我试图这样定义它:
definition refl::"'a set⇒('a×'a) set⇒bool" where
"refl A R = (∀x. x∈A⟹(x,x)∈R)"
但伊莎贝尔给了我以下错误:
Type unification failed: Clash of types "prop" and "bool"
Type error in application: incompatible operand type
Operator: (=) (refl A R) :: bool ⇒ bool
Operand: ∀x. x ∈ A ⟹ (x, x) ∈ R :: prop
我似乎找不到任何函数可以将“prop”强制转换为“bool”。我还尝试更改定义以设置 RHS = True,但我得到了同样的错误。 定义我的函数的正确方法是什么?
【问题讨论】:
标签: isabelle