:: PRALG_1 semantic presentation
theorem Th1: :: PRALG_1:1
:: deftheorem Def1 defines pr1 PRALG_1:def 1 :
:: deftheorem Def2 defines pr2 PRALG_1:def 2 :
definition
let c1,
c2 be non
empty set ;
let c3 be non
empty homogeneous quasi_total PartFunc of
c1 * ,
c1;
let c4 be non
empty homogeneous quasi_total PartFunc of
c2 * ,
c2;
assume E4:
arity c3 = arity c4
;
func [[:c3,c4:]] -> non
empty homogeneous quasi_total PartFunc of
[:a1,a2:] * ,
[:a1,a2:] means :
Def3:
:: PRALG_1:def 3
(
dom a5 = (arity a3) -tuples_on [:a1,a2:] & ( for
b1 being
FinSequence of
[:a1,a2:] st
b1 in dom a5 holds
a5 . b1 = [(a3 . (pr1 b1)),(a4 . (pr2 b1))] ) );
existence
ex b1 being non empty homogeneous quasi_total PartFunc of [:c1,c2:] * ,[:c1,c2:] st
( dom b1 = (arity c3) -tuples_on [:c1,c2:] & ( for b2 being FinSequence of [:c1,c2:] st b2 in dom b1 holds
b1 . b2 = [(c3 . (pr1 b2)),(c4 . (pr2 b2))] ) )
uniqueness
for b1, b2 being non empty homogeneous quasi_total PartFunc of [:c1,c2:] * ,[:c1,c2:] st dom b1 = (arity c3) -tuples_on [:c1,c2:] & ( for b3 being FinSequence of [:c1,c2:] st b3 in dom b1 holds
b1 . b3 = [(c3 . (pr1 b3)),(c4 . (pr2 b3))] ) & dom b2 = (arity c3) -tuples_on [:c1,c2:] & ( for b3 being FinSequence of [:c1,c2:] st b3 in dom b2 holds
b2 . b3 = [(c3 . (pr1 b3)),(c4 . (pr2 b3))] ) holds
b1 = b2
end;
:: deftheorem Def3 defines [[: PRALG_1:def 3 :
for
b1,
b2 being non
empty set for
b3 being non
empty homogeneous quasi_total PartFunc of
b1 * ,
b1 for
b4 being non
empty homogeneous quasi_total PartFunc of
b2 * ,
b2 st
arity b3 = arity b4 holds
for
b5 being non
empty homogeneous quasi_total PartFunc of
[:b1,b2:] * ,
[:b1,b2:] holds
(
b5 = [[:b3,b4:]] iff (
dom b5 = (arity b3) -tuples_on [:b1,b2:] & ( for
b6 being
FinSequence of
[:b1,b2:] st
b6 in dom b5 holds
b5 . b6 = [(b3 . (pr1 b6)),(b4 . (pr2 b6))] ) ) );
definition
let c1,
c2 be
Universal_Algebra;
assume E5:
c1,
c2 are_similar
;
func Opers c1,
c2 -> PFuncFinSequence of
[:the carrier of a1,the carrier of a2:] means :
Def4:
:: PRALG_1:def 4
(
len a3 = len the
charact of
a1 & ( for
b1 being
Nat st
b1 in dom a3 holds
for
b2 being non
empty homogeneous quasi_total PartFunc of the
carrier of
a1 * ,the
carrier of
a1 for
b3 being non
empty homogeneous quasi_total PartFunc of the
carrier of
a2 * ,the
carrier of
a2 st
b2 = the
charact of
a1 . b1 &
b3 = the
charact of
a2 . b1 holds
a3 . b1 = [[:b2,b3:]] ) );
existence
ex b1 being PFuncFinSequence of [:the carrier of c1,the carrier of c2:] st
( len b1 = len the charact of c1 & ( for b2 being Nat st b2 in dom b1 holds
for b3 being non empty homogeneous quasi_total PartFunc of the carrier of c1 * ,the carrier of c1
for b4 being non empty homogeneous quasi_total PartFunc of the carrier of c2 * ,the carrier of c2 st b3 = the charact of c1 . b2 & b4 = the charact of c2 . b2 holds
b1 . b2 = [[:b3,b4:]] ) )
uniqueness
for b1, b2 being PFuncFinSequence of [:the carrier of c1,the carrier of c2:] st len b1 = len the charact of c1 & ( for b3 being Nat st b3 in dom b1 holds
for b4 being non empty homogeneous quasi_total PartFunc of the carrier of c1 * ,the carrier of c1
for b5 being non empty homogeneous quasi_total PartFunc of the carrier of c2 * ,the carrier of c2 st b4 = the charact of c1 . b3 & b5 = the charact of c2 . b3 holds
b1 . b3 = [[:b4,b5:]] ) & len b2 = len the charact of c1 & ( for b3 being Nat st b3 in dom b2 holds
for b4 being non empty homogeneous quasi_total PartFunc of the carrier of c1 * ,the carrier of c1
for b5 being non empty homogeneous quasi_total PartFunc of the carrier of c2 * ,the carrier of c2 st b4 = the charact of c1 . b3 & b5 = the charact of c2 . b3 holds
b2 . b3 = [[:b4,b5:]] ) holds
b1 = b2
end;
:: deftheorem Def4 defines Opers PRALG_1:def 4 :
theorem Th2: :: PRALG_1:2
definition
let c1,
c2 be
Universal_Algebra;
assume E7:
c1,
c2 are_similar
;
func [:c1,c2:] -> strict Universal_Algebra equals :
Def5:
:: PRALG_1:def 5
UAStr(#
[:the carrier of a1,the carrier of a2:],
(Opers a1,a2) #);
coherence
UAStr(# [:the carrier of c1,the carrier of c2:],(Opers c1,c2) #) is strict Universal_Algebra
by E7, Th2;
end;
:: deftheorem Def5 defines [: PRALG_1:def 5 :
definition
let c1,
c2 be non
empty set ;
func Inv c1,
c2 -> Function of
[:a1,a2:],
[:a2,a1:] means :
Def6:
:: PRALG_1:def 6
for
b1 being
Element of
[:a1,a2:] holds
a3 . b1 = [(b1 `2 ),(b1 `1 )];
existence
ex b1 being Function of [:c1,c2:],[:c2,c1:] st
for b2 being Element of [:c1,c2:] holds b1 . b2 = [(b2 `2 ),(b2 `1 )]
uniqueness
for b1, b2 being Function of [:c1,c2:],[:c2,c1:] st ( for b3 being Element of [:c1,c2:] holds b1 . b3 = [(b3 `2 ),(b3 `1 )] ) & ( for b3 being Element of [:c1,c2:] holds b2 . b3 = [(b3 `2 ),(b3 `1 )] ) holds
b1 = b2
end;
:: deftheorem Def6 defines Inv PRALG_1:def 6 :
theorem Th3: :: PRALG_1:3
theorem Th4: :: PRALG_1:4
theorem Th5: :: PRALG_1:5
theorem Th6: :: PRALG_1:6
theorem Th7: :: PRALG_1:7
theorem Th8: :: PRALG_1:8
:: deftheorem Def7 defines TrivialOp PRALG_1:def 7 :
theorem Th9: :: PRALG_1:9
:: deftheorem Def8 defines TrivialOps PRALG_1:def 8 :
theorem Th10: :: PRALG_1:10
theorem Th11: :: PRALG_1:11
:: deftheorem Def9 defines Trivial_Algebra PRALG_1:def 9 :
:: deftheorem Def10 defines Univ_Alg-yielding PRALG_1:def 10 :
:: deftheorem Def11 defines 1-sorted-yielding PRALG_1:def 11 :
:: deftheorem Def12 defines equal-signature PRALG_1:def 12 :
:: deftheorem Def13 defines Carrier PRALG_1:def 13 :
:: deftheorem Def14 defines ComSign PRALG_1:def 14 :
:: deftheorem Def15 defines ManySortedOperation PRALG_1:def 15 :
:: deftheorem Def16 defines equal-arity PRALG_1:def 16 :
theorem Th12: :: PRALG_1:12
:: deftheorem Def17 defines .. PRALG_1:def 17 :
:: deftheorem Def18 defines .. PRALG_1:def 18 :
:: deftheorem Def19 defines ComAr PRALG_1:def 19 :
:: deftheorem Def20 defines EmptySeq PRALG_1:def 20 :
:: deftheorem Def21 defines [[: PRALG_1:def 21 :
:: deftheorem Def22 defines ProdOp PRALG_1:def 22 :
:: deftheorem Def23 defines ProdOpSeq PRALG_1:def 23 :
:: deftheorem Def24 defines ProdUnivAlg PRALG_1:def 24 :