I think I just learned something about MP_TAC, that these are different:
MP_TAC t THEN MESON_TAC[]
MESON_TAC[t]
This is important to me because of the HOL Light tutorial's Mizar-like 
definitions
let by labs tac = MAP_EVERY (fun l -> USE_THEN l MP_TAC) labs THEN tac;;
let using ths tac = MAP_EVERY MP_TAC ths THEN tac;;
where the tutorial recommends MESON_TAC[] as a possible "tac".  In this case 
I've used instead something I imagined was the same:  with 
let mby labs ths = MAP_EVERY (fun l -> USE_THEN l MP_TAC) labs THEN 
  (MESON_TAC ths);;
But this example below indicates they're not the same.

needs "Multivariate/vectors.ml";; 

g `!u v w:real^2. 
        ~(v = w) /\ independent {v,w} ==> ?s t. s % v + t % w = u`;;
e(REPEAT STRIP_TAC);;
e(SUBGOAL_THEN `rank (transp (vector [v; w]):real^2^2) = dimindex (:2)
        ==> ?x:real^2. transp (vector [v; w]) ** x = u` ASSUME_TAC);;
e(MESON_TAC[MATRIX_FULL_LINEAR_EQUATIONS]);;

(* That worked!  But this times out: *)

g `!u v w:real^2. 
        ~(v = w) /\ independent {v,w} ==> ?s t. s % v + t % w = u`;;
e(REPEAT STRIP_TAC);;
e(SUBGOAL_THEN `rank (transp (vector [v; w]):real^2^2) = dimindex (:2)
        ==> ?x:real^2. transp (vector [v; w]) ** x = u` ASSUME_TAC);;
e(MP_TAC MATRIX_FULL_LINEAR_EQUATIONS THEN   MESON_TAC[]);;

(* -- 
Best,
Bill *)

------------------------------------------------------------------------------
Master Visual Studio, SharePoint, SQL, ASP.NET, C# 2012, HTML5, CSS,
MVC, Windows 8 Apps, JavaScript and much more. Keep your skills current
with LearnDevNow - 3,200 step-by-step video tutorials by Microsoft
MVPs and experts. ON SALE this month only -- learn more at:
http://p.sf.net/sfu/learnnow-d2d
_______________________________________________
hol-info mailing list
hol-info@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/hol-info

Reply via email to