From tfm%computer-lab.cambridge.ac.uk Thu, 1 Jun 89
Date: Thu, 1 Jun 89 23:21:01 BST
From: Tom Melham <tfm%computer-lab.cambridge.ac.uk>
To: info-hol%clover.ucdavis.edu
Subject: ... another similar bug.
Status: RO

Re: my last message.
My bug report achive also shows that I found a similar problem in
DISJ_CASES_THEN2  (not a tactic that's used at top-level a lot).

There was also a proposed fix for this bug, which seems also not to
have been installed.  Again, I'll look at it sometime and install an
appropriate fix.  Meanwhile, here's the fix from my archive:

let DISJ_CASES_THEN2 ttac1 ttac2 disth :tactic  =
    let a1,a2 = dest_disj (concl disth) ? failwith `DISJ_CASES_THEN2` in
    \(asl,w).
     let gl1,prf1 = ttac1 (itlist ADD_ASSUM (hyp disth) (ASSUME a1)) (asl,w)
     and gl2,prf2 = ttac2 (itlist ADD_ASSUM (hyp disth) (ASSUME a2)) (asl,w)
     in
     gl1 @ gl2,
     \thl. let thl1,thl2 = chop_list (length gl1) thl in
           DISJ_CASES disth (prf1 thl1) (prf2 thl2);;

DISCLAIMER: I've not looked closely at this recently, and it may not work
just right.  Unfortunately, I haven't got the time just now to check it.
So don't install it right away, unless you're convinced it'll work...

Tom



