src/HOL/TLA/Init.thy
author wenzelm
Fri, 26 Oct 2001 23:58:21 +0200
changeset 11952 b10f1e8862f4
parent 11703 6e5de8d4290a
child 12338 de0f4a63baa5
permissions -rw-r--r--
* Pure: method 'atomize' presents local goal premises as object-level statements (atomic meta-level propositions); setup controlled via rewrite rules declarations of 'atomize' attribute; example application: 'induct' method with proper rule statements in improper proof *scripts*;

(* 
    File:	 TLA/Init.thy
    Author:      Stephan Merz
    Copyright:   1998 University of Munich

    Theory Name: Init
    Logic Image: HOL

Introduces type of temporal formulas. Defines interface between
temporal formulas and its "subformulas" (state predicates and actions).
*)

Init  =  Action +

types
  behavior
  temporal = behavior form

arities
  behavior    :: term

instance
  behavior    :: world

consts
  Initial     :: ('w::world => bool) => temporal
  first_world :: behavior => ('w::world)
  st1, st2    :: behavior => state

syntax
  TEMP       :: lift => 'a                          ("(TEMP _)")
  "_Init"    :: lift => lift                        ("(Init _)"[40] 50)

translations
  "TEMP F"   => "(F::behavior => _)"
  "_Init"    == "Initial"
  "sigma |= Init F"  <= "_Init F sigma"

defs
  Init_def    "sigma |= Init F  ==  (first_world sigma) |= F"
  fw_temp_def "first_world == %sigma. sigma"
  fw_stp_def  "first_world == st1"
  fw_act_def  "first_world == %sigma. (st1 sigma, st2 sigma)"
end