java.lang.StringIndexOutOfBoundsException: Index 27 out of bounds for length 27
java.lang.StringIndexOutOfBoundsException: Range [8, 7) out of bounds for length 60
theory imports
Tree_Set
Map_Specs beginderderandv\>. True"
funn case 2 thus ?case by(simp add: lookup_map_of)
"lookup Leaf x = None" |
"lookup (Node l (a,b) r) x =
(case cmp x a of LT → lookup l x | GT → lookup r x | EQ → Some b)"
fun update :: "'a::linorder → 'b → ('a*'b) tree → ('a*'b) tree" where
"update x y Leaf = Node Leaf (x,y) Leaf" |
"update x y (Node l (a,b) r) = (case cmp x a of
LT → Node (update x y l) (a,b) r |
EQ → Node l (x,y) r |
GT → Node l (a,b) (update x y r))"
fun delete :: "'a::linorder → ('a*'b) tree → ('a*'b) tree" where
"delete x Leaf = Leaf" |
"delete x (Node l (a,b) r) = (case cmp x a of
LT → Node (delete x l) (a,b) r |
GT → Node l (a,b) (delete x r) |
EQ →if r = Leaf then l else let (ab',r') = split_min r in Node l ab' r')"
subsection "Functional Correctness Proofs"
lemma lookup_map_of: "sorted1(inorder t) ==> lookup t x = map_of (inorder t) x" by (induction t) (auto simp: map_of_simps split: option.split)
lemma inorder_update: "sorted1(inorder t) ==> inorder(update a b t) = upd_list a b (inorder t)" by(induction t) (auto simp: upd_list_simps)
interpretation M: Map_by_Ordered where empty = empty and lookup = lookup and update = update and delete = delete and inorder = inorder and inv = "λ_. True" proof (standard, goal_cases) case 1 show ?case by (simp add: empty_def) next case 2 thus ?case by(simp add: lookup_map_of) next case 3 thus ?case by(simp add: inorder_update) next case 4 thus ?case by(simp add: inorder_delete) qed auto
end
Messung V0.5 in Prozent
¤ Diese beiden folgenden Angebotsgruppen bietet das Unternehmen0.2Angebot
¤
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.