Journal of Formalized Mathematics
Volume 8, 1996
University of Bialystok
Copyright (c) 1996
Association of Mizar Users
The abstract of the Mizar article:
-
- by
- Mariusz Giero
- Received April 29, 1996
- MML identifier: PRALG_3
- [
Mizar article,
MML identifier index
]
environ
vocabulary PBOOLE, AMI_1, MSUALG_1, PRALG_2, EQREL_1, FUNCT_1, CARD_3,
ZF_REFLE, RELAT_1, BOOLE, RLVECT_2, FUNCT_2, PRALG_1, FRAENKEL, TARSKI,
QC_LANG1, UNIALG_2, FUNCT_5, CQC_LANG, FUNCT_6, TDGROUP, FINSEQ_4,
FINSEQ_1, BORSUK_1, ALG_1, MSUALG_3, ARYTM_3, WELLORD1, GROUP_6, PRALG_3;
notation TARSKI, XBOOLE_0, SUBSET_1, RELAT_1, FUNCT_1, RELSET_1, STRUCT_0,
FUNCT_2, FRAENKEL, CQC_LANG, EQREL_1, FINSEQ_1, FUNCT_5, FUNCT_6, CARD_3,
PBOOLE, MSUALG_1, MSUALG_3, PRALG_2, AMI_1, FINSEQ_4, PRALG_1, MSUALG_2;
constructors EQREL_1, AMI_1, PRALG_2, FINSEQ_4, MSUALG_3, TOLER_1;
clusters SUBSET_1, STRUCT_0, MSUALG_1, FUNCT_1, PBOOLE, AMI_1, PUA2MSS1,
RELAT_1, MSUALG_3, PRALG_1, RELSET_1, MSAFREE, PRALG_2, FILTER_1,
EQREL_1, TOLER_1, PARTFUN1;
requirements NUMERALS, BOOLE, SUBSET;
begin ::Preliminaries
::-------------------------------------------------------------------
:: Acknowledgements:
:: ================
::
:: I would like to thank Professor A.Trybulec for his help in the preparation
:: of the article.
::-------------------------------------------------------------------
reserve I for non empty set,
J for ManySortedSet of I,
S for non void non empty ManySortedSign,
i for Element of I,
c for set,
A for MSAlgebra-Family of I,S,
EqR for Equivalence_Relation of I,
U0,U1,U2 for MSAlgebra over S,
s for SortSymbol of S,
o for OperSymbol of S,
f for Function;
definition let I be set, S; let AF be MSAlgebra-Family of I,S;
cluster product AF -> non-empty;
end;
definition let I be set;
redefine func id I -> ManySortedSet of I;
end;
definition let I, EqR;
cluster Class EqR -> with_non-empty_elements;
end;
definition let X be with_non-empty_elements set;
redefine func id X -> non-empty ManySortedSet of X;
end;
theorem :: PRALG_3:1
for f,F being Function, A being set st f in product F holds
f|A in product(F|A);
theorem :: PRALG_3:2
for A be MSAlgebra-Family of I,S,
s be SortSymbol of S,
a be non empty Subset of I,
Aa be MSAlgebra-Family of a,S st A|a = Aa
holds Carrier(Aa,s) = (Carrier(A,s))|a;
theorem :: PRALG_3:3
for i be set,
I be non empty set,
EqR be Equivalence_Relation of I,
c1,c2 be Element of Class EqR st i in c1 & i in c2 holds
c1 = c2;
theorem :: PRALG_3:4
for X,Y being set
for f being Function st f in Funcs(X,Y) holds dom f = X & rng f c= Y;
theorem :: PRALG_3:5
for D being non empty set
for F being ManySortedFunction of D
for C being with_common_domain functional non empty set st C = rng F
for d being Element of D,e being set st d in dom F & e in DOM C
holds F.d.e = (commute F).e.d;
begin :: Constants of Many Sorted Algebras
definition let S,U0;
let o be OperSymbol of S;
func const(o,U0) equals
:: PRALG_3:def 1
Den(o,U0).{};
end;
theorem :: PRALG_3:6
the_arity_of o = {} & Result(o,U0) <> {} implies const(o,U0) in Result(o,U0);
theorem :: PRALG_3:7
(the Sorts of U0).s <> {} implies
Constants(U0,s) = { const(o,U0) where o is Element of the OperSymbols of S :
the_result_sort_of o = s & the_arity_of o = {} };
theorem :: PRALG_3:8
the_arity_of o = {} implies (commute (OPER A)).o in Funcs(I,Funcs({{}},
union { Result(o,A.i') where i' is Element of I: not contradiction }));
theorem :: PRALG_3:9
the_arity_of o = {} implies const(o,product A) in Funcs(I,
union { Result(o,A.i') where i' is Element of I: not contradiction });
definition let S,I,o,A;
cluster const (o,product A) -> Relation-like Function-like;
end;
theorem :: PRALG_3:10
for o be OperSymbol of S st the_arity_of o = {}
holds (const (o,product A)).i = const (o,A.i);
theorem :: PRALG_3:11
the_arity_of o = {} & dom f = I &
(for i be Element of I holds f.i = const(o,A.i)) implies
f = const(o,product A);
theorem :: PRALG_3:12
for e be Element of Args(o,U1) st
e = {} & the_arity_of o = {} & Args(o,U1) <> {} & Args(o,U2) <> {}
for F be ManySortedFunction of U1,U2
holds F#e = {};
begin :: Properties of Arguments of operations in Many Sorted Algebras
theorem :: PRALG_3:13
for U1,U2 be non-empty MSAlgebra over S
for F be ManySortedFunction of U1,U2
for x be Element of Args(o,U1) holds
x in product doms (F*the_arity_of o);
theorem :: PRALG_3:14
for U1,U2 be non-empty MSAlgebra over S
for F be ManySortedFunction of U1,U2
for x be Element of Args(o,U1)
for n be set st n in dom (the_arity_of o) holds
(F#x).n = F.((the_arity_of o)/.n).(x.n);
theorem :: PRALG_3:15
for x be Element of Args(o,product A) holds
x in Funcs (dom (the_arity_of o),Funcs (I,union { (the Sorts of A.i').s'
where i' is Element of I,s' is Element of (the carrier of S) :
not contradiction }));
theorem :: PRALG_3:16
for x be Element of Args(o,product A)
for n be set st n in dom (the_arity_of o) holds
x.n in product Carrier(A,(the_arity_of o)/.n);
theorem :: PRALG_3:17
for i be Element of I
for n be set st n in dom(the_arity_of o)
for s be SortSymbol of S st s = (the_arity_of o).n
for y be Element of Args(o,product A)
for g be Function st g = y.n holds
g.i in (the Sorts of A.i).s;
theorem :: PRALG_3:18
for y be Element of Args(o,product A) st (the_arity_of o) <> {} holds
(commute y) in product doms (A?.o);
theorem :: PRALG_3:19
for y be Element of Args(o,product A) st the_arity_of o <> {} holds
y in dom (Commute Frege(A?.o));
theorem :: PRALG_3:20
for I be set, S be non void non empty ManySortedSign,
A be MSAlgebra-Family of I,S, o be OperSymbol of S
for x be Element of Args(o,product A) holds
Den(o,product A).x in product Carrier(A,the_result_sort_of o);
theorem :: PRALG_3:21
for I,S,A,i
for o be OperSymbol of S st (the_arity_of o) <> {}
for U1 be non-empty MSAlgebra over S
for x be Element of Args(o,product A) holds
(commute x).i is Element of Args(o,A.i);
theorem :: PRALG_3:22
for I,S,A,i,o
for x be Element of Args(o,product A)
for n be set st n in dom(the_arity_of o)
for f be Function st f = x.n holds
((commute x).i).n = f.i;
theorem :: PRALG_3:23
for o be OperSymbol of S st (the_arity_of o) <> {}
for y be Element of Args(o,product A),
i' be Element of I
for g be Function st g = Den(o,product A).y
holds g.i' = Den(o,A.i').((commute y).i');
begin :: The Projection of Family of Many Sorted Algebras
definition let f be Function, x be set;
func proj(f,x) -> Function means
:: PRALG_3:def 2
dom it = product f &
for y being Function st y in dom it holds it.y = y.x;
end;
definition let I,S;
let A be MSAlgebra-Family of I,S,
i be Element of I;
func proj(A,i) -> ManySortedFunction of product A,A.i means
:: PRALG_3:def 3
for s be Element of S holds
it.s = proj (Carrier(A,s), i);
end;
theorem :: PRALG_3:24
for x be Element of Args(o,product A) st Args(o,product A) <> {} &
the_arity_of o <> {}
for i be Element of I holds
proj(A,i)#x = (commute x).i;
theorem :: PRALG_3:25
for i be Element of I
for A be MSAlgebra-Family of I,S
holds proj(A,i) is_homomorphism product A,A.i;
theorem :: PRALG_3:26
for U1 be non-empty MSAlgebra over S
for F being ManySortedFunction of I st
(for i be Element of I holds ex F1 being ManySortedFunction of U1,A.i st
F1 = F.i & F1 is_homomorphism U1,A.i) holds
F in Funcs(I,Funcs(the carrier of S,
{F.i'.s1 where s1 is SortSymbol of S,i' is Element of I :not contradiction}))
& (commute F).s.i = F.i.s;
theorem :: PRALG_3:27
for U1 be non-empty MSAlgebra over S
for F being ManySortedFunction of I st
(for i be Element of I holds ex F1 being ManySortedFunction of U1,A.i st
F1 = F.i & F1 is_homomorphism U1,A.i) holds
(commute F).s in Funcs(I,Funcs((the Sorts of U1).s,
union {(the Sorts of A.i').s1 where
i' is Element of I,s1 is SortSymbol of S : not contradiction}));
theorem :: PRALG_3:28
for U1 be non-empty MSAlgebra over S
for F being ManySortedFunction of I st
(for i be Element of I holds ex F1 being ManySortedFunction of U1,A.i st
F1 = F.i & F1 is_homomorphism U1,A.i)
for F' be ManySortedFunction of U1,A.i st F' = F.i
for x be set st x in (the Sorts of U1).s
for f be Function st f = (commute((commute F).s)).x holds
f.i = F'.s.x;
theorem :: PRALG_3:29
for U1 be non-empty MSAlgebra over S
for F being ManySortedFunction of I st
(for i be Element of I holds ex F1 being ManySortedFunction of U1,A.i st
F1 = F.i & F1 is_homomorphism U1,A.i)
for x be set st x in (the Sorts of U1).s holds
(commute ((commute F).s)).x in product (Carrier(A,s));
theorem :: PRALG_3:30
for U1 be non-empty MSAlgebra over S
for F being ManySortedFunction of I st
(for i be Element of I holds ex F1 being ManySortedFunction of U1,A.i st
F1 = F.i & F1 is_homomorphism U1,A.i) holds
ex H being ManySortedFunction of U1,(product A) st
H is_homomorphism U1,(product A) &
(for i be Element of I holds proj(A,i) ** H = F.i);
begin :: The Class of Family of Many Sorted Algebras
definition let I,J,S;
mode MSAlgebra-Class of S,J -> ManySortedSet of I means
:: PRALG_3:def 4
for i be set st i in I holds it.i is MSAlgebra-Family of J.i,S;
end;
definition
let I,S,A,EqR;
func A / EqR -> MSAlgebra-Class of S,id (Class EqR) means
:: PRALG_3:def 5
for c st c in Class EqR holds it.c = A|c;
end;
definition let I,S;
let J be non-empty ManySortedSet of I;
let C be MSAlgebra-Class of S,J;
func product C -> MSAlgebra-Family of I,S means
:: PRALG_3:def 6
for i st i in I ex Ji be non empty set, Cs be MSAlgebra-Family of Ji,S
st Ji = J.i & Cs = C.i & it.i = product Cs;
end;
theorem :: PRALG_3:31
for A be MSAlgebra-Family of I,S,
EqR be Equivalence_Relation of I holds
product A, product (product (A/EqR)) are_isomorphic;
Back to top