@False = (* (a a))
@Leaf = (a (* ((a b) b)))
@Node = (a (b ((a (b c)) (* c))))
@True = (a (* a))
@all = ((@all$S0 ((a a) b)) b)
@all$S0 = (a (b c))
& @and ~ (d (e c))
& @all ~ (b e)
& @all ~ (a d)
@and = (((a a) (@and$S0 b)) b)
@and$S0 = (* @False)
@gen = (?<(a b) d> d)
& (a b) ~ (c @gen$S0)
& @Leaf ~ (@True c)
@gen$S0 = ({3 a b} c)
& @Node ~ (d (e c))
& @gen ~ (b e)
& @gen ~ (a d)
@main = a
& @all ~ (b a)
& @gen ~ (#24 b)