let S be locally_directed OrderSortedSign; :: thesis: for X being non-empty ManySortedSet of S holds PTCongruence X is monotone
let X be non-empty ManySortedSet of S; :: thesis: PTCongruence X is monotone
set PTA = ParsedTermsOSA X;
set P = PTCongruence X;
thus PTCongruence X is monotone :: thesis: verum
proof
let o1, o2 be OperSymbol of S; :: according to OSALG_4:def 26 :: thesis: ( not o1 <= o2 or for b1 being Element of Args (o1,(ParsedTermsOSA X))
for b2 being Element of Args (o2,(ParsedTermsOSA X)) holds
( ex b3 being set st
( b3 in proj1 b1 & not [(b1 . b3),(b2 . b3)] in (PTCongruence X) . ((the_arity_of o2) /. b3) ) or [((Den (o1,(ParsedTermsOSA X))) . b1),((Den (o2,(ParsedTermsOSA X))) . b2)] in (PTCongruence X) . (the_result_sort_of o2) ) )

assume A1: o1 <= o2 ; :: thesis: for b1 being Element of Args (o1,(ParsedTermsOSA X))
for b2 being Element of Args (o2,(ParsedTermsOSA X)) holds
( ex b3 being set st
( b3 in proj1 b1 & not [(b1 . b3),(b2 . b3)] in (PTCongruence X) . ((the_arity_of o2) /. b3) ) or [((Den (o1,(ParsedTermsOSA X))) . b1),((Den (o2,(ParsedTermsOSA X))) . b2)] in (PTCongruence X) . (the_result_sort_of o2) )

A2: o1 ~= o2 by A1;
A3: the_result_sort_of o1 <= the_result_sort_of o2 by A1;
let x1 be Element of Args (o1,(ParsedTermsOSA X)); :: thesis: for b1 being Element of Args (o2,(ParsedTermsOSA X)) holds
( ex b2 being set st
( b2 in proj1 x1 & not [(x1 . b2),(b1 . b2)] in (PTCongruence X) . ((the_arity_of o2) /. b2) ) or [((Den (o1,(ParsedTermsOSA X))) . x1),((Den (o2,(ParsedTermsOSA X))) . b1)] in (PTCongruence X) . (the_result_sort_of o2) )

let x2 be Element of Args (o2,(ParsedTermsOSA X)); :: thesis: ( ex b1 being set st
( b1 in proj1 x1 & not [(x1 . b1),(x2 . b1)] in (PTCongruence X) . ((the_arity_of o2) /. b1) ) or [((Den (o1,(ParsedTermsOSA X))) . x1),((Den (o2,(ParsedTermsOSA X))) . x2)] in (PTCongruence X) . (the_result_sort_of o2) )

assume A4: for y being Nat st y in dom x1 holds
[(x1 . y),(x2 . y)] in (PTCongruence X) . ((the_arity_of o2) /. y) ; :: thesis: [((Den (o1,(ParsedTermsOSA X))) . x1),((Den (o2,(ParsedTermsOSA X))) . x2)] in (PTCongruence X) . (the_result_sort_of o2)
the_arity_of o1 <= the_arity_of o2 by A1;
then A5: len (the_arity_of o1) = len (the_arity_of o2) ;
then dom (the_arity_of o2) = dom (the_arity_of o1) by FINSEQ_3:29;
then dom (the_arity_of o2) = dom x1 by MSUALG_3:6;
hence [((Den (o1,(ParsedTermsOSA X))) . x1),((Den (o2,(ParsedTermsOSA X))) . x2)] in (PTCongruence X) . (the_result_sort_of o2) by A4, A2, A3, A5, Th26; :: thesis: verum
end;