let C be FormalContext; :: thesis: for O being Subset of holds (ObjectDerivation C) . O = (ObjectDerivation C) . ((AttributeDerivation C) . ((ObjectDerivation C) . O))
let O be Subset of ; :: thesis: (ObjectDerivation C) . O = (ObjectDerivation C) . ((AttributeDerivation C) . ((ObjectDerivation C) . O))
set A = { a where a is Attribute of C : for o being Object of C st o in O holds
o is-connected-with a
}
;
set O' = { o where o is Object of C : for a being Attribute of C st a in { a where a is Attribute of C : for o being Object of C st o in O holds
o is-connected-with a
}
holds
o is-connected-with a
}
;
set A' = { a where a is Attribute of C : for o being Object of C st o in { o where o is Object of C : for a being Attribute of C st a in { a where a is Attribute of C : for o being Object of C st o in O holds
o is-connected-with a
}
holds
o is-connected-with a
}
holds
o is-connected-with a
}
;
A1: for x being set st x in { a where a is Attribute of C : for o being Object of C st o in { o where o is Object of C : for a being Attribute of C st a in { a where a is Attribute of C : for o being Object of C st o in O holds
o is-connected-with a
}
holds
o is-connected-with a
}
holds
o is-connected-with a
}
holds
x in { a where a is Attribute of C : for o being Object of C st o in O holds
o is-connected-with a
}
proof
let x be set ; :: thesis: ( x in { a where a is Attribute of C : for o being Object of C st o in { o where o is Object of C : for a being Attribute of C st a in { a where a is Attribute of C : for o being Object of C st o in O holds
o is-connected-with a
}
holds
o is-connected-with a
}
holds
o is-connected-with a
}
implies x in { a where a is Attribute of C : for o being Object of C st o in O holds
o is-connected-with a
}
)

assume x in { a where a is Attribute of C : for o being Object of C st o in { o where o is Object of C : for a being Attribute of C st a in { a where a is Attribute of C : for o being Object of C st o in O holds
o is-connected-with a
}
holds
o is-connected-with a
}
holds
o is-connected-with a
}
; :: thesis: x in { a where a is Attribute of C : for o being Object of C st o in O holds
o is-connected-with a
}

then A2: ex x' being Attribute of C st
( x' = x & ( for o being Object of C st o in { o where o is Object of C : for a being Attribute of C st a in { a where a is Attribute of C : for o being Object of C st o in O holds
o is-connected-with a
}
holds
o is-connected-with a
}
holds
o is-connected-with x' ) ) ;
then reconsider x = x as Attribute of C ;
for o being Object of C st o in O holds
o is-connected-with x
proof
let o be Object of C; :: thesis: ( o in O implies o is-connected-with x )
assume A3: o in O ; :: thesis: o is-connected-with x
now
per cases ( o in { o where o is Object of C : for a being Attribute of C st a in { a where a is Attribute of C : for o being Object of C st o in O holds
o is-connected-with a
}
holds
o is-connected-with a
}
or not o in { o where o is Object of C : for a being Attribute of C st a in { a where a is Attribute of C : for o being Object of C st o in O holds
o is-connected-with a
}
holds
o is-connected-with a
}
)
;
case o in { o where o is Object of C : for a being Attribute of C st a in { a where a is Attribute of C : for o being Object of C st o in O holds
o is-connected-with a
}
holds
o is-connected-with a
}
; :: thesis: o is-connected-with x
end;
case not o in { o where o is Object of C : for a being Attribute of C st a in { a where a is Attribute of C : for o being Object of C st o in O holds
o is-connected-with a
}
holds
o is-connected-with a
}
; :: thesis: o is-connected-with x
then consider a being Attribute of C such that
A4: a in { a where a is Attribute of C : for o being Object of C st o in O holds
o is-connected-with a
}
and
A5: not o is-connected-with a ;
ex a' being Attribute of C st
( a' = a & ( for o being Object of C st o in O holds
o is-connected-with a' ) ) by A4;
hence o is-connected-with x by A3, A5; :: thesis: verum
end;
end;
end;
hence o is-connected-with x ; :: thesis: verum
end;
hence x in { a where a is Attribute of C : for o being Object of C st o in O holds
o is-connected-with a
}
; :: thesis: verum
end;
for x being set st x in { a where a is Attribute of C : for o being Object of C st o in O holds
o is-connected-with a
}
holds
x in { a where a is Attribute of C : for o being Object of C st o in { o where o is Object of C : for a being Attribute of C st a in { a where a is Attribute of C : for o being Object of C st o in O holds
o is-connected-with a
}
holds
o is-connected-with a
}
holds
o is-connected-with a
}
proof
let x be set ; :: thesis: ( x in { a where a is Attribute of C : for o being Object of C st o in O holds
o is-connected-with a
}
implies x in { a where a is Attribute of C : for o being Object of C st o in { o where o is Object of C : for a being Attribute of C st a in { a where a is Attribute of C : for o being Object of C st o in O holds
o is-connected-with a
}
holds
o is-connected-with a
}
holds
o is-connected-with a
}
)

assume A6: x in { a where a is Attribute of C : for o being Object of C st o in O holds
o is-connected-with a
}
; :: thesis: x in { a where a is Attribute of C : for o being Object of C st o in { o where o is Object of C : for a being Attribute of C st a in { a where a is Attribute of C : for o being Object of C st o in O holds
o is-connected-with a
}
holds
o is-connected-with a
}
holds
o is-connected-with a
}

then ex x' being Attribute of C st
( x' = x & ( for o being Object of C st o in O holds
o is-connected-with x' ) ) ;
then reconsider x = x as Attribute of C ;
for o being Object of C st o in { o where o is Object of C : for a being Attribute of C st a in { a where a is Attribute of C : for o being Object of C st o in O holds
o is-connected-with a
}
holds
o is-connected-with a
}
holds
o is-connected-with x
proof
let o be Object of C; :: thesis: ( o in { o where o is Object of C : for a being Attribute of C st a in { a where a is Attribute of C : for o being Object of C st o in O holds
o is-connected-with a
}
holds
o is-connected-with a
}
implies o is-connected-with x )

assume o in { o where o is Object of C : for a being Attribute of C st a in { a where a is Attribute of C : for o being Object of C st o in O holds
o is-connected-with a
}
holds
o is-connected-with a
}
; :: thesis: o is-connected-with x
then ex o' being Object of C st
( o' = o & ( for a being Attribute of C st a in { a where a is Attribute of C : for o being Object of C st o in O holds
o is-connected-with a
}
holds
o' is-connected-with a ) ) ;
hence o is-connected-with x by A6; :: thesis: verum
end;
hence x in { a where a is Attribute of C : for o being Object of C st o in { o where o is Object of C : for a being Attribute of C st a in { a where a is Attribute of C : for o being Object of C st o in O holds
o is-connected-with a
}
holds
o is-connected-with a
}
holds
o is-connected-with a
}
; :: thesis: verum
end;
then A7: { a where a is Attribute of C : for o being Object of C st o in O holds
o is-connected-with a } = { a where a is Attribute of C : for o being Object of C st o in { o where o is Object of C : for a being Attribute of C st a in { a where a is Attribute of C : for o being Object of C st o in O holds
o is-connected-with a
}
holds
o is-connected-with a
}
holds
o is-connected-with a
}
by A1, TARSKI:2;
{ a where a is Attribute of C : for o being Object of C st o in O holds
o is-connected-with a } c= the carrier' of C
proof
let x be set ; :: according to TARSKI:def 3 :: thesis: ( not x in { a where a is Attribute of C : for o being Object of C st o in O holds
o is-connected-with a
}
or x in the carrier' of C )

assume x in { a where a is Attribute of C : for o being Object of C st o in O holds
o is-connected-with a
}
; :: thesis: x in the carrier' of C
then ex x' being Attribute of C st
( x' = x & ( for o being Object of C st o in O holds
o is-connected-with x' ) ) ;
hence x in the carrier' of C ; :: thesis: verum
end;
then reconsider A = { a where a is Attribute of C : for o being Object of C st o in O holds
o is-connected-with a
}
as Subset of ;
{ o where o is Object of C : for a being Attribute of C st a in { a where a is Attribute of C : for o being Object of C st o in O holds
o is-connected-with a
}
holds
o is-connected-with a } c= the carrier of C
proof
let x be set ; :: according to TARSKI:def 3 :: thesis: ( not x in { o where o is Object of C : for a being Attribute of C st a in { a where a is Attribute of C : for o being Object of C st o in O holds
o is-connected-with a
}
holds
o is-connected-with a
}
or x in the carrier of C )

assume x in { o where o is Object of C : for a being Attribute of C st a in { a where a is Attribute of C : for o being Object of C st o in O holds
o is-connected-with a
}
holds
o is-connected-with a
}
; :: thesis: x in the carrier of C
then ex x' being Object of C st
( x' = x & ( for a being Attribute of C st a in A holds
x' is-connected-with a ) ) ;
hence x in the carrier of C ; :: thesis: verum
end;
then reconsider O' = { o where o is Object of C : for a being Attribute of C st a in { a where a is Attribute of C : for o being Object of C st o in O holds
o is-connected-with a
}
holds
o is-connected-with a
}
as Subset of ;
( A = (ObjectDerivation C) . O & O' = (AttributeDerivation C) . A ) by Def6, Def7;
hence (ObjectDerivation C) . O = (ObjectDerivation C) . ((AttributeDerivation C) . ((ObjectDerivation C) . O)) by A7, Def6; :: thesis: verum