Article OSALG_2, MML version 4.99.1005
:: OSALG_2:th 1
theorem
for b1 being non empty reflexive transitive antisymmetric RelStr
for b2, b3 being order-sorted ManySortedSet of the carrier of b1 holds
b2 /\ b3 is order-sorted ManySortedSet of the carrier of b1;
:: OSALG_2:th 2
theorem
for b1 being non empty reflexive transitive antisymmetric RelStr
for b2, b3 being order-sorted ManySortedSet of the carrier of b1 holds
b2 \/ b3 is order-sorted ManySortedSet of the carrier of b1;
:: OSALG_2:modenot 1 => OSALG_2:mode 1
definition
let a1 be non empty reflexive transitive antisymmetric RelStr;
let a2 be order-sorted ManySortedSet of the carrier of a1;
mode OrderSortedSubset of A2 -> ManySortedSubset of a2 means
it is order-sorted ManySortedSet of the carrier of a1;
end;
:: OSALG_2:dfs 1
definiens
let a1 be non empty reflexive transitive antisymmetric RelStr;
let a2 be order-sorted ManySortedSet of the carrier of a1;
let a3 be ManySortedSubset of a2;
To prove
a3 is OrderSortedSubset of a2
it is sufficient to prove
thus a3 is order-sorted ManySortedSet of the carrier of a1;
:: OSALG_2:def 1
theorem
for b1 being non empty reflexive transitive antisymmetric RelStr
for b2 being order-sorted ManySortedSet of the carrier of b1
for b3 being ManySortedSubset of b2 holds
b3 is OrderSortedSubset of b2
iff
b3 is order-sorted ManySortedSet of the carrier of b1;
:: OSALG_2:exreg 1
registration
let a1 be non empty reflexive transitive antisymmetric RelStr;
let a2 be non-empty order-sorted ManySortedSet of the carrier of a1;
cluster Relation-like non-empty Function-like OrderSortedSubset of a2;
end;
:: OSALG_2:modenot 2 => OSALG_2:mode 2
definition
let a1 be non empty non void order-sorted discernable OverloadedRSSign;
let a2 be order-sorted MSAlgebra over a1;
mode OSSubset of A2 -> ManySortedSubset of the Sorts of a2 means
it is order-sorted ManySortedSet of the carrier of a1;
end;
:: OSALG_2:dfs 2
definiens
let a1 be non empty non void order-sorted discernable OverloadedRSSign;
let a2 be order-sorted MSAlgebra over a1;
let a3 be ManySortedSubset of the Sorts of a2;
To prove
a3 is OSSubset of a2
it is sufficient to prove
thus a3 is order-sorted ManySortedSet of the carrier of a1;
:: OSALG_2:def 2
theorem
for b1 being non empty non void order-sorted discernable OverloadedRSSign
for b2 being order-sorted MSAlgebra over b1
for b3 being ManySortedSubset of the Sorts of b2 holds
b3 is OSSubset of b2
iff
b3 is order-sorted ManySortedSet of the carrier of b1;
:: OSALG_2:exreg 2
registration
let a1 be non empty non void order-sorted discernable OverloadedRSSign;
cluster strict non-empty order-sorted monotone MSAlgebra over a1;
end;
:: OSALG_2:exreg 3
registration
let a1 be non empty non void order-sorted discernable OverloadedRSSign;
let a2 be non-empty order-sorted MSAlgebra over a1;
cluster Relation-like non-empty Function-like OSSubset of a2;
end;
:: OSALG_2:th 3
theorem
for b1 being non empty strict non void all-with_const_op ManySortedSign holds
OSSign b1 is all-with_const_op;
:: OSALG_2:exreg 4
registration
cluster non empty non void all-with_const_op reflexive transitive antisymmetric strict order-sorted discernable OverloadedRSSign;
end;
:: OSALG_2:th 4
theorem
for b1 being non empty non void order-sorted discernable OverloadedRSSign
for b2 being order-sorted MSAlgebra over b1 holds
MSAlgebra(#the Sorts of b2,the Charact of b2#) is order-sorted(b1);
:: OSALG_2:exreg 5
registration
let a1 be non empty non void order-sorted discernable OverloadedRSSign;
let a2 be order-sorted MSAlgebra over a1;
cluster order-sorted MSSubAlgebra of a2;
end;
:: OSALG_2:modenot 3
definition
let a1 be non empty non void order-sorted discernable OverloadedRSSign;
let a2 be order-sorted MSAlgebra over a1;
mode OSSubAlgebra of a2 is order-sorted MSSubAlgebra of a2;
end;
:: OSALG_2:exreg 6
registration
let a1 be non empty non void order-sorted discernable OverloadedRSSign;
let a2 be order-sorted MSAlgebra over a1;
cluster strict order-sorted MSSubAlgebra of a2;
end;
:: OSALG_2:exreg 7
registration
let a1 be non empty non void order-sorted discernable OverloadedRSSign;
let a2 be non-empty order-sorted MSAlgebra over a1;
cluster strict non-empty order-sorted MSSubAlgebra of a2;
end;
:: OSALG_2:th 5
theorem
for b1 being non empty non void order-sorted discernable OverloadedRSSign
for b2 being order-sorted MSAlgebra over b1
for b3 being MSAlgebra over b1 holds
b3 is order-sorted MSSubAlgebra of b2
iff
the Sorts of b3 is OSSubset of b2 &
(for b4 being OSSubset of b2
st b4 = the Sorts of b3
holds b4 is opers_closed(b1, b2) & the Charact of b3 = Opers(b2,b4));
:: OSALG_2:funcnot 1 => OSALG_2:func 1
definition
let a1 be non empty non void order-sorted discernable OverloadedRSSign;
let a2 be order-sorted MSAlgebra over a1;
let a3 be Element of the carrier of a1;
func OSConstants(A2,A3) -> Element of bool ((the Sorts of a2) . a3) equals
union {Constants(a2,b1) where b1 is Element of the carrier of a1: b1 <= a3};
end;
:: OSALG_2:def 3
theorem
for b1 being non empty non void order-sorted discernable OverloadedRSSign
for b2 being order-sorted MSAlgebra over b1
for b3 being Element of the carrier of b1 holds
OSConstants(b2,b3) = union {Constants(b2,b4) where b4 is Element of the carrier of b1: b4 <= b3};
:: OSALG_2:th 11
theorem
for b1 being non empty non void order-sorted discernable OverloadedRSSign
for b2 being order-sorted MSAlgebra over b1
for b3 being Element of the carrier of b1 holds
Constants(b2,b3) c= OSConstants(b2,b3);
:: OSALG_2:funcnot 2 => OSALG_2:func 2
definition
let a1 be non empty non void order-sorted discernable OverloadedRSSign;
let a2 be ManySortedSet of the carrier of a1;
func OSCl A2 -> order-sorted ManySortedSet of the carrier of a1 means
for b1 being Element of the carrier of a1 holds
it . b1 = union {a2 . b2 where b2 is Element of the carrier of a1: b2 <= b1};
end;
:: OSALG_2:def 4
theorem
for b1 being non empty non void order-sorted discernable OverloadedRSSign
for b2 being ManySortedSet of the carrier of b1
for b3 being order-sorted ManySortedSet of the carrier of b1 holds
b3 = OSCl b2
iff
for b4 being Element of the carrier of b1 holds
b3 . b4 = union {b2 . b5 where b5 is Element of the carrier of b1: b5 <= b4};
:: OSALG_2:th 12
theorem
for b1 being non empty non void order-sorted discernable OverloadedRSSign
for b2 being ManySortedSet of the carrier of b1 holds
b2 c= OSCl b2;
:: OSALG_2:th 13
theorem
for b1 being non empty non void order-sorted discernable OverloadedRSSign
for b2 being ManySortedSet of the carrier of b1
for b3 being order-sorted ManySortedSet of the carrier of b1
st b2 c= b3
holds OSCl b2 c= b3;
:: OSALG_2:th 14
theorem
for b1 being non empty non void order-sorted discernable OverloadedRSSign
for b2 being order-sorted ManySortedSet of the carrier of b1 holds
OSCl b2 = b2;
:: OSALG_2:funcnot 3 => OSALG_2:func 3
definition
let a1 be non empty non void order-sorted discernable OverloadedRSSign;
let a2 be order-sorted MSAlgebra over a1;
func OSConstants A2 -> OSSubset of a2 means
for b1 being Element of the carrier of a1 holds
it . b1 = OSConstants(a2,b1);
end;
:: OSALG_2:def 5
theorem
for b1 being non empty non void order-sorted discernable OverloadedRSSign
for b2 being order-sorted MSAlgebra over b1
for b3 being OSSubset of b2 holds
b3 = OSConstants b2
iff
for b4 being Element of the carrier of b1 holds
b3 . b4 = OSConstants(b2,b4);
:: OSALG_2:th 15
theorem
for b1 being non empty non void order-sorted discernable OverloadedRSSign
for b2 being order-sorted MSAlgebra over b1 holds
Constants b2 c= OSConstants b2;
:: OSALG_2:th 16
theorem
for b1 being non empty non void order-sorted discernable OverloadedRSSign
for b2 being order-sorted MSAlgebra over b1
for b3 being OSSubset of b2
st Constants b2 c= b3
holds OSConstants b2 c= b3;
:: OSALG_2:th 17
theorem
for b1 being non empty non void order-sorted discernable OverloadedRSSign
for b2 being order-sorted MSAlgebra over b1
for b3 being OSSubset of b2 holds
OSConstants b2 = OSCl Constants b2;
:: OSALG_2:th 18
theorem
for b1 being non empty non void order-sorted discernable OverloadedRSSign
for b2 being order-sorted MSAlgebra over b1
for b3 being order-sorted MSSubAlgebra of b2 holds
OSConstants b2 is OSSubset of b3;
:: OSALG_2:th 19
theorem
for b1 being non empty non void all-with_const_op order-sorted discernable OverloadedRSSign
for b2 being non-empty order-sorted MSAlgebra over b1
for b3 being non-empty order-sorted MSSubAlgebra of b2 holds
OSConstants b2 is non-empty OSSubset of b3;
:: OSALG_2:th 20
theorem
for b1 being set
for b2 being ManySortedSet of b1
for b3 being set holds
b3 is ManySortedSubset of b2
iff
b3 in product bool b2;
:: OSALG_2:funcnot 4 => OSALG_2:func 4
definition
let a1 be non empty reflexive transitive antisymmetric RelStr;
let a2 be order-sorted ManySortedSet of the carrier of a1;
func OSbool A2 -> set means
for b1 being set holds
b1 in it
iff
b1 is OrderSortedSubset of a2;
end;
:: OSALG_2:def 6
theorem
for b1 being non empty reflexive transitive antisymmetric RelStr
for b2 being order-sorted ManySortedSet of the carrier of b1
for b3 being set holds
b3 = OSbool b2
iff
for b4 being set holds
b4 in b3
iff
b4 is OrderSortedSubset of b2;
:: OSALG_2:funcnot 5 => OSALG_2:func 5
definition
let a1 be non empty non void order-sorted discernable OverloadedRSSign;
let a2 be order-sorted MSAlgebra over a1;
let a3 be OSSubset of a2;
func OSSubSort A3 -> set equals
{b1 where b1 is Element of SubSort a3: b1 is order-sorted ManySortedSet of the carrier of a1};
end;
:: OSALG_2:def 7
theorem
for b1 being non empty non void order-sorted discernable OverloadedRSSign
for b2 being order-sorted MSAlgebra over b1
for b3 being OSSubset of b2 holds
OSSubSort b3 = {b4 where b4 is Element of SubSort b3: b4 is order-sorted ManySortedSet of the carrier of b1};
:: OSALG_2:th 21
theorem
for b1 being non empty non void order-sorted discernable OverloadedRSSign
for b2 being order-sorted MSAlgebra over b1
for b3 being OSSubset of b2 holds
OSSubSort b3 c= SubSort b3;
:: OSALG_2:th 22
theorem
for b1 being non empty non void order-sorted discernable OverloadedRSSign
for b2 being order-sorted MSAlgebra over b1
for b3 being OSSubset of b2 holds
the Sorts of b2 in OSSubSort b3;
:: OSALG_2:funcreg 1
registration
let a1 be non empty non void order-sorted discernable OverloadedRSSign;
let a2 be order-sorted MSAlgebra over a1;
let a3 be OSSubset of a2;
cluster OSSubSort a3 -> non empty;
end;
:: OSALG_2:funcnot 6 => OSALG_2:func 6
definition
let a1 be non empty non void order-sorted discernable OverloadedRSSign;
let a2 be order-sorted MSAlgebra over a1;
func OSSubSort A2 -> set equals
{b1 where b1 is Element of SubSort a2: b1 is order-sorted ManySortedSet of the carrier of a1};
end;
:: OSALG_2:def 8
theorem
for b1 being non empty non void order-sorted discernable OverloadedRSSign
for b2 being order-sorted MSAlgebra over b1 holds
OSSubSort b2 = {b3 where b3 is Element of SubSort b2: b3 is order-sorted ManySortedSet of the carrier of b1};
:: OSALG_2:th 23
theorem
for b1 being non empty non void order-sorted discernable OverloadedRSSign
for b2 being order-sorted MSAlgebra over b1
for b3 being OSSubset of b2 holds
OSSubSort b3 c= OSSubSort b2;
:: OSALG_2:funcreg 2
registration
let a1 be non empty non void order-sorted discernable OverloadedRSSign;
let a2 be order-sorted MSAlgebra over a1;
cluster OSSubSort a2 -> non empty;
end;
:: OSALG_2:funcnot 7 => OSALG_2:func 7
definition
let a1 be non empty non void order-sorted discernable OverloadedRSSign;
let a2 be order-sorted MSAlgebra over a1;
let a3 be Element of OSSubSort a2;
func @ A3 -> OSSubset of a2 equals
a3;
end;
:: OSALG_2:def 9
theorem
for b1 being non empty non void order-sorted discernable OverloadedRSSign
for b2 being order-sorted MSAlgebra over b1
for b3 being Element of OSSubSort b2 holds
@ b3 = b3;
:: OSALG_2:th 24
theorem
for b1 being non empty non void order-sorted discernable OverloadedRSSign
for b2 being order-sorted MSAlgebra over b1
for b3, b4 being OSSubset of b2 holds
b4 in OSSubSort b3
iff
b4 is opers_closed(b1, b2) & OSConstants b2 c= b4 & b3 c= b4;
:: OSALG_2:th 25
theorem
for b1 being non empty non void order-sorted discernable OverloadedRSSign
for b2 being order-sorted MSAlgebra over b1
for b3 being OSSubset of b2 holds
b3 in OSSubSort b2
iff
b3 is opers_closed(b1, b2);
:: OSALG_2:funcnot 8 => OSALG_2:func 8
definition
let a1 be non empty non void order-sorted discernable OverloadedRSSign;
let a2 be order-sorted MSAlgebra over a1;
let a3 be OSSubset of a2;
let a4 be Element of the carrier of a1;
func OSSubSort(A3,A4) -> set means
for b1 being set holds
b1 in it
iff
ex b2 being OSSubset of a2 st
b2 in OSSubSort a3 & b1 = b2 . a4;
end;
:: OSALG_2:def 10
theorem
for b1 being non empty non void order-sorted discernable OverloadedRSSign
for b2 being order-sorted MSAlgebra over b1
for b3 being OSSubset of b2
for b4 being Element of the carrier of b1
for b5 being set holds
b5 = OSSubSort(b3,b4)
iff
for b6 being set holds
b6 in b5
iff
ex b7 being OSSubset of b2 st
b7 in OSSubSort b3 & b6 = b7 . b4;
:: OSALG_2:th 26
theorem
for b1 being non empty non void order-sorted discernable OverloadedRSSign
for b2 being order-sorted MSAlgebra over b1
for b3 being OSSubset of b2
for b4, b5 being Element of the carrier of b1
st b4 <= b5
holds OSSubSort(b3,b5) is_coarser_than OSSubSort(b3,b4);
:: OSALG_2:th 27
theorem
for b1 being non empty non void order-sorted discernable OverloadedRSSign
for b2 being order-sorted MSAlgebra over b1
for b3 being OSSubset of b2
for b4 being Element of the carrier of b1 holds
OSSubSort(b3,b4) c= SubSort(b3,b4);
:: OSALG_2:th 28
theorem
for b1 being non empty non void order-sorted discernable OverloadedRSSign
for b2 being order-sorted MSAlgebra over b1
for b3 being OSSubset of b2
for b4 being Element of the carrier of b1 holds
(the Sorts of b2) . b4 in OSSubSort(b3,b4);
:: OSALG_2:funcreg 3
registration
let a1 be non empty non void order-sorted discernable OverloadedRSSign;
let a2 be order-sorted MSAlgebra over a1;
let a3 be OSSubset of a2;
let a4 be Element of the carrier of a1;
cluster OSSubSort(a3,a4) -> non empty;
end;
:: OSALG_2:funcnot 9 => OSALG_2:func 9
definition
let a1 be non empty non void order-sorted discernable OverloadedRSSign;
let a2 be order-sorted MSAlgebra over a1;
let a3 be OSSubset of a2;
func OSMSubSort A3 -> OSSubset of a2 means
for b1 being Element of the carrier of a1 holds
it . b1 = meet OSSubSort(a3,b1);
end;
:: OSALG_2:def 11
theorem
for b1 being non empty non void order-sorted discernable OverloadedRSSign
for b2 being order-sorted MSAlgebra over b1
for b3, b4 being OSSubset of b2 holds
b4 = OSMSubSort b3
iff
for b5 being Element of the carrier of b1 holds
b4 . b5 = meet OSSubSort(b3,b5);
:: OSALG_2:exreg 8
registration
let a1 be non empty non void order-sorted discernable OverloadedRSSign;
let a2 be order-sorted MSAlgebra over a1;
cluster Relation-like Function-like opers_closed OSSubset of a2;
end;
:: OSALG_2:th 29
theorem
for b1 being non empty non void order-sorted discernable OverloadedRSSign
for b2 being order-sorted MSAlgebra over b1
for b3 being OSSubset of b2 holds
(OSConstants b2) \/ b3 c= OSMSubSort b3;
:: OSALG_2:th 30
theorem
for b1 being non empty non void order-sorted discernable OverloadedRSSign
for b2 being order-sorted MSAlgebra over b1
for b3 being OSSubset of b2
st (OSConstants b2) \/ b3 is non-empty
holds OSMSubSort b3 is non-empty;
:: OSALG_2:th 31
theorem
for b1 being non empty non void order-sorted discernable OverloadedRSSign
for b2 being order-sorted MSAlgebra over b1
for b3 being Element of the OperSymbols of b1
for b4, b5 being OSSubset of b2
st b5 in OSSubSort b4
holds ((OSMSubSort b4) # * the Arity of b1) . b3 c= (b5 # * the Arity of b1) . b3;
:: OSALG_2:th 32
theorem
for b1 being non empty non void order-sorted discernable OverloadedRSSign
for b2 being order-sorted MSAlgebra over b1
for b3 being Element of the OperSymbols of b1
for b4, b5 being OSSubset of b2
st b5 in OSSubSort b4
holds proj2 ((Den(b3,b2)) | (((OSMSubSort b4) # * the Arity of b1) . b3)) c= (b5 * the ResultSort of b1) . b3;
:: OSALG_2:th 33
theorem
for b1 being non empty non void order-sorted discernable OverloadedRSSign
for b2 being order-sorted MSAlgebra over b1
for b3 being Element of the OperSymbols of b1
for b4 being OSSubset of b2 holds
proj2 ((Den(b3,b2)) | (((OSMSubSort b4) # * the Arity of b1) . b3)) c= ((OSMSubSort b4) * the ResultSort of b1) . b3;
:: OSALG_2:th 34
theorem
for b1 being non empty non void order-sorted discernable OverloadedRSSign
for b2 being order-sorted MSAlgebra over b1
for b3 being OSSubset of b2 holds
OSMSubSort b3 is opers_closed(b1, b2) & b3 c= OSMSubSort b3;
:: OSALG_2:funcreg 4
registration
let a1 be non empty non void order-sorted discernable OverloadedRSSign;
let a2 be order-sorted MSAlgebra over a1;
let a3 be OSSubset of a2;
cluster OSMSubSort a3 -> opers_closed;
end;
:: OSALG_2:funcreg 5
registration
let a1 be non empty non void order-sorted discernable OverloadedRSSign;
let a2 be order-sorted MSAlgebra over a1;
let a3 be opers_closed OSSubset of a2;
cluster a2 | a3 -> strict order-sorted;
end;
:: OSALG_2:funcreg 6
registration
let a1 be non empty non void order-sorted discernable OverloadedRSSign;
let a2 be order-sorted MSAlgebra over a1;
let a3, a4 be order-sorted MSSubAlgebra of a2;
cluster a3 /\ a4 -> strict order-sorted;
end;
:: OSALG_2:funcnot 10 => OSALG_2:func 10
definition
let a1 be non empty non void order-sorted discernable OverloadedRSSign;
let a2 be order-sorted MSAlgebra over a1;
let a3 be OSSubset of a2;
func GenOSAlg A3 -> strict order-sorted MSSubAlgebra of a2 means
a3 is OSSubset of it &
(for b1 being order-sorted MSSubAlgebra of a2
st a3 is OSSubset of b1
holds it is order-sorted MSSubAlgebra of b1);
end;
:: OSALG_2:def 13
theorem
for b1 being non empty non void order-sorted discernable OverloadedRSSign
for b2 being order-sorted MSAlgebra over b1
for b3 being OSSubset of b2
for b4 being strict order-sorted MSSubAlgebra of b2 holds
b4 = GenOSAlg b3
iff
b3 is OSSubset of b4 &
(for b5 being order-sorted MSSubAlgebra of b2
st b3 is OSSubset of b5
holds b4 is order-sorted MSSubAlgebra of b5);
:: OSALG_2:th 35
theorem
for b1 being non empty non void order-sorted discernable OverloadedRSSign
for b2 being order-sorted MSAlgebra over b1
for b3 being OSSubset of b2 holds
GenOSAlg b3 = b2 | OSMSubSort b3 & the Sorts of GenOSAlg b3 = OSMSubSort b3;
:: OSALG_2:th 36
theorem
for b1 being non empty non void ManySortedSign
for b2 being MSAlgebra over b1
for b3 being ManySortedSubset of the Sorts of b2 holds
GenMSAlg b3 = b2 | MSSubSort b3 & the Sorts of GenMSAlg b3 = MSSubSort b3;
:: OSALG_2:th 37
theorem
for b1 being non empty non void order-sorted discernable OverloadedRSSign
for b2 being order-sorted MSAlgebra over b1
for b3 being OSSubset of b2 holds
the Sorts of GenMSAlg b3 c= the Sorts of GenOSAlg b3;
:: OSALG_2:th 38
theorem
for b1 being non empty non void order-sorted discernable OverloadedRSSign
for b2 being order-sorted MSAlgebra over b1
for b3 being OSSubset of b2 holds
GenMSAlg b3 is MSSubAlgebra of GenOSAlg b3;
:: OSALG_2:th 39
theorem
for b1 being non empty non void order-sorted discernable OverloadedRSSign
for b2 being strict order-sorted MSAlgebra over b1
for b3 being OSSubset of b2
st b3 = the Sorts of b2
holds GenOSAlg b3 = b2;
:: OSALG_2:th 40
theorem
for b1 being non empty non void order-sorted discernable OverloadedRSSign
for b2 being order-sorted MSAlgebra over b1
for b3 being strict order-sorted MSSubAlgebra of b2
for b4 being OSSubset of b2
st b4 = the Sorts of b3
holds GenOSAlg b4 = b3;
:: OSALG_2:th 41
theorem
for b1 being non empty non void order-sorted discernable OverloadedRSSign
for b2 being non-empty order-sorted MSAlgebra over b1
for b3 being order-sorted MSSubAlgebra of b2 holds
(GenOSAlg OSConstants b2) /\ b3 = GenOSAlg OSConstants b2;
:: OSALG_2:funcnot 11 => OSALG_2:func 11
definition
let a1 be non empty non void order-sorted discernable OverloadedRSSign;
let a2 be non-empty order-sorted MSAlgebra over a1;
let a3, a4 be order-sorted MSSubAlgebra of a2;
func A3 "\/"_os A4 -> strict order-sorted MSSubAlgebra of a2 means
for b1 being OSSubset of a2
st b1 = (the Sorts of a3) \/ the Sorts of a4
holds it = GenOSAlg b1;
end;
:: OSALG_2:def 14
theorem
for b1 being non empty non void order-sorted discernable OverloadedRSSign
for b2 being non-empty order-sorted MSAlgebra over b1
for b3, b4 being order-sorted MSSubAlgebra of b2
for b5 being strict order-sorted MSSubAlgebra of b2 holds
b5 = b3 "\/"_os b4
iff
for b6 being OSSubset of b2
st b6 = (the Sorts of b3) \/ the Sorts of b4
holds b5 = GenOSAlg b6;
:: OSALG_2:th 42
theorem
for b1 being non empty non void order-sorted discernable OverloadedRSSign
for b2 being non-empty order-sorted MSAlgebra over b1
for b3 being order-sorted MSSubAlgebra of b2
for b4, b5 being OSSubset of b2
st b5 = b4 \/ the Sorts of b3
holds (GenOSAlg b4) "\/"_os b3 = GenOSAlg b5;
:: OSALG_2:th 43
theorem
for b1 being non empty non void order-sorted discernable OverloadedRSSign
for b2 being non-empty order-sorted MSAlgebra over b1
for b3 being order-sorted MSSubAlgebra of b2
for b4 being OSSubset of b2
st b4 = the Sorts of b2
holds (GenOSAlg b4) "\/"_os b3 = GenOSAlg b4;
:: OSALG_2:th 44
theorem
for b1 being non empty non void order-sorted discernable OverloadedRSSign
for b2 being non-empty order-sorted MSAlgebra over b1
for b3, b4 being order-sorted MSSubAlgebra of b2 holds
b3 "\/"_os b4 = b4 "\/"_os b3;
:: OSALG_2:th 45
theorem
for b1 being non empty non void order-sorted discernable OverloadedRSSign
for b2 being non-empty order-sorted MSAlgebra over b1
for b3, b4 being strict order-sorted MSSubAlgebra of b2 holds
b3 /\ (b3 "\/"_os b4) = b3;
:: OSALG_2:th 46
theorem
for b1 being non empty non void order-sorted discernable OverloadedRSSign
for b2 being non-empty order-sorted MSAlgebra over b1
for b3, b4 being strict order-sorted MSSubAlgebra of b2 holds
(b3 /\ b4) "\/"_os b4 = b4;
:: OSALG_2:funcnot 12 => OSALG_2:func 12
definition
let a1 be non empty non void order-sorted discernable OverloadedRSSign;
let a2 be order-sorted MSAlgebra over a1;
func OSSub A2 -> set means
for b1 being set holds
b1 in it
iff
b1 is strict order-sorted MSSubAlgebra of a2;
end;
:: OSALG_2:def 15
theorem
for b1 being non empty non void order-sorted discernable OverloadedRSSign
for b2 being order-sorted MSAlgebra over b1
for b3 being set holds
b3 = OSSub b2
iff
for b4 being set holds
b4 in b3
iff
b4 is strict order-sorted MSSubAlgebra of b2;
:: OSALG_2:th 47
theorem
for b1 being non empty non void order-sorted discernable OverloadedRSSign
for b2 being order-sorted MSAlgebra over b1 holds
OSSub b2 c= MSSub b2;
:: OSALG_2:funcreg 7
registration
let a1 be non empty non void order-sorted discernable OverloadedRSSign;
let a2 be order-sorted MSAlgebra over a1;
cluster OSSub a2 -> non empty;
end;
:: OSALG_2:funcnot 13 => OSALG_2:func 13
definition
let a1 be non empty non void order-sorted discernable OverloadedRSSign;
let a2 be order-sorted MSAlgebra over a1;
redefine func OSSub a2 -> Element of bool MSSub a2;
end;
:: OSALG_2:funcnot 14 => OSALG_2:func 14
definition
let a1 be non empty non void order-sorted discernable OverloadedRSSign;
let a2 be non-empty order-sorted MSAlgebra over a1;
func OSAlg_join A2 -> Function-like quasi_total Relation of [:OSSub a2,OSSub a2:],OSSub a2 means
for b1, b2 being Element of OSSub a2
for b3, b4 being strict order-sorted MSSubAlgebra of a2
st b1 = b3 & b2 = b4
holds it .(b1,b2) = b3 "\/"_os b4;
end;
:: OSALG_2:def 16
theorem
for b1 being non empty non void order-sorted discernable OverloadedRSSign
for b2 being non-empty order-sorted MSAlgebra over b1
for b3 being Function-like quasi_total Relation of [:OSSub b2,OSSub b2:],OSSub b2 holds
b3 = OSAlg_join b2
iff
for b4, b5 being Element of OSSub b2
for b6, b7 being strict order-sorted MSSubAlgebra of b2
st b4 = b6 & b5 = b7
holds b3 .(b4,b5) = b6 "\/"_os b7;
:: OSALG_2:funcnot 15 => OSALG_2:func 15
definition
let a1 be non empty non void order-sorted discernable OverloadedRSSign;
let a2 be non-empty order-sorted MSAlgebra over a1;
func OSAlg_meet A2 -> Function-like quasi_total Relation of [:OSSub a2,OSSub a2:],OSSub a2 means
for b1, b2 being Element of OSSub a2
for b3, b4 being strict order-sorted MSSubAlgebra of a2
st b1 = b3 & b2 = b4
holds it .(b1,b2) = b3 /\ b4;
end;
:: OSALG_2:def 17
theorem
for b1 being non empty non void order-sorted discernable OverloadedRSSign
for b2 being non-empty order-sorted MSAlgebra over b1
for b3 being Function-like quasi_total Relation of [:OSSub b2,OSSub b2:],OSSub b2 holds
b3 = OSAlg_meet b2
iff
for b4, b5 being Element of OSSub b2
for b6, b7 being strict order-sorted MSSubAlgebra of b2
st b4 = b6 & b5 = b7
holds b3 .(b4,b5) = b6 /\ b7;
:: OSALG_2:th 48
theorem
for b1 being non empty non void order-sorted discernable OverloadedRSSign
for b2 being non-empty order-sorted MSAlgebra over b1
for b3, b4 being Element of OSSub b2 holds
(OSAlg_meet b2) .(b3,b4) = (MSAlg_meet b2) .(b3,b4);
:: OSALG_2:th 49
theorem
for b1 being non empty non void order-sorted discernable OverloadedRSSign
for b2 being non-empty order-sorted MSAlgebra over b1 holds
OSAlg_join b2 is commutative(OSSub b2);
:: OSALG_2:th 50
theorem
for b1 being non empty non void order-sorted discernable OverloadedRSSign
for b2 being non-empty order-sorted MSAlgebra over b1 holds
OSAlg_join b2 is associative(OSSub b2);
:: OSALG_2:th 51
theorem
for b1 being non empty non void order-sorted discernable OverloadedRSSign
for b2 being non-empty order-sorted MSAlgebra over b1 holds
OSAlg_meet b2 is commutative(OSSub b2);
:: OSALG_2:th 52
theorem
for b1 being non empty non void order-sorted discernable OverloadedRSSign
for b2 being non-empty order-sorted MSAlgebra over b1 holds
OSAlg_meet b2 is associative(OSSub b2);
:: OSALG_2:funcnot 16 => OSALG_2:func 16
definition
let a1 be non empty non void order-sorted discernable OverloadedRSSign;
let a2 be non-empty order-sorted MSAlgebra over a1;
func OSSubAlLattice A2 -> non empty strict Lattice-like LattStr equals
LattStr(#OSSub a2,OSAlg_join a2,OSAlg_meet a2#);
end;
:: OSALG_2:def 18
theorem
for b1 being non empty non void order-sorted discernable OverloadedRSSign
for b2 being non-empty order-sorted MSAlgebra over b1 holds
OSSubAlLattice b2 = LattStr(#OSSub b2,OSAlg_join b2,OSAlg_meet b2#);
:: OSALG_2:th 53
theorem
for b1 being non empty non void order-sorted discernable OverloadedRSSign
for b2 being non-empty order-sorted MSAlgebra over b1 holds
OSSubAlLattice b2 is bounded;
:: OSALG_2:funcreg 8
registration
let a1 be non empty non void order-sorted discernable OverloadedRSSign;
let a2 be non-empty order-sorted MSAlgebra over a1;
cluster OSSubAlLattice a2 -> non empty strict Lattice-like bounded;
end;
:: OSALG_2:th 54
theorem
for b1 being non empty non void order-sorted discernable OverloadedRSSign
for b2 being non-empty order-sorted MSAlgebra over b1 holds
Bottom OSSubAlLattice b2 = GenOSAlg OSConstants b2;
:: OSALG_2:th 55
theorem
for b1 being non empty non void order-sorted discernable OverloadedRSSign
for b2 being non-empty order-sorted MSAlgebra over b1
for b3 being OSSubset of b2
st b3 = the Sorts of b2
holds Top OSSubAlLattice b2 = GenOSAlg b3;
:: OSALG_2:th 56
theorem
for b1 being non empty non void order-sorted discernable OverloadedRSSign
for b2 being strict non-empty order-sorted MSAlgebra over b1 holds
Top OSSubAlLattice b2 = b2;