(* Title: ZF/UNITY/Distributor.thy Author: Sidi O Ehmety, Cambridge University Computer Laboratory Copyright 2002 University of Cambridge A multiple-client allocator from a single-client allocator: Distributor specification. *)
theory Distributor imports AllocBase Follows Guar GenPrefix begin
text‹Distributor specification (the number of outputs is Nclients)›
definition
distr_spec :: "[i, i, i, i ==>i]==>i"where "distr_spec(A, In, iIn, Out) ≡ distr_follows(A, In, iIn, Out) ∩ distr_allowed_acts(Out)"
locale distr = fixesIn🍋‹items to distribute› and iIn 🍋‹destinations of items to distribute› and Out 🍋‹distributed items› and A 🍋‹the type of items being distributed› and D assumes
var_assumes [simp]: "In ∈ var ∧ iIn ∈ var ∧ (∀n. Out(n):var)" and all_distinct_vars: "∀n. all_distinct([In, iIn, Out(n)])" and type_assumes [simp]: "type_of(In)=list(A) ∧ type_of(iIn)=list(nat) ∧ (∀n. type_of(Out(n))=list(A))" and default_val_assumes [simp]: "default_val(In)=Nil ∧ default_val(iIn)=Nil ∧ (∀n. default_val(Out(n))=Nil)" and distr_spec: "D ∈ distr_spec(A, In, iIn, Out)"
lemma (in distr) In_value_type [simp,TC]: "s ∈ state ==> s`In ∈ list(A)" unfolding state_def apply (drule_tac a = Inin apply_type, auto) done
lemma (in distr) iIn_value_type [simp,TC]: "s ∈ state ==> s`iIn ∈ list(nat)" unfolding state_def apply (drule_tac a = iIn in apply_type, auto) done
lemma (in distr) Out_value_type [simp,TC]: "s ∈ state ==> s`Out(n):list(A)" unfolding state_def apply (drule_tac a = "Out (n)"in apply_type) 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.