diff -r 4dc65845eab3 -r d8d7d1b785af src/HOL/MicroJava/DFA/SemilatAlg.thy --- a/src/HOL/MicroJava/DFA/SemilatAlg.thy Wed Feb 24 11:55:52 2010 +0100 +++ b/src/HOL/MicroJava/DFA/SemilatAlg.thy Mon Mar 01 13:40:23 2010 +0100 @@ -9,29 +9,24 @@ imports Typing_Framework Product begin -constdefs - lesubstep_type :: "(nat \ 's) list \ 's ord \ (nat \ 's) list \ bool" - ("(_ /<=|_| _)" [50, 0, 51] 50) +definition lesubstep_type :: "(nat \ 's) list \ 's ord \ (nat \ 's) list \ bool" + ("(_ /<=|_| _)" [50, 0, 51] 50) where "x <=|r| y \ \(p,s) \ set x. \s'. (p,s') \ set y \ s <=_r s'" -consts - plusplussub :: "'a list \ ('a \ 'a \ 'a) \ 'a \ 'a" ("(_ /++'__ _)" [65, 1000, 66] 65) -primrec +primrec plusplussub :: "'a list \ ('a \ 'a \ 'a) \ 'a \ 'a" ("(_ /++'__ _)" [65, 1000, 66] 65) where "[] ++_f y = y" - "(x#xs) ++_f y = xs ++_f (x +_f y)" +| "(x#xs) ++_f y = xs ++_f (x +_f y)" -constdefs - bounded :: "'s step_type \ nat \ bool" +definition bounded :: "'s step_type \ nat \ bool" where "bounded step n == !p nat \ 's set \ bool" +definition pres_type :: "'s step_type \ nat \ 's set \ bool" where "pres_type step n A == \s\A. \p(q,s')\set (step p s). s' \ A" - mono :: "'s ord \ 's step_type \ nat \ 's set \ bool" +definition mono :: "'s ord \ 's step_type \ nat \ 's set \ bool" where "mono r step n A == \s p t. s \ A \ p < n \ s <=_r t \ step p s <=|r| step p t" - lemma pres_typeD: "\ pres_type step n A; s\A; pset (step p s) \ \ s' \ A" by (unfold pres_type_def, blast)