对于像这样的示例引理:
lemma someFuncLemma: "∀ (e::someType) . pre_someFunc 2 e"
在使用quickcheck时给出以下内容:
Auto Quickcheck found a counterexample:
e = - 1
或使用Nitpick时(这不是真正的重点):
Nitpick found a counterexample:
Skolem constant:
e = - 1
我怎样才能使用这个反例来完成证明?
如您所见,我对Isabelle和PO不是很熟悉。
感谢您的帮助!
答案 0 :(得分:2)
反例的存在通常表明你无法证明自己的主张,除非
反例是虚假的;
基础逻辑不一致。
答案 1 :(得分:0)
我假设您要证明存在一些e
,pre_someFunc 2 e
为假。您必须更改引理以使用 exists 而不是 forall ,并使用而不是为谓词添加前缀:
lemma "∃e::someType. ¬(pre_someFunc 2 e)"
然后,您可以使用rule exI[where x=...]
提供反例,该x
会将exI
中的自由变量exI
设置为某个内容。您可以在Isabelle JEdit中按住x
时查看Ctrl
的定义以及如何使用lemma "∃n :: nat. ¬ odd n"
apply (rule exI[where x=2])
apply simp
done
。
一个简单的例子:
lv.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> arg0, View arg1,
int arg2, long arg3) {
// TODO Auto-generated method stub
String strName = listitem.get(arg2).getOppid();
Toast.makeText(Welcome.this, strName, Toast.LENGTH_LONG)
.show();
Intent intent = new Intent(getApplicationContext(), Second_activity.class);
intent.putExtra("name", strName);//add this line
startActivity(intent);
}
});