lemma map_of_map_as_map_upd: "distinct (map f zs) ==> map_of (map (λ p. (f p, g p)) zs) = Map.empty (map f zs [↦] map g zs)" by (induct zs) auto
(* In analogy to Map.map_of_SomeD *) lemma map_upds_SomeD: "(m(xs[↦]ys)) k = Some y ==> k ∈ (set xs) ∨ (m k = Some y)" apply (induct xs arbitrary: m ys) apply simp apply (case_tac ys) apply fastforce+ done
lemma map_of_upds_SomeD: "((map_of m) (xs[↦]ys)) k = Some y ==> k ∈ (set (xs @ map fst m))" by (auto dest: map_upds_SomeD map_of_SomeD fst_in_set_lemma)
lemma map_of_map_prop: "[map_of (map f xs) k = Some v; ∀x ∈ set xs. P1 x; ∀x. P1 x ⟶ P2 (f x)]==> P2 (k, v)" by (induct xs) (auto split: if_split_asm)
lemma map_of_map2: "∀x ∈ set xs. (fst (f x)) = (fst x) ==> map_of (map f xs) a = map_option (λ b. (snd (f (a, b)))) (map_of xs a)" by (induct xs, auto)
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.