Require Import ProofWeb.
Variables x y z a : D.
Variables p: D * D * D -> Prop.
Theorem letra_a : (all x, p(a,x,x) /\ (all x, ( all y, ( all z, p(x,y,z))) -> p(f(x),y,f(z)))) -> p(f(a),a,f(a)).
Proof.
intros.
imp_e (p(a,a,a)).
destruct H.
现在问题出在哪里,我需要 p(a,a,a) - > p(f a,a,f a) 这很明显 全部x,全y,全z,p(x,y,z) - > p(f x,y,f z) 只需要实例化x,y和z = a,但我不能。我这里没有接受任何事情。
f_all_e H0.
给我错误:战术失败: (论证不是普遍量化的公式或不符合目标)。
如果我试试 all_e(全x,全y,全z,p(x,y,z) - > p(f x,y,f z))。 错误:战术失败:(参数不是通用量化)。
你能帮帮忙吗?我已经开始全面挖掘Coq信息,打印PDF,一直在尝试,但仍然无法掌握Coq的语法和逻辑流程,我仍然在其中迷失了。提前感谢任何指针!
找到解决方案:
Theorem letra_c : (all y, q b y) /\ (all x, (all y, (q x y -> q (s x) (s y))) ) -> ( exi z, (q b z /\ q z (s (s b))) ).
Proof.
intros.
destruct H.
exi_i (s b).
con_i.
apply H.
imp_e (q b (s b)).
all_e (all y, (q b y -> q (s b) (s y))).
all_e (all x, (all y0, (q x y0 -> q (s x) (s y0)))).
apply H0.
apply H.
Qed.
答案 0 :(得分:1)
H : all x, p (a, x, x)
H0 : all x, all y, all z, p (x, y, z) -> p (f x, y, f z)
H1 : p (a, a, a)
============================
p (f a, a, f a)
在常规Coq中,您可以:
apply H0
,可以轻松解决目标p (a, a, a)
;
specialize (H0 a a a)
,会为您提供H0: p (a, a, a) -> p (f a, a, f a)
;
或者只是去exact (H0 _ _ _ H1)
并完成它。
现在,我尝试使用http://prover.cs.ru.nl/index.html来完成目标,但我也找不到命令。
我会考虑某种前向的消除或后退的模式,但我也无法使其发挥作用。你有这方面的文件吗?