author | paulson |
Mon, 23 Sep 1996 17:42:56 +0200 | |
changeset 2003 | b48f066d52dc |
parent 1900 | c7a869229091 |
child 2159 | e650a3f6f600 |
permissions | -rw-r--r-- |
1120 | 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 |
||
1269 | 9 |
ParRed = Lambda + Commutation + |
1120 | 10 |
|
11 |
consts par_beta :: "(db * db) set" |
|
12 |
||
1376 | 13 |
syntax "=>" :: [db,db] => bool (infixl 50) |
1120 | 14 |
|
15 |
translations |
|
16 |
"s => t" == "(s,t) : par_beta" |
|
17 |
||
1789 | 18 |
inductive par_beta |
1120 | 19 |
intrs |
20 |
var "Var n => Var n" |
|
21 |
abs "s => t ==> Fun s => Fun t" |
|
22 |
app "[| s => s'; t => t' |] ==> s @ t => s' @ t'" |
|
1124
a6233ea105a4
Polished the presentation making it completely definitional.
nipkow
parents:
1120
diff
changeset
|
23 |
beta "[| s => s'; t => t' |] ==> (Fun s) @ t => s'[t'/0]" |
1120 | 24 |
|
25 |
consts |
|
1376 | 26 |
cd :: db => db |
27 |
deFun :: db => db |
|
1120 | 28 |
|
29 |
primrec cd db |
|
1900 | 30 |
"cd(Var n) = Var n" |
31 |
"cd(s @ t) = (case s of |
|
1120 | 32 |
Var n => s @ (cd t) | |
33 |
s1 @ s2 => (cd s) @ (cd t) | |
|
1124
a6233ea105a4
Polished the presentation making it completely definitional.
nipkow
parents:
1120
diff
changeset
|
34 |
Fun u => deFun(cd s)[cd t/0])" |
1900 | 35 |
"cd(Fun s) = Fun(cd s)" |
1120 | 36 |
|
37 |
primrec deFun db |
|
1900 | 38 |
"deFun(Var n) = Var n" |
39 |
"deFun(s @ t) = s @ t" |
|
40 |
"deFun(Fun s) = s" |
|
1120 | 41 |
end |