セット理論はここであなたにいくつかの害を与えています、そしてあなたがそれからあなた自身を解放するほどあなたがコンピュータサイエンスのあなたの理解にとってより良くなるでしょう。
交差点と共用体を忘れてください。人々がいることを、このアイデアを取得と∃が似ている⋂と⋃ポーランドの学校は、ブール代数で昔やっていたものの一種であるが、それは本当に進むべき道(間違いないコンピュータサイエンスでは)ありません。∀∃⋂⋃
これらをセットとして見たいと思います。では、サイズの問題を無視して、すべてのセットのセットがあるように見せかける必要があります。(異なるカテゴリに渡すことによって、大きさの問題を修正することが可能である。)タイプ本当に直積のようなものです
∀ X 。T := Π S :S E T T [ X ↦ S ] 。
これは、の要素である∀ X 。Tは集合から集合への関数fです:各集合Sに対して要素を与えます∀x.T
∀X.T:=∏S:SetT[X↦S].
∀X.T fS型の
T [ X ↦ S ]。例えば、要素の
∀ X 。(X → X )→ (X → X )は、集合
Sを取り、タイプ
(S → S )→ (S → S )の関数を与える関数
fです。そのような関数をいくつか示します
。f 0(S )(g )(f(S)T[x↦S]∀X.(X→X)→(X→X)fS(S→S)→(S→S)
したがって、自然数ごとに1つが得られます。他の例を考えるのはちょっと難しいです。(練習:グーグル「自然数の教会エンコーディング」。)
f0(S)(g)(x)f1(S)(g)(x)f2(S)(g)(x)f3(S)(g)(x):=x:=g(x):=g(g(x)):=g(g(g(x)))
∃∀
∃X.T:=∀Y.(∀X.(T→Y))→Y
YT∃X.T∃X.T:=∐S:SetT[X↦S].
∃X.T (S,a)SaT[X↦S]∃X.(X×X→X)(S,m)Sm:S×S→S
∃∀∃X.T∀Y.(∀X.(T→Y))→YY
A:=∐S:SetT[X↦S]
B:=∏R:Set(∏S:Set(T[X↦S]→R))→R.
λf:A→Bf(S,a)(R)(h):=h(S)(a)
g:B→Ag(ϕ):=ϕ(A)(λS.λa.(S,a)).
λS.λa.(S,a)S↦a↦(S,a)fgg(f(S,a))=f(S,a)(A)(λS′.λa′.(S′,a′))=(λS′.λa′.(S′,a′)(S)(a)=(S,a).
f(g(ϕ))(R)(h)=h(π1(g(ϕ))(π2(g(ϕ))).
g(ϕ)ϕ(A)(λS.λa.(S,a))
∃∀
∃x.ϕ(x)
∀P:Prop.(∀x.(ϕ(x)⇒P))⇒P,
PPϕ