src/HOL/Calculation.thy
author wenzelm
Tue, 24 Aug 1999 11:50:58 +0200
changeset 7333 6cb15c6f1d9f
parent 7202 6fcaf006cc40
child 7381 1bd8633e8f90
permissions -rw-r--r--
isar: no_pos flag;
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
6873
wenzelm
parents: 6863
diff changeset
     5
Setup transitivity rules for calculational proofs.  Note that in the
wenzelm
parents: 6863
diff changeset
     6
list below later rules have priority.
6779
2912aff958bd Calculation.thy: Setup transitivity rules for calculational proofs.
wenzelm
parents:
diff changeset
     7
*)
2912aff958bd Calculation.thy: Setup transitivity rules for calculational proofs.
wenzelm
parents:
diff changeset
     8
6862
f80091bdc992 more robust trans rules;
wenzelm
parents: 6791
diff changeset
     9
theory Calculation = Int:;
6779
2912aff958bd Calculation.thy: Setup transitivity rules for calculational proofs.
wenzelm
parents:
diff changeset
    10
6945
eeeef70c8fe3 added HOL.trans;
wenzelm
parents: 6873
diff changeset
    11
7202
6fcaf006cc40 added asym rule;
wenzelm
parents: 6945
diff changeset
    12
theorems [trans] = HOL.ssubst;                              (*  =  x  x  *)
6fcaf006cc40 added asym rule;
wenzelm
parents: 6945
diff changeset
    13
theorems [trans] = HOL.subst[COMP swap_prems_rl];           (*  x  =  x  *)
6873
wenzelm
parents: 6863
diff changeset
    14
7202
6fcaf006cc40 added asym rule;
wenzelm
parents: 6945
diff changeset
    15
theorems [trans] = Divides.dvd_trans;                       (* dvd dvd dvd *)
6fcaf006cc40 added asym rule;
wenzelm
parents: 6945
diff changeset
    16
6fcaf006cc40 added asym rule;
wenzelm
parents: 6945
diff changeset
    17
theorem [trans]: "[| (x::'a::order) < y; y < x |] ==> P";   (*  <  >  P  *)
6fcaf006cc40 added asym rule;
wenzelm
parents: 6945
diff changeset
    18
  by (rule Ord.order_less_asym);
6873
wenzelm
parents: 6863
diff changeset
    19
7202
6fcaf006cc40 added asym rule;
wenzelm
parents: 6945
diff changeset
    20
theorems [trans] = Ord.order_less_trans;                    (*  <  <  <  *)
6fcaf006cc40 added asym rule;
wenzelm
parents: 6945
diff changeset
    21
theorems [trans] = Ord.order_le_less_trans;                 (*  <= <  <  *)
6fcaf006cc40 added asym rule;
wenzelm
parents: 6945
diff changeset
    22
theorems [trans] = Ord.order_less_le_trans;                 (*  <  <= <  *)
6fcaf006cc40 added asym rule;
wenzelm
parents: 6945
diff changeset
    23
theorems [trans] = Ord.order_trans;                         (*  <= <= <= *)
6fcaf006cc40 added asym rule;
wenzelm
parents: 6945
diff changeset
    24
theorems [trans] = Ord.order_antisym;                       (*  <= >= =  *)
6862
f80091bdc992 more robust trans rules;
wenzelm
parents: 6791
diff changeset
    25
7202
6fcaf006cc40 added asym rule;
wenzelm
parents: 6945
diff changeset
    26
theorem [trans]: "[| x <= y; y = z |] ==> x <= z";	    (*  <= =  <= *)
6873
wenzelm
parents: 6863
diff changeset
    27
  by (rule HOL.subst);
6779
2912aff958bd Calculation.thy: Setup transitivity rules for calculational proofs.
wenzelm
parents:
diff changeset
    28
7202
6fcaf006cc40 added asym rule;
wenzelm
parents: 6945
diff changeset
    29
theorem [trans]: "[| x = y; y <= z |] ==> x <= z";	    (*  =  <= <= *)
6873
wenzelm
parents: 6863
diff changeset
    30
  by (rule HOL.ssubst);
6862
f80091bdc992 more robust trans rules;
wenzelm
parents: 6791
diff changeset
    31
7202
6fcaf006cc40 added asym rule;
wenzelm
parents: 6945
diff changeset
    32
theorem [trans]: "[| x < y; y = z |] ==> x < z";	    (*  <  =  <  *)
6873
wenzelm
parents: 6863
diff changeset
    33
  by (rule HOL.subst);
6779
2912aff958bd Calculation.thy: Setup transitivity rules for calculational proofs.
wenzelm
parents:
diff changeset
    34
7202
6fcaf006cc40 added asym rule;
wenzelm
parents: 6945
diff changeset
    35
theorem [trans]: "[| x = y; y < z |] ==> x < z";	    (*  =  <  <  *)
6873
wenzelm
parents: 6863
diff changeset
    36
  by (rule HOL.ssubst);
6779
2912aff958bd Calculation.thy: Setup transitivity rules for calculational proofs.
wenzelm
parents:
diff changeset
    37
7202
6fcaf006cc40 added asym rule;
wenzelm
parents: 6945
diff changeset
    38
theorems [trans] = HOL.trans                                (*  =  =  =  *)
6945
eeeef70c8fe3 added HOL.trans;
wenzelm
parents: 6873
diff changeset
    39
6779
2912aff958bd Calculation.thy: Setup transitivity rules for calculational proofs.
wenzelm
parents:
diff changeset
    40
6862
f80091bdc992 more robust trans rules;
wenzelm
parents: 6791
diff changeset
    41
end;