src/HOL/IOA/meta_theory/Option.ML
changeset 2018 bcd69cc47cf0
parent 2017 dd3e2a91aeca
child 2019 b45d9f2042e0
equal deleted inserted replaced
2017:dd3e2a91aeca 2018:bcd69cc47cf0
     1 (*  Title:      Option.ML
       
     2     ID:         $Id$
       
     3     Author:     Tobias Nipkow
       
     4     Copyright   1994  TU Muenchen
       
     5 
       
     6 Derived rules
       
     7 *)
       
     8 
       
     9 Addsimps [Let_def];
       
    10 
       
    11 val [prem] = goal Option.thy "P(opt) ==> P(None) | (? x. P(Some(x)))";
       
    12  br (prem RS rev_mp) 1;
       
    13  by (Option.option.induct_tac "opt" 1);
       
    14  by (ALLGOALS(Fast_tac));
       
    15 val optE = store_thm("optE", standard(result() RS disjE));
       
    16 
       
    17 goal Option.thy "x=None | (? y.x=Some(y))"; 
       
    18 by (Option.option.induct_tac "x" 1);
       
    19 by (Asm_full_simp_tac 1);
       
    20 by (rtac disjI2 1);
       
    21 by (rtac exI 1);
       
    22 by (Asm_full_simp_tac 1);
       
    23 qed"opt_cases";