## `fst::Containment`
The *containment* (Beesley & Karttunen 2003: 48f.) of a relation *A* (with
respect to some alphabet) is the union of all relations that contain some path
through *A*. We can implement this in Thrax as follows:
func Containment[A, sigma_star] {
return sigma_star A sigma_star;
}
where `sigma_star` represents the closure over the alphabet.
If *A* is a transducer, than its containment can be thought of as a single
unconditioned rewrite operation. The `fst::CDRewrite` function is a
generalization of this rewriting operation which permits repeated rewrites
and conditional restrictions. |