src/HOL/UNITY/Constrains.ML
changeset 8216 e4b3192dfefa
parent 8069 19b9f92ca503
child 8334 7896bcbd8641
equal deleted inserted replaced
8215:d3eba67a9e67 8216:e4b3192dfefa
   201 
   201 
   202 
   202 
   203 
   203 
   204 (*** Increasing ***)
   204 (*** Increasing ***)
   205 
   205 
       
   206 Goalw [Increasing_def]
       
   207      "F : Increasing f ==> F : Stable {s. x <= f s}";
       
   208 by (Blast_tac 1);
       
   209 qed "IncreasingD";
       
   210 
   206 Goalw [Increasing_def, Stable_def, Constrains_def, stable_def, constrains_def]
   211 Goalw [Increasing_def, Stable_def, Constrains_def, stable_def, constrains_def]
   207      "mono g ==> Increasing f <= Increasing (g o f)";
   212      "mono g ==> Increasing f <= Increasing (g o f)";
   208 by Auto_tac;
   213 by Auto_tac;
   209 by (blast_tac (claset() addIs [monoD, order_trans]) 1);
   214 by (blast_tac (claset() addIs [monoD, order_trans]) 1);
   210 qed "mono_Increasing_o";
   215 qed "mono_Increasing_o";
   211 
   216 
   212 Goalw [Increasing_def]
   217 Goalw [Increasing_def]
   213      "Increasing f <= {F. ALL z::nat. F: Stable {s. z < f s}}";
   218      "!!z::nat. F : Increasing f ==> F: Stable {s. z < f s}";
   214 by (simp_tac (simpset() addsimps [Suc_le_eq RS sym]) 1);
   219 by (simp_tac (simpset() addsimps [Suc_le_eq RS sym]) 1);
   215 by (Blast_tac 1);
   220 by (Blast_tac 1);
   216 qed "Increasing_Stable_less";
   221 qed "strict_IncreasingD";
   217 
   222 
   218 Goalw [increasing_def, Increasing_def]
   223 Goalw [increasing_def, Increasing_def]
   219      "F : increasing f ==> F : Increasing f";
   224      "F : increasing f ==> F : Increasing f";
   220 by (blast_tac (claset() addIs [stable_imp_Stable]) 1);
   225 by (blast_tac (claset() addIs [stable_imp_Stable]) 1);
   221 qed "increasing_imp_Increasing";
   226 qed "increasing_imp_Increasing";