src/ZF/bool.thy
 author lcp Thu, 30 Sep 1993 10:10:21 +0100 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
```
(*  Title: 	ZF/bool.thy
ID:         \$Id\$
Author: 	Lawrence C Paulson, Cambridge University Computer Laboratory
Copyright   1992  University of Cambridge

Booleans in Zermelo-Fraenkel Set Theory
*)

Bool = ZF +
consts
"1"		::      "i"     	("1")
bool        ::      "i"
cond        ::      "[i,i,i]=>i"
not		::	"i=>i"
and         ::      "[i,i]=>i"      (infixl 70)
or		::      "[i,i]=>i"      (infixl 65)
xor		::      "[i,i]=>i"      (infixl 65)

translations
"1"  == "succ(0)"

rules
bool_def	"bool == {0,1}"
cond_def	"cond(b,c,d) == if(b=1,c,d)"
not_def	"not(b) == cond(b,0,1)"
and_def	"a and b == cond(a,b,0)"
or_def	"a or b == cond(a,1,b)"
xor_def	"a xor b == cond(a,not(b),b)"
end
```