
Programming Interactive Worlds with Linear Logic - ingve
http://www.cs.cmu.edu/~cmartens/thesis/
======
purplerabbit
I've spent probably 500-1000 hours thinking about linear logic and narrative
structures and this blows everything I've put together out of the water... I'm
very impressed, and am looking forward to reading it through.

If the author is reading this, please consider submitting your work to some
literary theory journals. Literary theory has decayed into something tired and
vague, and this sort of heroic formalism could really make a splash! I mean,
this is _actual_ literary theory!

------
mafribe
The use of logic as a representation language for representing interactive
games was pioneered by Richard Evans (AI lead on The Sims 3) over the years,
and used in various of his games. The latest installment is [1], and the logic
used is a peculiar modal logic whose key innovation is a lack of negation.
Crazy!

I wonder what the relationship is between linear logic and the logic of [2].

[1] [http://versu.com](http://versu.com)

[2] [http://arxiv.org/abs/1411.7158](http://arxiv.org/abs/1411.7158)

~~~
dvanduzer
Where'd you hear that implementation detail about Versu? Due to all the legal
wrangling around it, it's hard to find certain specifics...

edit: the magic of a little bird:
[http://ieeexplore.ieee.org/xpl/articleDetails.jsp?arnumber=6...](http://ieeexplore.ieee.org/xpl/articleDetails.jsp?arnumber=6648395)

------
jasonwatkinspdx
For those unfamiliar I'll just share an short pithy example of simple vs
linear logic I first heard from my brother:

classic:

    
    
      if $5 then pizza
      if $5 then beer
      $5!
      therefor: pizza AND beer
    

linear:

    
    
      if $5 then pizza
      if $5 then beer
      $5!
      therefor: pizza OR beer
    

There are other aspects, but this key difference lets linear logic model
resource consumption.

~~~
mc808
Interesting, how about:

    
    
        if $5 then pizza
        if $2 then beer
        $6!
    

The priority might be to acquire the most valuable item (pizza), or to spend
the most money (3 beers), or to have the most money left over with nothing
left to buy (pizza again), etc. Is there a way to describe those kinds of
goals/constraints within the same system?

~~~
rntz
Linear logic itself doesn't express goals or constraints, just what _can_ be
accomplished with a given set of resources.

In the example you gave:

    
    
        if $5 then pizza
        if $2 then beer
        $6!
        therefore, (pizza and $1) OR (beer and $4) OR (beer and beer and $2) OR (beer and beer and beer) OR $6

------
pygy_
Here's the Ceptre repo. The interpreter is written in Standard ML.

[http://www.github.com/chrisamaphone/interactive-
lp](http://www.github.com/chrisamaphone/interactive-lp)

------
primaryobjects
This looks a lot like STRIPS planning
[http://www.primaryobjects.com/2015/11/06/artificial-
intellig...](http://www.primaryobjects.com/2015/11/06/artificial-intelligence-
planning-with-strips-a-gentle-introduction/)

The Ceptre tutorial even has the classic example of moving blocks on a table.
It's a different language than STRIPS (using PDDL), but seems a similar idea.

------
j2kun
Apparently this is where you can play the games created by their generative
algorithm: [http://play.typesafety.net/](http://play.typesafety.net/)

------
bitL
Hooray, finally somebody uses relevant logic without contraction and without
the distribution of conjunction over disjunction!

------
platz
"Ceptre: A Language for Modeling Generative Interactive Systems" by Chris
Martens Strange Loop

[https://www.youtube.com/watch?v=bFeJZRdhKcI](https://www.youtube.com/watch?v=bFeJZRdhKcI)

------
ChicagoDave
Brain broken. (applause)

