在inductive_set中使用mono属性

时间:2014-06-06 17:21:31

标签: isabelle

我努力证明我的inductive_set满足必要的单调性要求。有人可以告诉我这里做错了吗?

theory Scratch imports Main begin

consts foo :: "'a set ⇒ 'a set"

lemma foo_mono [mono]:
 "x ⊆ y ⟶ foo x ⊆ foo y"
sorry

inductive_set blah :: "'a set"
where
  "x ∈ foo blah ⟹ x ∈ blah"
monos foo_mono

end

1 个答案:

答案 0 :(得分:2)

如果你说出像这样的单调性引理,那就有用了:

lemma foo_mono [mono_set]:
 "A ⊆ B ⟹ x ∈ foo A ⟶ x ∈ foo B"

另请注意,如果您希望mono_set自动使用引理,则应使用mono属性而不是inductive_set。也就是说,使用mono_set会使monos命令上的inductive_set子句变得不必要。