File Surj

From Coq Require Import ssreflect
                        ssrfun
                        ssrbool.

Require Import Coq.Setoids.Setoid
               Coq.Classes.Morphisms
               Coq.Relations.Relations.
Require Import Logic.IndefiniteDescription
               Coq.Logic.FunctionalExtensionality.

From stdpp
Require Import
    base
    decidable
    propset
    sets
.

Class Surj' {A B} (R : relation B) (f : AB) : Type := {
    surj'_inv : BA ;
    surj'_pf: ∀ (b : B), R (f (surj'_inv b)) b
}.

#[export]
Instance surj_surj' {A B} (R : relation B) (f : AB) {_ : @Surj' A B R f} : Surj R f.

#[export]
Instance surj'_id {A} : @Surj' A A (=) Datatypes.id.

#[export]
    Instance compose_surj' {A B C} R (f : AB) (g : BC) :
    Surj' (=) fSurj' R gSurj' R (gf).

This page has been generated by coqdoc