gpt4 book ai didi

coq - 如何在当前目标的子表达式上使用重写

转载 作者:行者123 更新时间:2023-12-04 15:24:37 24 4
gpt4 key购买 nike

在 coq 中,是否有可能将引理或假设应用于当前目标的子表达式?例如,我想应用加号是可交换的这一事实,以便在此示例中交换 3 和 4。

Require Import Coq.Arith.Plus.

Inductive foobar : nat -> Prop :=
| foob : forall n:nat, foobar n.

Goal foob (3 + 4) = foob (4 + 3).
Proof.
apply plus_comm. (* or maybe rewrite plus_comm *)

给出:
Error: Impossible to unify "?199 + ?200 = ?200 + ?199" with
"foob (3 + 4) = foob (4 + 3)".

我如何告诉 coq 在这个目标中的哪个位置应用 plus_comm?

最佳答案

使用战术simpl有效,但不要问我为什么rewrite plus_commrewrite (plus_comm 3 4)不起作用。 apply是为了含义,而不是方程。

关于coq - 如何在当前目标的子表达式上使用重写,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13645979/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com