src/HOL/BCV/Types.ML
author wenzelm
Sun, 31 Oct 1999 20:11:23 +0100
changeset 7990 0a604b2fc2b1
parent 7961 422ac6888c7f
permissions -rw-r--r--
updated;
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
7626
5997f35954d7 A new theory: a model of bytecode verification.
nipkow
parents:
diff changeset
     1
(*  Title:      HOL/BCV/Types.ML
5997f35954d7 A new theory: a model of bytecode verification.
nipkow
parents:
diff changeset
     2
    ID:         $Id$
5997f35954d7 A new theory: a model of bytecode verification.
nipkow
parents:
diff changeset
     3
    Author:     Tobias Nipkow
5997f35954d7 A new theory: a model of bytecode verification.
nipkow
parents:
diff changeset
     4
    Copyright   1999 TUM
5997f35954d7 A new theory: a model of bytecode verification.
nipkow
parents:
diff changeset
     5
*)
5997f35954d7 A new theory: a model of bytecode verification.
nipkow
parents:
diff changeset
     6
5997f35954d7 A new theory: a model of bytecode verification.
nipkow
parents:
diff changeset
     7
Goalw [semilat_def,le_typ,plus_typ] "semilat (UNIV::typ set)";
7961
422ac6888c7f expandshort
paulson
parents: 7626
diff changeset
     8
by (Auto_tac);
7626
5997f35954d7 A new theory: a model of bytecode verification.
nipkow
parents:
diff changeset
     9
qed "semilat_typ";
5997f35954d7 A new theory: a model of bytecode verification.
nipkow
parents:
diff changeset
    10
AddIffs [semilat_typ];
5997f35954d7 A new theory: a model of bytecode verification.
nipkow
parents:
diff changeset
    11
5997f35954d7 A new theory: a model of bytecode verification.
nipkow
parents:
diff changeset
    12
Goal "{(x,y::'a::order). y<x}^+ = {(x,y::'a::order). y<x}";
7961
422ac6888c7f expandshort
paulson
parents: 7626
diff changeset
    13
by (Auto_tac);
422ac6888c7f expandshort
paulson
parents: 7626
diff changeset
    14
 by (etac trancl_induct 1);
422ac6888c7f expandshort
paulson
parents: 7626
diff changeset
    15
 by (Blast_tac 1);
422ac6888c7f expandshort
paulson
parents: 7626
diff changeset
    16
 by (blast_tac (claset() addIs [order_less_trans]) 1);
422ac6888c7f expandshort
paulson
parents: 7626
diff changeset
    17
by (blast_tac (claset() addIs [r_into_trancl]) 1);
7626
5997f35954d7 A new theory: a model of bytecode verification.
nipkow
parents:
diff changeset
    18
qed "trancl_order1_conv";
5997f35954d7 A new theory: a model of bytecode verification.
nipkow
parents:
diff changeset
    19
Addsimps [trancl_order1_conv];
5997f35954d7 A new theory: a model of bytecode verification.
nipkow
parents:
diff changeset
    20
5997f35954d7 A new theory: a model of bytecode verification.
nipkow
parents:
diff changeset
    21
Goalw [acyclic_def] "acyclic{(x,y::'a::order). y<x}";
7961
422ac6888c7f expandshort
paulson
parents: 7626
diff changeset
    22
by (Simp_tac 1);
7626
5997f35954d7 A new theory: a model of bytecode verification.
nipkow
parents:
diff changeset
    23
qed "acyclic_order1";
5997f35954d7 A new theory: a model of bytecode verification.
nipkow
parents:
diff changeset
    24
AddIffs [acyclic_order1];
5997f35954d7 A new theory: a model of bytecode verification.
nipkow
parents:
diff changeset
    25
5997f35954d7 A new theory: a model of bytecode verification.
nipkow
parents:
diff changeset
    26
Goalw [acc_def] "acc(UNIV::typ set)";
7961
422ac6888c7f expandshort
paulson
parents: 7626
diff changeset
    27
by (rtac finite_acyclic_wf 1);
422ac6888c7f expandshort
paulson
parents: 7626
diff changeset
    28
 by (fast_tac (claset() addIs [finite_SigmaI RSN (2,finite_subset)]) 1);
422ac6888c7f expandshort
paulson
parents: 7626
diff changeset
    29
by (blast_tac (claset() addIs [acyclic_subset]) 1);
7626
5997f35954d7 A new theory: a model of bytecode verification.
nipkow
parents:
diff changeset
    30
qed "acc_UNIV_typ";
5997f35954d7 A new theory: a model of bytecode verification.
nipkow
parents:
diff changeset
    31
AddIffs [acc_UNIV_typ];