| author | nipkow | 
| Fri, 16 Jul 2004 17:31:44 +0200 | |
| changeset 15053 | 405be2b48f5b | 
| parent 14468 | 6be497cacab5 | 
| child 15131 | c69542757a4d | 
| permissions | -rw-r--r-- | 
| 13958 | 1  | 
(* Title : HLog.thy  | 
2  | 
Author : Jacques D. Fleuriot  | 
|
3  | 
Copyright : 2000,2001 University of Edinburgh  | 
|
4  | 
*)  | 
|
5  | 
||
| 
14411
 
7851e526b8b7
converted Hyperreal/Log and Hyperreal/HLog to Isar scripts
 
paulson 
parents: 
13958 
diff
changeset
 | 
6  | 
header{*Logarithms: Non-Standard Version*}
 | 
| 
 
7851e526b8b7
converted Hyperreal/Log and Hyperreal/HLog to Isar scripts
 
paulson 
parents: 
13958 
diff
changeset
 | 
7  | 
|
| 
 
7851e526b8b7
converted Hyperreal/Log and Hyperreal/HLog to Isar scripts
 
paulson 
parents: 
13958 
diff
changeset
 | 
8  | 
theory HLog = Log + HTranscendental:  | 
| 
 
7851e526b8b7
converted Hyperreal/Log and Hyperreal/HLog to Isar scripts
 
paulson 
parents: 
13958 
diff
changeset
 | 
9  | 
|
| 
 
7851e526b8b7
converted Hyperreal/Log and Hyperreal/HLog to Isar scripts
 
paulson 
parents: 
13958 
diff
changeset
 | 
10  | 
|
| 
 
7851e526b8b7
converted Hyperreal/Log and Hyperreal/HLog to Isar scripts
 
paulson 
parents: 
13958 
diff
changeset
 | 
11  | 
(* should be in NSA.ML *)  | 
| 
 
7851e526b8b7
converted Hyperreal/Log and Hyperreal/HLog to Isar scripts
 
paulson 
parents: 
13958 
diff
changeset
 | 
12  | 
lemma epsilon_ge_zero [simp]: "0 \<le> epsilon"  | 
| 
 
7851e526b8b7
converted Hyperreal/Log and Hyperreal/HLog to Isar scripts
 
paulson 
parents: 
13958 
diff
changeset
 | 
13  | 
by (simp add: epsilon_def hypreal_zero_num hypreal_le)  | 
| 
 
7851e526b8b7
converted Hyperreal/Log and Hyperreal/HLog to Isar scripts
 
paulson 
parents: 
13958 
diff
changeset
 | 
14  | 
|
| 
 
7851e526b8b7
converted Hyperreal/Log and Hyperreal/HLog to Isar scripts
 
paulson 
parents: 
13958 
diff
changeset
 | 
15  | 
lemma hpfinite_witness: "epsilon : {x. 0 \<le> x & x : HFinite}"
 | 
| 
 
7851e526b8b7
converted Hyperreal/Log and Hyperreal/HLog to Isar scripts
 
paulson 
parents: 
13958 
diff
changeset
 | 
16  | 
by auto  | 
| 13958 | 17  | 
|
18  | 
||
19  | 
constdefs  | 
|
20  | 
||
| 
14411
 
7851e526b8b7
converted Hyperreal/Log and Hyperreal/HLog to Isar scripts
 
paulson 
parents: 
13958 
diff
changeset
 | 
21  | 
powhr :: "[hypreal,hypreal] => hypreal" (infixr "powhr" 80)  | 
| 13958 | 22  | 
"x powhr a == ( *f* exp) (a * ( *f* ln) x)"  | 
23  | 
||
| 
14411
 
7851e526b8b7
converted Hyperreal/Log and Hyperreal/HLog to Isar scripts
 
paulson 
parents: 
13958 
diff
changeset
 | 
24  | 
hlog :: "[hypreal,hypreal] => hypreal"  | 
| 
 
7851e526b8b7
converted Hyperreal/Log and Hyperreal/HLog to Isar scripts
 
paulson 
parents: 
13958 
diff
changeset
 | 
25  | 
"hlog a x == Abs_hypreal(\<Union>A \<in> Rep_hypreal(a).\<Union>X \<in> Rep_hypreal(x).  | 
| 13958 | 26  | 
			     hyprel `` {%n. log (A n) (X n)})"
 | 
27  | 
||
| 
14411
 
7851e526b8b7
converted Hyperreal/Log and Hyperreal/HLog to Isar scripts
 
paulson 
parents: 
13958 
diff
changeset
 | 
28  | 
|
| 
 
7851e526b8b7
converted Hyperreal/Log and Hyperreal/HLog to Isar scripts
 
paulson 
parents: 
13958 
diff
changeset
 | 
29  | 
lemma powhr:  | 
| 
 
7851e526b8b7
converted Hyperreal/Log and Hyperreal/HLog to Isar scripts
 
paulson 
parents: 
13958 
diff
changeset
 | 
30  | 
    "(Abs_hypreal(hyprel `` {X})) powhr (Abs_hypreal(hyprel `` {Y})) =  
 | 
| 
 
7851e526b8b7
converted Hyperreal/Log and Hyperreal/HLog to Isar scripts
 
paulson 
parents: 
13958 
diff
changeset
 | 
31  | 
     Abs_hypreal(hyprel `` {%n.  (X n) powr (Y n)})"
 | 
| 
 
7851e526b8b7
converted Hyperreal/Log and Hyperreal/HLog to Isar scripts
 
paulson 
parents: 
13958 
diff
changeset
 | 
32  | 
by (simp add: powhr_def starfun hypreal_mult powr_def)  | 
| 
 
7851e526b8b7
converted Hyperreal/Log and Hyperreal/HLog to Isar scripts
 
paulson 
parents: 
13958 
diff
changeset
 | 
33  | 
|
| 
 
7851e526b8b7
converted Hyperreal/Log and Hyperreal/HLog to Isar scripts
 
paulson 
parents: 
13958 
diff
changeset
 | 
34  | 
lemma powhr_one_eq_one [simp]: "1 powhr a = 1"  | 
| 14468 | 35  | 
apply (cases a)  | 
| 
14411
 
7851e526b8b7
converted Hyperreal/Log and Hyperreal/HLog to Isar scripts
 
paulson 
parents: 
13958 
diff
changeset
 | 
36  | 
apply (simp add: powhr hypreal_one_num)  | 
| 
 
7851e526b8b7
converted Hyperreal/Log and Hyperreal/HLog to Isar scripts
 
paulson 
parents: 
13958 
diff
changeset
 | 
37  | 
done  | 
| 
 
7851e526b8b7
converted Hyperreal/Log and Hyperreal/HLog to Isar scripts
 
paulson 
parents: 
13958 
diff
changeset
 | 
38  | 
|
| 
 
7851e526b8b7
converted Hyperreal/Log and Hyperreal/HLog to Isar scripts
 
paulson 
parents: 
13958 
diff
changeset
 | 
39  | 
lemma powhr_mult:  | 
| 
 
7851e526b8b7
converted Hyperreal/Log and Hyperreal/HLog to Isar scripts
 
paulson 
parents: 
13958 
diff
changeset
 | 
40  | 
"[| 0 < x; 0 < y |] ==> (x * y) powhr a = (x powhr a) * (y powhr a)"  | 
| 14468 | 41  | 
apply (cases x, cases y, cases a)  | 
| 
14411
 
7851e526b8b7
converted Hyperreal/Log and Hyperreal/HLog to Isar scripts
 
paulson 
parents: 
13958 
diff
changeset
 | 
42  | 
apply (simp add: powhr hypreal_zero_num hypreal_mult hypreal_less, ultra)  | 
| 
 
7851e526b8b7
converted Hyperreal/Log and Hyperreal/HLog to Isar scripts
 
paulson 
parents: 
13958 
diff
changeset
 | 
43  | 
apply (simp add: powr_mult)  | 
| 
 
7851e526b8b7
converted Hyperreal/Log and Hyperreal/HLog to Isar scripts
 
paulson 
parents: 
13958 
diff
changeset
 | 
44  | 
done  | 
| 
 
7851e526b8b7
converted Hyperreal/Log and Hyperreal/HLog to Isar scripts
 
paulson 
parents: 
13958 
diff
changeset
 | 
45  | 
|
| 
 
7851e526b8b7
converted Hyperreal/Log and Hyperreal/HLog to Isar scripts
 
paulson 
parents: 
13958 
diff
changeset
 | 
46  | 
lemma powhr_gt_zero [simp]: "0 < x powhr a"  | 
| 14468 | 47  | 
apply (cases a, cases x)  | 
| 
14411
 
7851e526b8b7
converted Hyperreal/Log and Hyperreal/HLog to Isar scripts
 
paulson 
parents: 
13958 
diff
changeset
 | 
48  | 
apply (simp add: hypreal_zero_def powhr hypreal_less hypreal_zero_num)  | 
| 
 
7851e526b8b7
converted Hyperreal/Log and Hyperreal/HLog to Isar scripts
 
paulson 
parents: 
13958 
diff
changeset
 | 
49  | 
done  | 
| 
 
7851e526b8b7
converted Hyperreal/Log and Hyperreal/HLog to Isar scripts
 
paulson 
parents: 
13958 
diff
changeset
 | 
50  | 
|
| 
 
7851e526b8b7
converted Hyperreal/Log and Hyperreal/HLog to Isar scripts
 
paulson 
parents: 
13958 
diff
changeset
 | 
51  | 
lemma powhr_not_zero [simp]: "x powhr a \<noteq> 0"  | 
| 
 
7851e526b8b7
converted Hyperreal/Log and Hyperreal/HLog to Isar scripts
 
paulson 
parents: 
13958 
diff
changeset
 | 
52  | 
by (rule powhr_gt_zero [THEN hypreal_not_refl2, THEN not_sym])  | 
| 
 
7851e526b8b7
converted Hyperreal/Log and Hyperreal/HLog to Isar scripts
 
paulson 
parents: 
13958 
diff
changeset
 | 
53  | 
|
| 
 
7851e526b8b7
converted Hyperreal/Log and Hyperreal/HLog to Isar scripts
 
paulson 
parents: 
13958 
diff
changeset
 | 
54  | 
lemma hypreal_divide:  | 
| 
 
7851e526b8b7
converted Hyperreal/Log and Hyperreal/HLog to Isar scripts
 
paulson 
parents: 
13958 
diff
changeset
 | 
55  | 
     "(Abs_hypreal(hyprel `` {X}))/(Abs_hypreal(hyprel `` {Y})) =  
 | 
| 
 
7851e526b8b7
converted Hyperreal/Log and Hyperreal/HLog to Isar scripts
 
paulson 
parents: 
13958 
diff
changeset
 | 
56  | 
      (Abs_hypreal(hyprel `` {%n. (X n)/(Y n)}))"
 | 
| 
14430
 
5cb24165a2e1
new material from Avigad, and simplified treatment of division by 0
 
paulson 
parents: 
14411 
diff
changeset
 | 
57  | 
by (simp add: divide_inverse hypreal_zero_num hypreal_inverse hypreal_mult)  | 
| 
14411
 
7851e526b8b7
converted Hyperreal/Log and Hyperreal/HLog to Isar scripts
 
paulson 
parents: 
13958 
diff
changeset
 | 
58  | 
|
| 
 
7851e526b8b7
converted Hyperreal/Log and Hyperreal/HLog to Isar scripts
 
paulson 
parents: 
13958 
diff
changeset
 | 
59  | 
lemma powhr_divide:  | 
| 
 
7851e526b8b7
converted Hyperreal/Log and Hyperreal/HLog to Isar scripts
 
paulson 
parents: 
13958 
diff
changeset
 | 
60  | 
"[| 0 < x; 0 < y |] ==> (x / y) powhr a = (x powhr a)/(y powhr a)"  | 
| 14468 | 61  | 
apply (cases x, cases y, cases a)  | 
| 
14411
 
7851e526b8b7
converted Hyperreal/Log and Hyperreal/HLog to Isar scripts
 
paulson 
parents: 
13958 
diff
changeset
 | 
62  | 
apply (simp add: powhr hypreal_divide hypreal_zero_num hypreal_less, ultra)  | 
| 
 
7851e526b8b7
converted Hyperreal/Log and Hyperreal/HLog to Isar scripts
 
paulson 
parents: 
13958 
diff
changeset
 | 
63  | 
apply (simp add: powr_divide)  | 
| 
 
7851e526b8b7
converted Hyperreal/Log and Hyperreal/HLog to Isar scripts
 
paulson 
parents: 
13958 
diff
changeset
 | 
64  | 
done  | 
| 
 
7851e526b8b7
converted Hyperreal/Log and Hyperreal/HLog to Isar scripts
 
paulson 
parents: 
13958 
diff
changeset
 | 
65  | 
|
| 
 
7851e526b8b7
converted Hyperreal/Log and Hyperreal/HLog to Isar scripts
 
paulson 
parents: 
13958 
diff
changeset
 | 
66  | 
lemma powhr_add: "x powhr (a + b) = (x powhr a) * (x powhr b)"  | 
| 14468 | 67  | 
apply (cases x, cases b, cases a)  | 
| 
14411
 
7851e526b8b7
converted Hyperreal/Log and Hyperreal/HLog to Isar scripts
 
paulson 
parents: 
13958 
diff
changeset
 | 
68  | 
apply (simp add: powhr hypreal_add hypreal_mult powr_add)  | 
| 
 
7851e526b8b7
converted Hyperreal/Log and Hyperreal/HLog to Isar scripts
 
paulson 
parents: 
13958 
diff
changeset
 | 
69  | 
done  | 
| 
 
7851e526b8b7
converted Hyperreal/Log and Hyperreal/HLog to Isar scripts
 
paulson 
parents: 
13958 
diff
changeset
 | 
70  | 
|
| 
 
7851e526b8b7
converted Hyperreal/Log and Hyperreal/HLog to Isar scripts
 
paulson 
parents: 
13958 
diff
changeset
 | 
71  | 
lemma powhr_powhr: "(x powhr a) powhr b = x powhr (a * b)"  | 
| 14468 | 72  | 
apply (cases x, cases b, cases a)  | 
| 
14411
 
7851e526b8b7
converted Hyperreal/Log and Hyperreal/HLog to Isar scripts
 
paulson 
parents: 
13958 
diff
changeset
 | 
73  | 
apply (simp add: powhr hypreal_mult powr_powr)  | 
| 
 
7851e526b8b7
converted Hyperreal/Log and Hyperreal/HLog to Isar scripts
 
paulson 
parents: 
13958 
diff
changeset
 | 
74  | 
done  | 
| 
 
7851e526b8b7
converted Hyperreal/Log and Hyperreal/HLog to Isar scripts
 
paulson 
parents: 
13958 
diff
changeset
 | 
75  | 
|
| 
 
7851e526b8b7
converted Hyperreal/Log and Hyperreal/HLog to Isar scripts
 
paulson 
parents: 
13958 
diff
changeset
 | 
76  | 
lemma powhr_powhr_swap: "(x powhr a) powhr b = (x powhr b) powhr a"  | 
| 14468 | 77  | 
apply (cases x, cases b, cases a)  | 
| 
14411
 
7851e526b8b7
converted Hyperreal/Log and Hyperreal/HLog to Isar scripts
 
paulson 
parents: 
13958 
diff
changeset
 | 
78  | 
apply (simp add: powhr powr_powr_swap)  | 
| 
 
7851e526b8b7
converted Hyperreal/Log and Hyperreal/HLog to Isar scripts
 
paulson 
parents: 
13958 
diff
changeset
 | 
79  | 
done  | 
| 
 
7851e526b8b7
converted Hyperreal/Log and Hyperreal/HLog to Isar scripts
 
paulson 
parents: 
13958 
diff
changeset
 | 
80  | 
|
| 
 
7851e526b8b7
converted Hyperreal/Log and Hyperreal/HLog to Isar scripts
 
paulson 
parents: 
13958 
diff
changeset
 | 
81  | 
lemma powhr_minus: "x powhr (-a) = inverse (x powhr a)"  | 
| 14468 | 82  | 
apply (cases x, cases a)  | 
| 
14411
 
7851e526b8b7
converted Hyperreal/Log and Hyperreal/HLog to Isar scripts
 
paulson 
parents: 
13958 
diff
changeset
 | 
83  | 
apply (simp add: powhr hypreal_minus hypreal_inverse hypreal_less powr_minus)  | 
| 
 
7851e526b8b7
converted Hyperreal/Log and Hyperreal/HLog to Isar scripts
 
paulson 
parents: 
13958 
diff
changeset
 | 
84  | 
done  | 
| 
 
7851e526b8b7
converted Hyperreal/Log and Hyperreal/HLog to Isar scripts
 
paulson 
parents: 
13958 
diff
changeset
 | 
85  | 
|
| 
 
7851e526b8b7
converted Hyperreal/Log and Hyperreal/HLog to Isar scripts
 
paulson 
parents: 
13958 
diff
changeset
 | 
86  | 
lemma powhr_minus_divide: "x powhr (-a) = 1/(x powhr a)"  | 
| 
14430
 
5cb24165a2e1
new material from Avigad, and simplified treatment of division by 0
 
paulson 
parents: 
14411 
diff
changeset
 | 
87  | 
by (simp add: divide_inverse powhr_minus)  | 
| 
14411
 
7851e526b8b7
converted Hyperreal/Log and Hyperreal/HLog to Isar scripts
 
paulson 
parents: 
13958 
diff
changeset
 | 
88  | 
|
| 
 
7851e526b8b7
converted Hyperreal/Log and Hyperreal/HLog to Isar scripts
 
paulson 
parents: 
13958 
diff
changeset
 | 
89  | 
lemma powhr_less_mono: "[| a < b; 1 < x |] ==> x powhr a < x powhr b"  | 
| 14468 | 90  | 
apply (cases x, cases a, cases b)  | 
| 
14411
 
7851e526b8b7
converted Hyperreal/Log and Hyperreal/HLog to Isar scripts
 
paulson 
parents: 
13958 
diff
changeset
 | 
91  | 
apply (simp add: powhr hypreal_one_num hypreal_less, ultra)  | 
| 
 
7851e526b8b7
converted Hyperreal/Log and Hyperreal/HLog to Isar scripts
 
paulson 
parents: 
13958 
diff
changeset
 | 
92  | 
done  | 
| 
 
7851e526b8b7
converted Hyperreal/Log and Hyperreal/HLog to Isar scripts
 
paulson 
parents: 
13958 
diff
changeset
 | 
93  | 
|
| 
 
7851e526b8b7
converted Hyperreal/Log and Hyperreal/HLog to Isar scripts
 
paulson 
parents: 
13958 
diff
changeset
 | 
94  | 
lemma powhr_less_cancel: "[| x powhr a < x powhr b; 1 < x |] ==> a < b"  | 
| 14468 | 95  | 
apply (cases x, cases a, cases b)  | 
| 
14411
 
7851e526b8b7
converted Hyperreal/Log and Hyperreal/HLog to Isar scripts
 
paulson 
parents: 
13958 
diff
changeset
 | 
96  | 
apply (simp add: powhr hypreal_one_num hypreal_less, ultra)  | 
| 
 
7851e526b8b7
converted Hyperreal/Log and Hyperreal/HLog to Isar scripts
 
paulson 
parents: 
13958 
diff
changeset
 | 
97  | 
done  | 
| 
 
7851e526b8b7
converted Hyperreal/Log and Hyperreal/HLog to Isar scripts
 
paulson 
parents: 
13958 
diff
changeset
 | 
98  | 
|
| 
 
7851e526b8b7
converted Hyperreal/Log and Hyperreal/HLog to Isar scripts
 
paulson 
parents: 
13958 
diff
changeset
 | 
99  | 
lemma powhr_less_cancel_iff [simp]:  | 
| 
 
7851e526b8b7
converted Hyperreal/Log and Hyperreal/HLog to Isar scripts
 
paulson 
parents: 
13958 
diff
changeset
 | 
100  | 
"1 < x ==> (x powhr a < x powhr b) = (a < b)"  | 
| 
 
7851e526b8b7
converted Hyperreal/Log and Hyperreal/HLog to Isar scripts
 
paulson 
parents: 
13958 
diff
changeset
 | 
101  | 
by (blast intro: powhr_less_cancel powhr_less_mono)  | 
| 
 
7851e526b8b7
converted Hyperreal/Log and Hyperreal/HLog to Isar scripts
 
paulson 
parents: 
13958 
diff
changeset
 | 
102  | 
|
| 
 
7851e526b8b7
converted Hyperreal/Log and Hyperreal/HLog to Isar scripts
 
paulson 
parents: 
13958 
diff
changeset
 | 
103  | 
lemma powhr_le_cancel_iff [simp]:  | 
| 
 
7851e526b8b7
converted Hyperreal/Log and Hyperreal/HLog to Isar scripts
 
paulson 
parents: 
13958 
diff
changeset
 | 
104  | 
"1 < x ==> (x powhr a \<le> x powhr b) = (a \<le> b)"  | 
| 
 
7851e526b8b7
converted Hyperreal/Log and Hyperreal/HLog to Isar scripts
 
paulson 
parents: 
13958 
diff
changeset
 | 
105  | 
by (simp add: linorder_not_less [symmetric])  | 
| 
 
7851e526b8b7
converted Hyperreal/Log and Hyperreal/HLog to Isar scripts
 
paulson 
parents: 
13958 
diff
changeset
 | 
106  | 
|
| 
 
7851e526b8b7
converted Hyperreal/Log and Hyperreal/HLog to Isar scripts
 
paulson 
parents: 
13958 
diff
changeset
 | 
107  | 
lemma hlog:  | 
| 
 
7851e526b8b7
converted Hyperreal/Log and Hyperreal/HLog to Isar scripts
 
paulson 
parents: 
13958 
diff
changeset
 | 
108  | 
     "hlog (Abs_hypreal(hyprel `` {X})) (Abs_hypreal(hyprel `` {Y})) =  
 | 
| 
 
7851e526b8b7
converted Hyperreal/Log and Hyperreal/HLog to Isar scripts
 
paulson 
parents: 
13958 
diff
changeset
 | 
109  | 
      Abs_hypreal(hyprel `` {%n. log (X n) (Y n)})"
 | 
| 
 
7851e526b8b7
converted Hyperreal/Log and Hyperreal/HLog to Isar scripts
 
paulson 
parents: 
13958 
diff
changeset
 | 
110  | 
apply (simp add: hlog_def)  | 
| 
 
7851e526b8b7
converted Hyperreal/Log and Hyperreal/HLog to Isar scripts
 
paulson 
parents: 
13958 
diff
changeset
 | 
111  | 
apply (rule arg_cong [where f=Abs_hypreal], auto, ultra)  | 
| 
 
7851e526b8b7
converted Hyperreal/Log and Hyperreal/HLog to Isar scripts
 
paulson 
parents: 
13958 
diff
changeset
 | 
112  | 
done  | 
| 
 
7851e526b8b7
converted Hyperreal/Log and Hyperreal/HLog to Isar scripts
 
paulson 
parents: 
13958 
diff
changeset
 | 
113  | 
|
| 
 
7851e526b8b7
converted Hyperreal/Log and Hyperreal/HLog to Isar scripts
 
paulson 
parents: 
13958 
diff
changeset
 | 
114  | 
lemma hlog_starfun_ln: "( *f* ln) x = hlog (( *f* exp) 1) x"  | 
| 14468 | 115  | 
apply (cases x)  | 
| 
14411
 
7851e526b8b7
converted Hyperreal/Log and Hyperreal/HLog to Isar scripts
 
paulson 
parents: 
13958 
diff
changeset
 | 
116  | 
apply (simp add: starfun hlog log_ln hypreal_one_num)  | 
| 
 
7851e526b8b7
converted Hyperreal/Log and Hyperreal/HLog to Isar scripts
 
paulson 
parents: 
13958 
diff
changeset
 | 
117  | 
done  | 
| 
 
7851e526b8b7
converted Hyperreal/Log and Hyperreal/HLog to Isar scripts
 
paulson 
parents: 
13958 
diff
changeset
 | 
118  | 
|
| 
 
7851e526b8b7
converted Hyperreal/Log and Hyperreal/HLog to Isar scripts
 
paulson 
parents: 
13958 
diff
changeset
 | 
119  | 
lemma powhr_hlog_cancel [simp]:  | 
| 
 
7851e526b8b7
converted Hyperreal/Log and Hyperreal/HLog to Isar scripts
 
paulson 
parents: 
13958 
diff
changeset
 | 
120  | 
"[| 0 < a; a \<noteq> 1; 0 < x |] ==> a powhr (hlog a x) = x"  | 
| 14468 | 121  | 
apply (cases x, cases a)  | 
| 
14411
 
7851e526b8b7
converted Hyperreal/Log and Hyperreal/HLog to Isar scripts
 
paulson 
parents: 
13958 
diff
changeset
 | 
122  | 
apply (simp add: hlog powhr hypreal_zero_num hypreal_less hypreal_one_num, ultra)  | 
| 
 
7851e526b8b7
converted Hyperreal/Log and Hyperreal/HLog to Isar scripts
 
paulson 
parents: 
13958 
diff
changeset
 | 
123  | 
done  | 
| 
 
7851e526b8b7
converted Hyperreal/Log and Hyperreal/HLog to Isar scripts
 
paulson 
parents: 
13958 
diff
changeset
 | 
124  | 
|
| 
 
7851e526b8b7
converted Hyperreal/Log and Hyperreal/HLog to Isar scripts
 
paulson 
parents: 
13958 
diff
changeset
 | 
125  | 
lemma hlog_powhr_cancel [simp]:  | 
| 
 
7851e526b8b7
converted Hyperreal/Log and Hyperreal/HLog to Isar scripts
 
paulson 
parents: 
13958 
diff
changeset
 | 
126  | 
"[| 0 < a; a \<noteq> 1 |] ==> hlog a (a powhr y) = y"  | 
| 14468 | 127  | 
apply (cases y, cases a)  | 
| 
14411
 
7851e526b8b7
converted Hyperreal/Log and Hyperreal/HLog to Isar scripts
 
paulson 
parents: 
13958 
diff
changeset
 | 
128  | 
apply (simp add: hlog powhr hypreal_zero_num hypreal_less hypreal_one_num, ultra)  | 
| 
 
7851e526b8b7
converted Hyperreal/Log and Hyperreal/HLog to Isar scripts
 
paulson 
parents: 
13958 
diff
changeset
 | 
129  | 
apply (auto intro: log_powr_cancel)  | 
| 
 
7851e526b8b7
converted Hyperreal/Log and Hyperreal/HLog to Isar scripts
 
paulson 
parents: 
13958 
diff
changeset
 | 
130  | 
done  | 
| 
 
7851e526b8b7
converted Hyperreal/Log and Hyperreal/HLog to Isar scripts
 
paulson 
parents: 
13958 
diff
changeset
 | 
131  | 
|
| 
 
7851e526b8b7
converted Hyperreal/Log and Hyperreal/HLog to Isar scripts
 
paulson 
parents: 
13958 
diff
changeset
 | 
132  | 
lemma hlog_mult:  | 
| 
 
7851e526b8b7
converted Hyperreal/Log and Hyperreal/HLog to Isar scripts
 
paulson 
parents: 
13958 
diff
changeset
 | 
133  | 
"[| 0 < a; a \<noteq> 1; 0 < x; 0 < y |]  | 
| 
 
7851e526b8b7
converted Hyperreal/Log and Hyperreal/HLog to Isar scripts
 
paulson 
parents: 
13958 
diff
changeset
 | 
134  | 
==> hlog a (x * y) = hlog a x + hlog a y"  | 
| 14468 | 135  | 
apply (cases x, cases y, cases a)  | 
| 
14411
 
7851e526b8b7
converted Hyperreal/Log and Hyperreal/HLog to Isar scripts
 
paulson 
parents: 
13958 
diff
changeset
 | 
136  | 
apply (simp add: hlog powhr hypreal_zero_num hypreal_one_num hypreal_less hypreal_add hypreal_mult, ultra)  | 
| 
 
7851e526b8b7
converted Hyperreal/Log and Hyperreal/HLog to Isar scripts
 
paulson 
parents: 
13958 
diff
changeset
 | 
137  | 
apply (simp add: log_mult)  | 
| 
 
7851e526b8b7
converted Hyperreal/Log and Hyperreal/HLog to Isar scripts
 
paulson 
parents: 
13958 
diff
changeset
 | 
138  | 
done  | 
| 
 
7851e526b8b7
converted Hyperreal/Log and Hyperreal/HLog to Isar scripts
 
paulson 
parents: 
13958 
diff
changeset
 | 
139  | 
|
| 
 
7851e526b8b7
converted Hyperreal/Log and Hyperreal/HLog to Isar scripts
 
paulson 
parents: 
13958 
diff
changeset
 | 
140  | 
lemma hlog_as_starfun:  | 
| 
 
7851e526b8b7
converted Hyperreal/Log and Hyperreal/HLog to Isar scripts
 
paulson 
parents: 
13958 
diff
changeset
 | 
141  | 
"[| 0 < a; a \<noteq> 1 |] ==> hlog a x = ( *f* ln) x / ( *f* ln) a"  | 
| 14468 | 142  | 
apply (cases x, cases a)  | 
| 
14411
 
7851e526b8b7
converted Hyperreal/Log and Hyperreal/HLog to Isar scripts
 
paulson 
parents: 
13958 
diff
changeset
 | 
143  | 
apply (simp add: hlog starfun hypreal_zero_num hypreal_one_num hypreal_divide log_def)  | 
| 
 
7851e526b8b7
converted Hyperreal/Log and Hyperreal/HLog to Isar scripts
 
paulson 
parents: 
13958 
diff
changeset
 | 
144  | 
done  | 
| 
 
7851e526b8b7
converted Hyperreal/Log and Hyperreal/HLog to Isar scripts
 
paulson 
parents: 
13958 
diff
changeset
 | 
145  | 
|
| 
 
7851e526b8b7
converted Hyperreal/Log and Hyperreal/HLog to Isar scripts
 
paulson 
parents: 
13958 
diff
changeset
 | 
146  | 
lemma hlog_eq_div_starfun_ln_mult_hlog:  | 
| 
 
7851e526b8b7
converted Hyperreal/Log and Hyperreal/HLog to Isar scripts
 
paulson 
parents: 
13958 
diff
changeset
 | 
147  | 
"[| 0 < a; a \<noteq> 1; 0 < b; b \<noteq> 1; 0 < x |]  | 
| 
 
7851e526b8b7
converted Hyperreal/Log and Hyperreal/HLog to Isar scripts
 
paulson 
parents: 
13958 
diff
changeset
 | 
148  | 
==> hlog a x = (( *f* ln) b/( *f*ln) a) * hlog b x"  | 
| 14468 | 149  | 
apply (cases x, cases a, cases b)  | 
| 
14411
 
7851e526b8b7
converted Hyperreal/Log and Hyperreal/HLog to Isar scripts
 
paulson 
parents: 
13958 
diff
changeset
 | 
150  | 
apply (simp add: hlog starfun hypreal_zero_num hypreal_one_num hypreal_less hypreal_divide hypreal_mult, ultra)  | 
| 
 
7851e526b8b7
converted Hyperreal/Log and Hyperreal/HLog to Isar scripts
 
paulson 
parents: 
13958 
diff
changeset
 | 
151  | 
apply (auto dest: log_eq_div_ln_mult_log)  | 
| 
 
7851e526b8b7
converted Hyperreal/Log and Hyperreal/HLog to Isar scripts
 
paulson 
parents: 
13958 
diff
changeset
 | 
152  | 
done  | 
| 
 
7851e526b8b7
converted Hyperreal/Log and Hyperreal/HLog to Isar scripts
 
paulson 
parents: 
13958 
diff
changeset
 | 
153  | 
|
| 
 
7851e526b8b7
converted Hyperreal/Log and Hyperreal/HLog to Isar scripts
 
paulson 
parents: 
13958 
diff
changeset
 | 
154  | 
lemma powhr_as_starfun: "x powhr a = ( *f* exp) (a * ( *f* ln) x)"  | 
| 14468 | 155  | 
apply (cases a, cases x)  | 
| 
14411
 
7851e526b8b7
converted Hyperreal/Log and Hyperreal/HLog to Isar scripts
 
paulson 
parents: 
13958 
diff
changeset
 | 
156  | 
apply (simp add: powhr starfun hypreal_mult powr_def)  | 
| 
 
7851e526b8b7
converted Hyperreal/Log and Hyperreal/HLog to Isar scripts
 
paulson 
parents: 
13958 
diff
changeset
 | 
157  | 
done  | 
| 
 
7851e526b8b7
converted Hyperreal/Log and Hyperreal/HLog to Isar scripts
 
paulson 
parents: 
13958 
diff
changeset
 | 
158  | 
|
| 
 
7851e526b8b7
converted Hyperreal/Log and Hyperreal/HLog to Isar scripts
 
paulson 
parents: 
13958 
diff
changeset
 | 
159  | 
lemma HInfinite_powhr:  | 
| 
 
7851e526b8b7
converted Hyperreal/Log and Hyperreal/HLog to Isar scripts
 
paulson 
parents: 
13958 
diff
changeset
 | 
160  | 
"[| x : HInfinite; 0 < x; a : HFinite - Infinitesimal;  | 
| 
 
7851e526b8b7
converted Hyperreal/Log and Hyperreal/HLog to Isar scripts
 
paulson 
parents: 
13958 
diff
changeset
 | 
161  | 
0 < a |] ==> x powhr a : HInfinite"  | 
| 
 
7851e526b8b7
converted Hyperreal/Log and Hyperreal/HLog to Isar scripts
 
paulson 
parents: 
13958 
diff
changeset
 | 
162  | 
apply (auto intro!: starfun_ln_ge_zero starfun_ln_HInfinite HInfinite_HFinite_not_Infinitesimal_mult2 starfun_exp_HInfinite  | 
| 
 
7851e526b8b7
converted Hyperreal/Log and Hyperreal/HLog to Isar scripts
 
paulson 
parents: 
13958 
diff
changeset
 | 
163  | 
simp add: order_less_imp_le HInfinite_gt_zero_gt_one powhr_as_starfun zero_le_mult_iff)  | 
| 
 
7851e526b8b7
converted Hyperreal/Log and Hyperreal/HLog to Isar scripts
 
paulson 
parents: 
13958 
diff
changeset
 | 
164  | 
done  | 
| 
 
7851e526b8b7
converted Hyperreal/Log and Hyperreal/HLog to Isar scripts
 
paulson 
parents: 
13958 
diff
changeset
 | 
165  | 
|
| 
 
7851e526b8b7
converted Hyperreal/Log and Hyperreal/HLog to Isar scripts
 
paulson 
parents: 
13958 
diff
changeset
 | 
166  | 
lemma hlog_hrabs_HInfinite_Infinitesimal:  | 
| 
 
7851e526b8b7
converted Hyperreal/Log and Hyperreal/HLog to Isar scripts
 
paulson 
parents: 
13958 
diff
changeset
 | 
167  | 
"[| x : HFinite - Infinitesimal; a : HInfinite; 0 < a |]  | 
| 
 
7851e526b8b7
converted Hyperreal/Log and Hyperreal/HLog to Isar scripts
 
paulson 
parents: 
13958 
diff
changeset
 | 
168  | 
==> hlog a (abs x) : Infinitesimal"  | 
| 
 
7851e526b8b7
converted Hyperreal/Log and Hyperreal/HLog to Isar scripts
 
paulson 
parents: 
13958 
diff
changeset
 | 
169  | 
apply (frule HInfinite_gt_zero_gt_one)  | 
| 
 
7851e526b8b7
converted Hyperreal/Log and Hyperreal/HLog to Isar scripts
 
paulson 
parents: 
13958 
diff
changeset
 | 
170  | 
apply (auto intro!: starfun_ln_HFinite_not_Infinitesimal  | 
| 
 
7851e526b8b7
converted Hyperreal/Log and Hyperreal/HLog to Isar scripts
 
paulson 
parents: 
13958 
diff
changeset
 | 
171  | 
HInfinite_inverse_Infinitesimal Infinitesimal_HFinite_mult2  | 
| 
 
7851e526b8b7
converted Hyperreal/Log and Hyperreal/HLog to Isar scripts
 
paulson 
parents: 
13958 
diff
changeset
 | 
172  | 
simp add: starfun_ln_HInfinite not_Infinitesimal_not_zero  | 
| 
14430
 
5cb24165a2e1
new material from Avigad, and simplified treatment of division by 0
 
paulson 
parents: 
14411 
diff
changeset
 | 
173  | 
hlog_as_starfun hypreal_not_refl2 [THEN not_sym] divide_inverse)  | 
| 
14411
 
7851e526b8b7
converted Hyperreal/Log and Hyperreal/HLog to Isar scripts
 
paulson 
parents: 
13958 
diff
changeset
 | 
174  | 
done  | 
| 
 
7851e526b8b7
converted Hyperreal/Log and Hyperreal/HLog to Isar scripts
 
paulson 
parents: 
13958 
diff
changeset
 | 
175  | 
|
| 
 
7851e526b8b7
converted Hyperreal/Log and Hyperreal/HLog to Isar scripts
 
paulson 
parents: 
13958 
diff
changeset
 | 
176  | 
lemma hlog_HInfinite_as_starfun:  | 
| 
 
7851e526b8b7
converted Hyperreal/Log and Hyperreal/HLog to Isar scripts
 
paulson 
parents: 
13958 
diff
changeset
 | 
177  | 
"[| a : HInfinite; 0 < a |] ==> hlog a x = ( *f* ln) x / ( *f* ln) a"  | 
| 
 
7851e526b8b7
converted Hyperreal/Log and Hyperreal/HLog to Isar scripts
 
paulson 
parents: 
13958 
diff
changeset
 | 
178  | 
by (rule hlog_as_starfun, auto)  | 
| 
 
7851e526b8b7
converted Hyperreal/Log and Hyperreal/HLog to Isar scripts
 
paulson 
parents: 
13958 
diff
changeset
 | 
179  | 
|
| 
 
7851e526b8b7
converted Hyperreal/Log and Hyperreal/HLog to Isar scripts
 
paulson 
parents: 
13958 
diff
changeset
 | 
180  | 
lemma hlog_one [simp]: "hlog a 1 = 0"  | 
| 14468 | 181  | 
apply (cases a)  | 
| 
14411
 
7851e526b8b7
converted Hyperreal/Log and Hyperreal/HLog to Isar scripts
 
paulson 
parents: 
13958 
diff
changeset
 | 
182  | 
apply (simp add: hypreal_one_num hypreal_zero_num hlog)  | 
| 
 
7851e526b8b7
converted Hyperreal/Log and Hyperreal/HLog to Isar scripts
 
paulson 
parents: 
13958 
diff
changeset
 | 
183  | 
done  | 
| 
 
7851e526b8b7
converted Hyperreal/Log and Hyperreal/HLog to Isar scripts
 
paulson 
parents: 
13958 
diff
changeset
 | 
184  | 
|
| 
 
7851e526b8b7
converted Hyperreal/Log and Hyperreal/HLog to Isar scripts
 
paulson 
parents: 
13958 
diff
changeset
 | 
185  | 
lemma hlog_eq_one [simp]: "[| 0 < a; a \<noteq> 1 |] ==> hlog a a = 1"  | 
| 14468 | 186  | 
apply (cases a)  | 
| 
14411
 
7851e526b8b7
converted Hyperreal/Log and Hyperreal/HLog to Isar scripts
 
paulson 
parents: 
13958 
diff
changeset
 | 
187  | 
apply (simp add: hypreal_one_num hypreal_zero_num hlog hypreal_less, ultra)  | 
| 
 
7851e526b8b7
converted Hyperreal/Log and Hyperreal/HLog to Isar scripts
 
paulson 
parents: 
13958 
diff
changeset
 | 
188  | 
apply (auto intro: log_eq_one)  | 
| 
 
7851e526b8b7
converted Hyperreal/Log and Hyperreal/HLog to Isar scripts
 
paulson 
parents: 
13958 
diff
changeset
 | 
189  | 
done  | 
| 
 
7851e526b8b7
converted Hyperreal/Log and Hyperreal/HLog to Isar scripts
 
paulson 
parents: 
13958 
diff
changeset
 | 
190  | 
|
| 
 
7851e526b8b7
converted Hyperreal/Log and Hyperreal/HLog to Isar scripts
 
paulson 
parents: 
13958 
diff
changeset
 | 
191  | 
lemma hlog_inverse:  | 
| 
 
7851e526b8b7
converted Hyperreal/Log and Hyperreal/HLog to Isar scripts
 
paulson 
parents: 
13958 
diff
changeset
 | 
192  | 
"[| 0 < a; a \<noteq> 1; 0 < x |] ==> hlog a (inverse x) = - hlog a x"  | 
| 
 
7851e526b8b7
converted Hyperreal/Log and Hyperreal/HLog to Isar scripts
 
paulson 
parents: 
13958 
diff
changeset
 | 
193  | 
apply (rule add_left_cancel [of "hlog a x", THEN iffD1])  | 
| 
 
7851e526b8b7
converted Hyperreal/Log and Hyperreal/HLog to Isar scripts
 
paulson 
parents: 
13958 
diff
changeset
 | 
194  | 
apply (simp add: hlog_mult [symmetric])  | 
| 
 
7851e526b8b7
converted Hyperreal/Log and Hyperreal/HLog to Isar scripts
 
paulson 
parents: 
13958 
diff
changeset
 | 
195  | 
done  | 
| 
 
7851e526b8b7
converted Hyperreal/Log and Hyperreal/HLog to Isar scripts
 
paulson 
parents: 
13958 
diff
changeset
 | 
196  | 
|
| 
 
7851e526b8b7
converted Hyperreal/Log and Hyperreal/HLog to Isar scripts
 
paulson 
parents: 
13958 
diff
changeset
 | 
197  | 
lemma hlog_divide:  | 
| 
 
7851e526b8b7
converted Hyperreal/Log and Hyperreal/HLog to Isar scripts
 
paulson 
parents: 
13958 
diff
changeset
 | 
198  | 
"[| 0 < a; a \<noteq> 1; 0 < x; 0 < y|] ==> hlog a (x/y) = hlog a x - hlog a y"  | 
| 
14430
 
5cb24165a2e1
new material from Avigad, and simplified treatment of division by 0
 
paulson 
parents: 
14411 
diff
changeset
 | 
199  | 
by (simp add: hlog_mult hlog_inverse divide_inverse)  | 
| 
14411
 
7851e526b8b7
converted Hyperreal/Log and Hyperreal/HLog to Isar scripts
 
paulson 
parents: 
13958 
diff
changeset
 | 
200  | 
|
| 
 
7851e526b8b7
converted Hyperreal/Log and Hyperreal/HLog to Isar scripts
 
paulson 
parents: 
13958 
diff
changeset
 | 
201  | 
lemma hlog_less_cancel_iff [simp]:  | 
| 
 
7851e526b8b7
converted Hyperreal/Log and Hyperreal/HLog to Isar scripts
 
paulson 
parents: 
13958 
diff
changeset
 | 
202  | 
"[| 1 < a; 0 < x; 0 < y |] ==> (hlog a x < hlog a y) = (x < y)"  | 
| 14468 | 203  | 
apply (cases a, cases x, cases y)  | 
| 
14411
 
7851e526b8b7
converted Hyperreal/Log and Hyperreal/HLog to Isar scripts
 
paulson 
parents: 
13958 
diff
changeset
 | 
204  | 
apply (auto simp add: hlog hypreal_less hypreal_zero_num hypreal_one_num, ultra+)  | 
| 
 
7851e526b8b7
converted Hyperreal/Log and Hyperreal/HLog to Isar scripts
 
paulson 
parents: 
13958 
diff
changeset
 | 
205  | 
done  | 
| 
 
7851e526b8b7
converted Hyperreal/Log and Hyperreal/HLog to Isar scripts
 
paulson 
parents: 
13958 
diff
changeset
 | 
206  | 
|
| 
 
7851e526b8b7
converted Hyperreal/Log and Hyperreal/HLog to Isar scripts
 
paulson 
parents: 
13958 
diff
changeset
 | 
207  | 
lemma hlog_le_cancel_iff [simp]:  | 
| 
 
7851e526b8b7
converted Hyperreal/Log and Hyperreal/HLog to Isar scripts
 
paulson 
parents: 
13958 
diff
changeset
 | 
208  | 
"[| 1 < a; 0 < x; 0 < y |] ==> (hlog a x \<le> hlog a y) = (x \<le> y)"  | 
| 
 
7851e526b8b7
converted Hyperreal/Log and Hyperreal/HLog to Isar scripts
 
paulson 
parents: 
13958 
diff
changeset
 | 
209  | 
by (simp add: linorder_not_less [symmetric])  | 
| 
 
7851e526b8b7
converted Hyperreal/Log and Hyperreal/HLog to Isar scripts
 
paulson 
parents: 
13958 
diff
changeset
 | 
210  | 
|
| 
 
7851e526b8b7
converted Hyperreal/Log and Hyperreal/HLog to Isar scripts
 
paulson 
parents: 
13958 
diff
changeset
 | 
211  | 
|
| 
 
7851e526b8b7
converted Hyperreal/Log and Hyperreal/HLog to Isar scripts
 
paulson 
parents: 
13958 
diff
changeset
 | 
212  | 
ML  | 
| 
 
7851e526b8b7
converted Hyperreal/Log and Hyperreal/HLog to Isar scripts
 
paulson 
parents: 
13958 
diff
changeset
 | 
213  | 
{*
 | 
| 
 
7851e526b8b7
converted Hyperreal/Log and Hyperreal/HLog to Isar scripts
 
paulson 
parents: 
13958 
diff
changeset
 | 
214  | 
val powhr = thm "powhr";  | 
| 
 
7851e526b8b7
converted Hyperreal/Log and Hyperreal/HLog to Isar scripts
 
paulson 
parents: 
13958 
diff
changeset
 | 
215  | 
val powhr_one_eq_one = thm "powhr_one_eq_one";  | 
| 
 
7851e526b8b7
converted Hyperreal/Log and Hyperreal/HLog to Isar scripts
 
paulson 
parents: 
13958 
diff
changeset
 | 
216  | 
val powhr_mult = thm "powhr_mult";  | 
| 
 
7851e526b8b7
converted Hyperreal/Log and Hyperreal/HLog to Isar scripts
 
paulson 
parents: 
13958 
diff
changeset
 | 
217  | 
val powhr_gt_zero = thm "powhr_gt_zero";  | 
| 
 
7851e526b8b7
converted Hyperreal/Log and Hyperreal/HLog to Isar scripts
 
paulson 
parents: 
13958 
diff
changeset
 | 
218  | 
val powhr_not_zero = thm "powhr_not_zero";  | 
| 
 
7851e526b8b7
converted Hyperreal/Log and Hyperreal/HLog to Isar scripts
 
paulson 
parents: 
13958 
diff
changeset
 | 
219  | 
val hypreal_divide = thm "hypreal_divide";  | 
| 
 
7851e526b8b7
converted Hyperreal/Log and Hyperreal/HLog to Isar scripts
 
paulson 
parents: 
13958 
diff
changeset
 | 
220  | 
val powhr_divide = thm "powhr_divide";  | 
| 
 
7851e526b8b7
converted Hyperreal/Log and Hyperreal/HLog to Isar scripts
 
paulson 
parents: 
13958 
diff
changeset
 | 
221  | 
val powhr_add = thm "powhr_add";  | 
| 
 
7851e526b8b7
converted Hyperreal/Log and Hyperreal/HLog to Isar scripts
 
paulson 
parents: 
13958 
diff
changeset
 | 
222  | 
val powhr_powhr = thm "powhr_powhr";  | 
| 
 
7851e526b8b7
converted Hyperreal/Log and Hyperreal/HLog to Isar scripts
 
paulson 
parents: 
13958 
diff
changeset
 | 
223  | 
val powhr_powhr_swap = thm "powhr_powhr_swap";  | 
| 
 
7851e526b8b7
converted Hyperreal/Log and Hyperreal/HLog to Isar scripts
 
paulson 
parents: 
13958 
diff
changeset
 | 
224  | 
val powhr_minus = thm "powhr_minus";  | 
| 
 
7851e526b8b7
converted Hyperreal/Log and Hyperreal/HLog to Isar scripts
 
paulson 
parents: 
13958 
diff
changeset
 | 
225  | 
val powhr_minus_divide = thm "powhr_minus_divide";  | 
| 
 
7851e526b8b7
converted Hyperreal/Log and Hyperreal/HLog to Isar scripts
 
paulson 
parents: 
13958 
diff
changeset
 | 
226  | 
val powhr_less_mono = thm "powhr_less_mono";  | 
| 
 
7851e526b8b7
converted Hyperreal/Log and Hyperreal/HLog to Isar scripts
 
paulson 
parents: 
13958 
diff
changeset
 | 
227  | 
val powhr_less_cancel = thm "powhr_less_cancel";  | 
| 
 
7851e526b8b7
converted Hyperreal/Log and Hyperreal/HLog to Isar scripts
 
paulson 
parents: 
13958 
diff
changeset
 | 
228  | 
val powhr_less_cancel_iff = thm "powhr_less_cancel_iff";  | 
| 
 
7851e526b8b7
converted Hyperreal/Log and Hyperreal/HLog to Isar scripts
 
paulson 
parents: 
13958 
diff
changeset
 | 
229  | 
val powhr_le_cancel_iff = thm "powhr_le_cancel_iff";  | 
| 
 
7851e526b8b7
converted Hyperreal/Log and Hyperreal/HLog to Isar scripts
 
paulson 
parents: 
13958 
diff
changeset
 | 
230  | 
val hlog = thm "hlog";  | 
| 
 
7851e526b8b7
converted Hyperreal/Log and Hyperreal/HLog to Isar scripts
 
paulson 
parents: 
13958 
diff
changeset
 | 
231  | 
val hlog_starfun_ln = thm "hlog_starfun_ln";  | 
| 
 
7851e526b8b7
converted Hyperreal/Log and Hyperreal/HLog to Isar scripts
 
paulson 
parents: 
13958 
diff
changeset
 | 
232  | 
val powhr_hlog_cancel = thm "powhr_hlog_cancel";  | 
| 
 
7851e526b8b7
converted Hyperreal/Log and Hyperreal/HLog to Isar scripts
 
paulson 
parents: 
13958 
diff
changeset
 | 
233  | 
val hlog_powhr_cancel = thm "hlog_powhr_cancel";  | 
| 
 
7851e526b8b7
converted Hyperreal/Log and Hyperreal/HLog to Isar scripts
 
paulson 
parents: 
13958 
diff
changeset
 | 
234  | 
val hlog_mult = thm "hlog_mult";  | 
| 
 
7851e526b8b7
converted Hyperreal/Log and Hyperreal/HLog to Isar scripts
 
paulson 
parents: 
13958 
diff
changeset
 | 
235  | 
val hlog_as_starfun = thm "hlog_as_starfun";  | 
| 
 
7851e526b8b7
converted Hyperreal/Log and Hyperreal/HLog to Isar scripts
 
paulson 
parents: 
13958 
diff
changeset
 | 
236  | 
val hlog_eq_div_starfun_ln_mult_hlog = thm "hlog_eq_div_starfun_ln_mult_hlog";  | 
| 
 
7851e526b8b7
converted Hyperreal/Log and Hyperreal/HLog to Isar scripts
 
paulson 
parents: 
13958 
diff
changeset
 | 
237  | 
val powhr_as_starfun = thm "powhr_as_starfun";  | 
| 
 
7851e526b8b7
converted Hyperreal/Log and Hyperreal/HLog to Isar scripts
 
paulson 
parents: 
13958 
diff
changeset
 | 
238  | 
val HInfinite_powhr = thm "HInfinite_powhr";  | 
| 
 
7851e526b8b7
converted Hyperreal/Log and Hyperreal/HLog to Isar scripts
 
paulson 
parents: 
13958 
diff
changeset
 | 
239  | 
val hlog_hrabs_HInfinite_Infinitesimal = thm "hlog_hrabs_HInfinite_Infinitesimal";  | 
| 
 
7851e526b8b7
converted Hyperreal/Log and Hyperreal/HLog to Isar scripts
 
paulson 
parents: 
13958 
diff
changeset
 | 
240  | 
val hlog_HInfinite_as_starfun = thm "hlog_HInfinite_as_starfun";  | 
| 
 
7851e526b8b7
converted Hyperreal/Log and Hyperreal/HLog to Isar scripts
 
paulson 
parents: 
13958 
diff
changeset
 | 
241  | 
val hlog_one = thm "hlog_one";  | 
| 
 
7851e526b8b7
converted Hyperreal/Log and Hyperreal/HLog to Isar scripts
 
paulson 
parents: 
13958 
diff
changeset
 | 
242  | 
val hlog_eq_one = thm "hlog_eq_one";  | 
| 
 
7851e526b8b7
converted Hyperreal/Log and Hyperreal/HLog to Isar scripts
 
paulson 
parents: 
13958 
diff
changeset
 | 
243  | 
val hlog_inverse = thm "hlog_inverse";  | 
| 
 
7851e526b8b7
converted Hyperreal/Log and Hyperreal/HLog to Isar scripts
 
paulson 
parents: 
13958 
diff
changeset
 | 
244  | 
val hlog_divide = thm "hlog_divide";  | 
| 
 
7851e526b8b7
converted Hyperreal/Log and Hyperreal/HLog to Isar scripts
 
paulson 
parents: 
13958 
diff
changeset
 | 
245  | 
val hlog_less_cancel_iff = thm "hlog_less_cancel_iff";  | 
| 
 
7851e526b8b7
converted Hyperreal/Log and Hyperreal/HLog to Isar scripts
 
paulson 
parents: 
13958 
diff
changeset
 | 
246  | 
val hlog_le_cancel_iff = thm "hlog_le_cancel_iff";  | 
| 
 
7851e526b8b7
converted Hyperreal/Log and Hyperreal/HLog to Isar scripts
 
paulson 
parents: 
13958 
diff
changeset
 | 
247  | 
*}  | 
| 
 
7851e526b8b7
converted Hyperreal/Log and Hyperreal/HLog to Isar scripts
 
paulson 
parents: 
13958 
diff
changeset
 | 
248  | 
|
| 
 
7851e526b8b7
converted Hyperreal/Log and Hyperreal/HLog to Isar scripts
 
paulson 
parents: 
13958 
diff
changeset
 | 
249  | 
end  |