{
  "title": "논리와 양화사: ∀·∃",
  "description": "술어 논리의 전칭·존재 양화사와 그 성질. '자명한 ∃'와 '비자명한 ∃'의 차이가 왜 분류 논쟁의 핵심인지 이해합니다.",
  "languageCode": "ko",
  "cards": [
    {
      "type": "ox",
      "prompt": "전칭양화사 ∀는 '모든', 존재양화사 ∃는 '어떤 …가 존재한다'를 뜻한다.",
      "answer": true,
      "explanation": "∀x.P(x)는 '모든 x에 대해 P', ∃x.P(x)는 'P를 만족하는 x가 하나라도 존재'를 의미합니다."
    },
    {
      "type": "ox",
      "prompt": "∃x.P(x)가 참임을 보이려면, 원리상 조건 P를 만족하는 x를 하나라도 제시하면 된다.",
      "answer": true,
      "explanation": "존재 명제는 목격자(witness) 하나로 증명됩니다."
    },
    {
      "type": "choice",
      "prompt": "논리식 ¬(∀x. P(x))와 동치인 것은?",
      "choices": [
        "∃x. ¬P(x)",
        "∀x. ¬P(x)",
        "∃x. P(x)",
        "¬∃x. P(x)"
      ],
      "answer": 1,
      "explanation": "'모두 P는 아니다'는 'P가 아닌 x가 존재한다'와 같습니다(드모르간 양화 버전)."
    },
    {
      "type": "choice",
      "prompt": "논리식 ¬(∃x. P(x))와 동치인 것은?",
      "choices": [
        "∀x. ¬P(x)",
        "∃x. ¬P(x)",
        "∀x. P(x)",
        "항상 참"
      ],
      "answer": 1,
      "explanation": "'P인 x가 없다'는 '모든 x가 ¬P'와 같습니다."
    },
    {
      "type": "ox",
      "prompt": "구성적(구성주의) 관점에서 ∃x.P(x)의 증명은 그러한 x를 실제로 구성·제시하는 방법을 포함해야 한다.",
      "answer": true,
      "explanation": "고전 논리는 존재를 간접적으로도 인정하지만, 구성주의는 목격자를 실제로 만들어 보여야 합니다."
    },
    {
      "type": "text",
      "prompt": "'어떤 x가 존재하여 …'를 나타내는 양화사의 기호는? (기호 하나로)",
      "answers": [
        "∃",
        "exists",
        "존재양화사",
        "존재 양화사"
      ],
      "explanation": "존재양화사는 ∃로 표기합니다(영어 E를 뒤집은 모양)."
    },
    {
      "type": "ox",
      "prompt": "함수 이름이 스코프 내에서 유일해야 하는 언어에서는, 함수 하나만 선언해도 ∃f.(name(f)='foo') 같은 존재 명제가 자명하게 성립한다.",
      "answer": true,
      "explanation": "거의 모든 언어가 이런 자명한 ∃를 갖습니다. 그래서 '∃가 있으면 선언형'이라는 정의는 무의미해집니다."
    },
    {
      "type": "ox",
      "prompt": "어떤 ∃는 자명하게 성립하지만, 어떤 ∃는 만족하는 대상을 찾기 위해 실제 탐색·추론·제약 해결이 필요해 비자명하다.",
      "answer": true,
      "explanation": "비자명한 ∃는 런타임/컴파일 타임에 탐색·추론·최적화·제약 해결 같은 실제 계산을 요구합니다."
    },
    {
      "type": "ox",
      "prompt": "존재 양화(∃)가 조금이라도 등장하면 그 언어는 반드시 선언형이라고 결론지을 수 있다.",
      "answer": false,
      "explanation": "자명한 ∃는 거의 모든 언어에 있으므로, 그것만으로 선언형을 규정하면 사실상 모든 언어가 선언형이 됩니다."
    },
    {
      "type": "choice",
      "prompt": "다음 중 '비자명한 ∃'의 예로 가장 적절한 것은?",
      "choices": [
        "제약을 만족하는 값을 런타임·컴파일 타임에 탐색해야 하는 경우",
        "선언한 변수의 이름이 존재한다는 사실",
        "프로그램에 main 함수가 하나 있다는 사실",
        "소스 파일이 한 개 존재한다는 사실"
      ],
      "answer": 1,
      "explanation": "탐색·추론·제약 해결 같은 실제 계산이 필요한 존재가 '비자명한 ∃'입니다. 나머지는 자명합니다."
    },
    {
      "type": "ox",
      "prompt": "명제 논리(0차 논리)만으로도 변수에 대한 양화(∀·∃)를 자유롭게 표현할 수 있다.",
      "answer": false,
      "explanation": "양화(∀·∃)는 술어 논리(1차 논리)에서 가능합니다. 명제 논리는 명제 사이의 진리함수만 다룹니다."
    },
    {
      "type": "ox",
      "prompt": "자명한 존재 명제까지 포함하는 ∃ 기반 정의는, 거의 모든 언어를 한 범주로 몰아넣을 위험이 있다.",
      "answer": true,
      "explanation": "그래서 좋은 정의는 '자명한 ∃'가 아니라 '비자명한 ∃'를 요구해야 하지만, 그래도 메모리 모델이 걸립니다(뒤에서)."
    },
    {
      "type": "ox",
      "prompt": "도메인(논의 영역)이 공집합이면 ∀x.P(x)는 P가 무엇이든 참이다.",
      "answer": true,
      "explanation": "반례가 될 x 자체가 없으므로 전칭 명제는 공허하게 참(vacuously true)이 됩니다. 전칭 명제는 '반례가 없음'과 같은 뜻입니다."
    },
    {
      "type": "ox",
      "prompt": "도메인이 공집합이면 ∃x.P(x)도 공허하게 참이 된다.",
      "answer": false,
      "explanation": "공집합에서는 목격자(witness)가 하나도 없으므로 ∃x.P(x)는 항상 거짓입니다. 공허하게 참이 되는 쪽은 ∀입니다."
    },
    {
      "type": "choice",
      "prompt": "∀x∃y.P(x,y)와 ∃y∀x.P(x,y) 사이에 일반적으로 성립하는 함의는?",
      "choices": [
        "∃y∀x.P(x,y) → ∀x∃y.P(x,y)",
        "∀x∃y.P(x,y) → ∃y∀x.P(x,y)",
        "두 방향 모두 항상 성립한다",
        "어느 방향도 성립하지 않는다"
      ],
      "answer": 1,
      "explanation": "모든 x에 공통으로 통하는 y가 있다면 x마다 y를 고를 수 있으므로 ∃∀ → ∀∃는 항상 성립합니다. 반대 방향은 일반적으로 성립하지 않습니다."
    },
    {
      "type": "ox",
      "prompt": "서로 다른 종류의 양화사가 중첩될 때는 순서를 바꾸면 의미가 달라질 수 있다.",
      "answer": true,
      "explanation": "∀x∃y(모든 정수보다 큰 정수가 있다: 참)와 ∃y∀x(모든 정수보다 큰 하나의 정수가 있다: 거짓)처럼 진리값이 갈립니다. 같은 종류끼리(∀∀, ∃∃)는 순서를 바꿔도 동치입니다."
    },
    {
      "type": "ox",
      "prompt": "묶인 변수(bound variable)의 이름을 충돌 없이 바꾸면 논리식의 의미가 달라진다.",
      "answer": false,
      "explanation": "∀x.P(x)와 ∀z.P(z)는 동치입니다(알파 변환). 다만 이름을 바꿀 때 다른 양화사에 포획(capture)되지 않도록 새 이름을 골라야 합니다."
    },
    {
      "type": "text",
      "prompt": "논리식에서 어떤 양화사에도 묶이지 않은 변수를 무엇이라 부르는가?",
      "answers": [
        "자유 변수",
        "자유변수",
        "free variable",
        "free var",
        "자유변항"
      ],
      "explanation": "양화사에 묶이지 않은 변수를 자유 변수(free variable)라 합니다. 자유 변수가 있으면 변수 배정(assignment)이 주어져야 진리값이 정해집니다."
    },
    {
      "type": "ox",
      "prompt": "자유 변수가 하나도 없는 논리식(문장, sentence)은 구조(모델)만 주어지면 참·거짓이 결정된다.",
      "answer": true,
      "explanation": "닫힌 논리식은 변수 배정에 의존하지 않으므로 구조 하나에 대해 진리값이 하나로 정해집니다. 자유 변수가 있으면 배정에 따라 값이 달라집니다."
    },
    {
      "type": "choice",
      "prompt": "¬(∀x∃y. P(x,y))와 동치인 것은?",
      "choices": [
        "∀x∃y. ¬P(x,y)",
        "∃x∃y. ¬P(x,y)",
        "∃x∀y. ¬P(x,y)",
        "∀x∀y. ¬P(x,y)"
      ],
      "answer": 3,
      "explanation": "부정을 안쪽으로 밀면 양화사가 차례로 뒤집힙니다: ¬∀ → ∃, ¬∃ → ∀. 결과는 ∃x∀y. ¬P(x,y)입니다."
    },
    {
      "type": "ox",
      "prompt": "∀x.(P(x) ∧ Q(x))는 (∀x.P(x)) ∧ (∀x.Q(x))와 동치다.",
      "answer": true,
      "explanation": "전칭은 연언(∧)에 분배됩니다. 두 조건을 모두 만족한다는 말과, 각각을 모두 만족한다는 말이 같기 때문입니다."
    },
    {
      "type": "ox",
      "prompt": "∀x.(P(x) ∨ Q(x))는 (∀x.P(x)) ∨ (∀x.Q(x))와 동치다.",
      "answer": false,
      "explanation": "→ 방향만 성립합니다. 정수에서 P='짝수', Q='홀수'라면 왼쪽은 참이지만 오른쪽은 거짓입니다. 전칭은 선언(∨)에 분배되지 않습니다."
    },
    {
      "type": "ox",
      "prompt": "∃x.(P(x) ∧ Q(x))는 (∃x.P(x)) ∧ (∃x.Q(x))와 동치다.",
      "answer": false,
      "explanation": "→ 방향만 성립합니다. P를 만족하는 x와 Q를 만족하는 x가 각각 있어도 둘을 동시에 만족하는 하나가 있으리란 보장은 없습니다. 반면 ∃는 선언(∨)에는 온전히 분배됩니다."
    },
    {
      "type": "choice",
      "prompt": "∀와 ∃의 상호 정의(이중성)로 옳은 것은?",
      "choices": [
        "∀x.P(x) ≡ ∃x.P(x)",
        "∀x.P(x) ≡ ¬∃x.¬P(x)",
        "∀x.P(x) ≡ ¬∃x.P(x)",
        "∃x.P(x) ≡ ¬∃x.¬P(x)"
      ],
      "answer": 2,
      "explanation": "고전 논리에서 두 양화사는 부정을 통해 서로 정의됩니다: ∀x.P(x) ≡ ¬∃x.¬P(x), ∃x.P(x) ≡ ¬∀x.¬P(x)."
    },
    {
      "type": "ox",
      "prompt": "1차 술어 논리의 유효성(validity) 판정 문제는 일반적으로 결정 불가능(undecidable)하다.",
      "answer": true,
      "explanation": "처치와 튜링이 보인 결정 문제(Entscheidungsproblem)의 부정적 해답입니다. 반면 명제 논리의 항진성 판정은 결정 가능합니다."
    },
    {
      "type": "ox",
      "prompt": "1차 논리의 유효성은 결정 불가능하므로, 유효한 논리식을 하나씩 나열하는 것조차 불가능하다.",
      "answer": false,
      "explanation": "괴델의 완전성 정리에 따라 1차 논리에는 건전하고 완전한 증명 체계가 있어, 유효한 논리식 집합은 재귀적 열거 가능(반결정 가능)합니다. '열거는 되지만 반례가 없을 때 멈추지 않는다'가 정확한 상태입니다."
    },
    {
      "type": "text",
      "prompt": "'조건을 만족하는 대상이 하나도 없어서 전칭 명제가 자동으로 참이 되는' 현상을 무엇이라 하는가?",
      "answers": [
        "공허한 참",
        "공허참",
        "공허한진리",
        "vacuous truth",
        "vacuously true"
      ],
      "explanation": "공허한 참(vacuous truth)이라 합니다. ∀x.(P(x) → Q(x))에서 P를 만족하는 x가 없으면 Q와 무관하게 참입니다."
    },
    {
      "type": "ox",
      "prompt": "'모든 P는 Q다'의 표준 형식화는 ∀x.(P(x) → Q(x))이며, ∀x.(P(x) ∧ Q(x))가 아니다.",
      "answer": true,
      "explanation": "∧로 쓰면 '모든 대상이 P이면서 Q'라는 훨씬 강한 주장이 됩니다. 전칭에는 함의(→), 존재에는 연언(∧)이 짝을 이루는 것이 표준 관습입니다."
    },
    {
      "type": "choice",
      "prompt": "'모든 학생이 어떤 책을 읽었다'를 학생마다 다른 책이어도 되는 뜻으로 읽을 때의 형식화는?",
      "choices": [
        "∃b∀s. 읽음(s, b)",
        "∀b∃s. 읽음(s, b)",
        "∃s∀b. 읽음(s, b)",
        "∀s∃b. 읽음(s, b)"
      ],
      "answer": 4,
      "explanation": "책 선택이 학생에 의존해도 되는 읽기는 ∀가 바깥, ∃가 안쪽인 ∀s∃b 형태입니다. ∃b∀s는 '모두가 읽은 공통의 책 한 권'이라는 더 강한 뜻입니다."
    },
    {
      "type": "ox",
      "prompt": "도메인이 무한해도 ∀x.P(x)는 언제나 유한한 연언(P(a) ∧ P(b) ∧ …)으로 풀어쓸 수 있다.",
      "answer": false,
      "explanation": "1차 논리의 논리식은 유한 길이이므로 무한 도메인의 전칭을 유한 연언으로 옮길 수 없습니다. 양화사가 필요한 이유가 바로 이것입니다."
    },
    {
      "type": "ox",
      "prompt": "도메인이 유한하고 원소를 모두 이름 붙일 수 있다면 ∀는 유한 연언(∧), ∃는 유한 선언(∨)으로 전개할 수 있다.",
      "answer": true,
      "explanation": "유한 도메인 {a,b}에서 ∀x.P(x) ≡ P(a) ∧ P(b), ∃x.P(x) ≡ P(a) ∨ P(b)입니다. 모델 검사기가 유한 상태 공간에서 양화를 다루는 기본 원리입니다."
    },
    {
      "type": "choice",
      "prompt": "1차 논리식의 표준형에 대한 설명으로 옳은 것은?",
      "choices": [
        "양화사 순서는 임의로 바꿔도 항상 동치가 유지된다",
        "모든 논리식은 양화사를 완전히 제거한 동치 형태로 바꿀 수 있다",
        "모든 논리식은 양화사가 앞에 모인 선두 표준형(prenex normal form)으로 바꿀 수 있다",
        "자유 변수가 있는 논리식도 구조만 주어지면 진리값이 하나로 정해진다"
      ],
      "answer": 3,
      "explanation": "모든 1차 논리식은 양화사가 모두 앞쪽에 모인 선두 표준형(prenex normal form)과 동치인 형태로 변환할 수 있습니다. 이때 변수 포획을 피하려면 이름 바꾸기가 필요할 수 있습니다."
    },
    {
      "type": "ox",
      "prompt": "2차 논리는 개체뿐 아니라 술어·관계에 대해서도 양화할 수 있으며, 표준 의미론에서는 건전하고 완전한 유효 증명 체계를 가질 수 없다.",
      "answer": true,
      "explanation": "2차 양화는 표현력을 크게 높이지만(예: 자연수의 범주적 공리화) 그 대가로 완전성 정리가 성립하지 않습니다. 1차 논리는 표현력이 낮은 대신 완전성을 얻습니다."
    },
    {
      "type": "ox",
      "prompt": "∀x∃y.P(x,y)에서 목격자 y는 x와 무관하게 하나로 고정되어야 한다.",
      "answer": false,
      "explanation": "안쪽 ∃의 목격자는 바깥 ∀의 변수에 의존할 수 있습니다. y를 x와 무관하게 고정하라는 요구는 더 강한 ∃y∀x 형태입니다."
    },
    {
      "type": "choice",
      "prompt": "∀x∃y. P(x, y)를 스콜렘화(Skolemization)하면 어떤 형태가 되는가?",
      "choices": [
        "∃y∀x. P(x, y)",
        "∀x. P(x, c) (새 상수 c)",
        "∀x∀y. P(x, y)",
        "∀x. P(x, f(x)) (새 함수 기호 f)"
      ],
      "answer": 4,
      "explanation": "안쪽 ∃를 바깥 변수에 의존하는 새 함수 기호로 바꿔 ∀x. P(x, f(x))가 됩니다. 스콜렘화는 동치가 아니라 충족 가능성(satisfiability)을 보존하는 변환입니다."
    },
    {
      "type": "ox",
      "prompt": "유일 존재 ∃!x.P(x)는 등호를 써서 ∃x.(P(x) ∧ ∀y.(P(y) → y = x))로 풀어쓸 수 있다.",
      "answer": true,
      "explanation": "'적어도 하나 존재'와 '많아야 하나'를 결합한 표현입니다. ∃!는 기본 기호가 아니라 ∃·∀·=로 정의되는 축약입니다."
    }
  ]
}
