The coinduction is dual to induction and both of them can be defined as fixed points. More precisely, a set is inductive if it is the least fixed-point (lfp) of a monotone endofunction on a complete lattice, and it is coinductive if it is the greatest fixed-point (gfp) of such a endofunction. The induction principle says that each set that is a pre-fixed point includes the lfp, and the coinduction principle says that any post-fixed point is included in the gfp. A convenient way to define (co)inductive sets is by means of rules.
In contrast with the induction, which is a well-known proof principle that is taught in most undergraduate programs, the coinduction is not as widespread and its main applications includes bisimulation and behavioural equi- valence.
In this talk we show that the reachability properties of transition systems can be defined coinductively and we present coinductive proof systems for such properties, where the transition systems are specified by Logically constrained term rewriting systems. As an application, if the transition system describes the semantics of a programming language, then the reachability properties may be used to describe the partial correctness of programs. A main advantage of the presented proof system is that it can be automated. Logically constrained term rewriting systems are parametric in a builtin model, for which an automated theorem prover (e.g. a SMT solver) cand be used.