HOL 的 AI 是什麼東西?

時間 2021-06-03 05:49:42

1樓:

其實在 src tree 裡 grep 一下哪些地方用到了 aiLib 就可以知道這是啥了

嚒,其實就是用 AI 演算法指導 proof search。

因為新版本的 z3 不支援 tptp 格式就沒試

找了個 4.0.0 的 z3 試了下

> val kleene62 = ``~(A /\ B) <=> (~A \/ ~B)``;

val kleene62 = 「(A ∧ B) A ∨ B」: term

> holyhammer kleene62;

Loading 3105 theorems

proof found by z3:

metisTools.METIS_TAC

minimized proof:

METIS_TAC

metis: r[+0+4]#

val it = (A ∧ B) A ∨ B: thm

適用性一般複雜點的比如

> val kleene92 = ``(A \/ (!x. B x)) <=> !x. (A \/ B x)``;

<>val kleene92 = 「A ∨ (x. B x) x. A ∨ B x」: term

> holyhammer kleene92;

Loading 3105 theorems

Exception-

HOL_ERR

raised

就 timeout 了。

換了 vampire 試了下發現估計是 z3 的鍋。很快就能出來了,說明其實主要還是 SMT solver 在幹累活。不過這還是乙個非常有意思的相對不需要計算力的 ML 應用。

> val kleene92 = ``(A \/ (!x. B x)) <=> !x. (A \/ B x)``;

<>val kleene92 = 「A ∨ (x. B x) x. A ∨ B x」: term

> holyhammer kleene92;

Loading 3106 theorems

proof found by vampire:

metisTools.METIS_TAC

minimized proof:

METIS_TAC

metis: r[+0+4]#

r[+0+4]#

r[+0+3]#

val it = A ∨ (x. B x) x. A ∨ B x: thm

number theory 也可以

> holyhammer ``1 + 1 = 2``;

Loading 3106 theorems

proof found by vampire:

metisTools.METIS_TAC [arithmeticTheory.ALT_ZERO , arithmeticTheory.

SUC_ONE_ADD , arithmeticTheory.TWO , numeralTheory.numeral_distrib , numeralTheory.

numeral_suc]

minimized proof:

METIS_TAC [arithmeticTheory.SUC_ONE_ADD, numeralTheory.numeral_distrib, numeralTheory.

numeral_suc]

metis: r[+0+54]+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+1+1+0+0+1+1+3+2+6+6+8+9+7+0+2+0+1+6+0+2+2+3+0+3+0+2+3+2+3+0+2+2+3+0+2+4+5+0+4+4+5+0+4+5+5+23+22+22+6+0+2+0+1+2+37+36+19#

val it = 1 + 1 = 2: thm

> val indthm = ``!p.(p ZERO /\ !x. (p x ==> p (SUC x))) ==> !x.p x``;

val indthm = 「p. p ZERO ∧ (x. p x p (SUC x)) x. p x」: term

> holyhammer indthm;

Loading 3106 theorems

proof found by vampire:

metisTools.METIS_TAC [arithmeticTheory.ALT_ZERO , arithmeticTheory.

NOT_LESS , boolTheory.EQ_CLAUSES , numTheory.INDUCTION]

minimized proof:

METIS_TAC [arithmeticTheory.ALT_ZERO, numTheory.INDUCTION]

metis: r[+0+11]+0+0+1+0+0+0+0+0+0+1+2#

val it = p. p ZERO ∧ (x. p x p (SUC x)) x. p x: thm

ps. macOS 沒有 coreutils 的 timeout 。想想不如用 ATS 寫乙個。

2樓:

並沒有實際使用過這個功能…不過作為 Neuro-symbolic 的乙個方向,用 ML/DL 來做 HOL 定理證明的工作最近蠻多的, ICLR '17 有 HOLStep (https://

arxiv.org/pdf/1703.00426.pdf

),ICML '19 有 HOList (https://arxiv.org/pdf/1904.03241.pdf

),還有通過ML來為Isabelle/HOL選擇lemma的 (https://

people.mpi-inf.mpg.de/~jblanche/mash2.pdf

)。類似的工作在 Mizar/FOL/SMT/SAT 上也有不少,比如用MCTS 輔助 mlCoP FOL solver 證明(NIPS 18)、使用神經網路來學習SMT solver的求解策略(NIPS 18)、single bit supervised的純NN SAT Solver。

ERP是什麼東西?

西安安泰電子 ERP Enterprise Resource Planning 系統即企業資源計畫系統,含義是指建立在資訊科技基礎上,以系統化的管理思想,為企業決策層及員工提供決策執行手段的管理平台。一套好的ERP系統正是協助企業做好內控與提高管理效率的關鍵,目前ERP系統這一塊,智邦國際做的還是可...

密位是什麼東西?

陳傑亮 可看到附圖的分劃裡,乙個密位點大約等於0.2密位,每個點之間相距0.8密位 點到點為1密位 圖二則是三種標準的密位分劃,可以看到最右邊的二代改良版在點跟點之間刻有0.5密位的線,一來增加了乙個瞄準點,二來可以方便人們在腦海裡分成10等分。另一種密位型態則是如圖三這種斜線式的分劃 以下的線則是...

水離子是什麼東西?

永遠的蕭十一 所謂離子水,即通過淨水器利用活性炭作為過濾層,過濾自來水,使之淨化達標 達到國家級水標準 再通過膈膜電解生成兩種活性的水,即離子水。集中於陰極流出來的為鹼性離子水 供飲用 集中於陽極流出來的為酸性離子水 供外用 離子水不包括生理鹽水等新增有其他物質的水 者也 這就是一些商家的噱頭,水由...