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

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 where o is Object of C : for a being Attribute of C st a in A holds
o is-connected-with a
}
holds
o is-connected-with a
}
holds
o is-connected-with a
}
; :: thesis: x in { o where o is Object of C : for a being Attribute of C st a in A holds
o is-connected-with a
}

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

assume A6: x in { o where o is Object of C : for a being Attribute of C st a in A holds
o is-connected-with a
}
; :: thesis: 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 where o is Object of C : for a being Attribute of C st a in A holds
o is-connected-with a
}
holds
o is-connected-with a
}
holds
o is-connected-with a
}

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 ) ) ;
then reconsider x = x as 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 where o is Object of C : for a being Attribute of C st a in A holds
o is-connected-with a
}
holds
o is-connected-with a
}
holds
x is-connected-with a
proof
let a be Attribute of C; :: thesis: ( a 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 holds
o is-connected-with a
}
holds
o is-connected-with a
}
implies x is-connected-with a )

assume a 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 holds
o is-connected-with a
}
holds
o is-connected-with a
}
; :: thesis: x is-connected-with a
then ex a' being Attribute of C st
( a' = a & ( 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 holds
o is-connected-with a
}
holds
o is-connected-with a' ) ) ;
hence x is-connected-with a by A6; :: thesis: verum
end;
hence 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 where o is Object of C : for a being Attribute of C st a in A holds
o is-connected-with a
}
holds
o is-connected-with a
}
holds
o is-connected-with a
}
; :: thesis: verum
end;
then A7: { o where o is Object of C : for a being Attribute of C st a in A holds
o is-connected-with a } = { 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 where o is Object of C : for a being Attribute of C st a in A holds
o is-connected-with a
}
holds
o is-connected-with a
}
holds
o is-connected-with a
}
by A1, TARSKI:2;
{ o where o is Object of C : for a being Attribute of C st a in 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 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 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 holds
o is-connected-with a
}
as Subset of ;
{ 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 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 { 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 holds
o is-connected-with a
}
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 where o is Object of C : for a being Attribute of C st a in A holds
o is-connected-with a
}
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 where o is Object of C : for a being Attribute of C st a in A holds
o is-connected-with a
}
holds
o is-connected-with a
}
as Subset of ;
( O = (AttributeDerivation C) . A & A' = (ObjectDerivation C) . O ) by Def6, Def7;
hence (AttributeDerivation C) . A = (AttributeDerivation C) . ((ObjectDerivation C) . ((AttributeDerivation C) . A)) by A7, Def7; :: thesis: verum