It's a formal logic deduction based on system-L
~: negation->: deduce (denoted as '>')
The three basic axioms:
- L1:
p->(q->p) - L2:
(p->(q->r)) -> ((p->q)->(p->r)) - L3:
~q->~p -> (p->q)
{p,p->q} |- q
Read this book or click here to see more details.
To prove one proposition:
- Firstly, Use deduction theorem to de-level the formula and get a proposition variable or a proposition in form of
~(...). Let's denote it aspor~p. - Next, Create a set called
garmaand fill it with some generated formulas which is deduced from the above axioms, some theorems and conclusions. - Then, Search
por~pingarma, or further, using modus ponent(MP) to deducepor~p. - Finally, if MP can't prove it, use
Proof by contradictioninstead.
python modules
- sympy
- 将证明过程对象化,便于处理,打印(英文版,中文版),
- 其他连接词的转换
- 处理简单的, 有一定模式的自然语言, 形成命题推理
