<p>There have been recent developments in <a href="http://ncatlab.org/nlab/show/Martin-L%C3%B6f+dependent+type+theory">dependent type theory</a> which relate <a href="http://ncatlab.org/nlab/show/type+theory">type systems</a> to <a href="http://ncatlab.org/nlab/show/homotopy+type">homotopy types</a>.</p>

<p>This is now a relatively small field, but there is a lot of exciting work being done right now, and potentially a lot of low hanging fruit, most notably in <a href="http://homotopytypetheory.org/2013/12/09/new-writeup-of-pinsn/">porting results from algebraic topology</a> and <a href="http://homotopytypetheory.org/2014/04/15/eilenberg-maclane-spaces-in-hott/">homological algebra</a> and formalizing the notion of <a href="http://ncatlab.org/nlab/show/higher+inductive+type">higher inductive types</a>.</p>

CC BY-SA 4.0
2020-04-21T03:32:09.657Z
So what I think you are trying to say is, HoTT.  (And on a more practical level, I would assume PL and FM as fields that can potentially utilize HoTT.)
Max von Hippel
CC BY-SA 3.0
2014-09-23T14:55:43.343Z
2014-09-23T14:55:43.343Z
cody
<p>Algebraic geometry is used heavily in algebraic complexity theory and in particular in geometric complexity theory. Representation theory is also crucial for the latter, but it's even more useful when combined with algebraic geometry and homological algebra. </p>

CC BY-SA 3.0
2014-09-23T17:49:40.440Z
2014-09-23T17:49:40.440Z
Joshua Grochow
<p>Field theory and algrebraic geometry would be useful in topics related to error correcting codes, both in the classical setting as well as in studying locally decodable codes and list decoding. I believe this goes back to work on the Reed-Solomon and Reed-Muller codes, which was then generalized to algebraic geometric codes. See for example, this <a href="http://www.win.tue.nl/~ruudp/paper/31.pdf">book chapter</a> on the classical coding theory view of algebraic geometric codes, this <a href="http://research.microsoft.com/en-us/um/people/yekhanin/papers/survey_iwcc.pdf">brief survey</a> on locally decodable codes, and <a href="http://people.csail.mit.edu/madhu/papers/1998/venkat-journ.pdf">this famous paper</a> about list-decoding Reed-Solomon and, more generally, algebraic-geometry codes.</p>

CC BY-SA 3.0
2014-09-24T01:19:10.077Z
2014-09-24T14:11:11.143Z
2014-09-24T14:11:11.143Z
Sasho Nikolov
<p>Your knowledge of field theory would be useful in cryptography, while category theory is heavily used in the research on programming languages and typing systems, both of which are closely related to the foundations of mathematics.</p>

CC BY-SA 3.0
2014-09-23T14:19:41.453Z
2014-09-23T14:19:41.453Z
Martin Berger
<p>There are some problems in computational learning theory, machine learning and computer vision that can be solved using commutative algebra and algebraic geometry. For instance, convergence of the Belief Propagation algorithm, a message passing algorithm for Bayesian inference, can be formulated in terms of <a href="http://www.researchgate.net/publication/264057820_Master_Thesis_Tarkus_Belief_Propagation_On_Message_Passing_Algorithms_and_Computational_Commutative_Algebra"> characterizing the affine variety of system of polynomial equations</a>.</p>

CC BY-SA 3.0
2014-09-24T13:54:57.070Z
2014-09-24T13:54:57.070Z
Carlos Eduardo Cancino Chacón
<p>Have you thought about looking at computer algebra? Axiom is a computer algebra system where the type system is modelled after Category Theory (or Universal Algebra, depending on your view). There are two further derivatives of Axiom <a href="http://fricas.sourceforge.net/" rel="noreferrer" title="FriCAS">FriCAS</a> and <a href="http://www.open-axiom.org/" rel="noreferrer" title="Open Axiom">OpenAxiom</a>.</p>

<p>If you're interested in Category Theory, then the type system may be one thing to look at.</p>

<p>In Axiom, every "item" (e.g. "1", "5*x**2 + 1") is an element of a Domain. A "Domain" is an Axiom object declared to be a member of a particular Category (e.g. Integer, Polynomial(Integer). An Axiom Category is an Axiom object declared to be a member of the distinguished symbol "Category" (e.g. Ring, Polynomial(R,E,V)).</p>

<p>There is an inheritance lattice for the multiple-inheritance amongst Categories. e.g. The Category Monad inherits from SetCategory, Monoid from Monad, Group from Monoid, etc., etc.</p>

<p>There is also a higher-order polymorphism, a bit like Generics in Java.</p>

<p>Several actions within Axiom can be viewed as Functors, but that would be rather a lot to go into here!</p>

<p>If you just wish to use Axiom without worrying about Category Theory, as a typical end user, then a symbolic computation system is exactly the right piece of software for looking into individual algebras. </p>

CC BY-SA 3.0
2014-09-24T16:25:09.983Z
2014-09-24T16:25:09.983Z
Nic Doye
<p><a href="http://www.cis.upenn.edu/%7Ebyorgey/hosted/thesis.pdf" rel="nofollow">Brent Yorgey's thesis</a>, while still just a draft, does an amazing job at explaining why your interests are relevant to TCS. </p>

<p>Here is <a href="https://www.youtube.com/watch?v=sr_cpQ58R0E" rel="nofollow">Joyal's talk</a> this past April on related material.</p>

CC BY-SA 3.0
2014-09-23T19:16:27.747Z
Not sure what the customs are here, but on [SO] this answer would probably get deleted as link-only answer very soon. Will you please provide a summary of how the link answers the question, not only that it does? Links tend to break over time and without the link, your answer would be almost useless.
Palec
CC BY-SA 3.0
2014-09-24T20:34:03.773Z
Don't worry. I wrote myself a reminder to update it with his final draft.
Chad Brewbaker
CC BY-SA 3.0
2014-09-24T20:57:08.013Z
@ChadBrewbaker But, still, your answer is essentially just two links. Even if you promise to keep those links current (which is a noble goal and much appreciated, but surely doomed to failure), it's a poor answer.
David Richerby
CC BY-SA 3.0
2014-09-23T15:18:02.347Z
2014-09-24T20:46:22.323Z
2014-09-24T20:46:22.323Z
Chad Brewbaker
<p>Here are a lot of interesting answer, but nobody mentioned that every language $L \subseteq X^{\ast}$ is naturally associated with a monoid structure via the Nerode-Myhill congruence relation.</p>

<p>The following people have used this algebraic view in the case of regular languages: Samuel Eilenberg on Automata Theory, <a href="http://www-igm.univ-mlv.fr/~berstel/" rel="noreferrer">Jean Berstel</a>, <a href="https://www.irif.fr/~jep/" rel="noreferrer">Jean-Eric pin</a>, Marcel Schützenberg and <a href="https://en.wikipedia.org/wiki/Krohn%E2%80%93Rhodes_theory" rel="noreferrer">Krohn-Rhodes Theory</a>.</p>

<p>Also there is nontrivial algebra involved in the work around the <a href="https://en.wikipedia.org/wiki/Synchronizing_word" rel="noreferrer">Cerny conjecture</a>, most of it is quite combinatorial. But more recently I have seen more done with linear algebra, ring theory and representation theory, look up to work <a href="http://www.sci.ccny.cuny.edu/~benjamin/" rel="noreferrer">Benjamin Steinberg</a> and <a href="http://cmup.fc.up.pt/cmup/jalmeida/" rel="noreferrer">Jorge Almeida</a>.</p>

<p>By the way, you can come along quite good in these areas with Semigroup-, Monoid- and Group theory, but Category theory and Homotopy Theory are not used that much in this area. But maybe interesting to note that S. Eilenberg was one of the founding fathers of Category Theory, despite this was before he was involved into Automata Theory.</p>

CC BY-SA 3.0
2018-04-07T14:11:48.367Z
It could be also interesting to take a look at tree languages, rather than word languages. The long standing open problem is to characterize the expressive power of First-Order Logic on trees in terms of some algebraic object associated with it (mentioned in "Some Open Problems in Automata and Logic" in ACM SIGLOG News). For further reading I will recommend papers by Mikołaj Bojańczyk and Howard Straubing.
Bartosz Bednarczyk
CC BY-SA 3.0
2018-04-05T13:38:07.457Z
2018-04-05T13:38:07.457Z
StefanH
<p>I don't know if you have considered industry, but the company Ayasdi is doing amazing work applying a lot of homotopy and other applied topological methods within data science. They blend a lot of theory with applications. Basically, to see what they are up to, look at the Stanford Comptop website. (The majority of people came from there).</p>

CC BY-SA 3.0
2014-10-22T15:23:56.213Z
2014-10-22T15:23:56.213Z
mathDR
<p>In addition to what everybody else said (I guess the biggest application of these branches is indeed in type systems):</p>

<ul>
<li>Lattice theory and partial orders in general are applied quite a bit for analysis of behavior of distributed systems, and for dataflow analysis in compilers.</li>
<li>I also saw Galois connections applied to machine learning (in particular text classification: the Galois connection between subsets of left and right vertices of a bipartite document/word graph allowed to dramatically speed up an algorithm).</li>
</ul>

CC BY-SA 3.0
2014-10-23T17:41:16.650Z
2014-10-23T17:41:16.650Z
jkff
<p>The connections between Algebra and Theoretical Computer Science are very strong. Nic Doye already mentioned Computer Algebra, but he didn't explicitly include the theory of rewriting systems, which is an essential part of Computer Algebra, with applications in automatic equation solving and automatic reasoning. String rewriting systems is an important sub-area, with applications in computational group theory. Check the book "String Rewriting Systems", by Ronald Book and Friedrich Otto, for instance. </p>

<p>There is also the connection between graph theory and algebra, which includes for example the well-developed spectral theory of graphs and complex networks, and also the the theory of graph symmetries (Cayley graps, vertex-transitive graphs, and other types of symmetric graphs, which are heavily used as models for interconnection networks in parallel computers). Check the book "Algebraic Graph Theory", by Chris Godsil and Gordon Royle, for an overview of the different topics. </p>

CC BY-SA 3.0
2018-04-05T10:15:34.437Z
2018-04-05T10:15:34.437Z
Manolito Pérez
<p>Check out the situation in computer vision. There are many topics, in particular, of algorithmic type, which the first three areas you list are very useful for.</p>

CC BY-SA 3.0
2014-10-23T19:31:05.550Z
2014-10-23T19:31:05.550Z
Martin Peters
<p>I have a very strong base in algebra, namely</p>

<ul>
<li>commutative algebra,</li>
<li>homological algebra,</li>
<li>field theory,</li>
<li>category theory,</li>
</ul>

<p>and I am currently learning algebraic geometry.</p>

<p>I am a math major with an inclination to switch to theoretical computer science. Keeping the above mentioned fields in mind, which field would be the most appropriate field in theoretical computer science to which to switch? That is, in which field can the theory and mathematical maturity obtained by pursuing the above fields be used to one's advantage?</p>

CC BY-SA 3.0
2014-09-26T17:01:24.903Z
Is the study of fields considered part of algebra? There are some on math.se who think not.
alancalvitti
CC BY-SA 3.0
2014-09-28T08:13:35.937Z
It is offered in many institutes here as second level algebra course and many famous books on algebra like dummit and foote's abstract algebra contains significant material on Filed theory ...
spaceman_spiff
<soft-question><algebra><advice-request><ct.category-theory>
Algebra oriented branch of theoretical computer science
spaceman_spiff
# Algebra oriented branch of theoretical computer science

(Asked by: username_0 on 2014-09-23)

I have a very strong base in algebra, namely

* commutative algebra,
* homological algebra,
* field theory,
* category theory,

and I am currently learning algebraic geometry.

I am a math major with an inclination to switch to theoretical computer science. Keeping the above mentioned fields in mind, which field would be the most appropriate field in theoretical computer science to which to switch? That is, in which field can the theory and mathematical maturity obtained by pursuing the above fields be used to one's advantage?

**Tags:** soft-question, algebra, advice-request, ct.category-theory
> **Comments:**
> **username_1**: Is the study of fields considered part of algebra? There are some on math.se who think not.  
> **username_0**: It is offered in many institutes here as second level algebra course and many famous books on algebra like dummit and foote's abstract algebra contains significant material on Filed theory ...  

---

## 12 answers

### Answer by username_2 on 2014-09-23. Score: 27

There have been recent developments in [dependent type theory](http://ncatlab.org/nlab/show/Martin-L%C3%B6f+dependent+type+theory) which relate [type systems](http://ncatlab.org/nlab/show/type+theory) to [homotopy types](http://ncatlab.org/nlab/show/homotopy+type).

This is now a relatively small field, but there is a lot of exciting work being done right now, and potentially a lot of low hanging fruit, most notably in [porting results from algebraic topology](http://homotopytypetheory.org/2013/12/09/new-writeup-of-pinsn/) and [homological algebra](http://homotopytypetheory.org/2014/04/15/eilenberg-maclane-spaces-in-hott/) and formalizing the notion of [higher inductive types](http://ncatlab.org/nlab/show/higher+inductive+type).

> **Comments:**
> **username_3**: So what I think you are trying to say is, HoTT.  (And on a more practical level, I would assume PL and FM as fields that can potentially utilize HoTT.)  

---

### Answer by username_4 on 2014-09-23. Score: 25

Algebraic geometry is used heavily in algebraic complexity theory and in particular in geometric complexity theory. Representation theory is also crucial for the latter, but it's even more useful when combined with algebraic geometry and homological algebra.


---

### Answer by username_6 on 2014-09-23. Score: 15

Your knowledge of field theory would be useful in cryptography, while category theory is heavily used in the research on programming languages and typing systems, both of which are closely related to the foundations of mathematics.


---

### Answer by username_5 on 2014-09-24. Score: 11

Field theory and algrebraic geometry would be useful in topics related to error correcting codes, both in the classical setting as well as in studying locally decodable codes and list decoding. I believe this goes back to work on the Reed-Solomon and Reed-Muller codes, which was then generalized to algebraic geometric codes. See for example, this [book chapter](http://www.win.tue.nl/~ruudp/paper/31.pdf) on the classical coding theory view of algebraic geometric codes, this [brief survey](http://research.microsoft.com/en-us/um/people/yekhanin/papers/survey_iwcc.pdf) on locally decodable codes, and [this famous paper](http://people.csail.mit.edu/madhu/papers/1998/venkat-journ.pdf) about list-decoding Reed-Solomon and, more generally, algebraic-geometry codes.


---

### Answer by username_7 on 2014-09-24. Score: 7

There are some problems in computational learning theory, machine learning and computer vision that can be solved using commutative algebra and algebraic geometry. For instance, convergence of the Belief Propagation algorithm, a message passing algorithm for Bayesian inference, can be formulated in terms of  [characterizing the affine variety of system of polynomial equations](http://www.researchgate.net/publication/264057820_Master_Thesis_Tarkus_Belief_Propagation_On_Message_Passing_Algorithms_and_Computational_Commutative_Algebra).


---

### Answer by username_8 on 2014-09-24. Score: 6

Have you thought about looking at computer algebra? Axiom is a computer algebra system where the type system is modelled after Category Theory (or Universal Algebra, depending on your view). There are two further derivatives of Axiom [FriCAS](http://fricas.sourceforge.net/ "FriCAS") and [OpenAxiom](http://www.open-axiom.org/ "Open Axiom").

If you're interested in Category Theory, then the type system may be one thing to look at.

In Axiom, every "item" (e.g. "1", "5\*x\*\*2 + 1") is an element of a Domain. A "Domain" is an Axiom object declared to be a member of a particular Category (e.g. Integer, Polynomial(Integer). An Axiom Category is an Axiom object declared to be a member of the distinguished symbol "Category" (e.g. Ring, Polynomial(R,E,V)).

There is an inheritance lattice for the multiple-inheritance amongst Categories. e.g. The Category Monad inherits from SetCategory, Monoid from Monad, Group from Monoid, etc., etc.

There is also a higher-order polymorphism, a bit like Generics in Java.

Several actions within Axiom can be viewed as Functors, but that would be rather a lot to go into here!

If you just wish to use Axiom without worrying about Category Theory, as a typical end user, then a symbolic computation system is exactly the right piece of software for looking into individual algebras.


---

### Answer by username_12 on 2018-04-05. Score: 5

Here are a lot of interesting answer, but nobody mentioned that every language $L \subseteq X^{\ast}$ is naturally associated with a monoid structure via the Nerode-Myhill congruence relation.

The following people have used this algebraic view in the case of regular languages: Samuel Eilenberg on Automata Theory, [Jean Berstel](http://www-igm.univ-mlv.fr/~berstel/), [Jean-Eric pin](https://www.irif.fr/~jep/), Marcel Schützenberg and [Krohn-Rhodes Theory](https://en.wikipedia.org/wiki/Krohn%E2%80%93Rhodes_theory).

Also there is nontrivial algebra involved in the work around the [Cerny conjecture](https://en.wikipedia.org/wiki/Synchronizing_word), most of it is quite combinatorial. But more recently I have seen more done with linear algebra, ring theory and representation theory, look up to work [Benjamin Steinberg](http://www.sci.ccny.cuny.edu/~benjamin/) and [Jorge Almeida](http://cmup.fc.up.pt/cmup/jalmeida/).

By the way, you can come along quite good in these areas with Semigroup-, Monoid- and Group theory, but Category theory and Homotopy Theory are not used that much in this area. But maybe interesting to note that S. Eilenberg was one of the founding fathers of Category Theory, despite this was before he was involved into Automata Theory.

> **Comments:**
> **username_13**: It could be also interesting to take a look at tree languages, rather than word languages. The long standing open problem is to characterize the expressive power of First-Order Logic on trees in terms of some algebraic object associated with it (mentioned in "Some Open Problems in Automata and Logic" in ACM SIGLOG News). For further reading I will recommend papers by Mikołaj Bojańczyk and Howard Straubing.  

---

### Answer by username_9 on 2014-09-23. Score: 4

[Brent Yorgey's thesis](http://www.cis.upenn.edu/%7Ebyorgey/hosted/thesis.pdf), while still just a draft, does an amazing job at explaining why your interests are relevant to TCS.

Here is [Joyal's talk](https://www.youtube.com/watch?v=sr_cpQ58R0E) this past April on related material.

> **Comments:**
> **username_10**: Not sure what the customs are here, but on [SO] this answer would probably get deleted as link-only answer very soon. Will you please provide a summary of how the link answers the question, not only that it does? Links tend to break over time and without the link, your answer would be almost useless.  
> **username_9**: Don't worry. I wrote myself a reminder to update it with his final draft.  
> **username_11**: @ChadBrewbaker But, still, your answer is essentially just two links. Even if you promise to keep those links current (which is a noble goal and much appreciated, but surely doomed to failure), it's a poor answer.  

---

### Answer by username_14 on 2014-10-22. Score: 3

I don't know if you have considered industry, but the company Ayasdi is doing amazing work applying a lot of homotopy and other applied topological methods within data science. They blend a lot of theory with applications. Basically, to see what they are up to, look at the Stanford Comptop website. (The majority of people came from there).


---

### Answer by username_15 on 2014-10-23. Score: 2

In addition to what everybody else said (I guess the biggest application of these branches is indeed in type systems):

* Lattice theory and partial orders in general are applied quite a bit for analysis of behavior of distributed systems, and for dataflow analysis in compilers.
* I also saw Galois connections applied to machine learning (in particular text classification: the Galois connection between subsets of left and right vertices of a bipartite document/word graph allowed to dramatically speed up an algorithm).


---

### Answer by username_16 on 2018-04-05. Score: 1

The connections between Algebra and Theoretical Computer Science are very strong. Nic Doye already mentioned Computer Algebra, but he didn't explicitly include the theory of rewriting systems, which is an essential part of Computer Algebra, with applications in automatic equation solving and automatic reasoning. String rewriting systems is an important sub-area, with applications in computational group theory. Check the book "String Rewriting Systems", by Ronald Book and Friedrich Otto, for instance.

There is also the connection between graph theory and algebra, which includes for example the well-developed spectral theory of graphs and complex networks, and also the the theory of graph symmetries (Cayley graps, vertex-transitive graphs, and other types of symmetric graphs, which are heavily used as models for interconnection networks in parallel computers). Check the book "Algebraic Graph Theory", by Chris Godsil and Gordon Royle, for an overview of the different topics.


---

### Answer by username_17 on 2014-10-23. Score: 0

Check out the situation in computer vision. There are many topics, in particular, of algorithmic type, which the first three areas you list are very useful for.


---

