Hi Haitao,

You can introduce the conjunction among the antecedents as:


 val GEN_IMP_TRANS_conj = (REWRITE_RULE [GSYM satTheory.AND_IMP]
GEN_IMP_TRANS);

val GEN_IMP_TRANS_conj =
   ⊢ ∀P Q R S. (∀x. P x ⇒ Q (R x)) ∧ (∀x. Q x ⇒ S x) ⇒ ∀x. P x ⇒ S (R x):
thm


On Tue, Mar 19, 2019 at 5:30 AM Haitao Zhang <zhtp...@gmail.com> wrote:

> I have two assumptions both in implicative forms with universal
> quantification. I would like to obtain an MP in the spirit of the following
> theorem:
>
> val GEN_IMP_TRANS = store_thm("GEN_IMP_TRANS",
>     ``!P Q R S. (!x. P x ==> Q (R x)) ==> (!x. Q x ==> S x) ==> (!x. P x
> ==> S (R x))``,
>     metis_tac []);
>
> However if I use drule with the theorem the antecedent of the resolution
> is put into a conjunction (the last forall is moved left and the antecedent
> becomes (!x. Q x ==> S x) /\ P x') and can not be used to resolve against
> the second assumption. Any suggestions?
>
> Thanks,
> Haitao
> _______________________________________________
> hol-info mailing list
> hol-info@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/hol-info
>


-- 
Waqar Ahmad, Ph.D.
Post Doc at Hardware Verification Group (HVG)
Department of Electrical and Computer Engineering
Concordia University, QC, Canada
Web: http://save.seecs.nust.edu.pk/waqar-ahmad/
_______________________________________________
hol-info mailing list
hol-info@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/hol-info

Reply via email to