그 단순히 '공역과 치역이 같은 함수' 를 의미하는 surjective가 아닌, '어떤 특정 집합 A에 대해서 Surjective 하다'와 같이 쓰이는 'Surjective onto set A' 라는 표현의 정의에 대한 질문입니다.

만약 'Surjective onto set A' 를 아래와 같이 하나의 명제만으로 정의하게 되면요,



"f is a surjective onto set A"



←→


∀y∈A, ∃x∈D(f) s.t. f(x)=y

이건 오류가 있는게 맞는거죠? 저 명제만으로 정의한다면, 예를 들어서 A={ 1, 2 } 일때도 f(x)=3x (단 D(f)=R) 이라는 함수 f에 대해서 저 명제를 참으로 만들어버리니까요..
그래서 제 생각에는 아래와 같이 두개의 명제로 정의해야 되는 것 같다는 생각이 들었습니다.


"f is a surjective onto set A"


←→


( ∀y∈A, ∃x∈D(f) s.t. f(x)=y )
and
( ∀x∈D(f), f(x)∈A )


이렇게 정의하면, 위의 경우에서와 달리 너무 작은 집합에 대해서 죄다 정의 명제를 참으로 만들어버리는 문제가 안생기는 것 같아서요.
(물론 set A가 f의 codomain 일 경우에는, 애초에 모든 x에 대해 이미 f(x)∈A 이라는건 이미 주어져 있는 셈이니까, 처음에 들었던 방식의, 한개의 명제만 쓰는 정의로도 오류없이 Surjective 라는 표현이 잘 정의됩니다.)

.
.
.

그래서 결국 제 질문은, 어떤 집합 A에 대해서 'f is surjective onto set A' 가 참인지 아닌지를 증명하려면, 다시 말해서 'Range of f is set A' 가 참인지 아닌지를 증명하려면,


( ∀y∈A, ∃x∈D(f) s.t. f(x)=y )


( ∀x∈D(f), f(x)∈A )


이 두개의 명제를 각각 따로따로 전부 증명해야 하는게 맞는건지??? 입니다.


.
.
.

질문 읽어주셔서 감사합니다!