src/HOL/Lambda/ParRed.thy
author nipkow
Thu Mar 30 19:45:51 2000 +0200 (2000-03-30)
changeset 8624 69619f870939
parent 5146 1ea751ae62b2
child 9811 39ffdb8cab03
permissions -rw-r--r--
recdef.rules -> recdef.simps
     1 (*  Title:      HOL/Lambda/ParRed.thy
     2     ID:         $Id$
     3     Author:     Tobias Nipkow
     4     Copyright   1995 TU Muenchen
     5 
     6 Parallel reduction and a complete developments function "cd".
     7 *)
     8 
     9 ParRed = Lambda + Commutation +
    10 
    11 consts  par_beta :: "(dB * dB) set"
    12 
    13 syntax  "=>" :: [dB,dB] => bool (infixl 50)
    14 
    15 translations
    16   "s => t" == "(s,t) : par_beta"
    17 
    18 inductive par_beta
    19   intrs
    20     var   "Var n => Var n"
    21     abs   "s => t ==> Abs s => Abs t"
    22     app   "[| s => s'; t => t' |] ==> s $ t => s' $ t'"
    23     beta  "[| s => s'; t => t' |] ==> (Abs s) $ t => s'[t'/0]"
    24 
    25 consts
    26   cd  :: dB => dB
    27 
    28 recdef cd "measure size"
    29   "cd(Var n) = Var n"
    30   "cd(Var n     $ t) = Var n $ cd t"
    31   "cd((s1 $ s2) $ t) = cd(s1 $ s2) $ cd t"
    32   "cd(Abs u     $ t) = (cd u)[cd t/0]"
    33   "cd(Abs s) = Abs(cd s)"
    34 end