ProofsDownload fileproof of claim dsetconstrER=\A.\phi.\x./y.dsetconstrERa A (\a.phi a) x (dsetconstrEL A (\a.phi a) x y) y; proof of claim prop2setE=\phi.\x./y.dsetconstrER (powerset emptyset) (\z.phi) x y; proof of claim emptysetE=\x./y.\phi.notE (in x emptyset) phi y (allE (\z.not (in z emptyset)) emptysetAx x); proof of claim falseE=\phi./x.emptysetE emptyset x phi; proof of claim notI=\phi./x.xmcases phi (not phi) (/y.falseE (not phi) (x y)) (/y.y); proof of claim contradiction=\phi./x.xmcases phi phi (/y.y) (/y.falseE phi (x y)); proof of claim dnegE=\phi./x.xmcases phi phi (/y.y) (/y.notE (not phi) phi y x); proof of claim dnegI=\phi./x.notI (not phi) (/y.notE phi false x y); proof of claim contrapositive1=\phi.\psi./x./y.notI phi (/z.notE psi false (x z) y); proof of claim contrapositive2=\phi.\psi./x./y.contradiction phi (/z.notE psi false (x z) y); proof of claim contrapositive3=\phi.\psi./x./y.contrapositive2 phi (not psi) (/z.x z) (dnegI psi y); proof of claim contrapositive4=\phi.\psi./x./y.contrapositive3 (not phi) psi (/z.x (dnegE phi z)) y; proof of claim andI=\phi.\psi./x./y.equivEimp2 (and phi psi) (not (imp phi (not psi))) (andEquiv phi psi) (notI (imp phi (not psi)) (/z.notE psi false y (impE phi (not psi) z x))); proof of claim andEL=\phi.\psi./x.contrapositive2 phi (imp phi (not psi)) (/y.impI phi (not psi) (/z.notE phi (not psi) z y)) (equivEimp1 (and phi psi) (not (imp phi (not psi))) (andEquiv phi psi) x); proof of claim andER=\phi.\psi./x.contrapositive2 psi (imp phi (not psi)) (/y.impI phi (not psi) (/z.y)) (equivEimp1 (and phi psi) (not (imp phi (not psi))) (andEquiv phi psi) x); proof of claim orIL=\phi.\psi./x.equivEimp2 (or phi psi) (imp (not phi) psi) (orEquiv phi psi) (impI (not phi) psi (/y.notE phi psi x y)); proof of claim orIR=\phi.\psi./x.equivEimp2 (or phi psi) (imp (not phi) psi) (orEquiv phi psi) (impI (not phi) psi (/y.x)); proof of claim orE=\phi.\psi./x.\theta./y./z.xmcases phi theta (/u.y u) (/u.z (impE (not phi) psi (equivEimp1 (or phi psi) (imp (not phi) psi) (orEquiv phi psi) x) u)); proof of claim orIDemorgan=\phi.\psi./x.xmcases phi (or phi psi) (/y.orIL phi psi y) (/y.xmcases psi (or phi psi) (/z.orIR phi psi z) (/z.falseE (or phi psi) (x y z))); proof of claim exE=\phi./x.\psi./y.contrapositive2 psi (all (\z.not (phi z))) (/z.allI (\u.not (phi u)) (\u.notI (phi u) (/v.notE psi false (y u v) z))) (equivEimp1 (ex (\z.phi z)) (not (all (\z.not (phi z)))) (exEquiv (\z.phi z)) x); proof of claim exI=\phi.\x./y.equivEimp2 (ex (\z.phi z)) (not (all (\z.not (phi z)))) (exEquiv (\z.phi z)) (notI (all (\z.not (phi z))) (/z.notE (phi x) false y (allE (\u.not (phi u)) z x))); proof of claim equivI=\phi.\psi./x./y.xmcases phi (equiv phi psi) (/z.equivI1 phi psi z (x z)) (/z.equivI2 phi psi z (notI psi (/u.notE phi false (y u) z))); proof of claim equivE=\phi.\psi.\theta./x./y./z.xmcases phi theta (/u.y u (equivEimp1 phi psi x u)) (/u.z u (notI psi (/v.notE phi false (equivEimp2 phi psi x v) u))); proof of claim setext=\A.\B./x./y.impE (all (\z.equiv (in z A) (in z B))) (eq A B) (allE (\C.imp (all (\z.equiv (in z A) (in z C))) (eq A C)) (allE (\C.all (\D.imp (all (\z.equiv (in z C) (in z D))) (eq C D))) setextAx A) B) (allI (\z.equiv (in z A) (in z B)) (\z.equivI (in z A) (in z B) (/u.x z u) (/u.y z u))); proof of claim eqI=\x.setext x x (\y./z.z) (\y./z.z); proof of claim setadjoinIL=\x.\A.equivEimp2 (in x (setadjoin x A)) (or (eq x x) (in x A)) (allE (\y.equiv (in y (setadjoin x A)) (or (eq y x) (in y A))) (allE (\B.all (\y.equiv (in y (setadjoin x B)) (or (eq y x) (in y B)))) (allE (\y.all (\B.all (\z.equiv (in z (setadjoin y B)) (or (eq z y) (in z B))))) setadjoinAx x) A) x) (orIL (eq x x) (in x A) (eqI x)); proof of claim setadjoinIR=\x.\A.\y./z.equivEimp2 (in y (setadjoin x A)) (or (eq y x) (in y A)) (allE (\u.equiv (in u (setadjoin x A)) (or (eq u x) (in u A))) (allE (\B.all (\u.equiv (in u (setadjoin x B)) (or (eq u x) (in u B)))) (allE (\u.all (\B.all (\v.equiv (in v (setadjoin u B)) (or (eq v u) (in v B))))) setadjoinAx x) A) y) (orIR (eq y x) (in y A) z); proof of claim setadjoinE=\x.\A.\y./z.\phi./u./v.orE (eq y x) (in y A) (equivEimp1 (in y (setadjoin x A)) (or (eq y x) (in y A)) (allE (\w.equiv (in w (setadjoin x A)) (or (eq w x) (in w A))) (allE (\B.all (\w.equiv (in w (setadjoin x B)) (or (eq w x) (in w B)))) (allE (\w.all (\B.all (\x0.equiv (in x0 (setadjoin w B)) (or (eq x0 w) (in x0 B))))) setadjoinAx x) A) y) z) phi (/w.u w) (/w.v w); proof of claim trueI=setadjoinIL emptyset emptyset; abstract true; proof of claim powersetI=\A.\B./x.equivEimp2 (in B (powerset A)) (all (\y.imp (in y B) (in y A))) (allE (\C.equiv (in C (powerset A)) (all (\y.imp (in y C) (in y A)))) (allE (\C.all (\D.equiv (in D (powerset C)) (all (\y.imp (in y D) (in y C))))) powersetAx A) B) (allI (\y.imp (in y B) (in y A)) (\y.impI (in y B) (in y A) (/z.x y z))); proof of claim powersetE=\A.\B.\x./y./z.impE (in x B) (in x A) (allE (\u.imp (in u B) (in u A)) (equivEimp1 (in B (powerset A)) (all (\u.imp (in u B) (in u A))) (allE (\C.equiv (in C (powerset A)) (all (\u.imp (in u C) (in u A)))) (allE (\C.all (\D.equiv (in D (powerset C)) (all (\u.imp (in u D) (in u C))))) powersetAx A) B) y) x) z; proof of claim setunionI=\A.\x.\B./y./z.equivEimp2 (in x (setunion A)) (ex (\C.and (in x C) (in C A))) (allE (\u.equiv (in u (setunion A)) (ex (\C.and (in u C) (in C A)))) (allE (\C.all (\u.equiv (in u (setunion C)) (ex (\D.and (in u D) (in D C))))) setunionAx A) x) (exI (\C.and (in x C) (in C A)) B (andI (in x B) (in B A) y z)); proof of claim setunionE=\A.\x./y.\phi./z.exE (\B.and (in x B) (in B A)) (equivEimp1 (in x (setunion A)) (ex (\B.and (in x B) (in B A))) (allE (\u.equiv (in u (setunion A)) (ex (\B.and (in u B) (in B A)))) (allE (\B.all (\u.equiv (in u (setunion B)) (ex (\C.and (in u C) (in C B))))) setunionAx A) x) y) phi (\B./u.z B (andEL (in x B) (in B A) u) (andER (in x B) (in B A) u)); proof of claim symeq=\x.\y./z.eqE x y (\u.eq u x) z (eqI x); proof of claim transeq=\x.\y.\z./u./v.eqE y z (\w.eq x w) v u; proof of claim eqE2=\x.\y.\phi./z./u.eqE y x (\v.phi v) (symeq x y z) u; proof of claim symtrans1eq=\x.\y.\z./u./v.eqE2 z y (\w.eq x w) v u; proof of claim uniqinunit=\x.\y./z.setadjoinE y emptyset x z (eq x y) (/u.u) (/u.emptysetE x u (eq x y)); proof of claim eqinunit=\x.\y./z.eqE2 x y (\u.in u (setadjoin y emptyset)) z (setadjoinIL y emptyset); proof of claim symtrans2eq=\x.\y.\z./u./v.transeq z y x v (symeq x y u); proof of claim boxeq=\x.\y.\z.\u./v./w./a.transeq x y z v (symtrans1eq y u z a w); proof of claim dallI=\A.\phi./x.setext (dsetconstr A (\a.phi a)) A (\y./z.dsetconstrEL A (\a.phi a) y z) (\y./z.dsetconstrI A (\a.phi a) y z (x y z)); proof of claim dallE=\A.\phi./x.\a./a_p.dsetconstrERa A (\b.phi b) a a_p (eqE2 (dsetconstr A (\b.phi b)) A (\B.in a B) x a_p); abstract dall; proof of claim dexI=\A.\phi.\a./a_p./x.notI (eq (dsetconstr A (\b.phi b)) emptyset) (/y.emptysetE a (eqE (dsetconstr A (\b.phi b)) emptyset (\B.in a B) y (dsetconstrI A (\b.phi b) a a_p x)) false); proof of claim dexE=\A.\phi./x.\psi./y.contrapositive2 psi (eq (dsetconstr A (\a.phi a)) emptyset) (/z.setext (dsetconstr A (\a.phi a)) emptyset (\u./v.notE psi (in u emptyset) (y u (dsetconstrEL A (\a.phi a) u v) (dsetconstrERa A (\a.phi a) u (dsetconstrEL A (\a.phi a) u v) v)) z) (\u./v.emptysetE u v (in u (dsetconstr A (\a.phi a))))) x; proof of claim prop2setI=\phi./x.dsetconstrI (powerset emptyset) (\y.phi) emptyset (powersetI emptyset emptyset (\y./z.z)) x; abstract prop2set; proof of claim dandI=\phi.\psi./x./y.dexI (prop2set phi) (\z.psi) emptyset (prop2setI phi x) y; proof of claim dandEL=\phi.\psi./x.dexE (prop2set phi) (\y.psi) x phi (\y./y_p./z.prop2setE phi y y_p); proof of claim dandER=\phi.\psi./x.dexE (prop2set phi) (\y.psi) x psi (\y./y_p./z.z); abstract dand; proof of claim dimpI=\phi.\psi./x.dallI (prop2set phi) (\y.psi) (\y./y_p.x (prop2setE phi y y_p)); proof of claim dimpE=\phi.\psi./x./y.dallE (prop2set phi) (\z.psi) x emptyset (prop2setI phi y); abstract dimp; proof of claim vacuousImpI=\phi.\psi./x.impI phi psi (/y.notE phi psi y x); proof of claim trivialImpI=\phi.\psi./x.impI phi psi (/y.x); proof of claim excludedmiddle=\phi.xmcases phi (or phi (not phi)) (/x.orIL phi (not phi) x) (/x.orIR phi (not phi) x); proof of claim notimpE=\phi.\psi./x.andI phi (not psi) (contradiction phi (/y.notE (imp phi psi) false (vacuousImpI phi psi y) x)) (notI psi (/y.notE (imp phi psi) false (impI phi psi (/z.y)) x)); proof of claim notimpE1=\phi.\psi./x.andEL phi (not psi) (notimpE phi psi x); proof of claim notimpE2=\phi.\psi./x.andER phi (not psi) (notimpE phi psi x); proof of claim notorE=\phi.\psi./x.andI (not phi) (not psi) (contrapositive2 (not phi) (or phi psi) (/y.orIL phi psi (contrapositive2 phi (not phi) (/z.z) y)) x) (contrapositive2 (not psi) (or phi psi) (/y.orIR phi psi (contrapositive2 psi (not psi) (/z.z) y)) x); proof of claim notorE1=\phi.\psi./x.andEL (not phi) (not psi) (notorE phi psi x); proof of claim notorE2=\phi.\psi./x.andER (not phi) (not psi) (notorE phi psi x); proof of claim notandE=\phi.\psi./x.contrapositive2 (or (not phi) (not psi)) (and phi psi) (/y.andI phi psi (contrapositive2 phi (not phi) (/z.z) (andEL (not (not phi)) (not (not psi)) (notorE (not phi) (not psi) y))) (contrapositive2 psi (not psi) (/z.z) (andER (not (not phi)) (not (not psi)) (notorE (not phi) (not psi) y)))) x; proof of claim notexE=\phi./x.allI (\y.not (phi y)) (\y.contrapositive2 (not (phi y)) (ex (\z.phi z)) (/z.exI (\u.phi u) y (contrapositive2 (phi y) (not (phi y)) (/u.u) z)) x); proof of claim notdexE=\A.\phi./x.dallI A (\a.not (phi a)) (\a./a_p.notI (phi a) (/y.notE (dex A (\b.phi b)) false (dexI A (\b.phi b) a a_p y) x)); proof of claim notallE=\phi./x.contrapositive2 (ex (\y.not (phi y))) (all (\y.phi y)) (/y.allI (\z.phi z) (\z.contrapositive2 (phi z) (ex (\u.not (phi u))) (/u.exI (\v.not (phi v)) z u) y)) x; proof of claim notdallE=\A.\phi./x.contrapositive2 (dex A (\a.not (phi a))) (dall A (\a.phi a)) (/y.dallI A (\a.phi a) (\a./a_p.contrapositive2 (phi a) (dex A (\b.not (phi b))) (/z.dexI A (\b.not (phi b)) a a_p z) y)) x; proof of claim reflequiv=\phi.equivI phi phi (/x.x) (/x.x); proof of claim symequiv=\phi.\psi./x.equivI psi phi (/y.equivEimp2 phi psi x y) (/y.equivEimp1 phi psi x y); proof of claim transequiv=\phi.\psi.\theta./x./y.equivI phi theta (/z.equivEimp1 psi theta y (equivEimp1 phi psi x z)) (/z.equivEimp2 phi psi x (equivEimp2 psi theta y z)); proof of claim symtrans1equiv=\phi.\psi.\theta./x./y.transequiv phi psi theta x (symequiv theta psi y); proof of claim boxequiv=\phi.\psi.\theta.\xi./x./y./z.transequiv phi psi theta x (symtrans1equiv psi xi theta z y); proof of claim eqCE=\phi.\x./x_p.\y./y_p.\psi./z./u.dandER (phi y) (psi y) (eqE x y (\v.dand (phi v) (psi v)) z (dandI (phi x) (psi x) x_p u)); proof of claim eqCE2=\phi.\x./x_p.\y./y_p.\psi./z./u.eqCE (\v.phi v) y y_p x x_p (\v.psi v) (symeq x y z) u; proof of claim inCongP=\A.\B./x.\y.\z./u./v.eqE A B (\C.in z C) x (eqE y z (\w.in w A) u v); proof of claim in__Cong=\A.\B./x.\y.\z./u.equivI (in y A) (in z B) (/v.inCongP A B x y z u v) (/v.inCongP B A (symeq A B x) z y (symeq y z u) v); proof of claim eqCongP=\x.\y./z.\u.\v./w./a.transeq y x v (symeq x y z) (transeq x u v a w); proof of claim eq__Cong=\x.\y./z.\u.\v./w.equivI (eq x u) (eq y v) (/a.eqCongP x y z u v w a) (/a.eqCongP y x (symeq x y z) v u (symeq u v w) a); proof of claim notCongP=\phi.\psi./x./y.contrapositive1 psi phi (/z.equivEimp2 phi psi x z) y; proof of claim not__Cong=\phi.\psi./x.equivI (not phi) (not psi) (/y.notCongP phi psi x y) (/y.notCongP psi phi (symequiv phi psi x) y); proof of claim imp__Cong=\phi.\psi./x.\theta.\xi./y.equivI (imp phi theta) (imp psi xi) (/z.impI psi xi (/u.equivEimp1 theta xi y (impE phi theta z (equivEimp1 psi phi (symequiv phi psi x) u)))) (/z.impI phi theta (/u.equivEimp1 xi theta (symequiv theta xi y) (impE psi xi z (equivEimp1 phi psi x u)))); proof of claim equiv__Cong=\phi.\psi./x.\theta.\xi./y.equivI (equiv phi theta) (equiv psi xi) (/z.equivI psi xi (/u.equivEimp1 theta xi y (equivEimp1 phi theta z (equivEimp1 psi phi (symequiv phi psi x) u))) (/u.equivEimp1 phi psi x (equivEimp1 theta phi (symequiv phi theta z) (equivEimp1 xi theta (symequiv theta xi y) u)))) (/z.equivI phi theta (/u.equivEimp1 xi theta (symequiv theta xi y) (equivEimp1 psi xi z (equivEimp1 phi psi x u))) (/u.equivEimp1 psi phi (symequiv phi psi x) (equivEimp1 xi psi (symequiv psi xi z) (equivEimp1 theta xi y u)))); proof of claim and__Cong=\phi.\psi./x.\theta.\xi./y.equivI (and phi theta) (and psi xi) (/z.andI psi xi (equivEimp1 phi psi x (andEL phi theta z)) (equivEimp1 theta xi y (andER phi theta z))) (/z.andI phi theta (equivEimp1 psi phi (symequiv phi psi x) (andEL psi xi z)) (equivEimp1 xi theta (symequiv theta xi y) (andER psi xi z))); proof of claim or__Cong=\phi.\psi./x.\theta.\xi./y.equivI (or phi theta) (or psi xi) (/z.orE phi theta z (or psi xi) (/u.orIL psi xi (equivEimp1 phi psi x u)) (/u.orIR psi xi (equivEimp1 theta xi y u))) (/z.orE psi xi z (or phi theta) (/u.orIL phi theta (equivEimp2 phi psi x u)) (/u.orIR phi theta (equivEimp2 theta xi y u))); proof of claim all__Cong=\phi.\psi./x.equivI (all (\y.phi y)) (all (\y.psi y)) (/y.allI (\z.psi z) (\z.equivEimp1 (phi z) (psi z) (x z z (eqI z)) (allE (\u.phi u) y z))) (/y.allI (\z.phi z) (\z.equivEimp2 (phi z) (psi z) (x z z (eqI z)) (allE (\u.psi u) y z))); proof of claim ex__Cong=\phi.\psi./x.equivI (ex (\y.phi y)) (ex (\y.psi y)) (/y.exE (\z.phi z) y (ex (\z.psi z)) (\z./u.exI (\v.psi v) z (equivEimp1 (phi z) (psi z) (x z z (eqI z)) u))) (/y.exE (\z.psi z) y (ex (\z.phi z)) (\z./u.exI (\v.phi v) z (equivEimp2 (phi z) (psi z) (x z z (eqI z)) u))); proof of claim exu__Cong=\phi.\psi./x.equivI (exu (\y.phi y)) (exu (\y.psi y)) (/y.equivEimp2 (exu (\z.psi z)) (ex (\z.and (psi z) (all (\u.imp (psi u) (eq z u))))) (exuEquiv (\z.psi z)) (exE (\z.and (phi z) (all (\u.imp (phi u) (eq z u)))) (equivEimp1 (exu (\z.phi z)) (ex (\z.and (phi z) (all (\u.imp (phi u) (eq z u))))) (exuEquiv (\z.phi z)) y) (ex (\z.and (psi z) (all (\u.imp (psi u) (eq z u))))) (\z./u.exI (\v.and (psi v) (all (\w.imp (psi w) (eq v w)))) z (andI (psi z) (all (\v.imp (psi v) (eq z v))) (equivEimp1 (phi z) (psi z) (x z z (eqI z)) (andEL (phi z) (all (\v.imp (phi v) (eq z v))) u)) (allI (\v.imp (psi v) (eq z v)) (\v.impI (psi v) (eq z v) (/w.impE (phi v) (eq z v) (allE (\x0.imp (phi x0) (eq z x0)) (andER (phi z) (all (\x0.imp (phi x0) (eq z x0))) u) v) (equivEimp2 (phi v) (psi v) (x v v (eqI v)) w)))))))) (/y.exE (\z.and (psi z) (all (\u.imp (psi u) (eq z u)))) (equivEimp1 (exu (\z.psi z)) (ex (\z.and (psi z) (all (\u.imp (psi u) (eq z u))))) (exuEquiv (\z.psi z)) y) (exu (\z.phi z)) (\z./u.equivEimp2 (exu (\v.phi v)) (ex (\v.and (phi v) (all (\w.imp (phi w) (eq v w))))) (exuEquiv (\v.phi v)) (exI (\v.and (phi v) (all (\w.imp (phi w) (eq v w)))) z (andI (phi z) (all (\v.imp (phi v) (eq z v))) (equivEimp2 (phi z) (psi z) (x z z (eqI z)) (andEL (psi z) (all (\v.imp (psi v) (eq z v))) u)) (allI (\v.imp (phi v) (eq z v)) (\v.impI (phi v) (eq z v) (/w.impE (psi v) (eq z v) (allE (\x0.imp (psi x0) (eq z x0)) (andER (psi z) (all (\x0.imp (psi x0) (eq z x0))) u) v) (equivEimp1 (phi v) (psi v) (x v v (eqI v)) w)))))))); proof of claim emptyset__Cong=eqI emptyset; proof of claim setadjoin__Cong=\x.\y./z.\u.\v./w.eqE x y (\x0.eq (setadjoin x u) (setadjoin x0 v)) z (eqE u v (\x0.eq (setadjoin x u) (setadjoin x x0)) w (eqI (setadjoin x u))); proof of claim powerset__Cong=\A.\B./x.eqE A B (\C.eq (powerset A) (powerset C)) x (eqI (powerset A)); proof of claim setunion__Cong=\A.\B./x.eqE A B (\C.eq (setunion A) (setunion C)) x (eqI (setunion A)); proof of claim omega__Cong=eqI omega; proof of claim exuEu=\phi./x.\y.\z./u./v.exE (\w.and (phi w) (all (\x0.imp (phi x0) (eq w x0)))) (equivEimp1 (exu (\w.phi w)) (ex (\w.and (phi w) (all (\x0.imp (phi x0) (eq w x0))))) (exuEquiv (\w.phi w)) x) (eq y z) (\w./a.eqCongP w y (impE (phi y) (eq w y) (allE (\x0.imp (phi x0) (eq w x0)) (andER (phi w) (all (\x0.imp (phi x0) (eq w x0))) a) y) u) w z (impE (phi z) (eq w z) (allE (\x0.imp (phi x0) (eq w x0)) (andER (phi w) (all (\x0.imp (phi x0) (eq w x0))) a) z) v) (eqI w)); proof of claim descr__Cong=\phi.\psi./x./y./z.exuEu (\u.psi u) z (descr (\u.phi u)) (descr (\u.psi u)) (equivEimp1 (phi (descr (\u.phi u))) (psi (descr (\u.phi u))) (x (descr (\u.phi u)) (descr (\u.phi u)) (eqI (descr (\u.phi u)))) (descrp (\u.phi u) y)) (descrp (\u.psi u) z); proof of claim dsetconstr__Cong=\A.\B./x.\phi.\psi./y.setext (dsetconstr A (\a.phi a)) (dsetconstr B (\b.psi b)) (\z./u.dsetconstrI B (\b.psi b) z (eqE A B (\C.in z C) x (dsetconstrEL A (\a.phi a) z u)) (equivEimp1 (phi z) (psi z) (y z (dsetconstrEL A (\a.phi a) z u) z (eqE A B (\C.in z C) x (dsetconstrEL A (\a.phi a) z u)) (eqI z)) (dsetconstrER A (\a.phi a) z u))) (\z./u.dsetconstrI A (\a.phi a) z (eqE B A (\C.in z C) (symeq A B x) (dsetconstrEL B (\b.psi b) z u)) (equivEimp2 (phi z) (psi z) (y z (eqE B A (\C.in z C) (symeq A B x) (dsetconstrEL B (\b.psi b) z u)) z (dsetconstrEL B (\b.psi b) z u) (eqI z)) (dsetconstrER B (\b.psi b) z u))); proof of claim subsetI1=\A.\B./x.dallI A (\a.in a B) (\a./a_p.x a a_p); proof of claim subsetI2=\A.\B./x.subsetI1 A B (\a./a_p.x a a_p); proof of claim subsetE=\A.\B.\x./y./z.dallE A (\a.in a B) y x z; abstract subset; proof of claim subset2powerset=\A.\B./x.powersetI B A (\y./z.subsetE A B y x z); proof of claim setextsub=\A.\B./x./y.setext A B (\z./u.subsetE A B z x u) (\z./u.subsetE B A z y u); proof of claim powersetI1=\A.\B./x.powersetI A B (\y./z.subsetE B A y x z); proof of claim powersetsubset=\A.\B./x.subsetI2 (powerset A) (powerset B) (\y./z.powersetI B y (\u./v.subsetE A B u x (powersetE A y u z v))); proof of claim binunionIL=\A.\B.\x./y.setunionI (setadjoin A (setadjoin B emptyset)) x A y (setadjoinIL A (setadjoin B emptyset)); proof of claim upairset2IR=\x.\y.setadjoinIR x (setadjoin y emptyset) y (setadjoinIL y emptyset); proof of claim binunionIR=\A.\B.\x./y.setunionI (setadjoin A (setadjoin B emptyset)) x B y (upairset2IR A B); proof of claim binunionEcases=\A.\B.\x.\phi./y./z./u.setunionE (setadjoin A (setadjoin B emptyset)) x y phi (\C./v./w.setadjoinE A (setadjoin B emptyset) C w phi (/a.z (eqE C A (\D.in x D) a v)) (/a.u (eqE C B (\D.in x D) (uniqinunit C B a) v))); abstract binunion; proof of claim binunionE=\A.\B.\x./y.binunionEcases A B x (or (in x A) (in x B)) y (/z.orIL (in x A) (in x B) z) (/z.orIR (in x A) (in x B) z); proof of claim binunionLsub=\A.\B.subsetI2 A (binunion A B) (\x./y.binunionIL A B x y); proof of claim binunionRsub=\A.\B.subsetI2 B (binunion A B) (\x./y.binunionIR A B x y); proof of claim binintersectI=\A.\B.\x./y./z.dsetconstrI A (\a.in a B) x y z; proof of claim binintersectEL=\A.\B.\x./y.dsetconstrEL A (\a.in a B) x y; proof of claim binintersectER=\A.\B.\x./y.dsetconstrERa A (\a.in a B) x (binintersectEL A B x y) y; abstract binintersect; proof of claim secondinupair=\x.\y.setadjoinIR x (setadjoin y emptyset) y (setadjoinIL y emptyset); proof of claim setukpairIL=\x.\y.setunionI (setadjoin (setadjoin x emptyset) (setadjoin (setadjoin x (setadjoin y emptyset)) emptyset)) x (setadjoin x emptyset) (setadjoinIL x emptyset) (setadjoinIL (setadjoin x emptyset) (setadjoin (setadjoin x (setadjoin y emptyset)) emptyset)); proof of claim setukpairIR=\x.\y.setunionI (setadjoin (setadjoin x emptyset) (setadjoin (setadjoin x (setadjoin y emptyset)) emptyset)) y (setadjoin x (setadjoin y emptyset)) (secondinupair x y) (secondinupair (setadjoin x emptyset) (setadjoin x (setadjoin y emptyset))); proof of claim kpairiskpair=\x.\y.dexI (setunion (setadjoin (setadjoin x emptyset) (setadjoin (setadjoin x (setadjoin y emptyset)) emptyset))) (\z.dex (setunion (setadjoin (setadjoin x emptyset) (setadjoin (setadjoin x (setadjoin y emptyset)) emptyset))) (\u.eq (setadjoin (setadjoin x emptyset) (setadjoin (setadjoin x (setadjoin y emptyset)) emptyset)) (setadjoin (setadjoin z emptyset) (setadjoin (setadjoin z (setadjoin u emptyset)) emptyset)))) x (setukpairIL x y) (dexI (setunion (setadjoin (setadjoin x emptyset) (setadjoin (setadjoin x (setadjoin y emptyset)) emptyset))) (\z.eq (setadjoin (setadjoin x emptyset) (setadjoin (setadjoin x (setadjoin y emptyset)) emptyset)) (setadjoin (setadjoin x emptyset) (setadjoin (setadjoin x (setadjoin z emptyset)) emptyset))) y (setukpairIR x y) (eqI (setadjoin (setadjoin x emptyset) (setadjoin (setadjoin x (setadjoin y emptyset)) emptyset)))); proof of claim kpairp=\x.\y.kpairiskpair x y; proof of claim singletonsubset=\A.\a./a_p.subsetI2 (setadjoin a emptyset) A (\x./y.eqE2 x a (\z.in z A) (uniqinunit x a y) a_p); proof of claim singletoninpowerset=\A.\a./a_p.powersetI1 A (setadjoin a emptyset) (singletonsubset A a a_p); proof of claim singletoninpowunion=\A.\B.\a./a_p.subsetE (powerset A) (powerset (binunion A B)) (setadjoin a emptyset) (powersetsubset A (binunion A B) (binunionLsub A B)) (singletoninpowerset A a a_p); proof of claim upairset2E=\x.\y.\z./u.setadjoinE x (setadjoin y emptyset) z u (or (eq z x) (eq z y)) (/v.orIL (eq z x) (eq z y) v) (/v.orIR (eq z x) (eq z y) (uniqinunit z y v)); proof of claim upairsubunion=\A.\B.\a./a_p.\b./b_p.subsetI2 (setadjoin a (setadjoin b emptyset)) (binunion A B) (\x./y.orE (eq x a) (eq x b) (upairset2E a b x y) (in x (binunion A B)) (/z.eqE2 x a (\u.in u (binunion A B)) z (subsetE A (binunion A B) a (binunionLsub A B) a_p)) (/z.eqE2 x b (\u.in u (binunion A B)) z (subsetE B (binunion A B) b (binunionRsub A B) b_p))); proof of claim upairinpowunion=\A.\B.\a./a_p.\b./b_p.powersetI1 (binunion A B) (setadjoin a (setadjoin b emptyset)) (upairsubunion A B a a_p b b_p); proof of claim ubforcartprodlem1=\A.\B.\a./a_p.\b./b_p.subsetI2 (setadjoin (setadjoin a emptyset) (setadjoin (setadjoin a (setadjoin b emptyset)) emptyset)) (powerset (binunion A B)) (\x./y.orE (eq x (setadjoin a emptyset)) (eq x (setadjoin a (setadjoin b emptyset))) (upairset2E (setadjoin a emptyset) (setadjoin a (setadjoin b emptyset)) x y) (in x (powerset (binunion A B))) (/z.eqE2 x (setadjoin a emptyset) (\u.in u (powerset (binunion A B))) z (singletoninpowunion A B a a_p)) (/z.eqE2 x (setadjoin a (setadjoin b emptyset)) (\u.in u (powerset (binunion A B))) z (upairinpowunion A B a a_p b b_p))); proof of claim ubforcartprodlem2=\A.\B.\a./a_p.\b./b_p.powersetI1 (powerset (binunion A B)) (setadjoin (setadjoin a emptyset) (setadjoin (setadjoin a (setadjoin b emptyset)) emptyset)) (ubforcartprodlem1 A B a a_p b b_p); proof of claim ubforcartprodlem3=\A.\B.\a./a_p.\b./b_p.ubforcartprodlem2 A B a a_p b b_p; proof of claim cartprodpairin=\A.\B.\a./a_p.\b./b_p.dsetconstrI (powerset (powerset (binunion A B))) (\x.dex A (\c.dex B (\d.eq x (kpair c d)))) (kpair a b) (ubforcartprodlem3 A B a a_p b b_p) (dexI A (\c.dex B (\d.eq (kpair a b) (kpair c d))) a a_p (dexI B (\c.eq (kpair a b) (kpair a c)) b b_p (eqI (kpair a b)))); proof of claim |