| author | wenzelm | 
| Wed, 07 Feb 2001 20:56:40 +0100 | |
| changeset 11082 | 9a7cdfaa7ecb | 
| parent 9245 | 428385c4bc50 | 
| child 12030 | 46d57d0290a2 | 
| permissions | -rw-r--r-- | 
| 2640 | 1 | (* Title: HOLCF/Fun1.ML | 
| 243 
c22b85994e17
Franz Regensburger's Higher-Order Logic of Computable Functions embedding LCF
 nipkow parents: diff
changeset | 2 | ID: $Id$ | 
| 1461 | 3 | Author: Franz Regensburger | 
| 243 
c22b85994e17
Franz Regensburger's Higher-Order Logic of Computable Functions embedding LCF
 nipkow parents: diff
changeset | 4 | Copyright 1993 Technische Universitaet Muenchen | 
| 
c22b85994e17
Franz Regensburger's Higher-Order Logic of Computable Functions embedding LCF
 nipkow parents: diff
changeset | 5 | |
| 9245 | 6 | Definition of the partial ordering for the type of all functions => (fun) | 
| 243 
c22b85994e17
Franz Regensburger's Higher-Order Logic of Computable Functions embedding LCF
 nipkow parents: diff
changeset | 7 | *) | 
| 
c22b85994e17
Franz Regensburger's Higher-Order Logic of Computable Functions embedding LCF
 nipkow parents: diff
changeset | 8 | |
| 
c22b85994e17
Franz Regensburger's Higher-Order Logic of Computable Functions embedding LCF
 nipkow parents: diff
changeset | 9 | (* ------------------------------------------------------------------------ *) | 
| 
c22b85994e17
Franz Regensburger's Higher-Order Logic of Computable Functions embedding LCF
 nipkow parents: diff
changeset | 10 | (* less_fun is a partial order on 'a => 'b *) | 
| 
c22b85994e17
Franz Regensburger's Higher-Order Logic of Computable Functions embedding LCF
 nipkow parents: diff
changeset | 11 | (* ------------------------------------------------------------------------ *) | 
| 
c22b85994e17
Franz Regensburger's Higher-Order Logic of Computable Functions embedding LCF
 nipkow parents: diff
changeset | 12 | |
| 9245 | 13 | val prems = goalw thy [less_fun_def] "(f::'a::term =>'b::po) << f"; | 
| 14 | by (fast_tac (HOL_cs addSIs [refl_less]) 1); | |
| 15 | qed "refl_less_fun"; | |
| 243 
c22b85994e17
Franz Regensburger's Higher-Order Logic of Computable Functions embedding LCF
 nipkow parents: diff
changeset | 16 | |
| 9245 | 17 | val prems = goalw Fun1.thy [less_fun_def] | 
| 18 | "[|(f1::'a::term =>'b::po) << f2; f2 << f1|] ==> f1 = f2"; | |
| 19 | by (cut_facts_tac prems 1); | |
| 20 | by (stac expand_fun_eq 1); | |
| 21 | by (fast_tac (HOL_cs addSIs [antisym_less]) 1); | |
| 22 | qed "antisym_less_fun"; | |
| 243 
c22b85994e17
Franz Regensburger's Higher-Order Logic of Computable Functions embedding LCF
 nipkow parents: diff
changeset | 23 | |
| 9245 | 24 | val prems = goalw Fun1.thy [less_fun_def] | 
| 25 | "[|(f1::'a::term =>'b::po) << f2; f2 << f3 |] ==> f1 << f3"; | |
| 26 | by (cut_facts_tac prems 1); | |
| 27 | by (strip_tac 1); | |
| 28 | by (rtac trans_less 1); | |
| 29 | by (etac allE 1); | |
| 30 | by (atac 1); | |
| 31 | by ((etac allE 1) THEN (atac 1)); | |
| 32 | qed "trans_less_fun"; |