Constructive category theory Categories Definition A category A contains the following data: Obj A Hom A ( A , B ) ◦ : Hom A ( B , C ) × Hom A ( A , B ) → Hom A ( A , C ) (assoz.) Neutral elements: id A ∈ Hom A ( A , A ) A B C Sebastian Gutsche (Siegen) Constructive Categories August 31, 2017 7 / 23
Constructive category theory Categories Definition A category A contains the following data: Obj A Hom A ( A , B ) ◦ : Hom A ( B , C ) × Hom A ( A , B ) → Hom A ( A , C ) (assoz.) Neutral elements: id A ∈ Hom A ( A , A ) A B C Sebastian Gutsche (Siegen) Constructive Categories August 31, 2017 7 / 23
Constructive category theory Categories Definition A category A contains the following data: Obj A Hom A ( A , B ) ◦ : Hom A ( B , C ) × Hom A ( A , B ) → Hom A ( A , C ) (assoz.) Neutral elements: id A ∈ Hom A ( A , A ) A B C Sebastian Gutsche (Siegen) Constructive Categories August 31, 2017 7 / 23
Constructive category theory Computable categories Sebastian Gutsche (Siegen) Constructive Categories August 31, 2017 8 / 23
Constructive category theory Computable categories A category becomes computable through Sebastian Gutsche (Siegen) Constructive Categories August 31, 2017 8 / 23
Constructive category theory Computable categories A category becomes computable through data structures for objects and morphisms Sebastian Gutsche (Siegen) Constructive Categories August 31, 2017 8 / 23
Constructive category theory Computable categories A category becomes computable through data structures for objects and morphisms algorithms to compute the composition of morphisms Sebastian Gutsche (Siegen) Constructive Categories August 31, 2017 8 / 23
Constructive category theory Computable categories A category becomes computable through data structures for objects and morphisms algorithms to compute the composition of morphisms and identity morphisms of objects Sebastian Gutsche (Siegen) Constructive Categories August 31, 2017 8 / 23
Constructive category theory Computable categories A category becomes computable through data structures for objects and morphisms algorithms to compute the composition of morphisms and identity morphisms of objects Finitely generated Q -vector spaces (skeletal) Sebastian Gutsche (Siegen) Constructive Categories August 31, 2017 8 / 23
Constructive category theory Computable categories A category becomes computable through data structures for objects and morphisms algorithms to compute the composition of morphisms and identity morphisms of objects Finitely generated Q -vector spaces (skeletal) Sebastian Gutsche (Siegen) Constructive Categories August 31, 2017 8 / 23
Constructive category theory Computable categories A category becomes computable through data structures for objects and morphisms algorithms to compute the composition of morphisms and identity morphisms of objects Finitely generated Q -vector spaces (skeletal) 1 2 1 Sebastian Gutsche (Siegen) Constructive Categories August 31, 2017 8 / 23
Constructive category theory Computable categories A category becomes computable through data structures for objects and morphisms algorithms to compute the composition of morphisms and identity morphisms of objects Finitely generated Q -vector spaces (skeletal) 1 2 1 Sebastian Gutsche (Siegen) Constructive Categories August 31, 2017 8 / 23
Constructive category theory Computable categories A category becomes computable through data structures for objects and morphisms algorithms to compute the composition of morphisms and identity morphisms of objects Finitely generated Q -vector spaces (skeletal) 1 2 1 � 3 � � � 1 2 4 Sebastian Gutsche (Siegen) Constructive Categories August 31, 2017 8 / 23
Constructive category theory Computable categories A category becomes computable through data structures for objects and morphisms algorithms to compute the composition of morphisms and identity morphisms of objects Finitely generated Q -vector spaces (skeletal) 1 2 1 � 3 � � � 1 2 4 Sebastian Gutsche (Siegen) Constructive Categories August 31, 2017 8 / 23
Constructive category theory Computable categories A category becomes computable through data structures for objects and morphisms algorithms to compute the composition of morphisms and identity morphisms of objects Finitely generated Q -vector spaces (skeletal) � 3 � � � 1 2 · = ( 11 ) 4 1 2 1 � 3 � � � 1 2 4 Sebastian Gutsche (Siegen) Constructive Categories August 31, 2017 8 / 23
Constructive category theory Computable categories A category becomes computable through data structures for objects and morphisms algorithms to compute the composition of morphisms and identity morphisms of objects Finitely generated Q -vector spaces (skeletal) � 3 � � � 1 2 · = ( 11 ) 4 1 2 1 � 3 � � � 1 2 4 Sebastian Gutsche (Siegen) Constructive Categories August 31, 2017 8 / 23
Constructive category theory Computable categories A category becomes computable through data structures for objects and morphisms algorithms to compute the composition of morphisms and identity morphisms of objects Finitely generated Q -vector spaces (skeletal) � 3 � � � 1 2 · = ( 11 ) 4 1 2 1 � 3 � � � 1 2 4 ( 1 ) � � ( 1 ) 1 0 0 1 Sebastian Gutsche (Siegen) Constructive Categories August 31, 2017 8 / 23
Constructive category theory Computable categories A category becomes computable through data structures for objects and morphisms algorithms to compute the composition of morphisms and identity morphisms of objects Finitely generated Q -vector spaces (skeletal) � 3 � � � 1 2 · = ( 11 ) 4 1 2 1 � 3 � � � 1 2 4 ( 1 ) � � ( 1 ) 1 0 0 1 Sebastian Gutsche (Siegen) Constructive Categories August 31, 2017 8 / 23
Constructive category theory Categorical operations Some categorical operations in abelian categories Sebastian Gutsche (Siegen) Constructive Categories August 31, 2017 9 / 23
Constructive category theory Categorical operations Some categorical operations in abelian categories Zero morphisms Sebastian Gutsche (Siegen) Constructive Categories August 31, 2017 9 / 23
Constructive category theory Categorical operations Some categorical operations in abelian categories Zero morphisms Addition and subtraction of morphisms Sebastian Gutsche (Siegen) Constructive Categories August 31, 2017 9 / 23
Constructive category theory Categorical operations Some categorical operations in abelian categories Zero morphisms Addition and subtraction of morphisms Direct sums Sebastian Gutsche (Siegen) Constructive Categories August 31, 2017 9 / 23
Constructive category theory Categorical operations Some categorical operations in abelian categories Zero morphisms Addition and subtraction of morphisms Direct sums Kernels and cokernels of morphisms Sebastian Gutsche (Siegen) Constructive Categories August 31, 2017 9 / 23
Constructive category theory Categorical operations Some categorical operations in abelian categories Zero morphisms Addition and subtraction of morphisms Direct sums Kernels and cokernels of morphisms ... Sebastian Gutsche (Siegen) Constructive Categories August 31, 2017 9 / 23
Constructive category theory Implementation of the kernel Let ϕ ∈ Hom( A , B ) . Sebastian Gutsche (Siegen) Constructive Categories August 31, 2017 10 / 23
Constructive category theory Implementation of the kernel Let ϕ ∈ Hom( A , B ) . ϕ A B Sebastian Gutsche (Siegen) Constructive Categories August 31, 2017 10 / 23
Constructive category theory Implementation of the kernel Let ϕ ∈ Hom( A , B ) . To fully describe the kernel of ϕ . . . ϕ A B Sebastian Gutsche (Siegen) Constructive Categories August 31, 2017 10 / 23
Constructive category theory Implementation of the kernel Let ϕ ∈ Hom( A , B ) . To fully describe the kernel of ϕ . . . . . . one needs an object ker ϕ , ker ϕ ϕ A B Sebastian Gutsche (Siegen) Constructive Categories August 31, 2017 10 / 23
Constructive category theory Implementation of the kernel Let ϕ ∈ Hom( A , B ) . To fully describe the kernel of ϕ . . . . . . one needs an object ker ϕ , its embedding κ = KernelEmbedding( ϕ ) , ker ϕ κ ϕ A B Sebastian Gutsche (Siegen) Constructive Categories August 31, 2017 10 / 23
Constructive category theory Implementation of the kernel Let ϕ ∈ Hom( A , B ) . To fully describe the kernel of ϕ . . . . . . one needs an object ker ϕ , its embedding κ = KernelEmbedding( ϕ ) , and for every test morphism τ 0 ker ϕ κ ϕ A B τ T 0 Sebastian Gutsche (Siegen) Constructive Categories August 31, 2017 10 / 23
Constructive category theory Implementation of the kernel Let ϕ ∈ Hom( A , B ) . To fully describe the kernel of ϕ . . . . . . one needs an object ker ϕ , its embedding κ = KernelEmbedding( ϕ ) , and for every test morphism τ a unique morphism λ = KernelLift( ϕ, τ ) 0 ker ϕ κ ϕ A B λ τ T 0 Sebastian Gutsche (Siegen) Constructive Categories August 31, 2017 10 / 23
Constructive category theory Implementation of the kernel Let ϕ ∈ Hom( A , B ) . To fully describe the kernel of ϕ . . . . . . one needs an object ker ϕ , its embedding κ = KernelEmbedding( ϕ ) , and for every test morphism τ a unique morphism λ = KernelLift( ϕ, τ ) , such that 0 ker ϕ κ ϕ � A B λ τ T 0 Sebastian Gutsche (Siegen) Constructive Categories August 31, 2017 10 / 23
Constructive category theory Implementation of the kernel: Q -vector spaces Obj := Z ≥ 0 , Hom ( m , n ) := Q m × n Sebastian Gutsche (Siegen) Constructive Categories August 31, 2017 11 / 23
Constructive category theory Implementation of the kernel: Q -vector spaces Obj := Z ≥ 0 , Hom ( m , n ) := Q m × n ϕ A B Sebastian Gutsche (Siegen) Constructive Categories August 31, 2017 11 / 23
Constructive category theory Implementation of the kernel: Q -vector spaces Obj := Z ≥ 0 , Hom ( m , n ) := Q m × n ker ϕ ϕ A B Sebastian Gutsche (Siegen) Constructive Categories August 31, 2017 11 / 23
Constructive category theory Implementation of the kernel: Q -vector spaces Obj := Z ≥ 0 , Hom ( m , n ) := Q m × n ker ϕ ϕ A B Compute ker ϕ as dim ( A ) − rank ( ϕ ) Sebastian Gutsche (Siegen) Constructive Categories August 31, 2017 11 / 23
Constructive category theory Implementation of the kernel: Q -vector spaces Obj := Z ≥ 0 , Hom ( m , n ) := Q m × n ker ϕ κ ϕ A B Compute ker ϕ as dim ( A ) − rank ( ϕ ) Sebastian Gutsche (Siegen) Constructive Categories August 31, 2017 11 / 23
Constructive category theory Implementation of the kernel: Q -vector spaces Obj := Z ≥ 0 , Hom ( m , n ) := Q m × n ker ϕ κ ϕ A B Compute ker ϕ as dim ( A ) − rank ( ϕ ) κ by solving X · ϕ = 0 Sebastian Gutsche (Siegen) Constructive Categories August 31, 2017 11 / 23
Constructive category theory Implementation of the kernel: Q -vector spaces Obj := Z ≥ 0 , Hom ( m , n ) := Q m × n ker ϕ κ ϕ A B τ T Compute ker ϕ as dim ( A ) − rank ( ϕ ) κ by solving X · ϕ = 0 Sebastian Gutsche (Siegen) Constructive Categories August 31, 2017 11 / 23
Constructive category theory Implementation of the kernel: Q -vector spaces Obj := Z ≥ 0 , Hom ( m , n ) := Q m × n ker ϕ κ ϕ λ A B τ T Compute ker ϕ as dim ( A ) − rank ( ϕ ) κ by solving X · ϕ = 0 Sebastian Gutsche (Siegen) Constructive Categories August 31, 2017 11 / 23
Constructive category theory Implementation of the kernel: Q -vector spaces Obj := Z ≥ 0 , Hom ( m , n ) := Q m × n ker ϕ κ ϕ λ A B τ T Compute ker ϕ as dim ( A ) − rank ( ϕ ) κ by solving X · ϕ = 0 λ by solving X · κ = τ Sebastian Gutsche (Siegen) Constructive Categories August 31, 2017 11 / 23
Constructive category theory What is C AP ? C AP - Categories, Algorithms, and Programming Sebastian Gutsche (Siegen) Constructive Categories August 31, 2017 12 / 23
Constructive category theory What is C AP ? C AP - Categories, Algorithms, and Programming C AP is a framework to implement computable categories and provides Sebastian Gutsche (Siegen) Constructive Categories August 31, 2017 12 / 23
Constructive category theory What is C AP ? C AP - Categories, Algorithms, and Programming C AP is a framework to implement computable categories and provides specifications of categorical operations, Sebastian Gutsche (Siegen) Constructive Categories August 31, 2017 12 / 23
Constructive category theory What is C AP ? C AP - Categories, Algorithms, and Programming C AP is a framework to implement computable categories and provides specifications of categorical operations, generic algorithms based on basic categorical operations, Sebastian Gutsche (Siegen) Constructive Categories August 31, 2017 12 / 23
Constructive category theory What is C AP ? C AP - Categories, Algorithms, and Programming C AP is a framework to implement computable categories and provides specifications of categorical operations, generic algorithms based on basic categorical operations, a categorical programming language having categorical operations as syntax elements. Sebastian Gutsche (Siegen) Constructive Categories August 31, 2017 12 / 23
Constructive category theory Computing the intersection Let M 1 ⊆ N and M 2 ⊆ N subobjects. Sebastian Gutsche (Siegen) Constructive Categories August 31, 2017 13 / 23
Constructive category theory Computing the intersection Let M 1 ֒ → N and M 2 ֒ → N subobjects. Sebastian Gutsche (Siegen) Constructive Categories August 31, 2017 13 / 23
Constructive category theory Computing the intersection Let M 1 ֒ → N and M 2 ֒ → N subobjects. Compute their intersection γ : M 1 ∩ M 2 ֒ → N . Sebastian Gutsche (Siegen) Constructive Categories August 31, 2017 13 / 23
Constructive category theory Computing the intersection Let M 1 ֒ → N and M 2 ֒ → N subobjects. Compute their intersection γ : M 1 ∩ M 2 ֒ → N . M 1 ι 1 N ι 2 M 2 Sebastian Gutsche (Siegen) Constructive Categories August 31, 2017 13 / 23
Constructive category theory Computing the intersection Let M 1 ֒ → N and M 2 ֒ → N subobjects. Compute their intersection γ : M 1 ∩ M 2 ֒ → N . M 1 ι 1 M 1 ⊕ M 2 N ι 2 M 2 Sebastian Gutsche (Siegen) Constructive Categories August 31, 2017 13 / 23
Constructive category theory Computing the intersection Let M 1 ֒ → N and M 2 ֒ → N subobjects. Compute their intersection γ : M 1 ∩ M 2 ֒ → N . M 1 π 1 ι 1 M 1 ⊕ M 2 N ι 2 M 2 Sebastian Gutsche (Siegen) Constructive Categories August 31, 2017 13 / 23
Constructive category theory Computing the intersection Let M 1 ֒ → N and M 2 ֒ → N subobjects. Compute their intersection γ : M 1 ∩ M 2 ֒ → N . M 1 π 1 ι 1 M 1 ⊕ M 2 N ι 2 π 2 M 2 Sebastian Gutsche (Siegen) Constructive Categories August 31, 2017 13 / 23
Constructive category theory Computing the intersection Let M 1 ֒ → N and M 2 ֒ → N subobjects. Compute their intersection γ : M 1 ∩ M 2 ֒ → N . M 1 π 1 ι 1 M 1 ⊕ M 2 N ι 2 π 2 M 2 π i := ProjectionInFactorOfDirectSum (( M 1 , M 2 ) , i ) , i = 1 , 2 Sebastian Gutsche (Siegen) Constructive Categories August 31, 2017 13 / 23
Constructive category theory Computing the intersection Let M 1 ֒ → N and M 2 ֒ → N subobjects. Compute their intersection γ : M 1 ∩ M 2 ֒ → N . M 1 π 1 ι 1 ϕ := ι 1 ◦ π 1 − ι 2 ◦ π 2 M 1 ⊕ M 2 N ι 2 π 2 M 2 π i := ProjectionInFactorOfDirectSum (( M 1 , M 2 ) , i ) , i = 1 , 2 Sebastian Gutsche (Siegen) Constructive Categories August 31, 2017 13 / 23
Constructive category theory Computing the intersection Let M 1 ֒ → N and M 2 ֒ → N subobjects. Compute their intersection γ : M 1 ∩ M 2 ֒ → N . M 1 π 1 ι 1 ϕ := ι 1 ◦ π 1 − ι 2 ◦ π 2 M 1 ⊕ M 2 N ι 2 π 2 M 2 π i := ProjectionInFactorOfDirectSum (( M 1 , M 2 ) , i ) , i = 1 , 2 ϕ := ι 1 ◦ π 1 − ι 2 ◦ π 2 Sebastian Gutsche (Siegen) Constructive Categories August 31, 2017 13 / 23
Constructive category theory Computing the intersection Let M 1 ֒ → N and M 2 ֒ → N subobjects. Compute their intersection γ : M 1 ∩ M 2 ֒ → N . M 1 π 1 ι 1 ϕ := ι 1 ◦ π 1 − ι 2 ◦ π 2 κ M 1 ∩ M 2 M 1 ⊕ M 2 N ι 2 π 2 M 2 π i := ProjectionInFactorOfDirectSum (( M 1 , M 2 ) , i ) , i = 1 , 2 ϕ := ι 1 ◦ π 1 − ι 2 ◦ π 2 Sebastian Gutsche (Siegen) Constructive Categories August 31, 2017 13 / 23
Constructive category theory Computing the intersection Let M 1 ֒ → N and M 2 ֒ → N subobjects. Compute their intersection γ : M 1 ∩ M 2 ֒ → N . M 1 π 1 ι 1 ϕ := ι 1 ◦ π 1 − ι 2 ◦ π 2 κ M 1 ∩ M 2 M 1 ⊕ M 2 N ι 2 π 2 M 2 π i := ProjectionInFactorOfDirectSum (( M 1 , M 2 ) , i ) , i = 1 , 2 ϕ := ι 1 ◦ π 1 − ι 2 ◦ π 2 κ := KernelEmbedding ( ϕ ) Sebastian Gutsche (Siegen) Constructive Categories August 31, 2017 13 / 23
Constructive category theory Computing the intersection Let M 1 ֒ → N and M 2 ֒ → N subobjects. Compute their intersection γ : M 1 ∩ M 2 ֒ → N . M 1 π 1 ι 1 ϕ := ι 1 ◦ π 1 − ι 2 ◦ π 2 κ M 1 ∩ M 2 M 1 ⊕ M 2 N ι 2 π 2 M 2 π i := ProjectionInFactorOfDirectSum (( M 1 , M 2 ) , i ) , i = 1 , 2 ϕ := ι 1 ◦ π 1 − ι 2 ◦ π 2 κ := KernelEmbedding ( ϕ ) Sebastian Gutsche (Siegen) Constructive Categories August 31, 2017 13 / 23
Constructive category theory Computing the intersection Let M 1 ֒ → N and M 2 ֒ → N subobjects. Compute their intersection γ : M 1 ∩ M 2 ֒ → N . M 1 π 1 ι 1 ϕ := ι 1 ◦ π 1 − ι 2 ◦ π 2 κ M 1 ∩ M 2 M 1 ⊕ M 2 N ι 2 π 2 M 2 π i := ProjectionInFactorOfDirectSum (( M 1 , M 2 ) , i ) , i = 1 , 2 ϕ := ι 1 ◦ π 1 − ι 2 ◦ π 2 κ := KernelEmbedding ( ϕ ) γ := ι 1 ◦ π 1 ◦ κ Sebastian Gutsche (Siegen) Constructive Categories August 31, 2017 13 / 23
Constructive category theory Translation to C AP π i := ProjectionInFactorOfDirectSum (( M 1 , M 2 ) , i ) , i = 1 , 2 ϕ := ι 1 ◦ π 1 − ι 2 ◦ π 2 κ := KernelEmbedding ( ϕ ) γ := ι 1 ◦ π 1 ◦ κ Sebastian Gutsche (Siegen) Constructive Categories August 31, 2017 14 / 23
Constructive category theory Translation to C AP π i := ProjectionInFactorOfDirectSum (( M 1 , M 2 ) , i ) , i = 1 , 2 pi1 := ProjectionInFactorOfDirectSum( [ M1, M2 ], 1 ); pi2 := ProjectionInFactorOfDirectSum( [ M1, M2 ], 2 ); ϕ := ι 1 ◦ π 1 − ι 2 ◦ π 2 κ := KernelEmbedding ( ϕ ) γ := ι 1 ◦ π 1 ◦ κ Sebastian Gutsche (Siegen) Constructive Categories August 31, 2017 14 / 23
Constructive category theory Translation to C AP π i := ProjectionInFactorOfDirectSum (( M 1 , M 2 ) , i ) , i = 1 , 2 pi1 := ProjectionInFactorOfDirectSum( [ M1, M2 ], 1 ); pi2 := ProjectionInFactorOfDirectSum( [ M1, M2 ], 2 ); ϕ := ι 1 ◦ π 1 − ι 2 ◦ π 2 lambda := PostCompose( iota1, pi1 ); phi := lambda - PostCompose( iota2, pi2 ); κ := KernelEmbedding ( ϕ ) γ := ι 1 ◦ π 1 ◦ κ Sebastian Gutsche (Siegen) Constructive Categories August 31, 2017 14 / 23
Recommend
More recommend