src/HOL/TLA/Init.thy
author wenzelm
Thu, 14 Oct 1999 15:04:36 +0200
changeset 7866 3ccaa11b6df9
parent 6255 db63752140c7
child 11703 6e5de8d4290a
permissions -rw-r--r--
pdf: generate thumbnails if ISABELLE_THUMBPDF set;
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
6255
db63752140c7 updated (Stephan Merz);
wenzelm
parents:
diff changeset
     1
(* 
db63752140c7 updated (Stephan Merz);
wenzelm
parents:
diff changeset
     2
    File:	 TLA/Init.thy
db63752140c7 updated (Stephan Merz);
wenzelm
parents:
diff changeset
     3
    Author:      Stephan Merz
db63752140c7 updated (Stephan Merz);
wenzelm
parents:
diff changeset
     4
    Copyright:   1998 University of Munich
db63752140c7 updated (Stephan Merz);
wenzelm
parents:
diff changeset
     5
db63752140c7 updated (Stephan Merz);
wenzelm
parents:
diff changeset
     6
    Theory Name: Init
db63752140c7 updated (Stephan Merz);
wenzelm
parents:
diff changeset
     7
    Logic Image: HOL
db63752140c7 updated (Stephan Merz);
wenzelm
parents:
diff changeset
     8
db63752140c7 updated (Stephan Merz);
wenzelm
parents:
diff changeset
     9
Introduces type of temporal formulas. Defines interface between
db63752140c7 updated (Stephan Merz);
wenzelm
parents:
diff changeset
    10
temporal formulas and its "subformulas" (state predicates and actions).
db63752140c7 updated (Stephan Merz);
wenzelm
parents:
diff changeset
    11
*)
db63752140c7 updated (Stephan Merz);
wenzelm
parents:
diff changeset
    12
db63752140c7 updated (Stephan Merz);
wenzelm
parents:
diff changeset
    13
Init  =  Action +
db63752140c7 updated (Stephan Merz);
wenzelm
parents:
diff changeset
    14
db63752140c7 updated (Stephan Merz);
wenzelm
parents:
diff changeset
    15
types
db63752140c7 updated (Stephan Merz);
wenzelm
parents:
diff changeset
    16
  behavior
db63752140c7 updated (Stephan Merz);
wenzelm
parents:
diff changeset
    17
  temporal = behavior form
db63752140c7 updated (Stephan Merz);
wenzelm
parents:
diff changeset
    18
db63752140c7 updated (Stephan Merz);
wenzelm
parents:
diff changeset
    19
arities
db63752140c7 updated (Stephan Merz);
wenzelm
parents:
diff changeset
    20
  behavior    :: term
db63752140c7 updated (Stephan Merz);
wenzelm
parents:
diff changeset
    21
db63752140c7 updated (Stephan Merz);
wenzelm
parents:
diff changeset
    22
instance
db63752140c7 updated (Stephan Merz);
wenzelm
parents:
diff changeset
    23
  behavior    :: world
db63752140c7 updated (Stephan Merz);
wenzelm
parents:
diff changeset
    24
db63752140c7 updated (Stephan Merz);
wenzelm
parents:
diff changeset
    25
consts
db63752140c7 updated (Stephan Merz);
wenzelm
parents:
diff changeset
    26
  Initial     :: ('w::world => bool) => temporal
db63752140c7 updated (Stephan Merz);
wenzelm
parents:
diff changeset
    27
  first_world :: behavior => ('w::world)
db63752140c7 updated (Stephan Merz);
wenzelm
parents:
diff changeset
    28
  st1, st2    :: behavior => state
db63752140c7 updated (Stephan Merz);
wenzelm
parents:
diff changeset
    29
db63752140c7 updated (Stephan Merz);
wenzelm
parents:
diff changeset
    30
syntax
db63752140c7 updated (Stephan Merz);
wenzelm
parents:
diff changeset
    31
  TEMP       :: lift => 'a                          ("(TEMP _)")
db63752140c7 updated (Stephan Merz);
wenzelm
parents:
diff changeset
    32
  "_Init"    :: lift => lift                        ("(Init _)"[40] 50)
db63752140c7 updated (Stephan Merz);
wenzelm
parents:
diff changeset
    33
db63752140c7 updated (Stephan Merz);
wenzelm
parents:
diff changeset
    34
translations
db63752140c7 updated (Stephan Merz);
wenzelm
parents:
diff changeset
    35
  "TEMP F"   => "(F::behavior => _)"
db63752140c7 updated (Stephan Merz);
wenzelm
parents:
diff changeset
    36
  "_Init"    == "Initial"
db63752140c7 updated (Stephan Merz);
wenzelm
parents:
diff changeset
    37
  "sigma |= Init F"  <= "_Init F sigma"
db63752140c7 updated (Stephan Merz);
wenzelm
parents:
diff changeset
    38
db63752140c7 updated (Stephan Merz);
wenzelm
parents:
diff changeset
    39
defs
db63752140c7 updated (Stephan Merz);
wenzelm
parents:
diff changeset
    40
  Init_def    "sigma |= Init F  ==  (first_world sigma) |= F"
db63752140c7 updated (Stephan Merz);
wenzelm
parents:
diff changeset
    41
  fw_temp_def "first_world == %sigma. sigma"
db63752140c7 updated (Stephan Merz);
wenzelm
parents:
diff changeset
    42
  fw_stp_def  "first_world == st1"
db63752140c7 updated (Stephan Merz);
wenzelm
parents:
diff changeset
    43
  fw_act_def  "first_world == %sigma. (st1 sigma, st2 sigma)"
db63752140c7 updated (Stephan Merz);
wenzelm
parents:
diff changeset
    44
end
db63752140c7 updated (Stephan Merz);
wenzelm
parents:
diff changeset
    45
db63752140c7 updated (Stephan Merz);
wenzelm
parents:
diff changeset
    46
ML