You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
* Add map commutation with other operations
map commutes with most list operations in some way,
and I initially made a section just for these proofs,
but later decided to spread them into each section
for consistency.
* Add congruence to operations that miss it
* Add flip & comm proofs to align[With] & [un]zip[With]
For the case of zipWith, the existing comm proof
can be provided in terms of cong and flip.
For the case of unzip[With], the comm proof has
little use and the flip proof is better named "swap".
* Remove unbound parameter
The alignWith section begins with a
module _ {f g : These A B → C} where
but g is only used by the first function.
* Add properties for take
* Proof of zip[With] and unzip[With] being inverses
* fixup! don't put list parameters in modules
* fixup! typo in changelog entry
* fixup! use equational reasoning in place of trans
* Add interaction with ++ in two more operations
* fixup! foldl-cong: don't take d ≡ e
* prove properties about catMaybes
now that catMaybes is no longer defined in
terms of mapMaybe, properties about mapMaybe
need to be proven for catMaybe as well
* move mapMaybe properties down
see next commit (given that mapMaybe-concatMap
now depends on map-concatMap, it has to be
moved down)
* simplify mapMaybe proofs
since mapMaybe is now defined in terms
of catMaybes and map, we can derive its
proofs from the proofs of those rather
than using induction directly
---------
Co-authored-by: MatthewDaggitt <[email protected]>
0 commit comments