src/HOL/IMP/AbsInt2.thy
changeset 45023 76abd26e2e2d
parent 45022 3c888c58e10b
child 45073 9bcbdf987601
equal deleted inserted replaced
45022:3c888c58e10b 45023:76abd26e2e2d
   140 proof qed
   140 proof qed
   141   (auto simp add: widen_ivl_def narrow_ivl_def le_option_def le_ivl_def empty_def split: ivl.split option.split if_splits)
   141   (auto simp add: widen_ivl_def narrow_ivl_def le_option_def le_ivl_def empty_def split: ivl.split option.split if_splits)
   142 
   142 
   143 end
   143 end
   144 
   144 
   145 instantiation astate :: (WN)WN
   145 instantiation astate :: (WN) WN
   146 begin
   146 begin
   147 
   147 
   148 definition "widen_astate F1 F2 =
   148 definition "widen_astate F1 F2 =
   149   FunDom (\<lambda>x. fun F1 x \<nabla> fun F2 x) (inter_list (dom F1) (dom F2))"
   149   FunDom (\<lambda>x. fun F1 x \<nabla> fun F2 x) (inter_list (dom F1) (dom F2))"
   150 
   150 
   163     by(auto simp: narrow_astate_def le_astate_def lookup_def narrow2)
   163     by(auto simp: narrow_astate_def le_astate_def lookup_def narrow2)
   164 qed
   164 qed
   165 
   165 
   166 end
   166 end
   167 
   167 
   168 instantiation up :: (WN)WN
   168 instantiation up :: (WN) WN
   169 begin
   169 begin
   170 
   170 
   171 fun widen_up where
   171 fun widen_up where
   172 "widen_up bot x = x" |
   172 "widen_up bot x = x" |
   173 "widen_up x bot = x" |
   173 "widen_up x bot = x" |
   191 qed
   191 qed
   192 
   192 
   193 end
   193 end
   194 
   194 
   195 interpretation
   195 interpretation
   196   Abs_Int1 rep_ivl num_ivl plus_ivl inv_plus_ivl inv_less_ivl "(iter' 3 2)"
   196   Abs_Int1 rep_ivl num_ivl plus_ivl filter_plus_ivl filter_less_ivl "(iter' 3 2)"
   197 defines afilter_ivl' is afilter
   197 defines afilter_ivl' is afilter
   198 and bfilter_ivl' is bfilter
   198 and bfilter_ivl' is bfilter
   199 and AI_ivl' is AI
   199 and AI_ivl' is AI
   200 and aval_ivl' is aval'
   200 and aval_ivl' is aval'
   201 proof qed (auto simp: iter'_pfp_above)
   201 proof qed (auto simp: iter'_pfp_above)