src/ZF/Bool.thy
author lcp
Thu Sep 30 10:10:21 1993 +0100 (1993-09-30 ago)
changeset 14 1c0926788772
parent 0 a5a9c433f639
child 124 858ab9a9b047
permissions -rw-r--r--
ex/{bin.ML,comb.ML,prop.ML}: replaced NewSext by Syntax.simple_sext

domrange/image_subset,vimage_subset: deleted needless premise!
misc: This slightly simplifies two proofs in Schroeder-Bernstein Theorem

ind-syntax/rule_concl: recoded to avoid exceptions
intr-elim: now checks conclusions of introduction rules

func/fun_disjoint_Un: now uses ex_ex1I
list-fn/hd,tl,drop: new
simpdata/bquant_simps: new

list/list_case_type: restored!

bool.thy: changed 1 from a "def" to a translation
Removed occurreces of one_def in bool.ML, nat.ML, univ.ML, ex/integ.ML

nat/succ_less_induct: new induction principle
arith/add_mono: new results about monotonicity

simpdata/mem_simps: removed the ones for succ and cons; added succI1,
consI2 to ZF_ss

upair/succ_iff: new, for use with simp_tac (cons_iff already existed)

ordinal/Ord_0_in_succ: renamed from Ord_0_mem_succ
nat/nat_0_in_succ: new

ex/prop-log/hyps_thms_if: split up the fast_tac call for more speed
clasohm@0
     1
(*  Title: 	ZF/bool.thy
clasohm@0
     2
    ID:         $Id$
clasohm@0
     3
    Author: 	Lawrence C Paulson, Cambridge University Computer Laboratory
clasohm@0
     4
    Copyright   1992  University of Cambridge
clasohm@0
     5
clasohm@0
     6
Booleans in Zermelo-Fraenkel Set Theory 
clasohm@0
     7
*)
clasohm@0
     8
clasohm@0
     9
Bool = ZF +
clasohm@0
    10
consts
clasohm@0
    11
    "1"		::      "i"     	("1")
clasohm@0
    12
    bool        ::      "i"
clasohm@0
    13
    cond        ::      "[i,i,i]=>i"
clasohm@0
    14
    not		::	"i=>i"
clasohm@0
    15
    and         ::      "[i,i]=>i"      (infixl 70)
clasohm@0
    16
    or		::      "[i,i]=>i"      (infixl 65)
clasohm@0
    17
    xor		::      "[i,i]=>i"      (infixl 65)
clasohm@0
    18
lcp@14
    19
translations
lcp@14
    20
   "1"  == "succ(0)"
lcp@14
    21
clasohm@0
    22
rules
clasohm@0
    23
    bool_def	"bool == {0,1}"
clasohm@0
    24
    cond_def	"cond(b,c,d) == if(b=1,c,d)"
clasohm@0
    25
    not_def	"not(b) == cond(b,0,1)"
clasohm@0
    26
    and_def	"a and b == cond(a,b,0)"
clasohm@0
    27
    or_def	"a or b == cond(a,1,b)"
clasohm@0
    28
    xor_def	"a xor b == cond(a,not(b),b)"
clasohm@0
    29
end