# HG changeset patch # User nipkow # Date 1588689874 -7200 # Node ID 489c907b9e0526ca43b3f3ecfb69e293b4dcb3ef # Parent a86e37f4ad6056d4f4acbcabae33b01f3469b51a tuned var. names diff -r a86e37f4ad60 -r 489c907b9e05 src/HOL/Data_Structures/AVL_Bal_Set.thy --- a/src/HOL/Data_Structures/AVL_Bal_Set.thy Mon May 04 23:34:46 2020 +0200 +++ b/src/HOL/Data_Structures/AVL_Bal_Set.thy Tue May 05 16:44:34 2020 +0200 @@ -46,10 +46,10 @@ Bal \ Diff (Node AB (c,Lh) C) | Rh \ Same (Node AB (c,Bal) C) | Lh \ Same(case AB of - Node A (ab,Lh) B \ Node A (ab,Bal) (Node B (c,Bal) C) | - Node A (ab,Rh) B \ (case B of + Node A (a,Lh) B \ Node A (a,Bal) (Node B (c,Bal) C) | + Node A (a,Rh) B \ (case B of Node B\<^sub>1 (b, bb) B\<^sub>2 \ - Node (Node A (ab,rot21 bb) B\<^sub>1) (b,Bal) (Node B\<^sub>2 (c,rot22 bb) C)))))" + Node (Node A (a,rot21 bb) B\<^sub>1) (b,Bal) (Node B\<^sub>2 (c,rot22 bb) C)))))" fun balR :: "'a tree_bal \ 'a \ bal \ 'a tree_bal change \ 'a tree_bal change" where "balR A a ba BC' = (case BC' of @@ -58,10 +58,10 @@ Bal \ Diff (Node A (a,Rh) BC) | Lh \ Same (Node A (a,Bal) BC) | Rh \ Same(case BC of - Node B (bc,Rh) C \ Node (Node A (a,Bal) B) (bc,Bal) C | - Node B (bc,Lh) C \ (case B of + Node B (c,Rh) C \ Node (Node A (a,Bal) B) (c,Bal) C | + Node B (c,Lh) C \ (case B of Node B\<^sub>1 (b, bb) B\<^sub>2 \ - Node (Node A (a,rot21 bb) B\<^sub>1) (b,Bal) (Node B\<^sub>2 (bc,rot22 bb) C)))))" + Node (Node A (a,rot21 bb) B\<^sub>1) (b,Bal) (Node B\<^sub>2 (c,rot22 bb) C)))))" fun insert :: "'a::linorder \ 'a tree_bal \ 'a tree_bal change" where "insert x Leaf = Diff(Node Leaf (x, Bal) Leaf)" | @@ -71,30 +71,30 @@ GT \ balR l a b (insert x r))" fun baldR :: "'a tree_bal \ 'a \ bal \ 'a tree_bal change \ 'a tree_bal change" where -"baldR AB bc b C' = (case C' of - Same C \ Same (Node AB (bc,b) C) | - Diff C \ (case b of - Bal \ Same (Node AB (bc,Lh) C) | - Rh \ Diff (Node AB (bc,Bal) C) | +"baldR AB c bc C' = (case C' of + Same C \ Same (Node AB (c,bc) C) | + Diff C \ (case bc of + Bal \ Same (Node AB (c,Lh) C) | + Rh \ Diff (Node AB (c,Bal) C) | Lh \ (case AB of - Node A (ab,Lh) B \ Diff(Node A (ab,Bal) (Node B (bc,Bal) C)) | - Node A (ab,Bal) B \ Same(Node A (ab,Rh) (Node B (bc,Lh) C)) | - Node A (ab,Rh) B \ (case B of - Node B\<^sub>1 (bb, bB) B\<^sub>2 \ - Diff(Node (Node A (ab,rot21 bB) B\<^sub>1) (bb,Bal) (Node B\<^sub>2 (bc,rot22 bB) C))))))" + Node A (a,Lh) B \ Diff(Node A (a,Bal) (Node B (c,Bal) C)) | + Node A (a,Bal) B \ Same(Node A (a,Rh) (Node B (c,Lh) C)) | + Node A (a,Rh) B \ (case B of + Node B\<^sub>1 (b, bb) B\<^sub>2 \ + Diff(Node (Node A (a,rot21 bb) B\<^sub>1) (b,Bal) (Node B\<^sub>2 (c,rot22 bb) C))))))" fun baldL :: "'a tree_bal change \ 'a \ bal \ 'a tree_bal \ 'a tree_bal change" where -"baldL A' ab b BC = (case A' of - Same A \ Same (Node A (ab,b) BC) | - Diff A \ (case b of - Bal \ Same (Node A (ab,Rh) BC) | - Lh \ Diff (Node A (ab,Bal) BC) | +"baldL A' a ba BC = (case A' of + Same A \ Same (Node A (a,ba) BC) | + Diff A \ (case ba of + Bal \ Same (Node A (a,Rh) BC) | + Lh \ Diff (Node A (a,Bal) BC) | Rh \ (case BC of - Node B (bc,Rh) C \ Diff(Node (Node A (ab,Bal) B) (bc,Bal) C) | - Node B (bc,Bal) C \ Same(Node (Node A (ab,Rh) B) (bc,Lh) C) | - Node B (bc,Lh) C \ (case B of - Node B\<^sub>1 (bb, bB) B\<^sub>2 \ - Diff(Node (Node A (ab,rot21 bB) B\<^sub>1) (bb,Bal) (Node B\<^sub>2 (bc,rot22 bB) C))))))" + Node B (c,Rh) C \ Diff(Node (Node A (a,Bal) B) (c,Bal) C) | + Node B (c,Bal) C \ Same(Node (Node A (a,Rh) B) (c,Lh) C) | + Node B (c,Lh) C \ (case B of + Node B\<^sub>1 (b, bb) B\<^sub>2 \ + Diff(Node (Node A (a,rot21 bb) B\<^sub>1) (b,Bal) (Node B\<^sub>2 (c,rot22 bb) C))))))" fun split_max :: "'a tree_bal \ 'a tree_bal change * 'a" where "split_max (Node l (a, ba) r) = diff -r a86e37f4ad60 -r 489c907b9e05 src/HOL/Data_Structures/AVL_Set_Code.thy --- a/src/HOL/Data_Structures/AVL_Set_Code.thy Mon May 04 23:34:46 2020 +0200 +++ b/src/HOL/Data_Structures/AVL_Set_Code.thy Tue May 05 16:44:34 2020 +0200 @@ -29,22 +29,22 @@ "balL AB c C = (if ht AB = ht C + 2 then case AB of - Node A (ab, _) B \ - if ht A \ ht B then node A ab (node B c C) + Node A (a, _) B \ + if ht A \ ht B then node A a (node B c C) else case B of - Node B\<^sub>1 (b, _) B\<^sub>2 \ node (node A ab B\<^sub>1) b (node B\<^sub>2 c C) + Node B\<^sub>1 (b, _) B\<^sub>2 \ node (node A a B\<^sub>1) b (node B\<^sub>2 c C) else node AB c C)" definition balR :: "'a avl_tree \ 'a \ 'a avl_tree \ 'a avl_tree" where "balR A a BC = (if ht BC = ht A + 2 then case BC of - Node B (bc, _) C \ - if ht B \ ht C then node (node A a B) bc C + Node B (c, _) C \ + if ht B \ ht C then node (node A a B) c C else case B of - Node B\<^sub>1 (b, _) B\<^sub>2 \ node (node A a B\<^sub>1) b (node B\<^sub>2 bc C) + Node B\<^sub>1 (b, _) B\<^sub>2 \ node (node A a B\<^sub>1) b (node B\<^sub>2 c C) else node A a BC)" fun insert :: "'a::linorder \ 'a avl_tree \ 'a avl_tree" where