C-POs and Proof Principles Ralf Hinze Category-Partial Orders Prologue and Category- partial Proof Principles orders Split c-pos Monic c-pos Ralf Hinze Initial objects Computing Laboratory, University of Oxford Proof Wolfson Building, Parks Road, Oxford, OX1 3QD, England principles ralf.hinze@comlab.ox.ac.uk Coproducts http://www.comlab.ox.ac.uk/ralf.hinze/ Initial algebras June 2008 Examples Epilogue 1 / 43
C-POs and Proof Principles Ralf Hinze Prologue Category- partial data List = [ ] | Nat : List orders Split c-pos append :: ( List , List ) → List Monic append ([ ] , bs ) = bs c-pos append ( a : as , bs ) = a : append ( as , bs ) Initial objects Proof principles Coproducts Initial algebras Examples Epilogue 2 / 43
C-POs and Proof Principles Ralf Hinze Prologue Category- partial orders ∀ x : List . P ( x ) Split c-pos Monic c-pos P ( x ) append ( x , [ ]) = x ⇐ ⇒ Initial objects Proof principles Coproducts Initial algebras Examples Epilogue 3 / 43
C-POs and Proof Case P ([ ]) : Principles Ralf Hinze append ([ ] , [ ]) Prologue = { definition of append } Category- partial [ ] orders Split c-pos Case P ( a : as ) : Monic c-pos Initial append ( a : as , [ ]) objects Proof = { definition of append } principles a : append ( as , [ ]) Coproducts Initial = { ex hypothesi } algebras Examples a : as Epilogue 4 / 43
C-POs and Proof Principles Ralf Hinze Prologue Category- partial orders append :: ( List , List ) → List Split c-pos append ( as , bs ) = foldr (:) bs as Monic c-pos Initial objects Proof principles Coproducts Initial algebras Examples Epilogue 5 / 43
C-POs and Proof Principles Ralf Hinze Prologue Category- partial append ( as , [ ]) orders Split c-pos { definition of append } = Monic foldr (:) [ ] as c-pos Initial = { reflection: foldr (:) [ ] = id } objects Proof as principles Coproducts Initial algebras Examples Epilogue 6 / 43
C-POs and Proof Principles Ralf Hinze Prologue Category- partial orders Split c-pos Cat + ⊆ ? Monic c-pos Initial objects Proof principles Coproducts Initial algebras Examples Epilogue 7 / 43
Ordering objects C-POs and Proof Principles Ralf Hinze Prologue Category- partial orders A category-partial order is a pair � C , ⊑� where Split c-pos ◮ C is a category and Monic c-pos ◮ ⊑ is a subcategory of C that is a partial order on the Initial objects objects of C . Proof principles Coproducts Initial algebras Examples Epilogue 8 / 43
Ordering morphisms C-POs and Proof Principles Ralf Hinze Let f : A → B and g : C → D , then Prologue Category- partial f ⊑ g orders Split c-pos iff A ⊑ C , B ⊑ D and the following diagram commutes. Monic c-pos f Initial ≻ B A objects Proof ⊑ B,D · f = g · ⊑ A,C principles ⇐ ⇒ Coproducts ≻ D C Initial g algebras Examples Epilogue 9 / 43
Properties C-POs and Proof Principles Ralf Hinze Prologue Category- partial orders ◮ ⊑ on morphisms is a partial order. Split c-pos ◮ Let f, g : A → B , then Monic c-pos Initial f ⊑ g f = g objects ⇐ ⇒ Proof principles Coproducts Initial algebras Examples Epilogue 10 / 43
Examples C-POs and Proof Principles Ralf Hinze Prologue Category- partial orders Split c-pos ◮ � Set , ⊆� : f ⊑ g iff f is the restriction of g to A . Monic c-pos ◮ Functor categories: D C is a c-po if D is one. Initial objects Proof principles Coproducts Initial algebras Examples Epilogue 11 / 43
C-POs and Proof Principles Ralf Hinze Prologue Category- In Set : partial B orders ≻ ⊆ f Split c-pos f = ⊆ ⇐ ⇒ ≻ Monic c-pos ≻ A C ⊆ Initial objects Proof principles Coproducts Initial algebras Examples Epilogue 12 / 43
Split transitivity C-POs and Proof Principles Ralf Hinze Prologue Category- partial orders Let f : A → B , then Split c-pos Monic ⊑ B,C · f = ⊑ A,C f = ⊑ A,B ⇐ ⇒ c-pos Initial objects A c-po that satisfies this property is called a split c-po . Proof principles Coproducts Initial algebras Examples Epilogue 13 / 43
An equivalent formulation C-POs and Proof Principles Ralf Hinze Let f : A → B , then Prologue Category- f ⊑ id C f = ⊑ A,B partial ⇒ = orders Split c-pos Monic c-pos Initial objects f ≻ B A Proof principles Coproducts Initial ≻ C C algebras id C Examples Epilogue 14 / 43
C-POs and Proof Principles Ralf Hinze Prologue Category- partial In Set the inclusion morphisms are monos. orders Split c-pos ⊆ · f 1 = ⊆ · f 2 f 1 = f 2 ⇐ ⇒ Monic c-pos Initial objects Proof principles Coproducts Initial algebras Examples Epilogue 15 / 43
Monic c-pos C-POs and Proof Principles Ralf Hinze Prologue Category- partial orders A c-po is called a monic c-po if the arrows ⊑ A,B are monos: Split c-pos Let f 1 , f 2 : A → B in C , then Monic c-pos ⊑ B,C · f 1 = ⊑ B,C · f 2 f 1 = f 2 Initial ⇐ ⇒ objects Proof principles Coproducts Initial algebras Examples Epilogue 16 / 43
Properties C-POs and Proof Principles Ralf Hinze Prologue In a monic c-po the lower arrow uniquely determines the Category- partial upper arrow. orders Split c-pos f Monic ≻ B A c-pos Initial objects Proof ≻ D C principles g Coproducts Initial algebras Examples Epilogue 17 / 43
Contracts C-POs and Proof Principles Ralf Hinze Let f : A → B , then Prologue Category- f ∈ R → S ∃ g : R → S . g ⊑ f : ⇐ ⇒ partial orders Split c-pos Think of R → S as a contract with precondition R and Monic postcondition S . But note that the postcondition can’t be c-pos weaker than B . Initial objects ≻ S R Proof principles Coproducts Initial ≻ B A algebras f Examples Epilogue 18 / 43
An aside: The category of contracts C-POs and Proof Principles Ralf Hinze ◮ Identity: Prologue Category- R ⊑ A id A ∈ R → R ⇐ ⇒ partial orders Split c-pos ◮ Composition: Let f : A → B and g : B → C , then Monic c-pos f ∈ R → S ∧ g ∈ S → T g · f ∈ R → T ⇒ Initial = objects Proof principles ≻ R ≻ S ≻ T R R Coproducts Initial algebras A ≻ A A ≻ B ≻ C Examples id A f g Epilogue 19 / 43
Initial objects C-POs and Proof Principles Ralf Hinze Prologue Category- partial orders Split c-pos Monic ¡ A c-pos ≻ A 0 Initial objects Proof principles Coproducts Initial algebras Examples Epilogue 20 / 43
Universal property C-POs and Proof Principles Ralf Hinze Prologue Category- partial orders Split c-pos Monic c-pos ¡ A = h h : 0 → A ⇐ ⇒ Initial objects Proof principles Coproducts Initial algebras Examples Epilogue 21 / 43
Reflection C-POs and Proof Principles Ralf Hinze Prologue Category- partial orders Set A = 0 and h = id 0 . Split c-pos We obtain Monic c-pos ¡ 0 = id 0 Initial objects Proof principles Coproducts Initial algebras Examples Epilogue 22 / 43
Fusion C-POs and Proof Principles Ralf Hinze Let f : B → A and set h = f · ¡ B : 0 → A . We obtain Prologue Category- partial ¡ A = f · ¡ B f : B → A ⇐ = orders Split c-pos Monic c-pos Initial 0 objects Proof principles ¡ A ¡ B Coproducts Initial algebras ≻ � ≻ A B Examples f Epilogue 23 / 43
The mother of all proof principles C-POs and Proof Principles Ralf Hinze Prologue f : A → R g : B → R Category- f · ¡ A = g · ¡ B partial orders Split c-pos Monic c-pos 0 Initial ¡ A objects ¡ B ≺ Proof ≻ principles A ¡ R B Coproducts Initial g f algebras ≻ � ≺ R Examples Epilogue 24 / 43
C-POs and Proof Principles Ralf Hinze Prologue Category- A special case: Set B = R and g = id R . partial orders We obtain Split c-pos f : A → R Monic f · ¡ A = ¡ R c-pos So, the proof principle implies fusion. Initial objects Proof principles Coproducts Initial algebras Examples Epilogue 25 / 43
C-POs and Proof Principles A more special case: Set f = ⊑ A,R . Ralf Hinze We obtain Prologue A ⊑ R A ⊑ R Category- ¡ A ⊑ ¡ R ¡ R ∈ 0 → A partial orders Split c-pos Monic c-pos ¡ A Initial 0 ≻ A objects � Proof � � principles � � Coproducts 0 ≻ R Initial ¡ R algebras Examples Epilogue 26 / 43
C-POs and Proof Principles Ralf Hinze An even more special case: Set R = 0 . Prologue We obtain Category- A ⊑ 0 A ⊑ 0 partial orders ¡ A ⊑ ¡ 0 ¡ 0 ∈ 0 → A Split c-pos Monic c-pos Initial Recall that ¡ 0 = id 0 . So, in a split c-po this implies: objects Proof A ⊑ 0 principles Coproducts A = 0 Initial algebras Examples Epilogue 27 / 43
C-POs and Proof Principles Ralf Hinze An even more special case: Set R = 0 . Prologue We obtain Category- A ⊑ 0 A ⊑ 0 partial orders ¡ A ⊑ ¡ 0 ¡ 0 ∈ 0 → A Split c-pos Monic c-pos Initial Recall that ¡ 0 = id 0 . So, in a split c-po this implies: objects Proof A ⊑ 0 principles Coproducts A = 0 Initial algebras Examples Epilogue 28 / 43
Recommend
More recommend