src/HOL/Library/FuncSet.thy
 changeset 21404 eb85850d3eb7 parent 21210 c17fd2df4e9e child 26106 be52145f482d
```     1.1 --- a/src/HOL/Library/FuncSet.thy	Fri Nov 17 02:19:55 2006 +0100
1.2 +++ b/src/HOL/Library/FuncSet.thy	Fri Nov 17 02:20:03 2006 +0100
1.3 @@ -10,17 +10,20 @@
1.4  begin
1.5
1.6  definition
1.7 -  Pi :: "['a set, 'a => 'b set] => ('a => 'b) set"
1.8 +  Pi :: "['a set, 'a => 'b set] => ('a => 'b) set" where
1.9    "Pi A B = {f. \<forall>x. x \<in> A --> f x \<in> B x}"
1.10
1.11 -  extensional :: "'a set => ('a => 'b) set"
1.12 +definition
1.13 +  extensional :: "'a set => ('a => 'b) set" where
1.14    "extensional A = {f. \<forall>x. x~:A --> f x = arbitrary}"
1.15
1.16 -  "restrict" :: "['a => 'b, 'a set] => ('a => 'b)"
1.17 +definition
1.18 +  "restrict" :: "['a => 'b, 'a set] => ('a => 'b)" where
1.19    "restrict f A = (%x. if x \<in> A then f x else arbitrary)"
1.20
1.21  abbreviation
1.22 -  funcset :: "['a set, 'b set] => ('a => 'b) set"      (infixr "->" 60)
1.23 +  funcset :: "['a set, 'b set] => ('a => 'b) set"
1.24 +    (infixr "->" 60) where
1.25    "A -> B == Pi A (%_. B)"
1.26
1.27  notation (xsymbols)
1.28 @@ -43,7 +46,7 @@
1.29    "%x:A. f" == "CONST restrict (%x. f) A"
1.30
1.31  definition
1.32 -  "compose" :: "['a set, 'b => 'c, 'a => 'b] => ('a => 'c)"
1.33 +  "compose" :: "['a set, 'b => 'c, 'a => 'b] => ('a => 'c)" where
1.34    "compose A g f = (\<lambda>x\<in>A. g (f x))"
1.35
1.36
1.37 @@ -142,7 +145,7 @@
1.38  the theorems belong here, or need at least @{term Hilbert_Choice}.*}
1.39
1.40  definition
1.41 -  bij_betw :: "['a => 'b, 'a set, 'b set] => bool"         -- {* bijective *}
1.42 +  bij_betw :: "['a => 'b, 'a set, 'b set] => bool" where -- {* bijective *}
1.43    "bij_betw f A B = (inj_on f A & f ` A = B)"
1.44
1.45  lemma bij_betw_imp_inj_on: "bij_betw f A B \<Longrightarrow> inj_on f A"
```