Reading Timbuk's output
Here is the plus.txt specification.
Ops plus:0 s:1 o:0 app:2
Const s o
Vars X Y
TRS R
app(app(plus,o),X) -> X
app(app(plus,s(X)),Y) -> s(app(app(plus,X),Y))
Automaton A1
States qf qp qp2 qi qnz
Final States qf
Transitions
app(qp,qi) -> qf
app(qp2,qnz) -> qp
plus -> qp2
o -> qi
s(qi) -> qi
s(qi) -> qnz
Automaton TC
States qi
Final States qi
Transitions
o -> qi
s(qi) -> qi
Patterns
o
If we run
timbuk --fung 10 plus.txt
we obtain the following output:
FunExperiments % timbuk --fung 30 plus.txt
term height= 1
term height= 2
term height= 3
term height= 4
Rejected: 0
Generated equations:
-------------------
s(s(o)) = s(o)
app(X,Y) = app(X,Y)
o = o
s(X) = s(X)
plus = plus
app(app(plus,o),X) = X
app(app(plus,s(X)),Y) = s(app(app(plus,X),Y))
Automaton projected on constructor terms:
-----------------------------------------
States q23 q28
Final States q23
Transitions
o -> q28
s(q23) -> q23
s(q28) -> q23
Regular expression:
-------------------
[s(*|s(o))]
Step: 7
Automaton complete!
------------------
Proof done!
-----------
Exported comp.res file
Exported comp.res.epsi file
Completion time: 0.007186 seconds
Equation generation time: 0.002898 seconds
where we can see the set of generated equations, the automaton
projected on constructor terms (i.e. the aproximation of the result
language of the function call), the same language expressed as a simplified regular
expression (when it is possible to produce such an
expression). Then, Step: 7 means that 7 steps of
completion were necessary to complete the automaton. Finally Proof
done! means that the terms declared in the Patterns
section are not reachable, thus that our property is true. Finally
Timbuk output several result files, in particular the comp.res file
which contains every detail about the proof. This file is used by
the checker to certify
the result.