Structural rule: Difference between revisions
→Common structural rules: wikilink resolution->Resolution (logic) |
→Common structural rules: weakening on the right |
||
Line 2: | Line 2: | ||
==Common structural rules== |
==Common structural rules== |
||
* '''Weakening''', where the hypotheses or conclusion of a [[sequent]] may be extended with additional members. In symbolic form weakening rules can be written as <math>\frac{\Gamma \vdash \Sigma}{\Gamma, A \vdash \Sigma}</math> on the left of the [[turnstile]], and <math>\frac{\Gamma \vdash \Sigma}{\Gamma \vdash |
* '''Weakening''', where the hypotheses or conclusion of a [[sequent]] may be extended with additional members. In symbolic form weakening rules can be written as <math>\frac{\Gamma \vdash \Sigma}{\Gamma, A \vdash \Sigma}</math> on the left of the [[turnstile]], and <math>\frac{\Gamma \vdash A, \Sigma}{\Gamma \vdash \Sigma}</math> on the right. |
||
* '''Contraction''', where two equal (or unifiable) members on the same side of a [[sequent]] may be replaced by a single member (or common instance). Symbolically: <math>\frac{\Gamma, A, A \vdash \Sigma}{\Gamma, A \vdash \Sigma}</math> and <math>\frac{\Gamma \vdash A, A, \Sigma}{\Gamma \vdash A, \Sigma}</math>. Also known as '''factoring''' in [[automated theorem proving]] systems using [[Resolution (logic)|resolution]]. |
* '''Contraction''', where two equal (or unifiable) members on the same side of a [[sequent]] may be replaced by a single member (or common instance). Symbolically: <math>\frac{\Gamma, A, A \vdash \Sigma}{\Gamma, A \vdash \Sigma}</math> and <math>\frac{\Gamma \vdash A, A, \Sigma}{\Gamma \vdash A, \Sigma}</math>. Also known as '''factoring''' in [[automated theorem proving]] systems using [[Resolution (logic)|resolution]]. |
||
* '''Exchange''', where two members on the same side of a [[sequent]] may be swapped. Symbolically: <math>\frac{\Gamma_1, A, \Gamma_2, B, \Gamma_3 \vdash \Sigma}{\Gamma_1, B, \Gamma_2, A, \Gamma_3 \vdash \Sigma}</math> and <math>\frac{\Gamma \vdash \Sigma_1, A, \Sigma_2, B, \Sigma_3}{\Gamma \vdash \Sigma_1, B, \Sigma_2, A, \Sigma_3}</math>. (This is also known as the ''permutation rule''.) |
* '''Exchange''', where two members on the same side of a [[sequent]] may be swapped. Symbolically: <math>\frac{\Gamma_1, A, \Gamma_2, B, \Gamma_3 \vdash \Sigma}{\Gamma_1, B, \Gamma_2, A, \Gamma_3 \vdash \Sigma}</math> and <math>\frac{\Gamma \vdash \Sigma_1, A, \Sigma_2, B, \Sigma_3}{\Gamma \vdash \Sigma_1, B, \Sigma_2, A, \Sigma_3}</math>. (This is also known as the ''permutation rule''.) |
Revision as of 15:16, 25 May 2008
In proof theory, a structural rule is an inference rule that does not refer to any logical connective, but instead operates on the judgements or sequents directly. Structural rules often mimic intended meta-theoretic properties of the logic. Logics that deny one or more of the structural rules are classified as substructural logics.
Common structural rules
- Weakening, where the hypotheses or conclusion of a sequent may be extended with additional members. In symbolic form weakening rules can be written as on the left of the turnstile, and on the right.
- Contraction, where two equal (or unifiable) members on the same side of a sequent may be replaced by a single member (or common instance). Symbolically: and . Also known as factoring in automated theorem proving systems using resolution.
- Exchange, where two members on the same side of a sequent may be swapped. Symbolically: and . (This is also known as the permutation rule.)
A logic without any of the above structural rules would interpret the sides of a sequent as pure sequences; with exchange, they are multisets; and with both contraction and exchange they are sets.
A famous structural rule is known as cut. Considerable effort is spent by proof theorists in showing that cut rules are superfluous in various logics. More precisely, what is shown is that cut is only (in a sense) a tool for abbreviating proofs, and does not add to the theorems that can be proved. The successful 'removal' of cut rules, known as cut elimination, is directly related to the philosophy of computation as normalization (see lambda calculus); it often gives a good indication of the complexity of deciding a given logic.