src/HOL/IMP/Transition.thy
author nipkow
Mon, 29 Apr 1996 20:15:33 +0200
changeset 1701 a26fbeaaaabd
parent 1700 afd3b60660db
child 1789 aade046ec6d5
permissions -rw-r--r--
Streamlined syntax: -(n)-> is now -n->.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
1700
afd3b60660db Natural and Transition semantics.
nipkow
parents:
diff changeset
     1
(*  Title:      HOL/IMP/Transition.thy
afd3b60660db Natural and Transition semantics.
nipkow
parents:
diff changeset
     2
    ID:         $Id$
afd3b60660db Natural and Transition semantics.
nipkow
parents:
diff changeset
     3
    Author:     Tobias Nipkow & Robert Sandner, TUM
afd3b60660db Natural and Transition semantics.
nipkow
parents:
diff changeset
     4
    Copyright   1996 TUM
afd3b60660db Natural and Transition semantics.
nipkow
parents:
diff changeset
     5
afd3b60660db Natural and Transition semantics.
nipkow
parents:
diff changeset
     6
Transition semantics of commands
afd3b60660db Natural and Transition semantics.
nipkow
parents:
diff changeset
     7
*)
afd3b60660db Natural and Transition semantics.
nipkow
parents:
diff changeset
     8
afd3b60660db Natural and Transition semantics.
nipkow
parents:
diff changeset
     9
Transition = Natural + RelPow +
afd3b60660db Natural and Transition semantics.
nipkow
parents:
diff changeset
    10
afd3b60660db Natural and Transition semantics.
nipkow
parents:
diff changeset
    11
consts  evalc1    :: "((com*state)*(com*state))set"        
afd3b60660db Natural and Transition semantics.
nipkow
parents:
diff changeset
    12
	"@evalc1" :: "[(com*state),(com*state)] => bool"   
afd3b60660db Natural and Transition semantics.
nipkow
parents:
diff changeset
    13
				("_ -1-> _" [81,81] 100)
afd3b60660db Natural and Transition semantics.
nipkow
parents:
diff changeset
    14
	"@evalcn" :: "[(com*state),(com*state)] => nat => bool"
1701
a26fbeaaaabd Streamlined syntax: -(n)-> is now -n->.
nipkow
parents: 1700
diff changeset
    15
				("_ -_-> _" [81,81] 100)
1700
afd3b60660db Natural and Transition semantics.
nipkow
parents:
diff changeset
    16
	"@evalc*" :: "[(com*state),(com*state)] => bool"   
afd3b60660db Natural and Transition semantics.
nipkow
parents:
diff changeset
    17
				("_ -*-> _" [81,81] 100)
afd3b60660db Natural and Transition semantics.
nipkow
parents:
diff changeset
    18
afd3b60660db Natural and Transition semantics.
nipkow
parents:
diff changeset
    19
translations
1701
a26fbeaaaabd Streamlined syntax: -(n)-> is now -n->.
nipkow
parents: 1700
diff changeset
    20
        "x -1-> (y,z)" == "(x,y,z) : evalc1" 
1700
afd3b60660db Natural and Transition semantics.
nipkow
parents:
diff changeset
    21
       	"cs0 -1-> cs1" == "(cs0,cs1) : evalc1"
1701
a26fbeaaaabd Streamlined syntax: -(n)-> is now -n->.
nipkow
parents: 1700
diff changeset
    22
        "x -n-> (y,z)" == "(x,y,z) : evalc1 ^ n" 
a26fbeaaaabd Streamlined syntax: -(n)-> is now -n->.
nipkow
parents: 1700
diff changeset
    23
	"cs0 -n-> cs1" == "(cs0,cs1) : evalc1 ^ n"
1700
afd3b60660db Natural and Transition semantics.
nipkow
parents:
diff changeset
    24
	"x -*-> (y,z)" == "(x,y,z) : evalc1 ^*" 
afd3b60660db Natural and Transition semantics.
nipkow
parents:
diff changeset
    25
	"cs0 -*-> cs1" == "(cs0,cs1) : evalc1 ^*"
afd3b60660db Natural and Transition semantics.
nipkow
parents:
diff changeset
    26
afd3b60660db Natural and Transition semantics.
nipkow
parents:
diff changeset
    27
afd3b60660db Natural and Transition semantics.
nipkow
parents:
diff changeset
    28
inductive "evalc1"
afd3b60660db Natural and Transition semantics.
nipkow
parents:
diff changeset
    29
  intrs
afd3b60660db Natural and Transition semantics.
nipkow
parents:
diff changeset
    30
    Assign "(x := a,s) -1-> (SKIP,s[a s / x])"
afd3b60660db Natural and Transition semantics.
nipkow
parents:
diff changeset
    31
afd3b60660db Natural and Transition semantics.
nipkow
parents:
diff changeset
    32
    Semi1   "(SKIP;c,s) -1-> (c,s)"	
afd3b60660db Natural and Transition semantics.
nipkow
parents:
diff changeset
    33
    Semi2   "(c0,s) -1-> (c2,s1) ==> (c0;c1,s) -1-> (c2;c1,s1)"
afd3b60660db Natural and Transition semantics.
nipkow
parents:
diff changeset
    34
afd3b60660db Natural and Transition semantics.
nipkow
parents:
diff changeset
    35
    IfTrue "b s ==> (IF b THEN c1 ELSE c2,s) -1-> (c1,s)"
afd3b60660db Natural and Transition semantics.
nipkow
parents:
diff changeset
    36
    IfFalse "~b s ==> (IF b THEN c1 ELSE c2,s) -1-> (c2,s)"
afd3b60660db Natural and Transition semantics.
nipkow
parents:
diff changeset
    37
afd3b60660db Natural and Transition semantics.
nipkow
parents:
diff changeset
    38
    WhileFalse "~b s ==> (WHILE b DO c,s) -1-> (SKIP,s)"
afd3b60660db Natural and Transition semantics.
nipkow
parents:
diff changeset
    39
    WhileTrue "b s ==> (WHILE b DO c,s) -1-> (c;WHILE b DO c,s)"
afd3b60660db Natural and Transition semantics.
nipkow
parents:
diff changeset
    40
afd3b60660db Natural and Transition semantics.
nipkow
parents:
diff changeset
    41
end