src/HOL/Prolog/Func.ML
author wenzelm
Tue, 16 May 2006 13:01:23 +0200
changeset 19641 f1de44e61ec1
parent 17311 5b1d47d920ce
permissions -rw-r--r--
replaced low-level Term.str_of by Display.raw_string_of_term (should actually use Display.string_of_term);

(* Title:    HOL/Prolog/Func.ML
    ID:       $Id$
    Author:   David von Oheimb (based on a lecture on Lambda Prolog by Nadathur)
*)

val prog_Func = prog_HOHH @ [eval];
fun pgoal s = (case Goal s of _ => by (prolog_tac prog_Func));
val p = ptac prog_Func 1;

pgoal "eval ((S (S Z)) + (S Z)) ?X";

pgoal "eval (app (fix (%fact. abs(%n. cond (n eq Z) (S Z) \
                        \(n * (app fact (n - (S Z))))))) (S (S (S Z)))) ?X";