src/ZF/AC/rel_is_fun.ML
changeset 1057 5097aa914449
parent 992 4ef4f7ff2aeb
child 1070 d290a2f3b9b0
equal deleted inserted replaced
1056:097b3255bf3a 1057:5097aa914449
    37 by (resolve_tac [ballI] 1);
    37 by (resolve_tac [ballI] 1);
    38 by (eresolve_tac [domainE] 1);
    38 by (eresolve_tac [domainE] 1);
    39 by (resolve_tac [ex1I] 1 THEN (atac 1));
    39 by (resolve_tac [ex1I] 1 THEN (atac 1));
    40 by (resolve_tac [excluded_middle RS disjE] 1 THEN (atac 2));
    40 by (resolve_tac [excluded_middle RS disjE] 1 THEN (atac 2));
    41 by (fast_tac (ZF_cs addSEs [lepoll_trans RS succ_lepoll_natE, 
    41 by (fast_tac (ZF_cs addSEs [lepoll_trans RS succ_lepoll_natE, 
    42 			diff_sing_lepoll RSN (2, lepoll_m_imp_domain_lepoll_m)]
    42 			Diff_sing_lepoll RSN (2, lepoll_m_imp_domain_lepoll_m)]
    43 		addEs [not_sym RSN (2, domain_diff_eq_domain) RS subst]) 1);
    43 		addEs [not_sym RSN (2, domain_diff_eq_domain) RS subst]) 1);
    44 val rel_domain_ex1 = result();
    44 val rel_domain_ex1 = result();
    45 
    45 
    46 goal ZF.thy "!! r. [| ALL a:A. EX! b. <a,b> : r; r<=A*B |]  \
    46 goal ZF.thy "!! r. [| ALL a:A. EX! b. <a,b> : r; r<=A*B |]  \
    47 \		==> r = (lam a:A. THE b. <a,b> : r)";
    47 \		==> r = (lam a:A. THE b. <a,b> : r)";