src/HOL/UNITY/Follows.thy
author paulson
Wed Dec 22 17:18:03 1999 +0100 (1999-12-22)
changeset 8074 36a6c38e0eca
parent 6809 5b8912f7bb69
child 8122 b43ad07660b9
permissions -rw-r--r--
Working version after a FAILED attempt to base Follows upon LeadsETo
paulson@6706
     1
(*  Title:      HOL/UNITY/Follows
paulson@6706
     2
    ID:         $Id$
paulson@6706
     3
    Author:     Lawrence C Paulson, Cambridge University Computer Laboratory
paulson@6706
     4
    Copyright   1998  University of Cambridge
paulson@6706
     5
paulson@6706
     6
The Follows relation of Charpentier and Sivilotte
paulson@8074
     7
paulson@8074
     8
The safety conditions ensures that "givenBy f" is implementable in the
paulson@8074
     9
  progress part: g cannot do anything silly.
paulson@6706
    10
*)
paulson@6706
    11
paulson@8074
    12
Follows = ELT +
paulson@6706
    13
paulson@6706
    14
constdefs
paulson@6706
    15
paulson@6706
    16
  Follows :: "['a => 'b::{order}, 'a => 'b::{order}] => 'a program set"
paulson@6809
    17
                 (infixl "Fols" 65)
paulson@6809
    18
   "f Fols g == Increasing g Int Increasing f Int
paulson@6809
    19
                Always {s. f s <= g s} Int
paulson@6809
    20
                (INT k. {s. k <= g s} LeadsTo {s. k <= f s})"
paulson@6706
    21
paulson@6706
    22
paulson@6706
    23
end