:: MSUHOM_1 semantic presentation

theorem Th1: :: MSUHOM_1:1
for b1, b2 being Function
for b3 being set st rng b1 c= b3 holds
(b2 | b3) * b1 = b2 * b1
proof end;

theorem Th2: :: MSUHOM_1:2
for b1 being set
for b2 being Subset of b1 holds b2 * c= b1 *
proof end;

theorem Th3: :: MSUHOM_1:3
for b1 being Function
for b2 being set st b1 is Function-yielding holds
b1 | b2 is Function-yielding
proof end;

theorem Th4: :: MSUHOM_1:4
for b1 being set
for b2 being Subset of b1
for b3 being ManySortedSet of b1 holds (b3 | b2) # = (b3 # ) | (b2 * )
proof end;

definition
let c1 be non empty set ;
let c2 be Nat;
let c3 be Element of c1;
redefine func |-> as c2 |-> c3 -> FinSequence of a1;
coherence
c2 |-> c3 is FinSequence of c1
by FINSEQ_2:77;
end;

definition
let c1, c2 be non empty ManySortedSign ;
pred c1 <= c2 means :Def1: :: MSUHOM_1:def 1
( the carrier of a1 c= the carrier of a2 & the OperSymbols of a1 c= the OperSymbols of a2 & the Arity of a2 | the OperSymbols of a1 = the Arity of a1 & the ResultSort of a2 | the OperSymbols of a1 = the ResultSort of a1 );
reflexivity
for b1 being non empty ManySortedSign holds
( the carrier of b1 c= the carrier of b1 & the OperSymbols of b1 c= the OperSymbols of b1 & the Arity of b1 | the OperSymbols of b1 = the Arity of b1 & the ResultSort of b1 | the OperSymbols of b1 = the ResultSort of b1 )
proof end;
end;

:: deftheorem Def1 defines <= MSUHOM_1:def 1 :
for b1, b2 being non empty ManySortedSign holds
( b1 <= b2 iff ( the carrier of b1 c= the carrier of b2 & the OperSymbols of b1 c= the OperSymbols of b2 & the Arity of b2 | the OperSymbols of b1 = the Arity of b1 & the ResultSort of b2 | the OperSymbols of b1 = the ResultSort of b1 ) );

theorem Th5: :: MSUHOM_1:5
for b1, b2, b3 being non empty ManySortedSign st b1 <= b2 & b2 <= b3 holds
b1 <= b3
proof end;

theorem Th6: :: MSUHOM_1:6
for b1, b2 being non empty strict ManySortedSign st b1 <= b2 & b2 <= b1 holds
b1 = b2
proof end;

theorem Th7: :: MSUHOM_1:7
for b1 being Nat
for b2 being non empty set
for b3 being Function
for b4 being Element of b2
for b5 being Nat st 1 <= b5 & b5 <= b1 holds
(b4 .--> b3) . ((b1 |-> b4) /. b5) = b3
proof end;

theorem Th8: :: MSUHOM_1:8
for b1 being set
for b2 being Subset of b1
for b3, b4 being ManySortedSet of b1
for b5 being ManySortedFunction of b3,b4
for b6, b7 being ManySortedSet of b2 st b6 = b3 | b2 & b7 = b4 | b2 holds
b5 | b2 is ManySortedFunction of b6,b7
proof end;

definition
let c1, c2 be non empty strict non void ManySortedSign ;
let c3 be strict non-empty MSAlgebra of c2;
assume E6: c1 <= c2 ;
func c3 Over c1 -> strict non-empty MSAlgebra of a1 means :Def2: :: MSUHOM_1:def 2
( the Sorts of a4 = the Sorts of a3 | the carrier of a1 & the Charact of a4 = the Charact of a3 | the OperSymbols of a1 );
existence
ex b1 being strict non-empty MSAlgebra of c1 st
( the Sorts of b1 = the Sorts of c3 | the carrier of c1 & the Charact of b1 = the Charact of c3 | the OperSymbols of c1 )
proof end;
uniqueness
for b1, b2 being strict non-empty MSAlgebra of c1 st the Sorts of b1 = the Sorts of c3 | the carrier of c1 & the Charact of b1 = the Charact of c3 | the OperSymbols of c1 & the Sorts of b2 = the Sorts of c3 | the carrier of c1 & the Charact of b2 = the Charact of c3 | the OperSymbols of c1 holds
b1 = b2
;
end;

:: deftheorem Def2 defines Over MSUHOM_1:def 2 :
for b1, b2 being non empty strict non void ManySortedSign
for b3 being strict non-empty MSAlgebra of b2 st b1 <= b2 holds
for b4 being strict non-empty MSAlgebra of b1 holds
( b4 = b3 Over b1 iff ( the Sorts of b4 = the Sorts of b3 | the carrier of b1 & the Charact of b4 = the Charact of b3 | the OperSymbols of b1 ) );

theorem Th9: :: MSUHOM_1:9
for b1 being non empty strict non void ManySortedSign
for b2 being strict non-empty MSAlgebra of b1 holds b2 = b2 Over b1
proof end;

theorem Th10: :: MSUHOM_1:10
for b1, b2 being Universal_Algebra st b1,b2 are_similar holds
MSSign b1 = MSSign b2
proof end;

definition
let c1, c2 be Universal_Algebra;
let c3 be Function of c1,c2;
assume E9: MSSign c1 = MSSign c2 ;
func MSAlg c3 -> ManySortedFunction of (MSAlg a1),((MSAlg a2) Over (MSSign a1)) equals :Def3: :: MSUHOM_1:def 3
{0} --> a3;
coherence
{0} --> c3 is ManySortedFunction of (MSAlg c1),((MSAlg c2) Over (MSSign c1))
proof end;
end;

:: deftheorem Def3 defines MSAlg MSUHOM_1:def 3 :
for b1, b2 being Universal_Algebra
for b3 being Function of b1,b2 st MSSign b1 = MSSign b2 holds
MSAlg b3 = {0} --> b3;

theorem Th11: :: MSUHOM_1:11
for b1, b2 being Universal_Algebra
for b3 being Function of b1,b2 st b1,b2 are_similar holds
for b4 being OperSymbol of (MSSign b1) holds (MSAlg b3) . (the_result_sort_of b4) = b3
proof end;

theorem Th12: :: MSUHOM_1:12
for b1 being Universal_Algebra
for b2 being OperSymbol of (MSSign b1) holds Den b2,(MSAlg b1) = the charact of b1 . b2
proof end;

Lemma12: for b1 being Universal_Algebra holds dom (signature b1) = dom the charact of b1
proof end;

theorem Th13: :: MSUHOM_1:13
for b1 being Universal_Algebra
for b2 being OperSymbol of (MSSign b1) holds Den b2,(MSAlg b1) is operation of b1
proof end;

Lemma14: for b1, b2 being Universal_Algebra st b1,b2 are_similar holds
for b3 being OperSymbol of (MSSign b1) holds Den b3,((MSAlg b2) Over (MSSign b1)) is operation of b2
proof end;

theorem Th14: :: MSUHOM_1:14
for b1 being Universal_Algebra
for b2 being OperSymbol of (MSSign b1)
for b3 being Element of Args b2,(MSAlg b1) holds b3 is FinSequence of the carrier of b1
proof end;

theorem Th15: :: MSUHOM_1:15
for b1, b2 being Universal_Algebra
for b3 being Function of b1,b2 st b1,b2 are_similar holds
for b4 being OperSymbol of (MSSign b1)
for b5 being Element of Args b4,(MSAlg b1) holds (MSAlg b3) # b5 = b3 * b5
proof end;

theorem Th16: :: MSUHOM_1:16
for b1, b2 being Universal_Algebra
for b3 being Function of b1,b2 st b3 is_homomorphism b1,b2 holds
MSAlg b3 is_homomorphism MSAlg b1,(MSAlg b2) Over (MSSign b1)
proof end;

Lemma18: for b1 being Universal_Algebra
for b2 being Nat st b2 in dom the charact of b1 holds
b2 is OperSymbol of (MSSign b1)
proof end;

theorem Th17: :: MSUHOM_1:17
for b1, b2 being Universal_Algebra
for b3 being Function of b1,b2 st b1,b2 are_similar holds
MSAlg b3 is ManySortedSet of {0}
proof end;

theorem Th18: :: MSUHOM_1:18
for b1, b2 being Universal_Algebra
for b3 being Function of b1,b2 st b3 is_epimorphism b1,b2 holds
MSAlg b3 is_epimorphism MSAlg b1,(MSAlg b2) Over (MSSign b1)
proof end;

theorem Th19: :: MSUHOM_1:19
for b1, b2 being Universal_Algebra
for b3 being Function of b1,b2 st b3 is_monomorphism b1,b2 holds
MSAlg b3 is_monomorphism MSAlg b1,(MSAlg b2) Over (MSSign b1)
proof end;

theorem Th20: :: MSUHOM_1:20
for b1, b2 being Universal_Algebra
for b3 being Function of b1,b2 st b3 is_isomorphism b1,b2 holds
MSAlg b3 is_isomorphism MSAlg b1,(MSAlg b2) Over (MSSign b1)
proof end;

theorem Th21: :: MSUHOM_1:21
for b1, b2 being Universal_Algebra
for b3 being Function of b1,b2 st b1,b2 are_similar & MSAlg b3 is_homomorphism MSAlg b1,(MSAlg b2) Over (MSSign b1) holds
b3 is_homomorphism b1,b2
proof end;

theorem Th22: :: MSUHOM_1:22
for b1, b2 being Universal_Algebra
for b3 being Function of b1,b2 st b1,b2 are_similar & MSAlg b3 is_epimorphism MSAlg b1,(MSAlg b2) Over (MSSign b1) holds
b3 is_epimorphism b1,b2
proof end;

theorem Th23: :: MSUHOM_1:23
for b1, b2 being Universal_Algebra
for b3 being Function of b1,b2 st b1,b2 are_similar & MSAlg b3 is_monomorphism MSAlg b1,(MSAlg b2) Over (MSSign b1) holds
b3 is_monomorphism b1,b2
proof end;

theorem Th24: :: MSUHOM_1:24
for b1, b2 being Universal_Algebra
for b3 being Function of b1,b2 st b1,b2 are_similar & MSAlg b3 is_isomorphism MSAlg b1,(MSAlg b2) Over (MSSign b1) holds
b3 is_isomorphism b1,b2
proof end;

theorem Th25: :: MSUHOM_1:25
for b1 being Universal_Algebra holds MSAlg (id the carrier of b1) = id the Sorts of (MSAlg b1)
proof end;

theorem Th26: :: MSUHOM_1:26
for b1, b2, b3 being Universal_Algebra st b1,b2 are_similar & b2,b3 are_similar holds
for b4 being Function of b1,b2
for b5 being Function of b2,b3 holds (MSAlg b5) ** (MSAlg b4) = MSAlg (b5 * b4)
proof end;