The paper describing the work in examples/logic/ltl will appear at ITP this 
year.  Because there's a slight CakeML angle to it, it's available from 
cakeml.org at https://cakeml.org/itp18.pdf.

You are right that this work could be described as a deep embedding. 

Deep embeddings usually have the advantage that you can describe algorithms on 
the syntax, and not just have to think about the semantic values. For example, 
you can describe the NNF transformation when you have a deep embedding, but the 
best option for something similar with a shallow embedding is a statement of 
some equivalences between different semantic formulations of the same thing. 

It's also obviously useful to have a type corresponding to the syntax if you 
are going to define computable functions to traverse over it and transform it 
into automata (as is done in our work).

Michael

On 19/5/18, 00:42, "Chun Tian" <binghe.l...@gmail.com> wrote:

    Hi,
    
    I saw how the new LTL formalization (in `examples/logic/ltl`) by Simon 
Jantsch suddenly appeared in the past months and because more and more complete 
also with help of HOL maintainers. But there’s already an older LTL 
formalization (in `src/temporal`) since long time ago, done by Klaus Schneider 
et al. [1]
    
    My first question: is there a paper (in PDF, published or unpublished) 
documenting the work in `examples/logic/ltl` so that I can learn beside looking 
at raw HOL scripts?
    
    Second question: regarding the difference between two versions of LTL 
formalizations, can I say the work in `examples/logic/ltl` is a *deep* 
embedding? (because it has to define the LTL syntax by a datatype:
    
    val _ = Datatype`
      ltl_frml
      = VAR 'a
      | N_VAR 'a
      | DISJ ltl_frml ltl_frml
      | CONJ ltl_frml ltl_frml
      | X ltl_frml
      | U ltl_frml ltl_frml
      | R ltl_frml ltl_frml`;
    )
    
        while the work in `src/temporal` is *shallow* embedding? (because it 
embeds LTL term into HOL as ``:num -> bool`` without using any datatype)
    
        and if so, what’s the pros and cons for choosing one of them as a 
working basis (for proving further results)?
    
    Third question: is there a way to connect the two versions of LTL, so that 
LTL theorems proved from one side can be (somehow) automatically translated 
into theorems on the other side?
    
    Regards,
    
    Chun
    
    [1] Schneider, K., Hoffmann, D.W.: A HOL Conversion for Translating Linear 
Time Temporal Logic to ω-Automata. In: Bassiliades, N., Gottlob, G., Sadri, F., 
Paschke, A., and Roman, D. (eds.) LNCS 9202 - Rule Technologies: Foundations, 
Tools, and Applications. pp. 255–272. Springer Berlin Heidelberg, Berlin, 
Heidelberg (1999).
    
    
    
    
    
    

------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
_______________________________________________
hol-info mailing list
hol-info@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/hol-info

Reply via email to