src/HOL/Data_Structures/Isin2.thy
author nipkow
Tue, 22 Sep 2015 17:13:01 +0200
changeset 61229 0b9c45c4af29
parent 61224 759b5299a9f2
child 61692 cb595e12451d
permissions -rw-r--r--
unified isin-proofs
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
61224
759b5299a9f2 added red black trees
nipkow
parents:
diff changeset
     1
(* Author: Tobias Nipkow *)
759b5299a9f2 added red black trees
nipkow
parents:
diff changeset
     2
759b5299a9f2 added red black trees
nipkow
parents:
diff changeset
     3
section \<open>Function \textit{isin} for Tree2\<close>
759b5299a9f2 added red black trees
nipkow
parents:
diff changeset
     4
759b5299a9f2 added red black trees
nipkow
parents:
diff changeset
     5
theory Isin2
759b5299a9f2 added red black trees
nipkow
parents:
diff changeset
     6
imports
759b5299a9f2 added red black trees
nipkow
parents:
diff changeset
     7
  Tree2
759b5299a9f2 added red black trees
nipkow
parents:
diff changeset
     8
  Set_by_Ordered
759b5299a9f2 added red black trees
nipkow
parents:
diff changeset
     9
begin
759b5299a9f2 added red black trees
nipkow
parents:
diff changeset
    10
759b5299a9f2 added red black trees
nipkow
parents:
diff changeset
    11
fun isin :: "('a,'b) tree \<Rightarrow> ('a::order) \<Rightarrow> bool" where
759b5299a9f2 added red black trees
nipkow
parents:
diff changeset
    12
"isin Leaf x = False" |
759b5299a9f2 added red black trees
nipkow
parents:
diff changeset
    13
"isin (Node _ l a r) x = (x < a \<and> isin l x \<or> x=a \<or> isin r x)"
759b5299a9f2 added red black trees
nipkow
parents:
diff changeset
    14
759b5299a9f2 added red black trees
nipkow
parents:
diff changeset
    15
lemma "sorted(inorder t) \<Longrightarrow> isin t x = (x \<in> elems(inorder t))"
61229
0b9c45c4af29 unified isin-proofs
nipkow
parents: 61224
diff changeset
    16
by (induction t) (auto simp: elems_simps1)
61224
759b5299a9f2 added red black trees
nipkow
parents:
diff changeset
    17
759b5299a9f2 added red black trees
nipkow
parents:
diff changeset
    18
lemma isin_set: "sorted(inorder t) \<Longrightarrow> isin t x = (x \<in> elems(inorder t))"
61229
0b9c45c4af29 unified isin-proofs
nipkow
parents: 61224
diff changeset
    19
by (induction t) (auto simp: elems_simps2)
61224
759b5299a9f2 added red black trees
nipkow
parents:
diff changeset
    20
759b5299a9f2 added red black trees
nipkow
parents:
diff changeset
    21
end