Thanks for the great response, John!  I'm sorry it took me so long to respond, 
and I still don't have a good response, but:

l think I see what you're saying about MP_TAC, MESON_TAC and FREEZE_THEN, and 
I'll have to do more experiments.  

I ought to learn how parse_preterm works, and I would if I really stared at 
parser.ml.  But I'm missing the point, I think.  Let me explain my problem 
thinking about my readable.ml.  Here's more or less the BNF syntax for the 
tactics proofs I'm accepting, modelled on Freek's miz3:

Proof := Tactic | Thm_Tactic Thm | Thm List -> Tactic listof {label | Thm} | 
         "intro_TAC" string | 
         "consider" listof {Var} "such that" statement [label] Proof |
         "raa" statement [label] Proof | "assume" statement [label] Proof | 
         "proof"  listof {Proof} "qed" | 
         "case_split DESTRUCT listof {statement} Proof
         listof {"suppose" statement Proof "end"} 

Now the syntax of the actual proofs (which are strings) are modelled on Freek's 
miz3 syntax.  So I have recursive functions which turn a long string proof into 
a Proof as above.  Well, I figure it would be simpler to have an intermediate 
step which is a tree.  In Scheme, which is untyped, I think I could easily do 
that.  But these trees I'd want to build are so un-homogeneous, that I think it 
would be hard for me to define such trees or write a string_proof -> tree 
function.  Somehow I think that's the point of your parser suite, which Freek's 
miz3 uses heavily, but I'm not getting it yet.  

-- 
Best,
Bill 

------------------------------------------------------------------------------
This SF.net email is sponsored by Windows:

Build for Windows Store.

http://p.sf.net/sfu/windows-dev2dev
_______________________________________________
hol-info mailing list
hol-info@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/hol-info

Reply via email to