Certification of Nontermination Proofs
using Strategies and Nonlooping Derivations

General

This site provides supporting material for the paper Certification of Nontermination Proofs using Strategies and Nonlooping Derivations by Julian Nagele, René Thiemann, and Sarah Winkler.

In the paper we present an Isabelle/HOL formalization of an extended repertoire of nontermination techniques. First, we formalized techniques for nonlooping TRSs. Second, the available strategies include (an extended version of) forbidden patterns, which does in particular cover outermost and context-sensitive rewriting. Finally, a mechanism to support partial nontermination proofs allows to further extend the applicability of the proof checker CeTA.

Formalization

All relevant theories are available within the IsaFoR directory of the sources of IsaFoR/CeTA v2.14.1. A compilation of the Isabelle sources requires Isabelle 2013-2 and the corresponding archive of formal proofs (version afp-2014-02-19 or later). There are also binaries for CeTA available.

To inspect the theories like Forbidden_Patterns.thy, one has to add the following line into ~/.isabelle/Isabelle2013-2/etc/settings:

init_component "/the/path/to/afp-2014-02-19"
Afterwards one can navigate into the IsaFoR directory and invoke
/the/path/to/Isabelle2013-2/bin/isabelle jedit -d . -l QTRS Forbidden_Patterns.thy
For further compilation instructions, we refer to the README-file within the IsaFoR-sources.


Experiments

Examples
Here are some examples from the paper, plus their certified nontermination proofs. All of the following proofs are provided in the certification problem format (CPF). For all examples we provide automatically generated proofs, but in cases where these proofs are overly complex we additionally provide small hand written proofs which correspond more to the proofs which are described in the paper.
TRS hand written proof automatic proof description
NO The TRS for map, i.e., Example 1 with the strategy as described in Example 3.
NO NO The TRS R of Example 13, where R' contains rules for the Ackermann function.
NO NO The TRS R of Example 13, where R' contains rules to compute square roots. Proving nontermination of R' is as hard as showing that sqrt(2) is irrational.
NO NO The TRS R of Example 16, with R' for Ackermann as in run_again1.
NO NO The TRS R of Example 16, with R' for square roots as in run_again2.
NO The TRS R of Example 17 for innermost rewriting.

Partial Proofs
The following 12 proofs by AProVE are partially certifiable by CeTA, i.e., they use proof techniques which are not covered by CeTA (such as reasoning modulo AC), but CeTA can certify all proof steps applying supported techniques. Note that for these proofs one has to invoke CeTA with the --allow-assumptions option.
AProVE
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO

Nonterminating TRSs in TPDB
For the following experiments we ran two configurations of AProVE as well as TTT2 on all 596 first-order TRSs in TPDB 8.0.7 where at least one of the termination tools could find a nontermination proof in the full run of termination tools in December 2013. AProVE '13 and TTT2 '13 are the versions of AProVE and TTT2 which participated in the certified category of the termination competition in 2013, AProVE '14 and TTT2 '14 are the current versions. The proofs of AProVE '13 and TTT2 '13 have been extracted from the full run, the proofs of AProVE '14 and TTT2 '14 have been generated on a standard PC with the same timeout of 60 seconds as in the full run.

AProVE '13 AProVE '14 TTT2 '13 TTT2 '14
MAYBE NO NO NO
MAYBE NO MAYBE MAYBE
NO NO NO NO
MAYBE NO MAYBE MAYBE
MAYBE NO MAYBE MAYBE
NO NO MAYBE MAYBE
MAYBE NO MAYBE MAYBE
MAYBE NO MAYBE MAYBE
MAYBE NO MAYBE MAYBE
MAYBE NO MAYBE MAYBE
NO NO NO NO
NO NO MAYBE MAYBE
NO NO NO NO
NO NO NO NO
NO NO NO NO
NO NO NO NO
NO NO NO NO
NO NO NO NO
NO NO NO NO
NO NO NO NO
NO NO NO NO
NO NO NO NO
NO NO NO NO
MAYBE NO MAYBE MAYBE
NO NO MAYBE MAYBE
MAYBE NO MAYBE MAYBE
MAYBE NO MAYBE MAYBE
MAYBE NO MAYBE MAYBE
MAYBE NO MAYBE MAYBE
MAYBE NO MAYBE MAYBE
MAYBE NO MAYBE MAYBE
MAYBE NO MAYBE MAYBE
MAYBE NO MAYBE MAYBE
MAYBE NO MAYBE MAYBE
MAYBE NO MAYBE MAYBE
MAYBE NO MAYBE MAYBE
MAYBE NO MAYBE MAYBE
MAYBE NO MAYBE MAYBE
MAYBE NO MAYBE MAYBE
MAYBE NO MAYBE MAYBE
NO NO MAYBE MAYBE
MAYBE NO MAYBE MAYBE
MAYBE NO MAYBE MAYBE
MAYBE NO MAYBE MAYBE
MAYBE NO MAYBE MAYBE
MAYBE NO MAYBE MAYBE
MAYBE NO MAYBE MAYBE
MAYBE NO MAYBE MAYBE
MAYBE NO MAYBE MAYBE
NO NO MAYBE MAYBE
NO NO MAYBE MAYBE
NO NO MAYBE MAYBE
NO NO MAYBE MAYBE
NO NO MAYBE MAYBE
MAYBE NO MAYBE MAYBE
MAYBE NO MAYBE MAYBE
MAYBE NO MAYBE MAYBE
NO NO MAYBE MAYBE
MAYBE NO MAYBE MAYBE
MAYBE NO MAYBE MAYBE
MAYBE NO MAYBE MAYBE
MAYBE NO MAYBE MAYBE
MAYBE NO MAYBE MAYBE
MAYBE NO MAYBE MAYBE
MAYBE NO MAYBE MAYBE
NO NO NO NO
NO NO NO NO
NO NO NO NO
NO NO NO NO
NO NO NO NO
NO NO NO NO
NO NO NO NO
MAYBE NO MAYBE NO
MAYBE NO MAYBE NO
MAYBE NO MAYBE NO
MAYBE NO MAYBE NO
MAYBE NO MAYBE MAYBE
MAYBE NO MAYBE MAYBE
MAYBE NO MAYBE MAYBE
MAYBE MAYBE MAYBE MAYBE
MAYBE NO MAYBE MAYBE
MAYBE NO MAYBE MAYBE
MAYBE NO MAYBE MAYBE
NO NO MAYBE MAYBE
MAYBE NO MAYBE MAYBE
MAYBE NO MAYBE MAYBE
NO NO MAYBE MAYBE
NO NO NO NO
NO NO NO NO
NO NO MAYBE NO
NO NO MAYBE NO
MAYBE NO MAYBE NO
MAYBE NO NO NO
NO NO MAYBE MAYBE
NO NO NO NO
NO NO MAYBE MAYBE
NO NO MAYBE MAYBE
NO NO NO NO
NO NO NO NO
NO NO MAYBE NO
NO NO NO NO
NO NO NO NO
NO NO NO NO
NO NO NO NO
NO NO NO NO
NO NO NO NO
NO NO NO NO
NO NO MAYBE NO
NO NO NO NO
NO NO NO NO
MAYBE MAYBE MAYBE MAYBE
MAYBE MAYBE MAYBE MAYBE
NO NO MAYBE MAYBE
NO NO MAYBE MAYBE
NO MAYBE MAYBE MAYBE
NO NO MAYBE MAYBE
NO MAYBE MAYBE MAYBE
NO NO MAYBE MAYBE
NO NO MAYBE MAYBE
MAYBE NO MAYBE NO
MAYBE NO MAYBE NO
MAYBE NO MAYBE NO
MAYBE NO MAYBE NO
MAYBE NO MAYBE NO
MAYBE NO MAYBE NO
MAYBE NO MAYBE NO
MAYBE NO MAYBE NO
MAYBE NO MAYBE NO
MAYBE NO MAYBE NO
MAYBE NO MAYBE NO
MAYBE NO MAYBE NO
MAYBE NO MAYBE NO
MAYBE NO MAYBE NO
MAYBE NO MAYBE NO
MAYBE MAYBE MAYBE NO
MAYBE NO MAYBE NO
MAYBE NO MAYBE NO
MAYBE NO MAYBE NO
MAYBE NO MAYBE NO
MAYBE NO MAYBE NO
MAYBE NO MAYBE NO
MAYBE NO MAYBE NO
MAYBE NO MAYBE NO
MAYBE NO MAYBE NO
MAYBE NO MAYBE NO
MAYBE NO MAYBE NO
MAYBE NO MAYBE NO
MAYBE NO MAYBE NO
MAYBE NO MAYBE NO
MAYBE NO MAYBE NO
MAYBE NO MAYBE NO
MAYBE NO MAYBE NO
MAYBE NO MAYBE NO
MAYBE NO MAYBE NO
MAYBE NO MAYBE NO
MAYBE NO MAYBE NO
MAYBE NO MAYBE NO
MAYBE NO MAYBE NO
MAYBE NO MAYBE NO
MAYBE NO MAYBE NO
MAYBE NO MAYBE NO
MAYBE NO MAYBE NO
MAYBE NO MAYBE NO
MAYBE NO MAYBE NO
MAYBE NO MAYBE NO
MAYBE NO MAYBE NO
MAYBE NO MAYBE NO
MAYBE NO MAYBE NO
MAYBE NO MAYBE NO
MAYBE NO MAYBE NO
MAYBE NO MAYBE NO
MAYBE NO MAYBE NO
MAYBE NO MAYBE NO
MAYBE NO MAYBE NO
MAYBE NO MAYBE NO
MAYBE NO MAYBE NO
MAYBE NO MAYBE NO
MAYBE NO MAYBE NO
MAYBE NO MAYBE NO
MAYBE NO MAYBE NO
MAYBE NO MAYBE NO
MAYBE NO MAYBE NO
MAYBE NO MAYBE NO
MAYBE NO MAYBE NO
MAYBE NO MAYBE NO
MAYBE NO MAYBE NO
MAYBE NO MAYBE NO
MAYBE NO MAYBE NO
MAYBE NO MAYBE NO
MAYBE NO MAYBE NO
MAYBE NO MAYBE NO
MAYBE NO MAYBE NO
MAYBE NO MAYBE NO
MAYBE NO MAYBE NO
MAYBE NO MAYBE NO
MAYBE NO MAYBE NO
MAYBE NO MAYBE NO
MAYBE NO MAYBE NO
MAYBE NO MAYBE NO
MAYBE NO MAYBE NO
MAYBE NO MAYBE NO
MAYBE NO MAYBE NO
MAYBE NO MAYBE NO
MAYBE NO MAYBE NO
MAYBE NO MAYBE NO
MAYBE NO MAYBE NO
MAYBE NO MAYBE NO
MAYBE NO MAYBE NO
MAYBE NO MAYBE NO
MAYBE NO MAYBE NO
MAYBE NO MAYBE NO
MAYBE NO MAYBE NO
MAYBE NO MAYBE NO
MAYBE NO MAYBE NO
MAYBE NO MAYBE NO
MAYBE NO MAYBE NO
MAYBE NO MAYBE NO
MAYBE NO MAYBE NO
MAYBE NO MAYBE NO
MAYBE NO MAYBE NO
MAYBE NO MAYBE NO
MAYBE NO MAYBE NO
MAYBE NO MAYBE NO
MAYBE NO MAYBE NO
MAYBE NO MAYBE NO
MAYBE NO MAYBE NO
MAYBE NO MAYBE NO
MAYBE NO MAYBE NO
MAYBE NO MAYBE NO
MAYBE NO MAYBE NO
MAYBE NO MAYBE NO
MAYBE NO MAYBE NO
MAYBE NO MAYBE NO
MAYBE NO MAYBE NO
MAYBE NO MAYBE NO
MAYBE NO MAYBE NO
MAYBE NO MAYBE NO
MAYBE NO MAYBE NO
MAYBE NO MAYBE NO
MAYBE NO MAYBE NO
MAYBE NO MAYBE NO
MAYBE NO MAYBE NO
MAYBE NO MAYBE NO
MAYBE NO MAYBE NO
MAYBE NO MAYBE NO
MAYBE NO MAYBE NO
MAYBE NO MAYBE NO
MAYBE NO MAYBE NO
MAYBE NO MAYBE NO
MAYBE NO MAYBE NO
MAYBE NO MAYBE NO
MAYBE NO MAYBE NO
MAYBE NO MAYBE NO
MAYBE NO MAYBE NO
MAYBE NO MAYBE NO
MAYBE NO MAYBE NO
MAYBE NO MAYBE NO
MAYBE NO MAYBE NO
MAYBE NO MAYBE NO
MAYBE NO MAYBE NO
MAYBE NO MAYBE NO
MAYBE NO MAYBE NO
MAYBE NO MAYBE NO
MAYBE NO MAYBE NO
MAYBE NO MAYBE NO
MAYBE NO MAYBE NO
MAYBE NO MAYBE NO
MAYBE NO MAYBE NO
MAYBE NO MAYBE NO
MAYBE NO MAYBE NO
MAYBE NO MAYBE NO
MAYBE NO MAYBE NO
MAYBE NO MAYBE NO
MAYBE NO MAYBE NO
MAYBE NO MAYBE NO
MAYBE NO MAYBE NO
MAYBE NO MAYBE NO
MAYBE NO MAYBE NO
MAYBE NO MAYBE NO
MAYBE NO MAYBE NO
MAYBE NO MAYBE NO
MAYBE NO MAYBE NO
MAYBE NO MAYBE NO
MAYBE NO MAYBE NO
MAYBE NO MAYBE NO
MAYBE NO MAYBE NO
MAYBE NO MAYBE NO
MAYBE NO MAYBE NO
MAYBE NO MAYBE NO
MAYBE NO MAYBE NO
MAYBE NO MAYBE NO
MAYBE NO MAYBE NO
MAYBE NO MAYBE NO
MAYBE NO MAYBE NO
MAYBE NO MAYBE NO
MAYBE NO MAYBE NO
MAYBE NO MAYBE NO
MAYBE NO MAYBE NO
MAYBE NO MAYBE NO
MAYBE NO MAYBE NO
MAYBE NO MAYBE NO
NO NO NO NO
NO NO MAYBE MAYBE
NO NO NO NO
NO NO NO NO
NO NO NO NO
NO NO NO NO
NO NO NO NO
NO NO NO NO
NO NO MAYBE MAYBE
NO NO NO NO
NO NO NO NO
NO NO NO NO
NO NO NO NO
NO NO NO NO
NO NO NO NO
NO NO NO NO
NO NO NO NO
NO NO NO NO
NO NO NO NO
NO NO NO NO
NO NO MAYBE MAYBE
NO NO NO NO
NO NO NO NO
NO NO NO NO
NO NO NO NO
NO NO NO NO
NO NO NO NO
NO NO NO NO
NO NO NO NO
NO NO NO NO
NO NO NO NO
NO NO NO NO
NO NO NO NO
NO NO NO NO
NO NO NO NO
NO NO NO NO
NO NO NO NO
NO NO NO NO
NO NO NO NO
NO NO NO NO
NO NO NO NO
NO NO NO NO
NO NO NO NO
NO NO NO NO
NO NO NO NO
NO NO NO NO
NO NO NO NO
NO NO NO NO
NO NO NO NO
NO NO NO NO
NO NO NO NO
NO NO NO NO
NO NO NO NO
NO NO NO NO
NO NO NO NO
NO NO NO NO
NO NO NO NO
NO NO NO NO
NO NO NO NO
NO NO MAYBE MAYBE
NO NO MAYBE MAYBE
NO NO NO NO
NO NO MAYBE NO
MAYBE NO MAYBE MAYBE
NO NO MAYBE MAYBE
NO NO NO NO
NO NO NO NO
NO NO NO NO
NO MAYBE MAYBE MAYBE
NO NO NO NO
NO NO NO NO
NO NO NO NO
NO NO NO NO
NO NO NO NO
NO NO NO NO
NO NO NO NO
MAYBE NO MAYBE MAYBE
NO NO NO NO
NO NO NO NO
NO NO NO NO
NO NO MAYBE MAYBE
NO NO NO NO
NO NO MAYBE MAYBE
NO NO NO NO
NO NO NO NO
NO NO NO NO
NO NO NO NO
NO NO NO NO
NO NO NO NO
NO NO MAYBE MAYBE
NO NO NO NO
NO NO NO NO
NO NO NO NO
NO NO NO NO
NO NO NO NO
NO NO MAYBE NO
NO NO NO NO
NO NO NO NO
MAYBE NO MAYBE MAYBE
NO NO NO NO
NO NO NO NO
NO NO NO NO
NO NO NO NO
NO NO NO NO
NO NO NO NO
NO NO NO NO
NO NO NO NO
NO NO NO NO
NO NO NO NO
NO NO NO NO
NO NO NO NO
NO NO MAYBE NO
NO NO NO NO
NO NO NO NO
NO NO NO NO
NO MAYBE MAYBE MAYBE
NO NO NO NO
NO NO MAYBE MAYBE
NO NO NO NO
NO NO NO NO
NO NO NO NO
NO NO NO NO
NO NO NO NO
NO NO MAYBE MAYBE
NO NO NO NO
NO NO NO NO
NO NO NO NO
NO NO NO NO
NO NO NO NO
NO NO NO NO
NO NO NO NO
NO NO MAYBE MAYBE
NO NO NO NO
NO NO NO NO
NO NO NO NO
NO NO NO NO
NO NO NO NO
NO NO NO NO
NO NO NO NO
NO NO NO NO
NO NO NO NO
NO NO NO NO
NO NO NO NO
NO NO NO NO
NO NO NO NO
NO NO NO NO
NO NO NO NO
NO NO MAYBE MAYBE
NO NO NO NO
NO NO MAYBE MAYBE
MAYBE NO MAYBE MAYBE
NO NO NO NO
NO NO MAYBE MAYBE
NO NO NO NO
NO NO NO NO
MAYBE NO MAYBE MAYBE
NO NO NO NO
NO NO NO NO
NO NO NO NO
NO NO MAYBE MAYBE
MAYBE NO MAYBE MAYBE
NO NO NO NO
NO NO NO NO
NO NO NO NO
NO NO NO NO
NO NO NO NO
NO NO NO NO
NO NO NO NO
NO NO NO NO
MAYBE NO MAYBE MAYBE
NO NO NO NO
MAYBE NO MAYBE MAYBE
NO NO NO NO
MAYBE NO MAYBE MAYBE
NO NO NO NO
NO NO MAYBE NO
NO NO NO NO
NO NO MAYBE NO
MAYBE NO MAYBE MAYBE
NO NO NO NO
NO NO NO NO
NO NO NO NO
NO NO NO NO
NO NO MAYBE MAYBE
MAYBE NO MAYBE MAYBE
NO NO MAYBE NO
NO NO NO NO
NO NO NO NO
NO NO NO NO
NO NO NO NO
NO NO NO NO
NO NO NO NO
NO NO NO NO
NO NO NO NO
NO NO NO NO
NO NO NO NO
NO NO NO NO
NO NO MAYBE NO
NO NO MAYBE NO
NO NO MAYBE NO
NO NO MAYBE NO
NO NO NO NO
MAYBE NO MAYBE MAYBE
MAYBE NO MAYBE NO
MAYBE NO MAYBE MAYBE
NO NO NO NO
NO NO NO NO
NO NO NO NO
NO NO NO NO
MAYBE NO MAYBE MAYBE
NO NO MAYBE MAYBE
MAYBE NO MAYBE MAYBE
MAYBE NO MAYBE MAYBE
NO MAYBE MAYBE MAYBE
NO MAYBE MAYBE MAYBE
MAYBE MAYBE MAYBE MAYBE
MAYBE NO MAYBE MAYBE
MAYBE NO MAYBE MAYBE
MAYBE NO MAYBE MAYBE
MAYBE NO MAYBE MAYBE
MAYBE NO MAYBE MAYBE
MAYBE NO MAYBE MAYBE
NO NO NO MAYBE
NO NO NO MAYBE
NO NO NO MAYBE
NO NO NO NO
MAYBE NO NO MAYBE
MAYBE NO MAYBE MAYBE
MAYBE NO NO MAYBE
MAYBE NO MAYBE MAYBE
MAYBE NO NO MAYBE
MAYBE NO NO MAYBE
MAYBE NO NO MAYBE
MAYBE NO MAYBE MAYBE
MAYBE NO MAYBE MAYBE
MAYBE NO MAYBE MAYBE
MAYBE NO MAYBE MAYBE
MAYBE NO NO MAYBE
MAYBE NO MAYBE MAYBE
MAYBE NO MAYBE MAYBE
MAYBE NO MAYBE MAYBE
MAYBE NO MAYBE MAYBE
MAYBE NO MAYBE MAYBE
MAYBE NO MAYBE MAYBE
MAYBE NO MAYBE MAYBE
MAYBE NO MAYBE MAYBE
MAYBE NO MAYBE MAYBE
MAYBE NO MAYBE MAYBE
MAYBE NO MAYBE MAYBE
MAYBE NO MAYBE MAYBE
MAYBE NO MAYBE MAYBE
MAYBE NO MAYBE MAYBE
MAYBE NO MAYBE MAYBE
MAYBE NO MAYBE MAYBE
MAYBE MAYBE MAYBE MAYBE
MAYBE MAYBE MAYBE MAYBE
MAYBE NO MAYBE MAYBE
MAYBE NO MAYBE MAYBE
NO NO MAYBE MAYBE
MAYBE NO MAYBE MAYBE
MAYBE MAYBE MAYBE MAYBE
MAYBE MAYBE MAYBE MAYBE
NO MAYBE MAYBE MAYBE
NO MAYBE MAYBE MAYBE
MAYBE NO MAYBE MAYBE
MAYBE NO MAYBE MAYBE
MAYBE NO MAYBE MAYBE
NO MAYBE MAYBE MAYBE
MAYBE NO MAYBE MAYBE
MAYBE NO MAYBE MAYBE
MAYBE NO MAYBE MAYBE
MAYBE NO MAYBE MAYBE
MAYBE NO MAYBE MAYBE
NO NO MAYBE MAYBE
NO NO MAYBE MAYBE
MAYBE MAYBE MAYBE MAYBE
MAYBE NO MAYBE MAYBE
MAYBE NO MAYBE MAYBE
MAYBE MAYBE MAYBE MAYBE
MAYBE NO MAYBE MAYBE
MAYBE MAYBE MAYBE MAYBE
MAYBE NO NO MAYBE
NO NO NO NO
NO NO NO NO
NO NO NO NO
MAYBE NO MAYBE MAYBE
NO NO NO NO
NO NO NO NO
NO NO NO NO
NO NO NO NO
NO NO NO NO
MAYBE NO MAYBE NO
MAYBE NO MAYBE NO
MAYBE NO MAYBE NO
MAYBE NO MAYBE NO