Intuitionistic Logic Linear Logic Concurrent Monadic Linear Logic
Linear Logic Programming
Carsten Sch¨ urmann ITU, currently CMU May 4, 2011
Carsten Sch¨ urmann ITU, currently CMU Linear Logic Programming
Linear Logic Programming Carsten Sch urmann ITU, currently CMU - - PowerPoint PPT Presentation
Intuitionistic Logic Linear Logic Concurrent Monadic Linear Logic Linear Logic Programming Carsten Sch urmann ITU, currently CMU May 4, 2011 Carsten Sch urmann ITU, currently CMU Linear Logic Programming Intuitionistic Logic Linear
Intuitionistic Logic Linear Logic Concurrent Monadic Linear Logic
Carsten Sch¨ urmann ITU, currently CMU Linear Logic Programming
Intuitionistic Logic Linear Logic Concurrent Monadic Linear Logic
Carsten Sch¨ urmann ITU, currently CMU Linear Logic Programming
Intuitionistic Logic Linear Logic Concurrent Monadic Linear Logic
Carsten Sch¨ urmann ITU, currently CMU Linear Logic Programming
Intuitionistic Logic Linear Logic Concurrent Monadic Linear Logic
Carsten Sch¨ urmann ITU, currently CMU Linear Logic Programming
Intuitionistic Logic Linear Logic Concurrent Monadic Linear Logic
Carsten Sch¨ urmann ITU, currently CMU Linear Logic Programming
Intuitionistic Logic Linear Logic Concurrent Monadic Linear Logic
Carsten Sch¨ urmann ITU, currently CMU Linear Logic Programming
Intuitionistic Logic Linear Logic Concurrent Monadic Linear Logic
Carsten Sch¨ urmann ITU, currently CMU Linear Logic Programming
Intuitionistic Logic Linear Logic Concurrent Monadic Linear Logic
Carsten Sch¨ urmann ITU, currently CMU Linear Logic Programming
Intuitionistic Logic Linear Logic Concurrent Monadic Linear Logic
Carsten Sch¨ urmann ITU, currently CMU Linear Logic Programming
Intuitionistic Logic Linear Logic Concurrent Monadic Linear Logic
Carsten Sch¨ urmann ITU, currently CMU Linear Logic Programming
Intuitionistic Logic Linear Logic Concurrent Monadic Linear Logic
Carsten Sch¨ urmann ITU, currently CMU Linear Logic Programming
Intuitionistic Logic Linear Logic Concurrent Monadic Linear Logic
/** * Distribute the surplus votes. * * @param candidateWithSurplus the candidate whose surplus is to be distributed. * @design The highest surplus must be distributed if the total surplus could * save the deposit of a candidate or change the relative position of * the two lowest continuing candidates, or would be enough to elect the * highest continuing candidate. * @see requirements 14-18, section 5, item 2, page 18 * @see requirement 8, section 4, item 2, page 15 */ /*@ requires getSurplus(candidateWithSurplus) > 0; @ requires state == COUNTING; @ requires numberOfContinuingCandidates > remainingSeats; @ requires (numberOfContinuingCandidates > remainingSeats + 1) || @ (sumOfSurpluses + lowestContinuingVote > nextHighestVote) || @ (numberOfEqualLowestContinuing > 1); @ requires remainingSeats > 0; @ requires (remainingSeats > 1) || @ ((highestContinuingVote < @ sumOfOtherContinuingVotes + sumOfSurpluses) && @ (numberOfEqualHighestContinuing == 1)); @ requires getSurplus (candidateWithSurplus) == highestSurplus; @ requires (sumOfSurpluses + highestContinuingVote >= quota) || @ (sumOfSurpluses + lowestContinuingVote > nextHighestVote) || @ (numberOfEqualLowestContinuing > 1) || @ ((sumOfSurpluses + lowestContinuingVote >= depositSavingThreshold) && @ (lowestContinuingVote < depositSavingThreshold)); @ ensures getSurplus (candidateWithSurplus) == 0; @*/ /** @see requirement 9, section 4, item 3, page 16 */ /*@ ensures countNumber == \old (countNumber) + 1; @ ensures (state == COUNTING) || (state == FINISHED); @*/ /** @see requirement 2, section 3, item 3, page 12 */ /*@ @ ensures totalVotes == nonTransferableVotes + @ (\sum int i; 0 <= i && i < totalCandidates; @ candidateList[i].getTotalVote());
Carsten Sch¨ urmann ITU, currently CMU Linear Logic Programming
Intuitionistic Logic Linear Logic Concurrent Monadic Linear Logic
Carsten Sch¨ urmann ITU, currently CMU Linear Logic Programming
Intuitionistic Logic Linear Logic Concurrent Monadic Linear Logic
◮ Graph-structured ◮ Algorithmic ◮ Consume and generate resources
Carsten Sch¨ urmann ITU, currently CMU Linear Logic Programming
Intuitionistic Logic Linear Logic Concurrent Monadic Linear Logic
◮ Graph-structured ◮ Algorithmic ◮ Consume and generate resources
◮ Object-oriented programming langauge, such as Java, C# ◮ Imperative programming language, such as C, C++ ◮ Functional programming language, such as SML, Haskell,
Carsten Sch¨ urmann ITU, currently CMU Linear Logic Programming
Intuitionistic Logic Linear Logic Concurrent Monadic Linear Logic
◮ Graph-structured ◮ Algorithmic ◮ Consume and generate resources
◮ Object-oriented programming langauge, such as Java, C# ◮ Imperative programming language, such as C, C++ ◮ Functional programming language, such as SML, Haskell,
Carsten Sch¨ urmann ITU, currently CMU Linear Logic Programming
Intuitionistic Logic Linear Logic Concurrent Monadic Linear Logic
◮ Intuitionistic Linear/Affine Logic ◮ Backward Chaining Proof Search
◮ Programming with Logic ◮ Recursion principles for programming, e.g. SML, Prolog ◮ Inductive datatypes
◮ Forward Chaining Proof Search
◮ True concurrency ◮ Actor like programming, i.e. Erlang, CHR ◮ “new kind of datatype”, for example, for graphs
◮ Be able to program in Celf, e.g. Kruskal’s algorithm
Carsten Sch¨ urmann ITU, currently CMU Linear Logic Programming
Intuitionistic Logic Linear Logic Concurrent Monadic Linear Logic
Carsten Sch¨ urmann ITU, currently CMU Linear Logic Programming
Intuitionistic Logic Linear Logic Concurrent Monadic Linear Logic
Carsten Sch¨ urmann ITU, currently CMU Linear Logic Programming
Intuitionistic Logic Linear Logic Concurrent Monadic Linear Logic
◮ Written in SML/NJ ◮ Compiled with Smltojs to JavaScript ◮ Runs locally in your webbrowser. ◮ Right now cut-and-paste. ◮ Install your local version from
◮ Run celf <filename> ◮ Thanks to Dr. Anders Schack-Nielsen
◮ Thanks to Martin Elsman
Carsten Sch¨ urmann ITU, currently CMU Linear Logic Programming
Intuitionistic Logic Linear Logic Concurrent Monadic Linear Logic
◮ Usually we think of program as functions ◮ Clearly specified input/output behavior
◮ In logic programming we use judgments (propositions)
Carsten Sch¨ urmann ITU, currently CMU Linear Logic Programming
Intuitionistic Logic Linear Logic Concurrent Monadic Linear Logic
Carsten Sch¨ urmann ITU, currently CMU Linear Logic Programming
Intuitionistic Logic Linear Logic Concurrent Monadic Linear Logic
Carsten Sch¨ urmann ITU, currently CMU Linear Logic Programming
Intuitionistic Logic Linear Logic Concurrent Monadic Linear Logic
Carsten Sch¨ urmann ITU, currently CMU Linear Logic Programming
Intuitionistic Logic Linear Logic Concurrent Monadic Linear Logic
Carsten Sch¨ urmann ITU, currently CMU Linear Logic Programming
Intuitionistic Logic Linear Logic Concurrent Monadic Linear Logic
Carsten Sch¨ urmann ITU, currently CMU Linear Logic Programming
Intuitionistic Logic Linear Logic Concurrent Monadic Linear Logic
◮ What do the numbers mean? ◮ Help!
Carsten Sch¨ urmann ITU, currently CMU Linear Logic Programming
Intuitionistic Logic Linear Logic Concurrent Monadic Linear Logic
◮ What do the numbers mean? ◮ Help!
Carsten Sch¨ urmann ITU, currently CMU Linear Logic Programming
Intuitionistic Logic Linear Logic Concurrent Monadic Linear Logic
Carsten Sch¨ urmann ITU, currently CMU Linear Logic Programming
Intuitionistic Logic Linear Logic Concurrent Monadic Linear Logic
Carsten Sch¨ urmann ITU, currently CMU Linear Logic Programming
Intuitionistic Logic Linear Logic Concurrent Monadic Linear Logic
Carsten Sch¨ urmann ITU, currently CMU Linear Logic Programming
Intuitionistic Logic Linear Logic Concurrent Monadic Linear Logic
◮ nat, list are datatypes ◮ z, s, nil, cons are constructors.
◮ Substitutions are capture avoiding. ◮ Tacit renaming of variables.
Carsten Sch¨ urmann ITU, currently CMU Linear Logic Programming
Intuitionistic Logic Linear Logic Concurrent Monadic Linear Logic
Carsten Sch¨ urmann ITU, currently CMU Linear Logic Programming
Intuitionistic Logic Linear Logic Concurrent Monadic Linear Logic
Carsten Sch¨ urmann ITU, currently CMU Linear Logic Programming
Intuitionistic Logic Linear Logic Concurrent Monadic Linear Logic
◮ Extension 1: Goals can introduce clauses D → G ◮ Extension 2: Goals can declare new parameters ∀x : A.G
Carsten Sch¨ urmann ITU, currently CMU Linear Logic Programming
Intuitionistic Logic Linear Logic Concurrent Monadic Linear Logic
Carsten Sch¨ urmann ITU, currently CMU Linear Logic Programming
Intuitionistic Logic Linear Logic Concurrent Monadic Linear Logic
Carsten Sch¨ urmann ITU, currently CMU Linear Logic Programming
Intuitionistic Logic Linear Logic Concurrent Monadic Linear Logic
Carsten Sch¨ urmann ITU, currently CMU Linear Logic Programming
Intuitionistic Logic Linear Logic Concurrent Monadic Linear Logic
Carsten Sch¨ urmann ITU, currently CMU Linear Logic Programming
Intuitionistic Logic Linear Logic Concurrent Monadic Linear Logic
Carsten Sch¨ urmann ITU, currently CMU Linear Logic Programming
Intuitionistic Logic Linear Logic Concurrent Monadic Linear Logic
Carsten Sch¨ urmann ITU, currently CMU Linear Logic Programming
Intuitionistic Logic Linear Logic Concurrent Monadic Linear Logic
◮ Judgments-as-relations-as-types ◮ Derivations-as-objects ◮ Dynamic generation of clauses
◮ Weakening: We don’t have to use them ◮ Contraction: We may use them more than once ◮ Exchange: We may use them irrespective of order
◮ But life is not that simple
◮ Consider money ◮ Consider locations in a Petri net ◮ Consider authorization certificates ◮ Consider ballots in an election
◮ We want resources!
Carsten Sch¨ urmann ITU, currently CMU Linear Logic Programming
Intuitionistic Logic Linear Logic Concurrent Monadic Linear Logic
Carsten Sch¨ urmann ITU, currently CMU Linear Logic Programming
Intuitionistic Logic Linear Logic Concurrent Monadic Linear Logic
Carsten Sch¨ urmann ITU, currently CMU Linear Logic Programming
Intuitionistic Logic Linear Logic Concurrent Monadic Linear Logic
Carsten Sch¨ urmann ITU, currently CMU Linear Logic Programming
Intuitionistic Logic Linear Logic Concurrent Monadic Linear Logic
Carsten Sch¨ urmann ITU, currently CMU Linear Logic Programming
Intuitionistic Logic Linear Logic Concurrent Monadic Linear Logic
Carsten Sch¨ urmann ITU, currently CMU Linear Logic Programming
Intuitionistic Logic Linear Logic Concurrent Monadic Linear Logic
◮ A ⊸ B is true if we can prove B while consuming the
◮ A ⊗ B is true if we split our supply of linear resources into two
◮ 1 is the unit for ⊗ ◮ A&B is true, if either A and B are true (independently) using
Carsten Sch¨ urmann ITU, currently CMU Linear Logic Programming
Intuitionistic Logic Linear Logic Concurrent Monadic Linear Logic
Carsten Sch¨ urmann ITU, currently CMU Linear Logic Programming
Intuitionistic Logic Linear Logic Concurrent Monadic Linear Logic
Carsten Sch¨ urmann ITU, currently CMU Linear Logic Programming
Intuitionistic Logic Linear Logic Concurrent Monadic Linear Logic
Carsten Sch¨ urmann ITU, currently CMU Linear Logic Programming
Intuitionistic Logic Linear Logic Concurrent Monadic Linear Logic
Carsten Sch¨ urmann ITU, currently CMU Linear Logic Programming
Intuitionistic Logic Linear Logic Concurrent Monadic Linear Logic
◮ Asynchronous connectives (negative) A
−
◮ Synchronous connectives (positive) A
+
◮ Collapse definite clauses and goals into one category A
−
−
+.A − | A −
1 &A
−
2
+
− | ↓ A − | 1
−
− Carsten Sch¨ urmann ITU, currently CMU Linear Logic Programming
Intuitionistic Logic Linear Logic Concurrent Monadic Linear Logic
−
−] ⊢ P
−
−] ⊢ P
−] ⊢ P
− ⊢ P Carsten Sch¨ urmann ITU, currently CMU Linear Logic Programming
Intuitionistic Logic Linear Logic Concurrent Monadic Linear Logic
−
−] ⊢ P
−
−] ⊢ P
−] ⊢ P
− ⊢ P
−
1
−
2
−
1 &A
−
2
−
i ] ⊢ P
−
1 &A
−
2 ] ⊢ P
Carsten Sch¨ urmann ITU, currently CMU Linear Logic Programming
Intuitionistic Logic Linear Logic Concurrent Monadic Linear Logic
−
−] ⊢ P
−
−] ⊢ P
−] ⊢ P
− ⊢ P
−
1
−
2
−
1 &A
−
2
−
i ] ⊢ P
−
1 &A
−
2 ] ⊢ P
+ → Γ; ∆ ⊢ A −
+.A −
+ → Γ; ∆; [A −] ⊢ P
+.A −] ⊢ P Carsten Sch¨ urmann ITU, currently CMU Linear Logic Programming
Intuitionistic Logic Linear Logic Concurrent Monadic Linear Logic
+ → Γ; ∆ ⊢ B −
+ → Γ; ∆; [D] ⊢ P
−; ∆ ⊢ B −
− → Γ; ∆ ⊢ B −
−
2 ] ⊢ P
−
2
−
1 → Γ; ∆; [A
−
2 ] ⊢ P
−
2 ] ⊢ P
−
1
−
2
−
1 → Γ; ∆; [A
−
2 ] ⊢ P
Carsten Sch¨ urmann ITU, currently CMU Linear Logic Programming
Intuitionistic Logic Linear Logic Concurrent Monadic Linear Logic
+ → Γ; ∆ ⊢ B −
+ → Γ; ∆; [D] ⊢ P
−; ∆ ⊢ B −
− → Γ; ∆ ⊢ B −
−
2 ] ⊢ P
−
2
−
1 → Γ; ∆; [A
−
2 ] ⊢ P
−
2 ] ⊢ P
−
1
−
2
−
1 → Γ; ∆; [A
−
2 ] ⊢ P
− ⊢ B −
− → Γ; ∆ ⊢ B −
−
2 ] ⊢ P
−
1
−
1 → Γ; ∆1, ∆2; [A
−
2 ] ⊢ P
Carsten Sch¨ urmann ITU, currently CMU Linear Logic Programming
Intuitionistic Logic Linear Logic Concurrent Monadic Linear Logic
+ → Γ; ∆ ⊢ B −
+ → Γ; ∆; [D] ⊢ P
−; ∆ ⊢ B −
− → Γ; ∆ ⊢ B −
−
2 ] ⊢ P
−
2
−
1 → Γ; ∆; [A
−
2 ] ⊢ P
−
2 ] ⊢ P
−
1
−
2
−
1 → Γ; ∆; [A
−
2 ] ⊢ P
− ⊢ B −
− → Γ; ∆ ⊢ B −
−
2 ] ⊢ P
−
1
−
1 → Γ; ∆1, ∆2; [A
−
2 ] ⊢ P
−
−
−] ⊢ P
−] ⊢ P Carsten Sch¨ urmann ITU, currently CMU Linear Logic Programming
Intuitionistic Logic Linear Logic Concurrent Monadic Linear Logic
Carsten Sch¨ urmann ITU, currently CMU Linear Logic Programming
Intuitionistic Logic Linear Logic Concurrent Monadic Linear Logic
Carsten Sch¨ urmann ITU, currently CMU Linear Logic Programming
Intuitionistic Logic Linear Logic Concurrent Monadic Linear Logic
Carsten Sch¨ urmann ITU, currently CMU Linear Logic Programming
Intuitionistic Logic Linear Logic Concurrent Monadic Linear Logic
Carsten Sch¨ urmann ITU, currently CMU Linear Logic Programming
Intuitionistic Logic Linear Logic Concurrent Monadic Linear Logic
Carsten Sch¨ urmann ITU, currently CMU Linear Logic Programming
Intuitionistic Logic Linear Logic Concurrent Monadic Linear Logic
Carsten Sch¨ urmann ITU, currently CMU Linear Logic Programming
Intuitionistic Logic Linear Logic Concurrent Monadic Linear Logic
Carsten Sch¨ urmann ITU, currently CMU Linear Logic Programming
Intuitionistic Logic Linear Logic Concurrent Monadic Linear Logic
Carsten Sch¨ urmann ITU, currently CMU Linear Logic Programming
Intuitionistic Logic Linear Logic Concurrent Monadic Linear Logic
Carsten Sch¨ urmann ITU, currently CMU Linear Logic Programming
Intuitionistic Logic Linear Logic Concurrent Monadic Linear Logic
Carsten Sch¨ urmann ITU, currently CMU Linear Logic Programming
Intuitionistic Logic Linear Logic Concurrent Monadic Linear Logic
Carsten Sch¨ urmann ITU, currently CMU Linear Logic Programming
Intuitionistic Logic Linear Logic Concurrent Monadic Linear Logic
◮ Asynchronous connectives (negative) A
−
◮ Synchronous connectives (positive) A
+
◮ Extending what we had.
−
+.A − | A −
1 &A
−
2
+
− | ↓ A − | @A −
−
− Carsten Sch¨ urmann ITU, currently CMU Linear Logic Programming
Intuitionistic Logic Linear Logic Concurrent Monadic Linear Logic
−
−] ⊢ P
−
−] ⊢ P
−] ⊢ P
− ⊢ P
−] ⊢ P
− ⊢ P
−
1
−
2
−
1 &A
−
2
−
i ] ⊢ P
−
1 &A
−
2 ] ⊢ P
+ → Γ; ∆; Φ ⊢ A −
+.A −
+ → Γ; ∆; Φ; [A −] ⊢ P
+.A −] ⊢ P Carsten Sch¨ urmann ITU, currently CMU Linear Logic Programming
Intuitionistic Logic Linear Logic Concurrent Monadic Linear Logic
+ → Γ; ∆; Φ ⊢ B −
+ → Γ; ∆; [D] ⊢ P
−; ∆; Φ ⊢ B −
− → Γ; ∆; Φ ⊢ B −
−
2 ] ⊢ P
−
2
−
1 → Γ; ∆; Φ; [A
−
2 ] ⊢ P
−
2 ] ⊢ P
−
1
−
2
−
1 → Γ; ∆; Φ; [A
−
2 ] ⊢ P
− ⊢ B −
− → Γ; ∆; Φ ⊢ B −
−
2 ] ⊢ P
−
1
−
1 → Γ; ∆1, ∆2; Φ1; Φ2; [A
−
2 ] ⊢ P
Carsten Sch¨ urmann ITU, currently CMU Linear Logic Programming
Intuitionistic Logic Linear Logic Concurrent Monadic Linear Logic
+ → Γ; ∆; Φ ⊢ B −
+ → Γ; ∆; [D] ⊢ P
−; ∆; Φ ⊢ B −
− → Γ; ∆; Φ ⊢ B −
−
2 ] ⊢ P
−
2
−
1 → Γ; ∆; Φ; [A
−
2 ] ⊢ P
−
2 ] ⊢ P
−
1
−
2
−
1 → Γ; ∆; Φ; [A
−
2 ] ⊢ P
− ⊢ B −
− → Γ; ∆; Φ ⊢ B −
−
2 ] ⊢ P
−
1
−
1 → Γ; ∆1, ∆2; Φ1; Φ2; [A
−
2 ] ⊢ P
− ⊢ B −
− → Γ; ∆; Φ ⊢ B −
−
2 ] ⊢ P
−
1
−
1 → Γ; ∆1, ∆2; Φ1, Φ2; [A
−
2 ] ⊢ P
Carsten Sch¨ urmann ITU, currently CMU Linear Logic Programming
Intuitionistic Logic Linear Logic Concurrent Monadic Linear Logic
Carsten Sch¨ urmann ITU, currently CMU Linear Logic Programming
Intuitionistic Logic Linear Logic Concurrent Monadic Linear Logic
Carsten Sch¨ urmann ITU, currently CMU Linear Logic Programming
Intuitionistic Logic Linear Logic Concurrent Monadic Linear Logic
a b
Carsten Sch¨ urmann ITU, currently CMU Linear Logic Programming
Intuitionistic Logic Linear Logic Concurrent Monadic Linear Logic
Carsten Sch¨ urmann ITU, currently CMU Linear Logic Programming
Intuitionistic Logic Linear Logic Concurrent Monadic Linear Logic
Carsten Sch¨ urmann ITU, currently CMU Linear Logic Programming
Intuitionistic Logic Linear Logic Concurrent Monadic Linear Logic
Carsten Sch¨ urmann ITU, currently CMU Linear Logic Programming
Intuitionistic Logic Linear Logic Concurrent Monadic Linear Logic
Carsten Sch¨ urmann ITU, currently CMU Linear Logic Programming
Intuitionistic Logic Linear Logic Concurrent Monadic Linear Logic
Carsten Sch¨ urmann ITU, currently CMU Linear Logic Programming
Intuitionistic Logic Linear Logic Concurrent Monadic Linear Logic
Carsten Sch¨ urmann ITU, currently CMU Linear Logic Programming
Intuitionistic Logic Linear Logic Concurrent Monadic Linear Logic
Carsten Sch¨ urmann ITU, currently CMU Linear Logic Programming
Intuitionistic Logic Linear Logic Concurrent Monadic Linear Logic
−
1 .A
+
2
−
1 .A
+
2
+
1 .A
+
2
+
1 ⊗ A
+
2
−
+.A − | A −
1 &A
−
2
+
− | ↓ A − | 1 | @A −| ∃p : A +
1 A
+
2
−
− Carsten Sch¨ urmann ITU, currently CMU Linear Logic Programming
Intuitionistic Logic Linear Logic Concurrent Monadic Linear Logic
+ → Γ; ∆; Φ ⊢ B −
+
1 → p2 : A
+
2 → Γ; ∆; Φ ⊢ B
−
+
1 .A
+
2 → Γ; ∆; Φ ⊢ B
−
+ → Γ; ∆; [B −] ⊢ P
+
1 → p2 : A
+
2 → Γ; ∆; Φ; [B
−] ⊢ P
+
1 .A
+
2 → Γ; ∆; Φ; [B
−] ⊢ P Carsten Sch¨ urmann ITU, currently CMU Linear Logic Programming
Intuitionistic Logic Linear Logic Concurrent Monadic Linear Logic
Carsten Sch¨ urmann ITU, currently CMU Linear Logic Programming
Intuitionistic Logic Linear Logic Concurrent Monadic Linear Logic
Carsten Sch¨ urmann ITU, currently CMU Linear Logic Programming
Intuitionistic Logic Linear Logic Concurrent Monadic Linear Logic
Carsten Sch¨ urmann ITU, currently CMU Linear Logic Programming
Intuitionistic Logic Linear Logic Concurrent Monadic Linear Logic
Carsten Sch¨ urmann ITU, currently CMU Linear Logic Programming
Intuitionistic Logic Linear Logic Concurrent Monadic Linear Logic
Carsten Sch¨ urmann ITU, currently CMU Linear Logic Programming
Intuitionistic Logic Linear Logic Concurrent Monadic Linear Logic
Carsten Sch¨ urmann ITU, currently CMU Linear Logic Programming
Intuitionistic Logic Linear Logic Concurrent Monadic Linear Logic
−
+.A − | A −
1 &A
−
2 | {A
+}
+
− | ↓ A − | 1 | @A − | ∃p : A +
1 .A
+
2
−
−
+} switches to forward chaining mode. Carsten Sch¨ urmann ITU, currently CMU Linear Logic Programming
Intuitionistic Logic Linear Logic Concurrent Monadic Linear Logic
−
+.A − | A −
1 &A
−
2 | {A
+}
+
− | ↓ A − | 1 | @A − | ∃p : A +
1 .A
+
2
−
−
+} switches to forward chaining mode.
+} is a monad that encapsulates true concurrency. Carsten Sch¨ urmann ITU, currently CMU Linear Logic Programming
Intuitionistic Logic Linear Logic Concurrent Monadic Linear Logic
−
+.A − | A −
1 &A
−
2 | {A
+}
+
− | ↓ A − | 1 | @A − | ∃p : A +
1 .A
+
2
−
−
+} switches to forward chaining mode.
+} is a monad that encapsulates true concurrency.
+} corresponds to the focusing rule switching from
−. Carsten Sch¨ urmann ITU, currently CMU Linear Logic Programming
Intuitionistic Logic Linear Logic Concurrent Monadic Linear Logic
−
+.A − | A −
1 &A
−
2 | {A
+}
+
− | ↓ A − | 1 | @A − | ∃p : A +
1 .A
+
2
−
−
+} switches to forward chaining mode.
+} is a monad that encapsulates true concurrency.
+} corresponds to the focusing rule switching from
−. Carsten Sch¨ urmann ITU, currently CMU Linear Logic Programming
Intuitionistic Logic Linear Logic Concurrent Monadic Linear Logic
Carsten Sch¨ urmann ITU, currently CMU Linear Logic Programming
Intuitionistic Logic Linear Logic Concurrent Monadic Linear Logic
Carsten Sch¨ urmann ITU, currently CMU Linear Logic Programming
Intuitionistic Logic Linear Logic Concurrent Monadic Linear Logic
Carsten Sch¨ urmann ITU, currently CMU Linear Logic Programming
Intuitionistic Logic Linear Logic Concurrent Monadic Linear Logic
+
+}
−; ∆; Φ; [A −] ⊢ B +
−; ∆; Φ ⊢ B +
−] ⊢ B +
−; ∆, A; Φ ⊢ B +
−] ⊢ B +
−; ∆; Φ, A ⊢ B +
+
+ Carsten Sch¨ urmann ITU, currently CMU Linear Logic Programming
Intuitionistic Logic Linear Logic Concurrent Monadic Linear Logic
+ → Γ; ∆; Φ; [A −] ⊢ B +
+.A −] ⊢ B +
−
i ] ⊢ B
+
−
1 &A
−
2 ] ⊢ B
+
+ → Γ; ∆; Φ ⊢ B +
+}] ⊢ B +
−
−
−
−
−
−
+
1
+
2
+
1 ⊗ A
+
2
+
2
−.A +
2
Carsten Sch¨ urmann ITU, currently CMU Linear Logic Programming
Intuitionistic Logic Linear Logic Concurrent Monadic Linear Logic
Carsten Sch¨ urmann ITU, currently CMU Linear Logic Programming
Intuitionistic Logic Linear Logic Concurrent Monadic Linear Logic
◮ clear A ∧ on A B ∧ empty ⊃ clear B ∧ holds A ◮ clear A ∧ table A ∧ empty ⊃ holds A ◮ holds A ∧ clear B ⊃ on A B ∧ clear A ∧ empty ◮ holds A ⊃ clear A ∧ table A ∧ empty
Carsten Sch¨ urmann ITU, currently CMU Linear Logic Programming
Intuitionistic Logic Linear Logic Concurrent Monadic Linear Logic
◮ P | Q ≡ Q | P
◮ (νx)(νy)P ≡ (νy)(νx)P
◮ !P ≡ P |!P ◮ (νx)(P | Q) ≡ (νx)P|Q if x is not free in Q.
◮ a(y).P | ab.Q −
◮ If P −
◮ If P −
◮ If P ≡ P′ and P′ −
Carsten Sch¨ urmann ITU, currently CMU Linear Logic Programming
Intuitionistic Logic Linear Logic Concurrent Monadic Linear Logic
Carsten Sch¨ urmann ITU, currently CMU Linear Logic Programming