coalgebras as types determined by their elimination rules
play

Coalgebras as Types Determined by their Elimination Rules Anton - PowerPoint PPT Presentation

Coalgebras as Types Determined by their Elimination Rules Anton Setzer Swansea University (Wales, UK) (Conference dedicated to Per Martin-Lf on occasion of his retirement, May 5 - 8, 2009) 1. Inductive and coinductive types 2. Model for a


  1. Coalgebras as Types Determined by their Elimination Rules Anton Setzer Swansea University (Wales, UK) (Conference dedicated to Per Martin-Löf on occasion of his retirement, May 5 - 8, 2009) 1. Inductive and coinductive types 2. Model for a type theory with coinductive types. 3. Meaning explanations – inductive and coinductive. Anton Setzer (Swansea): Coalgebras as types determined by their elimination rules 1

  2. Prelim: Notation for Disjoint Union nil ′ + cons ′ ( N , X ) is the disjoint union of the elements nil ′ and cons ′ n x for n : N and x : X . So we have nil ′ + cons ′ ( N , X ) , nil ′ : nil ′ + cons ′ ( N , X ) cons ′ n l : [ n : N , l : X ] . Anton Setzer (Swansea): Coalgebras as types determined by their elimination rules 2

  3. Notation for Disjoint Union And := case s of { (nil ′ ) t → case nil (cons ′ n l ) → case cons n l } is the term s.t. � if s = nil ′ , case nil t = if s = cons ′ n l . case cons n l Anton Setzer (Swansea): Coalgebras as types determined by their elimination rules 3

  4. 1. Inductive and Coinductive Types Inductive types are determined by their introduction rules . Example List: List : Set nil : List cons : ( n : N , l : List) → List Elimination rules express List is the least set introduced by those introduction rules: Anton Setzer (Swansea): Coalgebras as types determined by their elimination rules 4

  5. Elimination Rules for List Assume A : List → Set : A nil , step nil : ( n : N , l : List , ih : A l ) → A (cons n l ) step cons Then we have f := elim A step nil step cons : ( l : List) → A l f nil = step nil f (cons n l ) = step cons n l ( f l ) Anton Setzer (Swansea): Coalgebras as types determined by their elimination rules 5

  6. List as an Initial Algebra The above rules correspond to List being the initial algebra for the functor F ( X ) := nil ′ + cons ′ ( N , X ) That List is an algebra for F means that we have a function intro : (nil ′ + cons ′ ( N , List)) → List From this we obtain the introduction rules for List : intro nil ′ nil := : List , intro (cons ′ n l ) cons n l := : List . So formation/introduction rules express List is an algebra for F . Anton Setzer (Swansea): Coalgebras as types determined by their elimination rules 6

  7. List as an Initial Algebra That List is an initial algebra means that if f is as below there exists a unique g := elim f s.t. the following commutes: nil ′ + cons ′ ( N , List) intro ✲ List nil ′ + cons ′ (id N , g ) g ❄ f ❄ nil ′ + cons ′ ( N , X ) ✲ X Let f nil ′ = step nil f (cons ′ n l ) = step cons n l Anton Setzer (Swansea): Coalgebras as types determined by their elimination rules 7

  8. List as an Initial Algebra intro nil ′ + cons ′ ( N , List) ✲ List nil ′ + cons ′ (id N , g ) g ❄ [ step nil , step cons ] ❄ nil ′ + cons ′ ( N , X ) ✲ X g nil = step nil g (cons n l ) = step cons n ( g l ) We obtain iteration and can derive the principle of dependent higher type prim. recursion from uniqueness of iteration. Anton Setzer (Swansea): Coalgebras as types determined by their elimination rules 8

  9. Colist Let coList be the weakly final coalgebra for F . coList is a coalgebra means that we have _ . unfold : coList → (nil ′ + cons ′ ( N , coList)) (used as postfix operation). So, if l : coList then nil ′ l. unfold = or cons ′ n l l. unfold = Anton Setzer (Swansea): Coalgebras as types determined by their elimination rules 9

  10. Colist as Weakly Final Coalgebra Assume f as below. Then there exists g (called intro X f ) s.t. f ✲ nil ′ + cons ′ ( N , X ) X nil ′ + cons ′ (id , g ) g ❄ ❄ ✲ nil ′ + cons ′ ( N , coList) coList _ . unfold So ( g x ) . unfold = case ( f x ) of { (nil ′ ) nil ′ − → (cons ′ n y ) cons ′ n ( g y ) − → Anton Setzer (Swansea): Coalgebras as types determined by their elimination rules 10

  11. Guarded Recursion ( g x ) . unfold = case ( f x ) of { (nil ′ ) nil ′ − → (cons ′ n y ) cons ′ n ( g y ) } − → f contains the information needed to define a simple but generic case of guarded recursion : We can define f : X → coList s.t. nil ′ ( f x ) . unfold = or cons ′ n ( f y ) ( f x ) . unfold = for some n, y More general cases of guarded recursion can be derived assuming a final coalgebra. Anton Setzer (Swansea): Coalgebras as types determined by their elimination rules 11

  12. Example Define inc : N → coList (inc n ) . unfold = cons ′ n (inc ( n + 1)) Roughly speaking, inc n is cons ′ n (cons ′ ( n + 1) (cons ′ ( n + 2) · · · )) But the unfolding is controlled by unfold , which avoids non-normalisation. Anton Setzer (Swansea): Coalgebras as types determined by their elimination rules 12

  13. Other examples of Coalgebras Interactive programs as coalgebras: Let coalg IO : Set where _ . command : IO → (read + write(String)) _ . next : ( p : IO) → R (command p ) where R read = String → IO R (write s ) = IO _ . unfold , _ . command , _ . next above are destructors , dual of a constructor . Anton Setzer (Swansea): Coalgebras as types determined by their elimination rules 13

  14. Example Program mutual echo 0 : IO echo 0 . command = read echo 0 . next s = echo 1 s echo 1 : String → IO (echo 1 s ) . command = write s (echo 1 s ) . next = echo 0 Anton Setzer (Swansea): Coalgebras as types determined by their elimination rules 14

  15. Failure of Logic in Computer Scienc Mark Priestley in a talk in Swansea: Failure of logic to contribute to computer science. Substantial contribution of logic to development of Algol. Since emergence of object-oriented programming lead of development taken by practical computing . Possible explanation (A. S.): Programs in computer science switched from batch programs to interactive programs . Interactive programs correspond to coinductive rather than inductive definitions . Coinductive definitions underdeveloped in logic. Anton Setzer (Swansea): Coalgebras as types determined by their elimination rules 15

  16. Other examples of Coalgebras The set of real numbers in [ − 1 , 1] having a binary expansion : r = 0 .d 0 d 1 d 2 · · · with d i ∈ {− 1 , 0 , 1 } is given by coalg R : R → Set where _ . p : { r : R } → ( q : R r ) → r ∈ [ − 1 , 1] _ . digit : { r : R } → ( q : R r ) → {− 1 , 0 , 1 } _ . tail : { r : R } → ( q : R r ) → R (2 · r − q. digit) ( { r : R } is a hidden argument.) Anton Setzer (Swansea): Coalgebras as types determined by their elimination rules 16

  17. Binary expansion of 1 3 E.g. mutual R 1 : q 0 3 · · · : 1 q 0 . p = 3 ∈ [ − 1 , 1] q 0 . digit = 0 q 1 : R (2 · 1 q 0 . tail = 3 − 0) R 2 : q 1 3 · · · : 2 q 1 . p = 3 ∈ [ − 1 , 1] q 1 . digit = 1 q 0 : R (2 · 2 q 1 . tail = 3 − 1) Anton Setzer (Swansea): Coalgebras as types determined by their elimination rules 17

  18. Informal Treatment of the above The set of real numbers with binary expansion is coinductively defined as follows: If r ∈ [ − 1 , 1] , and there exists a digit ∈ {− 1 , 0 , 1 } s.t. 2 · r − digit has a binary expansion, then r has a binary expansion. We prove that 1 3 and 2 3 have binary expansion simultaneously: Both are in [ − 1 , 1] . For r := 1 3 we have with digit 0 := 0 that 2 · r − digit 0 has a binary expansion by co-IH . For r := 2 3 we have with digit 1 := 1 that 2 · r − digit 1 has a binary expansion by co-IH . Anton Setzer (Swansea): Coalgebras as types determined by their elimination rules 18

  19. (Bi)simulation Let an A -labelled transition system T 1 , − → be given by T 1 : Set and a relation R ⊆ T 1 × A × T 1 written as → t ′ for ( t, a, t ′ ) ∈ R . a − t Let T 1 , T 2 be A -labelled transition system. Simulation between T 1 and T 2 is the largest relation ≤⊆ T 1 × T 2 s.t. a ∀ t 1 ∈ T 1 . ∀ t 2 ∈ T 2 . ∀ a ∈ A. ∀ t ′ → t ′ 1 ∈ T 1 .t 1 ≤ t 2 → t 1 − 1 → a → t ′ 2 ∧ t ′ 1 ≤ t ′ ∃ t 2 ∈ T 2 .t 2 − 2 Anton Setzer (Swansea): Coalgebras as types determined by their elimination rules 19

  20. (Bi)simulation Defined as a coalgebra as coalg ≤ : T 1 → T 2 → Set where a _ . unfold : { t 1 : T 1 , t 2 : T 2 } → ( t 1 ≤ t 2 , t ′ → t ′ 1 : T 1 , a : A, t 1 − 1 a → ( t ′ → t ′ 2 ) × ( t ′ 1 ≤ t ′ 2 : T 2 ) × ( t 2 − 2 ) Anton Setzer (Swansea): Coalgebras as types determined by their elimination rules 20

  21. Example Let T 1 be given as tick tick tick − → a 2 − → a 3 − → · · · a 1 Let T 1 = { a } with a tick − → a . Traditional proof of ∀ n : N .a n ≤ a : Let R := {� a n , a � | n ∈ N } . Show R is a simulation relation. x Need to show that if � a n , a � ∈ R , a n → a ′ , then there − exists a ′′ s.t. � a ′ , a ′′ � ∈ R and a x − → a ′′ . Now in the above situation we have x = tick , a ′ = a n +1 . Let a ′′ := a , then the conditions are fulfilled. So R is a simulation relation, R ⊆≤ , so a n ≤ a . Anton Setzer (Swansea): Coalgebras as types determined by their elimination rules 21

  22. Example Proof of ∀ n ∈ N .a n ≤ a using guarded recursion: lem : ( n : N ) → a n ≤ a (lem n ) . unfold a n +1 tick triv = � a, triv , lem ( n + 1) � ���� tick : a n → a n +1 − Anton Setzer (Swansea): Coalgebras as types determined by their elimination rules 22

Download Presentation
Download Policy: The content available on the website is offered to you 'AS IS' for your personal information and use only. It cannot be commercialized, licensed, or distributed on other websites without prior consent from the author. To download a presentation, simply click this link. If you encounter any difficulties during the download process, it's possible that the publisher has removed the file from their server.

Recommend


More recommend