:: 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 b1 being set
for b2, b3 being non empty set st b1 in [:b2,b3:] holds
ex b4 being Element of b2ex b5 being Element of b3 st b1 = [b4,b5]
proof end;

theorem Th10: :: DOMAIN_1:10
canceled;

theorem Th11: :: DOMAIN_1:11
canceled;

theorem Th12: :: DOMAIN_1:12
for b1, b2 being non empty set
for b3, b4 being Element of [:b1,b2:] st b3 `1 = b4 `1 & b3 `2 = b4 `2 holds
b3 = b4
proof end;

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

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

theorem Th13: :: DOMAIN_1:13
canceled;

theorem Th14: :: DOMAIN_1:14
canceled;

theorem Th15: :: DOMAIN_1:15
for b1 being set
for b2, b3, b4 being non empty set holds
( b1 in [:b2,b3,b4:] iff ex b5 being Element of b2ex b6 being Element of b3ex b7 being Element of b4 st b1 = [b5,b6,b7] )
proof end;

theorem Th16: :: DOMAIN_1:16
for b1, b2, b3, b4 being non empty set st ( for b5 being set holds
( b5 in b1 iff ex b6 being Element of b2ex b7 being Element of b3ex b8 being Element of b4 st b5 = [b6,b7,b8] ) ) holds
b1 = [:b2,b3,b4:]
proof end;

theorem Th17: :: DOMAIN_1:17
for b1, b2, b3, b4 being non empty set holds
( b1 = [:b2,b3,b4:] iff for b5 being set holds
( b5 in b1 iff ex b6 being Element of b2ex b7 being Element of b3ex b8 being Element of b4 st b5 = [b6,b7,b8] ) ) by Th15, Th16;

definition
let c1, c2, c3 be non empty set ;
let c4 be Element of c1;
let c5 be Element of c2;
let c6 be Element of c3;
redefine func [ as [c4,c5,c6] -> Element of [:a1,a2,a3:];
coherence
[c4,c5,c6] is Element of [:c1,c2,c3:]
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 b1 being set
for b2, b3, b4 being non empty set
for b5 being Element of [:b2,b3,b4:] holds
( b1 = b5 `1 iff for b6 being Element of b2
for b7 being Element of b3
for b8 being Element of b4 st b5 = [b6,b7,b8] holds
b1 = b6 )
proof end;

theorem Th25: :: DOMAIN_1:25
for b1 being set
for b2, b3, b4 being non empty set
for b5 being Element of [:b2,b3,b4:] holds
( b1 = b5 `2 iff for b6 being Element of b2
for b7 being Element of b3
for b8 being Element of b4 st b5 = [b6,b7,b8] holds
b1 = b7 )
proof end;

theorem Th26: :: DOMAIN_1:26
for b1 being set
for b2, b3, b4 being non empty set
for b5 being Element of [:b2,b3,b4:] holds
( b1 = b5 `3 iff for b6 being Element of b2
for b7 being Element of b3
for b8 being Element of b4 st b5 = [b6,b7,b8] holds
b1 = b8 )
proof end;

theorem Th27: :: DOMAIN_1:27
canceled;

theorem Th28: :: DOMAIN_1:28
for b1, b2, b3 being non empty set
for b4, b5 being Element of [:b1,b2,b3:] st b4 `1 = b5 `1 & b4 `2 = b5 `2 & b4 `3 = b5 `3 holds
b4 = b5
proof end;

theorem Th29: :: DOMAIN_1:29
canceled;

theorem Th30: :: DOMAIN_1:30
canceled;

theorem Th31: :: DOMAIN_1:31
for b1 being set
for b2, b3, b4, b5 being non empty set holds
( b1 in [:b2,b3,b4,b5:] iff ex b6 being Element of b2ex b7 being Element of b3ex b8 being Element of b4ex b9 being Element of b5 st b1 = [b6,b7,b8,b9] )
proof end;

theorem Th32: :: DOMAIN_1:32
for b1, b2, b3, b4, b5 being non empty set st ( for b6 being set holds
( b6 in b1 iff ex b7 being Element of b2ex b8 being Element of b3ex b9 being Element of b4ex b10 being Element of b5 st b6 = [b7,b8,b9,b10] ) ) holds
b1 = [:b2,b3,b4,b5:]
proof end;

theorem Th33: :: DOMAIN_1:33
for b1, b2, b3, b4, b5 being non empty set holds
( b1 = [:b2,b3,b4,b5:] iff for b6 being set holds
( b6 in b1 iff ex b7 being Element of b2ex b8 being Element of b3ex b9 being Element of b4ex b10 being Element of b5 st b6 = [b7,b8,b9,b10] ) ) by Th31, Th32;

definition
let c1, c2, c3, c4 be non empty set ;
let c5 be Element of c1;
let c6 be Element of c2;
let c7 be Element of c3;
let c8 be Element of c4;
redefine func [ as [c5,c6,c7,c8] -> Element of [:a1,a2,a3,a4:];
coherence
[c5,c6,c7,c8] is Element of [:c1,c2,c3,c4:]
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 b1 being set
for b2, b3, b4, b5 being non empty set
for b6 being Element of [:b2,b3,b4,b5:] holds
( b1 = b6 `1 iff for b7 being Element of b2
for b8 being Element of b3
for b9 being Element of b4
for b10 being Element of b5 st b6 = [b7,b8,b9,b10] holds
b1 = b7 )
proof end;

theorem Th41: :: DOMAIN_1:41
for b1 being set
for b2, b3, b4, b5 being non empty set
for b6 being Element of [:b2,b3,b4,b5:] holds
( b1 = b6 `2 iff for b7 being Element of b2
for b8 being Element of b3
for b9 being Element of b4
for b10 being Element of b5 st b6 = [b7,b8,b9,b10] holds
b1 = b8 )
proof end;

theorem Th42: :: DOMAIN_1:42
for b1 being set
for b2, b3, b4, b5 being non empty set
for b6 being Element of [:b2,b3,b4,b5:] holds
( b1 = b6 `3 iff for b7 being Element of b2
for b8 being Element of b3
for b9 being Element of b4
for b10 being Element of b5 st b6 = [b7,b8,b9,b10] holds
b1 = b9 )
proof end;

theorem Th43: :: DOMAIN_1:43
for b1 being set
for b2, b3, b4, b5 being non empty set
for b6 being Element of [:b2,b3,b4,b5:] holds
( b1 = b6 `4 iff for b7 being Element of b2
for b8 being Element of b3
for b9 being Element of b4
for b10 being Element of b5 st b6 = [b7,b8,b9,b10] holds
b1 = b10 )
proof end;

theorem Th44: :: DOMAIN_1:44
canceled;

theorem Th45: :: DOMAIN_1:45
for b1, b2, b3, b4 being non empty set
for b5, b6 being Element of [:b1,b2,b3,b4:] st b5 `1 = b6 `1 & b5 `2 = b6 `2 & b5 `3 = b6 `3 & b5 `4 = b6 `4 holds
b5 = b6
proof end;

scheme :: DOMAIN_1:sch 1
s1{ P1[ set ] } :
for b1 being non empty set holds { b2 where B is Element of b1 : P1[b2] } is Subset of b1
proof end;

scheme :: DOMAIN_1:sch 2
s2{ P1[ set , set ] } :
for b1, b2 being non empty set holds { [b3,b4] where B is Element of b1, B is Element of b2 : P1[b3,b4] } is Subset of [:b1,b2:]
proof end;

scheme :: DOMAIN_1:sch 3
s3{ P1[ set , set , set ] } :
for b1, b2, b3 being non empty set holds { [b4,b5,b6] where B is Element of b1, B is Element of b2, B is Element of b3 : P1[b4,b5,b6] } is Subset of [:b1,b2,b3:]
proof end;

scheme :: DOMAIN_1:sch 4
s4{ P1[ set , set , set , set ] } :
for b1, b2, b3, b4 being non empty set holds { [b5,b6,b7,b8] where B is Element of b1, B is Element of b2, B is Element of b3, B is Element of b4 : P1[b5,b6,b7,b8] } is Subset of [:b1,b2,b3,b4:]
proof end;

scheme :: DOMAIN_1:sch 5
s5{ P1[ set ], P2[ set ] } :
for b1 being non empty set st ( for b2 being Element of b1 st P1[b2] holds
P2[b2] ) holds
{ b2 where B is Element of b1 : P1[b2] } c= { b2 where B is Element of b1 : P2[b2] }
proof end;

scheme :: DOMAIN_1:sch 6
s6{ P1[ set ], P2[ set ] } :
for b1 being non empty set st ( for b2 being Element of b1 holds
( P1[b2] iff P2[b2] ) ) holds
{ b2 where B is Element of b1 : P1[b2] } = { b2 where B is Element of b1 : P2[b2] }
proof end;

scheme :: DOMAIN_1:sch 7
s7{ F1() -> non empty set , P1[ set ] } :
{ b1 where B is Element of F1() : P1[b1] } is Subset of F1()
proof end;

theorem Th46: :: DOMAIN_1:46
canceled;

theorem Th47: :: DOMAIN_1:47
canceled;

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

theorem Th49: :: DOMAIN_1:49
for b1, b2 being non empty set holds [:b1,b2:] = { [b3,b4] where B is Element of b1, B is Element of b2 : verum }
proof end;

theorem Th50: :: DOMAIN_1:50
for b1, b2, b3 being non empty set holds [:b1,b2,b3:] = { [b4,b5,b6] where B is Element of b1, B is Element of b2, B is Element of b3 : verum }
proof end;

theorem Th51: :: DOMAIN_1:51
for b1, b2, b3, b4 being non empty set holds [:b1,b2,b3,b4:] = { [b5,b6,b7,b8] where B is Element of b1, B is Element of b2, B is Element of b3, B is Element of b4 : verum }
proof end;

theorem Th52: :: DOMAIN_1:52
for b1 being non empty set
for b2 being Subset of b1 holds b2 = { b3 where B is Element of b1 : b3 in b2 }
proof end;

theorem Th53: :: DOMAIN_1:53
for b1, b2 being non empty set
for b3 being Subset of b1
for b4 being Subset of b2 holds [:b3,b4:] = { [b5,b6] where B is Element of b1, B is Element of b2 : ( b5 in b3 & b6 in b4 ) }
proof end;

theorem Th54: :: DOMAIN_1:54
for b1, b2, b3 being non empty set
for b4 being Subset of b1
for b5 being Subset of b2
for b6 being Subset of b3 holds [:b4,b5,b6:] = { [b7,b8,b9] where B is Element of b1, B is Element of b2, B is Element of b3 : ( b7 in b4 & b8 in b5 & b9 in b6 ) }
proof end;

theorem Th55: :: DOMAIN_1:55
for b1, b2, b3, b4 being non empty set
for b5 being Subset of b1
for b6 being Subset of b2
for b7 being Subset of b3
for b8 being Subset of b4 holds [:b5,b6,b7,b8:] = { [b9,b10,b11,b12] where B is Element of b1, B is Element of b2, B is Element of b3, B is Element of b4 : ( b9 in b5 & b10 in b6 & b11 in b7 & b12 in b8 ) }
proof end;

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

theorem Th57: :: DOMAIN_1:57
for b1 being non empty set
for b2 being Subset of b1 holds b2 ` = { b3 where B is Element of b1 : not b3 in b2 }
proof end;

theorem Th58: :: DOMAIN_1:58
for b1 being non empty set
for b2, b3 being Subset of b1 holds b2 /\ b3 = { b4 where B is Element of b1 : ( b4 in b2 & b4 in b3 ) }
proof end;

theorem Th59: :: DOMAIN_1:59
for b1 being non empty set
for b2, b3 being Subset of b1 holds b2 \/ b3 = { b4 where B is Element of b1 : ( b4 in b2 or b4 in b3 ) }
proof end;

theorem Th60: :: DOMAIN_1:60
for b1 being non empty set
for b2, b3 being Subset of b1 holds b2 \ b3 = { b4 where B is Element of b1 : ( b4 in b2 & not b4 in b3 ) }
proof end;

theorem Th61: :: DOMAIN_1:61
for b1 being non empty set
for b2, b3 being Subset of b1 holds b2 \+\ b3 = { b4 where B is Element of b1 : ( ( b4 in b2 & not b4 in b3 ) or ( not b4 in b2 & b4 in b3 ) ) }
proof end;

theorem Th62: :: DOMAIN_1:62
for b1 being non empty set
for b2, b3 being Subset of b1 holds b2 \+\ b3 = { b4 where B is Element of b1 : ( not b4 in b2 iff b4 in b3 ) }
proof end;

theorem Th63: :: DOMAIN_1:63
for b1 being non empty set
for b2, b3 being Subset of b1 holds b2 \+\ b3 = { b4 where B is Element of b1 : ( b4 in b2 iff not b4 in b3 ) }
proof end;

theorem Th64: :: DOMAIN_1:64
for b1 being non empty set
for b2, b3 being Subset of b1 holds b2 \+\ b3 = { b4 where B is Element of b1 : ( ( b4 in b2 & not b4 in b3 ) or ( b4 in b3 & not b4 in b2 ) ) }
proof end;

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

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

scheme :: DOMAIN_1:sch 9
s9{ F1() -> non empty set , F2() -> non empty set , F3() -> non empty set , F4( set , set ) -> Element of F3(), P1[ set , set ] } :
{ F4(b1,b2) where B is Element of F1(), B is Element of F2() : P1[b1,b2] } is Subset of F3()
proof end;

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

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

scheme :: DOMAIN_1:sch 10
s10{ F1() -> non empty set , P1[ set ], P2[ set ] } :
{ b1 where B is Element of F1() : ( P1[b1] & P2[b1] ) } = { b1 where B is Element of F1() : P1[b1] } /\ { b1 where B is Element of F1() : P2[b1] }
proof end;