let S be non empty non void ManySortedSign ; :: thesis: for A being non-empty MSAlgebra of S
for R being Subset of (CongrLatt A)
for F being SubsetFamily of [|the Sorts of A,the Sorts of A|] st R = F holds
meet |:F:| is MSCongruence of A

let A be non-empty MSAlgebra of S; :: thesis: for R being Subset of (CongrLatt A)
for F being SubsetFamily of [|the Sorts of A,the Sorts of A|] st R = F holds
meet |:F:| is MSCongruence of A

let R be Subset of (CongrLatt A); :: thesis: for F being SubsetFamily of [|the Sorts of A,the Sorts of A|] st R = F holds
meet |:F:| is MSCongruence of A

let F be SubsetFamily of [|the Sorts of A,the Sorts of A|]; :: thesis: ( R = F implies meet |:F:| is MSCongruence of A )
assume A1: R = F ; :: thesis: meet |:F:| is MSCongruence of A
set R0 = meet |:F:|;
set SF = the Sorts of A;
set I = the carrier of S;
per cases ( not F is empty or F is empty ) ;
suppose not F is empty ; :: thesis: meet |:F:| is MSCongruence of A
then reconsider F1 = F as non empty SubsetFamily of [|the Sorts of A,the Sorts of A|] ;
A2: F1 c= the carrier of (EqRelLatt the Sorts of A)
proof
let q be set ; :: according to TARSKI:def 3 :: thesis: ( not q in F1 or q in the carrier of (EqRelLatt the Sorts of A) )
assume q in F1 ; :: thesis: q in the carrier of (EqRelLatt the Sorts of A)
then q is MSCongruence of A by A1, MSUALG_5:def 6;
hence q in the carrier of (EqRelLatt the Sorts of A) by MSUALG_5:def 5; :: thesis: verum
end;
then A3: meet |:F:| is MSEquivalence_Relation-like ManySortedRelation of the Sorts of A by MSUALG_7:9;
reconsider R0 = meet |:F:| as ManySortedRelation of A by A2, MSUALG_7:9;
R0 is MSEquivalence-like
proof
let i be set ; :: according to MSUALG_4:def 3,MSUALG_4:def 5 :: thesis: for b1 being Element of bool [:(the Sorts of A . i),(the Sorts of A . i):] holds
( not i in the carrier of S or not R0 . i = b1 or b1 is Element of bool [:(the Sorts of A . i),(the Sorts of A . i):] )

let R be Relation of (the Sorts of A . i); :: thesis: ( not i in the carrier of S or not R0 . i = R or R is Element of bool [:(the Sorts of A . i),(the Sorts of A . i):] )
assume ( i in the carrier of S & R0 . i = R ) ; :: thesis: R is Element of bool [:(the Sorts of A . i),(the Sorts of A . i):]
hence R is Element of bool [:(the Sorts of A . i),(the Sorts of A . i):] by A3, MSUALG_4:def 3; :: thesis: verum
end;
then reconsider R0 = R0 as MSEquivalence-like ManySortedRelation of A ;
now
let o be OperSymbol of S; :: thesis: for a, b being Element of Args o,A st ( for n being Nat st n in dom a holds
[(a . n),(b . n)] in R0 . ((the_arity_of o) /. n) ) holds
[((Den o,A) . a),((Den o,A) . b)] in R0 . (the_result_sort_of o)

let a, b be Element of Args o,A; :: thesis: ( ( for n being Nat st n in dom a holds
[(a . n),(b . n)] in R0 . ((the_arity_of o) /. n) ) implies [((Den o,A) . a),((Den o,A) . b)] in R0 . (the_result_sort_of o) )

assume A4: for n being Nat st n in dom a holds
[(a . n),(b . n)] in R0 . ((the_arity_of o) /. n) ; :: thesis: [((Den o,A) . a),((Den o,A) . b)] in R0 . (the_result_sort_of o)
set r = the_result_sort_of o;
consider Q being Subset-Family of ([|the Sorts of A,the Sorts of A|] . (the_result_sort_of o)) such that
A5: Q = |:F1:| . (the_result_sort_of o) and
A6: R0 . (the_result_sort_of o) = Intersect Q by MSSUBFAM:def 2;
A7: Q = { (s . (the_result_sort_of o)) where s is Element of Bool [|the Sorts of A,the Sorts of A|] : s in F1 } by A5, CLOSURE2:15;
now
let Y be set ; :: thesis: ( Y in Q implies [((Den o,A) . a),((Den o,A) . b)] in Y )
assume Y in Q ; :: thesis: [((Den o,A) . a),((Den o,A) . b)] in Y
then consider s being Element of Bool [|the Sorts of A,the Sorts of A|] such that
A8: Y = s . (the_result_sort_of o) and
A9: s in F1 by A7;
reconsider s = s as MSCongruence of A by A1, A9, MSUALG_5:def 6;
now
let n be Nat; :: thesis: ( n in dom a implies [(a . n),(b . n)] in s . ((the_arity_of o) /. n) )
assume A10: n in dom a ; :: thesis: [(a . n),(b . n)] in s . ((the_arity_of o) /. n)
set t = (the_arity_of o) /. n;
consider G being Subset-Family of ([|the Sorts of A,the Sorts of A|] . ((the_arity_of o) /. n)) such that
A11: G = |:F1:| . ((the_arity_of o) /. n) and
A12: R0 . ((the_arity_of o) /. n) = Intersect G by MSSUBFAM:def 2;
[(a . n),(b . n)] in Intersect G by A4, A10, A12;
then A13: [(a . n),(b . n)] in meet G by A11, SETFAM_1:def 10;
G = { (j . ((the_arity_of o) /. n)) where j is Element of Bool [|the Sorts of A,the Sorts of A|] : j in F1 } by A11, CLOSURE2:15;
then s . ((the_arity_of o) /. n) in G by A9;
hence [(a . n),(b . n)] in s . ((the_arity_of o) /. n) by A13, SETFAM_1:def 1; :: thesis: verum
end;
hence [((Den o,A) . a),((Den o,A) . b)] in Y by A8, MSUALG_4:def 6; :: thesis: verum
end;
then [((Den o,A) . a),((Den o,A) . b)] in meet Q by A5, SETFAM_1:def 1;
hence [((Den o,A) . a),((Den o,A) . b)] in R0 . (the_result_sort_of o) by A5, A6, SETFAM_1:def 10; :: thesis: verum
end;
hence meet |:F:| is MSCongruence of A by MSUALG_4:def 6; :: thesis: verum
end;
suppose F is empty ; :: thesis: meet |:F:| is MSCongruence of A
end;
end;