Primitive | Description | Signature (?) |
---|---|---|
Duplicate | Duplicate the element on the top of the stack. | a -- a a |
Swap | Exchange the elements on the top of the stack. | a b -- b a |
Drop | Drop the element on the top of the stack. | a -- |
Rule | Description | Inference rule |
---|---|---|
Contraction (or Factoring) | Two equal (or unifiable) members on the same side of a sequent can be replaced by a single member (or common instance). | \[ \begin{prooftree} \AXC{$\Gamma, A, A \vdash \Sigma$} \UIC{$\Gamma, A \vdash \Sigma$} \end{prooftree} \]\[ \begin{prooftree} \AXC{$\Gamma \vdash A, A \Sigma$} \UIC{$\Gamma \vdash A, \Sigma$} \end{prooftree} \] |
Exchange | Two members on the same side of a sequent can be swapped. | \[ \begin{prooftree} \AXC{$\Gamma_1, A, \Gamma_2, B, \Gamma_3 \vdash \Sigma$} \UIC{$\Gamma_1, B, \Gamma_2, A, \Gamma_3 \vdash \Sigma$} \end{prooftree} \]\[ \begin{prooftree} \AXC{$\Gamma \vdash \Sigma_1, A, \Sigma_2, B, \Sigma_3$} \UIC{$\Gamma \vdash \Sigma_1, B, \Sigma_2, A, \Sigma_3$} \end{prooftree} \] |
Weakening | Hypotheses or conclusion of a sequent may be extended with additional members. | \[ \begin{prooftree} \AXC{$\Gamma \vdash \Sigma$} \UIC{$\Gamma , A\vdash \Sigma$} \end{prooftree} \]\[ \begin{prooftree} \AXC{$\Gamma \vdash \Sigma$} \UIC{$\Gamma \vdash \Sigma, A$} \end{prooftree} \] |
Stack oriented primitive | Structural rule |
---|---|
Duplicate | Contraction |
Swap | Exchange |
Drop | Weakening |
Type | Exchange | Weakening | Contraction | Logic | Interpretation |
---|---|---|---|---|---|
Ordered | ❌ | ❌ | ❌ | Noncommutative | Use exactly once and in order |
Linear | ✔️ | ❌ | ❌ | Linear | Use exactly once |
Affine | ✔️ | ✔️ | ❌ | Affine | Use at most once |
Relevant | ✔️ | ❌ | ✔️ | Relevant | Use at least once |
Normal | ✔️ | ✔️ | ✔️ | Standard | Use arbitrarly |
Type | Swap | Drop | Duplicate |
---|---|---|---|
Ordered | ❌ | ❌ | ❌ |
Linear | ✔️ | ❌ | ❌ |
Affine | ✔️ | ✔️ | ❌ |
Relevant | ✔️ | ❌ | ✔️ |
Normal | ✔️ | ✔️ | ✔️ |