equal
deleted
inserted
replaced
6 section \<open>Logarithms: Non-Standard Version\<close> |
6 section \<open>Logarithms: Non-Standard Version\<close> |
7 |
7 |
8 theory HLog |
8 theory HLog |
9 imports HTranscendental |
9 imports HTranscendental |
10 begin |
10 begin |
11 |
|
12 |
|
13 (* should be in NSA.ML *) |
|
14 lemma epsilon_ge_zero [simp]: "0 \<le> \<epsilon>" |
|
15 by (simp add: epsilon_def star_n_zero_num star_n_le) |
|
16 |
|
17 lemma hpfinite_witness: "\<epsilon> \<in> {x. 0 \<le> x \<and> x \<in> HFinite}" |
|
18 by auto |
|
19 |
|
20 |
11 |
21 definition powhr :: "hypreal \<Rightarrow> hypreal \<Rightarrow> hypreal" (infixr "powhr" 80) |
12 definition powhr :: "hypreal \<Rightarrow> hypreal \<Rightarrow> hypreal" (infixr "powhr" 80) |
22 where [transfer_unfold]: "x powhr a = starfun2 (powr) x a" |
13 where [transfer_unfold]: "x powhr a = starfun2 (powr) x a" |
23 |
14 |
24 definition hlog :: "hypreal \<Rightarrow> hypreal \<Rightarrow> hypreal" |
15 definition hlog :: "hypreal \<Rightarrow> hypreal \<Rightarrow> hypreal" |
37 by transfer simp |
28 by transfer simp |
38 |
29 |
39 lemma powhr_not_zero [simp]: "\<And>a x. x powhr a \<noteq> 0 \<longleftrightarrow> x \<noteq> 0" |
30 lemma powhr_not_zero [simp]: "\<And>a x. x powhr a \<noteq> 0 \<longleftrightarrow> x \<noteq> 0" |
40 by transfer simp |
31 by transfer simp |
41 |
32 |
42 lemma powhr_divide: "\<And>a x y. 0 < x \<Longrightarrow> 0 < y \<Longrightarrow> (x / y) powhr a = (x powhr a) / (y powhr a)" |
33 lemma powhr_divide: "\<And>a x y. 0 \<le> x \<Longrightarrow> 0 \<le> y \<Longrightarrow> (x / y) powhr a = (x powhr a) / (y powhr a)" |
43 by transfer (rule powr_divide) |
34 by transfer (rule powr_divide) |
44 |
35 |
45 lemma powhr_add: "\<And>a b x. x powhr (a + b) = (x powhr a) * (x powhr b)" |
36 lemma powhr_add: "\<And>a b x. x powhr (a + b) = (x powhr a) * (x powhr b)" |
46 by transfer (rule powr_add) |
37 by transfer (rule powr_add) |
47 |
38 |