equal
deleted
inserted
replaced
10 |
10 |
11 Extend = Guar + |
11 Extend = Guar + |
12 |
12 |
13 constdefs |
13 constdefs |
14 |
14 |
|
15 good_map :: "['a*'b => 'c] => bool" |
|
16 "good_map h == surj h & (ALL x y. fst (inv h (h (x,y))) = x)" |
|
17 (*Using the locale constant "f", this is f (h (x,y))) = x*) |
|
18 |
15 extend_set :: "['a*'b => 'c, 'a set] => 'c set" |
19 extend_set :: "['a*'b => 'c, 'a set] => 'c set" |
16 "extend_set h A == h `` (A Times UNIV)" |
20 "extend_set h A == h `` (A Times UNIV)" |
17 |
21 |
18 project_set :: "['a*'b => 'c, 'c set] => 'a set" |
22 project_set :: "['a*'b => 'c, 'c set] => 'a set" |
19 "project_set h C == {x. EX y. h(x,y) : C}" |
23 "project_set h C == {x. EX y. h(x,y) : C}" |
36 fixes |
40 fixes |
37 f :: 'c => 'a |
41 f :: 'c => 'a |
38 g :: 'c => 'b |
42 g :: 'c => 'b |
39 h :: "'a*'b => 'c" (*isomorphism between 'a * 'b and 'c *) |
43 h :: "'a*'b => 'c" (*isomorphism between 'a * 'b and 'c *) |
40 slice :: ['c set, 'b] => 'a set |
44 slice :: ['c set, 'b] => 'a set |
41 f_act :: "('c * 'c) set => ('a*'a) set" |
|
42 |
45 |
43 assumes |
46 assumes |
44 bij_h "bij h" |
47 good_h "good_map h" |
45 defines |
48 defines |
46 f_def "f z == fst (inv h z)" |
49 f_def "f z == fst (inv h z)" |
47 g_def "g z == snd (inv h z)" |
50 g_def "g z == snd (inv h z)" |
48 slice_def "slice Z y == {x. h(x,y) : Z}" |
51 slice_def "slice Z y == {x. h(x,y) : Z}" |
49 f_act_def "f_act act == (%(z,z'). (f z, f z')) `` act" |
|
50 |
52 |
51 end |
53 end |