src/ZF/Coind/Values.thy
changeset 916 d03bb9f50b3b
child 933 5836531d7b91
equal deleted inserted replaced
915:6dae0daf57b7 916:d03bb9f50b3b
       
     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