factor out the structural checks that are identical in both the prefix and suffix case
do not consider a Carcara failure (i.e., unreachable) the ill-formed case in overlap, but rather add checks to guarantee that the rule input will lead to a successfull application or lead to a CheckerError
This PR adds the
concat_cprop
rule from the Strings theory. Rule reference can be found in the cvc5 documentation and in the AletheLF specification.