如何使用Coq aac战术来证明目标的平等性?

时间:2016-06-25 06:06:19

标签: coq coq-plugin

我猜测Coq aac_tactics(8.5p1)应该能够处理assoc。和交换。但我无法弄清楚如何使用它证明简单的等式,如

2 + y + 5 = 7 + y

例如:

Require Import AAC_tactics.AAC.
Require Import AAC_tactics.Instances.
Goal forall y: nat, 2 + y + 5 = 7 + y.
intros ?.  
aac_reflexivity.

生成错误:

  

错误:战术失败:不是模数A / AC的等式。

将最后一个战术更改为aac_normalise也无法解决问题。

如何使用AAC证明这些目标?

1 个答案:

答案 0 :(得分:0)

文档非常缺乏,所以我只能猜测你的例子需要一些显式的重写(基本上,你需要显示@Override public void setUserVisibleHint(boolean isVisibleToUser) { if (!isVisibleToUser) { return; } addInnerFragment(); } private void addInnerFragment() { if (getInnerFragment() != null && getInnerFragment().isAdded()) { return; } FragmentTransaction transaction = getChildFragmentManager().beginTransaction(); transaction.replace( R.id.fragment_container, getInnerFragment(), FRAGMENT_TAG); transaction.commit(); } private Fragment getInnerFragment() { if (mInnerFragment != null) { return mInnerFragment; } // The fragment could have already been added if we're coming back from a savedInstanceState. Fragment fragment = getChildFragmentManager().findFragmentById(R.id.fragment_container); if (fragment != null) { // Verified using debugger that this condition is being hit when I come // back to `N` mInnerFragment = fragment; return mInnerFragment; } mInnerFragment = InnerFragment.newInstance(); return mInnerFragment; } )。

请注意,下一个示例有效,因为它不需要5 + 2 = 7

这一事实
5 + 2 = 7

所以,如果我像这样做原始的例子:

Goal forall y : nat, 2 + y + 5 = 5 + y + 2.
  intros ?.
  aac_reflexivity.
Qed.
相关问题