如何在Isabelle / HOL中定义语法注释

时间:2017-06-05 14:39:37

标签: isabelle

我试图在Isabelle / HOL中定义Hoare逻辑的有效四倍⊨{P} c×c'{Q},其中c和c'是命令,P和Q是断言。断言定义为:

type_synonym assn = "state × state ⇒ bool"

我已将有效四元组定义如下:

definition 
rel_hoare_valid :: "assn ⇒ com × com ⇒ assn ⇒ bool" ("⊨ {(1_)}/ (_)/ {(1_)}" 50) 
where "⊨ {P}c×c'{Q} = ..."

...包含其余的代码,这是不相关的。

我知道语法注释部分

("⊨ {(1_)}/ (_)/ {(1_)}" 50) 

不正确,但我不知道如何修复它。

错误消息如下:

Type unification failed: Clash of types "_ set" and "_ × _"

Type error in application: incompatible operand type

Operator:  rel_hoare_valid P :: com × com ⇒ ((char list ⇒ int) × (char 
list ⇒ int) ⇒ bool) ⇒ bool
Operand:   c × c' :: (??'a × ??'b) set

0 个答案:

没有答案