:: FDIFF_3 semantic presentation

theorem Th1: :: FDIFF_3:1
for b1 being PartFunc of REAL , REAL
for b2 being Real st ex b3 being Real st
( b3 > 0 & [.(b2 - b3),b2.] c= dom b1 ) holds
ex b3 being convergent_to_0 Real_Sequenceex b4 being constant Real_Sequence st
( rng b4 = {b2} & rng (b3 + b4) c= dom b1 & ( for b5 being Nat holds b3 . b5 < 0 ) )
proof end;

theorem Th2: :: FDIFF_3:2
for b1 being PartFunc of REAL , REAL
for b2 being Real st ex b3 being Real st
( b3 > 0 & [.b2,(b2 + b3).] c= dom b1 ) holds
ex b3 being convergent_to_0 Real_Sequenceex b4 being constant Real_Sequence st
( rng b4 = {b2} & rng (b3 + b4) c= dom b1 & ( for b5 being Nat holds b3 . b5 > 0 ) )
proof end;

theorem Th3: :: FDIFF_3:3
for b1 being PartFunc of REAL , REAL
for b2 being Real st ( for b3 being convergent_to_0 Real_Sequence
for b4 being constant Real_Sequence st rng b4 = {b2} & rng (b3 + b4) c= dom b1 & ( for b5 being Nat holds b3 . b5 < 0 ) holds
(b3 " ) (#) ((b1 * (b3 + b4)) - (b1 * b4)) is convergent ) & {b2} c= dom b1 holds
for b3, b4 being convergent_to_0 Real_Sequence
for b5 being constant Real_Sequence st rng b5 = {b2} & rng (b3 + b5) c= dom b1 & ( for b6 being Nat holds b3 . b6 < 0 ) & rng (b4 + b5) c= dom b1 & ( for b6 being Nat holds b4 . b6 < 0 ) holds
lim ((b3 " ) (#) ((b1 * (b3 + b5)) - (b1 * b5))) = lim ((b4 " ) (#) ((b1 * (b4 + b5)) - (b1 * b5)))
proof end;

theorem Th4: :: FDIFF_3:4
for b1 being PartFunc of REAL , REAL
for b2 being Real st ( for b3 being convergent_to_0 Real_Sequence
for b4 being constant Real_Sequence st rng b4 = {b2} & rng (b3 + b4) c= dom b1 & ( for b5 being Nat holds b3 . b5 > 0 ) holds
(b3 " ) (#) ((b1 * (b3 + b4)) - (b1 * b4)) is convergent ) & {b2} c= dom b1 holds
for b3, b4 being convergent_to_0 Real_Sequence
for b5 being constant Real_Sequence st rng b5 = {b2} & rng (b3 + b5) c= dom b1 & rng (b4 + b5) c= dom b1 & ( for b6 being Nat holds b3 . b6 > 0 ) & ( for b6 being Nat holds b4 . b6 > 0 ) holds
lim ((b3 " ) (#) ((b1 * (b3 + b5)) - (b1 * b5))) = lim ((b4 " ) (#) ((b1 * (b4 + b5)) - (b1 * b5)))
proof end;

definition
let c1 be PartFunc of REAL , REAL ;
let c2 be Real;
pred c1 is_Lcontinuous_in c2 means :Def1: :: FDIFF_3:def 1
( a2 in dom a1 & ( for b1 being Real_Sequence st rng b1 c= (left_open_halfline a2) /\ (dom a1) & b1 is convergent & lim b1 = a2 holds
( a1 * b1 is convergent & a1 . a2 = lim (a1 * b1) ) ) );
pred c1 is_Rcontinuous_in c2 means :Def2: :: FDIFF_3:def 2
( a2 in dom a1 & ( for b1 being Real_Sequence st rng b1 c= (right_open_halfline a2) /\ (dom a1) & b1 is convergent & lim b1 = a2 holds
( a1 * b1 is convergent & a1 . a2 = lim (a1 * b1) ) ) );
pred c1 is_right_differentiable_in c2 means :Def3: :: FDIFF_3:def 3
( ex b1 being Real st
( b1 > 0 & [.a2,(a2 + b1).] c= dom a1 ) & ( for b1 being convergent_to_0 Real_Sequence
for b2 being constant Real_Sequence st rng b2 = {a2} & rng (b1 + b2) c= dom a1 & ( for b3 being Nat holds b1 . b3 > 0 ) holds
(b1 " ) (#) ((a1 * (b1 + b2)) - (a1 * b2)) is convergent ) );
pred c1 is_left_differentiable_in c2 means :Def4: :: FDIFF_3:def 4
( ex b1 being Real st
( b1 > 0 & [.(a2 - b1),a2.] c= dom a1 ) & ( for b1 being convergent_to_0 Real_Sequence
for b2 being constant Real_Sequence st rng b2 = {a2} & rng (b1 + b2) c= dom a1 & ( for b3 being Nat holds b1 . b3 < 0 ) holds
(b1 " ) (#) ((a1 * (b1 + b2)) - (a1 * b2)) is convergent ) );
end;

:: deftheorem Def1 defines is_Lcontinuous_in FDIFF_3:def 1 :
for b1 being PartFunc of REAL , REAL
for b2 being Real holds
( b1 is_Lcontinuous_in b2 iff ( b2 in dom b1 & ( for b3 being Real_Sequence st rng b3 c= (left_open_halfline b2) /\ (dom b1) & b3 is convergent & lim b3 = b2 holds
( b1 * b3 is convergent & b1 . b2 = lim (b1 * b3) ) ) ) );

:: deftheorem Def2 defines is_Rcontinuous_in FDIFF_3:def 2 :
for b1 being PartFunc of REAL , REAL
for b2 being Real holds
( b1 is_Rcontinuous_in b2 iff ( b2 in dom b1 & ( for b3 being Real_Sequence st rng b3 c= (right_open_halfline b2) /\ (dom b1) & b3 is convergent & lim b3 = b2 holds
( b1 * b3 is convergent & b1 . b2 = lim (b1 * b3) ) ) ) );

:: deftheorem Def3 defines is_right_differentiable_in FDIFF_3:def 3 :
for b1 being PartFunc of REAL , REAL
for b2 being Real holds
( b1 is_right_differentiable_in b2 iff ( ex b3 being Real st
( b3 > 0 & [.b2,(b2 + b3).] c= dom b1 ) & ( for b3 being convergent_to_0 Real_Sequence
for b4 being constant Real_Sequence st rng b4 = {b2} & rng (b3 + b4) c= dom b1 & ( for b5 being Nat holds b3 . b5 > 0 ) holds
(b3 " ) (#) ((b1 * (b3 + b4)) - (b1 * b4)) is convergent ) ) );

:: deftheorem Def4 defines is_left_differentiable_in FDIFF_3:def 4 :
for b1 being PartFunc of REAL , REAL
for b2 being Real holds
( b1 is_left_differentiable_in b2 iff ( ex b3 being Real st
( b3 > 0 & [.(b2 - b3),b2.] c= dom b1 ) & ( for b3 being convergent_to_0 Real_Sequence
for b4 being constant Real_Sequence st rng b4 = {b2} & rng (b3 + b4) c= dom b1 & ( for b5 being Nat holds b3 . b5 < 0 ) holds
(b3 " ) (#) ((b1 * (b3 + b4)) - (b1 * b4)) is convergent ) ) );

theorem Th5: :: FDIFF_3:5
for b1 being PartFunc of REAL , REAL
for b2 being Real st b1 is_left_differentiable_in b2 holds
b1 is_Lcontinuous_in b2
proof end;

theorem Th6: :: FDIFF_3:6
for b1 being PartFunc of REAL , REAL
for b2, b3 being Real st b1 is_Lcontinuous_in b2 & b1 . b2 <> b3 & ex b4 being Real st
( b4 > 0 & [.(b2 - b4),b2.] c= dom b1 ) holds
ex b4 being Real st
( b4 > 0 & [.(b2 - b4),b2.] c= dom b1 & ( for b5 being Real st b5 in [.(b2 - b4),b2.] holds
b1 . b5 <> b3 ) )
proof end;

theorem Th7: :: FDIFF_3:7
for b1 being PartFunc of REAL , REAL
for b2 being Real st b1 is_right_differentiable_in b2 holds
b1 is_Rcontinuous_in b2
proof end;

theorem Th8: :: FDIFF_3:8
for b1 being PartFunc of REAL , REAL
for b2, b3 being Real st b1 is_Rcontinuous_in b2 & b1 . b2 <> b3 & ex b4 being Real st
( b4 > 0 & [.b2,(b2 + b4).] c= dom b1 ) holds
ex b4 being Real st
( b4 > 0 & [.b2,(b2 + b4).] c= dom b1 & ( for b5 being Real st b5 in [.b2,(b2 + b4).] holds
b1 . b5 <> b3 ) )
proof end;

definition
let c1 be Real;
let c2 be PartFunc of REAL , REAL ;
assume E13: c2 is_left_differentiable_in c1 ;
func Ldiff c2,c1 -> Real means :Def5: :: FDIFF_3:def 5
for b1 being convergent_to_0 Real_Sequence
for b2 being constant Real_Sequence st rng b2 = {a1} & rng (b1 + b2) c= dom a2 & ( for b3 being Nat holds b1 . b3 < 0 ) holds
a3 = lim ((b1 " ) (#) ((a2 * (b1 + b2)) - (a2 * b2)));
existence
ex b1 being Real st
for b2 being convergent_to_0 Real_Sequence
for b3 being constant Real_Sequence st rng b3 = {c1} & rng (b2 + b3) c= dom c2 & ( for b4 being Nat holds b2 . b4 < 0 ) holds
b1 = lim ((b2 " ) (#) ((c2 * (b2 + b3)) - (c2 * b3)))
proof end;
uniqueness
for b1, b2 being Real st ( for b3 being convergent_to_0 Real_Sequence
for b4 being constant Real_Sequence st rng b4 = {c1} & rng (b3 + b4) c= dom c2 & ( for b5 being Nat holds b3 . b5 < 0 ) holds
b1 = lim ((b3 " ) (#) ((c2 * (b3 + b4)) - (c2 * b4))) ) & ( for b3 being convergent_to_0 Real_Sequence
for b4 being constant Real_Sequence st rng b4 = {c1} & rng (b3 + b4) c= dom c2 & ( for b5 being Nat holds b3 . b5 < 0 ) holds
b2 = lim ((b3 " ) (#) ((c2 * (b3 + b4)) - (c2 * b4))) ) holds
b1 = b2
proof end;
end;

:: deftheorem Def5 defines Ldiff FDIFF_3:def 5 :
for b1 being Real
for b2 being PartFunc of REAL , REAL st b2 is_left_differentiable_in b1 holds
for b3 being Real holds
( b3 = Ldiff b2,b1 iff for b4 being convergent_to_0 Real_Sequence
for b5 being constant Real_Sequence st rng b5 = {b1} & rng (b4 + b5) c= dom b2 & ( for b6 being Nat holds b4 . b6 < 0 ) holds
b3 = lim ((b4 " ) (#) ((b2 * (b4 + b5)) - (b2 * b5))) );

definition
let c1 be Real;
let c2 be PartFunc of REAL , REAL ;
assume E14: c2 is_right_differentiable_in c1 ;
func Rdiff c2,c1 -> Real means :Def6: :: FDIFF_3:def 6
for b1 being convergent_to_0 Real_Sequence
for b2 being constant Real_Sequence st rng b2 = {a1} & rng (b1 + b2) c= dom a2 & ( for b3 being Nat holds b1 . b3 > 0 ) holds
a3 = lim ((b1 " ) (#) ((a2 * (b1 + b2)) - (a2 * b2)));
existence
ex b1 being Real st
for b2 being convergent_to_0 Real_Sequence
for b3 being constant Real_Sequence st rng b3 = {c1} & rng (b2 + b3) c= dom c2 & ( for b4 being Nat holds b2 . b4 > 0 ) holds
b1 = lim ((b2 " ) (#) ((c2 * (b2 + b3)) - (c2 * b3)))
proof end;
uniqueness
for b1, b2 being Real st ( for b3 being convergent_to_0 Real_Sequence
for b4 being constant Real_Sequence st rng b4 = {c1} & rng (b3 + b4) c= dom c2 & ( for b5 being Nat holds b3 . b5 > 0 ) holds
b1 = lim ((b3 " ) (#) ((c2 * (b3 + b4)) - (c2 * b4))) ) & ( for b3 being convergent_to_0 Real_Sequence
for b4 being constant Real_Sequence st rng b4 = {c1} & rng (b3 + b4) c= dom c2 & ( for b5 being Nat holds b3 . b5 > 0 ) holds
b2 = lim ((b3 " ) (#) ((c2 * (b3 + b4)) - (c2 * b4))) ) holds
b1 = b2
proof end;
end;

:: deftheorem Def6 defines Rdiff FDIFF_3:def 6 :
for b1 being Real
for b2 being PartFunc of REAL , REAL st b2 is_right_differentiable_in b1 holds
for b3 being Real holds
( b3 = Rdiff b2,b1 iff for b4 being convergent_to_0 Real_Sequence
for b5 being constant Real_Sequence st rng b5 = {b1} & rng (b4 + b5) c= dom b2 & ( for b6 being Nat holds b4 . b6 > 0 ) holds
b3 = lim ((b4 " ) (#) ((b2 * (b4 + b5)) - (b2 * b5))) );

theorem Th9: :: FDIFF_3:9
for b1 being PartFunc of REAL , REAL
for b2, b3 being Real holds
( b1 is_left_differentiable_in b2 & Ldiff b1,b2 = b3 iff ( ex b4 being Real st
( 0 < b4 & [.(b2 - b4),b2.] c= dom b1 ) & ( for b4 being convergent_to_0 Real_Sequence
for b5 being constant Real_Sequence st rng b5 = {b2} & rng (b4 + b5) c= dom b1 & ( for b6 being Nat holds b4 . b6 < 0 ) holds
( (b4 " ) (#) ((b1 * (b4 + b5)) - (b1 * b5)) is convergent & lim ((b4 " ) (#) ((b1 * (b4 + b5)) - (b1 * b5))) = b3 ) ) ) )
proof end;

theorem Th10: :: FDIFF_3:10
for b1, b2 being PartFunc of REAL , REAL
for b3 being Real st b1 is_left_differentiable_in b3 & b2 is_left_differentiable_in b3 holds
( b1 + b2 is_left_differentiable_in b3 & Ldiff (b1 + b2),b3 = (Ldiff b1,b3) + (Ldiff b2,b3) )
proof end;

theorem Th11: :: FDIFF_3:11
for b1, b2 being PartFunc of REAL , REAL
for b3 being Real st b1 is_left_differentiable_in b3 & b2 is_left_differentiable_in b3 holds
( b1 - b2 is_left_differentiable_in b3 & Ldiff (b1 - b2),b3 = (Ldiff b1,b3) - (Ldiff b2,b3) )
proof end;

theorem Th12: :: FDIFF_3:12
for b1, b2 being PartFunc of REAL , REAL
for b3 being Real st b1 is_left_differentiable_in b3 & b2 is_left_differentiable_in b3 holds
( b1 (#) b2 is_left_differentiable_in b3 & Ldiff (b1 (#) b2),b3 = ((Ldiff b1,b3) * (b2 . b3)) + ((Ldiff b2,b3) * (b1 . b3)) )
proof end;

Lemma16: for b1, b2 being PartFunc of REAL , REAL
for b3 being Real st b1 is_left_differentiable_in b3 & b2 is_left_differentiable_in b3 & ex b4 being Real st
( b4 > 0 & ( for b5 being Real st b5 in dom b2 & b5 in [.(b3 - b4),b3.] holds
b2 . b5 <> 0 ) ) holds
( b1 / b2 is_left_differentiable_in b3 & Ldiff (b1 / b2),b3 = (((Ldiff b1,b3) * (b2 . b3)) - ((Ldiff b2,b3) * (b1 . b3))) / ((b2 . b3) ^2 ) )
proof end;

theorem Th13: :: FDIFF_3:13
for b1, b2 being PartFunc of REAL , REAL
for b3 being Real st b1 is_left_differentiable_in b3 & b2 is_left_differentiable_in b3 & b2 . b3 <> 0 holds
( b1 / b2 is_left_differentiable_in b3 & Ldiff (b1 / b2),b3 = (((Ldiff b1,b3) * (b2 . b3)) - ((Ldiff b2,b3) * (b1 . b3))) / ((b2 . b3) ^2 ) )
proof end;

Lemma17: for b1 being PartFunc of REAL , REAL
for b2 being Real st b1 is_left_differentiable_in b2 & ex b3 being Real st
( b3 > 0 & ( for b4 being Real st b4 in dom b1 & b4 in [.(b2 - b3),b2.] holds
b1 . b4 <> 0 ) ) holds
( b1 ^ is_left_differentiable_in b2 & Ldiff (b1 ^ ),b2 = - ((Ldiff b1,b2) / ((b1 . b2) ^2 )) )
proof end;

theorem Th14: :: FDIFF_3:14
for b1 being PartFunc of REAL , REAL
for b2 being Real st b1 is_left_differentiable_in b2 & b1 . b2 <> 0 holds
( b1 ^ is_left_differentiable_in b2 & Ldiff (b1 ^ ),b2 = - ((Ldiff b1,b2) / ((b1 . b2) ^2 )) )
proof end;

theorem Th15: :: FDIFF_3:15
for b1 being PartFunc of REAL , REAL
for b2, b3 being Real holds
( b1 is_right_differentiable_in b2 & Rdiff b1,b2 = b3 iff ( ex b4 being Real st
( b4 > 0 & [.b2,(b2 + b4).] c= dom b1 ) & ( for b4 being convergent_to_0 Real_Sequence
for b5 being constant Real_Sequence st rng b5 = {b2} & rng (b4 + b5) c= dom b1 & ( for b6 being Nat holds b4 . b6 > 0 ) holds
( (b4 " ) (#) ((b1 * (b4 + b5)) - (b1 * b5)) is convergent & lim ((b4 " ) (#) ((b1 * (b4 + b5)) - (b1 * b5))) = b3 ) ) ) )
proof end;

theorem Th16: :: FDIFF_3:16
for b1, b2 being PartFunc of REAL , REAL
for b3 being Real st b1 is_right_differentiable_in b3 & b2 is_right_differentiable_in b3 holds
( b1 + b2 is_right_differentiable_in b3 & Rdiff (b1 + b2),b3 = (Rdiff b1,b3) + (Rdiff b2,b3) )
proof end;

theorem Th17: :: FDIFF_3:17
for b1, b2 being PartFunc of REAL , REAL
for b3 being Real st b1 is_right_differentiable_in b3 & b2 is_right_differentiable_in b3 holds
( b1 - b2 is_right_differentiable_in b3 & Rdiff (b1 - b2),b3 = (Rdiff b1,b3) - (Rdiff b2,b3) )
proof end;

theorem Th18: :: FDIFF_3:18
for b1, b2 being PartFunc of REAL , REAL
for b3 being Real st b1 is_right_differentiable_in b3 & b2 is_right_differentiable_in b3 holds
( b1 (#) b2 is_right_differentiable_in b3 & Rdiff (b1 (#) b2),b3 = ((Rdiff b1,b3) * (b2 . b3)) + ((Rdiff b2,b3) * (b1 . b3)) )
proof end;

Lemma19: for b1, b2 being PartFunc of REAL , REAL
for b3 being Real st b1 is_right_differentiable_in b3 & b2 is_right_differentiable_in b3 & ex b4 being Real st
( b4 > 0 & ( for b5 being Real st b5 in dom b2 & b5 in [.b3,(b3 + b4).] holds
b2 . b5 <> 0 ) ) holds
( b1 / b2 is_right_differentiable_in b3 & Rdiff (b1 / b2),b3 = (((Rdiff b1,b3) * (b2 . b3)) - ((Rdiff b2,b3) * (b1 . b3))) / ((b2 . b3) ^2 ) )
proof end;

theorem Th19: :: FDIFF_3:19
for b1, b2 being PartFunc of REAL , REAL
for b3 being Real st b1 is_right_differentiable_in b3 & b2 is_right_differentiable_in b3 & b2 . b3 <> 0 holds
( b1 / b2 is_right_differentiable_in b3 & Rdiff (b1 / b2),b3 = (((Rdiff b1,b3) * (b2 . b3)) - ((Rdiff b2,b3) * (b1 . b3))) / ((b2 . b3) ^2 ) )
proof end;

Lemma20: for b1 being PartFunc of REAL , REAL
for b2 being Real st b1 is_right_differentiable_in b2 & ex b3 being Real st
( b3 > 0 & ( for b4 being Real st b4 in dom b1 & b4 in [.b2,(b2 + b3).] holds
b1 . b4 <> 0 ) ) holds
( b1 ^ is_right_differentiable_in b2 & Rdiff (b1 ^ ),b2 = - ((Rdiff b1,b2) / ((b1 . b2) ^2 )) )
proof end;

theorem Th20: :: FDIFF_3:20
for b1 being PartFunc of REAL , REAL
for b2 being Real st b1 is_right_differentiable_in b2 & b1 . b2 <> 0 holds
( b1 ^ is_right_differentiable_in b2 & Rdiff (b1 ^ ),b2 = - ((Rdiff b1,b2) / ((b1 . b2) ^2 )) )
proof end;

theorem Th21: :: FDIFF_3:21
for b1 being PartFunc of REAL , REAL
for b2 being Real st b1 is_right_differentiable_in b2 & b1 is_left_differentiable_in b2 & Rdiff b1,b2 = Ldiff b1,b2 holds
( b1 is_differentiable_in b2 & diff b1,b2 = Rdiff b1,b2 & diff b1,b2 = Ldiff b1,b2 )
proof end;

theorem Th22: :: FDIFF_3:22
for b1 being PartFunc of REAL , REAL
for b2 being Real st b1 is_differentiable_in b2 holds
( b1 is_right_differentiable_in b2 & b1 is_left_differentiable_in b2 & diff b1,b2 = Rdiff b1,b2 & diff b1,b2 = Ldiff b1,b2 )
proof end;