Module docstring
{"# N-ary images of finsets
This file defines Finset.image₂, the binary image of finsets. This is the finset version of
Set.image2. This is mostly useful to define pointwise operations.
Notes
This file is very similar to Data.Set.NAry, Order.Filter.NAry and Data.Option.NAry. Please
keep them in sync.
We do not define Finset.image₃ as its only purpose would be to prove properties of Finset.image₂
and Set.image2 already fulfills this task.
","### Algebraic replacement rules
A collection of lemmas to transfer associativity, commutativity, distributivity, ... of operations
to the associativity, commutativity, distributivity, ... of Finset.image₂ of those operations.
The proof pattern is image₂_lemma operation_lemma. For example, image₂_comm mul_comm proves that
image₂ (*) f g = image₂ (*) g f in a CommSemigroup.
"}