products/sources/formale Sprachen/PVS/exact_real_arith image not shown  

Quellcode-Bibliothek

© Kompilation durch diese Firma

[Weder Korrektheit noch Funktionsfähigkeit der Software werden zugesichert.]

Datei: hyperbolicx.pvs   Sprache: PVS

Original von: PVS©

%------------------------------------------------------------------------------
% Hyperbolic functions
%
%     Author: David Lester, Manchester University
%
%     Version 1.0            18/2/09   Initial Release Version
%------------------------------------------------------------------------------

hyperbolicx: THEORY

BEGIN

  IMPORTING lnexp_fnd@hyperbolic, log, exp

  x:    VAR real
  nzx:  VAR nzreal
  sx:   VAR smallreal
  cx:   VAR cauchy_real
  cnzx: VAR cauchy_nzreal
  csx:  VAR cauchy_smallreal

  cauchy_sinh(cx):  [nat->int]
   = cauchy_div2n(cauchy_sub(cauchy_exp(cx),cauchy_exp(cauchy_neg(cx))),1)
  cauchy_cosh(cx):  [nat->int]
   = cauchy_div2n(cauchy_add(cauchy_exp(cx),cauchy_exp(cauchy_neg(cx))),1)

  sinh_lemma: LEMMA cauchy_prop(x,cx) => cauchy_prop(sinh(x),cauchy_sinh(cx))
  cosh_lemma: LEMMA cauchy_prop(x,cx) => cauchy_prop(cosh(x),cauchy_cosh(cx))

  cauchy_sinh_type: JUDGEMENT cauchy_sinh(cx)   HAS_TYPE cauchy_real
  cauchy_cosh_type: JUDGEMENT cauchy_cosh(cx)   HAS_TYPE cauchy_posreal

  cauchy_coth(cnzx):[nat->int]
   = cauchy_div(cauchy_cosh(cnzx),cauchy_sinh(cnzx))

  cauchy_tanh(cx):  [nat->int] = cauchy_div(cauchy_sinh(cx),cauchy_cosh(cx))
  cauchy_csch(cnzx):[nat->int] = cauchy_inv(cauchy_sinh(cnzx))
  cauchy_sech(cx)  :[nat->int] = cauchy_inv(cauchy_cosh(cx))

  tanh_lemma: LEMMA cauchy_prop(x,cx) => cauchy_prop(tanh(x),cauchy_tanh(cx))
  sech_lemma: LEMMA cauchy_prop(x,cx) => cauchy_prop(sech(x),cauchy_sech(cx))
  coth_lemma: LEMMA cauchy_prop(nzx,cnzx)
                                   => cauchy_prop(coth(nzx),cauchy_coth(cnzx))
  csch_lemma: LEMMA cauchy_prop(nzx,cnzx)
                                   => cauchy_prop(csch(nzx),cauchy_csch(cnzx))

  cauchy_tanh_type: JUDGEMENT cauchy_tanh(cx)   HAS_TYPE cauchy_smallreal
  cauchy_coth_type: JUDGEMENT cauchy_coth(cnzx) HAS_TYPE cauchy_nzreal
  cauchy_csch_type: JUDGEMENT cauchy_csch(cnzx) HAS_TYPE cauchy_nzreal
  cauchy_sech_type: JUDGEMENT cauchy_sech(cx)   HAS_TYPE cauchy_posreal


  cauchy_ge1?(c:[nat->int]):bool = EXISTS (x:posreal_ge1): cauchy_prop(x,c)

  cauchy_ge1: TYPE+ = (cauchy_ge1?) CONTAINING cauchy_int(1)

  JUDGEMENT cauchy_ge1 SUBTYPE_OF cauchy_posreal

  ge1x:  VAR posreal_ge1
  cge1x: VAR cauchy_ge1

  cauchy_asinh(cx):[nat->int]
   = cauchy_ln(cauchy_add(cx,cauchy_sqrt(cauchy_add(cauchy_mul(cx,cx),
                                                    cauchy_int(1)))))

  cauchy_acosh(cge1x):[nat->int]
   = cauchy_ln(cauchy_add(cge1x,cauchy_sqrt(cauchy_sub(cauchy_mul(cge1x,cge1x),
                                                       cauchy_int(1)))))

  cauchy_atanh(csx):[nat->int]
   = cauchy_div2n(cauchy_ln(cauchy_div(cauchy_add(cauchy_int(1),csx),
                                       cauchy_sub(cauchy_int(1),csx))),1)

  asinh_lemma: LEMMA cauchy_prop(x,cx) =>
                     cauchy_prop(asinh(x),cauchy_asinh(cx))
  acosh_lemma: LEMMA cauchy_prop(ge1x,cge1x) =>
                     cauchy_prop(acosh(ge1x),cauchy_acosh(cge1x))
  atanh_lemma: LEMMA cauchy_prop(sx,csx) =>
                     cauchy_prop(atanh(sx),cauchy_atanh(csx))

  cauchy_asinh_type: JUDGEMENT cauchy_asinh(cx)    HAS_TYPE cauchy_real
  cauchy_acosh_type: JUDGEMENT cauchy_acosh(cge1x) HAS_TYPE cauchy_nnreal
  cauchy_atanh_type: JUDGEMENT cauchy_atanh(csx)   HAS_TYPE cauchy_real

END hyperbolicx

¤ Dauer der Verarbeitung: 0.14 Sekunden  (vorverarbeitet)  ¤





Download des
Quellennavigators
Download des
sprechenden Kalenders

in der Quellcodebibliothek suchen




Haftungshinweis

Die Informationen auf dieser Webseite wurden nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit, noch Qualität der bereit gestellten Informationen zugesichert.


Bemerkung:

Die farbliche Syntaxdarstellung ist noch experimentell.


Bot Zugriff