如何证明在达夫尼的普遍介绍

问题描述

我正在尝试寻找策略来证明Dafny中普遍量化的断言。我看到Dafny证明了普遍淘汰 很容易:

predicate P<X>(k:X)
 lemma unElim<X>(x:X)    
 ensures  (forall a:X  :: P(a)) ==> P(x)
 {  }
lemma elimHyp<H> () 
  ensures forall k:H :: P(k)
 lemma elimGoal<X> (x:X)
    ensures P(x)
  { elimHyp<X>(); }

但是我找不到如何证明引入规则:

//lemma unInto<X>(x:X)    
// ensures  P(x) ==> (forall a:X :: P(a))
// this definition is wrong 

lemma introHyp<X> (x:X)
    ensures P(x)
lemma introGoal<H> () 
  ensures forall k:H :: P(k)
{ }

赞赏所有想法

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)