src/HOL/IMP/Abs_Int1_const.thy
changeset 55599 6535c537b243
parent 52504 52cd8bebc3b6
child 55600 3c7610b8dcfc
equal deleted inserted replaced
55598:da35747597bd 55599:6535c537b243
    51 qed
    51 qed
    52 
    52 
    53 end
    53 end
    54 
    54 
    55 
    55 
    56 interpretation Val_semilattice
    56 permanent_interpretation Val_semilattice
    57 where \<gamma> = \<gamma>_const and num' = Const and plus' = plus_const
    57 where \<gamma> = \<gamma>_const and num' = Const and plus' = plus_const
    58 proof
    58 proof
    59   case goal1 thus ?case
    59   case goal1 thus ?case
    60     by(cases a, cases b, simp, simp, cases b, simp, simp)
    60     by(cases a, cases b, simp, simp, cases b, simp, simp)
    61 next
    61 next
    65 next
    65 next
    66   case goal4 thus ?case
    66   case goal4 thus ?case
    67     by(auto simp: plus_const_cases split: const.split)
    67     by(auto simp: plus_const_cases split: const.split)
    68 qed
    68 qed
    69 
    69 
    70 interpretation Abs_Int
    70 permanent_interpretation Abs_Int
    71 where \<gamma> = \<gamma>_const and num' = Const and plus' = plus_const
    71 where \<gamma> = \<gamma>_const and num' = Const and plus' = plus_const
    72 defines AI_const is AI and step_const is step' and aval'_const is aval'
    72 defines AI_const is AI and step_const is step' and aval'_const is aval'
    73 ..
    73 ..
    74 
    74 
    75 
    75 
   119 value "show_acom (the(AI_const test6_const))"
   119 value "show_acom (the(AI_const test6_const))"
   120 
   120 
   121 
   121 
   122 text{* Monotonicity: *}
   122 text{* Monotonicity: *}
   123 
   123 
   124 interpretation Abs_Int_mono
   124 permanent_interpretation Abs_Int_mono
   125 where \<gamma> = \<gamma>_const and num' = Const and plus' = plus_const
   125 where \<gamma> = \<gamma>_const and num' = Const and plus' = plus_const
   126 proof
   126 proof
   127   case goal1 thus ?case
   127   case goal1 thus ?case
   128     by(auto simp: plus_const_cases split: const.split)
   128     by(auto simp: plus_const_cases split: const.split)
   129 qed
   129 qed
   131 text{* Termination: *}
   131 text{* Termination: *}
   132 
   132 
   133 definition m_const :: "const \<Rightarrow> nat" where
   133 definition m_const :: "const \<Rightarrow> nat" where
   134 "m_const x = (if x = Any then 0 else 1)"
   134 "m_const x = (if x = Any then 0 else 1)"
   135 
   135 
   136 interpretation Abs_Int_measure
   136 permanent_interpretation Abs_Int_measure
   137 where \<gamma> = \<gamma>_const and num' = Const and plus' = plus_const
   137 where \<gamma> = \<gamma>_const and num' = Const and plus' = plus_const
   138 and m = m_const and h = "1"
   138 and m = m_const and h = "1"
   139 proof
   139 proof
   140   case goal1 thus ?case by(auto simp: m_const_def split: const.splits)
   140   case goal1 thus ?case by(auto simp: m_const_def split: const.splits)
   141 next
   141 next