Theory AList

Up to index of Isabelle/HOL/Subst

theory AList
imports Main

(*  ID:         $Id$
Author: Martin Coen, Cambridge University Computer Laboratory
Copyright 1993 University of Cambridge

*)


header{*Association Lists*}

theory AList
imports Main
begin


consts alist_rec :: "[('a*'b)list, 'c, ['a, 'b, ('a*'b)list, 'c]=>'c] => 'c"
primrec
"alist_rec [] c d = c"
"alist_rec (p # al) c d = d (fst p) (snd p) al (alist_rec al c d)"


consts assoc :: "['a,'b,('a*'b) list] => 'b"
primrec
"assoc v d [] = d"
"assoc v d (p # al) = (if v = fst p then snd p else assoc v d al)"


lemma alist_induct:
"[| P([]);
!!x y xs. P(xs) ==> P((x,y)#xs) |] ==> P(l)"

by (induct l) auto

end