IXEYLXPBJY7FM7KNJGQ2LQOI2CHRUXOMCL6Y2WLSUBJ6BWWTHWRAC
X6WLKC2Y5PDS7SYRNPTXTUYVU4V3I5ZZ2KS4IZSMMXCI6GSQE77QC
5MHYFQWH3WWCAARBKU5OEMKNW2F5EMA2FJ5HS7PDDGEFH2HWKEPQC
JCK77YLTPL6VV5ZOTMGUJSFZ5DNMS3MZGP5UQLXYW6WSMEK6GAQAC
567NUQ633R5ESTE2LWXVUGM7XEZGJ65IRKPOCDZJS3JE5RAMR5KAC
Q3TJZVCBWD7FDMS4MWTT7VUNOI3R3MQCOU6JJCJ5UVIDJPXKMLWAC
KDY46C5VOI2QWEXPE6J6BW3U2KEMH3IYPUNYKH5FAISTRCWBWO3AC
YUEGUKXBV6IKGZPTBXJXW2ANYGYSRJILQFLYCYQUYD54LJVZS4CQC
TKJMPTB73W5TLLTNUOC4FGRQ7DHE5GRBTL7C5QBXRCNQPMJKGEQAC
USNRNHANGXUQHFFVHLAVWWA7WGPX2RZOYFQAV44HU5AYEW5YC27QC
A5NVU6DZYOG6GRXJU6DZLCUQTKA7LPUWOGQ4NCJSY6FJB6GSP3OAC
7JUQQYQCE7G3ESFJETNGEPBCYGR5NGMAWHFPWI24RSQJPFM5YCTQC
DDNESFMD4LGNTDGTCW27FQPCOR5Y5MJWN2TWCSIRNBK6QGBITBRQC
6PTHERE26NXSC3ZXSI5UYKWTMPYZD4WMYFBJKZE3MRRTKC7MIU6QC
QIVGMR6INKBVT5IFCO2UJJQEO4PVW3ZM7IDTCTCOKOX7VKG7UPFAC
EIPHTX56WTRFBMBNA4VYMKK4L7GWHA4Q2AQ3BCG2ZGZB3DBRENBQC
GNUONJQNZG2MNEE55RW3XOQP3UICEBOKLVLKV42H3K64IBGLUGIQC
RVA3DOCNBWFBWA2MLC2TVQOEY25AUCYGEJSWMD72QRQ26AFLVZUAC
KUEZAMEH2M3K6EDHWMYXQMHZ2QTTH4KBM5CO7A7EB64ABEWRE6WQC
R2A2OD7J5ATBRR7W4QPTZDVH6GGHQ7XBX2JE5R3GKVS5WIQ43O3AC
YS5O2UANXCWRI3W7KMRKKK7OT7R6V3QDL4JS4DRLXM2EZUIPFALAC
NEWG2Q2EYR3BOPWVN44EXIPVH2GH23BYFHJXUSNYWWT7WWDEAIKQC
MQJMCLGFSBSFJ3JPCIHQSBZS4XZPGJI7NGGRASX5UVGJO6HES25AC
5GR6GP7ONTMALU3XHWDTWWIDIW2CGYOUOU6M3H7WMV56KCBI25AAC
@InProceedings{lommen2022twn,
author = {Nils Lommen and Fabian Meyer and J{\"{u}}rgen Giesl},
booktitle = {Automated Reasoning - 11th International Joint Conference, {IJCAR} 2022, Haifa, Israel, August 8-10, 2022, Proceedings},
title = {Automatic Complexity Analysis of Integer Programs via Triangular Weakly Non-Linear Loops},
year = {2022},
editor = {Jasmin Blanchette and Laura Kov{\'{a}}cs and Dirk Pattinson},
pages = {734--754},
publisher = {Springer},
series = {Lecture Notes in Computer Science},
volume = {13385},
bibsource = {dblp computer science bibliography, https://dblp.org},
biburl = {https://dblp.org/rec/conf/cade/LommenMG22.bib},
doi = {10.1007/978-3-031-10769-6_43},
timestamp = {Mon, 24 Oct 2022 16:36:35 +0200},
url = {https://doi.org/10.1007/978-3-031-10769-6_43},
}
Let $\GT_{G^*_{\Prog,\alpha}}$ be the set of general transitions in the partial
evaluation graph $G^*_{\Prog,\alpha}$ where every general transition $g \in
\GT_{G^*_{\Prog,\alpha}}$ was added by the unfolding of a unique general
transition $g' \in \GT_Prog$. We call $\bar{g} = g'$, similar to Lemma
Let $\GT_{G^*_{\Prog,S,T}}$ be the set of general transitions in the partial
evaluation graph $G^*_{\Prog,S,T}$ where every general transition $g \in
\GT_{G^*_{\Prog,S,T}}$ was added by the unfolding of a unique general
transition $g' \in \GTP$. We call $\bar{g} = g'$, similar to Lemma
\unfold_{\Prog,S}(\langle \ell, \varphi\rangle, t), s) & t
= (\ell, \_,\_, \_,\_) \in T \\
\varf'(\langle \ell, \varphi\rangle,
(\langle\ell,\varphi\rangle,p,\tau,\eta,\langle\ell',
\texttt{true}), s) & t = (\ell,p,\tau,\eta,\ell') \not\in T
\end{cases} \\
\unfold_{\Prog,S}(\langle \ell, \varphi\rangle, t), s)\\
\ESs(\Rt_{\Prog}) &= \sum_{i=1}^\infty i \cdot \PrSs(\Rt_\Prog=i)
= \sum_{i=1}^\infty \PrSs(\Rt_\Prog \leq i)
= \sum_{\substack{f \in \fpath_\Prog\\ \Rt_\Prog(f) \leq
i}}^\infty \prSs(\varf) \\
\ESs(\Rt_{\Prog}) &= \sum_{i=1}^\infty i \cdot \PrSs(\Rt_\Prog=i) =
\sum_{i=1}^\infty \PrSs(\Rt_\Prog \geq i) \\ &= \sum_{i=1}^\infty
\sum_{\substack{f \in \fpath_\Prog\\ |\varf| \leq i \\ \Rt_\Prog(f)
\leq i}} 1-\prSs(\varf) \\
\sum_{\substack{f \in \fpath_\Prog\\ \Rt_\Prog(f) \leq i}}^\infty
\prSs(f) &\leq \sum_{\substack{f \in \fpath_{\Prog'}\\ \Rt_\Prog(f)
\leq i}}^\infty \prSns(f) \label{eq:sumsleq} \\
\sum_{i=1}^\infty\sum_{\substack{f \in \fpath_\Prog\\ |\varf| \leq
i\\ \Rt_\Prog(\varf) \leq i}}^\infty 1- \prSs(\varf) &\leq
\sum_{i=1}^\infty\sum_{\substack{f \in
\fpath_{\Prog'}\\ |\varf| \leq i\\ \Rt_\Prog(\varf)
\leq i}}^\infty 1- \prSns(\varf) \label{eq:sumsleq} \\
Let $\varphi \in \Phi$ be an \gls{fo}-formula. $\llbracket \varphi
\rrbracket$ is defined as the set of all satisfying assignments of the
formula $\varphi$.
Let $\varphi = \psi_1, \dots, \psi_n$ be an conjunction of constraints
$\psi_1, \dots,\psi_n \in \C$. $\llbracket \varphi \rrbracket$ is defined as
the set of all satisfying assignments of the formula $\varphi$.
\begin{definition}[Convex Polyhedra\cite{bagnara2005convexpolyhedron}\label{def:polyhedra}]
$\mathcal{H} \subseteq \N^n$ is a \emph{convex polyhedron} if and only if it
can be expressed by an intersection of a finite number of affine
half-spaces.
\begin{definition}[Convex Polyhedra \cite{bagnara2005convexpolyhedron}\label{def:polyhedra}]
$H \subseteq \N^n$ is a \emph{convex polyhedron} if and only if it can be
expressed by an intersection of a finite number of affine half-spaces. Let
$\mathcal{H}$ be the set of all convex polyhedra.
polyhedron $\mathcal{H}$ one can find a box $\mathcal{B}$ that contains the
polyhedron $\mathcal{H}$. Boxes are computationally very efficient, although
rather imprecise for most applications.
polyhedron $H \in \mathcal{H}$ one can find a box $B$ that contains the
polyhedron $H$. Boxes are computationally very efficient, although rather
imprecise for most applications.
However, classical analysis using only \gls{mprf} fails to find a finite
runtime-complexity bound for this program \cite{giesl2022lncs}. With the help of
However, classical analysis using only \gls{mprf}\cite{benamram2017} runtime
complexity bound for this program \cite{giesl2022lncs}. With the help of
\citeauthor{Domenech19} \cite{Domenech19} and it is called \gls{cfr}
via partial evaluation. It was implemented in their analysis tool
iRankfinder \cite{irankfinder2018wst}. It achieves very similar results to
\gls{mprf} when used on entire programs or whole \glspl{scc}. Its real
strength comes from applying it to a sub-\gls{scc} level and refining
specifically the loops where \glspl{mprf} fail to find size bounds. This technique
was presented by \citeauthor{giesl2022lncs} \cite{giesl2022lncs}
and implemented in \gls{koat} \cite{giesl2014ijcar} the complexity analysis tool
developed by \citeauthor{giesl2014ijcar} at RWTH University.
\citeauthor{Domenech19} \cite{Domenech19} and it is called \gls{cfr} via partial
evaluation. It was implemented in their analysis tool iRankfinder
\cite{irankfinder2018wst}. It achieves very similar results to \gls{mprf} when
used on entire programs or whole \glspl{scc}. Its real strength comes from
applying it to a sub-\gls{scc} level and refining specifically the loops where
\glspl{mprf} fail to find bounds. This technique was presented by
\citeauthor{giesl2022lncs} \cite{giesl2022lncs} and it is implemented in
\gls{koat} \cite{giesl2014ijcar} the complexity analysis tool developed by
\citeauthor{giesl2014ijcar} at RWTH University.
Underneath, \gls{koat} uses iRankFinder for the \gls{cfr}.
Recently, \gls{koat} was extended to probabilistic integer
programs \cite{meyer2021tacas}. For probabilistic programs, \gls{koat} uses
probabilistic ranking functions, that work similarly to \gls{mprf}, but take
probability into accound. They fail for the same reasons as \gls{mprf} for
certain kinds of loops. Unfortunately, by using iRankFinder which is limited to
non-probabilistic integer programs, the technique of \gls{cfr} via partial
evaluation remained out of reach for probabilistic programs.
Underneath, \gls{koat} uses iRankFinder for the \gls{cfr}. Recently, \gls{koat}
was extended to probabilistic integer programs \cite{meyer2021tacas}. For
probabilistic programs, \gls{koat} uses probabilistic ranking functions, that
work similarly to linear ranking functions, but take probability into account.
They fail for the same reasons as \gls{mprf} for certain kinds of loops.
Unfortunately, by using iRankFinder which is limited to non-probabilistic
integer programs, the technique of \gls{cfr} via partial evaluation remained out
of reach for probabilistic programs.
\gls{mprf} or a \gls{twn}, and then puts the subprograms together in order to
generate upper runtime-complexity and size bounds for the whole program.
Optionally to improve the analysis, \gls{koat} can resort to partial evaluation
as a control-flow refinement technique on a sub-\gls{scc} level
\cite{giesl2022lncs}. \gls{aprove} is the overall tool, and it has taken part in
competitions. It works on various input formats and transforms them accordingly
so that they can be used with specialised tools such as \gls{koat} and
\gls{loat}.
\gls{mprf}\cite{benamram2017} or a \gls{twn}\cite{lommen2022twn}, and then puts the subprograms
together in order to generate upper runtime complexity and size bounds for the
whole program. Optionally to improve the analysis, \gls{koat} can resort to
partial evaluation as a control-flow refinement technique on a sub-\gls{scc}
level \cite{giesl2022lncs}. \gls{aprove} is the overall tool, and it has taken
part in competitions. It works on various input formats and transforms them
accordingly so that they can be used with specialised tools such as \gls{koat}
and \gls{loat}.