:: BINOP_1 semantic presentation
begin
definition
let f be Function;
let a, b be set ;
funcf . (a,b) -> set equals :: BINOP_1:def 1
f . [a,b];
correctness
coherence
f . [a,b] is set ;
;
end;
:: deftheorem defines . BINOP_1:def_1_:_
for f being Function
for a, b being set holds f . (a,b) = f . [a,b];
definition
let A, B be non empty set ;
let C be set ;
let f be Function of [:A,B:],C;
let a be Element of A;
let b be Element of B;
:: original: .
redefine funcf . (a,b) -> Element of C;
coherence
f . (a,b) is Element of C
proof
reconsider ab = [a,b] as Element of [:A,B:] by ZFMISC_1:def_2;
f . ab is Element of C ;
hence f . (a,b) is Element of C ; ::_thesis: verum
end;
end;
theorem Th1: :: BINOP_1:1
for X, Y, Z being set
for f1, f2 being Function of [:X,Y:],Z st ( for x, y being set st x in X & y in Y holds
f1 . (x,y) = f2 . (x,y) ) holds
f1 = f2
proof
let X, Y, Z be set ; ::_thesis: for f1, f2 being Function of [:X,Y:],Z st ( for x, y being set st x in X & y in Y holds
f1 . (x,y) = f2 . (x,y) ) holds
f1 = f2
let f1, f2 be Function of [:X,Y:],Z; ::_thesis: ( ( for x, y being set st x in X & y in Y holds
f1 . (x,y) = f2 . (x,y) ) implies f1 = f2 )
assume A1: for x, y being set st x in X & y in Y holds
f1 . (x,y) = f2 . (x,y) ; ::_thesis: f1 = f2
for z being set st z in [:X,Y:] holds
f1 . z = f2 . z
proof
let z be set ; ::_thesis: ( z in [:X,Y:] implies f1 . z = f2 . z )
assume z in [:X,Y:] ; ::_thesis: f1 . z = f2 . z
then consider x, y being set such that
A2: ( x in X & y in Y ) and
A3: z = [x,y] by ZFMISC_1:def_2;
( f1 . (x,y) = f1 . z & f2 . (x,y) = f2 . z ) by A3;
hence f1 . z = f2 . z by A1, A2; ::_thesis: verum
end;
hence f1 = f2 by FUNCT_2:12; ::_thesis: verum
end;
theorem :: BINOP_1:2
for X, Y, Z being set
for f1, f2 being Function of [:X,Y:],Z st ( for a being Element of X
for b being Element of Y holds f1 . (a,b) = f2 . (a,b) ) holds
f1 = f2
proof
let X, Y, Z be set ; ::_thesis: for f1, f2 being Function of [:X,Y:],Z st ( for a being Element of X
for b being Element of Y holds f1 . (a,b) = f2 . (a,b) ) holds
f1 = f2
let f1, f2 be Function of [:X,Y:],Z; ::_thesis: ( ( for a being Element of X
for b being Element of Y holds f1 . (a,b) = f2 . (a,b) ) implies f1 = f2 )
assume for a being Element of X
for b being Element of Y holds f1 . (a,b) = f2 . (a,b) ; ::_thesis: f1 = f2
then for x, y being set st x in X & y in Y holds
f1 . (x,y) = f2 . (x,y) ;
hence f1 = f2 by Th1; ::_thesis: verum
end;
definition
let A be set ;
mode UnOp of A is Function of A,A;
mode BinOp of A is Function of [:A,A:],A;
end;
definition
let A be set ;
let f be BinOp of A;
let a, b be Element of A;
:: original: .
redefine funcf . (a,b) -> Element of A;
coherence
f . (a,b) is Element of A
proof
percases ( A <> {} or A = {} ) ;
suppose A <> {} ; ::_thesis: f . (a,b) is Element of A
then reconsider A = A as non empty set ;
reconsider f = f as BinOp of A ;
reconsider ab = [a,b] as Element of [:A,A:] by ZFMISC_1:def_2;
f . ab is Element of A ;
hence f . (a,b) is Element of A ; ::_thesis: verum
end;
supposeA1: A = {} ; ::_thesis: f . (a,b) is Element of A
then not [a,b] in dom f ;
then f . (a,b) = {} by FUNCT_1:def_2;
hence f . (a,b) is Element of A by A1, SUBSET_1:def_1; ::_thesis: verum
end;
end;
end;
end;
scheme :: BINOP_1:sch 1
FuncEx2{ F1() -> set , F2() -> set , F3() -> set , P1[ set , set , set ] } :
ex f being Function of [:F1(),F2():],F3() st
for x, y being set st x in F1() & y in F2() holds
P1[x,y,f . (x,y)]
provided
A1: for x, y being set st x in F1() & y in F2() holds
ex z being set st
( z in F3() & P1[x,y,z] )
proof
defpred S1[ set , set ] means for x1, y1 being set st $1 = [x1,y1] holds
P1[x1,y1,$2];
A2: for x being set st x in [:F1(),F2():] holds
ex z being set st
( z in F3() & S1[x,z] )
proof
let x be set ; ::_thesis: ( x in [:F1(),F2():] implies ex z being set st
( z in F3() & S1[x,z] ) )
assume x in [:F1(),F2():] ; ::_thesis: ex z being set st
( z in F3() & S1[x,z] )
then consider x1, y1 being set such that
A3: ( x1 in F1() & y1 in F2() ) and
A4: x = [x1,y1] by ZFMISC_1:def_2;
consider z being set such that
A5: z in F3() and
A6: P1[x1,y1,z] by A1, A3;
take z ; ::_thesis: ( z in F3() & S1[x,z] )
thus z in F3() by A5; ::_thesis: S1[x,z]
let x2, y2 be set ; ::_thesis: ( x = [x2,y2] implies P1[x2,y2,z] )
assume A7: x = [x2,y2] ; ::_thesis: P1[x2,y2,z]
then x1 = x2 by A4, XTUPLE_0:1;
hence P1[x2,y2,z] by A4, A6, A7, XTUPLE_0:1; ::_thesis: verum
end;
consider f being Function of [:F1(),F2():],F3() such that
A8: for x being set st x in [:F1(),F2():] holds
S1[x,f . x] from FUNCT_2:sch_1(A2);
take f ; ::_thesis: for x, y being set st x in F1() & y in F2() holds
P1[x,y,f . (x,y)]
let x, y be set ; ::_thesis: ( x in F1() & y in F2() implies P1[x,y,f . (x,y)] )
assume ( x in F1() & y in F2() ) ; ::_thesis: P1[x,y,f . (x,y)]
then [x,y] in [:F1(),F2():] by ZFMISC_1:def_2;
hence P1[x,y,f . (x,y)] by A8; ::_thesis: verum
end;
scheme :: BINOP_1:sch 2
Lambda2{ F1() -> set , F2() -> set , F3() -> set , F4( set , set ) -> set } :
ex f being Function of [:F1(),F2():],F3() st
for x, y being set st x in F1() & y in F2() holds
f . (x,y) = F4(x,y)
provided
A1: for x, y being set st x in F1() & y in F2() holds
F4(x,y) in F3()
proof
defpred S1[ set , set , set ] means $3 = F4($1,$2);
A2: for x, y being set st x in F1() & y in F2() holds
ex z being set st
( z in F3() & S1[x,y,z] ) by A1;
thus ex f being Function of [:F1(),F2():],F3() st
for x, y being set st x in F1() & y in F2() holds
S1[x,y,f . (x,y)] from BINOP_1:sch_1(A2); ::_thesis: verum
end;
scheme :: BINOP_1:sch 3
FuncEx2D{ F1() -> non empty set , F2() -> non empty set , F3() -> non empty set , P1[ set , set , set ] } :
ex f being Function of [:F1(),F2():],F3() st
for x being Element of F1()
for y being Element of F2() holds P1[x,y,f . (x,y)]
provided
A1: for x being Element of F1()
for y being Element of F2() ex z being Element of F3() st P1[x,y,z]
proof
defpred S1[ set , set ] means for x being Element of F1()
for y being Element of F2() st $1 = [x,y] holds
P1[x,y,$2];
A2: for p being Element of [:F1(),F2():] ex z being Element of F3() st S1[p,z]
proof
let p be Element of [:F1(),F2():]; ::_thesis: ex z being Element of F3() st S1[p,z]
consider x1, y1 being set such that
A3: x1 in F1() and
A4: y1 in F2() and
A5: p = [x1,y1] by ZFMISC_1:def_2;
reconsider y1 = y1 as Element of F2() by A4;
reconsider x1 = x1 as Element of F1() by A3;
consider z being Element of F3() such that
A6: P1[x1,y1,z] by A1;
take z ; ::_thesis: S1[p,z]
let x be Element of F1(); ::_thesis: for y being Element of F2() st p = [x,y] holds
P1[x,y,z]
let y be Element of F2(); ::_thesis: ( p = [x,y] implies P1[x,y,z] )
assume A7: p = [x,y] ; ::_thesis: P1[x,y,z]
then x1 = x by A5, XTUPLE_0:1;
hence P1[x,y,z] by A5, A6, A7, XTUPLE_0:1; ::_thesis: verum
end;
consider f being Function of [:F1(),F2():],F3() such that
A8: for p being Element of [:F1(),F2():] holds S1[p,f . p] from FUNCT_2:sch_3(A2);
take f ; ::_thesis: for x being Element of F1()
for y being Element of F2() holds P1[x,y,f . (x,y)]
let x be Element of F1(); ::_thesis: for y being Element of F2() holds P1[x,y,f . (x,y)]
let y be Element of F2(); ::_thesis: P1[x,y,f . (x,y)]
reconsider xy = [x,y] as Element of [:F1(),F2():] by ZFMISC_1:def_2;
P1[x,y,f . xy] by A8;
hence P1[x,y,f . (x,y)] ; ::_thesis: verum
end;
scheme :: BINOP_1:sch 4
Lambda2D{ F1() -> non empty set , F2() -> non empty set , F3() -> non empty set , F4( Element of F1(), Element of F2()) -> Element of F3() } :
ex f being Function of [:F1(),F2():],F3() st
for x being Element of F1()
for y being Element of F2() holds f . (x,y) = F4(x,y)
proof
defpred S1[ Element of F1(), Element of F2(), set ] means $3 = F4($1,$2);
A1: for x being Element of F1()
for y being Element of F2() ex z being Element of F3() st S1[x,y,z] ;
thus ex f being Function of [:F1(),F2():],F3() st
for x being Element of F1()
for y being Element of F2() holds S1[x,y,f . (x,y)] from BINOP_1:sch_3(A1); ::_thesis: verum
end;
definition
let A be set ;
let o be BinOp of A;
attro is commutative means :Def2: :: BINOP_1:def 2
for a, b being Element of A holds o . (a,b) = o . (b,a);
attro is associative means :: BINOP_1:def 3
for a, b, c being Element of A holds o . (a,(o . (b,c))) = o . ((o . (a,b)),c);
attro is idempotent means :: BINOP_1:def 4
for a being Element of A holds o . (a,a) = a;
end;
:: deftheorem Def2 defines commutative BINOP_1:def_2_:_
for A being set
for o being BinOp of A holds
( o is commutative iff for a, b being Element of A holds o . (a,b) = o . (b,a) );
:: deftheorem defines associative BINOP_1:def_3_:_
for A being set
for o being BinOp of A holds
( o is associative iff for a, b, c being Element of A holds o . (a,(o . (b,c))) = o . ((o . (a,b)),c) );
:: deftheorem defines idempotent BINOP_1:def_4_:_
for A being set
for o being BinOp of A holds
( o is idempotent iff for a being Element of A holds o . (a,a) = a );
registration
cluster Function-like V18([:{},{}:], {} ) -> empty commutative associative for Element of bool [:[:{},{}:],{}:];
coherence
for b1 being BinOp of {} holds
( b1 is empty & b1 is associative & b1 is commutative )
proof
let f be BinOp of {}; ::_thesis: ( f is empty & f is associative & f is commutative )
thus f is empty ; ::_thesis: ( f is associative & f is commutative )
A1: f c= [:(dom f),(rng f):] ;
hereby :: according to BINOP_1:def_3 ::_thesis: f is commutative
let a, b, c be Element of {} ; ::_thesis: f . (a,(f . (b,c))) = f . ((f . (a,b)),c)
thus f . (a,(f . (b,c))) = {} by A1, FUNCT_1:def_2
.= f . ((f . (a,b)),c) by A1, FUNCT_1:def_2 ; ::_thesis: verum
end;
let a, b be Element of {} ; :: according to BINOP_1:def_2 ::_thesis: f . (a,b) = f . (b,a)
thus f . (a,b) = {} by A1, FUNCT_1:def_2
.= f . (b,a) by A1, FUNCT_1:def_2 ; ::_thesis: verum
end;
end;
definition
let A be set ;
let e be Element of A;
let o be BinOp of A;
prede is_a_left_unity_wrt o means :Def5: :: BINOP_1:def 5
for a being Element of A holds o . (e,a) = a;
prede is_a_right_unity_wrt o means :Def6: :: BINOP_1:def 6
for a being Element of A holds o . (a,e) = a;
end;
:: deftheorem Def5 defines is_a_left_unity_wrt BINOP_1:def_5_:_
for A being set
for e being Element of A
for o being BinOp of A holds
( e is_a_left_unity_wrt o iff for a being Element of A holds o . (e,a) = a );
:: deftheorem Def6 defines is_a_right_unity_wrt BINOP_1:def_6_:_
for A being set
for e being Element of A
for o being BinOp of A holds
( e is_a_right_unity_wrt o iff for a being Element of A holds o . (a,e) = a );
definition
let A be set ;
let e be Element of A;
let o be BinOp of A;
prede is_a_unity_wrt o means :: BINOP_1:def 7
( e is_a_left_unity_wrt o & e is_a_right_unity_wrt o );
end;
:: deftheorem defines is_a_unity_wrt BINOP_1:def_7_:_
for A being set
for e being Element of A
for o being BinOp of A holds
( e is_a_unity_wrt o iff ( e is_a_left_unity_wrt o & e is_a_right_unity_wrt o ) );
theorem Th3: :: BINOP_1:3
for A being set
for o being BinOp of A
for e being Element of A holds
( e is_a_unity_wrt o iff for a being Element of A holds
( o . (e,a) = a & o . (a,e) = a ) )
proof
let A be set ; ::_thesis: for o being BinOp of A
for e being Element of A holds
( e is_a_unity_wrt o iff for a being Element of A holds
( o . (e,a) = a & o . (a,e) = a ) )
let o be BinOp of A; ::_thesis: for e being Element of A holds
( e is_a_unity_wrt o iff for a being Element of A holds
( o . (e,a) = a & o . (a,e) = a ) )
let e be Element of A; ::_thesis: ( e is_a_unity_wrt o iff for a being Element of A holds
( o . (e,a) = a & o . (a,e) = a ) )
thus ( e is_a_unity_wrt o implies for a being Element of A holds
( o . (e,a) = a & o . (a,e) = a ) ) ::_thesis: ( ( for a being Element of A holds
( o . (e,a) = a & o . (a,e) = a ) ) implies e is_a_unity_wrt o )
proof
assume ( e is_a_left_unity_wrt o & e is_a_right_unity_wrt o ) ; :: according to BINOP_1:def_7 ::_thesis: for a being Element of A holds
( o . (e,a) = a & o . (a,e) = a )
hence for a being Element of A holds
( o . (e,a) = a & o . (a,e) = a ) by Def5, Def6; ::_thesis: verum
end;
assume for a being Element of A holds
( o . (e,a) = a & o . (a,e) = a ) ; ::_thesis: e is_a_unity_wrt o
hence ( ( for a being Element of A holds o . (e,a) = a ) & ( for a being Element of A holds o . (a,e) = a ) ) ; :: according to BINOP_1:def_5,BINOP_1:def_6,BINOP_1:def_7 ::_thesis: verum
end;
theorem Th4: :: BINOP_1:4
for A being set
for o being BinOp of A
for e being Element of A st o is commutative holds
( e is_a_unity_wrt o iff for a being Element of A holds o . (e,a) = a )
proof
let A be set ; ::_thesis: for o being BinOp of A
for e being Element of A st o is commutative holds
( e is_a_unity_wrt o iff for a being Element of A holds o . (e,a) = a )
let o be BinOp of A; ::_thesis: for e being Element of A st o is commutative holds
( e is_a_unity_wrt o iff for a being Element of A holds o . (e,a) = a )
let e be Element of A; ::_thesis: ( o is commutative implies ( e is_a_unity_wrt o iff for a being Element of A holds o . (e,a) = a ) )
assume A1: o is commutative ; ::_thesis: ( e is_a_unity_wrt o iff for a being Element of A holds o . (e,a) = a )
now__::_thesis:_(_(_(_for_a_being_Element_of_A_holds_
(_o_._(e,a)_=_a_&_o_._(a,e)_=_a_)_)_implies_for_a_being_Element_of_A_holds_o_._(e,a)_=_a_)_&_(_(_for_a_being_Element_of_A_holds_o_._(e,a)_=_a_)_implies_for_a_being_Element_of_A_holds_
(_o_._(e,a)_=_a_&_o_._(a,e)_=_a_)_)_)
thus ( ( for a being Element of A holds
( o . (e,a) = a & o . (a,e) = a ) ) implies for a being Element of A holds o . (e,a) = a ) ; ::_thesis: ( ( for a being Element of A holds o . (e,a) = a ) implies for a being Element of A holds
( o . (e,a) = a & o . (a,e) = a ) )
assume A2: for a being Element of A holds o . (e,a) = a ; ::_thesis: for a being Element of A holds
( o . (e,a) = a & o . (a,e) = a )
let a be Element of A; ::_thesis: ( o . (e,a) = a & o . (a,e) = a )
thus o . (e,a) = a by A2; ::_thesis: o . (a,e) = a
thus o . (a,e) = o . (e,a) by A1, Def2
.= a by A2 ; ::_thesis: verum
end;
hence ( e is_a_unity_wrt o iff for a being Element of A holds o . (e,a) = a ) by Th3; ::_thesis: verum
end;
theorem Th5: :: BINOP_1:5
for A being set
for o being BinOp of A
for e being Element of A st o is commutative holds
( e is_a_unity_wrt o iff for a being Element of A holds o . (a,e) = a )
proof
let A be set ; ::_thesis: for o being BinOp of A
for e being Element of A st o is commutative holds
( e is_a_unity_wrt o iff for a being Element of A holds o . (a,e) = a )
let o be BinOp of A; ::_thesis: for e being Element of A st o is commutative holds
( e is_a_unity_wrt o iff for a being Element of A holds o . (a,e) = a )
let e be Element of A; ::_thesis: ( o is commutative implies ( e is_a_unity_wrt o iff for a being Element of A holds o . (a,e) = a ) )
assume A1: o is commutative ; ::_thesis: ( e is_a_unity_wrt o iff for a being Element of A holds o . (a,e) = a )
now__::_thesis:_(_(_(_for_a_being_Element_of_A_holds_
(_o_._(e,a)_=_a_&_o_._(a,e)_=_a_)_)_implies_for_a_being_Element_of_A_holds_o_._(a,e)_=_a_)_&_(_(_for_a_being_Element_of_A_holds_o_._(a,e)_=_a_)_implies_for_a_being_Element_of_A_holds_
(_o_._(e,a)_=_a_&_o_._(a,e)_=_a_)_)_)
thus ( ( for a being Element of A holds
( o . (e,a) = a & o . (a,e) = a ) ) implies for a being Element of A holds o . (a,e) = a ) ; ::_thesis: ( ( for a being Element of A holds o . (a,e) = a ) implies for a being Element of A holds
( o . (e,a) = a & o . (a,e) = a ) )
assume A2: for a being Element of A holds o . (a,e) = a ; ::_thesis: for a being Element of A holds
( o . (e,a) = a & o . (a,e) = a )
let a be Element of A; ::_thesis: ( o . (e,a) = a & o . (a,e) = a )
thus o . (e,a) = o . (a,e) by A1, Def2
.= a by A2 ; ::_thesis: o . (a,e) = a
thus o . (a,e) = a by A2; ::_thesis: verum
end;
hence ( e is_a_unity_wrt o iff for a being Element of A holds o . (a,e) = a ) by Th3; ::_thesis: verum
end;
theorem Th6: :: BINOP_1:6
for A being set
for o being BinOp of A
for e being Element of A st o is commutative holds
( e is_a_unity_wrt o iff e is_a_left_unity_wrt o )
proof
let A be set ; ::_thesis: for o being BinOp of A
for e being Element of A st o is commutative holds
( e is_a_unity_wrt o iff e is_a_left_unity_wrt o )
let o be BinOp of A; ::_thesis: for e being Element of A st o is commutative holds
( e is_a_unity_wrt o iff e is_a_left_unity_wrt o )
let e be Element of A; ::_thesis: ( o is commutative implies ( e is_a_unity_wrt o iff e is_a_left_unity_wrt o ) )
( e is_a_left_unity_wrt o iff for a being Element of A holds o . (e,a) = a ) by Def5;
hence ( o is commutative implies ( e is_a_unity_wrt o iff e is_a_left_unity_wrt o ) ) by Th4; ::_thesis: verum
end;
theorem Th7: :: BINOP_1:7
for A being set
for o being BinOp of A
for e being Element of A st o is commutative holds
( e is_a_unity_wrt o iff e is_a_right_unity_wrt o )
proof
let A be set ; ::_thesis: for o being BinOp of A
for e being Element of A st o is commutative holds
( e is_a_unity_wrt o iff e is_a_right_unity_wrt o )
let o be BinOp of A; ::_thesis: for e being Element of A st o is commutative holds
( e is_a_unity_wrt o iff e is_a_right_unity_wrt o )
let e be Element of A; ::_thesis: ( o is commutative implies ( e is_a_unity_wrt o iff e is_a_right_unity_wrt o ) )
( e is_a_right_unity_wrt o iff for a being Element of A holds o . (a,e) = a ) by Def6;
hence ( o is commutative implies ( e is_a_unity_wrt o iff e is_a_right_unity_wrt o ) ) by Th5; ::_thesis: verum
end;
theorem :: BINOP_1:8
for A being set
for o being BinOp of A
for e being Element of A st o is commutative holds
( e is_a_left_unity_wrt o iff e is_a_right_unity_wrt o )
proof
let A be set ; ::_thesis: for o being BinOp of A
for e being Element of A st o is commutative holds
( e is_a_left_unity_wrt o iff e is_a_right_unity_wrt o )
let o be BinOp of A; ::_thesis: for e being Element of A st o is commutative holds
( e is_a_left_unity_wrt o iff e is_a_right_unity_wrt o )
let e be Element of A; ::_thesis: ( o is commutative implies ( e is_a_left_unity_wrt o iff e is_a_right_unity_wrt o ) )
assume A1: o is commutative ; ::_thesis: ( e is_a_left_unity_wrt o iff e is_a_right_unity_wrt o )
then ( e is_a_unity_wrt o iff e is_a_left_unity_wrt o ) by Th6;
hence ( e is_a_left_unity_wrt o iff e is_a_right_unity_wrt o ) by A1, Th7; ::_thesis: verum
end;
theorem Th9: :: BINOP_1:9
for A being set
for o being BinOp of A
for e1, e2 being Element of A st e1 is_a_left_unity_wrt o & e2 is_a_right_unity_wrt o holds
e1 = e2
proof
let A be set ; ::_thesis: for o being BinOp of A
for e1, e2 being Element of A st e1 is_a_left_unity_wrt o & e2 is_a_right_unity_wrt o holds
e1 = e2
let o be BinOp of A; ::_thesis: for e1, e2 being Element of A st e1 is_a_left_unity_wrt o & e2 is_a_right_unity_wrt o holds
e1 = e2
let e1, e2 be Element of A; ::_thesis: ( e1 is_a_left_unity_wrt o & e2 is_a_right_unity_wrt o implies e1 = e2 )
assume that
A1: e1 is_a_left_unity_wrt o and
A2: e2 is_a_right_unity_wrt o ; ::_thesis: e1 = e2
thus e1 = o . (e1,e2) by A2, Def6
.= e2 by A1, Def5 ; ::_thesis: verum
end;
theorem Th10: :: BINOP_1:10
for A being set
for o being BinOp of A
for e1, e2 being Element of A st e1 is_a_unity_wrt o & e2 is_a_unity_wrt o holds
e1 = e2
proof
let A be set ; ::_thesis: for o being BinOp of A
for e1, e2 being Element of A st e1 is_a_unity_wrt o & e2 is_a_unity_wrt o holds
e1 = e2
let o be BinOp of A; ::_thesis: for e1, e2 being Element of A st e1 is_a_unity_wrt o & e2 is_a_unity_wrt o holds
e1 = e2
let e1, e2 be Element of A; ::_thesis: ( e1 is_a_unity_wrt o & e2 is_a_unity_wrt o implies e1 = e2 )
assume that
e1 is_a_left_unity_wrt o and
A1: ( e1 is_a_right_unity_wrt o & e2 is_a_left_unity_wrt o ) and
e2 is_a_right_unity_wrt o ; :: according to BINOP_1:def_7 ::_thesis: e1 = e2
thus e1 = e2 by A1, Th9; ::_thesis: verum
end;
definition
let A be set ;
let o be BinOp of A;
assume A1: ex e being Element of A st e is_a_unity_wrt o ;
func the_unity_wrt o -> Element of A means :: BINOP_1:def 8
it is_a_unity_wrt o;
existence
ex b1 being Element of A st b1 is_a_unity_wrt o by A1;
uniqueness
for b1, b2 being Element of A st b1 is_a_unity_wrt o & b2 is_a_unity_wrt o holds
b1 = b2 by Th10;
end;
:: deftheorem defines the_unity_wrt BINOP_1:def_8_:_
for A being set
for o being BinOp of A st ex e being Element of A st e is_a_unity_wrt o holds
for b3 being Element of A holds
( b3 = the_unity_wrt o iff b3 is_a_unity_wrt o );
definition
let A be set ;
let o9, o be BinOp of A;
predo9 is_left_distributive_wrt o means :Def9: :: BINOP_1:def 9
for a, b, c being Element of A holds o9 . (a,(o . (b,c))) = o . ((o9 . (a,b)),(o9 . (a,c)));
predo9 is_right_distributive_wrt o means :Def10: :: BINOP_1:def 10
for a, b, c being Element of A holds o9 . ((o . (a,b)),c) = o . ((o9 . (a,c)),(o9 . (b,c)));
end;
:: deftheorem Def9 defines is_left_distributive_wrt BINOP_1:def_9_:_
for A being set
for o9, o being BinOp of A holds
( o9 is_left_distributive_wrt o iff for a, b, c being Element of A holds o9 . (a,(o . (b,c))) = o . ((o9 . (a,b)),(o9 . (a,c))) );
:: deftheorem Def10 defines is_right_distributive_wrt BINOP_1:def_10_:_
for A being set
for o9, o being BinOp of A holds
( o9 is_right_distributive_wrt o iff for a, b, c being Element of A holds o9 . ((o . (a,b)),c) = o . ((o9 . (a,c)),(o9 . (b,c))) );
definition
let A be set ;
let o9, o be BinOp of A;
predo9 is_distributive_wrt o means :: BINOP_1:def 11
( o9 is_left_distributive_wrt o & o9 is_right_distributive_wrt o );
end;
:: deftheorem defines is_distributive_wrt BINOP_1:def_11_:_
for A being set
for o9, o being BinOp of A holds
( o9 is_distributive_wrt o iff ( o9 is_left_distributive_wrt o & o9 is_right_distributive_wrt o ) );
theorem Th11: :: BINOP_1:11
for A being set
for o9, o being BinOp of A holds
( o9 is_distributive_wrt o iff for a, b, c being Element of A holds
( o9 . (a,(o . (b,c))) = o . ((o9 . (a,b)),(o9 . (a,c))) & o9 . ((o . (a,b)),c) = o . ((o9 . (a,c)),(o9 . (b,c))) ) )
proof
let A be set ; ::_thesis: for o9, o being BinOp of A holds
( o9 is_distributive_wrt o iff for a, b, c being Element of A holds
( o9 . (a,(o . (b,c))) = o . ((o9 . (a,b)),(o9 . (a,c))) & o9 . ((o . (a,b)),c) = o . ((o9 . (a,c)),(o9 . (b,c))) ) )
let o9, o be BinOp of A; ::_thesis: ( o9 is_distributive_wrt o iff for a, b, c being Element of A holds
( o9 . (a,(o . (b,c))) = o . ((o9 . (a,b)),(o9 . (a,c))) & o9 . ((o . (a,b)),c) = o . ((o9 . (a,c)),(o9 . (b,c))) ) )
thus ( o9 is_distributive_wrt o implies for a, b, c being Element of A holds
( o9 . (a,(o . (b,c))) = o . ((o9 . (a,b)),(o9 . (a,c))) & o9 . ((o . (a,b)),c) = o . ((o9 . (a,c)),(o9 . (b,c))) ) ) ::_thesis: ( ( for a, b, c being Element of A holds
( o9 . (a,(o . (b,c))) = o . ((o9 . (a,b)),(o9 . (a,c))) & o9 . ((o . (a,b)),c) = o . ((o9 . (a,c)),(o9 . (b,c))) ) ) implies o9 is_distributive_wrt o )
proof
assume ( o9 is_left_distributive_wrt o & o9 is_right_distributive_wrt o ) ; :: according to BINOP_1:def_11 ::_thesis: for a, b, c being Element of A holds
( o9 . (a,(o . (b,c))) = o . ((o9 . (a,b)),(o9 . (a,c))) & o9 . ((o . (a,b)),c) = o . ((o9 . (a,c)),(o9 . (b,c))) )
hence for a, b, c being Element of A holds
( o9 . (a,(o . (b,c))) = o . ((o9 . (a,b)),(o9 . (a,c))) & o9 . ((o . (a,b)),c) = o . ((o9 . (a,c)),(o9 . (b,c))) ) by Def9, Def10; ::_thesis: verum
end;
assume for a, b, c being Element of A holds
( o9 . (a,(o . (b,c))) = o . ((o9 . (a,b)),(o9 . (a,c))) & o9 . ((o . (a,b)),c) = o . ((o9 . (a,c)),(o9 . (b,c))) ) ; ::_thesis: o9 is_distributive_wrt o
hence ( ( for a, b, c being Element of A holds o9 . (a,(o . (b,c))) = o . ((o9 . (a,b)),(o9 . (a,c))) ) & ( for a, b, c being Element of A holds o9 . ((o . (a,b)),c) = o . ((o9 . (a,c)),(o9 . (b,c))) ) ) ; :: according to BINOP_1:def_9,BINOP_1:def_10,BINOP_1:def_11 ::_thesis: verum
end;
theorem Th12: :: BINOP_1:12
for A being non empty set
for o, o9 being BinOp of A st o9 is commutative holds
( o9 is_distributive_wrt o iff for a, b, c being Element of A holds o9 . (a,(o . (b,c))) = o . ((o9 . (a,b)),(o9 . (a,c))) )
proof
let A be non empty set ; ::_thesis: for o, o9 being BinOp of A st o9 is commutative holds
( o9 is_distributive_wrt o iff for a, b, c being Element of A holds o9 . (a,(o . (b,c))) = o . ((o9 . (a,b)),(o9 . (a,c))) )
let o, o9 be BinOp of A; ::_thesis: ( o9 is commutative implies ( o9 is_distributive_wrt o iff for a, b, c being Element of A holds o9 . (a,(o . (b,c))) = o . ((o9 . (a,b)),(o9 . (a,c))) ) )
assume A1: o9 is commutative ; ::_thesis: ( o9 is_distributive_wrt o iff for a, b, c being Element of A holds o9 . (a,(o . (b,c))) = o . ((o9 . (a,b)),(o9 . (a,c))) )
( ( for a, b, c being Element of A holds
( o9 . (a,(o . (b,c))) = o . ((o9 . (a,b)),(o9 . (a,c))) & o9 . ((o . (a,b)),c) = o . ((o9 . (a,c)),(o9 . (b,c))) ) ) iff for a, b, c being Element of A holds o9 . (a,(o . (b,c))) = o . ((o9 . (a,b)),(o9 . (a,c))) )
proof
thus ( ( for a, b, c being Element of A holds
( o9 . (a,(o . (b,c))) = o . ((o9 . (a,b)),(o9 . (a,c))) & o9 . ((o . (a,b)),c) = o . ((o9 . (a,c)),(o9 . (b,c))) ) ) implies for a, b, c being Element of A holds o9 . (a,(o . (b,c))) = o . ((o9 . (a,b)),(o9 . (a,c))) ) ; ::_thesis: ( ( for a, b, c being Element of A holds o9 . (a,(o . (b,c))) = o . ((o9 . (a,b)),(o9 . (a,c))) ) implies for a, b, c being Element of A holds
( o9 . (a,(o . (b,c))) = o . ((o9 . (a,b)),(o9 . (a,c))) & o9 . ((o . (a,b)),c) = o . ((o9 . (a,c)),(o9 . (b,c))) ) )
assume A2: for a, b, c being Element of A holds o9 . (a,(o . (b,c))) = o . ((o9 . (a,b)),(o9 . (a,c))) ; ::_thesis: for a, b, c being Element of A holds
( o9 . (a,(o . (b,c))) = o . ((o9 . (a,b)),(o9 . (a,c))) & o9 . ((o . (a,b)),c) = o . ((o9 . (a,c)),(o9 . (b,c))) )
let a, b, c be Element of A; ::_thesis: ( o9 . (a,(o . (b,c))) = o . ((o9 . (a,b)),(o9 . (a,c))) & o9 . ((o . (a,b)),c) = o . ((o9 . (a,c)),(o9 . (b,c))) )
thus o9 . (a,(o . (b,c))) = o . ((o9 . (a,b)),(o9 . (a,c))) by A2; ::_thesis: o9 . ((o . (a,b)),c) = o . ((o9 . (a,c)),(o9 . (b,c)))
thus o9 . ((o . (a,b)),c) = o9 . (c,(o . (a,b))) by A1, Def2
.= o . ((o9 . (c,a)),(o9 . (c,b))) by A2
.= o . ((o9 . (a,c)),(o9 . (c,b))) by A1, Def2
.= o . ((o9 . (a,c)),(o9 . (b,c))) by A1, Def2 ; ::_thesis: verum
end;
hence ( o9 is_distributive_wrt o iff for a, b, c being Element of A holds o9 . (a,(o . (b,c))) = o . ((o9 . (a,b)),(o9 . (a,c))) ) by Th11; ::_thesis: verum
end;
theorem Th13: :: BINOP_1:13
for A being non empty set
for o, o9 being BinOp of A st o9 is commutative holds
( o9 is_distributive_wrt o iff for a, b, c being Element of A holds o9 . ((o . (a,b)),c) = o . ((o9 . (a,c)),(o9 . (b,c))) )
proof
let A be non empty set ; ::_thesis: for o, o9 being BinOp of A st o9 is commutative holds
( o9 is_distributive_wrt o iff for a, b, c being Element of A holds o9 . ((o . (a,b)),c) = o . ((o9 . (a,c)),(o9 . (b,c))) )
let o, o9 be BinOp of A; ::_thesis: ( o9 is commutative implies ( o9 is_distributive_wrt o iff for a, b, c being Element of A holds o9 . ((o . (a,b)),c) = o . ((o9 . (a,c)),(o9 . (b,c))) ) )
assume A1: o9 is commutative ; ::_thesis: ( o9 is_distributive_wrt o iff for a, b, c being Element of A holds o9 . ((o . (a,b)),c) = o . ((o9 . (a,c)),(o9 . (b,c))) )
( ( for a, b, c being Element of A holds
( o9 . (a,(o . (b,c))) = o . ((o9 . (a,b)),(o9 . (a,c))) & o9 . ((o . (a,b)),c) = o . ((o9 . (a,c)),(o9 . (b,c))) ) ) iff for a, b, c being Element of A holds o9 . ((o . (a,b)),c) = o . ((o9 . (a,c)),(o9 . (b,c))) )
proof
thus ( ( for a, b, c being Element of A holds
( o9 . (a,(o . (b,c))) = o . ((o9 . (a,b)),(o9 . (a,c))) & o9 . ((o . (a,b)),c) = o . ((o9 . (a,c)),(o9 . (b,c))) ) ) implies for a, b, c being Element of A holds o9 . ((o . (a,b)),c) = o . ((o9 . (a,c)),(o9 . (b,c))) ) ; ::_thesis: ( ( for a, b, c being Element of A holds o9 . ((o . (a,b)),c) = o . ((o9 . (a,c)),(o9 . (b,c))) ) implies for a, b, c being Element of A holds
( o9 . (a,(o . (b,c))) = o . ((o9 . (a,b)),(o9 . (a,c))) & o9 . ((o . (a,b)),c) = o . ((o9 . (a,c)),(o9 . (b,c))) ) )
assume A2: for a, b, c being Element of A holds o9 . ((o . (a,b)),c) = o . ((o9 . (a,c)),(o9 . (b,c))) ; ::_thesis: for a, b, c being Element of A holds
( o9 . (a,(o . (b,c))) = o . ((o9 . (a,b)),(o9 . (a,c))) & o9 . ((o . (a,b)),c) = o . ((o9 . (a,c)),(o9 . (b,c))) )
let a, b, c be Element of A; ::_thesis: ( o9 . (a,(o . (b,c))) = o . ((o9 . (a,b)),(o9 . (a,c))) & o9 . ((o . (a,b)),c) = o . ((o9 . (a,c)),(o9 . (b,c))) )
thus o9 . (a,(o . (b,c))) = o9 . ((o . (b,c)),a) by A1, Def2
.= o . ((o9 . (b,a)),(o9 . (c,a))) by A2
.= o . ((o9 . (a,b)),(o9 . (c,a))) by A1, Def2
.= o . ((o9 . (a,b)),(o9 . (a,c))) by A1, Def2 ; ::_thesis: o9 . ((o . (a,b)),c) = o . ((o9 . (a,c)),(o9 . (b,c)))
thus o9 . ((o . (a,b)),c) = o . ((o9 . (a,c)),(o9 . (b,c))) by A2; ::_thesis: verum
end;
hence ( o9 is_distributive_wrt o iff for a, b, c being Element of A holds o9 . ((o . (a,b)),c) = o . ((o9 . (a,c)),(o9 . (b,c))) ) by Th11; ::_thesis: verum
end;
theorem Th14: :: BINOP_1:14
for A being non empty set
for o, o9 being BinOp of A st o9 is commutative holds
( o9 is_distributive_wrt o iff o9 is_left_distributive_wrt o )
proof
let A be non empty set ; ::_thesis: for o, o9 being BinOp of A st o9 is commutative holds
( o9 is_distributive_wrt o iff o9 is_left_distributive_wrt o )
let o, o9 be BinOp of A; ::_thesis: ( o9 is commutative implies ( o9 is_distributive_wrt o iff o9 is_left_distributive_wrt o ) )
( o9 is_left_distributive_wrt o iff for a, b, c being Element of A holds o9 . (a,(o . (b,c))) = o . ((o9 . (a,b)),(o9 . (a,c))) ) by Def9;
hence ( o9 is commutative implies ( o9 is_distributive_wrt o iff o9 is_left_distributive_wrt o ) ) by Th12; ::_thesis: verum
end;
theorem Th15: :: BINOP_1:15
for A being non empty set
for o, o9 being BinOp of A st o9 is commutative holds
( o9 is_distributive_wrt o iff o9 is_right_distributive_wrt o )
proof
let A be non empty set ; ::_thesis: for o, o9 being BinOp of A st o9 is commutative holds
( o9 is_distributive_wrt o iff o9 is_right_distributive_wrt o )
let o, o9 be BinOp of A; ::_thesis: ( o9 is commutative implies ( o9 is_distributive_wrt o iff o9 is_right_distributive_wrt o ) )
( o9 is_right_distributive_wrt o iff for a, b, c being Element of A holds o9 . ((o . (a,b)),c) = o . ((o9 . (a,c)),(o9 . (b,c))) ) by Def10;
hence ( o9 is commutative implies ( o9 is_distributive_wrt o iff o9 is_right_distributive_wrt o ) ) by Th13; ::_thesis: verum
end;
theorem :: BINOP_1:16
for A being non empty set
for o, o9 being BinOp of A st o9 is commutative holds
( o9 is_right_distributive_wrt o iff o9 is_left_distributive_wrt o )
proof
let A be non empty set ; ::_thesis: for o, o9 being BinOp of A st o9 is commutative holds
( o9 is_right_distributive_wrt o iff o9 is_left_distributive_wrt o )
let o, o9 be BinOp of A; ::_thesis: ( o9 is commutative implies ( o9 is_right_distributive_wrt o iff o9 is_left_distributive_wrt o ) )
assume A1: o9 is commutative ; ::_thesis: ( o9 is_right_distributive_wrt o iff o9 is_left_distributive_wrt o )
then ( o9 is_distributive_wrt o iff o9 is_left_distributive_wrt o ) by Th14;
hence ( o9 is_right_distributive_wrt o iff o9 is_left_distributive_wrt o ) by A1, Th15; ::_thesis: verum
end;
definition
let A be set ;
let u be UnOp of A;
let o be BinOp of A;
predu is_distributive_wrt o means :Def12: :: BINOP_1:def 12
for a, b being Element of A holds u . (o . (a,b)) = o . ((u . a),(u . b));
end;
:: deftheorem Def12 defines is_distributive_wrt BINOP_1:def_12_:_
for A being set
for u being UnOp of A
for o being BinOp of A holds
( u is_distributive_wrt o iff for a, b being Element of A holds u . (o . (a,b)) = o . ((u . a),(u . b)) );
definition
canceled;
canceled;
canceled;
let A be non empty set ;
let e be Element of A;
let o be BinOp of A;
redefine pred e is_a_left_unity_wrt o means :: BINOP_1:def 16
for a being Element of A holds o . (e,a) = a;
correctness
compatibility
( e is_a_left_unity_wrt o iff for a being Element of A holds o . (e,a) = a );
by Def5;
redefine pred e is_a_right_unity_wrt o means :: BINOP_1:def 17
for a being Element of A holds o . (a,e) = a;
correctness
compatibility
( e is_a_right_unity_wrt o iff for a being Element of A holds o . (a,e) = a );
by Def6;
end;
:: deftheorem BINOP_1:def_13_:_
canceled;
:: deftheorem BINOP_1:def_14_:_
canceled;
:: deftheorem BINOP_1:def_15_:_
canceled;
:: deftheorem defines is_a_left_unity_wrt BINOP_1:def_16_:_
for A being non empty set
for e being Element of A
for o being BinOp of A holds
( e is_a_left_unity_wrt o iff for a being Element of A holds o . (e,a) = a );
:: deftheorem defines is_a_right_unity_wrt BINOP_1:def_17_:_
for A being non empty set
for e being Element of A
for o being BinOp of A holds
( e is_a_right_unity_wrt o iff for a being Element of A holds o . (a,e) = a );
definition
let A be non empty set ;
let o9, o be BinOp of A;
redefine pred o9 is_left_distributive_wrt o means :: BINOP_1:def 18
for a, b, c being Element of A holds o9 . (a,(o . (b,c))) = o . ((o9 . (a,b)),(o9 . (a,c)));
correctness
compatibility
( o9 is_left_distributive_wrt o iff for a, b, c being Element of A holds o9 . (a,(o . (b,c))) = o . ((o9 . (a,b)),(o9 . (a,c))) );
by Def9;
redefine pred o9 is_right_distributive_wrt o means :: BINOP_1:def 19
for a, b, c being Element of A holds o9 . ((o . (a,b)),c) = o . ((o9 . (a,c)),(o9 . (b,c)));
correctness
compatibility
( o9 is_right_distributive_wrt o iff for a, b, c being Element of A holds o9 . ((o . (a,b)),c) = o . ((o9 . (a,c)),(o9 . (b,c))) );
by Def10;
end;
:: deftheorem defines is_left_distributive_wrt BINOP_1:def_18_:_
for A being non empty set
for o9, o being BinOp of A holds
( o9 is_left_distributive_wrt o iff for a, b, c being Element of A holds o9 . (a,(o . (b,c))) = o . ((o9 . (a,b)),(o9 . (a,c))) );
:: deftheorem defines is_right_distributive_wrt BINOP_1:def_19_:_
for A being non empty set
for o9, o being BinOp of A holds
( o9 is_right_distributive_wrt o iff for a, b, c being Element of A holds o9 . ((o . (a,b)),c) = o . ((o9 . (a,c)),(o9 . (b,c))) );
definition
let A be non empty set ;
let u be UnOp of A;
let o be BinOp of A;
redefine pred u is_distributive_wrt o means :: BINOP_1:def 20
for a, b being Element of A holds u . (o . (a,b)) = o . ((u . a),(u . b));
correctness
compatibility
( u is_distributive_wrt o iff for a, b being Element of A holds u . (o . (a,b)) = o . ((u . a),(u . b)) );
by Def12;
end;
:: deftheorem defines is_distributive_wrt BINOP_1:def_20_:_
for A being non empty set
for u being UnOp of A
for o being BinOp of A holds
( u is_distributive_wrt o iff for a, b being Element of A holds u . (o . (a,b)) = o . ((u . a),(u . b)) );
theorem :: BINOP_1:17
for X, Y, Z, x, y being set
for f being Function of [:X,Y:],Z st x in X & y in Y & Z <> {} holds
f . (x,y) in Z
proof
let X, Y, Z, x, y be set ; ::_thesis: for f being Function of [:X,Y:],Z st x in X & y in Y & Z <> {} holds
f . (x,y) in Z
let f be Function of [:X,Y:],Z; ::_thesis: ( x in X & y in Y & Z <> {} implies f . (x,y) in Z )
assume ( x in X & y in Y ) ; ::_thesis: ( not Z <> {} or f . (x,y) in Z )
then [x,y] in [:X,Y:] by ZFMISC_1:87;
hence ( not Z <> {} or f . (x,y) in Z ) by FUNCT_2:5; ::_thesis: verum
end;
theorem :: BINOP_1:18
for x, y, X, Y, Z being set
for f being Function of [:X,Y:],Z
for g being Function st Z <> {} & x in X & y in Y holds
(g * f) . (x,y) = g . (f . (x,y))
proof
let x, y, X, Y, Z be set ; ::_thesis: for f being Function of [:X,Y:],Z
for g being Function st Z <> {} & x in X & y in Y holds
(g * f) . (x,y) = g . (f . (x,y))
let f be Function of [:X,Y:],Z; ::_thesis: for g being Function st Z <> {} & x in X & y in Y holds
(g * f) . (x,y) = g . (f . (x,y))
let g be Function; ::_thesis: ( Z <> {} & x in X & y in Y implies (g * f) . (x,y) = g . (f . (x,y)) )
assume A1: Z <> {} ; ::_thesis: ( not x in X or not y in Y or (g * f) . (x,y) = g . (f . (x,y)) )
assume ( x in X & y in Y ) ; ::_thesis: (g * f) . (x,y) = g . (f . (x,y))
then [x,y] in [:X,Y:] by ZFMISC_1:87;
hence (g * f) . (x,y) = g . (f . (x,y)) by A1, FUNCT_2:15; ::_thesis: verum
end;
theorem :: BINOP_1:19
for X, Y being set
for f being Function st dom f = [:X,Y:] holds
( f is constant iff for x1, x2, y1, y2 being set st x1 in X & x2 in X & y1 in Y & y2 in Y holds
f . (x1,y1) = f . (x2,y2) )
proof
let X, Y be set ; ::_thesis: for f being Function st dom f = [:X,Y:] holds
( f is constant iff for x1, x2, y1, y2 being set st x1 in X & x2 in X & y1 in Y & y2 in Y holds
f . (x1,y1) = f . (x2,y2) )
let f be Function; ::_thesis: ( dom f = [:X,Y:] implies ( f is constant iff for x1, x2, y1, y2 being set st x1 in X & x2 in X & y1 in Y & y2 in Y holds
f . (x1,y1) = f . (x2,y2) ) )
assume A1: dom f = [:X,Y:] ; ::_thesis: ( f is constant iff for x1, x2, y1, y2 being set st x1 in X & x2 in X & y1 in Y & y2 in Y holds
f . (x1,y1) = f . (x2,y2) )
hereby ::_thesis: ( ( for x1, x2, y1, y2 being set st x1 in X & x2 in X & y1 in Y & y2 in Y holds
f . (x1,y1) = f . (x2,y2) ) implies f is constant )
assume A2: f is constant ; ::_thesis: for x1, x2, y1, y2 being set st x1 in X & x2 in X & y1 in Y & y2 in Y holds
f . (x1,y1) = f . (x2,y2)
let x1, x2, y1, y2 be set ; ::_thesis: ( x1 in X & x2 in X & y1 in Y & y2 in Y implies f . (x1,y1) = f . (x2,y2) )
assume ( x1 in X & x2 in X & y1 in Y & y2 in Y ) ; ::_thesis: f . (x1,y1) = f . (x2,y2)
then ( [x1,y1] in [:X,Y:] & [x2,y2] in [:X,Y:] ) by ZFMISC_1:87;
hence f . (x1,y1) = f . (x2,y2) by A1, A2, FUNCT_1:def_10; ::_thesis: verum
end;
assume A3: for x1, x2, y1, y2 being set st x1 in X & x2 in X & y1 in Y & y2 in Y holds
f . (x1,y1) = f . (x2,y2) ; ::_thesis: f is constant
let x be set ; :: according to FUNCT_1:def_10 ::_thesis: for b1 being set holds
( not x in dom f or not b1 in dom f or f . x = f . b1 )
let y be set ; ::_thesis: ( not x in dom f or not y in dom f or f . x = f . y )
assume x in dom f ; ::_thesis: ( not y in dom f or f . x = f . y )
then consider x1, y1 being set such that
A4: ( x1 in X & y1 in Y ) and
A5: x = [x1,y1] by A1, ZFMISC_1:84;
assume y in dom f ; ::_thesis: f . x = f . y
then consider x2, y2 being set such that
A6: ( x2 in X & y2 in Y ) and
A7: y = [x2,y2] by A1, ZFMISC_1:84;
thus f . x = f . (x1,y1) by A5
.= f . (x2,y2) by A3, A4, A6
.= f . y by A7 ; ::_thesis: verum
end;
theorem :: BINOP_1:20
for X, Y, Z being set
for f1, f2 being PartFunc of [:X,Y:],Z st dom f1 = dom f2 & ( for x, y being set st [x,y] in dom f1 holds
f1 . (x,y) = f2 . (x,y) ) holds
f1 = f2
proof
let X, Y, Z be set ; ::_thesis: for f1, f2 being PartFunc of [:X,Y:],Z st dom f1 = dom f2 & ( for x, y being set st [x,y] in dom f1 holds
f1 . (x,y) = f2 . (x,y) ) holds
f1 = f2
let f1, f2 be PartFunc of [:X,Y:],Z; ::_thesis: ( dom f1 = dom f2 & ( for x, y being set st [x,y] in dom f1 holds
f1 . (x,y) = f2 . (x,y) ) implies f1 = f2 )
assume that
A1: dom f1 = dom f2 and
A2: for x, y being set st [x,y] in dom f1 holds
f1 . (x,y) = f2 . (x,y) ; ::_thesis: f1 = f2
for z being set st z in dom f1 holds
f1 . z = f2 . z
proof
let z be set ; ::_thesis: ( z in dom f1 implies f1 . z = f2 . z )
assume A3: z in dom f1 ; ::_thesis: f1 . z = f2 . z
then consider x, y being set such that
A4: z = [x,y] by RELAT_1:def_1;
f1 . (x,y) = f2 . (x,y) by A2, A3, A4;
hence f1 . z = f2 . z by A4; ::_thesis: verum
end;
hence f1 = f2 by A1, FUNCT_1:2; ::_thesis: verum
end;
scheme :: BINOP_1:sch 5
PartFuncEx2{ F1() -> set , F2() -> set , F3() -> set , P1[ set , set , set ] } :
ex f being PartFunc of [:F1(),F2():],F3() st
( ( for x, y being set holds
( [x,y] in dom f iff ( x in F1() & y in F2() & ex z being set st P1[x,y,z] ) ) ) & ( for x, y being set st [x,y] in dom f holds
P1[x,y,f . (x,y)] ) )
provided
A1: for x, y, z being set st x in F1() & y in F2() & P1[x,y,z] holds
z in F3() and
A2: for x, y, z1, z2 being set st x in F1() & y in F2() & P1[x,y,z1] & P1[x,y,z2] holds
z1 = z2
proof
defpred S1[ set , set ] means for x1, y1 being set st $1 = [x1,y1] holds
P1[x1,y1,$2];
A3: for x, z being set st x in [:F1(),F2():] & S1[x,z] holds
z in F3()
proof
let x, z be set ; ::_thesis: ( x in [:F1(),F2():] & S1[x,z] implies z in F3() )
assume x in [:F1(),F2():] ; ::_thesis: ( not S1[x,z] or z in F3() )
then A4: ex x1, y1 being set st
( x1 in F1() & y1 in F2() & x = [x1,y1] ) by ZFMISC_1:def_2;
assume for x1, y1 being set st x = [x1,y1] holds
P1[x1,y1,z] ; ::_thesis: z in F3()
hence z in F3() by A1, A4; ::_thesis: verum
end;
A5: for x, z1, z2 being set st x in [:F1(),F2():] & S1[x,z1] & S1[x,z2] holds
z1 = z2
proof
let x, z1, z2 be set ; ::_thesis: ( x in [:F1(),F2():] & S1[x,z1] & S1[x,z2] implies z1 = z2 )
assume that
A6: x in [:F1(),F2():] and
A7: ( ( for x1, y1 being set st x = [x1,y1] holds
P1[x1,y1,z1] ) & ( for x1, y1 being set st x = [x1,y1] holds
P1[x1,y1,z2] ) ) ; ::_thesis: z1 = z2
consider x1, y1 being set such that
A8: ( x1 in F1() & y1 in F2() ) and
A9: x = [x1,y1] by A6, ZFMISC_1:def_2;
( P1[x1,y1,z1] & P1[x1,y1,z2] ) by A7, A9;
hence z1 = z2 by A2, A8; ::_thesis: verum
end;
consider f being PartFunc of [:F1(),F2():],F3() such that
A10: for x being set holds
( x in dom f iff ( x in [:F1(),F2():] & ex z being set st S1[x,z] ) ) and
A11: for x being set st x in dom f holds
S1[x,f . x] from PARTFUN1:sch_2(A3, A5);
take f ; ::_thesis: ( ( for x, y being set holds
( [x,y] in dom f iff ( x in F1() & y in F2() & ex z being set st P1[x,y,z] ) ) ) & ( for x, y being set st [x,y] in dom f holds
P1[x,y,f . (x,y)] ) )
thus for x, y being set holds
( [x,y] in dom f iff ( x in F1() & y in F2() & ex z being set st P1[x,y,z] ) ) ::_thesis: for x, y being set st [x,y] in dom f holds
P1[x,y,f . (x,y)]
proof
let x, y be set ; ::_thesis: ( [x,y] in dom f iff ( x in F1() & y in F2() & ex z being set st P1[x,y,z] ) )
thus ( [x,y] in dom f implies ( x in F1() & y in F2() & ex z being set st P1[x,y,z] ) ) ::_thesis: ( x in F1() & y in F2() & ex z being set st P1[x,y,z] implies [x,y] in dom f )
proof
assume A12: [x,y] in dom f ; ::_thesis: ( x in F1() & y in F2() & ex z being set st P1[x,y,z] )
hence ( x in F1() & y in F2() ) by ZFMISC_1:87; ::_thesis: ex z being set st P1[x,y,z]
consider z being set such that
A13: for x1, y1 being set st [x,y] = [x1,y1] holds
P1[x1,y1,z] by A10, A12;
take z ; ::_thesis: P1[x,y,z]
thus P1[x,y,z] by A13; ::_thesis: verum
end;
assume ( x in F1() & y in F2() ) ; ::_thesis: ( for z being set holds P1[x,y,z] or [x,y] in dom f )
then A14: [x,y] in [:F1(),F2():] by ZFMISC_1:def_2;
given z being set such that A15: P1[x,y,z] ; ::_thesis: [x,y] in dom f
now__::_thesis:_ex_z_being_set_st_
for_x1,_y1_being_set_st_[x,y]_=_[x1,y1]_holds_
P1[x1,y1,z]
take z = z; ::_thesis: for x1, y1 being set st [x,y] = [x1,y1] holds
P1[x1,y1,z]
let x1, y1 be set ; ::_thesis: ( [x,y] = [x1,y1] implies P1[x1,y1,z] )
assume A16: [x,y] = [x1,y1] ; ::_thesis: P1[x1,y1,z]
then x = x1 by XTUPLE_0:1;
hence P1[x1,y1,z] by A15, A16, XTUPLE_0:1; ::_thesis: verum
end;
hence [x,y] in dom f by A10, A14; ::_thesis: verum
end;
thus for x, y being set st [x,y] in dom f holds
P1[x,y,f . (x,y)] by A11; ::_thesis: verum
end;
scheme :: BINOP_1:sch 6
LambdaR2{ F1() -> set , F2() -> set , F3() -> set , F4( set , set ) -> set , P1[ set , set ] } :
ex f being PartFunc of [:F1(),F2():],F3() st
( ( for x, y being set holds
( [x,y] in dom f iff ( x in F1() & y in F2() & P1[x,y] ) ) ) & ( for x, y being set st [x,y] in dom f holds
f . (x,y) = F4(x,y) ) )
provided
A1: for x, y being set st P1[x,y] holds
F4(x,y) in F3()
proof
defpred S1[ set , set , set ] means ( P1[$1,$2] & $3 = F4($1,$2) );
A2: for x, y, z1, z2 being set st x in F1() & y in F2() & S1[x,y,z1] & S1[x,y,z2] holds
z1 = z2 ;
A3: for x, y, z being set st x in F1() & y in F2() & S1[x,y,z] holds
z in F3() by A1;
consider f being PartFunc of [:F1(),F2():],F3() such that
A4: for x, y being set holds
( [x,y] in dom f iff ( x in F1() & y in F2() & ex z being set st S1[x,y,z] ) ) and
A5: for x, y being set st [x,y] in dom f holds
S1[x,y,f . (x,y)] from BINOP_1:sch_5(A3, A2);
take f ; ::_thesis: ( ( for x, y being set holds
( [x,y] in dom f iff ( x in F1() & y in F2() & P1[x,y] ) ) ) & ( for x, y being set st [x,y] in dom f holds
f . (x,y) = F4(x,y) ) )
thus for x, y being set holds
( [x,y] in dom f iff ( x in F1() & y in F2() & P1[x,y] ) ) ::_thesis: for x, y being set st [x,y] in dom f holds
f . (x,y) = F4(x,y)
proof
let x, y be set ; ::_thesis: ( [x,y] in dom f iff ( x in F1() & y in F2() & P1[x,y] ) )
thus ( [x,y] in dom f implies ( x in F1() & y in F2() & P1[x,y] ) ) ::_thesis: ( x in F1() & y in F2() & P1[x,y] implies [x,y] in dom f )
proof
assume A6: [x,y] in dom f ; ::_thesis: ( x in F1() & y in F2() & P1[x,y] )
then ex z being set st
( P1[x,y] & z = F4(x,y) ) by A4;
hence ( x in F1() & y in F2() & P1[x,y] ) by A4, A6; ::_thesis: verum
end;
assume that
A7: ( x in F1() & y in F2() ) and
A8: P1[x,y] ; ::_thesis: [x,y] in dom f
ex z being set st
( P1[x,y] & z = F4(x,y) ) by A8;
hence [x,y] in dom f by A4, A7; ::_thesis: verum
end;
thus for x, y being set st [x,y] in dom f holds
f . (x,y) = F4(x,y) by A5; ::_thesis: verum
end;
scheme :: BINOP_1:sch 7
PartLambda2{ F1() -> set , F2() -> set , F3() -> set , F4( set , set ) -> set , P1[ set , set ] } :
ex f being PartFunc of [:F1(),F2():],F3() st
( ( for x, y being set holds
( [x,y] in dom f iff ( x in F1() & y in F2() & P1[x,y] ) ) ) & ( for x, y being set st [x,y] in dom f holds
f . (x,y) = F4(x,y) ) )
provided
A1: for x, y being set st x in F1() & y in F2() & P1[x,y] holds
F4(x,y) in F3()
proof
defpred S1[ set , set ] means ( $1 in F1() & $2 in F2() & P1[$1,$2] );
A2: for x, y being set st S1[x,y] holds
F4(x,y) in F3() by A1;
consider f being PartFunc of [:F1(),F2():],F3() such that
A3: ( ( for x, y being set holds
( [x,y] in dom f iff ( x in F1() & y in F2() & S1[x,y] ) ) ) & ( for x, y being set st [x,y] in dom f holds
f . (x,y) = F4(x,y) ) ) from BINOP_1:sch_6(A2);
take f ; ::_thesis: ( ( for x, y being set holds
( [x,y] in dom f iff ( x in F1() & y in F2() & P1[x,y] ) ) ) & ( for x, y being set st [x,y] in dom f holds
f . (x,y) = F4(x,y) ) )
thus ( ( for x, y being set holds
( [x,y] in dom f iff ( x in F1() & y in F2() & P1[x,y] ) ) ) & ( for x, y being set st [x,y] in dom f holds
f . (x,y) = F4(x,y) ) ) by A3; ::_thesis: verum
end;
scheme :: BINOP_1:sch 8
Sch8{ F1() -> non empty set , F2() -> non empty set , F3() -> set , F4( set , set ) -> set , P1[ set , set ] } :
ex f being PartFunc of [:F1(),F2():],F3() st
( ( for x being Element of F1()
for y being Element of F2() holds
( [x,y] in dom f iff P1[x,y] ) ) & ( for x being Element of F1()
for y being Element of F2() st [x,y] in dom f holds
f . (x,y) = F4(x,y) ) )
provided
A1: for x being Element of F1()
for y being Element of F2() st P1[x,y] holds
F4(x,y) in F3()
proof
A2: for x, y being set st x in F1() & y in F2() & P1[x,y] holds
F4(x,y) in F3() by A1;
consider f being PartFunc of [:F1(),F2():],F3() such that
A3: ( ( for x, y being set holds
( [x,y] in dom f iff ( x in F1() & y in F2() & P1[x,y] ) ) ) & ( for x, y being set st [x,y] in dom f holds
f . (x,y) = F4(x,y) ) ) from BINOP_1:sch_7(A2);
take f ; ::_thesis: ( ( for x being Element of F1()
for y being Element of F2() holds
( [x,y] in dom f iff P1[x,y] ) ) & ( for x being Element of F1()
for y being Element of F2() st [x,y] in dom f holds
f . (x,y) = F4(x,y) ) )
thus ( ( for x being Element of F1()
for y being Element of F2() holds
( [x,y] in dom f iff P1[x,y] ) ) & ( for x being Element of F1()
for y being Element of F2() st [x,y] in dom f holds
f . (x,y) = F4(x,y) ) ) by A3; ::_thesis: verum
end;
definition
let A be set ;
let f be BinOp of A;
let x, y be Element of A;
:: original: .
redefine funcf . (x,y) -> Element of A;
coherence
f . (x,y) is Element of A
proof
percases ( A = {} or A <> {} ) ;
suppose A = {} ; ::_thesis: f . (x,y) is Element of A
then dom f = {} ;
then f . (x,y) = {} by FUNCT_1:def_2;
hence f . (x,y) is Element of A ; ::_thesis: verum
end;
suppose A <> {} ; ::_thesis: f . (x,y) is Element of A
then reconsider A = A as non empty set ;
reconsider f = f as BinOp of A ;
reconsider x = x, y = y as Element of A ;
f . (x,y) is Element of A ;
hence f . (x,y) is Element of A ; ::_thesis: verum
end;
end;
end;
end;
definition
let X, Y, Z be set ;
let f1, f2 be Function of [:X,Y:],Z;
:: original: =
redefine predf1 = f2 means :: BINOP_1:def 21
for x, y being set st x in X & y in Y holds
f1 . (x,y) = f2 . (x,y);
compatibility
( f1 = f2 iff for x, y being set st x in X & y in Y holds
f1 . (x,y) = f2 . (x,y) ) by Th1;
end;
:: deftheorem defines = BINOP_1:def_21_:_
for X, Y, Z being set
for f1, f2 being Function of [:X,Y:],Z holds
( f1 = f2 iff for x, y being set st x in X & y in Y holds
f1 . (x,y) = f2 . (x,y) );