理论NSet进口IFOL开始声明[[eta_contract=false]]类型decl itype_synonym集合=i算术i::“术语”常数“零”::i(“0”)“一”::i(“1”)“empty”::set(“{}”)插入:“[i,集合]\设置““成员”::“[i,set]\o““lesseq”::“[set,set]\o“(中缀”<=“50)收集::“[i\o)\设置“INTER::“[设置,i\设置]\设置“UNION::“[set,i\设置]\设置““减”::“[set,set]\set“(中缀”-“65)“Int”::“[set,set]\set“(中缀”\“70)“取消”::“[设置,设置]\set“(中缀”\" 65)Compl::“设置\设置“功率::“设置\设置“UNIV::集合球:“[set,i\o)\o“Bex::“[设置,i\o)\o“符号成员(“op:”)和成员(“(_/:_)”[51,51]50)符号(xsymbols)成员(“op\“)和成员(“(_/\_)" [51, 51] 50)表示法(HTML输出)成员(“op\“)和成员(“(_/\_)" [51, 51] 50)语法“_Coll”::“pttrn=>o=>集合”(“(1{_./_})”)翻译“{x.P}”==“CONST收集(%x.P)”hide_const(打开)成员语法“_球”::“pttrn=>集=>o=>o”(“(3ALL_:_./_)”[0,0,10]10)“_Bex”::“pttrn=>集合=>o=>o”(“(3EX_:_./_)”[0,0,10]10)语法(HOL)“_球”::“pttrn=>集=>o=>o”(“(3!_:_./_)”[0,0,10]10)“_Bex”::“pttrn=>集合=>o=>o”(“(3?_:_./_)”[0,0,10]10)语法(xsymbols)“_球”::“pttrn=>集=>o=>o”(“(3\_\_./ _)" [0, 0, 10] 10)“_Bex”::“pttrn=>集合=>o=>o”(“(3\_\_./ _)" [0, 0, 10] 10)语法(HTML输出)“_Ball”::“pttrn=>集合=>o=>o”(“(3\_\_./ _)" [0, 0, 10] 10)“_Bex”::“pttrn=>集合=>o=>o”(“(3\_\_./ _)" [0, 0, 10] 10)翻译“ALL x:A.P”==“CONST Ball(A(%x.P))”“EX x:A.P”==“CONST Bex(A(%x.P))”语法“操作~:”::“[i,设置]\o“(”(_/~:_)“[50,51]50)”(*“@Collect”::“[pttrn,o]\设置“(”(1{_./_})“)*)“@Finset”::“参数\设置“(”{(_)}“)(*“op Int”::“[set,set]\set“(中缀”\" 70)“op-Un”::“[set,set]\set“(中缀”\" 65)*)“@INTER”::“[pttrn,set,set]\设置“(”(3INT_:_./_)“10)“@UNION”::“[pttrn,set,set]\设置“(”(3UN_:_./_)“10)“小球”::“pttrn\套\o个\o“(”(3全部_:_./_)“[0,0,10]10)“_Bex”::“[pttrn,set,o]\o“(”(3EX_:_./_)“[0,0,10]10)翻译“NSet.UNIV”==“NSet.Comple({})”“x~:y”==“\(x:y)““{x,xs}”==“NSet.insert(x,{xs})”“{x}”==“NSet.insert(x,{})”“{x.P}”==“NSet.Collect(\x.P)““INT x:A.B”==“NSet.INTER(A(\x.B))““UN x:A.B”==“N集合UNION(A(\x.B))““ALL x:A.P”==“CONST N设置球(A(\x.P))““EX x:A.P”==“CONST NSet.Bex(A(\x.P))“公理化,其中ext:“A=B\(\x((x:A)\(x:B))”和收集:“(t:{x.P(x)})\(P(t))“语法(“”输出)“_setle”::“[set,set]\o“(”操作<=“)“_setle”::“[set,set]\o“(”(_/<=_)“[50,51]50)”“_setless”::“[set,set]\o“(”op<“)“_setless”::“[set,set]\o“(”(_/<_)“[50,51]50)”语法(xsymbols)“_setle”::“[set,set]\o“(”op\“)“_setle”::“[set,set]\o“(”(_/\_)" [50, 51] 50)“_setless”::“[set,set]\o“(”op\“)“_setless”::“[set,set]\o“(”(_/\_)" [50, 51] 50)“op̃~:”::“['a,set]\o“(”op\“)“op̃~:”::“['a,set]\o“(”(_/\_)" [50, 51] 50)翻译“操作\“==”操作<=::[设置,设置]\o“定义subset_def:“A<=B\\x x x\A类\x个\B“empty_def:“{}\{x.错误}“减def:“A-B\{x.x(x)\一个\x个\B} “”Un_def:“A\B类\{x.x(x)\A类\x个\B} “”Int_def:“A\B类\{x.x(x)\A类\x个\B} “”Ball_def:“球(A,P)\(\x x x\A类\P(x))“Bex_def:“Bex(A,P)\(\x x x\A类\P(x))“Compl_def:“完成(A)\{x\x\A} “”INTER_def:“国际(A,B)\{y.所有x:A.y\B(x)}“UNION_def:“联合(A,B)\{y.EX x:答\B(x)}“insert_def:“插入(a,B)\{x.x=a}\B“Pow_def:“Pow(A)\{B.B<=A}“引理inI:“(P(t))\(t)\{x.P(x)})“证明(规则iffD2)显示“t\{x.P(x)}\P(t)“by(规则收集)qed(质量工程师)引理“inE2”:“(t\{x.P(x)})\P(t)“证明(规则iffD1)显示“t\{x.P(x)}\P(t)“by(规则收集)qed(质量工程师)E中的引理:假设p1:“(t\{x.P(x)})“假设p2:“P(t)\R“(右)显示“R”证明(规则p2)从p1开始显示“P(t)”(E2规则)定量定量分析引理等于I:“(\x x x\A类\x个\B)\A=B“证明(规则iffD2)显示“A=B\(\x x x\A类\x个\B) “由(规则文本)qed(质量工程师)引理等于E2:“A=B\(\x x x\A类\x个\B) “”证明(规则iffD1)显示“A=B\(\x x x\A类\x个\B) “by(规则扩展名)qed(质量工程师)引理等于E:假设p1:“A=B”假设p2:“(\x x x\A类\x个\B)\R“(右)显示“R”证明(规则p2)从p1节目“\x x\一个\x个\B”by(规则等于E2)qed(质量工程师)结束