:: Basic properties of even and odd functions
:: by Bo Li and Yanhong Men
::
:: Received May 25, 2009
:: Copyright (c) 2009-2018 Association of Mizar Users
:: (Stowarzyszenie Uzytkownikow Mizara, Bialystok, Poland).
:: This code can be distributed under the GNU General Public Licence
:: version 3.0 or later, or the Creative Commons Attribution-ShareAlike
:: License version 3.0 or later, subject to the binding interpretation
:: detailed in file COPYING.interpretation.
:: See COPYING.GPL and COPYING.CC-BY-SA for the full text of these
:: licenses, or see http://www.gnu.org/licenses/gpl.html and
:: http://creativecommons.org/licenses/by-sa/3.0/.
environ
vocabularies NUMBERS, REAL_1, XCMPLX_0, ARYTM_1, SUBSET_1, RELAT_1, XBOOLE_0,
MEMBERED, PARTFUN1, FUNCT_1, ABIAN, TARSKI, ARYTM_3, CARD_1, COMPLEX1,
VALUED_1, SQUARE_1, ABSVALUE, XXREAL_0, EUCLID, SIN_COS, SIN_COS2,
XXREAL_1, SIN_COS9, SIN_COS4, FUNCT_8, FUNCT_7;
notations COMPLEX1, XCMPLX_0, ORDINAL1, NUMBERS, XREAL_0, XXREAL_0, REAL_1,
MEMBERED, ABSVALUE, PARTFUN1, TARSKI, XBOOLE_0, SUBSET_1, EUCLID,
RELAT_1, FUNCT_1, FUNCT_2, SIN_COS, SIN_COS2, VALUED_1, RCOMP_1,
SIN_COS4, SQUARE_1, SIN_COS9, RELSET_1, FDIFF_9;
constructors REAL_1, RCOMP_1, EUCLID, SQUARE_1, ABSVALUE, SIN_COS2, RFUNCT_1,
RELSET_1, SIN_COS9, BINOP_2, SIN_COS, FDIFF_9, SIN_COS4, NEWTON;
registrations XXREAL_0, XREAL_0, XBOOLE_0, MEMBERED, XCMPLX_0, NUMBERS,
VALUED_0, FUNCT_1, RELAT_1, FUNCT_2, RELSET_1, SIN_COS9, ORDINAL1;
requirements REAL, NUMERALS, SUBSET, ARITHM, BOOLE;
begin :: Even and odd functions
reserve x, r for Real;
definition
let A be set;
attr A is symmetrical means
:: FUNCT_8:def 1
for x being Complex st x in A holds -x in A;
end;
registration
cluster symmetrical for Subset of COMPLEX;
end;
registration
cluster symmetrical for Subset of REAL;
end;
reserve A for symmetrical Subset of COMPLEX;
definition
let R be Relation;
attr R is with_symmetrical_domain means
:: FUNCT_8:def 2
dom R is symmetrical;
end;
registration
cluster empty -> with_symmetrical_domain for Relation;
end;
registration
let R be with_symmetrical_domain Relation;
cluster dom R -> symmetrical;
end;
definition
let X,Y be complex-membered set;
let F be PartFunc of X, Y;
attr F is quasi_even means
:: FUNCT_8:def 3
for x st x in dom F & -x in dom F holds F. (-x)=F.x;
end;
definition
let X,Y be complex-membered set;
let F be PartFunc of X, Y;
attr F is even means
:: FUNCT_8:def 4
F is with_symmetrical_domain quasi_even;
end;
registration
let X,Y be complex-membered set;
cluster with_symmetrical_domain quasi_even -> even for PartFunc of X, Y;
cluster even -> with_symmetrical_domain quasi_even for PartFunc of X, Y;
end;
definition
let A be set;
let X,Y be complex-membered set;
let F be PartFunc of X, Y;
pred F is_even_on A means
:: FUNCT_8:def 5
A c= dom F & F|A is even;
end;
definition
let X,Y be complex-membered set;
let F be PartFunc of X, Y;
attr F is quasi_odd means
:: FUNCT_8:def 6
for x st x in dom F & -x in dom F holds F.( -x)=-F.x;
end;
definition
let X,Y be complex-membered set;
let F be PartFunc of X, Y;
attr F is odd means
:: FUNCT_8:def 7
F is with_symmetrical_domain quasi_odd;
end;
registration
let X,Y be complex-membered set;
cluster with_symmetrical_domain quasi_odd -> odd for PartFunc of X, Y;
cluster odd -> with_symmetrical_domain quasi_odd for PartFunc of X, Y;
end;
definition
let A be set;
let X,Y be complex-membered set;
let F be PartFunc of X, Y;
pred F is_odd_on A means
:: FUNCT_8:def 8
A c= dom F & F|A is odd;
end;
reserve F,G for PartFunc of REAL, REAL;
theorem :: FUNCT_8:1
F is_odd_on A iff (A c= dom F & for x st x in A holds F.x+F.(-x)=0);
theorem :: FUNCT_8:2
F is_even_on A iff (A c= dom F & for x st x in A holds F.x-F.(-x)=0);
theorem :: FUNCT_8:3
(F is_odd_on A & for x st x in A holds F.x<>0) implies (A c= dom F &
for x st x in A holds F.x / F.(-x)=-1);
theorem :: FUNCT_8:4
(A c= dom F & for x st x in A holds F.x / F.(-x)=-1) implies F is_odd_on A;
theorem :: FUNCT_8:5
(F is_even_on A & for x st x in A holds F.x<>0 ) implies (A c= dom F &
for x st x in A holds F.x / F.(-x)=1);
theorem :: FUNCT_8:6
(A c= dom F & for x st x in A holds F.x / F.(-x)=1) implies F is_even_on A;
theorem :: FUNCT_8:7
F is_even_on A & F is_odd_on A implies for x st x in A holds F.x=0;
theorem :: FUNCT_8:8
F is_even_on A implies for x st x in A holds F.x = F. |.x.|;
theorem :: FUNCT_8:9
(A c= dom F & for x st x in A holds F.x = F. |.x.|) implies F is_even_on A;
theorem :: FUNCT_8:10
F is_odd_on A & G is_odd_on A implies F + G is_odd_on A;
theorem :: FUNCT_8:11
F is_even_on A & G is_even_on A implies F + G is_even_on A;
theorem :: FUNCT_8:12
F is_odd_on A & G is_odd_on A implies F - G is_odd_on A;
theorem :: FUNCT_8:13
F is_even_on A & G is_even_on A implies F - G is_even_on A;
theorem :: FUNCT_8:14
F is_odd_on A implies r (#) F is_odd_on A;
theorem :: FUNCT_8:15
F is_even_on A implies r (#) F is_even_on A;
theorem :: FUNCT_8:16
F is_odd_on A implies -F is_odd_on A;
theorem :: FUNCT_8:17
F is_even_on A implies -F is_even_on A;
theorem :: FUNCT_8:18
F is_odd_on A implies F" is_odd_on A;
theorem :: FUNCT_8:19
F is_even_on A implies F" is_even_on A;
theorem :: FUNCT_8:20
F is_odd_on A implies |. F .| is_even_on A;
theorem :: FUNCT_8:21
F is_even_on A implies |. F .| is_even_on A;
theorem :: FUNCT_8:22
F is_odd_on A & G is_odd_on A implies F (#) G is_even_on A;
theorem :: FUNCT_8:23
F is_even_on A & G is_even_on A implies F (#) G is_even_on A;
theorem :: FUNCT_8:24
F is_even_on A & G is_odd_on A implies F (#) G is_odd_on A;
theorem :: FUNCT_8:25
F is_even_on A implies r+F is_even_on A;
theorem :: FUNCT_8:26
F is_even_on A implies F-r is_even_on A;
theorem :: FUNCT_8:27
F is_even_on A implies F^2 is_even_on A;
theorem :: FUNCT_8:28
F is_odd_on A implies F^2 is_even_on A;
theorem :: FUNCT_8:29
F is_odd_on A & G is_odd_on A implies F /" G is_even_on A;
theorem :: FUNCT_8:30
F is_even_on A & G is_even_on A implies F /" G is_even_on A;
theorem :: FUNCT_8:31
F is_odd_on A & G is_even_on A implies F /" G is_odd_on A;
theorem :: FUNCT_8:32
F is_even_on A & G is_odd_on A implies F /" G is_odd_on A;
theorem :: FUNCT_8:33
F is odd implies -F is odd;
theorem :: FUNCT_8:34
F is even implies -F is even;
theorem :: FUNCT_8:35
F is odd implies F" is odd;
theorem :: FUNCT_8:36
F is even implies F" is even;
theorem :: FUNCT_8:37
F is odd implies |. F .| is even;
theorem :: FUNCT_8:38
F is even implies |. F .| is even;
theorem :: FUNCT_8:39
F is odd implies F^2 is even;
theorem :: FUNCT_8:40
F is even implies F^2 is even;
theorem :: FUNCT_8:41
F is even implies r+F is even;
theorem :: FUNCT_8:42
F is even implies F-r is even;
theorem :: FUNCT_8:43
F is odd implies r (#) F is odd;
theorem :: FUNCT_8:44
F is even implies r (#) F is even;
theorem :: FUNCT_8:45
F is odd & G is odd & dom F /\ dom G is symmetrical implies F + G is odd;
theorem :: FUNCT_8:46
F is even & G is even & dom F /\ dom G is symmetrical implies F + G is even;
theorem :: FUNCT_8:47
F is odd & G is odd & dom F /\ dom G is symmetrical implies F - G is odd;
theorem :: FUNCT_8:48
F is even & G is even & dom F /\ dom G is symmetrical implies F - G is even;
theorem :: FUNCT_8:49
F is odd & G is odd & dom F /\ dom G is symmetrical implies F (#) G is even;
theorem :: FUNCT_8:50
F is even & G is even & dom F /\ dom G is symmetrical implies F (#) G is even
;
theorem :: FUNCT_8:51
F is even & G is odd & dom F /\ dom G is symmetrical implies F (#) G is odd;
theorem :: FUNCT_8:52
F is odd & G is odd & dom F /\ dom G is symmetrical implies F /" G is even;
theorem :: FUNCT_8:53
F is even & G is even & dom F /\ dom G is symmetrical implies F /" G is even;
theorem :: FUNCT_8:54
F is odd & G is even & dom F /\ dom G is symmetrical implies F /" G is odd;
theorem :: FUNCT_8:55
F is even & G is odd & dom F /\ dom G is symmetrical implies F /" G is odd;
begin :: Examples
definition
func signum -> Function of REAL, REAL means
:: FUNCT_8:def 9
for x being Real holds it .x = sgn x;
end;
theorem :: FUNCT_8:56
for x being Real st x > 0 holds signum.x = 1;
theorem :: FUNCT_8:57
for x being Real st x < 0 holds signum.x = -1;
theorem :: FUNCT_8:58
signum.0 = 0;
theorem :: FUNCT_8:59
for x being Real holds signum.(-x) = -signum.x;
theorem :: FUNCT_8:60
for A being symmetrical Subset of REAL holds signum is_odd_on A;
theorem :: FUNCT_8:61
for x being Real st x >= 0 holds absreal.x = x;
theorem :: FUNCT_8:62
for x being Real st x < 0 holds absreal.x = -x;
theorem :: FUNCT_8:63
for x being Real holds absreal.(-x) = absreal.x;
theorem :: FUNCT_8:64
for A being symmetrical Subset of REAL holds absreal is_even_on A;
theorem :: FUNCT_8:65
for A being symmetrical Subset of REAL holds sin is_odd_on A;
theorem :: FUNCT_8:66
for A being symmetrical Subset of REAL holds cos is_even_on A;
registration
cluster sin -> odd;
end;
registration
cluster cos -> even;
end;
theorem :: FUNCT_8:67
for A being symmetrical Subset of REAL holds sinh is_odd_on A;
theorem :: FUNCT_8:68
for A being symmetrical Subset of REAL holds cosh is_even_on A;
registration
cluster sinh -> odd;
end;
registration
cluster cosh -> even;
end;
theorem :: FUNCT_8:69
A c= ].-PI/2,PI/2.[ implies tan is_odd_on A;
theorem :: FUNCT_8:70
A c= dom tan implies tan is_odd_on A;
theorem :: FUNCT_8:71
A c= dom cot implies cot is_odd_on A;
theorem :: FUNCT_8:72
A c= [.-1,1.] implies arctan is_odd_on A;
theorem :: FUNCT_8:73
for A being symmetrical Subset of REAL holds |. sin .| is_even_on A;
theorem :: FUNCT_8:74
for A being symmetrical Subset of REAL holds |. cos .| is_even_on A;
theorem :: FUNCT_8:75
for A being symmetrical Subset of REAL holds sin" is_odd_on A;
theorem :: FUNCT_8:76
for A being symmetrical Subset of REAL holds cos" is_even_on A;
theorem :: FUNCT_8:77
for A being symmetrical Subset of REAL holds -sin is_odd_on A;
theorem :: FUNCT_8:78
for A being symmetrical Subset of REAL holds -cos is_even_on A;
theorem :: FUNCT_8:79
for A being symmetrical Subset of REAL holds sin^2 is_even_on A;
theorem :: FUNCT_8:80
for A being symmetrical Subset of REAL holds cos^2 is_even_on A;
reserve B for symmetrical Subset of REAL;
theorem :: FUNCT_8:81
B c= dom (sec) implies sec is_even_on B;
theorem :: FUNCT_8:82
(for x being Real st x in B holds cos.x<>0) implies sec is_even_on B;
theorem :: FUNCT_8:83
B c= dom (cosec) implies cosec is_odd_on B;
theorem :: FUNCT_8:84
(for x being Real st x in B holds sin.x<>0) implies cosec is_odd_on B;