2) incomplete code commented out
ndefinition counter_image: ∀A,B. (A → B) → Ω \sup B → Ω \sup A ≝
λA,B,f,Sb. {x | ∃y. y ∈ Sb ∧ f x = y}.
+(*
ndefinition mm_counter_image:
∀A,B. ∀Ma: magma A. ∀Mb: magma B. magma_morphism ?? Ma Mb → magma A.
#A; #B; #Ma; #Mb; #f;
napply (mk_magma ???)
[ napply (counter_image ?? f Mb)
| #x; #y; nwhd in ⊢ (% → % → ?); *; #y0; *; #Hy0; #H
+*)
\ No newline at end of file
include "logic/equality.ma".
nrecord powerset (A: Type) : Type[1] ≝ { mem: A → CProp }.
-(* This is a projection! *)
-ndefinition mem ≝ λA.λr:powerset A.match r with [mk_powerset f ⇒ f].
interpretation "powerset" 'powerset A = (powerset A).