CS576 Topics in Automated Deduction

Elsa L Gunter
2112 SC, UIUC
egunter@illinois.edu
http://courses.grainger.illinois.edu/cs576

Slides based in part on slides by Tobias Nipkow
2026-04-22

Starting Planning a Project in Isabelle

Problems with Libraries and Entries

After Basics: Then What?

Specifying CTL Syntax in Isabelle/HOL

Semantics of CTL - Transition System

More formally, the satisfaction of a CTL formula is defined with respect to:

Semantics of CTL - Paths

Semantic Rules of CTL (1)

The CTL satisfaction relation \((V,E), \mathcal{I}, q \models \varphi\) is defined as follows:

Semantic Rules of CTL (2)

Let \(AP\) be the set of atomic propositions underlying the CTL syntax. The CTL satisfaction relation \((V,E), \mathcal{I}, q \models \varphi\) is defined as follows:

Model Checker

Model Checker Background

Constructs used by Model Checker

Code for label-graph

procedure label-graph(f)
begin
. . .
(main operator is AU)
begin
ST := empty-stack;
for all s \(\in\) S do marked(s) := false;
L: for all s \(\in\) S do
if not (marked(s)) then au(f, s, b)
end
. . .
end

Model Checker search procedure au, \(s\) visited

Code for \(\texttt{au}( f, s, b)\) (\(s\) previously visited)

procedure au( f, s, b)
begin
if marked(s) then
begin
if labeled( s, f) then
begin b := true; return end;
b := false; return
end;

Model Checker search procedure au (\(s\) not visited)

Code for \(\texttt{au}( f, s, b)\) (\(s\) not visited)

marked(s) := true;
if labeled(s, arg2( f)) then
begin add_label(s, f); b := true; return end
else if llabeled(s, argl(f)) then
begin b := false; return end;

Code for \(\texttt{au}( f, s, b)\) (\(f_1\) holds, not \(f_2\))

Code for \(\texttt{au}( f, s, b)\) (\(s\) not visited)

push(s, ST);
for all s1 \(in\) successors(s) do
begin
au(f, s1, b1);
if not (b1) then
begin pop(ST); b := false; return end
end;
pop(ST); add_label(s, f); b := true; return
end # of procedure au