理论SimpleTypedSet进口FOL开始声明[[eta_contract=false]]类型decl e打字算术e::“术语”arities s::“术语”常数“空”::s(“{}”)插入:“[e,s]\s““成员”::“[e,s]\o““lesseq”::“[s,s]\o“(中缀”<=“50)收集:“[e\o)\s““减”::“[s,s]\s“(中缀x”-“65)“Int”::“[s,s]\s“(中缀”\“70)“Un”::“[s,s]\s“(中缀”\" 65)投诉::“s\s“符号成员(“op:”)和成员(“(_/:_)”[51,51]50)符号(xsymbols)成员(“op\“)和成员(“(_/\_)" [51, 51] 50)表示法(HTML输出)成员(“op\“)和成员(“(_/\_)" [51, 51] 50)语法“_Coll”::“pttrn=>o=>s”(“(1{_./_})”)翻译“{x.P}”==“CONST收集(%x.P)”hide_const(打开)成员语法“op~:”:“[e,s]\o“(”(_/~:_)“[50,51]50)”“@Finset”::“参数\s“(”{(_)}“)翻译“x~:y”==“\(x:y)““{x,xs}”==“CONST插入(x,{xs})”“{x}”==“CONST插入(x,{})”“{x.P}”==“CONST收集(\x.P)“公理化,其中ext:“A=B\(\x((x:A)\(x:B))”和收集:“(t:{x.P(x)})\(P(t))“语法(“”输出)“_setle”::“[s,s]\o“(”操作<=“)“_setle”::“[s,s]\o“(”(_/<=_)“[50,51]50)”“_setless”::“[s,s]\o“(”op<“)“无”::“[s,s](_s)\o“(”(_/<_)“[50,51]50)”语法(xsymbols)“_setle”::“[s,s]\o“(”op\")“_setle”::“[s,s]\o“(”(_/\_)" [50, 51] 50)“_setless”::“[s,s]\o“(”op\")“_setless”::“[s,s]\o“(”(_/\_)" [50, 51] 50)“op~:”::“[a,s]\o“(”op\")“opõ~:”::“[阿,s]\o“(”(_/\_)" [50, 51] 50)翻译“操作\“==”操作<=::[s,s]\o“国防部subset_def:“A<=B\\x x x\A类\x个\B“empty_def:“{}\{x.错误}“减def:“A-B\{x.x(x)\A类\x个\B} “”Un_def:“A\B类\{x.x(x)\A类\x个\B} “”Int_def:“A\B类\{x.x(x)\A类\x个\B} “”insert_def:“插入(a,B)\{x.x=a}\B“Compl_def:“完成(A)\{x\x个\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规则)qed(质量工程师)引理等于I:“(\x x x\A类\x个\B)\A=B“证明(规则iffD2)显示“A=B\(\x x\A类\x个\B) “by(规则扩展名)qed(质量工程师)引理等于E2:“A=B\(\x x x\A类\x个\B) “”证明(规则iffD1)显示“A=B\(\x x\A类\x个\B) “by(规则扩展名)qed(质量工程师)引理等于E:假设p1:“A=B”假设p2:“(\x x x\A类\x个\B)\R“(右)显示“R”证明(规则p2)从p1节目“\x x\A类\x个\B”by(规则等于E2)qed(质量工程师)结束