Works https://www.manuelbaerenz.de/talks.xml en Verifying Functional Reactive Programs with Side Effects https://www.manuelbaerenz.de/article/verifying-functional-reactive-programs-side-effects <span>Verifying Functional Reactive Programs with Side Effects</span> <span><span lang="" about="/user/9" typeof="schema:Person" property="schema:name" datatype="">Manuel Bärenz</span></span> <span>Fri, 2017-11-24 - 11:02</span> <div class="field field--name-field-publication-date field--type-datetime field--label-inline"> <div class="field--label">Publication date</div> <div class="field--item"><time datetime="2017-05-29T12:00:00Z">2017-05-29</time> </div> </div> <div class="field field--name-field-collaborators-ref field--type-entity-reference field--label-above"> <div class="field--label">Collaborators</div> <div class="field--items"> <div class="field--item"><a href="/node/21" hreflang="en">Sebastian Seufert</a></div> </div> </div> <div class="field field--name-field-publication-status field--type-list-string field--label-inline"> <div class="field--label">Publication status</div> <div class="field--item">Published</div> </div> <div class="field field--name-field-work-type field--type-list-string field--label-inline"> <div class="field--label">Work type</div> <div class="field--item">Article</div> </div> <div class="field field--name-body field--type-text-with-summary field--label-hidden field--item"><div class="tex2jax_process"><p>We develop an embedded domain specific language inside the dependently typed functional programming language <a href="http://wiki.portal.chalmers.se/agda/pmwiki.php">Agda</a> for specifying and verifying properties of functional reactive programs. For this purpose, we embed the temporal logic <a href="https://en.wikipedia.org/wiki/Computation_tree_logic">CTL</a> (computation tree logic) inside dependent type theory.</p> <p>Our EDSL offers all the standard stream programming primitives, and enriches them with two crucial aspects:</p> <ul><li><strong>Side effects</strong>. An effectful stream is our model of a reactive program. Upon emission of a value, a side effect may be produced as well. The kind of side effects appears in the type signature, which allows reasoning about determinism of programs.</li> <li><strong>Proof terms</strong>. We supply primitives and utilities to verify properties of the program, which may depend on both time and side effects.</li> </ul><p>For example it is possible to verify properties such as:</p> <ul><li><strong>Safety properties</strong>.<strong> </strong>"<em>At every point in time, and under any possible side effect or circumstance, a certain proposition is satisfied."</em></li> <li><strong>Liveness properties</strong>. "<em>It is always possible to create a side effect such that eventually, a certain proposition will come true."</em></li> </ul><p>The diverse properties can be combined into more complex ones, modelling realistic requirements for reactive programs.</p></div></div> <div class="field field--name-field-file field--type-file field--label-inline"> <div class="field--label">File</div> <div class="field--items"> <div class="field--item"><span class="file file--mime-application-pdf file--application-pdf icon-before"><span class="file-icon"><span class="icon glyphicon glyphicon-file text-primary" aria-hidden="true"></span></span><span class="file-link"><a href="https://www.manuelbaerenz.de/sites/default/files/FRPWithSideEffects.pdf" type="application/pdf; length=281642" title="Open file in new window" target="_blank" data-toggle="tooltip" data-placement="bottom">FRPWithSideEffects.pdf</a></span><span class="file-size">275.04 KB</span></span></div> </div> </div> Fri, 24 Nov 2017 10:02:39 +0000 Manuel Bärenz 22 at https://www.manuelbaerenz.de Rhine - FRP with type-level clocks https://www.manuelbaerenz.de/article/rhine-frp-type-level-clocks <span>Rhine - FRP with type-level clocks</span> <span><span lang="" about="/user/9" typeof="schema:Person" property="schema:name" datatype="">Manuel Bärenz</span></span> <span>Sat, 2017-07-15 - 10:05</span> <div class="field field--name-field-subtitle field--type-text field--label-inline"> <div class="field--label">Subtitle</div> <div class="field--item"><div class="tex2jax_process">Let signals and streams flow together at the correct speed</div></div> </div> <div class="field field--name-field-publication-status field--type-list-string field--label-inline"> <div class="field--label">Publication status</div> <div class="field--item">Draft</div> </div> <div class="field field--name-field-work-type field--type-list-string field--label-inline"> <div class="field--label">Work type</div> <div class="field--item">Article</div> </div> <div class="field field--name-body field--type-text-with-summary field--label-hidden field--item"><div class="tex2jax_process"><p>This article presents Rhine, an FRP library written in Haskell. The implementation at <a href="https://github.com/turion/rhine">https://github.com/turion/rhine</a> is usable. The article has been submitted to Haskell Symposium 2018.</p></div></div> <div class="field field--name-field-abstract field--type-text-long field--label-above"> <div class="field--label">Abstract</div> <div class="field--item"><div class="tex2jax_process"><p>Processing data at different rates is generally a hard problem in reactive programming.<br /> Buffering problems, lags, and concurrency issues readily occur.<br /> Many of these problems are <em>clock errors</em>,<br /> where data at different rates is combined incorrectly.<br /> Techniques to avoid clock errors,<br /> such as type level clocks and deterministic scheduling,<br /> exist in the field of synchronous programming,<br /> but are not implemented in general-purpose languages like Haskell.</p> <p>Rhine is a <em>clock-safe</em> library for synchronous and asynchronous Functional Reactive Programming (FRP).<br /> It separates the aspects of clocking, scheduling and resampling from each other,<br /> and ensures clock-safety on the type level.<br /> It offers a general-purpose framework that can be used for game development, media applications, GUIs and embedded systems,<br /> through a flexible API with many reusable components.<br /> Side effects can be reasoned about at the type level,<br /> allowing, e.g., for deterministic scheduling and resampling.<br /> Through the generality of clocks in Rhine,<br /> classical FRP concepts like events and behaviours can be unified.<br /> Concurrent communication is encapsulated safely.<br /> Diverse reactive subsystems can be combined in a coherent, declarative data flow framework,<br /> while the interoperability of the different data rates is guaranteed by type level clocks.</p></div></div> </div> <div class="field field--name-field-file field--type-file field--label-inline"> <div class="field--label">File</div> <div class="field--items"> <div class="field--item"><span class="file file--mime-application-pdf file--application-pdf icon-before"><span class="file-icon"><span class="icon glyphicon glyphicon-file text-primary" aria-hidden="true"></span></span><span class="file-link"><a href="https://www.manuelbaerenz.de/sites/default/files/Rhine_0.pdf" type="application/pdf; length=502052" title="Open file in new window" target="_blank" data-toggle="tooltip" data-placement="bottom">Rhine.pdf</a></span><span class="file-size">490.29 KB</span></span></div> </div> </div> Sat, 15 Jul 2017 08:05:16 +0000 Manuel Bärenz 20 at https://www.manuelbaerenz.de PhD Thesis - Topological state sum models in four dimensions, half-twists and their applications https://www.manuelbaerenz.de/article/phd-thesis-topological-state-sum-models-four-dimensions-half-twists-their-applications <span>PhD Thesis - Topological state sum models in four dimensions, half-twists and their applications</span> <span><span lang="" about="/user/9" typeof="schema:Person" property="schema:name" datatype="">Manuel Bärenz</span></span> <span>Tue, 2017-03-28 - 11:27</span> <div class="field field--name-field-publication-date field--type-datetime field--label-inline"> <div class="field--label">Publication date</div> <div class="field--item"><time datetime="2017-03-28T12:00:00Z">2017-03-28</time> </div> </div> <div class="field field--name-field-subtitle field--type-text field--label-inline"> <div class="field--label">Subtitle</div> <div class="field--item"><div class="tex2jax_process">Thesis submitted to the University of Nottingham for the degree of Doctor of Philosophy</div></div> </div> <div class="field field--name-field-publication-status field--type-list-string field--label-inline"> <div class="field--label">Publication status</div> <div class="field--item">Published</div> </div> <div class="field field--name-field-work-type field--type-list-string field--label-inline"> <div class="field--label">Work type</div> <div class="field--item">Thesis</div> </div> <div class="field field--name-field-abstract field--type-text-long field--label-above"> <div class="field--label">Abstract</div> <div class="field--item"><div class="tex2jax_process"><p>Various mathematical tools are developed with the aim of application in mathematical physics.<br />     <br /> In the first part, a new state sum model for four-manifolds is introduced which generalises the Crane-Yetter model. It is parametrised by a pivotal functor from a spherical fusion category into a ribbon fusion category. The special case of the Crane-Yetter model for an arbitrary ribbon fusion category $\mathcal{C}$ arises when we consider the canonical inclusion $\mathcal{C} \hookrightarrow \mathcal{Z(C)}$ into the Drinfeld centre as the pivotal functor. The model is defined in terms of handle decompositions of manifolds and thus enjoys a succinct and intuitive graphical calculus, through which concrete calculations become very easy. It gives a chain-mail procedure for the Crane-Yetter model even in the case of a nonmodular category.The nonmodular Crane-Yetter model is then shown to be nontrivial: It depends at least on the fundamental group of the manifold. Relations to the Walker-Wang model and recent calculations of ground state degeneracies are established.</p> <p>The second part develops the theory of involutive monoidal categories and half-twists (which are related to braided and balanced structures) further. Several gaps in the literature are closed and some missing infrastructure is developed. The main novel contribution are ``half-ribbon'' categories, which combine duals - represented by rotations in the plane by $\pi$ - with half-twists, which are represented by turns of ribbons by $\pi$ around the vertical axis. Many examples are given, and a general construction of a half-ribbon category is presented, resulting in so-called half-twisted categories.</p></div></div> </div> <div class="field field--name-field-file field--type-file field--label-inline"> <div class="field--label">File</div> <div class="field--items"> <div class="field--item"><span class="file file--mime-application-pdf file--application-pdf icon-before"><span class="file-icon"><span class="icon glyphicon glyphicon-file text-primary" aria-hidden="true"></span></span><span class="file-link"><a href="https://www.manuelbaerenz.de/sites/default/files/Thesis_1.pdf" type="application/pdf; length=960007" title="Open file in new window" target="_blank" data-toggle="tooltip" data-placement="bottom">Thesis.pdf</a></span><span class="file-size">937.51 KB</span></span></div> <div class="field--item"><span class="file file--mime-application-pdf file--application-pdf icon-before"><span class="file-icon"><span class="icon glyphicon glyphicon-file text-primary" aria-hidden="true"></span></span><span class="file-link"><a href="https://www.manuelbaerenz.de/sites/default/files/Thesisgs.pdf" type="application/pdf; length=950398" title="Open file in new window" target="_blank" data-toggle="tooltip" data-placement="bottom">Try this file if the other one cannot be properly printed in Adobe Acrobat</a></span><span class="file-size">928.12 KB</span></span></div> </div> </div> Tue, 28 Mar 2017 09:27:32 +0000 Manuel Bärenz 19 at https://www.manuelbaerenz.de Bachelor's thesis - Cartan Geometry and Spin Networks https://www.manuelbaerenz.de/article/bachelors-thesis-cartan-geometry-spin-networks <span>Bachelor&#039;s thesis - Cartan Geometry and Spin Networks</span> <span><span lang="" about="/user/9" typeof="schema:Person" property="schema:name" datatype="">Manuel Bärenz</span></span> <span>Thu, 2016-12-15 - 19:10</span> <div class="field field--name-field-collaborators-ref field--type-entity-reference field--label-above"> <div class="field--label">Collaborators</div> <div class="field--items"> <div class="field--item"><a href="/node/17" hreflang="en">Derek Wise</a></div> </div> </div> <div class="field field--name-field-publication-status field--type-list-string field--label-inline"> <div class="field--label">Publication status</div> <div class="field--item">Published</div> </div> <div class="field field--name-field-work-type field--type-list-string field--label-inline"> <div class="field--label">Work type</div> <div class="field--item">Article</div> </div> <div class="field field--name-body field--type-text-with-summary field--label-hidden field--item"><div class="tex2jax_process"><p>I went to Erlangen to learn all about Cartan Geometry from Derek Wise. I also learned about spin network quantisation, and we tried to combine the two. Unfortunately we didn't really finish this project. Still, the thesis serves as an introduction to Cartan geometry and some thoughts about quantisation.</p></div></div> <div class="field field--name-field-file field--type-file field--label-inline"> <div class="field--label">File</div> <div class="field--items"> <div class="field--item"><span class="file file--mime-application-pdf file--application-pdf icon-before"><span class="file-icon"><span class="icon glyphicon glyphicon-file text-primary" aria-hidden="true"></span></span><span class="file-link"><a href="https://www.manuelbaerenz.de/sites/default/files/bachelor.pdf" type="application/pdf; length=597861" title="Open file in new window" target="_blank" data-toggle="tooltip" data-placement="bottom">bachelor.pdf</a></span><span class="file-size">583.85 KB</span></span></div> </div> </div> Thu, 15 Dec 2016 18:10:02 +0000 Manuel Bärenz 16 at https://www.manuelbaerenz.de Functional Reactive Programming, Refactored https://www.manuelbaerenz.de/article/functional-reactive-programming-refactored <span>Functional Reactive Programming, Refactored</span> <span><span lang="" about="/user/9" typeof="schema:Person" property="schema:name" datatype="">Manuel Bärenz</span></span> <span>Wed, 2016-07-13 - 21:47</span> <div class="field field--name-field-collaborators-ref field--type-entity-reference field--label-above"> <div class="field--label">Collaborators</div> <div class="field--items"> <div class="field--item"><a href="/node/6" hreflang="en">Ivan Perez Dominguez</a></div> <div class="field--item"><a href="/node/12" hreflang="en">Henrik Nilsson</a></div> </div> </div> <div class="field field--name-field-publication-status field--type-list-string field--label-inline"> <div class="field--label">Publication status</div> <div class="field--item">Published</div> </div> <div class="field field--name-field-work-type field--type-list-string field--label-inline"> <div class="field--label">Work type</div> <div class="field--item">Article</div> </div> <div class="field field--name-field-abstract field--type-text-long field--label-above"> <div class="field--label">Abstract</div> <div class="field--item"><div class="tex2jax_process"><p>Functional Reactive Programming (FRP) has come to mean many things. Yet, scratch the surface of the multitude of realisations, and there is great commonality between them. This paper investigates this commonality, turning it into a mathematically coherent and practical FRP realisation that allows us to express the functionality of many existing FRP systems and beyond by providing a minimal FRP core parametrised on a monad. We give proofs for our theoretical claims and we have verified the practical side by benchmarking a set of existing, non-trivial Yampa applications running on top of our new system with very good results.<br />  </p></div></div> </div> <div class="field field--name-field-publication-link field--type-link field--label-inline"> <div class="field--label">Publication link</div> <div class="field--items"> <div class="field--item"><a href="http://hackage.haskell.org/package/dunai">Hackage source for dunai</a></div> <div class="field--item"><a href="https://github.com/ivanperez-keera/dunai/issues/106">Errata</a></div> </div> </div> <div class="field field--name-field-file field--type-file field--label-inline"> <div class="field--label">File</div> <div class="field--items"> <div class="field--item"><span class="file file--mime-application-pdf file--application-pdf icon-before"><span class="file-icon"><span class="icon glyphicon glyphicon-file text-primary" aria-hidden="true"></span></span><span class="file-link"><a href="https://www.manuelbaerenz.de/sites/default/files/Draft%20-%20FRP%20refactored.pdf" type="application/pdf; length=1525222" title="Open file in new window" target="_blank" data-toggle="tooltip" data-placement="bottom">Draft - FRP refactored.pdf</a></span><span class="file-size">1.45 MB</span></span></div> </div> </div> Wed, 13 Jul 2016 19:47:11 +0000 Manuel Bärenz 11 at https://www.manuelbaerenz.de On half-ribbon categories https://www.manuelbaerenz.de/article/half-ribbon-categories <span>On half-ribbon categories</span> <span><span lang="" about="/user/9" typeof="schema:Person" property="schema:name" datatype="">Manuel Bärenz</span></span> <span>Thu, 2016-04-07 - 10:54</span> <div class="field field--name-field-publication-status field--type-list-string field--label-inline"> <div class="field--label">Publication status</div> <div class="field--item">In Progress</div> </div> <div class="field field--name-field-work-type field--type-list-string field--label-inline"> <div class="field--label">Work type</div> <div class="field--item">Article</div> </div> <div class="field field--name-body field--type-text-with-summary field--label-hidden field--item"><div class="tex2jax_process"><p>There is an excellent <a href="http://mathoverflow.net/questions/28143/180%CB%9A-vs-360%CB%9A-twists-in-string-diagrams-for-ribbon-categories">question on mathoverflow</a> asking whether there is category theory with a half-twist as graphical calculus. It turns out there is. Basically, the half-twist is a square root of the twist in a balanced braided category. The most general treatment I know of is Jeff Egger's article <a href="http://www.tac.mta.ca/tac/volumes/25/14/25-14abs.html">On Involutive Monoidal Categories</a>.</p> <p>There are two important special cases: Quantum groups,  or, more precisely, deformed universal enveloping algebras of simple complex Lie algebras. <a href="http://arxiv.org/abs/0810.0084">Noah Snyder and Peter Tingley have written about this.</a> The other special case are categories in which every object is naturally self-dual, such as real inner product vector spaces (Hilbert spaces don't work!). <a href="http://www.mscs.dal.ca/~selinger/papers/#halftwist">Peter Selinger has a preprint about it.</a></p> <p>The deepest insight about half-twists for me was that it gives raise to a braiding. You may know that the twist of the tensor product of two objects is the twist of the two individual objects and the square of the braiding:</p> <p>$$\theta_{X \otimes Y} = c_{Y,X}c_{X,Y}(\theta_X \otimes \theta Y)$$</p> <p>Now the twist has a square root, $\theta_X = \varsigma_X^2$. Luckily, the identity above also has a square root!</p> <p>$$\varsigma_{X \otimes Y} = c_{X,Y}(\varsigma_X \otimes \varsigma_Y)$$</p> <p>This means that the half-twist $\varsigma_X$ contains at least the information about the braiding and the twist!</p> <p>So far the known material. There are a lot of gaps, which I'm attempting to close. More specifically, the following seems to be missing from the literature:</p> <ul><li>The relation between the different works on half-twists.</li> <li>What happens in full generality when we have ribbon structures and not just balanced structures? How do half-twists behave in the presence of dualities?</li> <li>What happens if the category has a dagger structure? For example in categories of modules of Hopf algebras, what if the Hopf algebra is actually a *-algebra? See also <a href="http://mathoverflow.net/questions/216256/whats-the-relation-between-half-twists-and-star-structures-on-hopf-algebras">my question on mathoverflow</a>.</li> <li>How can Noah Snyder and Peter Tingley's work be generalised to arbitrary Hopf algebras (not necessarily $U_q\mathfrak{g}$)?</li> </ul><p>And a lot of new things have come up in the process. A few of them are:</p> <ul><li>Something similar to the <a href="http://ncatlab.org/nlab/show/Drinfeld+center">Drinfel'd centre</a> of a monoidal category. The Drinfel'd centre of a monoidal category $\mathcal{C}$ in a sense puts all possible braidings on it. The result is a braided category with lots of nice properties (e.g. when $\mathcal{C}$ is spherical fusion, then the Drinfel'd centre is modular). It seems there is a way of putting all possible half-twists on an involutive monoidal category.</li> <li>Given a category with a twist and an involutive structure, it is possible create a new category that contains all half-twists that square to the given twist.</li> <li>There is some extra structure which which it is possible to do unoriented ribbon graphs like the Möbius band.</li> <li>When considering fusion categories, there are interesting relations between involutive structures and Frobenius-Schur indicators.</li> <li>All known modular categories of rank &lt; 5 seem to admit very naturalhalf-twists.</li> </ul><p>Half-twists are very fruitful, and they have spawned two further ongoing pieces of work for me:</p> <ul><li>Noncommutative geometry seems to be related to half-twists (this originates from an idea by John Barrett).</li> <li>There is a common generalisation of involutive monoidal categories and dagger categories.</li> </ul><p>There are some open questions that I'm still wondering about:</p> <ul><li>The braiding is obviously a higher-categorical structure. Are half-twists higher structures as well?</li> <li>Given an involutive structure, there may be zero, one or many half-twists for it. Given a half-twist, there is exactly one involutive structure. More generally, if you take a natural isomorphism from the identity functor to another functor, then the other functor is completey fixed. Is there something deeper to this observation?</li> <li>How to classify the inequivalent involutive structures on a given fusion category?</li> </ul></div></div> Thu, 07 Apr 2016 08:54:04 +0000 Manuel Bärenz 8 at https://www.manuelbaerenz.de Noncommutative geometry internal to involutive monoidal dagger categories https://www.manuelbaerenz.de/article/noncommutative-geometry-internal-to-involutive-monoidal-dagger-categories <span>Noncommutative geometry internal to involutive monoidal dagger categories</span> <span><span lang="" about="/user/9" typeof="schema:Person" property="schema:name" datatype="">Manuel Bärenz</span></span> <span>Thu, 2015-12-31 - 14:09</span> <div class="field field--name-field-publication-status field--type-list-string field--label-inline"> <div class="field--label">Publication status</div> <div class="field--item">In Progress</div> </div> <div class="field field--name-field-work-type field--type-list-string field--label-inline"> <div class="field--label">Work type</div> <div class="field--item">Article</div> </div> <div class="field field--name-body field--type-text-with-summary field--label-hidden field--item"><div class="tex2jax_process"><p>The notion of finite dimensional spectral triples internal to an involutive monoidal dagger category is defined. It makes the definition of a noncommutative geometry with symmetry quantum group possible. Surprising relations to two-dimensional extended TQFTs with line defects are uncovered.</p></div></div> Thu, 31 Dec 2015 13:09:31 +0000 Manuel Bärenz 4 at https://www.manuelbaerenz.de Dichromatic state sum models for four-manifolds from pivotal functors https://www.manuelbaerenz.de/article/dichromatic-state-sum-models-for-four-manifolds-from-pivotal-functors <span>Dichromatic state sum models for four-manifolds from pivotal functors</span> <span><span lang="" about="/user/9" typeof="schema:Person" property="schema:name" datatype="">Manuel Bärenz</span></span> <span>Thu, 2015-12-31 - 13:43</span> <div class="field field--name-field-collaborators field--type-link field--label-hidden field--items"> <div class="field--item"><a href="http://johnwbarrett.wordpress.com/">John Barrett</a></div> </div> <div class="field field--name-field-collaborators-ref field--type-entity-reference field--label-above"> <div class="field--label">Collaborators</div> <div class="field--items"> <div class="field--item"><a href="/node/5" hreflang="en">John Barrett</a></div> </div> </div> <div class="field field--name-field-publication-status field--type-list-string field--label-inline"> <div class="field--label">Publication status</div> <div class="field--item">Published</div> </div> <div class="field field--name-field-work-type field--type-list-string field--label-inline"> <div class="field--label">Work type</div> <div class="field--item">Article</div> </div> <div class="field field--name-body field--type-text-with-summary field--label-hidden field--item"><div class="tex2jax_process"><p>We develop a generalisation of the Crane-Yetter model, a topological state sum model of 4-manifolds. The new framework is used to show that the Crane-Yetter model for nonmodular ribbon fusion categories is stronger than signature and Euler characteristic.</p></div></div> <div class="field field--name-field-publication-link field--type-link field--label-inline"> <div class="field--label">Publication link</div> <div class="field--items"> <div class="field--item"><a href="http://arxiv.org/abs/1601.03580">ArXiv</a></div> <div class="field--item"><a href="http://em.rdcu.be/wf/click?upn=KP7O1RED-2BlD0F9LDqGVeSEkaAT6iK7kbA5pgzjKGG8s-3D_ntI5bOsxTIl-2BF2iIQvOpidNG40ntZ8A4ViKPMLhXFXAupBSN5IjQOsdmde-2B-2F1hhfCs-2BEcJp7nsHOrksX1RqI-2FQjXVswLo8R4CpYJf31281jWdFcnK76gvI02M1hu2RDt6qSL40XeBoR-2FgEz7p-2FBn9hOGzNSQDbKfmF3DOW-2FD4XrIFCWGoZP49WlC2jyBqxaZi3raXXySKJgX4WgJl4T0FmV3ndhydGMBjcMrKQx6WEM-2BQY-2BugYCNU2wAjnne7lJwZ-2FW-2B7URKMAZXVJApjfSHMg-3D-3D">Published Open-Access PDF at Springer</a></div> <div class="field--item"><a href="https://doi.org/10.1007/s00220-017-3012-9">DOI</a></div> </div> </div> <div class="field field--name-field-file field--type-file field--label-inline"> <div class="field--label">File</div> <div class="field--items"> <div class="field--item"><span class="file file--mime-application-pdf file--application-pdf icon-before"><span class="file-icon"><span class="icon glyphicon glyphicon-file text-primary" aria-hidden="true"></span></span><span class="file-link"><a href="https://www.manuelbaerenz.de/sites/default/files/dichromatic-ssm.pdf" type="application/pdf; length=693853" title="Open file in new window" target="_blank" data-toggle="tooltip" data-placement="bottom">dichromatic-ssm.pdf</a></span><span class="file-size">677.59 KB</span></span></div> </div> </div> Thu, 31 Dec 2015 12:43:54 +0000 Manuel Bärenz 3 at https://www.manuelbaerenz.de