begin
theorem Th1:
theorem Th2:
:: deftheorem Def1 defines OrderSortedSubset OSALG_2:def 1 :
for R being non empty Poset
for M being OrderSortedSet of R
for b3 being ManySortedSubset of M holds
( b3 is OrderSortedSubset of M iff b3 is OrderSortedSet of R );
begin
:: deftheorem Def2 defines OSSubset OSALG_2:def 2 :
for S being OrderSortedSign
for U0 being OSAlgebra of S
for b3 being ManySortedSubset of the Sorts of U0 holds
( b3 is OSSubset of U0 iff b3 is OrderSortedSet of S );
theorem Th3:
begin
theorem Th4:
theorem Th5:
:: deftheorem defines OSConstants OSALG_2:def 3 :
for S1 being OrderSortedSign
for OU0 being OSAlgebra of S1
for s being SortSymbol of S1 holds OSConstants (OU0,s) = union { (Constants (OU0,s2)) where s2 is SortSymbol of S1 : s2 <= s } ;
theorem
canceled;
theorem
canceled;
theorem
canceled;
theorem
canceled;
theorem
canceled;
theorem Th11:
:: deftheorem Def4 defines OSCl OSALG_2:def 4 :
for S1 being OrderSortedSign
for M being ManySortedSet of the carrier of S1
for b3 being OrderSortedSet of S1 holds
( b3 = OSCl M iff for s being SortSymbol of S1 holds b3 . s = union { (M . s1) where s1 is SortSymbol of S1 : s1 <= s } );
theorem Th12:
theorem Th13:
theorem
:: deftheorem Def5 defines OSConstants OSALG_2:def 5 :
for S1 being OrderSortedSign
for OU0 being OSAlgebra of S1
for b3 being OSSubset of OU0 holds
( b3 = OSConstants OU0 iff for s being SortSymbol of S1 holds b3 . s = OSConstants (OU0,s) );
theorem Th15:
theorem Th16:
theorem
theorem Th18:
theorem
begin
theorem Th20:
:: deftheorem defines OSbool OSALG_2:def 6 :
for R being non empty Poset
for M being OrderSortedSet of R
for b3 being set holds
( b3 = OSbool M iff for x being set holds
( x in b3 iff x is OrderSortedSubset of M ) );
:: deftheorem defines OSSubSort OSALG_2:def 7 :
for S being OrderSortedSign
for U0 being OSAlgebra of S
for A being OSSubset of U0 holds OSSubSort A = { x where x is Element of SubSort A : x is OrderSortedSet of S } ;
theorem Th21:
theorem Th22:
:: deftheorem defines OSSubSort OSALG_2:def 8 :
for S1 being OrderSortedSign
for OU0 being OSAlgebra of S1 holds OSSubSort OU0 = { x where x is Element of SubSort OU0 : x is OrderSortedSet of S1 } ;
theorem Th23:
:: deftheorem defines @ OSALG_2:def 9 :
for S1 being OrderSortedSign
for OU0 being OSAlgebra of S1
for e being Element of OSSubSort OU0 holds @ e = e;
theorem Th24:
theorem Th25:
:: deftheorem Def10 defines OSSubSort OSALG_2:def 10 :
for S1 being OrderSortedSign
for OU0 being OSAlgebra of S1
for A being OSSubset of OU0
for s being Element of S1
for b5 being set holds
( b5 = OSSubSort (A,s) iff for x being set holds
( x in b5 iff ex B being OSSubset of OU0 st
( B in OSSubSort A & x = B . s ) ) );
theorem Th26:
theorem Th27:
theorem Th28:
:: deftheorem Def11 defines OSMSubSort OSALG_2:def 11 :
for S1 being OrderSortedSign
for OU0 being OSAlgebra of S1
for A, b4 being OSSubset of OU0 holds
( b4 = OSMSubSort A iff for s being SortSymbol of S1 holds b4 . s = meet (OSSubSort (A,s)) );
theorem Th29:
theorem
theorem Th31:
theorem Th32:
theorem Th33:
theorem Th34:
begin
:: deftheorem OSALG_2:def 12 :
canceled;
:: deftheorem Def13 defines GenOSAlg OSALG_2:def 13 :
for S1 being OrderSortedSign
for OU0 being OSAlgebra of S1
for A being OSSubset of OU0
for b4 being strict OSSubAlgebra of OU0 holds
( b4 = GenOSAlg A iff ( A is OSSubset of b4 & ( for OU1 being OSSubAlgebra of OU0 st A is OSSubset of OU1 holds
b4 is OSSubAlgebra of OU1 ) ) );
theorem Th35:
theorem Th36:
theorem Th37:
theorem
theorem Th39:
theorem Th40:
theorem Th41:
:: deftheorem Def14 defines "\/"_os OSALG_2:def 14 :
for S1 being OrderSortedSign
for U0 being non-empty OSAlgebra of S1
for U1, U2 being OSSubAlgebra of U0
for b5 being strict OSSubAlgebra of U0 holds
( b5 = U1 "\/"_os U2 iff for A being OSSubset of U0 st A = the Sorts of U1 \/ the Sorts of U2 holds
b5 = GenOSAlg A );
theorem Th42:
theorem Th43:
theorem Th44:
theorem Th45:
theorem Th46:
begin
:: deftheorem Def15 defines OSSub OSALG_2:def 15 :
for S1 being OrderSortedSign
for OU0 being OSAlgebra of S1
for b3 being set holds
( b3 = OSSub OU0 iff for x being set holds
( x in b3 iff x is strict OSSubAlgebra of OU0 ) );
theorem Th47:
definition
let S1 be
OrderSortedSign;
let U0 be
non-empty OSAlgebra of
S1;
func OSAlg_join U0 -> BinOp of
(OSSub U0) means :
Def16:
for
x,
y being
Element of
OSSub U0 for
U1,
U2 being
strict OSSubAlgebra of
U0 st
x = U1 &
y = U2 holds
it . (
x,
y)
= U1 "\/"_os U2;
existence
ex b1 being BinOp of (OSSub U0) st
for x, y being Element of OSSub U0
for U1, U2 being strict OSSubAlgebra of U0 st x = U1 & y = U2 holds
b1 . (x,y) = U1 "\/"_os U2
uniqueness
for b1, b2 being BinOp of (OSSub U0) st ( for x, y being Element of OSSub U0
for U1, U2 being strict OSSubAlgebra of U0 st x = U1 & y = U2 holds
b1 . (x,y) = U1 "\/"_os U2 ) & ( for x, y being Element of OSSub U0
for U1, U2 being strict OSSubAlgebra of U0 st x = U1 & y = U2 holds
b2 . (x,y) = U1 "\/"_os U2 ) holds
b1 = b2
end;
:: deftheorem Def16 defines OSAlg_join OSALG_2:def 16 :
for S1 being OrderSortedSign
for U0 being non-empty OSAlgebra of S1
for b3 being BinOp of (OSSub U0) holds
( b3 = OSAlg_join U0 iff for x, y being Element of OSSub U0
for U1, U2 being strict OSSubAlgebra of U0 st x = U1 & y = U2 holds
b3 . (x,y) = U1 "\/"_os U2 );
definition
let S1 be
OrderSortedSign;
let U0 be
non-empty OSAlgebra of
S1;
func OSAlg_meet U0 -> BinOp of
(OSSub U0) means :
Def17:
for
x,
y being
Element of
OSSub U0 for
U1,
U2 being
strict OSSubAlgebra of
U0 st
x = U1 &
y = U2 holds
it . (
x,
y)
= U1 /\ U2;
existence
ex b1 being BinOp of (OSSub U0) st
for x, y being Element of OSSub U0
for U1, U2 being strict OSSubAlgebra of U0 st x = U1 & y = U2 holds
b1 . (x,y) = U1 /\ U2
uniqueness
for b1, b2 being BinOp of (OSSub U0) st ( for x, y being Element of OSSub U0
for U1, U2 being strict OSSubAlgebra of U0 st x = U1 & y = U2 holds
b1 . (x,y) = U1 /\ U2 ) & ( for x, y being Element of OSSub U0
for U1, U2 being strict OSSubAlgebra of U0 st x = U1 & y = U2 holds
b2 . (x,y) = U1 /\ U2 ) holds
b1 = b2
end;
:: deftheorem Def17 defines OSAlg_meet OSALG_2:def 17 :
for S1 being OrderSortedSign
for U0 being non-empty OSAlgebra of S1
for b3 being BinOp of (OSSub U0) holds
( b3 = OSAlg_meet U0 iff for x, y being Element of OSSub U0
for U1, U2 being strict OSSubAlgebra of U0 st x = U1 & y = U2 holds
b3 . (x,y) = U1 /\ U2 );
theorem Th48:
theorem Th49:
theorem Th50:
theorem Th51:
theorem Th52:
:: deftheorem defines OSSubAlLattice OSALG_2:def 18 :
for S1 being OrderSortedSign
for U0 being non-empty OSAlgebra of S1 holds OSSubAlLattice U0 = LattStr(# (OSSub U0),(OSAlg_join U0),(OSAlg_meet U0) #);
theorem Th53:
theorem
theorem Th55:
theorem