Thanks for the exercise, John! Konrad's tips were very helpful, and here's a awkward-looking miz3 solution below (using the default timeout of 1). As Konrad said, this is really an exercise in sets.ml, and CARD is a part of sets.ml I didn't know anything about. Miz3Tips, which as you noted needs a lot of work, is now distributed in the latest subversion of HOL Light, in the dir RichterHilbertAxiomGeometry. As Konrad said, much of sets.ml can indeed be reproved using miz3 and BETA_THM of theorems.ml, and that's a nice exercise.
-- Best, Bill let JohnCard0_THM = thm `; (CARD ({}:A->bool)) = 0 by CARD_CLAUSES; `;; let JohnCard1_THM = thm `; let x be A; thus (CARD {x}) = 1 proof FINITE ({}:A->bool) /\ (CARD ({}:A->bool)) = 0 by FINITE_RULES, CARD_CLAUSES; (CARD {x}) = SUC(0) by -, MEMBER_NOT_EMPTY, CARD_CLAUSES; qed by -, ONE; `;; let JohnCard2_THM = thm `; let x y be A; assume ~(x = y) [not_xy]; thus (CARD {x, y}) = 2 proof FINITE ({y}) /\ (CARD {y}) = 1 by FINITE_RULES, JohnCard1_THM; (CARD {x, y}) = SUC(1) by -, not_xy, IN_SING, CARD_CLAUSES; qed by -, TWO; `;; let JohnCard3_THM = thm `; let x y z be A; assume ~(x = y) /\ ~(x = z) /\ ~(y = z) [Distinct]; thus (CARD {x, y, z}) = 3 proof FINITE ({x}) /\ (CARD {x}) = 1 [C1] by FINITE_RULES, JohnCard1_THM; FINITE ({y, z}) /\ (CARD {y, z}) = 2 [C2] by FINITE_RULES, Distinct, JohnCard2_THM; {x} INTER {y, z} = {} [Disjoint] by Distinct, SET_RULE; {x, y, z} = {x} UNION {y, z} by SET_RULE, INSERT_UNION_EQ; (CARD {x, y, z}) = 1 + 2 by C1, C2, -, Disjoint, CARD_UNION; qed by -, ARITH_RULE; `;; ------------------------------------------------------------------------------ LogMeIn Central: Instant, anywhere, Remote PC access and management. Stay in control, update software, and manage PCs from one command center Diagnose problems and improve visibility into emerging IT issues Automate, monitor and manage. Do more in less time with Central http://p.sf.net/sfu/logmein12331_d2d _______________________________________________ hol-info mailing list hol-info@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/hol-info