{{위키데이터 속성 추적}}
{{다른 뜻 넘어옴|종속 변수|함수의 정의역의 원소를 나타내는 변수|독립 변수와 종속 변수}}
[[논리학]]과 [[컴퓨터 과학]]에서 '''자유 변수'''(自由變數, {{llang|en|free variable}})는 [[수식]] 속의 [[변수]] 가운데 상숫값으로 [[치환 실례|치환]]할 수 있는 것이다. 반대로 '''종속 변수'''(從屬變數, {{llang|en|bound variable}})는 상숫값으로 치환하였을 때 수식이 본래의 의미를 잃게 되는 변수이다. 종속 변수 대신 '''[[가변수]]'''(假變數, {{llang|en|dummy variable}})라고도 하나, 이는 [[회귀 분석]]의 용어로서 더 많이 쓰인다. 컴퓨터 프로그래밍에서 자유 변수는 [[전역 변수]], 종속 변수는 [[지역 변수]]를 가리킨다. 이 경우, 자유 변수는 대략 함수의 바깥에서 정의된 변수를 뜻한다.<ref>{{서적 인용|성=Lamkins|이름=David B.|제목=Successful Lisp: How to Understand and Use Common Lisp|언어=en|출판사=bookfix.com|날짜=2004-12-08}}</ref>

== 정의 ==
어떤 [[수식]]의 변수 <math>x</math>가 다음과 같은 꼴의 부분 수식 속에 나타난다면, 그 위치의 <math>x</math>를 '''종속 변수'''라고 한다.
* <math>\forall x(\cdots)</math>
* <math>\exists x(\cdots)</math>
* <math>\sum_x(\cdots)</math>
* <math>\int(\cdots)dx</math>
* <math>\lim_{x\to a}(\cdots)</math>
* 기타 등등
여기서 <math>\forall</math>는 전칭 기호, <math>\exists</math>는 존재 기호, <math>\textstyle\sum</math>은 [[급수 (수학)|급수]], <math>\textstyle\int</math>는 [[적분]], <math>\textstyle\lim</math>은 [[극한]]이다. <math>\forall x</math>의 <math>x</math>까지 종속 변수인지는 문맥에 따라 다르다.<ref name="Hamilton">{{서적 인용
|성=Hamilton
|이름=Alan G.
|제목=Logic for Mathematicians
|언어=en
|판=개정
|출판사=Cambridge University Press
|날짜=1988
|isbn=0-521-36865-0
}}</ref><ref name="Bell">{{서적 인용
|성1=Bell
|이름1=John L.
|성2=Machover
|이름2=Moshé
|제목=A Course in Mathematical Logic
|출판사=North-Holland
|날짜=1977
|isbn=978-0-7204-2844-5
}}</ref>{{rp|17}} 종속 변수가 아닌 변수를 '''자유 변수'''라고 한다.

== 예 ==
=== 대형 연산자를 포함하는 수식의 자유 변수와 종속 변수 ===
수식
:<math>\sum_{n=1}^{10}\frac mn</math>
에서, <math>m</math>은 자유 변수, <math>n</math>는 종속 변수이다. 따라서, 이 [[급수 (수학)|급수]]는 <math>m</math>의 [[함수]]이지만, <math>n</math>의 함수는 아니다.

수식
:<math>\int_a^bf(x,y)dx</math>
에서, <math>x</math>는 종속 변수, <math>y</math>는 자유 변수이다. 즉, 이 [[적분]]은 <math>y</math>의 함수이지만 <math>x</math>의 함수가 아니다.

변수에 상숫값을 대입시킬 때에는 반드시 자유 변수에만 대입시켜야 한다. 예를 들어, 급수
:<math>n+\sum_{n=1}^{10}n</math>
속의 세 개의 <math>n</math> 가운데, 첫째 <math>n</math>은 자유 변수, 둘째와 셋째 <math>n</math>은 종속 변수이다. 여기에 <math>n=5</math>를 대입시키려면, 자유 변수인 첫째 변수에만 대입시켜야만 정확한 결과
:<math>5+\sum_{n=1}^{10}n=5+55=60</math>
를 얻는다. 만일 <math>n=5</math>를 이 급수의 자유 변수와 종속 변수에 대입시키면,
:<math>5+\sum_{5=1}^{10}5</math>
를 얻으며, 이는 무의미한 수식이다. 만일 첫째와 셋째 <math>n</math>에만 대입시키면,
:<math>5+\sum_{n=1}^{10}5=5+50=55</math>
를 얻으며, 이 식의 값은 <math>n+55</math>에 <math>n=5</math>를 대입한 결과값과 다르다.

종속 변수를 다른 변수로 대신하여도 수식의 의미가 변하지 않는다. 예를 들어, 다음과 같은 세 급수는 완전히 같은 급수이다.
:<math>\sum_{m=1}^{10}m=\sum_{n=1}^{10}n=\sum_{k=1}^{10}k</math>

=== 술어 논리식의 자유 변수와 종속 변수 ===
[[논리식]]
:<math>x>1\lor x<-1</math>
에서, <math>x</math>는 자유 변수이다. 여기에 상숫값인 <math>x=3</math>을 대입하여 얻는
:<math>3>1\lor 3<-1</math>
은 여전히 유의미한 논리식이다.

논리식
:<math>\exists x(x<0)</math>
에서, 두 <math>x</math>는 모두 종속 변수이다. 여기에 상숫값인 <math>x=3</math>을 대입하여 얻는 논리식은 원래의 논리식과 같다. 만일 둘째 <math>x</math>를 3으로 대신하면
:<math>\exists x(3<0)</math>
을 얻는데, 이는 3이 음수라는 의미의 거짓 명제이지만, 원래의 논리식은 음수가 존재한다는 의미의 참인 명제이다. 또한, 바뀐 논리식의 변수 <math>x</math>를 다른 변수로 치환하여도 의미가 변하지 않는다. 예를 들어,
:<math>\exists y(y<0)</math>
는 원래의 논리식과 [[동치]]이다.

== 같이 보기 ==
* [[네임 바인딩]]
== 각주 ==
{{각주}}

== 외부 링크 ==
* {{eom|title=Free variable}}
* {{eom|title=Bound variable}}
* {{매스월드|id=FreeVariable|title=Free variable}}
* {{매스월드|id=BoundVariable|title=Bound variable}}
* {{매스월드|id=DummyVariable|title=Dummy variable}}
* {{플래닛매스|urlname=FreeAndBoundVariables|title=Free and bound variables}}
* {{proofwiki|id=Definition:Free Variable|제목=Definition:Free variable}}
* {{proofwiki|id=Definition:Bound Variable|제목=Definition:Bound variable}}

{{전거 통제}}

[[분류:술어 논리]]
[[분류:수학 표기법]]
[[분류:컴퓨터 프로그래밍]]