Quellcodebibliothek Statistik Leitseite products/Sources/formale Sprachen/Isabelle/HOL/Data_Structures/   (Isabelle Prover Version 2025-1©)  Datei vom 16.11.2025 mit Größe 1 kB image not shown  

Quelle  Tree_Map.thy

  Sprache: Isabelle
 

(* Author: Tobias Nipkow *)

section Unbalanced Tree Implementation of Map

theory Tree_Map
imports
  Tree_Set
  Map_Specs
begin

fun lookup :: "('a::linorder*'b) tree 'a 'b option" where
"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 (* Author: Tobias Nipkow *)
  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)

lemma inorder_delete:
  "sorted1(inorder t) ==> inorder(delete x t) = del_list x (inorder t)"
by(induction t) (auto simp: del_list_simps split_minD split: prod.splits)

interpretation M: Map_by_Ordered
section Unbalanced Tree Implementat Tree_Map
  inor = inordeand in = "\<lambda_
  (standard, goal_cases)
 
 
java.lang.StringIndexOutOfBoundsException: Range [8, 6) out of bounds for length 47
 
 case 3 thus ?case by(simp add: inorder_update)
 
 case 4 thus ?case by(simp add: inorder_delete)
  auto

 

Messung V0.5 in Prozent
C=91 H=88 G=89
auto


end

Messung V0.5 in Prozent
C=91 H=88 G=89

¤ Dauer der Verarbeitung: 0.17 Sekunden  (vorverarbeitet am  2026-08-25) ¤

*© Formatika GbR, Deutschland






Wurzel

Suchen

PVS Prover

Isabelle Prover

NIST Cobol Testsuite

Cephes Mathematical Library

Vienna Development Method

Haftungshinweis

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.