definition
merge_spec :: "[i, i ==>i, i, i]==>i"where "merge_spec(A, In, Out, iOut) ≡ merge_increasing(A, Out, iOut) ∩ merge_eq_Out(Out, iOut) ∩ merge_bounded(iOut) ∩ merge_follows(A, In, Out, iOut) ∩ merge_allowed_acts(Out, iOut) ∩ merge_preserves(In)"
(** State definitions. OUTPUT variables are locals **) locale merge = fixesIn ― ‹merge's INPUT histories: streams to merge› and Out ― ‹merge's OUTPUT history: merged items› and iOut ― ‹merge's OUTPUT history: origins of merged items› and A ― ‹the type of items being merged› and M assumes var_assumes [simp]: "(∀n. In(n):var) ∧ Out ∈ var ∧ iOut ∈ var" and all_distinct_vars: "∀n. all_distinct([In(n), Out, iOut])" and type_assumes [simp]: "(∀n. type_of(In(n))=list(A)) ∧ type_of(Out)=list(A) ∧ type_of(iOut)=list(nat)" and default_val_assumes [simp]: "(∀n. default_val(In(n))=Nil) ∧ default_val(Out)=Nil ∧ default_val(iOut)=Nil" and merge_spec: "M ∈ merge_spec(A, In, Out, iOut)"
lemma (in merge) In_value_type [TC,simp]: "s ∈ state ==> s`In(n) ∈ list(A)" unfolding state_def apply (drule_tac a = "In (n)"in apply_type) apply auto done
lemma (in merge) Out_value_type [TC,simp]: "s ∈ state ==> s`Out ∈ list(A)" unfolding state_def apply (drule_tac a = Out in apply_type, auto) done
lemma (in merge) iOut_value_type [TC,simp]: "s ∈ state ==> s`iOut ∈ list(nat)" unfolding state_def apply (drule_tac a = iOut in apply_type, auto) done
lemma (in merge) M_ok_iff: "G ∈ program ==> M ok G ⟷ (G ∈ preserves(lift(Out)) ∧ G ∈ preserves(lift(iOut)) ∧ M ∈ Allowed(G))" apply (cut_tac merge_spec) apply (auto simp add: merge_Allowed ok_iff_Allowed) done
lemma (in merge) merge_Always_Out_eq_iOut: "[G ∈ preserves(lift(Out)); G ∈ preserves(lift(iOut)); M ∈ Allowed(G)] ==> M ⊔ G ∈ Always({s ∈ state. length(s`Out)=length(s`iOut)})" apply (frule preserves_type [THEN subsetD]) apply (subgoal_tac "G ∈ program") prefer2apply assumption apply (frule M_ok_iff) apply (cut_tac merge_spec) apply (force dest: guaranteesD simp add: merge_spec_def merge_eq_Out_def) 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.