src/HOL/Calculation.thy
author wenzelm
Thu, 01 Jul 1999 17:41:16 +0200
changeset 6872 b250da153b1e
parent 6863 6c8bf18f9da9
child 6873 b123f5522ea1
permissions -rw-r--r--
fixed backtracking of global_qed;
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
6779
2912aff958bd Calculation.thy: Setup transitivity rules for calculational proofs.
wenzelm
parents:
diff changeset
     1
(*  Title:      HOL/Calculation.thy
2912aff958bd Calculation.thy: Setup transitivity rules for calculational proofs.
wenzelm
parents:
diff changeset
     2
    ID:         $Id$
2912aff958bd Calculation.thy: Setup transitivity rules for calculational proofs.
wenzelm
parents:
diff changeset
     3
    Author:     Markus Wenzel, TU Muenchen
2912aff958bd Calculation.thy: Setup transitivity rules for calculational proofs.
wenzelm
parents:
diff changeset
     4
2912aff958bd Calculation.thy: Setup transitivity rules for calculational proofs.
wenzelm
parents:
diff changeset
     5
Setup transitivity rules for calculational proofs.
2912aff958bd Calculation.thy: Setup transitivity rules for calculational proofs.
wenzelm
parents:
diff changeset
     6
*)
2912aff958bd Calculation.thy: Setup transitivity rules for calculational proofs.
wenzelm
parents:
diff changeset
     7
6862
f80091bdc992 more robust trans rules;
wenzelm
parents: 6791
diff changeset
     8
theory Calculation = Int:;
6779
2912aff958bd Calculation.thy: Setup transitivity rules for calculational proofs.
wenzelm
parents:
diff changeset
     9
6863
6c8bf18f9da9 antisym first;
wenzelm
parents: 6862
diff changeset
    10
theorems [trans] = Ord.order_antisym;                   (*  <= <= =  *)
6862
f80091bdc992 more robust trans rules;
wenzelm
parents: 6791
diff changeset
    11
theorems [trans] = Ord.order_trans;                     (*  <= <= <= *)
f80091bdc992 more robust trans rules;
wenzelm
parents: 6791
diff changeset
    12
theorems [trans] = Ord.order_less_trans;                (*  <  <  <  *)
f80091bdc992 more robust trans rules;
wenzelm
parents: 6791
diff changeset
    13
theorems [trans] = Ord.order_le_less_trans;             (*  <= <  <  *)
f80091bdc992 more robust trans rules;
wenzelm
parents: 6791
diff changeset
    14
theorems [trans] = Ord.order_less_le_trans;             (*  <  <= <  *)
f80091bdc992 more robust trans rules;
wenzelm
parents: 6791
diff changeset
    15
6863
6c8bf18f9da9 antisym first;
wenzelm
parents: 6862
diff changeset
    16
theorem [trans]: "[| x <= y; y = z |] ==> x <= z";	(*  <= =  <= *)
6862
f80091bdc992 more robust trans rules;
wenzelm
parents: 6791
diff changeset
    17
  by (rule HOL.subst[with y z]);
6779
2912aff958bd Calculation.thy: Setup transitivity rules for calculational proofs.
wenzelm
parents:
diff changeset
    18
6863
6c8bf18f9da9 antisym first;
wenzelm
parents: 6862
diff changeset
    19
theorem [trans]: "[| x = y; y <= z |] ==> x <= z";	(*  =  <= <= *)
6862
f80091bdc992 more robust trans rules;
wenzelm
parents: 6791
diff changeset
    20
  by (rule HOL.ssubst[with x y]);
f80091bdc992 more robust trans rules;
wenzelm
parents: 6791
diff changeset
    21
6863
6c8bf18f9da9 antisym first;
wenzelm
parents: 6862
diff changeset
    22
theorem [trans]: "[| x < y; y = z |] ==> x < z";	(*  <  =  <  *)
6862
f80091bdc992 more robust trans rules;
wenzelm
parents: 6791
diff changeset
    23
  by (rule HOL.subst[with y z]);
6779
2912aff958bd Calculation.thy: Setup transitivity rules for calculational proofs.
wenzelm
parents:
diff changeset
    24
6863
6c8bf18f9da9 antisym first;
wenzelm
parents: 6862
diff changeset
    25
theorem [trans]: "[| x = y; y < z |] ==> x < z";	(*  =  <  <  *)
6862
f80091bdc992 more robust trans rules;
wenzelm
parents: 6791
diff changeset
    26
  by (rule HOL.ssubst[with x y]);
f80091bdc992 more robust trans rules;
wenzelm
parents: 6791
diff changeset
    27
f80091bdc992 more robust trans rules;
wenzelm
parents: 6791
diff changeset
    28
theorems [trans] = HOL.subst[COMP swap_prems_rl];       (*  x  =  x  *)
f80091bdc992 more robust trans rules;
wenzelm
parents: 6791
diff changeset
    29
theorems [trans] = HOL.ssubst;                          (*  =  x  x  *)
f80091bdc992 more robust trans rules;
wenzelm
parents: 6791
diff changeset
    30
f80091bdc992 more robust trans rules;
wenzelm
parents: 6791
diff changeset
    31
theorems [trans] = Divides.dvd_trans;                   (* dvd dvd dvd *)
6779
2912aff958bd Calculation.thy: Setup transitivity rules for calculational proofs.
wenzelm
parents:
diff changeset
    32
2912aff958bd Calculation.thy: Setup transitivity rules for calculational proofs.
wenzelm
parents:
diff changeset
    33
6862
f80091bdc992 more robust trans rules;
wenzelm
parents: 6791
diff changeset
    34
end;