数学、論理学寄りの質問なのですが、今私はHaskellでproof checkをしてみたくて、Haskellの型で論理結合子を表現しようとしているのですが、全称量化子と存在量化子の表現方法がわからずに詰まっています。
”BHK解釈”のwikiで以下の画像のような記述を発見したのですが、xが証明ではなく、集合Sの要素であることを表現するにはどのようにすればよいか、教えていただきたいです。
”BHK解釈”のwikiで以下の画像のような記述を発見したのですが、xが証明ではなく、集合Sの要素であることを表現するにはどのようにすればよいか、教えていただきたいです。
import Data.Void (Void) type Imply a b = a -> b type And a b = (a, b) type Or a b = Either a b type False = Void type Not a = a -> False type Forall x a = x -> a -- xは個体変項 aは論理式 type Exists x a = (x, a)