Skip to content
Snippets Groups Projects

Backport specification from my PhD thesis

Merged Hans-Jörg requested to merge devel/thesis-backport into master
Compare and Show latest version
1 file
+ 15
8
Compare changes
  • Side-by-side
  • Inline
+ 15
8
@@ -713,8 +713,10 @@ problem file or, if the incremental solving commands of {\smtlib}
are used, the implicit problem constructed at the invocation of a
\inlineAlethe{get-proof} command.
In this document, we will call this {\smtlib} problem the {\em input problem}.
An Alethe proof inherits the namespace of its {\smtlib} problem.
All symbols declared or defined in the input problem remain declared or
defined, respectively. Furthermore, the symbolic names introduced
defined, respectively.
Furthermore, the symbolic names introduced
by the \inlineAlethe{:named} annotation also stay valid and can be used
in the script. For the purpose of the proof rules, terms are treated
as if proxy names introduced by \inlineAlethe{:named} annotations have been
@@ -954,7 +956,8 @@ Overall, the following aspects are treated implicitly by Alethe.
non-empty context.
\item The order of literals in the clauses.
\item The unfolding of names introduced by
\inlineAlethe{(!}\,$t$\,\inlineAlethe{:named }\;$s$\,\inlineAlethe{)}.
\inlineAlethe{(!}\,$t$\,\inlineAlethe{:named }\;$s$\,\inlineAlethe{)} in the
original {\smtlib} problem or in the proof.
\item The removal of other {\smtlib} annotations of the form
\inlineAlethe{(!}\,$t$\,\dots\,\inlineAlethe{)}.
\item The unfolding of function symbols introduced by
@@ -974,10 +977,13 @@ In this section we present an abstract procedure to check if an Alethe
proof is \index{well-formed}well-formed and valid. An Alethe proof is
well-formed only if its anchors and steps are balanced. To check that
this is the case, we replace innermost subproofs by holes until there is
no subproof left. If the resulting proof is free of anchors and steps
that use concluding rules, then the proof is well-formed.
If all the steps in the subproofs adhere to the conditions of
their rules, the subproof is valid. If all subproofs are valid,
no subproof left. If the resulting reduced proof is free of anchors and steps
that use concluding rules, then the overall proof is well-formed.
To check if a proof is valid we have to check if all steps of a subproof
adhere to the conditions of
their rules before replacing the subproof by a hole.
If all subproofs are valid and all steps in the reduced
proof adhere to the conditions of their rule,
then the entire proof is valid.
Formally, an Alethe proof $P$ is a list $[C_1, \dots, C_n]$ of steps
@@ -1077,8 +1083,9 @@ Section~\ref{apx:rules}.
\end{itemize}
\end{definition}
Since the \proofRule{assume} rule expects an empty context, an admissible
subproof can contain assumptions only if the rule used by $C_{\mathit{end}}$
The only rule that can discharge assumptions in a subproof is the
\proofRule{subproof} rule. Therefore, an admissible subproof can only
contain \proofRule{assume} step if $C_{\mathit{end}}$
is the \proofRule{subproof} rule.
To eliminate a subproof we can replace the subproof with a hole that has
Loading