SlideShare a Scribd company logo
制約解消(と機械学習)による
プログラム検証・合成
海野 広志(うんの ひろし)
筑波大学 / 理研AIP
www.cs.tsukuba.ac.jp/~uhiro
自己紹介
2009 東京大学大学院 情報理工学系研究科
コンピュータ科学専攻 博士課程修了
博士(情報理工学)
指導教員:米澤 明憲 教授(現千葉工業大学)
小林 直樹 教授(現東京大学)
2012~2017 筑波大学 情報工学域 助教
2017~現在 同准教授
2018~現在 理化学研究所 革新知能統合研究センター
客員研究員
2020~現在 国立情報学研究所 客員准教授
2020/12/18 STAIR Lab Software Technology Seminar 2
Research Interests
• Formal specification, verification, and synthesis
of (mainly but not limited to) higher-order functional programs
by AI techniques such as constraint solving and machine learning
• Ongoing projects
• Synthesis of High-Level Programs from Temporal and Relational
Specifications (PI: Hiroshi Unno)
• Program Verification Techniques for the AI Era
(PI: Naoki Kobayashi)
• AI Security and Privacy (PI: Jun Sakuma)
• Metamathematics for Systems Design Project (PI: Ichiro Hasuo)
• …
2020/12/18 STAIR Lab Software Technology Seminar 3
This Talk
• Tutorial of program verification and synthesis based
on constraint solving and machine learning
2020/12/18 STAIR Lab Software Technology Seminar 4
Background
• Our society heavily relies on computer systems
• Failure or malfunction of safety-critical systems would lead
to human, social, economic, and environmental damage
• 1985-1987 – Therac-25 medical accelerator delivered lethal
radiation doses to patients
• June 4, 1996 – Ariane 5 Flight 501 exploded
• February, 2014 – 1.9 million Prius cars recalled
• April, 2014 – OpenSSL Heartbleed vulnerability disclosed
• June 17, 2016 – Ethereum DAO attacked, over $55M stolen
• Reliability assurance of safety-critical systems is crucial
2020/12/18 STAIR Lab Software Technology Seminar 5
Program Verification
• Formally prove or disprove a mathematical proposition 𝑄:
“The given program satisfies its formal specification”
• Great attentions from industry and academia
• Microsoft’s SLAM & Everest projects, Facebook’s Infer, AWS
• Turing awards to Hoare logic, temporal logic, model checking, …
2020/12/18 STAIR Lab Software Technology Seminar 6
Program & Spec.
let rec mc x =
if x > 100 then
x – 10
else
mc (mc (x + 11))
in
let n = randi() in
if n ≤ 101 then
assert (mc n = 91)
Program Verifier
A proof of 𝑄
or
A counterexample to 𝑄
(e.g., a program input
leading to a spec. violation)
or
Unknown
Program Synthesis
• Input an incomplete program and its specification 𝝓,
and output an executable program 𝑷 that satisfies 𝝓
• 𝜙 specifies extensional (what 𝑃 computes) and/or
intentional (how 𝑃 computes) behaviors of 𝑃
• 𝜙 is represented as a logical formula, input/output examples
(e.g., MS Excel FlashFill), a natural language sentence, …
2020/12/18 7STAIR Lab Software Technology Seminar
Incomplete Program
& Specification
let rec mc x = ?
let n = randi() in
if n ≤ 101 then
assert (mc n = 91)
Program Synthesizer
A program satisfying the spec.
let rec mc x =
if x > 100 then
x – 10
else
mc (mc (x + 11))
or
A proof of unrealizability
or
Unknown
Enabling Technologies
• Program logics for mechanizing verification & synthesis
• Hoare logic for proving Hoare triples 𝑃 𝑐 𝑄 meaning that:
For any initial state 𝜎 that satisfies the precondition 𝑃, if the execution
of the program 𝑐 under 𝜎 terminates, the postcondition 𝑄 is satisfied by
the resulting state
• Separation logic
• Dependent refinement type system
• Graded modal type system
• Constraint solvers for automating verification & synthesis
• SAT solvers: satisfiability checker for propositional formulas
• SMT solvers: satisfiability checker for predicate formulas over
first-order theories on integers, reals, lists, arrays, …
2020/12/18 STAIR Lab Software Technology Seminar 8
What about functions (that represent inductive invariants,
ranking functions, recurrent sets, Skolem functions, …)?
This Talk
• Tutorial of program verification and synthesis based on
constraint solving and machine learning over functions
• First part: How to reduce program verification and
synthesis to constraint solving
• Second part: How to solve constraints via integrated
deductive and inductive reasoning
• Deductive reasoning by theorem proving (e.g., SAT, SMT)
• Inductive reasoning by machine learning (e.g., decision tree
learning, reinforcement learning)
2020/12/18 STAIR Lab Software Technology Seminar 9
This Talk
• Tutorial of program verification and synthesis based on
constraint solving and machine learning over functions
• First part: How to reduce program verification and
synthesis to constraint solving
• Second part: How to solve constraints via integrated
deductive and inductive reasoning
• Deductive reasoning by theorem proving (e.g., SAT, SMT)
• Inductive reasoning by machine learning (e.g., decision tree
learning, reinforcement learning)
2020/12/18 STAIR Lab Software Technology Seminar 10
Program Verification via
Constraint Solving
2020/12/18 STAIR Lab Software Technology Seminar
Constraint
Generation
𝓒 is Sat (𝑷 satisfies 𝝍),
𝓒 is Unsat (𝑷 violates 𝝍),
or Unknown
Constraint
Solving
Constraints 𝓒 on Function Variables
Target Program 𝑷 & Specification 𝝍
11
Verification Intermediary
Independent of Particular
Target and Method 
Program Verification via
Constrained Horn Clauses (CHCs)
2020/12/18 STAIR Lab Software Technology Seminar
Constraint
Generation
𝓒 is Sat (𝑷 satisfies 𝝍),
𝓒 is Unsat (𝑷 violates 𝝍),
or Unknown
Constraint
Solving
Target Program 𝑷 & Specification 𝝍
CHCs Constraints 𝓒 on Predicate Variables
JayHorn for Java [Kahsai+ ’16]
SeaHorn for C [Gurfinkel+ ’15]
RCaml for OCaml [Unno+ ’09]
SPACER [Komuravelli+ ’14]
Hoice [Champion+ ’18]
Eldarica [Hojjat+ ’18]
12
CHCs: Constrained Horn Clauses
(see e.g., [Bjørner+ ’15] )
• A finite set 𝓒 of Horn-clauses of either form:
where 𝑋0, 𝑋1 … , 𝑋 𝑚 are predicate variables,
𝑡0, … , 𝑡 𝑚 are sequences of terms of a 1st-order theory 𝑇,
𝜙 is a formula of 𝑇 without predicate variables.
• 𝓒 is satisfiable (modulo 𝑇) if there is an interpretation 𝜌 of
predicate variables such that 𝜌 ⊨ ⋀𝓒
2020/12/18 STAIR Lab Software Technology Seminar
𝑋0 𝑡0 ⟸ 𝑋1 𝑡1 ∧ ⋯ ∧ 𝑋 𝑚 𝑡 𝑚 ∧ 𝜙
13
⊥ ⟸ 𝑋1 𝑡1 ∧ ⋯ ∧ 𝑋 𝑚 𝑡 𝑚 ∧ 𝜙or
𝑥 = 𝑥0
𝑦 = 0;
𝐰𝐡𝐢𝐥𝐞 𝑥 ≠ 0 𝐝𝐨
𝑦 ← 𝑦 + 1;
𝑥 ← 𝑥 − 1
𝐝𝐨𝐧𝐞
𝑦 = 𝑥0
2020/12/18 STAIR Lab Software Technology Seminar
If the initial state satisfies
the pre-condition 𝑥 = 𝑥0
and the loop terminates
the post-condition 𝑦 = 𝑥0 is
satisfied by the resulting state
Prog. & Spec. CHCs SAT or UNSAT
Constraint Generation Constraint Solving
Example Program and Partial Correctness Specification:
Pre-
condition
Post-
condition
14
Input:
𝑥 = 𝑥0
𝑦 = 0;
𝐰𝐡𝐢𝐥𝐞 𝑥 ≠ 0 𝐝𝐨
𝑦 ← 𝑦 + 1;
𝑥 ← 𝑥 − 1
𝐝𝐨𝐧𝐞
𝑦 = 𝑥0
2020/12/18 STAIR Lab Software Technology Seminar
Output 𝓒:
① 𝐼 𝑥0, 𝑥, 𝑦 ⟸ 𝑥 = 𝑥0 ∧ 𝑦 = 0,
② 𝐼 𝑥0, 𝑥 − 1, 𝑦 + 1
⟸ 𝐼 𝑥0, 𝑥, 𝑦 ∧ 𝑥 ≠ 0,
③ 𝑦 = 𝑥0 ⟸ 𝐼 𝑥0, 𝑥, 𝑦 ∧ 𝑥 = 0
Prog. & Spec. CHCs SAT or UNSAT
Constraint Generation Constraint Solving
represents a loop invariant
𝓒 is satisfiable, witnessed by a
solution 𝐼 𝑥0, 𝑥, 𝑦 ≡ 𝑥0 = 𝑥 + 𝑦
15
Program Verification via
Constrained Horn Clauses (CHCs)
2020/12/18 STAIR Lab Software Technology Seminar
Constraint
Generation
𝓒 is Sat (𝑷 satisfies 𝝍),
𝓒 is Unsat (𝑷 violates 𝝍),
or Unknown
Constraint
Solving
Target Program 𝑷 & Specification 𝝍
CHCs Constraints 𝓒 on Predicate Variables
Limited to Linear-Time
Safety Verification 
16
pCSP Constraints 𝓒 on Predicate Variables
Target Program 𝑷 & Specification 𝝍
Program Verification via Predicate
Constraint Satisfaction [Satake+ ’20]
2020/12/18 STAIR Lab Software Technology Seminar
Constraint
Generation
𝓒 is Sat (𝑷 satisfies 𝝍),
𝓒 is Unsat (𝑷 violates 𝝍),
or Unknown
Constraint
Solving
Applicable to (Finitely-)
Branching-Time Safety
Verification 
17
PCSat [Satake+ ’20, Unno+ ’20]
Linear-Time vs. Branching-Time
Verification of Non-det. Programs
• The target program 𝑷 may exhibit non-determinism
caused by user input, network comm., scheduling, …
• Linear-time verification concerns properties of
the execution traces of 𝑷
• Branching-time verification concerns properties of the
computation tree of 𝑷
• Subsumes linear-time verification
• Example: Non-termination verification of deciding whether
there is an infinite execution of 𝑷
(cf. termination verification decides whether all execution of
𝑷 is finite)
2020/12/18 STAIR Lab Software Technology Seminar 18
pCSP: Predicate Constraint
Satisfaction Problem[Satake+ ’20]
• A finite set 𝓒 of clauses of the form:
where 𝑋1, … , 𝑋 𝑚 are predicate variables,
𝑡1, … , 𝑡 𝑚 are sequences of terms of a 1st-order theory 𝑇,
𝜙 is a formula of 𝑇 without predicate variables.
• 𝓒 is satisfiable (modulo 𝑇) if there is an interpretation 𝜌 of
predicate variables such that 𝜌 ⊨ ⋀𝓒
• 𝓒 is CHCs if ℓ ≤ 1 for all clause in 𝓒
2020/12/18 STAIR Lab Software Technology Seminar
𝑋1 𝑡1 ∨ ⋯ ∨ 𝑋ℓ 𝑡ℓ ⟸
𝑋ℓ+1 𝑡ℓ+1 ∧ ⋯ ∧ 𝑋 𝑚 𝑡 𝑚 ∧ 𝜙
19
𝑥 > 0
𝐰𝐡𝐢𝐥𝐞 𝑥 ≠ 0 𝐝𝐨
𝐢𝐟 𝐫𝐞𝐚𝐝_𝐛𝐨𝐨𝐥 ∃
𝐭𝐡𝐞𝐧
𝑥 ← 𝑥 − 1
𝐞𝐥𝐬𝐞
𝑥 ← 𝑥 + 1
𝐝𝐨𝐧𝐞
⊥
2020/12/18 STAIR Lab Software Technology Seminar
If the initial state satisfies
the pre-condition 𝑥 > 0
there is an execution of
the program such that
the post-condition ⊥ is
satisfied when the while
loop terminates
Prog. & Spec. pCSP SAT or UNSAT
Constraint Generation Constraint Solving
Example Program and Specification:
Non-det.
branching
Contradiction
Pre-
condition
Post-
condition
20
𝑥 > 0
𝐰𝐡𝐢𝐥𝐞 𝑥 ≠ 0 𝐝𝐨
𝐢𝐟 𝐫𝐞𝐚𝐝_𝐛𝐨𝐨𝐥 ∃
𝐭𝐡𝐞𝐧
𝑥 ← 𝑥 − 1
𝐞𝐥𝐬𝐞
𝑥 ← 𝑥 + 1
𝐝𝐨𝐧𝐞
⊥
2020/12/18 STAIR Lab Software Technology Seminar
If the initial state satisfies
the pre-condition 𝑥 > 0
there is an execution of
the program such that
the while loop
never terminates
Prog. & Spec. pCSP SAT or UNSAT
Constraint Generation Constraint Solving
Example Program and Specification:
Non-det.
branching
Contradiction
Pre-
condition
Post-
condition
21
Input:
𝑥 > 0
𝐰𝐡𝐢𝐥𝐞 𝑥 ≠ 0 𝐝𝐨
𝐢𝐟 𝐫𝐞𝐚𝐝_𝐛𝐨𝐨𝐥 ∃ 𝐭𝐡𝐞𝐧
𝑥 ← 𝑥 − 1
𝐞𝐥𝐬𝐞
𝑥 ← 𝑥 + 1
𝐝𝐨𝐧𝐞
⊥
2020/12/18 STAIR Lab Software Technology Seminar
Output 𝓒:
① 𝐼 𝑥 ⟸ 𝑥 > 0,
② 𝐼 𝑥 − 1 ∨ 𝐼 𝑥 + 1
⟸ 𝐼 𝑥 ∧ 𝑥 ≠ 0,
③ ⊥ ⟸ 𝐼 𝑥 ∧ 𝑥 = 0
Prog. & Spec. pCSP SAT or UNSAT
Constraint Generation Constraint Solving
represents a loop invariant
preserved by some execution
(i.e., recurrent set)
𝓒 is beyond
CHCs!
𝓒 is satisfiable, witnessed by
a solution 𝐼 𝑥 ≡ 𝑥 > 0 22
pfwCSP Constraints 𝓒 on Predicate Variables
Target Program 𝑷 & Specification 𝝍
Program Verification via Extended
Predicate Constraint Satisfaction [Unno+ ’20]
2020/12/18 STAIR Lab Software Technology Seminar
Constraint
Generation
𝓒 is Sat (𝑷 satisfies 𝝍),
𝓒 is Unsat (𝑷 violates 𝝍),
or Unknown
Constraint
Solving
Applicable to (Infinitely-)
Branching-Time Safety &
Liveness Verification 
23
PCSat [Satake+ ’20, Unno+ ’20]
Safety vs. Liveness Verification
• Safety is a class of properties of the form
“something bad will never happen”
• Examples (absence of): assertion failure, division-by-zero,
array boundary violation, …
• Liveness is a class of properties of the form
“something good will eventually happen”
• Examples: termination, deadlock freedom, …
2020/12/18 STAIR Lab Software Technology Seminar 24
pfwCSP: Extension of pCSP with Functional
and Well-founded Predicates [Unno+ ’20]
(cf. ∀∃CHCs with dwf [Beyene+ ’13])
• A finite set 𝓒 of pCSP clauses equipped with
a map 𝓚 from predicate variable 𝑋 in 𝓒 to ⋆, 𝜆, ⇓
• 𝑋 is ordinary predicate if 𝓚 𝑋 = ⋆
• 𝑋 is functional predicate if 𝓚 𝑋 = 𝜆
• 𝑋 is well-founded predicate if 𝓚 𝑋 = ⇓
• 𝓒 is satisfiable (modulo 𝑇) if there is an interpretation
𝜌 of predicate variables such that
• 𝜌 ⊨ ⋀𝓒
• ∀𝑋. 𝓚 𝑋 = 𝜆 ⟹ 𝜌 𝑋 characterizes a total function
• ∀𝑋. 𝓚 𝑋 = ⇓ ⟹ 𝜌 𝑋 represents a well-founded relation
2020/12/18 STAIR Lab Software Technology Seminar 25
𝑥 > 0
𝐰𝐡𝐢𝐥𝐞 𝑥 > 0 𝐝𝐨
𝑥 ← 𝐫𝐞𝐚𝐝_𝐢𝐧𝐭 ∃ − 𝑥
𝐝𝐨𝐧𝐞
⊥
2020/12/18 STAIR Lab Software Technology Seminar
If the initial state satisfies
the pre-condition 𝑥 > 0
there is an execution of
the program such that
the while loop
never terminates
Prog. & Spec. pfwCSP SAT or UNSAT
Constraint Generation Constraint Solving
Example Program and Specification:
Non-det.
integer
Contradiction
Pre-
condition
Post-
condition
26
Input:
𝑥 > 0
𝐰𝐡𝐢𝐥𝐞 𝑥 > 0 𝐝𝐨
𝑥 ← 𝐫𝐞𝐚𝐝_𝐢𝐧𝐭 ∃ − 𝑥
𝐝𝐨𝐧𝐞
⊥
2020/12/18 STAIR Lab Software Technology Seminar
Output 𝓒:
① 𝐼 𝑥 ⟸ 𝑥 > 0,
② ∃𝑟. 𝐼 𝑟 − 𝑥
⟸ 𝐼 𝑥 ∧ 𝑥 > 0,
③ ⊥ ⟸ 𝐼 𝑥 ∧ 𝑥 ≤ 0
Prog. & Spec. pfwCSP SAT or UNSAT
Constraint Generation Constraint Solving
represents a loop invariant
preserved by some execution
(i.e., recurrent set)
𝓒 is beyond pCSP but can
be encoded in pfwCSP
using a functional pred.
var. that characterizes
a Skolem function for 𝒓
27
Input:
𝑥 > 0
𝐰𝐡𝐢𝐥𝐞 𝑥 > 0 𝐝𝐨
𝑥 ← 𝐫𝐞𝐚𝐝_𝐢𝐧𝐭 ∃ − 𝑥
𝐝𝐨𝐧𝐞
⊥
2020/12/18 STAIR Lab Software Technology Seminar
Output 𝓒:
① 𝐼 𝑥 ⟸ 𝑥 > 0,
② 𝐼 𝑟 − 𝑥 ⟸ 𝑆𝜆 𝑥, 𝑟
∧ 𝐼 𝑥 ∧ 𝑥 > 0,
③ ⊥ ⟸ 𝐼 𝑥 ∧ 𝑥 ≤ 0
Prog. & Spec. pfwCSP SAT or UNSAT
Constraint Generation Constraint Solving
characterizes a Skolem
function mapping 𝑥 to 𝑟
28
𝓒 is satisfiable, witnessed by a solution
𝐼 𝑥 ≡ 𝑥 > 0, 𝑆𝜆 𝑥, 𝑟 ≡ 𝑟 = 𝑥 + 1
𝑥 ≠ 0
𝐰𝐡𝐢𝐥𝐞 𝑥 ≠ 0 𝐝𝐨
𝐢𝐟 𝑥 > 0 𝐭𝐡𝐞𝐧
𝑥 ← 𝑥 − 1
𝐞𝐥𝐬𝐞
𝑥 ← 𝑥 + 1
𝐝𝐨𝐧𝐞
⊤
2020/12/18 STAIR Lab Software Technology Seminar
If the initial state satisfies
the pre-condition 𝑥 ≠ 0
the loop always terminates
and the post-condition ⊤ is
satisfied by the resulting state
Prog. & Spec. pfwCSP SAT or UNSAT
Constraint Generation Constraint Solving
Example Program and Total Correctness Specification:
Pre-
condition
Post-
condition
29
Tautology
Input:
𝑥 ≠ 0
𝐰𝐡𝐢𝐥𝐞 𝑥 ≠ 0 𝐝𝐨
𝐢𝐟 𝑥 > 0 𝐭𝐡𝐞𝐧
𝑥 ← 𝑥 − 1
𝐞𝐥𝐬𝐞
𝑥 ← 𝑥 + 1
𝐝𝐨𝐧𝐞
⊤
2020/12/18 STAIR Lab Software Technology Seminar
Output 𝓒:
① 𝐼 𝑥 ⟸ 𝑥 = 0,
② 𝐼 𝑥 − 1 ⟸ 𝐼 𝑥 ∧ 𝑥 > 0,
③ 𝐼 𝑥 + 1 ⟸ 𝐼 𝑥 ∧ 𝑥 < 0,
④ 𝑇⇓ 𝑥, 𝑥 − 1 ⟸ 𝐼 𝑥 ∧ 𝑥 > 0,
⑤ 𝑇⇓ 𝑥, 𝑥 + 1 ⟸ 𝐼 𝑥 ∧ 𝑥 < 0,
Prog. & Spec. pfwCSP SAT or UNSAT
Constraint Generation Constraint Solving
represents a loop invariant
30
represents a well-
founded relation for
termination of the loop
𝓒 is satisfiable, witnessed by a solution
𝐼 𝑥 ≡ ⊤, 𝑇⇓ 𝑥, 𝑥′ ≡ 𝑥 > 𝑥′
≥ 0
Further Applications of pfwCSP
• Refinement type inference [Unno+ ’09,’13,’18, Nanjo’18, Katsura+ ’20]
• Validity checking of fixpoint logic formulas
• LTL, CTL, CTL*, modal-mu calculus model checking
• Infinite-state infinite-duration game solving
• Bisimulation and bisimilarity verification
• Hyperproperties verification
• Program synthesis
• …
2020/12/18 STAIR Lab Software Technology Seminar 31
(see [Unno+ ’20] and upcoming papers)
Program Synthesis via
Constraint Solving
2020/12/18 STAIR Lab Software Technology Seminar
Constraint
Generation
𝓒 is Sat (some 𝑷 ∈ 𝓛 satisfies 𝝍),
𝓒 is Unsat (all 𝑷 ∈ 𝓛 violates 𝝍),
or Unknown
Constraint
Solving
Constraints 𝓒 on Function Variables
Language 𝓛 & Specification 𝝍
32
Synthesis Intermediary
Independent of Particular
Target and Method 
Program Synthesis via
Syntax-Guided Synthesis (SyGuS)
2020/12/18 STAIR Lab Software Technology Seminar
Constraint
Generation
𝓒 is Sat (some 𝑷 ∈ 𝓛 satisfies 𝝍),
𝓒 is Unsat (all 𝑷 ∈ 𝓛 violates 𝝍),
or Unknown
Constraint
Solving
SyGuS Constraints 𝓒 on Function Variables
Language 𝓛 & Specification 𝝍
33
CVC4 [Reynolds+ ’15,’19]
DryadSynth [Huang+ ’20]
PCSat [Satake+ ’20, Unno+ ’20]
SyGuS: Syntax-Guided
Synthesis [Alur+ ’15]
• Fix a first-order background theory 𝑇 such as:
• Linear integer arithmetic (LIA)
• Strings (for FlashFill benchmarks)
• Bit-vectors (for Hackers' Delight benchmarks)
• Given
• Specification: 𝑇-formula 𝜙 over a function variable 𝑓
• Language: context-free grammar 𝐺 characterizing the
set ℒ 𝐺 of allowed 𝑇-terms
• Find a term 𝑡 ∈ ℒ 𝐺 such that ⊨ 𝑡/𝑓 𝜙
2020/12/18 STAIR Lab Software Technology Seminar 34
Example LIA SyGuS Constraints 𝓒:
• Language: 𝐺 that generates any term of LIA
• Specification: 𝜙 ≡
𝑓 𝑥, 𝑦 ≥ 𝑥 ∧ 𝑓 𝑥, 𝑦 ≥ 𝑦 ∧
𝑓 𝑥, 𝑦 = 𝑥 ∨ 𝑓 𝑥, 𝑦 = 𝑦
𝓒 is satisfied by 𝑓 𝑥, 𝑦 ≡ if 𝑥 > 𝑦 then 𝑥 else 𝑦
𝓒 can be reduced to the pfwCSP:
𝑟 ≥ 𝑥 ∧ 𝑟 ≥ 𝑦 ∧ 𝑟 = 𝑥 ∨ 𝑟 = 𝑦 ⟸ 𝐹𝜆 𝑥, 𝑦, 𝑟
In general, SyGuS constraints 𝓒 can be converted to
a pfwCSP using a predicate that characterizes ℒ 𝐺
2020/12/18 STAIR Lab Software Technology Seminar 35
This Talk
• Tutorial of program verification and synthesis based on
constraint solving and machine learning over functions
• First part: How to reduce program verification and
synthesis to constraint solving
• Second part: How to solve constraints via integrated
deductive and inductive reasoning
• Deductive reasoning by theorem proving (e.g., SAT, SMT)
• Inductive reasoning by machine learning (e.g., decision tree
learning, reinforcement learning)
2020/12/18 STAIR Lab Software Technology Seminar 36
pfwCSP Constraints 𝓒 on Predicate Variables
Target Program 𝑷 &
Specification 𝝍
Program Verification and Synthesis via
Predicate Constraint Satisfaction
2020/12/18 STAIR Lab Software Technology Seminar
Constraint
Generation
𝓒 is Sat, 𝓒 is Unsat, or Unknown
Constraint
Solving
37
Language 𝓛 &
Specification 𝝍
Challenges in Constraint Solving
• Undecidable in general even for decidable theories
• The search space of solutions is often very large
(or unbounded), high-dimensional, and non-smooth
2020/12/18 STAIR Lab Software Technology Seminar
To address these challenges, researchers are
integrating deductive & inductive reasoning
techniques within the framework of
CounterExample Guided Inductive Synthesis
(CEGIS) [Solar-Lezama+ ’06]
38
CounterExample Guided
Inductive Synthesis (CEGIS)
• Iteratively accumulate example instances 𝓔 of the
given 𝓒 through the two phases for each iteration:
• Synthesis Phase by Learner
• Find a candidate solution 𝜌 that satisfies 𝓔
• Validation Phase by Teacher
• Check if the candidate 𝜌 also satisfies 𝓒 (with an SMT solver)
• If yes, return 𝜌 as a genuine solution of 𝓒
• If no, repeat the procedure with new example instances
witnessing non-satisfaction of 𝓒 by 𝜌 added
2020/12/18 STAIR Lab Software Technology Seminar 39
Example Run of CEGIS
Learner
Example Instances 𝓔:
∅
Teacher
Constraints 𝓒:
• 𝐼 𝑥 ⟸ 𝑥 > 0
• 𝐼 𝑥 − 1 ∨ 𝐼 𝑥 + 1
⟸ 𝐼 𝑥 ∧ 𝑥 ≠ 0
• ⊥ ⟸ 𝐼 𝑥 ∧ 𝑥 = 0
2020/12/18 STAIR Lab Software Technology Seminar
Starting from
the empty set
(𝓒 is a black box)
Is the candidate 𝐼 𝑥 ↦ ⊤ genuine?
40
Example Run of CEGIS
Learner
Example Instances 𝓔:
∅
Teacher
Constraints 𝓒:
• 𝐼 𝑥 ⟸ 𝑥 > 0
• 𝐼 𝑥 − 1 ∨ 𝐼 𝑥 + 1
⟸ 𝐼 𝑥 ∧ 𝑥 ≠ 0
• ⊥ ⟸ 𝐼 𝑥 ∧ 𝑥 = 0
2020/12/18 STAIR Lab Software Technology Seminar
No. 𝐼 𝑥 ↦ ⊤ is not.
The 3rd clause is violated when 𝑥 = 0
⊥ ⟸ 𝐼 0 ∧ 0 = 0
41
Example Run of CEGIS
Learner
Example Instances 𝓔:
¬𝐼 0
Teacher
Constraints 𝓒:
• 𝐼 𝑥 ⟸ 𝑥 > 0
• 𝐼 𝑥 − 1 ∨ 𝐼 𝑥 + 1
⟸ 𝐼 𝑥 ∧ 𝑥 ≠ 0
• ⊥ ⟸ 𝐼 𝑥 ∧ 𝑥 = 0
2020/12/18 STAIR Lab Software Technology Seminar
Is the cand. 𝐼 𝑥 ↦ 𝑥 < 0 genuine?
42
Example Run of CEGIS
Learner
Example Instances 𝓔:
¬𝐼 0
Teacher
Constraints 𝓒:
• 𝐼 𝑥 ⟸ 𝑥 > 0
• 𝐼 𝑥 − 1 ∨ 𝐼 𝑥 + 1
⟸ 𝐼 𝑥 ∧ 𝑥 ≠ 0
• ⊥ ⟸ 𝐼 𝑥 ∧ 𝑥 = 0
2020/12/18 STAIR Lab Software Technology Seminar
No. 𝐼 𝑥 ↦ 𝑥 < 0 is not.
The 1st clause is violated when 𝑥 = 1
𝐼 1 ⟸ 1 > 0
43
Example Run of CEGIS
Learner
Example Instances 𝓔:
¬𝐼 0
𝐼 1
Teacher
Constraints 𝓒:
• 𝐼 𝑥 ⟸ 𝑥 > 0
• 𝐼 𝑥 − 1 ∨ 𝐼 𝑥 + 1
⟸ 𝐼 𝑥 ∧ 𝑥 ≠ 0
• ⊥ ⟸ 𝐼 𝑥 ∧ 𝑥 = 0
2020/12/18 STAIR Lab Software Technology Seminar
Is the cand. 𝐼 𝑥 ↦ 𝑥 = 1 genuine?
44
Example Run of CEGIS
Learner
Example Instances 𝓔:
¬𝐼 0
𝐼 0 ∨ 𝐼 2 ⟸ 𝐼 1
𝐼 1
Teacher
Constraints 𝓒:
• 𝐼 𝑥 ⟸ 𝑥 > 0
• 𝐼 𝑥 − 1 ∨ 𝐼 𝑥 + 1
⟸ 𝐼 𝑥 ∧ 𝑥 ≠ 0
• ⊥ ⟸ 𝐼 𝑥 ∧ 𝑥 = 0
2020/12/18 STAIR Lab Software Technology Seminar 45
No. 𝐼 𝑥 ↦ 𝑥 = 1 is not.
The 2nd clause is violated when 𝑥 = 1
Example Run of CEGIS
Learner
Example Instances 𝓔:
¬𝐼 0
𝐼 0 ∨ 𝐼 2 ⟸ 𝐼 1
𝐼 1
Teacher
Constraints 𝓒:
• 𝐼 𝑥 ⟸ 𝑥 > 0
• 𝐼 𝑥 − 1 ∨ 𝐼 𝑥 + 1
⟸ 𝐼 𝑥 ∧ 𝑥 ≠ 0
• ⊥ ⟸ 𝐼 𝑥 ∧ 𝑥 = 0
2020/12/18 STAIR Lab Software Technology Seminar
Is the cand. 𝐼 𝑥 ↦ 𝑥 ≥ 1 genuine?
46
Example Run of CEGIS
Learner
Example Instances 𝓔:
¬𝐼 0
𝐼 0 ∨ 𝐼 2 ⟸ 𝐼 1
𝐼 1
Teacher
Constraints 𝓒:
• 𝐼 𝑥 ⟸ 𝑥 > 0
• 𝐼 𝑥 − 1 ∨ 𝐼 𝑥 + 1
⟸ 𝐼 𝑥 ∧ 𝑥 ≠ 0
• ⊥ ⟸ 𝐼 𝑥 ∧ 𝑥 = 0
2020/12/18 STAIR Lab Software Technology Seminar
Yes. 𝐼 𝑥 ↦ 𝑥 ≥ 1 satisfies 𝓒!
47
Is CEGIS just (Online) Supervised
Learning of Classification?
• Similarities
• Learner trains a model to fit examples 𝓔 and obtain 𝜌
• Teacher requires 𝜌 to generalize to 𝓒 (𝜌 shouldn’t overfit 𝓔)
• Differences
• 𝓔 is usually assumed to have no noise & 𝓒 is hard constraints
• 𝜌 is required to exactly satisfy 𝓔 (or has no chance to satisfy 𝓒)
• 𝜌 should be efficiently handled by Teacher (i.e., an SMT solver)
• Sampling of 𝓔 from 𝓒 is not i.i.d (depends on 𝜌 and Teacher)
• 𝓔 may contain not only positive/negative examples but also
arbitrary clause ones (cf. constrained semi-supervised learning)
2020/12/18 STAIR Lab Software Technology Seminar 48
Despite the differences, machine learning
techniques turned out to be quite useful!
Machine Learning for CEGIS
• Adapt ML models and algorithms to implement Learner
• Piecewise linear classifiers [Sharma+ ’13a, Garg+ ’14, Unno+ ’20]
• Decision trees [Krishna+ ’15, Garg+ ’16, Champion+ ’18, Ezudheen+ ’18, Zhu+ ’18]
• Neural networks [Chang+ ’19, Zhao+ ’20, Abate+ ’21]
• Greedy set covering w/ logic minimization [Padhi+ ’16, Sharma+ ’13b]
• Metropolis Hastings MCMC sampler [Sharma+ ’14]
• Probabilistic inference, survey propagation [Satake+ ’20]
• Ensemble learning [Padhi+ ’20]
• Learning to learn
• Reinforcement learning of NNs to generate candidates [Si ’18]
• Reinforcement learning of strategy to adjust classification models used
by Learner (joint work w/ Tsukada, Sekiyama, Suenaga)
2020/12/18 STAIR Lab Software Technology Seminar 49
SMT-based Piecewise Linear Classification
(aka Template-based Synthesis)
1. Prepare a solution template with unknown coefficients,
2. Generate constraints on them, and
3. Solve them using an SMT solver
2020/12/18 STAIR Lab Software Technology Seminar
Examples: 𝓔 ≡ 𝐼 0 , 𝐼 0 ⇒ 𝐼 1 , ¬𝐼 −1
Solution Template: 𝐼 𝑥 ↦ 𝑐1 ⋅ 𝑥 + 𝑐2 ≥ 0
Coeff. Constraints: 𝑐2 ≥ 0, 𝑐2 ≥ 0 ⇒ 𝑐1 + 𝑐2 ≥ 0, −𝑐1 + 𝑐2 < 0
A Candidate Solution: 𝜌 ≡ 𝐼 𝑥 ↦ 𝑥 ≥ 0
Satisfying Assignment: 𝑐1 ↦ 1, 𝑐2 ↦ 0
50
Decision Tree Learning
1. Consistently label atoms in 𝓔 with +/− using a SAT solver
2. Generate a set 𝑄 of predicates used in classification
3. Classify atoms in 𝓔 with 𝑄 using a decision tree learner
2020/12/18 STAIR Lab Software Technology Seminar
Examples: 𝓔 ≡ 𝐼 0 , 𝐼 0 ⇒ 𝐼 1 , ¬𝐼 −1
Labeling: 𝐼 0 ↦ +, 𝐼 1 ↦ +, 𝐼 −1 ↦ −
Classifier: 𝜌 ≡ 𝐼 𝑥 ↦ 𝑥 ≥ 0
Predicates: 𝑄 ≡
𝑥 ≥ 0, 𝑥 ≤ 0, 𝑥 ≥ 1,
𝑥 ≥ −1, 𝑥 ≤ 1, 𝑥 ≤ −1
51
Template-based Synthesis
vs Decision Tree Learning
• Template-based Synthesis (TB)
•  Fixes the shape of solution (updated upon failure)
•  Flexibly find necessary predicates via SMT solving
•  Atoms in 𝓔 are consistently labeled using 𝓔 as an SMT formula
• Decision Tree Learning (DT)
•  Fixes the predicates of solution (updated upon failure)
•  Flexibly adjust the shape based on information gain
•  Atoms are consistently labeled using 𝓔 as a SAT formula
• Evaluation on SyGuS-Comp’19 Inv track XC benchmarks
• TB solved 228 instances (out of 276) and DT solved 180 instances
2020/12/18 STAIR Lab Software Technology Seminar 52
Future Research Directions
• Efficient synthesis of complex and large functions
from complex and large constraints
• (Co)Inductive functions
• Functions over (linked, (co)algebraic, array) data structures
• Improve labeling, sampling and filtering of examples, and
generation and ranking of predicates
• Convergence theory of CEGIS
• More applications
2020/12/18 STAIR Lab Software Technology Seminar 53
Summary
• Various program verification and synthesis problems
can be reduced to constraint solving problems
• The separation of constraint generation and solving
facilitate tool development
• CEGIS-based constraint solving integrates deductive
and inductive reasoning to address challenges
• Deductive reasoning by theorem proving (e.g., SAT, SMT)
• Inductive reasoning by machine learning (e.g., decision
tree learning, reinforcement learning)
2020/12/18 STAIR Lab Software Technology Seminar 54

More Related Content

What's hot

機械学習で泣かないためのコード設計
機械学習で泣かないためのコード設計機械学習で泣かないためのコード設計
機械学習で泣かないためのコード設計
Takahiro Kubo
 
C++でCプリプロセッサを作ったり速くしたりしたお話
C++でCプリプロセッサを作ったり速くしたりしたお話C++でCプリプロセッサを作ったり速くしたりしたお話
C++でCプリプロセッサを作ったり速くしたりしたお話
Kinuko Yasuda
 
ChatGPT 人間のフィードバックから強化学習した対話AI
ChatGPT 人間のフィードバックから強化学習した対話AIChatGPT 人間のフィードバックから強化学習した対話AI
ChatGPT 人間のフィードバックから強化学習した対話AI
Shota Imai
 
研究動向から考えるx86/x64最適化手法
研究動向から考えるx86/x64最適化手法研究動向から考えるx86/x64最適化手法
研究動向から考えるx86/x64最適化手法Takeshi Yamamuro
 
それでも私が研究を続ける理由
それでも私が研究を続ける理由それでも私が研究を続ける理由
それでも私が研究を続ける理由
Hitomi Yanaka
 
Union find(素集合データ構造)
Union find(素集合データ構造)Union find(素集合データ構造)
Union find(素集合データ構造)
AtCoder Inc.
 
明日使えないすごいビット演算
明日使えないすごいビット演算明日使えないすごいビット演算
明日使えないすごいビット演算
京大 マイコンクラブ
 
Recent Advances on Transfer Learning and Related Topics Ver.2
Recent Advances on Transfer Learning and Related Topics Ver.2Recent Advances on Transfer Learning and Related Topics Ver.2
Recent Advances on Transfer Learning and Related Topics Ver.2
Kota Matsui
 
Attentionの基礎からTransformerの入門まで
Attentionの基礎からTransformerの入門までAttentionの基礎からTransformerの入門まで
Attentionの基礎からTransformerの入門まで
AGIRobots
 
暗号技術の実装と数学
暗号技術の実装と数学暗号技術の実装と数学
暗号技術の実装と数学
MITSUNARI Shigeo
 
Pythonの理解を試みる 〜バイトコードインタプリタを作成する〜
Pythonの理解を試みる 〜バイトコードインタプリタを作成する〜Pythonの理解を試みる 〜バイトコードインタプリタを作成する〜
Pythonの理解を試みる 〜バイトコードインタプリタを作成する〜
Preferred Networks
 
充足可能性問題のいろいろ
充足可能性問題のいろいろ充足可能性問題のいろいろ
充足可能性問題のいろいろ
Hiroshi Yamashita
 
最高の統計ソフトウェアはどれか? "What’s the Best Statistical Software? A Comparison of R, Py...
最高の統計ソフトウェアはどれか? "What’s the Best Statistical Software? A Comparison of R, Py...最高の統計ソフトウェアはどれか? "What’s the Best Statistical Software? A Comparison of R, Py...
最高の統計ソフトウェアはどれか? "What’s the Best Statistical Software? A Comparison of R, Py...
ケンタ タナカ
 
Transformerを多層にする際の勾配消失問題と解決法について
Transformerを多層にする際の勾配消失問題と解決法についてTransformerを多層にする際の勾配消失問題と解決法について
Transformerを多層にする際の勾配消失問題と解決法について
Sho Takase
 
プログラミングコンテストでの動的計画法
プログラミングコンテストでの動的計画法プログラミングコンテストでの動的計画法
プログラミングコンテストでの動的計画法Takuya Akiba
 
A100 GPU 搭載! P4d インスタンス 使いこなしのコツ
A100 GPU 搭載! P4d インスタンス使いこなしのコツA100 GPU 搭載! P4d インスタンス使いこなしのコツ
A100 GPU 搭載! P4d インスタンス 使いこなしのコツ
Kuninobu SaSaki
 
最適輸送の計算アルゴリズムの研究動向
最適輸送の計算アルゴリズムの研究動向最適輸送の計算アルゴリズムの研究動向
最適輸送の計算アルゴリズムの研究動向
ohken
 
組合せ最適化入門:線形計画から整数計画まで
組合せ最適化入門:線形計画から整数計画まで組合せ最適化入門:線形計画から整数計画まで
組合せ最適化入門:線形計画から整数計画までShunji Umetani
 
機械学習で泣かないためのコード設計 2018
機械学習で泣かないためのコード設計 2018機械学習で泣かないためのコード設計 2018
機械学習で泣かないためのコード設計 2018
Takahiro Kubo
 
[DL輪読会]data2vec: A General Framework for Self-supervised Learning in Speech,...
[DL輪読会]data2vec: A General Framework for  Self-supervised Learning in Speech,...[DL輪読会]data2vec: A General Framework for  Self-supervised Learning in Speech,...
[DL輪読会]data2vec: A General Framework for Self-supervised Learning in Speech,...
Deep Learning JP
 

What's hot (20)

機械学習で泣かないためのコード設計
機械学習で泣かないためのコード設計機械学習で泣かないためのコード設計
機械学習で泣かないためのコード設計
 
C++でCプリプロセッサを作ったり速くしたりしたお話
C++でCプリプロセッサを作ったり速くしたりしたお話C++でCプリプロセッサを作ったり速くしたりしたお話
C++でCプリプロセッサを作ったり速くしたりしたお話
 
ChatGPT 人間のフィードバックから強化学習した対話AI
ChatGPT 人間のフィードバックから強化学習した対話AIChatGPT 人間のフィードバックから強化学習した対話AI
ChatGPT 人間のフィードバックから強化学習した対話AI
 
研究動向から考えるx86/x64最適化手法
研究動向から考えるx86/x64最適化手法研究動向から考えるx86/x64最適化手法
研究動向から考えるx86/x64最適化手法
 
それでも私が研究を続ける理由
それでも私が研究を続ける理由それでも私が研究を続ける理由
それでも私が研究を続ける理由
 
Union find(素集合データ構造)
Union find(素集合データ構造)Union find(素集合データ構造)
Union find(素集合データ構造)
 
明日使えないすごいビット演算
明日使えないすごいビット演算明日使えないすごいビット演算
明日使えないすごいビット演算
 
Recent Advances on Transfer Learning and Related Topics Ver.2
Recent Advances on Transfer Learning and Related Topics Ver.2Recent Advances on Transfer Learning and Related Topics Ver.2
Recent Advances on Transfer Learning and Related Topics Ver.2
 
Attentionの基礎からTransformerの入門まで
Attentionの基礎からTransformerの入門までAttentionの基礎からTransformerの入門まで
Attentionの基礎からTransformerの入門まで
 
暗号技術の実装と数学
暗号技術の実装と数学暗号技術の実装と数学
暗号技術の実装と数学
 
Pythonの理解を試みる 〜バイトコードインタプリタを作成する〜
Pythonの理解を試みる 〜バイトコードインタプリタを作成する〜Pythonの理解を試みる 〜バイトコードインタプリタを作成する〜
Pythonの理解を試みる 〜バイトコードインタプリタを作成する〜
 
充足可能性問題のいろいろ
充足可能性問題のいろいろ充足可能性問題のいろいろ
充足可能性問題のいろいろ
 
最高の統計ソフトウェアはどれか? "What’s the Best Statistical Software? A Comparison of R, Py...
最高の統計ソフトウェアはどれか? "What’s the Best Statistical Software? A Comparison of R, Py...最高の統計ソフトウェアはどれか? "What’s the Best Statistical Software? A Comparison of R, Py...
最高の統計ソフトウェアはどれか? "What’s the Best Statistical Software? A Comparison of R, Py...
 
Transformerを多層にする際の勾配消失問題と解決法について
Transformerを多層にする際の勾配消失問題と解決法についてTransformerを多層にする際の勾配消失問題と解決法について
Transformerを多層にする際の勾配消失問題と解決法について
 
プログラミングコンテストでの動的計画法
プログラミングコンテストでの動的計画法プログラミングコンテストでの動的計画法
プログラミングコンテストでの動的計画法
 
A100 GPU 搭載! P4d インスタンス 使いこなしのコツ
A100 GPU 搭載! P4d インスタンス使いこなしのコツA100 GPU 搭載! P4d インスタンス使いこなしのコツ
A100 GPU 搭載! P4d インスタンス 使いこなしのコツ
 
最適輸送の計算アルゴリズムの研究動向
最適輸送の計算アルゴリズムの研究動向最適輸送の計算アルゴリズムの研究動向
最適輸送の計算アルゴリズムの研究動向
 
組合せ最適化入門:線形計画から整数計画まで
組合せ最適化入門:線形計画から整数計画まで組合せ最適化入門:線形計画から整数計画まで
組合せ最適化入門:線形計画から整数計画まで
 
機械学習で泣かないためのコード設計 2018
機械学習で泣かないためのコード設計 2018機械学習で泣かないためのコード設計 2018
機械学習で泣かないためのコード設計 2018
 
[DL輪読会]data2vec: A General Framework for Self-supervised Learning in Speech,...
[DL輪読会]data2vec: A General Framework for  Self-supervised Learning in Speech,...[DL輪読会]data2vec: A General Framework for  Self-supervised Learning in Speech,...
[DL輪読会]data2vec: A General Framework for Self-supervised Learning in Speech,...
 

Similar to 制約解消によるプログラム検証・合成 (第1回ステアラボソフトウェア技術セミナー)

Static Analysis and Verification of C Programs
Static Analysis and Verification of C ProgramsStatic Analysis and Verification of C Programs
APSEC2020 Keynote
APSEC2020 KeynoteAPSEC2020 Keynote
APSEC2020 Keynote
Abhik Roychoudhury
 
Repair dagstuhl jan2017
Repair dagstuhl jan2017Repair dagstuhl jan2017
Repair dagstuhl jan2017
Abhik Roychoudhury
 
Boetticher Presentation Promise 2008v2
Boetticher Presentation Promise 2008v2Boetticher Presentation Promise 2008v2
Boetticher Presentation Promise 2008v2
gregoryg
 
Jay Yagnik at AI Frontiers : A History Lesson on AI
Jay Yagnik at AI Frontiers : A History Lesson on AIJay Yagnik at AI Frontiers : A History Lesson on AI
Jay Yagnik at AI Frontiers : A History Lesson on AI
AI Frontiers
 
MDR Corporation Description at AWS Summit Tokyo
MDR Corporation Description at AWS Summit TokyoMDR Corporation Description at AWS Summit Tokyo
MDR Corporation Description at AWS Summit Tokyo
Takumi Kato
 
Assessing the Reliability of a Human Estimator
Assessing the Reliability of a Human EstimatorAssessing the Reliability of a Human Estimator
Assessing the Reliability of a Human Estimator
Tim Menzies
 
Quantum Business in Japanese Market
Quantum Business in Japanese MarketQuantum Business in Japanese Market
Quantum Business in Japanese Market
Yuichiro MInato
 
Automated Program Repair Keynote talk
Automated Program Repair Keynote talkAutomated Program Repair Keynote talk
Automated Program Repair Keynote talk
Abhik Roychoudhury
 
Weight watcher Bay Area ACM Feb 28, 2022
Weight watcher Bay Area ACM Feb 28, 2022 Weight watcher Bay Area ACM Feb 28, 2022
Weight watcher Bay Area ACM Feb 28, 2022
Charles Martin
 
On the application of SAT solvers for Search Based Software Testing
On the application of SAT solvers for Search Based Software TestingOn the application of SAT solvers for Search Based Software Testing
On the application of SAT solvers for Search Based Software Testing
jfrchicanog
 
Keynote at IWLS 2017
Keynote at IWLS 2017Keynote at IWLS 2017
Keynote at IWLS 2017
Manish Pandey
 
CPS(M): Constraint Satisfaction Problem over Models (a.k.a rule based design ...
CPS(M): Constraint Satisfaction Problem over Models (a.k.a rule based design ...CPS(M): Constraint Satisfaction Problem over Models (a.k.a rule based design ...
CPS(M): Constraint Satisfaction Problem over Models (a.k.a rule based design ...
Ákos Horváth
 
CH1.ppt
CH1.pptCH1.ppt
CH1.ppt
FathiShokry
 
Mechatronics engineer
Mechatronics engineerMechatronics engineer
Mechatronics engineer
Samuel Narcisse
 
Chatzikonstantinou c ai-se2013_
Chatzikonstantinou c ai-se2013_Chatzikonstantinou c ai-se2013_
Chatzikonstantinou c ai-se2013_caise2013vlc
 
Application of theorem proving for safety-critical vehicle software
Application of theorem proving for safety-critical vehicle softwareApplication of theorem proving for safety-critical vehicle software
Application of theorem proving for safety-critical vehicle software
AdaCore
 
Java Unit Testing Tool Competition — Fifth Round
Java Unit Testing Tool Competition — Fifth RoundJava Unit Testing Tool Competition — Fifth Round
Java Unit Testing Tool Competition — Fifth Round
Annibale Panichella
 
Application of or for industrial engineers
Application of or for industrial engineersApplication of or for industrial engineers
Application of or for industrial engineers
Hakeem-Ur- Rehman
 
A framework and approaches to develop an in-house CAT with freeware and open ...
A framework and approaches to develop an in-house CAT with freeware and open ...A framework and approaches to develop an in-house CAT with freeware and open ...
A framework and approaches to develop an in-house CAT with freeware and open ...
Tetsuo Kimura
 

Similar to 制約解消によるプログラム検証・合成 (第1回ステアラボソフトウェア技術セミナー) (20)

Static Analysis and Verification of C Programs
Static Analysis and Verification of C ProgramsStatic Analysis and Verification of C Programs
Static Analysis and Verification of C Programs
 
APSEC2020 Keynote
APSEC2020 KeynoteAPSEC2020 Keynote
APSEC2020 Keynote
 
Repair dagstuhl jan2017
Repair dagstuhl jan2017Repair dagstuhl jan2017
Repair dagstuhl jan2017
 
Boetticher Presentation Promise 2008v2
Boetticher Presentation Promise 2008v2Boetticher Presentation Promise 2008v2
Boetticher Presentation Promise 2008v2
 
Jay Yagnik at AI Frontiers : A History Lesson on AI
Jay Yagnik at AI Frontiers : A History Lesson on AIJay Yagnik at AI Frontiers : A History Lesson on AI
Jay Yagnik at AI Frontiers : A History Lesson on AI
 
MDR Corporation Description at AWS Summit Tokyo
MDR Corporation Description at AWS Summit TokyoMDR Corporation Description at AWS Summit Tokyo
MDR Corporation Description at AWS Summit Tokyo
 
Assessing the Reliability of a Human Estimator
Assessing the Reliability of a Human EstimatorAssessing the Reliability of a Human Estimator
Assessing the Reliability of a Human Estimator
 
Quantum Business in Japanese Market
Quantum Business in Japanese MarketQuantum Business in Japanese Market
Quantum Business in Japanese Market
 
Automated Program Repair Keynote talk
Automated Program Repair Keynote talkAutomated Program Repair Keynote talk
Automated Program Repair Keynote talk
 
Weight watcher Bay Area ACM Feb 28, 2022
Weight watcher Bay Area ACM Feb 28, 2022 Weight watcher Bay Area ACM Feb 28, 2022
Weight watcher Bay Area ACM Feb 28, 2022
 
On the application of SAT solvers for Search Based Software Testing
On the application of SAT solvers for Search Based Software TestingOn the application of SAT solvers for Search Based Software Testing
On the application of SAT solvers for Search Based Software Testing
 
Keynote at IWLS 2017
Keynote at IWLS 2017Keynote at IWLS 2017
Keynote at IWLS 2017
 
CPS(M): Constraint Satisfaction Problem over Models (a.k.a rule based design ...
CPS(M): Constraint Satisfaction Problem over Models (a.k.a rule based design ...CPS(M): Constraint Satisfaction Problem over Models (a.k.a rule based design ...
CPS(M): Constraint Satisfaction Problem over Models (a.k.a rule based design ...
 
CH1.ppt
CH1.pptCH1.ppt
CH1.ppt
 
Mechatronics engineer
Mechatronics engineerMechatronics engineer
Mechatronics engineer
 
Chatzikonstantinou c ai-se2013_
Chatzikonstantinou c ai-se2013_Chatzikonstantinou c ai-se2013_
Chatzikonstantinou c ai-se2013_
 
Application of theorem proving for safety-critical vehicle software
Application of theorem proving for safety-critical vehicle softwareApplication of theorem proving for safety-critical vehicle software
Application of theorem proving for safety-critical vehicle software
 
Java Unit Testing Tool Competition — Fifth Round
Java Unit Testing Tool Competition — Fifth RoundJava Unit Testing Tool Competition — Fifth Round
Java Unit Testing Tool Competition — Fifth Round
 
Application of or for industrial engineers
Application of or for industrial engineersApplication of or for industrial engineers
Application of or for industrial engineers
 
A framework and approaches to develop an in-house CAT with freeware and open ...
A framework and approaches to develop an in-house CAT with freeware and open ...A framework and approaches to develop an in-house CAT with freeware and open ...
A framework and approaches to develop an in-house CAT with freeware and open ...
 

More from STAIR Lab, Chiba Institute of Technology

リアクティブプログラミングにおける時変値永続化の試み (第2回ステアラボソフトウェア技術セミナー)
リアクティブプログラミングにおける時変値永続化の試み (第2回ステアラボソフトウェア技術セミナー)リアクティブプログラミングにおける時変値永続化の試み (第2回ステアラボソフトウェア技術セミナー)
リアクティブプログラミングにおける時変値永続化の試み (第2回ステアラボソフトウェア技術セミナー)
STAIR Lab, Chiba Institute of Technology
 
グラフ構造データに対する深層学習〜創薬・材料科学への応用とその問題点〜 (第26回ステアラボ人工知能セミナー)
グラフ構造データに対する深層学習〜創薬・材料科学への応用とその問題点〜 (第26回ステアラボ人工知能セミナー)グラフ構造データに対する深層学習〜創薬・材料科学への応用とその問題点〜 (第26回ステアラボ人工知能セミナー)
グラフ構造データに対する深層学習〜創薬・材料科学への応用とその問題点〜 (第26回ステアラボ人工知能セミナー)
STAIR Lab, Chiba Institute of Technology
 
企業化する大学と、公益化する企業。そして、人工知能の社会実装に向けて。(ステアラボ人工知能シンポジウム)
企業化する大学と、公益化する企業。そして、人工知能の社会実装に向けて。(ステアラボ人工知能シンポジウム)企業化する大学と、公益化する企業。そして、人工知能の社会実装に向けて。(ステアラボ人工知能シンポジウム)
企業化する大学と、公益化する企業。そして、人工知能の社会実装に向けて。(ステアラボ人工知能シンポジウム)
STAIR Lab, Chiba Institute of Technology
 
メテオサーチチャレンジ報告 (2位解法)
メテオサーチチャレンジ報告 (2位解法)メテオサーチチャレンジ報告 (2位解法)
メテオサーチチャレンジ報告 (2位解法)
STAIR Lab, Chiba Institute of Technology
 
画像キャプションと動作認識の最前線 〜データセットに注目して〜(第17回ステアラボ人工知能セミナー)
画像キャプションと動作認識の最前線 〜データセットに注目して〜(第17回ステアラボ人工知能セミナー)画像キャプションと動作認識の最前線 〜データセットに注目して〜(第17回ステアラボ人工知能セミナー)
画像キャプションと動作認識の最前線 〜データセットに注目して〜(第17回ステアラボ人工知能セミナー)
STAIR Lab, Chiba Institute of Technology
 
文法および流暢性を考慮した頑健なテキスト誤り訂正 (第15回ステアラボ人工知能セミナー)
文法および流暢性を考慮した頑健なテキスト誤り訂正 (第15回ステアラボ人工知能セミナー)文法および流暢性を考慮した頑健なテキスト誤り訂正 (第15回ステアラボ人工知能セミナー)
文法および流暢性を考慮した頑健なテキスト誤り訂正 (第15回ステアラボ人工知能セミナー)
STAIR Lab, Chiba Institute of Technology
 
多腕バンディット問題: 定式化と応用 (第13回ステアラボ人工知能セミナー)
多腕バンディット問題: 定式化と応用 (第13回ステアラボ人工知能セミナー)多腕バンディット問題: 定式化と応用 (第13回ステアラボ人工知能セミナー)
多腕バンディット問題: 定式化と応用 (第13回ステアラボ人工知能セミナー)
STAIR Lab, Chiba Institute of Technology
 
Computer Vision meets Fashion (第12回ステアラボ人工知能セミナー)
Computer Vision meets Fashion (第12回ステアラボ人工知能セミナー)Computer Vision meets Fashion (第12回ステアラボ人工知能セミナー)
Computer Vision meets Fashion (第12回ステアラボ人工知能セミナー)
STAIR Lab, Chiba Institute of Technology
 
高次元空間におけるハブの出現 (第11回ステアラボ人工知能セミナー)
高次元空間におけるハブの出現 (第11回ステアラボ人工知能セミナー)高次元空間におけるハブの出現 (第11回ステアラボ人工知能セミナー)
高次元空間におけるハブの出現 (第11回ステアラボ人工知能セミナー)
STAIR Lab, Chiba Institute of Technology
 
知識グラフの埋め込みとその応用 (第10回ステアラボ人工知能セミナー)
知識グラフの埋め込みとその応用 (第10回ステアラボ人工知能セミナー)知識グラフの埋め込みとその応用 (第10回ステアラボ人工知能セミナー)
知識グラフの埋め込みとその応用 (第10回ステアラボ人工知能セミナー)
STAIR Lab, Chiba Institute of Technology
 
JSAI Cup2017報告会
JSAI Cup2017報告会JSAI Cup2017報告会
時系列ビッグデータの特徴自動抽出とリアルタイム将来予測(第9回ステアラボ人工知能セミナー)
時系列ビッグデータの特徴自動抽出とリアルタイム将来予測(第9回ステアラボ人工知能セミナー)時系列ビッグデータの特徴自動抽出とリアルタイム将来予測(第9回ステアラボ人工知能セミナー)
時系列ビッグデータの特徴自動抽出とリアルタイム将来予測(第9回ステアラボ人工知能セミナー)
STAIR Lab, Chiba Institute of Technology
 
Stair Captions and Stair Actions(ステアラボ人工知能シンポジウム2017)
Stair Captions and Stair Actions(ステアラボ人工知能シンポジウム2017)Stair Captions and Stair Actions(ステアラボ人工知能シンポジウム2017)
Stair Captions and Stair Actions(ステアラボ人工知能シンポジウム2017)
STAIR Lab, Chiba Institute of Technology
 
最近の重要な論文の紹介 - テキストとの対応付けによる映像の理解に関連して(ステアラボ人工知能シンポジウム2017)
最近の重要な論文の紹介 - テキストとの対応付けによる映像の理解に関連して(ステアラボ人工知能シンポジウム2017)最近の重要な論文の紹介 - テキストとの対応付けによる映像の理解に関連して(ステアラボ人工知能シンポジウム2017)
最近の重要な論文の紹介 - テキストとの対応付けによる映像の理解に関連して(ステアラボ人工知能シンポジウム2017)
STAIR Lab, Chiba Institute of Technology
 
視覚×言語の最前線(ステアラボ人工知能シンポジウム2017)
視覚×言語の最前線(ステアラボ人工知能シンポジウム2017)視覚×言語の最前線(ステアラボ人工知能シンポジウム2017)
視覚×言語の最前線(ステアラボ人工知能シンポジウム2017)
STAIR Lab, Chiba Institute of Technology
 
自然言語処理分野の最前線(ステアラボ人工知能シンポジウム2017)
自然言語処理分野の最前線(ステアラボ人工知能シンポジウム2017)自然言語処理分野の最前線(ステアラボ人工知能シンポジウム2017)
自然言語処理分野の最前線(ステアラボ人工知能シンポジウム2017)
STAIR Lab, Chiba Institute of Technology
 
ヒューマンコンピュテーションのための専門家発見(ステアラボ人工知能シンポジウム2017)
ヒューマンコンピュテーションのための専門家発見(ステアラボ人工知能シンポジウム2017)ヒューマンコンピュテーションのための専門家発見(ステアラボ人工知能シンポジウム2017)
ヒューマンコンピュテーションのための専門家発見(ステアラボ人工知能シンポジウム2017)
STAIR Lab, Chiba Institute of Technology
 
深層学習を利用した映像要約への取り組み(第7回ステアラボ人工知能セミナー)
深層学習を利用した映像要約への取り組み(第7回ステアラボ人工知能セミナー)深層学習を利用した映像要約への取り組み(第7回ステアラボ人工知能セミナー)
深層学習を利用した映像要約への取り組み(第7回ステアラボ人工知能セミナー)
STAIR Lab, Chiba Institute of Technology
 
Higher-order Factorization Machines(第5回ステアラボ人工知能セミナー)
Higher-order Factorization Machines(第5回ステアラボ人工知能セミナー)Higher-order Factorization Machines(第5回ステアラボ人工知能セミナー)
Higher-order Factorization Machines(第5回ステアラボ人工知能セミナー)
STAIR Lab, Chiba Institute of Technology
 
群衆の知を引き出すための機械学習(第4回ステアラボ人工知能セミナー)
群衆の知を引き出すための機械学習(第4回ステアラボ人工知能セミナー)群衆の知を引き出すための機械学習(第4回ステアラボ人工知能セミナー)
群衆の知を引き出すための機械学習(第4回ステアラボ人工知能セミナー)
STAIR Lab, Chiba Institute of Technology
 

More from STAIR Lab, Chiba Institute of Technology (20)

リアクティブプログラミングにおける時変値永続化の試み (第2回ステアラボソフトウェア技術セミナー)
リアクティブプログラミングにおける時変値永続化の試み (第2回ステアラボソフトウェア技術セミナー)リアクティブプログラミングにおける時変値永続化の試み (第2回ステアラボソフトウェア技術セミナー)
リアクティブプログラミングにおける時変値永続化の試み (第2回ステアラボソフトウェア技術セミナー)
 
グラフ構造データに対する深層学習〜創薬・材料科学への応用とその問題点〜 (第26回ステアラボ人工知能セミナー)
グラフ構造データに対する深層学習〜創薬・材料科学への応用とその問題点〜 (第26回ステアラボ人工知能セミナー)グラフ構造データに対する深層学習〜創薬・材料科学への応用とその問題点〜 (第26回ステアラボ人工知能セミナー)
グラフ構造データに対する深層学習〜創薬・材料科学への応用とその問題点〜 (第26回ステアラボ人工知能セミナー)
 
企業化する大学と、公益化する企業。そして、人工知能の社会実装に向けて。(ステアラボ人工知能シンポジウム)
企業化する大学と、公益化する企業。そして、人工知能の社会実装に向けて。(ステアラボ人工知能シンポジウム)企業化する大学と、公益化する企業。そして、人工知能の社会実装に向けて。(ステアラボ人工知能シンポジウム)
企業化する大学と、公益化する企業。そして、人工知能の社会実装に向けて。(ステアラボ人工知能シンポジウム)
 
メテオサーチチャレンジ報告 (2位解法)
メテオサーチチャレンジ報告 (2位解法)メテオサーチチャレンジ報告 (2位解法)
メテオサーチチャレンジ報告 (2位解法)
 
画像キャプションと動作認識の最前線 〜データセットに注目して〜(第17回ステアラボ人工知能セミナー)
画像キャプションと動作認識の最前線 〜データセットに注目して〜(第17回ステアラボ人工知能セミナー)画像キャプションと動作認識の最前線 〜データセットに注目して〜(第17回ステアラボ人工知能セミナー)
画像キャプションと動作認識の最前線 〜データセットに注目して〜(第17回ステアラボ人工知能セミナー)
 
文法および流暢性を考慮した頑健なテキスト誤り訂正 (第15回ステアラボ人工知能セミナー)
文法および流暢性を考慮した頑健なテキスト誤り訂正 (第15回ステアラボ人工知能セミナー)文法および流暢性を考慮した頑健なテキスト誤り訂正 (第15回ステアラボ人工知能セミナー)
文法および流暢性を考慮した頑健なテキスト誤り訂正 (第15回ステアラボ人工知能セミナー)
 
多腕バンディット問題: 定式化と応用 (第13回ステアラボ人工知能セミナー)
多腕バンディット問題: 定式化と応用 (第13回ステアラボ人工知能セミナー)多腕バンディット問題: 定式化と応用 (第13回ステアラボ人工知能セミナー)
多腕バンディット問題: 定式化と応用 (第13回ステアラボ人工知能セミナー)
 
Computer Vision meets Fashion (第12回ステアラボ人工知能セミナー)
Computer Vision meets Fashion (第12回ステアラボ人工知能セミナー)Computer Vision meets Fashion (第12回ステアラボ人工知能セミナー)
Computer Vision meets Fashion (第12回ステアラボ人工知能セミナー)
 
高次元空間におけるハブの出現 (第11回ステアラボ人工知能セミナー)
高次元空間におけるハブの出現 (第11回ステアラボ人工知能セミナー)高次元空間におけるハブの出現 (第11回ステアラボ人工知能セミナー)
高次元空間におけるハブの出現 (第11回ステアラボ人工知能セミナー)
 
知識グラフの埋め込みとその応用 (第10回ステアラボ人工知能セミナー)
知識グラフの埋め込みとその応用 (第10回ステアラボ人工知能セミナー)知識グラフの埋め込みとその応用 (第10回ステアラボ人工知能セミナー)
知識グラフの埋め込みとその応用 (第10回ステアラボ人工知能セミナー)
 
JSAI Cup2017報告会
JSAI Cup2017報告会JSAI Cup2017報告会
JSAI Cup2017報告会
 
時系列ビッグデータの特徴自動抽出とリアルタイム将来予測(第9回ステアラボ人工知能セミナー)
時系列ビッグデータの特徴自動抽出とリアルタイム将来予測(第9回ステアラボ人工知能セミナー)時系列ビッグデータの特徴自動抽出とリアルタイム将来予測(第9回ステアラボ人工知能セミナー)
時系列ビッグデータの特徴自動抽出とリアルタイム将来予測(第9回ステアラボ人工知能セミナー)
 
Stair Captions and Stair Actions(ステアラボ人工知能シンポジウム2017)
Stair Captions and Stair Actions(ステアラボ人工知能シンポジウム2017)Stair Captions and Stair Actions(ステアラボ人工知能シンポジウム2017)
Stair Captions and Stair Actions(ステアラボ人工知能シンポジウム2017)
 
最近の重要な論文の紹介 - テキストとの対応付けによる映像の理解に関連して(ステアラボ人工知能シンポジウム2017)
最近の重要な論文の紹介 - テキストとの対応付けによる映像の理解に関連して(ステアラボ人工知能シンポジウム2017)最近の重要な論文の紹介 - テキストとの対応付けによる映像の理解に関連して(ステアラボ人工知能シンポジウム2017)
最近の重要な論文の紹介 - テキストとの対応付けによる映像の理解に関連して(ステアラボ人工知能シンポジウム2017)
 
視覚×言語の最前線(ステアラボ人工知能シンポジウム2017)
視覚×言語の最前線(ステアラボ人工知能シンポジウム2017)視覚×言語の最前線(ステアラボ人工知能シンポジウム2017)
視覚×言語の最前線(ステアラボ人工知能シンポジウム2017)
 
自然言語処理分野の最前線(ステアラボ人工知能シンポジウム2017)
自然言語処理分野の最前線(ステアラボ人工知能シンポジウム2017)自然言語処理分野の最前線(ステアラボ人工知能シンポジウム2017)
自然言語処理分野の最前線(ステアラボ人工知能シンポジウム2017)
 
ヒューマンコンピュテーションのための専門家発見(ステアラボ人工知能シンポジウム2017)
ヒューマンコンピュテーションのための専門家発見(ステアラボ人工知能シンポジウム2017)ヒューマンコンピュテーションのための専門家発見(ステアラボ人工知能シンポジウム2017)
ヒューマンコンピュテーションのための専門家発見(ステアラボ人工知能シンポジウム2017)
 
深層学習を利用した映像要約への取り組み(第7回ステアラボ人工知能セミナー)
深層学習を利用した映像要約への取り組み(第7回ステアラボ人工知能セミナー)深層学習を利用した映像要約への取り組み(第7回ステアラボ人工知能セミナー)
深層学習を利用した映像要約への取り組み(第7回ステアラボ人工知能セミナー)
 
Higher-order Factorization Machines(第5回ステアラボ人工知能セミナー)
Higher-order Factorization Machines(第5回ステアラボ人工知能セミナー)Higher-order Factorization Machines(第5回ステアラボ人工知能セミナー)
Higher-order Factorization Machines(第5回ステアラボ人工知能セミナー)
 
群衆の知を引き出すための機械学習(第4回ステアラボ人工知能セミナー)
群衆の知を引き出すための機械学習(第4回ステアラボ人工知能セミナー)群衆の知を引き出すための機械学習(第4回ステアラボ人工知能セミナー)
群衆の知を引き出すための機械学習(第4回ステアラボ人工知能セミナー)
 

Recently uploaded

Providing Globus Services to Users of JASMIN for Environmental Data Analysis
Providing Globus Services to Users of JASMIN for Environmental Data AnalysisProviding Globus Services to Users of JASMIN for Environmental Data Analysis
Providing Globus Services to Users of JASMIN for Environmental Data Analysis
Globus
 
Visitor Management System in India- Vizman.app
Visitor Management System in India- Vizman.appVisitor Management System in India- Vizman.app
Visitor Management System in India- Vizman.app
NaapbooksPrivateLimi
 
De mooiste recreatieve routes ontdekken met RouteYou en FME
De mooiste recreatieve routes ontdekken met RouteYou en FMEDe mooiste recreatieve routes ontdekken met RouteYou en FME
De mooiste recreatieve routes ontdekken met RouteYou en FME
Jelle | Nordend
 
Understanding Globus Data Transfers with NetSage
Understanding Globus Data Transfers with NetSageUnderstanding Globus Data Transfers with NetSage
Understanding Globus Data Transfers with NetSage
Globus
 
Lecture 1 Introduction to games development
Lecture 1 Introduction to games developmentLecture 1 Introduction to games development
Lecture 1 Introduction to games development
abdulrafaychaudhry
 
Advanced Flow Concepts Every Developer Should Know
Advanced Flow Concepts Every Developer Should KnowAdvanced Flow Concepts Every Developer Should Know
Advanced Flow Concepts Every Developer Should Know
Peter Caitens
 
Globus Compute wth IRI Workflows - GlobusWorld 2024
Globus Compute wth IRI Workflows - GlobusWorld 2024Globus Compute wth IRI Workflows - GlobusWorld 2024
Globus Compute wth IRI Workflows - GlobusWorld 2024
Globus
 
Large Language Models and the End of Programming
Large Language Models and the End of ProgrammingLarge Language Models and the End of Programming
Large Language Models and the End of Programming
Matt Welsh
 
Globus Compute Introduction - GlobusWorld 2024
Globus Compute Introduction - GlobusWorld 2024Globus Compute Introduction - GlobusWorld 2024
Globus Compute Introduction - GlobusWorld 2024
Globus
 
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital Transformation
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital TransformationWSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital Transformation
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital Transformation
WSO2
 
Strategies for Successful Data Migration Tools.pptx
Strategies for Successful Data Migration Tools.pptxStrategies for Successful Data Migration Tools.pptx
Strategies for Successful Data Migration Tools.pptx
varshanayak241
 
Developing Distributed High-performance Computing Capabilities of an Open Sci...
Developing Distributed High-performance Computing Capabilities of an Open Sci...Developing Distributed High-performance Computing Capabilities of an Open Sci...
Developing Distributed High-performance Computing Capabilities of an Open Sci...
Globus
 
TROUBLESHOOTING 9 TYPES OF OUTOFMEMORYERROR
TROUBLESHOOTING 9 TYPES OF OUTOFMEMORYERRORTROUBLESHOOTING 9 TYPES OF OUTOFMEMORYERROR
TROUBLESHOOTING 9 TYPES OF OUTOFMEMORYERROR
Tier1 app
 
Corporate Management | Session 3 of 3 | Tendenci AMS
Corporate Management | Session 3 of 3 | Tendenci AMSCorporate Management | Session 3 of 3 | Tendenci AMS
Corporate Management | Session 3 of 3 | Tendenci AMS
Tendenci - The Open Source AMS (Association Management Software)
 
BoxLang: Review our Visionary Licenses of 2024
BoxLang: Review our Visionary Licenses of 2024BoxLang: Review our Visionary Licenses of 2024
BoxLang: Review our Visionary Licenses of 2024
Ortus Solutions, Corp
 
top nidhi software solution freedownload
top nidhi software solution freedownloadtop nidhi software solution freedownload
top nidhi software solution freedownload
vrstrong314
 
Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...
Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...
Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...
Globus
 
First Steps with Globus Compute Multi-User Endpoints
First Steps with Globus Compute Multi-User EndpointsFirst Steps with Globus Compute Multi-User Endpoints
First Steps with Globus Compute Multi-User Endpoints
Globus
 
Enhancing Research Orchestration Capabilities at ORNL.pdf
Enhancing Research Orchestration Capabilities at ORNL.pdfEnhancing Research Orchestration Capabilities at ORNL.pdf
Enhancing Research Orchestration Capabilities at ORNL.pdf
Globus
 
Dominate Social Media with TubeTrivia AI’s Addictive Quiz Videos.pdf
Dominate Social Media with TubeTrivia AI’s Addictive Quiz Videos.pdfDominate Social Media with TubeTrivia AI’s Addictive Quiz Videos.pdf
Dominate Social Media with TubeTrivia AI’s Addictive Quiz Videos.pdf
AMB-Review
 

Recently uploaded (20)

Providing Globus Services to Users of JASMIN for Environmental Data Analysis
Providing Globus Services to Users of JASMIN for Environmental Data AnalysisProviding Globus Services to Users of JASMIN for Environmental Data Analysis
Providing Globus Services to Users of JASMIN for Environmental Data Analysis
 
Visitor Management System in India- Vizman.app
Visitor Management System in India- Vizman.appVisitor Management System in India- Vizman.app
Visitor Management System in India- Vizman.app
 
De mooiste recreatieve routes ontdekken met RouteYou en FME
De mooiste recreatieve routes ontdekken met RouteYou en FMEDe mooiste recreatieve routes ontdekken met RouteYou en FME
De mooiste recreatieve routes ontdekken met RouteYou en FME
 
Understanding Globus Data Transfers with NetSage
Understanding Globus Data Transfers with NetSageUnderstanding Globus Data Transfers with NetSage
Understanding Globus Data Transfers with NetSage
 
Lecture 1 Introduction to games development
Lecture 1 Introduction to games developmentLecture 1 Introduction to games development
Lecture 1 Introduction to games development
 
Advanced Flow Concepts Every Developer Should Know
Advanced Flow Concepts Every Developer Should KnowAdvanced Flow Concepts Every Developer Should Know
Advanced Flow Concepts Every Developer Should Know
 
Globus Compute wth IRI Workflows - GlobusWorld 2024
Globus Compute wth IRI Workflows - GlobusWorld 2024Globus Compute wth IRI Workflows - GlobusWorld 2024
Globus Compute wth IRI Workflows - GlobusWorld 2024
 
Large Language Models and the End of Programming
Large Language Models and the End of ProgrammingLarge Language Models and the End of Programming
Large Language Models and the End of Programming
 
Globus Compute Introduction - GlobusWorld 2024
Globus Compute Introduction - GlobusWorld 2024Globus Compute Introduction - GlobusWorld 2024
Globus Compute Introduction - GlobusWorld 2024
 
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital Transformation
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital TransformationWSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital Transformation
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital Transformation
 
Strategies for Successful Data Migration Tools.pptx
Strategies for Successful Data Migration Tools.pptxStrategies for Successful Data Migration Tools.pptx
Strategies for Successful Data Migration Tools.pptx
 
Developing Distributed High-performance Computing Capabilities of an Open Sci...
Developing Distributed High-performance Computing Capabilities of an Open Sci...Developing Distributed High-performance Computing Capabilities of an Open Sci...
Developing Distributed High-performance Computing Capabilities of an Open Sci...
 
TROUBLESHOOTING 9 TYPES OF OUTOFMEMORYERROR
TROUBLESHOOTING 9 TYPES OF OUTOFMEMORYERRORTROUBLESHOOTING 9 TYPES OF OUTOFMEMORYERROR
TROUBLESHOOTING 9 TYPES OF OUTOFMEMORYERROR
 
Corporate Management | Session 3 of 3 | Tendenci AMS
Corporate Management | Session 3 of 3 | Tendenci AMSCorporate Management | Session 3 of 3 | Tendenci AMS
Corporate Management | Session 3 of 3 | Tendenci AMS
 
BoxLang: Review our Visionary Licenses of 2024
BoxLang: Review our Visionary Licenses of 2024BoxLang: Review our Visionary Licenses of 2024
BoxLang: Review our Visionary Licenses of 2024
 
top nidhi software solution freedownload
top nidhi software solution freedownloadtop nidhi software solution freedownload
top nidhi software solution freedownload
 
Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...
Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...
Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...
 
First Steps with Globus Compute Multi-User Endpoints
First Steps with Globus Compute Multi-User EndpointsFirst Steps with Globus Compute Multi-User Endpoints
First Steps with Globus Compute Multi-User Endpoints
 
Enhancing Research Orchestration Capabilities at ORNL.pdf
Enhancing Research Orchestration Capabilities at ORNL.pdfEnhancing Research Orchestration Capabilities at ORNL.pdf
Enhancing Research Orchestration Capabilities at ORNL.pdf
 
Dominate Social Media with TubeTrivia AI’s Addictive Quiz Videos.pdf
Dominate Social Media with TubeTrivia AI’s Addictive Quiz Videos.pdfDominate Social Media with TubeTrivia AI’s Addictive Quiz Videos.pdf
Dominate Social Media with TubeTrivia AI’s Addictive Quiz Videos.pdf
 

制約解消によるプログラム検証・合成 (第1回ステアラボソフトウェア技術セミナー)

  • 2. 自己紹介 2009 東京大学大学院 情報理工学系研究科 コンピュータ科学専攻 博士課程修了 博士(情報理工学) 指導教員:米澤 明憲 教授(現千葉工業大学) 小林 直樹 教授(現東京大学) 2012~2017 筑波大学 情報工学域 助教 2017~現在 同准教授 2018~現在 理化学研究所 革新知能統合研究センター 客員研究員 2020~現在 国立情報学研究所 客員准教授 2020/12/18 STAIR Lab Software Technology Seminar 2
  • 3. Research Interests • Formal specification, verification, and synthesis of (mainly but not limited to) higher-order functional programs by AI techniques such as constraint solving and machine learning • Ongoing projects • Synthesis of High-Level Programs from Temporal and Relational Specifications (PI: Hiroshi Unno) • Program Verification Techniques for the AI Era (PI: Naoki Kobayashi) • AI Security and Privacy (PI: Jun Sakuma) • Metamathematics for Systems Design Project (PI: Ichiro Hasuo) • … 2020/12/18 STAIR Lab Software Technology Seminar 3
  • 4. This Talk • Tutorial of program verification and synthesis based on constraint solving and machine learning 2020/12/18 STAIR Lab Software Technology Seminar 4
  • 5. Background • Our society heavily relies on computer systems • Failure or malfunction of safety-critical systems would lead to human, social, economic, and environmental damage • 1985-1987 – Therac-25 medical accelerator delivered lethal radiation doses to patients • June 4, 1996 – Ariane 5 Flight 501 exploded • February, 2014 – 1.9 million Prius cars recalled • April, 2014 – OpenSSL Heartbleed vulnerability disclosed • June 17, 2016 – Ethereum DAO attacked, over $55M stolen • Reliability assurance of safety-critical systems is crucial 2020/12/18 STAIR Lab Software Technology Seminar 5
  • 6. Program Verification • Formally prove or disprove a mathematical proposition 𝑄: “The given program satisfies its formal specification” • Great attentions from industry and academia • Microsoft’s SLAM & Everest projects, Facebook’s Infer, AWS • Turing awards to Hoare logic, temporal logic, model checking, … 2020/12/18 STAIR Lab Software Technology Seminar 6 Program & Spec. let rec mc x = if x > 100 then x – 10 else mc (mc (x + 11)) in let n = randi() in if n ≤ 101 then assert (mc n = 91) Program Verifier A proof of 𝑄 or A counterexample to 𝑄 (e.g., a program input leading to a spec. violation) or Unknown
  • 7. Program Synthesis • Input an incomplete program and its specification 𝝓, and output an executable program 𝑷 that satisfies 𝝓 • 𝜙 specifies extensional (what 𝑃 computes) and/or intentional (how 𝑃 computes) behaviors of 𝑃 • 𝜙 is represented as a logical formula, input/output examples (e.g., MS Excel FlashFill), a natural language sentence, … 2020/12/18 7STAIR Lab Software Technology Seminar Incomplete Program & Specification let rec mc x = ? let n = randi() in if n ≤ 101 then assert (mc n = 91) Program Synthesizer A program satisfying the spec. let rec mc x = if x > 100 then x – 10 else mc (mc (x + 11)) or A proof of unrealizability or Unknown
  • 8. Enabling Technologies • Program logics for mechanizing verification & synthesis • Hoare logic for proving Hoare triples 𝑃 𝑐 𝑄 meaning that: For any initial state 𝜎 that satisfies the precondition 𝑃, if the execution of the program 𝑐 under 𝜎 terminates, the postcondition 𝑄 is satisfied by the resulting state • Separation logic • Dependent refinement type system • Graded modal type system • Constraint solvers for automating verification & synthesis • SAT solvers: satisfiability checker for propositional formulas • SMT solvers: satisfiability checker for predicate formulas over first-order theories on integers, reals, lists, arrays, … 2020/12/18 STAIR Lab Software Technology Seminar 8 What about functions (that represent inductive invariants, ranking functions, recurrent sets, Skolem functions, …)?
  • 9. This Talk • Tutorial of program verification and synthesis based on constraint solving and machine learning over functions • First part: How to reduce program verification and synthesis to constraint solving • Second part: How to solve constraints via integrated deductive and inductive reasoning • Deductive reasoning by theorem proving (e.g., SAT, SMT) • Inductive reasoning by machine learning (e.g., decision tree learning, reinforcement learning) 2020/12/18 STAIR Lab Software Technology Seminar 9
  • 10. This Talk • Tutorial of program verification and synthesis based on constraint solving and machine learning over functions • First part: How to reduce program verification and synthesis to constraint solving • Second part: How to solve constraints via integrated deductive and inductive reasoning • Deductive reasoning by theorem proving (e.g., SAT, SMT) • Inductive reasoning by machine learning (e.g., decision tree learning, reinforcement learning) 2020/12/18 STAIR Lab Software Technology Seminar 10
  • 11. Program Verification via Constraint Solving 2020/12/18 STAIR Lab Software Technology Seminar Constraint Generation 𝓒 is Sat (𝑷 satisfies 𝝍), 𝓒 is Unsat (𝑷 violates 𝝍), or Unknown Constraint Solving Constraints 𝓒 on Function Variables Target Program 𝑷 & Specification 𝝍 11 Verification Intermediary Independent of Particular Target and Method 
  • 12. Program Verification via Constrained Horn Clauses (CHCs) 2020/12/18 STAIR Lab Software Technology Seminar Constraint Generation 𝓒 is Sat (𝑷 satisfies 𝝍), 𝓒 is Unsat (𝑷 violates 𝝍), or Unknown Constraint Solving Target Program 𝑷 & Specification 𝝍 CHCs Constraints 𝓒 on Predicate Variables JayHorn for Java [Kahsai+ ’16] SeaHorn for C [Gurfinkel+ ’15] RCaml for OCaml [Unno+ ’09] SPACER [Komuravelli+ ’14] Hoice [Champion+ ’18] Eldarica [Hojjat+ ’18] 12
  • 13. CHCs: Constrained Horn Clauses (see e.g., [Bjørner+ ’15] ) • A finite set 𝓒 of Horn-clauses of either form: where 𝑋0, 𝑋1 … , 𝑋 𝑚 are predicate variables, 𝑡0, … , 𝑡 𝑚 are sequences of terms of a 1st-order theory 𝑇, 𝜙 is a formula of 𝑇 without predicate variables. • 𝓒 is satisfiable (modulo 𝑇) if there is an interpretation 𝜌 of predicate variables such that 𝜌 ⊨ ⋀𝓒 2020/12/18 STAIR Lab Software Technology Seminar 𝑋0 𝑡0 ⟸ 𝑋1 𝑡1 ∧ ⋯ ∧ 𝑋 𝑚 𝑡 𝑚 ∧ 𝜙 13 ⊥ ⟸ 𝑋1 𝑡1 ∧ ⋯ ∧ 𝑋 𝑚 𝑡 𝑚 ∧ 𝜙or
  • 14. 𝑥 = 𝑥0 𝑦 = 0; 𝐰𝐡𝐢𝐥𝐞 𝑥 ≠ 0 𝐝𝐨 𝑦 ← 𝑦 + 1; 𝑥 ← 𝑥 − 1 𝐝𝐨𝐧𝐞 𝑦 = 𝑥0 2020/12/18 STAIR Lab Software Technology Seminar If the initial state satisfies the pre-condition 𝑥 = 𝑥0 and the loop terminates the post-condition 𝑦 = 𝑥0 is satisfied by the resulting state Prog. & Spec. CHCs SAT or UNSAT Constraint Generation Constraint Solving Example Program and Partial Correctness Specification: Pre- condition Post- condition 14
  • 15. Input: 𝑥 = 𝑥0 𝑦 = 0; 𝐰𝐡𝐢𝐥𝐞 𝑥 ≠ 0 𝐝𝐨 𝑦 ← 𝑦 + 1; 𝑥 ← 𝑥 − 1 𝐝𝐨𝐧𝐞 𝑦 = 𝑥0 2020/12/18 STAIR Lab Software Technology Seminar Output 𝓒: ① 𝐼 𝑥0, 𝑥, 𝑦 ⟸ 𝑥 = 𝑥0 ∧ 𝑦 = 0, ② 𝐼 𝑥0, 𝑥 − 1, 𝑦 + 1 ⟸ 𝐼 𝑥0, 𝑥, 𝑦 ∧ 𝑥 ≠ 0, ③ 𝑦 = 𝑥0 ⟸ 𝐼 𝑥0, 𝑥, 𝑦 ∧ 𝑥 = 0 Prog. & Spec. CHCs SAT or UNSAT Constraint Generation Constraint Solving represents a loop invariant 𝓒 is satisfiable, witnessed by a solution 𝐼 𝑥0, 𝑥, 𝑦 ≡ 𝑥0 = 𝑥 + 𝑦 15
  • 16. Program Verification via Constrained Horn Clauses (CHCs) 2020/12/18 STAIR Lab Software Technology Seminar Constraint Generation 𝓒 is Sat (𝑷 satisfies 𝝍), 𝓒 is Unsat (𝑷 violates 𝝍), or Unknown Constraint Solving Target Program 𝑷 & Specification 𝝍 CHCs Constraints 𝓒 on Predicate Variables Limited to Linear-Time Safety Verification  16
  • 17. pCSP Constraints 𝓒 on Predicate Variables Target Program 𝑷 & Specification 𝝍 Program Verification via Predicate Constraint Satisfaction [Satake+ ’20] 2020/12/18 STAIR Lab Software Technology Seminar Constraint Generation 𝓒 is Sat (𝑷 satisfies 𝝍), 𝓒 is Unsat (𝑷 violates 𝝍), or Unknown Constraint Solving Applicable to (Finitely-) Branching-Time Safety Verification  17 PCSat [Satake+ ’20, Unno+ ’20]
  • 18. Linear-Time vs. Branching-Time Verification of Non-det. Programs • The target program 𝑷 may exhibit non-determinism caused by user input, network comm., scheduling, … • Linear-time verification concerns properties of the execution traces of 𝑷 • Branching-time verification concerns properties of the computation tree of 𝑷 • Subsumes linear-time verification • Example: Non-termination verification of deciding whether there is an infinite execution of 𝑷 (cf. termination verification decides whether all execution of 𝑷 is finite) 2020/12/18 STAIR Lab Software Technology Seminar 18
  • 19. pCSP: Predicate Constraint Satisfaction Problem[Satake+ ’20] • A finite set 𝓒 of clauses of the form: where 𝑋1, … , 𝑋 𝑚 are predicate variables, 𝑡1, … , 𝑡 𝑚 are sequences of terms of a 1st-order theory 𝑇, 𝜙 is a formula of 𝑇 without predicate variables. • 𝓒 is satisfiable (modulo 𝑇) if there is an interpretation 𝜌 of predicate variables such that 𝜌 ⊨ ⋀𝓒 • 𝓒 is CHCs if ℓ ≤ 1 for all clause in 𝓒 2020/12/18 STAIR Lab Software Technology Seminar 𝑋1 𝑡1 ∨ ⋯ ∨ 𝑋ℓ 𝑡ℓ ⟸ 𝑋ℓ+1 𝑡ℓ+1 ∧ ⋯ ∧ 𝑋 𝑚 𝑡 𝑚 ∧ 𝜙 19
  • 20. 𝑥 > 0 𝐰𝐡𝐢𝐥𝐞 𝑥 ≠ 0 𝐝𝐨 𝐢𝐟 𝐫𝐞𝐚𝐝_𝐛𝐨𝐨𝐥 ∃ 𝐭𝐡𝐞𝐧 𝑥 ← 𝑥 − 1 𝐞𝐥𝐬𝐞 𝑥 ← 𝑥 + 1 𝐝𝐨𝐧𝐞 ⊥ 2020/12/18 STAIR Lab Software Technology Seminar If the initial state satisfies the pre-condition 𝑥 > 0 there is an execution of the program such that the post-condition ⊥ is satisfied when the while loop terminates Prog. & Spec. pCSP SAT or UNSAT Constraint Generation Constraint Solving Example Program and Specification: Non-det. branching Contradiction Pre- condition Post- condition 20
  • 21. 𝑥 > 0 𝐰𝐡𝐢𝐥𝐞 𝑥 ≠ 0 𝐝𝐨 𝐢𝐟 𝐫𝐞𝐚𝐝_𝐛𝐨𝐨𝐥 ∃ 𝐭𝐡𝐞𝐧 𝑥 ← 𝑥 − 1 𝐞𝐥𝐬𝐞 𝑥 ← 𝑥 + 1 𝐝𝐨𝐧𝐞 ⊥ 2020/12/18 STAIR Lab Software Technology Seminar If the initial state satisfies the pre-condition 𝑥 > 0 there is an execution of the program such that the while loop never terminates Prog. & Spec. pCSP SAT or UNSAT Constraint Generation Constraint Solving Example Program and Specification: Non-det. branching Contradiction Pre- condition Post- condition 21
  • 22. Input: 𝑥 > 0 𝐰𝐡𝐢𝐥𝐞 𝑥 ≠ 0 𝐝𝐨 𝐢𝐟 𝐫𝐞𝐚𝐝_𝐛𝐨𝐨𝐥 ∃ 𝐭𝐡𝐞𝐧 𝑥 ← 𝑥 − 1 𝐞𝐥𝐬𝐞 𝑥 ← 𝑥 + 1 𝐝𝐨𝐧𝐞 ⊥ 2020/12/18 STAIR Lab Software Technology Seminar Output 𝓒: ① 𝐼 𝑥 ⟸ 𝑥 > 0, ② 𝐼 𝑥 − 1 ∨ 𝐼 𝑥 + 1 ⟸ 𝐼 𝑥 ∧ 𝑥 ≠ 0, ③ ⊥ ⟸ 𝐼 𝑥 ∧ 𝑥 = 0 Prog. & Spec. pCSP SAT or UNSAT Constraint Generation Constraint Solving represents a loop invariant preserved by some execution (i.e., recurrent set) 𝓒 is beyond CHCs! 𝓒 is satisfiable, witnessed by a solution 𝐼 𝑥 ≡ 𝑥 > 0 22
  • 23. pfwCSP Constraints 𝓒 on Predicate Variables Target Program 𝑷 & Specification 𝝍 Program Verification via Extended Predicate Constraint Satisfaction [Unno+ ’20] 2020/12/18 STAIR Lab Software Technology Seminar Constraint Generation 𝓒 is Sat (𝑷 satisfies 𝝍), 𝓒 is Unsat (𝑷 violates 𝝍), or Unknown Constraint Solving Applicable to (Infinitely-) Branching-Time Safety & Liveness Verification  23 PCSat [Satake+ ’20, Unno+ ’20]
  • 24. Safety vs. Liveness Verification • Safety is a class of properties of the form “something bad will never happen” • Examples (absence of): assertion failure, division-by-zero, array boundary violation, … • Liveness is a class of properties of the form “something good will eventually happen” • Examples: termination, deadlock freedom, … 2020/12/18 STAIR Lab Software Technology Seminar 24
  • 25. pfwCSP: Extension of pCSP with Functional and Well-founded Predicates [Unno+ ’20] (cf. ∀∃CHCs with dwf [Beyene+ ’13]) • A finite set 𝓒 of pCSP clauses equipped with a map 𝓚 from predicate variable 𝑋 in 𝓒 to ⋆, 𝜆, ⇓ • 𝑋 is ordinary predicate if 𝓚 𝑋 = ⋆ • 𝑋 is functional predicate if 𝓚 𝑋 = 𝜆 • 𝑋 is well-founded predicate if 𝓚 𝑋 = ⇓ • 𝓒 is satisfiable (modulo 𝑇) if there is an interpretation 𝜌 of predicate variables such that • 𝜌 ⊨ ⋀𝓒 • ∀𝑋. 𝓚 𝑋 = 𝜆 ⟹ 𝜌 𝑋 characterizes a total function • ∀𝑋. 𝓚 𝑋 = ⇓ ⟹ 𝜌 𝑋 represents a well-founded relation 2020/12/18 STAIR Lab Software Technology Seminar 25
  • 26. 𝑥 > 0 𝐰𝐡𝐢𝐥𝐞 𝑥 > 0 𝐝𝐨 𝑥 ← 𝐫𝐞𝐚𝐝_𝐢𝐧𝐭 ∃ − 𝑥 𝐝𝐨𝐧𝐞 ⊥ 2020/12/18 STAIR Lab Software Technology Seminar If the initial state satisfies the pre-condition 𝑥 > 0 there is an execution of the program such that the while loop never terminates Prog. & Spec. pfwCSP SAT or UNSAT Constraint Generation Constraint Solving Example Program and Specification: Non-det. integer Contradiction Pre- condition Post- condition 26
  • 27. Input: 𝑥 > 0 𝐰𝐡𝐢𝐥𝐞 𝑥 > 0 𝐝𝐨 𝑥 ← 𝐫𝐞𝐚𝐝_𝐢𝐧𝐭 ∃ − 𝑥 𝐝𝐨𝐧𝐞 ⊥ 2020/12/18 STAIR Lab Software Technology Seminar Output 𝓒: ① 𝐼 𝑥 ⟸ 𝑥 > 0, ② ∃𝑟. 𝐼 𝑟 − 𝑥 ⟸ 𝐼 𝑥 ∧ 𝑥 > 0, ③ ⊥ ⟸ 𝐼 𝑥 ∧ 𝑥 ≤ 0 Prog. & Spec. pfwCSP SAT or UNSAT Constraint Generation Constraint Solving represents a loop invariant preserved by some execution (i.e., recurrent set) 𝓒 is beyond pCSP but can be encoded in pfwCSP using a functional pred. var. that characterizes a Skolem function for 𝒓 27
  • 28. Input: 𝑥 > 0 𝐰𝐡𝐢𝐥𝐞 𝑥 > 0 𝐝𝐨 𝑥 ← 𝐫𝐞𝐚𝐝_𝐢𝐧𝐭 ∃ − 𝑥 𝐝𝐨𝐧𝐞 ⊥ 2020/12/18 STAIR Lab Software Technology Seminar Output 𝓒: ① 𝐼 𝑥 ⟸ 𝑥 > 0, ② 𝐼 𝑟 − 𝑥 ⟸ 𝑆𝜆 𝑥, 𝑟 ∧ 𝐼 𝑥 ∧ 𝑥 > 0, ③ ⊥ ⟸ 𝐼 𝑥 ∧ 𝑥 ≤ 0 Prog. & Spec. pfwCSP SAT or UNSAT Constraint Generation Constraint Solving characterizes a Skolem function mapping 𝑥 to 𝑟 28 𝓒 is satisfiable, witnessed by a solution 𝐼 𝑥 ≡ 𝑥 > 0, 𝑆𝜆 𝑥, 𝑟 ≡ 𝑟 = 𝑥 + 1
  • 29. 𝑥 ≠ 0 𝐰𝐡𝐢𝐥𝐞 𝑥 ≠ 0 𝐝𝐨 𝐢𝐟 𝑥 > 0 𝐭𝐡𝐞𝐧 𝑥 ← 𝑥 − 1 𝐞𝐥𝐬𝐞 𝑥 ← 𝑥 + 1 𝐝𝐨𝐧𝐞 ⊤ 2020/12/18 STAIR Lab Software Technology Seminar If the initial state satisfies the pre-condition 𝑥 ≠ 0 the loop always terminates and the post-condition ⊤ is satisfied by the resulting state Prog. & Spec. pfwCSP SAT or UNSAT Constraint Generation Constraint Solving Example Program and Total Correctness Specification: Pre- condition Post- condition 29 Tautology
  • 30. Input: 𝑥 ≠ 0 𝐰𝐡𝐢𝐥𝐞 𝑥 ≠ 0 𝐝𝐨 𝐢𝐟 𝑥 > 0 𝐭𝐡𝐞𝐧 𝑥 ← 𝑥 − 1 𝐞𝐥𝐬𝐞 𝑥 ← 𝑥 + 1 𝐝𝐨𝐧𝐞 ⊤ 2020/12/18 STAIR Lab Software Technology Seminar Output 𝓒: ① 𝐼 𝑥 ⟸ 𝑥 = 0, ② 𝐼 𝑥 − 1 ⟸ 𝐼 𝑥 ∧ 𝑥 > 0, ③ 𝐼 𝑥 + 1 ⟸ 𝐼 𝑥 ∧ 𝑥 < 0, ④ 𝑇⇓ 𝑥, 𝑥 − 1 ⟸ 𝐼 𝑥 ∧ 𝑥 > 0, ⑤ 𝑇⇓ 𝑥, 𝑥 + 1 ⟸ 𝐼 𝑥 ∧ 𝑥 < 0, Prog. & Spec. pfwCSP SAT or UNSAT Constraint Generation Constraint Solving represents a loop invariant 30 represents a well- founded relation for termination of the loop 𝓒 is satisfiable, witnessed by a solution 𝐼 𝑥 ≡ ⊤, 𝑇⇓ 𝑥, 𝑥′ ≡ 𝑥 > 𝑥′ ≥ 0
  • 31. Further Applications of pfwCSP • Refinement type inference [Unno+ ’09,’13,’18, Nanjo’18, Katsura+ ’20] • Validity checking of fixpoint logic formulas • LTL, CTL, CTL*, modal-mu calculus model checking • Infinite-state infinite-duration game solving • Bisimulation and bisimilarity verification • Hyperproperties verification • Program synthesis • … 2020/12/18 STAIR Lab Software Technology Seminar 31 (see [Unno+ ’20] and upcoming papers)
  • 32. Program Synthesis via Constraint Solving 2020/12/18 STAIR Lab Software Technology Seminar Constraint Generation 𝓒 is Sat (some 𝑷 ∈ 𝓛 satisfies 𝝍), 𝓒 is Unsat (all 𝑷 ∈ 𝓛 violates 𝝍), or Unknown Constraint Solving Constraints 𝓒 on Function Variables Language 𝓛 & Specification 𝝍 32 Synthesis Intermediary Independent of Particular Target and Method 
  • 33. Program Synthesis via Syntax-Guided Synthesis (SyGuS) 2020/12/18 STAIR Lab Software Technology Seminar Constraint Generation 𝓒 is Sat (some 𝑷 ∈ 𝓛 satisfies 𝝍), 𝓒 is Unsat (all 𝑷 ∈ 𝓛 violates 𝝍), or Unknown Constraint Solving SyGuS Constraints 𝓒 on Function Variables Language 𝓛 & Specification 𝝍 33 CVC4 [Reynolds+ ’15,’19] DryadSynth [Huang+ ’20] PCSat [Satake+ ’20, Unno+ ’20]
  • 34. SyGuS: Syntax-Guided Synthesis [Alur+ ’15] • Fix a first-order background theory 𝑇 such as: • Linear integer arithmetic (LIA) • Strings (for FlashFill benchmarks) • Bit-vectors (for Hackers' Delight benchmarks) • Given • Specification: 𝑇-formula 𝜙 over a function variable 𝑓 • Language: context-free grammar 𝐺 characterizing the set ℒ 𝐺 of allowed 𝑇-terms • Find a term 𝑡 ∈ ℒ 𝐺 such that ⊨ 𝑡/𝑓 𝜙 2020/12/18 STAIR Lab Software Technology Seminar 34
  • 35. Example LIA SyGuS Constraints 𝓒: • Language: 𝐺 that generates any term of LIA • Specification: 𝜙 ≡ 𝑓 𝑥, 𝑦 ≥ 𝑥 ∧ 𝑓 𝑥, 𝑦 ≥ 𝑦 ∧ 𝑓 𝑥, 𝑦 = 𝑥 ∨ 𝑓 𝑥, 𝑦 = 𝑦 𝓒 is satisfied by 𝑓 𝑥, 𝑦 ≡ if 𝑥 > 𝑦 then 𝑥 else 𝑦 𝓒 can be reduced to the pfwCSP: 𝑟 ≥ 𝑥 ∧ 𝑟 ≥ 𝑦 ∧ 𝑟 = 𝑥 ∨ 𝑟 = 𝑦 ⟸ 𝐹𝜆 𝑥, 𝑦, 𝑟 In general, SyGuS constraints 𝓒 can be converted to a pfwCSP using a predicate that characterizes ℒ 𝐺 2020/12/18 STAIR Lab Software Technology Seminar 35
  • 36. This Talk • Tutorial of program verification and synthesis based on constraint solving and machine learning over functions • First part: How to reduce program verification and synthesis to constraint solving • Second part: How to solve constraints via integrated deductive and inductive reasoning • Deductive reasoning by theorem proving (e.g., SAT, SMT) • Inductive reasoning by machine learning (e.g., decision tree learning, reinforcement learning) 2020/12/18 STAIR Lab Software Technology Seminar 36
  • 37. pfwCSP Constraints 𝓒 on Predicate Variables Target Program 𝑷 & Specification 𝝍 Program Verification and Synthesis via Predicate Constraint Satisfaction 2020/12/18 STAIR Lab Software Technology Seminar Constraint Generation 𝓒 is Sat, 𝓒 is Unsat, or Unknown Constraint Solving 37 Language 𝓛 & Specification 𝝍
  • 38. Challenges in Constraint Solving • Undecidable in general even for decidable theories • The search space of solutions is often very large (or unbounded), high-dimensional, and non-smooth 2020/12/18 STAIR Lab Software Technology Seminar To address these challenges, researchers are integrating deductive & inductive reasoning techniques within the framework of CounterExample Guided Inductive Synthesis (CEGIS) [Solar-Lezama+ ’06] 38
  • 39. CounterExample Guided Inductive Synthesis (CEGIS) • Iteratively accumulate example instances 𝓔 of the given 𝓒 through the two phases for each iteration: • Synthesis Phase by Learner • Find a candidate solution 𝜌 that satisfies 𝓔 • Validation Phase by Teacher • Check if the candidate 𝜌 also satisfies 𝓒 (with an SMT solver) • If yes, return 𝜌 as a genuine solution of 𝓒 • If no, repeat the procedure with new example instances witnessing non-satisfaction of 𝓒 by 𝜌 added 2020/12/18 STAIR Lab Software Technology Seminar 39
  • 40. Example Run of CEGIS Learner Example Instances 𝓔: ∅ Teacher Constraints 𝓒: • 𝐼 𝑥 ⟸ 𝑥 > 0 • 𝐼 𝑥 − 1 ∨ 𝐼 𝑥 + 1 ⟸ 𝐼 𝑥 ∧ 𝑥 ≠ 0 • ⊥ ⟸ 𝐼 𝑥 ∧ 𝑥 = 0 2020/12/18 STAIR Lab Software Technology Seminar Starting from the empty set (𝓒 is a black box) Is the candidate 𝐼 𝑥 ↦ ⊤ genuine? 40
  • 41. Example Run of CEGIS Learner Example Instances 𝓔: ∅ Teacher Constraints 𝓒: • 𝐼 𝑥 ⟸ 𝑥 > 0 • 𝐼 𝑥 − 1 ∨ 𝐼 𝑥 + 1 ⟸ 𝐼 𝑥 ∧ 𝑥 ≠ 0 • ⊥ ⟸ 𝐼 𝑥 ∧ 𝑥 = 0 2020/12/18 STAIR Lab Software Technology Seminar No. 𝐼 𝑥 ↦ ⊤ is not. The 3rd clause is violated when 𝑥 = 0 ⊥ ⟸ 𝐼 0 ∧ 0 = 0 41
  • 42. Example Run of CEGIS Learner Example Instances 𝓔: ¬𝐼 0 Teacher Constraints 𝓒: • 𝐼 𝑥 ⟸ 𝑥 > 0 • 𝐼 𝑥 − 1 ∨ 𝐼 𝑥 + 1 ⟸ 𝐼 𝑥 ∧ 𝑥 ≠ 0 • ⊥ ⟸ 𝐼 𝑥 ∧ 𝑥 = 0 2020/12/18 STAIR Lab Software Technology Seminar Is the cand. 𝐼 𝑥 ↦ 𝑥 < 0 genuine? 42
  • 43. Example Run of CEGIS Learner Example Instances 𝓔: ¬𝐼 0 Teacher Constraints 𝓒: • 𝐼 𝑥 ⟸ 𝑥 > 0 • 𝐼 𝑥 − 1 ∨ 𝐼 𝑥 + 1 ⟸ 𝐼 𝑥 ∧ 𝑥 ≠ 0 • ⊥ ⟸ 𝐼 𝑥 ∧ 𝑥 = 0 2020/12/18 STAIR Lab Software Technology Seminar No. 𝐼 𝑥 ↦ 𝑥 < 0 is not. The 1st clause is violated when 𝑥 = 1 𝐼 1 ⟸ 1 > 0 43
  • 44. Example Run of CEGIS Learner Example Instances 𝓔: ¬𝐼 0 𝐼 1 Teacher Constraints 𝓒: • 𝐼 𝑥 ⟸ 𝑥 > 0 • 𝐼 𝑥 − 1 ∨ 𝐼 𝑥 + 1 ⟸ 𝐼 𝑥 ∧ 𝑥 ≠ 0 • ⊥ ⟸ 𝐼 𝑥 ∧ 𝑥 = 0 2020/12/18 STAIR Lab Software Technology Seminar Is the cand. 𝐼 𝑥 ↦ 𝑥 = 1 genuine? 44
  • 45. Example Run of CEGIS Learner Example Instances 𝓔: ¬𝐼 0 𝐼 0 ∨ 𝐼 2 ⟸ 𝐼 1 𝐼 1 Teacher Constraints 𝓒: • 𝐼 𝑥 ⟸ 𝑥 > 0 • 𝐼 𝑥 − 1 ∨ 𝐼 𝑥 + 1 ⟸ 𝐼 𝑥 ∧ 𝑥 ≠ 0 • ⊥ ⟸ 𝐼 𝑥 ∧ 𝑥 = 0 2020/12/18 STAIR Lab Software Technology Seminar 45 No. 𝐼 𝑥 ↦ 𝑥 = 1 is not. The 2nd clause is violated when 𝑥 = 1
  • 46. Example Run of CEGIS Learner Example Instances 𝓔: ¬𝐼 0 𝐼 0 ∨ 𝐼 2 ⟸ 𝐼 1 𝐼 1 Teacher Constraints 𝓒: • 𝐼 𝑥 ⟸ 𝑥 > 0 • 𝐼 𝑥 − 1 ∨ 𝐼 𝑥 + 1 ⟸ 𝐼 𝑥 ∧ 𝑥 ≠ 0 • ⊥ ⟸ 𝐼 𝑥 ∧ 𝑥 = 0 2020/12/18 STAIR Lab Software Technology Seminar Is the cand. 𝐼 𝑥 ↦ 𝑥 ≥ 1 genuine? 46
  • 47. Example Run of CEGIS Learner Example Instances 𝓔: ¬𝐼 0 𝐼 0 ∨ 𝐼 2 ⟸ 𝐼 1 𝐼 1 Teacher Constraints 𝓒: • 𝐼 𝑥 ⟸ 𝑥 > 0 • 𝐼 𝑥 − 1 ∨ 𝐼 𝑥 + 1 ⟸ 𝐼 𝑥 ∧ 𝑥 ≠ 0 • ⊥ ⟸ 𝐼 𝑥 ∧ 𝑥 = 0 2020/12/18 STAIR Lab Software Technology Seminar Yes. 𝐼 𝑥 ↦ 𝑥 ≥ 1 satisfies 𝓒! 47
  • 48. Is CEGIS just (Online) Supervised Learning of Classification? • Similarities • Learner trains a model to fit examples 𝓔 and obtain 𝜌 • Teacher requires 𝜌 to generalize to 𝓒 (𝜌 shouldn’t overfit 𝓔) • Differences • 𝓔 is usually assumed to have no noise & 𝓒 is hard constraints • 𝜌 is required to exactly satisfy 𝓔 (or has no chance to satisfy 𝓒) • 𝜌 should be efficiently handled by Teacher (i.e., an SMT solver) • Sampling of 𝓔 from 𝓒 is not i.i.d (depends on 𝜌 and Teacher) • 𝓔 may contain not only positive/negative examples but also arbitrary clause ones (cf. constrained semi-supervised learning) 2020/12/18 STAIR Lab Software Technology Seminar 48 Despite the differences, machine learning techniques turned out to be quite useful!
  • 49. Machine Learning for CEGIS • Adapt ML models and algorithms to implement Learner • Piecewise linear classifiers [Sharma+ ’13a, Garg+ ’14, Unno+ ’20] • Decision trees [Krishna+ ’15, Garg+ ’16, Champion+ ’18, Ezudheen+ ’18, Zhu+ ’18] • Neural networks [Chang+ ’19, Zhao+ ’20, Abate+ ’21] • Greedy set covering w/ logic minimization [Padhi+ ’16, Sharma+ ’13b] • Metropolis Hastings MCMC sampler [Sharma+ ’14] • Probabilistic inference, survey propagation [Satake+ ’20] • Ensemble learning [Padhi+ ’20] • Learning to learn • Reinforcement learning of NNs to generate candidates [Si ’18] • Reinforcement learning of strategy to adjust classification models used by Learner (joint work w/ Tsukada, Sekiyama, Suenaga) 2020/12/18 STAIR Lab Software Technology Seminar 49
  • 50. SMT-based Piecewise Linear Classification (aka Template-based Synthesis) 1. Prepare a solution template with unknown coefficients, 2. Generate constraints on them, and 3. Solve them using an SMT solver 2020/12/18 STAIR Lab Software Technology Seminar Examples: 𝓔 ≡ 𝐼 0 , 𝐼 0 ⇒ 𝐼 1 , ¬𝐼 −1 Solution Template: 𝐼 𝑥 ↦ 𝑐1 ⋅ 𝑥 + 𝑐2 ≥ 0 Coeff. Constraints: 𝑐2 ≥ 0, 𝑐2 ≥ 0 ⇒ 𝑐1 + 𝑐2 ≥ 0, −𝑐1 + 𝑐2 < 0 A Candidate Solution: 𝜌 ≡ 𝐼 𝑥 ↦ 𝑥 ≥ 0 Satisfying Assignment: 𝑐1 ↦ 1, 𝑐2 ↦ 0 50
  • 51. Decision Tree Learning 1. Consistently label atoms in 𝓔 with +/− using a SAT solver 2. Generate a set 𝑄 of predicates used in classification 3. Classify atoms in 𝓔 with 𝑄 using a decision tree learner 2020/12/18 STAIR Lab Software Technology Seminar Examples: 𝓔 ≡ 𝐼 0 , 𝐼 0 ⇒ 𝐼 1 , ¬𝐼 −1 Labeling: 𝐼 0 ↦ +, 𝐼 1 ↦ +, 𝐼 −1 ↦ − Classifier: 𝜌 ≡ 𝐼 𝑥 ↦ 𝑥 ≥ 0 Predicates: 𝑄 ≡ 𝑥 ≥ 0, 𝑥 ≤ 0, 𝑥 ≥ 1, 𝑥 ≥ −1, 𝑥 ≤ 1, 𝑥 ≤ −1 51
  • 52. Template-based Synthesis vs Decision Tree Learning • Template-based Synthesis (TB) •  Fixes the shape of solution (updated upon failure) •  Flexibly find necessary predicates via SMT solving •  Atoms in 𝓔 are consistently labeled using 𝓔 as an SMT formula • Decision Tree Learning (DT) •  Fixes the predicates of solution (updated upon failure) •  Flexibly adjust the shape based on information gain •  Atoms are consistently labeled using 𝓔 as a SAT formula • Evaluation on SyGuS-Comp’19 Inv track XC benchmarks • TB solved 228 instances (out of 276) and DT solved 180 instances 2020/12/18 STAIR Lab Software Technology Seminar 52
  • 53. Future Research Directions • Efficient synthesis of complex and large functions from complex and large constraints • (Co)Inductive functions • Functions over (linked, (co)algebraic, array) data structures • Improve labeling, sampling and filtering of examples, and generation and ranking of predicates • Convergence theory of CEGIS • More applications 2020/12/18 STAIR Lab Software Technology Seminar 53
  • 54. Summary • Various program verification and synthesis problems can be reduced to constraint solving problems • The separation of constraint generation and solving facilitate tool development • CEGIS-based constraint solving integrates deductive and inductive reasoning to address challenges • Deductive reasoning by theorem proving (e.g., SAT, SMT) • Inductive reasoning by machine learning (e.g., decision tree learning, reinforcement learning) 2020/12/18 STAIR Lab Software Technology Seminar 54