src/HOL/Import/HOL4/Generated/HOL4Real.thy
author boehmes
Tue, 27 Mar 2012 17:11:02 +0200
changeset 47155 ade3fc826af3
parent 46787 3d3d8f8929a7
permissions -rw-r--r--
dropped support for List.distinct in binding to SMT solvers: only few applications benefited from this support, and in some cases the smt method fails due to its support for List.distinct
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
15647
b1f486a9c56b Updated import configuration.
skalberg
parents: 15071
diff changeset
     1
(* AUTOMATICALLY GENERATED, DO NOT EDIT! *)
b1f486a9c56b Updated import configuration.
skalberg
parents: 15071
diff changeset
     2
17566
484ff733f29c new header syntax;
wenzelm
parents: 17188
diff changeset
     3
theory HOL4Real imports HOL4Base begin
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
     4
46787
3d3d8f8929a7 file system structure separating HOL4 and HOL Light concerns
haftmann
parents: 46780
diff changeset
     5
setup_theory "~~/src/HOL/Import/HOL4/Generated" realax
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
     6
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
     7
lemma HREAL_RDISTRIB: "hreal_mul (hreal_add x y) z = hreal_add (hreal_mul x z) (hreal_mul y z)"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
     8
  by (import realax HREAL_RDISTRIB)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
     9
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
    10
lemma HREAL_EQ_ADDL: "x ~= hreal_add x y"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
    11
  by (import realax HREAL_EQ_ADDL)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
    12
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
    13
lemma HREAL_EQ_LADD: "(hreal_add x y = hreal_add x z) = (y = z)"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
    14
  by (import realax HREAL_EQ_LADD)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
    15
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
    16
lemma HREAL_LT_REFL: "~ hreal_lt x x"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
    17
  by (import realax HREAL_LT_REFL)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
    18
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
    19
lemma HREAL_LT_ADDL: "hreal_lt x (hreal_add x y)"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
    20
  by (import realax HREAL_LT_ADDL)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
    21
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
    22
lemma HREAL_LT_NE: "hreal_lt x y ==> x ~= y"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
    23
  by (import realax HREAL_LT_NE)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
    24
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
    25
lemma HREAL_LT_ADDR: "~ hreal_lt (hreal_add x y) x"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
    26
  by (import realax HREAL_LT_ADDR)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
    27
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
    28
lemma HREAL_LT_GT: "hreal_lt x y ==> ~ hreal_lt y x"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
    29
  by (import realax HREAL_LT_GT)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
    30
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
    31
lemma HREAL_LT_ADD2: "hreal_lt x1 y1 & hreal_lt x2 y2
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
    32
==> hreal_lt (hreal_add x1 x2) (hreal_add y1 y2)"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
    33
  by (import realax HREAL_LT_ADD2)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
    34
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
    35
lemma HREAL_LT_LADD: "hreal_lt (hreal_add x y) (hreal_add x z) = hreal_lt y z"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
    36
  by (import realax HREAL_LT_LADD)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
    37
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
    38
definition
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
    39
  treal_0 :: "hreal * hreal"  where
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
    40
  "treal_0 == (hreal_1, hreal_1)"
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
    41
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
    42
lemma treal_0: "treal_0 = (hreal_1, hreal_1)"
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
    43
  by (import realax treal_0)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
    44
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
    45
definition
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
    46
  treal_1 :: "hreal * hreal"  where
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
    47
  "treal_1 == (hreal_add hreal_1 hreal_1, hreal_1)"
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
    48
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
    49
lemma treal_1: "treal_1 = (hreal_add hreal_1 hreal_1, hreal_1)"
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
    50
  by (import realax treal_1)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
    51
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
    52
definition
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
    53
  treal_neg :: "hreal * hreal => hreal * hreal"  where
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
    54
  "treal_neg == %(x, y). (y, x)"
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
    55
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
    56
lemma treal_neg: "treal_neg (x, y) = (y, x)"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
    57
  by (import realax treal_neg)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
    58
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
    59
definition
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
    60
  treal_add :: "hreal * hreal => hreal * hreal => hreal * hreal"  where
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
    61
  "treal_add == %(x1, y1) (x2, y2). (hreal_add x1 x2, hreal_add y1 y2)"
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
    62
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
    63
lemma treal_add: "treal_add (x1, y1) (x2, y2) = (hreal_add x1 x2, hreal_add y1 y2)"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
    64
  by (import realax treal_add)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
    65
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
    66
definition
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
    67
  treal_mul :: "hreal * hreal => hreal * hreal => hreal * hreal"  where
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
    68
  "treal_mul ==
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
    69
%(x1, y1) (x2, y2).
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
    70
   (hreal_add (hreal_mul x1 x2) (hreal_mul y1 y2),
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
    71
    hreal_add (hreal_mul x1 y2) (hreal_mul y1 x2))"
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
    72
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
    73
lemma treal_mul: "treal_mul (x1, y1) (x2, y2) =
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
    74
(hreal_add (hreal_mul x1 x2) (hreal_mul y1 y2),
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
    75
 hreal_add (hreal_mul x1 y2) (hreal_mul y1 x2))"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
    76
  by (import realax treal_mul)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
    77
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
    78
definition
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
    79
  treal_lt :: "hreal * hreal => hreal * hreal => bool"  where
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
    80
  "treal_lt == %(x1, y1) (x2, y2). hreal_lt (hreal_add x1 y2) (hreal_add x2 y1)"
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
    81
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
    82
lemma treal_lt: "treal_lt (x1, y1) (x2, y2) = hreal_lt (hreal_add x1 y2) (hreal_add x2 y1)"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
    83
  by (import realax treal_lt)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
    84
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
    85
definition
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
    86
  treal_inv :: "hreal * hreal => hreal * hreal"  where
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
    87
  "treal_inv ==
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
    88
%(x, y).
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
    89
   if x = y then treal_0
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
    90
   else if hreal_lt y x
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
    91
        then (hreal_add (hreal_inv (hreal_sub x y)) hreal_1, hreal_1)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
    92
        else (hreal_1, hreal_add (hreal_inv (hreal_sub y x)) hreal_1)"
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
    93
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
    94
lemma treal_inv: "treal_inv (x, y) =
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
    95
(if x = y then treal_0
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
    96
 else if hreal_lt y x
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
    97
      then (hreal_add (hreal_inv (hreal_sub x y)) hreal_1, hreal_1)
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
    98
      else (hreal_1, hreal_add (hreal_inv (hreal_sub y x)) hreal_1))"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
    99
  by (import realax treal_inv)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
   100
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
   101
definition
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
   102
  treal_eq :: "hreal * hreal => hreal * hreal => bool"  where
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
   103
  "treal_eq == %(x1, y1) (x2, y2). hreal_add x1 y2 = hreal_add x2 y1"
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
   104
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
   105
lemma treal_eq: "treal_eq (x1, y1) (x2, y2) = (hreal_add x1 y2 = hreal_add x2 y1)"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
   106
  by (import realax treal_eq)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
   107
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
   108
lemma TREAL_EQ_REFL: "treal_eq x x"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
   109
  by (import realax TREAL_EQ_REFL)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
   110
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
   111
lemma TREAL_EQ_SYM: "treal_eq x y = treal_eq y x"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
   112
  by (import realax TREAL_EQ_SYM)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
   113
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
   114
lemma TREAL_EQ_TRANS: "treal_eq x y & treal_eq y z ==> treal_eq x z"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
   115
  by (import realax TREAL_EQ_TRANS)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
   116
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
   117
lemma TREAL_EQ_EQUIV: "treal_eq p q = (treal_eq p = treal_eq q)"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
   118
  by (import realax TREAL_EQ_EQUIV)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
   119
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
   120
lemma TREAL_EQ_AP: "p = q ==> treal_eq p q"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
   121
  by (import realax TREAL_EQ_AP)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
   122
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
   123
lemma TREAL_10: "~ treal_eq treal_1 treal_0"
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
   124
  by (import realax TREAL_10)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
   125
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
   126
lemma TREAL_ADD_SYM: "treal_add x y = treal_add y x"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
   127
  by (import realax TREAL_ADD_SYM)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
   128
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
   129
lemma TREAL_MUL_SYM: "treal_mul x y = treal_mul y x"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
   130
  by (import realax TREAL_MUL_SYM)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
   131
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
   132
lemma TREAL_ADD_ASSOC: "treal_add x (treal_add y z) = treal_add (treal_add x y) z"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
   133
  by (import realax TREAL_ADD_ASSOC)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
   134
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
   135
lemma TREAL_MUL_ASSOC: "treal_mul x (treal_mul y z) = treal_mul (treal_mul x y) z"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
   136
  by (import realax TREAL_MUL_ASSOC)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
   137
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
   138
lemma TREAL_LDISTRIB: "treal_mul x (treal_add y z) = treal_add (treal_mul x y) (treal_mul x z)"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
   139
  by (import realax TREAL_LDISTRIB)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
   140
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
   141
lemma TREAL_ADD_LID: "treal_eq (treal_add treal_0 x) x"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
   142
  by (import realax TREAL_ADD_LID)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
   143
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
   144
lemma TREAL_MUL_LID: "treal_eq (treal_mul treal_1 x) x"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
   145
  by (import realax TREAL_MUL_LID)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
   146
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
   147
lemma TREAL_ADD_LINV: "treal_eq (treal_add (treal_neg x) x) treal_0"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
   148
  by (import realax TREAL_ADD_LINV)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
   149
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
   150
lemma TREAL_INV_0: "treal_eq (treal_inv treal_0) treal_0"
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
   151
  by (import realax TREAL_INV_0)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
   152
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
   153
lemma TREAL_MUL_LINV: "~ treal_eq x treal_0 ==> treal_eq (treal_mul (treal_inv x) x) treal_1"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
   154
  by (import realax TREAL_MUL_LINV)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
   155
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
   156
lemma TREAL_LT_TOTAL: "treal_eq x y | treal_lt x y | treal_lt y x"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
   157
  by (import realax TREAL_LT_TOTAL)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
   158
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
   159
lemma TREAL_LT_REFL: "~ treal_lt x x"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
   160
  by (import realax TREAL_LT_REFL)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
   161
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
   162
lemma TREAL_LT_TRANS: "treal_lt x y & treal_lt y z ==> treal_lt x z"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
   163
  by (import realax TREAL_LT_TRANS)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
   164
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
   165
lemma TREAL_LT_ADD: "treal_lt y z ==> treal_lt (treal_add x y) (treal_add x z)"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
   166
  by (import realax TREAL_LT_ADD)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
   167
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
   168
lemma TREAL_LT_MUL: "treal_lt treal_0 x & treal_lt treal_0 y ==> treal_lt treal_0 (treal_mul x y)"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
   169
  by (import realax TREAL_LT_MUL)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
   170
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
   171
definition
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
   172
  treal_of_hreal :: "hreal => hreal * hreal"  where
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
   173
  "treal_of_hreal == %x. (hreal_add x hreal_1, hreal_1)"
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
   174
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
   175
lemma treal_of_hreal: "treal_of_hreal x = (hreal_add x hreal_1, hreal_1)"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
   176
  by (import realax treal_of_hreal)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
   177
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
   178
definition
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
   179
  hreal_of_treal :: "hreal * hreal => hreal"  where
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
   180
  "hreal_of_treal == %(x, y). SOME d. x = hreal_add y d"
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
   181
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
   182
lemma hreal_of_treal: "hreal_of_treal (x, y) = (SOME d. x = hreal_add y d)"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
   183
  by (import realax hreal_of_treal)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
   184
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
   185
lemma TREAL_BIJ: "(ALL h. hreal_of_treal (treal_of_hreal h) = h) &
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
   186
(ALL r. treal_lt treal_0 r = treal_eq (treal_of_hreal (hreal_of_treal r)) r)"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
   187
  by (import realax TREAL_BIJ)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
   188
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
   189
lemma TREAL_ISO: "hreal_lt h i ==> treal_lt (treal_of_hreal h) (treal_of_hreal i)"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
   190
  by (import realax TREAL_ISO)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
   191
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
   192
lemma TREAL_BIJ_WELLDEF: "treal_eq h i ==> hreal_of_treal h = hreal_of_treal i"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
   193
  by (import realax TREAL_BIJ_WELLDEF)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
   194
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
   195
lemma TREAL_NEG_WELLDEF: "treal_eq x1 x2 ==> treal_eq (treal_neg x1) (treal_neg x2)"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
   196
  by (import realax TREAL_NEG_WELLDEF)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
   197
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
   198
lemma TREAL_ADD_WELLDEFR: "treal_eq x1 x2 ==> treal_eq (treal_add x1 y) (treal_add x2 y)"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
   199
  by (import realax TREAL_ADD_WELLDEFR)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
   200
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
   201
lemma TREAL_ADD_WELLDEF: "treal_eq x1 x2 & treal_eq y1 y2
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
   202
==> treal_eq (treal_add x1 y1) (treal_add x2 y2)"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
   203
  by (import realax TREAL_ADD_WELLDEF)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
   204
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
   205
lemma TREAL_MUL_WELLDEFR: "treal_eq x1 x2 ==> treal_eq (treal_mul x1 y) (treal_mul x2 y)"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
   206
  by (import realax TREAL_MUL_WELLDEFR)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
   207
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
   208
lemma TREAL_MUL_WELLDEF: "treal_eq x1 x2 & treal_eq y1 y2
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
   209
==> treal_eq (treal_mul x1 y1) (treal_mul x2 y2)"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
   210
  by (import realax TREAL_MUL_WELLDEF)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
   211
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
   212
lemma TREAL_LT_WELLDEFR: "treal_eq x1 x2 ==> treal_lt x1 y = treal_lt x2 y"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
   213
  by (import realax TREAL_LT_WELLDEFR)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
   214
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
   215
lemma TREAL_LT_WELLDEFL: "treal_eq y1 y2 ==> treal_lt x y1 = treal_lt x y2"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
   216
  by (import realax TREAL_LT_WELLDEFL)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
   217
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
   218
lemma TREAL_LT_WELLDEF: "treal_eq x1 x2 & treal_eq y1 y2 ==> treal_lt x1 y1 = treal_lt x2 y2"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
   219
  by (import realax TREAL_LT_WELLDEF)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
   220
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
   221
lemma TREAL_INV_WELLDEF: "treal_eq x1 x2 ==> treal_eq (treal_inv x1) (treal_inv x2)"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
   222
  by (import realax TREAL_INV_WELLDEF)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
   223
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
   224
;end_setup
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
   225
46787
3d3d8f8929a7 file system structure separating HOL4 and HOL Light concerns
haftmann
parents: 46780
diff changeset
   226
setup_theory "~~/src/HOL/Import/HOL4/Generated" real
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
   227
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
   228
lemma REAL_0: "(0::real) = (0::real)"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
   229
  by (import real REAL_0)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
   230
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
   231
lemma REAL_1: "(1::real) = (1::real)"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
   232
  by (import real REAL_1)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
   233
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
   234
lemma REAL_ADD_LID_UNIQ: "((x::real) + (y::real) = y) = (x = (0::real))"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
   235
  by (import real REAL_ADD_LID_UNIQ)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
   236
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
   237
lemma REAL_ADD_RID_UNIQ: "((x::real) + (y::real) = x) = (y = (0::real))"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
   238
  by (import real REAL_ADD_RID_UNIQ)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
   239
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
   240
lemma REAL_LT_ANTISYM: "~ ((x::real) < (y::real) & y < x)"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
   241
  by (import real REAL_LT_ANTISYM)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
   242
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
   243
lemma REAL_LTE_TOTAL: "(x::real) < (y::real) | y <= x"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
   244
  by (import real REAL_LTE_TOTAL)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
   245
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
   246
lemma REAL_LET_ANTISYM: "~ ((x::real) < (y::real) & y <= x)"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
   247
  by (import real REAL_LET_ANTISYM)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
   248
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
   249
lemma REAL_LTE_ANTSYM: "~ ((x::real) <= (y::real) & y < x)"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
   250
  by (import real REAL_LTE_ANTSYM)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
   251
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
   252
lemma REAL_LT_NEGTOTAL: "(x::real) = (0::real) | (0::real) < x | (0::real) < - x"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
   253
  by (import real REAL_LT_NEGTOTAL)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
   254
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
   255
lemma REAL_LE_NEGTOTAL: "(0::real) <= (x::real) | (0::real) <= - x"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
   256
  by (import real REAL_LE_NEGTOTAL)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
   257
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
   258
lemma REAL_LT_ADDNEG: "((y::real) < (x::real) + - (z::real)) = (y + z < x)"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
   259
  by (import real REAL_LT_ADDNEG)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
   260
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
   261
lemma REAL_LT_ADDNEG2: "((x::real) + - (y::real) < (z::real)) = (x < z + y)"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
   262
  by (import real REAL_LT_ADDNEG2)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
   263
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
   264
lemma REAL_LT_ADD1: "(x::real) <= (y::real) ==> x < y + (1::real)"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
   265
  by (import real REAL_LT_ADD1)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
   266
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
   267
lemma REAL_SUB_ADD2: "(y::real) + ((x::real) - y) = x"
14796
1e83aa391ade updated;
wenzelm
parents: 14694
diff changeset
   268
  by (import real REAL_SUB_ADD2)
1e83aa391ade updated;
wenzelm
parents: 14694
diff changeset
   269
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
   270
lemma REAL_SUB_LT: "((0::real) < (x::real) - (y::real)) = (y < x)"
15647
b1f486a9c56b Updated import configuration.
skalberg
parents: 15071
diff changeset
   271
  by (import real REAL_SUB_LT)
b1f486a9c56b Updated import configuration.
skalberg
parents: 15071
diff changeset
   272
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
   273
lemma REAL_SUB_LE: "((0::real) <= (x::real) - (y::real)) = (y <= x)"
15647
b1f486a9c56b Updated import configuration.
skalberg
parents: 15071
diff changeset
   274
  by (import real REAL_SUB_LE)
b1f486a9c56b Updated import configuration.
skalberg
parents: 15071
diff changeset
   275
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
   276
lemma REAL_ADD_SUB: "(x::real) + (y::real) - x = y"
14796
1e83aa391ade updated;
wenzelm
parents: 14694
diff changeset
   277
  by (import real REAL_ADD_SUB)
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
   278
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
   279
lemma REAL_NEG_EQ: "(- (x::real) = (y::real)) = (x = - y)"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
   280
  by (import real REAL_NEG_EQ)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
   281
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
   282
lemma REAL_LT_LMUL_0: "(0::real) < (x::real) ==> ((0::real) < x * (y::real)) = ((0::real) < y)"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
   283
  by (import real REAL_LT_LMUL_0)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
   284
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
   285
lemma REAL_LT_RMUL_0: "(0::real) < (y::real) ==> ((0::real) < (x::real) * y) = ((0::real) < x)"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
   286
  by (import real REAL_LT_RMUL_0)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
   287
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
   288
lemma REAL_LINV_UNIQ: "(x::real) * (y::real) = (1::real) ==> x = inverse y"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
   289
  by (import real REAL_LINV_UNIQ)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
   290
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
   291
lemma REAL_LE_INV: "(0::real) <= (x::real) ==> (0::real) <= inverse x"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
   292
  by (import real REAL_LE_INV)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
   293
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
   294
lemma REAL_LE_ADDR: "((x::real) <= x + (y::real)) = ((0::real) <= y)"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
   295
  by (import real REAL_LE_ADDR)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
   296
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
   297
lemma REAL_LE_ADDL: "((y::real) <= (x::real) + y) = ((0::real) <= x)"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
   298
  by (import real REAL_LE_ADDL)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
   299
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
   300
lemma REAL_LT_ADDR: "((x::real) < x + (y::real)) = ((0::real) < y)"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
   301
  by (import real REAL_LT_ADDR)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
   302
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
   303
lemma REAL_LT_ADDL: "((y::real) < (x::real) + y) = ((0::real) < x)"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
   304
  by (import real REAL_LT_ADDL)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
   305
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
   306
lemma REAL_LT_NZ: "(real (n::nat) ~= (0::real)) = ((0::real) < real n)"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
   307
  by (import real REAL_LT_NZ)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
   308
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
   309
lemma REAL_NZ_IMP_LT: "(n::nat) ~= (0::nat) ==> (0::real) < real n"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
   310
  by (import real REAL_NZ_IMP_LT)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
   311
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
   312
lemma REAL_LT_RDIV_0: "(0::real) < (z::real) ==> ((0::real) < (y::real) / z) = ((0::real) < y)"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
   313
  by (import real REAL_LT_RDIV_0)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
   314
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
   315
lemma REAL_LT_RDIV: "(0::real) < (z::real) ==> ((x::real) / z < (y::real) / z) = (x < y)"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
   316
  by (import real REAL_LT_RDIV)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
   317
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
   318
lemma REAL_LT_FRACTION_0: "(n::nat) ~= (0::nat) ==> ((0::real) < (d::real) / real n) = ((0::real) < d)"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
   319
  by (import real REAL_LT_FRACTION_0)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
   320
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
   321
lemma REAL_LT_MULTIPLE: "(1::nat) < (x::nat) ==> ((xa::real) < real x * xa) = ((0::real) < xa)"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
   322
  by (import real REAL_LT_MULTIPLE)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
   323
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
   324
lemma REAL_LT_FRACTION: "(1::nat) < (n::nat) ==> ((d::real) / real n < d) = ((0::real) < d)"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
   325
  by (import real REAL_LT_FRACTION)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
   326
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
   327
lemma REAL_LT_HALF2: "((d::real) / (2::real) < d) = ((0::real) < d)"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
   328
  by (import real REAL_LT_HALF2)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
   329
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
   330
lemma REAL_DIV_LMUL: "(y::real) ~= (0::real) ==> y * ((x::real) / y) = x"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
   331
  by (import real REAL_DIV_LMUL)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
   332
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
   333
lemma REAL_DIV_RMUL: "(y::real) ~= (0::real) ==> (x::real) / y * y = x"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
   334
  by (import real REAL_DIV_RMUL)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
   335
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
   336
lemma REAL_DOWN: "(0::real) < (x::real) ==> EX xa>0::real. xa < x"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
   337
  by (import real REAL_DOWN)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
   338
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
   339
lemma REAL_SUB_SUB: "(x::real) - (y::real) - x = - y"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
   340
  by (import real REAL_SUB_SUB)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
   341
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
   342
lemma REAL_SUB_LNEG: "- (x::real) - (y::real) = - (x + y)"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
   343
  by (import real REAL_SUB_LNEG)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
   344
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
   345
lemma REAL_SUB_NEG2: "- (x::real) - - (y::real) = y - x"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
   346
  by (import real REAL_SUB_NEG2)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
   347
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
   348
lemma REAL_SUB_TRIANGLE: "(a::real) - (b::real) + (b - (c::real)) = a - c"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
   349
  by (import real REAL_SUB_TRIANGLE)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
   350
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
   351
lemma REAL_INV_MUL: "(x::real) ~= (0::real) & (y::real) ~= (0::real)
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
   352
==> inverse (x * y) = inverse x * inverse y"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
   353
  by (import real REAL_INV_MUL)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
   354
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
   355
lemma REAL_SUB_INV2: "(x::real) ~= (0::real) & (y::real) ~= (0::real)
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
   356
==> inverse x - inverse y = (y - x) / (x * y)"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
   357
  by (import real REAL_SUB_INV2)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
   358
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
   359
lemma REAL_SUB_SUB2: "(x::real) - (x - (y::real)) = y"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
   360
  by (import real REAL_SUB_SUB2)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
   361
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
   362
lemma REAL_ADD_SUB2: "(x::real) - (x + (y::real)) = - y"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
   363
  by (import real REAL_ADD_SUB2)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
   364
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
   365
lemma REAL_LE_DIV: "(0::real) <= (x::real) & (0::real) <= (xa::real) ==> (0::real) <= x / xa"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
   366
  by (import real REAL_LE_DIV)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
   367
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
   368
lemma REAL_LT_1: "(0::real) <= (x::real) & x < (y::real) ==> x / y < (1::real)"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
   369
  by (import real REAL_LT_1)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
   370
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
   371
lemma REAL_POS_NZ: "(0::real) < (x::real) ==> x ~= (0::real)"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
   372
  by (import real REAL_POS_NZ)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
   373
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
   374
lemma REAL_EQ_RMUL_IMP: "(z::real) ~= (0::real) & (x::real) * z = (y::real) * z ==> x = y"
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
   375
  by (import real REAL_EQ_RMUL_IMP)
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
   376
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
   377
lemma REAL_EQ_LMUL_IMP: "(x::real) ~= (0::real) & x * (xa::real) = x * (xb::real) ==> xa = xb"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
   378
  by (import real REAL_EQ_LMUL_IMP)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
   379
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
   380
lemma REAL_FACT_NZ: "real (FACT n) ~= 0"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
   381
  by (import real REAL_FACT_NZ)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
   382
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
   383
lemma REAL_POASQ: "((0::real) < (x::real) * x) = (x ~= (0::real))"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
   384
  by (import real REAL_POASQ)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
   385
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
   386
lemma REAL_DIV_MUL2: "(x::real) ~= (0::real) & (z::real) ~= (0::real)
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
   387
==> (y::real) / z = x * y / (x * z)"
17188
a26a4fc323ed Updated import.
obua
parents: 16417
diff changeset
   388
  by (import real REAL_DIV_MUL2)
a26a4fc323ed Updated import.
obua
parents: 16417
diff changeset
   389
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
   390
lemma REAL_MIDDLE1: "(a::real) <= (b::real) ==> a <= (a + b) / (2::real)"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
   391
  by (import real REAL_MIDDLE1)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
   392
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
   393
lemma REAL_MIDDLE2: "(a::real) <= (b::real) ==> (a + b) / (2::real) <= b"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
   394
  by (import real REAL_MIDDLE2)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
   395
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
   396
lemma ABS_LT_MUL2: "abs (w::real) < (y::real) & abs (x::real) < (z::real)
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
   397
==> abs (w * x) < y * z"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
   398
  by (import real ABS_LT_MUL2)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
   399
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
   400
lemma ABS_REFL: "(abs (x::real) = x) = ((0::real) <= x)"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
   401
  by (import real ABS_REFL)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
   402
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
   403
lemma ABS_BETWEEN: "((0::real) < (d::real) & (x::real) - d < (y::real) & y < x + d) =
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
   404
(abs (y - x) < d)"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
   405
  by (import real ABS_BETWEEN)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
   406
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
   407
lemma ABS_BOUND: "abs ((x::real) - (y::real)) < (d::real) ==> y < x + d"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
   408
  by (import real ABS_BOUND)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
   409
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
   410
lemma ABS_STILLNZ: "abs ((x::real) - (y::real)) < abs y ==> x ~= (0::real)"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
   411
  by (import real ABS_STILLNZ)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
   412
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
   413
lemma ABS_CASES: "(x::real) = (0::real) | (0::real) < abs x"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
   414
  by (import real ABS_CASES)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
   415
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
   416
lemma ABS_BETWEEN1: "(x::real) < (z::real) & abs ((y::real) - x) < z - x ==> y < z"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
   417
  by (import real ABS_BETWEEN1)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
   418
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
   419
lemma ABS_SIGN: "abs ((x::real) - (y::real)) < y ==> (0::real) < x"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
   420
  by (import real ABS_SIGN)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
   421
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
   422
lemma ABS_SIGN2: "abs ((x::real) - (y::real)) < - y ==> x < (0::real)"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
   423
  by (import real ABS_SIGN2)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
   424
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
   425
lemma ABS_CIRCLE: "abs (h::real) < abs (y::real) - abs (x::real) ==> abs (x + h) < abs y"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
   426
  by (import real ABS_CIRCLE)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
   427
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
   428
lemma ABS_BETWEEN2: "(x0::real) < (y0::real) &
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
   429
abs ((x::real) - x0) < (y0 - x0) / (2::real) &
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
   430
abs ((y::real) - y0) < (y0 - x0) / (2::real)
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
   431
==> x < y"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
   432
  by (import real ABS_BETWEEN2)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
   433
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
   434
lemma POW_PLUS1: "0 < e ==> 1 + real n * e <= (1 + e) ^ n"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
   435
  by (import real POW_PLUS1)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
   436
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
   437
lemma POW_M1: "abs ((- (1::real)) ^ (n::nat)) = (1::real)"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
   438
  by (import real POW_M1)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
   439
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
   440
lemma REAL_LE1_POW2: "(1::real) <= (x::real) ==> (1::real) <= x ^ (2::nat)"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
   441
  by (import real REAL_LE1_POW2)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
   442
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
   443
lemma REAL_LT1_POW2: "(1::real) < (x::real) ==> (1::real) < x ^ (2::nat)"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
   444
  by (import real REAL_LT1_POW2)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
   445
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
   446
lemma POW_POS_LT: "(0::real) < (x::real) ==> (0::real) < x ^ Suc (n::nat)"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
   447
  by (import real POW_POS_LT)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
   448
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
   449
lemma POW_LT: "(0::real) <= (x::real) & x < (y::real) ==> x ^ Suc (n::nat) < y ^ Suc n"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
   450
  by (import real POW_LT)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
   451
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
   452
lemma POW_ZERO: "(x::real) ^ (n::nat) = (0::real) ==> x = (0::real)"
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
   453
  by (import real POW_ZERO)
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
   454
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
   455
lemma POW_ZERO_EQ: "((x::real) ^ Suc (n::nat) = (0::real)) = (x = (0::real))"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
   456
  by (import real POW_ZERO_EQ)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
   457
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
   458
lemma REAL_POW_LT2: "(n::nat) ~= (0::nat) & (0::real) <= (x::real) & x < (y::real)
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
   459
==> x ^ n < y ^ n"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
   460
  by (import real REAL_POW_LT2)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
   461
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
   462
lemma REAL_POW_MONO_LT: "(1::real) < (x::real) & (m::nat) < (n::nat) ==> x ^ m < x ^ n"
17188
a26a4fc323ed Updated import.
obua
parents: 16417
diff changeset
   463
  by (import real REAL_POW_MONO_LT)
a26a4fc323ed Updated import.
obua
parents: 16417
diff changeset
   464
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
   465
lemma REAL_SUP_SOMEPOS: "(EX x::real. (P::real => bool) x & (0::real) < x) &
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
   466
(EX z::real. ALL x::real. P x --> x < z)
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
   467
==> EX s::real. ALL y::real. (EX x::real. P x & y < x) = (y < s)"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
   468
  by (import real REAL_SUP_SOMEPOS)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
   469
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
   470
lemma SUP_LEMMA1: "(!!y::real.
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
   471
    (EX x::real. (P::real => bool) (x + (d::real)) & y < x) =
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
   472
    (y < (s::real)))
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
   473
==> (EX x::real. P x & (y::real) < x) = (y < s + d)"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
   474
  by (import real SUP_LEMMA1)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
   475
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
   476
lemma SUP_LEMMA2: "Ex (P::real => bool) ==> EX (d::real) x::real. P (x + d) & (0::real) < x"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
   477
  by (import real SUP_LEMMA2)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
   478
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
   479
lemma SUP_LEMMA3: "EX z::real. ALL x::real. (P::real => bool) x --> x < z
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
   480
==> EX x::real. ALL xa::real. P (xa + (d::real)) --> xa < x"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
   481
  by (import real SUP_LEMMA3)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
   482
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
   483
lemma REAL_SUP_EXISTS: "Ex (P::real => bool) & (EX z::real. ALL x::real. P x --> x < z)
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
   484
==> EX x::real. ALL y::real. (EX x::real. P x & y < x) = (y < x)"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
   485
  by (import real REAL_SUP_EXISTS)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
   486
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
   487
consts
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
   488
  sup :: "(real => bool) => real" 
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
   489
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
   490
defs
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
   491
  sup_def: "real.sup == %P. SOME s. ALL y. (EX x. P x & y < x) = (y < s)"
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
   492
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
   493
lemma sup: "real.sup P = (SOME s. ALL y. (EX x. P x & y < x) = (y < s))"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
   494
  by (import real sup)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
   495
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
   496
lemma REAL_SUP: "Ex P & (EX z. ALL x. P x --> x < z)
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
   497
==> (EX x. P x & y < x) = (y < real.sup P)"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
   498
  by (import real REAL_SUP)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
   499
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
   500
lemma REAL_SUP_UBOUND: "[| Ex P & (EX z. ALL x. P x --> x < z); P y |] ==> y <= real.sup P"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
   501
  by (import real REAL_SUP_UBOUND)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
   502
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
   503
lemma SETOK_LE_LT: "(Ex (P::real => bool) & (EX z::real. ALL x::real. P x --> x <= z)) =
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
   504
(Ex P & (EX z::real. ALL x::real. P x --> x < z))"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
   505
  by (import real SETOK_LE_LT)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
   506
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
   507
lemma REAL_SUP_LE: "Ex P & (EX z. ALL x. P x --> x <= z)
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
   508
==> (EX x. P x & y < x) = (y < real.sup P)"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
   509
  by (import real REAL_SUP_LE)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
   510
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
   511
lemma REAL_SUP_UBOUND_LE: "[| Ex P & (EX z. ALL x. P x --> x <= z); P y |] ==> y <= real.sup P"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
   512
  by (import real REAL_SUP_UBOUND_LE)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
   513
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
   514
consts
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
   515
  sumc :: "nat => nat => (nat => real) => real" 
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
   516
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
   517
specification (sumc) sumc: "(ALL n f. sumc n 0 f = 0) &
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
   518
(ALL n m f. sumc n (Suc m) f = sumc n m f + f (n + m))"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
   519
  by (import real sumc)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
   520
14694
49873d345a39 removed 'constdefs' hack;
wenzelm
parents: 14516
diff changeset
   521
consts
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
   522
  sum :: "nat * nat => (nat => real) => real" 
14694
49873d345a39 removed 'constdefs' hack;
wenzelm
parents: 14516
diff changeset
   523
49873d345a39 removed 'constdefs' hack;
wenzelm
parents: 14516
diff changeset
   524
defs
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
   525
  sum_def: "real.sum == %(x, y). sumc x y"
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
   526
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
   527
lemma SUM_DEF: "real.sum (m, n) f = sumc m n f"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
   528
  by (import real SUM_DEF)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
   529
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
   530
lemma sum: "real.sum (xa, 0) x = 0 &
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
   531
real.sum (xa, Suc xb) x = real.sum (xa, xb) x + x (xa + xb)"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
   532
  by (import real sum)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
   533
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
   534
lemma SUM_TWO: "real.sum (0, n) f + real.sum (n, p) f = real.sum (0, n + p) f"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
   535
  by (import real SUM_TWO)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
   536
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
   537
lemma SUM_DIFF: "real.sum (m, n) f = real.sum (0, m + n) f - real.sum (0, m) f"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
   538
  by (import real SUM_DIFF)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
   539
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
   540
lemma ABS_SUM: "abs (real.sum (m, n) f) <= real.sum (m, n) (%n. abs (f n))"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
   541
  by (import real ABS_SUM)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
   542
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
   543
lemma SUM_LE: "(!!r. m <= r & r < n + m ==> f r <= g r)
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
   544
==> real.sum (m, n) f <= real.sum (m, n) g"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
   545
  by (import real SUM_LE)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
   546
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
   547
lemma SUM_EQ: "(!!r. m <= r & r < n + m ==> f r = g r)
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
   548
==> real.sum (m, n) f = real.sum (m, n) g"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
   549
  by (import real SUM_EQ)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
   550
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
   551
lemma SUM_POS: "(!!n. 0 <= f n) ==> 0 <= real.sum (m, n) f"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
   552
  by (import real SUM_POS)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
   553
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
   554
lemma SUM_POS_GEN: "(!!n. m <= n ==> 0 <= f n) ==> 0 <= real.sum (m, n) f"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
   555
  by (import real SUM_POS_GEN)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
   556
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
   557
lemma SUM_ABS: "abs (real.sum (m, x) (%m. abs (f m))) = real.sum (m, x) (%m. abs (f m))"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
   558
  by (import real SUM_ABS)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
   559
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
   560
lemma SUM_ABS_LE: "abs (real.sum (m, n) f) <= real.sum (m, n) (%n. abs (f n))"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
   561
  by (import real SUM_ABS_LE)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
   562
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
   563
lemma SUM_ZERO: "[| !!n. N <= n ==> f n = 0; N <= m |] ==> real.sum (m, n) f = 0"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
   564
  by (import real SUM_ZERO)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
   565
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
   566
lemma SUM_ADD: "real.sum (m, n) (%n. f n + g n) = real.sum (m, n) f + real.sum (m, n) g"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
   567
  by (import real SUM_ADD)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
   568
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
   569
lemma SUM_CMUL: "real.sum (m, n) (%n. c * f n) = c * real.sum (m, n) f"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
   570
  by (import real SUM_CMUL)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
   571
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
   572
lemma SUM_NEG: "real.sum (n, d) (%n. - f n) = - real.sum (n, d) f"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
   573
  by (import real SUM_NEG)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
   574
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
   575
lemma SUM_SUB: "real.sum (m, n) (%x. f x - g x) = real.sum (m, n) f - real.sum (m, n) g"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
   576
  by (import real SUM_SUB)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
   577
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
   578
lemma SUM_SUBST: "(!!p. m <= p & p < m + n ==> f p = g p)
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
   579
==> real.sum (m, n) f = real.sum (m, n) g"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
   580
  by (import real SUM_SUBST)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
   581
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
   582
lemma SUM_NSUB: "real.sum (0, n) f - real n * c = real.sum (0, n) (%p. f p - c)"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
   583
  by (import real SUM_NSUB)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
   584
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
   585
lemma SUM_BOUND: "(!!p. m <= p & p < m + n ==> f p <= k) ==> real.sum (m, n) f <= real n * k"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
   586
  by (import real SUM_BOUND)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
   587
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
   588
lemma SUM_GROUP: "real.sum (0, n) (%m. real.sum (m * k, k) f) = real.sum (0, n * k) f"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
   589
  by (import real SUM_GROUP)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
   590
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
   591
lemma SUM_1: "real.sum (n, 1) f = f n"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
   592
  by (import real SUM_1)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
   593
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
   594
lemma SUM_2: "real.sum (n, 2) f = f n + f (n + 1)"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
   595
  by (import real SUM_2)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
   596
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
   597
lemma SUM_OFFSET: "real.sum (0, n) (%m. f (m + k)) = real.sum (0, n + k) f - real.sum (0, k) f"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
   598
  by (import real SUM_OFFSET)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
   599
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
   600
lemma SUM_REINDEX: "real.sum (m + k, n) f = real.sum (m, n) (%r. f (r + k))"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
   601
  by (import real SUM_REINDEX)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
   602
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
   603
lemma SUM_0: "real.sum (m, n) (%r. 0) = 0"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
   604
  by (import real SUM_0)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
   605
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
   606
lemma SUM_PERMUTE_0: "(!!y. y < n ==> EX! x. x < n & p x = y)
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
   607
==> real.sum (0, n) (%n. f (p n)) = real.sum (0, n) f"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
   608
  by (import real SUM_PERMUTE_0)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
   609
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
   610
lemma SUM_CANCEL: "real.sum (n, d) (%n. f (Suc n) - f n) = f (n + d) - f n"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
   611
  by (import real SUM_CANCEL)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
   612
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
   613
lemma REAL_LE_RNEG: "((x::real) <= - (y::real)) = (x + y <= (0::real))"
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
   614
  by (import real REAL_LE_RNEG)
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
   615
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
   616
lemma REAL_EQ_RDIV_EQ: "(0::real) < (xb::real) ==> ((x::real) = (xa::real) / xb) = (x * xb = xa)"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
   617
  by (import real REAL_EQ_RDIV_EQ)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
   618
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
   619
lemma REAL_EQ_LDIV_EQ: "(0::real) < (xb::real) ==> ((x::real) / xb = (xa::real)) = (x = xa * xb)"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
   620
  by (import real REAL_EQ_LDIV_EQ)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
   621
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
   622
;end_setup
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
   623
46787
3d3d8f8929a7 file system structure separating HOL4 and HOL Light concerns
haftmann
parents: 46780
diff changeset
   624
setup_theory "~~/src/HOL/Import/HOL4/Generated" topology
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
   625
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
   626
definition
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
   627
  re_Union :: "(('a => bool) => bool) => 'a => bool"  where
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
   628
  "re_Union == %P x. EX s. P s & s x"
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
   629
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
   630
lemma re_Union: "re_Union P = (%x. EX s. P s & s x)"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
   631
  by (import topology re_Union)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
   632
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
   633
definition
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
   634
  re_union :: "('a => bool) => ('a => bool) => 'a => bool"  where
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
   635
  "re_union == %P Q x. P x | Q x"
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
   636
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
   637
lemma re_union: "re_union P Q = (%x. P x | Q x)"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
   638
  by (import topology re_union)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
   639
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
   640
definition
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
   641
  re_intersect :: "('a => bool) => ('a => bool) => 'a => bool"  where
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
   642
  "re_intersect == %P Q x. P x & Q x"
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
   643
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
   644
lemma re_intersect: "re_intersect P Q = (%x. P x & Q x)"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
   645
  by (import topology re_intersect)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
   646
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
   647
definition
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
   648
  re_null :: "'a => bool"  where
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
   649
  "re_null == %x. False"
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
   650
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
   651
lemma re_null: "re_null = (%x. False)"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
   652
  by (import topology re_null)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
   653
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
   654
definition
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
   655
  re_universe :: "'a => bool"  where
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
   656
  "re_universe == %x. True"
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
   657
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
   658
lemma re_universe: "re_universe = (%x. True)"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
   659
  by (import topology re_universe)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
   660
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
   661
definition
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
   662
  re_subset :: "('a => bool) => ('a => bool) => bool"  where
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
   663
  "re_subset == %P Q. ALL x. P x --> Q x"
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
   664
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
   665
lemma re_subset: "re_subset P Q = (ALL x. P x --> Q x)"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
   666
  by (import topology re_subset)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
   667
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
   668
definition
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
   669
  re_compl :: "('a => bool) => 'a => bool"  where
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
   670
  "re_compl == %P x. ~ P x"
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
   671
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
   672
lemma re_compl: "re_compl P = (%x. ~ P x)"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
   673
  by (import topology re_compl)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
   674
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
   675
lemma SUBSET_REFL: "re_subset P P"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
   676
  by (import topology SUBSET_REFL)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
   677
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
   678
lemma COMPL_MEM: "P x = (~ re_compl P x)"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
   679
  by (import topology COMPL_MEM)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
   680
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
   681
lemma SUBSET_ANTISYM: "(re_subset P Q & re_subset Q P) = (P = Q)"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
   682
  by (import topology SUBSET_ANTISYM)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
   683
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
   684
lemma SUBSET_TRANS: "re_subset P Q & re_subset Q R ==> re_subset P R"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
   685
  by (import topology SUBSET_TRANS)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
   686
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
   687
definition
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
   688
  istopology :: "(('a => bool) => bool) => bool"  where
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
   689
  "istopology ==
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
   690
%L. L re_null &
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
   691
    L re_universe &
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
   692
    (ALL a b. L a & L b --> L (re_intersect a b)) &
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
   693
    (ALL P. re_subset P L --> L (re_Union P))"
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
   694
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
   695
lemma istopology: "istopology L =
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
   696
(L re_null &
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
   697
 L re_universe &
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
   698
 (ALL a b. L a & L b --> L (re_intersect a b)) &
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
   699
 (ALL P. re_subset P L --> L (re_Union P)))"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
   700
  by (import topology istopology)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
   701
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
   702
typedef (open) ('a) topology = "Collect istopology::(('a::type => bool) => bool) set"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
   703
  by (rule typedef_helper,import topology topology_TY_DEF)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
   704
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
   705
lemmas topology_TY_DEF = typedef_hol2hol4 [OF type_definition_topology]
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
   706
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
   707
consts
17652
b1ef33ebfa17 Release HOL4 and HOLLight Importer.
obua
parents: 17644
diff changeset
   708
  topology :: "(('a => bool) => bool) => 'a topology" 
b1ef33ebfa17 Release HOL4 and HOLLight Importer.
obua
parents: 17644
diff changeset
   709
  "open" :: "'a topology => ('a => bool) => bool" 
17644
bd59bfd4bf37 fixed disambiguation problem
obua
parents: 17566
diff changeset
   710
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
   711
specification ("open" topology) topology_tybij: "(ALL a::'a topology. topology (topology.open a) = a) &
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
   712
(ALL r::('a => bool) => bool.
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
   713
    istopology r = (topology.open (topology r) = r))"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
   714
  by (import topology topology_tybij)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
   715
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
   716
lemma TOPOLOGY: "topology.open L re_null &
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
   717
topology.open L re_universe &
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
   718
(ALL a b.
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
   719
    topology.open L a & topology.open L b -->
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
   720
    topology.open L (re_intersect a b)) &
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
   721
(ALL P. re_subset P (topology.open L) --> topology.open L (re_Union P))"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
   722
  by (import topology TOPOLOGY)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
   723
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
   724
lemma TOPOLOGY_UNION: "re_subset xa (topology.open x) ==> topology.open x (re_Union xa)"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
   725
  by (import topology TOPOLOGY_UNION)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
   726
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
   727
definition
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
   728
  neigh :: "'a topology => ('a => bool) * 'a => bool"  where
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
   729
  "neigh == %tp (N, x). EX P. topology.open tp P & re_subset P N & P x"
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
   730
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
   731
lemma neigh: "neigh (tp::'a::type topology) (N::'a::type => bool, x::'a::type) =
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
   732
(EX P::'a::type => bool. topology.open tp P & re_subset P N & P x)"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
   733
  by (import topology neigh)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
   734
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
   735
lemma OPEN_OWN_NEIGH: "topology.open (tp::'a::type topology) (S'::'a::type => bool) &
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
   736
S' (x::'a::type)
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
   737
==> neigh tp (S', x)"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
   738
  by (import topology OPEN_OWN_NEIGH)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
   739
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
   740
lemma OPEN_UNOPEN: "topology.open (tp::'a::type topology) (S'::'a::type => bool) =
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
   741
(re_Union (%P::'a::type => bool. topology.open tp P & re_subset P S') = S')"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
   742
  by (import topology OPEN_UNOPEN)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
   743
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
   744
lemma OPEN_SUBOPEN: "topology.open (tp::'a::type topology) (S'::'a::type => bool) =
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
   745
(ALL x::'a::type.
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
   746
    S' x -->
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
   747
    (EX P::'a::type => bool. P x & topology.open tp P & re_subset P S'))"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
   748
  by (import topology OPEN_SUBOPEN)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
   749
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
   750
lemma OPEN_NEIGH: "topology.open (tp::'a::type topology) (S'::'a::type => bool) =
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
   751
(ALL x::'a::type.
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
   752
    S' x --> (EX N::'a::type => bool. neigh tp (N, x) & re_subset N S'))"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
   753
  by (import topology OPEN_NEIGH)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
   754
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
   755
consts
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
   756
  closed :: "'a topology => ('a => bool) => bool" 
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
   757
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
   758
defs
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
   759
  closed_def: "topology.closed == %L S'. topology.open L (re_compl S')"
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
   760
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
   761
lemma closed: "topology.closed L S' = topology.open L (re_compl S')"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
   762
  by (import topology closed)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
   763
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
   764
definition
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
   765
  limpt :: "'a topology => 'a => ('a => bool) => bool"  where
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
   766
  "limpt == %tp x S'. ALL N. neigh tp (N, x) --> (EX y. x ~= y & S' y & N y)"
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
   767
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
   768
lemma limpt: "limpt (tp::'a::type topology) (x::'a::type) (S'::'a::type => bool) =
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
   769
(ALL N::'a::type => bool.
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
   770
    neigh tp (N, x) --> (EX y::'a::type. x ~= y & S' y & N y))"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
   771
  by (import topology limpt)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
   772
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
   773
lemma CLOSED_LIMPT: "topology.closed (tp::'a::type topology) (S'::'a::type => bool) =
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
   774
(ALL x::'a::type. limpt tp x S' --> S' x)"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
   775
  by (import topology CLOSED_LIMPT)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
   776
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
   777
definition
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
   778
  ismet :: "('a * 'a => real) => bool"  where
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
   779
  "ismet ==
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
   780
%m. (ALL x y. (m (x, y) = 0) = (x = y)) &
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
   781
    (ALL x y z. m (y, z) <= m (x, y) + m (x, z))"
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
   782
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
   783
lemma ismet: "ismet m =
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
   784
((ALL x y. (m (x, y) = 0) = (x = y)) &
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
   785
 (ALL x y z. m (y, z) <= m (x, y) + m (x, z)))"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
   786
  by (import topology ismet)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
   787
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
   788
typedef (open) ('a) metric = "Collect ismet :: ('a::type * 'a::type => real) set"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
   789
  by (rule typedef_helper,import topology metric_TY_DEF)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
   790
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
   791
lemmas metric_TY_DEF = typedef_hol2hol4 [OF type_definition_metric]
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
   792
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
   793
consts
17652
b1ef33ebfa17 Release HOL4 and HOLLight Importer.
obua
parents: 17644
diff changeset
   794
  metric :: "('a * 'a => real) => 'a metric" 
b1ef33ebfa17 Release HOL4 and HOLLight Importer.
obua
parents: 17644
diff changeset
   795
  dist :: "'a metric => 'a * 'a => real" 
17644
bd59bfd4bf37 fixed disambiguation problem
obua
parents: 17566
diff changeset
   796
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
   797
specification (dist metric) metric_tybij: "(ALL a::'a metric. metric (topology.dist a) = a) &
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
   798
(ALL r::'a * 'a => real. ismet r = (topology.dist (metric r) = r))"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
   799
  by (import topology metric_tybij)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
   800
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
   801
lemma METRIC_ISMET: "ismet (topology.dist m)"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
   802
  by (import topology METRIC_ISMET)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
   803
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
   804
lemma METRIC_ZERO: "(topology.dist m (x, y) = 0) = (x = y)"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
   805
  by (import topology METRIC_ZERO)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
   806
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
   807
lemma METRIC_SAME: "topology.dist m (x, x) = 0"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
   808
  by (import topology METRIC_SAME)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
   809
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
   810
lemma METRIC_POS: "0 <= topology.dist m (x, y)"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
   811
  by (import topology METRIC_POS)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
   812
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
   813
lemma METRIC_SYM: "topology.dist m (x, y) = topology.dist m (y, x)"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
   814
  by (import topology METRIC_SYM)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
   815
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
   816
lemma METRIC_TRIANGLE: "topology.dist m (x, z) <= topology.dist m (x, y) + topology.dist m (y, z)"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
   817
  by (import topology METRIC_TRIANGLE)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
   818
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
   819
lemma METRIC_NZ: "x ~= y ==> 0 < topology.dist m (x, y)"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
   820
  by (import topology METRIC_NZ)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
   821
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
   822
definition
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
   823
  mtop :: "'a metric => 'a topology"  where
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
   824
  "mtop ==
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
   825
%m. topology
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
   826
     (%S'. ALL x.
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
   827
              S' x --> (EX e>0. ALL y. topology.dist m (x, y) < e --> S' y))"
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
   828
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
   829
lemma mtop: "mtop m =
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
   830
topology
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
   831
 (%S'. ALL x. S' x --> (EX e>0. ALL y. topology.dist m (x, y) < e --> S' y))"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
   832
  by (import topology mtop)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
   833
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
   834
lemma mtop_istopology: "istopology
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
   835
 (%S'. ALL x. S' x --> (EX e>0. ALL y. topology.dist m (x, y) < e --> S' y))"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
   836
  by (import topology mtop_istopology)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
   837
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
   838
lemma MTOP_OPEN: "topology.open (mtop x) S' =
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
   839
(ALL xa. S' xa --> (EX e>0. ALL y. topology.dist x (xa, y) < e --> S' y))"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
   840
  by (import topology MTOP_OPEN)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
   841
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
   842
definition
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
   843
  B :: "'a metric => 'a * real => 'a => bool"  where
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
   844
  "B == %m (x, e) y. topology.dist m (x, y) < e"
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
   845
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
   846
lemma ball: "B m (x, e) = (%y. topology.dist m (x, y) < e)"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
   847
  by (import topology ball)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
   848
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
   849
lemma BALL_OPEN: "0 < e ==> topology.open (mtop m) (B m (x, e))"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
   850
  by (import topology BALL_OPEN)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
   851
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
   852
lemma BALL_NEIGH: "0 < e ==> neigh (mtop m) (B m (x, e), x)"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
   853
  by (import topology BALL_NEIGH)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
   854
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
   855
lemma MTOP_LIMPT: "limpt (mtop m) x S' =
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
   856
(ALL e>0. EX y. x ~= y & S' y & topology.dist m (x, y) < e)"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
   857
  by (import topology MTOP_LIMPT)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
   858
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
   859
lemma ISMET_R1: "ismet (%(x, y). abs (y - x))"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
   860
  by (import topology ISMET_R1)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
   861
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
   862
definition
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
   863
  mr1 :: "real metric"  where
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
   864
  "mr1 == metric (%(x, y). abs (y - x))"
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
   865
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
   866
lemma mr1: "mr1 = metric (%(x, y). abs (y - x))"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
   867
  by (import topology mr1)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
   868
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
   869
lemma MR1_DEF: "topology.dist mr1 (x, y) = abs (y - x)"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
   870
  by (import topology MR1_DEF)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
   871
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
   872
lemma MR1_ADD: "topology.dist mr1 (x, x + d) = abs d"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
   873
  by (import topology MR1_ADD)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
   874
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
   875
lemma MR1_SUB: "topology.dist mr1 (x, x - d) = abs d"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
   876
  by (import topology MR1_SUB)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
   877
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
   878
lemma MR1_ADD_POS: "0 <= d ==> topology.dist mr1 (x, x + d) = d"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
   879
  by (import topology MR1_ADD_POS)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
   880
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
   881
lemma MR1_SUB_LE: "0 <= d ==> topology.dist mr1 (x, x - d) = d"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
   882
  by (import topology MR1_SUB_LE)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
   883
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
   884
lemma MR1_ADD_LT: "0 < d ==> topology.dist mr1 (x, x + d) = d"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
   885
  by (import topology MR1_ADD_LT)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
   886
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
   887
lemma MR1_SUB_LT: "0 < d ==> topology.dist mr1 (x, x - d) = d"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
   888
  by (import topology MR1_SUB_LT)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
   889
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
   890
lemma MR1_BETWEEN1: "x < z & topology.dist mr1 (x, y) < z - x ==> y < z"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
   891
  by (import topology MR1_BETWEEN1)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
   892
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
   893
lemma MR1_LIMPT: "limpt (mtop mr1) x re_universe"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
   894
  by (import topology MR1_LIMPT)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
   895
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
   896
;end_setup
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
   897
46787
3d3d8f8929a7 file system structure separating HOL4 and HOL Light concerns
haftmann
parents: 46780
diff changeset
   898
setup_theory "~~/src/HOL/Import/HOL4/Generated" nets
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
   899
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
   900
definition
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
   901
  dorder :: "('a => 'a => bool) => bool"  where
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
   902
  "dorder ==
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
   903
%g. ALL x y.
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
   904
       g x x & g y y --> (EX z. g z z & (ALL w. g w z --> g w x & g w y))"
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
   905
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
   906
lemma dorder: "dorder g =
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
   907
(ALL x y.
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
   908
    g x x & g y y --> (EX z. g z z & (ALL w. g w z --> g w x & g w y)))"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
   909
  by (import nets dorder)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
   910
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
   911
definition
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
   912
  tends :: "('b => 'a) => 'a => 'a topology * ('b => 'b => bool) => bool"  where
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
   913
  "tends ==
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
   914
%(s::'b => 'a) (l::'a) (tp::'a topology, g::'b => 'b => bool).
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
   915
   ALL N::'a => bool.
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
   916
      neigh tp (N, l) -->
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
   917
      (EX n::'b. g n n & (ALL m::'b. g m n --> N (s m)))"
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
   918
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
   919
lemma tends: "tends (s::'b::type => 'a::type) (l::'a::type)
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
   920
 (tp::'a::type topology, g::'b::type => 'b::type => bool) =
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
   921
(ALL N::'a::type => bool.
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
   922
    neigh tp (N, l) -->
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
   923
    (EX n::'b::type. g n n & (ALL m::'b::type. g m n --> N (s m))))"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
   924
  by (import nets tends)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
   925
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
   926
definition
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
   927
  bounded :: "'a metric * ('b => 'b => bool) => ('b => 'a) => bool"  where
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
   928
  "bounded ==
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
   929
%(m, g) f. EX k x N. g N N & (ALL n. g n N --> topology.dist m (f n, x) < k)"
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
   930
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
   931
lemma bounded: "bounded (m, g) f =
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
   932
(EX k x N. g N N & (ALL n. g n N --> topology.dist m (f n, x) < k))"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
   933
  by (import nets bounded)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
   934
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
   935
consts
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
   936
  tendsto :: "'a metric * 'a => 'a => 'a => bool" 
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
   937
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
   938
defs
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
   939
  tendsto_def: "nets.tendsto ==
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
   940
%(m, x) y z.
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
   941
   0 < topology.dist m (x, y) &
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
   942
   topology.dist m (x, y) <= topology.dist m (x, z)"
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
   943
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
   944
lemma tendsto: "nets.tendsto (m, x) y z =
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
   945
(0 < topology.dist m (x, y) &
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
   946
 topology.dist m (x, y) <= topology.dist m (x, z))"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
   947
  by (import nets tendsto)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
   948
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
   949
lemma DORDER_LEMMA: "[| dorder g;
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
   950
   (EX n. g n n & (ALL m. g m n --> P m)) &
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
   951
   (EX n. g n n & (ALL m. g m n --> Q m)) |]
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
   952
==> EX n. g n n & (ALL m. g m n --> P m & Q m)"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
   953
  by (import nets DORDER_LEMMA)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
   954
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
   955
lemma DORDER_NGE: "dorder nat_ge"
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
   956
  by (import nets DORDER_NGE)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
   957
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
   958
lemma DORDER_TENDSTO: "dorder (nets.tendsto (m, x))"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
   959
  by (import nets DORDER_TENDSTO)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
   960
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
   961
lemma MTOP_TENDS: "tends (x::'b => 'a) (x0::'a) (mtop (d::'a metric), g::'b => 'b => bool) =
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
   962
(ALL e>0::real.
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
   963
    EX n::'b. g n n & (ALL m::'b. g m n --> topology.dist d (x m, x0) < e))"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
   964
  by (import nets MTOP_TENDS)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
   965
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
   966
lemma MTOP_TENDS_UNIQ: "[| dorder (g::'b => 'b => bool);
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
   967
   tends (x::'b => 'a) (x0::'a) (mtop (d::'a metric), g) &
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
   968
   tends x (x1::'a) (mtop d, g) |]
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
   969
==> x0 = x1"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
   970
  by (import nets MTOP_TENDS_UNIQ)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
   971
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
   972
lemma SEQ_TENDS: "tends x x0 (mtop d, nat_ge) =
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
   973
(ALL xa>0. EX xb. ALL xc>=xb. topology.dist d (x xc, x0) < xa)"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
   974
  by (import nets SEQ_TENDS)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
   975
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
   976
lemma LIM_TENDS: "limpt (mtop m1) x0 re_universe
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
   977
==> tends f y0 (mtop m2, nets.tendsto (m1, x0)) =
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
   978
    (ALL e>0.
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
   979
        EX d>0.
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
   980
           ALL x.
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
   981
              0 < topology.dist m1 (x, x0) &
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
   982
              topology.dist m1 (x, x0) <= d -->
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
   983
              topology.dist m2 (f x, y0) < e)"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
   984
  by (import nets LIM_TENDS)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
   985
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
   986
lemma LIM_TENDS2: "limpt (mtop m1) x0 re_universe
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
   987
==> tends f y0 (mtop m2, nets.tendsto (m1, x0)) =
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
   988
    (ALL e>0.
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
   989
        EX d>0.
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
   990
           ALL x.
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
   991
              0 < topology.dist m1 (x, x0) &
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
   992
              topology.dist m1 (x, x0) < d -->
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
   993
              topology.dist m2 (f x, y0) < e)"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
   994
  by (import nets LIM_TENDS2)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
   995
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
   996
lemma MR1_BOUNDED: "bounded (mr1, g) f = (EX k N. g N N & (ALL n. g n N --> abs (f n) < k))"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
   997
  by (import nets MR1_BOUNDED)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
   998
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
   999
lemma NET_NULL: "tends x x0 (mtop mr1, g) = tends (%n. x n - x0) 0 (mtop mr1, g)"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  1000
  by (import nets NET_NULL)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  1001
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  1002
lemma NET_CONV_BOUNDED: "tends x x0 (mtop mr1, g) ==> bounded (mr1, g) x"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  1003
  by (import nets NET_CONV_BOUNDED)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  1004
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  1005
lemma NET_CONV_NZ: "tends x x0 (mtop mr1, g) & x0 ~= 0
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  1006
==> EX N. g N N & (ALL n. g n N --> x n ~= 0)"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  1007
  by (import nets NET_CONV_NZ)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  1008
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  1009
lemma NET_CONV_IBOUNDED: "tends x x0 (mtop mr1, g) & x0 ~= 0 ==> bounded (mr1, g) (%n. inverse (x n))"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  1010
  by (import nets NET_CONV_IBOUNDED)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  1011
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  1012
lemma NET_NULL_ADD: "[| dorder g; tends x 0 (mtop mr1, g) & tends y 0 (mtop mr1, g) |]
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  1013
==> tends (%n. x n + y n) 0 (mtop mr1, g)"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  1014
  by (import nets NET_NULL_ADD)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  1015
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  1016
lemma NET_NULL_MUL: "[| dorder g; bounded (mr1, g) x & tends y 0 (mtop mr1, g) |]
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  1017
==> tends (%n. x n * y n) 0 (mtop mr1, g)"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  1018
  by (import nets NET_NULL_MUL)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  1019
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  1020
lemma NET_NULL_CMUL: "tends x 0 (mtop mr1, g) ==> tends (%n. k * x n) 0 (mtop mr1, g)"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  1021
  by (import nets NET_NULL_CMUL)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  1022
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  1023
lemma NET_ADD: "[| dorder g; tends x x0 (mtop mr1, g) & tends y y0 (mtop mr1, g) |]
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  1024
==> tends (%n. x n + y n) (x0 + y0) (mtop mr1, g)"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  1025
  by (import nets NET_ADD)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  1026
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  1027
lemma NET_NEG: "dorder g
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  1028
==> tends x x0 (mtop mr1, g) = tends (%n. - x n) (- x0) (mtop mr1, g)"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  1029
  by (import nets NET_NEG)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  1030
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  1031
lemma NET_SUB: "[| dorder g; tends x x0 (mtop mr1, g) & tends y y0 (mtop mr1, g) |]
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  1032
==> tends (%xa. x xa - y xa) (x0 - y0) (mtop mr1, g)"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  1033
  by (import nets NET_SUB)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  1034
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  1035
lemma NET_MUL: "[| dorder g; tends x x0 (mtop mr1, g) & tends y y0 (mtop mr1, g) |]
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  1036
==> tends (%n. x n * y n) (x0 * y0) (mtop mr1, g)"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  1037
  by (import nets NET_MUL)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  1038
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  1039
lemma NET_INV: "[| dorder g; tends x x0 (mtop mr1, g) & x0 ~= 0 |]
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  1040
==> tends (%n. inverse (x n)) (inverse x0) (mtop mr1, g)"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  1041
  by (import nets NET_INV)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  1042
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  1043
lemma NET_DIV: "[| dorder g;
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  1044
   tends x x0 (mtop mr1, g) & tends y y0 (mtop mr1, g) & y0 ~= 0 |]
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  1045
==> tends (%xa. x xa / y xa) (x0 / y0) (mtop mr1, g)"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  1046
  by (import nets NET_DIV)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  1047
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  1048
lemma NET_ABS: "tends x x0 (mtop mr1, g) ==> tends (%n. abs (x n)) (abs x0) (mtop mr1, g)"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  1049
  by (import nets NET_ABS)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  1050
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  1051
lemma NET_LE: "[| dorder g;
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  1052
   tends x x0 (mtop mr1, g) &
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  1053
   tends y y0 (mtop mr1, g) &
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  1054
   (EX N. g N N & (ALL n. g n N --> x n <= y n)) |]
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  1055
==> x0 <= y0"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  1056
  by (import nets NET_LE)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  1057
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  1058
;end_setup
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  1059
46787
3d3d8f8929a7 file system structure separating HOL4 and HOL Light concerns
haftmann
parents: 46780
diff changeset
  1060
setup_theory "~~/src/HOL/Import/HOL4/Generated" seq
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  1061
14694
49873d345a39 removed 'constdefs' hack;
wenzelm
parents: 14516
diff changeset
  1062
consts
17694
b7870c2bd7df mapped "-->" to "hol4-->"
obua
parents: 17652
diff changeset
  1063
  "hol4-->" :: "(nat => real) => real => bool" ("hol4-->")
14694
49873d345a39 removed 'constdefs' hack;
wenzelm
parents: 14516
diff changeset
  1064
49873d345a39 removed 'constdefs' hack;
wenzelm
parents: 14516
diff changeset
  1065
defs
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  1066
  "hol4-->_def": "hol4--> == %x x0. tends x x0 (mtop mr1, nat_ge)"
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  1067
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  1068
lemma tends_num_real: "hol4--> x x0 = tends x x0 (mtop mr1, nat_ge)"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  1069
  by (import seq tends_num_real)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  1070
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  1071
lemma SEQ: "hol4--> x x0 = (ALL e>0. EX N. ALL n>=N. abs (x n - x0) < e)"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  1072
  by (import seq SEQ)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  1073
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  1074
lemma SEQ_CONST: "hol4--> (%x. k) k"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  1075
  by (import seq SEQ_CONST)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  1076
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  1077
lemma SEQ_ADD: "hol4--> x x0 & hol4--> y y0 ==> hol4--> (%n. x n + y n) (x0 + y0)"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  1078
  by (import seq SEQ_ADD)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  1079
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  1080
lemma SEQ_MUL: "hol4--> x x0 & hol4--> y y0 ==> hol4--> (%n. x n * y n) (x0 * y0)"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  1081
  by (import seq SEQ_MUL)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  1082
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  1083
lemma SEQ_NEG: "hol4--> x x0 = hol4--> (%n. - x n) (- x0)"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  1084
  by (import seq SEQ_NEG)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  1085
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  1086
lemma SEQ_INV: "hol4--> x x0 & x0 ~= 0 ==> hol4--> (%n. inverse (x n)) (inverse x0)"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  1087
  by (import seq SEQ_INV)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  1088
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  1089
lemma SEQ_SUB: "hol4--> x x0 & hol4--> y y0 ==> hol4--> (%n. x n - y n) (x0 - y0)"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  1090
  by (import seq SEQ_SUB)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  1091
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  1092
lemma SEQ_DIV: "hol4--> x x0 & hol4--> y y0 & y0 ~= 0 ==> hol4--> (%n. x n / y n) (x0 / y0)"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  1093
  by (import seq SEQ_DIV)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  1094
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  1095
lemma SEQ_UNIQ: "hol4--> x x1 & hol4--> x x2 ==> x1 = x2"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  1096
  by (import seq SEQ_UNIQ)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  1097
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  1098
consts
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  1099
  convergent :: "(nat => real) => bool" 
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  1100
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  1101
defs
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  1102
  convergent_def: "seq.convergent == %f. Ex (hol4--> f)"
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  1103
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  1104
lemma convergent: "seq.convergent f = Ex (hol4--> f)"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  1105
  by (import seq convergent)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  1106
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  1107
definition
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  1108
  cauchy :: "(nat => real) => bool"  where
17694
b7870c2bd7df mapped "-->" to "hol4-->"
obua
parents: 17652
diff changeset
  1109
  "cauchy ==
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  1110
%f. ALL e>0. EX N. ALL m n. N <= m & N <= n --> abs (f m - f n) < e"
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  1111
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  1112
lemma cauchy: "cauchy f = (ALL e>0. EX N. ALL m n. N <= m & N <= n --> abs (f m - f n) < e)"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  1113
  by (import seq cauchy)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  1114
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  1115
consts
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  1116
  lim :: "(nat => real) => real" 
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  1117
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  1118
defs
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  1119
  lim_def: "seq.lim == %f. Eps (hol4--> f)"
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  1120
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  1121
lemma lim: "seq.lim f = Eps (hol4--> f)"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  1122
  by (import seq lim)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  1123
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  1124
lemma SEQ_LIM: "seq.convergent f = hol4--> f (seq.lim f)"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  1125
  by (import seq SEQ_LIM)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  1126
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  1127
consts
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  1128
  subseq :: "(nat => nat) => bool" 
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  1129
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  1130
defs
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  1131
  subseq_def: "seq.subseq == %f. ALL m n. m < n --> f m < f n"
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  1132
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  1133
lemma subseq: "seq.subseq f = (ALL m n. m < n --> f m < f n)"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  1134
  by (import seq subseq)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  1135
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  1136
lemma SUBSEQ_SUC: "seq.subseq f = (ALL n. f n < f (Suc n))"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  1137
  by (import seq SUBSEQ_SUC)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  1138
14694
49873d345a39 removed 'constdefs' hack;
wenzelm
parents: 14516
diff changeset
  1139
consts
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  1140
  mono :: "(nat => real) => bool" 
14694
49873d345a39 removed 'constdefs' hack;
wenzelm
parents: 14516
diff changeset
  1141
49873d345a39 removed 'constdefs' hack;
wenzelm
parents: 14516
diff changeset
  1142
defs
17694
b7870c2bd7df mapped "-->" to "hol4-->"
obua
parents: 17652
diff changeset
  1143
  mono_def: "seq.mono ==
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  1144
%f. (ALL m n. m <= n --> f m <= f n) | (ALL m n. m <= n --> f n <= f m)"
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  1145
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  1146
lemma mono: "seq.mono f =
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  1147
((ALL m n. m <= n --> f m <= f n) | (ALL m n. m <= n --> f n <= f m))"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  1148
  by (import seq mono)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  1149
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  1150
lemma MONO_SUC: "seq.mono f = ((ALL x. f x <= f (Suc x)) | (ALL n. f (Suc n) <= f n))"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  1151
  by (import seq MONO_SUC)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  1152
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  1153
lemma MAX_LEMMA: "EX k::real. ALL n<N::nat. abs ((s::nat => real) n) < k"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  1154
  by (import seq MAX_LEMMA)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  1155
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  1156
lemma SEQ_BOUNDED: "bounded (mr1, nat_ge) s = (EX k. ALL n. abs (s n) < k)"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  1157
  by (import seq SEQ_BOUNDED)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  1158
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  1159
lemma SEQ_BOUNDED_2: "(!!n. k <= f n & f n <= k') ==> bounded (mr1, nat_ge) f"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  1160
  by (import seq SEQ_BOUNDED_2)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  1161
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  1162
lemma SEQ_CBOUNDED: "cauchy f ==> bounded (mr1, nat_ge) f"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  1163
  by (import seq SEQ_CBOUNDED)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  1164
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  1165
lemma SEQ_ICONV: "bounded (mr1, nat_ge) f & (ALL m n. n <= m --> f n <= f m)
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  1166
==> seq.convergent f"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  1167
  by (import seq SEQ_ICONV)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  1168
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  1169
lemma SEQ_NEG_CONV: "seq.convergent f = seq.convergent (%n. - f n)"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  1170
  by (import seq SEQ_NEG_CONV)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  1171
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  1172
lemma SEQ_NEG_BOUNDED: "bounded (mr1, nat_ge) (%n. - f n) = bounded (mr1, nat_ge) f"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  1173
  by (import seq SEQ_NEG_BOUNDED)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  1174
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  1175
lemma SEQ_BCONV: "bounded (mr1, nat_ge) f & seq.mono f ==> seq.convergent f"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  1176
  by (import seq SEQ_BCONV)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  1177
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  1178
lemma SEQ_MONOSUB: "EX f. seq.subseq f & seq.mono (%n. s (f n))"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  1179
  by (import seq SEQ_MONOSUB)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  1180
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  1181
lemma SEQ_SBOUNDED: "bounded (mr1, nat_ge) s ==> bounded (mr1, nat_ge) (%n. s (f n))"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  1182
  by (import seq SEQ_SBOUNDED)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  1183
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  1184
lemma SEQ_SUBLE: "seq.subseq f ==> n <= f n"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  1185
  by (import seq SEQ_SUBLE)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  1186
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  1187
lemma SEQ_DIRECT: "seq.subseq f ==> EX x>=N1. N2 <= f x"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  1188
  by (import seq SEQ_DIRECT)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  1189
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  1190
lemma SEQ_CAUCHY: "cauchy f = seq.convergent f"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  1191
  by (import seq SEQ_CAUCHY)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  1192
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  1193
lemma SEQ_LE: "hol4--> f l & hol4--> g m & (EX x. ALL xa>=x. f xa <= g xa) ==> l <= m"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  1194
  by (import seq SEQ_LE)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  1195
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  1196
lemma SEQ_SUC: "hol4--> f l = hol4--> (%n. f (Suc n)) l"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  1197
  by (import seq SEQ_SUC)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  1198
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  1199
lemma SEQ_ABS: "hol4--> (%n. abs (f n)) 0 = hol4--> f 0"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  1200
  by (import seq SEQ_ABS)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  1201
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  1202
lemma SEQ_ABS_IMP: "hol4--> f l ==> hol4--> (%n. abs (f n)) (abs l)"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  1203
  by (import seq SEQ_ABS_IMP)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  1204
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  1205
lemma SEQ_INV0: "(!!y. EX N. ALL n>=N. y < f n) ==> hol4--> (%n. inverse (f n)) 0"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  1206
  by (import seq SEQ_INV0)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  1207
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  1208
lemma SEQ_POWER_ABS: "abs c < 1 ==> hol4--> (op ^ (abs c)) 0"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  1209
  by (import seq SEQ_POWER_ABS)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  1210
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  1211
lemma SEQ_POWER: "abs c < 1 ==> hol4--> (op ^ c) 0"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  1212
  by (import seq SEQ_POWER)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  1213
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  1214
lemma NEST_LEMMA: "(ALL n. f n <= f (Suc n)) & (ALL n. g (Suc n) <= g n) & (ALL n. f n <= g n)
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  1215
==> EX l m.
17694
b7870c2bd7df mapped "-->" to "hol4-->"
obua
parents: 17652
diff changeset
  1216
       l <= m &
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  1217
       ((ALL n. f n <= l) & hol4--> f l) & (ALL n. m <= g n) & hol4--> g m"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  1218
  by (import seq NEST_LEMMA)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  1219
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  1220
lemma NEST_LEMMA_UNIQ: "(ALL n. f n <= f (Suc n)) &
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  1221
(ALL n. g (Suc n) <= g n) & (ALL n. f n <= g n) & hol4--> (%n. f n - g n) 0
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  1222
==> EX x. ((ALL n. f n <= x) & hol4--> f x) &
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  1223
          (ALL n. x <= g n) & hol4--> g x"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  1224
  by (import seq NEST_LEMMA_UNIQ)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  1225
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  1226
consts
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  1227
  sums :: "(nat => real) => real => bool" 
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  1228
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  1229
defs
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  1230
  sums_def: "seq.sums == %f. hol4--> (%n. real.sum (0, n) f)"
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  1231
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  1232
lemma sums: "seq.sums f s = hol4--> (%n. real.sum (0, n) f) s"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  1233
  by (import seq sums)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  1234
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  1235
consts
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  1236
  summable :: "(nat => real) => bool" 
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  1237
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  1238
defs
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  1239
  summable_def: "seq.summable == %f. Ex (seq.sums f)"
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  1240
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  1241
lemma summable: "seq.summable f = Ex (seq.sums f)"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  1242
  by (import seq summable)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  1243
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  1244
consts
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  1245
  suminf :: "(nat => real) => real" 
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  1246
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  1247
defs
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  1248
  suminf_def: "seq.suminf == %f. Eps (seq.sums f)"
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  1249
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  1250
lemma suminf: "seq.suminf f = Eps (seq.sums f)"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  1251
  by (import seq suminf)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  1252
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  1253
lemma SUM_SUMMABLE: "seq.sums f l ==> seq.summable f"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  1254
  by (import seq SUM_SUMMABLE)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  1255
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  1256
lemma SUMMABLE_SUM: "seq.summable f ==> seq.sums f (seq.suminf f)"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  1257
  by (import seq SUMMABLE_SUM)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  1258
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  1259
lemma SUM_UNIQ: "seq.sums f x ==> x = seq.suminf f"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  1260
  by (import seq SUM_UNIQ)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  1261
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  1262
lemma SER_0: "(!!m. n <= m ==> f m = 0) ==> seq.sums f (real.sum (0, n) f)"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  1263
  by (import seq SER_0)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  1264
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  1265
lemma SER_POS_LE: "seq.summable f & (ALL m>=n. 0 <= f m) ==> real.sum (0, n) f <= seq.suminf f"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  1266
  by (import seq SER_POS_LE)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  1267
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  1268
lemma SER_POS_LT: "seq.summable f & (ALL m>=n. 0 < f m) ==> real.sum (0, n) f < seq.suminf f"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  1269
  by (import seq SER_POS_LT)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  1270
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  1271
lemma SER_GROUP: "seq.summable f & 0 < k
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  1272
==> seq.sums (%n. real.sum (n * k, k) f) (seq.suminf f)"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  1273
  by (import seq SER_GROUP)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  1274
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  1275
lemma SER_PAIR: "seq.summable f ==> seq.sums (%n. real.sum (2 * n, 2) f) (seq.suminf f)"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  1276
  by (import seq SER_PAIR)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  1277
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  1278
lemma SER_OFFSET: "seq.summable f
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  1279
==> seq.sums (%n. f (n + k)) (seq.suminf f - real.sum (0, k) f)"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  1280
  by (import seq SER_OFFSET)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  1281
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  1282
lemma SER_POS_LT_PAIR: "seq.summable f & (ALL d. 0 < f (n + 2 * d) + f (n + (2 * d + 1)))
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  1283
==> real.sum (0, n) f < seq.suminf f"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  1284
  by (import seq SER_POS_LT_PAIR)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  1285
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  1286
lemma SER_ADD: "seq.sums x x0 & seq.sums y y0 ==> seq.sums (%n. x n + y n) (x0 + y0)"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  1287
  by (import seq SER_ADD)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  1288
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  1289
lemma SER_CMUL: "seq.sums x x0 ==> seq.sums (%n. c * x n) (c * x0)"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  1290
  by (import seq SER_CMUL)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  1291
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  1292
lemma SER_NEG: "seq.sums x x0 ==> seq.sums (%xa. - x xa) (- x0)"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  1293
  by (import seq SER_NEG)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  1294
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  1295
lemma SER_SUB: "seq.sums x x0 & seq.sums y y0 ==> seq.sums (%xa. x xa - y xa) (x0 - y0)"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  1296
  by (import seq SER_SUB)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  1297
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  1298
lemma SER_CDIV: "seq.sums x x0 ==> seq.sums (%xa. x xa / c) (x0 / c)"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  1299
  by (import seq SER_CDIV)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  1300
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  1301
lemma SER_CAUCHY: "seq.summable f =
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  1302
(ALL e>0. EX N. ALL m n. N <= m --> abs (real.sum (m, n) f) < e)"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  1303
  by (import seq SER_CAUCHY)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  1304
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  1305
lemma SER_ZERO: "seq.summable f ==> hol4--> f 0"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  1306
  by (import seq SER_ZERO)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  1307
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  1308
lemma SER_COMPAR: "(EX x. ALL xa>=x. abs (f xa) <= g xa) & seq.summable g ==> seq.summable f"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  1309
  by (import seq SER_COMPAR)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  1310
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  1311
lemma SER_COMPARA: "(EX x. ALL xa>=x. abs (f xa) <= g xa) & seq.summable g
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  1312
==> seq.summable (%k. abs (f k))"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  1313
  by (import seq SER_COMPARA)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  1314
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  1315
lemma SER_LE: "(ALL n. f n <= g n) & seq.summable f & seq.summable g
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  1316
==> seq.suminf f <= seq.suminf g"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  1317
  by (import seq SER_LE)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  1318
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  1319
lemma SER_LE2: "(ALL n. abs (f n) <= g n) & seq.summable g
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  1320
==> seq.summable f & seq.suminf f <= seq.suminf g"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  1321
  by (import seq SER_LE2)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  1322
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  1323
lemma SER_ACONV: "seq.summable (%n. abs (f n)) ==> seq.summable f"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  1324
  by (import seq SER_ACONV)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  1325
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  1326
lemma SER_ABS: "seq.summable (%n. abs (f n))
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  1327
==> abs (seq.suminf f) <= seq.suminf (%n. abs (f n))"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  1328
  by (import seq SER_ABS)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  1329
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  1330
lemma GP_FINITE: "x ~= 1 ==> real.sum (0, n) (op ^ x) = (x ^ n - 1) / (x - 1)"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  1331
  by (import seq GP_FINITE)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  1332
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  1333
lemma GP: "abs x < 1 ==> seq.sums (op ^ x) (inverse (1 - x))"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  1334
  by (import seq GP)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  1335
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  1336
lemma SER_RATIO: "c < 1 & (ALL n>=N. abs (f (Suc n)) <= c * abs (f n)) ==> seq.summable f"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  1337
  by (import seq SER_RATIO)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  1338
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  1339
;end_setup
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  1340
46787
3d3d8f8929a7 file system structure separating HOL4 and HOL Light concerns
haftmann
parents: 46780
diff changeset
  1341
setup_theory "~~/src/HOL/Import/HOL4/Generated" lim
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  1342
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  1343
definition
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  1344
  tends_real_real :: "(real => real) => real => real => bool"  where
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  1345
  "tends_real_real == %f l x0. tends f l (mtop mr1, nets.tendsto (mr1, x0))"
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  1346
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  1347
lemma tends_real_real: "tends_real_real f l x0 = tends f l (mtop mr1, nets.tendsto (mr1, x0))"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  1348
  by (import lim tends_real_real)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  1349
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  1350
lemma LIM: "tends_real_real f y0 x0 =
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  1351
(ALL e>0.
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  1352
    EX d>0.
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  1353
       ALL x. 0 < abs (x - x0) & abs (x - x0) < d --> abs (f x - y0) < e)"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  1354
  by (import lim LIM)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  1355
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  1356
lemma LIM_CONST: "tends_real_real (%x. k) k x"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  1357
  by (import lim LIM_CONST)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  1358
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  1359
lemma LIM_ADD: "tends_real_real f l x & tends_real_real g m x
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  1360
==> tends_real_real (%x. f x + g x) (l + m) x"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  1361
  by (import lim LIM_ADD)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  1362
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  1363
lemma LIM_MUL: "tends_real_real f l x & tends_real_real g m x
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  1364
==> tends_real_real (%x. f x * g x) (l * m) x"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  1365
  by (import lim LIM_MUL)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  1366
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  1367
lemma LIM_NEG: "tends_real_real f l x = tends_real_real (%x. - f x) (- l) x"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  1368
  by (import lim LIM_NEG)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  1369
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  1370
lemma LIM_INV: "tends_real_real f l x & l ~= 0
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  1371
==> tends_real_real (%x. inverse (f x)) (inverse l) x"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  1372
  by (import lim LIM_INV)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  1373
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  1374
lemma LIM_SUB: "tends_real_real f l x & tends_real_real g m x
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  1375
==> tends_real_real (%x. f x - g x) (l - m) x"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  1376
  by (import lim LIM_SUB)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  1377
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  1378
lemma LIM_DIV: "tends_real_real f l x & tends_real_real g m x & m ~= 0
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  1379
==> tends_real_real (%x. f x / g x) (l / m) x"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  1380
  by (import lim LIM_DIV)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  1381
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  1382
lemma LIM_NULL: "tends_real_real f l x = tends_real_real (%x. f x - l) 0 x"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  1383
  by (import lim LIM_NULL)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  1384
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  1385
lemma LIM_X: "tends_real_real (%x. x) x0 x0"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  1386
  by (import lim LIM_X)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  1387
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  1388
lemma LIM_UNIQ: "tends_real_real f l x & tends_real_real f m x ==> l = m"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  1389
  by (import lim LIM_UNIQ)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  1390
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  1391
lemma LIM_EQUAL: "(!!x. x ~= x0 ==> f x = g x)
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  1392
==> tends_real_real f l x0 = tends_real_real g l x0"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  1393
  by (import lim LIM_EQUAL)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  1394
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  1395
lemma LIM_TRANSFORM: "tends_real_real (%x. f x - g x) 0 x0 & tends_real_real g l x0
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  1396
==> tends_real_real f l x0"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  1397
  by (import lim LIM_TRANSFORM)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  1398
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  1399
definition
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  1400
  diffl :: "(real => real) => real => real => bool"  where
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  1401
  "diffl == %f l x. tends_real_real (%h. (f (x + h) - f x) / h) l 0"
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  1402
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  1403
lemma diffl: "diffl f l x = tends_real_real (%h. (f (x + h) - f x) / h) l 0"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  1404
  by (import lim diffl)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  1405
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  1406
definition
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  1407
  contl :: "(real => real) => real => bool"  where
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  1408
  "contl == %f x. tends_real_real (%h. f (x + h)) (f x) 0"
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  1409
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  1410
lemma contl: "contl f x = tends_real_real (%h. f (x + h)) (f x) 0"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  1411
  by (import lim contl)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  1412
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  1413
consts
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  1414
  differentiable :: "(real => real) => real => bool" 
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  1415
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  1416
defs
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  1417
  differentiable_def: "lim.differentiable == %f x. EX l. diffl f l x"
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  1418
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  1419
lemma differentiable: "lim.differentiable f x = (EX l. diffl f l x)"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  1420
  by (import lim differentiable)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  1421
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  1422
lemma DIFF_UNIQ: "diffl f l x & diffl f m x ==> l = m"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  1423
  by (import lim DIFF_UNIQ)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  1424
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  1425
lemma DIFF_CONT: "diffl f l x ==> contl f x"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  1426
  by (import lim DIFF_CONT)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  1427
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  1428
lemma CONTL_LIM: "contl f x = tends_real_real f (f x) x"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  1429
  by (import lim CONTL_LIM)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  1430
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  1431
lemma DIFF_CARAT: "diffl f l x =
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  1432
(EX g. (ALL z. f z - f x = g z * (z - x)) & contl g x & g x = l)"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  1433
  by (import lim DIFF_CARAT)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  1434
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  1435
lemma CONT_CONST: "contl (%x. k) x"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  1436
  by (import lim CONT_CONST)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  1437
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  1438
lemma CONT_ADD: "contl f x & contl g x ==> contl (%x. f x + g x) x"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  1439
  by (import lim CONT_ADD)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  1440
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  1441
lemma CONT_MUL: "contl f x & contl g x ==> contl (%x. f x * g x) x"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  1442
  by (import lim CONT_MUL)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  1443
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  1444
lemma CONT_NEG: "contl f x ==> contl (%x. - f x) x"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  1445
  by (import lim CONT_NEG)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  1446
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  1447
lemma CONT_INV: "contl f x & f x ~= 0 ==> contl (%x. inverse (f x)) x"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  1448
  by (import lim CONT_INV)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  1449
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  1450
lemma CONT_SUB: "contl f x & contl g x ==> contl (%x. f x - g x) x"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  1451
  by (import lim CONT_SUB)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  1452
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  1453
lemma CONT_DIV: "contl f x & contl g x & g x ~= 0 ==> contl (%x. f x / g x) x"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  1454
  by (import lim CONT_DIV)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  1455
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  1456
lemma CONT_COMPOSE: "contl f x & contl g (f x) ==> contl (%x. g (f x)) x"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  1457
  by (import lim CONT_COMPOSE)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  1458
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  1459
lemma IVT: "a <= b & (f a <= y & y <= f b) & (ALL x. a <= x & x <= b --> contl f x)
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  1460
==> EX x>=a. x <= b & f x = y"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  1461
  by (import lim IVT)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  1462
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  1463
lemma IVT2: "a <= b & (f b <= y & y <= f a) & (ALL x. a <= x & x <= b --> contl f x)
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  1464
==> EX x>=a. x <= b & f x = y"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  1465
  by (import lim IVT2)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  1466
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  1467
lemma DIFF_CONST: "diffl (%x. k) 0 x"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  1468
  by (import lim DIFF_CONST)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  1469
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  1470
lemma DIFF_ADD: "diffl f l x & diffl g m x ==> diffl (%x. f x + g x) (l + m) x"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  1471
  by (import lim DIFF_ADD)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  1472
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  1473
lemma DIFF_MUL: "diffl f l x & diffl g m x ==> diffl (%x. f x * g x) (l * g x + m * f x) x"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  1474
  by (import lim DIFF_MUL)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  1475
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  1476
lemma DIFF_CMUL: "diffl f l x ==> diffl (%x. c * f x) (c * l) x"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  1477
  by (import lim DIFF_CMUL)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  1478
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  1479
lemma DIFF_NEG: "diffl f l x ==> diffl (%x. - f x) (- l) x"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  1480
  by (import lim DIFF_NEG)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  1481
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  1482
lemma DIFF_SUB: "diffl f l x & diffl g m x ==> diffl (%x. f x - g x) (l - m) x"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  1483
  by (import lim DIFF_SUB)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  1484
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  1485
lemma DIFF_CHAIN: "diffl f l (g x) & diffl g m x ==> diffl (%x. f (g x)) (l * m) x"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  1486
  by (import lim DIFF_CHAIN)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  1487
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  1488
lemma DIFF_X: "diffl (%x. x) 1 x"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  1489
  by (import lim DIFF_X)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  1490
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  1491
lemma DIFF_POW: "diffl (%x. x ^ n) (real n * x ^ (n - 1)) x"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  1492
  by (import lim DIFF_POW)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  1493
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  1494
lemma DIFF_XM1: "x ~= 0 ==> diffl inverse (- (inverse x ^ 2)) x"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  1495
  by (import lim DIFF_XM1)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  1496
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  1497
lemma DIFF_INV: "diffl f l x & f x ~= 0 ==> diffl (%x. inverse (f x)) (- (l / f x ^ 2)) x"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  1498
  by (import lim DIFF_INV)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  1499
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  1500
lemma DIFF_DIV: "diffl f l x & diffl g m x & g x ~= 0
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  1501
==> diffl (%x. f x / g x) ((l * g x - m * f x) / g x ^ 2) x"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  1502
  by (import lim DIFF_DIV)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  1503
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  1504
lemma DIFF_SUM: "(!!r. m <= r & r < m + n ==> diffl (f r) (f' r x) x)
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  1505
==> diffl (%x. real.sum (m, n) (%n. f n x)) (real.sum (m, n) (%r. f' r x)) x"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  1506
  by (import lim DIFF_SUM)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  1507
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  1508
lemma CONT_BOUNDED: "a <= b & (ALL x. a <= x & x <= b --> contl f x)
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  1509
==> EX M. ALL x. a <= x & x <= b --> f x <= M"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  1510
  by (import lim CONT_BOUNDED)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  1511
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  1512
lemma CONT_HASSUP: "a <= b & (ALL x. a <= x & x <= b --> contl f x)
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  1513
==> EX M. (ALL x. a <= x & x <= b --> f x <= M) &
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  1514
          (ALL N<M. EX x>=a. x <= b & N < f x)"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  1515
  by (import lim CONT_HASSUP)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  1516
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  1517
lemma CONT_ATTAINS: "a <= b & (ALL x. a <= x & x <= b --> contl f x)
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  1518
==> EX x. (ALL xa. a <= xa & xa <= b --> f xa <= x) &
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  1519
          (EX xa>=a. xa <= b & f xa = x)"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  1520
  by (import lim CONT_ATTAINS)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  1521
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  1522
lemma CONT_ATTAINS2: "a <= b & (ALL x. a <= x & x <= b --> contl f x)
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  1523
==> EX x. (ALL xa. a <= xa & xa <= b --> x <= f xa) &
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  1524
          (EX xa>=a. xa <= b & f xa = x)"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  1525
  by (import lim CONT_ATTAINS2)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  1526
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  1527
lemma CONT_ATTAINS_ALL: "a <= b & (ALL x. a <= x & x <= b --> contl f x)
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  1528
==> EX x M.
17694
b7870c2bd7df mapped "-->" to "hol4-->"
obua
parents: 17652
diff changeset
  1529
       x <= M &
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  1530
       (ALL y. x <= y & y <= M --> (EX x>=a. x <= b & f x = y)) &
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  1531
       (ALL xa. a <= xa & xa <= b --> x <= f xa & f xa <= M)"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  1532
  by (import lim CONT_ATTAINS_ALL)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  1533
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  1534
lemma DIFF_LINC: "diffl f l x & 0 < l ==> EX d>0. ALL h. 0 < h & h < d --> f x < f (x + h)"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  1535
  by (import lim DIFF_LINC)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  1536
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  1537
lemma DIFF_LDEC: "diffl f l x & l < 0 ==> EX d>0. ALL h. 0 < h & h < d --> f x < f (x - h)"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  1538
  by (import lim DIFF_LDEC)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  1539
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  1540
lemma DIFF_LMAX: "diffl f l x & (EX d>0. ALL y. abs (x - y) < d --> f y <= f x) ==> l = 0"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  1541
  by (import lim DIFF_LMAX)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  1542
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  1543
lemma DIFF_LMIN: "diffl f l x & (EX d>0. ALL y. abs (x - y) < d --> f x <= f y) ==> l = 0"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  1544
  by (import lim DIFF_LMIN)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  1545
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  1546
lemma DIFF_LCONST: "diffl f l x & (EX d>0. ALL y. abs (x - y) < d --> f y = f x) ==> l = 0"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  1547
  by (import lim DIFF_LCONST)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  1548
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  1549
lemma ROLLE: "a < b &
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  1550
f a = f b &
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  1551
(ALL x. a <= x & x <= b --> contl f x) &
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  1552
(ALL x. a < x & x < b --> lim.differentiable f x)
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  1553
==> EX z>a. z < b & diffl f 0 z"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  1554
  by (import lim ROLLE)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  1555
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  1556
lemma MVT: "a < b &
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  1557
(ALL x. a <= x & x <= b --> contl f x) &
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  1558
(ALL x. a < x & x < b --> lim.differentiable f x)
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  1559
==> EX l z. a < z & z < b & diffl f l z & f b - f a = (b - a) * l"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  1560
  by (import lim MVT)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  1561
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  1562
lemma DIFF_ISCONST_END: "a < b &
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  1563
(ALL x. a <= x & x <= b --> contl f x) &
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  1564
(ALL x. a < x & x < b --> diffl f 0 x)
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  1565
==> f b = f a"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  1566
  by (import lim DIFF_ISCONST_END)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  1567
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  1568
lemma DIFF_ISCONST: "[| a < b &
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  1569
   (ALL x. a <= x & x <= b --> contl f x) &
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  1570
   (ALL x. a < x & x < b --> diffl f 0 x);
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  1571
   a <= x & x <= b |]
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  1572
==> f x = f a"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  1573
  by (import lim DIFF_ISCONST)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  1574
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  1575
lemma DIFF_ISCONST_ALL: "(!!x. diffl f 0 x) ==> f x = f y"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  1576
  by (import lim DIFF_ISCONST_ALL)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  1577
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  1578
lemma INTERVAL_ABS: "((x::real) - (d::real) <= (z::real) & z <= x + d) = (abs (z - x) <= d)"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  1579
  by (import lim INTERVAL_ABS)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  1580
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  1581
lemma CONT_INJ_LEMMA: "0 < d &
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  1582
(ALL z. abs (z - x) <= d --> g (f z) = z) &
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  1583
(ALL z. abs (z - x) <= d --> contl f z)
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  1584
==> ~ (ALL z. abs (z - x) <= d --> f z <= f x)"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  1585
  by (import lim CONT_INJ_LEMMA)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  1586
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  1587
lemma CONT_INJ_LEMMA2: "0 < d &
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  1588
(ALL z. abs (z - x) <= d --> g (f z) = z) &
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  1589
(ALL z. abs (z - x) <= d --> contl f z)
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  1590
==> ~ (ALL z. abs (z - x) <= d --> f x <= f z)"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  1591
  by (import lim CONT_INJ_LEMMA2)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  1592
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  1593
lemma CONT_INJ_RANGE: "0 < d &
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  1594
(ALL z. abs (z - x) <= d --> g (f z) = z) &
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  1595
(ALL z. abs (z - x) <= d --> contl f z)
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  1596
==> EX e>0. ALL y. abs (y - f x) <= e --> (EX z. abs (z - x) <= d & f z = y)"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  1597
  by (import lim CONT_INJ_RANGE)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  1598
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  1599
lemma CONT_INVERSE: "0 < d &
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  1600
(ALL z. abs (z - x) <= d --> g (f z) = z) &
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  1601
(ALL z. abs (z - x) <= d --> contl f z)
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  1602
==> contl g (f x)"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  1603
  by (import lim CONT_INVERSE)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  1604
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  1605
lemma DIFF_INVERSE: "0 < d &
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  1606
(ALL z. abs (z - x) <= d --> g (f z) = z) &
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  1607
(ALL z. abs (z - x) <= d --> contl f z) & diffl f l x & l ~= 0
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  1608
==> diffl g (inverse l) (f x)"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  1609
  by (import lim DIFF_INVERSE)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  1610
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  1611
lemma DIFF_INVERSE_LT: "0 < d &
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  1612
(ALL z. abs (z - x) < d --> g (f z) = z) &
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  1613
(ALL z. abs (z - x) < d --> contl f z) & diffl f l x & l ~= 0
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  1614
==> diffl g (inverse l) (f x)"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  1615
  by (import lim DIFF_INVERSE_LT)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  1616
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  1617
lemma INTERVAL_CLEMMA: "(a::real) < (x::real) & x < (b::real)
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  1618
==> EX d>0::real. ALL y::real. abs (y - x) <= d --> a < y & y < b"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  1619
  by (import lim INTERVAL_CLEMMA)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  1620
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  1621
lemma DIFF_INVERSE_OPEN: "a < x &
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  1622
x < b &
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  1623
(ALL z. a < z & z < b --> g (f z) = z & contl f z) & diffl f l x & l ~= 0
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  1624
==> diffl g (inverse l) (f x)"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  1625
  by (import lim DIFF_INVERSE_OPEN)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  1626
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  1627
;end_setup
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  1628
46787
3d3d8f8929a7 file system structure separating HOL4 and HOL Light concerns
haftmann
parents: 46780
diff changeset
  1629
setup_theory "~~/src/HOL/Import/HOL4/Generated" powser
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  1630
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  1631
lemma POWDIFF_LEMMA: "real.sum (0, Suc n) (%p. x ^ p * y ^ (Suc n - p)) =
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  1632
y * real.sum (0, Suc n) (%p. x ^ p * y ^ (n - p))"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  1633
  by (import powser POWDIFF_LEMMA)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  1634
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  1635
lemma POWDIFF: "x ^ Suc n - y ^ Suc n =
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  1636
(x - y) * real.sum (0, Suc n) (%p. x ^ p * y ^ (n - p))"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  1637
  by (import powser POWDIFF)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  1638
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  1639
lemma POWREV: "real.sum (0, Suc n) (%xa. x ^ xa * y ^ (n - xa)) =
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  1640
real.sum (0, Suc n) (%xa. x ^ (n - xa) * y ^ xa)"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  1641
  by (import powser POWREV)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  1642
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  1643
lemma POWSER_INSIDEA: "seq.summable (%n. f n * x ^ n) & abs z < abs x
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  1644
==> seq.summable (%n. abs (f n) * z ^ n)"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  1645
  by (import powser POWSER_INSIDEA)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  1646
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  1647
lemma POWSER_INSIDE: "seq.summable (%n. f n * x ^ n) & abs z < abs x
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  1648
==> seq.summable (%n. f n * z ^ n)"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  1649
  by (import powser POWSER_INSIDE)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  1650
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  1651
consts
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  1652
  diffs :: "(nat => real) => nat => real" 
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  1653
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  1654
defs
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  1655
  diffs_def: "powser.diffs == %c n. real (Suc n) * c (Suc n)"
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  1656
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  1657
lemma diffs: "powser.diffs c = (%n. real (Suc n) * c (Suc n))"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  1658
  by (import powser diffs)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  1659
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  1660
lemma DIFFS_NEG: "powser.diffs (%n. - c n) = (%x. - powser.diffs c x)"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  1661
  by (import powser DIFFS_NEG)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  1662
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  1663
lemma DIFFS_LEMMA: "real.sum (0, n) (%n. powser.diffs c n * x ^ n) =
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  1664
real.sum (0, n) (%n. real n * (c n * x ^ (n - 1))) +
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  1665
real n * (c n * x ^ (n - 1))"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  1666
  by (import powser DIFFS_LEMMA)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  1667
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  1668
lemma DIFFS_LEMMA2: "real.sum (0, n) (%n. real n * (c n * x ^ (n - 1))) =
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  1669
real.sum (0, n) (%n. powser.diffs c n * x ^ n) -
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  1670
real n * (c n * x ^ (n - 1))"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  1671
  by (import powser DIFFS_LEMMA2)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  1672
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  1673
lemma DIFFS_EQUIV: "seq.summable (%n. powser.diffs c n * x ^ n)
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  1674
==> seq.sums (%n. real n * (c n * x ^ (n - 1)))
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  1675
     (seq.suminf (%n. powser.diffs c n * x ^ n))"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  1676
  by (import powser DIFFS_EQUIV)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  1677
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  1678
lemma TERMDIFF_LEMMA1: "real.sum (0, m) (%p. (z + h) ^ (m - p) * z ^ p - z ^ m) =
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  1679
real.sum (0, m) (%p. z ^ p * ((z + h) ^ (m - p) - z ^ (m - p)))"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  1680
  by (import powser TERMDIFF_LEMMA1)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  1681
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  1682
lemma TERMDIFF_LEMMA2: "h ~= 0
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  1683
==> ((z + h) ^ n - z ^ n) / h - real n * z ^ (n - 1) =
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  1684
    h *
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  1685
    real.sum (0, n - 1)
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  1686
     (%p. z ^ p *
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  1687
          real.sum (0, n - 1 - p) (%q. (z + h) ^ q * z ^ (n - 2 - p - q)))"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  1688
  by (import powser TERMDIFF_LEMMA2)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  1689
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  1690
lemma TERMDIFF_LEMMA3: "h ~= 0 & abs z <= k' & abs (z + h) <= k'
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  1691
==> abs (((z + h) ^ n - z ^ n) / h - real n * z ^ (n - 1))
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  1692
    <= real n * (real (n - 1) * (k' ^ (n - 2) * abs h))"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  1693
  by (import powser TERMDIFF_LEMMA3)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  1694
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  1695
lemma TERMDIFF_LEMMA4: "0 < k & (ALL h. 0 < abs h & abs h < k --> abs (f h) <= k' * abs h)
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  1696
==> tends_real_real f 0 0"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  1697
  by (import powser TERMDIFF_LEMMA4)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  1698
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  1699
lemma TERMDIFF_LEMMA5: "0 < k &
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  1700
seq.summable f &
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  1701
(ALL h. 0 < abs h & abs h < k --> (ALL n. abs (g h n) <= f n * abs h))
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  1702
==> tends_real_real (%h. seq.suminf (g h)) 0 0"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  1703
  by (import powser TERMDIFF_LEMMA5)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  1704
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  1705
lemma TERMDIFF: "seq.summable (%n. c n * k' ^ n) &
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  1706
seq.summable (%n. powser.diffs c n * k' ^ n) &
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  1707
seq.summable (%n. powser.diffs (powser.diffs c) n * k' ^ n) & abs x < abs k'
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  1708
==> diffl (%x. seq.suminf (%n. c n * x ^ n))
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  1709
     (seq.suminf (%n. powser.diffs c n * x ^ n)) x"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  1710
  by (import powser TERMDIFF)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  1711
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  1712
;end_setup
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  1713
46787
3d3d8f8929a7 file system structure separating HOL4 and HOL Light concerns
haftmann
parents: 46780
diff changeset
  1714
setup_theory "~~/src/HOL/Import/HOL4/Generated" transc
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  1715
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  1716
consts
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  1717
  exp :: "real => real" 
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  1718
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  1719
defs
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  1720
  exp_def: "transc.exp == %x. seq.suminf (%n. inverse (real (FACT n)) * x ^ n)"
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  1721
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  1722
lemma exp: "transc.exp x = seq.suminf (%n. inverse (real (FACT n)) * x ^ n)"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  1723
  by (import transc exp)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  1724
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  1725
consts
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  1726
  cos :: "real => real" 
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  1727
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  1728
defs
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  1729
  cos_def: "transc.cos ==
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  1730
%x. seq.suminf
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  1731
     (%n. (if EVEN n then (- 1) ^ (n div 2) / real (FACT n) else 0) * x ^ n)"
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  1732
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  1733
lemma cos: "transc.cos x =
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  1734
seq.suminf
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  1735
 (%n. (if EVEN n then (- 1) ^ (n div 2) / real (FACT n) else 0) * x ^ n)"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  1736
  by (import transc cos)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  1737
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  1738
consts
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  1739
  sin :: "real => real" 
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  1740
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  1741
defs
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  1742
  sin_def: "transc.sin ==
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  1743
%x. seq.suminf
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  1744
     (%n. (if EVEN n then 0 else (- 1) ^ ((n - 1) div 2) / real (FACT n)) *
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  1745
          x ^ n)"
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  1746
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  1747
lemma sin: "transc.sin x =
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  1748
seq.suminf
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  1749
 (%n. (if EVEN n then 0 else (- 1) ^ ((n - 1) div 2) / real (FACT n)) *
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  1750
      x ^ n)"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  1751
  by (import transc sin)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  1752
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  1753
lemma EXP_CONVERGES: "seq.sums (%n. inverse (real (FACT n)) * x ^ n) (transc.exp x)"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  1754
  by (import transc EXP_CONVERGES)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  1755
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  1756
lemma SIN_CONVERGES: "seq.sums
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  1757
 (%n. (if EVEN n then 0 else (- 1) ^ ((n - 1) div 2) / real (FACT n)) *
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  1758
      x ^ n)
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  1759
 (transc.sin x)"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  1760
  by (import transc SIN_CONVERGES)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  1761
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  1762
lemma COS_CONVERGES: "seq.sums
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  1763
 (%n. (if EVEN n then (- 1) ^ (n div 2) / real (FACT n) else 0) * x ^ n)
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  1764
 (transc.cos x)"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  1765
  by (import transc COS_CONVERGES)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  1766
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  1767
lemma EXP_FDIFF: "powser.diffs (%n. inverse (real (FACT n))) = (%n. inverse (real (FACT n)))"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  1768
  by (import transc EXP_FDIFF)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  1769
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  1770
lemma SIN_FDIFF: "powser.diffs
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  1771
 (%n. if EVEN n then 0 else (- 1) ^ ((n - 1) div 2) / real (FACT n)) =
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  1772
(%n. if EVEN n then (- 1) ^ (n div 2) / real (FACT n) else 0)"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  1773
  by (import transc SIN_FDIFF)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  1774
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  1775
lemma COS_FDIFF: "powser.diffs (%n. if EVEN n then (- 1) ^ (n div 2) / real (FACT n) else 0) =
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  1776
(%n. - (if EVEN n then 0 else (- 1) ^ ((n - 1) div 2) / real (FACT n)))"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  1777
  by (import transc COS_FDIFF)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  1778
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  1779
lemma SIN_NEGLEMMA: "- transc.sin x =
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  1780
seq.suminf
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  1781
 (%n. - ((if EVEN n then 0 else (- 1) ^ ((n - 1) div 2) / real (FACT n)) *
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  1782
         x ^ n))"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  1783
  by (import transc SIN_NEGLEMMA)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  1784
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  1785
lemma DIFF_EXP: "diffl transc.exp (transc.exp x) x"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  1786
  by (import transc DIFF_EXP)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  1787
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  1788
lemma DIFF_SIN: "diffl transc.sin (transc.cos x) x"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  1789
  by (import transc DIFF_SIN)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  1790
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  1791
lemma DIFF_COS: "diffl transc.cos (- transc.sin x) x"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  1792
  by (import transc DIFF_COS)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  1793
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  1794
lemma DIFF_COMPOSITE: "(diffl f l x & f x ~= 0 --> diffl (%x. inverse (f x)) (- (l / f x ^ 2)) x) &
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  1795
(diffl f l x & diffl g m x & g x ~= 0 -->
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  1796
 diffl (%x. f x / g x) ((l * g x - m * f x) / g x ^ 2) x) &
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  1797
(diffl f l x & diffl g m x --> diffl (%x. f x + g x) (l + m) x) &
17694
b7870c2bd7df mapped "-->" to "hol4-->"
obua
parents: 17652
diff changeset
  1798
(diffl f l x & diffl g m x -->
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  1799
 diffl (%x. f x * g x) (l * g x + m * f x) x) &
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  1800
(diffl f l x & diffl g m x --> diffl (%x. f x - g x) (l - m) x) &
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  1801
(diffl f l x --> diffl (%x. - f x) (- l) x) &
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  1802
(diffl g m x --> diffl (%x. g x ^ n) (real n * g x ^ (n - 1) * m) x) &
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  1803
(diffl g m x --> diffl (%x. transc.exp (g x)) (transc.exp (g x) * m) x) &
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  1804
(diffl g m x --> diffl (%x. transc.sin (g x)) (transc.cos (g x) * m) x) &
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  1805
(diffl g m x --> diffl (%x. transc.cos (g x)) (- transc.sin (g x) * m) x)"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  1806
  by (import transc DIFF_COMPOSITE)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  1807
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  1808
lemma EXP_0: "transc.exp 0 = 1"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  1809
  by (import transc EXP_0)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  1810
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  1811
lemma EXP_LE_X: "0 <= x ==> 1 + x <= transc.exp x"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  1812
  by (import transc EXP_LE_X)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  1813
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  1814
lemma EXP_LT_1: "0 < x ==> 1 < transc.exp x"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  1815
  by (import transc EXP_LT_1)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  1816
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  1817
lemma EXP_ADD_MUL: "transc.exp (x + y) * transc.exp (- x) = transc.exp y"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  1818
  by (import transc EXP_ADD_MUL)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  1819
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  1820
lemma EXP_NEG_MUL: "transc.exp x * transc.exp (- x) = 1"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  1821
  by (import transc EXP_NEG_MUL)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  1822
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  1823
lemma EXP_NEG_MUL2: "transc.exp (- x) * transc.exp x = 1"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  1824
  by (import transc EXP_NEG_MUL2)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  1825
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  1826
lemma EXP_NEG: "transc.exp (- x) = inverse (transc.exp x)"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  1827
  by (import transc EXP_NEG)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  1828
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  1829
lemma EXP_ADD: "transc.exp (x + y) = transc.exp x * transc.exp y"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  1830
  by (import transc EXP_ADD)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  1831
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  1832
lemma EXP_POS_LE: "0 <= transc.exp x"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  1833
  by (import transc EXP_POS_LE)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  1834
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  1835
lemma EXP_NZ: "transc.exp x ~= 0"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  1836
  by (import transc EXP_NZ)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  1837
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  1838
lemma EXP_POS_LT: "0 < transc.exp x"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  1839
  by (import transc EXP_POS_LT)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  1840
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  1841
lemma EXP_N: "transc.exp (real n * x) = transc.exp x ^ n"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  1842
  by (import transc EXP_N)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  1843
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  1844
lemma EXP_SUB: "transc.exp (x - y) = transc.exp x / transc.exp y"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  1845
  by (import transc EXP_SUB)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  1846
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  1847
lemma EXP_MONO_IMP: "x < y ==> transc.exp x < transc.exp y"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  1848
  by (import transc EXP_MONO_IMP)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  1849
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  1850
lemma EXP_MONO_LT: "(transc.exp x < transc.exp y) = (x < y)"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  1851
  by (import transc EXP_MONO_LT)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  1852
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  1853
lemma EXP_MONO_LE: "(transc.exp x <= transc.exp y) = (x <= y)"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  1854
  by (import transc EXP_MONO_LE)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  1855
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  1856
lemma EXP_INJ: "(transc.exp x = transc.exp y) = (x = y)"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  1857
  by (import transc EXP_INJ)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  1858
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  1859
lemma EXP_TOTAL_LEMMA: "1 <= y ==> EX x>=0. x <= y - 1 & transc.exp x = y"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  1860
  by (import transc EXP_TOTAL_LEMMA)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  1861
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  1862
lemma EXP_TOTAL: "0 < y ==> EX x. transc.exp x = y"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  1863
  by (import transc EXP_TOTAL)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  1864
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  1865
consts
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  1866
  ln :: "real => real" 
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  1867
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  1868
defs
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  1869
  ln_def: "transc.ln == %x. SOME u. transc.exp u = x"
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  1870
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  1871
lemma ln: "transc.ln x = (SOME u. transc.exp u = x)"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  1872
  by (import transc ln)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  1873
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  1874
lemma LN_EXP: "transc.ln (transc.exp x) = x"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  1875
  by (import transc LN_EXP)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  1876
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  1877
lemma EXP_LN: "(transc.exp (transc.ln x) = x) = (0 < x)"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  1878
  by (import transc EXP_LN)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  1879
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  1880
lemma LN_MUL: "0 < x & 0 < y ==> transc.ln (x * y) = transc.ln x + transc.ln y"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  1881
  by (import transc LN_MUL)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  1882
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  1883
lemma LN_INJ: "0 < x & 0 < y ==> (transc.ln x = transc.ln y) = (x = y)"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  1884
  by (import transc LN_INJ)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  1885
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  1886
lemma LN_1: "transc.ln 1 = 0"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  1887
  by (import transc LN_1)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  1888
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  1889
lemma LN_INV: "0 < x ==> transc.ln (inverse x) = - transc.ln x"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  1890
  by (import transc LN_INV)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  1891
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  1892
lemma LN_DIV: "0 < x & 0 < y ==> transc.ln (x / y) = transc.ln x - transc.ln y"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  1893
  by (import transc LN_DIV)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  1894
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  1895
lemma LN_MONO_LT: "0 < x & 0 < y ==> (transc.ln x < transc.ln y) = (x < y)"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  1896
  by (import transc LN_MONO_LT)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  1897
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  1898
lemma LN_MONO_LE: "0 < x & 0 < y ==> (transc.ln x <= transc.ln y) = (x <= y)"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  1899
  by (import transc LN_MONO_LE)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  1900
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  1901
lemma LN_POW: "0 < x ==> transc.ln (x ^ n) = real n * transc.ln x"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  1902
  by (import transc LN_POW)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  1903
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  1904
lemma LN_LE: "0 <= x ==> transc.ln (1 + x) <= x"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  1905
  by (import transc LN_LE)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  1906
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  1907
lemma LN_LT_X: "0 < x ==> transc.ln x < x"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  1908
  by (import transc LN_LT_X)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  1909
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  1910
lemma LN_POS: "1 <= x ==> 0 <= transc.ln x"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  1911
  by (import transc LN_POS)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  1912
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  1913
consts
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  1914
  root :: "nat => real => real" 
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  1915
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  1916
defs
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  1917
  root_def: "transc.root == %n x. SOME u. (0 < x --> 0 < u) & u ^ n = x"
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  1918
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  1919
lemma root: "transc.root n x = (SOME u. (0 < x --> 0 < u) & u ^ n = x)"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  1920
  by (import transc root)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  1921
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  1922
consts
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  1923
  sqrt :: "real => real" 
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  1924
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  1925
defs
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  1926
  sqrt_def: "transc.sqrt == transc.root 2"
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  1927
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  1928
lemma sqrt: "transc.sqrt x = transc.root 2 x"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  1929
  by (import transc sqrt)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  1930
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  1931
lemma ROOT_LT_LEMMA: "0 < x ==> transc.exp (transc.ln x / real (Suc n)) ^ Suc n = x"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  1932
  by (import transc ROOT_LT_LEMMA)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  1933
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  1934
lemma ROOT_LN: "0 < x ==> transc.root (Suc n) x = transc.exp (transc.ln x / real (Suc n))"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  1935
  by (import transc ROOT_LN)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  1936
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  1937
lemma ROOT_0: "transc.root (Suc n) 0 = 0"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  1938
  by (import transc ROOT_0)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  1939
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  1940
lemma ROOT_1: "transc.root (Suc n) 1 = 1"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  1941
  by (import transc ROOT_1)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  1942
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  1943
lemma ROOT_POS_LT: "0 < x ==> 0 < transc.root (Suc n) x"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  1944
  by (import transc ROOT_POS_LT)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  1945
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  1946
lemma ROOT_POW_POS: "0 <= x ==> transc.root (Suc n) x ^ Suc n = x"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  1947
  by (import transc ROOT_POW_POS)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  1948
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  1949
lemma POW_ROOT_POS: "0 <= x ==> transc.root (Suc n) (x ^ Suc n) = x"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  1950
  by (import transc POW_ROOT_POS)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  1951
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  1952
lemma ROOT_POS: "0 <= x ==> 0 <= transc.root (Suc n) x"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  1953
  by (import transc ROOT_POS)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  1954
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  1955
lemma ROOT_POS_UNIQ: "0 <= x & 0 <= y & y ^ Suc n = x ==> transc.root (Suc n) x = y"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  1956
  by (import transc ROOT_POS_UNIQ)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  1957
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  1958
lemma ROOT_MUL: "0 <= x & 0 <= y
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  1959
==> transc.root (Suc n) (x * y) =
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  1960
    transc.root (Suc n) x * transc.root (Suc n) y"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  1961
  by (import transc ROOT_MUL)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  1962
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  1963
lemma ROOT_INV: "0 <= x ==> transc.root (Suc n) (inverse x) = inverse (transc.root (Suc n) x)"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  1964
  by (import transc ROOT_INV)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  1965
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  1966
lemma ROOT_DIV: "0 <= xa & 0 <= xb
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  1967
==> transc.root (Suc x) (xa / xb) =
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  1968
    transc.root (Suc x) xa / transc.root (Suc x) xb"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  1969
  by (import transc ROOT_DIV)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  1970
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  1971
lemma ROOT_MONO_LE: "0 <= x & x <= y ==> transc.root (Suc n) x <= transc.root (Suc n) y"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  1972
  by (import transc ROOT_MONO_LE)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  1973
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  1974
lemma SQRT_0: "transc.sqrt 0 = 0"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  1975
  by (import transc SQRT_0)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  1976
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  1977
lemma SQRT_1: "transc.sqrt 1 = 1"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  1978
  by (import transc SQRT_1)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  1979
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  1980
lemma SQRT_POS_LT: "0 < x ==> 0 < transc.sqrt x"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  1981
  by (import transc SQRT_POS_LT)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  1982
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  1983
lemma SQRT_POS_LE: "0 <= x ==> 0 <= transc.sqrt x"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  1984
  by (import transc SQRT_POS_LE)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  1985
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  1986
lemma SQRT_POW2: "(transc.sqrt x ^ 2 = x) = (0 <= x)"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  1987
  by (import transc SQRT_POW2)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  1988
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  1989
lemma SQRT_POW_2: "0 <= x ==> transc.sqrt x ^ 2 = x"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  1990
  by (import transc SQRT_POW_2)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  1991
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  1992
lemma POW_2_SQRT: "0 <= x ==> transc.sqrt (x ^ 2) = x"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  1993
  by (import transc POW_2_SQRT)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  1994
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  1995
lemma SQRT_POS_UNIQ: "0 <= x & 0 <= xa & xa ^ 2 = x ==> transc.sqrt x = xa"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  1996
  by (import transc SQRT_POS_UNIQ)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  1997
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  1998
lemma SQRT_MUL: "0 <= x & 0 <= xa ==> transc.sqrt (x * xa) = transc.sqrt x * transc.sqrt xa"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  1999
  by (import transc SQRT_MUL)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  2000
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  2001
lemma SQRT_INV: "0 <= x ==> transc.sqrt (inverse x) = inverse (transc.sqrt x)"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  2002
  by (import transc SQRT_INV)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  2003
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  2004
lemma SQRT_DIV: "0 <= x & 0 <= xa ==> transc.sqrt (x / xa) = transc.sqrt x / transc.sqrt xa"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  2005
  by (import transc SQRT_DIV)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  2006
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  2007
lemma SQRT_MONO_LE: "0 <= x & x <= xa ==> transc.sqrt x <= transc.sqrt xa"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  2008
  by (import transc SQRT_MONO_LE)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  2009
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  2010
lemma SQRT_EVEN_POW2: "EVEN n ==> transc.sqrt (2 ^ n) = 2 ^ (n div 2)"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  2011
  by (import transc SQRT_EVEN_POW2)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  2012
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  2013
lemma REAL_DIV_SQRT: "0 <= x ==> x / transc.sqrt x = transc.sqrt x"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  2014
  by (import transc REAL_DIV_SQRT)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  2015
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  2016
lemma SQRT_EQ: "x ^ 2 = y & 0 <= x ==> x = transc.sqrt y"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  2017
  by (import transc SQRT_EQ)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  2018
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  2019
lemma SIN_0: "transc.sin 0 = 0"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  2020
  by (import transc SIN_0)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  2021
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  2022
lemma COS_0: "transc.cos 0 = 1"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  2023
  by (import transc COS_0)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  2024
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  2025
lemma SIN_CIRCLE: "transc.sin x ^ 2 + transc.cos x ^ 2 = 1"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  2026
  by (import transc SIN_CIRCLE)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  2027
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  2028
lemma SIN_BOUND: "abs (transc.sin x) <= 1"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  2029
  by (import transc SIN_BOUND)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  2030
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  2031
lemma SIN_BOUNDS: "- 1 <= transc.sin x & transc.sin x <= 1"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  2032
  by (import transc SIN_BOUNDS)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  2033
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  2034
lemma COS_BOUND: "abs (transc.cos x) <= 1"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  2035
  by (import transc COS_BOUND)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  2036
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  2037
lemma COS_BOUNDS: "- 1 <= transc.cos x & transc.cos x <= 1"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  2038
  by (import transc COS_BOUNDS)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  2039
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  2040
lemma SIN_COS_ADD: "(transc.sin (x + y) -
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  2041
 (transc.sin x * transc.cos y + transc.cos x * transc.sin y)) ^
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  2042
2 +
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  2043
(transc.cos (x + y) -
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  2044
 (transc.cos x * transc.cos y - transc.sin x * transc.sin y)) ^
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  2045
2 =
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  2046
0"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  2047
  by (import transc SIN_COS_ADD)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  2048
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  2049
lemma SIN_COS_NEG: "(transc.sin (- x) + transc.sin x) ^ 2 +
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  2050
(transc.cos (- x) - transc.cos x) ^ 2 =
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  2051
0"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  2052
  by (import transc SIN_COS_NEG)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  2053
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  2054
lemma SIN_ADD: "transc.sin (x + y) =
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  2055
transc.sin x * transc.cos y + transc.cos x * transc.sin y"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  2056
  by (import transc SIN_ADD)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  2057
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  2058
lemma COS_ADD: "transc.cos (x + y) =
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  2059
transc.cos x * transc.cos y - transc.sin x * transc.sin y"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  2060
  by (import transc COS_ADD)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  2061
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  2062
lemma SIN_NEG: "transc.sin (- x) = - transc.sin x"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  2063
  by (import transc SIN_NEG)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  2064
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  2065
lemma COS_NEG: "transc.cos (- x) = transc.cos x"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  2066
  by (import transc COS_NEG)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  2067
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  2068
lemma SIN_DOUBLE: "transc.sin (2 * x) = 2 * (transc.sin x * transc.cos x)"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  2069
  by (import transc SIN_DOUBLE)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  2070
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  2071
lemma COS_DOUBLE: "transc.cos (2 * x) = transc.cos x ^ 2 - transc.sin x ^ 2"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  2072
  by (import transc COS_DOUBLE)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  2073
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  2074
lemma SIN_PAIRED: "seq.sums (%n. (- 1) ^ n / real (FACT (2 * n + 1)) * x ^ (2 * n + 1))
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  2075
 (transc.sin x)"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  2076
  by (import transc SIN_PAIRED)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  2077
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  2078
lemma SIN_POS: "0 < x & x < 2 ==> 0 < transc.sin x"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  2079
  by (import transc SIN_POS)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  2080
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  2081
lemma COS_PAIRED: "seq.sums (%n. (- 1) ^ n / real (FACT (2 * n)) * x ^ (2 * n)) (transc.cos x)"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  2082
  by (import transc COS_PAIRED)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  2083
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  2084
lemma COS_2: "transc.cos 2 < 0"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  2085
  by (import transc COS_2)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  2086
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  2087
lemma COS_ISZERO: "EX! x. 0 <= x & x <= 2 & transc.cos x = 0"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  2088
  by (import transc COS_ISZERO)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  2089
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  2090
consts
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  2091
  pi :: "real" 
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  2092
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  2093
defs
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  2094
  pi_def: "transc.pi == 2 * (SOME x. 0 <= x & x <= 2 & transc.cos x = 0)"
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  2095
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  2096
lemma pi: "transc.pi = 2 * (SOME x. 0 <= x & x <= 2 & transc.cos x = 0)"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  2097
  by (import transc pi)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  2098
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  2099
lemma PI2: "transc.pi / 2 = (SOME x. 0 <= x & x <= 2 & transc.cos x = 0)"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  2100
  by (import transc PI2)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  2101
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  2102
lemma COS_PI2: "transc.cos (transc.pi / 2) = 0"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  2103
  by (import transc COS_PI2)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  2104
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  2105
lemma PI2_BOUNDS: "0 < transc.pi / 2 & transc.pi / 2 < 2"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  2106
  by (import transc PI2_BOUNDS)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  2107
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  2108
lemma PI_POS: "0 < transc.pi"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  2109
  by (import transc PI_POS)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  2110
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  2111
lemma SIN_PI2: "transc.sin (transc.pi / 2) = 1"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  2112
  by (import transc SIN_PI2)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  2113
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  2114
lemma COS_PI: "transc.cos transc.pi = - 1"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  2115
  by (import transc COS_PI)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  2116
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  2117
lemma SIN_PI: "transc.sin transc.pi = 0"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  2118
  by (import transc SIN_PI)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  2119
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  2120
lemma SIN_COS: "transc.sin x = transc.cos (transc.pi / 2 - x)"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  2121
  by (import transc SIN_COS)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  2122
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  2123
lemma COS_SIN: "transc.cos x = transc.sin (transc.pi / 2 - x)"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  2124
  by (import transc COS_SIN)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  2125
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  2126
lemma SIN_PERIODIC_PI: "transc.sin (x + transc.pi) = - transc.sin x"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  2127
  by (import transc SIN_PERIODIC_PI)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  2128
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  2129
lemma COS_PERIODIC_PI: "transc.cos (x + transc.pi) = - transc.cos x"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  2130
  by (import transc COS_PERIODIC_PI)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  2131
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  2132
lemma SIN_PERIODIC: "transc.sin (x + 2 * transc.pi) = transc.sin x"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  2133
  by (import transc SIN_PERIODIC)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  2134
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  2135
lemma COS_PERIODIC: "transc.cos (x + 2 * transc.pi) = transc.cos x"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  2136
  by (import transc COS_PERIODIC)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  2137
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  2138
lemma COS_NPI: "transc.cos (real n * transc.pi) = (- 1) ^ n"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  2139
  by (import transc COS_NPI)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  2140
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  2141
lemma SIN_NPI: "transc.sin (real (n::nat) * transc.pi) = (0::real)"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  2142
  by (import transc SIN_NPI)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  2143
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  2144
lemma SIN_POS_PI2: "0 < x & x < transc.pi / 2 ==> 0 < transc.sin x"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  2145
  by (import transc SIN_POS_PI2)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  2146
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  2147
lemma COS_POS_PI2: "0 < x & x < transc.pi / 2 ==> 0 < transc.cos x"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  2148
  by (import transc COS_POS_PI2)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  2149
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  2150
lemma COS_POS_PI: "- (transc.pi / 2) < x & x < transc.pi / 2 ==> 0 < transc.cos x"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  2151
  by (import transc COS_POS_PI)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  2152
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  2153
lemma SIN_POS_PI: "0 < x & x < transc.pi ==> 0 < transc.sin x"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  2154
  by (import transc SIN_POS_PI)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  2155
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  2156
lemma COS_POS_PI2_LE: "0 <= x & x <= transc.pi / 2 ==> 0 <= transc.cos x"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  2157
  by (import transc COS_POS_PI2_LE)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  2158
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  2159
lemma COS_POS_PI_LE: "- (transc.pi / 2) <= x & x <= transc.pi / 2 ==> 0 <= transc.cos x"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  2160
  by (import transc COS_POS_PI_LE)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  2161
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  2162
lemma SIN_POS_PI2_LE: "0 <= x & x <= transc.pi / 2 ==> 0 <= transc.sin x"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  2163
  by (import transc SIN_POS_PI2_LE)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  2164
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  2165
lemma SIN_POS_PI_LE: "0 <= x & x <= transc.pi ==> 0 <= transc.sin x"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  2166
  by (import transc SIN_POS_PI_LE)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  2167
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  2168
lemma COS_TOTAL: "- 1 <= y & y <= 1 ==> EX! x. 0 <= x & x <= transc.pi & transc.cos x = y"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  2169
  by (import transc COS_TOTAL)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  2170
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  2171
lemma SIN_TOTAL: "- 1 <= y & y <= 1
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  2172
==> EX! x. - (transc.pi / 2) <= x & x <= transc.pi / 2 & transc.sin x = y"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  2173
  by (import transc SIN_TOTAL)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  2174
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  2175
lemma COS_ZERO_LEMMA: "0 <= x & transc.cos x = 0 ==> EX n. ~ EVEN n & x = real n * (transc.pi / 2)"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  2176
  by (import transc COS_ZERO_LEMMA)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  2177
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  2178
lemma SIN_ZERO_LEMMA: "0 <= x & transc.sin x = 0 ==> EX n. EVEN n & x = real n * (transc.pi / 2)"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  2179
  by (import transc SIN_ZERO_LEMMA)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  2180
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  2181
lemma COS_ZERO: "(transc.cos x = 0) =
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  2182
((EX n. ~ EVEN n & x = real n * (transc.pi / 2)) |
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  2183
 (EX n. ~ EVEN n & x = - (real n * (transc.pi / 2))))"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  2184
  by (import transc COS_ZERO)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  2185
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  2186
lemma SIN_ZERO: "(transc.sin x = 0) =
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  2187
((EX n. EVEN n & x = real n * (transc.pi / 2)) |
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  2188
 (EX n. EVEN n & x = - (real n * (transc.pi / 2))))"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  2189
  by (import transc SIN_ZERO)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  2190
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  2191
consts
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  2192
  tan :: "real => real" 
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  2193
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  2194
defs
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  2195
  tan_def: "transc.tan == %x. transc.sin x / transc.cos x"
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  2196
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  2197
lemma tan: "transc.tan x = transc.sin x / transc.cos x"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  2198
  by (import transc tan)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  2199
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  2200
lemma TAN_0: "transc.tan 0 = 0"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  2201
  by (import transc TAN_0)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  2202
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  2203
lemma TAN_PI: "transc.tan transc.pi = 0"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  2204
  by (import transc TAN_PI)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  2205
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  2206
lemma TAN_NPI: "transc.tan (real (n::nat) * transc.pi) = (0::real)"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  2207
  by (import transc TAN_NPI)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  2208
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  2209
lemma TAN_NEG: "transc.tan (- x) = - transc.tan x"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  2210
  by (import transc TAN_NEG)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  2211
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  2212
lemma TAN_PERIODIC: "transc.tan (x + 2 * transc.pi) = transc.tan x"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  2213
  by (import transc TAN_PERIODIC)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  2214
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  2215
lemma TAN_ADD: "transc.cos x ~= 0 & transc.cos y ~= 0 & transc.cos (x + y) ~= 0
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  2216
==> transc.tan (x + y) =
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  2217
    (transc.tan x + transc.tan y) / (1 - transc.tan x * transc.tan y)"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  2218
  by (import transc TAN_ADD)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  2219
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  2220
lemma TAN_DOUBLE: "transc.cos x ~= 0 & transc.cos (2 * x) ~= 0
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  2221
==> transc.tan (2 * x) = 2 * transc.tan x / (1 - transc.tan x ^ 2)"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  2222
  by (import transc TAN_DOUBLE)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  2223
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  2224
lemma TAN_POS_PI2: "0 < x & x < transc.pi / 2 ==> 0 < transc.tan x"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  2225
  by (import transc TAN_POS_PI2)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  2226
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  2227
lemma DIFF_TAN: "transc.cos x ~= 0 ==> diffl transc.tan (inverse (transc.cos x ^ 2)) x"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  2228
  by (import transc DIFF_TAN)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  2229
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  2230
lemma TAN_TOTAL_LEMMA: "0 < y ==> EX x>0. x < transc.pi / 2 & y < transc.tan x"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  2231
  by (import transc TAN_TOTAL_LEMMA)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  2232
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  2233
lemma TAN_TOTAL_POS: "0 <= y ==> EX x>=0. x < transc.pi / 2 & transc.tan x = y"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  2234
  by (import transc TAN_TOTAL_POS)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  2235
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  2236
lemma TAN_TOTAL: "EX! x. - (transc.pi / 2) < x & x < transc.pi / 2 & transc.tan x = y"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  2237
  by (import transc TAN_TOTAL)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  2238
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  2239
definition
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  2240
  asn :: "real => real"  where
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  2241
  "asn ==
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  2242
%y. SOME x. - (transc.pi / 2) <= x & x <= transc.pi / 2 & transc.sin x = y"
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  2243
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  2244
lemma asn: "asn y =
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  2245
(SOME x. - (transc.pi / 2) <= x & x <= transc.pi / 2 & transc.sin x = y)"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  2246
  by (import transc asn)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  2247
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  2248
definition
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  2249
  acs :: "real => real"  where
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  2250
  "acs == %y. SOME x. 0 <= x & x <= transc.pi & transc.cos x = y"
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  2251
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  2252
lemma acs: "acs y = (SOME x. 0 <= x & x <= transc.pi & transc.cos x = y)"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  2253
  by (import transc acs)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  2254
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  2255
definition
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  2256
  atn :: "real => real"  where
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  2257
  "atn ==
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  2258
%y. SOME x. - (transc.pi / 2) < x & x < transc.pi / 2 & transc.tan x = y"
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  2259
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  2260
lemma atn: "atn y =
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  2261
(SOME x. - (transc.pi / 2) < x & x < transc.pi / 2 & transc.tan x = y)"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  2262
  by (import transc atn)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  2263
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  2264
lemma ASN: "- 1 <= y & y <= 1
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  2265
==> - (transc.pi / 2) <= asn y &
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  2266
    asn y <= transc.pi / 2 & transc.sin (asn y) = y"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  2267
  by (import transc ASN)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  2268
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  2269
lemma ASN_SIN: "- 1 <= y & y <= 1 ==> transc.sin (asn y) = y"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  2270
  by (import transc ASN_SIN)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  2271
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  2272
lemma ASN_BOUNDS: "- 1 <= y & y <= 1 ==> - (transc.pi / 2) <= asn y & asn y <= transc.pi / 2"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  2273
  by (import transc ASN_BOUNDS)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  2274
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  2275
lemma ASN_BOUNDS_LT: "- 1 < y & y < 1 ==> - (transc.pi / 2) < asn y & asn y < transc.pi / 2"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  2276
  by (import transc ASN_BOUNDS_LT)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  2277
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  2278
lemma SIN_ASN: "- (transc.pi / 2) <= x & x <= transc.pi / 2 ==> asn (transc.sin x) = x"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  2279
  by (import transc SIN_ASN)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  2280
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  2281
lemma ACS: "- 1 <= y & y <= 1
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  2282
==> 0 <= acs y & acs y <= transc.pi & transc.cos (acs y) = y"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  2283
  by (import transc ACS)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  2284
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  2285
lemma ACS_COS: "- 1 <= y & y <= 1 ==> transc.cos (acs y) = y"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  2286
  by (import transc ACS_COS)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  2287
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  2288
lemma ACS_BOUNDS: "- 1 <= y & y <= 1 ==> 0 <= acs y & acs y <= transc.pi"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  2289
  by (import transc ACS_BOUNDS)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  2290
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  2291
lemma ACS_BOUNDS_LT: "- 1 < y & y < 1 ==> 0 < acs y & acs y < transc.pi"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  2292
  by (import transc ACS_BOUNDS_LT)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  2293
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  2294
lemma COS_ACS: "0 <= x & x <= transc.pi ==> acs (transc.cos x) = x"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  2295
  by (import transc COS_ACS)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  2296
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  2297
lemma ATN: "- (transc.pi / 2) < atn y & atn y < transc.pi / 2 & transc.tan (atn y) = y"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  2298
  by (import transc ATN)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  2299
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  2300
lemma ATN_TAN: "transc.tan (atn x) = x"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  2301
  by (import transc ATN_TAN)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  2302
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  2303
lemma ATN_BOUNDS: "- (transc.pi / 2) < atn x & atn x < transc.pi / 2"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  2304
  by (import transc ATN_BOUNDS)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  2305
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  2306
lemma TAN_ATN: "- (transc.pi / 2) < x & x < transc.pi / 2 ==> atn (transc.tan x) = x"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  2307
  by (import transc TAN_ATN)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  2308
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  2309
lemma TAN_SEC: "transc.cos x ~= 0 ==> 1 + transc.tan x ^ 2 = inverse (transc.cos x) ^ 2"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  2310
  by (import transc TAN_SEC)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  2311
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  2312
lemma SIN_COS_SQ: "0 <= x & x <= transc.pi
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  2313
==> transc.sin x = transc.sqrt (1 - transc.cos x ^ 2)"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  2314
  by (import transc SIN_COS_SQ)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  2315
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  2316
lemma COS_SIN_SQ: "- (transc.pi / 2) <= x & x <= transc.pi / 2
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  2317
==> transc.cos x = transc.sqrt (1 - transc.sin x ^ 2)"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  2318
  by (import transc COS_SIN_SQ)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  2319
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  2320
lemma COS_ATN_NZ: "transc.cos (atn x) ~= 0"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  2321
  by (import transc COS_ATN_NZ)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  2322
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  2323
lemma COS_ASN_NZ: "- 1 < x & x < 1 ==> transc.cos (asn x) ~= 0"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  2324
  by (import transc COS_ASN_NZ)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  2325
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  2326
lemma SIN_ACS_NZ: "- 1 < x & x < 1 ==> transc.sin (acs x) ~= 0"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  2327
  by (import transc SIN_ACS_NZ)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  2328
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  2329
lemma COS_SIN_SQRT: "0 <= transc.cos x ==> transc.cos x = transc.sqrt (1 - transc.sin x ^ 2)"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  2330
  by (import transc COS_SIN_SQRT)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  2331
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  2332
lemma SIN_COS_SQRT: "0 <= transc.sin x ==> transc.sin x = transc.sqrt (1 - transc.cos x ^ 2)"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  2333
  by (import transc SIN_COS_SQRT)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  2334
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  2335
lemma DIFF_LN: "0 < x ==> diffl transc.ln (inverse x) x"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  2336
  by (import transc DIFF_LN)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  2337
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  2338
lemma DIFF_ASN_LEMMA: "- 1 < x & x < 1 ==> diffl asn (inverse (transc.cos (asn x))) x"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  2339
  by (import transc DIFF_ASN_LEMMA)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  2340
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  2341
lemma DIFF_ASN: "- 1 < x & x < 1 ==> diffl asn (inverse (transc.sqrt (1 - x ^ 2))) x"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  2342
  by (import transc DIFF_ASN)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  2343
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  2344
lemma DIFF_ACS_LEMMA: "- 1 < x & x < 1 ==> diffl acs (inverse (- transc.sin (acs x))) x"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  2345
  by (import transc DIFF_ACS_LEMMA)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  2346
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  2347
lemma DIFF_ACS: "- 1 < x & x < 1 ==> diffl acs (- inverse (transc.sqrt (1 - x ^ 2))) x"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  2348
  by (import transc DIFF_ACS)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  2349
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  2350
lemma DIFF_ATN: "diffl atn (inverse (1 + x ^ 2)) x"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  2351
  by (import transc DIFF_ATN)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  2352
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  2353
definition
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  2354
  division :: "real * real => (nat => real) => bool"  where
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  2355
  "division ==
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  2356
%(a, b) D.
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  2357
   D 0 = a & (EX N. (ALL n<N. D n < D (Suc n)) & (ALL n>=N. D n = b))"
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  2358
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  2359
lemma division: "division (a, b) D =
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  2360
(D 0 = a & (EX N. (ALL n<N. D n < D (Suc n)) & (ALL n>=N. D n = b)))"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  2361
  by (import transc division)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  2362
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  2363
definition
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  2364
  dsize :: "(nat => real) => nat"  where
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  2365
  "dsize == %D. SOME N. (ALL n<N. D n < D (Suc n)) & (ALL n>=N. D n = D N)"
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  2366
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  2367
lemma dsize: "dsize D = (SOME N. (ALL n<N. D n < D (Suc n)) & (ALL n>=N. D n = D N))"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  2368
  by (import transc dsize)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  2369
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  2370
definition
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  2371
  tdiv :: "real * real => (nat => real) * (nat => real) => bool"  where
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  2372
  "tdiv ==
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  2373
%(a, b) (D, p). division (a, b) D & (ALL n. D n <= p n & p n <= D (Suc n))"
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  2374
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  2375
lemma tdiv: "tdiv (a, b) (D, p) =
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  2376
(division (a, b) D & (ALL n. D n <= p n & p n <= D (Suc n)))"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  2377
  by (import transc tdiv)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  2378
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  2379
definition
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  2380
  gauge :: "(real => bool) => (real => real) => bool"  where
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  2381
  "gauge == %E g. ALL x. E x --> 0 < g x"
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  2382
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  2383
lemma gauge: "gauge E g = (ALL x. E x --> 0 < g x)"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  2384
  by (import transc gauge)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  2385
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  2386
definition
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  2387
  fine :: "(real => real) => (nat => real) * (nat => real) => bool"  where
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  2388
  "fine == %g (D, p). ALL n<dsize D. D (Suc n) - D n < g (p n)"
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  2389
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  2390
lemma fine: "fine g (D, p) = (ALL n<dsize D. D (Suc n) - D n < g (p n))"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  2391
  by (import transc fine)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  2392
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  2393
definition
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  2394
  rsum :: "(nat => real) * (nat => real) => (real => real) => real"  where
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  2395
  "rsum == %(D, p) f. real.sum (0, dsize D) (%n. f (p n) * (D (Suc n) - D n))"
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  2396
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  2397
lemma rsum: "rsum (D, p) f = real.sum (0, dsize D) (%n. f (p n) * (D (Suc n) - D n))"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  2398
  by (import transc rsum)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  2399
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  2400
definition
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  2401
  Dint :: "real * real => (real => real) => real => bool"  where
17694
b7870c2bd7df mapped "-->" to "hol4-->"
obua
parents: 17652
diff changeset
  2402
  "Dint ==
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  2403
%(a, b) f k.
17694
b7870c2bd7df mapped "-->" to "hol4-->"
obua
parents: 17652
diff changeset
  2404
   ALL e>0.
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  2405
      EX g. gauge (%x. a <= x & x <= b) g &
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  2406
            (ALL D p.
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  2407
                tdiv (a, b) (D, p) & fine g (D, p) -->
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  2408
                abs (rsum (D, p) f - k) < e)"
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  2409
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  2410
lemma Dint: "Dint (a, b) f k =
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  2411
(ALL e>0.
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  2412
    EX g. gauge (%x. a <= x & x <= b) g &
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  2413
          (ALL D p.
17694
b7870c2bd7df mapped "-->" to "hol4-->"
obua
parents: 17652
diff changeset
  2414
              tdiv (a, b) (D, p) & fine g (D, p) -->
b7870c2bd7df mapped "-->" to "hol4-->"
obua
parents: 17652
diff changeset
  2415
              abs (rsum (D, p) f - k) < e))"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  2416
  by (import transc Dint)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  2417
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  2418
lemma DIVISION_0: "a = b ==> dsize (%n. if n = 0 then a else b) = 0"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  2419
  by (import transc DIVISION_0)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  2420
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  2421
lemma DIVISION_1: "a < b ==> dsize (%n. if n = 0 then a else b) = 1"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  2422
  by (import transc DIVISION_1)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  2423
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  2424
lemma DIVISION_SINGLE: "a <= b ==> division (a, b) (%n. if n = 0 then a else b)"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  2425
  by (import transc DIVISION_SINGLE)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  2426
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  2427
lemma DIVISION_LHS: "division (a, b) D ==> D 0 = a"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  2428
  by (import transc DIVISION_LHS)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  2429
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  2430
lemma DIVISION_THM: "division (a, b) D =
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  2431
(D 0 = a & (ALL n<dsize D. D n < D (Suc n)) & (ALL n>=dsize D. D n = b))"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  2432
  by (import transc DIVISION_THM)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  2433
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  2434
lemma DIVISION_RHS: "division (a, b) D ==> D (dsize D) = b"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  2435
  by (import transc DIVISION_RHS)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  2436
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  2437
lemma DIVISION_LT_GEN: "division (a, b) D & m < n & n <= dsize D ==> D m < D n"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  2438
  by (import transc DIVISION_LT_GEN)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  2439
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  2440
lemma DIVISION_LT: "[| division (a, b) D; n < dsize D |] ==> D 0 < D (Suc n)"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  2441
  by (import transc DIVISION_LT)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  2442
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  2443
lemma DIVISION_LE: "division (a, b) D ==> a <= b"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  2444
  by (import transc DIVISION_LE)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  2445
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  2446
lemma DIVISION_GT: "[| division (a, b) D; n < dsize D |] ==> D n < D (dsize D)"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  2447
  by (import transc DIVISION_GT)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  2448
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  2449
lemma DIVISION_EQ: "division (a, b) D ==> (a = b) = (dsize D = 0)"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  2450
  by (import transc DIVISION_EQ)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  2451
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  2452
lemma DIVISION_LBOUND: "division (a, b) D ==> a <= D r"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  2453
  by (import transc DIVISION_LBOUND)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  2454
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  2455
lemma DIVISION_LBOUND_LT: "division (a, b) D & dsize D ~= 0 ==> a < D (Suc n)"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  2456
  by (import transc DIVISION_LBOUND_LT)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  2457
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  2458
lemma DIVISION_UBOUND: "division (a, b) D ==> D r <= b"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  2459
  by (import transc DIVISION_UBOUND)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  2460
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  2461
lemma DIVISION_UBOUND_LT: "division (a, b) D & n < dsize D ==> D n < b"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  2462
  by (import transc DIVISION_UBOUND_LT)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  2463
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  2464
lemma DIVISION_APPEND: "(EX D1 p1. tdiv (a, b) (D1, p1) & fine g (D1, p1)) &
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  2465
(EX D2 p2. tdiv (b, c) (D2, p2) & fine g (D2, p2))
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  2466
==> EX x p. tdiv (a, c) (x, p) & fine g (x, p)"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  2467
  by (import transc DIVISION_APPEND)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  2468
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  2469
lemma DIVISION_EXISTS: "a <= b & gauge (%x. a <= x & x <= b) g
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  2470
==> EX D p. tdiv (a, b) (D, p) & fine g (D, p)"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  2471
  by (import transc DIVISION_EXISTS)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  2472
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  2473
lemma GAUGE_MIN: "gauge E g1 & gauge E g2 ==> gauge E (%x. if g1 x < g2 x then g1 x else g2 x)"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  2474
  by (import transc GAUGE_MIN)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  2475
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  2476
lemma FINE_MIN: "fine (%x. if g1 x < g2 x then g1 x else g2 x) (D, p)
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  2477
==> fine g1 (D, p) & fine g2 (D, p)"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  2478
  by (import transc FINE_MIN)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  2479
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  2480
lemma DINT_UNIQ: "a <= b & Dint (a, b) f k1 & Dint (a, b) f k2 ==> k1 = k2"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  2481
  by (import transc DINT_UNIQ)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  2482
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  2483
lemma INTEGRAL_NULL: "Dint (a, a) f 0"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  2484
  by (import transc INTEGRAL_NULL)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  2485
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  2486
lemma FTC1: "a <= b & (ALL x. a <= x & x <= b --> diffl f (f' x) x)
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  2487
==> Dint (a, b) f' (f b - f a)"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  2488
  by (import transc FTC1)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  2489
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  2490
lemma MCLAURIN: "0 < h &
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  2491
0 < n &
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  2492
diff 0 = f &
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  2493
(ALL m t. m < n & 0 <= t & t <= h --> diffl (diff m) (diff (Suc m) t) t)
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  2494
==> EX t>0.
17694
b7870c2bd7df mapped "-->" to "hol4-->"
obua
parents: 17652
diff changeset
  2495
       t < h &
b7870c2bd7df mapped "-->" to "hol4-->"
obua
parents: 17652
diff changeset
  2496
       f h =
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  2497
       real.sum (0, n) (%m. diff m 0 / real (FACT m) * h ^ m) +
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  2498
       diff n t / real (FACT n) * h ^ n"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  2499
  by (import transc MCLAURIN)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  2500
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  2501
lemma MCLAURIN_NEG: "h < 0 &
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  2502
0 < n &
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  2503
diff 0 = f &
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  2504
(ALL m t. m < n & h <= t & t <= 0 --> diffl (diff m) (diff (Suc m) t) t)
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  2505
==> EX t>h.
17694
b7870c2bd7df mapped "-->" to "hol4-->"
obua
parents: 17652
diff changeset
  2506
       t < 0 &
b7870c2bd7df mapped "-->" to "hol4-->"
obua
parents: 17652
diff changeset
  2507
       f h =
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  2508
       real.sum (0, n) (%m. diff m 0 / real (FACT m) * h ^ m) +
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  2509
       diff n t / real (FACT n) * h ^ n"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  2510
  by (import transc MCLAURIN_NEG)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  2511
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  2512
lemma MCLAURIN_ALL_LT: "[| diff 0 = f & (ALL m x. diffl (diff m) (diff (Suc m) x) x);
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  2513
   x ~= 0 & 0 < n |]
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  2514
==> EX t. 0 < abs t &
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  2515
          abs t < abs x &
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  2516
          f x =
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  2517
          real.sum (0, n) (%m. diff m 0 / real (FACT m) * x ^ m) +
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  2518
          diff n t / real (FACT n) * x ^ n"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  2519
  by (import transc MCLAURIN_ALL_LT)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  2520
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  2521
lemma MCLAURIN_ZERO: "(x::real) = (0::real) & (0::nat) < (n::nat)
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  2522
==> real.sum (0::nat, n)
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  2523
     (%m::nat.
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  2524
         (diff::nat => real => real) m (0::real) / real (FACT m) * x ^ m) =
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  2525
    diff (0::nat) (0::real)"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  2526
  by (import transc MCLAURIN_ZERO)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  2527
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  2528
lemma MCLAURIN_ALL_LE: "diff 0 = f & (ALL m x. diffl (diff m) (diff (Suc m) x) x)
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  2529
==> EX t. abs t <= abs x &
17694
b7870c2bd7df mapped "-->" to "hol4-->"
obua
parents: 17652
diff changeset
  2530
          f x =
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  2531
          real.sum (0, n) (%m. diff m 0 / real (FACT m) * x ^ m) +
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  2532
          diff n t / real (FACT n) * x ^ n"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  2533
  by (import transc MCLAURIN_ALL_LE)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  2534
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  2535
lemma MCLAURIN_EXP_LT: "x ~= 0 & 0 < n
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  2536
==> EX xa.
17694
b7870c2bd7df mapped "-->" to "hol4-->"
obua
parents: 17652
diff changeset
  2537
       0 < abs xa &
b7870c2bd7df mapped "-->" to "hol4-->"
obua
parents: 17652
diff changeset
  2538
       abs xa < abs x &
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  2539
       transc.exp x =
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  2540
       real.sum (0, n) (%m. x ^ m / real (FACT m)) +
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  2541
       transc.exp xa / real (FACT n) * x ^ n"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  2542
  by (import transc MCLAURIN_EXP_LT)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  2543
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  2544
lemma MCLAURIN_EXP_LE: "EX xa.
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  2545
   abs xa <= abs x &
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  2546
   transc.exp x =
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  2547
   real.sum (0, n) (%m. x ^ m / real (FACT m)) +
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  2548
   transc.exp xa / real (FACT n) * x ^ n"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  2549
  by (import transc MCLAURIN_EXP_LE)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  2550
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  2551
lemma DIFF_LN_COMPOSITE: "diffl g m x & 0 < g x ==> diffl (%x. transc.ln (g x)) (inverse (g x) * m) x"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  2552
  by (import transc DIFF_LN_COMPOSITE)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  2553
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  2554
;end_setup
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  2555
46787
3d3d8f8929a7 file system structure separating HOL4 and HOL Light concerns
haftmann
parents: 46780
diff changeset
  2556
setup_theory "~~/src/HOL/Import/HOL4/Generated" poly
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  2557
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  2558
consts
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  2559
  poly :: "real list => real => real" 
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  2560
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  2561
specification (poly_primdef: poly) poly_def: "(ALL x. poly [] x = 0) & (ALL h t x. poly (h # t) x = h + x * poly t x)"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  2562
  by (import poly poly_def)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  2563
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  2564
consts
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  2565
  poly_add :: "real list => real list => real list" 
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  2566
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  2567
specification (poly_add_primdef: poly_add) poly_add_def: "(ALL l2. poly_add [] l2 = l2) &
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  2568
(ALL h t l2.
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  2569
    poly_add (h # t) l2 =
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  2570
    (if l2 = [] then h # t else (h + hd l2) # poly_add t (tl l2)))"
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  2571
  by (import poly poly_add_def)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  2572
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  2573
consts
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  2574
  "##" :: "real => real list => real list" ("##")
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  2575
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  2576
specification ("##") poly_cmul_def: "(ALL c. ## c [] = []) & (ALL c h t. ## c (h # t) = c * h # ## c t)"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  2577
  by (import poly poly_cmul_def)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  2578
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  2579
consts
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  2580
  poly_neg :: "real list => real list" 
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  2581
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  2582
defs
17652
b1ef33ebfa17 Release HOL4 and HOLLight Importer.
obua
parents: 17644
diff changeset
  2583
  poly_neg_primdef: "poly_neg == ## (- 1)"
b1ef33ebfa17 Release HOL4 and HOLLight Importer.
obua
parents: 17644
diff changeset
  2584
b1ef33ebfa17 Release HOL4 and HOLLight Importer.
obua
parents: 17644
diff changeset
  2585
lemma poly_neg_def: "poly_neg = ## (- 1)"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  2586
  by (import poly poly_neg_def)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  2587
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  2588
consts
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  2589
  poly_mul :: "real list => real list => real list" 
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  2590
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  2591
specification (poly_mul_primdef: poly_mul) poly_mul_def: "(ALL l2. poly_mul [] l2 = []) &
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  2592
(ALL h t l2.
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  2593
    poly_mul (h # t) l2 =
17652
b1ef33ebfa17 Release HOL4 and HOLLight Importer.
obua
parents: 17644
diff changeset
  2594
    (if t = [] then ## h l2 else poly_add (## h l2) (0 # poly_mul t l2)))"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  2595
  by (import poly poly_mul_def)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  2596
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  2597
consts
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  2598
  poly_exp :: "real list => nat => real list" 
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  2599
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  2600
specification (poly_exp_primdef: poly_exp) poly_exp_def: "(ALL p. poly_exp p 0 = [1]) &
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  2601
(ALL p n. poly_exp p (Suc n) = poly_mul p (poly_exp p n))"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  2602
  by (import poly poly_exp_def)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  2603
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  2604
consts
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  2605
  poly_diff_aux :: "nat => real list => real list" 
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  2606
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  2607
specification (poly_diff_aux_primdef: poly_diff_aux) poly_diff_aux_def: "(ALL n. poly_diff_aux n [] = []) &
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  2608
(ALL n h t. poly_diff_aux n (h # t) = real n * h # poly_diff_aux (Suc n) t)"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  2609
  by (import poly poly_diff_aux_def)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  2610
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  2611
definition
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  2612
  diff :: "real list => real list"  where
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  2613
  "diff == %l. if l = [] then [] else poly_diff_aux 1 (tl l)"
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  2614
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  2615
lemma poly_diff_def: "diff l = (if l = [] then [] else poly_diff_aux 1 (tl l))"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  2616
  by (import poly poly_diff_def)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  2617
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  2618
lemma POLY_ADD_CLAUSES: "poly_add [] p2 = p2 &
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  2619
poly_add p1 [] = p1 &
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  2620
poly_add (h1 # t1) (h2 # t2) = (h1 + h2) # poly_add t1 t2"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  2621
  by (import poly POLY_ADD_CLAUSES)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  2622
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  2623
lemma POLY_CMUL_CLAUSES: "## c [] = [] & ## c (h # t) = c * h # ## c t"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  2624
  by (import poly POLY_CMUL_CLAUSES)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  2625
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  2626
lemma POLY_NEG_CLAUSES: "poly_neg [] = [] & poly_neg (h # t) = - h # poly_neg t"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  2627
  by (import poly POLY_NEG_CLAUSES)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  2628
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  2629
lemma POLY_MUL_CLAUSES: "poly_mul [] p2 = [] &
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  2630
poly_mul [h1] p2 = ## h1 p2 &
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  2631
poly_mul (h1 # k1 # t1) p2 = poly_add (## h1 p2) (0 # poly_mul (k1 # t1) p2)"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  2632
  by (import poly POLY_MUL_CLAUSES)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  2633
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  2634
lemma POLY_DIFF_CLAUSES: "diff [] = [] & diff [c] = [] & diff (h # t) = poly_diff_aux 1 t"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  2635
  by (import poly POLY_DIFF_CLAUSES)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  2636
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  2637
lemma POLY_ADD: "poly (poly_add t p2) x = poly t x + poly p2 x"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  2638
  by (import poly POLY_ADD)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  2639
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  2640
lemma POLY_CMUL: "poly (## c t) x = c * poly t x"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  2641
  by (import poly POLY_CMUL)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  2642
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  2643
lemma POLY_NEG: "poly (poly_neg x) xa = - poly x xa"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  2644
  by (import poly POLY_NEG)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  2645
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  2646
lemma POLY_MUL: "poly (poly_mul t p2) x = poly t x * poly p2 x"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  2647
  by (import poly POLY_MUL)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  2648
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  2649
lemma POLY_EXP: "poly (poly_exp p n) x = poly p x ^ n"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  2650
  by (import poly POLY_EXP)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  2651
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  2652
lemma POLY_DIFF_LEMMA: "diffl (%x. x ^ Suc n * poly t x) (x ^ n * poly (poly_diff_aux (Suc n) t) x)
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  2653
 x"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  2654
  by (import poly POLY_DIFF_LEMMA)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  2655
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  2656
lemma POLY_DIFF: "diffl (poly t) (poly (diff t) x) x"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  2657
  by (import poly POLY_DIFF)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  2658
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  2659
lemma POLY_DIFFERENTIABLE: "lim.differentiable (poly l) x"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  2660
  by (import poly POLY_DIFFERENTIABLE)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  2661
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  2662
lemma POLY_CONT: "contl (poly l) x"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  2663
  by (import poly POLY_CONT)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  2664
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  2665
lemma POLY_IVT_POS: "xa < xb & poly x xa < 0 & 0 < poly x xb
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  2666
==> EX xc>xa. xc < xb & poly x xc = 0"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  2667
  by (import poly POLY_IVT_POS)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  2668
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  2669
lemma POLY_IVT_NEG: "a < b & 0 < poly p a & poly p b < 0 ==> EX x>a. x < b & poly p x = 0"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  2670
  by (import poly POLY_IVT_NEG)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  2671
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  2672
lemma POLY_MVT: "a < b ==> EX x>a. x < b & poly p b - poly p a = (b - a) * poly (diff p) x"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  2673
  by (import poly POLY_MVT)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  2674
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  2675
lemma POLY_ADD_RZERO: "poly (poly_add x []) = poly x"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  2676
  by (import poly POLY_ADD_RZERO)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  2677
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  2678
lemma POLY_MUL_ASSOC: "poly (poly_mul x (poly_mul xa xb)) = poly (poly_mul (poly_mul x xa) xb)"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  2679
  by (import poly POLY_MUL_ASSOC)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  2680
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  2681
lemma POLY_EXP_ADD: "poly (poly_exp xb (xa + x)) =
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  2682
poly (poly_mul (poly_exp xb xa) (poly_exp xb x))"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  2683
  by (import poly POLY_EXP_ADD)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  2684
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  2685
lemma POLY_DIFF_AUX_ADD: "poly (poly_diff_aux n (poly_add t p2)) =
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  2686
poly (poly_add (poly_diff_aux n t) (poly_diff_aux n p2))"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  2687
  by (import poly POLY_DIFF_AUX_ADD)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  2688
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  2689
lemma POLY_DIFF_AUX_CMUL: "poly (poly_diff_aux n (## c t)) = poly (## c (poly_diff_aux n t))"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  2690
  by (import poly POLY_DIFF_AUX_CMUL)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  2691
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  2692
lemma POLY_DIFF_AUX_NEG: "poly (poly_diff_aux xa (poly_neg x)) = poly (poly_neg (poly_diff_aux xa x))"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  2693
  by (import poly POLY_DIFF_AUX_NEG)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  2694
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  2695
lemma POLY_DIFF_AUX_MUL_LEMMA: "poly (poly_diff_aux (Suc n) t) = poly (poly_add (poly_diff_aux n t) t)"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  2696
  by (import poly POLY_DIFF_AUX_MUL_LEMMA)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  2697
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  2698
lemma POLY_DIFF_ADD: "poly (diff (poly_add t p2)) = poly (poly_add (diff t) (diff p2))"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  2699
  by (import poly POLY_DIFF_ADD)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  2700
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  2701
lemma POLY_DIFF_CMUL: "poly (diff (## c t)) = poly (## c (diff t))"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  2702
  by (import poly POLY_DIFF_CMUL)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  2703
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  2704
lemma POLY_DIFF_NEG: "poly (diff (poly_neg x)) = poly (poly_neg (diff x))"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  2705
  by (import poly POLY_DIFF_NEG)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  2706
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  2707
lemma POLY_DIFF_MUL_LEMMA: "poly (diff (xa # x)) = poly (poly_add (0 # diff x) x)"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  2708
  by (import poly POLY_DIFF_MUL_LEMMA)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  2709
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  2710
lemma POLY_DIFF_MUL: "poly (diff (poly_mul t p2)) =
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  2711
poly (poly_add (poly_mul t (diff p2)) (poly_mul (diff t) p2))"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  2712
  by (import poly POLY_DIFF_MUL)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  2713
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  2714
lemma POLY_DIFF_EXP: "poly (diff (poly_exp p (Suc n))) =
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  2715
poly (poly_mul (## (real (Suc n)) (poly_exp p n)) (diff p))"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  2716
  by (import poly POLY_DIFF_EXP)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  2717
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  2718
lemma POLY_DIFF_EXP_PRIME: "poly (diff (poly_exp [- a, 1] (Suc n))) =
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  2719
poly (## (real (Suc n)) (poly_exp [- a, 1] n))"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  2720
  by (import poly POLY_DIFF_EXP_PRIME)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  2721
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  2722
lemma POLY_LINEAR_REM: "EX q r. h # t = poly_add [r] (poly_mul [- a, 1] q)"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  2723
  by (import poly POLY_LINEAR_REM)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  2724
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  2725
lemma POLY_LINEAR_DIVIDES: "(poly t a = 0) = (t = [] | (EX q. t = poly_mul [- a, 1] q))"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  2726
  by (import poly POLY_LINEAR_DIVIDES)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  2727
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  2728
lemma POLY_LENGTH_MUL: "length (poly_mul [- a, 1] x) = Suc (length x)"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  2729
  by (import poly POLY_LENGTH_MUL)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  2730
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  2731
lemma POLY_ROOTS_INDEX_LEMMA: "poly p ~= poly [] & length p = n
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  2732
==> EX i. ALL x. poly p x = 0 --> (EX m<=n. x = i m)"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  2733
  by (import poly POLY_ROOTS_INDEX_LEMMA)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  2734
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  2735
lemma POLY_ROOTS_INDEX_LENGTH: "poly p ~= poly []
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  2736
==> EX i. ALL x. poly p x = 0 --> (EX n<=length p. x = i n)"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  2737
  by (import poly POLY_ROOTS_INDEX_LENGTH)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  2738
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  2739
lemma POLY_ROOTS_FINITE_LEMMA: "poly (p::real list) ~= poly []
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  2740
==> EX (N::nat) i::nat => real.
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  2741
       ALL x::real. poly p x = (0::real) --> (EX n<N. x = i n)"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  2742
  by (import poly POLY_ROOTS_FINITE_LEMMA)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  2743
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  2744
lemma FINITE_LEMMA: "(!!xb::real. (xa::real => bool) xb ==> EX n<x::nat. xb = (i::nat => real) n)
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  2745
==> EX a::real. ALL x::real. xa x --> x < a"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  2746
  by (import poly FINITE_LEMMA)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  2747
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  2748
lemma POLY_ROOTS_FINITE: "(poly (p::real list) ~= poly []) =
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  2749
(EX (N::nat) i::nat => real.
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  2750
    ALL x::real. poly p x = (0::real) --> (EX n<N. x = i n))"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  2751
  by (import poly POLY_ROOTS_FINITE)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  2752
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  2753
lemma POLY_ENTIRE_LEMMA: "poly p ~= poly [] & poly q ~= poly [] ==> poly (poly_mul p q) ~= poly []"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  2754
  by (import poly POLY_ENTIRE_LEMMA)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  2755
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  2756
lemma POLY_ENTIRE: "(poly (poly_mul p q) = poly []) = (poly p = poly [] | poly q = poly [])"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  2757
  by (import poly POLY_ENTIRE)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  2758
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  2759
lemma POLY_MUL_LCANCEL: "(poly (poly_mul x xa) = poly (poly_mul x xb)) =
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  2760
(poly x = poly [] | poly xa = poly xb)"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  2761
  by (import poly POLY_MUL_LCANCEL)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  2762
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  2763
lemma POLY_EXP_EQ_0: "(poly (poly_exp p n) = poly []) = (poly p = poly [] & n ~= 0)"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  2764
  by (import poly POLY_EXP_EQ_0)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  2765
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  2766
lemma POLY_PRIME_EQ_0: "poly [a, 1] ~= poly []"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  2767
  by (import poly POLY_PRIME_EQ_0)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  2768
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  2769
lemma POLY_EXP_PRIME_EQ_0: "poly (poly_exp [a, 1] n) ~= poly []"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  2770
  by (import poly POLY_EXP_PRIME_EQ_0)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  2771
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  2772
lemma POLY_ZERO_LEMMA: "poly (h # t) = poly [] ==> h = 0 & poly t = poly []"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  2773
  by (import poly POLY_ZERO_LEMMA)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  2774
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  2775
lemma POLY_ZERO: "(poly t = poly []) = list_all (%c. c = 0) t"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  2776
  by (import poly POLY_ZERO)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  2777
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  2778
lemma POLY_DIFF_AUX_ISZERO: "list_all (%c. c = 0) (poly_diff_aux (Suc n) t) = list_all (%c. c = 0) t"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  2779
  by (import poly POLY_DIFF_AUX_ISZERO)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  2780
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  2781
lemma POLY_DIFF_ISZERO: "poly (diff x) = poly [] ==> EX h. poly x = poly [h]"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  2782
  by (import poly POLY_DIFF_ISZERO)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  2783
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  2784
lemma POLY_DIFF_ZERO: "poly x = poly [] ==> poly (diff x) = poly []"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  2785
  by (import poly POLY_DIFF_ZERO)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  2786
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  2787
lemma POLY_DIFF_WELLDEF: "poly p = poly q ==> poly (diff p) = poly (diff q)"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  2788
  by (import poly POLY_DIFF_WELLDEF)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  2789
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  2790
definition
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  2791
  poly_divides :: "real list => real list => bool"  where
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  2792
  "poly_divides == %p1 p2. EX q. poly p2 = poly (poly_mul p1 q)"
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  2793
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  2794
lemma poly_divides: "poly_divides p1 p2 = (EX q. poly p2 = poly (poly_mul p1 q))"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  2795
  by (import poly poly_divides)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  2796
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  2797
lemma POLY_PRIMES: "poly_divides [a, 1] (poly_mul p q) =
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  2798
(poly_divides [a, 1] p | poly_divides [a, 1] q)"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  2799
  by (import poly POLY_PRIMES)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  2800
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  2801
lemma POLY_DIVIDES_REFL: "poly_divides p p"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  2802
  by (import poly POLY_DIVIDES_REFL)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  2803
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  2804
lemma POLY_DIVIDES_TRANS: "poly_divides p q & poly_divides q r ==> poly_divides p r"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  2805
  by (import poly POLY_DIVIDES_TRANS)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  2806
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  2807
lemma POLY_DIVIDES_EXP: "m <= n ==> poly_divides (poly_exp p m) (poly_exp p n)"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  2808
  by (import poly POLY_DIVIDES_EXP)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  2809
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  2810
lemma POLY_EXP_DIVIDES: "poly_divides (poly_exp p n) q & m <= n ==> poly_divides (poly_exp p m) q"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  2811
  by (import poly POLY_EXP_DIVIDES)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  2812
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  2813
lemma POLY_DIVIDES_ADD: "poly_divides p q & poly_divides p r ==> poly_divides p (poly_add q r)"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  2814
  by (import poly POLY_DIVIDES_ADD)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  2815
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  2816
lemma POLY_DIVIDES_SUB: "poly_divides p q & poly_divides p (poly_add q r) ==> poly_divides p r"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  2817
  by (import poly POLY_DIVIDES_SUB)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  2818
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  2819
lemma POLY_DIVIDES_SUB2: "poly_divides p r & poly_divides p (poly_add q r) ==> poly_divides p q"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  2820
  by (import poly POLY_DIVIDES_SUB2)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  2821
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  2822
lemma POLY_DIVIDES_ZERO: "poly p = poly [] ==> poly_divides q p"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  2823
  by (import poly POLY_DIVIDES_ZERO)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  2824
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  2825
lemma POLY_ORDER_EXISTS: "length p = d & poly p ~= poly []
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  2826
==> EX x. poly_divides (poly_exp [- a, 1] x) p &
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  2827
          ~ poly_divides (poly_exp [- a, 1] (Suc x)) p"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  2828
  by (import poly POLY_ORDER_EXISTS)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  2829
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  2830
lemma POLY_ORDER: "poly p ~= poly []
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  2831
==> EX! n.
17694
b7870c2bd7df mapped "-->" to "hol4-->"
obua
parents: 17652
diff changeset
  2832
       poly_divides (poly_exp [- a, 1] n) p &
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  2833
       ~ poly_divides (poly_exp [- a, 1] (Suc n)) p"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  2834
  by (import poly POLY_ORDER)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  2835
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  2836
definition
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  2837
  poly_order :: "real => real list => nat"  where
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  2838
  "poly_order ==
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  2839
%a p. SOME n.
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  2840
         poly_divides (poly_exp [- a, 1] n) p &
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  2841
         ~ poly_divides (poly_exp [- a, 1] (Suc n)) p"
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  2842
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  2843
lemma poly_order: "poly_order a p =
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  2844
(SOME n.
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  2845
    poly_divides (poly_exp [- a, 1] n) p &
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  2846
    ~ poly_divides (poly_exp [- a, 1] (Suc n)) p)"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  2847
  by (import poly poly_order)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  2848
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  2849
lemma ORDER: "(poly_divides (poly_exp [- a, 1] n) p &
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  2850
 ~ poly_divides (poly_exp [- a, 1] (Suc n)) p) =
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  2851
(n = poly_order a p & poly p ~= poly [])"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  2852
  by (import poly ORDER)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  2853
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  2854
lemma ORDER_THM: "poly p ~= poly []
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  2855
==> poly_divides (poly_exp [- a, 1] (poly_order a p)) p &
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  2856
    ~ poly_divides (poly_exp [- a, 1] (Suc (poly_order a p))) p"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  2857
  by (import poly ORDER_THM)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  2858
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  2859
lemma ORDER_UNIQUE: "poly p ~= poly [] &
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  2860
poly_divides (poly_exp [- a, 1] n) p &
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  2861
~ poly_divides (poly_exp [- a, 1] (Suc n)) p
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  2862
==> n = poly_order a p"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  2863
  by (import poly ORDER_UNIQUE)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  2864
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  2865
lemma ORDER_POLY: "poly p = poly q ==> poly_order a p = poly_order a q"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  2866
  by (import poly ORDER_POLY)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  2867
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  2868
lemma ORDER_ROOT: "(poly p a = 0) = (poly p = poly [] | poly_order a p ~= 0)"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  2869
  by (import poly ORDER_ROOT)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  2870
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  2871
lemma ORDER_DIVIDES: "poly_divides (poly_exp [- a, 1] n) p =
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  2872
(poly p = poly [] | n <= poly_order a p)"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  2873
  by (import poly ORDER_DIVIDES)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  2874
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  2875
lemma ORDER_DECOMP: "poly p ~= poly []
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  2876
==> EX x. poly p = poly (poly_mul (poly_exp [- a, 1] (poly_order a p)) x) &
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  2877
          ~ poly_divides [- a, 1] x"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  2878
  by (import poly ORDER_DECOMP)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  2879
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  2880
lemma ORDER_MUL: "poly (poly_mul p q) ~= poly []
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  2881
==> poly_order a (poly_mul p q) = poly_order a p + poly_order a q"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  2882
  by (import poly ORDER_MUL)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  2883
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  2884
lemma ORDER_DIFF: "poly (diff p) ~= poly [] & poly_order a p ~= 0
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  2885
==> poly_order a p = Suc (poly_order a (diff p))"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  2886
  by (import poly ORDER_DIFF)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  2887
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  2888
lemma POLY_SQUAREFREE_DECOMP_ORDER: "poly (diff p) ~= poly [] &
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  2889
poly p = poly (poly_mul q d) &
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  2890
poly (diff p) = poly (poly_mul e d) &
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  2891
poly d = poly (poly_add (poly_mul r p) (poly_mul s (diff p)))
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  2892
==> poly_order a q = (if poly_order a p = 0 then 0 else 1)"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  2893
  by (import poly POLY_SQUAREFREE_DECOMP_ORDER)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  2894
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  2895
definition
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  2896
  rsquarefree :: "real list => bool"  where
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  2897
  "rsquarefree ==
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  2898
%p. poly p ~= poly [] & (ALL a. poly_order a p = 0 | poly_order a p = 1)"
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  2899
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  2900
lemma rsquarefree: "rsquarefree p =
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  2901
(poly p ~= poly [] & (ALL a. poly_order a p = 0 | poly_order a p = 1))"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  2902
  by (import poly rsquarefree)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  2903
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  2904
lemma RSQUAREFREE_ROOTS: "rsquarefree p = (ALL a. ~ (poly p a = 0 & poly (diff p) a = 0))"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  2905
  by (import poly RSQUAREFREE_ROOTS)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  2906
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  2907
lemma RSQUAREFREE_DECOMP: "rsquarefree p & poly p a = 0
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  2908
==> EX q. poly p = poly (poly_mul [- a, 1] q) & poly q a ~= 0"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  2909
  by (import poly RSQUAREFREE_DECOMP)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  2910
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  2911
lemma POLY_SQUAREFREE_DECOMP: "poly (diff p) ~= poly [] &
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  2912
poly p = poly (poly_mul q d) &
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  2913
poly (diff p) = poly (poly_mul e d) &
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  2914
poly d = poly (poly_add (poly_mul r p) (poly_mul s (diff p)))
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  2915
==> rsquarefree q & (ALL x. (poly q x = 0) = (poly p x = 0))"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  2916
  by (import poly POLY_SQUAREFREE_DECOMP)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  2917
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  2918
consts
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  2919
  normalize :: "real list => real list" 
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  2920
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  2921
specification (normalize) normalize: "normalize [] = [] &
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  2922
(ALL h t.
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  2923
    normalize (h # t) =
17652
b1ef33ebfa17 Release HOL4 and HOLLight Importer.
obua
parents: 17644
diff changeset
  2924
    (if normalize t = [] then if h = 0 then [] else [h]
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  2925
     else h # normalize t))"
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  2926
  by (import poly normalize)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  2927
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  2928
lemma POLY_NORMALIZE: "poly (normalize t) = poly t"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  2929
  by (import poly POLY_NORMALIZE)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  2930
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  2931
definition
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  2932
  degree :: "real list => nat"  where
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  2933
  "degree == %p. PRE (length (normalize p))"
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  2934
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  2935
lemma degree: "degree p = PRE (length (normalize p))"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  2936
  by (import poly degree)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  2937
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  2938
lemma DEGREE_ZERO: "poly p = poly [] ==> degree p = 0"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  2939
  by (import poly DEGREE_ZERO)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  2940
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  2941
lemma POLY_ROOTS_FINITE_SET: "poly p ~= poly [] ==> FINITE (GSPEC (%x. (x, poly p x = 0)))"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  2942
  by (import poly POLY_ROOTS_FINITE_SET)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  2943
44763
b50d5d694838 HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 35416
diff changeset
  2944
lemma POLY_MONO: "abs x <= k ==> abs (poly xa x) <= poly (map abs xa) k"
14516
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  2945
  by (import poly POLY_MONO)
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  2946
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  2947
;end_setup
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  2948
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  2949
end
a183dec876ab Added HOL proof importer.
skalberg
parents:
diff changeset
  2950