grfunc_1.miz



    begin

    reserve X,Y for set,

p,x,x1,x2,y,y1,y2,z,z1,z2 for object;

    reserve f,g,h for Function;

    theorem :: GRFUNC_1:1

    

     Th1: for G be set st G c= f holds G is Function;

    theorem :: GRFUNC_1:2

    

     Th2: f c= g iff ( dom f) c= ( dom g) & for x be object st x in ( dom f) holds (f . x) = (g . x)

    proof

      thus f c= g implies ( dom f) c= ( dom g) & for x be object st x in ( dom f) holds (f . x) = (g . x)

      proof

        assume

         A1: f c= g;

        hence ( dom f) c= ( dom g) by RELAT_1: 11;

        let x be object;

        assume x in ( dom f);

        then [x, (f . x)] in f by FUNCT_1:def 2;

        hence thesis by A1, FUNCT_1: 1;

      end;

      assume that

       A2: ( dom f) c= ( dom g) and

       A3: for x be object st x in ( dom f) holds (f . x) = (g . x);

      let x,y be object;

      assume

       A4: [x, y] in f;

      then

       A5: x in ( dom f) by FUNCT_1: 1;

      y = (f . x) by A4, FUNCT_1: 1;

      then y = (g . x) by A3, A5;

      hence thesis by A2, A5, FUNCT_1:def 2;

    end;

    theorem :: GRFUNC_1:3

    ( dom f) = ( dom g) & f c= g implies f = g

    proof

      assume that

       A1: ( dom f) = ( dom g) and

       A2: f c= g;

      for x,y be object holds [x, y] in f iff [x, y] in g

      proof

        let x,y be object;

        thus [x, y] in f implies [x, y] in g by A2;

        assume

         A3: [x, y] in g;

        then x in ( dom f) by A1, XTUPLE_0:def 12;

        then [x, (f . x)] in f by FUNCT_1: 1;

        hence thesis by A2, A3, FUNCT_1:def 1;

      end;

      hence thesis;

    end;

    

     Lm1: (( rng f) /\ ( rng h)) = {} & x in ( dom f) & y in ( dom h) implies (f . x) <> (h . y)

    proof

      assume

       A1: (( rng f) /\ ( rng h)) = {} ;

      assume x in ( dom f) & y in ( dom h);

      then (f . x) in ( rng f) & (h . y) in ( rng h) by FUNCT_1:def 3;

      hence thesis by A1, XBOOLE_0:def 4;

    end;

    theorem :: GRFUNC_1:4

     [x, z] in (g * f) implies [x, (f . x)] in f & [(f . x), z] in g

    proof

      assume [x, z] in (g * f);

      then ex y be object st [x, y] in f & [y, z] in g by RELAT_1:def 8;

      hence thesis by FUNCT_1: 1;

    end;

    theorem :: GRFUNC_1:5

     { [x, y]} is Function;

    

     Lm2: [x, y] in { [x1, y1]} implies x = x1 & y = y1

    proof

      assume [x, y] in { [x1, y1]};

      then [x, y] = [x1, y1] by TARSKI:def 1;

      hence thesis by XTUPLE_0: 1;

    end;

    theorem :: GRFUNC_1:6

    f = { [x, y]} implies (f . x) = y

    proof

      assume f = { [x, y]};

      then [x, y] in f by TARSKI:def 1;

      hence thesis by FUNCT_1: 1;

    end;

    theorem :: GRFUNC_1:7

    

     Th7: ( dom f) = {x} implies f = { [x, (f . x)]}

    proof

      reconsider g = { [x, (f . x)]} as Function;

      assume

       A1: ( dom f) = {x};

      for y,z be object holds [y, z] in f iff [y, z] in g

      proof

        let y,z be object;

        thus [y, z] in f implies [y, z] in g

        proof

          assume

           A2: [y, z] in f;

          then y in {x} by A1, XTUPLE_0:def 12;

          then

           A3: y = x by TARSKI:def 1;

          

           A4: ( rng f) = {(f . x)} by A1, FUNCT_1: 4;

          z in ( rng f) by A2, XTUPLE_0:def 13;

          then z = (f . x) by A4, TARSKI:def 1;

          hence thesis by A3, TARSKI:def 1;

        end;

        assume [y, z] in g;

        then

         A5: y = x & z = (f . x) by Lm2;

        x in ( dom f) by A1, TARSKI:def 1;

        hence thesis by A5, FUNCT_1:def 2;

      end;

      hence thesis;

    end;

    theorem :: GRFUNC_1:8

     { [x1, y1], [x2, y2]} is Function iff (x1 = x2 implies y1 = y2)

    proof

      thus { [x1, y1], [x2, y2]} is Function & x1 = x2 implies y1 = y2

      proof

        

         A1: [x1, y1] in { [x1, y1], [x2, y2]} & [x2, y2] in { [x1, y1], [x2, y2]} by TARSKI:def 2;

        assume { [x1, y1], [x2, y2]} is Function;

        hence thesis by A1, FUNCT_1:def 1;

      end;

      assume

       A2: x1 = x2 implies y1 = y2;

      now

        thus p in { [x1, y1], [x2, y2]} implies ex x, y st [x, y] = p

        proof

          assume p in { [x1, y1], [x2, y2]};

          then p = [x1, y1] or p = [x2, y2] by TARSKI:def 2;

          hence thesis;

        end;

        let x, z1, z2;

        

         A3: [x, z1] = [x1, y1] & [x, z2] = [x1, y1] or [x, z1] = [x2, y2] & [x, z2] = [x2, y2] implies z1 = y1 & z2 = y1 or z1 = y2 & z2 = y2 by XTUPLE_0: 1;

         A4:

        now

          assume

           A5: [x, z1] = [x1, y1] & [x, z2] = [x2, y2] or [x, z1] = [x2, y2] & [x, z2] = [x1, y1];

          then x = x1 & x = x2 by XTUPLE_0: 1;

          hence z1 = z2 by A2, A5, XTUPLE_0: 1;

        end;

        assume [x, z1] in { [x1, y1], [x2, y2]} & [x, z2] in { [x1, y1], [x2, y2]};

        hence z1 = z2 by A3, A4, TARSKI:def 2;

      end;

      hence thesis by FUNCT_1:def 1;

    end;

    theorem :: GRFUNC_1:9

    

     Th9: f is one-to-one iff for x1, x2, y st [x1, y] in f & [x2, y] in f holds x1 = x2

    proof

      thus f is one-to-one implies for x1, x2, y st [x1, y] in f & [x2, y] in f holds x1 = x2

      proof

        assume

         A1: f is one-to-one;

        let x1, x2, y;

        assume

         A2: [x1, y] in f & [x2, y] in f;

        then

         A3: (f . x1) = y & (f . x2) = y by FUNCT_1: 1;

        x1 in ( dom f) & x2 in ( dom f) by A2, FUNCT_1: 1;

        hence thesis by A1, A3;

      end;

      assume

       A4: for x1, x2, y st [x1, y] in f & [x2, y] in f holds x1 = x2;

      let x1, x2;

      assume x1 in ( dom f) & x2 in ( dom f) & (f . x1) = (f . x2);

      then [x1, (f . x1)] in f & [x2, (f . x1)] in f by FUNCT_1: 1;

      hence thesis by A4;

    end;

    theorem :: GRFUNC_1:10

    

     Th10: g c= f & f is one-to-one implies g is one-to-one

    proof

      assume g c= f & f is one-to-one;

      then for x1, x2, y st [x1, y] in g & [x2, y] in g holds x1 = x2 by Th9;

      hence thesis by Th9;

    end;

    registration

      let f, X;

      cluster (f /\ X) -> Function-like;

      coherence by Th1, XBOOLE_1: 17;

    end

    theorem :: GRFUNC_1:11

    x in ( dom (f /\ g)) implies ((f /\ g) . x) = (f . x)

    proof

      set y = ((f /\ g) . x);

      assume x in ( dom (f /\ g));

      then [x, y] in (f /\ g) by FUNCT_1:def 2;

      then [x, y] in f by XBOOLE_0:def 4;

      hence thesis by FUNCT_1: 1;

    end;

    theorem :: GRFUNC_1:12

    f is one-to-one implies (f /\ g) is one-to-one by Th10, XBOOLE_1: 17;

    theorem :: GRFUNC_1:13

    ( dom f) misses ( dom g) implies (f \/ g) is Function

    proof

      assume

       A1: (( dom f) /\ ( dom g)) = {} ;

      now

        thus p in (f \/ g) implies ex x,y be object st [x, y] = p by RELAT_1:def 1;

        let x, y1, y2;

        assume [x, y1] in (f \/ g);

        then

         A2: [x, y1] in f or [x, y1] in g by XBOOLE_0:def 3;

        assume [x, y2] in (f \/ g);

        then

         A3: [x, y2] in f or [x, y2] in g by XBOOLE_0:def 3;

         not (x in ( dom f) & x in ( dom g)) by A1, XBOOLE_0:def 4;

        hence y1 = y2 by A2, A3, FUNCT_1:def 1, XTUPLE_0:def 12;

      end;

      hence thesis by FUNCT_1:def 1;

    end;

    theorem :: GRFUNC_1:14

    f c= h & g c= h implies (f \/ g) is Function by Th1, XBOOLE_1: 8;

    

     Lm3: h = (f \/ g) implies (x in ( dom h) iff x in ( dom f) or x in ( dom g))

    proof

      assume

       A1: h = (f \/ g);

      thus x in ( dom h) implies x in ( dom f) or x in ( dom g)

      proof

        assume x in ( dom h);

        then [x, (h . x)] in h by FUNCT_1:def 2;

        then [x, (h . x)] in f or [x, (h . x)] in g by A1, XBOOLE_0:def 3;

        hence thesis by XTUPLE_0:def 12;

      end;

      assume x in ( dom f) or x in ( dom g);

      then [x, (f . x)] in f or [x, (g . x)] in g by FUNCT_1:def 2;

      then [x, (f . x)] in h or [x, (g . x)] in h by A1, XBOOLE_0:def 3;

      hence thesis by XTUPLE_0:def 12;

    end;

    theorem :: GRFUNC_1:15

    

     Th15: x in ( dom g) & h = (f \/ g) implies (h . x) = (g . x)

    proof

      assume x in ( dom g);

      then [x, (g . x)] in g by FUNCT_1:def 2;

      then h = (f \/ g) implies [x, (g . x)] in h by XBOOLE_0:def 3;

      hence thesis by FUNCT_1: 1;

    end;

    theorem :: GRFUNC_1:16

    x in ( dom h) & h = (f \/ g) implies (h . x) = (f . x) or (h . x) = (g . x)

    proof

      assume x in ( dom h);

      then [x, (h . x)] in h by FUNCT_1:def 2;

      then h = (f \/ g) implies [x, (h . x)] in f or [x, (h . x)] in g by XBOOLE_0:def 3;

      hence thesis by FUNCT_1: 1;

    end;

    theorem :: GRFUNC_1:17

    f is one-to-one & g is one-to-one & h = (f \/ g) & ( rng f) misses ( rng g) implies h is one-to-one

    proof

      assume that

       A1: f is one-to-one & g is one-to-one and

       A2: h = (f \/ g) and

       A3: (( rng f) /\ ( rng g)) = {} ;

      now

        let x1, x2;

        assume that

         A4: x1 in ( dom h) & x2 in ( dom h) and

         A5: (h . x1) = (h . x2);

         A6:

        now

          assume x1 in ( dom f) & x2 in ( dom g) or x1 in ( dom g) & x2 in ( dom f);

          then (h . x1) = (f . x1) & (h . x2) = (g . x2) & (f . x1) <> (g . x2) or (h . x1) = (g . x1) & (h . x2) = (f . x2) & (f . x2) <> (g . x1) by A2, A3, Lm1, Th15;

          hence x1 = x2 by A5;

        end;

        

         A7: x1 in ( dom g) & x2 in ( dom g) implies (h . x1) = (g . x1) & (h . x2) = (g . x2) by A2, Th15;

        x1 in ( dom f) & x2 in ( dom f) implies (h . x1) = (f . x1) & (h . x2) = (f . x2) by A2, Th15;

        then x1 in ( dom f) & x2 in ( dom f) or x1 in ( dom g) & x2 in ( dom g) implies x1 = x2 by A1, A5, A7;

        hence x1 = x2 by A2, A4, A6, Lm3;

      end;

      hence thesis;

    end;

    ::$Canceled

    theorem :: GRFUNC_1:20

    f is one-to-one implies for x, y holds [y, x] in (f " ) iff [x, y] in f

    proof

      assume

       A1: f is one-to-one;

      let x, y;

      ( dom (f " )) = ( rng f) by A1, FUNCT_1: 33;

      then y in ( dom (f " )) & x = ((f " ) . y) iff x in ( dom f) & y = (f . x) by A1, FUNCT_1: 32;

      hence thesis by FUNCT_1: 1;

    end;

    theorem :: GRFUNC_1:21

    f = {} implies (f " ) = {}

    proof

      assume f = {} ;

      then ( dom (f " )) = {} by FUNCT_1: 33, RELAT_1: 38;

      hence thesis;

    end;

    theorem :: GRFUNC_1:22

    x in ( dom f) & x in X iff [x, (f . x)] in (f | X)

    proof

      x in ( dom f) iff [x, (f . x)] in f by FUNCT_1:def 2, XTUPLE_0:def 12;

      hence thesis by RELAT_1:def 11;

    end;

    theorem :: GRFUNC_1:23

    

     Th21: g c= f implies (f | ( dom g)) = g

    proof

      assume

       A1: g c= f;

      for x,y be object holds [x, y] in (f | ( dom g)) implies [x, y] in g

      proof

        let x,y be object;

        assume

         A2: [x, y] in (f | ( dom g));

        then x in ( dom g) by RELAT_1:def 11;

        then

         A3: [x, (g . x)] in g by FUNCT_1:def 2;

         [x, y] in f by A2, RELAT_1:def 11;

        hence thesis by A1, A3, FUNCT_1:def 1;

      end;

      then

       A4: (f | ( dom g)) c= g;

      (g | ( dom g)) c= (f | ( dom g)) by A1, RELAT_1: 76;

      then g c= (f | ( dom g));

      hence thesis by A4;

    end;

    theorem :: GRFUNC_1:24

    x in ( dom f) & (f . x) in Y iff [x, (f . x)] in (Y |` f)

    proof

      x in ( dom f) iff [x, (f . x)] in f by FUNCT_1:def 2, XTUPLE_0:def 12;

      hence thesis by RELAT_1:def 12;

    end;

    theorem :: GRFUNC_1:25

    g c= f & f is one-to-one implies (( rng g) |` f) = g

    proof

      assume

       A1: g c= f;

      assume

       A2: f is one-to-one;

      for x,y be object holds [x, y] in (( rng g) |` f) implies [x, y] in g

      proof

        let x,y be object;

        assume

         A3: [x, y] in (( rng g) |` f);

        then y in ( rng g) by RELAT_1:def 12;

        then

         A4: ex x1 be object st [x1, y] in g by XTUPLE_0:def 13;

         [x, y] in f by A3, RELAT_1:def 12;

        hence thesis by A1, A2, A4, Th9;

      end;

      then

       A5: (( rng g) |` f) c= g;

      (( rng g) |` g) c= (( rng g) |` f) by A1, RELAT_1: 101;

      then g c= (( rng g) |` f);

      hence thesis by A5;

    end;

    theorem :: GRFUNC_1:26

    x in (f " Y) iff [x, (f . x)] in f & (f . x) in Y

    proof

      thus x in (f " Y) implies [x, (f . x)] in f & (f . x) in Y

      proof

        assume x in (f " Y);

        then ex y be object st [x, y] in f & y in Y by RELAT_1:def 14;

        hence thesis by FUNCT_1: 1;

      end;

      thus thesis by RELAT_1:def 14;

    end;

    begin

    theorem :: GRFUNC_1:27

    for X be set, f,g be Function st X c= ( dom f) & f c= g holds (f | X) = (g | X)

    proof

      let X be set, f,g be Function such that

       A1: X c= ( dom f);

      assume f c= g;

      

      hence (f | X) = ((g | ( dom f)) | X) by Th21

      .= (g | (( dom f) /\ X)) by RELAT_1: 71

      .= (g | X) by A1, XBOOLE_1: 28;

    end;

    theorem :: GRFUNC_1:28

    

     Th26: for f be Function, x be set st x in ( dom f) holds (f | {x}) = { [x, (f . x)]}

    proof

      let f be Function, x be set such that

       A1: x in ( dom f);

      

       A2: x in {x} by TARSKI:def 1;

      ( dom (f | {x}) qua Function) = (( dom f) /\ {x}) by RELAT_1: 61

      .= {x} by A1, ZFMISC_1: 46;

      

      hence (f | {x}) = { [x, ((f | {x}) . x)]} by Th7

      .= { [x, (f . x)]} by A2, FUNCT_1: 49;

    end;

    theorem :: GRFUNC_1:29

    

     Th27: for f,g be Function, x be set st ( dom f) = ( dom g) & (f . x) = (g . x) holds (f | {x}) = (g | {x})

    proof

      let f,g be Function, x be set such that

       A1: ( dom f) = ( dom g) and

       A2: (f . x) = (g . x);

      per cases ;

        suppose

         A3: x in ( dom f);

        

        hence (f | {x}) = { [x, (g . x)]} by A2, Th26

        .= (g | {x}) by A1, A3, Th26;

      end;

        suppose not x in ( dom f);

        then

         A4: {x} misses ( dom f) by ZFMISC_1: 50;

        

        hence (f | {x}) = {} by RELAT_1: 66

        .= (g | {x}) by A1, A4, RELAT_1: 66;

      end;

    end;

    theorem :: GRFUNC_1:30

    

     Th28: for f,g be Function, x,y be set st ( dom f) = ( dom g) & (f . x) = (g . x) & (f . y) = (g . y) holds (f | {x, y}) = (g | {x, y})

    proof

      let f,g be Function, x,y be set;

      assume ( dom f) = ( dom g) & (f . x) = (g . x) & (f . y) = (g . y);

      then

       A1: (f | {x}) = (g | {x}) & (f | {y}) = (g | {y}) by Th27;

       {x, y} = ( {x} \/ {y}) by ENUMSET1: 1;

      hence thesis by A1, RELAT_1: 150;

    end;

    theorem :: GRFUNC_1:31

    for f,g be Function, x,y,z be set st ( dom f) = ( dom g) & (f . x) = (g . x) & (f . y) = (g . y) & (f . z) = (g . z) holds (f | {x, y, z}) = (g | {x, y, z})

    proof

      let f,g be Function, x,y,z be set;

      assume ( dom f) = ( dom g) & (f . x) = (g . x) & (f . y) = (g . y) & (f . z) = (g . z);

      then

       A1: (f | {x, y}) = (g | {x, y}) & (f | {z}) = (g | {z}) by Th27, Th28;

       {x, y, z} = ( {x, y} \/ {z}) by ENUMSET1: 3;

      hence thesis by A1, RELAT_1: 150;

    end;

    registration

      let f be Function, A be set;

      cluster (f \ A) -> Function-like;

      coherence ;

    end

    theorem :: GRFUNC_1:32

    for f,g be Function st x in (( dom f) \ ( dom g)) holds ((f \ g) . x) = (f . x)

    proof

      let f,g be Function such that

       A1: x in (( dom f) \ ( dom g));

      (f \ g) c= f & (( dom f) \ ( dom g)) c= ( dom (f \ g)) by XTUPLE_0: 25;

      hence thesis by A1, Th2;

    end;

    theorem :: GRFUNC_1:33

    f c= g & f c= h implies (g | ( dom f)) = (h | ( dom f))

    proof

      assume that

       A1: f c= g and

       A2: f c= h;

      

      thus (g | ( dom f)) = f by A1, Th21

      .= (h | ( dom f)) by A2, Th21;

    end;

    registration

      let f be Function, g be Subset of f;

      cluster g -compatible -> f -compatible for Function;

      coherence

      proof

        let F be Function such that

         A1: F is g -compatible;

        let x;

        assume x in ( dom F);

        then

         A2: (F . x) in (g . x) by A1;

        then x in ( dom g) by FUNCT_1:def 2;

        hence (F . x) in (f . x) by A2, Th2;

      end;

    end

    theorem :: GRFUNC_1:34

    

     Th32: g c= f implies g = (f | ( dom g))

    proof

      assume

       A1: g c= f;

      then ( dom g) c= ( dom f) by RELAT_1: 11;

      hence ( dom g) = ( dom (f | ( dom g))) by RELAT_1: 62;

      let x;

      assume

       A2: x in ( dom g);

      

      hence (g . x) = (f . x) by A1, Th2

      .= ((f | ( dom g)) . x) by A2, FUNCT_1: 49;

    end;

    registration

      let f be Function, g be f -compatible Function;

      cluster -> f -compatible for Subset of g;

      coherence

      proof

        let h be Subset of g;

        h = (g | ( dom h)) by Th32;

        hence thesis;

      end;

    end

    theorem :: GRFUNC_1:35

    g c= f & x in X & (X /\ ( dom f)) c= ( dom g) implies (f . x) = (g . x)

    proof

      assume that

       A1: g c= f and

       A2: x in X and

       A3: (X /\ ( dom f)) c= ( dom g);

      per cases ;

        suppose x in ( dom g);

        hence (f . x) = (g . x) by A1, Th2;

      end;

        suppose

         A4: not x in ( dom g);

        then not x in (X /\ ( dom f)) by A3;

        then not x in ( dom f) by A2, XBOOLE_0:def 4;

        

        hence (f . x) = {} by FUNCT_1:def 2

        .= (g . x) by A4, FUNCT_1:def 2;

      end;

    end;