equal
deleted
inserted
replaced
|
1 (* Title: ZF/Coind/Values.thy |
|
2 ID: $Id$ |
|
3 Author: Jacob Frost, Cambridge University Computer Laboratory |
|
4 Copyright 1995 University of Cambridge |
|
5 *) |
|
6 |
|
7 Values = Language + Map + |
|
8 |
|
9 (* Values, values environments and associated operators *) |
|
10 |
|
11 consts |
|
12 Val :: "i" ValEnv :: "i" Val_ValEnv :: "i" |
|
13 codatatype |
|
14 "Val" = |
|
15 v_const("c:Const") | |
|
16 v_clos("x:ExVar","e:Exp","ve:ValEnv") and |
|
17 "ValEnv" = |
|
18 ve_mk("m:PMap(ExVar,Val)") |
|
19 monos "[map_mono]" |
|
20 type_intrs "[constQU,exvarQU,exvarU,expQU,mapQU]" |
|
21 |
|
22 consts |
|
23 ve_emp :: "i" |
|
24 ve_owr :: "[i,i,i] => i" |
|
25 ve_dom :: "i=>i" |
|
26 ve_app :: "[i,i] => i" |
|
27 rules |
|
28 ve_emp_def "ve_emp == ve_mk(map_emp)" |
|
29 ve_owr_def |
|
30 "ve_owr(ve,x,v) == \ |
|
31 \ ve_mk(Val_ValEnv_case(%x.0,%x y z.0,%m.map_owr(m,x,v),ve))" |
|
32 ve_dom_def |
|
33 "ve_dom(ve) == Val_ValEnv_case(%x.0,%x y z.0,%m.domain(m),ve)" |
|
34 ve_app_def |
|
35 "ve_app(ve,a) == Val_ValEnv_case(%x.0,%x y z.0,%m.map_app(m,a),ve)" |
|
36 |
|
37 end |
|
38 |
|
39 |
|
40 |