This is often symbolically represented as a sequent: A, A ⇒ B ⊢ A ∧ B. Both lines in the above proof "consume" the fact that A is true; this "freeness" of truth is usually what is desired in formal mathematics.
However, truth is often too abstract or unwieldy when applied to statements about the world. For example, suppose one has a quart of cream from which one can make a pound of butter. If the cream is used to make butter, then it cannot be concluded that one has both cream and butter. Yet, the logical schema outlined above leads one to conclude that cream, cream ⇒ butter ⊢ cream ∧ butter (here, cream stands for the proposition "I have a quart of cream", and butter stands for "I have a pound of butter").
The failure of ordinary logic to accurately model this activity is due to the nature of cream, butter, and resources in general: the quantity of resources is not a free fact to be used or disposed at will, like truth, but rather must be carefully accounted in every "state change". The accurate statement about making butter is:
In linear logic this is written: cream, cream ⊸ butter ⊩ butter, using different connectives (⊸ instead of ⇒) and a different notion of logical entailment (⊩ instead of ⊢).
The logical connectives are re-examined in this resource-interpretation; each connective splits into multiplicative and additive versions, which correspond to simultaneous and alternative presence, respectively. To motivate the connectives, let us use the example of a vending machine.
Multiplicative conjunction, also called tensor or times (written ⊗), denotes simultaneous occurrence of resources, to be used as you (the consumer) direct. For example, if you buy a stick of gum and a bottle of soft drink, then you are requesting gum ⊗ drink. It is up to you in which order they appear; in fact, in principle you even have the option to mix them up. That doesn't really amount to anything when the conjuncts are atomic; but in, for example, (gum ⊗ drink) ⊗ candy, you have the power to choose the gum first, then the candy bar, and finally the drink. Indeed, ⊗ is an associative and commutative operation, so this is equivalent to gum ⊗ (candy ⊗ drink). The constant 1 is used to denote the absence of any resource; it functions as a unit of tensor: A ⊗ 1 ≡ 1 ⊗ A ≡ A.
Additive conjunction, also called with (written &) represents alternative occurrence of resources, the choice of which you control. If in the vending machine there is a packet of chips, a candy bar, and a can of soft drink, all worth the same price, then for that price you can get exactly one of these products. After the purchase, you will have candy & chips & drink, i.e., exactly one of the conjuncts. You cannot use ⊗ for this outcome, because you cannot get all of these items simultaneously for the price of one. This operation is also both associative and commutative.
Additive conjunction has a unit top (written ⊤, with A & ⊤ ≡ ⊤ & A ≡ A); it represents a lack of alternative or an inability to choose. It is often used when the exact accounting of resources is burdensome or impossible. For example, if you don't actually care what you get from the machine, or indeed whether you get anything at all, then the outcome may be expressed as ⊤. This unit can be used together with ⊗ to define a minimal composition of resources: if you want a candy bar at least, but possibly something else also, then the desired outcome is candy ⊗ ⊤.
Multiplicative disjunction, also called par or parallelisation (written ⅋, an upside-down ampersand) represents simultaneous occurrence of resources, to be used as the machine (the producer) directs. If there is a single button which, when pushed, will dispense both a stick of gum and a bottle of soft drink, then this may be represented as gum ⅋ drink. The difference between this and the multiplicative conjunction gum ⊗ drink is that now the machine chooses in what order they will be dispensed. For gum and a drink, this probably does not matter. However, for a coffee vending machine that dispenses both the coffee and the coffee cup, cup ⅋ coffee and cup ⊗ coffee are very different machines. As with the conjunctions, par is associative and commutative. Its unit is bottom (written ⊥), which stands for the empty goal: imagine pushing the "coin return" lever without inserting any money.
Additive disjunction, also called plus (written ⊕) represents alternative occurrence of resources, the choice of which the machine controls. For example, suppose the vending machine permits gambling (i.e., "insert a dollar and win a candy bar, a soft drink, or an all-expenses-paid vacation"). Then the outcome of the purchase is candy ⊕ drink ⊕ vacation. You know that one of the choices will be produced, but you have no control over the result; indeed, it's consistent with this description that the machine might never produce a vacation. Note the difference from additive conjunction: if you have candy & drink & vacation, then you have the power to choose the vacation if you wish. Once again, this operation is associative and commutative. Its unit is the constant 0, which represents a lack of outcome, catastrophic failure, or inability of the machine to comply with its programming.
Linear implication. The conjunctions and disjunctions above define the state of the world, but the description is static. For state change, linear logic defines the connective of linear implication (written ⊸), sometimes also known as entails, multimap, or lolli because of its lollipop-like shape. As a resource, A ⊸ B means a method to consume resource A to achieve resource B. If the machine is a penny smasher, then its ability to smash a coin can be described as penny ⊸ smashed penny. Note that the implication itself is a resource that must obey the principle of single consumption.
Exponential connectives. The collection of connectives so far are excellent for describing states and transitions, but they are too weak if one needs the usual notion of truth. This is obviously very desirable because a discussion about the actual world should not preclude standard mathematical reasoning. Linear logic uses an idea from modal logic to embed the usual logic by means of a pair of exponential operators.
Under the resource interpretation, ! encodes arbitrary production and ? encodes arbitrary consumption.
An actual vending machine could be specified as a complicated combination of the above connectives, describing all the allowed behaviours of the machine.
Linear logic has many restrictions and variants. The primary axis of variation is along the classical/intuitionistic divide. Classical linear logic (CLL) is the original linear logic as proposed by Girard. In CLL every connective has a dual. The following is a two-sided presentation of CLL as a sequent calculus:
Any proof can be transformed into one that doesn't use the cut rule.
Linear implication is not included in this table, but it is definable in CLL using linear negation and multiplicative disjunction: A ⊸ B ≡ A⊥ ⅋ B. This is familiar from other classical logics: for example, the usual implication ⇒ is similarly definable: A ⇒ B ≡ ?A⊥ ⅋ B.
Such definitions of course require a notion of linear negation, but in classical logic one can use duals: the dual of A, written A⊥ is defined as follows.
|(A ⊗ B)⊥||=||A⊥ ⅋ B⊥|
|(A & B)⊥||=||A⊥ ⊕ B⊥|
|(A ⊕ B)⊥||=||A⊥ & B⊥|
|(A ⅋ B)⊥||=||A⊥ ⊗ B⊥|
Intuitionistic linear logic (ILL) allows only a single conclusion. Unlike CLL, connectives in ILL do not have perfect duals. Indeed, the connectives par and why not (?), and the propositional constant bottom (⊥), are absent in ILL because their introduction requires multiple conclusions. As a result, linear implication is a basic connective in ILL.
Other variants of linear logic variously allow or disallow certain connectives, giving rise to logics with varying complexity. The following are the most common variants.
The closest sub-structural cousins of linear logic are: