+ All Categories
Home > Documents > How to implement a category on the computer and why?€¦ · Mohamed Barakat Universität Siegen...

How to implement a category on the computer and why?€¦ · Mohamed Barakat Universität Siegen...

Date post: 13-Jul-2020
Category:
Upload: others
View: 1 times
Download: 0 times
Share this document with a friend
155
How to implement a category on the computer and why? Mohamed Barakat Universität Siegen EACA 2016 Logroño, Spain June 24, 2016 Joint work with Markus Lange-Hegermann, Sebastian Gutsche, Sebastian Posur Mohamed Barakat How to implement a category on the computer and why?
Transcript
Page 1: How to implement a category on the computer and why?€¦ · Mohamed Barakat Universität Siegen EACA 2016 Logroño, Spain June 24, 2016 Joint work with Markus Lange-Hegermann, Sebastian

How to implement a category on the computerand why?

Mohamed Barakat

Universität Siegen

EACA 2016Logroño, SpainJune 24, 2016

Joint work withMarkus Lange-Hegermann, Sebastian Gutsche, Sebastian Posur

Mohamed Barakat How to implement a category on the computer and why?

Page 2: How to implement a category on the computer and why?€¦ · Mohamed Barakat Universität Siegen EACA 2016 Logroño, Spain June 24, 2016 Joint work with Markus Lange-Hegermann, Sebastian

The algebra of morphisms

We will see why category theory is helpful in the developmentof constructive mathematics.

• A category A consists of

• objects L,M,N, . . . and• sets of morphisms HomA(M,N).

• In fact, only the Hom sets and their compositions arerelevant

HomA(L,M)×HomA(M,N)→ HomA(L,N)

(ϕ,ψ) 7→ ϕψ.

Mohamed Barakat How to implement a category on the computer and why?

Page 3: How to implement a category on the computer and why?€¦ · Mohamed Barakat Universität Siegen EACA 2016 Logroño, Spain June 24, 2016 Joint work with Markus Lange-Hegermann, Sebastian

The algebra of morphisms

We will see why category theory is helpful in the developmentof constructive mathematics.

• A category A consists of

• objects L,M,N, . . . and• sets of morphisms HomA(M,N).

• In fact, only the Hom sets and their compositions arerelevant

HomA(L,M)×HomA(M,N)→ HomA(L,N)

(ϕ,ψ) 7→ ϕψ.

Mohamed Barakat How to implement a category on the computer and why?

Page 4: How to implement a category on the computer and why?€¦ · Mohamed Barakat Universität Siegen EACA 2016 Logroño, Spain June 24, 2016 Joint work with Markus Lange-Hegermann, Sebastian

The algebra of morphisms

We will see why category theory is helpful in the developmentof constructive mathematics.

• A category A consists of• objects L,M,N, . . . and

• sets of morphisms HomA(M,N).

• In fact, only the Hom sets and their compositions arerelevant

HomA(L,M)×HomA(M,N)→ HomA(L,N)

(ϕ,ψ) 7→ ϕψ.

Mohamed Barakat How to implement a category on the computer and why?

Page 5: How to implement a category on the computer and why?€¦ · Mohamed Barakat Universität Siegen EACA 2016 Logroño, Spain June 24, 2016 Joint work with Markus Lange-Hegermann, Sebastian

The algebra of morphisms

We will see why category theory is helpful in the developmentof constructive mathematics.

• A category A consists of• objects L,M,N, . . . and• sets of morphisms HomA(M,N).

• In fact, only the Hom sets and their compositions arerelevant

HomA(L,M)×HomA(M,N)→ HomA(L,N)

(ϕ,ψ) 7→ ϕψ.

Mohamed Barakat How to implement a category on the computer and why?

Page 6: How to implement a category on the computer and why?€¦ · Mohamed Barakat Universität Siegen EACA 2016 Logroño, Spain June 24, 2016 Joint work with Markus Lange-Hegermann, Sebastian

The algebra of morphisms

We will see why category theory is helpful in the developmentof constructive mathematics.

• A category A consists of• objects L,M,N, . . . and• sets of morphisms HomA(M,N).

• In fact, only the Hom sets and their compositions arerelevant

HomA(L,M)×HomA(M,N)→ HomA(L,N)

(ϕ,ψ) 7→ ϕψ.

Mohamed Barakat How to implement a category on the computer and why?

Page 7: How to implement a category on the computer and why?€¦ · Mohamed Barakat Universität Siegen EACA 2016 Logroño, Spain June 24, 2016 Joint work with Markus Lange-Hegermann, Sebastian

Equivalence of categories

• This means that the notion “category” suppresses the“inner nature” of the objects and emphasizes the “algebra”of morphisms.

• The objects are only place-holders, exactly like the verticesof a graph.

• The notion “equivalence of categories” gives one evenmore freedom in the description of a (constructive) modelof the category.

Mohamed Barakat How to implement a category on the computer and why?

Page 8: How to implement a category on the computer and why?€¦ · Mohamed Barakat Universität Siegen EACA 2016 Logroño, Spain June 24, 2016 Joint work with Markus Lange-Hegermann, Sebastian

Equivalence of categories

• This means that the notion “category” suppresses the“inner nature” of the objects and emphasizes the “algebra”of morphisms.

• The objects are only place-holders, exactly like the verticesof a graph.

• The notion “equivalence of categories” gives one evenmore freedom in the description of a (constructive) modelof the category.

Mohamed Barakat How to implement a category on the computer and why?

Page 9: How to implement a category on the computer and why?€¦ · Mohamed Barakat Universität Siegen EACA 2016 Logroño, Spain June 24, 2016 Joint work with Markus Lange-Hegermann, Sebastian

Equivalence of categories

• This means that the notion “category” suppresses the“inner nature” of the objects and emphasizes the “algebra”of morphisms.

• The objects are only place-holders, exactly like the verticesof a graph.

• The notion “equivalence of categories” gives one evenmore freedom in the description of a (constructive) modelof the category.

Mohamed Barakat How to implement a category on the computer and why?

Page 10: How to implement a category on the computer and why?€¦ · Mohamed Barakat Universität Siegen EACA 2016 Logroño, Spain June 24, 2016 Joint work with Markus Lange-Hegermann, Sebastian

Linear algebra and matrix theory

Here is a prominent example of this point of view.

ExampleLet k be a field. Then

k-vec :=

{Obj: finite dim. k-vector spaces,Mor: k-linear maps.

'

k-mat :=

{Obj: N 3 g, g′, . . . ,

Mor: A ∈ kg×g′ , g, g′ ∈ N.

from the categorical point of view, linear algebra and matrixtheory are equivalent.

Mohamed Barakat How to implement a category on the computer and why?

Page 11: How to implement a category on the computer and why?€¦ · Mohamed Barakat Universität Siegen EACA 2016 Logroño, Spain June 24, 2016 Joint work with Markus Lange-Hegermann, Sebastian

Linear algebra and matrix theory

Here is a prominent example of this point of view.

ExampleLet k be a field. Then

k-vec :=

{Obj: finite dim. k-vector spaces,Mor: k-linear maps.

'

k-mat :=

{Obj: N 3 g, g′, . . . ,

Mor: A ∈ kg×g′ , g, g′ ∈ N.

from the categorical point of view, linear algebra and matrixtheory are equivalent.

Mohamed Barakat How to implement a category on the computer and why?

Page 12: How to implement a category on the computer and why?€¦ · Mohamed Barakat Universität Siegen EACA 2016 Logroño, Spain June 24, 2016 Joint work with Markus Lange-Hegermann, Sebastian

Linear algebra and matrix theory

Here is a prominent example of this point of view.

ExampleLet k be a field. Then

k-vec :=

{Obj: finite dim. k-vector spaces,Mor: k-linear maps.

'

k-mat :=

{Obj: N 3 g, g′, . . . ,

Mor: A ∈ kg×g′ , g, g′ ∈ N.

from the categorical point of view, linear algebra and matrixtheory are equivalent.

Mohamed Barakat How to implement a category on the computer and why?

Page 13: How to implement a category on the computer and why?€¦ · Mohamed Barakat Universität Siegen EACA 2016 Logroño, Spain June 24, 2016 Joint work with Markus Lange-Hegermann, Sebastian

Linear algebra and matrix theory

Here is a prominent example of this point of view.

ExampleLet k be a field. Then

k-vec :=

{Obj: finite dim. k-vector spaces,Mor: k-linear maps.

'

k-mat :=

{Obj: N 3 g, g′, . . . ,Mor: A ∈ kg×g′ , g, g′ ∈ N.

from the categorical point of view, linear algebra and matrixtheory are equivalent.

Mohamed Barakat How to implement a category on the computer and why?

Page 14: How to implement a category on the computer and why?€¦ · Mohamed Barakat Universität Siegen EACA 2016 Logroño, Spain June 24, 2016 Joint work with Markus Lange-Hegermann, Sebastian

Linear algebra and matrix theory

Here is a prominent example of this point of view.

ExampleLet k be a field. Then

k-vec :=

{Obj: finite dim. k-vector spaces,Mor: k-linear maps.

'

k-mat :=

{Obj: N 3 g, g′, . . . ,Mor: A ∈ kg×g′ , g, g′ ∈ N.

from the categorical point of view, linear algebra and matrixtheory are equivalent.

Mohamed Barakat How to implement a category on the computer and why?

Page 15: How to implement a category on the computer and why?€¦ · Mohamed Barakat Universität Siegen EACA 2016 Logroño, Spain June 24, 2016 Joint work with Markus Lange-Hegermann, Sebastian

ABELian categories

An ABELian category is a category in which we can do a verygeneral form of linear algebra.

DefinitionA category A is called ABELian if• finite biproducts exist,• each morphism has an additive inverse,• kernels and cokernels exist,• the homomorphism theorem is valid, i.e., coimϕ

∼−→ imϕ.

DefinitionA category is called constructively ABELian if all disjunctions(∨) and all existential quantifiers (∃) in the axioms of anABELian category are realized by algorithms.

Mohamed Barakat How to implement a category on the computer and why?

Page 16: How to implement a category on the computer and why?€¦ · Mohamed Barakat Universität Siegen EACA 2016 Logroño, Spain June 24, 2016 Joint work with Markus Lange-Hegermann, Sebastian

ABELian categories

An ABELian category is a category in which we can do a verygeneral form of linear algebra.

DefinitionA category A is called ABELian if

• finite biproducts exist,• each morphism has an additive inverse,• kernels and cokernels exist,• the homomorphism theorem is valid, i.e., coimϕ

∼−→ imϕ.

DefinitionA category is called constructively ABELian if all disjunctions(∨) and all existential quantifiers (∃) in the axioms of anABELian category are realized by algorithms.

Mohamed Barakat How to implement a category on the computer and why?

Page 17: How to implement a category on the computer and why?€¦ · Mohamed Barakat Universität Siegen EACA 2016 Logroño, Spain June 24, 2016 Joint work with Markus Lange-Hegermann, Sebastian

ABELian categories

An ABELian category is a category in which we can do a verygeneral form of linear algebra.

DefinitionA category A is called ABELian if• finite biproducts exist,

• each morphism has an additive inverse,• kernels and cokernels exist,• the homomorphism theorem is valid, i.e., coimϕ

∼−→ imϕ.

DefinitionA category is called constructively ABELian if all disjunctions(∨) and all existential quantifiers (∃) in the axioms of anABELian category are realized by algorithms.

Mohamed Barakat How to implement a category on the computer and why?

Page 18: How to implement a category on the computer and why?€¦ · Mohamed Barakat Universität Siegen EACA 2016 Logroño, Spain June 24, 2016 Joint work with Markus Lange-Hegermann, Sebastian

ABELian categories

An ABELian category is a category in which we can do a verygeneral form of linear algebra.

DefinitionA category A is called ABELian if• finite biproducts exist,• each morphism has an additive inverse,

• kernels and cokernels exist,• the homomorphism theorem is valid, i.e., coimϕ

∼−→ imϕ.

DefinitionA category is called constructively ABELian if all disjunctions(∨) and all existential quantifiers (∃) in the axioms of anABELian category are realized by algorithms.

Mohamed Barakat How to implement a category on the computer and why?

Page 19: How to implement a category on the computer and why?€¦ · Mohamed Barakat Universität Siegen EACA 2016 Logroño, Spain June 24, 2016 Joint work with Markus Lange-Hegermann, Sebastian

ABELian categories

An ABELian category is a category in which we can do a verygeneral form of linear algebra.

DefinitionA category A is called ABELian if• finite biproducts exist,• each morphism has an additive inverse,• kernels and cokernels exist,

• the homomorphism theorem is valid, i.e., coimϕ∼−→ imϕ.

DefinitionA category is called constructively ABELian if all disjunctions(∨) and all existential quantifiers (∃) in the axioms of anABELian category are realized by algorithms.

Mohamed Barakat How to implement a category on the computer and why?

Page 20: How to implement a category on the computer and why?€¦ · Mohamed Barakat Universität Siegen EACA 2016 Logroño, Spain June 24, 2016 Joint work with Markus Lange-Hegermann, Sebastian

ABELian categories

An ABELian category is a category in which we can do a verygeneral form of linear algebra.

DefinitionA category A is called ABELian if• finite biproducts exist,• each morphism has an additive inverse,• kernels and cokernels exist,• the homomorphism theorem is valid, i.e., coimϕ

∼−→ imϕ.

DefinitionA category is called constructively ABELian if all disjunctions(∨) and all existential quantifiers (∃) in the axioms of anABELian category are realized by algorithms.

Mohamed Barakat How to implement a category on the computer and why?

Page 21: How to implement a category on the computer and why?€¦ · Mohamed Barakat Universität Siegen EACA 2016 Logroño, Spain June 24, 2016 Joint work with Markus Lange-Hegermann, Sebastian

ABELian categories

An ABELian category is a category in which we can do a verygeneral form of linear algebra.

DefinitionA category A is called ABELian if• finite biproducts exist,• each morphism has an additive inverse,• kernels and cokernels exist,• the homomorphism theorem is valid, i.e., coimϕ

∼−→ imϕ.

DefinitionA category is called constructively ABELian if all disjunctions(∨) and all existential quantifiers (∃) in the axioms of anABELian category are realized by algorithms.

Mohamed Barakat How to implement a category on the computer and why?

Page 22: How to implement a category on the computer and why?€¦ · Mohamed Barakat Universität Siegen EACA 2016 Logroño, Spain June 24, 2016 Joint work with Markus Lange-Hegermann, Sebastian

The “hidden” existential quantifiers of “kernels”

ExampleLet ϕ : M → N be a morphism in A.

M N

kerϕ

L

ϕ

0

κ

τ

0

τ/κ

So A is a computational context with many basic algorithms.

Q:Are module categories constructive, like k-vec?

Mohamed Barakat How to implement a category on the computer and why?

Page 23: How to implement a category on the computer and why?€¦ · Mohamed Barakat Universität Siegen EACA 2016 Logroño, Spain June 24, 2016 Joint work with Markus Lange-Hegermann, Sebastian

The “hidden” existential quantifiers of “kernels”

ExampleLet ϕ : M → N be a morphism in A.

M N

kerϕ

L

ϕ

0

κ

τ

0

τ/κ

So A is a computational context with many basic algorithms.

Q:Are module categories constructive, like k-vec?

Mohamed Barakat How to implement a category on the computer and why?

Page 24: How to implement a category on the computer and why?€¦ · Mohamed Barakat Universität Siegen EACA 2016 Logroño, Spain June 24, 2016 Joint work with Markus Lange-Hegermann, Sebastian

The “hidden” existential quantifiers of “kernels”

ExampleLet ϕ : M → N be a morphism in A.

M N

kerϕ

L

ϕ

0

κ

τ

0

τ/κ

So A is a computational context with many basic algorithms.

Q:Are module categories constructive, like k-vec?

Mohamed Barakat How to implement a category on the computer and why?

Page 25: How to implement a category on the computer and why?€¦ · Mohamed Barakat Universität Siegen EACA 2016 Logroño, Spain June 24, 2016 Joint work with Markus Lange-Hegermann, Sebastian

The “hidden” existential quantifiers of “kernels”

ExampleLet ϕ : M → N be a morphism in A.

M N

kerϕ

L

ϕ

0

κ

τ

0

τ/κ

So A is a computational context with many basic algorithms.

Q:Are module categories constructive, like k-vec?

Mohamed Barakat How to implement a category on the computer and why?

Page 26: How to implement a category on the computer and why?€¦ · Mohamed Barakat Universität Siegen EACA 2016 Logroño, Spain June 24, 2016 Joint work with Markus Lange-Hegermann, Sebastian

The “hidden” existential quantifiers of “kernels”

ExampleLet ϕ : M → N be a morphism in A.

M N

kerϕ

L

ϕ

0

κ

τ

0

τ/κ

So A is a computational context with many basic algorithms.

Q:Are module categories constructive, like k-vec?

Mohamed Barakat How to implement a category on the computer and why?

Page 27: How to implement a category on the computer and why?€¦ · Mohamed Barakat Universität Siegen EACA 2016 Logroño, Spain June 24, 2016 Joint work with Markus Lange-Hegermann, Sebastian

The “hidden” existential quantifiers of “kernels”

ExampleLet ϕ : M → N be a morphism in A.

M N

kerϕ

L

ϕ

0

κ

τ

0

τ/κ

So A is a computational context with many basic algorithms.

Q:Are module categories constructive, like k-vec?

Mohamed Barakat How to implement a category on the computer and why?

Page 28: How to implement a category on the computer and why?€¦ · Mohamed Barakat Universität Siegen EACA 2016 Logroño, Spain June 24, 2016 Joint work with Markus Lange-Hegermann, Sebastian

The “hidden” existential quantifiers of “kernels”

ExampleLet ϕ : M → N be a morphism in A.

M N

kerϕ

L

ϕ

0

κ

τ

0

τ/κ

So A is a computational context with many basic algorithms.

Q:Are module categories constructive, like k-vec?

Mohamed Barakat How to implement a category on the computer and why?

Page 29: How to implement a category on the computer and why?€¦ · Mohamed Barakat Universität Siegen EACA 2016 Logroño, Spain June 24, 2016 Joint work with Markus Lange-Hegermann, Sebastian

The “hidden” existential quantifiers of “kernels”

ExampleLet ϕ : M → N be a morphism in A.

M N

kerϕ

L

ϕ

0

κ

τ

0

τ/κ

So A is a computational context with many basic algorithms.

Q:Are module categories constructive, like k-vec?

Mohamed Barakat How to implement a category on the computer and why?

Page 30: How to implement a category on the computer and why?€¦ · Mohamed Barakat Universität Siegen EACA 2016 Logroño, Spain June 24, 2016 Joint work with Markus Lange-Hegermann, Sebastian

A constructive model for R-mod

From now on let R be a ring with 1.

Definition

Let A ∈ Rr×c and B ∈ Rr′×c be two stackable matrices. We saythat A row-dominates B if there exists a matrix X satisfyingXA = B. We write A ≥ B.

Example

R-mod '

R-fpres :=

Obj: M ∈ Rr×g, N ∈ Rr′×g′ , . . . , r, g, r′, g′ ∈ N,

Mor:[(M, A, N)] with A ∈ Rg×g′ lies in Hom(M, N),

if N ≥ MA,

and (M, A, N) ∼ (M′, A′, N′) :⇐⇒ M = M′, N = N′, N ≥ A− A′.

Mohamed Barakat How to implement a category on the computer and why?

Page 31: How to implement a category on the computer and why?€¦ · Mohamed Barakat Universität Siegen EACA 2016 Logroño, Spain June 24, 2016 Joint work with Markus Lange-Hegermann, Sebastian

A constructive model for R-mod

From now on let R be a ring with 1.

Definition

Let A ∈ Rr×c and B ∈ Rr′×c be two stackable matrices.

We saythat A row-dominates B if there exists a matrix X satisfyingXA = B. We write A ≥ B.

Example

R-mod '

R-fpres :=

Obj: M ∈ Rr×g, N ∈ Rr′×g′ , . . . , r, g, r′, g′ ∈ N,

Mor:[(M, A, N)] with A ∈ Rg×g′ lies in Hom(M, N),

if N ≥ MA,

and (M, A, N) ∼ (M′, A′, N′) :⇐⇒ M = M′, N = N′, N ≥ A− A′.

Mohamed Barakat How to implement a category on the computer and why?

Page 32: How to implement a category on the computer and why?€¦ · Mohamed Barakat Universität Siegen EACA 2016 Logroño, Spain June 24, 2016 Joint work with Markus Lange-Hegermann, Sebastian

A constructive model for R-mod

From now on let R be a ring with 1.

Definition

Let A ∈ Rr×c and B ∈ Rr′×c be two stackable matrices. We saythat A row-dominates B if there exists a matrix X satisfyingXA = B.

We write A ≥ B.

Example

R-mod '

R-fpres :=

Obj: M ∈ Rr×g, N ∈ Rr′×g′ , . . . , r, g, r′, g′ ∈ N,

Mor:[(M, A, N)] with A ∈ Rg×g′ lies in Hom(M, N),

if N ≥ MA,

and (M, A, N) ∼ (M′, A′, N′) :⇐⇒ M = M′, N = N′, N ≥ A− A′.

Mohamed Barakat How to implement a category on the computer and why?

Page 33: How to implement a category on the computer and why?€¦ · Mohamed Barakat Universität Siegen EACA 2016 Logroño, Spain June 24, 2016 Joint work with Markus Lange-Hegermann, Sebastian

A constructive model for R-mod

From now on let R be a ring with 1.

Definition

Let A ∈ Rr×c and B ∈ Rr′×c be two stackable matrices. We saythat A row-dominates B if there exists a matrix X satisfyingXA = B. We write A ≥ B.

Example

R-mod '

R-fpres :=

Obj: M ∈ Rr×g, N ∈ Rr′×g′ , . . . , r, g, r′, g′ ∈ N,

Mor:[(M, A, N)] with A ∈ Rg×g′ lies in Hom(M, N),

if N ≥ MA,

and (M, A, N) ∼ (M′, A′, N′) :⇐⇒ M = M′, N = N′, N ≥ A− A′.

Mohamed Barakat How to implement a category on the computer and why?

Page 34: How to implement a category on the computer and why?€¦ · Mohamed Barakat Universität Siegen EACA 2016 Logroño, Spain June 24, 2016 Joint work with Markus Lange-Hegermann, Sebastian

A constructive model for R-mod

From now on let R be a ring with 1.

Definition

Let A ∈ Rr×c and B ∈ Rr′×c be two stackable matrices. We saythat A row-dominates B if there exists a matrix X satisfyingXA = B. We write A ≥ B.

Example

R-mod '

R-fpres :=

Obj: M ∈ Rr×g, N ∈ Rr′×g′ , . . . , r, g, r′, g′ ∈ N,

Mor:[(M, A, N)] with A ∈ Rg×g′ lies in Hom(M, N),

if N ≥ MA,

and (M, A, N) ∼ (M′, A′, N′) :⇐⇒ M = M′, N = N′, N ≥ A− A′.

Mohamed Barakat How to implement a category on the computer and why?

Page 35: How to implement a category on the computer and why?€¦ · Mohamed Barakat Universität Siegen EACA 2016 Logroño, Spain June 24, 2016 Joint work with Markus Lange-Hegermann, Sebastian

A constructive model for R-mod

From now on let R be a ring with 1.

Definition

Let A ∈ Rr×c and B ∈ Rr′×c be two stackable matrices. We saythat A row-dominates B if there exists a matrix X satisfyingXA = B. We write A ≥ B.

Example

R-mod '

R-fpres :=

Obj: M ∈ Rr×g, N ∈ Rr′×g′ , . . . , r, g, r′, g′ ∈ N,

Mor:[(M, A, N)] with A ∈ Rg×g′ lies in Hom(M, N),

if N ≥ MA,

and (M, A, N) ∼ (M′, A′, N′) :⇐⇒ M = M′, N = N′, N ≥ A− A′.

Mohamed Barakat How to implement a category on the computer and why?

Page 36: How to implement a category on the computer and why?€¦ · Mohamed Barakat Universität Siegen EACA 2016 Logroño, Spain June 24, 2016 Joint work with Markus Lange-Hegermann, Sebastian

A constructive model for R-mod

From now on let R be a ring with 1.

Definition

Let A ∈ Rr×c and B ∈ Rr′×c be two stackable matrices. We saythat A row-dominates B if there exists a matrix X satisfyingXA = B. We write A ≥ B.

Example

R-mod '

R-fpres :=

Obj: M ∈ Rr×g, N ∈ Rr′×g′ , . . . , r, g, r′, g′ ∈ N,

Mor:[(M, A, N)] with A ∈ Rg×g′ lies in Hom(M, N),

if N ≥ MA,

and (M, A, N) ∼ (M′, A′, N′) :⇐⇒ M = M′, N = N′, N ≥ A− A′.

Mohamed Barakat How to implement a category on the computer and why?

Page 37: How to implement a category on the computer and why?€¦ · Mohamed Barakat Universität Siegen EACA 2016 Logroño, Spain June 24, 2016 Joint work with Markus Lange-Hegermann, Sebastian

A constructive model for R-mod

From now on let R be a ring with 1.

Definition

Let A ∈ Rr×c and B ∈ Rr′×c be two stackable matrices. We saythat A row-dominates B if there exists a matrix X satisfyingXA = B. We write A ≥ B.

Example

R-mod '

R-fpres :=

Obj: M ∈ Rr×g, N ∈ Rr′×g′ , . . . , r, g, r′, g′ ∈ N,

Mor:[(M, A, N)] with A ∈ Rg×g′ lies in Hom(M, N),

if N ≥ MA,

and (M, A, N) ∼ (M′, A′, N′) :⇐⇒ M = M′, N = N′, N ≥ A− A′.

Mohamed Barakat How to implement a category on the computer and why?

Page 38: How to implement a category on the computer and why?€¦ · Mohamed Barakat Universität Siegen EACA 2016 Logroño, Spain June 24, 2016 Joint work with Markus Lange-Hegermann, Sebastian

Computable rings

DefinitionWe call a constructive ring left computable if the solvability ofXA = B is algorithmically decidable.

Theorem ([BLH11])If R is left computable then the category R-fpres ' R-mod isconstructively ABELian.

Mohamed Barakat How to implement a category on the computer and why?

Page 39: How to implement a category on the computer and why?€¦ · Mohamed Barakat Universität Siegen EACA 2016 Logroño, Spain June 24, 2016 Joint work with Markus Lange-Hegermann, Sebastian

Computable rings

DefinitionWe call a constructive ring left computable if the solvability ofXA = B is algorithmically decidable.

Theorem ([BLH11])If R is left computable then the category R-fpres ' R-mod isconstructively ABELian.

Mohamed Barakat How to implement a category on the computer and why?

Page 40: How to implement a category on the computer and why?€¦ · Mohamed Barakat Universität Siegen EACA 2016 Logroño, Spain June 24, 2016 Joint work with Markus Lange-Hegermann, Sebastian

Examples of computable rings

Example (computable rings)

ring algorithma constructive field k GAUSS

ring of rational integers Z HERMITE normal forma univariate polynomial ring k[x] HERMITE normal forma polynomial ringa R[x1, . . . , xn] BUCHBERGER

many noncommutative rings n.c. BUCHBERGER

k[x1, . . . , xn]〈x1,...,xn〉 ����MORA BUCHBERGER

residue class ringsb

...

aR any of the above ringsbmodulo ideals which are f.g. as left resp. right ideals.

In this context any algorithm to compute a GRÖBNER basis is asubstitute for the GAUSS resp. HERMITE normal form algorithm.

Mohamed Barakat How to implement a category on the computer and why?

Page 41: How to implement a category on the computer and why?€¦ · Mohamed Barakat Universität Siegen EACA 2016 Logroño, Spain June 24, 2016 Joint work with Markus Lange-Hegermann, Sebastian

Q:Let R be a computable ring and p ∈ SpecR (finitely generated)

:• Is Rp computable?• Is Rp-mod constructive?

Even if there is a MORA algorithm ensuring the computability ofthe local ring Rp you still do not want to use it to establish theconstructivity of Rp-mod: It will be incredibly slow!

TheoremRp-mod ' R-mod/{M ∈ R-mod |Mp = 0}.

Equivalently, regard all morphisms ϕ in R-mod with(kerϕ)p = 0 = (cokerϕ)p as isomorphisms.

Mohamed Barakat How to implement a category on the computer and why?

Page 42: How to implement a category on the computer and why?€¦ · Mohamed Barakat Universität Siegen EACA 2016 Logroño, Spain June 24, 2016 Joint work with Markus Lange-Hegermann, Sebastian

Q:Let R be a computable ring and p ∈ SpecR (finitely generated):• Is Rp computable?

• Is Rp-mod constructive?

Even if there is a MORA algorithm ensuring the computability ofthe local ring Rp you still do not want to use it to establish theconstructivity of Rp-mod: It will be incredibly slow!

TheoremRp-mod ' R-mod/{M ∈ R-mod |Mp = 0}.

Equivalently, regard all morphisms ϕ in R-mod with(kerϕ)p = 0 = (cokerϕ)p as isomorphisms.

Mohamed Barakat How to implement a category on the computer and why?

Page 43: How to implement a category on the computer and why?€¦ · Mohamed Barakat Universität Siegen EACA 2016 Logroño, Spain June 24, 2016 Joint work with Markus Lange-Hegermann, Sebastian

Q:Let R be a computable ring and p ∈ SpecR (finitely generated):• Is Rp computable?• Is Rp-mod constructive?

Even if there is a MORA algorithm ensuring the computability ofthe local ring Rp you still do not want to use it to establish theconstructivity of Rp-mod: It will be incredibly slow!

TheoremRp-mod ' R-mod/{M ∈ R-mod |Mp = 0}.

Equivalently, regard all morphisms ϕ in R-mod with(kerϕ)p = 0 = (cokerϕ)p as isomorphisms.

Mohamed Barakat How to implement a category on the computer and why?

Page 44: How to implement a category on the computer and why?€¦ · Mohamed Barakat Universität Siegen EACA 2016 Logroño, Spain June 24, 2016 Joint work with Markus Lange-Hegermann, Sebastian

Q:Let R be a computable ring and p ∈ SpecR (finitely generated):• Is Rp computable?• Is Rp-mod constructive?

Even if there is a MORA algorithm ensuring the computability ofthe local ring Rp

you still do not want to use it to establish theconstructivity of Rp-mod: It will be incredibly slow!

TheoremRp-mod ' R-mod/{M ∈ R-mod |Mp = 0}.

Equivalently, regard all morphisms ϕ in R-mod with(kerϕ)p = 0 = (cokerϕ)p as isomorphisms.

Mohamed Barakat How to implement a category on the computer and why?

Page 45: How to implement a category on the computer and why?€¦ · Mohamed Barakat Universität Siegen EACA 2016 Logroño, Spain June 24, 2016 Joint work with Markus Lange-Hegermann, Sebastian

Q:Let R be a computable ring and p ∈ SpecR (finitely generated):• Is Rp computable?• Is Rp-mod constructive?

Even if there is a MORA algorithm ensuring the computability ofthe local ring Rp you still do not want to use it to establish theconstructivity of Rp-mod

: It will be incredibly slow!

TheoremRp-mod ' R-mod/{M ∈ R-mod |Mp = 0}.

Equivalently, regard all morphisms ϕ in R-mod with(kerϕ)p = 0 = (cokerϕ)p as isomorphisms.

Mohamed Barakat How to implement a category on the computer and why?

Page 46: How to implement a category on the computer and why?€¦ · Mohamed Barakat Universität Siegen EACA 2016 Logroño, Spain June 24, 2016 Joint work with Markus Lange-Hegermann, Sebastian

Q:Let R be a computable ring and p ∈ SpecR (finitely generated):• Is Rp computable?• Is Rp-mod constructive?

Even if there is a MORA algorithm ensuring the computability ofthe local ring Rp you still do not want to use it to establish theconstructivity of Rp-mod: It will be incredibly slow!

TheoremRp-mod ' R-mod/{M ∈ R-mod |Mp = 0}.

Equivalently, regard all morphisms ϕ in R-mod with(kerϕ)p = 0 = (cokerϕ)p as isomorphisms.

Mohamed Barakat How to implement a category on the computer and why?

Page 47: How to implement a category on the computer and why?€¦ · Mohamed Barakat Universität Siegen EACA 2016 Logroño, Spain June 24, 2016 Joint work with Markus Lange-Hegermann, Sebastian

Q:Let R be a computable ring and p ∈ SpecR (finitely generated):• Is Rp computable?• Is Rp-mod constructive?

Even if there is a MORA algorithm ensuring the computability ofthe local ring Rp you still do not want to use it to establish theconstructivity of Rp-mod: It will be incredibly slow!

TheoremRp-mod ' R-mod/{M ∈ R-mod |Mp = 0}.

Equivalently, regard all morphisms ϕ in R-mod with(kerϕ)p = 0 = (cokerϕ)p as isomorphisms.

Mohamed Barakat How to implement a category on the computer and why?

Page 48: How to implement a category on the computer and why?€¦ · Mohamed Barakat Universität Siegen EACA 2016 Logroño, Spain June 24, 2016 Joint work with Markus Lange-Hegermann, Sebastian

Q:Let R be a computable ring and p ∈ SpecR (finitely generated):• Is Rp computable?• Is Rp-mod constructive?

Even if there is a MORA algorithm ensuring the computability ofthe local ring Rp you still do not want to use it to establish theconstructivity of Rp-mod: It will be incredibly slow!

TheoremRp-mod ' R-mod/{M ∈ R-mod |Mp = 0}.

Equivalently, regard all morphisms ϕ in R-mod with(kerϕ)p = 0 = (cokerϕ)p as isomorphisms.

Mohamed Barakat How to implement a category on the computer and why?

Page 49: How to implement a category on the computer and why?€¦ · Mohamed Barakat Universität Siegen EACA 2016 Logroño, Spain June 24, 2016 Joint work with Markus Lange-Hegermann, Sebastian

Q:What about the "modules" supported on D(p) = SpecR \V (p)?

• Is the structure sheaf OD(p) "computable"?• Is CohOD(p) constructive?

TheoremCohOD(p) ' R-mod/{SuppM ⊆ V (p)}.

Equivalently, regard all morphisms ϕ in R-mod withSupp(kerϕ),Supp(cokerϕ) ⊆ V (p) as isomorphisms.

Mohamed Barakat How to implement a category on the computer and why?

Page 50: How to implement a category on the computer and why?€¦ · Mohamed Barakat Universität Siegen EACA 2016 Logroño, Spain June 24, 2016 Joint work with Markus Lange-Hegermann, Sebastian

Q:What about the "modules" supported on D(p) = SpecR \V (p)?• Is the structure sheaf OD(p) "computable"?

• Is CohOD(p) constructive?

TheoremCohOD(p) ' R-mod/{SuppM ⊆ V (p)}.

Equivalently, regard all morphisms ϕ in R-mod withSupp(kerϕ),Supp(cokerϕ) ⊆ V (p) as isomorphisms.

Mohamed Barakat How to implement a category on the computer and why?

Page 51: How to implement a category on the computer and why?€¦ · Mohamed Barakat Universität Siegen EACA 2016 Logroño, Spain June 24, 2016 Joint work with Markus Lange-Hegermann, Sebastian

Q:What about the "modules" supported on D(p) = SpecR \V (p)?• Is the structure sheaf OD(p) "computable"?• Is CohOD(p) constructive?

TheoremCohOD(p) ' R-mod/{SuppM ⊆ V (p)}.

Equivalently, regard all morphisms ϕ in R-mod withSupp(kerϕ),Supp(cokerϕ) ⊆ V (p) as isomorphisms.

Mohamed Barakat How to implement a category on the computer and why?

Page 52: How to implement a category on the computer and why?€¦ · Mohamed Barakat Universität Siegen EACA 2016 Logroño, Spain June 24, 2016 Joint work with Markus Lange-Hegermann, Sebastian

Q:What about the "modules" supported on D(p) = SpecR \V (p)?• Is the structure sheaf OD(p) "computable"?• Is CohOD(p) constructive?

TheoremCohOD(p) ' R-mod/{SuppM ⊆ V (p)}.

Equivalently, regard all morphisms ϕ in R-mod withSupp(kerϕ),Supp(cokerϕ) ⊆ V (p) as isomorphisms.

Mohamed Barakat How to implement a category on the computer and why?

Page 53: How to implement a category on the computer and why?€¦ · Mohamed Barakat Universität Siegen EACA 2016 Logroño, Spain June 24, 2016 Joint work with Markus Lange-Hegermann, Sebastian

Q:What about the "modules" supported on D(p) = SpecR \V (p)?• Is the structure sheaf OD(p) "computable"?• Is CohOD(p) constructive?

TheoremCohOD(p) ' R-mod/{SuppM ⊆ V (p)}.

Equivalently, regard all morphisms ϕ in R-mod withSupp(kerϕ),Supp(cokerϕ) ⊆ V (p) as isomorphisms.

Mohamed Barakat How to implement a category on the computer and why?

Page 54: How to implement a category on the computer and why?€¦ · Mohamed Barakat Universität Siegen EACA 2016 Logroño, Spain June 24, 2016 Joint work with Markus Lange-Hegermann, Sebastian

Coherent sheaves on Pn

The projective space Pn = PV over a field k is the set of1-dimensional subspaces of V := kn+1

, i.e., the orbit space

V/k∗ = Pn ∪̇ {0}︸︷︷︸irrelevant

locus

A coherent sheaf (of modules) F = M̃ on Pn is informally• a f.g. module M over the polynomial ring

S := k[x0, . . . , xn] = SymV ∗

(viewed as a coherent sheaf on the affine space V ),• which is compatible with the action of k∗, and• where S-modules supported on zero are treated as zero.

Mohamed Barakat How to implement a category on the computer and why?

Page 55: How to implement a category on the computer and why?€¦ · Mohamed Barakat Universität Siegen EACA 2016 Logroño, Spain June 24, 2016 Joint work with Markus Lange-Hegermann, Sebastian

Coherent sheaves on Pn

The projective space Pn = PV over a field k is the set of1-dimensional subspaces of V := kn+1, i.e., the orbit space

V/k∗ = Pn ∪̇ {0}︸︷︷︸irrelevant

locus

A coherent sheaf (of modules) F = M̃ on Pn is informally• a f.g. module M over the polynomial ring

S := k[x0, . . . , xn] = SymV ∗

(viewed as a coherent sheaf on the affine space V ),• which is compatible with the action of k∗, and• where S-modules supported on zero are treated as zero.

Mohamed Barakat How to implement a category on the computer and why?

Page 56: How to implement a category on the computer and why?€¦ · Mohamed Barakat Universität Siegen EACA 2016 Logroño, Spain June 24, 2016 Joint work with Markus Lange-Hegermann, Sebastian

Coherent sheaves on Pn

The projective space Pn = PV over a field k is the set of1-dimensional subspaces of V := kn+1, i.e., the orbit space

V/k∗ = Pn ∪̇ {0}︸︷︷︸irrelevant

locus

A coherent sheaf (of modules) F = M̃ on Pn is informally

• a f.g. module M over the polynomial ring

S := k[x0, . . . , xn] = SymV ∗

(viewed as a coherent sheaf on the affine space V ),• which is compatible with the action of k∗, and• where S-modules supported on zero are treated as zero.

Mohamed Barakat How to implement a category on the computer and why?

Page 57: How to implement a category on the computer and why?€¦ · Mohamed Barakat Universität Siegen EACA 2016 Logroño, Spain June 24, 2016 Joint work with Markus Lange-Hegermann, Sebastian

Coherent sheaves on Pn

The projective space Pn = PV over a field k is the set of1-dimensional subspaces of V := kn+1, i.e., the orbit space

V/k∗ = Pn ∪̇ {0}︸︷︷︸irrelevant

locus

A coherent sheaf (of modules) F = M̃ on Pn is informally• a f.g. module M over the polynomial ring

S := k[x0, . . . , xn] = SymV ∗

(viewed as a coherent sheaf on the affine space V ),• which is compatible with the action of k∗, and• where S-modules supported on zero are treated as zero.

Mohamed Barakat How to implement a category on the computer and why?

Page 58: How to implement a category on the computer and why?€¦ · Mohamed Barakat Universität Siegen EACA 2016 Logroño, Spain June 24, 2016 Joint work with Markus Lange-Hegermann, Sebastian

Coherent sheaves on Pn

The projective space Pn = PV over a field k is the set of1-dimensional subspaces of V := kn+1, i.e., the orbit space

V/k∗ = Pn ∪̇ {0}︸︷︷︸irrelevant

locus

A coherent sheaf (of modules) F = M̃ on Pn is informally• a f.g. module M over the polynomial ring

S := k[x0, . . . , xn] = SymV ∗

(viewed as a coherent sheaf on the affine space V )

,• which is compatible with the action of k∗, and• where S-modules supported on zero are treated as zero.

Mohamed Barakat How to implement a category on the computer and why?

Page 59: How to implement a category on the computer and why?€¦ · Mohamed Barakat Universität Siegen EACA 2016 Logroño, Spain June 24, 2016 Joint work with Markus Lange-Hegermann, Sebastian

Coherent sheaves on Pn

The projective space Pn = PV over a field k is the set of1-dimensional subspaces of V := kn+1, i.e., the orbit space

V/k∗ = Pn ∪̇ {0}︸︷︷︸irrelevant

locus

A coherent sheaf (of modules) F = M̃ on Pn is informally• a f.g. module M over the polynomial ring

S := k[x0, . . . , xn] = SymV ∗

(viewed as a coherent sheaf on the affine space V ),• which is compatible with the action of k∗

, and• where S-modules supported on zero are treated as zero.

Mohamed Barakat How to implement a category on the computer and why?

Page 60: How to implement a category on the computer and why?€¦ · Mohamed Barakat Universität Siegen EACA 2016 Logroño, Spain June 24, 2016 Joint work with Markus Lange-Hegermann, Sebastian

Coherent sheaves on Pn

The projective space Pn = PV over a field k is the set of1-dimensional subspaces of V := kn+1, i.e., the orbit space

V/k∗ = Pn ∪̇ {0}︸︷︷︸irrelevant

locus

A coherent sheaf (of modules) F = M̃ on Pn is informally• a f.g. module M over the polynomial ring

S := k[x0, . . . , xn] = SymV ∗

(viewed as a coherent sheaf on the affine space V ),• which is compatible with the action of k∗, and• where S-modules supported on zero are treated as zero.

Mohamed Barakat How to implement a category on the computer and why?

Page 61: How to implement a category on the computer and why?€¦ · Mohamed Barakat Universität Siegen EACA 2016 Logroño, Spain June 24, 2016 Joint work with Markus Lange-Hegermann, Sebastian

Coherent sheaves on Pn

The compatibility with the k∗ action M is a graded S-moduleM =

⊕p∈ZMp (S graded by deg).

Theorem (Serre ’55, FAC)

CohPn = S-grmod/S-grmod0,

where S-grmod denotes the ABELian category of f.g. gradedS-modules and S-grmod0 the subcategory of those supportedon zero.

Mohamed Barakat How to implement a category on the computer and why?

Page 62: How to implement a category on the computer and why?€¦ · Mohamed Barakat Universität Siegen EACA 2016 Logroño, Spain June 24, 2016 Joint work with Markus Lange-Hegermann, Sebastian

Coherent sheaves on Pn

The compatibility with the k∗ action M is a graded S-moduleM =

⊕p∈ZMp (S graded by deg).

Theorem (Serre ’55, FAC)

CohPn = S-grmod/S-grmod0,

where S-grmod denotes the ABELian category of f.g. gradedS-modules and S-grmod0 the subcategory of those supportedon zero.

Mohamed Barakat How to implement a category on the computer and why?

Page 63: How to implement a category on the computer and why?€¦ · Mohamed Barakat Universität Siegen EACA 2016 Logroño, Spain June 24, 2016 Joint work with Markus Lange-Hegermann, Sebastian

Coherent sheaves on Pn

The compatibility with the k∗ action M is a graded S-moduleM =

⊕p∈ZMp (S graded by deg).

Theorem (Serre ’55, FAC)

CohPn = S-grmod/S-grmod0,

where S-grmod denotes the ABELian category of f.g. gradedS-modules

and S-grmod0 the subcategory of those supportedon zero.

Mohamed Barakat How to implement a category on the computer and why?

Page 64: How to implement a category on the computer and why?€¦ · Mohamed Barakat Universität Siegen EACA 2016 Logroño, Spain June 24, 2016 Joint work with Markus Lange-Hegermann, Sebastian

Coherent sheaves on Pn

The compatibility with the k∗ action M is a graded S-moduleM =

⊕p∈ZMp (S graded by deg).

Theorem (Serre ’55, FAC)

CohPn = S-grmod/S-grmod0,

where S-grmod denotes the ABELian category of f.g. gradedS-modules and S-grmod0 the subcategory of those supportedon zero.

Mohamed Barakat How to implement a category on the computer and why?

Page 65: How to implement a category on the computer and why?€¦ · Mohamed Barakat Universität Siegen EACA 2016 Logroño, Spain June 24, 2016 Joint work with Markus Lange-Hegermann, Sebastian

SERRE quotient category

DefinitionLet A be an ABELian category.

A non-empty full subcategoryC ⊂ A is called thick if it is closed under passing to subobjects,factor objects, and extensions.

Example

C = S-grmod0 is a thick subcategory of A = S-grmod.

DefinitionThe SERRE quotient A/C is a category with• ObjA/C := ObjA;• HomA/C(M,N) := lim−→M ′≤M,N ′≤N,

M/M ′,N ′∈CHomA(M ′, N/N ′).

A/C is again ABELian and the localization functorQ : A → A/C,M 7→M,ϕ 7→ [ϕ] is exact.

Mohamed Barakat How to implement a category on the computer and why?

Page 66: How to implement a category on the computer and why?€¦ · Mohamed Barakat Universität Siegen EACA 2016 Logroño, Spain June 24, 2016 Joint work with Markus Lange-Hegermann, Sebastian

SERRE quotient category

DefinitionLet A be an ABELian category. A non-empty full subcategoryC ⊂ A is called thick

if it is closed under passing to subobjects,factor objects, and extensions.

Example

C = S-grmod0 is a thick subcategory of A = S-grmod.

DefinitionThe SERRE quotient A/C is a category with• ObjA/C := ObjA;• HomA/C(M,N) := lim−→M ′≤M,N ′≤N,

M/M ′,N ′∈CHomA(M ′, N/N ′).

A/C is again ABELian and the localization functorQ : A → A/C,M 7→M,ϕ 7→ [ϕ] is exact.

Mohamed Barakat How to implement a category on the computer and why?

Page 67: How to implement a category on the computer and why?€¦ · Mohamed Barakat Universität Siegen EACA 2016 Logroño, Spain June 24, 2016 Joint work with Markus Lange-Hegermann, Sebastian

SERRE quotient category

DefinitionLet A be an ABELian category. A non-empty full subcategoryC ⊂ A is called thick if it is closed under passing to subobjects,factor objects, and extensions.

Example

C = S-grmod0 is a thick subcategory of A = S-grmod.

DefinitionThe SERRE quotient A/C is a category with• ObjA/C := ObjA;• HomA/C(M,N) := lim−→M ′≤M,N ′≤N,

M/M ′,N ′∈CHomA(M ′, N/N ′).

A/C is again ABELian and the localization functorQ : A → A/C,M 7→M,ϕ 7→ [ϕ] is exact.

Mohamed Barakat How to implement a category on the computer and why?

Page 68: How to implement a category on the computer and why?€¦ · Mohamed Barakat Universität Siegen EACA 2016 Logroño, Spain June 24, 2016 Joint work with Markus Lange-Hegermann, Sebastian

SERRE quotient category

DefinitionLet A be an ABELian category. A non-empty full subcategoryC ⊂ A is called thick if it is closed under passing to subobjects,factor objects, and extensions.

Example

C = S-grmod0 is a thick subcategory of A = S-grmod.

DefinitionThe SERRE quotient A/C is a category with• ObjA/C := ObjA;• HomA/C(M,N) := lim−→M ′≤M,N ′≤N,

M/M ′,N ′∈CHomA(M ′, N/N ′).

A/C is again ABELian and the localization functorQ : A → A/C,M 7→M,ϕ 7→ [ϕ] is exact.

Mohamed Barakat How to implement a category on the computer and why?

Page 69: How to implement a category on the computer and why?€¦ · Mohamed Barakat Universität Siegen EACA 2016 Logroño, Spain June 24, 2016 Joint work with Markus Lange-Hegermann, Sebastian

SERRE quotient category

DefinitionLet A be an ABELian category. A non-empty full subcategoryC ⊂ A is called thick if it is closed under passing to subobjects,factor objects, and extensions.

Example

C = S-grmod0 is a thick subcategory of A = S-grmod.

DefinitionThe SERRE quotient A/C is a category with• ObjA/C := ObjA;

• HomA/C(M,N) := lim−→M ′≤M,N ′≤N,M/M ′,N ′∈C

HomA(M ′, N/N ′).

A/C is again ABELian and the localization functorQ : A → A/C,M 7→M,ϕ 7→ [ϕ] is exact.

Mohamed Barakat How to implement a category on the computer and why?

Page 70: How to implement a category on the computer and why?€¦ · Mohamed Barakat Universität Siegen EACA 2016 Logroño, Spain June 24, 2016 Joint work with Markus Lange-Hegermann, Sebastian

SERRE quotient category

DefinitionLet A be an ABELian category. A non-empty full subcategoryC ⊂ A is called thick if it is closed under passing to subobjects,factor objects, and extensions.

Example

C = S-grmod0 is a thick subcategory of A = S-grmod.

DefinitionThe SERRE quotient A/C is a category with• ObjA/C := ObjA;• HomA/C(M,N) := lim−→M ′≤M,N ′≤N,

M/M ′,N ′∈CHomA(M ′, N/N ′).

A/C is again ABELian and the localization functorQ : A → A/C,M 7→M,ϕ 7→ [ϕ] is exact.

Mohamed Barakat How to implement a category on the computer and why?

Page 71: How to implement a category on the computer and why?€¦ · Mohamed Barakat Universität Siegen EACA 2016 Logroño, Spain June 24, 2016 Joint work with Markus Lange-Hegermann, Sebastian

SERRE quotient category

DefinitionLet A be an ABELian category. A non-empty full subcategoryC ⊂ A is called thick if it is closed under passing to subobjects,factor objects, and extensions.

Example

C = S-grmod0 is a thick subcategory of A = S-grmod.

DefinitionThe SERRE quotient A/C is a category with• ObjA/C := ObjA;• HomA/C(M,N) := lim−→M ′≤M,N ′≤N,

M/M ′,N ′∈CHomA(M ′, N/N ′).

A/C is again ABELian and the localization functorQ : A → A/C,M 7→M,ϕ 7→ [ϕ] is exact.

Mohamed Barakat How to implement a category on the computer and why?

Page 72: How to implement a category on the computer and why?€¦ · Mohamed Barakat Universität Siegen EACA 2016 Logroño, Spain June 24, 2016 Joint work with Markus Lange-Hegermann, Sebastian

Constructive SERRE quotients

M

M

L

N

L′

pullback(ϕ, ı)

M/M ′′M/M ′′ M ′M ′

imα coimα

N/N ′′

pushout(, ψ)

1M

ϕ̃

ıı

ϕϕ ψψαα

ψ̃

∼α̃

∼(α̃)−1

ϕ

ψ

Theorem ([BLH14])Let C ⊂ A be a thick subcategory of the ABELian category A. IfA is constructively ABELian an the membership in C isdecidable, then A/C is constructively ABELian.

Mohamed Barakat How to implement a category on the computer and why?

Page 73: How to implement a category on the computer and why?€¦ · Mohamed Barakat Universität Siegen EACA 2016 Logroño, Spain June 24, 2016 Joint work with Markus Lange-Hegermann, Sebastian

Constructive SERRE quotients

M

M

L

N

L′

pullback(ϕ, ı)

M/M ′′M/M ′′

M ′

M ′

imα coimα

N/N ′′

pushout(, ψ)

1M

ϕ̃

ıı

ϕϕ

ψ

ψαα

ψ̃

∼α̃

∼(α̃)−1

ϕ

ψ

Theorem ([BLH14])Let C ⊂ A be a thick subcategory of the ABELian category A. IfA is constructively ABELian an the membership in C isdecidable, then A/C is constructively ABELian.

Mohamed Barakat How to implement a category on the computer and why?

Page 74: How to implement a category on the computer and why?€¦ · Mohamed Barakat Universität Siegen EACA 2016 Logroño, Spain June 24, 2016 Joint work with Markus Lange-Hegermann, Sebastian

Constructive SERRE quotients

M ML N

L′

pullback(ϕ, ı)

M/M ′′

M/M ′′

M ′

M ′

imα coimα

N/N ′′

pushout(, ψ)

1M

ϕ̃

ıı

ϕ

ϕ

ψ

ψαα

ψ̃

∼α̃

∼(α̃)−1

ϕ ψ

Theorem ([BLH14])Let C ⊂ A be a thick subcategory of the ABELian category A. IfA is constructively ABELian an the membership in C isdecidable, then A/C is constructively ABELian.

Mohamed Barakat How to implement a category on the computer and why?

Page 75: How to implement a category on the computer and why?€¦ · Mohamed Barakat Universität Siegen EACA 2016 Logroño, Spain June 24, 2016 Joint work with Markus Lange-Hegermann, Sebastian

Constructive SERRE quotients

M ML N

L′

pullback(ϕ, ı)

M/M ′′

M/M ′′

M ′

M ′

imα coimα

N/N ′′

pushout(, ψ)

1M

ϕ̃

ıı

ϕ

ϕ

ψ

ψαα

ψ̃

∼α̃

∼(α̃)−1

ϕ ψ

Theorem ([BLH14])Let C ⊂ A be a thick subcategory of the ABELian category A. IfA is constructively ABELian an the membership in C isdecidable, then A/C is constructively ABELian.

Mohamed Barakat How to implement a category on the computer and why?

Page 76: How to implement a category on the computer and why?€¦ · Mohamed Barakat Universität Siegen EACA 2016 Logroño, Spain June 24, 2016 Joint work with Markus Lange-Hegermann, Sebastian

Constructive SERRE quotients

M ML N

L′

pullback(ϕ, ı)

M/M ′′

M/M ′′

M ′

M ′

imα coimα

N/N ′′

pushout(, ψ)

1M

ϕ̃

ıı

ϕ

ϕ

ψ

ψ

α

α

ψ̃

∼α̃

∼(α̃)−1

ϕ ψ

Theorem ([BLH14])Let C ⊂ A be a thick subcategory of the ABELian category A. IfA is constructively ABELian an the membership in C isdecidable, then A/C is constructively ABELian.

Mohamed Barakat How to implement a category on the computer and why?

Page 77: How to implement a category on the computer and why?€¦ · Mohamed Barakat Universität Siegen EACA 2016 Logroño, Spain June 24, 2016 Joint work with Markus Lange-Hegermann, Sebastian

Constructive SERRE quotients

M ML N

L′

pullback(ϕ, ı)

M/M ′′

M/M ′′

M ′

M ′

imα coimα

N/N ′′

pushout(, ψ)

1M

ϕ̃

ı

ı

ϕ

ϕ

ψ

ψ

α

α

ψ̃

∼α̃

∼(α̃)−1

ϕ ψ

Theorem ([BLH14])Let C ⊂ A be a thick subcategory of the ABELian category A. IfA is constructively ABELian an the membership in C isdecidable, then A/C is constructively ABELian.

Mohamed Barakat How to implement a category on the computer and why?

Page 78: How to implement a category on the computer and why?€¦ · Mohamed Barakat Universität Siegen EACA 2016 Logroño, Spain June 24, 2016 Joint work with Markus Lange-Hegermann, Sebastian

Constructive SERRE quotients

M ML N

L′

pullback(ϕ, ı)

M/M ′′

M/M ′′

M ′

M ′

imα coimα

N/N ′′

pushout(, ψ)

1M

ϕ̃

ı

ı

ϕ

ϕ

ψ

ψ

α

α

ψ̃

∼α̃

∼(α̃)−1

ϕ ψ

Theorem ([BLH14])Let C ⊂ A be a thick subcategory of the ABELian category A. IfA is constructively ABELian an the membership in C isdecidable, then A/C is constructively ABELian.

Mohamed Barakat How to implement a category on the computer and why?

Page 79: How to implement a category on the computer and why?€¦ · Mohamed Barakat Universität Siegen EACA 2016 Logroño, Spain June 24, 2016 Joint work with Markus Lange-Hegermann, Sebastian

Constructive SERRE quotients

M ML N

L′

pullback(ϕ, ı)

M/M ′′

M/M ′′

M ′

M ′

imα coimα

N/N ′′

pushout(, ψ)

1M

ϕ̃

ı

ı

ϕ

ϕ

ψ

ψ

α

α

ψ̃

∼α̃

∼(α̃)−1

ϕ ψ

Theorem ([BLH14])Let C ⊂ A be a thick subcategory of the ABELian category A. IfA is constructively ABELian an the membership in C isdecidable, then A/C is constructively ABELian.

Mohamed Barakat How to implement a category on the computer and why?

Page 80: How to implement a category on the computer and why?€¦ · Mohamed Barakat Universität Siegen EACA 2016 Logroño, Spain June 24, 2016 Joint work with Markus Lange-Hegermann, Sebastian

Constructive SERRE quotients

M ML N

L′

pullback(ϕ, ı)

M/M ′′

M/M ′′

M ′

M ′

imα coimα

N/N ′′

pushout(, ψ)

1M

ϕ̃

ı

ı

ϕ

ϕ

ψ

ψ

α

α

ψ̃

∼α̃

∼(α̃)−1

ϕ ψ

Theorem ([BLH14])Let C ⊂ A be a thick subcategory of the ABELian category A. IfA is constructively ABELian an the membership in C isdecidable, then A/C is constructively ABELian.

Mohamed Barakat How to implement a category on the computer and why?

Page 81: How to implement a category on the computer and why?€¦ · Mohamed Barakat Universität Siegen EACA 2016 Logroño, Spain June 24, 2016 Joint work with Markus Lange-Hegermann, Sebastian

Constructive SERRE quotients

M ML N

L′

pullback(ϕ, ı)

M/M ′′

M/M ′′

M ′

M ′

imα coimα

N/N ′′

pushout(, ψ)

1M

ϕ̃

ı

ı

ϕ

ϕ

ψ

ψ

α

α

ψ̃

∼α̃

∼(α̃)−1

ϕ ψ

Theorem ([BLH14])Let C ⊂ A be a thick subcategory of the ABELian category A. IfA is constructively ABELian an the membership in C isdecidable, then A/C is constructively ABELian.

Mohamed Barakat How to implement a category on the computer and why?

Page 82: How to implement a category on the computer and why?€¦ · Mohamed Barakat Universität Siegen EACA 2016 Logroño, Spain June 24, 2016 Joint work with Markus Lange-Hegermann, Sebastian

Constructive SERRE quotients

M ML N

L′

pullback(ϕ, ı)

M/M ′′

M/M ′′

M ′

M ′

imα coimα

N/N ′′

pushout(, ψ)

1M

ϕ̃

ı

ı

ϕ

ϕ

ψ

ψ

α

α

ψ̃

∼α̃

∼(α̃)−1

ϕ ψ

Theorem ([BLH14])Let C ⊂ A be a thick subcategory of the ABELian category A. IfA is constructively ABELian an the membership in C isdecidable, then A/C is constructively ABELian.

Mohamed Barakat How to implement a category on the computer and why?

Page 83: How to implement a category on the computer and why?€¦ · Mohamed Barakat Universität Siegen EACA 2016 Logroño, Spain June 24, 2016 Joint work with Markus Lange-Hegermann, Sebastian

Corollaries

Corollary

Rp-mod ' R-mod/{M ∈ R-mod |Mp = 0}

is constructively ABELian.

Corollary

CohOD(p) ' R-mod/{SuppM ⊆ V (p)}

is constructively ABELian.

Corollary

CohPn = S-grmod/S-grmod0

is constructively ABELian.

Mohamed Barakat How to implement a category on the computer and why?

Page 84: How to implement a category on the computer and why?€¦ · Mohamed Barakat Universität Siegen EACA 2016 Logroño, Spain June 24, 2016 Joint work with Markus Lange-Hegermann, Sebastian

Corollaries

Corollary

Rp-mod ' R-mod/{M ∈ R-mod |Mp = 0}

is constructively ABELian.

Corollary

CohOD(p) ' R-mod/{SuppM ⊆ V (p)}

is constructively ABELian.

Corollary

CohPn = S-grmod/S-grmod0

is constructively ABELian.

Mohamed Barakat How to implement a category on the computer and why?

Page 85: How to implement a category on the computer and why?€¦ · Mohamed Barakat Universität Siegen EACA 2016 Logroño, Spain June 24, 2016 Joint work with Markus Lange-Hegermann, Sebastian

Corollaries

Corollary

Rp-mod ' R-mod/{M ∈ R-mod |Mp = 0}

is constructively ABELian.

Corollary

CohOD(p) ' R-mod/{SuppM ⊆ V (p)}

is constructively ABELian.

Corollary

CohPn = S-grmod/S-grmod0

is constructively ABELian.

Mohamed Barakat How to implement a category on the computer and why?

Page 86: How to implement a category on the computer and why?€¦ · Mohamed Barakat Universität Siegen EACA 2016 Logroño, Spain June 24, 2016 Joint work with Markus Lange-Hegermann, Sebastian

How to implement a category on the computer?

How to implement a category on the computer?

As a category is for the machine a computational context withmany algorithms we need an object oriented programinglanguage to• implement the computational context as an object and• implement the many algorithms as associated methods.

As categorical constructions correspond to the passage fromone computational context to another we also need afunctional programing language in order to• take an algorithmic context as input and create another

one out of it.

Mohamed Barakat How to implement a category on the computer and why?

Page 87: How to implement a category on the computer and why?€¦ · Mohamed Barakat Universität Siegen EACA 2016 Logroño, Spain June 24, 2016 Joint work with Markus Lange-Hegermann, Sebastian

How to implement a category on the computer?

How to implement a category on the computer?

As a category is for the machine a computational context withmany algorithms

we need an object oriented programinglanguage to• implement the computational context as an object and• implement the many algorithms as associated methods.

As categorical constructions correspond to the passage fromone computational context to another we also need afunctional programing language in order to• take an algorithmic context as input and create another

one out of it.

Mohamed Barakat How to implement a category on the computer and why?

Page 88: How to implement a category on the computer and why?€¦ · Mohamed Barakat Universität Siegen EACA 2016 Logroño, Spain June 24, 2016 Joint work with Markus Lange-Hegermann, Sebastian

How to implement a category on the computer?

How to implement a category on the computer?

As a category is for the machine a computational context withmany algorithms we need an object oriented programinglanguage

to• implement the computational context as an object and• implement the many algorithms as associated methods.

As categorical constructions correspond to the passage fromone computational context to another we also need afunctional programing language in order to• take an algorithmic context as input and create another

one out of it.

Mohamed Barakat How to implement a category on the computer and why?

Page 89: How to implement a category on the computer and why?€¦ · Mohamed Barakat Universität Siegen EACA 2016 Logroño, Spain June 24, 2016 Joint work with Markus Lange-Hegermann, Sebastian

How to implement a category on the computer?

How to implement a category on the computer?

As a category is for the machine a computational context withmany algorithms we need an object oriented programinglanguage to• implement the computational context as an object

and• implement the many algorithms as associated methods.

As categorical constructions correspond to the passage fromone computational context to another we also need afunctional programing language in order to• take an algorithmic context as input and create another

one out of it.

Mohamed Barakat How to implement a category on the computer and why?

Page 90: How to implement a category on the computer and why?€¦ · Mohamed Barakat Universität Siegen EACA 2016 Logroño, Spain June 24, 2016 Joint work with Markus Lange-Hegermann, Sebastian

How to implement a category on the computer?

How to implement a category on the computer?

As a category is for the machine a computational context withmany algorithms we need an object oriented programinglanguage to• implement the computational context as an object and• implement the many algorithms as associated methods.

As categorical constructions correspond to the passage fromone computational context to another we also need afunctional programing language in order to• take an algorithmic context as input and create another

one out of it.

Mohamed Barakat How to implement a category on the computer and why?

Page 91: How to implement a category on the computer and why?€¦ · Mohamed Barakat Universität Siegen EACA 2016 Logroño, Spain June 24, 2016 Joint work with Markus Lange-Hegermann, Sebastian

How to implement a category on the computer?

How to implement a category on the computer?

As a category is for the machine a computational context withmany algorithms we need an object oriented programinglanguage to• implement the computational context as an object and• implement the many algorithms as associated methods.

As categorical constructions correspond to the passage fromone computational context to another

we also need afunctional programing language in order to• take an algorithmic context as input and create another

one out of it.

Mohamed Barakat How to implement a category on the computer and why?

Page 92: How to implement a category on the computer and why?€¦ · Mohamed Barakat Universität Siegen EACA 2016 Logroño, Spain June 24, 2016 Joint work with Markus Lange-Hegermann, Sebastian

How to implement a category on the computer?

How to implement a category on the computer?

As a category is for the machine a computational context withmany algorithms we need an object oriented programinglanguage to• implement the computational context as an object and• implement the many algorithms as associated methods.

As categorical constructions correspond to the passage fromone computational context to another we also need afunctional programing language

in order to• take an algorithmic context as input and create another

one out of it.

Mohamed Barakat How to implement a category on the computer and why?

Page 93: How to implement a category on the computer and why?€¦ · Mohamed Barakat Universität Siegen EACA 2016 Logroño, Spain June 24, 2016 Joint work with Markus Lange-Hegermann, Sebastian

How to implement a category on the computer?

How to implement a category on the computer?

As a category is for the machine a computational context withmany algorithms we need an object oriented programinglanguage to• implement the computational context as an object and• implement the many algorithms as associated methods.

As categorical constructions correspond to the passage fromone computational context to another we also need afunctional programing language in order to• take an algorithmic context as input and create another

one out of it.

Mohamed Barakat How to implement a category on the computer and why?

Page 94: How to implement a category on the computer and why?€¦ · Mohamed Barakat Universität Siegen EACA 2016 Logroño, Spain June 24, 2016 Joint work with Markus Lange-Hegermann, Sebastian

An example

Consider the category of finitely presented modules over thecomputable commutative ring R := Q[x, y, z]:

gap> Q := HomalgFieldOfRationalsInSingular( );Qgap> R := PolynomialRing( Q, "x,y,z" );Q[x,y,z]gap> B := LeftPresentations( R );The category of f.p. modules over Q[x,y,z]gap> InfoOfInstalledOperationsOfCategory( B );34 primitive operations were used to derive 166 basic ones for \this symmetric closed monoidal Abelian category

Mohamed Barakat How to implement a category on the computer and why?

Page 95: How to implement a category on the computer and why?€¦ · Mohamed Barakat Universität Siegen EACA 2016 Logroño, Spain June 24, 2016 Joint work with Markus Lange-Hegermann, Sebastian

An example

Consider the category of finitely presented modules over thecomputable commutative ring R := Q[x, y, z]:gap> Q := HomalgFieldOfRationalsInSingular( );Q

gap> R := PolynomialRing( Q, "x,y,z" );Q[x,y,z]gap> B := LeftPresentations( R );The category of f.p. modules over Q[x,y,z]gap> InfoOfInstalledOperationsOfCategory( B );34 primitive operations were used to derive 166 basic ones for \this symmetric closed monoidal Abelian category

Mohamed Barakat How to implement a category on the computer and why?

Page 96: How to implement a category on the computer and why?€¦ · Mohamed Barakat Universität Siegen EACA 2016 Logroño, Spain June 24, 2016 Joint work with Markus Lange-Hegermann, Sebastian

An example

Consider the category of finitely presented modules over thecomputable commutative ring R := Q[x, y, z]:gap> Q := HomalgFieldOfRationalsInSingular( );Qgap> R := PolynomialRing( Q, "x,y,z" );Q[x,y,z]

gap> B := LeftPresentations( R );The category of f.p. modules over Q[x,y,z]gap> InfoOfInstalledOperationsOfCategory( B );34 primitive operations were used to derive 166 basic ones for \this symmetric closed monoidal Abelian category

Mohamed Barakat How to implement a category on the computer and why?

Page 97: How to implement a category on the computer and why?€¦ · Mohamed Barakat Universität Siegen EACA 2016 Logroño, Spain June 24, 2016 Joint work with Markus Lange-Hegermann, Sebastian

An example

Consider the category of finitely presented modules over thecomputable commutative ring R := Q[x, y, z]:gap> Q := HomalgFieldOfRationalsInSingular( );Qgap> R := PolynomialRing( Q, "x,y,z" );Q[x,y,z]gap> B := LeftPresentations( R );The category of f.p. modules over Q[x,y,z]

gap> InfoOfInstalledOperationsOfCategory( B );34 primitive operations were used to derive 166 basic ones for \this symmetric closed monoidal Abelian category

Mohamed Barakat How to implement a category on the computer and why?

Page 98: How to implement a category on the computer and why?€¦ · Mohamed Barakat Universität Siegen EACA 2016 Logroño, Spain June 24, 2016 Joint work with Markus Lange-Hegermann, Sebastian

An example

Consider the category of finitely presented modules over thecomputable commutative ring R := Q[x, y, z]:gap> Q := HomalgFieldOfRationalsInSingular( );Qgap> R := PolynomialRing( Q, "x,y,z" );Q[x,y,z]gap> B := LeftPresentations( R );The category of f.p. modules over Q[x,y,z]gap> InfoOfInstalledOperationsOfCategory( B );34 primitive operations were used to derive 166 basic ones for \this symmetric closed monoidal Abelian category

Mohamed Barakat How to implement a category on the computer and why?

Page 99: How to implement a category on the computer and why?€¦ · Mohamed Barakat Universität Siegen EACA 2016 Logroño, Spain June 24, 2016 Joint work with Markus Lange-Hegermann, Sebastian

An example (continued)

But we can also construct new categories out of previouslyconstructed ones:

gap> S := GradedRing( R );;gap> A := GradedLeftPresentations( S );The category of f.p. graded modules over Q[x,y,z]gap> C := Subcategory( A, M -> HilbertPolynomial( M ) = 0 );;gap> CohP2 := A / C;A Serre quotient of the category of f.p. graded modules \over Q[x,y,z]gap> InfoOfInstalledOperationsOfCategory( CohP2 );19 primitive operations were used to derive 129 basic ones for \this Abelian category

We have created a computational context (the category A)

andtransformed it into another one (the category A/C ' CohP2).

Mohamed Barakat How to implement a category on the computer and why?

Page 100: How to implement a category on the computer and why?€¦ · Mohamed Barakat Universität Siegen EACA 2016 Logroño, Spain June 24, 2016 Joint work with Markus Lange-Hegermann, Sebastian

An example (continued)

But we can also construct new categories out of previouslyconstructed ones:gap> S := GradedRing( R );;

gap> A := GradedLeftPresentations( S );The category of f.p. graded modules over Q[x,y,z]gap> C := Subcategory( A, M -> HilbertPolynomial( M ) = 0 );;gap> CohP2 := A / C;A Serre quotient of the category of f.p. graded modules \over Q[x,y,z]gap> InfoOfInstalledOperationsOfCategory( CohP2 );19 primitive operations were used to derive 129 basic ones for \this Abelian category

We have created a computational context (the category A)

andtransformed it into another one (the category A/C ' CohP2).

Mohamed Barakat How to implement a category on the computer and why?

Page 101: How to implement a category on the computer and why?€¦ · Mohamed Barakat Universität Siegen EACA 2016 Logroño, Spain June 24, 2016 Joint work with Markus Lange-Hegermann, Sebastian

An example (continued)

But we can also construct new categories out of previouslyconstructed ones:gap> S := GradedRing( R );;gap> A := GradedLeftPresentations( S );The category of f.p. graded modules over Q[x,y,z]

gap> C := Subcategory( A, M -> HilbertPolynomial( M ) = 0 );;gap> CohP2 := A / C;A Serre quotient of the category of f.p. graded modules \over Q[x,y,z]gap> InfoOfInstalledOperationsOfCategory( CohP2 );19 primitive operations were used to derive 129 basic ones for \this Abelian category

We have created a computational context (the category A)

andtransformed it into another one (the category A/C ' CohP2).

Mohamed Barakat How to implement a category on the computer and why?

Page 102: How to implement a category on the computer and why?€¦ · Mohamed Barakat Universität Siegen EACA 2016 Logroño, Spain June 24, 2016 Joint work with Markus Lange-Hegermann, Sebastian

An example (continued)

But we can also construct new categories out of previouslyconstructed ones:gap> S := GradedRing( R );;gap> A := GradedLeftPresentations( S );The category of f.p. graded modules over Q[x,y,z]gap> C := Subcategory( A, M -> HilbertPolynomial( M ) = 0 );;

gap> CohP2 := A / C;A Serre quotient of the category of f.p. graded modules \over Q[x,y,z]gap> InfoOfInstalledOperationsOfCategory( CohP2 );19 primitive operations were used to derive 129 basic ones for \this Abelian category

We have created a computational context (the category A)

andtransformed it into another one (the category A/C ' CohP2).

Mohamed Barakat How to implement a category on the computer and why?

Page 103: How to implement a category on the computer and why?€¦ · Mohamed Barakat Universität Siegen EACA 2016 Logroño, Spain June 24, 2016 Joint work with Markus Lange-Hegermann, Sebastian

An example (continued)

But we can also construct new categories out of previouslyconstructed ones:gap> S := GradedRing( R );;gap> A := GradedLeftPresentations( S );The category of f.p. graded modules over Q[x,y,z]gap> C := Subcategory( A, M -> HilbertPolynomial( M ) = 0 );;gap> CohP2 := A / C;A Serre quotient of the category of f.p. graded modules \over Q[x,y,z]

gap> InfoOfInstalledOperationsOfCategory( CohP2 );19 primitive operations were used to derive 129 basic ones for \this Abelian category

We have created a computational context (the category A)

andtransformed it into another one (the category A/C ' CohP2).

Mohamed Barakat How to implement a category on the computer and why?

Page 104: How to implement a category on the computer and why?€¦ · Mohamed Barakat Universität Siegen EACA 2016 Logroño, Spain June 24, 2016 Joint work with Markus Lange-Hegermann, Sebastian

An example (continued)

But we can also construct new categories out of previouslyconstructed ones:gap> S := GradedRing( R );;gap> A := GradedLeftPresentations( S );The category of f.p. graded modules over Q[x,y,z]gap> C := Subcategory( A, M -> HilbertPolynomial( M ) = 0 );;gap> CohP2 := A / C;A Serre quotient of the category of f.p. graded modules \over Q[x,y,z]gap> InfoOfInstalledOperationsOfCategory( CohP2 );19 primitive operations were used to derive 129 basic ones for \this Abelian category

We have created a computational context (the category A) andtransformed it into another one (the category A/C ' CohP2).

Mohamed Barakat How to implement a category on the computer and why?

Page 105: How to implement a category on the computer and why?€¦ · Mohamed Barakat Universität Siegen EACA 2016 Logroño, Spain June 24, 2016 Joint work with Markus Lange-Hegermann, Sebastian

An example (continued)

But we can also construct new categories out of previouslyconstructed ones:gap> S := GradedRing( R );;gap> A := GradedLeftPresentations( S );The category of f.p. graded modules over Q[x,y,z]gap> C := Subcategory( A, M -> HilbertPolynomial( M ) = 0 );;gap> CohP2 := A / C;A Serre quotient of the category of f.p. graded modules \over Q[x,y,z]gap> InfoOfInstalledOperationsOfCategory( CohP2 );19 primitive operations were used to derive 129 basic ones for \this Abelian category

We have created a computational context (the category A) andtransformed it into another one (the category A/C ' CohP2).

Mohamed Barakat How to implement a category on the computer and why?

Page 106: How to implement a category on the computer and why?€¦ · Mohamed Barakat Universität Siegen EACA 2016 Logroño, Spain June 24, 2016 Joint work with Markus Lange-Hegermann, Sebastian

Quasi-isomorphisms

Definition• A chain morphism µ• : (M•, ∂

M• )→ (N•, ∂

N• ) is a

quasi-isomorphism if it induces isomorphisms onhomology: µi : Hi(M•)

∼−→ Hi(N•) for all i.

• Two complexes (M•, ∂M• ), (N•, ∂

N• ) are called

quasi-isomorphic if there exists a quasi-isomorphismµ• : (M•, ∂

M• )→ (N•, ∂

N• ).

Being quasi-isomorphic is reflexiv and transitive but not (yet)symmetric!

Example

Regarding A ⊂ C(A)

resolutions become quasi-isomorphisms:

P0 P1 · · ·0· · ·

M 0 · · ·0· · ·

π

Mohamed Barakat How to implement a category on the computer and why?

Page 107: How to implement a category on the computer and why?€¦ · Mohamed Barakat Universität Siegen EACA 2016 Logroño, Spain June 24, 2016 Joint work with Markus Lange-Hegermann, Sebastian

Quasi-isomorphisms

Definition• A chain morphism µ• : (M•, ∂

M• )→ (N•, ∂

N• ) is a

quasi-isomorphism if it induces isomorphisms onhomology: µi : Hi(M•)

∼−→ Hi(N•) for all i.• Two complexes (M•, ∂

M• ), (N•, ∂

N• ) are called

quasi-isomorphic if there exists a quasi-isomorphismµ• : (M•, ∂

M• )→ (N•, ∂

N• ).

Being quasi-isomorphic is reflexiv and transitive but not (yet)symmetric!

Example

Regarding A ⊂ C(A)

resolutions become quasi-isomorphisms:

P0 P1 · · ·0· · ·

M 0 · · ·0· · ·

π

Mohamed Barakat How to implement a category on the computer and why?

Page 108: How to implement a category on the computer and why?€¦ · Mohamed Barakat Universität Siegen EACA 2016 Logroño, Spain June 24, 2016 Joint work with Markus Lange-Hegermann, Sebastian

Quasi-isomorphisms

Definition• A chain morphism µ• : (M•, ∂

M• )→ (N•, ∂

N• ) is a

quasi-isomorphism if it induces isomorphisms onhomology: µi : Hi(M•)

∼−→ Hi(N•) for all i.• Two complexes (M•, ∂

M• ), (N•, ∂

N• ) are called

quasi-isomorphic if there exists a quasi-isomorphismµ• : (M•, ∂

M• )→ (N•, ∂

N• ).

Being quasi-isomorphic is reflexiv and transitive

but not (yet)symmetric!

Example

Regarding A ⊂ C(A)

resolutions become quasi-isomorphisms:

P0 P1 · · ·0· · ·

M 0 · · ·0· · ·

π

Mohamed Barakat How to implement a category on the computer and why?

Page 109: How to implement a category on the computer and why?€¦ · Mohamed Barakat Universität Siegen EACA 2016 Logroño, Spain June 24, 2016 Joint work with Markus Lange-Hegermann, Sebastian

Quasi-isomorphisms

Definition• A chain morphism µ• : (M•, ∂

M• )→ (N•, ∂

N• ) is a

quasi-isomorphism if it induces isomorphisms onhomology: µi : Hi(M•)

∼−→ Hi(N•) for all i.• Two complexes (M•, ∂

M• ), (N•, ∂

N• ) are called

quasi-isomorphic if there exists a quasi-isomorphismµ• : (M•, ∂

M• )→ (N•, ∂

N• ).

Being quasi-isomorphic is reflexiv and transitive but not (yet)symmetric!

Example

Regarding A ⊂ C(A)

resolutions become quasi-isomorphisms:

P0 P1 · · ·0· · ·

M 0 · · ·0· · ·

π

Mohamed Barakat How to implement a category on the computer and why?

Page 110: How to implement a category on the computer and why?€¦ · Mohamed Barakat Universität Siegen EACA 2016 Logroño, Spain June 24, 2016 Joint work with Markus Lange-Hegermann, Sebastian

Quasi-isomorphisms

Definition• A chain morphism µ• : (M•, ∂

M• )→ (N•, ∂

N• ) is a

quasi-isomorphism if it induces isomorphisms onhomology: µi : Hi(M•)

∼−→ Hi(N•) for all i.• Two complexes (M•, ∂

M• ), (N•, ∂

N• ) are called

quasi-isomorphic if there exists a quasi-isomorphismµ• : (M•, ∂

M• )→ (N•, ∂

N• ).

Being quasi-isomorphic is reflexiv and transitive but not (yet)symmetric!

Example

Regarding A ⊂ C(A)

resolutions become quasi-isomorphisms:

P0 P1 · · ·0· · ·

M 0 · · ·0· · ·

π

Mohamed Barakat How to implement a category on the computer and why?

Page 111: How to implement a category on the computer and why?€¦ · Mohamed Barakat Universität Siegen EACA 2016 Logroño, Spain June 24, 2016 Joint work with Markus Lange-Hegermann, Sebastian

Quasi-isomorphisms

Definition• A chain morphism µ• : (M•, ∂

M• )→ (N•, ∂

N• ) is a

quasi-isomorphism if it induces isomorphisms onhomology: µi : Hi(M•)

∼−→ Hi(N•) for all i.• Two complexes (M•, ∂

M• ), (N•, ∂

N• ) are called

quasi-isomorphic if there exists a quasi-isomorphismµ• : (M•, ∂

M• )→ (N•, ∂

N• ).

Being quasi-isomorphic is reflexiv and transitive but not (yet)symmetric!

Example

Regarding A ⊂ C(A) resolutions become quasi-isomorphisms:

P0 P1 · · ·0· · ·

M 0 · · ·0· · ·π

Mohamed Barakat How to implement a category on the computer and why?

Page 112: How to implement a category on the computer and why?€¦ · Mohamed Barakat Universität Siegen EACA 2016 Logroño, Spain June 24, 2016 Joint work with Markus Lange-Hegermann, Sebastian

Homotopy equivalences

Definition• Two chain morphism µ•, ν• : (M•, ∂

M• )→ (N•, ∂

N• ) are

called homotopic, and written µ• ∼ ν•

, if there exists adegree +1 chain morphism h• : M• → N•+1 such that

µ• − ν• = ∂M• h• + h•∂N• .

• Two complexes are called homotopy equivalent if thereexists chain morphisms µ• : M• � N• : ν• such that

µ•ν• ∼ 1M• : M• →M•,

ν•µ• ∼ 1N• : N• → N•.

CorollaryHomotopy equivalent complexes are quasi-isomorphic.

Mohamed Barakat How to implement a category on the computer and why?

Page 113: How to implement a category on the computer and why?€¦ · Mohamed Barakat Universität Siegen EACA 2016 Logroño, Spain June 24, 2016 Joint work with Markus Lange-Hegermann, Sebastian

Homotopy equivalences

Definition• Two chain morphism µ•, ν• : (M•, ∂

M• )→ (N•, ∂

N• ) are

called homotopic, and written µ• ∼ ν•, if there exists adegree +1 chain morphism h• : M• → N•+1 such that

µ• − ν• = ∂M• h• + h•∂N• .

• Two complexes are called homotopy equivalent if thereexists chain morphisms µ• : M• � N• : ν• such that

µ•ν• ∼ 1M• : M• →M•,

ν•µ• ∼ 1N• : N• → N•.

CorollaryHomotopy equivalent complexes are quasi-isomorphic.

Mohamed Barakat How to implement a category on the computer and why?

Page 114: How to implement a category on the computer and why?€¦ · Mohamed Barakat Universität Siegen EACA 2016 Logroño, Spain June 24, 2016 Joint work with Markus Lange-Hegermann, Sebastian

Homotopy equivalences

Definition• Two chain morphism µ•, ν• : (M•, ∂

M• )→ (N•, ∂

N• ) are

called homotopic, and written µ• ∼ ν•, if there exists adegree +1 chain morphism h• : M• → N•+1 such that

µ• − ν• = ∂M• h• + h•∂N• .

• Two complexes are called homotopy equivalent if thereexists chain morphisms µ• : M• � N• : ν• such that

µ•ν• ∼ 1M• : M• →M•,

ν•µ• ∼ 1N• : N• → N•.

CorollaryHomotopy equivalent complexes are quasi-isomorphic.

Mohamed Barakat How to implement a category on the computer and why?

Page 115: How to implement a category on the computer and why?€¦ · Mohamed Barakat Universität Siegen EACA 2016 Logroño, Spain June 24, 2016 Joint work with Markus Lange-Hegermann, Sebastian

Homotopy equivalences

Definition• Two chain morphism µ•, ν• : (M•, ∂

M• )→ (N•, ∂

N• ) are

called homotopic, and written µ• ∼ ν•, if there exists adegree +1 chain morphism h• : M• → N•+1 such that

µ• − ν• = ∂M• h• + h•∂N• .

• Two complexes are called homotopy equivalent if thereexists chain morphisms µ• : M• � N• : ν• such that

µ•ν• ∼ 1M• : M• →M•,

ν•µ• ∼ 1N• : N• → N•.

CorollaryHomotopy equivalent complexes are quasi-isomorphic.

Mohamed Barakat How to implement a category on the computer and why?

Page 116: How to implement a category on the computer and why?€¦ · Mohamed Barakat Universität Siegen EACA 2016 Logroño, Spain June 24, 2016 Joint work with Markus Lange-Hegermann, Sebastian

Identify resolutions among each other

Let A be an ABELian category with enough projectives.

TheoremAny two projective resolutions in A are homotopy equivalent.

DefinitionThe homotopy category of A is defined as

K(A) := C(A)/homotopy equivalence.

Corollary

Any two projective resolutions in A are isomorphic in K(A).

ProblemWe still did not identify objects in A with their projectiveresolutions in C(A) ⊃ A.

Mohamed Barakat How to implement a category on the computer and why?

Page 117: How to implement a category on the computer and why?€¦ · Mohamed Barakat Universität Siegen EACA 2016 Logroño, Spain June 24, 2016 Joint work with Markus Lange-Hegermann, Sebastian

Identify resolutions among each other

Let A be an ABELian category with enough projectives.

TheoremAny two projective resolutions in A are homotopy equivalent.

DefinitionThe homotopy category of A is defined as

K(A) := C(A)/homotopy equivalence.

Corollary

Any two projective resolutions in A are isomorphic in K(A).

ProblemWe still did not identify objects in A with their projectiveresolutions in C(A) ⊃ A.

Mohamed Barakat How to implement a category on the computer and why?

Page 118: How to implement a category on the computer and why?€¦ · Mohamed Barakat Universität Siegen EACA 2016 Logroño, Spain June 24, 2016 Joint work with Markus Lange-Hegermann, Sebastian

Identify resolutions among each other

Let A be an ABELian category with enough projectives.

TheoremAny two projective resolutions in A are homotopy equivalent.

DefinitionThe homotopy category of A is defined as

K(A) := C(A)/homotopy equivalence.

Corollary

Any two projective resolutions in A are isomorphic in K(A).

ProblemWe still did not identify objects in A with their projectiveresolutions in C(A) ⊃ A.

Mohamed Barakat How to implement a category on the computer and why?

Page 119: How to implement a category on the computer and why?€¦ · Mohamed Barakat Universität Siegen EACA 2016 Logroño, Spain June 24, 2016 Joint work with Markus Lange-Hegermann, Sebastian

Identify resolutions among each other

Let A be an ABELian category with enough projectives.

TheoremAny two projective resolutions in A are homotopy equivalent.

DefinitionThe homotopy category of A is defined as

K(A) := C(A)/homotopy equivalence.

Corollary

Any two projective resolutions in A are isomorphic in K(A).

ProblemWe still did not identify objects in A with their projectiveresolutions in C(A) ⊃ A.

Mohamed Barakat How to implement a category on the computer and why?

Page 120: How to implement a category on the computer and why?€¦ · Mohamed Barakat Universität Siegen EACA 2016 Logroño, Spain June 24, 2016 Joint work with Markus Lange-Hegermann, Sebastian

Identify resolutions among each other

Let A be an ABELian category with enough projectives.

TheoremAny two projective resolutions in A are homotopy equivalent.

DefinitionThe homotopy category of A is defined as

K(A) := C(A)/homotopy equivalence.

Corollary

Any two projective resolutions in A are isomorphic in K(A).

ProblemWe still did not identify objects in A with their projectiveresolutions in C(A) ⊃ A.

Mohamed Barakat How to implement a category on the computer and why?

Page 121: How to implement a category on the computer and why?€¦ · Mohamed Barakat Universität Siegen EACA 2016 Logroño, Spain June 24, 2016 Joint work with Markus Lange-Hegermann, Sebastian

Two solutions to the last problem

Let A be an ABELian category with enough projectives

andP(A) ⊂ C(A) the full subcategory of complexes with projectiveobjects.

There are two solutions to the last problem:

1 Restrict K(A) to the full subcategoryK(P(A)) ⊂ K(A).

2 Localize K(A) at the class Σ := {quasi-isomorphisms}D(A) := Σ−1K(A).

We call D(A) the derived category of A.

TheoremIf A has enough projectives then the composition

K(P(A)) ↪→ K(A)→ D(A)

is an equivalence of categories.

Mohamed Barakat How to implement a category on the computer and why?

Page 122: How to implement a category on the computer and why?€¦ · Mohamed Barakat Universität Siegen EACA 2016 Logroño, Spain June 24, 2016 Joint work with Markus Lange-Hegermann, Sebastian

Two solutions to the last problem

Let A be an ABELian category with enough projectives andP(A) ⊂ C(A) the full subcategory of complexes with projectiveobjects.

There are two solutions to the last problem:

1 Restrict K(A) to the full subcategoryK(P(A)) ⊂ K(A).

2 Localize K(A) at the class Σ := {quasi-isomorphisms}D(A) := Σ−1K(A).

We call D(A) the derived category of A.

TheoremIf A has enough projectives then the composition

K(P(A)) ↪→ K(A)→ D(A)

is an equivalence of categories.

Mohamed Barakat How to implement a category on the computer and why?

Page 123: How to implement a category on the computer and why?€¦ · Mohamed Barakat Universität Siegen EACA 2016 Logroño, Spain June 24, 2016 Joint work with Markus Lange-Hegermann, Sebastian

Two solutions to the last problem

Let A be an ABELian category with enough projectives andP(A) ⊂ C(A) the full subcategory of complexes with projectiveobjects.

There are two solutions to the last problem:

1 Restrict K(A) to the full subcategoryK(P(A)) ⊂ K(A).

2 Localize K(A) at the class Σ := {quasi-isomorphisms}D(A) := Σ−1K(A).

We call D(A) the derived category of A.

TheoremIf A has enough projectives then the composition

K(P(A)) ↪→ K(A)→ D(A)

is an equivalence of categories.

Mohamed Barakat How to implement a category on the computer and why?

Page 124: How to implement a category on the computer and why?€¦ · Mohamed Barakat Universität Siegen EACA 2016 Logroño, Spain June 24, 2016 Joint work with Markus Lange-Hegermann, Sebastian

Two solutions to the last problem

Let A be an ABELian category with enough projectives andP(A) ⊂ C(A) the full subcategory of complexes with projectiveobjects.

There are two solutions to the last problem:

1 Restrict K(A) to the full subcategoryK(P(A)) ⊂ K(A).

2 Localize K(A) at the class Σ := {quasi-isomorphisms}D(A) := Σ−1K(A).

We call D(A) the derived category of A.

TheoremIf A has enough projectives then the composition

K(P(A)) ↪→ K(A)→ D(A)

is an equivalence of categories.

Mohamed Barakat How to implement a category on the computer and why?

Page 125: How to implement a category on the computer and why?€¦ · Mohamed Barakat Universität Siegen EACA 2016 Logroño, Spain June 24, 2016 Joint work with Markus Lange-Hegermann, Sebastian

Two solutions to the last problem

Let A be an ABELian category with enough projectives andP(A) ⊂ C(A) the full subcategory of complexes with projectiveobjects.

There are two solutions to the last problem:

1 Restrict K(A) to the full subcategoryK(P(A)) ⊂ K(A).

2 Localize K(A) at the class Σ := {quasi-isomorphisms}D(A) := Σ−1K(A).

We call D(A) the derived category of A.

TheoremIf A has enough projectives then the composition

K(P(A)) ↪→ K(A)→ D(A)

is an equivalence of categories.

Mohamed Barakat How to implement a category on the computer and why?

Page 126: How to implement a category on the computer and why?€¦ · Mohamed Barakat Universität Siegen EACA 2016 Logroño, Spain June 24, 2016 Joint work with Markus Lange-Hegermann, Sebastian

Two solutions to the last problem

Let A be an ABELian category with enough projectives andP(A) ⊂ C(A) the full subcategory of complexes with projectiveobjects.

There are two solutions to the last problem:

1 Restrict K(A) to the full subcategoryK(P(A)) ⊂ K(A).

2 Localize K(A) at the class Σ := {quasi-isomorphisms}D(A) := Σ−1K(A).

We call D(A) the derived category of A.

TheoremIf A has enough projectives then the composition

K(P(A)) ↪→ K(A)→ D(A)

is an equivalence of categories.

Mohamed Barakat How to implement a category on the computer and why?

Page 127: How to implement a category on the computer and why?€¦ · Mohamed Barakat Universität Siegen EACA 2016 Logroño, Spain June 24, 2016 Joint work with Markus Lange-Hegermann, Sebastian

The structure of a derived category

• The derived category D(A) is still additive, but generallynot ABELian

: it is a triangulated category.• Although A ⊂ D(A), there is in general no way to recoverA from of D(A) equipped with its triangulated structure.

DefinitionLet us call a triangulated category T nice if there exists anABELian category A with enough projectives such that

T ' K(P(A)).

Corollary

If A has enough projectives then D(A) is nice.

CorollaryCategories of modules over rings are nice.

Mohamed Barakat How to implement a category on the computer and why?

Page 128: How to implement a category on the computer and why?€¦ · Mohamed Barakat Universität Siegen EACA 2016 Logroño, Spain June 24, 2016 Joint work with Markus Lange-Hegermann, Sebastian

The structure of a derived category

• The derived category D(A) is still additive, but generallynot ABELian: it is a triangulated category.

• Although A ⊂ D(A), there is in general no way to recoverA from of D(A) equipped with its triangulated structure.

DefinitionLet us call a triangulated category T nice if there exists anABELian category A with enough projectives such that

T ' K(P(A)).

Corollary

If A has enough projectives then D(A) is nice.

CorollaryCategories of modules over rings are nice.

Mohamed Barakat How to implement a category on the computer and why?

Page 129: How to implement a category on the computer and why?€¦ · Mohamed Barakat Universität Siegen EACA 2016 Logroño, Spain June 24, 2016 Joint work with Markus Lange-Hegermann, Sebastian

The structure of a derived category

• The derived category D(A) is still additive, but generallynot ABELian: it is a triangulated category.

• Although A ⊂ D(A), there is in general no way to recoverA from of D(A) equipped with its triangulated structure.

DefinitionLet us call a triangulated category T nice if there exists anABELian category A with enough projectives such that

T ' K(P(A)).

Corollary

If A has enough projectives then D(A) is nice.

CorollaryCategories of modules over rings are nice.

Mohamed Barakat How to implement a category on the computer and why?

Page 130: How to implement a category on the computer and why?€¦ · Mohamed Barakat Universität Siegen EACA 2016 Logroño, Spain June 24, 2016 Joint work with Markus Lange-Hegermann, Sebastian

The structure of a derived category

• The derived category D(A) is still additive, but generallynot ABELian: it is a triangulated category.

• Although A ⊂ D(A), there is in general no way to recoverA from of D(A) equipped with its triangulated structure.

DefinitionLet us call a triangulated category T nice if there exists anABELian category A with enough projectives such that

T ' K(P(A)).

Corollary

If A has enough projectives then D(A) is nice.

CorollaryCategories of modules over rings are nice.

Mohamed Barakat How to implement a category on the computer and why?

Page 131: How to implement a category on the computer and why?€¦ · Mohamed Barakat Universität Siegen EACA 2016 Logroño, Spain June 24, 2016 Joint work with Markus Lange-Hegermann, Sebastian

The structure of a derived category

• The derived category D(A) is still additive, but generallynot ABELian: it is a triangulated category.

• Although A ⊂ D(A), there is in general no way to recoverA from of D(A) equipped with its triangulated structure.

DefinitionLet us call a triangulated category T nice if there exists anABELian category A with enough projectives such that

T ' K(P(A)).

Corollary

If A has enough projectives then D(A) is nice.

CorollaryCategories of modules over rings are nice.

Mohamed Barakat How to implement a category on the computer and why?

Page 132: How to implement a category on the computer and why?€¦ · Mohamed Barakat Universität Siegen EACA 2016 Logroño, Spain June 24, 2016 Joint work with Markus Lange-Hegermann, Sebastian

The structure of a derived category

• The derived category D(A) is still additive, but generallynot ABELian: it is a triangulated category.

• Although A ⊂ D(A), there is in general no way to recoverA from of D(A) equipped with its triangulated structure.

DefinitionLet us call a triangulated category T nice if there exists anABELian category A with enough projectives such that

T ' K(P(A)).

Corollary

If A has enough projectives then D(A) is nice.

CorollaryCategories of modules over rings are nice.

Mohamed Barakat How to implement a category on the computer and why?

Page 133: How to implement a category on the computer and why?€¦ · Mohamed Barakat Universität Siegen EACA 2016 Logroño, Spain June 24, 2016 Joint work with Markus Lange-Hegermann, Sebastian

What did we gain?

What did we gain by passing to the derived category D(A)?

• Identified each object with all its projective resolutions.• ExtkA(M,N) ∼= HomD(A)(P

M• , P

Nk+•).

• ...• D(A) might still be nice even if A does not have enough

projectives, i.e.,D(A) ' D(B)

where B is an ABELian category with enough projectives.

DefinitionTwo ABELian categories A, B are called derived equivalent if

D(A) ' D(B).

Mohamed Barakat How to implement a category on the computer and why?

Page 134: How to implement a category on the computer and why?€¦ · Mohamed Barakat Universität Siegen EACA 2016 Logroño, Spain June 24, 2016 Joint work with Markus Lange-Hegermann, Sebastian

What did we gain?

What did we gain by passing to the derived category D(A)?• Identified each object with all its projective resolutions.

• ExtkA(M,N) ∼= HomD(A)(PM• , P

Nk+•).

• ...• D(A) might still be nice even if A does not have enough

projectives, i.e.,D(A) ' D(B)

where B is an ABELian category with enough projectives.

DefinitionTwo ABELian categories A, B are called derived equivalent if

D(A) ' D(B).

Mohamed Barakat How to implement a category on the computer and why?

Page 135: How to implement a category on the computer and why?€¦ · Mohamed Barakat Universität Siegen EACA 2016 Logroño, Spain June 24, 2016 Joint work with Markus Lange-Hegermann, Sebastian

What did we gain?

What did we gain by passing to the derived category D(A)?• Identified each object with all its projective resolutions.• ExtkA(M,N) ∼= HomD(A)(P

M• , P

Nk+•).

• ...• D(A) might still be nice even if A does not have enough

projectives, i.e.,D(A) ' D(B)

where B is an ABELian category with enough projectives.

DefinitionTwo ABELian categories A, B are called derived equivalent if

D(A) ' D(B).

Mohamed Barakat How to implement a category on the computer and why?

Page 136: How to implement a category on the computer and why?€¦ · Mohamed Barakat Universität Siegen EACA 2016 Logroño, Spain June 24, 2016 Joint work with Markus Lange-Hegermann, Sebastian

What did we gain?

What did we gain by passing to the derived category D(A)?• Identified each object with all its projective resolutions.• ExtkA(M,N) ∼= HomD(A)(P

M• , P

Nk+•).

• ...

• D(A) might still be nice even if A does not have enoughprojectives, i.e.,

D(A) ' D(B)

where B is an ABELian category with enough projectives.

DefinitionTwo ABELian categories A, B are called derived equivalent if

D(A) ' D(B).

Mohamed Barakat How to implement a category on the computer and why?

Page 137: How to implement a category on the computer and why?€¦ · Mohamed Barakat Universität Siegen EACA 2016 Logroño, Spain June 24, 2016 Joint work with Markus Lange-Hegermann, Sebastian

What did we gain?

What did we gain by passing to the derived category D(A)?• Identified each object with all its projective resolutions.• ExtkA(M,N) ∼= HomD(A)(P

M• , P

Nk+•).

• ...• D(A) might still be nice even if A does not have enough

projectives

, i.e.,D(A) ' D(B)

where B is an ABELian category with enough projectives.

DefinitionTwo ABELian categories A, B are called derived equivalent if

D(A) ' D(B).

Mohamed Barakat How to implement a category on the computer and why?

Page 138: How to implement a category on the computer and why?€¦ · Mohamed Barakat Universität Siegen EACA 2016 Logroño, Spain June 24, 2016 Joint work with Markus Lange-Hegermann, Sebastian

What did we gain?

What did we gain by passing to the derived category D(A)?• Identified each object with all its projective resolutions.• ExtkA(M,N) ∼= HomD(A)(P

M• , P

Nk+•).

• ...• D(A) might still be nice even if A does not have enough

projectives, i.e.,D(A) ' D(B)

where B is an ABELian category with enough projectives.

DefinitionTwo ABELian categories A, B are called derived equivalent if

D(A) ' D(B).

Mohamed Barakat How to implement a category on the computer and why?

Page 139: How to implement a category on the computer and why?€¦ · Mohamed Barakat Universität Siegen EACA 2016 Logroño, Spain June 24, 2016 Joint work with Markus Lange-Hegermann, Sebastian

What did we gain?

What did we gain by passing to the derived category D(A)?• Identified each object with all its projective resolutions.• ExtkA(M,N) ∼= HomD(A)(P

M• , P

Nk+•).

• ...• D(A) might still be nice even if A does not have enough

projectives, i.e.,D(A) ' D(B)

where B is an ABELian category with enough projectives.

DefinitionTwo ABELian categories A, B are called derived equivalent if

D(A) ' D(B).

Mohamed Barakat How to implement a category on the computer and why?

Page 140: How to implement a category on the computer and why?€¦ · Mohamed Barakat Universität Siegen EACA 2016 Logroño, Spain June 24, 2016 Joint work with Markus Lange-Hegermann, Sebastian

A wormhole between geometry and algebra

Theorem (GROTHENDIECK)The category of coherent sheaves CohPn does not haveenough projectives.

Still, the category Coh (Pn) is nice:

Theorem (BEILINSON)The category CohPn admits a tilting object, i.e., an objectT ∈ CohPn such that

T ⊗End(T ) − : D(End(T )-mod)→ D(CohPn)

is a triangulated equivalence of categories.

This derived equivalence is a wormhole between the algebraicgeometry of Pn and the representation theory of the finitedimensional algeba End(T ).

Mohamed Barakat How to implement a category on the computer and why?

Page 141: How to implement a category on the computer and why?€¦ · Mohamed Barakat Universität Siegen EACA 2016 Logroño, Spain June 24, 2016 Joint work with Markus Lange-Hegermann, Sebastian

A wormhole between geometry and algebra

Theorem (GROTHENDIECK)The category of coherent sheaves CohPn does not haveenough projectives.

Still, the category Coh (Pn) is nice

:

Theorem (BEILINSON)The category CohPn admits a tilting object, i.e., an objectT ∈ CohPn such that

T ⊗End(T ) − : D(End(T )-mod)→ D(CohPn)

is a triangulated equivalence of categories.

This derived equivalence is a wormhole between the algebraicgeometry of Pn and the representation theory of the finitedimensional algeba End(T ).

Mohamed Barakat How to implement a category on the computer and why?

Page 142: How to implement a category on the computer and why?€¦ · Mohamed Barakat Universität Siegen EACA 2016 Logroño, Spain June 24, 2016 Joint work with Markus Lange-Hegermann, Sebastian

A wormhole between geometry and algebra

Theorem (GROTHENDIECK)The category of coherent sheaves CohPn does not haveenough projectives.

Still, the category Coh (Pn) is nice:

Theorem (BEILINSON)The category CohPn admits a tilting object

, i.e., an objectT ∈ CohPn such that

T ⊗End(T ) − : D(End(T )-mod)→ D(CohPn)

is a triangulated equivalence of categories.

This derived equivalence is a wormhole between the algebraicgeometry of Pn and the representation theory of the finitedimensional algeba End(T ).

Mohamed Barakat How to implement a category on the computer and why?

Page 143: How to implement a category on the computer and why?€¦ · Mohamed Barakat Universität Siegen EACA 2016 Logroño, Spain June 24, 2016 Joint work with Markus Lange-Hegermann, Sebastian

A wormhole between geometry and algebra

Theorem (GROTHENDIECK)The category of coherent sheaves CohPn does not haveenough projectives.

Still, the category Coh (Pn) is nice:

Theorem (BEILINSON)The category CohPn admits a tilting object, i.e., an objectT ∈ CohPn such that

T ⊗End(T ) − : D(End(T )-mod)→ D(CohPn)

is a triangulated equivalence of categories.

This derived equivalence is a wormhole between the algebraicgeometry of Pn and the representation theory of the finitedimensional algeba End(T ).

Mohamed Barakat How to implement a category on the computer and why?

Page 144: How to implement a category on the computer and why?€¦ · Mohamed Barakat Universität Siegen EACA 2016 Logroño, Spain June 24, 2016 Joint work with Markus Lange-Hegermann, Sebastian

A wormhole between geometry and algebra

Theorem (GROTHENDIECK)The category of coherent sheaves CohPn does not haveenough projectives.

Still, the category Coh (Pn) is nice:

Theorem (BEILINSON)The category CohPn admits a tilting object, i.e., an objectT ∈ CohPn such that

T ⊗End(T ) − : D(End(T )-mod)→ D(CohPn)

is a triangulated equivalence of categories.

This derived equivalence is a wormhole between the algebraicgeometry of Pn and the representation theory of the finitedimensional algeba End(T ).

Mohamed Barakat How to implement a category on the computer and why?

Page 145: How to implement a category on the computer and why?€¦ · Mohamed Barakat Universität Siegen EACA 2016 Logroño, Spain June 24, 2016 Joint work with Markus Lange-Hegermann, Sebastian

Mathematical wormholes

Derived equivalences are wormholes in the universe ofmathematics, able to connect seemingly remote fields:

Figure: License: GNU-FDL, made by Panzi

Mohamed Barakat How to implement a category on the computer and why?

Page 146: How to implement a category on the computer and why?€¦ · Mohamed Barakat Universität Siegen EACA 2016 Logroño, Spain June 24, 2016 Joint work with Markus Lange-Hegermann, Sebastian

Why implement categories on the computer?

Why do we need to implement categories on the computer?

• They are a very flexible modeling tool which helps usmaking highly abstract mathematics constructive.

• They relate seemingly remote fields of mathematics.• The latter has an invaluable advantage for algorithmic

mathematics as we can often enough use (derived)equivalences to

1 pass to more efficient data structures and2 translate computational contexts in which runtime

complexities of algorithms are exponential to contexts inwhich the corresponding algorithm have polynomialruntime complexity!

These are the reasons why we are so eager to build softwarehelping us to travel through mathematical wormholes.

Mohamed Barakat How to implement a category on the computer and why?

Page 147: How to implement a category on the computer and why?€¦ · Mohamed Barakat Universität Siegen EACA 2016 Logroño, Spain June 24, 2016 Joint work with Markus Lange-Hegermann, Sebastian

Why implement categories on the computer?

Why do we need to implement categories on the computer?• They are a very flexible modeling tool which helps us

making highly abstract mathematics constructive.

• They relate seemingly remote fields of mathematics.• The latter has an invaluable advantage for algorithmic

mathematics as we can often enough use (derived)equivalences to

1 pass to more efficient data structures and2 translate computational contexts in which runtime

complexities of algorithms are exponential to contexts inwhich the corresponding algorithm have polynomialruntime complexity!

These are the reasons why we are so eager to build softwarehelping us to travel through mathematical wormholes.

Mohamed Barakat How to implement a category on the computer and why?

Page 148: How to implement a category on the computer and why?€¦ · Mohamed Barakat Universität Siegen EACA 2016 Logroño, Spain June 24, 2016 Joint work with Markus Lange-Hegermann, Sebastian

Why implement categories on the computer?

Why do we need to implement categories on the computer?• They are a very flexible modeling tool which helps us

making highly abstract mathematics constructive.• They relate seemingly remote fields of mathematics.

• The latter has an invaluable advantage for algorithmicmathematics as we can often enough use (derived)equivalences to

1 pass to more efficient data structures and2 translate computational contexts in which runtime

complexities of algorithms are exponential to contexts inwhich the corresponding algorithm have polynomialruntime complexity!

These are the reasons why we are so eager to build softwarehelping us to travel through mathematical wormholes.

Mohamed Barakat How to implement a category on the computer and why?

Page 149: How to implement a category on the computer and why?€¦ · Mohamed Barakat Universität Siegen EACA 2016 Logroño, Spain June 24, 2016 Joint work with Markus Lange-Hegermann, Sebastian

Why implement categories on the computer?

Why do we need to implement categories on the computer?• They are a very flexible modeling tool which helps us

making highly abstract mathematics constructive.• They relate seemingly remote fields of mathematics.• The latter has an invaluable advantage for algorithmic

mathematics as we can often enough use (derived)equivalences to

1 pass to more efficient data structures and2 translate computational contexts in which runtime

complexities of algorithms are exponential to contexts inwhich the corresponding algorithm have polynomialruntime complexity!

These are the reasons why we are so eager to build softwarehelping us to travel through mathematical wormholes.

Mohamed Barakat How to implement a category on the computer and why?

Page 150: How to implement a category on the computer and why?€¦ · Mohamed Barakat Universität Siegen EACA 2016 Logroño, Spain June 24, 2016 Joint work with Markus Lange-Hegermann, Sebastian

Why implement categories on the computer?

Why do we need to implement categories on the computer?• They are a very flexible modeling tool which helps us

making highly abstract mathematics constructive.• They relate seemingly remote fields of mathematics.• The latter has an invaluable advantage for algorithmic

mathematics as we can often enough use (derived)equivalences to

1 pass to more efficient data structures

and2 translate computational contexts in which runtime

complexities of algorithms are exponential to contexts inwhich the corresponding algorithm have polynomialruntime complexity!

These are the reasons why we are so eager to build softwarehelping us to travel through mathematical wormholes.

Mohamed Barakat How to implement a category on the computer and why?

Page 151: How to implement a category on the computer and why?€¦ · Mohamed Barakat Universität Siegen EACA 2016 Logroño, Spain June 24, 2016 Joint work with Markus Lange-Hegermann, Sebastian

Why implement categories on the computer?

Why do we need to implement categories on the computer?• They are a very flexible modeling tool which helps us

making highly abstract mathematics constructive.• They relate seemingly remote fields of mathematics.• The latter has an invaluable advantage for algorithmic

mathematics as we can often enough use (derived)equivalences to

1 pass to more efficient data structures and2 translate computational contexts in which runtime

complexities of algorithms are exponential

to contexts inwhich the corresponding algorithm have polynomialruntime complexity!

These are the reasons why we are so eager to build softwarehelping us to travel through mathematical wormholes.

Mohamed Barakat How to implement a category on the computer and why?

Page 152: How to implement a category on the computer and why?€¦ · Mohamed Barakat Universität Siegen EACA 2016 Logroño, Spain June 24, 2016 Joint work with Markus Lange-Hegermann, Sebastian

Why implement categories on the computer?

Why do we need to implement categories on the computer?• They are a very flexible modeling tool which helps us

making highly abstract mathematics constructive.• They relate seemingly remote fields of mathematics.• The latter has an invaluable advantage for algorithmic

mathematics as we can often enough use (derived)equivalences to

1 pass to more efficient data structures and2 translate computational contexts in which runtime

complexities of algorithms are exponential to contexts inwhich the corresponding algorithm have polynomialruntime complexity!

These are the reasons why we are so eager to build softwarehelping us to travel through mathematical wormholes.

Mohamed Barakat How to implement a category on the computer and why?

Page 153: How to implement a category on the computer and why?€¦ · Mohamed Barakat Universität Siegen EACA 2016 Logroño, Spain June 24, 2016 Joint work with Markus Lange-Hegermann, Sebastian

Why implement categories on the computer?

Why do we need to implement categories on the computer?• They are a very flexible modeling tool which helps us

making highly abstract mathematics constructive.• They relate seemingly remote fields of mathematics.• The latter has an invaluable advantage for algorithmic

mathematics as we can often enough use (derived)equivalences to

1 pass to more efficient data structures and2 translate computational contexts in which runtime

complexities of algorithms are exponential to contexts inwhich the corresponding algorithm have polynomialruntime complexity!

These are the reasons why we are so eager to build softwarehelping us to travel through mathematical wormholes.

Mohamed Barakat How to implement a category on the computer and why?

Page 154: How to implement a category on the computer and why?€¦ · Mohamed Barakat Universität Siegen EACA 2016 Logroño, Spain June 24, 2016 Joint work with Markus Lange-Hegermann, Sebastian

Thank you

Mohamed Barakat How to implement a category on the computer and why?

Page 155: How to implement a category on the computer and why?€¦ · Mohamed Barakat Universität Siegen EACA 2016 Logroño, Spain June 24, 2016 Joint work with Markus Lange-Hegermann, Sebastian

Mohamed Barakat and Markus Lange-Hegermann, Anaxiomatic setup for algorithmic homological algebra and analternative approach to localization, J. Algebra Appl. 10(2011), no. 2, 269–293, (arXiv:1003.1943). MR2795737 (2012f:18022)

, Gabriel morphisms and the computability of Serrequotients with applications to coherent sheaves,(arXiv:1409.2028), 2014.

Mohamed Barakat How to implement a category on the computer and why?


Recommended