0. 概要 JavaScript上で命題論理の言語を実装し、意味論 (恒真式・意味論的同値関係やタブロー計算)の各種概念も実装に落とし込む。証明論は未実装。動作環境は Node。 依存パッケージは nearley (構文解析) のみ。npm i --save nearley で環境構築完了。 0. 表記 原子命題は p,q,r,s,t,u のみ利用可。¬⋀⋁→↔ は -,A,V,->,== とする。よって例えば、$\neg\neg p \leftrightarrow p$ は --p == p となるし、$\neg(p\wedge q)\leftrightarrow \neg p \vee \neg q$ は -(p A q) == -p V -qとなる。 1. 統語論 ~構文木の構築~ 文字列を構文木にする。木構造には JavaScript の Array を利用する。具体的には pAq
![JavaScript で論理学を実装 - Qiita](https://cdn-ak-scissors.b.st-hatena.com/image/square/47b02578ce477839b24b4fed293011b6a58dc556/height=288;version=1;width=512/https%3A%2F%2Fqiita-user-contents.imgix.net%2Fhttps%253A%252F%252Fcdn.qiita.com%252Fassets%252Fpublic%252Farticle-ogp-background-412672c5f0600ab9a64263b751f1bc81.png%3Fixlib%3Drb-4.0.0%26w%3D1200%26mark64%3DaHR0cHM6Ly9xaWl0YS11c2VyLWNvbnRlbnRzLmltZ2l4Lm5ldC9-dGV4dD9peGxpYj1yYi00LjAuMCZ3PTk3MiZoPTM3OCZ0eHQ9SmF2YVNjcmlwdCUyMCVFMyU4MSVBNyVFOCVBQiU5NiVFNyU5MCU4NiVFNSVBRCVBNiVFMyU4MiU5MiVFNSVBRSU5RiVFOCVBMyU4NSZ0eHQtYWxpZ249bGVmdCUyQ3RvcCZ0eHQtY29sb3I9JTIzMjEyMTIxJnR4dC1mb250PUhpcmFnaW5vJTIwU2FucyUyMFc2JnR4dC1zaXplPTU2JnM9YzIyNDRjNzdlMDdhYjU5OTg3MmFjMDY5YjI5MzEyNWU%26mark-x%3D142%26mark-y%3D57%26blend64%3DaHR0cHM6Ly9xaWl0YS11c2VyLWNvbnRlbnRzLmltZ2l4Lm5ldC9-dGV4dD9peGxpYj1yYi00LjAuMCZoPTc2Jnc9NzcwJnR4dD0lNDA0MXNlbWljb2xvbiZ0eHQtY29sb3I9JTIzMjEyMTIxJnR4dC1mb250PUhpcmFnaW5vJTIwU2FucyUyMFc2JnR4dC1zaXplPTM2JnR4dC1hbGlnbj1sZWZ0JTJDdG9wJnM9YWUwYTIxOTYyZDA2ODA3MDc5MWEyNWZmMDdiNWU1Yjk%26blend-x%3D142%26blend-y%3D486%26blend-mode%3Dnormal%26s%3D5ad40314be784d6de0db2ed30d80f3a8)