\( % Latex Preamble definitions here (mostly usepackage) \usepackage% %[dvipsnames] {xcolor} % make sure this is before the loading font packages \newcommand\hmmax{0} \newcommand\bmmax{0} \usepackage{amssymb} \usepackage{amsmath} \usepackage{mathtools} \usepackage %[dvipsnames] {graphicx} \usepackage{float} %\usepackage[numbers]{natbib} \usepackage[document]{ragged2e} % % enumitem doesn't seem to work with beamer %\usepackage[inline]{enumitem} \usepackage{wrapfig} \usepackage{stackrel} % extensible arrows \usepackage{extpfeil} % \usepackage{trfrac} \usepackage{amsthm} \usepackage{tikz} \usepackage{tikz-cd} \usepackage{tikz} \usepackage{tikz-qtree} \usetikzlibrary{automata, positioning, arrows, shapes.geometric} \usepackage{turnstile} \usepackage{comment} %https://tex.stackexchange.com/questions/21334/is-there-a-package-that-has-the-clockwise-gapped-circle-arrow-in-it % \usepackage{mathbx} \usepackage{datetime} \usepackage{datetime2} %% Also See %% http://u.cs.biu.ac.il/~tsaban/Pdf/LaTeXCommonErrs.pdf %% for general tips \usepackage{listings} \usepackage{subfigure} \usepackage{bm} \usepackage{amsfonts} %% - also included by amssymb \usepackage{mathpazo} %% - because the OP uses mathpazo, optional %\usepackage{tufte-latex} \usepackage{comment} \usepackage{mathtools} \usepackage{bussproofs} \usepackage{hyperref} %\usepackage{cleveref} \)
\( %% Your math definitions here % \newcommand{\alphaequiv}{{\underset{\raise 0.7em\alpha}{=}}} \newcommand{\yields}{\Rightarrow} \newcommand{\derives}{\overset{*}{\yields}} \newcommand{\alphaequiv}{=_{\alpha}} \newcommand{\tto}[2]{{\overset{#1}{\underset{#2}{\longrightarrow}}}} \newcommand{\transitsto}[2]{{\overset{#1}{\underset{#2}{\longrightarrow}}}} \newcommand{\xtransitsto}[2]{{\underset{#2}{\xrightarrow{#1}}}} \newcommand{\xtransitsfrom}[2]{{\underset{#2}{\xleftarrow{#1}}}} \newcommand{\xto}[2]{{\xtransitsto{#1}{#2}}} \newcommand{\xfrom}[2]{{\xtransitsfrom{#1}{#2}}} \newcommand{\xreaches}[2]{{\underset{#2}{\xtwoheadrightarrow{#1}}}} \newcommand{\reaches}[2]{{\underset{#2}{\xtwoheadrightarrow{#1}}}} %\newcommand{\reaches}[2]{{\overset{#1}{\underset{#2}{\twoheadrightarrow}}}} %\newcommand{\goesto}[2]{\transitsto{#1}{#2}} %\newcommand{\betareducesto}{{\underset{\beta}{\rightarrow}}} \newcommand{\betareducesto}{\rightarrow_{\beta}} %\newcommand{\etareducesto}{{\underset{\eta}{\rightarrow}}} \newcommand{\etareducesto}{\rightarrow_{\eta}} %\newcommand{\betaetareducesto}{{\underset{\beta\ \eta}{\rightarrow}}} \newcommand{\betaetareducesto}{\rightarrow_{\beta\eta}} \newcommand{\preducesto}{\rhd} \newcommand{\psimplifiesto}{\stackrel{\scriptstyle{*}}{\rhd}} \newcommand{\lreducesto}{\rightsquigarrow} \newcommand{\lsimplifiesto}{\stackrel{\scriptstyle{*}}{\lreducesto}} \newcommand{\rewritesto}{\hookrightarrow} \newcommand{\goesto}[1]{\stackrel{#1}{\rightarrow}} \newcommand{\xgoesto}[1]{\xrightarrow{#1}} \newcommand{\reducesto}{\stackrel{}{\rightarrow}} \newcommand{\simplifiesto}{\stackrel{\scriptstyle{*}}{\rightarrow}} \newcommand{\connected}[1]{\stackrel{#1}{\leftrightarrow}} \newcommand{\joins}{\downarrow} \newcommand{\evaluatesto}{\Longrightarrow} %\newcommand{\lit}[1]{\hbox{\sf{#1}}} \newcommand{\lit}[1]{{\sf{#1}}} \newcommand{\true}{\lit{true}} \newcommand{\false}{\lit{false}} \def\Z{\mbox{${\mathbb Z}$}} \def\N{\mbox{${\mathbb N}$}} \def\P{\mbox{${\mathbb P}$}} \def\R{\mbox{${\mathbb R}$}} \def\T{\mbox{${\mathbb T}$}} \newcommand{\Rp}{{\mathbb{R}}^+} \def\Bool{\mbox{${\mathbb B}$}} \def\Q{\mbox{${\mathbb Q}$}} \def\sA{\mbox{${\cal A}$}} \def\sB{\mbox{${\cal B}$}} \def\sC{\mbox{${\cal C}$}} \def\sD{\mbox{${\cal D}$}} \def\sF{\mbox{${\cal F}$}} \def\sG{\mbox{${\cal G}$}} \def\sL{\mbox{${\cal L}$}} \def\sP{\mbox{${\cal P}$}} \def\sM{\mbox{${\cal M}$}} \def\sN{\mbox{${\cal N}$}} \def\sR{\mbox{${\cal R}$}} \def\sS{\mbox{${\cal S}$}} \def\sO{\mbox{${\cal O}$}} \def\sT{\mbox{${\cal T}$}} \def\sU{\mbox{${\cal U}$}} \def\th{\mbox{$\widetilde{h}$}} \def\tg{\mbox{$\widetilde{g}$}} \def\tP{\mbox{$\widetilde{P}$}} \def\norm{\mbox{$\parallel$}} \def\osum{${{\bigcirc}}\!\!\!\!{\rm s}~$} \def\pf{\noindent {\bf Proof}~~} \def\exec{\mathit{exec}} \def\Act{\mathit{A\!ct}} \def\Traces{\mathit{Traces}} \def\Spec{\mathit{Spec}} \def\uns{\mathit{unless}} \def\ens{\mathit{ensures}} \def\lto{\mathit{leads\!\!-\!\!to}} \def\a{\alpha} \def\b{\beta} \def\c{\gamma} \def\d{\delta} \def\sP{\mbox{${\cal P}$}} \def\sM{\mbox{${\cal M}$}} \def\sA{\mbox{${\cal A}$}} \def\sB{\mbox{${\cal B}$}} \def\sC{\mbox{${\cal C}$}} \def\sI{\mbox{${\cal I}$}} \def\sS{\mbox{${\cal S}$}} \def\sD{\mbox{${\cal D}$}} \def\sF{\mbox{${\cal F}$}} \def\sG{\mbox{${\cal G}$}} \def\sR{\mbox{${\cal R}$}} \def\tg{\mbox{$\widetilde{g}$}} \def\ta{\mbox{$\widetilde{a}$}} \def\tb{\mbox{$\widetilde{b}$}} \def\tc{\mbox{$\widetilde{c}$}} \def\tx{\mbox{$\widetilde{x}$}} \def\ty{\mbox{$\widetilde{y}$}} \def\tz{\mbox{$\widetilde{z}$}} \def\tI{\mbox{$\widetilde{I}$}} \def\norm{\mbox{$\parallel$}} \def\sL{\mbox{${\cal L}$}} \def\sM{\mbox{${\cal M}$}} \def\sN{\mbox{${\cal N}$}} \def\th{\mbox{$\widetilde{h}$}} \def\tg{\mbox{$\widetilde{g}$}} \def\tP{\mbox{$\widetilde{P}$}} \def\norm{\mbox{$\parallel$}} \def\to{\rightarrow} \def\ov{\overline} \def\gets{\leftarrow} \def\too{\longrightarrow} \def\To{\Rightarrow} %\def\points{\mapsto} %\def\yields{\mapsto^{*}} \def\un{\underline} \def\vep{$\varepsilon$} \def\ep{$\epsilon$} \def\tri{$\bigtriangleup$} \def\Fi{$F^{\infty}$} \def\Di{\Delta^{\infty}} \def\ebox\Box \def\emp{\emptyset} \def\leadsto{\rightharpoondown^{*}} \newcommand{\benum}{\begin{enumerate}} \newcommand{\eenum}{\end{enumerate}} \newcommand{\bdes}{\begin{description}} \newcommand{\edes}{\end{description}} \newcommand{\bt}{\begin{theorem}} \newcommand{\et}{\end{theorem}} \newcommand{\bl}{\begin{lemma}} \newcommand{\el}{\end{lemma}} % \newcommand{\bp}{\begin{prop}} % \newcommand{\ep}{\end{prop}} \newcommand{\bd}{\begin{defn}} \newcommand{\ed}{\end{defn}} \newcommand{\brem}{\begin{remark}} \newcommand{\erem}{\end{remark}} \newcommand{\bxr}{\begin{exercise}} \newcommand{\exr}{\end{exercise}} \newcommand{\bxm}{\begin{example}} \newcommand{\exm}{\end{example}} \newcommand{\beqa}{\begin{eqnarray*}} \newcommand{\eeqa}{\end{eqnarray*}} \newcommand{\bc}{\begin{center}} \newcommand{\ec}{\end{center}} \newcommand{\bcent}{\begin{center}} \newcommand{\ecent}{\end{center}} % \newcommand{\la}{\langle} % \newcommand{\ra}{\rangle} \newcommand{\bcor}{\begin{corollary}} \newcommand{\ecor}{\end{corollary}} \newcommand{\bds}{\begin{defns}} \newcommand{\eds}{\end{defns}} \newcommand{\brems}{\begin{remarks}} \newcommand{\erems}{\end{remarks}} \newcommand{\bxrs}{\begin{exercises}} \newcommand{\exrs}{\end{exercises}} \newcommand{\bxms}{\begin{examples}} \newcommand{\exms}{\end{examples}} \newcommand{\bfig}{\begin{figure}} \newcommand{\efig}{\end{figure}} \newcommand{\set}[1]{\{#1\}} \newcommand{\pair}[1]{\langle #1\rangle} \newcommand{\tuple}[1]{\langle #1\rangle} \newcommand{\size}[1]{| #1 |} \newcommand{\union}{\cup} \newcommand{\Union}{\bigcup} \newcommand{\intersection}{\cap} \newcommand{\Intersection}{\bigcap} \newcommand{\B}{\textbf{B}} %\newcommand{\be}[2]{\begin{equation} \label{#1} \tag{#2} \end{equation}} \newcommand{\abs}[1]{{\lvert}#1{\rvert}} \newcommand{\id}[1]{\mathit{#1}} \newcommand{\pfun}{\rightharpoonup} \newcommand{\ra}[1]{\kern-1.5ex\xrightarrow{\ \ #1\ \ }\phantom{}\kern-1.5ex} \newcommand{\ras}[1]{\kern-1.5ex\xrightarrow{\ \ \smash{#1}\ \ }\phantom{}\kern-1.5ex} \newcommand{\da}[1]{\bigg\downarrow\raise.5ex\rlap{\scriptstyle#1}} \newcommand{\ua}[1]{\bigg\uparrow\raise.5ex\rlap{\scriptstyle#1}} % \newcommand{\lift}[1]{#1_{\bot}} \newcommand{\signal}[1]{\tilde{#1}} \newcommand{\ida}{\stackrel{{\sf def}}{=}} \newcommand{\eqn}{\doteq} \newcommand{\deduce}[1]{\sststile{#1}{}} %% These don't sit very well with MathJax %% so we don't plan to use theorem like environments %% in org documents. %% instead we plan to use headings with %% 1. property drawers with a CLASS property identifying %% the environment %% 2. A tag with the same name as the CLASS property %% In LaTeX export, these turn into (sub)sections. %% See http://u.cs.biu.ac.il/~tsaban/Pdf/LaTeXCommonErrs.pdf %% \newtheorem{prop}[thm]{Proposition} %% \theoremstyle{plain}%default %% \newtheorem{theorem}{Theorem}[section] %% \newtheorem{lemma}{Lemma}[section] %% \newtheorem{corollary}{Corollary}[section] %% \newtheorem{definition}{Definition}[section] %% \newtheorem{remark}{Remark}[section] %% \newtheorem{example}{Example}[section] %% \newtheorem{exercise}{Exercise}[section] \newcommand{\less}[1]{#1_{<}} \newcommand{\pfn}{\rightharpoonup} \newcommand{\ffn}{\stackrel{{\sf fin}}{\rightharpoonup}} \newcommand{\stkout}[1]{\ifmmode\text{\sout{\ensuremath{#1}}}\else\sout{#1}\fi} % Caution: Not supported by MathJax! % ---------------------------------- % \DeclareMathSymbol{\shortminus}{\mathbin}{AMSa}{"39} % \usepackage{amsfonts} %% <- also included by amssymb % \DeclareMathSymbol{\shortminus}{\mathbin}{AMSa}{"39} \usepackage{mathpazo} %% <- because the OP uses mathpazo, optional \newcommand{\mbf}[1]{\mathbf{#1}} \newcommand{\floor}[1]{\left\lfloor #1 \right\rfloor} \newcommand{\ceil}[1]{\left\lceil #1 \right\rceil} \newcommand{\rel}{\twoheadrightarrow} \newcommand{\map}{\rightarrow} %\newcommand{\fixed}{\boldsymbol{\circlearrowleft}} \newcommand{\terminal}{\not\xto{}{}} \newcommand{\fixed}{\bm\circlearrowleft} \newcommand{\imp}{\rightarrow} \newcommand{\dimp}{\leftrightarrow} % double implication \newcommand{\lequiv}{\Longleftrightarrow} % logical equivalence \newcommand{\limplies}{\Rightarrow} \newcommand{\lxor}{\veebar} \)
UP | HOME

Notes on Abstract Reduction Systems

Table of Contents

Change log

UNNUMBERED: notoc
  • [2022-09-28 Wed] Added theorems equating WFI with termination, and also the proof of Newmann's Lemma.
  • [2018-08-22 Wed] Added notes on strong induction versus regular induction.
  • [2018-08-22 Wed] Added notes on Induction on deductions.
  • [2018-08-22 Wed] Added definition of ``completely simplifies to.''

1 Introduction

This section introduces some basic definitions and results of reduction systems. This material is based on Chapter 1 of "Term Rewriting and All that", Baader and Nipkow (Cambridge University Press 1998).

2 Reduction

2.1 Abstract Reduction system

An abstract reduction system is simply any binary relation \(\reducesto\) over a set \(A\) of elements. Abstract' means that we make no further assumptions on either the elements of \(A\) or the relation \(\reducesto\). ``Reduction'' suggests that we are interested in properties motivated by reduction of algebraic expressions, also called terms. Furthermore, the word `system' is justified because the relation \((A,\reducesto)\) immediately defines a transition system with state space (and a set of initial states) \(A\), a singleton input alphabet, and a view function that is identity.

2.2 Composition of relations

Let \(R\subseteq A\times B\) and \(S\subseteq B\times C\). The composition \(R;S\subseteq A\times C\) is the relation \[\set{(a,c) \in A\times C \ | \exists b\in B. (a,b)\in R \land (b,c)\in S}\]

2.3 Relations built from Reduction

The basic reduction \(\goesto{}\) on \(A\) allows us to define other relations on \(A\):

Notation Definition Name/Description
\(\goesto{0}\) \(\set{(a,a), a\in A}\) Identity
\(\goesto{i+1}\) \(\goesto{};\goesto{i}\) i+1-fold composition, \(i\gt 0\)
\(\goesto{+}\) \(\Union_{i>0} \goesto{i}\) transitive closure
\(\goesto{*}\) \(\goesto{+} \union \goesto{0}\) reflexive transitive closure
\(\goesto{=}\) \(\goesto{} \union \goesto{0}\) reflexive closure
\(\goesto{-1}\) \(\set{(a',a), a\goesto{}a'}\) inverse
\(\connected{}\) \(\goesto{} \union \goesto{-1}\) symmetric closure
\(\connected{+}\) \((\connected{})^{+}\) transitive symmetric closure
\(\connected{*}\) \((\connected{})^{*}\) reflexive transitive symmetric closure

2.4 Terminology

  • \(a\) reduces to \(a'\) if \(a\reducesto a'\).
  • \(a\) is reducible if there is a \(a'\) such that \(a\goesto{}a'\). Also written \(a\goesto{}\).
  • \(a\) simplifies to \(a'\) if \(a\goesto{*} a'\).
  • \(a\) is in normal form (or is irreducible) if it is not reducible. Also written \(a\not\goesto{}\).
  • \(a'\) is a normal form of \(a\) if \(a\) simplifies to \(a'\) and \(a'\) is in normal form.
  • \(a\) completely simplifies to \(a'\) if \(a'\) is a normal form of \(a\).
  • \(a\) has a normal form if there is a normal form of \(a\).
  • \(a'\) is a direct successor of \(a\) if \(a\goesto{}a'\).
  • \(a'\) is a successor of \(a\) if \(a\goesto{+} a'\).
  • \(a\) and \(b\) are joinable if for some \(c\), \(a\goesto{*}c\) and \(b\goesto{*}c\). Written \(a\downarrow b\).
  • \(a\) and \(a'\) are connected if \(a\connected{*}a'\).

3 Properties of reductions

Let reduction \((A,\goesto{})\) be an ARS. In the following, unless stated otherwise, all variables are universally quantified.

Church-Rosser
iff \(x\connected{*}y\) then \(x\downarrow y\).
Confluent
\(a\goesto{*}b\) and \(a\goesto{*}c\) implies \(b\downarrow c\).
Semi-confluent
\(a\goesto{}b\) and \(a\goesto{*}c\) implies \(b\downarrow c\).
Locally-confluent
\(a\goesto{}b\) and \(a\goesto{}c\) implies \(b\downarrow c\).
Normalizing
iff every element simplifies to a normal form.
Terminating
iff there is no infinite chain \(a_0\goesto{} a_1\goesto{} \ldots\).
Convergent
iff it is terminating and confluent.

4 Relating termination, normalization and confluence

4.1 Theorem (Termination implies normalizing)

If \(\goesto{}\) is terminating, then it is is normalizing.

4.1.1 Proof

Every chain of reduction starting with an element \(a\) terminates. The terminal element is a normal form of \(a\).

4.2 Theorem (Confluence implies at most one normal form)

If \(\goesto{}\) is confluent, then every element has at most one normal form.

4.2.1 Proof

Let \(a\simplifiesto{b}\) and \(a\simplifiesto{c}\) and let \(b\) and \(c\) both be normal forms. By confluence, these two normal forms must simplify to a common term \(d\). That is \(b\simplifiesto{d}\) and \(c\simplifiesto{d}\). But since both \(b\) and \(c\) are normal forms, \(b\) can only simplify to \(d\) if \(d\) is equal to \(b\). By a similar reason \(d\) also equals \(c\). The normal forms \(b\) and \(c\) are therefore, identical.

4.3 Theorem (Confluence and Normalization imply unique normal form)

If \(\goesto{}\) is normalizing and confluent, then every element has a unique normal form.

4.3.1 Proof

Normalization implies that there is at at least one normal form. Confluence implies that there is at most one normal form. Both together imply uniqueness of normal form.

5 Well-founded induction

The principle of Well-founded Induction generalizes the principle of induction on natural numbers to any reduction system that is terminating.

\[ \frac{\forall a\in A. (\forall b\in A. a\goesto{}b \implies P(b)) \implies P(a)}{\forall a\in A. P(a)} \qquad \mbox{WFI} \]

That is, given a reduction \(\goesto{}\) on a set \(A\), to show a property \(P\) is true for all \(a\), it is sufficient to prove \(P(a)\) assuming \(P(b)\) is true for all immediate successors \(b\) of \(a\).

By taking \(A\) to be natural numbers and \(a\reducesto b\) to mean \(a = b+1\) we get the standard induction principle on natural numbers.

5.1 Theorem (If \(\goesto{}\) terminates then WFI holds)

5.1.1 Proof

We prove that if WFI does NOT hold, then \(\goesto{}\) is non-terminating.

  1. Assume WFI does not hold. That means the antecedent holds and the consequent doesn't, i.e., \(\forall a. P(a)\) is false. Let, for some \(a_0\), \(P(a_0)\) be false.
  2. Now, the antecedent is a universal statement and is true. So, let's instantiate it for \(a_0\) and see what we get:
  3. It's an implication \((\forall b\in A. a_0\goesto{}b \implies P(b)) \implies P(a_0)\).
  4. Since we've assumed \(P(a_0)\) is false, the only way the implication is true is if the antecedent of the implication above is false.
  5. So, \(\forall b\in A. a_0\goesto{}b \implies P(b)\) is false.
  6. Let \(a_1\) be an instance that falsifies the above. So, \(a_0\goesto{}a_1 \implies P(a_1)\) is false.
  7. The only way the above formula is false if is \(a_0\goesto{}a_1\) and \(P(a_1)\) is false.
  8. But now, we can repeat the whole argument with \(P(a_1)\), and arrive at an \(a_2\) such that \(a_1\goesto{}a_2\) and \(P(a_2)\) is false.
  9. Doing this ad infinitum, we have a non-terminating sequence \(a_0\goesto{}a_1\goesto{}\ldots\).
  10. Hence \((A,\goesto{})\) is non-terminating. QED.

5.2 Theorem (If WFI holds, then \(\goesto{}\) terminates)

5.2.1 Proof

  1. Assume WFI.
  2. Pick \(P(a)\) to be the predicate ``every chain starting from \(a\) terminates.''
  3. Showing that \(\goesto{}\) terminates is then the same thing as showing \(\forall a. P(a)\).
  4. We claim \(\forall a\in A, (\forall b\in A.\ a\goesto{}b \implies P(b)) \implies P(a)\). (Notice that this is just the antecedent of WFI).
  5. Assume an arbitrary \(a_0\). To prove the implication \((\forall b\in A.\ a\goesto{}b \implies P(b)) \implies P(a_0)\), we assume \(\forall b\in A.\ a\goesto{}b \implies P(b)\) and try to prove \(P(a_0)\). The assumption now is that for all immediate successors \(b\) of \(a_0\), \(P(b)\) is true, then \(P(a_0)\) is true.
  6. We are now given that every chain from each immediate successor \(b\) of \(a_0\) terminates. It follows that every chain from \(a_0\) terminates. If you're not convinced, assume to the contrary, that there is some chain from \(a_0\) not terminating. If \(b\) is the immediate successor of \(a_0\) in this chain, then the chain from \(b\) also does not terminate. But then we've just found a non-terminating chain starting from \(b\), an immediate successor of \(a_0\). Contradiction.
  7. Hence \(P(a_0)\) is true.
  8. Since \(a_0\) was arbitrary, it follows that \(\forall a\in A\ (\forall b\in A.\ a\goesto{}b\) \implies P(a))$. So we have proved the claim made in Step 4.
  9. Because we assume WFI, we concluded that the consequent \(\forall a. P(a)\) is true. But this is the same thing as saying that \(\goesto{}\) terminates (Step 3).

5.3 ``Strong'' Induction

The so-called strong induction principle may be stated as follows: \[ \frac{\forall a\in A. (\forall b\in A. a\goesto{+}b \implies P(b)) \implies P(a)}{\forall a\in A. P(a)} \qquad \mbox{WFI (strong)} \]

That is, to show a property \(P\) is true for all \(a\), it is sufficient to prove \(P(a)\) assuming \(P(b)\) is true for all successors – immediate or otherwise – \(b\) of \(a\).

The ``strong'' induction principle on natural numbers is obtained once we realise that the transitive closure of the relation \(a=b+1\) is the relation \(b < a\).

Despite the nomenclature, the two flavours of induction are in fact equivalent. To see why, note that

  • 1. \(\goesto{+}\) is the transitive closure of \(\goesto{}\).
  • 2. \(\goesto{+}\) is terminating iff \(\goesto{}\) is terminating.
  • 3. Thus the induction principle holds for the relation \(\goesto{+}\) as well.
  • 4. The transitive closure of \(\goesto{+}\) is itself.

5.4 Induction on deductions

You are familiar with the principle of induction on natural numbers, and also perhaps with the principle of structural induction on trees and expression syntax.

You might have also have come across deduction (or inference) systems used for carrying out systematic and formal reasoning.

A deduction system is used to infer judgements. An example of a judgement could be ``today is Tuesday'' or ``1+1=2'', or ``5 is a number'', etc.

A deduction system consists of rules of inference. A rule of inference looks like this:

\[\frac {A_1\quad \ldots \quad A_n}{C}\quad {R}\]

Here, the A's and C are judgements. The A's are antecedents of the rule; C is the consequent. This rule states that if, using the deduction system, we deduce each antecedent \(A_i\), \(1\leq i\leq n\), then we deduce the consequent \(C\). Another way to say this is that we are permitted to infer \(C\) only if we already have inferred all the antecedent \(A\)'s.

An axiom is a rule that may be thought of as an inference rule with no antecedents. Informally, an axiom requires no antecedents, its validity is self evident.

When studying properties of programming languages, we are interested proving properties of all objects deducible in a given deduction system. We do this by applying the principle of induction on the deductions themselves.

The important insight here is that deduction defines a binary relation on judgements. \(a\reducesto b\) if \(a\) is a consequent of some rule of which \(b\) is an antecedent. Thus deduction from the antecdents to a consequent may be alternatively seen as a reduction from the consequent to each of its antecedent. Applying the principle of well-founded induction to this reduction system allows us to prove properties of judgements deduced in the deduction system. To show a property \(P\) about all derivable judgements, show that \(P(a)\) is true for all axioms \(a\) and then show, for each deduction

\[\frac {a_1\quad \ldots \quad a_n}{c}\quad {R}\] assuming \(P\) is true for each antecedent \(a_1, \ldots, a_n\) then \(P(c)\) is true.

6 Proving confluence

\(\goesto{}\) is locally confluent if \(a\rightarrow b\) and \(a\rightarrow c\) implies \(b\downarrow c\): if \(a\) reduces to two elements \(b\) and \(c\), then \(b\) and \(c\) are joinable.

Local confluence is weaker than confluence. That is, confluence implies local confluence (Exercise: prove it), but local confluence does not imply confluence. Examples of the latter fact are given in TRAAT, page 29.

However, if in addition to being locally confluent, an ARS is terminating, then it is confluent.

6.1 Newman's Lemma (Termination and local confluence imply confluence)

If \((A,\goesto{})\) is terminating and locally confluent, then it is confluent.

6.1.1 Proof

  1. Since \((A,\goesto{})\) is terminating, we get to apply WFI on it.
  2. We consider the predicate \(P(a)=\forall b, c:\ a\goesto{*}b\) and \(a\goesto{*}c\) implies \(b\downarrow c\). Confluence is the same this as saying that \(\forall a.\ P(a)\).
  3. Let \(x\) be an arbitrary element of \(A\). Further assume that \(x\goesto{*}y\) and \(x\goesto{*}z\).
  4. If \(x=y\) or \(x=z\), then \(y\downarrow z\) follows immediately.
  5. Otherwise, \(y\) and \(z\) are at least one step away from \(x\), i.e., \(x\goesto{}y_1\goesto{*}y\) and \(x\goesto{}z_1\goesto{*}z\).
  6. From local confluence, it follows \(y_1\downarrow z_1\). Let's assume they meet at \(u\).
  7. By the WFI hypothesis both \(y_1\) and \(z_1\) satisfy \(P\).
  8. Consider \(y_1\). \(y_1\goesto{*}y\) and \(y_1\goesto{*}u\). Hence \(y_1\downarrow u\). Assume they meet at \(v\).
  9. Consider \(z_1\). \(z_1\goesto{*}u\) (Step 6). \(u\goesto{*}v\) (Step 8). Hence, \(z_1\goesto{*}v\). Also, \(z_1\goesto{*}z\) (Step 5). By another application of the WFI hypthesis, we have \(v\downarrow z\). Let them meet at \(w\).
  10. It is now clear that we have \(y\goesto{*}v\) (Step 8) and \(v\goesto{*}w\) (Step 9), while \(z\goesto{*}w\). This just means that \(y\) and \(z\) are joinable.
  11. We can discharge the assumption \(x\) reaches \(y\) and \(z\) to get the implication \(x\goesto{*}y\) and \(x\goesto{*}z\) implies \(y\downarrow\).
  12. Note that in Step 11, \(x\) was arbitrary. If we universally quantifying over \(x\), we have \(\forall x,y,z\in A, x\goesto{*}y\) and \(x\goesto{*} z\) implies \(y\downarrow z\). But this is the same thing as saying that \((A,\goesto{})\) is confluent. QED.

If you see the book (TRAAT, p29), there is a nice diagram that visually captures the proof.

7 References and Further Reading

Author: Venkatesh Choppella

Created: 2023-11-25 Sat 09:15

Validate