:: DOMAIN_1 semantic presentation

theorem Th1: :: DOMAIN_1:1
canceled;

theorem Th2: :: DOMAIN_1:2
canceled;

theorem Th3: :: DOMAIN_1:3
canceled;

theorem Th4: :: DOMAIN_1:4
canceled;

theorem Th5: :: DOMAIN_1:5
canceled;

theorem Th6: :: DOMAIN_1:6
canceled;

theorem Th7: :: DOMAIN_1:7
canceled;

theorem Th8: :: DOMAIN_1:8
canceled;

theorem Th9: :: DOMAIN_1:9
for a being set
for X1, X2 being non empty set st a in [:X1,X2:] holds
ex x1 being Element of X1 ex x2 being Element of X2 st a = [x1,x2]
proof end;

theorem Th10: :: DOMAIN_1:10
canceled;

theorem Th11: :: DOMAIN_1:11
canceled;

theorem Th12: :: DOMAIN_1:12
for X1, X2 being non empty set
for x, y being Element of [:X1,X2:] st x `1 = y `1 & x `2 = y `2 holds
x = y
proof end;

definition
let X1 be non empty set ;
let X2 be non empty set ;
let x1 be Element of X1;
let x2 be Element of X2;
redefine func [ as [c3,c4] -> Element of [:a1,a2:];
coherence
[x1,x2] is Element of [:X1,X2:]
by ZFMISC_1:106;
end;

definition
let X1 be non empty set ;
let X2 be non empty set ;
let x be Element of [:X1,X2:];
redefine func `1 as c3 `1 -> Element of a1;
coherence
x `1 is Element of X1
by MCART_1:10;
redefine func `2 as c3 `2 -> Element of a2;
coherence
x `2 is Element of X2
by MCART_1:10;
end;

theorem Th13: :: DOMAIN_1:13
canceled;

theorem Th14: :: DOMAIN_1:14
canceled;

theorem Th15: :: DOMAIN_1:15
for a being set
for X1, X2, X3 being non empty set holds
( a in [:X1,X2,X3:] iff ex x1 being Element of X1 ex x2 being Element of X2 ex x3 being Element of X3 st a = [x1,x2,x3] )
proof end;

theorem Th16: :: DOMAIN_1:16
for D, X1, X2, X3 being non empty set st ( for a being set holds
( a in D iff ex x1 being Element of X1 ex x2 being Element of X2 ex x3 being Element of X3 st a = [x1,x2,x3] ) ) holds
D = [:X1,X2,X3:]
proof end;

theorem Th17: :: DOMAIN_1:17
for D, X1, X2, X3 being non empty set holds
( D = [:X1,X2,X3:] iff for a being set holds
( a in D iff ex x1 being Element of X1 ex x2 being Element of X2 ex x3 being Element of X3 st a = [x1,x2,x3] ) ) by , ;

definition
let X1 be non empty set ;
let X2 be non empty set ;
let X3 be non empty set ;
let x1 be Element of X1;
let x2 be Element of X2;
let x3 be Element of X3;
redefine func [ as [c4,c5,c6] -> Element of [:a1,a2,a3:];
coherence
[x1,x2,x3] is Element of [:X1,X2,X3:]
by MCART_1:73;
end;

theorem Th18: :: DOMAIN_1:18
canceled;

theorem Th19: :: DOMAIN_1:19
canceled;

theorem Th20: :: DOMAIN_1:20
canceled;

theorem Th21: :: DOMAIN_1:21
canceled;

theorem Th22: :: DOMAIN_1:22
canceled;

theorem Th23: :: DOMAIN_1:23
canceled;

theorem Th24: :: DOMAIN_1:24
for a being set
for X1, X2, X3 being non empty set
for x being Element of [:X1,X2,X3:] holds
( a = x `1 iff for x1 being Element of X1
for x2 being Element of X2
for x3 being Element of X3 st x = [x1,x2,x3] holds
a = x1 )
proof end;

theorem Th25: :: DOMAIN_1:25
for b being set
for X1, X2, X3 being non empty set
for x being Element of [:X1,X2,X3:] holds
( b = x `2 iff for x1 being Element of X1
for x2 being Element of X2
for x3 being Element of X3 st x = [x1,x2,x3] holds
b = x2 )
proof end;

theorem Th26: :: DOMAIN_1:26
for c being set
for X1, X2, X3 being non empty set
for x being Element of [:X1,X2,X3:] holds
( c = x `3 iff for x1 being Element of X1
for x2 being Element of X2
for x3 being Element of X3 st x = [x1,x2,x3] holds
c = x3 )
proof end;

theorem Th27: :: DOMAIN_1:27
canceled;

theorem Th28: :: DOMAIN_1:28
for X1, X2, X3 being non empty set
for x, y being Element of [:X1,X2,X3:] st x `1 = y `1 & x `2 = y `2 & x `3 = y `3 holds
x = y
proof end;

theorem Th29: :: DOMAIN_1:29
canceled;

theorem Th30: :: DOMAIN_1:30
canceled;

theorem Th31: :: DOMAIN_1:31
for a being set
for X1, X2, X3, X4 being non empty set holds
( a in [:X1,X2,X3,X4:] iff ex x1 being Element of X1 ex x2 being Element of X2 ex x3 being Element of X3 ex x4 being Element of X4 st a = [x1,x2,x3,x4] )
proof end;

theorem Th32: :: DOMAIN_1:32
for D, X1, X2, X3, X4 being non empty set st ( for a being set holds
( a in D iff ex x1 being Element of X1 ex x2 being Element of X2 ex x3 being Element of X3 ex x4 being Element of X4 st a = [x1,x2,x3,x4] ) ) holds
D = [:X1,X2,X3,X4:]
proof end;

theorem Th33: :: DOMAIN_1:33
for D, X1, X2, X3, X4 being non empty set holds
( D = [:X1,X2,X3,X4:] iff for a being set holds
( a in D iff ex x1 being Element of X1 ex x2 being Element of X2 ex x3 being Element of X3 ex x4 being Element of X4 st a = [x1,x2,x3,x4] ) ) by , ;

definition
let X1 be non empty set ;
let X2 be non empty set ;
let X3 be non empty set ;
let X4 be non empty set ;
let x1 be Element of X1;
let x2 be Element of X2;
let x3 be Element of X3;
let x4 be Element of X4;
redefine func [ as [c5,c6,c7,c8] -> Element of [:a1,a2,a3,a4:];
coherence
[x1,x2,x3,x4] is Element of [:X1,X2,X3,X4:]
by MCART_1:84;
end;

theorem Th34: :: DOMAIN_1:34
canceled;

theorem Th35: :: DOMAIN_1:35
canceled;

theorem Th36: :: DOMAIN_1:36
canceled;

theorem Th37: :: DOMAIN_1:37
canceled;

theorem Th38: :: DOMAIN_1:38
canceled;

theorem Th39: :: DOMAIN_1:39
canceled;

theorem Th40: :: DOMAIN_1:40
for a being set
for X1, X2, X3, X4 being non empty set
for x being Element of [:X1,X2,X3,X4:] holds
( a = x `1 iff for x1 being Element of X1
for x2 being Element of X2
for x3 being Element of X3
for x4 being Element of X4 st x = [x1,x2,x3,x4] holds
a = x1 )
proof end;

theorem Th41: :: DOMAIN_1:41
for b being set
for X1, X2, X3, X4 being non empty set
for x being Element of [:X1,X2,X3,X4:] holds
( b = x `2 iff for x1 being Element of X1
for x2 being Element of X2
for x3 being Element of X3
for x4 being Element of X4 st x = [x1,x2,x3,x4] holds
b = x2 )
proof end;

theorem Th42: :: DOMAIN_1:42
for c being set
for X1, X2, X3, X4 being non empty set
for x being Element of [:X1,X2,X3,X4:] holds
( c = x `3 iff for x1 being Element of X1
for x2 being Element of X2
for x3 being Element of X3
for x4 being Element of X4 st x = [x1,x2,x3,x4] holds
c = x3 )
proof end;

theorem Th43: :: DOMAIN_1:43
for d being set
for X1, X2, X3, X4 being non empty set
for x being Element of [:X1,X2,X3,X4:] holds
( d = x `4 iff for x1 being Element of X1
for x2 being Element of X2
for x3 being Element of X3
for x4 being Element of X4 st x = [x1,x2,x3,x4] holds
d = x4 )
proof end;

theorem Th44: :: DOMAIN_1:44
canceled;

theorem Th45: :: DOMAIN_1:45
for X1, X2, X3, X4 being non empty set
for x, y being Element of [:X1,X2,X3,X4:] st x `1 = y `1 & x `2 = y `2 & x `3 = y `3 & x `4 = y `4 holds
x = y
proof end;

scheme :: DOMAIN_1:sch 37
s37{ P1[ set ] } :
for X1 being non empty set holds { x1 where x1 is Element of X1 : P1[x1] } is Subset of X1
proof end;

scheme :: DOMAIN_1:sch 39
s39{ P1[ set , set ] } :
for X1, X2 being non empty set holds { [x1,x2] where x1 is Element of X1, x2 is Element of X2 : P1[x1,x2] } is Subset of [:X1,X2:]
proof end;

scheme :: DOMAIN_1:sch 40
s40{ P1[ set , set , set ] } :
for X1, X2, X3 being non empty set holds { [x1,x2,x3] where x1 is Element of X1, x2 is Element of X2, x3 is Element of X3 : P1[x1,x2,x3] } is Subset of [:X1,X2,X3:]
proof end;

scheme :: DOMAIN_1:sch 41
s41{ P1[ set , set , set , set ] } :
for X1, X2, X3, X4 being non empty set holds { [x1,x2,x3,x4] where x1 is Element of X1, x2 is Element of X2, x3 is Element of X3, x4 is Element of X4 : P1[x1,x2,x3,x4] } is Subset of [:X1,X2,X3,X4:]
proof end;

scheme :: DOMAIN_1:sch 42
s42{ P1[ set ], P2[ set ] } :
for X1 being non empty set st ( for x1 being Element of X1 st P1[x1] holds
P2[x1] ) holds
{ y1 where y1 is Element of X1 : P1[y1] } c= { z1 where z1 is Element of X1 : P2[z1] }
proof end;

scheme :: DOMAIN_1:sch 44
s44{ P1[ set ], P2[ set ] } :
for X1 being non empty set st ( for x1 being Element of X1 holds
( P1[x1] iff P2[x1] ) ) holds
{ y1 where y1 is Element of X1 : P1[y1] } = { z1 where z1 is Element of X1 : P2[z1] }
proof end;

scheme :: DOMAIN_1:sch 45
s45{ F1() -> non empty set , P1[ set ] } :
{ d where d is Element of F1() : P1[d] } is Subset of F1()
proof end;

theorem Th46: :: DOMAIN_1:46
canceled;

theorem Th47: :: DOMAIN_1:47
canceled;

theorem Th48: :: DOMAIN_1:48
for X1 being non empty set holds X1 = { x1 where x1 is Element of X1 : verum }
proof end;

theorem Th49: :: DOMAIN_1:49
for X1, X2 being non empty set holds [:X1,X2:] = { [x1,x2] where x1 is Element of X1, x2 is Element of X2 : verum }
proof end;

theorem Th50: :: DOMAIN_1:50
for X1, X2, X3 being non empty set holds [:X1,X2,X3:] = { [x1,x2,x3] where x1 is Element of X1, x2 is Element of X2, x3 is Element of X3 : verum }
proof end;

theorem Th51: :: DOMAIN_1:51
for X1, X2, X3, X4 being non empty set holds [:X1,X2,X3,X4:] = { [x1,x2,x3,x4] where x1 is Element of X1, x2 is Element of X2, x3 is Element of X3, x4 is Element of X4 : verum }
proof end;

theorem Th52: :: DOMAIN_1:52
for X1 being non empty set
for A1 being Subset of X1 holds A1 = { x1 where x1 is Element of X1 : x1 in A1 }
proof end;

theorem Th53: :: DOMAIN_1:53
for X1, X2 being non empty set
for A1 being Subset of X1
for A2 being Subset of X2 holds [:A1,A2:] = { [x1,x2] where x1 is Element of X1, x2 is Element of X2 : ( x1 in A1 & x2 in A2 ) }
proof end;

theorem Th54: :: DOMAIN_1:54
for X1, X2, X3 being non empty set
for A1 being Subset of X1
for A2 being Subset of X2
for A3 being Subset of X3 holds [:A1,A2,A3:] = { [x1,x2,x3] where x1 is Element of X1, x2 is Element of X2, x3 is Element of X3 : ( x1 in A1 & x2 in A2 & x3 in A3 ) }
proof end;

theorem Th55: :: DOMAIN_1:55
for X1, X2, X3, X4 being non empty set
for A1 being Subset of X1
for A2 being Subset of X2
for A3 being Subset of X3
for A4 being Subset of X4 holds [:A1,A2,A3,A4:] = { [x1,x2,x3,x4] where x1 is Element of X1, x2 is Element of X2, x3 is Element of X3, x4 is Element of X4 : ( x1 in A1 & x2 in A2 & x3 in A3 & x4 in A4 ) }
proof end;

theorem Th56: :: DOMAIN_1:56
for X1 being non empty set holds {} X1 = { x1 where x1 is Element of X1 : contradiction }
proof end;

theorem Th57: :: DOMAIN_1:57
for X1 being non empty set
for A1 being Subset of X1 holds A1 ` = { x1 where x1 is Element of X1 : not x1 in A1 }
proof end;

theorem Th58: :: DOMAIN_1:58
for X1 being non empty set
for A1, B1 being Subset of X1 holds A1 /\ B1 = { x1 where x1 is Element of X1 : ( x1 in A1 & x1 in B1 ) }
proof end;

theorem Th59: :: DOMAIN_1:59
for X1 being non empty set
for A1, B1 being Subset of X1 holds A1 \/ B1 = { x1 where x1 is Element of X1 : ( x1 in A1 or x1 in B1 ) }
proof end;

theorem Th60: :: DOMAIN_1:60
for X1 being non empty set
for A1, B1 being Subset of X1 holds A1 \ B1 = { x1 where x1 is Element of X1 : ( x1 in A1 & not x1 in B1 ) }
proof end;

theorem Th61: :: DOMAIN_1:61
for X1 being non empty set
for A1, B1 being Subset of X1 holds A1 \+\ B1 = { x1 where x1 is Element of X1 : ( ( x1 in A1 & not x1 in B1 ) or ( not x1 in A1 & x1 in B1 ) ) }
proof end;

theorem Th62: :: DOMAIN_1:62
for X1 being non empty set
for A1, B1 being Subset of X1 holds A1 \+\ B1 = { x1 where x1 is Element of X1 : ( not x1 in A1 iff x1 in B1 ) }
proof end;

theorem Th63: :: DOMAIN_1:63
for X1 being non empty set
for A1, B1 being Subset of X1 holds A1 \+\ B1 = { x1 where x1 is Element of X1 : ( x1 in A1 iff not x1 in B1 ) }
proof end;

theorem Th64: :: DOMAIN_1:64
for X1 being non empty set
for A1, B1 being Subset of X1 holds A1 \+\ B1 = { x1 where x1 is Element of X1 : ( ( x1 in A1 & not x1 in B1 ) or ( x1 in B1 & not x1 in A1 ) ) }
proof end;

definition
let D be non empty set ;
let x1 be Element of D;
redefine func { as {c2} -> Subset of a1;
coherence
{x1} is Subset of D
by SUBSET_1:55;
let x2 be Element of D;
redefine func { as {c2,c3} -> Subset of a1;
coherence
{x1,x2} is Subset of D
by SUBSET_1:56;
let x3 be Element of D;
redefine func { as {c2,c3,c4} -> Subset of a1;
coherence
{x1,x2,x3} is Subset of D
by SUBSET_1:57;
let x4 be Element of D;
redefine func { as {c2,c3,c4,c5} -> Subset of a1;
coherence
{x1,x2,x3,x4} is Subset of D
by SUBSET_1:58;
let x5 be Element of D;
redefine func { as {c2,c3,c4,c5,c6} -> Subset of a1;
coherence
{x1,x2,x3,x4,x5} is Subset of D
by SUBSET_1:59;
let x6 be Element of D;
redefine func { as {c2,c3,c4,c5,c6,c7} -> Subset of a1;
coherence
{x1,x2,x3,x4,x5,x6} is Subset of D
by SUBSET_1:60;
let x7 be Element of D;
redefine func { as {c2,c3,c4,c5,c6,c7,c8} -> Subset of a1;
coherence
{x1,x2,x3,x4,x5,x6,x7} is Subset of D
by SUBSET_1:61;
let x8 be Element of D;
redefine func { as {c2,c3,c4,c5,c6,c7,c8,c9} -> Subset of a1;
coherence
{x1,x2,x3,x4,x5,x6,x7,x8} is Subset of D
by SUBSET_1:62;
end;

scheme :: DOMAIN_1:sch 52
s52{ F1() -> non empty set , F2() -> non empty set , F3( set ) -> Element of F2(), P1[ set ] } :
{ F3(x) where x is Element of F1() : P1[x] } is Subset of F2()
proof end;

scheme :: DOMAIN_1:sch 57
s57{ F1() -> non empty set , F2() -> non empty set , F3() -> non empty set , F4( set , set ) -> Element of F3(), P1[ set , set ] } :
{ F4(x,y) where x is Element of F1(), y is Element of F2() : P1[x,y] } is Subset of F3()
proof end;

definition
let D1 be non empty set , D2 be non empty set , D3 be non empty set ;
let x be Element of [:[:D1,D2:],D3:];
redefine func `11 as c4 `11 -> Element of a1;
coherence
x `11 is Element of D1
proof end;
redefine func `12 as c4 `12 -> Element of a2;
coherence
x `12 is Element of D2
proof end;
end;

definition
let D1 be non empty set , D2 be non empty set , D3 be non empty set ;
let x be Element of [:D1,[:D2,D3:]:];
redefine func `21 as c4 `21 -> Element of a2;
coherence
x `21 is Element of D2
proof end;
redefine func `22 as c4 `22 -> Element of a3;
coherence
x `22 is Element of D3
proof end;
end;

scheme :: DOMAIN_1:sch 63
s63{ F1() -> non empty set , P1[ set ], P2[ set ] } :
{ a where a is Element of F1() : ( P1[a] & P2[a] ) } = { a1 where a1 is Element of F1() : P1[a1] } /\ { a2 where a2 is Element of F1() : P2[a2] }
proof end;