1 自由変数と束縛変数
定義 1.1 (述語・自由変数・束縛変数). 各変数の対象範囲を指定する。変数を含み、その変数に対象範囲の値を代入すると真偽が定まる文を述語 (predicate) という。変数xの各出現について、xを量化する∀xまたは∃xのスコープ内にあるとき、その出現は、該当する量化子のうち最も内側のものに束縛されているという。どの量化子にも束縛されていない出現を自由な出現という。束縛された出現における変数を束縛変数 (bound variable) といい、自由な出現をもつ変数を自由変数 (free variable) という。同じ文字でも、出現箇所によって自由か束縛かが異なる。自由変数の値を指定すると、その値に対する述語の真偽が定まる。自由変数がすべて値を指定されるか量化子に束縛され、自由変数が残っていない文を閉じた命題という。
P(x)のxは自由変数です。このxには、P(4)のように具体的な値を代入することができます。∀xP(x)のxは量化子∀のスコープにある束縛変数であり、量化の対象を走るための名前です。
2 束縛変数の改名
定理 2.1. 対象範囲をXとし、量化子のスコープに現れる他の自由変数の値を固定する。束縛変数xの名前を、置換前のスコープに自由に現れず、かつ重なる別の量化子の束縛変数とも衝突しない新しい変数yに、その量化子と、その量化子に束縛された各出現で一貫して付け替えるとする。このとき、束縛変数を付け替える前後で述語の意味は変わらない。特に、∀x∈XP(x)と∀y∈XP(y)は同じ意味を表し、∃x∈XP(x)と∃y∈XP(y)も同じ意味を表す。
証明.Xと、量化子のスコープに現れる他の自由変数の値を固定し、定理の衝突しない変数yをとる。∀x∈XP(x)が真であることは、各a∈Xについて、束縛変数xがaを走る場合にP(x)が真であることを意味する。xをyに一貫して付け替えても、yは同じa∈Xを走り、衝突によって他の変数の値や束縛は変わらない。したがって、各a∈XにおけるPの真偽は改名の前後で一致し、二つの全称命題は同じ意味を表す。存在命題についても、条件を満たすa∈Xの存在は改名の前後で変わらないので、二つの存在命題は同じ意味を表す。▨
束縛変数の改名は、k=1∑nakの添字kをjに改名してj=1∑najと書くことや、∫01f(x)dxの積分変数xを別の文字に改名することに対応します。総和の添字と積分変数は、束縛変数を理解するための類比であり、量化子と同一の記号ではありません。
一方、自由変数の名前だけを替えると、どの値を固定しているかが変わるため、替えた後の式は一般に別の述語になります。P(x)とP(y)のx,yが別の対象を指す場合に、二つの述語を同じものとして扱うことはできません。
3 自由変数の固定と量化
同じ述語から出発しても、自由変数をどう扱うかによって、得られる主張が変わります。
例 3.1.P(x,y)を実数を対象範囲とする「x<y」とする。x=3、y=5を代入すると3<5となり、真の閉じた命題を得る。
∀x∈R(x<y)では、不等式に現れるxは量化子に束縛される。yは同じスコープ内にあるが、この量化子の対象ではないため、自由変数として残る。したがって、この式はyの述語であり、まだ閉じた命題ではない。実数yを任意に固定しても、x=y+1とすればx<yは偽であるので、この述語はすべての実数yに対して偽となる。
∀x∈R∃y∈R(x<y)は自由変数をもたない閉じた命題である。任意の実数xに対してy=x+1をとるとx<yであるので、この命題は真である。
∃x∈R(x>y)のxは束縛変数であり、yは自由変数である。束縛変数xを、すでに自由に現れるyに改名しようとして∃y∈R(y>y)と書くと、もとの自由なyまで量化子に捕らえられる。元の述語は各実数yに対してx=y+1をとれば真であるが、書き換えた命題は偽である。したがって、束縛変数の改名には自由な出現を捕らえない名前を用いる必要がある。
例 3.2. 実数aに対し、述語Q(a)をQ(a): ∃x∈R(ax=1)によって定める。量化子に束縛されている変数はxであり、aは自由変数である。
a=0ならばx=1/aを取るとax=1となるので、Q(a)は真である。a=0ならば、すべての実数xについてax=0=1であるので、Q(a)は偽である。したがって、Q(a)が真となる実数aの集合はR∖{0}である。
a=2に固定した閉じた命題Q(2)は、x=1/2によって真となる。a=0に固定した閉じた命題Q(0)は偽である。
自由変数aを存在量化した命題∃a∈R∃x∈R(ax=1)は、a=x=1によって真である。一方、全称量化した命題∀a∈R∃x∈R(ax=1)は、a=0の場合に条件を満たすxが存在しないので偽である。
全称命題∀x∈XQ(x)を証明するときは、任意のa∈Xを一つとり、議論の間はaを固定します。この操作は証明の中で対象を局所的に固定することであり、式の量化子が変数を束縛することとは別の操作です。a∈X以外の追加条件を仮定することなくQ(a)を導くことができれば、aの任意性から、すべてのx∈XについてQ(x)と結論することができます。反対に、議論の途中でaに追加条件を課すと、その条件を満たす対象についてしかQ(a)を示していないため、全称命題を結論することはできません。
4 束縛変数のスコープと改名
束縛変数を改名するときは、改名する量化子と、その量化子に束縛された出現の名前を一緒に替えます。改名前に自由であった出現が束縛されるなど、束縛関係が変わる置換は行いません。定理 2.1の衝突しないという条件を確かめます。プログラムでも、変数名が有効なスコープを区別し、内側の変数が外側の変数を覆い隠さないようにします。このプログラムの例は、論理式のスコープを理解するための類比であり、プログラムの変数と論理式の変数を同一視するものではありません。数式処理系も、束縛変数のスコープと変数の衝突を区別して式を扱います。
5 例題
次の式について、(1) 自由変数と束縛変数をすべて挙げ、(2) この式が命題(自由変数のない閉じた文)か述語(条件)かを判定し、(3) 束縛変数を改名した同値な式を1つ書け。
解法の型量化子(∀∃)・Σの添字・∫の積分変数に縛られている変数が束縛変数、それ以外が自由変数。自由変数が1つでも残れば命題ではなく述語。束縛変数は改名しても意味が変わらない
次の式の自由変数と束縛変数を挙げ、命題か述語かを判定し、束縛変数を改名した同値な式を1つ書け。
例 5.1.
(∀x P(x))⇒P(y)答
自由変数束縛変数種別改名例yx述語(条件)——自由変数の値を決めてはじめて真偽が定まる(∀t P(t))⇒P(y)注意 前件の x は束縛、後件の y は自由。y が残るので述語。なお、この式は y を何に代入しても真になる(全称の除去)が、式そのものは閉じていない。
例 5.2.
∀ε>0 ∃δ>0 ∀x (∣x−a∣<δ⇒∣f(x)−f(a)∣<ε)答
自由変数束縛変数種別改名例aε, δ, x述語(条件)——自由変数の値を決めてはじめて真偽が定まる∀η>0 ∃ρ>0 ∀u (∣u−a∣<ρ⇒∣f(u)−f(a)∣<η)注意ε,δ,x はすべて量化子に束縛されたダミー。自由なのは a(と関数 f)だけなので、この式は「f は a で連続」という a についての条件(述語)である。a を具体的に決めればはじめて命題になる。
例 5.3.
∀x (P(x)∧Q(y)) ∨ ∃y R(y)答
自由変数束縛変数種別改名例y (第1項の Q(y) の y)x, y (第2項の ∃y の y)述語(条件)——自由変数の値を決めてはじめて真偽が定まる∀x (P(x)∧Q(y)) ∨ ∃t R(t)注意 同じ文字 y が、第1項では自由に、第2項では束縛されて現れている(変数の衝突)。∃yのスコープは R(y) までなので、Q(y) の y はそれに縛られない。第2項の束縛変数を t に改名すれば、この紛らわしさは消える。自由な y が残るので述語。
例 5.4.
∀x (P(x)⇒Q(x))答
自由変数束縛変数種別改名例なしx命題(閉じた文)∀u (P(u)⇒Q(u))注意 自由変数がないので、これは閉じた文(命題)である。述語 P, Q と議論領域を決めれば真偽が定まる。x は量化子の内部を回るダミーなので、名前を u に変えても同じ命題。
例 5.5.
∫01f(x,t)dx=0答
自由変数束縛変数種別改名例tx述語(条件)——自由変数の値を決めてはじめて真偽が定まる∫01f(u,t)du=0注意 積分変数 x は束縛変数(積分の中を走るダミー)で、外からは見えない。t は自由変数なので、この式は t の条件(述語)。積分変数の名前替えは値を変えない。
例 5.6.
(∀x ∃y (y>x)) ∧ (z∈A)答
自由変数束縛変数種別改名例zx,y述語(条件)——自由変数の値を決めてはじめて真偽が定まる(∀s ∃t (t>s)) ∧ (z∈A)注意 第1項は閉じている(命題)が、第2項に自由変数 z があるため、全体としては z の条件(述語)。式全体で1つでも自由変数が残れば命題ではない。
例 5.7.
∀x ∃y (x+y=z)答
自由変数束縛変数種別改名例zx,y述語(条件)——自由変数の値を決めてはじめて真偽が定まる∀s ∃t (s+t=z)注意 x, y は束縛、z は自由。z を決めるまで真偽が定まらないので述語。実数の範囲なら、どんな z に対してもこの条件は真になる(y=z − x と取ればよい)が、それは z を決めたあとの話である。
例 5.8.
∀x (x>0⇒∃y (y2=x))答
自由変数束縛変数種別改名例なしx,y命題(閉じた文)∀s (s>0⇒∃t (t2=s))注意 内側の∃yのスコープは括弧の中だけだが、x は外側の∀xに縛られている。自由変数はないので命題(実数の範囲では真)。
例 5.9.
k=1∑nk=2n(n+1)答
自由変数束縛変数種別改名例nk述語(条件)——自由変数の値を決めてはじめて真偽が定まる∑j=1nj=2n(n+1)注意 和の記号Σの添字 k は束縛変数(量化子と同じダミー)、上端の n は自由変数。n を決めてはじめて真偽が定まるので、これは n についての条件(述語)である。束縛変数 k は j に変えても同じ意味。
例 5.10.
∀x ∃x P(x)答
自由変数束縛変数種別改名例なしx命題(閉じた文)∀t ∃x P(x)注意 P(x) の x は内側の∃xに捕まえられるので、外側の∀xは何も縛っていない(空回り)。改名すれば∀t∃xP(x) となり、t がどこにも現れないことが見える。したがってこの式は∃xP(x) と同値。自由変数がないので命題。
6 演習
次の式について、(1) 自由変数と束縛変数をすべて挙げ、(2) この式が命題(自由変数のない閉じた文)か述語(条件)かを判定し、(3) 束縛変数を改名した同値な式を1つ書け。
解法の型量化子(∀∃)・Σの添字・∫の積分変数に縛られている変数が束縛変数、それ以外が自由変数。自由変数が1つでも残れば命題ではなく述語。束縛変数は改名しても意味が変わらない
次の式の自由変数と束縛変数を挙げ、命題か述語かを判定し、束縛変数を改名した同値な式を1つ書け。
問題 6.1.
∃y ∀x (x⋅y=x)解答.
答
自由変数束縛変数種別改名例なしx,y命題(閉じた文)∃v ∀u (u⋅v=u)注意 自由変数がないので命題(実数の範囲では y=1 と取れるので真)。束縛変数の名前は何でもよい。▨
問題 6.2.
(∀x P(x))⇒P(y)解答.
答
自由変数束縛変数種別改名例yx述語(条件)——自由変数の値を決めてはじめて真偽が定まる(∀t P(t))⇒P(y)注意 前件の x は束縛、後件の y は自由。y が残るので述語。なお、この式は y を何に代入しても真になる(全称の除去)が、式そのものは閉じていない。▨
問題 6.3.
∀x (P(x)∧Q(y)) ∨ ∃y R(y)解答.
答
自由変数束縛変数種別改名例y (第1項の Q(y) の y)x, y (第2項の ∃y の y)述語(条件)——自由変数の値を決めてはじめて真偽が定まる∀x (P(x)∧Q(y)) ∨ ∃t R(t)注意 同じ文字 y が、第1項では自由に、第2項では束縛されて現れている(変数の衝突)。∃yのスコープは R(y) までなので、Q(y) の y はそれに縛られない。第2項の束縛変数を t に改名すれば、この紛らわしさは消える。自由な y が残るので述語。▨
問題 6.4.
k=1∑nk=2n(n+1)解答.
答
自由変数束縛変数種別改名例nk述語(条件)——自由変数の値を決めてはじめて真偽が定まる∑j=1nj=2n(n+1)注意 和の記号Σの添字 k は束縛変数(量化子と同じダミー)、上端の n は自由変数。n を決めてはじめて真偽が定まるので、これは n についての条件(述語)である。束縛変数 k は j に変えても同じ意味。▨
問題 6.5.
∀x (x>0⇒∃y (y2=x))解答.
答
自由変数束縛変数種別改名例なしx,y命題(閉じた文)∀s (s>0⇒∃t (t2=s))注意 内側の∃yのスコープは括弧の中だけだが、x は外側の∀xに縛られている。自由変数はないので命題(実数の範囲では真)。▨
問題 6.6.
∀x (P(x)⇒Q(x))解答.
答
自由変数束縛変数種別改名例なしx命題(閉じた文)∀u (P(u)⇒Q(u))注意 自由変数がないので、これは閉じた文(命題)である。述語 P, Q と議論領域を決めれば真偽が定まる。x は量化子の内部を回るダミーなので、名前を u に変えても同じ命題。▨
問題 6.7.
∀ε>0 ∃δ>0 ∀x (∣x−a∣<δ⇒∣f(x)−f(a)∣<ε)解答.
答
自由変数束縛変数種別改名例aε, δ, x述語(条件)——自由変数の値を決めてはじめて真偽が定まる∀η>0 ∃ρ>0 ∀u (∣u−a∣<ρ⇒∣f(u)−f(a)∣<η)注意ε,δ,x はすべて量化子に束縛されたダミー。自由なのは a(と関数 f)だけなので、この式は「f は a で連続」という a についての条件(述語)である。a を具体的に決めればはじめて命題になる。▨
問題 6.8.
P(x) ∧ ∀y Q(y)解答.
答
自由変数束縛変数種別改名例xy述語(条件)——自由変数の値を決めてはじめて真偽が定まるP(x) ∧ ∀t Q(t)注意 第1項の x はどの量化子のスコープにも入っていないので自由。第2項の y は∀に束縛。自由変数 x が残るので述語(x の条件)。▨
問題 6.9.
∀x ∃y (x+y=z)解答.
答
自由変数束縛変数種別改名例zx,y述語(条件)——自由変数の値を決めてはじめて真偽が定まる∀s ∃t (s+t=z)注意 x, y は束縛、z は自由。z を決めるまで真偽が定まらないので述語。実数の範囲なら、どんな z に対してもこの条件は真になる(y=z − x と取ればよい)が、それは z を決めたあとの話である。▨
問題 6.10.
∫01f(x,t)dx=0解答.
答
自由変数束縛変数種別改名例tx述語(条件)——自由変数の値を決めてはじめて真偽が定まる∫01f(u,t)du=0注意 積分変数 x は束縛変数(積分の中を走るダミー)で、外からは見えない。t は自由変数なので、この式は t の条件(述語)。積分変数の名前替えは値を変えない。▨
問題 6.11.
∃x ∀y P(x,y,z)解答.
答
自由変数束縛変数種別改名例zx,y述語(条件)——自由変数の値を決めてはじめて真偽が定まる∃s ∀t P(s,t,z)注意 x と y は量化子に縛られている。z だけが自由なので、この式は z の条件(述語)であって命題ではない。束縛変数 x, y は名前を変えても意味が変わらないが、自由変数 z の名前を変えると別の主張になる。▨
問題 6.12.
∀x (x>y)解答.
答
自由変数束縛変数種別改名例yx述語(条件)——自由変数の値を決めてはじめて真偽が定まる∀t (t>y)注意 x は∀に縛られたダミー(束縛変数)、y はどこにも縛られていない自由変数。自由変数が残っているので、この式は真偽が定まらない。y の値を決めてはじめて真偽が決まるので、これは「y についての条件(述語)」である。▨
問題 6.13.
∀x ∃x P(x)解答.
答
自由変数束縛変数種別改名例なしx命題(閉じた文)∀t ∃x P(x)注意 P(x) の x は内側の∃xに捕まえられるので、外側の∀xは何も縛っていない(空回り)。改名すれば∀t∃xP(x) となり、t がどこにも現れないことが見える。したがってこの式は∃xP(x) と同値。自由変数がないので命題。▨
問題 6.14.
(∀x ∃y (y>x)) ∧ (z∈A)解答.
答
自由変数束縛変数種別改名例zx,y述語(条件)——自由変数の値を決めてはじめて真偽が定まる(∀s ∃t (t>s)) ∧ (z∈A)注意 第1項は閉じている(命題)が、第2項に自由変数 z があるため、全体としては z の条件(述語)。式全体で1つでも自由変数が残れば命題ではない。▨