Induction- Recursion A polymorphic representation Venanzio Induction-Recursion Capretta University of A polymorphic representation Nottingham IR definitions Leftist Heaps Venanzio Capretta Slice Categories University of Nottingham Wander Types Conclusion Coda DTP 2011, Nijmegen Venanzio CaprettaUniversity of Nottingham Induction-Recursion A polymorphic representation
IR definitions Induction- Recursion A polymorphic representation Inductive-Recursive (IR) definitions Venanzio Capretta University of Nottingham IR definitions Leftist Heaps Slice Categories Wander Types Conclusion Coda Venanzio CaprettaUniversity of Nottingham Induction-Recursion A polymorphic representation
IR definitions Induction- Recursion A polymorphic representation Inductive-Recursive (IR) definitions Venanzio Simultaneously define Capretta University of � an inductive type T : Set Nottingham � a recursive function on it f : T → D IR definitions Leftist Heaps mutually dependent Slice Categories Wander Types Conclusion Coda Venanzio CaprettaUniversity of Nottingham Induction-Recursion A polymorphic representation
IR definitions Induction- Recursion A polymorphic representation Inductive-Recursive (IR) definitions Venanzio Simultaneously define Capretta University of � an inductive type T : Set Nottingham � a recursive function on it f : T → D IR definitions Leftist Heaps mutually dependent Slice � The constructors of T can use f Categories Wander Types Conclusion Coda Venanzio CaprettaUniversity of Nottingham Induction-Recursion A polymorphic representation
IR definitions Induction- Recursion A polymorphic representation Inductive-Recursive (IR) definitions Venanzio Simultaneously define Capretta University of � an inductive type T : Set Nottingham � a recursive function on it f : T → D IR definitions Leftist Heaps mutually dependent Slice � The constructors of T can use f Categories Wander Types � f recursive over T Conclusion Coda Venanzio CaprettaUniversity of Nottingham Induction-Recursion A polymorphic representation
IR definitions Induction- Recursion A polymorphic representation Inductive-Recursive (IR) definitions Venanzio Simultaneously define Capretta University of � an inductive type T : Set Nottingham � a recursive function on it f : T → D IR definitions Leftist Heaps mutually dependent Slice � The constructors of T can use f Categories Wander Types � f recursive over T Conclusion Coda Definition of Type Universes [Martin-L¨ of 1984, Palmgren 1998] General Definition [Dybjier 2001, Dybjier/Setzer 1999] Venanzio CaprettaUniversity of Nottingham Induction-Recursion A polymorphic representation
Type Universes Induction- Recursion A polymorphic representation � U : Type Venanzio Capretta (large) type of codes for (small) types University of Nottingham IR definitions Leftist Heaps Slice Categories Wander Types Conclusion Coda Venanzio CaprettaUniversity of Nottingham Induction-Recursion A polymorphic representation
Type Universes Induction- Recursion A polymorphic representation � U : Type Venanzio Capretta (large) type of codes for (small) types University of Nottingham IR definitions Leftist Heaps Slice Categories � El : U → Type Wander Types decoding function, giving type of elements of codes Conclusion Coda Venanzio CaprettaUniversity of Nottingham Induction-Recursion A polymorphic representation
Type Universes Induction- Recursion A polymorphic representation Venanzio � U : Type Capretta University of Nottingham nat : U IR definitions Leftist Heaps Slice � El : U → Type Categories Wander Types El nat = N Conclusion Coda Venanzio CaprettaUniversity of Nottingham Induction-Recursion A polymorphic representation
Type Universes Induction- Recursion A polymorphic representation � U : Type Venanzio Capretta University of nat : U Nottingham prod : U → U → U IR definitions Leftist Heaps Slice � El : U → Type Categories Wander Types El nat = N Conclusion El (prod a b ) = (El a ) × (El b ) Coda Venanzio CaprettaUniversity of Nottingham Induction-Recursion A polymorphic representation
Type Universes Induction- Recursion A polymorphic � U : Type representation Venanzio nat : U Capretta University of prod : U → U → U Nottingham sum : U → U → U IR definitions Leftist Heaps Slice Categories � El : U → Type Wander Types El nat = N Conclusion El (prod a b ) = (El a ) × (El b ) Coda El (sum a b ) = (El a ) + (El b ) Venanzio CaprettaUniversity of Nottingham Induction-Recursion A polymorphic representation
Type Universes Induction- Recursion A polymorphic � U : Type representation Venanzio nat : U Capretta University of prod : U → U → U Nottingham sum : U → U → U IR definitions arrow : U → U → U Leftist Heaps Slice Categories � El : U → Type Wander Types El nat = N Conclusion El (prod a b ) = (El a ) × (El b ) Coda El (sum a b ) = (El a ) + (El b ) El (arrow a b ) = (El a ) → (El b ) Venanzio CaprettaUniversity of Nottingham Induction-Recursion A polymorphic representation
Type Universes Induction- Recursion A polymorphic representation � U : Type Venanzio Capretta University of · · · Nottingham pi : ( a : U; b : El a → U) → U IR definitions Leftist Heaps Slice � El : U → Type Categories Wander Types · · · Conclusion El (pi a b ) = Π x : El a . El ( b x ) Coda Venanzio CaprettaUniversity of Nottingham Induction-Recursion A polymorphic representation
Type Universes Induction- Recursion A polymorphic representation � U : Type Venanzio Capretta University of · · · Nottingham pi : ( a : U; b : El a → U) → U IR definitions sig : ( a : U; b : El a → U) → U Leftist Heaps Slice � El : U → Type Categories Wander Types · · · Conclusion El (pi a b ) = Π x : El a . El ( b x ) Coda El (sig a b ) = Σ x : El a . El ( b x ) Venanzio CaprettaUniversity of Nottingham Induction-Recursion A polymorphic representation
Advanced Data Structures Induction- Heap (priority queue) on ordered set A , � Recursion A polymorphic representation Venanzio Capretta University of Nottingham IR definitions Leftist Heaps Slice Categories Wander Types Conclusion Coda Venanzio CaprettaUniversity of Nottingham Induction-Recursion A polymorphic representation
Advanced Data Structures Induction- Heap (priority queue) on ordered set A , � Recursion A polymorphic representation Heap : Set Venanzio Capretta University of Nottingham IR definitions Leftist Heaps Slice Categories Wander Types Conclusion Coda Venanzio CaprettaUniversity of Nottingham Induction-Recursion A polymorphic representation
Advanced Data Structures Induction- Heap (priority queue) on ordered set A , � Recursion A polymorphic representation Heap : Set Venanzio Capretta University of Nottingham empty : Heap isEmpty : Heap → B IR definitions Leftist Heaps Slice Categories Wander Types Conclusion Coda Venanzio CaprettaUniversity of Nottingham Induction-Recursion A polymorphic representation
Advanced Data Structures Induction- Heap (priority queue) on ordered set A , � Recursion A polymorphic representation Heap : Set Venanzio Capretta University of Nottingham empty : Heap isEmpty : Heap → B IR definitions insert : A → Heap → Heap Leftist Heaps Slice Categories Wander Types Conclusion Coda Venanzio CaprettaUniversity of Nottingham Induction-Recursion A polymorphic representation
Advanced Data Structures Induction- Heap (priority queue) on ordered set A , � Recursion A polymorphic representation Heap : Set Venanzio Capretta University of Nottingham empty : Heap isEmpty : Heap → B IR definitions insert : A → Heap → Heap Leftist Heaps findMin : Heap → A Slice Categories Wander Types Conclusion Coda Venanzio CaprettaUniversity of Nottingham Induction-Recursion A polymorphic representation
Advanced Data Structures Induction- Heap (priority queue) on ordered set A , � Recursion A polymorphic representation Heap : Set Venanzio Capretta University of Nottingham empty : Heap isEmpty : Heap → B IR definitions insert : A → Heap → Heap Leftist Heaps findMin : Heap → A Slice Categories deleteMin : Heap → Heap Wander Types Conclusion Coda Venanzio CaprettaUniversity of Nottingham Induction-Recursion A polymorphic representation
Advanced Data Structures Induction- Heap (priority queue) on ordered set A , � Recursion A polymorphic representation Heap : Set Venanzio Capretta University of Nottingham empty : Heap isEmpty : Heap → B IR definitions insert : A → Heap → Heap Leftist Heaps findMin : Heap → A Slice Categories deleteMin : Heap → Heap Wander Types Conclusion merge : Heap → Heap → Heap Coda Venanzio CaprettaUniversity of Nottingham Induction-Recursion A polymorphic representation
Advanced Data Structures Induction- Heap (priority queue) on ordered set A , � Recursion A polymorphic representation Heap : Set Venanzio Capretta University of Nottingham empty : Heap isEmpty : Heap → B IR definitions insert : A → Heap → Heap Leftist Heaps findMin : Heap → A Slice Categories deleteMin : Heap → Heap Wander Types Conclusion merge : Heap → Heap → Heap Coda With lists: linear complexity With leftist heaps: logarithmic complexity Venanzio CaprettaUniversity of Nottingham Induction-Recursion A polymorphic representation
Recommend
More recommend