Theory ZFC_in_HOL_Set_Theory
section ‹ZFC\_in\_HOL lives up to CakeML's set theory specification›
theory ZFC_in_HOL_Set_Theory imports ZFC_in_HOL.ZFC_in_HOL Set_Theory begin
interpretation set_theory "λx y. x ∈ elts y" "λx::V. λP. (inv elts) ({y. y ∈ elts x ∧ P y})" VPow
"(λY. SOME Z. elts Z = ⋃(elts ` (elts Y)))" "λx y::V. (inv elts) {x, y}"
apply unfold_locales
subgoal for x y
apply blast
done
subgoal for x P a
by (rule iffI) (metis (no_types, lifting) down_raw f_inv_into_f mem_Collect_eq subsetI)+
subgoal for x a
apply blast
done
subgoal for x a
apply (metis (mono_tags) UN_iff elts_Sup small_elts tfl_some)
done
subgoal for x y a
apply (metis ZFC_in_HOL.set_def elts_of_set insert_iff singletonD small_upair)
done
done
end