Calvin (Deutschbein)
14 Feb 2024
In a Kripke, what is I?
Think about what states and propositions are, and how they fit in here.
In a Kripke, R is a relation. What does this mean?
Think about what states and propositions are, and how they fit in here.
We said properties were sets of something. What?
How do Kripke Structures relate to properties?
How did we motivate the introduction of Kripke structures?
Consider the following representation:
p
to be "can guess passwords"q
to be "system access is denied"A passwording service must disclose if an entered password is correct.
p
and q
are true initially.q
becomes false, it never becomes true again.q
becomes false, p
stays true forever.Is this good? Does this describe any services you use?
Consider the following Kripke Structure:
Which of the following traces would be accepted by this structure?
{p,q}, {q }, {p,q}, {q }, {p }, {p }, {p }, ...
{p }, {q }, {p,q}, {q }, {p }, {p }, {p }, ...
{q }, {p,q}, {q }, {p,q}, {q }, {p }, {p }, ...
Consider the following Kripke Structure:
Which of the following traces would be accepted by this structure?
{p,q}, {q }, {p,q}, {q }, {p }, {p }, {p }, ...
{p,q}, {q }, {p, }, {q }, {p }, {p }, {p }, ...
{p,q}, {p }, {q, }, {p,q}, {q }, {p }, {p }, ...
Consider the following Kripke Structure:
Which of the following traces would be accepted by this structure?
{p,q}, {q }, {p,q}, {q }, {p,q}, {q }, {q }, ...
{p,q}, {q }, {p,q}, {q }, {p }, {q }, {p }, ...
{p,q}, {q }, {p }, {p }, {p }, {p }, {p }, ...
Consider the following Kripke Structure:
What describes (labels) S ?
{ {p,q}, {q }, {p } }
{ {p,q} }
{ {p }, {q } }
Consider the following Kripke Structure:
What describes (labels) I ?
{ {p,q}, {q }, {p } }
{ {p,q} }
{ {p }, {q } }
Consider the following Kripke Structure:
What is AP ?
{ {p,q}, {q }, {p } }
{ {p,q} }
{ {p }, {q } }
Consider the following Kripke Structure:
What describes (labels) R ?
{ {q} → {p }, {p} → {p,q} }
{ {p,q} → {{q }}, {q} → {{p,q},{p }}, {p} → {{p }} }
Kripke Structures are better than enumeration, but...
We will introduce a better way to write out relations, then look at our Kripke Structures.
Consider the following Kripke Structure:
The following statements are true of traces accepted by this structure:
p
and q
are true initially.q
becomes false, it never becomes true again.q
becomes false, p
stays true forever.p
goes from false to true when q
goes from true to true false.Consider the following representation:
p
to be "password checking is blocked/secured"q
to be "system access is blocked/secured"A passwording service must disclose if an entered password is correct.
p
and q
are true initially.q
becomes false, it never becomes true again.q
becomes false, p
stays true forever.Infinite guesses (bad), but persistent users may not look up passwords (good).
We have:
We need:
Consider:
p
and q
are true initially.
q
becomes false, it never becomes true again.q
until not q
q
becomes false, p
stays true forever.q
until not q
p
goes from false to true when q
goes from true to true false.
It often suffices to define two temporal operators:
Along with existing logical operators:
We need apply this over atomic propositions in AP to describe the security requirements of a system.
>With logical negation (not) and disjunction (or) we can generate other logical connectives.
p | q | ¬p | p∨q | ¬p∨¬q | ¬(¬p∨¬q)≡p∧q |
---|---|---|---|---|---|
True | True | False | True | False | True |
True | False | False | True | True | False |
False | True | True | True | True | False |
False | False | True | False | True | False |
For example, "and" or conjunction over two atomic propositions is equivalent to the negation or "not" of the "or" or disjunction over the negation or "not" of the two atomic propositions.
X a
a U b
Name | Usage | Meaning | Equivalencies |
---|---|---|---|
neXt | X p | p holds in the next time | X p |
Future | F p | p holds in some future time | TrueUp |
Global(ly) | G p | p holds in all future times | ¬(TrueU¬p) |
Until | p U q | p holds unless q, and q must hold at some point in the future | p U q |
Release | p R q | q holds up to and including when p holds | ¬(¬p U ¬q) |
Weak until | p W q | p holds up to when q holds | (p U q) ∨ G p |
Mighty release | p M q | q holds up to and including when p holds, and p must hold at some point in the future | q U (p ∨q) |
Populate this table in groups of n. Likely 15-20 minutes.
Operator | Trace 1 | Trace 2 |
---|---|---|
X p | * → p → * → ... | |
F p | ? | ? |
G p | ? | |
p U q | p∧¬q → p∧¬q → q → * → ... | |
p R q | ? | ? |
p W q | ? | ? |
p M q | ? |
Operator | Trace 1 | Trace 2 |
---|---|---|
X p | * → p → * → ... | |
F p | * → p → * → ... | * → * → p → * → ... |
G p | p → p → p → ... | |
p U q | p∧¬q → p∧¬q → q → * → ... | |
p R q | q → q → p ∧ q → * → ... | q → q → q → ... |
p W q | p → p → q → * → ... | p → p → p → ... |
p M q | q → q → p ∧ q → * → ... |
Identify something in your life (an app, a work thing, a building, a company) with security features.
Brave* volunteers** will present their Kripke Structures.