src/ZF/Resid/Terms.thy
author wenzelm
Thu, 26 Aug 1999 19:01:58 +0200
changeset 7367 a79d4683fadf
parent 6046 2c8a8be36c94
child 11319 8b84ee2cc79c
permissions -rw-r--r--
print_help;

(*  Title:      Terms.thy
    ID:         $Id$
    Author:     Ole Rasmussen
    Copyright   1995  University of Cambridge
    Logic Image: ZF
*)

Terms = Cube+

consts
  lambda        :: i
  unmark        :: i=>i
  Apl           :: [i,i]=>i

translations
  "Apl(n,m)" == "App(0,n,m)"
  
inductive
  domains       "lambda" <= "redexes"
  intrs
    Lambda_Var  "               n:nat ==>     Var(n):lambda"
    Lambda_Fun  "            u:lambda ==>     Fun(u):lambda"
    Lambda_App  "[|u:lambda; v:lambda|]==> Apl(u,v):lambda"
  type_intrs    "redexes.intrs@bool_typechecks"

primrec
  "unmark(Var(n)) = Var(n)"
  "unmark(Fun(u)) = Fun(unmark(u))"
  "unmark(App(b,f,a)) = Apl(unmark(f), unmark(a))"

end