index.md 4.7 KB
Newer Older
Alexander Weigl's avatar
Alexander Weigl committed
1
2
<style>
        #content {
Alexander Weigl's avatar
Alexander Weigl committed
3
            width: 50em;
Alexander Weigl's avatar
Alexander Weigl committed
4
5
6
7
8
9
10
11
12
13
            margin: auto;
            border: 1px #ccc solid;
            border-bottom-left-radius: 2em;
            border-top-right-radius: 2em;
            background: ghostwhite;
            padding: 2em;
        }

        .column>div{
            float: left;
Alexander Weigl's avatar
Alexander Weigl committed
14
15
            width: 30%;
            margin:1%;
Sarah Grebing's avatar
Sarah Grebing committed
16
            text-align: left;
Alexander Weigl's avatar
Alexander Weigl committed
17
18
19
20
21
22
        }

        .column img {
            width: 150px;
            text-align: center;
        }
Alexander Weigl's avatar
Alexander Weigl committed
23
24
        
        img.thumb {
Alexander Weigl's avatar
Alexander Weigl committed
25
            width:100%;           
Alexander Weigl's avatar
Alexander Weigl committed
26
            border-radius:50%;
Alexander Weigl's avatar
Alexander Weigl committed
27
        }
Alexander Weigl's avatar
Alexander Weigl committed
28
29
       
       .column h3 {
Alexander Weigl's avatar
Alexander Weigl committed
30
            text-align:center;
Alexander Weigl's avatar
Alexander Weigl committed
31
32
33
       }
       
       div.feature-caption {
Alexander Weigl's avatar
Alexander Weigl committed
34
           text-align: block;           
Alexander Weigl's avatar
Alexander Weigl committed
35
36
           text-align: justify;
           font-size: 80%;
Alexander Weigl's avatar
Alexander Weigl committed
37
           font-weight:bold;
Alexander Weigl's avatar
Alexander Weigl committed
38
39
       }
       
Alexander Weigl's avatar
Alexander Weigl committed
40
41
</style>

Alexander Weigl's avatar
Alexander Weigl committed
42
# Proof Script Debugger for the KeY System
Alexander Weigl's avatar
Alexander Weigl committed
43

Alexander Weigl's avatar
Alexander Weigl committed
44
The proof script debugger is a prototypical implementation
Alexander Weigl's avatar
Alexander Weigl committed
45
46
47
of an interaction concept for program verification systems that are rule based and
use a program logic.
The prototype is implemented on top of the interactive program verification system
Sarah Grebing's avatar
Sarah Grebing committed
48
[KeY](http://www.key-project.org). KeY is an interactive program verification
Alexander Weigl's avatar
Alexander Weigl committed
49
50
system for Java program annotated with the Java Modeling Language (JML).

Alexander Weigl's avatar
Alexander Weigl committed
51

Alexander Weigl's avatar
Alexander Weigl committed
52
53
The protypical implementation includes a proof scripting language that is tailored to the
problem domain of program verification.
Sarah Grebing's avatar
Sarah Grebing committed
54
The main features of the language are:
Alexander Weigl's avatar
Alexander Weigl committed
55
56

1. integration of domain specific entities like goal, formula, term and rule as
Sarah Grebing's avatar
Sarah Grebing committed
57
first-class citizens into the language;</li>
Alexander Weigl's avatar
Alexander Weigl committed
58
59
60
61
62
63
64
65
66
1. an expressive proof goal selection mechanism
  * to identify and select individual proof branches,
  * to easily switch between proof branches,
  * to select multiple branches for uniform treatment (multi-matching);
  that is resilient to small changes in the proof
1. a repetition construct which allows repeated application of proof strategies;</li>
1. support for proof exploration within the language.</li>


Alexander Weigl's avatar
Alexander Weigl committed
67
68
69
Together with the proof scripting language a debugging concept for failed proof attempts
is implemented that leverages well-known concepts from program debugging to
the analysis of failed proof attempts.
Sarah Grebing's avatar
Sarah Grebing committed
70

Alexander Weigl's avatar
Alexander Weigl committed
71
72
73
## Publications

A full description of the language and debugging-concept 
Sarah Grebing's avatar
Sarah Grebing committed
74
is published at [HVC 2017](http://rdcu.be/E4fF)
Alexander Weigl's avatar
Alexander Weigl committed
75

Alexander Weigl's avatar
Alexander Weigl committed
76
77
78
79
80
81
82
83
## Debugging Quicksort

<center>
<video width="80%"  controls>
  <source src="quicksort.webm" type="video/webm">
Your browser does not support the video tag or WebM.
</video>
</center>
Sarah Grebing's avatar
Sarah Grebing committed
84

Alexander Weigl's avatar
Alexander Weigl committed
85
## Features
Alexander Weigl's avatar
Alexander Weigl committed
86
87

<div class="column">
Alexander Weigl's avatar
Alexander Weigl committed
88
    <div>
Sarah Grebing's avatar
Sarah Grebing committed
89
        <h3>Inspection of different parts of the proof state</h3>
90
        <p> 
Sarah Grebing's avatar
Sarah Grebing committed
91
92
        The different parts of the proof state can be inspected:
        <ul>
Alexander Weigl's avatar
Alexander Weigl committed
93
94
95
96
        <li>list of open goals</li>
        <li>sequent of selected open goal</li>
        <li>path through program (if existing) for selected open goal</li>
        </ul>
Sarah Grebing's avatar
Sarah Grebing committed
97
        </p> 
Alexander Weigl's avatar
Alexander Weigl committed
98
99
    </div>
    <div >
Sarah Grebing's avatar
Sarah Grebing committed
100
        <h3>Adjustable view on list of open goals</h3>
Alexander Weigl's avatar
Alexander Weigl committed
101
        <img class="thumb" src="img/thumb_ScreenshotGoalList.png" />
Alexander Weigl's avatar
Alexander Weigl committed
102
        <div class="feature-caption"/></div>
Alexander Weigl's avatar
Alexander Weigl committed
103
104
    </div>
    <div >
Sarah Grebing's avatar
Sarah Grebing committed
105
        <h3>Explore the proof tree of KeY</h3>
Alexander Weigl's avatar
Alexander Weigl committed
106
107
        <img class="thumb" src="img/thumb_ScreenshotProofTree.png"/>
        <div class="feature-caption"/></div>
Alexander Weigl's avatar
Alexander Weigl committed
108
109
110
    </div>
</div>
<div style="clear: both;"/>
Alexander Weigl's avatar
Alexander Weigl committed
111
112
113
114
115
116
117

<div class="column">
    <div>
        <h3>Set a breakpoint and run execution to breakpoint</h3>
        <img src="img/thumb_ScreenshotBreakpoint.png" class="thumb"/>
        <div class="feature-caption">
            Mark lines with an (conditional) breakpoint to pause the script execution.
Alexander Weigl's avatar
Alexander Weigl committed
118
        </div>
Alexander Weigl's avatar
Alexander Weigl committed
119
120
121
122
123
124
125
126
    </div>
    <div> 
        <h3>Stepwise evaluation for time travellers</h3>
        <img src="img/thumb_ScreenshotStep.png" class="thumb" />
        <div class="feature-caption">
            Stepwise script execution: step over and into.
            Our special offers for time travellers: Go backwards in time
            and then Back to the Future,again!
Alexander Weigl's avatar
Alexander Weigl committed
127
128
        </div>
    </div>
Alexander Weigl's avatar
Alexander Weigl committed
129
130
131
132
133
134
135
    <div> 
      <h3> Interactive Rule Application</h3>
        <img src="img/thumb_ScreenshotInteractive.png" class="thumb" />
        <div class="feature-caption">
        Select rules for interactive application.
        </div>
  </div>
Alexander Weigl's avatar
Alexander Weigl committed
136
137
138
139
</div>

<div style="clear: both;"/> 

Alexander Weigl's avatar
Alexander Weigl committed
140
<h2>Downloads</h2>
Alexander Weigl's avatar
Alexander Weigl committed
141

Alexander Weigl's avatar
Alexander Weigl committed
142
143
144
145
<ul>
 <li>PSDBG - <strong>Version 1.0-FM</strong> 
    <a href="~/releases/psdbg-1.0-fm.jar">psdbg-1.0-fm.jar</a>
    <br>
Alexander Weigl's avatar
Alexander Weigl committed
146
147
148
149
    Special Version for the tool paper at Formal Methods 2018.
    Including examples and all dependencies.
    <br>
    <a href="https://www.gnu.org/licenses/gpl-3.0.txt">License: GPLv3</a>
Alexander Weigl's avatar
Alexander Weigl committed
150
151
152
    <a href="thirdparty.txt">Third Party Licenses</a> 
    <br>
    Executable with <code>java -jar psdbg-1.0-fm.jar</code>
Alexander Weigl's avatar
Alexander Weigl committed
153
154
 </li>
</ul>
Alexander Weigl's avatar
Alexander Weigl committed
155
156

<div style="clear: both;"/>
Sarah Grebing's avatar
website    
Sarah Grebing committed
157