0

1 
(* Title: CCL/hered.thy


2 
ID: $Id$


3 
Author: Martin Coen


4 
Copyright 1993 University of Cambridge


5 


6 
Hereditary Termination  cf. Martin Lo\"f


7 


8 
Note that this is based on an untyped equality and so lam x.b(x) is only


9 
hereditarily terminating if ALL x.b(x) is. Not so useful for functions!


10 


11 
*)


12 


13 
Hered = Type +


14 


15 
consts


16 
(*** Predicates ***)


17 
HTTgen :: "i set => i set"


18 
HTT :: "i set"


19 


20 


21 
rules


22 


23 
(*** Definitions of Hereditary Termination ***)


24 


25 
HTTgen_def


26 
"HTTgen(R) == {t. t=true  t=false  (EX a b.t=<a,b> & a : R & b : R)  \


27 
\ (EX f. t=lam x.f(x) & (ALL x.f(x) : R))}"


28 
HTT_def "HTT == gfp(HTTgen)"


29 


30 
end
