Lm1:
for V, A being set
for f being Function st ex S being FinSequence st
( S IsNDRankSeq V,A & f in Union S ) holds
f in Union (FNDSC (V,A))
theorem
for
V,
A being
set holds
<*(NDSS (V,A)),(NDSS (V,(A \/ (NDSS (V,A))))),(NDSS (V,(A \/ (NDSS (V,(A \/ (NDSS (V,A))))))))*> IsNDRankSeq V,
A
theorem Th51:
for
a,
a1,
v,
v1 being
object for
V,
A being
set st
{v,v1} c= V &
{a,a1} c= A holds
ND_ex_3 (
v,
v1,
a,
a1)
in NDSS (
V,
A)
theorem Th52:
for
a,
a1,
v,
v1 being
object for
V,
A being
set st
{v,v1} c= V &
{a,a1} c= A holds
ND_ex_3 (
v,
v1,
a,
a1) is
NonatomicND of
V,
A
definition
let V,
A be non
empty set ;
let v,
v1 be
Element of
V;
let a,
a1 be
Element of
A;
ND_ex_3redefine func ND_ex_3 (
v,
v1,
a,
a1)
-> NonatomicND of
V,
A;
coherence
ND_ex_3 (v,v1,a,a1) is NonatomicND of V,A
end;
theorem
for
a,
a1,
v,
v1 being
object for
V,
A being
set st
{v,v1} c= V &
{a,a1} c= A holds
ND_ex_3 (
v,
v1,
a,
a1) is
TypeSCNominativeData of
V,
A by Th52;
::
deftheorem defines
ND_ex_4 NOMIN_1:def 11 :
for v, v1, v2, a, a1 being object holds ND_ex_4 (v,v1,v2,a,a1) = (v,v1) --> (a,(v2 .--> a1));
registration
let v,
v1,
v2,
a,
a1 be
object ;
coherence
( ND_ex_4 (v,v1,v2,a,a1) is Function-like & ND_ex_4 (v,v1,v2,a,a1) is Relation-like )
;
end;
theorem Th54:
for
a,
a1,
v,
v1,
v2 being
object for
V,
A being
set st
{v,v1,v2} c= V &
{a,a1} c= A holds
ND_ex_4 (
v,
v1,
v2,
a,
a1)
in NDSS (
V,
(A \/ (NDSS (V,A))))
theorem Th55:
for
a,
a1,
v,
v1,
v2 being
object for
V,
A being
set st
{v,v1,v2} c= V &
{a,a1} c= A holds
ND_ex_4 (
v,
v1,
v2,
a,
a1) is
NonatomicND of
V,
A
definition
let V,
A be non
empty set ;
let v,
v1,
v2 be
Element of
V;
let a,
a1 be
Element of
A;
ND_ex_4redefine func ND_ex_4 (
v,
v1,
v2,
a,
a1)
-> NonatomicND of
V,
A;
coherence
ND_ex_4 (v,v1,v2,a,a1) is NonatomicND of V,A
end;
theorem
for
a,
a1,
v,
v1,
v2 being
object for
V,
A being
set st
{v,v1,v2} c= V &
{a,a1} c= A holds
ND_ex_4 (
v,
v1,
v2,
a,
a1) is
TypeSCNominativeData of
V,
A by Th55;
definition
let V,
A be
set ;
let a be
object ;
let f be
V -valued FinSequence;
assume A1:
len f > 0
;
existence
ex b1 being FinSequence st
( len b1 = len f & b1 . 1 = naming (V,A,(f . (len f)),a) & ( for n being Nat st 1 <= n & n < len b1 holds
b1 . (n + 1) = naming (V,A,(f . ((len f) - n)),(b1 . n)) ) )
uniqueness
for b1, b2 being FinSequence st len b1 = len f & b1 . 1 = naming (V,A,(f . (len f)),a) & ( for n being Nat st 1 <= n & n < len b1 holds
b1 . (n + 1) = naming (V,A,(f . ((len f) - n)),(b1 . n)) ) & len b2 = len f & b2 . 1 = naming (V,A,(f . (len f)),a) & ( for n being Nat st 1 <= n & n < len b2 holds
b2 . (n + 1) = naming (V,A,(f . ((len f) - n)),(b2 . n)) ) holds
b1 = b2
end;
::
deftheorem Def14 defines
namingSeq NOMIN_1:def 14 :
for V, A being set
for a being object
for f being b1 -valued FinSequence st len f > 0 holds
for b5 being FinSequence holds
( b5 = namingSeq (V,A,f,a) iff ( len b5 = len f & b5 . 1 = naming (V,A,(f . (len f)),a) & ( for n being Nat st 1 <= n & n < len b5 holds
b5 . (n + 1) = naming (V,A,(f . ((len f) - n)),(b5 . n)) ) ) );
::
deftheorem defines
naming NOMIN_1:def 15 :
for V, A being set
for f being b1 -valued FinSequence
for a being object holds naming (V,A,f,a) = (namingSeq (V,A,f,a)) . (len (namingSeq (V,A,f,a)));
definition
let V,
A be
set ;
let d1,
d2 be
object ;
assume that A1:
d1 is
TypeSCNominativeData of
V,
A
and A2:
d2 is
TypeSCNominativeData of
V,
A
;
existence
( ( not d1 in A & not d2 in A implies ex b1 being TypeSCNominativeData of V,A ex f1, f2 being Function st
( f1 = d1 & f2 = d2 & b1 = f2 \/ (f1 | ((dom f1) \ (dom f2))) ) ) & ( ( d1 in A or d2 in A ) implies ex b1 being TypeSCNominativeData of V,A st b1 = d2 ) )
uniqueness
for b1, b2 being TypeSCNominativeData of V,A holds
( ( not d1 in A & not d2 in A & ex f1, f2 being Function st
( f1 = d1 & f2 = d2 & b1 = f2 \/ (f1 | ((dom f1) \ (dom f2))) ) & ex f1, f2 being Function st
( f1 = d1 & f2 = d2 & b2 = f2 \/ (f1 | ((dom f1) \ (dom f2))) ) implies b1 = b2 ) & ( ( d1 in A or d2 in A ) & b1 = d2 & b2 = d2 implies b1 = b2 ) )
;
consistency
for b1 being TypeSCNominativeData of V,A holds verum
;
end;
::
deftheorem Def16 defines
global_overlapping NOMIN_1:def 16 :
for V, A being set
for d1, d2 being object st d1 is TypeSCNominativeData of V,A & d2 is TypeSCNominativeData of V,A holds
for b5 being TypeSCNominativeData of V,A holds
( ( not d1 in A & not d2 in A implies ( b5 = global_overlapping (V,A,d1,d2) iff ex f1, f2 being Function st
( f1 = d1 & f2 = d2 & b5 = f2 \/ (f1 | ((dom f1) \ (dom f2))) ) ) ) & ( ( d1 in A or d2 in A ) implies ( b5 = global_overlapping (V,A,d1,d2) iff b5 = d2 ) ) );
definition
let V,
A be
set ;
let d1,
d2,
v be
object ;
func local_overlapping (
V,
A,
d1,
d2,
v)
-> TypeSCNominativeData of
V,
A equals
global_overlapping (
V,
A,
d1,
(naming (V,A,v,d2)));
coherence
global_overlapping (V,A,d1,(naming (V,A,v,d2))) is TypeSCNominativeData of V,A
;
end;
::
deftheorem defines
local_overlapping NOMIN_1:def 17 :
for V, A being set
for d1, d2, v being object holds local_overlapping (V,A,d1,d2,v) = global_overlapping (V,A,d1,(naming (V,A,v,d2)));
theorem Th68:
for
a1,
a2,
v1,
v2 being
object for
V,
A being
set st
{v1,v2} c= V &
v1 <> v2 & not
v1 .--> a1 in A & not
v2 .--> a2 in A &
a1 is
TypeSCNominativeData of
V,
A &
a2 is
TypeSCNominativeData of
V,
A holds
global_overlapping (
V,
A,
(v1 .--> a1),
(v2 .--> a2))
= (
v2,
v1)
--> (
a2,
a1)
theorem
for
a1,
a2,
v,
v1,
v2 being
object for
V,
A being
set st
{v,v1,v2} c= V &
v <> v1 &
a2 in A & not
v1 .--> a1 in A & not
v .--> (v2 .--> a2) in A &
a1 is
TypeSCNominativeData of
V,
A holds
local_overlapping (
V,
A,
(v1 .--> a1),
(v2 .--> a2),
v)
= (
v,
v1)
--> (
(v2 .--> a2),
a1)
definition
let V,
A be
set ;
let v be
object ;
set Dom =
{ d where d is NonatomicND of V,A : v in dom d } ;
existence
ex b1 being PartFunc of (ND (V,A)),(ND (V,A)) st
( dom b1 = { d where d is NonatomicND of V,A : v in dom d } & ( for D being NonatomicND of V,A st D in dom b1 holds
b1 . D = denaming (v,D) ) )
uniqueness
for b1, b2 being PartFunc of (ND (V,A)),(ND (V,A)) st dom b1 = { d where d is NonatomicND of V,A : v in dom d } & ( for D being NonatomicND of V,A st D in dom b1 holds
b1 . D = denaming (v,D) ) & dom b2 = { d where d is NonatomicND of V,A : v in dom d } & ( for D being NonatomicND of V,A st D in dom b2 holds
b2 . D = denaming (v,D) ) holds
b1 = b2
end;
definition
let V,
A be
set ;
let v be
object ;
existence
ex b1 being Function of (ND (V,A)),(ND (V,A)) st
for D being TypeSCNominativeData of V,A holds b1 . D = naming (V,A,v,D)
uniqueness
for b1, b2 being Function of (ND (V,A)),(ND (V,A)) st ( for D being TypeSCNominativeData of V,A holds b1 . D = naming (V,A,v,D) ) & ( for D being TypeSCNominativeData of V,A holds b2 . D = naming (V,A,v,D) ) holds
b1 = b2
end;
::
deftheorem defines
naming NOMIN_1:def 19 :
for V, A being set
for v being object
for b4 being Function of (ND (V,A)),(ND (V,A)) holds
( b4 = naming (V,A,v) iff for D being TypeSCNominativeData of V,A holds b4 . D = naming (V,A,v,D) );
definition
let V,
A be
set ;
let v be
object ;
func local_overlapping (
V,
A,
v)
-> PartFunc of
[:(ND (V,A)),(ND (V,A)):],
(ND (V,A)) means
(
dom it = [:((ND (V,A)) \ A),(ND (V,A)):] & ( for
d1 being
NonatomicND of
V,
A for
d2 being
object st not
d1 in A &
d2 in ND (
V,
A) holds
it . [d1,d2] = local_overlapping (
V,
A,
d1,
d2,
v) ) );
existence
ex b1 being PartFunc of [:(ND (V,A)),(ND (V,A)):],(ND (V,A)) st
( dom b1 = [:((ND (V,A)) \ A),(ND (V,A)):] & ( for d1 being NonatomicND of V,A
for d2 being object st not d1 in A & d2 in ND (V,A) holds
b1 . [d1,d2] = local_overlapping (V,A,d1,d2,v) ) )
uniqueness
for b1, b2 being PartFunc of [:(ND (V,A)),(ND (V,A)):],(ND (V,A)) st dom b1 = [:((ND (V,A)) \ A),(ND (V,A)):] & ( for d1 being NonatomicND of V,A
for d2 being object st not d1 in A & d2 in ND (V,A) holds
b1 . [d1,d2] = local_overlapping (V,A,d1,d2,v) ) & dom b2 = [:((ND (V,A)) \ A),(ND (V,A)):] & ( for d1 being NonatomicND of V,A
for d2 being object st not d1 in A & d2 in ND (V,A) holds
b2 . [d1,d2] = local_overlapping (V,A,d1,d2,v) ) holds
b1 = b2
end;
::
deftheorem defines
local_overlapping NOMIN_1:def 20 :
for V, A being set
for v being object
for b4 being PartFunc of [:(ND (V,A)),(ND (V,A)):],(ND (V,A)) holds
( b4 = local_overlapping (V,A,v) iff ( dom b4 = [:((ND (V,A)) \ A),(ND (V,A)):] & ( for d1 being NonatomicND of V,A
for d2 being object st not d1 in A & d2 in ND (V,A) holds
b4 . [d1,d2] = local_overlapping (V,A,d1,d2,v) ) ) );