let C be FormalContext; :: thesis: for A being Subset of the carrier' of C holds (AttributeDerivation C) . A = (AttributeDerivation C) . ((ObjectDerivation C) . ((AttributeDerivation C) . A))
let A be Subset of the carrier' of C; :: 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 A9 = { 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 O9 = { 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 object 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 object ; :: 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 x9 being Object of C st
( x9 = 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
x9 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 :: 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
}
& x 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
}
& x is-connected-with a ) )
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 o9 being Object of C st
( o9 = o & ( for a being Attribute of C st a in A holds
o9 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 object 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 object ; :: 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 x9 being Object of C st
( x9 = x & ( for a being Attribute of C st a in A holds
x9 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 a9 being Attribute of C st
( a9 = 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 a9 ) ) ;
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 object ; :: 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 x9 being Object of C st
( x9 = x & ( for a being Attribute of C st a in A holds
x9 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 the carrier of C ;
{ 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 object ; :: 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 x9 being Attribute of C st
( x9 = x & ( for o being Object of C st o in O holds
o is-connected-with x9 ) ) ;
hence x in the carrier' of C ; :: thesis: verum
end;
then reconsider A9 = { 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 the carrier' of C ;
( O = (AttributeDerivation C) . A & A9 = (ObjectDerivation C) . O ) by Def2, Def3;
hence (AttributeDerivation C) . A = (AttributeDerivation C) . ((ObjectDerivation C) . ((AttributeDerivation C) . A)) by A7, Def3; :: thesis: verum