1 (* Title: HOL/Prolog/HOHH.thy
2 Author: David von Oheimb (based on a lecture on Lambda Prolog by Nadathur)
5 header {* Higher-order hereditary Harrop formulas *}
13 {* Attrib.thms >> (fn thms => fn ctxt => SIMPLE_METHOD' (Prolog.ptac ctxt thms)) *}
14 "basic Lambda Prolog interpreter"
17 {* Attrib.thms >> (fn thms => fn ctxt => SIMPLE_METHOD (Prolog.prolog_tac ctxt thms)) *}
18 "Lambda Prolog interpreter"
22 (* D-formulas (programs): D ::= !x. D | D .. D | D :- G | A *)
23 Dand :: "[bool, bool] => bool" (infixr ".." 28)
24 Dif :: "[bool, bool] => bool" (infixl ":-" 29)
26 (* G-formulas (goals): G ::= A | G & G | G | G | ? x. G
27 | True | !x. G | D => G *)
28 (*Dand' :: "[bool, bool] => bool" (infixr "," 35)*)
29 Dimp :: "[bool, bool] => bool" (infixr "=>" 27)
34 "D1 .. D2" => "D1 & D2"
35 (*"G1 , G2" => "G1 & G2"*)