DerivMul

Derivability of a product and of an inverse of a function from A to T where
  • A is any type with a distance and relation orders lt and le, and
  • T is a ring-like, generally ℝ.
The derivative of f.g is well-known as being f.g'+f'.g.
The derivative of f⁻¹ is well-knwon as being -f'/f².


From Stdlib Require Import Utf8 Arith.

Require Import Core.
Require Import RealLike.

Section a.

Context {T : Type}.
Context {ro : ring_like_op T}.
Context {rp : ring_like_prop T}.
Context {rl : real_like_prop T}.

Context {Hop : rngl_has_opp T = true}.
Context {Hor : rngl_is_ordered T = true}.

Theorem rngl_dist_mul_distr_r :
  rngl_has_inv_or_pdiv T = true
   a b c,
  (0 c)%L (rngl_dist a b × c = rngl_dist (a × c) (b × c))%L.

Definition is_limit_when_tending_to_neighbourhood_le (is_left : bool) {A B}
  (lt : A A Prop) (da : A A T) (db : B B T)
  (f : A B) (x₀ : A) (L : B) :=
  ( ε : T, 0 < ε
    η : T, (0 < η)%L x : A,
   (if is_left then lt x x₀ else lt x₀ x)
    da x x₀ < η
    db (f x) L ε)%L.

Theorem is_limit_lt_is_limit_le_iff :
  rngl_has_inv T = true
   is_left {A B} lt da db (f : A B) x₀ L,
  is_limit_when_tending_to_neighbourhood is_left lt da db f x₀ L
   is_limit_when_tending_to_neighbourhood_le is_left lt da db f x₀ L.
Theorem left_or_right_derivable_continuous_when_derivative_eq_0 :
  rngl_has_inv T = true
   is_left A lt,
  ( x, ¬ (lt x x))
   {da} (dist : is_dist da) (f : A T) x,
  left_or_right_derivative_at is_left lt da rngl_dist f x 0%L
   left_or_right_continuous_at is_left lt da rngl_dist f x.
Theorem left_or_right_derivable_continuous :
  rngl_mul_is_comm T = true
  rngl_has_inv T = true
   is_left A lt, ( x, ¬ (lt x x))
   {da} (dist : is_dist da) (f : A T) x a,
  left_or_right_derivative_at is_left lt da rngl_dist f x a
   left_or_right_continuous_at is_left lt da rngl_dist f x.
Theorem dist_comm : A (d : distance A) x y, d_dist x y = d_dist y x.


Theorem left_or_right_derivative_mul_at :
  rngl_mul_is_comm T = true
  rngl_has_inv T = true
   is_left A lt, ( x, ¬ (lt x x))
   {da} (dist : is_dist da) (f g : A T) u v x₀,
  left_or_right_derivative_at is_left lt da rngl_dist f x₀ u
   left_or_right_derivative_at is_left lt da rngl_dist g x₀ v
   left_or_right_derivative_at is_left lt da rngl_dist
       (λ x : A, (f x × g x)%L) x₀ (f x₀ × v + u × g x₀)%L.
Theorem left_or_right_continuous_lower_bounded :
  rngl_has_inv T = true
   is_left {A} (da : A A T) le f x₀,
  left_or_right_continuous_at is_left le da rngl_dist f x₀
   f x₀ 0%L
   δ,
    (0 < δ)%L x,
    (if is_left then le x x₀ else le x₀ x)
     (da x x₀ < δ)%L
     (rngl_abs (f x₀) / 2 < rngl_abs (f x))%L.

Theorem left_or_right_continuous_upper_bounded :
  rngl_characteristic T 1
   is_left {A} (da : A A T) le f x₀ u,

  is_limit_when_tending_to_neighbourhood is_left le da rngl_dist f x₀ u
   δ M,
    (0 < δ)%L (0 < M)%L x,
    (if is_left then le x x₀ else le x₀ x)
     (da x x₀ < δ)%L
     (rngl_abs (f x) < M)%L.

Theorem left_or_right_continuous_mul_at :
  rngl_mul_is_comm T = true
  rngl_has_inv T = true
   is_left A le da (f g : A T) x₀ u v,
  is_limit_when_tending_to_neighbourhood is_left le da rngl_dist f x₀ u
   is_limit_when_tending_to_neighbourhood is_left le da rngl_dist g x₀ v
   is_limit_when_tending_to_neighbourhood is_left le da rngl_dist
       (λ x : A, (f x × g x)%L) x₀ (u × v)%L.

Theorem left_or_right_continuous_inv :
  rngl_mul_is_comm T = true
  rngl_has_inv T = true
   is_left A le (da : A A T) f x₀,
  f x₀ 0%L
   left_or_right_continuous_at is_left le da rngl_dist f x₀
   left_or_right_continuous_at is_left le da rngl_dist
      (λ x, (f x)⁻¹) x₀.
Theorem rngl_abs_inv :
  rngl_has_inv T = true
   a, a 0%L (rngl_abs a⁻¹ = (rngl_abs a)⁻¹)%L.

Theorem left_or_right_derivative_inv :
  rngl_mul_is_comm T = true
  rngl_has_inv T = true
   {A} lt is_left (da : A A T) f f' x₀,
  f x₀ 0%L
   left_or_right_continuous_at is_left lt da rngl_dist f x₀
   left_or_right_derivative_at is_left lt da rngl_dist f x₀ (f' x₀)
   left_or_right_derivative_at is_left lt da rngl_dist (λ x : A, (f x)⁻¹)
      x₀ (- f' x₀ / (f x₀)%L.


Theorem derivative_mul_at :
  rngl_mul_is_comm T = true
  rngl_has_inv T = true
   A lt, ( x, ¬ (lt x x))
   {da} (dist : is_dist da) (f g : A T) f' g' x₀,
  is_derivative_at lt da rngl_dist f f' x₀
   is_derivative_at lt da rngl_dist g g' x₀
   is_derivative_at lt da rngl_dist (λ x : A, (f x × g x)%L)
       (λ x, f x × g' x + f' x × g x)%L x₀.
Theorem derivative_mul :
  rngl_mul_is_comm T = true
  rngl_has_inv T = true
   A lt, ( x, ¬ (lt x x))
   {da} (dist : is_dist da) (f g : A T) f' g',
  is_derivative lt da rngl_dist f f'
   is_derivative lt da rngl_dist g g'
   is_derivative lt da rngl_dist (λ x : A, (f x × g x)%L)
       (λ x, f x × g' x + f' x × g x)%L.

Theorem derivative_inv_at :
  rngl_mul_is_comm T = true
  rngl_has_inv T = true
   A lt, ( x, ¬ (lt x x))
   da (f : A T) f' x₀,
  f x₀ 0%L
   is_derivative_at lt da rngl_dist f f' x₀
   is_derivative_at lt da rngl_dist (λ x : A, (f x)⁻¹)
       (λ x, (- f' x / rngl_squ (f x))%L) x₀.
End a.

This page has been generated by coqdoc