src/HOLCF/Sprod1.ML
author berghofe
Wed, 20 Feb 2002 15:58:38 +0100
changeset 12907 27e6d344d724
parent 12030 46d57d0290a2
child 14981 e73f8140af78
permissions -rw-r--r--
New function change_type for changing type assignments of theorems, axioms and oracles.

(*  Title:      HOLCF/Sprod1.ML
    ID:         $Id$
    Author:     Franz Regensburger
    License:    GPL (GNU GENERAL PUBLIC LICENSE)
*)

(* ------------------------------------------------------------------------ *)
(* less_sprod is a partial order on Sprod                                   *)
(* ------------------------------------------------------------------------ *)

Goalw [less_sprod_def]"(p::'a ** 'b) << p";
by (fast_tac (HOL_cs addIs [refl_less]) 1);
qed "refl_less_sprod";

Goalw [less_sprod_def]
        "[|(p1::'a ** 'b) << p2;p2 << p1|] ==> p1=p2";
by (rtac Sel_injective_Sprod 1);
by (fast_tac (HOL_cs addIs [antisym_less]) 1);
by (fast_tac (HOL_cs addIs [antisym_less]) 1);
qed "antisym_less_sprod";

Goalw [less_sprod_def]
        "[|(p1::'a**'b) << p2;p2 << p3|] ==> p1 << p3";
by (blast_tac (HOL_cs addIs [trans_less]) 1);
qed "trans_less_sprod";