equal
deleted
inserted
replaced
113 |
113 |
114 |
114 |
115 (** limits in linear orders **) |
115 (** limits in linear orders **) |
116 |
116 |
117 goalw thy [minimum_def, is_inf_def] "is_inf (x::'a::linear_order) y (minimum x y)"; |
117 goalw thy [minimum_def, is_inf_def] "is_inf (x::'a::linear_order) y (minimum x y)"; |
118 by (stac expand_if 1); |
118 by (stac split_if 1); |
119 by (REPEAT_FIRST (resolve_tac [conjI, impI])); |
119 by (REPEAT_FIRST (resolve_tac [conjI, impI])); |
120 (*case "x [= y"*) |
120 (*case "x [= y"*) |
121 by (rtac le_refl 1); |
121 by (rtac le_refl 1); |
122 by (assume_tac 1); |
122 by (assume_tac 1); |
123 by (Fast_tac 1); |
123 by (Fast_tac 1); |
129 by (rtac le_refl 1); |
129 by (rtac le_refl 1); |
130 by (Fast_tac 1); |
130 by (Fast_tac 1); |
131 qed "min_is_inf"; |
131 qed "min_is_inf"; |
132 |
132 |
133 goalw thy [maximum_def, is_sup_def] "is_sup (x::'a::linear_order) y (maximum x y)"; |
133 goalw thy [maximum_def, is_sup_def] "is_sup (x::'a::linear_order) y (maximum x y)"; |
134 by (stac expand_if 1); |
134 by (stac split_if 1); |
135 by (REPEAT_FIRST (resolve_tac [conjI, impI])); |
135 by (REPEAT_FIRST (resolve_tac [conjI, impI])); |
136 (*case "x [= y"*) |
136 (*case "x [= y"*) |
137 by (assume_tac 1); |
137 by (assume_tac 1); |
138 by (rtac le_refl 1); |
138 by (rtac le_refl 1); |
139 by (Fast_tac 1); |
139 by (Fast_tac 1); |