Blog

一階直観主義論理

(Single-sortedな)一階直観主義論理(first-order intuitionistic logic with equality)のシークエント計算LJを与える。

定義(シグネチャ)

シグネチャ(signature)は、以下のデータΣ=(F,R)\Sigma = (F, R)から成る。

  1. 集合FFと関数ar:FN\mathsf{ar} : F \to \N
    • FFの要素を関数記号(function symbol)と呼ぶ。
    • fFf \in Fについて、ar(f)N\mathsf{ar}(f) \in \Nffのarity、つまり引数の数を示す。
  2. 集合RRと関数ar:RN\mathsf{ar} : R \to \N
    • RRの要素を関係記号(relation symbol)と呼ぶ。
    • rRr \in Rについて、ar(r)N\mathsf{ar}(r) \in \Nrrのarityを示す。

シグネチャの定義において、FFRRは無限集合になり得るが、関数記号や関係記号のarityは有限個に制限されていることに注意。

仮定(変数)

本稿では、可算無限集合Var\mathsf{Var}が存在すると仮定する。Var\mathsf{Var}の要素を変数(variable)と呼ぶ。

定義(項文脈)

項文脈(term context) Γ\Gammaとは、変数の有限集合のことである。

定義(項)

シグネチャΣ=(F,R)\Sigma = (F, R)を固定する。項文脈Γ\Gammaに対して、集合Term(Γ)\mathsf{Term}(\Gamma)を次のように帰納的に定義する。

  1. xΓx \in \Gammaならば、xTerm(Γ)x \in \mathsf{Term}(\Gamma)
  2. fFf \in Fかつn=ar(f)n = \mathsf{ar}(f)であり、任意の1in1 \le i \le nについてMiTerm(Γ)M_i \in \mathsf{Term}(\Gamma)であるならば、f(M1,,Mn)Term(Γ)f(M_1, \ldots, M_n) \in \mathsf{Term}(\Gamma)

Term(Γ)\mathsf{Term}(\Gamma)の要素を「項文脈Γ\Gammaにおける(term)」と呼ぶ。

補題

MTerm(Γ)M \in \mathsf{Term}(\Gamma)かつΓΓ\Gamma \subseteq \Gamma'ならば、MTerm(Γ)M \in \mathsf{Term}(\Gamma')となる。

定義(命題)

シグネチャΣ=(F,R)\Sigma = (F, R)を固定する。項文脈によってインデックス付けされた命題(proposition)を次のように帰納的に定義する。

rRMiTerm(Γ) (for 1iar(r))Γr(M1,,Mar(r)) prop\frac{ r \in R \quad M_i \in \mathsf{Term}(\Gamma)\ \text{(for $1 \le i \le \mathsf{ar}(r)$)} }{ \propJd{\Gamma}{r(M_1, \ldots, M_{\mathsf{ar}(r)})} }
ΓA propΓB propΓAB prop\frac{ \propJd{\Gamma}{A} \quad \propJd{\Gamma}{B} }{ \propJd{\Gamma}{A \land B} }
ΓA propΓB propΓAB prop\frac{ \propJd{\Gamma}{A} \quad \propJd{\Gamma}{B} }{ \propJd{\Gamma}{A \lor B} }
Γ propΓ prop\frac{ }{ \propJd{\Gamma}{\top} } \quad \frac{ }{ \propJd{\Gamma}{\bot} }
ΓA propΓB propΓAB prop\frac{ \propJd{\Gamma}{A} \quad \propJd{\Gamma}{B} }{ \propJd{\Gamma}{A \Rightarrow B} }
Γ,xA propΓxA propΓ,xA propΓxA prop\frac{ \propJd{\Gamma, x}{A} }{ \propJd{\Gamma}{\forall x A} } \quad \frac{ \propJd{\Gamma, x}{A} }{ \propJd{\Gamma}{\exists x A} }
MTerm(Γ)NTerm(Γ)ΓM=N prop\frac{ M \in \mathsf{Term}(\Gamma) \quad N \in \mathsf{Term}(\Gamma) }{ \propJd{\Gamma}{M = N} }

本稿では、束縛変数名による違いを同一視する。

定義(命題文脈)

シグネチャΣ\Sigmaを固定する。項文脈Γ\Gammaにおける命題文脈(proposition context) Δ\Deltaとは、Γ\Gammaにおける命題の有限列のことである。

定義(理論)

理論(theory) T=(Σ,A)T = (\Sigma, \mathcal{A})は、次のデータから成る。

  1. シグネチャΣ=(F,R)\Sigma = (F, R)
  2. 「項文脈Γ\GammaΓ\Gammaにおける命題文脈、Γ\Gammaにおける命題」の3項関係A\mathcal{A}
    • 各要素(Γ,Δ,A)A(\Gamma, \Delta, A) \in \mathcal{A}を公理と呼ぶ。
定義(Entailment)

理論T=(Σ,A)T = (\Sigma, \mathcal{A})に対して、「項文脈Γ\GammaΓ\Gammaにおける命題文脈、Γ\Gammaにおける命題」の3項関係として、entailment judgmentを次のように帰納的に定義する。

(Γ,Δ,A)AΓΔA(Ax)ΓΔAΓ,xΔA(T-Weak)% axiom \frac{ (\Gamma, \Delta, A) \in \mathcal{A} }{ \entailJd{\Gamma}{\Delta}{A} } \text{(Ax)} \quad % t-weaken \frac{ \entailJd{\Gamma}{\Delta}{A} }{ \entailJd{\Gamma, x}{\Delta}{A} } \text{(T-Weak)}
Γ,x,yΔAΓ,x[x/y]Δ[x/y]A(T-Contr)ΓΔBΓΔ,AB(P-Weak)% t-contr \frac{ \entailJd{\Gamma, x, y}{\Delta}{A} }{ \entailJd{\Gamma, x}{[x/y]\Delta}{[x/y]A} } \text{(T-Contr)} \quad % p-weaken \frac{ \entailJd{\Gamma}{\Delta}{B} }{ \entailJd{\Gamma}{\Delta, A}{B} } \text{(P-Weak)}
ΓΔ,A,ABΓΔ,AB(P-Contr)ΓΔ,B,A,ΔCΓΔ,A,B,ΔC(P-Ex)% p-contr \frac{ \entailJd{\Gamma}{\Delta, A, A}{B} }{ \entailJd{\Gamma}{\Delta, A}{B} } \text{(P-Contr)} \quad % p-exch \frac{ \entailJd{\Gamma}{\Delta, B, A, \Delta'}{C} }{ \entailJd{\Gamma}{\Delta, A, B, \Delta'}{C} } \text{(P-Ex)}
ΓΔ,AA(Id)ΓΔAΓΔ,ABΓΔ,ΔB(Cut)% ident \frac{ }{ \entailJd{\Gamma}{\Delta, A}{A} } \text{(Id)} \quad % cut \frac{ \entailJd{\Gamma}{\Delta}{A} \quad \entailJd{\Gamma}{\Delta', A}{B} }{ \entailJd{\Gamma}{\Delta, \Delta'}{B} } \text{(Cut)}
Γ,xΔAMTerm(Γ)Γ,Γ[M/x]Δ[M/x]A(Subst)% subst \frac{ \entailJd{\Gamma, x}{\Delta}{A} \quad M \in \mathsf{Term}(\Gamma') }{ \entailJd{\Gamma, \Gamma'}{[M/x]\Delta}{[M/x]A} } \text{(Subst)}
ΓΔAΓΔBΓΔAB(R)ΓΔAΓΔAB(R1)ΓΔBΓΔAB(R2)% and R \frac{ \entailJd{\Gamma}{\Delta}{A} \quad \entailJd{\Gamma}{\Delta}{B} }{ \entailJd{\Gamma}{\Delta}{A \land B} } \text{($\mathord\land$R)} \quad % or R 1 \frac{ \entailJd{\Gamma}{\Delta}{A} }{ \entailJd{\Gamma}{\Delta}{A \lor B} } \text{($\mathord\lor$R1)} \quad % or R 2 \frac{ \entailJd{\Gamma}{\Delta}{B} }{ \entailJd{\Gamma}{\Delta}{A \lor B} } \text{($\mathord\lor$R2)}
ΓΔ,ACΓΔ,BCΓΔ,ABC(L)ΓΔ,ACΓΔ,ABC(L1)ΓΔ,BCΓΔ,ABC(L2)% or L \frac{ \entailJd{\Gamma}{\Delta, A}{C} \quad \entailJd{\Gamma}{\Delta, B}{C} }{ \entailJd{\Gamma}{\Delta, A \lor B}{C} } \text{($\mathord\lor$L)} \quad % and L 1 \frac{ \entailJd{\Gamma}{\Delta, A}{C} }{ \entailJd{\Gamma}{\Delta, A \land B}{C} } \text{($\mathord\land$L1)} \quad % and L 2 \frac{ \entailJd{\Gamma}{\Delta, B}{C} }{ \entailJd{\Gamma}{\Delta, A \land B}{C} } \text{($\mathord\land$L2)}
ΓΔ(R)ΓΔ,A(L)% top R \frac{ }{ \entailJd{\Gamma}{\Delta}{\top} } \text{($\top$R)} \quad % bot L \frac{ }{ \entailJd{\Gamma}{\Delta, \bot}{A} } \text{($\bot$L)}
ΓΔ,ABΓΔAB(R)ΓΔAΓΔ,BCΓΔ,ABC(L)% impl R \frac{ \entailJd{\Gamma}{\Delta, A}{B} }{ \entailJd{\Gamma}{\Delta}{A \Rightarrow B} } \text{($\mathord\Rightarrow$R)} \quad % impl L \frac{ \entailJd{\Gamma}{\Delta}{A} \quad \entailJd{\Gamma}{\Delta, B}{C} }{ \entailJd{\Gamma}{\Delta, A \Rightarrow B}{C} } \text{($\mathord\Rightarrow$L)}
Γ,xΔAxfv(Δ)ΓΔxA(R)MTerm(Γ)ΓΔ[M/x]AΓΔxA(R)% forall R \frac{ \entailJd{\Gamma, x}{\Delta}{A} \quad x \notin \fv(\Delta) }{ \entailJd{\Gamma}{\Delta}{\forall xA} } \text{($\mathord\forall$R)} \quad % exists R \frac{ M \in \mathsf{Term}(\Gamma) \quad \entailJd{\Gamma}{\Delta}{[M/x]A} }{ \entailJd{\Gamma}{\Delta}{\exists xA} } \text{($\mathord\exists$R)}
Γ,xΔ,ABxfv(Δ,B)ΓΔ,xAB(L)MTerm(Γ)ΓΔ,[M/x]ABΓΔ,xAB(L)% exists L \frac{ \entailJd{\Gamma, x}{\Delta, A}{B} \quad x \notin \fv(\Delta,B) }{ \entailJd{\Gamma}{\Delta, \exists xA}{B} } \text{($\mathord\exists$L)} \quad % forall L \frac{ M \in \mathsf{Term}(\Gamma) \quad \entailJd{\Gamma}{\Delta, [M/x]A}{B} }{ \entailJd{\Gamma}{\Delta, \forall xA}{B} } \text{($\mathord\forall$L)}
Γ,x[x/y]Δ[x/y]AΓ,x,yΔ,x=yA(=LF1)Γ,x,yΔ,x=yAΓ,x[x/y]Δ[x/y]A(=LF2)% Lawvere with Frobenius 1 \frac{ \entailJd{\Gamma, x}{[x/y]\Delta}{[x/y]A} }{ \entailJd{\Gamma, x, y}{\Delta, x = y}{A} } \text{($\mathord=$LF1)} \quad % Lawvere with Frobenius 2 \frac{ \entailJd{\Gamma, x, y}{\Delta, x = y}{A} }{ \entailJd{\Gamma, x}{[x/y]\Delta}{[x/y]A} } \text{($\mathord=$LF2)}

理論間の関係

シグネチャの定義において、「集合XXと関数XNX \to \N」という形が出てきたが、これはスライス圏Set/N\Set/\Nの対象である。したがって、シグネチャとは積圏SigndefSet/N×Set/N\Sign \defeq \Set/\N \times \Set/\Nの対象のことである。この圏の射(F,R)(F,R)(F, R) \to (F', R')は、関数FFF \to F'と関数RRR \to R'であって、両方ともarityを保存するようなものである。

定義(シグネチャのextension)

シグネチャの圏Sign\Signにおいて、モノ射ΣΣ\Sigma \to \Sigma'が存在するとき、Σ\Sigma'Σ\Sigmaextensionと呼ぶ。

既存の文献においては、シグネチャ(あるいはlanguage)のextensionは部分集合を用いて定義されることもある。しかし、「部分集合である」ということは同型によって保たれないので、ここではモノ射を使った。

定義(理論の圏)

理論の圏Th\Thを次のように定義する。

  1. Th\Thの対象は理論である。
  2. Th\Thの射(Σ,A)(Σ,A)(\Sigma, \mathcal{A}) \to (\Sigma', \mathcal{A}')は、Sign\Signの射ϕ:ΣΣ\phi : \Sigma \to \Sigma'であって、任意の(Γ,Δ,A)A(\Gamma, \Delta, A) \in \mathcal{A}について、
    ΓϕΔϕA\entailJd{\Gamma}{\phi \Delta}{\phi A}
    が理論(Σ,A)(\Sigma', \mathcal{A}')において導出可能であるようなものである。

理論(Σ,A)(\Sigma, \mathcal{A})からシグネチャΣ\Sigmaを取り出す操作は、忘却関手U:ThSignU : \Th \hookrightarrow \Signの対象の部分を成す。この関手UUはfibrationになるらしいが、本稿ではそれを示すことはしない。

定義(理論のextension)

理論TT'が理論TTextensionであるとは、Th\Thの射f:TTf : T \to T'が存在して、Uf:UTUTUf : UT \to UT'がシグネチャのextensionになることである。

アウトロ

シグネチャの圏Sign\Signの射は関数記号を関数記号に写したが、より便利な概念としてtranslationがあり、これは関数記号を項に写す。このtranslationはKleisli圏の射として表されるが、これを記述するには意味論とinitial modelについて話す必要がある。また、上記でextensionの定義はしたがconservative extensionの話はしなかった。この記事 よく見たらauthorがMax Newだ。 を見る限り、conservative extensionもinitial modelを使って定義できそうだ。