ポーランド記法

同義語:Polish記法前置記法Polish notationprefix notation

概要

ポーランド記法(Polish notation)とは、演算の記号を引数より前に書いて括弧なしで式を表す書き方である。各記号の項数が決まっていれば、記号列が項になるのは重みの和が $1$ で真の接頭辞の重みがすべて $0$ 以下のときに限られ、読み方はただ一通りに定まる。記号を引数の後ろに書く逆ポーランド記法の記号列は、空のスタックから左から読んで途中で止まらず長さ $1$ の結果が残るときに限って項であり、残った元がその値になる。重みが $1$ の記号列の回転のうちちょうど 1 つが項になるので、重みの和が $1$ になるように記号ごとの個数を指定すると、項の個数は多項係数を長さで割った値になり、二分木を数える Catalan 数はその特別な場合である。

$$\newcommand{C}[0]{\mathbb{C}} \newcommand{div}[0]{\mathbin{÷}} \newcommand{N}[0]{\mathbb{N}} \newcommand{Q}[0]{\mathbb{Q}} \newcommand{R}[0]{\mathbb{R}} \newcommand{Z}[0]{\mathbb{Z}} $$

前提知識: 一意可読性, 構造的帰納法, 論理式

ポーランド記法(Polish notation)とは、演算の記号をその引数より前に書き、括弧を使わずに式を表す書き方である。通常の書き方の $(a+b)\times c$ は ${\times}{+}abc$、$a+(b\times c)$ は ${+}a{\times}bc$ と書かれる。各記号がとる引数の個数(項数)さえ決まっていれば、括弧がなくても式の組み立て方はただ一通りに読める。命題論理の式をこの形で書く方法は、1920 年代の終わりに Jan Łukasiewicz が導入した(MBTZ25 付録 A.3、p. 402)。演算の記号を引数の後ろに書く書き方は 逆ポーランド記法(reverse Polish notation)とよばれ、1 本のスタックで左から順に値を計算できる。
ポーランド記法の記号列が項になるための重みによる判定と、その一意可読性は 一意可読性 で証明されている。この記事では、それを前提に、ポーランド記法と通常の括弧つきの書き方との対応を述べ、命題論理の Łukasiewicz の記法を例として扱う。そのうえで、逆ポーランド記法の記号列をスタックで読む手続きが、記号列が項の並びであるかどうかの判定と値の計算を同時に正しく行うことを証明する。さらに、記号列の巡回的なずらし(回転)のうちちょうど 1 つが項になるという巡回補題を証明し、記号ごとの個数を指定した項の個数の公式を導く。二分木の個数を数える Catalan 数は、その特別な場合である。

定義

記号の型 $(F,\mathrm{ar})$、すなわち集合 $F$ と項数の写像 $\mathrm{ar}\colon F\to\{0,1,2,\dots\}$ を固定する(一意可読性 の定義「記号の型と項数」)。$F$ の元を有限個並べた列を 記号列 とよび、その全体を $F^*$、空列を $\varepsilon$ と書く。記号 $f$ の 重み を $K(f):=1-\mathrm{ar}(f)$、記号列 $w=x_1\cdots x_\ell$ の重みを $K(w):=K(x_1)+\cdots+K(x_\ell)$ と定める(一意可読性 の定義「重み」)。

ポーランド記法と逆ポーランド記法

次の規則で帰納的に生成される $F^*$ の部分集合を $P$ と書き、その元を ポーランド記法の項 という。

  • $f\in F$、$\mathrm{ar}(f)=n$、$t_1,\dots,t_n\in P$ ならば $ft_1t_2\cdots t_n\in P$。
    同様に、$t_1,\dots,t_n\in P'$ ならば $t_1t_2\cdots t_nf\in P'$ という規則で生成される集合 $P'$ の元を 逆ポーランド記法の項 という。$m\ge0$ について、$P$ の元をちょうど $m$ 個つないだ記号列の全体を $P^m$、$P'$ の元をちょうど $m$ 個つないだ記号列の全体を $P'^m$ と書く($P^0=P'^0=\{\varepsilon\}$)。

項数 $0$ の記号は定数や変数を表し、それだけで長さ $1$ の項になる。一意可読性 の定義「Polish記法の項」と同じものであり、そこでは次のことが証明されている。

  • 記号列 $w$ が $P^m$ に属することは、$K(w)=m$ であり、$w$ のすべての真の接頭辞 $v$(空列を含む)について $K(v)< m$ であることと同値である(補題「重みによる判定」)。特に $w\in P$ であることは、$K(w)=1$ かつすべての真の接頭辞の重みが $0$ 以下であることと同値である。
  • 各 $t\in P$ は $t=ft_1\cdots t_n$($\mathrm{ar}(f)=n$、$t_i\in P$)の形にただ一通りに書ける(定理「Polish記法の一意可読性」)。各 $t\in P'$ も $t=t_1\cdots t_nf$ の形にただ一通りに書ける(系「逆Polish記法の一意可読性」)。
    記号列を逆順に並べ替える写像を $\rho(x_1\cdots x_\ell):=x_\ell\cdots x_1$ と書く。$\rho(t_1\cdots t_nf)=f\rho(t_n)\cdots\rho(t_1)$ なので、$\rho$ は $P'$ を $P$ の上に、$P'^m$ を $P^m$ の上に 1 対 1 に写す(同系の証明)。

括弧つきの書き方との対応

通常の書き方では、項を $f(s_1,\dots,s_n)$ の形に括弧とコンマで組み立てる(項数 $0$ の記号 $c$ はそれだけで項)。この書き方も一意可読性をもつ(論理式 の補題「項の真の始切片」から、一意可読性 の定理「Polish記法の一意可読性」の 2・3 と同じ議論で従う)ので、構造的帰納法 の定理「構造的再帰定理」により、組み立て方に沿って
$$\pi(c):=c,\qquad \pi\bigl(f(s_1,\dots,s_n)\bigr):=f\,\pi(s_1)\cdots\pi(s_n)$$
と定めた写像 $\pi$ が矛盾なく定まる。$\pi(s)$ は $s$ から括弧とコンマを消したものにほかならない。

括弧を消す写像は全単射

$\pi$ は括弧つきの項の全体から $P$ への全単射である。逆写像 $\beta$ は $\beta(ft_1\cdots t_n):=f(\beta(t_1),\dots,\beta(t_n))$ で与えられる。

再帰の定義を交互に当てる

$\pi$ の値が $P$ に入ることは、括弧つきの項の組み立てに沿った帰納法で分かる。$P$ の一意可読性により、$\beta$ も $P$ の組み立てに沿った再帰で矛盾なく定まる。括弧つきの項 $s=f(s_1,\dots,s_n)$ について、帰納法の仮定 $\beta(\pi(s_i))=s_i$ から $\beta(\pi(s))=\beta(f\pi(s_1)\cdots\pi(s_n))=f(s_1,\dots,s_n)=s$ である。同様に $t=ft_1\cdots t_n\in P$ について、帰納法の仮定 $\pi(\beta(t_i))=t_i$ から $\pi(\beta(t))=\pi\bigl(f(\beta(t_1),\dots,\beta(t_n))\bigr)=f\,t_1\cdots t_n=t$ である。よって $\beta\circ\pi$ と $\pi\circ\beta$ はどちらも恒等写像である。$\square$

括弧つきの項を根付きの順序木(各頂点に記号を書き、項数 $n$ の記号の頂点に左から順に $n$ 個の子をもつ木)として描くと、$\pi$ は根から出発して「頂点を訪れてから左の子から順に部分木をたどる」順(前順、preorder)に記号を読み上げることにあたる。逆ポーランド記法は、部分木をすべてたどってから頂点を読む順(後順、postorder)にあたる(二分木 の定義「前順・中順・後順」、FS09 §I.5、pp. 74–75)。

Łukasiewicz の記法

命題論理では、命題変数を小文字、否定を $\mathsf N$、連言を $\mathsf K$、選言を $\mathsf A$、含意を $\mathsf C$、同値を $\mathsf E$ で表し、$\mathsf N$ を項数 $1$、$\mathsf K,\mathsf A,\mathsf C,\mathsf E$ を項数 $2$、命題変数を項数 $0$ の記号とする(MBTZ25 付録 A.3、p. 402)。

通常の書き方ポーランド記法
$p\land q$$\mathsf Kpq$
$(\lnot p)\to q$$\mathsf{CN}pq$
$\lnot(p\to q)$$\mathsf{NC}pq$
$(p\to q)\to((q\to r)\to(p\to r))$$\mathsf{CC}pq\mathsf{CC}qr\mathsf Cpr$
$\lnot(p\land q)\leftrightarrow(\lnot p\lor\lnot q)$$\mathsf{ENK}pq\mathsf{AN}p\mathsf Nq$
主結合子を重みで探す

$w=\mathsf{CC}pq\mathsf{CC}qr\mathsf Cpr$ の重みは $\mathsf C$ が $-1$、命題変数が $1$ である。先頭の $\mathsf C$ を除いた残り $\mathsf Cpq\mathsf{CC}qr\mathsf Cpr$ の重みを左から足すと $-1,0,1,\dots$ と進み、$\mathsf Cpq$ の直後で初めて $1$ に達する。よって最初の引数は $\mathsf Cpq$、残りの $\mathsf{CC}qr\mathsf Cpr$ が第 2 引数であり、$w$ は「$p\to q$ ならば($q\to r$ ならば $p\to r$)」を表す。主結合子は常に先頭の記号であり、引数の切れ目は重みの和が初めて $1$ に達する位置で分かる(一意可読性 の補題「重みによる判定」の後の説明)。$\mathsf{CN}pq$ と $\mathsf{NC}pq$ では先頭の記号が違うので、主結合子がそれぞれ含意と否定であることが括弧なしで読み取れる。

スタックによる読み取り

記号の型 $(F,\mathrm{ar})$ の 解釈 とは、空でない集合 $D$ と、各 $f\in F$ に対する写像 $f^D\colon D^{\mathrm{ar}(f)}\to D$(項数 $0$ なら $D$ の元)の組である。逆ポーランド記法の項の 値 を
$$\operatorname{val}(t_1\cdots t_nf):=f^D\bigl(\operatorname{val}(t_1),\dots,\operatorname{val}(t_n)\bigr)$$
で定める。逆ポーランド記法の一意可読性により、これは項の組み立てに沿った再帰として矛盾なく定まる(構造的帰納法 の定理「構造的再帰定理」)。

スタックによる読み取りの手続き

$D$ の元の有限列を スタック とよび、右端をその 一番上 とよぶ。スタック $\sigma$ と記号列 $w\in F^*$ について、$w$ の記号を左から順に 1 つずつ読み、記号 $f$($\mathrm{ar}(f)=n$)を読むたびに次を行う。

  • スタックの長さが $n$ 未満なら、そこで 停止 する。
  • そうでなければ、一番上の $n$ 個 $u_1,\dots,u_n$($u_n$ が一番上)を取り除き、$f^D(u_1,\dots,u_n)$ を一番上に積む。
    $w$ を最後まで停止せずに読めたとき、そのときのスタックを $\sigma$ から $w$ を読んだ 結果 という。

項数 $0$ の記号では何も取り除かず、その値を積むだけである。

スタックによる読み取りの正しさ

解釈 $D$、記号列 $w\in F^*$、整数 $m\ge0$ について、次が成り立つ。

  1. 空のスタックから $w$ を最後まで停止せずに読め、結果の長さが $m$ であることは、$w\in P'^m$ であることと同値である。
  2. $w=t_1\cdots t_m$($t_j\in P'$)ならば、どのスタック $\sigma$ からも $w$ を停止せずに読め、結果は $\sigma$ の後ろに $\operatorname{val}(t_1),\dots,\operatorname{val}(t_m)$ を順に並べたものである。
長さは重みで、値は最後の記号で

長さの計算。 空のスタックから $w$ の接頭辞 $u$ までを停止せずに読めたとき、スタックの長さは $K(u)$ であることを、$u$ の長さについての帰納法で示す。$u=\varepsilon$ なら長さは $0=K(\varepsilon)$ である。$u$ まで読んで長さが $K(u)$ のとき、次の記号 $f$($\mathrm{ar}(f)=n$)で停止するのは $K(u)< n$、すなわち $K(uf)=K(u)+1-n<1$ のときであり、停止しなければ長さは $K(u)-n+1=K(uf)$ になる。したがって、空のスタックから $w$ を停止せずに読めることは、$w$ の空でないすべての接頭辞 $u$ について $K(u)\ge1$ であることと同値であり、そのとき結果の長さは $K(w)$ である。
判定の言い換え。 $w\in P'^m$ であることは、$K(w)=m$ かつ空でないすべての接頭辞 $u$ について $K(u)\ge1$ であることと同値であることを示す。$\rho$ は $P'^m$ を $P^m$ の上に 1 対 1 に写すので、$w\in P'^m$ は $\rho(w)\in P^m$ と同値であり、一意可読性 の補題「重みによる判定」により、これは $K(\rho(w))=m$ かつ $\rho(w)$ のすべての真の接頭辞の重みが $m$ 未満であることと同値である。$K(\rho(w))=K(w)$ である。$\rho(w)$ の真の接頭辞は、$w=uz$($u\ne\varepsilon$)と分けたときの $\rho(z)$ にちょうど対応し、$K(\rho(z))=K(w)-K(u)$ である。$K(w)=m$ のもとで、$K(\rho(z))< m$ は $K(u)>0$、すなわち $K(u)\ge1$ と同値である。
以上の 2 段から 1 が従う。
値の計算(2)。 $w$ の長さについての帰納法で示す。$m=0$ なら $w=\varepsilon$ で、結果は $\sigma$ である。$m\ge1$ とし、$t_m=y_1\cdots y_nf$($y_i\in P'$、$\mathrm{ar}(f)=n$)と書く。$w'':=t_1\cdots t_{m-1}y_1\cdots y_n$ は $m-1+n$ 個の項をつないだ $w$ より短い記号列で、$w=w''f$ である。帰納法の仮定により、$\sigma$ から $w''$ を停止せずに読め、結果は $\sigma$ の後ろに $\operatorname{val}(t_1),\dots,\operatorname{val}(t_{m-1}),\operatorname{val}(y_1),\dots,\operatorname{val}(y_n)$ を並べたものである。その長さは $n$ 以上なので $f$ で停止せず、一番上の $n$ 個 $\operatorname{val}(y_1),\dots,\operatorname{val}(y_n)$ が $f^D(\operatorname{val}(y_1),\dots,\operatorname{val}(y_n))=\operatorname{val}(t_m)$ に置き換わる。$\square$

1 と 2 を合わせると、空のスタックから読んで停止せずに長さ $1$ の結果が残れば記号列は項であり、残った元がその値である。手続きは記号列を 1 回読むだけで、項であるかどうかの判定と値の計算を同時に行う。

算術式を読む

$D=\mathbb Z$ とし、$+,\times$ を項数 $2$ の記号、数字を項数 $0$ の記号として通常の意味で解釈する。逆ポーランド記法の記号列 $34{+}2{\times}$ を空のスタックから読むと、スタックは
$$(3)\to(3,4)\to(7)\to(7,2)\to(14)$$
と変わり、長さ $1$ の結果 $(14)$ が残る。これは $(3+4)\times2$ の値である。一方 $3{+}4$ は、$+$ を読むときスタックが $(3)$ で長さ $1<2$ なので停止する。実際、接頭辞 $3{+}$ の重みは $1-1=0<1$ である。

ポーランド記法の記号列は、右から左へ読めば同じ手続きで値を計算できる(MBTZ25 付録 A.3、p. 403)。$w$ を右から読むことは $\rho(w)$ を左から読むことであり、$\rho(ft_1\cdots t_n)=\rho(t_n)\cdots\rho(t_1)f$ なので引数が逆順に積まれる。そこで項数 $n$ の記号では、一番上の元を第 1 引数として $u_1$(一番上)、$u_2,\dots,u_n$ の順に取り出して $f^D(u_1,\dots,u_n)$ を積む。thm-pn-stack の証明は、この読み方にもそのまま当てはまる。

項の個数と巡回補題

長さ $\ell\ge1$ の記号列 $w=x_1\cdots x_\ell$ と $0\le r< \ell$ について、$w^{(r)}:=x_{r+1}\cdots x_\ell x_1\cdots x_r$ を $w$ の 回転 という($w^{(0)}=w$)。回転の回転は回転であり、添字を $\ell$ を法として足し合わせたものになる。

回転のうちちょうど一つが項

長さ $\ell\ge1$ の記号列 $w$ が $K(w)=1$ を満たすならば、次が成り立つ。

  1. $w^{(r)}\in P$ となる $r\in\{0,1,\dots,\ell-1\}$ はちょうど 1 つある。
  2. $\ell$ 個の回転 $w^{(0)},\dots,w^{(\ell-1)}$ はどの 2 つも異なる。
部分和の最大値の位置から読み始める

$w=x_1\cdots x_\ell$ とし、$k>\ell$ に対しても $x_k:=x_{k-\ell}$ と周期的に延長して、$S_0:=0$、$S_k:=K(x_1)+\cdots+K(x_k)$ とおく。$K(w)=1$ なので、$k\ge0$ について $S_{k+\ell}=S_k+1$ である。
1:$w^{(r)}$ は $x_{r+1}\cdots x_{r+\ell}$ と同じ記号列であり、その重みは $1$ である。長さ $j$($0\le j< \ell$)の真の接頭辞の重みは $S_{r+j}-S_r$ なので、一意可読性 の補題「重みによる判定」により
$$w^{(r)}\in P\iff r\le k\le r+\ell-1\text{ を満たすすべての }k\text{ で }S_k\le S_r$$
である。$M:=\max\{S_0,S_1,\dots,S_{\ell-1}\}$ とし、$S_{r_0}=M$ となる最小の $r_0\in\{0,\dots,\ell-1\}$ をとる。
$w^{(r_0)}\in P$ を示す。$r_0\le k\le\ell-1$ なら $S_k\le M=S_{r_0}$ である。$\ell\le k\le r_0+\ell-1$ なら $k=k'+\ell$($0\le k'< r_0$)と書け、$r_0$ の最小性から $S_{k'}< M$、重みは整数なので $S_{k'}\le M-1$ であり、$S_k=S_{k'}+1\le M=S_{r_0}$ である。
逆に $w^{(r)}\in P$ とする。$r\le k\le\ell-1$ なら $S_k\le S_r$ である。$0\le k'< r$ なら $k=k'+\ell$ は $r\le k\le r+\ell-1$ を満たすので、$S_{k'}+1=S_k\le S_r$、すなわち $S_{k'}< S_r$ である。よって $S_r$ は $S_0,\dots,S_{\ell-1}$ の最大値 $M$ であり、$r$ はそれを達成する最小の添字、すなわち $r=r_0$ である。
2:$0\le r< r'< \ell$ で $w^{(r)}=w^{(r')}$ とする。$e:=r_0-r$ を $\ell$ を法として $\{0,\dots,\ell-1\}$ にとり、両辺をさらに $e$ だけ回転させると、$w^{(r_0)}=(w^{(r)})^{(e)}=(w^{(r')})^{(e)}=w^{(r'')}$ となる。ここで $r''$ は $r'+e$ を $\ell$ で割った余りであり、$r'\ne r$ なので $r''\ne r_0$ である。すると $w^{(r'')}\in P$ となって 1 の一意性に反する。$\square$

$\pm1$ の列についての同じ主張が Catalan数 の補題「巡回補題」である。そこでの $+1$ は項数 $2$ の記号に、$-1$ は項数 $0$ の記号にあたり、重みの符号を逆にとったものになっている。一般の項数の場合の主張と数え上げへの応用は FS09 Note I.47(pp. 75–76)にある。

記号の個数を指定した項の個数

相異なる記号 $f_1,\dots,f_d\in F$ と整数 $k_1,\dots,k_d\ge0$ をとり、$\ell:=k_1+\cdots+k_d\ge1$ とする。各 $f_i$ がちょうど $k_i$ 回現れ、ほかの記号を含まないポーランド記法の項の個数を $N$ とすると、
$$N=\begin{cases}\dfrac1\ell\cdot\dfrac{\ell!}{k_1!\,k_2!\cdots k_d!}&\left(\displaystyle\sum_{i=1}^dk_i\bigl(1-\mathrm{ar}(f_i)\bigr)=1\text{ のとき}\right),\\[3mm] 0&(\text{そうでないとき})\end{cases}$$
である。

回転で組に分ける

項の重みは $1$ なので(一意可読性 の補題「重みによる判定」)、$\sum_ik_i(1-\mathrm{ar}(f_i))\ne1$ なら条件を満たす項はなく $N=0$ である。以下、この和が $1$ であるとする。各 $f_i$ がちょうど $k_i$ 回現れる長さ $\ell$ の記号列の集合を $W$ とすると、$|W|=\ell!/(k_1!\cdots k_d!)$ であり、$W$ の元の重みはどれも $1$ である。
$W$ の元 $w,w'$ が互いの回転であるとき $w\sim w'$ と書くと、$w=w^{(0)}$ であり、$w'=w^{(r)}$($r\ge1$)なら $w=w'^{(\ell-r)}$ であり、回転の回転は回転なので、$\sim$ は $W$ 上の同値関係である。$w$ の同値類は $\{w^{(0)},\dots,w^{(\ell-1)}\}$ であり、thm-pn-cycle の 2 によりちょうど $\ell$ 個の元からなり、1 によりちょうど 1 つの項を含む。$W$ はこれらの同値類に分かれるので、同値類の個数は $|W|/\ell$ であり、項の個数 $N$ はそれに等しい。$\square$

公式の特別な場合
  1. 項数 $2$ の記号 $f$ を $n$ 個、項数 $0$ の記号 $c$ を $n+1$ 個使う場合、重みの和は $-n+(n+1)=1$ であり、
    $$N=\frac1{2n+1}\binom{2n+1}{n}=\frac{(2n)!}{n!\,(n+1)!}=\frac1{n+1}\binom{2n}{n}$$
    となる。これは Catalan 数 $C_n$ であり、内部の頂点が $n$ 個の、各内部頂点が子を 2 つもつ順序木の個数である(Catalan数)。$n=0,1,2,3$ で $1,1,2,5$ である。
  2. 項数 $3$ の記号を $n$ 個、項数 $0$ の記号 $c$ を $2n+1$ 個使う場合は $N=\frac1{3n+1}\binom{3n+1}{n}=\frac1{2n+1}\binom{3n}{n}$ であり、$n=0,1,2,3,4$ で $1,1,3,12,55$ である。
  3. 項数 $1$ の記号 $g$ を $n$ 個、$c$ を 1 個使う場合は $N=\frac1{n+1}\cdot\frac{(n+1)!}{n!\,1!}=1$ であり、項は $g\cdots gc$ だけである。
  4. 項数 $2$ の $f$、項数 $1$ の $g$ を 1 個ずつ、$c$ を 2 個使う場合は $\ell=4$、重みの和は $-1+0+2=1$ で、$N=\frac14\cdot\frac{4!}{1!\,1!\,2!}=3$ である。実際、項は $fgcc$、$fcgc$、$gfcc$ の 3 つである。$fgcc$ の回転 $fgcc$、$gccf$、$ccfg$、$cfgc$ のうち項は $fgcc$ だけである。

反例:条件を外すと成り立たない

外す条件反例成り立たなくなること
読み始めのスタックが空(thm-pn-stack の 1)項数 $2$ の記号 $f$ だけの記号列 $f$ を、長さ $2$ のスタックから読む「停止せずに長さ $1$ の結果が残れば項」
逆ポーランド記法の記号列を左から読む(thm-pn-stack)ポーランド記法の項 ${+}ab$ を、同じ手続きで左から読む「項なら停止しない」
記号列の重みが $1$(thm-pn-cycle)項数 $0$ の記号 $a,b$ からなる重み $2$ の記号列 $ab$「回転のうちちょうど 1 つが項」
表の確かめ

1 行目:長さ $2$ のスタック $(u_1,u_2)$ から $f$ を読むと停止せずに $(f^D(u_1,u_2))$ が残るが、$f$ は長さ $1$ で項数 $0$ でない記号なので $P'$ の元でない。空のスタックから読めば、$f$ を読む時点で長さ $0<2$ となって停止する。
2 行目:${+}ab$ を左から読むと、最初の $+$ でスタックが空なので停止する。ポーランド記法の項は、右から読むか、$\rho$ で逆ポーランド記法に直してから左から読む。
3 行目:$ab$ の回転は $ab$ と $ba$ で、どちらも長さ $2$ だが、項数 $0$ の記号で始まる項は長さ $1$ なので、どちらも $P$ の元でない(どちらも $P^2$ の元である)。
なお、記号の項数がただ一つに決まることを外すと、一意可読性そのものが崩れる(一意可読性 の反例の表の 1 行目)。その場合は重み $K$ が定まらないので、この記事の定理はどれも前提を失う。

補足

  • 一階の論理式。 量化 $\forall x\,\varphi$ を項数 $1$ の記号 $\forall x$ とみれば、関係記号・関数記号・結合子の項数が決まっている限り、一階の論理式も括弧とコンマなしのポーランド記法で書け、ここでの結果がそのまま当てはまる(一意可読性 の補足)。
  • 計算機での利用。 演算の順序が記号の並びだけで決まるので、ポーランド記法の変種は多くのプログラミング言語の内部の表現に使われてきた(MBTZ25 付録 A.3、p. 403)。逆ポーランド記法は 1970 年代から一部の電卓で使われている(FS09 p. 75 の脚注 14)。
  • 巡回補題の位置づけ。 巡回補題(cycle lemma、共役の原理ともよばれる)による数え上げは、Lagrange の反転公式と同値な内容をもつことが Raney によって示されている(FS09 p. 76)。Dvoretzky と Motzkin はこの方法で円周上の配置の数え上げ問題を解いた(同所)。
  • 中置記法からの変換。 2 項演算 $\ast$ の両側をすべて括弧で囲む中置記法の式 $(s\ast s')$ は、prop-pn-translation の $\pi$ と同じ形の再帰 $(s\ast s')\mapsto{\ast}\,\pi(s)\,\pi(s')$ でポーランド記法の項に直せる。括弧を省いた式では、演算の優先順位と結合の向きの約束を決めて、まず括弧をすべて補ってから直す。

関連項目

参考文献

Mathpediaは寄付と、参考文献の書籍リンク(Amazonアソシエイト)の紹介料で運営されています。 支援について / 寄付する