src/HOL/Data_Structures/Tree2.thy
author wenzelm
Wed, 06 Jan 2016 10:08:09 +0100
changeset 62076 1add21f7cabc
parent 61224 759b5299a9f2
child 62160 ff20b44b2fc8
permissions -rw-r--r--
proper Pattern.match and corresponding Envir.subst_term, instead of Envir.norm_term of unify-family;

theory Tree2
imports Main
begin

datatype ('a,'b) tree =
  Leaf ("\<langle>\<rangle>") |
  Node 'b "('a,'b)tree" 'a "('a,'b) tree" ("\<langle>_, _, _, _\<rangle>")

fun inorder :: "('a,'b)tree \<Rightarrow> 'a list" where
"inorder Leaf = []" |
"inorder (Node _ l a r) = inorder l @ a # inorder r"

fun height :: "('a,'b) tree \<Rightarrow> nat" where
"height Leaf = 0" |
"height (Node _ l a r) = max (height l) (height r) + 1"

end