diff -r ae6ad1363eb9 -r 91dc591de63f Myhill_1.thy --- a/Myhill_1.thy Tue Feb 15 10:37:56 2011 +0000 +++ b/Myhill_1.thy Tue Feb 15 12:01:29 2011 +0000 @@ -1148,10 +1148,15 @@ unfolding Solve_def by (rule while_rule) qed -lemma last_cl_exists_rexp: - assumes Inv_ES: "invariant {(X, xrhs)}" - shows "\r::rexp. L r = X" -proof- +lemma every_eqcl_has_reg: + assumes finite_CS: "finite (UNIV // \A)" + and X_in_CS: "X \ (UNIV // \A)" + shows "\r::rexp. X = L r" +proof - + from finite_CS X_in_CS + obtain xrhs where Inv_ES: "invariant {(X, xrhs)}" + using Solve by metis + def A \ "Arden X xrhs" have "rhss xrhs \ {X}" using Inv_ES unfolding valid_eqs_def invariant_def rhss_def lhss_def @@ -1172,19 +1177,7 @@ by (rule_tac Arden_keeps_eq) (simp_all add: finite_Trn) then have "X = L {Lam r | r. Lam r \ A}" using eq by simp then have "X = L (\{r. Lam r \ A})" using fin by auto - then show "\r::rexp. L r = X" by blast -qed - -lemma every_eqcl_has_reg: - assumes finite_CS: "finite (UNIV // \A)" - and X_in_CS: "X \ (UNIV // \A)" - shows "\r::rexp. L r = X" -proof - - from finite_CS X_in_CS - obtain xrhs where "invariant {(X, xrhs)}" - using Solve by metis - then show "\r::rexp. L r = X" - using last_cl_exists_rexp by auto + then show "\r::rexp. X = L r" by blast qed lemma bchoice_finite_set: