2012-08-30 63 views
0
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(FA,一,FA) 這是從 所有的X,Y全部,所有的Z,P很明顯(x,y,z) - > p(fx,y,fz) 只需要實例化x,y和z = a,但我不能。我沒有做任何事情在這裏被接受Coq:實例化多重泛化?

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. 

回答

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) 

在常規勒柯克,你既可以:

  • 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來完成你的目標,但我不能完全要麼找到的命令。

我會考慮某種前向消除或向後的方式ponens,但我也無法使其工作。你有這個文件嗎?

+0

嗨。我想我在#irc看到你的暱稱了?感謝您的幫助。 我結束瞭解決這樣的: 變量問:d - > d - >支柱 變量S:d - > D. 變量B:D. 定理letra_c:(所有的Y,QBY)/ \ (所有x,所有y,qxy→q(sx)(sy))→(exi z,qbz/\ qz(s(sb)))。 證明。 介紹。 破壞H. con_i。 exi_i。 適用H. Qed。 昨天,我放棄了昨天的幾個小時後...... 非常感謝,再次。 –

+0

也許發佈您的解決方案作爲答案,並將其標記爲接受。 - 是的,我在IRC上 – Ptival