definition
UpdateOverride :: "['d pupdate, 'd update] => 'd update" (‹(_ [U+]/ _)› [10,11]10) where "UpdateOverride U P = Abs_update (λ DA . (U !! DA) [D+] (P !!! DA))"
(* -------------------------------------------------------------- *) (* We use our own FoldSet operator simular to the definition *) (* of Isabelle 2002. Note, it is different to the definition *) (* in Isabelle 2009. Basically we express "f (g x)" by "h x" *) (* -------------------------------------------------------------- *)
inductive
FoldSet :: "('b => 'a => 'a) => 'a => 'b set => 'a => bool" for h :: "'b => 'a => 'a" and z :: 'a where
emptyI [intro]: "FoldSet h z {} z"
| insertI [intro]: "[ x ∉ A; FoldSet h z A y ] ==> FoldSet h z (insert x A) (h x y)"
definition
SequentialRacing :: "('d pupdate set) => ('d update set)"where "SequentialRacing U = {u. FoldSet UpdateOverride DefaultUpdate U u}"
lemma FoldSet_imp_finite: "FoldSet h z A x ==> finite A" by (induct set: FoldSet) auto
lemma finite_imp_FoldSet: "finite A ==>∃ x. FoldSet h z A x" by (induct set: finite) auto
lemma finite_SequentialRacing: "finite US ==> (SOME u. u ∈ SequentialRacing US) ∈ SequentialRacing US" apply (unfold SequentialRacing_def) apply auto apply (drule_tac h=UpdateOverride and z=DefaultUpdate in finite_imp_FoldSet) apply auto apply (rule someI) apply auto done
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.