:: PARTFUN1 semantic presentation

theorem Th1: :: PARTFUN1:1
for P, X1, Y1, Q, X2, Y2 being set st P c= [:X1,Y1:] & Q c= [:X2,Y2:] holds
P \/ Q c= [:(X1 \/ X2),(Y1 \/ Y2):]
proof end;

theorem Th2: :: PARTFUN1:2
for f, g being Function st ( for x being set st x in (dom f) /\ (dom g) holds
f . x = g . x ) holds
ex h being Function st f \/ g = h
proof end;

theorem Th3: :: PARTFUN1:3
for f, g, h being Function st f \/ g = h holds
for x being set st x in (dom f) /\ (dom g) holds
f . x = g . x
proof end;

scheme :: PARTFUN1:sch 41
s41{ F1() -> set , P1[ set ], F2( set ) -> set , F3( set ) -> set } :
ex f being Function st
( dom f = F1() & ( for x being set st x in F1() holds
( ( P1[x] implies f . x = F2(x) ) & ( P1[x] implies f . x = F3(x) ) ) ) )
proof end;

registration
cluster empty set ;
existence
ex b1 being Function st b1 is empty
proof end;
end;

Lemma46: dom {} = {}
;

theorem Th4: :: PARTFUN1:4
canceled;

theorem Th5: :: PARTFUN1:5
canceled;

theorem Th6: :: PARTFUN1:6
canceled;

theorem Th7: :: PARTFUN1:7
canceled;

theorem Th8: :: PARTFUN1:8
canceled;

theorem Th9: :: PARTFUN1:9
canceled;

theorem Th10: :: PARTFUN1:10
canceled;

E47: now
let X be set ;
let Y be set ;
take E = {} ;
thus ( dom E c= X & rng E c= Y ) by XBOOLE_1:2;
end;

Lemma49: for X, Y being set
for R being Relation holds
( R is Relation of X,Y iff ( dom R c= X & rng R c= Y ) )
by RELSET_1:11, RELSET_1:12;

registration
let X be set ;
let Y be set ;
cluster Function-like Relation of a1,a2;
existence
ex b1 being Relation of X,Y st b1 is Function-like
proof end;
end;

definition
let X be set ;
let Y be set ;
mode PartFunc of a1,a2 is Function-like Relation of a1,a2;
end;

theorem Th11: :: PARTFUN1:11
canceled;

theorem Th12: :: PARTFUN1:12
canceled;

theorem Th13: :: PARTFUN1:13
canceled;

theorem Th14: :: PARTFUN1:14
canceled;

theorem Th15: :: PARTFUN1:15
canceled;

theorem Th16: :: PARTFUN1:16
canceled;

theorem Th17: :: PARTFUN1:17
canceled;

theorem Th18: :: PARTFUN1:18
canceled;

theorem Th19: :: PARTFUN1:19
canceled;

theorem Th20: :: PARTFUN1:20
canceled;

theorem Th21: :: PARTFUN1:21
canceled;

theorem Th22: :: PARTFUN1:22
canceled;

theorem Th23: :: PARTFUN1:23
canceled;

theorem Th24: :: PARTFUN1:24
for f being Function holds f is PartFunc of dom f, rng f by ;

theorem Th25: :: PARTFUN1:25
for Y being set
for f being Function st rng f c= Y holds
f is PartFunc of dom f,Y by ;

theorem Th26: :: PARTFUN1:26
for X, Y, y being set
for f being PartFunc of X,Y st y in rng f holds
ex x being Element of X st
( x in dom f & y = f . x )
proof end;

theorem Th27: :: PARTFUN1:27
for X, Y, x being set
for f being PartFunc of X,Y st x in dom f holds
f . x in Y
proof end;

theorem Th28: :: PARTFUN1:28
for X, Y, Z being set
for f being PartFunc of X,Y st dom f c= Z holds
f is PartFunc of Z,Y
proof end;

theorem Th29: :: PARTFUN1:29
for X, Y, Z being set
for f being PartFunc of X,Y st rng f c= Z holds
f is PartFunc of X,Z
proof end;

theorem Th30: :: PARTFUN1:30
for X, Y, Z being set
for f being PartFunc of X,Y st X c= Z holds
f is PartFunc of Z,Y
proof end;

theorem Th31: :: PARTFUN1:31
for X, Y, Z being set
for f being PartFunc of X,Y st Y c= Z holds
f is PartFunc of X,Z
proof end;

theorem Th32: :: PARTFUN1:32
for X1, Y1, X2, Y2 being set
for f being PartFunc of X1,Y1 st X1 c= X2 & Y1 c= Y2 holds
f is PartFunc of X2,Y2
proof end;

theorem Th33: :: PARTFUN1:33
for X, Y being set
for f being Function
for g being PartFunc of X,Y st f c= g holds
f is PartFunc of X,Y
proof end;

theorem Th34: :: PARTFUN1:34
for X, Y being set
for f1, f2 being PartFunc of X,Y st dom f1 = dom f2 & ( for x being Element of X st x in dom f1 holds
f1 . x = f2 . x ) holds
f1 = f2
proof end;

theorem Th35: :: PARTFUN1:35
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 end;

scheme :: PARTFUN1:sch 57
s57{ F1() -> set , F2() -> set , P1[ set , set ] } :
ex f being PartFunc of F1(),F2() st
( ( for x being set holds
( x in dom f iff ( x in F1() & ex y being set st P1[x,y] ) ) ) & ( for x being set st x in dom f holds
P1[x,f . x] ) )
provided
E26: for x, y being set st x in F1() & P1[x,y] holds
y in F2() and
E31: for x, y1, y2 being set st x in F1() & P1[x,y1] & P1[x,y2] holds
y1 = y2
proof end;

scheme :: PARTFUN1:sch 64
s64{ F1() -> set , F2() -> set , F3( set ) -> set , P1[ set ] } :
ex f being PartFunc of F1(),F2() st
( ( for x being set holds
( x in dom f iff ( x in F1() & P1[x] ) ) ) & ( for x being set st x in dom f holds
f . x = F3(x) ) )
provided
E26: for x being set st P1[x] holds
F3(x) in F2()
proof end;

scheme :: PARTFUN1:sch 65
s65{ 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
E26: for x, y, z being set st x in F1() & y in F2() & P1[x,y,z] holds
z in F3() and
E31: 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 end;

scheme :: PARTFUN1:sch 67
s67{ 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
E26: for x, y being set st P1[x,y] holds
F4(x,y) in F3()
proof end;

definition
let X be set ;
let Y be set ;
let V be set ;
let Z be set ;
let f be PartFunc of X,Y;
let g be PartFunc of V,Z;
redefine func * as c6 * c5 -> PartFunc of a1,a4;
coherence
f * g is PartFunc of X,Z
proof end;
end;

theorem Th36: :: PARTFUN1:36
for X, Y being set
for f being Relation of X,Y holds (id X) * f = f
proof end;

theorem Th37: :: PARTFUN1:37
for X, Y being set
for f being Relation of X,Y holds f * (id Y) = f
proof end;

theorem Th38: :: PARTFUN1:38
for X, Y being set
for f being PartFunc of X,Y st ( for x1, x2 being Element of X st x1 in dom f & x2 in dom f & f . x1 = f . x2 holds
x1 = x2 ) holds
f is one-to-one
proof end;

theorem Th39: :: PARTFUN1:39
for X, Y being set
for f being PartFunc of X,Y st f is one-to-one holds
f " is PartFunc of Y,X
proof end;

theorem Th40: :: PARTFUN1:40
canceled;

theorem Th41: :: PARTFUN1:41
canceled;

theorem Th42: :: PARTFUN1:42
canceled;

theorem Th43: :: PARTFUN1:43
for X, Y, Z being set
for f being PartFunc of X,Y holds f | Z is PartFunc of Z,Y
proof end;

theorem Th44: :: PARTFUN1:44
for X, Y, Z being set
for f being PartFunc of X,Y holds f | Z is PartFunc of X,Y ;

definition
let X be set ;
let Y be set ;
let f be PartFunc of X,Y;
let Z be set ;
redefine func | as c3 | c4 -> PartFunc of a1,a2;
coherence
f | Z is PartFunc of X,Y
by ;
end;

theorem Th45: :: PARTFUN1:45
for X, Y, Z being set
for f being PartFunc of X,Y holds Z | f is PartFunc of X,Z
proof end;

theorem Th46: :: PARTFUN1:46
for X, Y, Z being set
for f being PartFunc of X,Y holds Z | f is PartFunc of X,Y ;

theorem Th47: :: PARTFUN1:47
for Y, X being set
for f being Function holds (Y | f) | X is PartFunc of X,Y
proof end;

theorem Th48: :: PARTFUN1:48
canceled;

theorem Th49: :: PARTFUN1:49
for X, Y, y being set
for f being PartFunc of X,Y st y in f .: X holds
ex x being Element of X st
( x in dom f & y = f . x )
proof end;

theorem Th50: :: PARTFUN1:50
canceled;

theorem Th51: :: PARTFUN1:51
for X, Y being set
for f being PartFunc of X,Y holds f .: X = rng f
proof end;

theorem Th52: :: PARTFUN1:52
canceled;

theorem Th53: :: PARTFUN1:53
for X, Y being set
for f being PartFunc of X,Y holds f " Y = dom f
proof end;

theorem Th54: :: PARTFUN1:54
for Y being set
for f being PartFunc of {} ,Y holds
( dom f = {} & rng f = {} )
proof end;

theorem Th55: :: PARTFUN1:55
for X, Y being set
for f being Function st dom f = {} holds
f is PartFunc of X,Y
proof end;

theorem Th56: :: PARTFUN1:56
for X, Y being set holds {} is PartFunc of X,Y by , ;

theorem Th57: :: PARTFUN1:57
for Y being set
for f being PartFunc of {} ,Y holds f = {}
proof end;

theorem Th58: :: PARTFUN1:58
for Y1, Y2 being set
for f1 being PartFunc of {} ,Y1
for f2 being PartFunc of {} ,Y2 holds f1 = f2
proof end;

theorem Th59: :: PARTFUN1:59
for Y being set
for f being PartFunc of {} ,Y holds f is one-to-one by ;

theorem Th60: :: PARTFUN1:60
for Y, P being set
for f being PartFunc of {} ,Y holds f .: P = {}
proof end;

theorem Th61: :: PARTFUN1:61
for Y, Q being set
for f being PartFunc of {} ,Y holds f " Q = {}
proof end;

theorem Th62: :: PARTFUN1:62
for X being set
for f being PartFunc of X, {} holds
( dom f = {} & rng f = {} )
proof end;

theorem Th63: :: PARTFUN1:63
for X, Y being set
for f being Function st rng f = {} holds
f is PartFunc of X,Y
proof end;

theorem Th64: :: PARTFUN1:64
for X being set
for f being PartFunc of X, {} holds f = {}
proof end;

theorem Th65: :: PARTFUN1:65
for X1, X2 being set
for f1 being PartFunc of X1, {}
for f2 being PartFunc of X2, {} holds f1 = f2
proof end;

theorem Th66: :: PARTFUN1:66
for X being set
for f being PartFunc of X, {} holds f is one-to-one by ;

theorem Th67: :: PARTFUN1:67
for X, P being set
for f being PartFunc of X, {} holds f .: P = {}
proof end;

theorem Th68: :: PARTFUN1:68
for X, Q being set
for f being PartFunc of X, {} holds f " Q = {}
proof end;

theorem Th69: :: PARTFUN1:69
for x, Y being set
for f being PartFunc of {x},Y holds rng f c= {(f . x)}
proof end;

theorem Th70: :: PARTFUN1:70
for x, Y being set
for f being PartFunc of {x},Y holds f is one-to-one
proof end;

theorem Th71: :: PARTFUN1:71
for x, Y, P being set
for f being PartFunc of {x},Y holds f .: P c= {(f . x)}
proof end;

theorem Th72: :: PARTFUN1:72
for x, X, Y being set
for f being Function st dom f = {x} & x in X & f . x in Y holds
f is PartFunc of X,Y
proof end;

theorem Th73: :: PARTFUN1:73
for X, y, x being set
for f being PartFunc of X,{y} st x in dom f holds
f . x = y
proof end;

theorem Th74: :: PARTFUN1:74
for X, y being set
for f1, f2 being PartFunc of X,{y} st dom f1 = dom f2 holds
f1 = f2
proof end;

definition
let f be Function;
let X be set , Y be set ;
canceled;
canceled;
func <:c1,c2,c3:> -> PartFunc of a2,a3 equals :: PARTFUN1:def 3
(Y | f) | X;
coherence
(Y | f) | X is PartFunc of X,Y
by ;
end;

:: deftheorem Def1 PARTFUN1:def 1 :
canceled;

:: deftheorem Def2 PARTFUN1:def 2 :
canceled;

:: deftheorem Def3 defines <: PARTFUN1:def 3 :
for f being Function
for X, Y being set holds <:f,X,Y:> = (Y | f) | X;

theorem Th75: :: PARTFUN1:75
canceled;

theorem Th76: :: PARTFUN1:76
for X, Y being set
for f being Function holds <:f,X,Y:> c= f
proof end;

theorem Th77: :: PARTFUN1:77
for X, Y being set
for f being Function holds
( dom <:f,X,Y:> c= dom f & rng <:f,X,Y:> c= rng f )
proof end;

theorem Th78: :: PARTFUN1:78
for x, X, Y being set
for f being Function holds
( x in dom <:f,X,Y:> iff ( x in dom f & x in X & f . x in Y ) )
proof end;

theorem Th79: :: PARTFUN1:79
for x, X, Y being set
for f being Function st x in dom f & x in X & f . x in Y holds
<:f,X,Y:> . x = f . x
proof end;

theorem Th80: :: PARTFUN1:80
for x, X, Y being set
for f being Function st x in dom <:f,X,Y:> holds
<:f,X,Y:> . x = f . x
proof end;

theorem Th81: :: PARTFUN1:81
for X, Y being set
for f, g being Function st f c= g holds
<:f,X,Y:> c= <:g,X,Y:>
proof end;

theorem Th82: :: PARTFUN1:82
for Z, X, Y being set
for f being Function st Z c= X holds
<:f,Z,Y:> c= <:f,X,Y:>
proof end;

theorem Th83: :: PARTFUN1:83
for Z, Y, X being set
for f being Function st Z c= Y holds
<:f,X,Z:> c= <:f,X,Y:>
proof end;

theorem Th84: :: PARTFUN1:84
for X1, X2, Y1, Y2 being set
for f being Function st X1 c= X2 & Y1 c= Y2 holds
<:f,X1,Y1:> c= <:f,X2,Y2:>
proof end;

theorem Th85: :: PARTFUN1:85
for X, Y being set
for f being Function st dom f c= X & rng f c= Y holds
f = <:f,X,Y:>
proof end;

theorem Th86: :: PARTFUN1:86
for f being Function holds f = <:f,(dom f),(rng f):> by Th2;

theorem Th87: :: PARTFUN1:87
for X, Y being set
for f being PartFunc of X,Y holds <:f,X,Y:> = f
proof end;

theorem Th88: :: PARTFUN1:88
canceled;

theorem Th89: :: PARTFUN1:89
canceled;

theorem Th90: :: PARTFUN1:90
canceled;

theorem Th91: :: PARTFUN1:91
for X, Y being set holds <:{} ,X,Y:> = {}
proof end;

theorem Th92: :: PARTFUN1:92
for Y, Z, X being set
for f, g being Function holds <:g,Y,Z:> * <:f,X,Y:> c= <:(g * f),X,Z:>
proof end;

theorem Th93: :: PARTFUN1:93
for Y, Z, X being set
for f, g being Function st (rng f) /\ (dom g) c= Y holds
<:g,Y,Z:> * <:f,X,Y:> = <:(g * f),X,Z:>
proof end;

theorem Th94: :: PARTFUN1:94
for X, Y being set
for f being Function st f is one-to-one holds
<:f,X,Y:> is one-to-one
proof end;

theorem Th95: :: PARTFUN1:95
for X, Y being set
for f being Function st f is one-to-one holds
<:f,X,Y:> " = <:(f " ),Y,X:>
proof end;

theorem Th96: :: PARTFUN1:96
for X, Y, Z being set
for f being Function holds <:f,X,Y:> | Z = <:f,(X /\ Z),Y:> by RELAT_1:100;

theorem Th97: :: PARTFUN1:97
for Z, X, Y being set
for f being Function holds Z | <:f,X,Y:> = <:f,X,(Z /\ Y):>
proof end;

definition
let X be set ;
let Y be set ;
let f be Relation of X,Y;
attr a3 is total means :Def4: :: PARTFUN1:def 4
dom f = X;
end;

:: deftheorem Def4 defines total PARTFUN1:def 4 :
for X, Y being set
for f being Relation of X,Y holds
( f is total iff dom f = X );

theorem Th98: :: PARTFUN1:98
canceled;

theorem Th99: :: PARTFUN1:99
for X, Y being set
for f being PartFunc of X,Y st f is total & Y = {} holds
X = {}
proof end;

theorem Th100: :: PARTFUN1:100
canceled;

theorem Th101: :: PARTFUN1:101
canceled;

theorem Th102: :: PARTFUN1:102
canceled;

theorem Th103: :: PARTFUN1:103
canceled;

theorem Th104: :: PARTFUN1:104
canceled;

theorem Th105: :: PARTFUN1:105
canceled;

theorem Th106: :: PARTFUN1:106
canceled;

theorem Th107: :: PARTFUN1:107
canceled;

theorem Th108: :: PARTFUN1:108
canceled;

theorem Th109: :: PARTFUN1:109
canceled;

theorem Th110: :: PARTFUN1:110
canceled;

theorem Th111: :: PARTFUN1:111
canceled;

theorem Th112: :: PARTFUN1:112
for Y being set
for f being PartFunc of {} ,Y holds f is total
proof end;

theorem Th113: :: PARTFUN1:113
for X, Y being set
for f being Function st <:f,X,Y:> is total holds
X c= dom f
proof end;

theorem Th114: :: PARTFUN1:114
for X, Y being set st <:{} ,X,Y:> is total holds
X = {}
proof end;

theorem Th115: :: PARTFUN1:115
for X, Y being set
for f being Function st X c= dom f & rng f c= Y holds
<:f,X,Y:> is total
proof end;

theorem Th116: :: PARTFUN1:116
for X, Y being set
for f being Function st <:f,X,Y:> is total holds
f .: X c= Y
proof end;

theorem Th117: :: PARTFUN1:117
for X, Y being set
for f being Function st X c= dom f & f .: X c= Y holds
<:f,X,Y:> is total
proof end;

definition
let X be set ;
let Y be set ;
func PFuncs c1,c2 -> set means :Def5: :: PARTFUN1:def 5
for x being set holds
( x in it iff ex f being Function st
( x = f & dom f c= X & rng f c= Y ) );
existence
ex b1 being set st
for x being set holds
( x in b1 iff ex f being Function st
( x = f & dom f c= X & rng f c= Y ) )
proof end;
uniqueness
for b1, b2 being set st ( for x being set holds
( x in b1 iff ex f being Function st
( x = f & dom f c= X & rng f c= Y ) ) ) & ( for x being set holds
( x in b2 iff ex f being Function st
( x = f & dom f c= X & rng f c= Y ) ) ) holds
b1 = b2
proof end;
end;

:: deftheorem Def5 defines PFuncs PARTFUN1:def 5 :
for X, Y, b3 being set holds
( b3 = PFuncs X,Y iff for x being set holds
( x in b3 iff ex f being Function st
( x = f & dom f c= X & rng f c= Y ) ) );

registration
let X be set ;
let Y be set ;
cluster PFuncs a1,a2 -> non empty ;
coherence
not PFuncs X,Y is empty
proof end;
end;

theorem Th118: :: PARTFUN1:118
canceled;

theorem Th119: :: PARTFUN1:119
for X, Y being set
for f being PartFunc of X,Y holds f in PFuncs X,Y
proof end;

theorem Th120: :: PARTFUN1:120
for X, Y, f being set st f in PFuncs X,Y holds
f is PartFunc of X,Y
proof end;

theorem Th121: :: PARTFUN1:121
for X, Y being set
for f being Element of PFuncs X,Y holds f is PartFunc of X,Y by ;

theorem Th122: :: PARTFUN1:122
for Y being set holds PFuncs {} ,Y = {{} }
proof end;

theorem Th123: :: PARTFUN1:123
for X being set holds PFuncs X,{} = {{} }
proof end;

theorem Th124: :: PARTFUN1:124
canceled;

theorem Th125: :: PARTFUN1:125
for Z, X, Y being set st Z c= X holds
PFuncs Z,Y c= PFuncs X,Y
proof end;

theorem Th126: :: PARTFUN1:126
for Y, X being set holds PFuncs {} ,Y c= PFuncs X,Y
proof end;

theorem Th127: :: PARTFUN1:127
for Z, Y, X being set st Z c= Y holds
PFuncs X,Z c= PFuncs X,Y
proof end;

theorem Th128: :: PARTFUN1:128
for X1, X2, Y1, Y2 being set st X1 c= X2 & Y1 c= Y2 holds
PFuncs X1,Y1 c= PFuncs X2,Y2
proof end;

definition
let f be Function, g be Function;
pred c1 tolerates c2 means :Def6: :: PARTFUN1:def 6
for x being set st x in (dom f) /\ (dom g) holds
f . x = g . x;
reflexivity
for f being Function
for x being set st x in (dom f) /\ (dom f) holds
f . x = f . x
;
symmetry
for f, g being Function st ( for x being set st x in (dom f) /\ (dom g) holds
f . x = g . x ) holds
for x being set st x in (dom g) /\ (dom f) holds
g . x = f . x
;
end;

:: deftheorem Def6 defines tolerates PARTFUN1:def 6 :
for f, g being Function holds
( f tolerates g iff for x being set st x in (dom f) /\ (dom g) holds
f . x = g . x );

theorem Th129: :: PARTFUN1:129
canceled;

theorem Th130: :: PARTFUN1:130
for f, g being Function holds
( f tolerates g iff ex h being Function st f \/ g = h )
proof end;

theorem Th131: :: PARTFUN1:131
for f, g being Function holds
( f tolerates g iff ex h being Function st
( f c= h & g c= h ) )
proof end;

theorem Th132: :: PARTFUN1:132
for f, g being Function st dom f c= dom g holds
( f tolerates g iff for x being set st x in dom f holds
f . x = g . x )
proof end;

theorem Th133: :: PARTFUN1:133
canceled;

theorem Th134: :: PARTFUN1:134
canceled;

theorem Th135: :: PARTFUN1:135
for f, g being Function st f c= g holds
f tolerates g by Th3;

theorem Th136: :: PARTFUN1:136
for f, g being Function st dom f = dom g & f tolerates g holds
f = g
proof end;

theorem Th137: :: PARTFUN1:137
canceled;

theorem Th138: :: PARTFUN1:138
for f, g being Function st dom f misses dom g holds
f tolerates g
proof end;

theorem Th139: :: PARTFUN1:139
for f, g, h being Function st f c= h & g c= h holds
f tolerates g by Th3;

theorem Th140: :: PARTFUN1:140
for X, Y being set
for f, g being PartFunc of X,Y
for h being Function st f tolerates h & g c= f holds
g tolerates h
proof end;

theorem Th141: :: PARTFUN1:141
for f being Function holds {} tolerates f
proof end;

theorem Th142: :: PARTFUN1:142
for X, Y being set
for f being Function holds <:{} ,X,Y:> tolerates f
proof end;

theorem Th143: :: PARTFUN1:143
for X, y being set
for f, g being PartFunc of X,{y} holds f tolerates g
proof end;

theorem Th144: :: PARTFUN1:144
for X being set
for f being Function holds f | X tolerates f
proof end;

theorem Th145: :: PARTFUN1:145
for Y being set
for f being Function holds Y | f tolerates f
proof end;

theorem Th146: :: PARTFUN1:146
for Y, X being set
for f being Function holds (Y | f) | X tolerates f
proof end;

theorem Th147: :: PARTFUN1:147
for X, Y being set
for f being Function holds <:f,X,Y:> tolerates f by ;

theorem Th148: :: PARTFUN1:148
for X, Y being set
for f, g being PartFunc of X,Y st f is total & g is total & f tolerates g holds
f = g
proof end;

theorem Th149: :: PARTFUN1:149
canceled;

theorem Th150: :: PARTFUN1:150
canceled;

theorem Th151: :: PARTFUN1:151
canceled;

theorem Th152: :: PARTFUN1:152
canceled;

theorem Th153: :: PARTFUN1:153
canceled;

theorem Th154: :: PARTFUN1:154
canceled;

theorem Th155: :: PARTFUN1:155
canceled;

theorem Th156: :: PARTFUN1:156
canceled;

theorem Th157: :: PARTFUN1:157
canceled;

theorem Th158: :: PARTFUN1:158
for X, Y being set
for f, g, h being PartFunc of X,Y st f tolerates h & g tolerates h & h is total holds
f tolerates g
proof end;

theorem Th159: :: PARTFUN1:159
canceled;

theorem Th160: :: PARTFUN1:160
canceled;

theorem Th161: :: PARTFUN1:161
canceled;

theorem Th162: :: PARTFUN1:162
for X, Y being set
for f, g being PartFunc of X,Y st ( Y = {} implies X = {} ) & f tolerates g holds
ex h being PartFunc of X,Y st
( h is total & f tolerates h & g tolerates h )
proof end;

definition
let X be set ;
let Y be set ;
let f be PartFunc of X,Y;
func TotFuncs c3 -> set means :Def7: :: PARTFUN1:def 7
for x being set holds
( x in it iff ex g being PartFunc of X,Y st
( g = x & g is total & f tolerates g ) );
existence
ex b1 being set st
for x being set holds
( x in b1 iff ex g being PartFunc of X,Y st
( g = x & g is total & f tolerates g ) )
proof end;
uniqueness
for b1, b2 being set st ( for x being set holds
( x in b1 iff ex g being PartFunc of X,Y st
( g = x & g is total & f tolerates g ) ) ) & ( for x being set holds
( x in b2 iff ex g being PartFunc of X,Y st
( g = x & g is total & f tolerates g ) ) ) holds
b1 = b2
proof end;
end;

:: deftheorem Def7 defines TotFuncs PARTFUN1:def 7 :
for X, Y being set
for f being PartFunc of X,Y
for b4 being set holds
( b4 = TotFuncs f iff for x being set holds
( x in b4 iff ex g being PartFunc of X,Y st
( g = x & g is total & f tolerates g ) ) );

theorem Th163: :: PARTFUN1:163
canceled;

theorem Th164: :: PARTFUN1:164
canceled;

theorem Th165: :: PARTFUN1:165
canceled;

theorem Th166: :: PARTFUN1:166
canceled;

theorem Th167: :: PARTFUN1:167
canceled;

theorem Th168: :: PARTFUN1:168
for X, Y being set
for f being PartFunc of X,Y
for g being set st g in TotFuncs f holds
g is PartFunc of X,Y
proof end;

theorem Th169: :: PARTFUN1:169
for X, Y being set
for f, g being PartFunc of X,Y st g in TotFuncs f holds
g is total
proof end;

theorem Th170: :: PARTFUN1:170
canceled;

theorem Th171: :: PARTFUN1:171
for X, Y being set
for f being PartFunc of X,Y
for g being Function st g in TotFuncs f holds
f tolerates g
proof end;

theorem Th172: :: PARTFUN1:172
for X being set
for f being PartFunc of X, {} st X <> {} holds
TotFuncs f = {}
proof end;

theorem Th173: :: PARTFUN1:173
canceled;

theorem Th174: :: PARTFUN1:174
for X, Y being set
for f being PartFunc of X,Y holds
( f is total iff TotFuncs f = {f} )
proof end;

theorem Th175: :: PARTFUN1:175
for Y being set
for f being PartFunc of {} ,Y holds TotFuncs f = {f}
proof end;

theorem Th176: :: PARTFUN1:176
for Y being set
for f being PartFunc of {} ,Y holds TotFuncs f = {{} }
proof end;

theorem Th177: :: PARTFUN1:177
canceled;

theorem Th178: :: PARTFUN1:178
canceled;

theorem Th179: :: PARTFUN1:179
canceled;

theorem Th180: :: PARTFUN1:180
canceled;

theorem Th181: :: PARTFUN1:181
canceled;

theorem Th182: :: PARTFUN1:182
canceled;

theorem Th183: :: PARTFUN1:183
canceled;

theorem Th184: :: PARTFUN1:184
canceled;

theorem Th185: :: PARTFUN1:185
for X, Y being set
for f, g being PartFunc of X,Y st TotFuncs f meets TotFuncs g holds
f tolerates g
proof end;

theorem Th186: :: PARTFUN1:186
for X, Y being set
for f, g being PartFunc of X,Y st ( Y = {} implies X = {} ) & f tolerates g holds
TotFuncs f meets TotFuncs g
proof end;

Lemma116: for X being set
for R being Relation of X st R = id X holds
R is total
proof end;

Lemma117: for X being set
for R being Relation st R = id X holds
( R is reflexive & R is symmetric & R is antisymmetric & R is transitive )
proof end;

Lemma118: for X being set holds id X is Relation of X
proof end;

registration
let X be set ;
cluster reflexive symmetric antisymmetric transitive total Relation of a1,a1;
existence
ex b1 being Relation of X st
( b1 is total & b1 is reflexive & b1 is symmetric & b1 is antisymmetric & b1 is transitive )
proof end;
end;

registration
cluster symmetric transitive -> reflexive set ;
coherence
for b1 being Relation st b1 is symmetric & b1 is transitive holds
b1 is reflexive
proof end;
end;

registration
let X be set ;
cluster id a1 -> reflexive symmetric antisymmetric transitive ;
coherence
( id X is symmetric & id X is antisymmetric & id X is transitive )
by ;
end;

definition
let X be set ;
redefine func id as id c1 -> total Relation of a1;
coherence
id X is total Relation of X
by , ;
end;

scheme :: PARTFUN1:sch 119
s119{ F1() -> non empty set , P1[ set ], F2( set ) -> set , F3( set ) -> set } :
ex f being Function st
( dom f = F1() & ( for x being Element of F1() holds
( ( P1[x] implies f . x = F2(x) ) & ( P1[x] implies f . x = F3(x) ) ) ) )
proof end;