equal
deleted
inserted
replaced
29 |
29 |
30 |
30 |
31 (* partial orders *) |
31 (* partial orders *) |
32 |
32 |
33 axclass |
33 axclass |
34 order < quasi_order |
34 partial_order < quasi_order |
35 le_antisym "x [= y & y [= x --> x = y" |
35 le_antisym "x [= y & y [= x --> x = y" |
36 |
36 |
37 |
37 |
38 (* linear orders *) |
38 (* linear orders *) |
39 |
39 |
40 axclass |
40 axclass |
41 lin_order < order |
41 linear_order < partial_order |
42 le_lin "x [= y | y [= x" |
42 le_linear "x [= y | y [= x" |
43 |
43 |
44 |
44 |
45 |
45 |
46 (** limits **) |
46 (** limits **) |
47 |
47 |
48 (* infima and suprema (on orders) *) |
48 (* infima and suprema (on orders) *) |
49 |
49 |
50 consts |
50 consts |
51 (*binary*) |
51 (*binary*) |
52 is_inf :: "['a::order, 'a, 'a] => bool" |
52 is_inf :: "['a::partial_order, 'a, 'a] => bool" |
53 is_sup :: "['a::order, 'a, 'a] => bool" |
53 is_sup :: "['a::partial_order, 'a, 'a] => bool" |
54 (*general*) |
54 (*general*) |
55 is_Inf :: "['a::order set, 'a] => bool" |
55 is_Inf :: "['a::partial_order set, 'a] => bool" |
56 is_Sup :: "['a::order set, 'a] => bool" |
56 is_Sup :: "['a::partial_order set, 'a] => bool" |
57 |
57 |
58 defs |
58 defs |
59 is_inf_def "is_inf x y inf == |
59 is_inf_def "is_inf x y inf == |
60 inf [= x & inf [= y & |
60 inf [= x & inf [= y & |
61 (ALL lb. lb [= x & lb [= y --> lb [= inf)" |
61 (ALL lb. lb [= x & lb [= y --> lb [= inf)" |
69 (ALL x:A. x [= sup) & |
69 (ALL x:A. x [= sup) & |
70 (ALL ub. (ALL x:A. x [= ub) --> sup [= ub)" |
70 (ALL ub. (ALL x:A. x [= ub) --> sup [= ub)" |
71 |
71 |
72 |
72 |
73 |
73 |
74 (* binary minima and maxima (on lin_orders) *) |
74 (* binary minima and maxima (on linear_orders) *) |
75 |
75 |
76 constdefs |
76 constdefs |
77 minimum :: "['a::lin_order, 'a] => 'a" |
77 minimum :: "['a::linear_order, 'a] => 'a" |
78 "minimum x y == (if x [= y then x else y)" |
78 "minimum x y == (if x [= y then x else y)" |
79 |
79 |
80 maximum :: "['a::lin_order, 'a] => 'a" |
80 maximum :: "['a::linear_order, 'a] => 'a" |
81 "maximum x y == (if x [= y then y else x)" |
81 "maximum x y == (if x [= y then y else x)" |
82 |
82 |
83 end |
83 end |