高等数理論理大作業

3782 ワード

高等数理論理大作業
これは明らかに数理論理のコートを着たコンパイラ:)です.
Cあるいはjavascriptで命題の論理式の文法検査と式の評価を実現する.
一、要求
名詞宣言
  • 命題変数
  • 文字および数字からなる文字列であり、先頭文字は
  • 文字である.
  • 文字列の長さは10
  • を超えない.
  • 第1類論理結合語:
  • 0,1,¬,∧,∨,→,⊕,↔

  • 第2類論理結合語(新定義論理結合語):
  • 文字および数字からなる文字列であり、先頭文字は
  • 文字である.
  • 論理結合語のメタ数および真値テーブルの最後の列
  • を与える.
  • 合計10個未満の新しい定義論理結合語
  • 新定義論理結合語の要素数は10
  • を超えない.

    タスク#タスク#
    第1部:
  • []命題論理式でない文字列について、少なくとも1つの構文エラー
  • を示す.
  • [x]永久真および永久偽の判断を行い、永久真および永久偽でない命題論理式について、この式を成立させるすべての真値付与
  • を与える.
    第2部
  • [x]与えられた論理結合語の有限集合について,それが完全な
  • であるか否かを判断する.
  • []二元を超えない論理結合語からなるすべての論理結合語の最小完全セット
  • を書く.
    二、テスト用例:
    テスト
    結果
    (p1⊕r3)∧(q1⊕p3)∧(r1⊕p2)∧¬(p1∧q1)∧¬(p1∧r1)∧¬(q1∧r1)∧¬(p3∧r3)∧¬(p1∧p2)∧¬(p1∧p3)∧¬(p2∧p3)∧¬(r1∧r3)
    011001のみで成立
    (p)⊕(q↔r)
    10010110
    f((p),g(q, r)) # f 2 0110 g 2 1001
    10010110不完全
    (0∧0∨0∨0→0)⊕0↔0
    永休
    ((q ⊕ r) ⊕s)↔(q ⊕ (r ⊕s))
    永真
    f(p, f(q, r))↔f(f(p,q),r) #f 2 1001
    永真、不完全
    F(0,1,F(0,0,ff(0)))→0 #F 3 00000011 ff 1 01
    永真、不完全
    F(p, q, F(p, p, ff(p)))→p #F 3 00000011 ff 1 01
    永真、不完全
    F(p, q, F(p, p, g(q,f(p))))→p #F 3 00000011 f 1 01 g 2 0011
    永真、不完全
    F(p, q, F(p, p, g(q,f(p))))→p #F 3 10000011 f 1 10 g 2 1100
    0111、完全
    #f 2 0110 g 1 10
    不完全
    p→q↔f(f(q,f(q,p,p),p),p,p) #f 3 10010010
    永真、まったく
    ¬p↔f(p,p,p) #f 3 10010010
    永真、まったく
    #f 2 0110 g 2 0111 h 2 0001
    不完全
    #f 2 0001 g 2 1001 h 2 0110
    完全
    #f 2 0111 g 2 1001 h 1 00
    完全
    #f 2 0111 g 2 0001 h 2 1101 i 2 1001
    不完全
    p→q↔f(f(q,q,p),f(p,p,p),p) #f 3 11000010
    永真、まったく
    ¬p↔f(p,p,p) #f 3 11000010
    永真、まったく
    #f 2 0111 g 2 0001 h 2 1101 k 2 1001
    不完全
    p→q↔g(h(q,p),q) #f 2 0110 g 2 0111 h 2 1001
    永真、まったく
    ¬p↔f(h(p,p),p) #f 2 0110 g 2 0111 h 2 1001
    永真、まったく
    #f 2 0110
    不完全
    p→q↔f(h(),f(p,q)) #f 2 0010 h 0 1
    永真、まったく
    ¬p↔f(h(),p) # f 2 0010 h 0 1
    永真、まったく
    三、実現
    1.文法を書く
  • 因子
  • ¬ +
  • ( + + )
  • + ( + + [ , ] + )
  • + ()
  • 0,1

  • 一級項
  • + + + [ + ]

  • 二級項
  • + + + [ + ]

  • 三級項
  • + + + [ + ]

  • 四級項
  • + + + [ + ]

  • 5級項目
  • + + + [ + ]

  • + [ ]

  • 結合語定義
  • # + + + + [ + + ]


  • 2.コンパイルとの差が少ない
    3.完全か否かを判断する
    便利なリンク:デジタルロジックの最小完全セット
    アルゴリズムの疑似コード:
         A = [0101,0011]
    con = true;
    while con
    {
        con = false;
        for     in      
        {
            //   n    ,     A  m   
            //     k = m^n
            for(i = 0;i