src/HOL/UNITY/Constrains.thy
author paulson
Thu, 13 Aug 1998 18:06:40 +0200
changeset 5313 1861a564d7e2
child 5620 3ac11c4af76a
permissions -rw-r--r--
Constrains, Stable, Invariant...more of the substitution axiom, but Union does not work well with them

(*  Title:      HOL/UNITY/Constrains
    ID:         $Id$
    Author:     Lawrence C Paulson, Cambridge University Computer Laboratory
    Copyright   1998  University of Cambridge

Safety relations: restricted to the set of reachable states.
*)

Constrains = UNITY + Traces + 

constdefs

  Constrains :: "['a program, 'a set, 'a set] => bool"
    "Constrains prg A B == 
		 constrains (Acts prg)
                            (reachable prg  Int  A)
  		            (reachable prg  Int  B)"

  Stable     :: "'a program => 'a set => bool"
    "Stable prg A == Constrains prg A A"

  Unless :: "['a program, 'a set, 'a set] => bool"
    "Unless prg A B == Constrains prg (A-B) (A Un B)"

  Invariant :: "['a program, 'a set] => bool"
  "Invariant prg A == (Init prg) <= A & Stable prg A"

end