-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathindex.xml
501 lines (451 loc) · 33.7 KB
/
index.xml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
<channel>
<title>Home on bohlender.pro</title>
<link>https://bohlender.pro/</link>
<description>Recent content in Home on bohlender.pro</description>
<generator>Hugo -- gohugo.io</generator>
<language>en-gb</language>
<managingEditor>[email protected] (Dimitri Bohlender)</managingEditor>
<webMaster>[email protected] (Dimitri Bohlender)</webMaster>
<copyright>© Dimitri Bohlender</copyright>
<lastBuildDate>Sat, 17 Aug 2019 22:52:06 +0200</lastBuildDate><atom:link href="https://bohlender.pro/index.xml" rel="self" type="application/rss+xml" />
<item>
<title>Mastermind Solver</title>
<link>https://bohlender.pro/projects/mastermind-solver/</link>
<pubDate>Fri, 08 Nov 2024 00:00:00 +0000</pubDate>
<author>[email protected] (Dimitri Bohlender)</author>
<guid>https://bohlender.pro/projects/mastermind-solver/</guid>
<description>I was curious to explore what ClojureScript and Reagent are all about and used this opportunity to create a web frontend for the SAT-based Mastermind solver from one of my posts.
All computation is kept client-side to avoid server costs. I had to port the approach to C/C++ and kissat to obtain a reasonably small and performant WASM library. Ultimately, this library is what the thin ClojureScript frontend wraps.</description>
</item>
<item>
<title>Turning Studio Headphones Into a Headset</title>
<link>https://bohlender.pro/blog/turning-studio-headphones-into-a-headset/</link>
<pubDate>Sat, 21 Jan 2023 13:38:05 +0100</pubDate>
<author>[email protected] (Dimitri Bohlender)</author>
<guid>https://bohlender.pro/blog/turning-studio-headphones-into-a-headset/</guid>
<description><p>In a recent virtual meeting a new colleague was surprised to see me using a <a href="https://beyerdynamic.com/dt-770-pro.html">Beyerdynamic DT 770 PRO</a> <em>headset</em> &ndash; a product Beyerdynamic does not even list.
The DT 770 PRO are well-known studio <em>headphones</em>, and so are all the other entries in Beyerdynamic&rsquo;s <q>studio</q> line.
Only their <q>gaming</q> line of products features headsets.
So how could I possibly be using a device that does not seem to exist?</p>
<p>The solution is unspectacular if one is aware of &ldquo;detachable microphones&rdquo;.
To turn a wired studio headphone into a headset all one needs to do is to make it possible to attach such a microphone.
This post illustrates</p>
<ul>
<li>how replacing the integrated headphone cable by an <a href="https://en.wikipedia.org/wiki/Phone_connector_(audio)">audio jack</a> achieves this,</li>
<li>the concrete implementation using my DT 770 PRO as a test object.</li>
</ul></description>
</item>
<item>
<title>Extending Datalog by Rank Operations</title>
<link>https://bohlender.pro/cv/work/supervision/2022-ba/</link>
<pubDate>Sun, 02 Oct 2022 00:00:00 +0000</pubDate>
<author>[email protected] (Dimitri Bohlender)</author>
<guid>https://bohlender.pro/cv/work/supervision/2022-ba/</guid>
<description>Original title is &ldquo;Erweiterung von Datalog um Berechnung von Rängen&rdquo;</description>
</item>
<item>
<title>Lead Software Engineer / Software Architect</title>
<link>https://bohlender.pro/cv/work/2022-se/</link>
<pubDate>Mon, 29 Aug 2022 00:00:00 +0000</pubDate>
<author>[email protected] (Dimitri Bohlender)</author>
<guid>https://bohlender.pro/cv/work/2022-se/</guid>
<description>Having convinced the company of the need to evolve the fundamental technology, which revolves around a proprietary Datalog DSL, I led the endeavour in a skunkworks-style R&amp;D team created for this purpose. The work involved classic language design &amp; implementation topics, such as the incremental replacement of misguided language concepts without breaking the existing huge code base, and tool development to automate the error-prone workflows of developers and consultants using the language.</description>
</item>
<item>
<title>Solving the "Seven Segment Search" Puzzle with Z3</title>
<link>https://bohlender.pro/blog/aoc-seven-segment-search-with-z3/</link>
<pubDate>Sat, 22 Jan 2022 15:06:54 +0100</pubDate>
<author>[email protected] (Dimitri Bohlender)</author>
<guid>https://bohlender.pro/blog/aoc-seven-segment-search-with-z3/</guid>
<description><p>This week I stumbled upon <a href="https://www.reddit.com/r/adventofcode/comments/rbwnh5/2021_day_8_can_it_be_solved_as_a_constraint/">someone wondering</a> whether the <strong>second part</strong> of the recent <a href="https://adventofcode.com/2021/day/8">Advent of Code puzzle &ldquo;Seven Segment Search&rdquo;</a> can be expressed as a constraint satisfaction problem.
As attested by the replies: yes, it can.
However, I think the question deserves a more extensive discussion than just a few comments in a thread.
This post tries to provide a more instructive answer and raise awareness for the tradeoffs or solver misuses some solutions put up with.</p>
<p>I assume that the reader is familiar with mathematical notation and</p>
<ul>
<li>just struggles to express the posed problem in a formal, declarative way, <em>or</em></li>
<li>is interested in seeing how the <a href="https://en.wikipedia.org/wiki/Satisfiability_modulo_theories">SMT</a> solver <a href="https://github.com/Z3Prover/z3/">Z3</a> can be used to express and solve the problem in several logics.
It takes only few steps to get from a quantifier-laden high-level formulation to what is effectively <a href="https://en.wikipedia.org/wiki/Propositional_logic">propositional logic</a>.</li>
</ul></description>
</item>
<item>
<title>Generating Crosswords via SAT/SMT</title>
<link>https://bohlender.pro/blog/generating-crosswords-with-sat-smt/</link>
<pubDate>Sun, 27 Sep 2020 16:03:37 +0200</pubDate>
<author>[email protected] (Dimitri Bohlender)</author>
<guid>https://bohlender.pro/blog/generating-crosswords-with-sat-smt/</guid>
<description><p>Recently I got interested in designing personalised crosswords as a way to spice up photo book presents.
This made me realise how hard generating <q>high-quality</q> crosswords actually is.
Trying to create a crossword from a set of words &ndash; or a subset thereof &ndash; I checked out several tools but found all of them to be based on heuristics and yield rather sparse crosswords.</p>
<p>In line with the general theme of my previous posts, this one illustrates how we can leverage <a href="https://en.wikipedia.org/wiki/Boolean_satisfiability_problem">SAT solving</a> to solve this problem.
In contrast to related approaches, which assume a fixed grid structure and search for fitting words, we consider word placement as part of the problem and eventually end up with an integrated solution to generating crosswords of adjustable quality.</p></description>
</item>
<item>
<title>Software Engineer</title>
<link>https://bohlender.pro/cv/work/2020-se/</link>
<pubDate>Mon, 01 Jun 2020 00:00:00 +0000</pubDate>
<author>[email protected] (Dimitri Bohlender)</author>
<guid>https://bohlender.pro/cv/work/2020-se/</guid>
<description>I was part of the core team of developers responsible for expressing customer-independent, fundamental concepts of the business domain in a JVM-embedded, proprietary Datalog DSL. The resulting &ldquo;model&rdquo; contained the logic of WorkforcePlus, and I was recruited help managing its increasing complexity. My analysis uncovered concrete deficiencies and misapprehensions in the home-made logic programming paradigm as the root cause. Thus, my main responsibilities were (re-)engineering of the most problematic business domain concepts at that time, and the introduction of modelling language constructs needed to enable more principled modelling.</description>
</item>
<item>
<title>Playing Hard Mastermind Games with a SAT-based AI</title>
<link>https://bohlender.pro/blog/playing-hard-mastermind-games-with-a-sat-based-ai/</link>
<pubDate>Sun, 08 Mar 2020 16:12:02 +0100</pubDate>
<author>[email protected] (Dimitri Bohlender)</author>
<guid>https://bohlender.pro/blog/playing-hard-mastermind-games-with-a-sat-based-ai/</guid>
<description><p>Back in the day, <a href="https://en.wikipedia.org/wiki/Mastermind_(board_game)">Mastermind</a> was a popular two player code-breaking game, and many <a href="https://en.wikipedia.org/wiki/Mastermind_(board_game)#Variations">variations thereof</a> still exist as both standalone games and puzzles within other games.
Although it is difficult for a human player to make <em>optimal guesses</em> of the secret code, or at least guesses that do not conflict with the provided clues, the setting is usually simple enough for an AI to find such candidates via explicit exploration of the <a href="https://en.wikipedia.org/wiki/Game_tree">game tree</a>.</p>
<p>However, such approaches become unfeasible when the number of possibilities for secret codes grows into the millions.
This post illustrates the problem with standard approaches, and how finding consistent candidates can be approached with <a href="https://en.wikipedia.org/wiki/Boolean_satisfiability_problem">SAT</a> solving &ndash; yielding an AI that can handle orders-of-magnitude harder Mastermind instances.</p></description>
</item>
<item>
<title>Solving a Logic Synthesis Puzzle via SAT/SMT</title>
<link>https://bohlender.pro/blog/solving-a-logic-synthesis-puzzle-via-sat-smt/</link>
<pubDate>Sat, 30 Nov 2019 22:54:10 +0100</pubDate>
<author>[email protected] (Dimitri Bohlender)</author>
<guid>https://bohlender.pro/blog/solving-a-logic-synthesis-puzzle-via-sat-smt/</guid>
<description><p>A few weeks ago, I was asked the following riddle:
<q>Design a <a href="https://en.wikipedia.org/wiki/Logic_gate">logic circuit</a> with three inputs and three outputs, such that the outputs are the inverted inputs. You may use arbitrary many AND and OR gates, but at most two NOT gates</q>.
Although the characterisation of this problem as an <a href="https://en.wikipedia.org/wiki/Satisfiability_modulo_theories">SMT</a> instance is straightforward, I found it necessary to reduce it to <a href="https://en.wikipedia.org/wiki/Boolean_satisfiability_problem">SAT</a> and incorporate further assumptions to achieve reasonable performance.</p>
<p>This post illustrates said process, ranging from the original idea to a standard formulation of SAT-based logic synthesis to a problem-specific and more constrained instance.</p></description>
</item>
<item>
<title>Leveraging Horn Clause Solving for Compositional Verification of PLC Software</title>
<link>https://bohlender.pro/cv/publications/2019-deds/</link>
<pubDate>Tue, 26 Nov 2019 00:00:00 +0000</pubDate>
<author>[email protected] (Dimitri Bohlender)</author>
<guid>https://bohlender.pro/cv/publications/2019-deds/</guid>
<description></description>
</item>
<item>
<title>Explainability as a Non-Functional Requirement</title>
<link>https://bohlender.pro/cv/publications/2019-re/</link>
<pubDate>Mon, 23 Sep 2019 00:00:00 +0000</pubDate>
<author>[email protected] (Dimitri Bohlender)</author>
<guid>https://bohlender.pro/cv/publications/2019-re/</guid>
<description></description>
</item>
<item>
<title>SMT-based Reasoning About the Fast Inverse Square Root</title>
<link>https://bohlender.pro/blog/smt-based-optimisation-of-fast-inverse-square-root/</link>
<pubDate>Thu, 12 Sep 2019 09:31:28 +0200</pubDate>
<author>[email protected] (Dimitri Bohlender)</author>
<guid>https://bohlender.pro/blog/smt-based-optimisation-of-fast-inverse-square-root/</guid>
<description><p>While there is a <a href="https://web.archive.org/web/20160308091758/http://www.daxia.com/bibis/upload/406Fast_Inverse_Square_Root.pdf">mathematical explanation</a> for the choice of <code>0x5F3759DF</code> in the <a href="https://en.wikipedia.org/wiki/Fast_inverse_square_root">famous bit-level hack</a> for approximating the multiplicative inverse of the square root of a 32-bit floating-point number, it is not immediately clear to what extent the reasoning is really applicable in the context of machine data types and their peculiarities.
This post illustrates how this, and related aspects, can be investigated with <a href="https://en.wikipedia.org/wiki/Satisfiability_modulo_theories">SMT</a>-based reasoning about the actual implementation.</p></description>
</item>
<item>
<title>Personal Website</title>
<link>https://bohlender.pro/projects/personal-website/</link>
<pubDate>Thu, 05 Sep 2019 21:07:25 +0200</pubDate>
<author>[email protected] (Dimitri Bohlender)</author>
<guid>https://bohlender.pro/projects/personal-website/</guid>
<description>With the end of my PhD looming on the horizon, I wanted to get a short CV and some information about me online. However, I wasn&rsquo;t interested in generic, impersonal solutions, such as the services of career-oriented social networking sites.
I used this opportunity to learn some web development basics, and build a static website that serves as both a portfolio and an outlet for all things creative. It&rsquo;s the site you&rsquo;re looking at right now.</description>
</item>
<item>
<title>Legal</title>
<link>https://bohlender.pro/legal/</link>
<pubDate>Mon, 19 Aug 2019 13:32:35 +0200</pubDate>
<author>[email protected] (Dimitri Bohlender)</author>
<guid>https://bohlender.pro/legal/</guid>
<description>Disclaimer The information on this website is provided &ldquo;as is&rdquo;, without warranty of any kind. This is a personal website, so all expressed opinions are solely my own, and in particular not connected with my employer. In no event shall I, the author, be liable for any claim, damages or other liability arising from, out of or in connection with this website, or consumption of its content. By using this website, you hereby consent to its terms.</description>
</item>
<item>
<title>Arcade.PLC</title>
<link>https://bohlender.pro/projects/arcade/</link>
<pubDate>Tue, 01 Jan 2019 00:00:00 +0000</pubDate>
<author>[email protected] (Dimitri Bohlender)</author>
<guid>https://bohlender.pro/projects/arcade/</guid>
<description>I worked on Arcade.PLC on two occasions: during my bachelor&rsquo;s thesis, and my time as research associate at Embedded Software. Arcade.PLC is both a tool and a framework for formal verification of industrial control software, featuring procedures for static analysis, automated test generation and model checking.
It started out as explicit state-space exploration based on abstract interpretation, which is what I&rsquo;ve been integrating abstractions into during my bachelor&rsquo;s thesis, but was extended with various SMT-based methods during my PhD.</description>
</item>
<item>
<title>Viability of BDDs in Property Directed Reachability</title>
<link>https://bohlender.pro/cv/work/supervision/2018-ma2/</link>
<pubDate>Sun, 21 Oct 2018 00:00:00 +0000</pubDate>
<author>[email protected] (Dimitri Bohlender)</author>
<guid>https://bohlender.pro/cv/work/supervision/2018-ma2/</guid>
<description></description>
</item>
<item>
<title>Abstraction Refinement in Incremental Cycle-bounded Model Checking</title>
<link>https://bohlender.pro/cv/work/supervision/2018-ma/</link>
<pubDate>Tue, 02 Oct 2018 00:00:00 +0000</pubDate>
<author>[email protected] (Dimitri Bohlender)</author>
<guid>https://bohlender.pro/cv/work/supervision/2018-ma/</guid>
<description></description>
</item>
<item>
<title>Design and Verification of Restart-robust Industrial Control Software</title>
<link>https://bohlender.pro/cv/publications/2018-ifm/</link>
<pubDate>Wed, 05 Sep 2018 00:00:00 +0000</pubDate>
<author>[email protected] (Dimitri Bohlender)</author>
<guid>https://bohlender.pro/cv/publications/2018-ifm/</guid>
<description></description>
</item>
<item>
<title>Verification Technology, Systems & Applications</title>
<link>https://bohlender.pro/cv/education/summer-schools/2018-vtsa/</link>
<pubDate>Mon, 27 Aug 2018 00:00:00 +0000</pubDate>
<author>[email protected] (Dimitri Bohlender)</author>
<guid>https://bohlender.pro/cv/education/summer-schools/2018-vtsa/</guid>
<description>Applied for this edition to learn about both deductive verification and what to look out for when implementing BMC for LLVM IR.</description>
</item>
<item>
<title>Compositional Verification of PLC Software using Horn Clauses and Mode Abstraction</title>
<link>https://bohlender.pro/cv/publications/2018-wodes/</link>
<pubDate>Fri, 01 Jun 2018 00:00:00 +0000</pubDate>
<author>[email protected] (Dimitri Bohlender)</author>
<guid>https://bohlender.pro/cv/publications/2018-wodes/</guid>
<description></description>
</item>
<item>
<title>Cycle-bounded Model Checking of PLC Software via Dynamic Large-Block Encoding</title>
<link>https://bohlender.pro/cv/publications/2018-sac/</link>
<pubDate>Mon, 09 Apr 2018 00:00:00 +0000</pubDate>
<author>[email protected] (Dimitri Bohlender)</author>
<guid>https://bohlender.pro/cv/publications/2018-sac/</guid>
<description></description>
</item>
<item>
<title>vim-smt2</title>
<link>https://bohlender.pro/projects/vim-smt2/</link>
<pubDate>Tue, 10 Oct 2017 00:00:00 +0000</pubDate>
<author>[email protected] (Dimitri Bohlender)</author>
<guid>https://bohlender.pro/projects/vim-smt2/</guid>
<description>Although SMT-LIB is the standard language supported by most SMT solvers, some of them introduce custom language extensions. Such extensions may range from syntactical sugar to fine-grained control over the underlying solver-procedure.
Since I&rsquo;m an avid user of Z3, I started vim-smt2 to have a plugin for the Vim editor that supports both the base SMT-LIB language and the extensions provided by Z3. Besides the basic syntax highlighting I&rsquo;m implementing convenient features, such as querying satisfiability or the solver&rsquo;s version, when I find myself repeatedly doing automatable tasks manually.</description>
</item>
<item>
<title>A Priori Test Coverage Estimation for Automated Production Systems: Using Generated Behavior Models for Coverage Calculation</title>
<link>https://bohlender.pro/cv/publications/2017-etfa/</link>
<pubDate>Tue, 12 Sep 2017 00:00:00 +0000</pubDate>
<author>[email protected] (Dimitri Bohlender)</author>
<guid>https://bohlender.pro/cv/publications/2017-etfa/</guid>
<description></description>
</item>
<item>
<title>Logical Methods for Safety and Security of Software Systems</title>
<link>https://bohlender.pro/cv/education/summer-schools/2017-marktoberdorf/</link>
<pubDate>Wed, 02 Aug 2017 00:00:00 +0000</pubDate>
<author>[email protected] (Dimitri Bohlender)</author>
<guid>https://bohlender.pro/cv/education/summer-schools/2017-marktoberdorf/</guid>
<description>Attended the summer school for all things formal. I applied for this edition since it had a particularly strong lineup of lecturers in the domain of software verification.</description>
</item>
<item>
<title>A Unifying Formalism for PDR-based Software Verification</title>
<link>https://bohlender.pro/cv/work/supervision/2017-ma/</link>
<pubDate>Thu, 23 Mar 2017 00:00:00 +0000</pubDate>
<author>[email protected] (Dimitri Bohlender)</author>
<guid>https://bohlender.pro/cv/work/supervision/2017-ma/</guid>
<description></description>
</item>
<item>
<title>Cycle-bounded Model Checking of Reactive Programs</title>
<link>https://bohlender.pro/cv/work/supervision/2016-ma/</link>
<pubDate>Tue, 06 Sep 2016 00:00:00 +0000</pubDate>
<author>[email protected] (Dimitri Bohlender)</author>
<guid>https://bohlender.pro/cv/work/supervision/2016-ma/</guid>
<description></description>
</item>
<item>
<title>Concolic Test Generation for PLC Programs using Coverage Metrics</title>
<link>https://bohlender.pro/cv/publications/2016-wodes/</link>
<pubDate>Mon, 30 May 2016 00:00:00 +0000</pubDate>
<author>[email protected] (Dimitri Bohlender)</author>
<guid>https://bohlender.pro/cv/publications/2016-wodes/</guid>
<description></description>
</item>
<item>
<title>Symbolic Verification of PLC Safety-Applications based on PLCopen Automata</title>
<link>https://bohlender.pro/cv/publications/2016-mbmv/</link>
<pubDate>Tue, 01 Mar 2016 00:00:00 +0000</pubDate>
<author>[email protected] (Dimitri Bohlender)</author>
<guid>https://bohlender.pro/cv/publications/2016-mbmv/</guid>
<description></description>
</item>
<item>
<title>Formal and semi-formal Methods for Embedded Software (Seminar)</title>
<link>https://bohlender.pro/cv/work/teaching/2015-seminar/</link>
<pubDate>Thu, 01 Oct 2015 00:00:00 +0000</pubDate>
<author>[email protected] (Dimitri Bohlender)</author>
<guid>https://bohlender.pro/cv/work/teaching/2015-seminar/</guid>
<description>Taught scientific writing and giving a talk on the basis of recent publications in the formal methods community.</description>
</item>
<item>
<title>Formal Methods for Logic Control Software (Lecture & Exercises)</title>
<link>https://bohlender.pro/cv/work/teaching/2015-fmlcs/</link>
<pubDate>Thu, 01 Oct 2015 00:00:00 +0000</pubDate>
<author>[email protected] (Dimitri Bohlender)</author>
<guid>https://bohlender.pro/cv/work/teaching/2015-fmlcs/</guid>
<description>Proposed the lecture and was reponsible for its design and all related materials. The lecture covers state-of-the-art techniques in static analysis and model checking of logic control software.</description>
</item>
<item>
<title>IC3-based Model Checking for PLC Programs</title>
<link>https://bohlender.pro/cv/work/supervision/2015-ma/</link>
<pubDate>Mon, 16 Mar 2015 00:00:00 +0000</pubDate>
<author>[email protected] (Dimitri Bohlender)</author>
<guid>https://bohlender.pro/cv/work/supervision/2015-ma/</guid>
<description></description>
</item>
<item>
<title>Efficient Encoding of PLC Programs for nuXmv</title>
<link>https://bohlender.pro/cv/work/supervision/2015-ba/</link>
<pubDate>Wed, 11 Mar 2015 00:00:00 +0000</pubDate>
<author>[email protected] (Dimitri Bohlender)</author>
<guid>https://bohlender.pro/cv/work/supervision/2015-ba/</guid>
<description></description>
</item>
<item>
<title>PhD in Computer Science</title>
<link>https://bohlender.pro/cv/education/2014-phd/</link>
<pubDate>Sat, 01 Nov 2014 00:00:00 +0000</pubDate>
<author>[email protected] (Dimitri Bohlender)</author>
<guid>https://bohlender.pro/cv/education/2014-phd/</guid>
<description>During this time I worked on formal verification of control software from the automation domain and graduated summa cum laude. In my thesis &ldquo;Symbolic Methods for Formal Verification of Industrial Control Software&rdquo; I leverage SMT solving and abstract interpretation to develop fully-automated procedures for proving a program&rsquo;s compliance with various specifications that are relevant or unique to this domain.</description>
</item>
<item>
<title>Research Associate</title>
<link>https://bohlender.pro/cv/work/2014-research-associate/</link>
<pubDate>Sat, 01 Nov 2014 00:00:00 +0000</pubDate>
<author>[email protected] (Dimitri Bohlender)</author>
<guid>https://bohlender.pro/cv/work/2014-research-associate/</guid>
<description>Taught formal methods and worked on Arcade.PLC, a platform for verification of software for industrial controllers, featuring model checking procedures and static analyses. The work on this project involved abstracting the concrete program semantics to avoid exhaustive exploration of the program&rsquo;s state space, and formalising &amp; exploiting peculiarities of both the properties of interest and the domain.</description>
</item>
<item>
<title>A Review of Statistical Model Checking Pitfalls on Real-Time Stochastic Models</title>
<link>https://bohlender.pro/cv/publications/2014-isola/</link>
<pubDate>Wed, 08 Oct 2014 00:00:00 +0000</pubDate>
<author>[email protected] (Dimitri Bohlender)</author>
<guid>https://bohlender.pro/cv/publications/2014-isola/</guid>
<description></description>
</item>
<item>
<title>Storm</title>
<link>https://bohlender.pro/projects/storm/</link>
<pubDate>Tue, 02 Sep 2014 00:00:00 +0000</pubDate>
<author>[email protected] (Dimitri Bohlender)</author>
<guid>https://bohlender.pro/projects/storm/</guid>
<description>In the context of my master&rsquo;s thesis I&rsquo;ve worked on the Storm probabilistic model checker. In particular, I developed a fully symbolic variant of the partially explicit procedure used in PASS for probabilistic reachability checking of Markov decision processes.
I used SMT-solving to compute a menu-based abstraction, and refine it in a counterexample-guided fashion. The abstraction was stored in terms of MTBDDs, for which I developed both the actual symbolic value iteration and symbolic static analyses for preprocessing.</description>
</item>
<item>
<title>Teaching Assistant</title>
<link>https://bohlender.pro/cv/work/2014-ta/</link>
<pubDate>Tue, 01 Apr 2014 00:00:00 +0000</pubDate>
<author>[email protected] (Dimitri Bohlender)</author>
<guid>https://bohlender.pro/cv/work/2014-ta/</guid>
<description>Assisted students in &ldquo;Data Structures and Algorithms&rdquo;.</description>
</item>
<item>
<title>Boolean and Modular Abstractions for Programmable Logic Controllers</title>
<link>https://bohlender.pro/cv/publications/2013-dcds/</link>
<pubDate>Wed, 04 Sep 2013 00:00:00 +0000</pubDate>
<author>[email protected] (Dimitri Bohlender)</author>
<guid>https://bohlender.pro/cv/publications/2013-dcds/</guid>
<description></description>
</item>
<item>
<title>HASDEL</title>
<link>https://bohlender.pro/projects/hasdel/</link>
<pubDate>Mon, 01 Apr 2013 00:00:00 +0000</pubDate>
<author>[email protected] (Dimitri Bohlender)</author>
<guid>https://bohlender.pro/projects/hasdel/</guid>
<description>When I was a research assistant at MOVES, I was involved in the HASDEL project. This was an ESA project, aiming to provide RAMS analyses tailored to the specific needs of launcher systems. Since this was a successor of the COMPASS project, the original COMPASS toolset had to be extended.
In COMPASS, the system specification is written in the SLIM language. I was mainly responsible for adapting the SLIM compiler front and middle end, to support the language extensions proposed for HASDEL.</description>
</item>
<item>
<title>Research Assistant</title>
<link>https://bohlender.pro/cv/work/2013-ra/</link>
<pubDate>Mon, 01 Apr 2013 00:00:00 +0000</pubDate>
<author>[email protected] (Dimitri Bohlender)</author>
<guid>https://bohlender.pro/cv/work/2013-ra/</guid>
<description>Worked on the compiler for the SLIM language in the HASDEL research project with the European Space Agency.</description>
</item>
<item>
<title>MSc in Computer Science</title>
<link>https://bohlender.pro/cv/education/2012-msc/</link>
<pubDate>Mon, 01 Oct 2012 00:00:00 +0000</pubDate>
<author>[email protected] (Dimitri Bohlender)</author>
<guid>https://bohlender.pro/cv/education/2012-msc/</guid>
<description>I picked electrical engineering as minor subject and graduated with distinction. My thesis &ldquo;Accelerating Predicate Abstraction for Probabilistic Automata&rdquo; proposes a fully symbolic approach to probabilistic reachability checking for Markov decision processes. The results are implemented in the Storm model checker.</description>
</item>
<item>
<title>Research Assistant</title>
<link>https://bohlender.pro/cv/work/2012-ra/</link>
<pubDate>Sun, 01 Apr 2012 00:00:00 +0000</pubDate>
<author>[email protected] (Dimitri Bohlender)</author>
<guid>https://bohlender.pro/cv/work/2012-ra/</guid>
<description>Developed static analyses and visualisations of signal-flow in Matlab/Simulink in a research project with Daimler AG.</description>
</item>
<item>
<title>Signal-Flow Analysis for MATLAB Simulink</title>
<link>https://bohlender.pro/projects/signal-flow/</link>
<pubDate>Sun, 01 Apr 2012 00:00:00 +0000</pubDate>
<author>[email protected] (Dimitri Bohlender)</author>
<guid>https://bohlender.pro/projects/signal-flow/</guid>
<description>When I was a research assistant at Embedded Software, I was involved in a research project with Daimler AG. With MATLAB Simulink being a popular choice for the development of embedded software in the automotive domain, this project aimed to develop model-based analyses to aid developers of Simulink models.
Tracking a signal&rsquo;s (potential) flow manually, given the highly modular and hierarchical models, is prone to error. To simplify this, I adapted standard dataflow analyses for programs to this domain.</description>
</item>
<item>
<title>Teaching Assistant</title>
<link>https://bohlender.pro/cv/work/2011-ta/</link>
<pubDate>Tue, 04 Oct 2011 00:00:00 +0000</pubDate>
<author>[email protected] (Dimitri Bohlender)</author>
<guid>https://bohlender.pro/cv/work/2011-ta/</guid>
<description>Assisted students in &ldquo;Programming Concepts&rdquo;.</description>
</item>
<item>
<title>Teaching Assistant</title>
<link>https://bohlender.pro/cv/work/2011-ta2/</link>
<pubDate>Fri, 01 Apr 2011 00:00:00 +0000</pubDate>
<author>[email protected] (Dimitri Bohlender)</author>
<guid>https://bohlender.pro/cv/work/2011-ta2/</guid>
<description>Assisted students in &ldquo;Formal Systems, Automata, Processes&rdquo;.</description>
</item>
<item>
<title>Teaching Assistant</title>
<link>https://bohlender.pro/cv/work/2010-ta/</link>
<pubDate>Thu, 01 Apr 2010 00:00:00 +0000</pubDate>
<author>[email protected] (Dimitri Bohlender)</author>
<guid>https://bohlender.pro/cv/work/2010-ta/</guid>
<description>Assisted students in &ldquo;Programming Concepts&rdquo;.</description>
</item>
<item>
<title>BSc in Computer Science</title>
<link>https://bohlender.pro/cv/education/2009-bsc/</link>
<pubDate>Thu, 01 Oct 2009 00:00:00 +0000</pubDate>
<author>[email protected] (Dimitri Bohlender)</author>
<guid>https://bohlender.pro/cv/education/2009-bsc/</guid>
<description>My thesis &ldquo;Modular and Boolean Abstraction of PLC-Programs&rdquo; implements counterexample-guided abstraction refinement of procedures and control flow for PLC software model checking in the Arcade.PLC tool.</description>
</item>
<item>
<title>Compulsory Social Service</title>
<link>https://bohlender.pro/cv/work/other/2008-social/</link>
<pubDate>Fri, 01 Aug 2008 00:00:00 +0000</pubDate>
<author>[email protected] (Dimitri Bohlender)</author>
<guid>https://bohlender.pro/cv/work/other/2008-social/</guid>
<description></description>
</item>
<item>
<title>Certified Youth Leader</title>
<link>https://bohlender.pro/cv/work/other/2005-ymca/</link>
<pubDate>Sat, 01 Jan 2005 00:00:00 +0000</pubDate>
<author>[email protected] (Dimitri Bohlender)</author>
<guid>https://bohlender.pro/cv/work/other/2005-ymca/</guid>
<description>Joint lead of YMCA-based youth work.</description>
</item>
<item>
<title>Abitur</title>
<link>https://bohlender.pro/cv/education/1999-abi/</link>
<pubDate>Wed, 01 Sep 1999 00:00:00 +0000</pubDate>
<author>[email protected] (Dimitri Bohlender)</author>
<guid>https://bohlender.pro/cv/education/1999-abi/</guid>
<description>Being enthusiastic about game programming, and the school not teaching anything related to computers, I brought a voluntary course into being where I taught programming to like-minded.</description>
</item>
</channel>
</rss>