Require Import power.Definitionid_function {A : Type}
: A -> A :=
funa => a.Definitioncompose_functions {ABC : Type}
(g : B -> C)
(f : A -> B)
: A -> C :=
funa => g (f a).SectionFunctions.Context {AB : Type}.Variablef : A -> B.Definitioninjective : Prop :=
forallaa',
f a = f a' ->
a = a'.Definitionsurjective : Prop :=
forallb,
existsa,
f a = b.Definitionbijective : Prop :=
injective /\ surjective.Definitionisomorphic : Prop :=
existsg : B -> A,
compose_functions g f = id_function /\
compose_functions f g = id_function.Definitionpreimage
(S : power B)
: power A :=
funa => S (f a).Definitionimage
(S : power A)
: power B :=
funb => existsa, f a = b.EndFunctions.Definitionisomorphism (AB : Type) : Type :=
{ f : A -> B | isomorphic f }.Notation"A ≅ B" := (isomorphism A B) (at level60, no associativity).SectionFunctions.Context {ABC : Type}.Variablef : A -> B.Variableg : B -> C.
A, B, C: Type f: A -> B g: B -> C S: power C
preimage (compose_functions g f) S = preimage f (preimage g S)
A, B, C: Type f: A -> B g: B -> C S: power C
preimage (compose_functions g f) S = preimage f (preimage g S)
A, B, C: Type f: A -> B g: B -> C S: power C
(funa : A => S (g (f a))) = (funa : A => S (g (f a)))