In a nutshell...

Mutually recursive Thanos

Hello! In short, I enjoy mathematics, music, computer science and some other stuff, which I apparently enjoy so much that I forgot what they are right now. Currently I work as a professor at IMD institute of Universidade Federal do Rio Grande do Norte, Brazil.

I obtained my PhD in theoretical computer science from ENS de Lyon (team Plume of the LIP lab) under the supervision of Olivier Laurent.

I obtained my MSc in mathematical logic from MPLA, and my BSc in pure mathematics from the University of Athens.

Further, boring information can be found in my CV (in English or em Português).

Under re-reconstruction

I'm re-reconstructing my website at the moment. It should be ready precisely in three at some point in the future.


Long-haired Thanos

I have been working mostly on theory of programming languages and denotational semantics; specifically on disjunctive logic programs and their game semantics. So far, I have extended the games of simple logic programs to cover logic programs with disjunction, and I developed a method to transform any non-disjunctive semantics into a corresponding disjunctive one. Other research interests include {set, proof, type} theory, …

PhD thesis

On the semantics of disjunctive logic programs, defended on July 2nd, 2014.
download: thesis | defense.


Works in progress

  • Th. Tsouanas, An abstract semantic framework for logic programs: theory and applications
  • Th. Tsouanas, Disjunctions as syntactic sugar of logic programs

Some talks

On the semantics of disjunctive logic programs
slides: [ Part I | Part II ]

  • UFRN, Natal, Brazil (Feb 2015);
  • Demokritos, Athens, Greece (Jan 2015).

A game semantics for disjunctive logic programs

  • UFMG, Belo Horizonte, Brazil (Mar 2014);
  • LIX, École Polytechnique, Paris, France (Jan 2013);
  • University of Bath, UK (Sep 2012);
  • University of Oxford, UK (May 2012).

Web applications

(most links temporarily offline)


A complete web application that covers most needs for a university department's (postgraduate) program. For the time being the only site running schole is MPLA. It is admittedly the most frequently used web app I have written. Once it matures a bit more, I will release it as an open source project.

greekizer screenshot

(temporarily offline)

An early version of this application used to run on It's an online converter from the “TeX/babel greek” and from the standard “greek keyboard” layouts, to actual, unicode greek. It supports ancient greek as well as spell-checking with suggestions.

You can use it here: (temporarily offline while I'm (im)migrating my server).


File upload, as simple and self-contained as it can get. Quite a lot of people have requested this file over time, so here it is it will soon be back online. It uses, so make sure you have this lib installed first.

Soon you will be able to see it in action (once I'm done (im)migrating my server). Make sure that you gimme something neat while testing it.

BeeBB web forum

Beepy (BeeBB's mascot)

BeeBB: this is a featureful web forum application, written using pure Python CGIs, at a time when no fancy web frameworks were available. I keep its website online (along with all its dead links) and, of course, its source code, mostly for historic, personal and educational reasons. If you need to run a forum application in python nowadays, you'd better create one using any of the web frameworks to handle all the gory "low-level" details. I'm just too proud for this application to put it offline. Everything was built from scratch: a custom and secure session implementation, sub-sub-...-forums of depth ω, an easy administration interface, smart password resetting, PMs associated with emails, and many more features. I will shut up now.


Thanos photo


mail: without a permanent address for the time being, so contact me elsehow before sending me gifts via snail mail

phone: (+55) (84) 9 8106-9789

IRC: tsou@freenode



This semester I am teaching the courses Mathematical Foundations for Computation II (Portuguese) and Proof theory, type theory, and functional programming (English).

More information about the courses I am teaching or have taught in the past can be found on my teaching page.

I have started writing a book based on my lecture notes (in Portuguese).


My old home-studio

I like composing and some very few times performing music as well. Some pieces I have recorded lately are: Words, Relic, and Lunaby. Here's Relic:

And here are three of my favorite, much older compositions, I think:

You can find more information about my music on


I love programming! In case you care about that (though really, you shouldn't), I mostly use Haskell, Python Ruby, and the Unix shell. You can find a few not-so-useful programs I've written below. If you are looking for some other software in which I'm listed as the author, feel free to drop me an email.


TAPL book cover

Project site. Implementation in Haskell of various λ-calculus based systems found in Benjamin Pierce's book, Types and Programming Languages.

If you are interested in this, you may also want to check tapl-haskell, a similar, independent project.

(If you have no idea what this book is all about, you probably couldn't care less about this program. Also, I just noticed that due to some changes in recent versions of GHC, the whole thing won't compile anymore. Until I tweak those things that need tweaking, let's pretend it's some kind of vintage attitude.)

lookbusy screenshot

Look busy doing nothing. Pretty much what it says... So, your eco-friendly (room)mate/mom/dad/whatever keeps powering off your computer, after glancing at the screen and making the wise decision that "it just sits there wasting energy, it's not doing anything". Look no further, this program is for you: lookbusy.


GitHub page. This python program implements literate programming using LaTeX. Inspired by Haskell's LaTeX support for literate programming, it can be used for any programming language(s). The sample input TeX file provided should be enough documentation.


OpenBSD ∩ λProlog

Just in case the intersection of the set of OpenBSD users with the set of λProlog users is not a singleton (which is a conjecture yet to be proved, for the time being), you might find my notes on installing Teyjus on OpenBSD useful. My teyjus OpenBSD port is available there.


Abstruse Goose, xkcd, Merton, CakeBomb (damn, they disbanded..)

Not so funny

On Saturday, May 11th, 2013, in Brazil, I was shot in the back!


>>> Last update: Sat Jun 17 01:43:22 -03 2017 is hosted on