A new formal framework called S is proposed to capture combinatorial reasoning about finite words. S consists of a three-sorted logical theory designed to represent strings. The framework proves a witnessing theorem demonstrating how to extract algorithms from proofs of string existence. Various applications of the theory are also shown, with the long term goal of applying proof complexity tools to analyze strings.