• No results found

A graph r is a set of pairs; if the pair (x, y) is an element of r we say that x and y are related by r . This will be used essentially when r is the graph of a relation.

Definition related r x y := inc (pair x y) r.

The next theorem is Proposition 1 in [2, p. 76]; it claims existence and uniqueness of two sets denoted by pr1〈r 〉 and pr2〈r 〉. The notation pr1〈r 〉 is defined in section 2.5; it is the domain of r .

Theorem range_domain_exists: forall r, is_graph r ->

(exists_unique (fun a=> (forall x, inc x a = (exists y, inc (J x y) r))) &

exists_unique (fun b=> (forall y, inc y b = (exists x, inc (J x y) r)))).

A graph is a subset of the product of the domain by the range. A graph is empty if and only if its domain or range is empty. A functional graph is a graph.

Lemma sub_graph_prod: forall r, is_graph r ->

sub r (product (domain r)(range r)).

Lemma empty_graph1: forall r, is_graph r ->

(domain r = emptyset) = (r = emptyset).

Lemma empty_graph2: forall r, is_graph r ->

(range r = emptyset) = (r = emptyset).

Lemma graph_fgraph : forall f, fgraph f -> is_graph f.

The emptyset is a functional graph, with empty range and domain.

Lemma emptyset_graph: is_graph (emptyset).

Lemma emptyset_range: range emptyset = emptyset.

Lemma emptyset_domain: domain emptyset = emptyset.

Lemma emptyset_fgraph: fgraph emptyset.

A product x × y is a graph. The domain is x, the range is y. Note that, if one set is empty, then the product is empty, see above. It is a functional graph if the range is a singleton.

Lemma product_is_graph: forall x y, is_graph (product x y).

Lemma product_related: forall x y a b,

related (product x y) a b = (inc a x & inc b y).

Lemma product_domain: forall x y,

nonempty y-> domain (product x y) = x.

Lemma product_range: forall x y,

nonempty x -> range (product x y) = y.

Lemma constant_function_p1: forall x y, fgraph (product x (singleton y)).

The diagonal of x, denotedx, is the set of all pairs (a, a), with a ∈ x. This is the graph of the identity function on x, domain and range being x. In what follows, we shall use identity_g, but keep the word ‘diagonal’ in some theorem names.

Definition diagonal x := Zo (product x x)(fun y=> P y = Q y).

Lemma diagonal_is_identity: forall x, diagonal x = identity_g x.

Lemma inc_diagonal_rw: forall x u,

inc u (identity_g x) = (is_pair u & inc (P u) x & P u = Q u).

Lemma inc_pair_diagonal: forall x u v,

inc (J u v) (identity_g x) = (inc u x & u = v).

Lemma identity_graph: forall x, is_graph (identity_g x).

For Bourbaki, a correspondence between A and B is a tripleΓ = (G,A,B) where the domain of G is a subset of A and the range is a subset of B. The three conditions “G is a graph whose domain is a subset of A and whose range is a subset of B”, G ⊂ A × B, and G ∈P(A × B) are equivalent.

Definition corr_propb s t g:= sub g (product s t).

Lemma corr_propa: forall x y z,

corr_propb x y z = inc z (powerset (product x y)).

Lemma corr_propcc: forall s t g,

sub g (product s t) = (is_graph g & sub (domain g) s & sub (range g) t).

Here we use a triple, with the condition G ⊂ A × B.

Definition is_triple f := is_pair f & is_pair (Q f).

Definition source x := P (Q x).

Definition target x := Q (Q x).

Definition graph x := P x.

Definition corresp s t g := J g (J s t).

Definition is_correspondence f :=

is_triple f i & sub (graph f) (product (source f) (target f)).

The important property here is that, if f is a triple, if we extract the source, target and graph, and construct a correspondence, we get f (this is the analogous of pair_recov for a triple).

Lemma is_triple_corr: forall s t g, is_triple (corresp s t g).

Lemma corresp_source: forall s t g, source (corresp s t g) = s.

Lemma corresp_target: forall s t g, target (corresp s t g) = t.

Lemma corresp_graph: forall s t g, graph (corresp s t g) = g.

Lemma corresp_recov: forall f, is_triple f ->

corresp(source f) (target f) (graph f) = f.

Lemma corresp_recov1: forall f, is_correspondence f ->

corresp (source f) (target f) (graph f) = f.

We list here the basic properties of correspondences.

Lemma corr_propc: forall f, let g := graph f in is_correspondence f ->

(is_graph g & sub (domain g) (source f) & sub (range g) (target f)).

Lemma corresp_create: forall s t g,

sub g (product s t) -> is_correspondence (corresp s t g).

Lemma corresp_is_graph: forall g,

is_correspondence g -> is_graph (graph g).

Lemma corresp_sub_range: forall g,

is_correspondence g -> sub (range (graph g)) (target g).

Lemma corresp_sub_domain: forall g,

is_correspondence g -> sub (domain (graph g)) (source g).

A triple (G, A, B) is a correspondence if and only if G ∈P(A × B), but Bourbaki defines the powerset only later. From this, we deduce that the set of all correspondences between A and B isP(A × B) × {A} × {B}.

Definition set_of_correspondences (x y:Set) :=

product(powerset (product x y))

(product (singleton x) (singleton y)).

Lemma set_of_correspondences_rw: forall x y z,

inc z (set_of_correspondences x y) =

(is_correspondence z & source z = x & target z = y).

Lemma set_of_correspondences_propa: forall f, is_correspondence f ->

inc f (set_of_correspondences (source f) (target f)).

Lemma sof_value_pra: forall x y z, let f:= sof_value x y z in

inc z (set_of_correspondences x y) ->

(is_correspondence f & source f = x & target f = y & f = z).

Given a function f : a → b, we construct L f , the associated correspondence.

Definition gacreate (a b:Set) (f:a->b) := IM (fun y:a => J (Ro y) (Ro (f y))).

Definition acreate (a b:Set) (f:a->b) := corresp a b (gacreate f).

Lemma acreate_corresp: forall (a b:Set) (f:a->b), is_correspondence (acreate f).

Lemma source_acreate : forall (a b :Set)(f:a->b), source (acreate f) = a.

Lemma target_acreate : forall (a b:Set) (f:a->b), target (acreate f) = b.

¶ Direct image of a set by a functional object. This will be denoted by f 〈x〉. In the first definition f is a graph, and we consider all elements y for which there is a z ∈ x such that (z, y) ∈ f . In the second definition, f is a correspondence, and we consider the image by its graph. In the last definition, f is a correspondence, and we take the image of the source (the case where f is a mapping has been considered in Section 2.5).

Definition image_by_graph f u:=

Zo (range f) (fun y=>exists x, inc x u & inc (J x y) f).

Definition image_by_fun f u :=

image_by_graph (graph f) u.

Definition image_of_fun f :=

image_by_graph (graph f) (source f).

We give now some basic properties. The image is a part of the range; it is the full range if we consider the full domain. The image of a subset x of the domain is empty if and only if x is empty. Proposition 2 in [2, p. 77] says that the image functor is increasing (we use here the term “functor” rather than function, since it is a mapping without graph).1

Lemma image_by_graph_rw: forall u r y,

inc y (image_by_graph r u) = exists x, (inc x u & inc (J x y) r).

Lemma sub_image_by_graph: forall u r, sub (image_by_graph r u) (range r).

Lemma image_by_graph_domain: forall r, is_graph r ->

image_by_graph r (domain r) = range r.

Lemma image_by_emptyset: forall r, image_by_graph r emptyset = emptyset.

Lemma image_by_nonemptyset: forall u r,

is_graph r -> nonempty u -> sub u (domain r) -> nonempty (image_by_graph r u).

Theorem image_by_increasing: forall u u’ r,

1In the initial version of the theorem, we assume r to be a graph

sub u u’ -> sub (image_by_graph r u) (image_by_graph r u’).

Lemma image_of_large: forall u r, is_graph r ->

sub (domain r) u -> image_by_graph r u = range r.

Given a graph r and an element x, the set of all y in r whose first projection is x is called the cut. This is r 〈{x}〉. If f is a correspondence, the notation G(f )〈{x}〉 is sometimes simplified to f 〈{x}〉 or f (x) (this last notation is ambiguous, since it denotes also the value of f at x).

Definition im_singleton r x := image_by_graph r (singleton x).

Lemma im_singleton_pr: forall r x y,

inc y (im_singleton r x) = inc (J x y) r.

Lemma im_singleton_inclusion: forall r r’, is_graph r -> is_graph r’ ->

(forall x, sub (im_singleton r x) (im_singleton r’ x)) = sub r r’.