Re: [isabelle] No Code Equation for LIMSEQ



Okay now with numerals support:

theory Scratch
  imports Complex_Main "~~/src/HOL/Library/Code_Integer"
begin

  code_type real
    (OCaml "float")

  code_const "0 :: real"
    (OCaml "0.0")
  declare zero_real_code[code inline del]

  code_const "1 :: real"
    (OCaml "1.0")
  declare one_real_code[code inline del]

  code_const "op + :: real \<Rightarrow> real \<Rightarrow> real"
    (OCaml "Pervasives.( +. )")

  code_const "op * :: real \<Rightarrow> real \<Rightarrow> real"
    (OCaml "Pervasives.( *. )")

  code_const "op - :: real \<Rightarrow> real \<Rightarrow> real"
    (OCaml "Pervasives.( -. )")

  code_const "op / :: real \<Rightarrow> real \<Rightarrow> real"
    (OCaml "Pervasives.( '/. )")

  code_const cos
    (OCaml "Pervasives.cos")
  declare cos_def[code del]

  code_const sin
    (OCaml "Pervasives.sin")
  declare sin_def[code del]

  code_const pi
    (OCaml "Pervasives.pi")
  declare pi_def[code del]

  code_const arctan
    (OCaml "Pervasives.atan")
  declare arctan_def[code del]

  code_const arccos
    (OCaml "Pervasives.acos")
  declare arccos_def[code del]

  code_const arcsin
    (OCaml "Pervasives.asin")
  declare arcsin_def[code del]

  definition "embed = (of_int :: int \<Rightarrow> real)"
  code_const embed
    (OCaml "float'_of'_int")

  lemma of_int_eq_embed[code inline]:
    "of_int = embed"
    unfolding embed_def ..

  declare number_of_real_code [code inline del]

  definition "test_trig x y a = cos (arctan (y / x) + sin a - pi/4.1)"
  
  export_code test_trig
    in OCaml module_name CodegenTest file -

end

Am Donnerstag, den 10.11.2011, 20:23 +0000 schrieb Dave Thayer:
> We are trying to create hypothetical explanations  couched in HOL terms for a set of orbital observations and create an executable piece of code that determines how well the observations act as a model for our theory.  Therefore creating a function that accepts real values as floats is quite acceptable.
> 
> David
> 
> 
> -----Original Message-----
> From: cl-isabelle-users-bounces at lists.cam.ac.uk [mailto:cl-isabelle-users-bounces at lists.cam.ac.uk] On Behalf Of Tobias Nipkow
> Sent: Wednesday, November 09, 2011 11:08 PM
> To: cl-isabelle-users at lists.cam.ac.uk
> Subject: Re: [isabelle] No Code Equation for LIMSEQ
> 
> You are trying to generate code for real numbers and functions defined by limits. Such definitions are not executable. You have two choices: 
> you can generate code that utilizes machine floats, or you can generate code that realizes arbitrary precision interval arithmetic. The former is a quick hack, the latter is sound but more work. Depending on what you want, we can tell you how to do it.
> 
> Tobias
> 
> Am 10/11/2011 00:23, schrieb Dave Thayer:
> > For technical reasons I am restricted at the moment to using 
> > Isabelle2009 I am trying to use code generation to generate code for trigonometric functions and other functions that utilize the real datatype.
> >
> > I have the following code that is attempting to exercise this ability.
> >
> > definition test_pi :: "real" where "test_pi = pi"
> > definition test_sin :: "real =>  real" where "test_sin x = sin x"
> > definition test_cos :: "real =>  real" where "test_cos x = cos x"
> > definition test_tan :: "real =>  real" where "test_tan x = tan x"
> > definition test_arcsin :: "real =>  real" where "test_arcsin x = arcsin x"
> > definition test_arccos :: "real =>  real" where "test_arccos x = arccos x"
> > definition test_arctan :: "real =>  real" where "test_arctan x = arctan x"
> > definition test_trig :: "real =>  real =>  real =>  real" where "test_trig x y a = cos (arctan (y / x) + sin a - pi/4)"
> >
> > export_code
> >   test_pi test_sin test_cos test_tan
> >   test_arcsin test_arccos test_arctan
> >   test_trig
> > in OCaml
> > module_name "TestCodeGen"
> > file "TestCodeGen3.ml"
> >
> > I am getting the following error message ### No code equation for 
> > LIMSEQ, The
> >
> > Does anybody know where the code equations for LIMSEQ are defined?
> > I have looked through the HOL/Library but found nothing  so far.
> >
> > Thank you for your time,
> > David Thayer
> 
> 
> 







This archive was generated by a fusion of Pipermail (Mailman edition) and MHonArc.