src/HOL/AxClasses/Lattice/Order.ML
changeset 4831 dae4d63a1318
parent 4153 e534c4c32d54
child 5069 3ea049f7979d
equal deleted inserted replaced
4830:bd73675adbed 4831:dae4d63a1318
   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);