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