| 5250 |      1 | (*  Title:      HOL/ex/PiSets.thy
 | 
|  |      2 |     ID:         $Id$
 | 
|  |      3 |     Author:     Florian Kammueller, University of Cambridge
 | 
|  |      4 | 
 | 
| 5856 |      5 | The bijection between elements of the Pi set and functional graphs
 | 
|  |      6 | 
 | 
|  |      7 | Also the nice -> operator for function space
 | 
| 5250 |      8 | *)
 | 
|  |      9 | 
 | 
|  |     10 | PiSets = Univ + Finite +
 | 
|  |     11 | 
 | 
| 5856 |     12 | syntax
 | 
|  |     13 |   "->" :: "['a set, 'b set] => ('a => 'b) set"      (infixr 60) 
 | 
| 5846 |     14 | 
 | 
| 5856 |     15 | translations
 | 
|  |     16 |   "A -> B" == "A funcset B"
 | 
| 5250 |     17 | 
 | 
| 5846 |     18 | constdefs
 | 
|  |     19 | (* bijection between Pi_sig and Pi_=> *)
 | 
| 5250 |     20 |   PiBij :: "['a set, 'a => 'b set, 'a => 'b] => ('a * 'b) set"
 | 
| 5846 |     21 |     "PiBij A B == lam f: Pi A B. {(x, y). x: A & y = f x}"
 | 
| 5250 |     22 | 
 | 
|  |     23 |   Graph ::  "['a set, 'a => 'b set] => ('a * 'b) set set"
 | 
| 5846 |     24 |    "Graph A B == {f. f: Pow(Sigma A B) & (! x: A. (?! y. (x, y): f))}"
 | 
| 5250 |     25 | 
 | 
|  |     26 | end
 |