- #A; #U; #V; #x; #x'; #H; #p;
- (* CSC: senza la change non funziona! *)
- nchange with (x' ∈ (fun21 ??? (intersect_ok A) U V));
- napply (. (H^-1‡#)); nassumption.
-nqed.
-
-(*
-(* qui non funziona una cippa *)
-ndefinition image: ∀A,B. (carr A → carr B) → Ω \sup A → Ω \sup B ≝
- λA,B:setoid.λf:carr A → carr B.λSa:Ω \sup A.
- {y | ∃x. x ∈ Sa ∧ eq_rel (carr B) (eq B) ? ?(*(f x) y*)}.
- ##[##2: napply (f x); ##|##3: napply y]
- #a; #a'; #H; nwhd; nnormalize; (* per togliere setoid1_of_setoid *) napply (mk_iff ????);
- *; #x; #Hx; napply (ex_intro … x)
- [ napply (. (#‡(#‡#)));
-
-ndefinition counter_image: ∀A,B. (A → B) → Ω \sup B → Ω \sup A ≝
+ #A; #U; #V; #x; #x'; #H; #p; napply (. (H^-1‡#)); nassumption.
+nqed.
+
+ndefinition image: ∀A,B. (carr A → carr B) → Ω^A → Ω^B ≝
+ λA,B:setoid.λf:carr A → carr B.λSa:Ω^A.
+ {y | ∃x. x ∈ Sa ∧ eq_rel (carr B) (eq B) (f x) y}.
+
+ndefinition counter_image: ∀A,B. (carr A → carr B) → Ω^B → Ω^A ≝