Hi Jiaqi Tan,

You will need to prove the first two conjuncts at some point. The second
one is already an assumption, so that's easy, but the first one looks like
it might be false. If you can prove them, then the remaining conjunct
(SPEC) should indeed be true by the SPEC_FRAME theorem. One way you could
do this is:

conj_asm1_tac >- (* proof for the first conjunct *) >>
conj_tac >- first_assum ACCEPT_TAC >>
metis_tac[SPEC_FRAME]

Cheers,
Ramana


On Sat, Aug 16, 2014 at 12:44 AM, Jiaqi Tan <tanji...@cmu.edu> wrote:

> Hi,
>
> I am using the Hoare logic in examples/machine-code, and I encountered
> this subgoal in a proof I am working on:
>
> val msf1111 =
>    ([([``SPEC x (cond ms * p') {(offset,ins)} q``,
>        ``c = {(offset,ins)}``,
>        ``p = cond ms * p'``],
>       ``(p * r = cond ms * p') ∧ (c = {(offset,ins)}) ∧
>   SPEC x (cond ms * p') {(offset,ins)} (q * r)``)],
>     fn): goal list * validation
>
>
> It seems like the first and second conjuncts "(p * r = cond ms * p')" and
> "(c = {(offset,ins)})" in the goal term are just syntactic rewrites that
> can be rewritten into the third conjunct, "SPEC x (cond ms * p')
> {(offset,ins)} (q * r)".
>
> I am trying to prove the goal using the SPEC_FRAME theorem (Hoare logic
> frame rule, "|- ∀x p c q. SPEC x p c q ⇒ ∀r. SPEC x (p * r) c (q * r)"),
> but I can't get the goal to match the form in SPEC_FRAME because of the
> first two conjuncts ("(p * r = cond ms * p')" and "(c = {(offset,ins)})")
> in the goal term. Is there any way to force the first two conjuncts to be
> rewritten into the pre- and post-conditions of the SPEC term in the goal
> term so that I can use the SPEC_FRAME theorem to prove the goal?
>
> Or am I misunderstanding the meaning of the first two conjuncts ("(p * r =
> cond ms * p')" and "(c = {(offset,ins)})") in the goal term?
>
> Thank you!
>
> Regards,
> Jiaqi Tan
>
>
>
> ------------------------------------------------------------------------------
>
> _______________________________________________
> hol-info mailing list
> hol-info@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/hol-info
>
>
------------------------------------------------------------------------------
_______________________________________________
hol-info mailing list
hol-info@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/hol-info

Reply via email to