Attack trees are a type of tree based graphical model used in analyzing the threat potential of secure systems. They were popularized by Bruce Schneier  at the NSA and they were found to be affective at analyzing both physical and virtual secure systems. An attack tree represents all possible ways to accomplish a particular attack on a system. The root of the tree is the over all goal, and then each child node represents a refinement of the overall goal. The leafs are particular attacks needed to accomplish the goal of the tree. An example attack tree for attacking an ATM can be found in Figure 1.
In this paper attack trees have three types of branching nodes: and-node, or-nodes, and sequence-nodes. And-nodes are depicted graphically by drawing a horizontal line linking the children nodes. This type of node represents a set of attacks that all must be executed, but there is no particular order on which must be executed first. Similarly, sequence-nodes are depicted by a horizontal arrow linking the children nodes. These nodes represent ordered execution of attacks. Finally, the remaining nodes are or-nodes which represent a choice between attacks. This formalization of attack trees is known as SAND attack trees and were introduced by Jhawar et. al .
The way in which we describe attack trees suggests that they should be considered as describing a process in terms of smaller processes. Then each leaf of an attack tree represents a process – an attack – that must be executed to reach the overall goal. Branching nodes are then operators of process algebra. Thus, an attack tree is a process tree representing an attack.
Until recently attack trees have been primarily a tool without a theoretical foundation. This has become worrisome, because several projects have used them to asses the security of large scale systems. Therefore, a leading question regarding attack trees is, what is a mathematical model of attack trees? There have been numerous proposed answers to this question. Some examples are propositional logic, multisets, directed acyclic graphs, source sink graphs (or parallel-series pomsets), Petri nets, and Markov processes.
Give that there are quite a few different models one can then ask, is there a unifying foundation in common to each of these proposed models? Furthermore, can this unifying foundation be used to further the field of attack trees and build new tools for conducting threat analysis? This paper contributes to the answer of these questions. Each of the proposed models listed above have something in common. They can all be modeled in some form of a symmetric monoidal category [20, 1, 5, 6]. That is all well and good, but what can we gain from monoidal categories?
Monoidal categories are a mathematical model of linear logic as observed through the beautiful Curry-Howard-Lambek correspondence . In linear logic every hypothesis must be used exactly once, and hence, if we view a hypothesis as a resource, then this property can be stated as every resource must be consumed. This is an ideal setting for reasoning about processes like attack trees.
Multisets and Petri nets both capture the idea that the nodes of an attack tree consist of the attack action and the state – the resource – of the system being analyzed. As it turns out, linear logic has been shown to be a logical foundation for multisets  and Petri Nets . Thus, linear logic has the ability to model the state as well as attack actions of the goals of an attack tree.
In this paper111This material is based upon work supported by the National Science Foundation CRII CISE Research Initiation grant, “CRII:SHF: A New Foundation for Attack Trees Based on Monoidal Categories“, under Grant No. 1565557. we introduce a new logical foundation of SAND attack trees in intuitionistic linear logic. This new foundation is based on a new logic called the Attack Tree Linear Logic (ATLL).
In ATLL (Section 6) attack trees are modeled as linear formulas where base attacks are atomic formulas, and each branching node corresponds to a binary logical connective. Consider the attack tree for an ATM attack from Figure 1. We can model this attack tree as a formula in ATLL as follows:
Each is an atomic formula, parallel conjunction – and-nodes – of attack trees is denoted by , choice between attacks – or-nodes – by , and sequential conjunction of attacks – sequence-nodes – by . Parallel conjunction and choice are both symmetric, but sequential conjunction is not. Now that we can model attack trees as formulas we should be able to use the logic to reason about attack trees.
Reasoning about attack trees corresponds to proving implications between them. In fact, every equation from Jhawar et al.’s work on attack trees with sequential conjunction  can be proven as an implication in ATLL. Consider a second attack tree from Figure 2.
We can model this attack tree as a formula in ATLL as well (the base attacks are the same):
The attack trees and represents the same attack, and this can be proven in ATLL by showing that where denotes bi-implication. The proof holds by using the distributive rules for choice.
Modeling attack trees in linear logic has a number of benefits. First, it connects attack trees back to logic, but in elegant and simple way. Kordy et al. [12, 13] proposed that attack trees be modeled in propositional logic, but in this model attacks can be freely duplicated and contracted which goes against the process nature of an attack tree. However, linear logic restores this natural interpretation without loosing the process interpretation of attack trees and without having to resort to complicated notation unlike models similar to the situation calculus . By connecting attack trees to logic we can also tap into the long standing research and development of automation, for example, SAT, SMT, proof search, etc. Finally, by connecting to logic we also connect to the theory of statically typed functional programming through the Curry-Howard-Lambek correspondence which will allow for the development of a programming language that can be used to certify the correctness of attack trees and the analysis performed using them. In particular, we can use ATLL to design a functional scripting language for the definition of attack trees that has the same semantics as attack trees.
Before introducing ATLL we given several new logical models of attack trees starting in Section 3 with a very basic truth table semantics. Then we lift this semantics into a semantics of attack trees based on lineales in Section 4, but this can be further lifted into a dialectica model which ATLL is based (Section 5).
Contributions. This paper offers the following contributions:
The first simple truth table semantics of SAND attack trees,
The first categorical model of attack trees in dialectica categories,
The Attack Tree Linear Logic (ATLL): a new intuitionistic linear logic for the specification and analysis of attack trees.
Horne et al.  propose to model attack trees in linear logic as well, but their logic is based on classical linear logic, and does not support full distribution of sequential conjunction over choice, while ATLL does.
Every section except Section 6 has been formalized in the Agda proof assistant222The Agda formalization can be found here https://github.com/MonoidalAttackTrees/ATLL-Formalization. Furthermore, all of the syntax used in this paper was formalized using OTT .
2 SAND Attack Trees
In this section we introduce SAND attack trees. This formulation of attack trees was first proposed by Jhawar et al. .
Suppose is a set of base attacks whose elements are denoted by . Then an attack tree is defined by the following grammar:
Equivalence of attack trees, denoted by , is defined as follows:
This definition of SAND attack trees differs slightly from Jhawar et. al.’s  definition. They define -ary operators, but we only consider the binary case, because it fits better with the models presented here and it does not loose any generality because we can model the -ary case using binary operators in the obvious way. Finally, they also include the equivalence , but it is not obvious how to include this in the models presented here and we leave its addition to future work.
3 A Quaternary Semantics for SAND Attack Trees
Kordy et al.  gave a very elegant and simple semantics of attack-defense trees in boolean algebras. Unfortunately, while their semantics is elegant it does not capture the resource aspect of attack trees, it allows contraction, and it does not provide a means to model sequential conjunction. In this section we give a semantics of attack trees in the spirit of Kordy et al.’s using a four valued logic.
The propositional variables of our quaternary logic, denoted by , , , and , range over the set . We think of and as we usually do in boolean algebras, but we think of and as intermediate values that can be used to break various structural rules. In particular we will use these values to prevent exchange for sequential conjunction from holding, and contraction from holding for parallel and sequential conjunction.
The logical connectives of our four valued logic are defined as follows:
Parallel and Sequential Conjunction:
These definitions are carefully crafted to satisfy the necessary properties to model attack trees. Comparing these definitions with Kordy et al.’s 
work we can see that choice is defined similarly, but parallel conjunction is not a product – ordinary conjunction – but rather a linear tensor product, and sequential conjunction is not actually definable in a boolean algebra, and hence, makes heavy use of the intermediate values to insure that neither exchange nor contraction hold.
We use the usual notion of equivalence between propositions, that is, propositions and are considered equivalent, denoted by , if and only if they have the same truth tables. In order to model attack trees the previously defined logical connectives must satisfy the appropriate equivalences corresponding to the equations between attack trees. These equivalences are all proven by the following result.
Lemma 1 (Properties of the Attack Tree Operators in the Quaternary Semantics)
(Symmetry) For any and , , for .
(Symmetry for Sequential Conjunction) It is not the case that, for any and , .
(Associativity) For any , , and , , for .
(Contraction for Parallel and Sequential Conjunction) It is not the case that for any , , for .
(Distributive Law) For any , , and , , for .
Symmetry, associativity, contraction for choice, and the distributive law for each operator hold by simply comparing truth tables. As for contraction for parallel conjunction, suppose . Then by definition , but is not . Contraction for sequential conjunction also fails, suppose . Then by definition , but is not . Similarly, symmetry fails for sequential conjunction. Suppose and . Then , but .
At this point it is quite easy to model attack trees as formulas. The following defines their interpretation.
Suppose is some set of base attacks, and is an assignment of base attacks to propositional variables. Then we define the interpretation of to propositions as follows:
We can use this semantics to prove equivalences between attack trees.
Lemma 2 (Equivalence of Attack Trees in the Quaternary Semantics)
Suppose is some set of base attacks, and is an assignment of base attacks to propositional variables. Then for any attack trees and , if and only if .
This proof holds by induction on the form of .
This is a very simple and elegant semantics, but it also leads to a more substantial theory.
4 Lineale Semantics for SAND Attack Trees
Classical natural deduction has a semantics in boolean algebras, and so the semantics in the previous section begs the question of whether there is a natural deduction system that can be used to reason about attack trees. We answer this question in the positive, but before defining the logic we first build up a non-trivial concrete categorical model of our desired logic in dialectica spaces, but this first requires the abstraction of the quaternary semantics into a preorder semantics we call the lineale semantics of SAND attack trees. This semantics will live at the base of the dialectica space model given in the next section, but it also begins to shed light on new and interesting reasoning tools for attack trees.
We denote by the obvious preorder on making a preordered set (proset). It is well known that every preordered set induces a category whose objects are the elements of the carrier set, here , and morphisms . Composition of morphisms hold by transitivity and identities exists by reflexivity. Under this setting it is straightforward to show that for any propositions and over we have if and only if and . Thus, every result proven for the logical connectives on in the previous section induce properties on morphisms in this setting.
In addition to the induced properties just mentioned we also have the following new ones which are required when lifting this semantics to dialectica spaces, but are also important when building a corresponding logic.
Lemma 3 (Functorality)
For any , , , and , if and , then , for .
Each part holds by case analysis over , , , and . In any cases where does not hold, then one of the premises will also not hold.
The logic we are building up is indeed intuitionistic, but none of the operators we have introduced thus far are closed, but we can define the standard symmetric linear tensor product in that is closed.
The following defines the linear tensor product on as well as linear implication:
The unit of the tensor product is .
The expected monoidal properties hold for the tensor product.
Lemma 4 (Tensor is Symmetric Monoidal Closed)
(Symmetry) For any and , .
(Associativity) For any , , and , .
(Unitors) For any , .
(Tensor is Functorial) For any , , , and , if and , then .
(Implication is Functorial) For any , , , and , if and , then .
(Closure) For any , , and , if and only if .
The top three cases hold by simply comparing truth tables. Finally, the last three cases hold by a case analysis over , , , and . If at any time the conclusion is false, then one of the premises will also be false.
We now define lineales which depend on the notion of a monoidal proset. The definition of lineales given here is a slight generalization over the original definition given by Hyland and de Paiva – see Definition 1 of . They base lineales on posets instead of prosets, but the formalization given here shows that anti-symmetry can be safely dropped.
A monoidal proset is a proset, , with a given symmetric monoidal structure . That is, a set with a given binary relation satisfying the following:
(reflexivity) for any
(transitivity) If and , then
together with a monoidal structure consisting of a binary operation, called multiplication, and a distinguished element called the unit such that the following hold:
Finally, the structures must be compatible, that is, if , then for any .
Now a lineale can be seen as essentially a symmetric monoidal closed category in the category of prosets.
A lineale is a monoidal proset, , with a given binary operation, called implication, such that the following hold:
(adjunction) If , then
The set is an example of a lineale where the order is the usual one, the multiplication is boolean conjunction, and the implication is boolean implication. This example is not that interesting, because is a boolean algebra. An example of a proper lineale can be given using the three element set , but one must be careful when defining lineales, because it is possible to instead define Heyting algebras, and hence, become nonlinear.
Given the operations and properties shown for above we can easily prove that defines a lineale.
The proset, is a lineale.
First, defines a monoidal proset, because the tensor product is associative, is the identity, and symmetric by Lemma 4. We can also show that the tensor product is compatible, that is, if , then for any . Suppose , then by reflexivity we also know that . Thus, by functorality, Lemma 4, we obtain our result.
Lemma 6 (Equivalence of Attack Trees in the Lineale Semantics)
Suppose is some set of base attacks, and is an assignment of base attacks to propositional variables. Then for any attack trees and , if and only if and .
This proof holds by induction on the form of .
This result seems basic, but has some interesting consequences. It implies that the notion of attack tree equivalence can be broken up unto left-to-right and right-to-left implications which can themselves be used to reason about properties of attack trees like when one tree is a subtree of another.
In addition, this also implies that categorical models, and equivalently by the Curry-Howard-Lambek Correspondence, logical models of attack trees can support different notions of equivalence, because equivalence of attack trees can be broken down into morphisms. In fact, in the next section we will lift the lineale semantics up into a dialectica model, but dialectica models are models of linear logic.
Finally, the results of this section lead us to a more logical viewpoint. If we know , then by closure . Thus, two attack trees are then equivalent if and only if they are bi-conditionally related, i.e. and . Therefore, if we are able to find a logic that is sound with respect to the semantics laid out thus far, then we can use it to reason about attack trees using linear implication.
5 Dialectica Semantics of SAND Attack Trees
In her thesis de Paiva  gave one of the first sound and complete categorical models, called dialectica categories, of full intuitionistic linear logic. Her models arose from giving a categorical definition to Gödel’s Dialectica interpretation. de Paiva defines a particular class of dialectica categories called over a base category , see page 41 of . She later showed that by instantiating to , the category of sets and total functions, that one arrives at concrete instantiation of she called whose objects are called dialectica spaces, and then she abstracts into a family of concrete dialectica spaces, , by replacing with an arbitrary lineale .
In this section we construct the dialectica category, , and show that it is a model of attack trees. This will be done by essentially lifting each of the attack tree operators defined for the lineale semantics given in the previous section into the dialectica category. Working with dialectica categories can be very complex due to the nature of how they are constructed. In fact, they are one of the few examples of theories that are easier to work with in a proof assistant than outside of one. Thus, throughout this section we only give brief proof sketches, but the interested reader will find the complete proofs in the formalization.
We begin with the basic definition of , and prove it is a category.
The category of dialectica spaces over , denoted by , is defined by the following data:
objects, or dialectica spaces, are triples where and are sets, and is a relation on .
morphisms are pairs where and such that for any and , .
The structure is a category.
Identity morphisms are defined by , and the property on morphisms holds by reflexivity. Given two morphism and , then their composition is defined by whose property holds by transitivity. Proving that composition is associative and respects identities is straightforward.
Next we show that is symmetric monoidal closed. The definitions of both the tensor product and the internal hom will be defined in terms of their respective counterparts in the lineale semantics.
The following defines the tensor product and the internal hom:
(Tensor Product) Suppose and , then define , where .
(Internal Hom) Suppose and , then define , where .
The unit of the tensor product is defined by , where is the final object in .
The following properties hold for the previous constructions.
Lemma 8 (SMCC Properties for )
(Functorality for Tensor) Given morphisms and , then there is a morphism .
(Associator) There is a natural isomorphism, .
(Unitors) There are natural isomorphisms, and .
(Symmetry) There is a natural transformation, that is involutive.
(Functorality for the Internal Hom) Given morphism and , then there is a morphism .
(Adjunction) There is a natural bijection:
Finally, the coherence diagrams for symmetric monoidal categories – which we omit to conserve space, but can be found here  – also hold for the natural transformations above.
These properties are not new, and their proofs follow almost exactly de Paiva’s proofs from her thesis . The complete proofs for each of the cases above, including the proofs for the symmetric monoidal coherence diagrams, can be found in the formalization.
The constructions on given so far are not new, but the constructions for the attack tree operators for parallel conjunction, sequential conjunction, and choice are new to dialectica categories, but it turns out that the definition of choice we give here has been previously used in a different categorical construction called the category of Chu spaces.
The attack tree operators are defined in as follows:
(Parallel Conjunction) Suppose and , then , where .
(Sequential Conjunction) and , then , where .
(Choice) and , then , where
The definitions of parallel and sequential conjunction are quite literally the lifting of their lineale counterparts. The parallel and sequential operators on , and , restrict the cartesian product to the required properties for attack trees. Now choice must be carefully constructed so that we may prove the required distributive law.
Given a dialectica space, , we can consider as a set of actions and as a set of states. Then given an action, , and a state, , , indicates whether action will execute in state . This implies that an action and a state of , for and , are either an action of or an action of , and a state of or a state of . Then an action, , of will execute in state of if they are both from or both from . Thus, the definition of choice very much fits the semantics of a choice operator. It is well known that the cartesian product distributes over the disjoint union in , and because of the definitions of parallel and sequential conjunction, and choice, these properties lift up into .
It turns out that the definition of choice given here is not new at all, but first appeared as the choice operator used for modeling concurrency in Chu spaces due to Gupta and Pratt . Chu spaces are the concrete objects of Chu categories just like dialectica spaces are the concrete objects of dialectica categories. In fact, Chu categories and dialectica categories are cousins . Chu and dialectica categories have exactly the same objects, but the condition on morphisms is slightly different, for Chu categories the condition uses equality instead of the preorder. The impact of this is significant, Chu spaces are a model of classical linear logic, while dialectica categories are a model of intuitionistic linear logic.
The following gives all of the properties that hold for the attack tree operators in .
Lemma 9 (Properties of the Attack Tree Operators in )
(Functorality) Given morphisms and , then there is a morphism , for .
(Associativity) There is a natural isomorphism, , for .
(Symmetry) There is a natural transformation, that is involutive, for .
(Distributive Law) There is a natural isomorphism, , for .
At this point we can interpret attack trees into .
Suppose is some set of base attacks, and is an assignment of base attacks to dialectica spaces. Then we define the interpretation of to objects of as follows:
Then we have the following result.
Lemma 10 (Equivalence of Attack Trees in the Dialectica Semantics)
Suppose is some set of base attacks, and is an assignment of base attacks to dialectica spaces. Then for any attack trees and , if and only if there is a natural isomorphism in .
This proof holds by induction on the form of .
6 The Attack Tree Linear Logic (ATLL)
In this section we take what we have learned by constructing the dialectica model and define a intuitionistic linear logic, called the attack tree linear logic (ATLL), that can be used to prove equivalences between attack trees as linear implications. ATLL is based on the logic of bunched implications (BI) , in that, contexts will be trees. This is necessary to be able to include parallel and sequential conjunction, and choice within the same logic, because they all have different structural rules associated with them.
The syntax for formulas and contexts are defined by the following grammar.
ATLL formulas are not surprising, but we denote base attacks by atomic formulas represented here by . The syntax for contexts are similar to the contexts in BI. Contexts are trees with three types of nodes denoted by for parallel conjunction, for sequential conjunction, and for choice. They all have units, but we overload the symbol to represent them all.
The ATLL inference rules are given in Figure 3.
The inference rules are fairly straightforward. We denote by the context with a subtree – subcontext – . This syntax is used to modify the context across inference rules.
Perhaps the most interesting rule is the CM rule which stands for context morphism. This rule is a conversion rule for manipulation of the context. It depends on a judgment which can be read as the context can be transformed into the context . This judgment is defined by the rules in Figure 4.
Context morphisms are designed to induce structural rules for some of the logical connectives and not for others. For example, parallel conjunction and choice should be commutative, but sequential conjunction should not be. The rules for associativity and the unit rules mention the operator, , this operator ranges over ’’, ’’, and ’’.
One interesting, and novel aspect of this logic in contrast to BI is we can use the context morphisms to induce distributive laws between the various tensor products. The rules and induce the property that sequential conjunction distributes over choice, and and induce the property that parallel conjunction distributes over choice.
The interpretation of attack trees as ATLL formulas is obvious at this point where base attacks are atomic formulas and we denote this interpretation as for some attack tree . The most interesting part about this interpretation is that we can now use linear implication to prove properties about attack trees. First, we can derive all of the required equivalences in ATLL.
Lemma 11 (Attack Tree Logical Equivalences)
The following hold for any ATLL formulas , , and .
Using the previous lemma we can now completely reason about equivalences of attack trees in ATLL. Another important aspect of ATLL is that we can use either the left-to-right directions or the right-to-left directions of the previous bi-implications to simplify attack trees into normal forms. In addition, the logical interpretation leads to new and interesting questions, for example, adding additional structural rules, like weakening, could also open the door for proving when one attack tree is a subattack tree of another. This concept is yet to appear in the literature, but has practical applications.
7 Related and Future Work
Related Work. Horne et al.  also propose modeling SAND attack trees using linear logic, but they base their work on pomsets and classical linear logic. In addition, their logic cannot derive the distributive law for sequential conjunction up to an equivalence, but they can derive . The full equivalence is derivable in ATLL however.
The logic of bunched implications  has already been shown to be able to support non-commutative operators by O’hearn, but here we show how distributive laws can be controlled using properties on contexts.
de Paiva  shows how to model non-commutative operators in dialectica categories, but here we show an alternative way of doing this, and we extend the model to include more operators like choice and its distributive laws.
Future Work. We plan to build a term assignment for ATLL that can be used a scripting language for defining and reasoning about attack trees. In addition, we plan to extend equivalence of attack trees with contraction for choice, and to investigate adding a modality that adds weakening to ATLL, and then, this modality could be used to reason about subattack trees. Finally, we leave the proof theory of ATLL to future work.
-  Carolyn Brown, Doug Gurr, and Valeria de Paiva. A linear specification language for petri nets. DAIMI Report Series, 20(363), 1991.
-  Valeria de Paiva. Dialectica categories. In J. Gray and A. Scedrov, editors, Categories in Computer Science and Logic, volume 92, pages 47–62. Amerian Mathemaitcal Society, 1989.
-  Valeria de Paiva. A Dialectica model of the Lambek calculus. In 8th Amsterdam Logic Colloquium, 1991.
-  Valeria de Paiva. Dialectica and chu constructions: Cousins? Theory and Applications of Categories, 17(7):127–152, 2006.
-  Marcelo Fiore and Marco Devesas Campos. Computation, Logic, Games, and Quantum Foundations. The Many Facets of Samson Abramsky: Essays Dedicated to Samson Abramsky on the Occasion of His 60th Birthday, chapter The Algebra of Directed Acyclic Graphs, pages 37–51. Springer Berlin Heidelberg, Berlin, Heidelberg, 2013.
-  Luisa Francesco Albasini, Nicoletta Sabadini, and Robert F. C. Walters. The compositional construction of markov processes. Applied Categorical Structures, 19(1):425–437, 2010.
-  Vineet Gupta. Chu Spaces: a Model of Concurrency. PhD thesis, Stanford University, 1994.
-  Ross Horne, Sjouke Mauw, and Alwen Tiu. Semantics for specialising attack trees based on linear logic. Fundamenta Informaticae, 153(1-2):57–86, 2017.
-  Martin Hyland and Valeria de Paiva. Lineales. ”O que nos faz pensar” Special number in Logic of ”Cadernos do Dept. de Filosofia da PUC”, Pontificial Catholic University of Rio de Janeiro, 1991.
-  Ravi Jhawar, Barbara Kordy, Sjouke Mauw, Sas̆a Radomirović, and Rolando Trujillo-Rasua. Attack trees with sequential conjunction. In Hannes Federrath and Dieter Gollmann, editors, ICT Systems Security and Privacy Protection, volume 455 of IFIP Advances in Information and Communication Technology, pages 339–353. Springer International Publishing, 2015.
-  Barbara Kordy, Piotr Kordy, and Yoann van den Boom. SPTool – Equivalence Checker for Attack Trees, pages 105–113. Springer International Publishing, Cham, 2017.
-  Barbara Kordy, Sjouke Mauw, Matthijs Melissen, and Patrick Schweitzer. Attack–Defense Trees and Two-Player Binary Zero-Sum Extensive Form Games Are Equivalent, pages 245–256. Springer Berlin Heidelberg, Berlin, Heidelberg, 2010.
-  Barbara Kordy, Marc Pouly, and Patrick Schweitzer. Computational aspects of attack–defense trees. In Pascal Bouvry, MieczysławA. Kłopotek, Franck Leprévost, Małgorzata Marciniak, Agnieszka Mykowiecka, and Henryk Rybiński, editors, Security and Intelligent Information Systems, volume 7053 of Lecture Notes in Computer Science, pages 103–116. Springer Berlin Heidelberg, 2012.
-  Saunders Mac Lane. Categories for the Working Mathematician. Number 5 in Graduate Texts in Mathematics. Springer-Verlag, 1971.
-  Paul-André Melliès. Categorical semantics of linear logic. In Pierre-Louis Curien, Hugo Herbelin, Jean-Louis Krivine, and Paul-André Melliès, editors, Interactive models of computation and program behaviour. Panoramas et Synthèses 27, Société Mathématique de France, 2009.
-  Peter O’hearn. On bunched typing. Journal of functional Programming, 13(4):747–796, 2003.
-  Layal Samarji, Frédéric Cuppens, Nora Cuppens-Boulahia, Wael Kanoun, and Samuel Dubus. Situation Calculus and Graph Based Defensive Modeling of Simultaneous Attacks, pages 132–150. Springer International Publishing, Cham, 2013.
-  Bruce Schneier. Attack trees: Modeling security threats. Dr. Dobb’s journal, December 1999.
-  P. Sewell, F. Nardelli, S. Owens, G. Peskine, T. Ridge, S. Sarkar, and R. Strnisa. Ott: Effective tool support for the working semanticist. In Journal of Functional Programming, volume 20, pages 71–122, 2010.
-  A. Tzouvaras. The linear logic of multisets. Logic Journal of IGPL, 6(6):901–916, 1998.