Article ALG_1, MML version 4.99.1005
:: ALG_1:th 1
theorem
for b1, b2 being non empty set
for b3 being FinSequence of b1
for b4 being Function-like quasi_total Relation of b1,b2 holds
dom (b4 * b3) = dom b3 &
len (b4 * b3) = len b3 &
(for b5 being natural set
st b5 in dom (b4 * b3)
holds (b4 * b3) . b5 = b4 . (b3 . b5));
:: ALG_1:th 2
theorem
for b1 being non empty partial quasi_total non-empty UAStr
for b2 being non empty Element of bool the carrier of b1
st b2 = the carrier of b1
holds Opers(b1,b2) = the charact of b1;
:: ALG_1:th 3
theorem
for b1, b2 being non empty partial quasi_total non-empty UAStr
for b3 being Function-like quasi_total Relation of the carrier of b1,the carrier of b2 holds
b3 * <*> the carrier of b1 = <*> the carrier of b2;
:: ALG_1:th 4
theorem
for b1 being non empty partial quasi_total non-empty UAStr
for b2 being FinSequence of the carrier of b1 holds
(id the carrier of b1) * b2 = b2;
:: ALG_1:th 5
theorem
for b1, b2, b3 being non empty partial quasi_total non-empty UAStr
for b4 being Function-like quasi_total Relation of the carrier of b1,the carrier of b2
for b5 being Function-like quasi_total Relation of the carrier of b2,the carrier of b3
for b6 being FinSequence of the carrier of b1 holds
b5 * (b4 * b6) = (b5 * b4) * b6;
:: ALG_1:prednot 1 => ALG_1:pred 1
definition
let a1, a2 be non empty partial quasi_total non-empty UAStr;
let a3 be Function-like quasi_total Relation of the carrier of a1,the carrier of a2;
pred A3 is_homomorphism A1,A2 means
a1,a2 are_similar &
(for b1 being Element of NAT
st b1 in dom the charact of a1
for b2 being Element of Operations a1
for b3 being Element of Operations a2
st b2 = (the charact of a1) . b1 & b3 = (the charact of a2) . b1
for b4 being FinSequence of the carrier of a1
st b4 in dom b2
holds a3 . (b2 . b4) = b3 . (a3 * b4));
end;
:: ALG_1:dfs 1
definiens
let a1, a2 be non empty partial quasi_total non-empty UAStr;
let a3 be Function-like quasi_total Relation of the carrier of a1,the carrier of a2;
To prove
a3 is_homomorphism a1,a2
it is sufficient to prove
thus a1,a2 are_similar &
(for b1 being Element of NAT
st b1 in dom the charact of a1
for b2 being Element of Operations a1
for b3 being Element of Operations a2
st b2 = (the charact of a1) . b1 & b3 = (the charact of a2) . b1
for b4 being FinSequence of the carrier of a1
st b4 in dom b2
holds a3 . (b2 . b4) = b3 . (a3 * b4));
:: ALG_1:def 1
theorem
for b1, b2 being non empty partial quasi_total non-empty UAStr
for b3 being Function-like quasi_total Relation of the carrier of b1,the carrier of b2 holds
b3 is_homomorphism b1,b2
iff
b1,b2 are_similar &
(for b4 being Element of NAT
st b4 in dom the charact of b1
for b5 being Element of Operations b1
for b6 being Element of Operations b2
st b5 = (the charact of b1) . b4 & b6 = (the charact of b2) . b4
for b7 being FinSequence of the carrier of b1
st b7 in dom b5
holds b3 . (b5 . b7) = b6 . (b3 * b7));
:: ALG_1:prednot 2 => ALG_1:pred 2
definition
let a1, a2 be non empty partial quasi_total non-empty UAStr;
let a3 be Function-like quasi_total Relation of the carrier of a1,the carrier of a2;
pred A3 is_monomorphism A1,A2 means
a3 is_homomorphism a1,a2 & a3 is one-to-one;
end;
:: ALG_1:dfs 2
definiens
let a1, a2 be non empty partial quasi_total non-empty UAStr;
let a3 be Function-like quasi_total Relation of the carrier of a1,the carrier of a2;
To prove
a3 is_monomorphism a1,a2
it is sufficient to prove
thus a3 is_homomorphism a1,a2 & a3 is one-to-one;
:: ALG_1:def 2
theorem
for b1, b2 being non empty partial quasi_total non-empty UAStr
for b3 being Function-like quasi_total Relation of the carrier of b1,the carrier of b2 holds
b3 is_monomorphism b1,b2
iff
b3 is_homomorphism b1,b2 & b3 is one-to-one;
:: ALG_1:prednot 3 => ALG_1:pred 3
definition
let a1, a2 be non empty partial quasi_total non-empty UAStr;
let a3 be Function-like quasi_total Relation of the carrier of a1,the carrier of a2;
pred A3 is_epimorphism A1,A2 means
a3 is_homomorphism a1,a2 & rng a3 = the carrier of a2;
end;
:: ALG_1:dfs 3
definiens
let a1, a2 be non empty partial quasi_total non-empty UAStr;
let a3 be Function-like quasi_total Relation of the carrier of a1,the carrier of a2;
To prove
a3 is_epimorphism a1,a2
it is sufficient to prove
thus a3 is_homomorphism a1,a2 & rng a3 = the carrier of a2;
:: ALG_1:def 3
theorem
for b1, b2 being non empty partial quasi_total non-empty UAStr
for b3 being Function-like quasi_total Relation of the carrier of b1,the carrier of b2 holds
b3 is_epimorphism b1,b2
iff
b3 is_homomorphism b1,b2 & rng b3 = the carrier of b2;
:: ALG_1:prednot 4 => ALG_1:pred 4
definition
let a1, a2 be non empty partial quasi_total non-empty UAStr;
let a3 be Function-like quasi_total Relation of the carrier of a1,the carrier of a2;
pred A3 is_isomorphism A1,A2 means
a3 is_monomorphism a1,a2 & a3 is_epimorphism a1,a2;
end;
:: ALG_1:dfs 4
definiens
let a1, a2 be non empty partial quasi_total non-empty UAStr;
let a3 be Function-like quasi_total Relation of the carrier of a1,the carrier of a2;
To prove
a3 is_isomorphism a1,a2
it is sufficient to prove
thus a3 is_monomorphism a1,a2 & a3 is_epimorphism a1,a2;
:: ALG_1:def 4
theorem
for b1, b2 being non empty partial quasi_total non-empty UAStr
for b3 being Function-like quasi_total Relation of the carrier of b1,the carrier of b2 holds
b3 is_isomorphism b1,b2
iff
b3 is_monomorphism b1,b2 & b3 is_epimorphism b1,b2;
:: ALG_1:prednot 5 => ALG_1:pred 5
definition
let a1, a2 be non empty partial quasi_total non-empty UAStr;
pred A1,A2 are_isomorphic means
ex b1 being Function-like quasi_total Relation of the carrier of a1,the carrier of a2 st
b1 is_isomorphism a1,a2;
end;
:: ALG_1:dfs 5
definiens
let a1, a2 be non empty partial quasi_total non-empty UAStr;
To prove
a1,a2 are_isomorphic
it is sufficient to prove
thus ex b1 being Function-like quasi_total Relation of the carrier of a1,the carrier of a2 st
b1 is_isomorphism a1,a2;
:: ALG_1:def 5
theorem
for b1, b2 being non empty partial quasi_total non-empty UAStr holds
b1,b2 are_isomorphic
iff
ex b3 being Function-like quasi_total Relation of the carrier of b1,the carrier of b2 st
b3 is_isomorphism b1,b2;
:: ALG_1:th 6
theorem
for b1 being non empty partial quasi_total non-empty UAStr holds
id the carrier of b1 is_homomorphism b1,b1;
:: ALG_1:th 7
theorem
for b1, b2, b3 being non empty partial quasi_total non-empty UAStr
for b4 being Function-like quasi_total Relation of the carrier of b1,the carrier of b2
for b5 being Function-like quasi_total Relation of the carrier of b2,the carrier of b3
st b4 is_homomorphism b1,b2 & b5 is_homomorphism b2,b3
holds b5 * b4 is_homomorphism b1,b3;
:: ALG_1:th 8
theorem
for b1, b2 being non empty partial quasi_total non-empty UAStr
for b3 being Function-like quasi_total Relation of the carrier of b1,the carrier of b2 holds
b3 is_isomorphism b1,b2
iff
b3 is_homomorphism b1,b2 & rng b3 = the carrier of b2 & b3 is one-to-one;
:: ALG_1:th 9
theorem
for b1, b2 being non empty partial quasi_total non-empty UAStr
for b3 being Function-like quasi_total Relation of the carrier of b1,the carrier of b2
st b3 is_isomorphism b1,b2
holds dom b3 = the carrier of b1 & rng b3 = the carrier of b2;
:: ALG_1:th 10
theorem
for b1, b2 being non empty partial quasi_total non-empty UAStr
for b3 being Function-like quasi_total Relation of the carrier of b1,the carrier of b2
for b4 being Function-like quasi_total Relation of the carrier of b2,the carrier of b1
st b3 is_isomorphism b1,b2 & b4 = b3 "
holds b4 is_homomorphism b2,b1;
:: ALG_1:th 11
theorem
for b1, b2 being non empty partial quasi_total non-empty UAStr
for b3 being Function-like quasi_total Relation of the carrier of b1,the carrier of b2
for b4 being Function-like quasi_total Relation of the carrier of b2,the carrier of b1
st b3 is_isomorphism b1,b2 & b4 = b3 "
holds b4 is_isomorphism b2,b1;
:: ALG_1:th 12
theorem
for b1, b2, b3 being non empty partial quasi_total non-empty UAStr
for b4 being Function-like quasi_total Relation of the carrier of b1,the carrier of b2
for b5 being Function-like quasi_total Relation of the carrier of b2,the carrier of b3
st b4 is_isomorphism b1,b2 & b5 is_isomorphism b2,b3
holds b5 * b4 is_isomorphism b1,b3;
:: ALG_1:th 13
theorem
for b1 being non empty partial quasi_total non-empty UAStr holds
b1,b1 are_isomorphic;
:: ALG_1:th 14
theorem
for b1, b2 being non empty partial quasi_total non-empty UAStr
st b1,b2 are_isomorphic
holds b2,b1 are_isomorphic;
:: ALG_1:th 15
theorem
for b1, b2, b3 being non empty partial quasi_total non-empty UAStr
st b1,b2 are_isomorphic & b2,b3 are_isomorphic
holds b1,b3 are_isomorphic;
:: ALG_1:funcnot 1 => ALG_1:func 1
definition
let a1, a2 be non empty partial quasi_total non-empty UAStr;
let a3 be Function-like quasi_total Relation of the carrier of a1,the carrier of a2;
assume a3 is_homomorphism a1,a2;
func Image A3 -> strict SubAlgebra of a2 means
the carrier of it = a3 .: the carrier of a1;
end;
:: ALG_1:def 6
theorem
for b1, b2 being non empty partial quasi_total non-empty UAStr
for b3 being Function-like quasi_total Relation of the carrier of b1,the carrier of b2
st b3 is_homomorphism b1,b2
for b4 being strict SubAlgebra of b2 holds
b4 = Image b3
iff
the carrier of b4 = b3 .: the carrier of b1;
:: ALG_1:th 16
theorem
for b1, b2 being non empty partial quasi_total non-empty UAStr
for b3 being Function-like quasi_total Relation of the carrier of b1,the carrier of b2
st b3 is_homomorphism b1,b2
holds rng b3 = the carrier of Image b3;
:: ALG_1:th 17
theorem
for b1 being non empty partial quasi_total non-empty UAStr
for b2 being non empty strict partial quasi_total non-empty UAStr
for b3 being Function-like quasi_total Relation of the carrier of b1,the carrier of b2
st b3 is_homomorphism b1,b2
holds b3 is_epimorphism b1,b2
iff
Image b3 = b2;
:: ALG_1:modenot 1
definition
let a1 be 1-sorted;
mode Relation of a1 is Relation of the carrier of a1,the carrier of a1;
end;
:: ALG_1:modenot 2
definition
let a1 be 1-sorted;
mode Equivalence_Relation of a1 is symmetric transitive total Relation of the carrier of a1,the carrier of a1;
end;
:: ALG_1:funcnot 2 => ALG_1:func 2
definition
let a1 be non empty set;
let a2 be Relation of a1,a1;
func ExtendRel A2 -> Relation of a1 *,a1 * means
for b1, b2 being FinSequence of a1 holds
[b1,b2] in it
iff
len b1 = len b2 &
(for b3 being Element of NAT
st b3 in dom b1
holds [b1 . b3,b2 . b3] in a2);
end;
:: ALG_1:def 9
theorem
for b1 being non empty set
for b2 being Relation of b1,b1
for b3 being Relation of b1 *,b1 * holds
b3 = ExtendRel b2
iff
for b4, b5 being FinSequence of b1 holds
[b4,b5] in b3
iff
len b4 = len b5 &
(for b6 being Element of NAT
st b6 in dom b4
holds [b4 . b6,b5 . b6] in b2);
:: ALG_1:th 18
theorem
for b1 being non empty set holds
ExtendRel id b1 = id (b1 *);
:: ALG_1:modenot 3 => ALG_1:mode 1
definition
let a1 be non empty partial quasi_total non-empty UAStr;
mode Congruence of A1 -> symmetric transitive total Relation of the carrier of a1,the carrier of a1 means
for b1 being Element of NAT
for b2 being Element of Operations a1
st b1 in dom the charact of a1 & b2 = (the charact of a1) . b1
for b3, b4 being FinSequence of the carrier of a1
st b3 in dom b2 & b4 in dom b2 & [b3,b4] in ExtendRel it
holds [b2 . b3,b2 . b4] in it;
end;
:: ALG_1:dfs 8
definiens
let a1 be non empty partial quasi_total non-empty UAStr;
let a2 be symmetric transitive total Relation of the carrier of a1,the carrier of a1;
To prove
a2 is Congruence of a1
it is sufficient to prove
thus for b1 being Element of NAT
for b2 being Element of Operations a1
st b1 in dom the charact of a1 & b2 = (the charact of a1) . b1
for b3, b4 being FinSequence of the carrier of a1
st b3 in dom b2 & b4 in dom b2 & [b3,b4] in ExtendRel a2
holds [b2 . b3,b2 . b4] in a2;
:: ALG_1:def 10
theorem
for b1 being non empty partial quasi_total non-empty UAStr
for b2 being symmetric transitive total Relation of the carrier of b1,the carrier of b1 holds
b2 is Congruence of b1
iff
for b3 being Element of NAT
for b4 being Element of Operations b1
st b3 in dom the charact of b1 & b4 = (the charact of b1) . b3
for b5, b6 being FinSequence of the carrier of b1
st b5 in dom b4 & b6 in dom b4 & [b5,b6] in ExtendRel b2
holds [b4 . b5,b4 . b6] in b2;
:: ALG_1:prednot 6 => ALG_1:pred 6
definition
let a1 be non empty set;
let a2 be symmetric transitive total Relation of a1,a1;
let a3 be FinSequence of Class a2;
let a4 be FinSequence of a1;
pred A4 is_representatives_FS A3 means
len a4 = len a3 &
(for b1 being Element of NAT
st b1 in dom a4
holds Class(a2,a4 . b1) = a3 . b1);
end;
:: ALG_1:dfs 9
definiens
let a1 be non empty set;
let a2 be symmetric transitive total Relation of a1,a1;
let a3 be FinSequence of Class a2;
let a4 be FinSequence of a1;
To prove
a4 is_representatives_FS a3
it is sufficient to prove
thus len a4 = len a3 &
(for b1 being Element of NAT
st b1 in dom a4
holds Class(a2,a4 . b1) = a3 . b1);
:: ALG_1:def 11
theorem
for b1 being non empty set
for b2 being symmetric transitive total Relation of b1,b1
for b3 being FinSequence of Class b2
for b4 being FinSequence of b1 holds
b4 is_representatives_FS b3
iff
len b4 = len b3 &
(for b5 being Element of NAT
st b5 in dom b4
holds Class(b2,b4 . b5) = b3 . b5);
:: ALG_1:th 19
theorem
for b1 being non empty set
for b2 being symmetric transitive total Relation of b1,b1
for b3 being FinSequence of Class b2 holds
ex b4 being FinSequence of b1 st
b4 is_representatives_FS b3;
:: ALG_1:funcnot 3 => ALG_1:func 3
definition
let a1 be non empty partial quasi_total non-empty UAStr;
let a2 be Congruence of a1;
let a3 be Element of Operations a1;
func QuotOp(A3,A2) -> non empty Function-like homogeneous quasi_total Relation of (Class a2) *,Class a2 means
dom it = (arity a3) -tuples_on Class a2 &
(for b1 being FinSequence of Class a2
st b1 in dom it
for b2 being FinSequence of the carrier of a1
st b2 is_representatives_FS b1
holds it . b1 = Class(a2,a3 . b2));
end;
:: ALG_1:def 12
theorem
for b1 being non empty partial quasi_total non-empty UAStr
for b2 being Congruence of b1
for b3 being Element of Operations b1
for b4 being non empty Function-like homogeneous quasi_total Relation of (Class b2) *,Class b2 holds
b4 = QuotOp(b3,b2)
iff
dom b4 = (arity b3) -tuples_on Class b2 &
(for b5 being FinSequence of Class b2
st b5 in dom b4
for b6 being FinSequence of the carrier of b1
st b6 is_representatives_FS b5
holds b4 . b5 = Class(b2,b3 . b6));
:: ALG_1:funcnot 4 => ALG_1:func 4
definition
let a1 be non empty partial quasi_total non-empty UAStr;
let a2 be Congruence of a1;
func QuotOpSeq(A1,A2) -> FinSequence of PFuncs((Class a2) *,Class a2) means
len it = len the charact of a1 &
(for b1 being Element of NAT
st b1 in dom it
for b2 being Element of Operations a1
st (the charact of a1) . b1 = b2
holds it . b1 = QuotOp(b2,a2));
end;
:: ALG_1:def 13
theorem
for b1 being non empty partial quasi_total non-empty UAStr
for b2 being Congruence of b1
for b3 being FinSequence of PFuncs((Class b2) *,Class b2) holds
b3 = QuotOpSeq(b1,b2)
iff
len b3 = len the charact of b1 &
(for b4 being Element of NAT
st b4 in dom b3
for b5 being Element of Operations b1
st (the charact of b1) . b4 = b5
holds b3 . b4 = QuotOp(b5,b2));
:: ALG_1:th 20
theorem
for b1 being non empty partial quasi_total non-empty UAStr
for b2 being Congruence of b1 holds
UAStr(#Class b2,QuotOpSeq(b1,b2)#) is non empty strict partial quasi_total non-empty UAStr;
:: ALG_1:funcnot 5 => ALG_1:func 5
definition
let a1 be non empty partial quasi_total non-empty UAStr;
let a2 be Congruence of a1;
func QuotUnivAlg(A1,A2) -> non empty strict partial quasi_total non-empty UAStr equals
UAStr(#Class a2,QuotOpSeq(a1,a2)#);
end;
:: ALG_1:def 14
theorem
for b1 being non empty partial quasi_total non-empty UAStr
for b2 being Congruence of b1 holds
QuotUnivAlg(b1,b2) = UAStr(#Class b2,QuotOpSeq(b1,b2)#);
:: ALG_1:funcnot 6 => ALG_1:func 6
definition
let a1 be non empty partial quasi_total non-empty UAStr;
let a2 be Congruence of a1;
func Nat_Hom(A1,A2) -> Function-like quasi_total Relation of the carrier of a1,the carrier of QuotUnivAlg(a1,a2) means
for b1 being Element of the carrier of a1 holds
it . b1 = Class(a2,b1);
end;
:: ALG_1:def 15
theorem
for b1 being non empty partial quasi_total non-empty UAStr
for b2 being Congruence of b1
for b3 being Function-like quasi_total Relation of the carrier of b1,the carrier of QuotUnivAlg(b1,b2) holds
b3 = Nat_Hom(b1,b2)
iff
for b4 being Element of the carrier of b1 holds
b3 . b4 = Class(b2,b4);
:: ALG_1:th 21
theorem
for b1 being non empty partial quasi_total non-empty UAStr
for b2 being Congruence of b1 holds
Nat_Hom(b1,b2) is_homomorphism b1,QuotUnivAlg(b1,b2);
:: ALG_1:th 22
theorem
for b1 being non empty partial quasi_total non-empty UAStr
for b2 being Congruence of b1 holds
Nat_Hom(b1,b2) is_epimorphism b1,QuotUnivAlg(b1,b2);
:: ALG_1:funcnot 7 => ALG_1:func 7
definition
let a1, a2 be non empty partial quasi_total non-empty UAStr;
let a3 be Function-like quasi_total Relation of the carrier of a1,the carrier of a2;
assume a3 is_homomorphism a1,a2;
func Cng A3 -> Congruence of a1 means
for b1, b2 being Element of the carrier of a1 holds
[b1,b2] in it
iff
a3 . b1 = a3 . b2;
end;
:: ALG_1:def 16
theorem
for b1, b2 being non empty partial quasi_total non-empty UAStr
for b3 being Function-like quasi_total Relation of the carrier of b1,the carrier of b2
st b3 is_homomorphism b1,b2
for b4 being Congruence of b1 holds
b4 = Cng b3
iff
for b5, b6 being Element of the carrier of b1 holds
[b5,b6] in b4
iff
b3 . b5 = b3 . b6;
:: ALG_1:funcnot 8 => ALG_1:func 8
definition
let a1, a2 be non empty partial quasi_total non-empty UAStr;
let a3 be Function-like quasi_total Relation of the carrier of a1,the carrier of a2;
assume a3 is_homomorphism a1,a2;
func HomQuot A3 -> Function-like quasi_total Relation of the carrier of QuotUnivAlg(a1,Cng a3),the carrier of a2 means
for b1 being Element of the carrier of a1 holds
it . Class(Cng a3,b1) = a3 . b1;
end;
:: ALG_1:def 17
theorem
for b1, b2 being non empty partial quasi_total non-empty UAStr
for b3 being Function-like quasi_total Relation of the carrier of b1,the carrier of b2
st b3 is_homomorphism b1,b2
for b4 being Function-like quasi_total Relation of the carrier of QuotUnivAlg(b1,Cng b3),the carrier of b2 holds
b4 = HomQuot b3
iff
for b5 being Element of the carrier of b1 holds
b4 . Class(Cng b3,b5) = b3 . b5;
:: ALG_1:th 23
theorem
for b1, b2 being non empty partial quasi_total non-empty UAStr
for b3 being Function-like quasi_total Relation of the carrier of b1,the carrier of b2
st b3 is_homomorphism b1,b2
holds HomQuot b3 is_homomorphism QuotUnivAlg(b1,Cng b3),b2 & HomQuot b3 is_monomorphism QuotUnivAlg(b1,Cng b3),b2;
:: ALG_1:th 24
theorem
for b1, b2 being non empty partial quasi_total non-empty UAStr
for b3 being Function-like quasi_total Relation of the carrier of b1,the carrier of b2
st b3 is_epimorphism b1,b2
holds HomQuot b3 is_isomorphism QuotUnivAlg(b1,Cng b3),b2;
:: ALG_1:th 25
theorem
for b1, b2 being non empty partial quasi_total non-empty UAStr
for b3 being Function-like quasi_total Relation of the carrier of b1,the carrier of b2
st b3 is_epimorphism b1,b2
holds QuotUnivAlg(b1,Cng b3),b2 are_isomorphic;