[ DRY ] Refactor Function.*
to rationalise the existence of a section to a given Surjective f
#2568
Labels
Milestone
Lots of repetition in the hierarchy of various
private
definitions of a (not-necessarilyCongruent
)section : B → A
to a givenSurjective f
forf : A → B
, which should be rationalised into an appropriate eg. manifest field of the variousStructures
andBundles
...Issues: cf. #2274 etc.
Function.Definitions.Surjective
?Function.Structures.IsSurjection
cf.IsGroup
? [DRY] why is_≉_
defined both forAlgebra.Bundles.Raw.RawX
bundles, and viaSetoid
instances, forAlgebra.Bundles.X
? #2274 / Add new operations (cf.RawQuasigroup
) toIsGroup
#2251Function.Bundles.Surjection
?plus
section
(neutral?),to⁻
(as now), orfrom
emulating usage already present in otherStructures
with already a well-defined section, moreoverCongruent
? UPDATED: [ refactor ] fixes #2568; proves full symmetry forBijection
#2569 now makes the choice offrom
...UPDATED: #2569 is a comprehensive attempt at tackling this, up to, but not (yet!) including
breaking
changes to remove the dependency on congruence ofsection
in the proofs of symmetry forIsBijective
andBijection
(because, for anInjective
functionf
, itssection
automatically satisfiesCongruent
)The solution chosen goes via a new module
Section
inFunction.Consequences
(could/should move to somewhere on its own?), which develops the comprehensive theory of thesection
map, but then successively re-exports that structure as manifest fields of bothFunction.Structures.{IsSurjection|IsBijection}
as well asFunction.Bundles.{Surjection|Bijection}
, so in a sense the answer to the above design issues is: yes!The text was updated successfully, but these errors were encountered: