Journal of Formalized Mathematics
Volume 2, 1990
University of Bialystok
Copyright (c) 1990
Association of Mizar Users
The abstract of the Mizar article:
-
- by
- Henryk Oryszczyszyn,
and
- Krzysztof Prazmowski
- Received March 23, 1990
- MML identifier: FUNCSDOM
- [
Mizar article,
MML identifier index
]
environ
vocabulary BINOP_1, FUNCT_2, FUNCT_1, QC_LANG1, RELAT_1, FUNCOP_1, VECTSP_1,
RLVECT_1, ARYTM_1, LATTICES, FUNCSDOM;
notation TARSKI, XBOOLE_0, ZFMISC_1, SUBSET_1, NUMBERS, RELAT_1, FUNCT_1,
FUNCT_2, BINOP_1, DOMAIN_1, FUNCOP_1, STRUCT_0, RLVECT_1, REAL_1,
VECTSP_1, FRAENKEL;
constructors BINOP_1, DOMAIN_1, FUNCOP_1, REAL_1, VECTSP_1, FRAENKEL,
MEMBERED, XBOOLE_0;
clusters SUBSET_1, RLVECT_1, VECTSP_1, FUNCOP_1, RELSET_1, MEMBERED, ZFMISC_1,
XBOOLE_0;
requirements NUMERALS, SUBSET, BOOLE, ARITHM;
begin
reserve x1,x2,z for set;
reserve A,B for non empty set;
definition let A,B; let F be BinOp of Funcs(A,B);
let f,g be Element of Funcs(A,B);
redefine func F.(f,g) -> Element of Funcs(A,B);
end;
definition let A,B,C,D be non empty set;
let F be Function of [:C,D:],Funcs(A,B);
let cd be Element of [:C,D:];
redefine func F.cd -> Element of Funcs(A,B);
end;
definition let A,B be non empty set; let f be Function of A,B;
func @f -> Element of Funcs(A,B) equals
:: FUNCSDOM:def 1
f;
end;
reserve f,g,h for Element of Funcs(A,REAL);
definition let X,Z be non empty set;
let F be (BinOp of X), f,g be Function of Z,X;
redefine func F.:(f,g) -> Element of Funcs(Z,X);
end;
definition let X,Z be non empty set;
let F be (BinOp of X),a be Element of X,f be Function of Z,X;
redefine func F[;](a,f) -> Element of Funcs(Z,X);
end;
definition let A; func RealFuncAdd(A) -> BinOp of Funcs(A,REAL)
means
:: FUNCSDOM:def 2
for f,g being Element of Funcs(A,REAL) holds
it.(f,g) = addreal.:(f,g);
end;
definition let A; func RealFuncMult(A) -> BinOp of Funcs(A,REAL)
means
:: FUNCSDOM:def 3
for f,g being Element of Funcs(A,REAL) holds
it.(f,g) = multreal.:(f,g);
end;
definition let A;
func RealFuncExtMult(A) ->
Function of [:REAL,Funcs(A,REAL):],Funcs(A,REAL)
means
:: FUNCSDOM:def 4
for a being Real,
f being (Element of Funcs(A,REAL)), x being (Element of A) holds
(it.[a,f]).x = a*(f.x);
end;
definition let A;
func RealFuncZero(A) -> Element of Funcs(A,REAL) equals
:: FUNCSDOM:def 5
A --> 0;
end;
definition let A;
func RealFuncUnit(A) -> Element of Funcs(A,REAL) equals
:: FUNCSDOM:def 6
A --> 1;
end;
canceled 9;
theorem :: FUNCSDOM:10
h = (RealFuncAdd(A)).(f,g) iff
for x being Element of A holds h.x = f.x + g.x;
theorem :: FUNCSDOM:11
h = (RealFuncMult(A)).(f,g) iff
for x being Element of A holds h.x = f.x * g.x;
theorem :: FUNCSDOM:12
for x being Element of A holds (RealFuncUnit(A)).x = 1;
theorem :: FUNCSDOM:13
for x being Element of A holds (RealFuncZero(A)).x = 0;
theorem :: FUNCSDOM:14
RealFuncZero(A) <> RealFuncUnit(A);
reserve a,b for Real;
theorem :: FUNCSDOM:15
h = (RealFuncExtMult(A)).[a,f] iff
for x being Element of A holds h.x = a*(f.x);
reserve u,v,w for VECTOR of RLSStruct(#Funcs(A,REAL),
(RealFuncZero(A)),RealFuncAdd(A),RealFuncExtMult(A)#);
theorem :: FUNCSDOM:16
(RealFuncAdd(A)).(f,g) = (RealFuncAdd(A)).(g,f);
theorem :: FUNCSDOM:17
(RealFuncAdd(A)).(f,(RealFuncAdd(A)).(g,h)) =
(RealFuncAdd(A)).((RealFuncAdd(A)).(f,g),h);
theorem :: FUNCSDOM:18
(RealFuncMult(A)).(f,g) = (RealFuncMult(A)).(g,f);
theorem :: FUNCSDOM:19
(RealFuncMult(A)).(f,(RealFuncMult(A)).(g,h)) =
(RealFuncMult(A)).((RealFuncMult(A)).(f,g),h);
theorem :: FUNCSDOM:20
(RealFuncMult(A)).(RealFuncUnit(A),f) = f;
theorem :: FUNCSDOM:21
(RealFuncAdd(A)).(RealFuncZero(A),f) = f;
theorem :: FUNCSDOM:22
(RealFuncAdd(A)).(f,(RealFuncExtMult(A)).[-1,f]) = RealFuncZero(A);
theorem :: FUNCSDOM:23
(RealFuncExtMult(A)).[1,f] = f;
theorem :: FUNCSDOM:24
(RealFuncExtMult(A)).[a,(RealFuncExtMult(A)).[b,f]] =
(RealFuncExtMult(A)).[a*b,f];
theorem :: FUNCSDOM:25
(RealFuncAdd(A)).
((RealFuncExtMult(A)).[a,f],(RealFuncExtMult(A)).[b,f])
= (RealFuncExtMult(A)).[a+b,f];
theorem :: FUNCSDOM:26
(RealFuncMult(A)).(f,(RealFuncAdd(A)).(g,h)) =
(RealFuncAdd(A)).((RealFuncMult(A)).(f,g),(RealFuncMult(A)).(f,h));
theorem :: FUNCSDOM:27
(RealFuncMult(A)).((RealFuncExtMult(A)).[a,f],g) =
(RealFuncExtMult(A)).[a,(RealFuncMult(A)).(f,g)];
theorem :: FUNCSDOM:28
ex f,g st
(for z st z in A holds
(z=x1 implies f.z = 1) & (z<>x1 implies f.z = 0)) &
(for z st z in A holds
(z=x1 implies g.z = 0) & (z<>x1 implies g.z = 1));
theorem :: FUNCSDOM:29
(x1 in A & x2 in A & x1<>x2) &
(for z st z in A holds
(z=x1 implies f.z = 1) & (z<>x1 implies f.z = 0)) &
(for z st z in A holds
(z=x1 implies g.z = 0) & (z<>x1 implies g.z = 1)) implies
(for a,b st (RealFuncAdd(A)).
((RealFuncExtMult(A)).[a,f],(RealFuncExtMult(A)).[b,g]) = RealFuncZero(A)
holds a=0 & b=0);
theorem :: FUNCSDOM:30
x1 in A & x2 in A & x1<>x2 implies
(ex f,g st
for a,b st (RealFuncAdd(A)).
((RealFuncExtMult(A)).[a,f],(RealFuncExtMult(A)).[b,g]) = RealFuncZero(A)
holds a=0 & b=0);
theorem :: FUNCSDOM:31
A = {x1,x2} & x1<>x2 &
(for z st z in A holds
(z=x1 implies f.z = 1) & (z<>x1 implies f.z = 0)) &
(for z st z in A holds
(z=x1 implies g.z = 0) & (z<>x1 implies g.z = 1))
implies for h holds
(ex a,b st h = (RealFuncAdd(A)).
((RealFuncExtMult(A)).[a,f],(RealFuncExtMult(A)).[b,g]));
theorem :: FUNCSDOM:32
A = {x1,x2} & x1<>x2 implies ex f,g st
(for h holds
(ex a,b st h =
(RealFuncAdd(A)).
((RealFuncExtMult(A)).[a,f],(RealFuncExtMult(A)).[b,g])));
theorem :: FUNCSDOM:33
(A = {x1,x2} & x1<>x2) implies (ex f,g st
(for a,b st
(RealFuncAdd(A)).((RealFuncExtMult(A)).[a,f],
(RealFuncExtMult(A)).[b,g]) = RealFuncZero(A)
holds a=0 & b=0) &
(for h holds
(ex a,b st h = (RealFuncAdd(A)).
((RealFuncExtMult(A)).[a,f],(RealFuncExtMult(A)).[b,g]))));
theorem :: FUNCSDOM:34
RLSStruct(#Funcs(A,REAL),
(RealFuncZero(A)),RealFuncAdd(A),RealFuncExtMult(A)#)
is RealLinearSpace;
definition let A;
func RealVectSpace(A) -> strict RealLinearSpace equals
:: FUNCSDOM:def 7
RLSStruct(#Funcs(A,REAL),
(RealFuncZero(A)),RealFuncAdd(A),RealFuncExtMult(A)#);
end;
canceled 2;
theorem :: FUNCSDOM:37
ex V being strict RealLinearSpace st
(ex u,v being VECTOR of V st
(for a,b st a*u + b*v = 0.V holds a=0 & b=0) &
(for w being VECTOR of V ex a,b st w = a*u + b*v));
definition
let A;
canceled 4;
func RRing(A) -> strict doubleLoopStr equals
:: FUNCSDOM:def 12
doubleLoopStr(#Funcs(A,REAL),RealFuncAdd(A),RealFuncMult(A),
(RealFuncUnit(A)),(RealFuncZero(A))#);
end;
definition
let A;
cluster RRing A -> non empty;
end;
canceled 4;
theorem :: FUNCSDOM:42
for x,y,z being Element of RRing(A) holds
x+y = y+x &
(x+y)+z = x+(y+z) &
x+(0.RRing(A)) = x &
(ex t being Element of RRing(A) st
x+t=(0.RRing(A))) &
x*y = y*x &
(x*y)*z = x*(y*z) &
x*(1_ RRing(A)) = x &
(1_ RRing(A))*x = x &
x*(y+z) = x*y + x*z &
(y+z)*x = y*x + z*x;
definition
cluster strict Abelian add-associative right_zeroed right_complementable
associative commutative right_unital right-distributive
(non empty doubleLoopStr);
end;
definition
mode Ring is Abelian add-associative right_zeroed right_complementable
associative left_unital right_unital
distributive (non empty doubleLoopStr);
end;
theorem :: FUNCSDOM:43
RRing(A) is commutative Ring;
definition
struct(doubleLoopStr,RLSStruct) AlgebraStr (# carrier -> set,
mult,add -> (BinOp of the carrier),
Mult -> (Function of [:REAL,the carrier:],the carrier),
unity,Zero -> Element of the carrier #);
end;
definition
cluster non empty AlgebraStr;
end;
definition let A;
canceled 6;
func RAlgebra(A) -> strict AlgebraStr equals
:: FUNCSDOM:def 19
AlgebraStr(#Funcs(A,REAL),RealFuncMult(A),RealFuncAdd(A),
RealFuncExtMult(A),(RealFuncUnit(A)),(RealFuncZero(A))#);
end;
definition let A;
cluster RAlgebra(A) -> non empty;
end;
canceled 5;
theorem :: FUNCSDOM:49
for x,y,z being Element of RAlgebra(A)
for a,b holds
x+y = y+x &
(x+y)+z = x+(y+z) &
x+(0.RAlgebra(A)) = x &
(ex t being Element of RAlgebra(A) st
x+t=(0.RAlgebra(A))) &
x*y = y*x &
(x*y)*z = x*(y*z) &
x*(1_ RAlgebra(A)) = x &
x*(y+z) = x*y + x*z &
a*(x*y) = (a*x)*y &
a*(x+y) = a*x + a*y &
(a+b)*x = a*x + b*x &
(a*b)*x = a*(b*x);
definition let IT be non empty AlgebraStr;
attr IT is Algebra-like means
:: FUNCSDOM:def 20
for x,y,z being Element of IT
for a,b holds
x*(1_ IT) = x &
x*(y+z) = x*y + x*z &
a*(x*y) = (a*x)*y &
a*(x+y) = a*x + a*y &
(a+b)*x = a*x + b*x &
(a*b)*x = a*(b*x);
end;
definition
cluster strict Abelian add-associative right_zeroed right_complementable
commutative associative Algebra-like (non empty AlgebraStr);
end;
definition
mode Algebra is Abelian add-associative right_zeroed right_complementable
commutative associative Algebra-like (non empty AlgebraStr);
end;
theorem :: FUNCSDOM:50
RAlgebra(A) is Algebra;
Back to top