src/HOL/Library/Word.thy
changeset 30960 fec1a04b7220
parent 30224 79136ce06bdb
child 32438 620a5d8cfa78
equal deleted inserted replaced
30959:458e55fd0a33 30960:fec1a04b7220
     1 (*  Title:      HOL/Library/Word.thy
     1 (*  Title:      HOL/Library/Word.thy
     2     ID:         $Id$
       
     3     Author:     Sebastian Skalberg (TU Muenchen)
     2     Author:     Sebastian Skalberg (TU Muenchen)
     4 *)
     3 *)
     5 
     4 
     6 header {* Binary Words *}
     5 header {* Binary Words *}
     7 
     6 
    38 
    37 
    39 datatype bit =
    38 datatype bit =
    40     Zero ("\<zero>")
    39     Zero ("\<zero>")
    41   | One ("\<one>")
    40   | One ("\<one>")
    42 
    41 
    43 primrec
    42 primrec bitval :: "bit => nat" where
    44   bitval :: "bit => nat"
    43     "bitval \<zero> = 0"
    45 where
       
    46   "bitval \<zero> = 0"
       
    47   | "bitval \<one> = 1"
    44   | "bitval \<one> = 1"
    48 
    45 
    49 consts
    46 consts
    50   bitnot :: "bit => bit"
    47   bitnot :: "bit => bit"
    51   bitand :: "bit => bit => bit" (infixr "bitand" 35)
    48   bitand :: "bit => bit => bit" (infixr "bitand" 35)
  1529   proof -
  1526   proof -
  1530     from lw
  1527     from lw
  1531     show ?thesis
  1528     show ?thesis
  1532       apply simp
  1529       apply simp
  1533       apply (subst power_Suc [symmetric])
  1530       apply (subst power_Suc [symmetric])
  1534       apply (simp del: power_int.simps)
  1531       apply simp
  1535       done
  1532       done
  1536   qed
  1533   qed
  1537   finally show ?thesis .
  1534   finally show ?thesis .
  1538 qed
  1535 qed
  1539 
  1536