\author{Simon Foster, Christian Pardillo-Laursen, and Frank Zeyda \\[.5ex] University of York, UK \\[2ex] \texttt{\small $\{$simon.foster,christian.laursen,frank.zeyda$\}$@york.ac.uk}}
\maketitle
\begin{abstract}
Lenses provide an abstract interface for manipulating data types through spatially-separated views. They are defined
abstractly in terms of two functions, $\lget$, the return a value from the source type, and $\lput$ that updates
the value. We mechanise the underlying theory of lenses, in terms of an algebraic hierarchy of lenses, including
well-behaved and very well-behaved lenses, each lens class being characterised by a set of lens laws. We also mechanise
a lens algebra in Isabelle that enables their composition and comparison, so as to allow construction of complex lenses.
This is accompanied by a large library of algebraic laws. Moreover we also show how the lens classes can be applied by
instantiating them with a number of Isabelle data types. This theory development is based on our recent
papers~\cite{Foster16a,Foster2020-IsabelleUTP}, which show how lenses can be used to unify heterogeneous representations
of state-spaces in formalised programs. \end{abstract}
\tableofcontents
% sane default for proof documents \parindent0pt\parskip0.5ex
% generated text of all theories \input{session}
\vspace{4ex}
% Acknowledgments \noindent\textbf{Acknowledgements}. This work is partly supported by EU H2020 project \emph{INTO-CPS}, grant agreement 644047. \url{http://into-cps.au.dk/}. We would also like to thank Prof. Burkhart Wolff and Dr. Achim Brucker
for their generous and helpful comments on our work, and particurlarly their invaluable advice on Isabelle
mechanisation and ML coding.
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.