I211 数理論理学 (1) Introduction and how to get started; Propositional Logic

I211 数理論理学
(1) Introduction and how to get started;
Propositional Logic
小川瑞史
2009.12.4(石川)
2009.11.27(田町)
www.jaist.ac.jp/~mizuhito
Or, “google mizuhito”
自己紹介
• 学歴
– 1985 東京大学大学院(修士、数学)
– 2002 東京大学大学院(論文博士、計算機科学)
• 職歴
– 1985-2001
NTT 研究所
– 2002.1-2003.5 JST 研究員(東京大学)
– 2003.6-現在 JAIST
• 専門分野:いろいろ
– 計算理論(書換系)・組み合わせ理論
– プログラム解析(モデル検査、充足性検査器)
– プログラム検証(定理証明系)
Contact
• E.mail: [email protected]
• Homepage: www.jaist.ac.jp/~mizuhito
or, “google mizuhito”
• Room: I-51b (情報1棟5F)
• Office hour: 火曜 13:30-15:00
(石川 12/8,12/15,12/22,1/26,2/2)
休講・補講・試験・レポートの予定
• 休講
– 1月19日(火)、1月21日(木):石川(国際会議)
– 11月28日(土):田町(学校行事)
• 補講:1月12日(火)午後(13:30-15:00):石川
• 試験
– 2月9日(火):石川(1限)
– 12月20日(日):田町(13:30-15:00)
• レポート期限(メールで提出、期限明記のものは除く)
– 2月12日(木)正午:石川
– 12月24日(木)正午:田町
• 採点:レポート50点、試験50点
教科書
• 教科書:小野寛晰、情報科学における論理、日本評論社
1章~2章+3章の一部
• 参考書:J.R.Shoenfield, Mathematical Logic,
Association for Symbolic Logic (reprint of published in
1967)
• Textbook in English: Logic in Computer Science:
Modelling and Reasoning About Systems (paperback),
by M.Huth, M.Ryan, Cambridge Univ. Press, 2004.
Lecture agenda of I211
• Two kinds of standard (classical) logics
– Propositional logic (石川12月、田町11/27-12/5)
– First order predicate logic (石川1月、田町12/11-29)
• Two views on logic: syntax and semantics
– Syntax = theory (sequent calculus LK)
– Semantics = model (interpretation)
• Properties of focus
Goedl’s incompleteness th.
(Peano arithmetic)
– Completeness
– Decidability / Cut-elimination / Interpolation
– Herbrand theorem / Compactness
講義間の関係
• I211 または同等の知識が必要な科目
– I443 ソフトウェア検証論(青木)
– I633 Logic and Languages(東条)
– I640 Automated Deduction(小川)
– I647 Substructural Logic(小野)
• I211 を受講した方がいい人
– ソフトウェア科学(オ)領域の研究室の人、特に
形式手法関連の人には必須
– 哲学、数学の好きな人
– 単に(ア)領域の単位取得が目的ならば、他科
目のI216 等を薦めます
講義形式
• 講義は教科書の内容そのままではありません。基本
的にはスライドは self-contained (のつもり)、質問は
講義中も適宜、割り込んでください。
– スライドは英語、講義は日本語、質問はどちらでも。
– スライドは各回講義前後、ホームページにupload.
• 採点:レポート50点、試験50点
– (当然ですが)内容に基づいて採点します。数だけ
出しても、内容が伴わなければ0点です。
– 採点は(上限はそれぞれ50点とした)加点法です。
レポート・試験はすべてを解く必要はありません。
注意
• 講義に出て聞くだけで単位が取れると思わないこと
– 出席はとりません(出席点はありません)。出席しない
場合は自分で適当な教科書を最低1冊読み理解する
必要があるでしょう。
– 試験やレポートの前だけ勉強しても、たいがい不合格
でしょう。毎回の講義を確実に理解するように(Office
hour の質問を含め)予復習してください。おそらく講義
の同等~2倍以上の時間が予復習に必要なはずです。
• すべての証明の詳細がわからなくても大丈夫ですが、
– 定義、定理の実例を複数考える
– 講義の中で紹介したツールを実際に使ってみる
などの地に足がついた理解が必要です。
Why logic now?
形式検証への流れ
• 現実からの要請
– 古典的なテスト手法だけでは複雑なシステムに対応で
きなくなりつつある。形式検証による補完が必要。
– システムが正しいだけでなく、正しさの証拠が社会的要
請となりつつある(セキュリティ, EAL7 ISO/IEC15408)
– 人間は間違える!
• 形式手法が可能とするサポート
– 近年の検証ツール・ライブラリの実用性向上(インタ
フェース・実装の改良)
– ハードウェアの進化 (2GB以上のメモリ)
– 自分の誤りに気づくことが最大の利点!
形式検証とは
• システムやプログラム、ならびに満たすべき性質の双
方を形式的に記述(=計算機でチェック可能な形で)
– CPUデザイン(Intel,IBM,AMD,…) では当たり前
– 形式的記述の背景は数理論理(推論の規則化)
• 論理の表現力と自動化・効率化のトレードオフ
表現力大
– 帰納法:定理証明系・代数仕様記述(自動化困難)
– 一階述語論理:充足性検査(実用的には自動化可)
– 様相論理:モデル検査(自動化)
自動化 – 命題論理:充足性検査(自動化)
効率的
検証ツール花盛り
• 高階論理:型(α set)の導入で Russel の逆理を回避
– PVS, HOL, Isabelle, Misar, NuPrl, Coq, Agda, Twelf
• 一階述語論理+帰納法(代数的仕様記述)
– Café/OBJ, Maude, Larch
人間がガイドする証明系
(準)自動な充足性検査
• 一階述語論理:特定の帰納法は公理として追加して利用
– Simplify, CVC Lite, E, Vampire, SPASS, Otter
CASC競技会参加
– 応用例: ESC/Java2, Caduceus
• 様相論理:モデル検査
– SPIN, (Nu)SMV, SLAM/Moped, Weighted PDS
– 応用例: Bandera/Boger, Java PathFinder
• 命題論理:有界モデルを網羅的探索SAT competition, SMT-COMP
– miniSAT, zchaff, sugar, (yices, Z3)
– 応用例: Alloy, NuSMV, TTT (停止性検証)
論理の表現力と問題の関係
• プログラム解析でいえば …
命題論理・様相論理
一階述語論理
帰納法
手続内
古典的データフロー解析
(不要コード解析など)
アレイ境界検査
(注釈有)
アレイ境界検査
(注釈無)
手続間
スタック検査
関連コード解析
Craig interpolationによる自動化
Craig 1952
Ken McMillan, et.al. TACAS08
Voronkov, et.al. CADE09
But do not trust too much …
Lots of bug history in tool development
• UPPAAL (since 1995): Safeness of timed automata
– Zone construction is wrong! (STACS03)
• Pep (since 1997): Petrinet coverability
– Karp-Miller tree (1969), acceleration (1991)
– Acceleration algorithm is wrong! (ATVA07)
• HOL-light prover kernel (Ocaml only 400 lines)
– 2 soundness bugs found and corrected …
• SAT competition 2006: many SAT solvers are
buggy (did not work!).
Puzzel: SUDOKU (Latin square)
Find placing each number (1…9) s.t. precisely once in
- each row,
- each column,
- each 3*3 sub-square.
2 4?
4?
DEMO
1? 1?
5
What is SAT?
Given a propositional formula in CNF,
(±x1 ∨ … ∨ ±xn) ∧(±y1 ∨ … ∨ ±ym) ∧ …
find an assignment to Boolean variables that
makes the formula true:
ωω11==(x(x22∨∨xx33))
ωω22==((¬¬xx11∨∨¬¬xx44))
ωω33==((¬¬xx22∨∨xx44))
SATisfying
assignment!
AA=={x
=0,xx22=1,
=1,xx33=0,
=0,xx44=1}
=1}
{x11=0,
3SAT: NP-complete, but practically efficient
Killer SUDOKU (killersudokuonline.com)
=45-9-11-8-16
1
3
=11+14+16+12+5+15+5+13+3-(45×2)
4
=45-11-11-21
2
5
4
{1, 2, 3}
Solved <1.5sec by SMT (yices)
Killer SUDOKU (another example)
9
Solved in 4sec by SMT (yices)
1
Killer SUDOKU (combination)
Solved in 17sec by SMT (yices)
Killer SUDOKU (yet another example)
Solved in 5min
by SMT (yices)
Propositional Logic
Propositional logic
• Definition. Atomic propositions : A, B, C, …
– either True (1) or False (0) will be substituted
• Definition. Logical connectives :
∧(and), ∨(or), ¬(not), ⊃(imply)
• Definition. A proposition is,
– Either a propositional variable,
– (Constants Τand ⊥), or
– A pair of propositions combined with a logical
connective.
Caution! : Proposition is syntax
• Definition of propositions does not tell anything
on its semantics (meaning).
• As propositions, A∧B and B∧A are different!
How to prove automatically?
~ Two methods : syntax v.s. semantics ~
• Syntax: deduction rules
– A, A⊃B ⇒ B (modus ponens)
– (A∧B)∨C ⇒ (A∨C) ∧ (B∨C)
– (A∨B)∧C ⇒ (A∧C) ∨ (B∨C)
– (A⊃B)⇒ ¬A∨B
Equivalent
(completeness)
• Semantics: model (truth table)
– A⊃B
– ¬A ∨ B
For First-order logic, semantics becomes complicated.
Model (Semantics)
• Def. (Truth) Valuation is a substitution (of boolean
value, i.e., true/false) for each propositional variable.
• For each logical connective, valuation is
propagated as:
A
1
1
0
0
B
1
0
1
0
¬A
0
0
1
1
A∧B
1
0
0
0
A∨B
1
1
1
0
A⊃B
1
0
1
1
Validity
• Def. A proposition is valid, if it is always true for
each valuation.
• Exercise: Are they valid?
– A⊃A
– A ∨ ¬A
– ((A⊃B)⊃A)⊃A (Pierce’s law)
Satisfiablity
• Def. A proposition is
– Satisfiable ⇔ there exists truth valuation such
that the proposition becomes true.
– Unsatisfiable ⇔ there are no true valuation such
that the proposition becomes true (i.e., always
false for any substitutions on propositional
variables).
• Def. A pair of propositions ψ, φ are logically
equivalent if, for each valuation, truth values of ψ
and φ coincide.
• Remark: ψ is unsatisfiable iff ¬ψ is valid.