src/HOL/Matrix/cplex/MatrixLP.thy
author wenzelm
Mon, 29 Aug 2005 16:18:04 +0200
changeset 17184 3d80209e9a53
parent 16873 9ed940a1bebb
child 20782 18abee32d1b6
permissions -rw-r--r--
use AList operations;
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
16873
9ed940a1bebb proving bounds for real linear programs
obua
parents:
diff changeset
     1
(*  Title:      HOL/Matrix/cplex/MatrixLP.thy
9ed940a1bebb proving bounds for real linear programs
obua
parents:
diff changeset
     2
    ID:         $Id$
9ed940a1bebb proving bounds for real linear programs
obua
parents:
diff changeset
     3
    Author:     Steven Obua
9ed940a1bebb proving bounds for real linear programs
obua
parents:
diff changeset
     4
*)
9ed940a1bebb proving bounds for real linear programs
obua
parents:
diff changeset
     5
9ed940a1bebb proving bounds for real linear programs
obua
parents:
diff changeset
     6
theory MatrixLP 
9ed940a1bebb proving bounds for real linear programs
obua
parents:
diff changeset
     7
imports Cplex
9ed940a1bebb proving bounds for real linear programs
obua
parents:
diff changeset
     8
begin
9ed940a1bebb proving bounds for real linear programs
obua
parents:
diff changeset
     9
9ed940a1bebb proving bounds for real linear programs
obua
parents:
diff changeset
    10
constdefs
9ed940a1bebb proving bounds for real linear programs
obua
parents:
diff changeset
    11
  list_case_compute :: "'b list \<Rightarrow> 'a \<Rightarrow> ('b \<Rightarrow> 'b list \<Rightarrow> 'a) \<Rightarrow> 'a"
9ed940a1bebb proving bounds for real linear programs
obua
parents:
diff changeset
    12
  "list_case_compute l a f == list_case a f l"
9ed940a1bebb proving bounds for real linear programs
obua
parents:
diff changeset
    13
9ed940a1bebb proving bounds for real linear programs
obua
parents:
diff changeset
    14
lemma list_case_compute: "list_case = (\<lambda> (a::'a) f (l::'b list). list_case_compute l a f)"
9ed940a1bebb proving bounds for real linear programs
obua
parents:
diff changeset
    15
  apply (rule ext)+
9ed940a1bebb proving bounds for real linear programs
obua
parents:
diff changeset
    16
  apply (simp add: list_case_compute_def)
9ed940a1bebb proving bounds for real linear programs
obua
parents:
diff changeset
    17
  done
9ed940a1bebb proving bounds for real linear programs
obua
parents:
diff changeset
    18
9ed940a1bebb proving bounds for real linear programs
obua
parents:
diff changeset
    19
lemma list_case_compute_empty: "list_case_compute ([]::'b list) = (\<lambda> (a::'a) f. a)"
9ed940a1bebb proving bounds for real linear programs
obua
parents:
diff changeset
    20
  apply (rule ext)+
9ed940a1bebb proving bounds for real linear programs
obua
parents:
diff changeset
    21
  apply (simp add: list_case_compute_def)
9ed940a1bebb proving bounds for real linear programs
obua
parents:
diff changeset
    22
  done
9ed940a1bebb proving bounds for real linear programs
obua
parents:
diff changeset
    23
9ed940a1bebb proving bounds for real linear programs
obua
parents:
diff changeset
    24
lemma list_case_compute_cons: "list_case_compute (u#v) = (\<lambda> (a::'a) f. (f (u::'b) v))"
9ed940a1bebb proving bounds for real linear programs
obua
parents:
diff changeset
    25
  apply (rule ext)+
9ed940a1bebb proving bounds for real linear programs
obua
parents:
diff changeset
    26
  apply (simp add: list_case_compute_def)
9ed940a1bebb proving bounds for real linear programs
obua
parents:
diff changeset
    27
  done
9ed940a1bebb proving bounds for real linear programs
obua
parents:
diff changeset
    28
9ed940a1bebb proving bounds for real linear programs
obua
parents:
diff changeset
    29
lemma If_True: "(If True) = (\<lambda> x y. x)"
9ed940a1bebb proving bounds for real linear programs
obua
parents:
diff changeset
    30
  apply (rule ext)+
9ed940a1bebb proving bounds for real linear programs
obua
parents:
diff changeset
    31
  apply auto
9ed940a1bebb proving bounds for real linear programs
obua
parents:
diff changeset
    32
  done
9ed940a1bebb proving bounds for real linear programs
obua
parents:
diff changeset
    33
9ed940a1bebb proving bounds for real linear programs
obua
parents:
diff changeset
    34
lemma If_False: "(If False) = (\<lambda> x y. y)"
9ed940a1bebb proving bounds for real linear programs
obua
parents:
diff changeset
    35
  apply (rule ext)+
9ed940a1bebb proving bounds for real linear programs
obua
parents:
diff changeset
    36
  apply auto
9ed940a1bebb proving bounds for real linear programs
obua
parents:
diff changeset
    37
  done
9ed940a1bebb proving bounds for real linear programs
obua
parents:
diff changeset
    38
9ed940a1bebb proving bounds for real linear programs
obua
parents:
diff changeset
    39
lemma Let_compute: "Let (x::'a) f = ((f x)::'b)"
9ed940a1bebb proving bounds for real linear programs
obua
parents:
diff changeset
    40
  by (simp add: Let_def)
9ed940a1bebb proving bounds for real linear programs
obua
parents:
diff changeset
    41
9ed940a1bebb proving bounds for real linear programs
obua
parents:
diff changeset
    42
lemma fst_compute: "fst (a::'a, b::'b) = a"
9ed940a1bebb proving bounds for real linear programs
obua
parents:
diff changeset
    43
  by auto
9ed940a1bebb proving bounds for real linear programs
obua
parents:
diff changeset
    44
9ed940a1bebb proving bounds for real linear programs
obua
parents:
diff changeset
    45
lemma snd_compute: "snd (a::'a, b::'b) = b"
9ed940a1bebb proving bounds for real linear programs
obua
parents:
diff changeset
    46
  by auto
9ed940a1bebb proving bounds for real linear programs
obua
parents:
diff changeset
    47
9ed940a1bebb proving bounds for real linear programs
obua
parents:
diff changeset
    48
lemma bool1: "(\<not> True) = False"  by blast
9ed940a1bebb proving bounds for real linear programs
obua
parents:
diff changeset
    49
lemma bool2: "(\<not> False) = True"  by blast
9ed940a1bebb proving bounds for real linear programs
obua
parents:
diff changeset
    50
lemma bool3: "((P\<Colon>bool) \<and> True) = P" by blast
9ed940a1bebb proving bounds for real linear programs
obua
parents:
diff changeset
    51
lemma bool4: "(True \<and> (P\<Colon>bool)) = P" by blast
9ed940a1bebb proving bounds for real linear programs
obua
parents:
diff changeset
    52
lemma bool5: "((P\<Colon>bool) \<and> False) = False" by blast
9ed940a1bebb proving bounds for real linear programs
obua
parents:
diff changeset
    53
lemma bool6: "(False \<and> (P\<Colon>bool)) = False" by blast
9ed940a1bebb proving bounds for real linear programs
obua
parents:
diff changeset
    54
lemma bool7: "((P\<Colon>bool) \<or> True) = True" by blast
9ed940a1bebb proving bounds for real linear programs
obua
parents:
diff changeset
    55
lemma bool8: "(True \<or> (P\<Colon>bool)) = True" by blast
9ed940a1bebb proving bounds for real linear programs
obua
parents:
diff changeset
    56
lemma bool9: "((P\<Colon>bool) \<or> False) = P" by blast
9ed940a1bebb proving bounds for real linear programs
obua
parents:
diff changeset
    57
lemma bool10: "(False \<or> (P\<Colon>bool)) = P" by blast
9ed940a1bebb proving bounds for real linear programs
obua
parents:
diff changeset
    58
lemmas boolarith = bool1 bool2 bool3 bool4 bool5 bool6 bool7 bool8 bool9 bool10
9ed940a1bebb proving bounds for real linear programs
obua
parents:
diff changeset
    59
9ed940a1bebb proving bounds for real linear programs
obua
parents:
diff changeset
    60
lemmas float_arith = Float.arith
9ed940a1bebb proving bounds for real linear programs
obua
parents:
diff changeset
    61
lemmas sparse_row_matrix_arith_simps = SparseMatrix.sparse_row_matrix_arith_simps
9ed940a1bebb proving bounds for real linear programs
obua
parents:
diff changeset
    62
lemmas sorted_sp_simps = SparseMatrix.sorted_sp_simps
9ed940a1bebb proving bounds for real linear programs
obua
parents:
diff changeset
    63
lemmas fst_snd_conv = Product_Type.fst_conv Product_Type.snd_conv
9ed940a1bebb proving bounds for real linear programs
obua
parents:
diff changeset
    64
9ed940a1bebb proving bounds for real linear programs
obua
parents:
diff changeset
    65
end
9ed940a1bebb proving bounds for real linear programs
obua
parents:
diff changeset
    66