let f be Function; :: thesis: for X, y, z being set holds (f +* (X --> y)) +* (X --> z) = f +* (X --> z)
let X, y, z be set ; :: thesis: (f +* (X --> y)) +* (X --> z) = f +* (X --> z)
A1: dom (X --> z) = X ;
A2: dom (X --> y) = X ;
then dom (f +* (X --> y)) = (dom f) \/ X by FUNCT_4:def 1;
then A3: dom ((f +* (X --> y)) +* (X --> z)) = ((dom f) \/ X) \/ X by A1, FUNCT_4:def 1
.= (dom f) \/ (X \/ X) by XBOOLE_1:4
.= (dom f) \/ X ;
A4: now :: thesis: for x being object st x in (dom f) \/ X holds
((f +* (X --> y)) +* (X --> z)) . x = (f +* (X --> z)) . x
let x be object ; :: thesis: ( x in (dom f) \/ X implies ((f +* (X --> y)) +* (X --> z)) . b1 = (f +* (X --> z)) . b1 )
assume x in (dom f) \/ X ; :: thesis: ((f +* (X --> y)) +* (X --> z)) . b1 = (f +* (X --> z)) . b1
per cases ( x in X or not x in X ) ;
suppose A5: x in X ; :: thesis: ((f +* (X --> y)) +* (X --> z)) . b1 = (f +* (X --> z)) . b1
then ((f +* (X --> y)) +* (X --> z)) . x = (X --> z) . x by A1, FUNCT_4:13;
hence ((f +* (X --> y)) +* (X --> z)) . x = (f +* (X --> z)) . x by A1, A5, FUNCT_4:13; :: thesis: verum
end;
suppose A6: not x in X ; :: thesis: ((f +* (X --> y)) +* (X --> z)) . b1 = (f +* (X --> z)) . b1
then ((f +* (X --> y)) +* (X --> z)) . x = (f +* (X --> y)) . x by A1, FUNCT_4:11;
then ((f +* (X --> y)) +* (X --> z)) . x = f . x by A2, A6, FUNCT_4:11;
hence ((f +* (X --> y)) +* (X --> z)) . x = (f +* (X --> z)) . x by A1, A6, FUNCT_4:11; :: thesis: verum
end;
end;
end;
dom (f +* (X --> z)) = (dom f) \/ X by A1, FUNCT_4:def 1;
hence (f +* (X --> y)) +* (X --> z) = f +* (X --> z) by A3, A4; :: thesis: verum