| 6255 |      1 | (* 
 | 
|  |      2 |     File:	 TLA/Init.thy
 | 
|  |      3 |     Author:      Stephan Merz
 | 
|  |      4 |     Copyright:   1998 University of Munich
 | 
|  |      5 | 
 | 
|  |      6 |     Theory Name: Init
 | 
|  |      7 |     Logic Image: HOL
 | 
|  |      8 | 
 | 
|  |      9 | Introduces type of temporal formulas. Defines interface between
 | 
|  |     10 | temporal formulas and its "subformulas" (state predicates and actions).
 | 
|  |     11 | *)
 | 
|  |     12 | 
 | 
|  |     13 | Init  =  Action +
 | 
|  |     14 | 
 | 
|  |     15 | types
 | 
|  |     16 |   behavior
 | 
|  |     17 |   temporal = behavior form
 | 
|  |     18 | 
 | 
|  |     19 | arities
 | 
|  |     20 |   behavior    :: term
 | 
|  |     21 | 
 | 
|  |     22 | instance
 | 
|  |     23 |   behavior    :: world
 | 
|  |     24 | 
 | 
|  |     25 | consts
 | 
|  |     26 |   Initial     :: ('w::world => bool) => temporal
 | 
|  |     27 |   first_world :: behavior => ('w::world)
 | 
|  |     28 |   st1, st2    :: behavior => state
 | 
|  |     29 | 
 | 
|  |     30 | syntax
 | 
|  |     31 |   TEMP       :: lift => 'a                          ("(TEMP _)")
 | 
|  |     32 |   "_Init"    :: lift => lift                        ("(Init _)"[40] 50)
 | 
|  |     33 | 
 | 
|  |     34 | translations
 | 
|  |     35 |   "TEMP F"   => "(F::behavior => _)"
 | 
|  |     36 |   "_Init"    == "Initial"
 | 
|  |     37 |   "sigma |= Init F"  <= "_Init F sigma"
 | 
|  |     38 | 
 | 
|  |     39 | defs
 | 
|  |     40 |   Init_def    "sigma |= Init F  ==  (first_world sigma) |= F"
 | 
|  |     41 |   fw_temp_def "first_world == %sigma. sigma"
 | 
|  |     42 |   fw_stp_def  "first_world == st1"
 | 
|  |     43 |   fw_act_def  "first_world == %sigma. (st1 sigma, st2 sigma)"
 | 
|  |     44 | end
 | 
|  |     45 | 
 | 
|  |     46 | ML
 |