:: OSALG_4  semantic presentation
:: deftheorem Def1   defines os-compatible OSALG_4:def 1 : 
theorem Th1: :: OSALG_4:1
:: deftheorem Def2  OSALG_4:def 2 : 
canceled; 
:: deftheorem Def3   defines OrderSortedRelation OSALG_4:def 3 : 
definition
let c1 be  non 
empty Poset;
func  Path_Rel c1 ->   Equivalence_Relation of the 
carrier of 
a1 means :
Def4: 
:: OSALG_4:def 4
for 
b1, 
b2 being   
set  holds 
 ( 
[b1,b2] in a2 iff ( 
b1 in the 
carrier of 
a1 & 
b2 in the 
carrier of 
a1 & ex 
b3 being   
FinSequence of the 
carrier of 
a1 st 
( 1 
<  len b3 & 
b3 . 1 
= b1 & 
b3 . (len b3) = b2 & ( for 
b4 being  
Nat  st 2 
<= b4 & 
b4 <=  len b3 & not 
[(b3 . b4),(b3 . (b4 - 1))] in the 
InternalRel of 
a1 holds 
[(b3 . (b4 - 1)),(b3 . b4)] in the 
InternalRel of 
a1 ) ) ) );
existence 
ex b1 being  Equivalence_Relation of the carrier of c1 st 
for b2, b3 being   set  holds 
 ( [b2,b3] in b1 iff ( b2 in the carrier of c1 & b3 in the carrier of c1 & ex b4 being   FinSequence of the carrier of c1 st 
( 1 <  len b4 & b4 . 1 = b2 & b4 . (len b4) = b3 & ( for b5 being  Nat  st 2 <= b5 & b5 <=  len b4 & not [(b4 . b5),(b4 . (b5 - 1))] in the InternalRel of c1 holds 
[(b4 . (b5 - 1)),(b4 . b5)] in the InternalRel of c1 ) ) ) )
 
uniqueness 
for b1, b2 being  Equivalence_Relation of the carrier of c1  st ( for b3, b4 being   set  holds 
 ( [b3,b4] in b1 iff ( b3 in the carrier of c1 & b4 in the carrier of c1 & ex b5 being   FinSequence of the carrier of c1 st 
( 1 <  len b5 & b5 . 1 = b3 & b5 . (len b5) = b4 & ( for b6 being  Nat  st 2 <= b6 & b6 <=  len b5 & not [(b5 . b6),(b5 . (b6 - 1))] in the InternalRel of c1 holds 
[(b5 . (b6 - 1)),(b5 . b6)] in the InternalRel of c1 ) ) ) ) ) & ( for b3, b4 being   set  holds 
 ( [b3,b4] in b2 iff ( b3 in the carrier of c1 & b4 in the carrier of c1 & ex b5 being   FinSequence of the carrier of c1 st 
( 1 <  len b5 & b5 . 1 = b3 & b5 . (len b5) = b4 & ( for b6 being  Nat  st 2 <= b6 & b6 <=  len b5 & not [(b5 . b6),(b5 . (b6 - 1))] in the InternalRel of c1 holds 
[(b5 . (b6 - 1)),(b5 . b6)] in the InternalRel of c1 ) ) ) ) ) holds 
b1 = b2
 
 
end;
 
:: deftheorem Def4   defines Path_Rel OSALG_4:def 4 : 
theorem Th2: :: OSALG_4:2
:: deftheorem Def5   defines ~= OSALG_4:def 5 : 
theorem Th3: :: OSALG_4:3
:: deftheorem Def6   defines Components OSALG_4:def 6 : 
:: deftheorem Def7  OSALG_4:def 7 : 
canceled; 
:: deftheorem Def8   defines CComp OSALG_4:def 8 : 
theorem Th4: :: OSALG_4:4
theorem Th5: :: OSALG_4:5
:: deftheorem Def9   defines -carrier_of OSALG_4:def 9 : 
theorem Th6: :: OSALG_4:6
:: deftheorem Def10   defines locally_directed OSALG_4:def 10 : 
theorem Th7: :: OSALG_4:7
theorem Th8: :: OSALG_4:8
theorem Th9: :: OSALG_4:9
theorem Th10: :: OSALG_4:10
definition
let c1 be  
locally_directed OrderSortedSign;
let c2 be   
OSAlgebra of 
c1;
let c3 be  
MSEquivalence-like  OrderSortedRelation of 
c2;
let c4 be   
Component of 
c1;
func  CompClass c3,
c4 ->   Equivalence_Relation of the 
Sorts of 
a2 -carrier_of a4 means :
Def11: 
:: OSALG_4:def 11
for 
b1, 
b2 being   
set  holds 
 ( 
[b1,b2] in a5 iff ex 
b3 being  
Element of 
a1 st 
( 
b3 in a4 & 
[b1,b2] in a3 . b3 ) );
existence 
ex b1 being  Equivalence_Relation of the Sorts of c2 -carrier_of c4 st 
for b2, b3 being   set  holds 
 ( [b2,b3] in b1 iff ex b4 being  Element of c1 st 
( b4 in c4 & [b2,b3] in c3 . b4 ) )
 
uniqueness 
for b1, b2 being  Equivalence_Relation of the Sorts of c2 -carrier_of c4  st ( for b3, b4 being   set  holds 
 ( [b3,b4] in b1 iff ex b5 being  Element of c1 st 
( b5 in c4 & [b3,b4] in c3 . b5 ) ) ) & ( for b3, b4 being   set  holds 
 ( [b3,b4] in b2 iff ex b5 being  Element of c1 st 
( b5 in c4 & [b3,b4] in c3 . b5 ) ) ) holds 
b1 = b2
 
 
end;
 
:: deftheorem Def11   defines CompClass OSALG_4:def 11 : 
definition
let c1 be  
locally_directed OrderSortedSign;
let c2 be   
OSAlgebra of 
c1;
let c3 be  
MSEquivalence-like  OrderSortedRelation of 
c2;
let c4 be   
Element of 
c1;
func  OSClass c3,
c4 ->   Subset of 
(Class (CompClass a3,(CComp a4))) means :
Def12: 
:: OSALG_4:def 12
for 
b1 being   
set  holds 
 ( 
b1 in a5 iff ex 
b2 being   
set  st 
( 
b2 in the 
Sorts of 
a2 . a4 & 
b1 =  Class (CompClass a3,(CComp a4)),
b2 ) );
existence 
ex b1 being  Subset of (Class (CompClass c3,(CComp c4))) st 
for b2 being   set  holds 
 ( b2 in b1 iff ex b3 being   set  st 
( b3 in the Sorts of c2 . c4 & b2 =  Class (CompClass c3,(CComp c4)),b3 ) )
 
uniqueness 
for b1, b2 being  Subset of (Class (CompClass c3,(CComp c4)))  st ( for b3 being   set  holds 
 ( b3 in b1 iff ex b4 being   set  st 
( b4 in the Sorts of c2 . c4 & b3 =  Class (CompClass c3,(CComp c4)),b4 ) ) ) & ( for b3 being   set  holds 
 ( b3 in b2 iff ex b4 being   set  st 
( b4 in the Sorts of c2 . c4 & b3 =  Class (CompClass c3,(CComp c4)),b4 ) ) ) holds 
b1 = b2
 
 
end;
 
:: deftheorem Def12   defines OSClass OSALG_4:def 12 : 
theorem Th11: :: OSALG_4:11
:: deftheorem Def13   defines OSClass OSALG_4:def 13 : 
:: deftheorem Def14   defines OSClass OSALG_4:def 14 : 
theorem Th12: :: OSALG_4:12
theorem Th13: :: OSALG_4:13
theorem Th14: :: OSALG_4:14
:: deftheorem Def15   defines #_os OSALG_4:def 15 : 
definition
let c1 be  
locally_directed OrderSortedSign;
let c2 be    
Element of the 
OperSymbols of 
c1;
let c3 be  
non-empty OSAlgebra of 
c1;
let c4 be   
OSCongruence of 
c3;
func  OSQuotRes c4,
c2 ->   Function of 
(the Sorts of a3 * the ResultSort of a1) . a2,
((OSClass a4) * the ResultSort of a1) . a2 means :
Def16: 
:: OSALG_4:def 16
for 
b1 being   
Element of the 
Sorts of 
a3 . (the_result_sort_of a2) holds  
a5 . b1 =  OSClass a4,
b1;
existence 
ex b1 being  Function of (the Sorts of c3 * the ResultSort of c1) . c2,((OSClass c4) * the ResultSort of c1) . c2 st 
for b2 being   Element of the Sorts of c3 . (the_result_sort_of c2) holds  b1 . b2 =  OSClass c4,b2
 
uniqueness 
for b1, b2 being  Function of (the Sorts of c3 * the ResultSort of c1) . c2,((OSClass c4) * the ResultSort of c1) . c2  st ( for b3 being   Element of the Sorts of c3 . (the_result_sort_of c2) holds  b1 . b3 =  OSClass c4,b3 ) & ( for b3 being   Element of the Sorts of c3 . (the_result_sort_of c2) holds  b2 . b3 =  OSClass c4,b3 ) holds 
b1 = b2
 
func  OSQuotArgs c4,
c2 ->   Function of 
((the Sorts of a3 # ) * the Arity of a1) . a2,
(((OSClass a4) # ) * the Arity of a1) . a2 means :: OSALG_4:def 17
for 
b1 being   
Element of  
Args a2,
a3 holds  
a5 . b1 = a4 #_os b1;
existence 
ex b1 being  Function of ((the Sorts of c3 # ) * the Arity of c1) . c2,(((OSClass c4) # ) * the Arity of c1) . c2 st 
for b2 being   Element of  Args c2,c3 holds  b1 . b2 = c4 #_os b2
 
uniqueness 
for b1, b2 being  Function of ((the Sorts of c3 # ) * the Arity of c1) . c2,(((OSClass c4) # ) * the Arity of c1) . c2  st ( for b3 being   Element of  Args c2,c3 holds  b1 . b3 = c4 #_os b3 ) & ( for b3 being   Element of  Args c2,c3 holds  b2 . b3 = c4 #_os b3 ) holds 
b1 = b2
 
 
end;
 
:: deftheorem Def16   defines OSQuotRes OSALG_4:def 16 : 
:: deftheorem Def17   defines OSQuotArgs OSALG_4:def 17 : 
definition
let c1 be  
locally_directed OrderSortedSign;
let c2 be  
non-empty OSAlgebra of 
c1;
let c3 be   
OSCongruence of 
c2;
func  OSQuotRes c3 ->    ManySortedFunction of the 
Sorts of 
a2 * the 
ResultSort of 
a1,
(OSClass a3) * the 
ResultSort of 
a1 means :: OSALG_4:def 18
for 
b1 being  
OperSymbol of 
a1 holds  
a4 . b1 =  OSQuotRes a3,
b1;
existence 
ex b1 being   ManySortedFunction of the Sorts of c2 * the ResultSort of c1,(OSClass c3) * the ResultSort of c1 st 
for b2 being  OperSymbol of c1 holds  b1 . b2 =  OSQuotRes c3,b2
 
uniqueness 
for b1, b2 being   ManySortedFunction of the Sorts of c2 * the ResultSort of c1,(OSClass c3) * the ResultSort of c1  st ( for b3 being  OperSymbol of c1 holds  b1 . b3 =  OSQuotRes c3,b3 ) & ( for b3 being  OperSymbol of c1 holds  b2 . b3 =  OSQuotRes c3,b3 ) holds 
b1 = b2
 
func  OSQuotArgs c3 ->    ManySortedFunction of 
(the Sorts of a2 # ) * the 
Arity of 
a1,
((OSClass a3) # ) * the 
Arity of 
a1 means :: OSALG_4:def 19
for 
b1 being  
OperSymbol of 
a1 holds  
a4 . b1 =  OSQuotArgs a3,
b1;
existence 
ex b1 being   ManySortedFunction of (the Sorts of c2 # ) * the Arity of c1,((OSClass c3) # ) * the Arity of c1 st 
for b2 being  OperSymbol of c1 holds  b1 . b2 =  OSQuotArgs c3,b2
 
uniqueness 
for b1, b2 being   ManySortedFunction of (the Sorts of c2 # ) * the Arity of c1,((OSClass c3) # ) * the Arity of c1  st ( for b3 being  OperSymbol of c1 holds  b1 . b3 =  OSQuotArgs c3,b3 ) & ( for b3 being  OperSymbol of c1 holds  b2 . b3 =  OSQuotArgs c3,b3 ) holds 
b1 = b2
 
 
end;
 
:: deftheorem Def18   defines OSQuotRes OSALG_4:def 18 : 
:: deftheorem Def19   defines OSQuotArgs OSALG_4:def 19 : 
theorem Th15: :: OSALG_4:15
definition
let c1 be  
locally_directed OrderSortedSign;
let c2 be    
Element of the 
OperSymbols of 
c1;
let c3 be  
non-empty OSAlgebra of 
c1;
let c4 be   
OSCongruence of 
c3;
func  OSQuotCharact c4,
c2 ->   Function of 
(((OSClass a4) # ) * the Arity of a1) . a2,
((OSClass a4) * the ResultSort of a1) . a2 means :
Def20: 
:: OSALG_4:def 20
for 
b1 being   
Element of  
Args a2,
a3  st 
a4 #_os b1 in (((OSClass a4) # ) * the Arity of a1) . a2 holds 
a5 . (a4 #_os b1) = ((OSQuotRes a4,a2) * (Den a2,a3)) . b1;
existence 
ex b1 being  Function of (((OSClass c4) # ) * the Arity of c1) . c2,((OSClass c4) * the ResultSort of c1) . c2 st 
for b2 being   Element of  Args c2,c3  st c4 #_os b2 in (((OSClass c4) # ) * the Arity of c1) . c2 holds 
b1 . (c4 #_os b2) = ((OSQuotRes c4,c2) * (Den c2,c3)) . b2
 
uniqueness 
for b1, b2 being  Function of (((OSClass c4) # ) * the Arity of c1) . c2,((OSClass c4) * the ResultSort of c1) . c2  st ( for b3 being   Element of  Args c2,c3  st c4 #_os b3 in (((OSClass c4) # ) * the Arity of c1) . c2 holds 
b1 . (c4 #_os b3) = ((OSQuotRes c4,c2) * (Den c2,c3)) . b3 ) & ( for b3 being   Element of  Args c2,c3  st c4 #_os b3 in (((OSClass c4) # ) * the Arity of c1) . c2 holds 
b2 . (c4 #_os b3) = ((OSQuotRes c4,c2) * (Den c2,c3)) . b3 ) holds 
b1 = b2
 
 
end;
 
:: deftheorem Def20   defines OSQuotCharact OSALG_4:def 20 : 
:: deftheorem Def21   defines OSQuotCharact OSALG_4:def 21 : 
:: deftheorem Def22   defines QuotOSAlg OSALG_4:def 22 : 
definition
let c1 be  
locally_directed OrderSortedSign;
let c2 be  
non-empty OSAlgebra of 
c1;
let c3 be   
OSCongruence of 
c2;
let c4 be   
Element of 
c1;
func  OSNat_Hom c2,
c3,
c4 ->   Function of the 
Sorts of 
a2 . a4, 
OSClass a3,
a4 means :
Def23: 
:: OSALG_4:def 23
for 
b1 being   
Element of the 
Sorts of 
a2 . a4 holds  
a5 . b1 =  OSClass a3,
b1;
existence 
ex b1 being  Function of the Sorts of c2 . c4, OSClass c3,c4 st 
for b2 being   Element of the Sorts of c2 . c4 holds  b1 . b2 =  OSClass c3,b2
 
uniqueness 
for b1, b2 being  Function of the Sorts of c2 . c4, OSClass c3,c4  st ( for b3 being   Element of the Sorts of c2 . c4 holds  b1 . b3 =  OSClass c3,b3 ) & ( for b3 being   Element of the Sorts of c2 . c4 holds  b2 . b3 =  OSClass c3,b3 ) holds 
b1 = b2
 
 
end;
 
:: deftheorem Def23   defines OSNat_Hom OSALG_4:def 23 : 
definition
let c1 be  
locally_directed OrderSortedSign;
let c2 be  
non-empty OSAlgebra of 
c1;
let c3 be   
OSCongruence of 
c2;
func  OSNat_Hom c2,
c3 ->   ManySortedFunction of 
a2,
(QuotOSAlg a2,a3) means :
Def24: 
:: OSALG_4:def 24
for 
b1 being  
Element of 
a1 holds  
a4 . b1 =  OSNat_Hom a2,
a3,
b1;
existence 
ex b1 being  ManySortedFunction of c2,(QuotOSAlg c2,c3) st 
for b2 being  Element of c1 holds  b1 . b2 =  OSNat_Hom c2,c3,b2
 
uniqueness 
for b1, b2 being  ManySortedFunction of c2,(QuotOSAlg c2,c3)  st ( for b3 being  Element of c1 holds  b1 . b3 =  OSNat_Hom c2,c3,b3 ) & ( for b3 being  Element of c1 holds  b2 . b3 =  OSNat_Hom c2,c3,b3 ) holds 
b1 = b2
 
 
end;
 
:: deftheorem Def24   defines OSNat_Hom OSALG_4:def 24 : 
theorem Th16: :: OSALG_4:16
theorem Th17: :: OSALG_4:17
:: deftheorem Def25   defines OSCng OSALG_4:def 25 : 
definition
let c1 be  
locally_directed OrderSortedSign;
let c2, 
c3 be  
non-empty OSAlgebra of 
c1;
let c4 be   
ManySortedFunction of 
c2,
c3;
let c5 be   
Element of 
c1;
assume E30: 
( 
c4 is_homomorphism c2,
c3 & 
c4 is 
order-sorted )
 ;
func  OSHomQuot c4,
c5 ->   Function of the 
Sorts of 
(QuotOSAlg a2,(OSCng a4)) . a5,the 
Sorts of 
a3 . a5 means :
Def26: 
:: OSALG_4:def 26
for 
b1 being   
Element of the 
Sorts of 
a2 . a5 holds  
a6 . (OSClass (OSCng a4),b1) = (a4 . a5) . b1;
existence 
ex b1 being  Function of the Sorts of (QuotOSAlg c2,(OSCng c4)) . c5,the Sorts of c3 . c5 st 
for b2 being   Element of the Sorts of c2 . c5 holds  b1 . (OSClass (OSCng c4),b2) = (c4 . c5) . b2
 
uniqueness 
for b1, b2 being  Function of the Sorts of (QuotOSAlg c2,(OSCng c4)) . c5,the Sorts of c3 . c5  st ( for b3 being   Element of the Sorts of c2 . c5 holds  b1 . (OSClass (OSCng c4),b3) = (c4 . c5) . b3 ) & ( for b3 being   Element of the Sorts of c2 . c5 holds  b2 . (OSClass (OSCng c4),b3) = (c4 . c5) . b3 ) holds 
b1 = b2
 
 
end;
 
:: deftheorem Def26   defines OSHomQuot OSALG_4:def 26 : 
definition
let c1 be  
locally_directed OrderSortedSign;
let c2, 
c3 be  
non-empty OSAlgebra of 
c1;
let c4 be   
ManySortedFunction of 
c2,
c3;
func  OSHomQuot c4 ->   ManySortedFunction of 
(QuotOSAlg a2,(OSCng a4)),
a3 means :
Def27: 
:: OSALG_4:def 27
for 
b1 being  
Element of 
a1 holds  
a5 . b1 =  OSHomQuot a4,
b1;
existence 
ex b1 being  ManySortedFunction of (QuotOSAlg c2,(OSCng c4)),c3 st 
for b2 being  Element of c1 holds  b1 . b2 =  OSHomQuot c4,b2
 
uniqueness 
for b1, b2 being  ManySortedFunction of (QuotOSAlg c2,(OSCng c4)),c3  st ( for b3 being  Element of c1 holds  b1 . b3 =  OSHomQuot c4,b3 ) & ( for b3 being  Element of c1 holds  b2 . b3 =  OSHomQuot c4,b3 ) holds 
b1 = b2
 
 
end;
 
:: deftheorem Def27   defines OSHomQuot OSALG_4:def 27 : 
theorem Th18: :: OSALG_4:18
theorem Th19: :: OSALG_4:19
theorem Th20: :: OSALG_4:20
:: deftheorem Def28   defines monotone OSALG_4:def 28 : 
theorem Th21: :: OSALG_4:21
theorem Th22: :: OSALG_4:22
theorem Th23: :: OSALG_4:23
theorem Th24: :: OSALG_4:24
theorem Th25: :: OSALG_4:25
canceled; 
theorem Th26: :: OSALG_4:26
definition
let c1 be  
locally_directed OrderSortedSign;
let c2, 
c3 be  
non-empty OSAlgebra of 
c1;
let c4 be   
ManySortedFunction of 
c2,
c3;
let c5 be   
OSCongruence of 
c2;
let c6 be   
Element of 
c1;
assume E39: 
( 
c4 is_homomorphism c2,
c3 & 
c4 is 
order-sorted & 
c5 c=  OSCng c4 )
 ;
func  OSHomQuot c4,
c5,
c6 ->   Function of the 
Sorts of 
(QuotOSAlg a2,a5) . a6,the 
Sorts of 
a3 . a6 means :
Def29: 
:: OSALG_4:def 29
for 
b1 being   
Element of the 
Sorts of 
a2 . a6 holds  
a7 . (OSClass a5,b1) = (a4 . a6) . b1;
existence 
ex b1 being  Function of the Sorts of (QuotOSAlg c2,c5) . c6,the Sorts of c3 . c6 st 
for b2 being   Element of the Sorts of c2 . c6 holds  b1 . (OSClass c5,b2) = (c4 . c6) . b2
 
uniqueness 
for b1, b2 being  Function of the Sorts of (QuotOSAlg c2,c5) . c6,the Sorts of c3 . c6  st ( for b3 being   Element of the Sorts of c2 . c6 holds  b1 . (OSClass c5,b3) = (c4 . c6) . b3 ) & ( for b3 being   Element of the Sorts of c2 . c6 holds  b2 . (OSClass c5,b3) = (c4 . c6) . b3 ) holds 
b1 = b2
 
 
end;
 
:: deftheorem Def29   defines OSHomQuot OSALG_4:def 29 : 
definition
let c1 be  
locally_directed OrderSortedSign;
let c2, 
c3 be  
non-empty OSAlgebra of 
c1;
let c4 be   
ManySortedFunction of 
c2,
c3;
let c5 be   
OSCongruence of 
c2;
func  OSHomQuot c4,
c5 ->   ManySortedFunction of 
(QuotOSAlg a2,a5),
a3 means :
Def30: 
:: OSALG_4:def 30
for 
b1 being  
Element of 
a1 holds  
a6 . b1 =  OSHomQuot a4,
a5,
b1;
existence 
ex b1 being  ManySortedFunction of (QuotOSAlg c2,c5),c3 st 
for b2 being  Element of c1 holds  b1 . b2 =  OSHomQuot c4,c5,b2
 
uniqueness 
for b1, b2 being  ManySortedFunction of (QuotOSAlg c2,c5),c3  st ( for b3 being  Element of c1 holds  b1 . b3 =  OSHomQuot c4,c5,b3 ) & ( for b3 being  Element of c1 holds  b2 . b3 =  OSHomQuot c4,c5,b3 ) holds 
b1 = b2
 
 
end;
 
:: deftheorem Def30   defines OSHomQuot OSALG_4:def 30 : 
theorem Th27: :: OSALG_4:27