cleaned up b.ll39: referring to explicit assumptions instead of all of them (assms), used simpler proof methods in some places, using "tl" for a list's tail instead of "drop 1"
b.ll40: using more elegant "proof (induct n)" with "case"; abbreviation using "is" instead of "let" avoids repetition
b.ll16: removed vacuous proof … qed structure
b.ll42 cleanup:
* got rid of outer "proof" thanks to default inference rule for \subseteq,
* removed most "let"s (most of them were not used anyway),
* code style ("have" at the beginning of a line, even if a statement is labeled)
* using idiomatic name "xs" for tail of list
* used faster proof methods
* proved several steps with fewer assumptions